; DDT pro odeslani upominky mailem v HTML ; verze z 1.7.2003 ; Autor: WinDUO Team Name('Upomínka - mailem') Designed('Faktura') Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz') Descr('Odeslání upomínky k faktuře mailem') WNSType(-1); DeclareRec('Program') ;{ostatni promenne} DeclareRec('Adresar') DeclareRec('KeyAdresar1') DeclareRec('Pohledavka') DeclareRec('KeyPohledavka3') DeclareRec('BankovniUcet') DeclareRec('KeyBankovniUcet1') DeclareRec('Pokladna'); DeclareRec('KeyPokladna9'); DeclareRec('Banka'); DeclareRec('KeyBanka9'); DeclareRec('OstatniUhrady'); DeclareRec('KeyOstatniUhrady9'); ;{texty} T1:String='Upomínka o úhradu faktury' T2:String='Vážení,' T2a:String='fakturou číslo' T3:String='ze dne' T4:String='a splatnou dne' T5:String='jsme Vám vyúčtovali výrobky a služby ve faktuře uvedené, a to částkou' T5a:String=Program.Mena; T5b:String='(zbývá k úhradě ' T5c:String=').' T6:String='Protože jste shora uvedenou fakturu neuhradili ve lhůtě splatnosti, žádáme Vás, abyste tak učinili' T6b:String='Protože jste shora uvedenou fakturu plně neuhradili ve lhůtě splatnosti, žádáme Vás, abyste tak učinili' T7:String='nejpozději do 5 dnů od doručení tohoto dopisu, a to na náš bankovní účet:' T8:String='V téže lhůtě nám případně sdělte v písemné odpovědi, kdy úhradu provedete, resp.' T9:String='jaké oprávněné námitky máte proti našemu požadavku na úhradu faktury.' T10:String='Současně si Vás dovolujeme upozornit, že pokud fakturu neuhradíte ve shora uvedeném termínu,' T11:String='budeme nuceni domáhat se svého práva na úhradu faktury soudní cestou, což by ovšem mohlo' T12:String='pro Vás být spojeno s nebezpečím vynaložení dalších zcela zbytečných nákladů na soudní výlohy' T13:String='a event. právní zastoupení.' T14:String='S pozdravem' ValidCisla:String='0123456789' IF(Version()<5) Error('Tento soubor nelze zpracovat ve Vaší verzi WinDUO'+#13+#13+'Zajistěte si vyšší verzi...',mb_IconStop) ;{definice promennych} Jmeno:String Uhrazeno:Real UhrazenoM:Real SouhlasMeny:Boolean=True LocL:LongInt GetBindRec('Pohledavka',0) if(Pohledavka.Uhrazeno<>0) begin ZjistiUhradu('Uhrazeno','UhrazenoM',2,Pohledavka.Cislo,GetDate()) if(not SouhlasMeny) Halt('Nelze, v platbě není použita žádná nebo je použita jiná cizí měna') end if(Pohledavka.Uhrazena) begin Halt('Faktura je již uhrazená, bylo by hloupé tisknout upomínku ...') end Jmeno=GetUserName() if(Length(Jmeno)=0) Jmeno=Pohledavka.Vystavil KeyBankovniUcet1.Ucet=Null(Str(Pohledavka.Banka),4)+Pohledavka.Ucet if(FindKey(KeyBankovniUcet1,LocL)) ReadRec(BankovniUcet,LocL) else ClearRec(BankovniUcet) ;{definice uvodniho dialogu, zadání období} ;DlgFollowMouse(True) DefDialog('Upomínka',462,224) DlgShade(-1,'',4,27,453,124) DlgStatic(-1,' Nastavení tisku',16,4,110) DlgStatic(-1,'Jméno - podpis:',16,70,110) DlgEdit(201,Jmeno,127,68,230,,60,ES_Left) DlgStatic(-1,'Název:',16,94,110) DlgEdit(202,T1,127,92,230,,60,ES_Left) DlgOnLineHelp(202,'např. Druhá upomínka o úhradu nezaplacené faktury!!!') 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 HTMLFileName:String HTMLFile :TextFile if(Length(HTMLFileName)=0) begin HTMLFileName=WorkPath()+'Upominka.htm'; end; Rewrite(HTMLFile,HTMLFileName,True) ; otevreni souboru Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'Upomínka od dodavatele IČ:'+Program.ICO+' '+Program.Firma+' k dokladu č.'+Pohledavka.Doklad+'') 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,Pohledavka.Firma+'
') if(Length(Pohledavka.Rozsireni)>0) Writeln(HTMLFile,Pohledavka.Rozsireni+'
') Writeln(HTMLFile,Pohledavka.Ulice+'
') Writeln(HTMLFile,Pohledavka.PSC+' '+Pohledavka.Mesto+'
') Writeln(HTMLFile,'



') Writeln(HTMLFile,'

') ;{tisk textu} Writeln(HTMLFile,'
') Writeln(HTMLFile,T1) Writeln(HTMLFile,'



') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'') Writeln(HTMLFile,'
') Writeln(HTMLFile,'     '+T2+'
') Writeln(HTMLFile,T2a+' '+Pohledavka.Doklad+' '+T3+' '+StrDate(Pohledavka.DatVyst)+' '+T4+' '+StrDate(Pohledavka.DatSpl)+' '+T5+' ') if(Pohledavka.CastkaM<>0) begin Writeln(HTMLFile,' '+StrFinanc(Pohledavka.CastkaM,2)+' '+NumToCCC(Pohledavka.Mena)) end else begin Writeln(HTMLFile,' '+StrFinanc(Pohledavka.Castka,2)+' '+T5a) end if(Pohledavka.Uhrazeno<>0) begin ZjistiUhradu('Uhrazeno','UhrazenoM',2,Pohledavka.Cislo,GetDate()) if(Pohledavka.CastkaM<>0) begin Writeln(HTMLFile,T5b+StrFinanc(Pohledavka.CastkaM-UhrazenoM,2)+' '+NumToCCC(Pohledavka.Mena)+T5c+'') end else begin Writeln(HTMLFile,T5b+StrFinanc(Pohledavka.Castka-Uhrazeno,2)+' '+T5a+T5c+'') end Writeln(HTMLFile,T6b) end else begin Writeln(HTMLFile,T6) end Writeln(HTMLFile,T7) Writeln(HTMLFile,'
'+Pohledavka.Ucet+' / '+Null(Pohledavka.Banka,4,True)+' '+BankovniUcet.NazevB+'
') Writeln(HTMLFile,T8) Writeln(HTMLFile,T9) Writeln(HTMLFile,T10) Writeln(HTMLFile,T11) Writeln(HTMLFile,T12) Writeln(HTMLFile,'
') Writeln(HTMLFile,T13+'
') Writeln(HTMLFile,'     '+T14+'
') Writeln(HTMLFile,'
'+Jmeno+'
') Writeln(HTMLFile,Program.Mesto+' '+StrDate(GetDate())+'

') Writeln(HTMLFile,'



') Close(HTMLFile); Mail:EMLFile; MailText:TextFile; LocStr:String; 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('Upomínka od dodavatele IČ:'+Program.ICO+' '+Program.Firma+' k dokladu č.'+Pohledavka.Doklad); SetEMLItem(Mail,eml_Subject,NazevDokladu); if(ExistFile(DataPath()+'UpomMail.txt')) begin Open(MailText,DataPath()+'UpomMail.txt') While(not EOF(MailText)) begin LocStr=ReadLn(MailText); WriteLn(Mail,LocStr); end; end; AttachFile(Mail,HTMLFileName); Create(Mail,'UpomMail.EML',True); Open(Mail); Procedure ZjistiUhraduVAgende(Vysledek:String,VysledekM:String,Agenda:Byte,Cislo:LongInt,Datum:Word,AgendaName:String); KeyName:String='Key'+AgendaName+'9'; SubName:String=KeyName+'.Length'; UhrVeta:LongInt; @SubName=5; AgdName:String=KeyName+'.SAgd'; @Agdname=Agenda; CisloName:String=KeyName+'.SCislo'; @CisloName=SwapL(Cislo); CastkaName:String=AgendaName+'.Castka' CastkaNameM:String=AgendaName+'.CastkaM' MenaName:String=AgendaName+'.Mena' DatumName:String=AgendaName+'.Datum' VydajName:String=AgendaName+'.Vydaj' if(FindKey(@KeyName,UhrVeta)) begin DalsiVeta: ReadRec(@AgendaName,UhrVeta); if(@DatumName<=Datum) begin if(Agenda=2) begin if(@MenaName<>Pohledavka.Mena) SouhlasMeny=False if(@VydajName) begin @vysledek=@vysledek-@CastkaName @vysledekM=@vysledekM-@CastkaNameM end else begin @vysledek=@vysledek+@CastkaName @vysledekM=@vysledekM+@CastkaNameM end end else if(Agenda=3) begin if(@VydajName) begin @vysledek=@vysledek+@CastkaName @vysledekM=@vysledekM+@CastkaNameM end else begin @vysledek=@vysledek-@CastkaName @vysledekM=@vysledekM-@CastkaNameM end end; end; if(NextKey(@KeyName,UhrVeta)) begin if(@CisloName=SwapL(Cislo)) begin if(@AgdName=Agenda) GoTo(DalsiVeta); end; end; end; end; Procedure ZjistiUhradu(Vysledek:String,VysledekM:String,Agenda:Byte,Cislo:LongInt,Datum:Word); @vysledek=0 @vysledekM=0 ZjistiUhraduVAgende(Vysledek,VysledekM,Agenda,Cislo,Datum,'Pokladna'); ZjistiUhraduVAgende(Vysledek,VysledekM,Agenda,Cislo,Datum,'Banka'); ZjistiUhraduVAgende(Vysledek,VysledekM,Agenda,Cislo,Datum,'OstatniUhrady'); end; END