Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-25, 15:10x



Odpowiedz w temacie  [ Posty: 7 ] 
Import dokumentów HANDEL 
Autor Wiadomość

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post Import dokumentów HANDEL
Witam,
Handel 2011.1a
Na własne potrzeby przygotowuje wymianę między CRM a Handel Premium 2011.1a
Pomysł jest taki , że z zamówień rejestrowanych w CRM (Go-Net) tworzony jest odpowiedni plik (treść poniżej), któy ma się zaimportować do Symfoni jako dokumetn sprzedaży. Zasadniczo wszystko działa , lecz przy imporcie Symfonia wykrywa różnice pomiędzy danymi kartotekowymi (kontrahent, towar) pochodzącymi z plików z CRM a tymi które są w symfoni.
Model pracy jest taki, że zarówno dane nowego kontrahenta jak i towaru wprowadzane się do Symfoni , a gonet pobiera te dane do swoich kartotek. Przy eksporciue z CRM tworzony jest odpowiedzni plik i następnie importowany do Symfoni.

Pytanie jest takie , czy można w symfonii zrobić coś by nie wyświetlała informacji o różnicach danych kartotekowych przy imporce, tylko domyślnie po prostu wybierałą opcję "Pozostaw" i improtowała dok. do bufora. DANE W HANDLU NIGDY NIE MAJĄ ULEGAĆ ZMIANIE. Synchronizacja ZAWSZE działa w kierunku Symfonia -> Go-Net, Kontrahent i Towar eksportowane z CRM ZAWSZE znajdują się w bazie Handlu.

Treść pliku wymiany:
Kod:
INFO{
   Nazwa programu ='Sage Symfonia Handel 2011.1.a' Symfonia Handel 2011.1.a
   Wersja_programu =92
   Wersja szablonu =3.1
   dane_z_oddzialu =1
   Kontrahent{
      id =-920184048
      kod =29920
      nazwa =PolKas Wolff i Kowalski Sp.J.
      miejscowosc =Kraków
      ulica =Pasternik
      dom =94A
      lokal =
      kodpocz =31-354
      rejon =małopolskie
      nip =676-22-74-940
      tel1 =12 6340544
      tel2 =
      fax =
      email =
      www =
   }
}
Kontrahent{
   Notatka_Dl{
      opis =
   }
   kod =FRIENDS COFFEE
   nazwa =FRIENDS COFFEE -R.J. FRONC, R. CHRZĄSZCZ SP.J.
   miejscowosc =KRAKÓW
   ulica =UL. KARMELICKA
   dom =14
   lokal =
   kodpocz =31-133
   nip =676-23-04-718
   NazwaRodzaju =Kontrahenci
}
Towar{
   kod =27518
   nazwa =PAPIER 57 MM TERMICZNY/30M
   stawkaVAT =23.00
   jm =SZT.
}
Dokument{
   Notatka_Dl{
      opis = zlec.zlec.24479/05/11
   }
   rodzaj_dok =sprzedaży
   kodKH =FRIENDS COFFEE
   kodOdKH =FRIENDS COFFEE
   data =2011-05-19
   datasp =2011-05-19
   opis =
   plattermin =2011-05-19
   typ_dk =FV
   rejestr_platnosci =KASA
   forma_platnosci =Gotówka
   NazwaKatalogu =\@Dokumenty sprzedaży
   NazwaRodzaju =Dokumenty sprzedaży
   Pozycja dokumentu{
      kod =27518
      ilosc =120.00
      cena =0.80
   }
}


Lekko zmodyfikowany standardowy szablon importu:


Kod:
#format "AMS"
#Disable  "1"  //poziom ostrzeżeń 1 (m.in. bez ostrzeżenia "Pole nie znalezione")
#RodzajDokumentu ""


// Czy umieszczać dane we właściwym katalogu i rodzaju (tworząc je jeśli takich nie było)?
// 1 - tak, 2 - nie, 3 - zadaj pytanie
#DoKataloguKH 2
#DoKataloguTW 2
#DoKataloguWR 2
#DoKataloguUR 2
#DoKataloguSP 2
#DoKataloguZK 2
#DoKataloguMG 2

#DoRodzajuKH 2
#DoRodzajuTW 2
#DoRodzajuWR 2
#DoRodzajuUR 2
#DoRodzajuSP 2
#DoRodzajuZK 2
#DoRodzajuMG 2



