// *************************************************************************** // * * // * Składnik podaje wysokości składki na ubezpieczenie zdrowotnej. * // * * // * * // * 17.12.2013 WA-PRO (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) a3=Max(a1-a2,0) //składki na ubezpieczenie społeczne nie znajdujące pokrycia w dochodzie z wynagrodze˝ dochod1=Max(a2-a1,0) dochod2=Max([Świadczenia z ubezpieczenia społecznego do opodat.]-[Potrącenie 2]-a3-koszt2,0) //pomniejszenie przychodu ze świadcze˝ o dochód ze stosunku pracy wynikajacy z korekt if [Przychody ze stosunku pracy do opodatkowania]<0 a2=Round([Przychody ze stosunku pracy do opodatkowania]*pr_skladek,0.01) 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)) 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 zaliczka1=(Round(dochod1,1))*[Procent podatku]*0.01 //zaliczka1=zaliczka1-a1 zaliczka1=Max(zaliczka1-a1,0) // 3.01.2014 a1=0 end // if dochod2>0 if dochod1>0 zaliczka2=zaliczka-zaliczka1 else zaliczka2=(Round(dochod2,1))*[Procent podatku]*0.01 //zaliczka2=zaliczka2-a1 zaliczka2=Max(zaliczka2-a1,0) // 3.01.2014 end end //info('podatek:' && num2txt(zaliczka) && 'ulga:' && num2txt(a1) && 'zaliczka1:' && num2txt(zaliczka1) && 'zaliczka2:' && num2txt(zaliczka2)) //-------------------------------------------------- // 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(([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)*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_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 if skladka_zd > zaliczka1 if skladka_zd > zaliczka2 //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(([Podstawa wymiaru na ubezpieczenie zdrowotne]+podstawa_zdr-a2)*st_ub_zdrowotne/100,0.01) skladka_zd=a1-skladka_zdr skladka1=Min(zaliczka1+podatek,skladka_zd) skladka2=Min(zaliczka2,skladka_zd-skladka1) skladka1o=Min(zaliczka1+podatek,skladka_zdo) skladka2o=Min(zaliczka2,skladka_zdo-skladka1o) a1=Round(a2*st_ub_zdrowotne/100,0.01) skladka1=skladka1+a1 else skladka1=Min(zaliczka1+podatek,skladka_zd) skladka2=Min(zaliczka2,skladka_zd-skladka1) skladka1o=Min(zaliczka1+podatek,skladka_zdo) skladka2o=Min(zaliczka2,skladka_zdo-skladka1o) // a1=skladka_zdo-(zaliczka1+podatek+zaliczka2) // a1=Max(skladka_zdo-(zaliczka1+zaliczka2+podatek),0) //limit odliczenia // INFO('limit'&&num2txt(a1)) // skladka1=Max(skladka_zd-a1,0) // skladka2=Max(skladka_zd-skladka1-a1,0) 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)) []=skladka1+skladka2-[Składka zdrowotna potrącona przez ZUS] // *************************************************************************** // * * // * 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 // koniec Zerowanie zmiennych