alter procedure SpoctiCPZPrintStravne @LinkCPZ uniqueidentifier as -- v predpripravene tabulce TiskCPZStravne dopocita sazbu stravneho a menu set nocount on declare @SazbaStravne1 float, @SazbaStravne2 float, @SazbaStravne3 float, @Datum datetime, @LinkOsoba uniqueidentifier, @PodnikatelZamestnanec smallint, @ProcentoKapesne smallint, @KraceniZ01 smallint, @KraceniZ02 smallint, @KraceniZ03 smallint, @KraceniT01 smallint, @KraceniT02 smallint, @KraceniT03 smallint, @NavyseniVedouci smallint --zjistit procento kapesneho select @ProcentoKapesne=Kapesne from CPZ where LinkCPZ=@LinkCPZ --najit castku stravneho a menu update TiskCPZStravne set Sazba=(select top 1 Sazba from StravneZahranicni where LinkZeme=TiskCPZStravne.LinkZeme and TiskCPZStravne.Datum>=Datum1 and TiskCPZStravne.Datum<=Datum2) where LinkCPZ=@LinkCPZ update TiskCPZStravne set LinkMena=(select top 1 LinkMena from StravneZahranicni where LinkZeme=TiskCPZStravne.LinkZeme and TiskCPZStravne.Datum>=Datum1 and TiskCPZStravne.Datum<=Datum2) where LinkCPZ=@LinkCPZ --zjistit datum 1. etapy select TOP 1 @Datum=Datum from EtapaZ where LinkCPZ=@LinkCPZ order by Datum --zjistit udaje o ridici select @LinkOsoba=LinkOsoba from CPZ where LinkCPZ=@LinkCPZ select @PodnikatelZamestnanec=PodnikatelZamestnanec, @NavyseniVedouci=NavyseniVedouci from Osoby where LinkOsoba=@LinkOsoba --spocitat navysenou sazbu za to ze je vedouci if @NavyseniVedouci>0 begin update TiskCPZStravne set Sazba = Sazba * (1.0+@NavyseniVedouci/100.0) where LinkCPZ=@LinkCPZ end if Year(@Datum)<2007 begin --spocitat pocet hodin v zahranici update TiskCPZStravne set PocHodZah=ceiling(PocMinZah/60) where LinkCPZ=@LinkCPZ --spocitat stravne pro pocet hodin vetsi nez 12 update TiskCPZStravne set Castka=Sazba where LinkCPZ=@LinkCPZ and PocHodZah>=12 --spocitat stravne pro pocet hodin mensi nez 12 a vetsi nez 0 update TiskCPZStravne set Castka=(Sazba/24)*PocHodZah where LinkCPZ=@LinkCPZ and PocHodZah>0 and PocHodZah<12 --spocitat kapesne PRED kracenim update TiskCPZStravne set Kapesne = (Castka/100)*@ProcentoKapesne where LinkCPZ=@LinkCPZ --spocitat kraceni update TiskCPZStravne set Castka = (Castka/100)*Kraceni where LinkCPZ=@LinkCPZ --secist zkracenou castku a kapesne update TiskCPZStravne set VyslednaCastka=Kapesne+Castka where LinkCPZ=@LinkCPZ end if Year(@Datum)=2007 begin --spocitat pocet hodin v zahranici update TiskCPZStravne set PocHodZah=ceiling(PocMinZah/60) where LinkCPZ=@LinkCPZ --spocitat stravne pro pocet hodin vetsi nez 12 update TiskCPZStravne set Castka=Sazba where LinkCPZ=@LinkCPZ and PocMinZah>720 --spocitat stravne pro pocet hodin 6 az 12 update TiskCPZStravne set Castka=(Sazba/2) where LinkCPZ=@LinkCPZ and PocMinZah>360 and PocMinZah<=720 --spocitat stravne pro pocet hodin 1 az 6 update TiskCPZStravne set Castka=(Sazba/4) where LinkCPZ=@LinkCPZ and PocMinZah>=60 and PocMinZah<=360 --spocitat kapesne PRED kracenim update TiskCPZStravne set Kapesne = (Castka/100)*@ProcentoKapesne where LinkCPZ=@LinkCPZ ------------------------------------- --spocitat procento kraceni zahranicni select @KraceniZ01=KraceniZ01, @KraceniZ02=KraceniZ02, @KraceniZ03=KraceniZ03 from Sazba2007 where LinkOsoba=@LinkOsoba -- 1-6 hodin update TiskCPZStravne set Kraceni=100-(PocetJidel*@KraceniZ01) where LinkCPZ=@LinkCPZ and PocMinZah>=60 and PocMinZah<=360 -- 6-12 hodin update TiskCPZStravne set Kraceni=100-(PocetJidel*@KraceniZ02) where LinkCPZ=@LinkCPZ and PocMinZah>360 and PocMinZah<=720 -- vic nez 12 update TiskCPZStravne set Kraceni=100-(PocetJidel*@KraceniZ03) where LinkCPZ=@LinkCPZ and PocMinZah>720 ------------------------------------ --spocitat procento kraceni tuzemske select @KraceniT01=Kraceni01, @KraceniT02=Kraceni02, @KraceniT03=Kraceni03 from Sazba2007 where LinkOsoba=@LinkOsoba -- 5-12 hodin update TiskCPZStravne set KraceniTuz=100-(PocetJidelTuz*@KraceniT01) where LinkCPZ=@LinkCPZ and PocMinTuz>=300 and PocMinTuz<=720 -- 12-18 hodin update TiskCPZStravne set KraceniTuz=100-(PocetJidelTuz*@KraceniT02) where LinkCPZ=@LinkCPZ and PocMinTuz>720 and PocMinTuz<=1080 -- vic nez 18 update TiskCPZStravne set KraceniTuz=100-(PocetJidelTuz*@KraceniT03) where LinkCPZ=@LinkCPZ and PocMinTuz>1080 --zaporne procento vynulovat update TiskCPZStravne set Kraceni=0 where LinkCPZ=@LinkCPZ and Kraceni<0 update TiskCPZStravne set KraceniTuz=0 where LinkCPZ=@LinkCPZ and KraceniTuz<0 --zkratit stravne o spoctene procento update TiskCPZStravne set Castka = (Castka/100)*Kraceni where LinkCPZ=@LinkCPZ --secist zkracenou castku a kapesne update TiskCPZStravne set VyslednaCastka=Kapesne+Castka where LinkCPZ=@LinkCPZ end if Year(@Datum)=2008 begin --spocitat pocet hodin v zahranici update TiskCPZStravne set PocHodZah=ceiling(PocMinZah/60) where LinkCPZ=@LinkCPZ --spocitat stravne pro pocet hodin vetsi nez 12 update TiskCPZStravne set Castka=Sazba where LinkCPZ=@LinkCPZ and PocMinZah>720 --spocitat stravne pro pocet hodin 6 az 12 update TiskCPZStravne set Castka=(Sazba/2) where LinkCPZ=@LinkCPZ and PocMinZah>360 and PocMinZah<=720 --spocitat stravne pro pocet hodin 1 az 6 update TiskCPZStravne set Castka=(Sazba/4) where LinkCPZ=@LinkCPZ and PocMinZah>=60 and PocMinZah<=360 --spocitat kapesne PRED kracenim update TiskCPZStravne set Kapesne = (Castka/100)*@ProcentoKapesne where LinkCPZ=@LinkCPZ ------------------------------------- --spocitat procento kraceni zahranicni select @KraceniZ01=KraceniZ01, @KraceniZ02=KraceniZ02, @KraceniZ03=KraceniZ03 from Sazba2008 where LinkOsoba=@LinkOsoba -- 1-6 hodin update TiskCPZStravne set Kraceni=100-(PocetJidel*@KraceniZ01) where LinkCPZ=@LinkCPZ and PocMinZah>=60 and PocMinZah<=360 -- 6-12 hodin update TiskCPZStravne set Kraceni=100-(PocetJidel*@KraceniZ02) where LinkCPZ=@LinkCPZ and PocMinZah>360 and PocMinZah<=720 -- vic nez 12 update TiskCPZStravne set Kraceni=100-(PocetJidel*@KraceniZ03) where LinkCPZ=@LinkCPZ and PocMinZah>720 ------------------------------------ --spocitat procento kraceni tuzemske select @KraceniT01=Kraceni01, @KraceniT02=Kraceni02, @KraceniT03=Kraceni03 from Sazba2008 where LinkOsoba=@LinkOsoba -- 5-12 hodin update TiskCPZStravne set KraceniTuz=100-(PocetJidelTuz*@KraceniT01) where LinkCPZ=@LinkCPZ and PocMinTuz>=300 and PocMinTuz<=720 -- 12-18 hodin update TiskCPZStravne set KraceniTuz=100-(PocetJidelTuz*@KraceniT02) where LinkCPZ=@LinkCPZ and PocMinTuz>720 and PocMinTuz<=1080 -- vic nez 18 update TiskCPZStravne set KraceniTuz=100-(PocetJidelTuz*@KraceniT03) where LinkCPZ=@LinkCPZ and PocMinTuz>1080 --zaporne procento vynulovat update TiskCPZStravne set Kraceni=0 where LinkCPZ=@LinkCPZ and Kraceni<0 update TiskCPZStravne set KraceniTuz=0 where LinkCPZ=@LinkCPZ and KraceniTuz<0 --zkratit stravne o spoctene procento update TiskCPZStravne set Castka = (Castka/100)*Kraceni where LinkCPZ=@LinkCPZ --secist zkracenou castku a kapesne update TiskCPZStravne set VyslednaCastka=Kapesne+Castka where LinkCPZ=@LinkCPZ end --------------- --soubeh nahrad --------------- --zjistit sazby stravneho if Year(@Datum)<2007 begin select @SazbaStravne1=A03, @SazbaStravne2=B03, @SazbaStravne3=C03 from StravneTuzemske where @Datum>=Datum1 and @Datum<=Datum2 and LinkOsoba=@LinkOsoba end if Year(@Datum)=2007 begin select @SazbaStravne1=Stravne01, @SazbaStravne2=Stravne02, @SazbaStravne3=Stravne03 from Sazba2007 where LinkOsoba=@LinkOsoba end if Year(@Datum)=2008 begin select @SazbaStravne1=Stravne01, @SazbaStravne2=Stravne02, @SazbaStravne3=Stravne03 from Sazba2008 where LinkOsoba=@LinkOsoba end --spocitat soubeh nahrad update TiskCPZStravne set SoubehNahrad=dbo.SpoctiStravne(PocMinTuz,100,@SazbaStravne1,@SazbaStravne2,@SazbaStravne3,@PodnikatelZamestnanec) where PocMinTuz>=300 and LinkCPZ=@LinkCPZ --aplikovat kraceni na soubeh nahrad update TiskCPZStravne set SoubehNahrad = (SoubehNahrad/100)*KraceniTuz where LinkCPZ=@LinkCPZ