Section( "INFO", "INFO")
{
   switch ( [Wersja szablonu] )
   {
   case "3"
   case "3.1"
      break
   case else
      if (  equal(ASK("Wskazany plik danych wymaga innej wersji szablonu importowego. Czy przerwać import danych? {{icon=? buttons=[&Tak:t](&Nie:n)}}"), 6) )
         ERROR("Operacja importu została przerwana.")
   }

   $Nazwa_programu = [Nazwa programu]   

   Section( "Kontrahent", "Kontrahent")
   {
      //$id = [id]
      $kod = [kod]
      $nazwa = [nazwa]
      
   }
}


Section( "Kontrahent", "Kontrahent")
{
   Info("Kontrahent: ", [kod])

   $kod = [kod]
   $nazwa = [nazwa]
   $miejscowosc = [miejscowosc]
   $ulica = [ulica]
   $dom = [dom]
   $lokal = [lokal]
   $kodpocz = [kodpocz]
   $nip = [nip]



   if ( exist("NazwaRodzaju") )
   {
      if ( equal(Def("DoRodzajuKH"), 3) )
      {
         Def("DoRodzajuKH", Ask("Czy importować rodzaje kontrahentów?",
            "{{icon=? buttons=[Tak:o](Nie:c)}}") )
      }
      if ( equal(Def("DoRodzajuKH"), "1") )
         $NazwaRodzaju = [NazwaRodzaju]
   }
   

   Section( "Notatka_Dl", "Notatka_Dl", "REPEAT")
   {
      $opis = [opis]
   }
}









Section( "Towar", "Towar")
{
   Info("Towar: ", [kod])

   $kod = [kod]
   $nazwa = [nazwa]
   $stawkaVAT = [stawkaVAT]

   $jm = [jm]
}



Section("DokumentRW", "DokumentMG")
{
   Info("Dokument: ", [kod])

// typ dokumentu jest pobierany z parametru pracy o podanej nazwie,
// po znaku $ podajemy wartość domyślną parametru:

   $typ_dokumentu_parametr = "Typ dokumentu - Import towarów z innego oddziału$PRW"

   $nadawca_jako_kh = 1

   $opis = CAT([opis], " według: ", [kod])

   Section("", "", "REPEAT")
   {
      switch( Translate( Name(), "L") )
      {
      case "pozycja dokumentu"

         if ( !equal([typ_pozycji], "1") )   // jeśli nie jest to element kompletu
         {
            MakeSec("Pozycja dokumentu")
            {
               $kod = [kod]
               //$SWW = [opisdod]
               $ilosc_ewid = [ilosc]
               $wartosc = [wartNetto]

               Section("Dostawa", "")
               {
                  $nazwa_dostawy = [kod]
               }
               Section( "Nazwa_Dl", "Nazwa_Dl", "REPEAT")
               {
                  $opis = [opis]
               }
            }
         }
         break

      case "notatka_dl"
         MakeSec("Notatka_Dl")
         {
            $opis      = [opis]
         }
         break
      }
   }
}

/*
Section("DokumentRW", "DokumentRW")
{
   Info("Dokument: ", [kod])

   $id = [id]
   $kod = [kod]
   $opis = [opis]

   Section("Pozycja dokumentu", "Pozycja dokumentu", "REPEAT")
   {
      $kod = [kod]
      $opisdod = [opisdod]
      $ilosc = [ilosc]
      $wartNetto = [wartNetto]

      
      Section("Dostawa", "Dostawa", "REPEAT")
      {
         $ilosc = [ilosc]
         $wartosc = [wartosc]
         $kod = [kod]
      }

   }
}
*/

