// *************************************************************************** // * * // * Składnik podaje wysokości składki na ubezpieczenie zdrowotnej. * // * * // * * // * 6.08.2019 WAPRO (Dział Rozwoju Oprogramowania) * // *************************************************************************** // Zerowanie zmiennych używanych przez algorytm podatków Call Zerowanie zmiennych //obliczenia teoretycznego podatku //obliczenie dochodów koszt1=Min(Max([Przychody ze stosunku pracy do opodatkowania]-[Potrącenie 1],0),[Koszty uzyskania przychodu]) koszt2=[Koszty uzyskania przychodu]-koszt1 a1=[Składka na ubezpieczenie emerytalne] a1=a1+[Składka na ubezpieczenie rentowe] a1=a1+[Składka na ubezpieczenie chorobowe] a1=a1-[Składki na ub.społeczne od przychodu zwolnionego] a2=Max([Przychody ze stosunku pracy do opodatkowania]-koszt1-[Potrącenie 1],0) a2=a2+[Składka podstawowa pracodawcy na PPK]+[Składka dobrowolna pracodawcy na PPK] a3=Max(a1-a2,0) //składki na ubezpieczenie społeczne nie znajdujące pokrycia w dochodzie z wynagrodze˝ dochod1=Max(a2-a1,0) dochod1=Max(dochod1-[Kwota równoważna diecie do podatku],0) dochod2=Max([Świadczenia z ubezpieczenia społecznego do opodat.]-[Potrącenie 2]-a3-koszt2,0) dochod_zd=Max([Podstawa wymiaru na ubezpieczenie zdrowotne]-WyróżnikListy (Składnik zwol.z podatku podst.na ub.społ.i zdr.)+[Składki na ub.społeczne od przychodu zwolnionego]-koszt1,0) dochod_zd=dochod_zd+[Nadpłacona składka na ubezpieczenie emeryt.-rent.] //pg dochod_zd=dochod_zd+[Nadpłacona składka na ub. emeryt.-rent. w br.roku] //INFO('dochod1:'&&num2txt(dochod1)&&'dochod2:'&&num2txt(dochod2)&&'dochod_zd:'&&num2txt(dochod_zd)) //pomniejszenie przychodu ze świadcze˝ o dochód ze stosunku pracy wynikajacy z korekt if [Przychody ze stosunku pracy do opodatkowania]<0 a4=[Przychody ze stosunku pracy do opodatkowania]-[Wynagrodzenie za okres choroby do 35 dni (razem)] if a4<0 a2=Round(a4*pr_skladek,0.01) else a2=0 end dochod2=dochod2+([Przychody ze stosunku pracy do opodatkowania]-a2) end //obliczenie zaliczek na podatek (bez ulgi) if {Zaokrągać zaliczkę na podatek} zaliczka=Max(0,Round(dochod1+dochod2,1)*[Procent podatku]*0.01) else zaliczka=Max(0,(dochod1+dochod2)*[Procent podatku]*0.01) end //info('zaliczka bez ulgi:' && num2txt(zaliczka)&& num2txt(zaliczka_zd)) zaliczka=Max(zaliczka-[Ulga podatkowa],0) //info('zaliczka po uwzgl.ulgi:' && num2txt(zaliczka)) // //-------- 17.12.2013 ML ---------------------------- a1=[Ulga podatkowa] zaliczka1=0 if dochod1>0 and brak_zaliczki=0 //PG 06.08.2019 zaliczka1=(Round(dochod1,1))*[Procent podatku]*0.01 zaliczka1=Max(zaliczka1-a1,0) // 3.01.2014 zaliczka_zd=(Round(dochod_zd,1))*[Procent podatku]*0.01 zaliczka_zd=Max(zaliczka_zd-a1,0) a1=0 else zaliczka_zd=(Round(dochod_zd,1))*[Procent podatku]*0.01 zaliczka_zd=Max(zaliczka_zd-a1,0) end // if dochod2>0 if dochod1>0 and brak_zaliczki=0 //PG 06.08.2019 zaliczka2=zaliczka-zaliczka1 else zaliczka2=(Round(dochod2,1))*[Procent podatku]*0.01 zaliczka2=Max(zaliczka2-a1,0) // 3.01.2014 end end //info('podatek:' && num2txt(zaliczka) && 'ulga:' && num2txt(a1) && 'zaliczka1:' && num2txt(zaliczka1) && 'zaliczka2:' && num2txt(zaliczka2)&& 'zaliczka_zd:' && num2txt(zaliczka_zd)) //-------------------------------------------------- // if ub_zdrowotne and (not absolwent) a1=Round(([Podstawa wymiaru na ubezpieczenie zdrowotne]+podstawa_zdr)*st_ub_zdrowotne/100,0.01) skladka_zd=a1-skladka_zdr a1=Round(Max([Podstawa wymiaru na ubezpieczenie zdrowotne]+podstawa_zdr-WyróżnikListy (Składnik zwol.z podatku podst.na ub.społ.i zdr.)+[Składki na ub.społeczne od przychodu zwolnionego]-skladnik_zwolniony+skladki_od_zwol,0)*st_ub_zdrowotne_o/100,0.01) skladka_zdo=a1-skladka_zdro end pr_skl_zdr_zwrot=[Procent składki zdrowotnej z roku nadpłaty składek]/100 if pr_skl_zdr_zwrot=0 pr_skl_zdr_zwrot=0.0775 else pr_skl_zdr_zwrot=Min(pr_skl_zdr_zwrot,0.0775) end //INFO('skl_zdr:' && num2txt(skladka_zd) && 'zdr_o:' &&num2txt(skladka_zdo)) skladka_zd=skladka_zd+[Składka zdrowotna potrącona przez ZUS] skladka_zd=skladka_zd+Round([Nadpłacona składka na ub. emeryt.-rent. w br.roku]*0.09,0.01) skladka_zdo_zus=Round([Nadpłacona składka na ubezpieczenie emeryt.-rent.]*pr_skl_zdr_zwrot,0.01) skladka_zdo_zus=skladka_zdo_zus+Round([Nadpłacona składka na ub. emeryt.-rent. w br.roku]*0.0775,0.01) skladka_zdo=skladka_zdo+skladka_zdo_zus // określenie od której zaliczki i w jakiej wysokości potrącić składkę na // ubezpieczenie zdrowotne //INFO(num2txt(zaliczka1)&&num2txt(zaliczka2)) //INFO('skladka_zd' && num2txt(skladka_zd) && 'zaliczka_zd' &&num2txt(zaliczka_zd)&& 'cala zaliczka' &&num2txt(cala_zaliczka)) if skladka_zd > zaliczka_zd if skladka_zd > zaliczka2 or cala_zaliczka=0 //skladka zostanie rozpisana proporcjonalnie do podatku if ograniczenie_zd if WyróżnikListy (Składnik zwol.z podatku podst.na ub.społ.i zdr.)>0 a2=WyróżnikListy (Składnik zwol.z podatku podst.na ub.społ.i zdr.)-[Składki na ub.społeczne od przychodu zwolnionego] a1=Round(Max([Podstawa wymiaru na ubezpieczenie zdrowotne]+podstawa_zdr-a2,0)*st_ub_zdrowotne/100,0.01) skladka_zd=a1-skladka_zdr skladka1=Min(zaliczka_zd+podatek,skladka_zd) skladka1o=Min(zaliczka_zd+podatek,skladka_zdo) if cala_zaliczka=1 skladka2=Min(zaliczka2,skladka_zd-skladka1) skladka2o=Min(zaliczka2,skladka_zdo-skladka1o) end a1=Round(a2*st_ub_zdrowotne/100,0.01) skladka1=skladka1+a1 else skladka1=Min(zaliczka_zd+podatek,skladka_zd) skladka1o=Min(zaliczka_zd+podatek,skladka_zdo) if cala_zaliczka=1 skladka2=Min(zaliczka2,skladka_zd-skladka1) skladka2o=Min(zaliczka2,skladka_zdo-skladka1o) end end else skladka2=Min(zaliczka2,skladka_zd) skladka1=skladka_zd-skladka2 skladka2o=Min(zaliczka2,skladka_zdo) skladka1o=skladka_zdo-skladka2o end else //składka zostanie odpisana od św. z ub.społ. skladka2=skladka_zd skladka1=0 skladka2o=skladka_zdo skladka1o=0 //------ 17.12.2013 ML ------ skladka1o=zaliczka1 skladka2o=skladka_zdo-zaliczka1 //---------------------------- end else // skladkę odpisujemy od podatku od wynagrodze˝ skladka1=skladka_zd skladka2=0 skladka1o=skladka_zdo skladka2o=0 end //INFO('skladki_1o:' &&num2txt(skladka1o)&& '2o:' &&num2txt(skladka2o)) //INFO('skladka1:' && num2txt(skladka1) && 'skladka2' &&num2txt(skladka2)) []=Max(skladka1+skladka2-[Składka zdrowotna potrącona przez ZUS]-Round([Nadpłacona składka na ub. emeryt.-rent. w br.roku]*0.09,0.01),0) // *************************************************************************** // * * // * P O D P R O C E D U R Y * // * * // *************************************************************************** Zerowanie zmiennych: ulga1=0 ulga2=0 dochod1=0 dochod2=0 zaliczka1=0 zaliczka2=0 skladka1=0 skladka2=0 skladka_zd=0 skladka_zd1=0 skladka_zd2=0 skladka_zdo=0 skladka1o=0 skladka2o=0 zaliczka=0 dochod_zd=0 zaliczka_zd=0 // koniec Zerowanie zmiennych