; DDT pro tisk zápočtu ; verze z 1.8.2003 ; Autor: WinDUO Team Name('Zápočet - mailem') Designed('ZavMan#1','PohlMan#1') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Odeslání vzájemného zápočtu mailem') ;FileName('Zapocet.WNS') ValidCisla:String='0123456789' WNSType(-1); ;{texty} T1:String='Smlouva o vzájemném započtení pohledávek' T2:String='Smluvní strany:' T3:String='a' T4:String='se dohodly na vzájemném započtení pohledávek ve výši:' T5:String='Smluvní strana' T6:String='Rozdíl ve výši ' T7:String='uhradí' T8:String='pod variabilním symbolem' T9:String='na bankovní účet, uvedený na této faktuře.' T10:String='za smluvní stranu' T11:String='za smluvní stranu' T12:String='..................................' ;{ostatni promenne} DeclareRec('Program') SledICO:LongInt DeclareRec('Adresar') DeclareRec('KeyAdresar1') DeclareRec('Pohledavka') DeclareRec('KeyPohledavka3') DeclareRec('Zavazek') DeclareRec('KeyZavazek3') VetaA:LongInt VetaP:LongInt VetaZ:LongInt Beru:Boolean=False x:Boolean ;Aspon1:LongInt=0 SumaP:Real=0 SumaZ:Real=0 CelkemP:Real CelkemZ:Real Zapocteno:Real VSPoslP:String VSPoslZ:String ;{definice uvodniho dialogu, zadání období} ;DlgFollowMouse(True) DefDialog('Zápočet',462,224) DlgShade(-1,'',4,27,453,124) DlgStatic(-1,'Vytvoření vzájemného zápočtu a odeslání mailem',16,4,326) DlgStatic(-1,'IČ:',10,34,32) DlgEditICO(103,SledICO,50,32,,,104,105) DlgOnLineHelp(103,'IČ firmy, pro kterou chcete zápočet sestavit (F7)') DlgStatic(104,'',132,34,324) DlgStatic(105,'',132,52,324) DlgButton(id_OK,'OK',166+120,156); DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') DlgButton(id_Cancel,'Zpět',373,156); DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') ;DlgButton(id_Help,'Help',33,156); ;DlgOnLineHelp(id_Help,'Help') ;DlgSetHelp(help_Context,1040) IF(DlgExecute(True)<>ID_OK) Halt IF(SledICO=0) ; není vyplněno IČO begin Halt('Nevyplnili jste IČ'+#13+'Zpracování bylo ukončeno') end ;{vyhledani adresy} KeyAdresar1.Length=4 KeyAdresar1.Ico=SwapL(SledIco) if(FindKey(KeyAdresar1,VetaA)) begin ReadRec(Adresar,VetaA) end else begin ClearRec(Adresar) Halt('K zadanému IČ není v adresáři adresa'+#13+'Zpracování bylo ukončeno') end ;{test, zda je co zapocitat} KeyPohledavka3.Length=4 KeyPohledavka3.Ico=SwapL(SledIco) if(SearchKey(KeyPohledavka3,VetaP)) begin ReadRec(Pohledavka,VetaP) While((Pohledavka.ICO=SledICO)and(VetaP<>0)) begin if(not(Pohledavka.Uhrazena)) begin SumaP=SumaP+Pohledavka.Castka-Pohledavka.Uhrazeno end x=NextKey(KeyPohledavka3,VetaP) ReadRec(Pohledavka,VetaP) end end if(SumaP<>0) begin KeyZavazek3.Length=4 KeyZavazek3.Ico=SwapL(SledIco) if(SearchKey(KeyZavazek3,VetaZ)) begin ReadRec(Zavazek,VetaZ) While((Zavazek.ICO=SledIco)and(VetaZ<>0)) begin if(not(Zavazek.Uhrazena)) begin SumaZ=SumaZ+Zavazek.Castka-Zavazek.Uhrazeno end x=NextKey(KeyZavazek3,VetaZ) ReadRec(Zavazek,VetaZ) end end end if((SumaP=0)or(SumaZ=0)) begin Halt('Pro firmu: IČ='+NULL(SledICO,8,True)+' '+Adresar.Nazev+' není co započítat') end else begin ; vypocet a tisk započtu: HTMLFileName:String HTMLFile :TextFile if(Length(HTMLFileName)=0) begin HTMLFileName=WorkPath()+'Zapocet.htm'; end; Rewrite(HTMLFile,HTMLFileName,True) ; otevreni souboru Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'Vzájemný zápočet mezi IČ: '+Program.ICO+' - '+Program.Firma+' a IČ: '+SledIco+' - '+Adresar.Nazev+'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'
') Writeln(HTMLFile,'') ;{tisk hlavicky - nase adresa} Writeln(HTMLFile,Program.Firma+'
') if(Length(Program.Rozsireni)>0) Writeln(HTMLFile,Program.Rozsireni+'
') Writeln(HTMLFile,Program.Ulice+'
') Writeln(HTMLFile,Program.PSC+' '+Program.Mesto+'
') Writeln(HTMLFile,'
') ;{tisk hlavicky - adresa partnera} Writeln(HTMLFile,Adresar.Nazev+'
') if(Length(Adresar.Rozsireni)>0) Writeln(HTMLFile,Adresar.Rozsireni+'
') Writeln(HTMLFile,Adresar.Ulice+'
') Writeln(HTMLFile,Adresar.PSC+' '+Adresar.Mesto+'
') Writeln(HTMLFile,'