Section("Dokument", "")
{
/*
   if ( !Def("RodzajDokumentu"))
   
   {
      @action = Ask("W pliku wejściowym istnieją dane dokumentów.",
         "Będą one zaimportowane do bufora jednej z kartotek.",
         "",
         "Proszę wybrać kartotekę, do której mają trafić importowane dokumenty.",
         "{{icon=? buttons=[Dokumenty &sprzedaży:p](Dokumenty &zakupu:r)(Dokumenty &magazynowe:i)}}")

      switch( @action )
      {
      case 4 // :p
         Def("RodzajDokumentu", "ZK")
         info("Import dokumentów do bufora karototeki dokumentów zakupu.")
         break
      case 5 // :r
         Def("RodzajDokumentu", "MG")
         info("Import dokumentów do bufora karototeki dokumentów magazynowych.")
         break
      case else // :i
         Def("RodzajDokumentu", "SP")
         info("Import dokumentów do bufora karototeki dokumentów sprzedaży.")
         break
      }
   }
*/
   Info("Dokument: ", [kod])

   switch( Def("RodzajDokumentu") )
   {
   case "ZK"
      MakeSec("DokumentZK")
      {
//         $kod    = [kod]
         $nazwa    = [nazwa]

//         $kodMag = [kodMag]

         $typ_dokumentu = [typ_dk]
         $seria = [seria]

         $khkod = [kodKH]
         $khnazwa = [khnazwa]
         $khadres = [khadres]
         $khdom = [khdom]
         $khlokal = [khlokal]
         $khnip = [khnip]
         $khkodpocz = [khkodpocz]
         $khmiasto = [khmiasto]
         $khKrajKod = [khKrajKod]
         $khKrajNazwa = [khKrajNazwa]

//         if ( !equal([kodOdKH], [kodKH]) )
//         {
            $odkod = [kodOdKH]
            $odnazwa = [odnazwa]               
            $odadres = [odadres]               
            $oddom = [oddom]
            $odlokal = [odlokal]
            $odkodpocz = [odkodpocz]            
            $odmiasto = [odmiasto]               
//         }

         switch([grupacen])
         {
            case "2"
            case "4"
            case "6"
            case "8"
            case "12"
               $od_brutto   = 1
               $ceny_brutto= 1
               break

            case "3"
            case "5"
            case "7"
            case "9"
            case "13"
               $od_brutto   = 0
               $ceny_brutto= 0
               break
         }

         $rejestr_platnosci = [rejestr_platnosci]
         $forma_platnosci = [forma_platnosci]

         $data_wystawienia = [data]
         $data_wplywu = [datawpl]
         $data_zakupu = [datasp]
         $numer_obcy = [kod_obcy]

         @przeciw = equal([rodzaj_dok], "sprzedaży")
         
         if ( @przeciw )
         {
            $nadawca_jako_kh = 1
            $nadawca_jako_od = 1
            $numer_obcy = [kod]
            $data_zakupu = [datasp]
         }

         $odebrane = [odebrane]
         $opis = [opis]
         $rejestr_vat = [rejestr_vat]
         if ( !equal([rejestr_vatNal], "") )
         {
            $rejestr_vatNal = [rejestr_vatNal]
         }
         $waluta = [waluta]
         $kurs = [kurs]
         $kursDoch = [kursDoch]

         if ( exist("NazwaKatalogu") )
         {
            if ( equal(Def("DoKataloguZK"), 3) )
            {
               Def("DoKataloguZK", Ask("Czy importować katalogi dokumentów zakupu?",
                  "{{icon=? buttons=[Tak:o](Nie:c)}}") )
            }
            if ( equal(Def("DoKataloguZK"), 1) )
               $NazwaKatalogu =[NazwaKatalogu]
         }

         if ( exist("NazwaRodzaju") )
         {
            if ( equal(Def("DoRodzajuZK"), 3) )
            {
               Def("DoRodzajuZK", Ask("Czy importować rodzaje dokumentów zakupu?",
                  "{{icon=? buttons=[Tak:o](Nie:c)}}") )
            }
            if ( equal(Def("DoRodzajuZK"), "1") )
               $NazwaRodzaju = [NazwaRodzaju]
         }

         Section("", "", "REPEAT")
         {
            switch( Translate( Name(), "L") )
            {
            case "pozycja dokumentu"
               if ( !equal([typ_pozycji], "1") )   // jeśli nie jest to komplet
               {
                  MakeSec("Pozycja dokumentu")
                  {

                     if(equal([kod], ""))
                     {
                        //$sww   = [sww]
                        $jm      = [jm]
                        if (exist("Nazwa_Dl"))
                        {
                           Section( "Nazwa_Dl", "Nazwa_Dl", "REPEAT")
                           {
                              $opis = [opis]
                           }
                        }
                        else
                        {
                           $opis   = [opis]
                        }
                        $stawkaVAT   = [stawkaVAT]
                        $cena   = [cena]
                     }
                     else
                     {
                        $kod = [kod]

//                        if( @@przeciw )
                           $cena = [cena]
                     }

                     $ilosc_ewid = [ilosc]
                  }
               }
               break

            case "notatka_dl"
               MakeSec("Notatka_Dl")
               {
                  $opis      = [opis]
               }
               break
            }
         }
      }
      break
   case "MG"
      MakeSec("DokumentMG")
      {
//         $kod    = [kod]
         $nazwa    = [nazwa]

         $rezerwacja    = [rozlmg]
//         $kodMag = [kodMag]
         $data_wystawienia = [datasp]   
         $data_operacji = [data]
         $typ_dokumentu = [typ_dk]
         $seria = [seria]
         $termin = [termin]

         $khkod = [kodKH]
         $khnazwa = [khnazwa]
         $khadres = [khadres]
         $khdom = [khdom]
         $khlokal = [khlokal]
         $khnip = [khnip]
         $khkodpocz = [khkodpocz]
         $khmiasto = [khmiasto]

         $odebrane = [odebrane]
         $opis = [opis]
         $rejestr_vat = [rejestr_vat]

         if ( exist("NazwaKatalogu") )
         {
            if ( equal(Def("DoKataloguMG"), 3) )
            {
               Def("DoKataloguMG", Ask("Czy importować katalogi dokumentów magazynowych?",
                  "{{icon=? buttons=[Tak:o](Nie:c)}}") )
            }
            if ( equal(Def("DoKataloguMG"), 1) )
               $NazwaKatalogu =[NazwaKatalogu]
         }

         if ( exist("NazwaRodzaju") )
         {
            if ( equal(Def("DoRodzajuMG"), 3) )
            {
               Def("DoRodzajuMG", Ask("Czy importować rodzaje dokumentów magazynowych?",
                  "{{icon=? buttons=[Tak:o](Nie:c)}}") )
            }
            if ( equal(Def("DoRodzajuMG"), "1") )
               $NazwaRodzaju = [NazwaRodzaju]
         }

         Section("", "", "REPEAT")
         {
            switch( Translate( Name(), "L") )
            {
            case "pozycja dokumentu"
               if ( !equal([typ_pozycji], "1") )   // jeśli nie jest to komplet
               {
                  MakeSec("Pozycja dokumentu")
                  {
                     $kod = [kod]
                     $ilosc_ewid = [ilosc]
                     //$wartosc = [wartNetto]
                     Section( "Nazwa_Dl", "Nazwa_Dl", "REPEAT")
                     {
                        $opis = [opis]
                     }
                  }
               }
               break

            case "notatka_dl"
               MakeSec("Notatka_Dl")
               {
                  $opis      = [opis]
               }
               break
            }
         }
      }
      break
   case else // "SP"
      MakeSec("DokumentSP")
      {
//         $kod    = [kod]
         $nazwa    = [nazwa]

         $rezerwacja    = [rozlmg]         
//         $kodMag = [kodMag]
         $typ_dokumentu = [typ_dk]
         $seria = [seria]

         $data_wystawienia = [data]
         $data_sprzedazy = [datasp]

         $khkod = [kodKH]
         $khnazwa = [khnazwa]
         $khadres = [khadres]
         $khdom = [khdom]
         $khlokal = [khlokal]
         $khnip = [khnip]
         $khkodpocz = [khkodpocz]
         $khmiasto = [khmiasto]
         $khKrajKod = [khKrajKod]
         $khKrajNazwa = [khKrajNazwa]

//         if ( !equal([odnazwa], [khnazwa]) )
//         {
            $odkod = [kodOdKH]
            $odnazwa = [odnazwa]               
            $odadres = [odadres]               
            $oddom = [oddom]
            $odlokal = [odlokal]
            $odkodpocz = [odkodpocz]            
            $odmiasto = [odmiasto]               
//         }

         switch([grupacen])
         {
            case "2"
            case "4"
            case "6"
            case "8"
            case "12"
               $od_brutto   = 1
               $ceny_brutto= 1
               break

            case "3"
            case "5"
            case "7"
            case "9"
            case "13"
               $od_brutto   = 0
               $ceny_brutto= 0
               break
         }

         $rejestr_platnosci = [rejestr_platnosci]
         $forma_platnosci = [forma_platnosci]

         $opis = [opis]

         @sprzedaz = equal([rodzaj_dok], "sprzedaży")

         if ( equal([rodzaj_dok], "zakupu") )
         {
            $nadawca_jako_kh = 1
            $opis = CAT([opis], " według: ", [kod])
         }

         $odebrane = [odebrane]
         
         $rejestr_vat = [rejestr_vat]   
         $waluta = [waluta]
         $kurs = [kurs]
         $kursDoch = [kursDoch]

         if ( exist("NazwaKatalogu") )
         {
            if ( equal(Def("DoKataloguSP"), 3) )
            {
               Def("DoKataloguSP", Ask("Czy importować katalogi dokumentów sprzedaży?",
                  "{{icon=? buttons=[Tak:o](Nie:c)}}") )
            }
            if ( equal(Def("DoKataloguSP"), 1) )
               $NazwaKatalogu =[NazwaKatalogu]
         }

         if ( exist("NazwaRodzaju") )
         {
            if ( equal(Def("DoRodzajuSP"), 3) )
            {
               Def("DoRodzajuSP", Ask("Czy importować rodzaje dokumentów sprzedaży?",
                  "{{icon=? buttons=[Tak:o](Nie:c)}}") )
            }
            if ( equal(Def("DoRodzajuSP"), "1") )
               $NazwaRodzaju = [NazwaRodzaju]
         }

         Section("", "", "REPEAT")
         {
            switch( Translate( Name(), "L") )
            {
            case "pozycja dokumentu"

               if ( !equal([typ_pozycji], "2") )   // jeśli nie jest to element kompletu
               {
                  MakeSec("Pozycja dokumentu")
                  {
                     if(equal([kod], ""))
                     {
                        //$sww   = [sww]
                        $jm      = [jm]
                        if (exist("Nazwa_Dl"))
                        {
                           Section( "Nazwa_Dl", "Nazwa_Dl", "REPEAT")
                           {
                              $opis = [opis]
                           }
                        }
                        else
                        {
                           $opis   = [opis]
                        }
                        $stawkaVAT   = [stawkaVAT]
                        $sww   = [opisdod]
                        $cena   = [cena]
                     }
                     else
                     {
                        $kod = [kod]

//                        if( @@sprzedaz )   //tylko jeśli importujemy dokument sprzedaży
                           $cena = [cena]
                     }

                     $ilosc_ewid = [ilosc]

                  }
               }
               break

            case "notatka_dl"
               MakeSec("Notatka_Dl")
               {
                  $opis      = [opis]
               }
               break
            }
         }
      }
      break
   }
}


