; export objednávek pro trasování ; verze z 21.8.2015 ; Autor: WinDUO Team Name('Export objednávek pro trasování') ; pod tímto názvem bude sestava v menu FileName('.WNS') ; pod tímto názvem bude sestava uložena na disku Designed('Objp_man') Author('Milan Slíva','EMail: sliva@fi.cz','http://www.infinion.cz') ;informace o autorovi Descr('Export objednávek přijatých pro trasovací systém','Změna třídění - Ne','Filtr - Ano') ;DlgFollowMouse(True) Soubor:String=GetIni('Exporty','TashaFile'); WNSType(-1); DefDialog('Export objednávek',338,147) DlgShade(-1,'',5,5,328,72) DlgStatic(-1,'Soubor',16,16,200) DlgEdit(200,Soubor,16,40,240) DlgFileButton(200,258,39) DlgButton(id_OK,'OK',198,82); DlgOnLineHelp(id_OK,'Pokračuje ve zpracování') DlgButton(id_Cancel,'Zpět',268,82); DlgOnLineHelp(id_Cancel,'Ukončí bez zpracování') Result:Integer=DlgExecute() if(Result=ID_Cancel) Halt SetIni('Exporty','TashaFile',TransToESC(Soubor)); DeclareRec('ObjednavkaPrijata') DeclareRec('KeyObjednavkaPrijata2') DeclareRec('Objednavka') DeclareRec('KeyObjednavka2') DeclareRec('Adresar') DeclareRec('KeyAdresar1') DeclareRec('Sklad') DeclareRec('KeySklad10') TXT:TextFile Veta:LongInt MD:String Pozice:LongInt Recipient:String Street:String City:String ZipCode:String[5] Hash:String VetaA:LongInt Vaha:Double Exportovano:LongInt VetaR:LongInt ExisR:Boolean VetaS:LongInt InitStatus(UsedKeys(KeyObjednavkaPrijata2),'Exportuji objednávky ...') ; inicializace stavoveho prouzku Rewrite(TXT,Soubor,True); WriteLn(TXT,'id',#9,'nazev',#9,'adresa',#9,'psc',#9,'vaha',#9,'cislo_objednavky',#9,'datum_od',#9,'datum_do',#9,'telefon'); ClearKey(KeyObjednavkaPrijata2) While(NextKey(KeyObjednavkaPrijata2,Veta)) begin ReadRec(ObjednavkaPrijata,Veta); if(ObjednavkaPrijata.Stav=15) begin if(InFilter(ObjednavkaPrijata)) begin Vaha=0 ClearKey(KeyObjednavka2) KeyObjednavka2.Length=SizeOf(KeyObjednavka2)-1 KeyObjednavka2.Objednavka=SwapL(ObjednavkaPrijata.Cislo) ExisR=SearchKey(KeyObjednavka2,VetaR) While((ExisR)and(KeyObjednavka2.Objednavka=SwapL(ObjednavkaPrijata.Cislo))) begin ReadRec(Objednavka,VetaR) if((Objednavka.Typ=1)or(Objednavka.Typ=3)) begin KeySklad10.Length=SizeOf(KeySklad10)-1 KeySklad10.Cislo=SwapL(Objednavka.CisloMat) if(FindKey(KeySklad10,VetaS)) begin ReadRec(Sklad,VetaS) Vaha=RoundQuantity(Vaha+Objednavka.Mnozstvi*Sklad.Weight) end; end ExisR=NextKey(KeyObjednavka2,VetaR) end KeyAdresar1.Length=4 KeyAdresar1.ICO=SwapL(ObjednavkaPrijata.ICO) if(FindKey(KeyAdresar1,VetaA)) begin ReadRec(Adresar,VetaA); end else begin ClearRec(Adresar) end Recipient=XTrim(ObjednavkaPrijata.PrijemceNazev+' '+ObjednavkaPrijata.PrijemceRozs); Street=XTrim(ObjednavkaPrijata.PrijemceUlice); City=XTrim(ObjednavkaPrijata.PrijemceMesto); ZipCode=NTrim(ObjednavkaPrijata.PrijemcePSC); if(Length(Recipient)=0) begin Recipient=XTrim(Adresar.Nazev+' '+Adresar.Rozsireni); end; if(Length(City)=0) begin City=XTrim(Adresar.Mesto); Street=XTrim(Adresar.Ulice); ZipCode=NTrim(Adresar.PSC); end; Recipient=TransChar(#9,' ',Recipient) Street=TransChar(#9,' ',Street) City=TransChar(#9,' ',City) Hash=MD5(Recipient+'#'+Street+'#'+City) Write(TXT,Str(ObjednavkaPrijata.ICO),'#',Hash,#9,Recipient,#9,Street,', ',City,#9,ZipCode,#9,StrQuantity(Vaha),#9,ObjednavkaPrijata.Doklad,'#',ObjednavkaPrijata.Cislo) WriteLn(TXT,#9,StrDate(ObjednavkaPrijata.TerminPo),#9,StrDate(ObjednavkaPrijata.TerminDo),#9,ObjednavkaPrijata.Telefon); Inc(Exportovano) end; end; Inc(Pozice) SetStatus(Pozice); end Close(TXT) Message('Exportováno objednávek: '+Str(Exportovano)+'\rdo souboru\r'+TransToESC(Soubor),mb_IconInformation) END