') Writeln(HTMLFile,'
') ;{tisk 1. casti textu} Writeln(HTMLFile,'

') Writeln(HTMLFile,T1) Writeln(HTMLFile,'

') ;{tisk 2. casti textu} Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'
') Writeln(HTMLFile,T2+'
') ;{tisk nasi adresy} Writeln(HTMLFile,'
') T2=Program.Firma IF(Length(Program.Rozsireni)<>0) T2=T2+' '+Program.Rozsireni T2=T2+', IČ: '+Program.ICO IF(Length(Program.DIC)<>0) T2=T2+', DIČ: '+Program.DIC Writeln(HTMLFile,T2+'
') T2=Program.PSC+' '+Program.Mesto+', '+Program.Ulice Writeln(HTMLFile,T2+'
') Writeln(HTMLFile,'
') Writeln(HTMLFile,T3+'
') ;{tisk adresy partnera} Writeln(HTMLFile,'
') T2=Adresar.Nazev IF(Length(Adresar.Rozsireni)<>0) T2=T2+' '+Adresar.Rozsireni T2=T2+', IČ: '+Adresar.ICO IF(Length(Adresar.DIC)<>0) T2=T2+', DIČ: '+Adresar.DIC Writeln(HTMLFile,T2+'
') T2=Adresar.PSC+' '+Adresar.Mesto+', '+Adresar.Ulice Writeln(HTMLFile,'

') ;{tisk 4. casti textu} Writeln(HTMLFile,T4+'
') IF(SumaP') Writeln(HTMLFile,StrFinanc(Zapocteno,2,True)+' '+Program.Mena+'
') Writeln(HTMLFile,'

') end ;{tisk prehledove tabulky} Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') IF(SumaP<=SumaZ) begin ;vypíše všechny pohl. a závazky jen do výše "započteno" ;výpis pohledávek KeyPohledavka3.Length=4 KeyPohledavka3.Ico=SwapL(SledIco) SumaP=0 if(SearchKey(KeyPohledavka3,VetaP)) begin ReadRec(Pohledavka,VetaP) While((Pohledavka.ICO=SledICO)and(VetaP<>0)) begin if(not(Pohledavka.Uhrazena)) begin Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') SumaP=SumaP+Pohledavka.Castka-Pohledavka.Uhrazeno VSPoslP=Pohledavka.Doklad end x=NextKey(KeyPohledavka3,VetaP) ReadRec(Pohledavka,VetaP) end Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') end ;vypis závazků Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') ;cyklus pro vypis zavazku KeyZavazek3.Length=4 KeyZavazek3.Ico=SwapL(SledIco) SumaZ=0 if(SearchKey(KeyZavazek3,VetaZ)) begin ReadRec(Zavazek,VetaZ) While((Zavazek.ICO=SledIco)and(VetaZ<>0)and(SumaZ'+Zavazek.VSymb+'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') SumaZ=SumaZ+Zavazek.Castka-Zavazek.Uhrazeno VSPoslZ=Zavazek.VSymb end x=NextKey(KeyZavazek3,VetaZ) ReadRec(Zavazek,VetaZ) end Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') ; závěrečné vyhodnocení: Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'
') Writeln(HTMLFile,'Variabilní symbol') Writeln(HTMLFile,'') Writeln(HTMLFile,'Splatnost') Writeln(HTMLFile,'') Writeln(HTMLFile,'Částka') Writeln(HTMLFile,'') Writeln(HTMLFile,'Uhrazeno') Writeln(HTMLFile,'') Writeln(HTMLFile,'Zbývá k úhradě') Writeln(HTMLFile,'
'+T5+''+Program.Firma+':') Writeln(HTMLFile,'
'+Pohledavka.Doklad+''+StrDate(Pohledavka.DatSpl)+''+StrFinanc(Pohledavka.Castka,2,True)+''+StrFinanc(Pohledavka.Uhrazeno,2,True)+''+StrFinanc(Pohledavka.Castka-Pohledavka.Uhrazeno,2,True)+'
') Writeln(HTMLFile,'Celkem') Writeln(HTMLFile,'') Writeln(HTMLFile,''+StrFinanc(SumaP,2,True)+'') Writeln(HTMLFile,'
'+T5+''+Adresar.Nazev+':') Writeln(HTMLFile,'
'+StrDate(Zavazek.DatSpl)+''+StrFinanc(Zavazek.Castka,2,True)+''+StrFinanc(Zavazek.Uhrazeno,2,True)+''+StrFinanc(Zavazek.Castka-Zavazek.Uhrazeno,2,True)+'
') Writeln(HTMLFile,'Celkem') Writeln(HTMLFile,'') Writeln(HTMLFile,''+StrFinanc(SumaZ,2,True)+'') Writeln(HTMLFile,'
 
') Writeln(HTMLFile,'Rozdíl') Writeln(HTMLFile,'') Writeln(HTMLFile,''+StrFinanc(SumaZ-SumaP,2,True)+'') Writeln(HTMLFile,'



') Writeln(HTMLFile,'
');konec tabulky s pohled8vkami Writeln(HTMLFile,'') IF(SumaZ-SumaP<>0) begin Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') end end end IF(SumaP>SumaZ) begin ;vypíše pohl. jen do výše "započteno" a všechny závazky ;výpis pohledávek KeyPohledavka3.Length=4 KeyPohledavka3.Ico=SwapL(SledIco) SumaP=0 if(SearchKey(KeyPohledavka3,VetaP)) begin ReadRec(Pohledavka,VetaP) While((Pohledavka.ICO=SledICO)and(VetaP<>0)and(SumaP'+Pohledavka.Doklad+'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') SumaP=SumaP+Pohledavka.Castka-Pohledavka.Uhrazeno VSPoslP=Pohledavka.Doklad end x=NextKey(KeyPohledavka3,VetaP) ReadRec(Pohledavka,VetaP) end Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') end ;vypis závazků Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') ;cyklus pro vypis zavazku KeyZavazek3.Length=4 KeyZavazek3.Ico=SwapL(SledIco) SumaZ=0 if(SearchKey(KeyZavazek3,VetaZ)) begin ReadRec(Zavazek,VetaZ) While((Zavazek.ICO=SledIco)and(VetaZ<>0)) begin if(not(Zavazek.Uhrazena)) begin Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') SumaZ=SumaZ+Zavazek.Castka-Zavazek.Uhrazeno VSPoslZ=Zavazek.VSymb end x=NextKey(KeyZavazek3,VetaZ) ReadRec(Zavazek,VetaZ) end Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') ; závěrečné vyhodnocení: Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'
') Writeln(HTMLFile,T6+StrFinanc(SumaZ-SumaP,2,True)+' '+Program.Mena+' '+T7+' '+Program.Firma+' '+Program.Rozsireni) Writeln(HTMLFile,'
') Writeln(HTMLFile,T8+' '+VSPoslZ+' '+T9) Writeln(HTMLFile,''+StrDate(Pohledavka.DatSpl)+''+StrFinanc(Pohledavka.Castka,2,True)+''+StrFinanc(Pohledavka.Uhrazeno,2,True)+''+StrFinanc(Pohledavka.Castka-Pohledavka.Uhrazeno,2,True)+'
') Writeln(HTMLFile,'Celkem') Writeln(HTMLFile,'') Writeln(HTMLFile,''+StrFinanc(SumaP,2,True)+'') Writeln(HTMLFile,'
'+T5+''+Adresar.Nazev+':') Writeln(HTMLFile,'
'+Zavazek.VSymb+''+StrDate(Zavazek.DatSpl)+''+StrFinanc(Zavazek.Castka,2,True)+''+StrFinanc(Zavazek.Uhrazeno,2,True)+''+StrFinanc(Zavazek.Castka-Zavazek.Uhrazeno,2,True)+'
') Writeln(HTMLFile,'Celkem') Writeln(HTMLFile,'') Writeln(HTMLFile,''+StrFinanc(SumaZ,2,True)+'') Writeln(HTMLFile,'
 
') Writeln(HTMLFile,'Rozdíl') Writeln(HTMLFile,'') Writeln(HTMLFile,''+StrFinanc(SumaP-SumaZ,2,True)+'') Writeln(HTMLFile,'



') Writeln(HTMLFile,'');konec tabulky s pohled8vkami Writeln(HTMLFile,'') ;Text(xTab1,PosunY,TA_Left,'Rozdíl') ;Text(xTab5,PosunY,TA_Right,StrFinanc(SumaP-SumaZ,2,True)) ;PosunY=PosunY+8 ; počítá y-souřadnici IF(SumaZ-SumaP<>0) begin Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') end end end ;{tisk podpisu} Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'
') Writeln(HTMLFile,T6+StrFinanc(SumaP-SumaZ,2,True)+' '+Program.Mena+' '+T7+' '+Adresar.Nazev+' '+Adresar.Rozsireni) Writeln(HTMLFile,'
') Writeln(HTMLFile,T8+' '+VSPoslZ+' '+T9) Writeln(HTMLFile,'
 
 ') Writeln(HTMLFile,'Datum: '+StrDate(GetDate())) Writeln(HTMLFile,'
 
 
 
 
 '+T12+''+T12+'
 '+T10+''+T11+'
 '+Program.Firma+''+Adresar.Nazev+'
 '+Program.Rozsireni+''+Adresar.Rozsireni+'



') Close(HTMLFile); Mail:EMLFile; MailText:TextFile; LocStr:String; LocL:LongInt if(Length(Program.EMail)<>0) SetEMLItem(Mail,eml_From,Program.EMail); KeyAdresar1.Length=4 KeyAdresar1.ICO=SwapL(Pohledavka.ICO) if(FindKey(KeyAdresar1,LocL)) begin ReadRec(Adresar,LocL); if(Length(Adresar.EMail)<>0) begin SetEMLItem(Mail,eml_To,Adresar.EMail); end; end; NazevDokladu:String; NazevDokladu=NoCS('Vzájemný zápočet mezi IČ: '+Program.ICO+' - '+Program.Firma+' a IČ: '+SledIco+' - '+Adresar.Nazev); SetEMLItem(Mail,eml_Subject,NazevDokladu); if(ExistFile(DataPath()+'Zap_Mail.txt')) begin Open(MailText,DataPath()+'Zap_Mail.txt') While(not EOF(MailText)) begin LocStr=ReadLn(MailText); WriteLn(Mail,LocStr); end; end; AttachFile(Mail,HTMLFileName); Create(Mail,'Zap_Mail.EML',True); Open(Mail); END