//#declare plik_win$ char(255) Local tekst$='' katalog$='' nazwa_pliku$='' datap=0 okres_od=0 okres_do=0 ilpoz=0 jest=0 ile=0 w=0 i=0 j=0 l1=0 l2=0 k=0 // dane organizacyjne typ_zgl$='' zgloszenie$='' zmiana$='' // dane pˆatnika regonplus$='' firma$='' platnik1$='' platnik2$='' platnik3$='' platnik4$='' pesel$='' nip$='' nazwisko$='' imie1$='' data_ur=0 rodz_dok=0 nr_dok$='' // dane ubezpieczonego kod_tyt$='' kod_tyt1$='' kod_tyt2$='' kod_tyt3$='' kod_pr$='' kod_pracy_wsw1$='' kod_pracy_wsw2$='' kod_pracy_wsw3$='' kod_pracy_wsw4$='' nazwisko_pr$='' imie1_pr$='' pesel_pr$='' nip_pr$='' data_ur_pr$='' rodz_dok_pr=0 nr_dok_pr$='' dok_pr$='' etat$='' etat1=0 etat2=0 datapr_wsw=0 d_od=0 d_do=0 end // if rok<>Rok(data) okres_od=Data(1,1,rok) okres_do=Data(31,12,rok) else okres_od=Data(1,1,Rok(data)) okres_do=data //OstatniDzieä(Data) end if rok=2010 okres_od=Data(1,1,rok-1) end //info('okres_od:' && data2txt(okres_od) && 'do:' && data2txt(okres_do)) // UstawDat©DanychPodstawowych(data) //===================================== // XML Free(Kolejka) w=1 // tekst$='' call AddKolejka tekst$='' call AddKolejka // tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='' & chr(255) & '' call AddKolejka tekst$='' & chr(255) & '' call AddKolejka tekst$='' & chr(255) & '' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka // // dane identyfikacyjne pˆatnika platnik1$='' platnik2$='' platnik3$='' platnik4$='' Pobierz dane identyfikacyjne pˆatnika (data, typ$, rodz_dok, nr_dok$, datap) nip$=Funkcja usuwaj¥ca znaki przestankowe (Firma (NIP)) regonplus$=Firma (REGON) //& {Koäcowe znaki REGON-u} if Firma (Rodzaj pˆatnika)='osoba fizyczna' pesel$=Dane ewidencyjne osoby fizycznej (Pesel) nazwisko$=SubString(Dane ewidencyjne osoby fizycznej (Nazwisko),1,31) nazwisko$=Kodowanie UNICODE(nazwisko$) imie1$=SubString(Dane ewidencyjne osoby fizycznej (Pierwsze imi©),1,22) imie1$=Kodowanie UNICODE(imie1$) data_ur=Dane ewidencyjne osoby fizycznej (Data urodzenia) if {Nie podawa† firmy w eksporcie do ZUS} firma$=' ' else firma$=SubString(Firma (Nazwa firmy),1,31) firma$=Kodowanie UNICODE(firma$) end platnik1$='' & nip$ & '' if regonplus$<>'' platnik1$=platnik1$ & '' & regonplus$ & '' end if pesel$<>'' platnik1$=platnik1$ & '' & pesel$ & '' end if nr_dok$<>'' nr_dok$=Funkcja usuwaj¥ca znaki przestankowe (nr_dok$) nr_dok$=SubString(nr_dok$,1,9) platnik2$='' & Format(rodz_dok,'n1B') & '' & '' & nr_dok$ & '' end if firma$<>'' platnik3$='' & firma$ & '' end platnik4$='' & nazwisko$ & '' & '' & imie1$ & '' if data_ur>0 platnik4$=platnik4$ & '' & Format(data_ur, '@d10-') & '' end else pesel$='' nazwisko$='' imie1$='' data_ur=0 firma$=SubString(Firma (Nazwa firmy),1,31) firma$=Kodowanie UNICODE(firma$) platnik1$='' & nip$ & '' if regonplus$ <>'' platnik1$=platnik1$ & '' & regonplus$ & '' end platnik2$=''& firma$ & '' end // typ_zgl$='' zgloszenie$='' //zmiana$='' // Pobierz dane organizacyjne (typ$, zgloszenie$, zmiana$) if zgloszenie$<>'' typ_zgl$='true' // pierwsze zgˆoszenie else typ_zgl$='true' // korekta lub zmiana end call Naglowek // ------------------- WybierzPracownik¢w() LOOP Nast©pnyWybranyPracownik() if eof() break end call zeruj // Czy˜†TabNum() Czy˜†TabTxt() ilpoz=0 ile=0 Clear(Dane o pracy w szczeg¢lnych warunkach FEP) Set(Dane o pracy w szczeg¢lnych warunkach FEP) Loop Next(Dane o pracy w szczeg¢lnych warunkach FEP) if eof() or Dane o pracy w szczeg¢lnych warunkach FEP (Okres Od) >okres_do break end if Dane o pracy w szczeg¢lnych warunkach FEP (Okres Do) okres_do TabNum(ilpoz,2)=okres_do else TabNum(ilpoz,2)=Dane o pracy w szczeg¢lnych warunkach FEP (Okres Do) end end if ilpoz=0 cycle end ile=ilpoz/4 if ile-Int(ile)>0 ile=Int(ile)+1 end //info('Sekcja prac - ile:' && num2txt(ile) && 'ilpoz:' && num2txt(ilpoz)) // ======================== // ---- blok III - DOOPWSW Pobierz dane identyfikacyjne ubezpieczanego (data, typ$, rodz_dok_pr, nr_dok_pr$) nip_pr$=Funkcja usuwaj¥ca znaki przestankowe (Pracownik (NIP)) if Pracownik (PESEL)<>'' and nip_pr$<>'' and Pracownik (Dokument)=0 dok_pr$='' else if dok_pr$<>'' nr_dok_pr$=Funkcja usuwaj¥ca znaki przestankowe (nr_dok_pr$) dok_pr$='' & Format(rodz_dok_pr, '@n1B') & '' dok_pr$=dok_pr$ & '' & SubString(nr_dok_pr$,1,9) & '' end end // nazwisko_pr$=SubString(Pracownik (Nazwisko),1,31) nazwisko_pr$=Kodowanie UNICODE (nazwisko_pr$) nazwisko_pr$=''& nazwisko_pr$ & '' imie1_pr$=SubString(Pracownik (Imi©),1,22) imie1_pr$=Kodowanie UNICODE (imie1_pr$) imie1_pr$='' & imie1_pr$ & '' if Pracownik (PESEL) <>'' pesel_pr$='' & Pracownik (PESEL) & '' end if Pracownik (NIP) <>'' nip_pr$=Funkcja usuwaj¥ca znaki przestankowe (Pracownik (NIP)) nip_pr$='' & nip_pr$ & '' end if Pracownik (Data urodzenia) >0 data_ur_pr$='' & Format(Pracownik (Data urodzenia), '@d10-') & '' end // kod_tyt$=Pobierz tytuˆ ubezpieczenia (data, kod_tyt$) kod_tyt1$=SubString(kod_tyt$,1,4) kod_tyt2$=SubString(kod_tyt$,5,1) kod_tyt3$=SubString(kod_tyt$,6,1) // k=1 i=0 while k<=ile // ---- blok IIIa - DOOPWSW_A tekst$='' call AddKolejka tekst$=typ_zgl$ call AddKolejka tekst$=pesel_pr$ call AddKolejka tekst$=nip_pr$ call AddKolejka tekst$=dok_pr$ call AddKolejka tekst$=nazwisko_pr$ call AddKolejka tekst$=imie1_pr$ call AddKolejka tekst$=data_ur_pr$ call AddKolejka tekst$='' call AddKolejka // ---- blok IIIb - DOOPWSW_B tekst$='' call AddKolejka tekst$='' & kod_tyt1$ & '' call AddKolejka tekst$='' & kod_tyt2$ & '' call AddKolejka tekst$='' & kod_tyt3$ & '' call AddKolejka // okresy pracy w warunkach szkodliwych kod_pracy_wsw1$='' kod_pracy_wsw2$='' kod_pracy_wsw3$='' kod_pracy_wsw4$='' j=1 while j<5 i=i+1 if i>ilpoz break end kod_pr$=TabTxt(i,1) etat$=TabTxt(i,2) d_od=TabNum(i,1) d_do=TabNum(i,2) EtatZus (etat$, etat1, etat2) //info('i=' && num2txt(i) && data2txt(d_od)) case of j=1 kod_pracy_wsw1$='' & kod_pr$ & '' kod_pracy_wsw1$=kod_pracy_wsw1$ & '' & Format(d_od, '@d10-') & '' kod_pracy_wsw1$=kod_pracy_wsw1$ & '' & Format(d_do, '@d10-') & '' kod_pracy_wsw1$=kod_pracy_wsw1$ & '' & Format(etat1, '@n03') & '' kod_pracy_wsw1$=kod_pracy_wsw1$ & '' & Format(etat2, '@n03') & '' tekst$=kod_pracy_wsw1$ call AddKolejka of j=2 kod_pracy_wsw2$='' & kod_pr$ & '' kod_pracy_wsw2$=kod_pracy_wsw2$ & '' & Format(d_od, '@d10-') & '' kod_pracy_wsw2$=kod_pracy_wsw2$ & '' & Format(d_do, '@d10-') & '' kod_pracy_wsw2$=kod_pracy_wsw2$ & '' & Format(etat1, '@n03') & '' kod_pracy_wsw2$=kod_pracy_wsw2$ & '' & Format(etat2, '@n03') & '' tekst$=kod_pracy_wsw2$ call AddKolejka of j=3 kod_pracy_wsw3$='' & kod_pr$ & '' kod_pracy_wsw3$=kod_pracy_wsw3$ & '' & Format(d_od, '@d10-') & '' kod_pracy_wsw3$=kod_pracy_wsw3$ & '' & Format(d_do, '@d10-') & '' kod_pracy_wsw3$=kod_pracy_wsw3$ & '' & Format(etat1, '@n03') & '' kod_pracy_wsw3$=kod_pracy_wsw3$ & '' & Format(etat2, '@n03') & '' tekst$=kod_pracy_wsw3$ call AddKolejka of j=4 kod_pracy_wsw4$='' & kod_pr$ & '' kod_pracy_wsw4$=kod_pracy_wsw4$ & '' & Format(d_od, '@d10-') & '' kod_pracy_wsw4$=kod_pracy_wsw4$ & '' & Format(d_do, '@d10-') & '' kod_pracy_wsw4$=kod_pracy_wsw4$ & '' & Format(etat1, '@n03') & '' kod_pracy_wsw4$=kod_pracy_wsw4$ & '' & Format(etat2, '@n03') & '' tekst$=kod_pracy_wsw4$ call AddKolejka end j=j+1 end tekst$='' call AddKolejka k=k+1 end END tekst$='' & Format(data,'d10-') & '' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka //******************* nazwa_pliku$='zus_zswa.xml' Transfer ZUS (nazwa_pliku$,0) // // **** Procedury ****** // Naglowek: // naglowek.DP tekst$='' call AddKolejka // DOZD - dane organizacyjne raportu tekst$='' & Format(numer,'@n03') & '' call AddKolejka tekst$='' & Format(rok,'@n4') & '' & '' call AddKolejka // DIPL - dane identyfikacyjne pˆatnika tekst$='' call AddKolejka tekst$=platnik1$ call AddKolejka tekst$=platnik2$ call AddKolejka tekst$=platnik3$ call AddKolejka tekst$=platnik4$ call AddKolejka tekst$='' call AddKolejka // AddKolejka: l1=len(tekst$) l2=1 while l2<=l1 Kolejka(Num1)=w Kolejka(Txt1)=substring(tekst$,l2,1) Add(Kolejka,'Num1') l2=l2+1 w=w+1 end // zeruj: kod_tyt$='' kod_tyt1$='' kod_tyt2$='' kod_tyt3$='' kod_pr$='' kod_pracy_wsw1$='' kod_pracy_wsw2$='' kod_pracy_wsw3$='' kod_pracy_wsw4$='' nazwisko_pr$='' imie1_pr$='' pesel_pr$='' nip_pr$='' data_ur_pr$='' rodz_dok_pr=0 nr_dok_pr$='' dok_pr$='' etat$='' etat1=0 etat2=0 datapr_wsw=0 d_od=0 d_do=0