|
|
Strona 1 z 1
|
[ Posty: 7 ] |
|
Autor |
Wiadomość |
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
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 [ 115.19 KiB | Przeglądany 3938 razy ]
|
2011-05-30, 09:18 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
Nikt nie wie jak wyłączyć pytacza o uzgadniacza??
|
2011-05-31, 13:24 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
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 |
|
|
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
Sparwdze i dam znać jak poszło,
dzieki za odpowiedź
|
2011-05-31, 15:07 |
|
|
darek.007
Rejestracja: 2007-12-13, 23:19 Posty: 367 Pomógł: 2
|
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 |
|
|
wojtek
Rejestracja: 2010-02-10, 21:24 Posty: 260 Pomógł: 4
|
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 |
|
|
darek.007
Rejestracja: 2007-12-13, 23:19 Posty: 367 Pomógł: 2
|
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 |
|
|
|
Strona 1 z 1
|
[ Posty: 7 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 24 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
|
|
|
|