; vypocet pohledavek a zavazku podle splatnosti 30-90-180-365 ; verze z 10.04.2002 ; Autor: WinDUO Team Name('Faktury po splatnosti') Designed('','ZavMan#1','PohlMan#1') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('30-90-180-365 dní po splatnosti') FileName('F3090.WNS') NewWNS(); WNSType(1); DeclareRec('Program') ;jak vymyslet, aby to bylo shodne i pro zavazky? ;dotazy: ;zadej datum, ke kteremu bude vyhodnoceno ;součtová tabulka přesně nebo v tisicích ;oznameni, ze nerozkontovane pohledavky jsou vyhodnoceny jako kratkodobe z obchodniho styku ;oznameni, ze je to podle pravidel roku 2002 ;definovat tabulku, ktery ucet je dlouho a ktery kratko... Kniha:String='Pohledavka' Klic:String='Key'+kniha+'8' LocStr:String DlRadekOd:Word=0 DlRadekDo:Word=0 KrRadekOd:Word=0 KrRadekDo:Word=0 DlObchod:Word=0 KrObchod:Word=0 debug ;podnikatelska zjednodusena 2002 if((Program.TypFirmy=0) and (Program.ZkraceneF) and (Val(Rok(4))>=2002)) begin DlRadekOd=31 DlRadekDo=36 KrRadekOd=37 KrRadekDo=44 DlObchod=32 KrObchod=38 end ;podnikatelska zkracena pred 2002 if((Program.TypFirmy=0) and (Program.ZkraceneF) and (Val(Rok(4))<2002)) begin DlRadekOd=29 DlRadekDo=34 KrRadekOd=35 KrRadekDo=43 DlObchod=30 KrObchod=36 end ;podnikatelska plna 2002 if((Program.TypFirmy=0) and (Program.ZkraceneF=False) and (Val(Rok(4))>=2002)) begin DlRadekOd=38 DlRadekDo=43 KrRadekOd=44 KrRadekDo=51 DlObchod=39 KrObchod=45 end ;podnikatelska plna pred 2002 if((Program.TypFirmy=0) and (Program.ZkraceneF=False) and (Val(Rok(4))<2002)) begin DlRadekOd=36 DlRadekDo=41 KrRadekOd=42 KrRadekDo=50 DlObchod=37 KrObchod=43 end ;prispevkova (OU) po roce 2001 if(Program.TypFirmy=5) begin DlRadekOd=999 DlRadekDo=999 KrRadekOd=52 KrRadekDo=73 DlObchod=999 KrObchod=52 end ;nevydelecne po roce 2001 if(Program.TypFirmy=6) begin DlRadekOd=999 DlRadekDo=999 KrRadekOd=53 KrRadekDo=70 DlObchod=999 KrObchod=53 end LocB:Boolean IF(Program.TypFirmy=1) ; přísp. do roku 1999 LocB=True IF(Program.TypFirmy=2) ; strany a hnuti do roku 1999 LocB=True IF(Program.TypFirmy=3) ; spor.druzstva do roku 2001 LocB=True IF(Program.TypFirmy=4) ; obecne prospesne LocB=True IF(Program.TypFirmy>6) ; banky a ostatni financni instituce (od roku 2002) a nedef. LocB=True IF(LocB) Halt('Výpočet není určen pro Váš typ firmy: '+Str(Program.TypFirmy,2,0)) DatumD:Word=0 rSU :Word=0 rAU :Word=0 Kratkodoba:Boolean=False ;zda je dlouho nebo kratkodoba Zatrid:Boolean=False ;zda ji bylo mozno zatridit Obchodni:Boolean=False ;zda je obchodni Record NovaVeta ;definuje strukturu noveho indexoveho souboru Length:Byte; kod :Byte; doklad:String[8]; datum :Word; end; Veta:LongInt VetaUR:LongInt DeclareRec(Kniha) TempKniha:@Kniha ;definuje novy soubor stejneho typu,jako je pohledavka DeclareRec(Klic) TempKlic:NovaVeta ;definuje indexovy soubor stejneho typu,jak byl def.vyse DeclareRec('UcetniRozvrh') DeclareRec('KeyUcetniRozvrh1') MakeTempFile(TempKniha,TempKlic,True) ; zalozi novy docasny indexovany soubor ;MakeTempFile(,TempKlic,True) ;zařazení pohledávek do skupin ClearKey(@Klic) While(NextKey(@Klic,Veta)) ;cyklus pres pohledavky begin ReadRec(@Kniha,Veta) TempKniha=@Kniha ;naplni hodnoty pro docasny soubor TempKlic.Length=10 ;?????? ;vyhodnocení: ;dlouhodobá nebo krátkodobá: Kratkodoba=True ;číslo účtu v účetním kódu KeyUcetniRozvrh1.Length=4 LocStr=Kniha+'.rSU' KeyUcetniRozvrh1.SU=Swap(@LocStr) LocStr=Kniha+'.rAU' KeyUcetniRozvrh1.AU=Swap(@LocStr) if(FindKey(KeyUcetniRozvrh1,VetaUR)) begin Zatrid=False if((UcetniRozvrh.frad>=DlRadekOd)and(UcetniRozvrh.frad<=DlRadekDo)) begin Kratkodoba=False Zatrid=True end if((UcetniRozvrh.frad>=KrRadekOd)and(UcetniRozvrh.frad<=KrRadekDo)) begin Kratkodoba=True Zatrid=True end if((UcetniRozvrh.frad=DlObchod)or(UcetniRozvrh.frad=KrObchod)) Obchodni=True end else ;nenalezeno v rozvrhu begin Kratkodoba=True Obchodni=True end TempKlic.Kod=Kod TempKlic.Doklad=TempKniha.Doklad TempKlic.Datum=TempKniha.DatSpl AddKey(TempKlic,AddRec(TempKniha)) ;zapise udaje do indexoveho souboru i do datoveho souboru end ;definice hlavicky pro tisk: SetColumn(0,ta_Left,10) ;Doklad SetColumn(1,ta_Left,10) ;z Data SetColumn(2,ta_Left,25) ;Popis SetColumn(3,ta_Right,3) ;rSU SetColumn(4,ta_Right,3) ;rAU SetColumn(5,ta_Right,12) ;Castka SetHead('Doklad\tz Data\tPopis\trSU\trAU\tČástka'); ClearKey(TempKlic) While(NextKey(TempKlic,Veta)) ;cyklus pro tisk podle noveho setrideni begin ReadRec(TempKniha,Veta) AddLine(TempKniha.Doklad+#9+StrDate(TempKniha.Datum)+#9+TempKniha.Popis+#9+StrSU(TempKniha.rSU)+#9+StrSU(TempKniha.rAU)+#9+StrFinanc(TempKniha.Castka)) end CloseTempFile(TempKniha) END;