Section("","")
{
   Warning("Nierozpoznana sekcja: ", Name())
}


Załączniki:
2.jpg
2.jpg [ 115.19 KiB | Przeglądany 3941 razy ]
2011-05-30, 09:18
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 
Nikt nie wie jak wyłączyć pytacza o uzgadniacza??


2011-05-31, 13:24
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
Dla kontrahentow ktorzy są w handlu - eksportuj tylko kod/skrot kontrahenta w sekcji dokument a sekcji kontrahent nie rob wogole - i w szablonie importu analogicznie tej sekcji nie rozpatruj...


2011-05-31, 13:35
Wyświetl profil

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 
Sparwdze i dam znać jak poszło,
dzieki za odpowiedź


2011-05-31, 15:07
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
skoro potrafisz zmieniać AMS i programować to moze napisać w AMbasicu import dokumentów z zewnątrz z wykorzystaniem ioRec'a i onTimera


2011-07-13, 22:05
Wyświetl profil

Rejestracja: 2010-02-10, 21:24
Posty: 260
Pomógł: 4
Post 
W sumie nie jest to zły pomysł, i chyba tak się skończy sprawa, bo import jako tako działa ale jest niedoskonały. Starałem się niewyważać otwartych drzwi i pójść po najniższej linii oporu.


2011-07-15, 06:17
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
Cytuj:
bo import jako tako działa ale jest niedoskonały.

ocenia się łatwo...
pytanie czy ta niedoskonałość to cech importu, czy stan naszej wiedzy?

czyż tym mechanizmem dokument z handlu do handlu nie wpada idealnie?


2011-07-15, 08:10
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 7 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Import dokumentów do Handel Premium

w Techniczne

Jakub

9

5882

2009-07-31, 17:28

Notos Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Import dokumentów do bufora programu Handel

w Programy Handlowe

Derco

4

4154

2009-09-09, 23:17

darek.007 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Import dokumentów z raportu zewnętrznego xml do Handel ERP

w Programy Handlowe

korzio

1

2903

2020-02-14, 18:32

Zenek N Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Import dokumentów

w Programy Kadrowo Płacowe

andri

4

3885

2008-11-27, 09:50

MG Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot], Google [Bot] i 61 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant