//#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