From c0aa420ae03d35f6683d8a0affa9aec13a99417b Mon Sep 17 00:00:00 2001 From: TomBuz Date: Tue, 7 Apr 2026 18:23:56 +0200 Subject: [PATCH] Prvni verze na Git --- .gitignore | 27 +- ComObjekt - kopie.pas | 4323 ++++++++ ComObjekt.pas | 5134 +++++++++ Globalni.pas | 347 + HeODefine.inc | 0 IEGate.pas | 2843 +++++ IEGate_Impl.pas | 203 + barcode.gif | Bin 0 -> 13396 bytes czStrings.res | Bin 0 -> 1052 bytes frmBaliciListy.dfm | 524 + frmBaliciListy.pas | 2082 ++++ frmDemontaz.dfm | 695 ++ frmDemontaz.pas | 1446 +++ frmKanbanBox.dfm | 196 + frmKanbanBox.pas | 228 + frmKanbanObj.dfm | 283 + frmKanbanObj.pas | 590 ++ frmKanbanObj_bak_do210318.dfm | 307 + frmMain.dfm | 22 + frmMain.pas | 25 + frmMaterial.dfm | 65 + frmMaterial.pas | 87 + frmOdvedPrikaz - kopie (2).dfm | 864 ++ frmOdvedPrikaz - kopie.dfm | 828 ++ frmOdvedPrikaz - kopie.pas | 1789 ++++ frmOdvedPrikaz.dfm | 830 ++ frmOdvedPrikaz.pas | 1828 ++++ frmReklamaceMat.dfm | 325 + frmReklamaceMat.pas | 327 + frmUnit1.dfm | 8 + frmUnit1.pas | 21 + frmUnit11.dfm | 291 + frmUnit11.pas | 163 + frmUnit12.dfm | 92 + frmUnit12.pas | 1019 ++ frmUnit13.dfm | 143 + frmUnit13.pas | 185 + frmUnit15.dfm | 200 + frmUnit15.pas | 513 + frmUnit2.dfm | 18 + frmUnit2.pas | 21 + frmUnit3.dfm | 234 + frmUnit3.pas | 443 + frmUnit4.dfm | 27 + frmUnit4.pas | 32 + frmUnit5.dfm | 227 + frmUnit5.pas | 307 + frmUnit6.dfm | 457 + frmUnit6.pas | 1016 ++ frmUnit8.dfm | 214 + frmUnit8.pas | 502 + frmUnit9.dfm | 349 + frmUnit9.pas | 835 ++ lib/plgHlaskyEx.INC | 10 + lib/plgHlaskyJadro.INC | 847 ++ lib/plgTypeBrowse.INC | 5 + lib/plgTypeJadro.INC | 1516 +++ lib/plgTypeSoudky.inc | 5 + lib/plgTypeTabulka.inc | 7 + lib/plgTypeTxtEx.inc | 15 + lib/plgTypeTxtJadro.INC | 192 + lib/plgTypeUTA.inc | 0 lib/plgTypeZbytek.inc | 3 + lib/plgUtaDef.inc | 0 lib/plgVerze.INC | 14 + libPPL_Intf.pas | 17640 +++++++++++++++++++++++++++++++ libPPL_Invk.pas | 888 ++ libSys/plgAkce.pas | 1153 ++ libSys/plgBrowse.pas | 25 + libSys/plgExtAkce.pas | 29 + libSys/plgExtAttr.pas | 29 + libSys/plgExtTrigger.pas | 27 + libSys/plgFunkce.pas | 33 + libSys/plgHlasky.pas | 28 + libSys/plgMain.pas | 2427 +++++ libSys/plgQuery.pas | 34 + libSys/plgSoudky.pas | 24 + libSys/plgSpravce.pas | 189 + libSys/plgTable.pas | 23 + libSys/plgType.pas | 29 + libSys/plgUProc.pas | 33 + libSys/plgUta.pas | 181 + libSys/plgVazby.pas | 28 + libSys/plgZmeny.pas | 60 + plgExtController.pas | 31 + plgKonfig.pas | 109 + plgLOVATO.dpr | 61 + plgLOVATO.dproj | 244 + plgLOVATO.otares | Bin 0 -> 96 bytes plgLOVATO.res | Bin 0 -> 992 bytes plgLOVATO_Icon.ico | Bin 0 -> 4286 bytes plgLOVATO_Icon1.ico | Bin 0 -> 4286 bytes 92 files changed, 59472 insertions(+), 2 deletions(-) create mode 100644 ComObjekt - kopie.pas create mode 100644 ComObjekt.pas create mode 100644 Globalni.pas create mode 100644 HeODefine.inc create mode 100644 IEGate.pas create mode 100644 IEGate_Impl.pas create mode 100644 barcode.gif create mode 100644 czStrings.res create mode 100644 frmBaliciListy.dfm create mode 100644 frmBaliciListy.pas create mode 100644 frmDemontaz.dfm create mode 100644 frmDemontaz.pas create mode 100644 frmKanbanBox.dfm create mode 100644 frmKanbanBox.pas create mode 100644 frmKanbanObj.dfm create mode 100644 frmKanbanObj.pas create mode 100644 frmKanbanObj_bak_do210318.dfm create mode 100644 frmMain.dfm create mode 100644 frmMain.pas create mode 100644 frmMaterial.dfm create mode 100644 frmMaterial.pas create mode 100644 frmOdvedPrikaz - kopie (2).dfm create mode 100644 frmOdvedPrikaz - kopie.dfm create mode 100644 frmOdvedPrikaz - kopie.pas create mode 100644 frmOdvedPrikaz.dfm create mode 100644 frmOdvedPrikaz.pas create mode 100644 frmReklamaceMat.dfm create mode 100644 frmReklamaceMat.pas create mode 100644 frmUnit1.dfm create mode 100644 frmUnit1.pas create mode 100644 frmUnit11.dfm create mode 100644 frmUnit11.pas create mode 100644 frmUnit12.dfm create mode 100644 frmUnit12.pas create mode 100644 frmUnit13.dfm create mode 100644 frmUnit13.pas create mode 100644 frmUnit15.dfm create mode 100644 frmUnit15.pas create mode 100644 frmUnit2.dfm create mode 100644 frmUnit2.pas create mode 100644 frmUnit3.dfm create mode 100644 frmUnit3.pas create mode 100644 frmUnit4.dfm create mode 100644 frmUnit4.pas create mode 100644 frmUnit5.dfm create mode 100644 frmUnit5.pas create mode 100644 frmUnit6.dfm create mode 100644 frmUnit6.pas create mode 100644 frmUnit8.dfm create mode 100644 frmUnit8.pas create mode 100644 frmUnit9.dfm create mode 100644 frmUnit9.pas create mode 100644 lib/plgHlaskyEx.INC create mode 100644 lib/plgHlaskyJadro.INC create mode 100644 lib/plgTypeBrowse.INC create mode 100644 lib/plgTypeJadro.INC create mode 100644 lib/plgTypeSoudky.inc create mode 100644 lib/plgTypeTabulka.inc create mode 100644 lib/plgTypeTxtEx.inc create mode 100644 lib/plgTypeTxtJadro.INC create mode 100644 lib/plgTypeUTA.inc create mode 100644 lib/plgTypeZbytek.inc create mode 100644 lib/plgUtaDef.inc create mode 100644 lib/plgVerze.INC create mode 100644 libPPL_Intf.pas create mode 100644 libPPL_Invk.pas create mode 100644 libSys/plgAkce.pas create mode 100644 libSys/plgBrowse.pas create mode 100644 libSys/plgExtAkce.pas create mode 100644 libSys/plgExtAttr.pas create mode 100644 libSys/plgExtTrigger.pas create mode 100644 libSys/plgFunkce.pas create mode 100644 libSys/plgHlasky.pas create mode 100644 libSys/plgMain.pas create mode 100644 libSys/plgQuery.pas create mode 100644 libSys/plgSoudky.pas create mode 100644 libSys/plgSpravce.pas create mode 100644 libSys/plgTable.pas create mode 100644 libSys/plgType.pas create mode 100644 libSys/plgUProc.pas create mode 100644 libSys/plgUta.pas create mode 100644 libSys/plgVazby.pas create mode 100644 libSys/plgZmeny.pas create mode 100644 plgExtController.pas create mode 100644 plgKonfig.pas create mode 100644 plgLOVATO.dpr create mode 100644 plgLOVATO.dproj create mode 100644 plgLOVATO.otares create mode 100644 plgLOVATO.res create mode 100644 plgLOVATO_Icon.ico create mode 100644 plgLOVATO_Icon1.ico diff --git a/.gitignore b/.gitignore index e9d123f..e352c10 100644 --- a/.gitignore +++ b/.gitignore @@ -30,8 +30,8 @@ # Default Delphi compiler directories # Content of this directories are generated with each Compile/Construct of a project. # Most of the time, files here have not there place in a code repository. -#Win32/ -#Win64/ +Win32/ +Win64/ #OSX64/ #OSXARM64/ #Android/ @@ -81,3 +81,26 @@ __recovery/ # Boss dependency manager vendor folder https://github.com/HashLoad/boss modules/ + + +# Castalia statistics file (since XE7 Castalia is distributed with Delphi) +*.stat +.gitignore +*.log +*.dxsettings + +*.7z +*.zip +*.skincfg +*.json + +SumatraPDF* + +*.mes +*.tmp +x/ +xx/ +bak/ +oldDLL/ +Resources/ +.git/ diff --git a/ComObjekt - kopie.pas b/ComObjekt - kopie.pas new file mode 100644 index 0000000..76460bb --- /dev/null +++ b/ComObjekt - kopie.pas @@ -0,0 +1,4323 @@ +{ +Zmeny ve verzich +---------------------- +2.0.2013.0904 - pokud na PL (dodaci list z IT) existuje nova karta materialu, zalozi se do skupiny MAT +} + +unit ComObjekt; + +INTERFACE + +uses System.SysUtils, System.Win.ComObj, ddPlugin_TLB; + +const + tblObjMatPoh = '[dbo].[_TabObjMat_PohybyZboExpPr]'; +tblOrg = '[dbo].[TabCisOrg]'; // tblOrg = '[dbo].[TabOrganizace]'; // přidáno 26.6.2018 // opraveno 3.7.2018 podle unit3 + +type + TidVPsKanban = record + id: integer; + radaPrikaz: string[20]; + idKZ: integer; + ks: Extended; + ksVKoop: Extended; + end; + + TplgLOVATO = class(TComObject, IHePlugin) + private +// function PartnerIdentification: WideString; safecall; +// function DelphiCompilerVersion: Single; safecall; + procedure Run(const Helios: IHelios); safecall; + function TestKoopObjVydejMat(const Helios:IHelios; idPKO: integer): Boolean; safecall; + procedure ImportEP(const Helios: IHelios; const idDZx: integer; ExpP: boolean); safecall; + procedure KontrolaExistVsechObj(const Helios: IHelios); safecall; + procedure ExportKoopObj(const Helios: IHelios; idKObj: integer); safecall; + procedure ExportKoopObjHQL(const Helios: IHelios; idKObj: integer); safecall; + procedure GenerujVydejZEP(const Helios: IHelios); safecall; + procedure OdpovedPPL(const Helios: IHelios); safecall; + procedure UlozChybu(const Helios: IHelios; msg: string; E:Exception); + procedure ImportNesplObj(const Helios: IHelios); safecall; + procedure HromadneOdvedeniEvidKoop(const Helios: IHelios); safecall; + procedure GenerujVydejMatZPrikazu(const Helios: IHelios; idEvidKoop: integer); safecall; + procedure PrerovnejPolozkyKoopObj(const Helios: IHelios; idKObj: integer); safecall; + procedure ZadejPolPrijemkyNaVydejku(const Helios: IHelios; idPrij: integer); safecall; + procedure ZadejVyrPrikazNaVydejku(const Helios: IHelios; idVPr: integer); safecall; + + procedure StavSkladuDoZadVyp(const Helios: IHelios); safecall; + procedure VyrabeneDilceDoZadVyp(const Helios: IHelios); + + procedure ImportZClipboardu(const Helios: IHelios; TypImp: byte); safecall; + procedure PrevodStavSkladuImp(const Helios: IHelios; TypImp: byte); safecall; + procedure RozpadPrijStavNaKooperanty(const Helios: IHelios; const idDZ: integer=0; const idSS: Integer=0); safecall; + procedure KooperaceniPolozkySeSeskupenim(const Helios: IHelios); safecall; + procedure ImportStavuInventur(const Helios: IHelios); safecall; + procedure ImportObjMaterialu(const Helios: IHelios; const typ:byte); safecall; + procedure ImportObjMatEdit(const Helios: IHelios; idZazn: integer); safecall; + procedure ImportObjMatRozpad(const Helios: IHelios); safecall; + + + procedure ImportDL_CHD(const Helios: IHelios); safecall; + procedure ImportDL(const Helios: IHelios); safecall; // přidáno při číslu palety + + procedure SmazObjNadvyroby(const Helios: IHelios; idNad: integer); safecall; + +// procedure SouboryProItalii(const Helios: IHelios; TypSouboru: byte); safecall; + end; + + +const + Class_LOVATO: TGUID = '{EA0150F1-EA07-45D2-9109-E7349B03AC1B}'; + + plgSysName = 'plgLOVATO'; + + Nadvyr = '20000105'; + sklVyr = '200'; + sklCHD = '20000107'; + + orgLovatoIT = '1'; + orgLovatoITmena = 'EUR'; + szNovyImportExpP = 'V00'; + szNovyImportMat = 'M00'; + rImpNesplObj = '200'; + + CRLF = #13#10; + tblStavUm = '[dbo].[TabVStavUmisteni]'; + tblUmist = '[dbo].[TabUmisteni]'; + tblRozpPrijStav = '[dbo].[_TabRozpadPrijStav]'; + tblEvidOp = '[dbo].[_TabEvidOperaci_Barcode]'; + tblEvidOpVPr = '[dbo].[_TabEvidOpPrikazy]'; + tblEvidNadvyrVPr = '[dbo].[_TabEvidNadvyrPrikaz]'; + tblPZSD = '[dbo].[TabPohybyZboziSD]'; + + errPlg = CRLF + '(plgLOVATO, COM)'; + +IMPLEMENTATION + +uses Vcl.Controls, System.Win.ComServ, Vcl.Graphics, Vcl.Forms, System.Variants, System.StrUtils, Vcl.Dialogs, + Vcl.Clipbrd, System.Classes, Winapi.Windows, System.DateUtils, Vcl.StdActns, Winapi.ShlObj, Vcl.StdCtrls, + Vcl.ComCtrls, dxCore, myUtils, helUtils, XLSReadWriteII5, XLSSheetData5, Xc12DataStyleSheet5, Xc12Utils5, // nExcel, +// frmMain, +// frmUnit2, + frmUnit3, //prozatimně zakomentováno 26.6.2018 (z důvodu TBPackageU) + frmUnit5, +// frmUnit6, + frmBaliciListy, +// frmUnit8, { formPrijemkaNadvyroba} + frmUnit9, + frmOdvedPrikaz, { formOdvedeniPrikazu pres BarCode} + frmUnit11, { formStSklHrZmen } + frmUnit12, { formRozdelMat } + frmUnit13, { formPrevPrij } + frmDemontaz, { formDemontaz} + frmMaterial, { formMaterial } + frmUnit15, { formOdvodRele } + frmReklamaceMat, { formDemontazMat } + frmKanbanBox, + frmKanbanObj; + +var oVar1: OleVariant; + aktObd: integer; + fName: string; +// xls: TXLSReadWriteII5; +// icoAdd, icoDel, icoEdit, icoPrev, icoNext: TIcon; +// hFnd: THandle; +// RS: TResourceStream; + hdl: Cardinal; + + // přidáno 9.8.2018 + waitForm: TForm; + waitLabel: TLabel; + waitPBar: TProgressBar; + + function waitStart(TheParent: TComponent; sMsg: string; maxPBar: integer; PBarColor: TColor):Boolean; + begin + result:= false; + if (waitForm=nil) then + begin + waitForm:= TForm.Create(TheParent); + with waitForm do + begin + Position:= poOwnerFormCenter; + width:= 500; + Height:= 25; + waitLabel:= TLabel.Create(waitForm); + with waitLabel do + begin + Align:= alClient; + Alignment:= taCenter; + Font.Height:= -30; + ParentFont:= false; + Caption:= sMsg; + Parent:= waitForm; + end; + if (maxPBar>0) then + begin + waitPBar:= TProgressBar.Create(waitForm); + with waitPBar do + begin + AlignWithMargins:= true; + BarColor:= PBarColor; + Position:= 0; + Top:= waitLabel.Top + waitLabel.Height + 5; + Min:= 0; + Max:= maxPBar; + Width:= waitForm.Width - 10; + Left:= 5; + Height:= 10; + Parent:= waitForm; + end; + end; + SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION); + ClientHeight:= Height; + Show; + Invalidate; + Repaint; + end; + result:= true; + end; + end; + + + + procedure waitSetProgBar(pozice: integer); + begin + if (pozice>0) then + if Assigned(waitPBar) then + if (waitPBar.Max>=pozice) then + begin + waitPBar.Position:= pozice; + waitPBar.Parent.Invalidate; + end; + end; + + + + procedure WaitSetMsg( sMsg : string ); + begin + WaitLabel.Caption := sMsg; + WaitForm.Refresh; + end; + + + + function waitEnd: boolean; + begin + result:= false; + if (waitForm<>nil) then + begin + waitForm.Hide; + waitForm.Free; + waitForm:= nil; + result:= true; + end; + end; + + // konec přidání 9.8.2018 + + + + //přidáno 26.6.2018 + { WaitForm : TForm; + WaitLabel : TLabel; + // function WaitStart( TheParent : TComponent; sMsg : string ) : boolean; + function WaitStart( + TheParent : TComponent; + sMsg : string ) + : boolean; +begin + Result := False; + // create our message form + // only if it's not already + // created + if( Nil = WaitForm )then + begin + WaitForm := + TForm.Create( TheParent ); + with WaitForm do + begin + Position := poScreenCenter; + Width := 500; + Height := 25; + + // create the message label + WaitLabel := + TLabel.Create( WaitForm ); + with WaitLabel do + begin + Align := alClient; + Alignment := taCenter; + Font.Height := -30; + ParentFont := False; + Caption := sMsg; + Parent := WaitForm; + end; + + // hide the title bar + SetWindowLong( Handle, + GWL_STYLE, + GetWindowLong( + Handle, GWL_STYLE ) + and not WS_CAPTION ); + ClientHeight := Height; + + Show; + Update; + end; + Result := True; + end; +end; + +procedure WaitSetMsg( sMsg : string ); +begin + WaitLabel.Caption := sMsg; + WaitForm.Refresh; +end; + +function WaitEnd : boolean; +begin + Result := False; + if( Nil <> WaitForm )then + begin + WaitForm.Hide; + WaitForm.Free; + WaitForm := Nil; + Result := True; + end; +end; + } //konec přidání 26.6.2018 + + + // přidáno 4.7.2018 + { + WaitForm : TForm; + WaitLabel : TLabel; + + function waitStart(TheParent: TComponent; sMsg: string):Boolean; + begin + result:= false; + if (waitForm=nil) then + begin + waitForm:= TForm.Create(TheParent); + with waitForm do + begin + Position:= poScreenCenter; + width:= 500; + Height:= 25; + waitLabel:= TLabel.Create(waitForm); + with waitLabel do + begin + Align:= alClient; + Alignment:= taCenter; + Font.Height:= -30; + ParentFont:= false; + Caption:= sMsg; + Parent:= waitForm; + end; + SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION); + ClientHeight:= Height; + Show; + Update; + end; + result:= true; + end; + end; + + + + procedure WaitSetMsg( sMsg : string ); + begin + WaitLabel.Caption := sMsg; + WaitForm.Refresh; + end; + + + + function waitEnd: boolean; + begin + result:= false; + if (waitForm<>nil) then + begin + waitForm.Hide; + waitForm.Free; + waitForm:= nil; + result:= true; + end; + end; + } + + // konec přidání 4.7.2018 + + + + + + function VyberAdresar(var Foldr: string; Title: string): Boolean; + var BrowseInfo: TBrowseInfo; + ItemIDList: PItemIDList; + DisplayName: array[0..MAX_PATH] of Char; + begin + Result := False; + FillChar(BrowseInfo, SizeOf(BrowseInfo), #0); + with BrowseInfo do + begin + hwndOwner := Application.Handle; + pszDisplayName := @DisplayName[0]; + lpszTitle := PChar(Title); + ulFlags := BIF_RETURNONLYFSDIRS; + end; + ItemIDList := SHBrowseForFolder(BrowseInfo); + if Assigned(ItemIDList) then + if SHGetPathFromIDList(ItemIDList, DisplayName) then + begin + Foldr := DisplayName; + Result := True; + end; + end; + + + function OtevriSouborXLS(var nazev: string; title: shortString): Boolean; + var dlgOpenXP: TOpenDialog; // dialog pro Windows XP + dlgOpenW7: TFileOpenDialog; // dialog pro Windows Vista a novejsi + titulek, filtr1, filtr2: string; + iniDir: wideString; + begin + result:= false; + if title='' then + title:= 'Vyberte soubor pro import '; + filtr1:= 'Sešit MS Excel'; + filtr2:= '*.xls;*.xlsx'; + nazev:= ''; + iniDir:= GetEnvironmentVariable('USERPROFILE') + '\Desktop'; + try + dlgOpenXP:= TOpenDialog.Create(nil); + dlgOpenW7:= TFileOpenDialog.Create(nil); + + if JeVistaAVyssi then // funkce z "myUtils.pas" + begin + dlgOpenW7.Title:= title; + dlgOpenW7.OkButtonLabel:= 'Vybrat'; + with dlgOpenW7.FileTypes.Add do + begin + DisplayName:= filtr1; + FileMask:= filtr2; + end; + dlgOpenW7.DefaultFolder:= iniDir; + if dlgOpenW7.Execute then + begin + nazev:= dlgOpenW7.FileName; + result:= true; + end; + end + else + begin + dlgOpenXP.Title:= titulek; + dlgOpenXP.Filter:= filtr1 + '|' + filtr2; + dlgOpenXP.InitialDir:= iniDir; + if dlgOpenXP.Execute then + begin + nazev:= dlgOpenXP.FileName; + result:= true; + end; + end; + finally + dlgOpenXP.Free; + dlgOpenW7.Free; + end; + end; + + + procedure TplgLOVATO.UlozChybu(const Helios: IHelios; msg: string; E: Exception); + var txt: string; + begin + if not Assigned(E) then + txt:= '' + else + txt:= E.Message; + if txt<>'' then + msg:= msg + ' - chyba: ' + txt; + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (N' + QuotedStr(msg) + ')'); + end; + +{ + procedure TplgLOVATO.VytvorKanbanObj(const Helios: IHelios; const zOznac: ShortString; const arrID: TArray); + var lSQL: string; + i: integer; + begin + lSQL:= ''; + if (zOznac='1') and (Length(arrID)>0) then + begin + lSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabKanbanObj') + ') IS NULL' + CRLF; + lSQL:= 'CREATE TABLE #TabKanbanObj (IDbox INT NOT NULL)' + CRLF; + for i:=0 to Length(arrID)-1 do + lSQL:= lSQL + 'INSERT #TabKanbanObj (IDbox) VALUES (' + IntToStr(arrID[i]) + ')' + CRLF; + end; + lSQL:= lSQL + 'EXEC dbo.ep_VytvorKanbanObj'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Chyba při vytváření Kanban objednávky - '#1 + E.Message); + end; + end; + Helios.Refresh(true); + end; +} + + + procedure TplgLOVATO.KontrolaExistVsechObj(const Helios: IHelios); safecall; + var lSQL, fName: string; + obj, poz, regC: string; + idx: integer; + xls: TXLSReadWriteII5; + wSheet1: TXLSWorkSheet; + chyba: boolean; + begin + if OtevriSouborXLS(fName, 'Vyberte XLS soubor se seznamem objednávek') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + chyba:= false; + xls.LoadFromFile(fName); + wSheet1:= xls.Items[0]; + idx:= 1; + waitStart(nil, 'Běží porovnávání objedávek - celkem ' + IntToStr(wSheet1.LastRow), wSheet1.LastRow, $0000FF); // clRed + waitSetProgBar(1); //dočasně zakomentováno 26.6.2018 + obj:= Trim(wSheet1.AsString[0,idx]); + if (obj<>'') then + begin + lSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabExtKom') + ') IS NULL CREATE TABLE #TabExtKom(Poznamka NVARCHAR(255))'; + Helios.ExecSQL(lSQL); + while (obj<>'') do + begin + poz:= RightStr(Trim(wSheet1.AsString[1,idx]),4); + regC:= Trim(wSheet1.AsString[2,idx]); + lSQL:= 'SELECT id FROM ' + tblPZ + ' WHERE RegCis=N' + QuotedStr(regC) + ' AND DruhPohybuZbo=9 AND NazevSozNa1=' + QuotedStr(obj); + lSQL:= lSQL + ' AND NazevSozNa2=N' + QuotedStr(poz); + with Helios.OpenSQL(lSQL) do + if (RecordCount=0) then + begin + chyba:= true; + Helios.ExecSQL('INSERT #TabExtKom(Poznamka) SELECT N' + QuotedStr('Chybí objednávka ' + obj + '/' + poz + ' - ' + regC)); + end; + Inc(idx); + if (idx mod 10=0) then + waitSetProgBar(idx); //dočasně zakomentováno 26.6.2018 + obj:= Trim(wSheet1.AsString[0,idx]); + end; + end; + waitEnd; + Helios.Info(#1'Kontrola ukončena'#1 + IfThen(chyba,CRLF + '(po odkliknutí OK se zobrazí přehled chyb)','')); + except on E:Exception do + Helios.Error('Chyba při zpracování XLS souboru: ' + E.Message + #1); + end; + xls.Free; + end; + end; + + + + + procedure TplgLOVATO.ImportObjMaterialu(const Helios: IHelios; const typ:byte); + var lSQL, sTemp: string; + idVyd, cOrg, cnt: integer; + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('dbo._TabObjMat_PohybyZboExpPr') + ') IS NOT NULL DROP TABLE dbo._TabObjMat_PohybyZboExpPr' + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblObjMatPoh + ' (ID int IDENTITY(1,1) NOT NULL, IdPohybZbozi int NOT NULL, SkupZbo NVARCHAR(3) NOT NULL,'; + lSQL:= lSQL + 'RegCis NVARCHAR(30) NOT NULL, Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL, MnozstviVyd numeric(19, 6) DEFAULT 0.0 NOT NULL,'; + lSQL:= lSQL + ' PozadDatDod DATETIME, SdilenyMat BIT DEFAULT 0, MnozstviZad numeric(19,6) DEFAULT 0.0 NOT NULL, IdKmenZbozi int NOT NULL)'; + Helios.ExecSQL(lSQL); + cOrg:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg'))); + cnt:= 0; + lSQL:= 'SELECT pz.Id, (pz.Mnozstvi-pz.MnOdebrane-pz.MnozstviStorno) AS Mnozstvi, kz.Id AS idKZ, kz.SkupZbo, kz.RegCis, pz.PozadDatDod, ISNULL(kze._SdilenyMaterial,0) AS Sdileny FROM ' + tblPZ; + lSQL:= lSQL + ' pz INNER JOIN ' + tblDZ + ' dz ON (dz.Id=pz.IDDoklad) INNER JOIN ' + tblSS + ' ss ON (ss.Id=pz.IdZboSklad) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.Id)'; + lSQL:= lSQL + ' LEFT JOIN ' + tblKZe + ' kze ON (kze.Id=kz.Id) WHERE dz.CisloOrg=' + IntToStr(cOrg) + ' AND dz.Splneno=0 AND dz.StavRezervace<>N' + QuotedStr('X'); + lSQL:= lSQL + ' AND dz.RadaDokladu=N' + QuotedStr('280') + ' AND dz.DruhPohybuZbo=9 AND DATEDIFF(day,GETDATE(),pz.PozadDatDod)<4 AND (pz.Mnozstvi-pz.MnOdebrane-pz.MnozstviStorno)>0'; + if (typ=1) then + lSQL:= lSQL + ' AND kze._SdilenyMaterial=1'; + with Helios.OpenSQL(lSQL) do + begin + First; + while not(EOF) do + begin + Inc(cnt); + lSQL:= 'INSERT ' + tblObjMatPoh + ' (IdPohybZbozi, SkupZbo, RegCis, Mnozstvi, PozadDatDod, SdilenyMat, IdKmenZbozi, MnozstviZad) VALUES (' + VarToStr(FieldByNameValues('Id')) + ',N'; + lSQL:= lSQL + QuotedStr(VarToStr(FieldByNameValues('SkupZbo'))) + ',N' + QuotedStr(VarToStr(FieldByNameValues('RegCis'))); + lSQL:= lSQL + ',' + StringReplace(VarToStr(FieldByNameValues('Mnozstvi')),',','.',[rfReplaceAll]) + ','; + sTemp:= VarToStr(FieldByNameValues('PozadDatDod')); + lSQL:= lSQL + IfThen(sTemp='','NULL','CONVERT(datetime,N' + QuotedStr(sTemp) + ',104)'); + lSQL:= lSQL + ',' + IfThen(LowerCase(VarToStr(FieldByNameValues('Sdileny')))='false','0','1') + ',' + VarToStr(FieldByNameValues('idKZ')) + ','; + lSQL:= lSQL + StringReplace(VarToStr(FieldByNameValues('Mnozstvi')),',','.',[rfReplaceAll]) + ')'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Chyba řádek ' + IntToStr(cnt) + '/ RČ ' + VarToStr(FieldByNameValues('RegCis')) + ' >> ' + E.Message + #1); + end; + Next; + end; + lSQL:= 'MERGE ' + tblObjMatPoh + ' AS T USING (SELECT DISTINCT(IdKmenZbozi), SUM(Mnozstvi) AS MnSum FROM ' + tblObjMatPoh + ' GROUP BY IdKmenZbozi) AS S'; + lSQL:= lSQL + ' ON (S.IdKmenZbozi=T.IdKmenZbozi) WHEN MATCHED THEN UPDATE SET T.MnozstviZad=S.MnSum;'; + Helios.ExecSQL(lSQL); + end; + + Helios.OpenBrowse(100134,''); + + end; + + + + + procedure TplgLOVATO.ImportObjMatEdit(const Helios: IHelios; idZazn: Integer); + var lSQL, mn: string; + btn: TModalResult; + begin + if (idZazn>0) then + begin + mn:= '0'; + mn:= Trim(InputBoxOkCancel('Vydávané množství materiálu celkem','Množství celkem: ', mn, btn)); + if (btn=mrOk) and (mn<>'') then + Helios.ExecSQL('UPDATE ' + tblObjMatPoh + ' SET MnozstviZad=' + StringReplace(mn,',','.',[rfReplaceAll]) + ' WHERE IdKmenZbozi=' + IntToStr(idZazn)); + end; + end; + + + + + procedure TplgLOVATO.ImportObjMatRozpad(const Helios: IHelios); + var lSQL: string; + begin + lSQL:= 'SELECT DISTINCT(idKmenZbozi), MnozstviZad FROM ' + tblObjMatPoh; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + Next; + end; + end; + end; + + + + + procedure TplgLOVATO.ImportStavuInventur(const Helios: IHelios); + var lSQL, idPlan: string; + begin + if Helios.Prenos2(100099,'id','DatumGenerovani_X',oVar1,oVar2,'','Inventurní hlavičky',true,true,false,1) then + begin + if (VarToStr(oVar1)<>'') then + begin + lSQL:= 'SELECT i.IdKmenZbozi,i.MnozstviInv,i.DatPorizeni,i.SkupZbo+RegCis,ss.IDSklad,i.MnozstviSklad FROM ' + tblInvI; + lSQL:= lSQL + ' i LEFT JOIN ' + tblSS + ' ss ON (i.IDSklad=ss.id) WHERE i.idDoklad IN (' + VarToStr(oVar1) + ')'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + idPlan:= ''; + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi,Datum) VALUES (' + VarToStr(FieldValues(0)) + ','; + lSQL:= lSQL + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(2))) + ',104) )'; + lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + try + with Helios.OpenSQL(lSQL) do + idPlan:= VarToStr(FieldValues(0)); + if (idPlan<>'') then + begin + lSQL:= 'UPDATE ' + tblPPlanE + ' SET _IDSklad=N' + QuotedStr(VarToStr(FieldValues(4))) + ',_InventuraSM=1'; + lSQL:= lSQL + ' WHERE id=' + idPlan + CRLF + 'IF (@@ROWCOUNT=0) INSERT ' + tblPPlanE + ' (id,_IDSklad,_InventuraSM)'; + lSQL:= lSQL + ' VALUES (' + idPlan + ',N'+ QuotedStr(VarToStr(FieldValues(4))) + ',1)'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + UlozChybu(Helios,'Nelze uložit položku inventury (fyz): ' + VarToStr(FieldValues(3)) + ' sklad ' + VarToStr(FieldValues(4)),E); + end; + idPlan:= ''; + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi,Datum) VALUES (' + VarToStr(FieldValues(0)) + ','; + lSQL:= lSQL + StringReplace(VarToStr(FieldValues(5)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(2))) + ',104) )'; + lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + try + with Helios.OpenSQL(lSQL) do + idPlan:= VarToStr(FieldValues(0)); + if (idPlan<>'') then + begin + lSQL:= 'UPDATE ' + tblPPlanE + ' SET _IDSklad=N' + QuotedStr(VarToStr(FieldValues(4))) + ',_InventuraSM=0'; + lSQL:= lSQL + ' WHERE id=' + idPlan + CRLF + 'IF (@@ROWCOUNT=0) INSERT ' + tblPPlanE + ' (id,_IDSklad,_InventuraSM)'; + lSQL:= lSQL + ' VALUES (' + idPlan + ',N'+ QuotedStr(VarToStr(FieldValues(4))) + ',0)'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + UlozChybu(Helios,'Nelze uložit položku inventury (skl): ' + VarToStr(FieldValues(3)) + ' sklad ' + VarToStr(FieldValues(4)),E); + end; + Next; + end; + end; + end + else + Helios.Info(#1'Nebyla vybrána žádná inventura.'#1); + end + else + Helios.Info(#1'Akce importu inventurních stavů byla zrušena.'#1); + end; + + + + + procedure TplgLOVATO.SmazObjNadvyroby(const Helios: IHelios; idNad: integer); + var sql, msg: string; + errId: byte; + cVyd, cPrij, datVyd, datPrij: string; + idDZv, idPZ, idDZp, idVydejMat, idVydejStorno, idPrijMat, idPrijStorno: Integer; + realVyd, realPrij: boolean; + begin + msg:= ''; + errId:= 0; + cVyd:= ''; + cPrij:= ''; + idVydejMat:= 0; + datVyd:= ''; + idVydejStorno:= 0; + idPrijMat:= 0; + datPrij:= ''; + idPrijStorno:= 0; + + with Helios.OpenSQL('SELECT id FROM ' + tblEvidNadvyr + ' WHERE Stav=0 AND Splneno=1 AND id=' + IntToStr(idNad)) do + if (RecordCount=1) then + begin + errId:= 1; + msg:= 'Nelze smazat, objednávka Nadvýroby byla již splněna.'; + end; + if (errId=0) then + with Helios.OpenSQL('SELECT id FROM ' + tblEvidNadvyr + ' WHERE Zaevidovano>0 AND id=' + IntToStr(idNad)) do + if (RecordCount=1) then + begin + errId:= 2; + msg:= 'Nelze smazat, na objednávce Nadvýroby jsou evidované vyrobené kusy.' + CRLF; + msg:= msg + 'Objednávku lze ručně označit jako splněnou' + CRLF; + msg:= msg + ' a zbylý materiál vrátit převodem na sklad 200-Výroba.'; + end; + if (errId=0) then + with Helios.OpenSQL('SELECT IdVydejkaMat FROM ' + tblEvidNadvyr + ' WHERE IdVydejkaMat IS NOT NULL AND id=' + IntToStr(idNad)) do + if (RecordCount=1) then + begin + + realVyd:= false; + idVydejMat:= StrToInt(VarToStr(FieldValues(0))); + if (idVydejMat>0) then + with Helios.OpenSQL('SELECT RadaDokladu + N'' '' + CONVERT(nvarchar,PoradoveCislo),DatPorizeni FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydejMat)) do + begin + cVyd:= VarToStr(FieldValues(0)); + datVyd:= VarToStr(FieldValues(1)); + end; + + realPrij:= false; + idPrijMat:= 0; + + if (idVydejMat>0) then + begin + with Helios.OpenSQL('SELECT TOP(1) IDDoklad FROM ' + tblPZ + ' WHERE IDOldDoklad=' + IntToStr(idVydejMat)) do + if (RecordCount=1) then + idPrijMat:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydejMat) + ' AND Realizovano=1') do + if (RecordCount=1) then + realVyd:= true; + end; + + if (idPrijMat>0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE id=' + IntToStr(idPrijMat) + ' AND Realizovano=1') do + if (RecordCount=1) then + realPrij:= true; + with Helios.OpenSQL('SELECT RadaDokladu + N'' '' + CONVERT(nvarchar,PoradoveCislo),DatPorizeni FROM ' + tblDZ + ' WHERE id=' + IntToStr(idPrijMat)) do + begin + cPrij:= VarToStr(FieldValues(0)); + datPrij:= VarToStr(FieldValues(1)); + end; + end; + + if (realVyd) and (realPrij) then + errId:= 13; + + if (idVydejMat>0) and not(realVyd) and (idPrijMat=0) then + errId:= 4; + + if (idVydejMat>0) and (realVyd) and (idPrijMat>0) and not(realPrij) then + errId:= 6; + end; + + case errId of + 3: begin // real vyd+prij + Helios.Error(#1 + 'Na objednávku byl již vydán materiál, bude vygenerována vratka na sklad 200-Výroba.' + #1); + idDZv:= 0; + sql:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(Nadvyr) + ',@Mena=N' + QuotedStr('CZK'); + sql:= sql + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr('450') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + sql:= sql + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(sql) do + idDZv:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= sql; + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + if (idDZv>0) then + begin + sql:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ',IdSkladPrevodu=N' + QuotedStr(sklVyr); + sql:= sql + ',TypPrevodky=N' + QuotedStr('250') + ',DruhPohybuPrevod=0,PopisDodavky=N' + QuotedStr('Storno Nadvýroby - zpětný převod mat.'); + sql:= sql + ' WHERE id=' + IntToStr(idDZv); + Helios.ExecSQL(sql); + + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + sql:= sql + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + + sql:= sql + 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZv) + ',@IDDokladSrc=' + IntToStr(idPrijMat); + sql:= sql + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + sql:= sql + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + sql:= sql + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Storno Nadvýroby - zpětný převod mat.'); + sql:= sql + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + sql:= sql + ',@VytvaretDokladovouVazbu=0,@VytvaretPolozkovouVazbu=0'; + try + Helios.ExecSQL(sql); + sql:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZv) + CRLF; + sql:= sql + 'UPDATE ' + tblEvidNadvyr + ' SET IdVratkaMat=' + IntToStr(idDZv) + ' WHERE id='; + sql:= sql + IntToStr(idNad); + Helios.ExecSQL(sql); + +{ + idDZp:= 0; + sql:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(sklVyr) + ',@Mena=N' + QuotedStr('CZK'); + sql:= sql + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr('250') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + sql:= sql + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + Clipboard.AsText:= sql; + with Helios.OpenSQL(sql) do + idDZp:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, kontaktujte správce.'#1 + CRLF + E.Message + CRLF + sql); + end; + + if (idDZp>0) then + begin + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + sql:= sql + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + + sql:= sql + 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZp) + ',@IDDokladSrc=' + IntToStr(idDZv); + sql:= sql + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + sql:= sql + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + sql:= sql + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Storno Nadvýroby - zpětný převod mat.'); + sql:= sql + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + sql:= sql + ',@VytvaretDokladovouVazbu=0,@VytvaretPolozkovouVazbu=1'; + try + Clipboard.AsText:= sql; + Helios.ExecSQL(sql); + sql:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZp); + Helios.ExecSQL(sql); + except on E:Exception do + begin + Helios.Error(#1'Nelze uložit hlavičku položky příjemky/převodky, kontaktujte správce.'#1 + CRLF + E.Message); + end; + end; + end; +} + except on E:Exception do + Helios.Error(#1'Nelze vygenerovat výdejka (vratka).'#1 + CRLF + E.Message); + end; + end; + Helios.Info(#1'Pozor, vytvořená výdejka není realizovaná.'#1); + end; + + 4: begin // udelana vydejka, nerealizovana, bez navazne prijemky + Helios.Error(#1 + 'Na objednávku byla vygenerována výdejka, aktuálně není realizována a bude zrušena.' + #1); + sql:= 'BEGIN TRAN' + CRLF + 'DELETE FROM ' + tblDZDod + ' WHERE IDHlavicky=' + IntToStr(idVydejMat) + CRLF; + sql:= sql + 'DELETE FROM ' + tblPZSD + ' WHERE Id IN (SELECT id FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idVydejMat) + ')' + CRLF; + sql:= sql + 'DELETE FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idVydejMat) + CRLF; + sql:= sql + 'DELETE FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydejMat) + ' AND Realizovano=0' + CRLF; + sql:= sql + 'UPDATE ' + tblEvidNadvyroby + ' SET IdVydejkaMat=NULL WHERE id=' + IntToStr(idNad) + CRLF; + sql:= sql + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN'; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + 5: begin + Helios.Error(#1 + 'Na objednávku byl převeden materiál, proveďte zpětný převod ručně (Př. ' + cPrij + ')' + #1); + end; + + 6: begin // vytvorena a realizovana vydejka, vytvorena a NErealizovana prijemka + sql:= 'BEGIN TRAN' + CRLF + 'EXEC dbo.hp_SmazDokladOZ @IDDoklad=' + IntToStr(idPrijMat) + CRLF; + sql:= sql + 'UPDATE ' + tblDZ+ ' SET NavaznyDoklad=NULL WHERE id=' + IntToStr(idVydejMat); +{ + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; +} + sql:= sql + CRLF + 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL'; + sql:= sql + ' CREATE TABLE #TabTempUziv(Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + sql:= sql + CRLF + 'DECLARE @dVyd DATETIME, @idStorno INT, @bylaChyba INT, @uziv SMALLINT' + CRLF; + sql:= sql + 'SELECT @uziv=Id FROM ' + tblUziv + ' WHERE LoginName=SUSER_SNAME()' + CRLF; + sql:= sql + 'SET @dVyd=' + IfThen(datVyd='','NULL','CONVERT(datetime,N' + QuotedStr(datVyd) + ',104)') + CRLF; +// sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idStorno OUT, @Sklad=N' + QuotedStr(sklVyr) + ',@DruhPohybu=3'; +// sql:= sql + ',@RadaDokladu=N' + QuotedStr('410') + ',@Insert=1,@Mena=N' + QuotedStr('CZK'); +// sql:= sql + ',@PC=NULL,@DatumPorizeni=@dVyd,@CisloOrg=0' + CRLF; + sql:= sql + 'EXEC dbo.hp_Generuj_Storno_Doklad @ID=' + IntToStr(idVydejMat) + ',@Selectem=0'; + sql:= sql + ',@DruhPohybu=3,@RadaDokladu=N' + QuotedStr('410') + ',@IDSklad=N' + QuotedStr(sklVyr); + sql:= sql + ',@AObdobi=NULL,@ADatPorizeni=@dVyd,@idStorno=@idStorno OUT,@bylaChyba=@bylaChyba OUT'; + sql:= sql + CRLF + 'IF @idStorno IS NOT NULL' + CRLF + ' BEGIN' + CRLF + ' EXEC dbo.hp_Realizuj_prijem @ID=@idStorno,@DatumRealizace=@dVyd,'; + sql:= sql + '@Uzivatel=@uziv,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + ' EXEC dbo.hp_OZZrusStornoAPuvDok @idStorno=@idStorno' + CRLF + ' END' + CRLF; + sql:= sql + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN'; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + 13: begin + if Helios.YesNo(#1'Opravdu chcete objednávku smazat ?'#1 + CRLF + '!! všechny navázané příjmy a výdeje budou stornovány !!',false) then + begin + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL'; + sql:= sql + ' CREATE TABLE #TabTempUziv(Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + sql:= sql + 'BEGIN TRAN' + CRLF + 'DECLARE @dVyd DATETIME, @idStorno INT, @bylaChyba INT, @uziv SMALLINT' + CRLF; + sql:= sql + 'SELECT @uziv=Id FROM ' + tblUziv + ' WHERE LoginName=SUSER_SNAME()' + CRLF; + sql:= sql + 'SET @dVyd=' + IfThen(datVyd='','NULL','CONVERT(datetime,N' + QuotedStr(datPrij) + ',104)') + CRLF; + sql:= sql + 'EXEC dbo.hp_Generuj_Storno_Doklad @ID=' + IntToStr(idPrijMat) + ',@Selectem=0'; + sql:= sql + ',@DruhPohybu=1,@RadaDokladu=N' + QuotedStr('200') + ',@IDSklad=N' + QuotedStr(sklVyr); + sql:= sql + ',@AObdobi=NULL,@ADatPorizeni=@dVyd,@idStorno=@idStorno OUT,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + 'IF @idStorno IS NOT NULL' + CRLF + ' BEGIN' + CRLF + ' EXEC dbo.hp_Realizuj_vydej @ID=@idStorno,@DatumRealizace=@dVyd'; + sql:= sql + ',@Hlidat=0,@Uzivatel=@uziv,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + ' EXEC dbo.hp_OZZrusStornoAPuvDok @idStorno=@idStorno' + CRLF; + sql:= sql + ' UPDATE ' + tblDZ+ ' SET NavaznyDoklad=NULL WHERE id=' + IntToStr(idVydejMat) + CRLF + ' END' + CRLF; + sql:= sql + 'SET @dVyd=' + IfThen(datVyd='','NULL','CONVERT(datetime,N' + QuotedStr(datVyd) + ',104)') + CRLF; + sql:= sql + 'EXEC dbo.hp_Generuj_Storno_Doklad @ID=' + IntToStr(idVydejMat) + ',@Selectem=0'; + sql:= sql + ',@DruhPohybu=3,@RadaDokladu=N' + QuotedStr('410') + ',@IDSklad=N' + QuotedStr(sklVyr); + sql:= sql + ',@AObdobi=NULL,@ADatPorizeni=@dVyd,@idStorno=@idStorno OUT,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + 'IF @idStorno IS NOT NULL' + CRLF + ' BEGIN' + CRLF + ' EXEC dbo.hp_Realizuj_prijem @ID=@idStorno,@DatumRealizace=@dVyd,'; + sql:= sql + '@Uzivatel=@uziv,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + ' EXEC dbo.hp_OZZrusStornoAPuvDok @idStorno=@idStorno' + CRLF + ' END' + CRLF; + sql:= sql + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN'; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + end; + end; + + if (msg<>'') then + Helios.Error(#1 + msg + #1) + else + Helios.ExecSQL('UPDATE ' + tblEvidNadvyroby + ' SET Stav=1 WHERE id=' + IntToStr(idNad)); + + Helios.Refresh(true); + end; + + + + + procedure TplgLOVATO.KooperaceniPolozkySeSeskupenim(const Helios: IHelios); + var sql, IDcka, cOrg, idKOp: string; + cnt: integer; + begin + IDcka:= ''; + IDKop:= VarToStr(Helios.QueryBrowse.FieldByNameValues('IDObjednavky')); + sql:= 'TabPrPostup.typ=2 AND '; + if Helios.Prenos(bidVyrOper,'ID',oVar1,sql,'Kooperační operace na výrobních příkazech',true) then + begin + if not VarIsNull(oVar1) then + IDcka:= VarToStr(oVar1); + if (IDcka<>'') then + begin + sql:= 'SELECT FROM ' + tblPrPost + ' WHERE id IN (' + IDcka + ')'; + end; + end; + end; + + + +// rozpad prijemky nebo vybranych karet stavu skladu pro prevod na kooperanty + procedure TplgLOVATO.RozpadPrijStavNaKooperanty(const Helios: IHelios; const idDZ: integer=0; const idSS: Integer=0); safecall; + var sql, celkP, celkD, dodat, stred: string; + l_loop: integer; + chyba: boolean; + mn: Extended; + begin + chyba:= false; + sql:= ''; + if (idDZ>0) then + begin + sql:= 'INSERT ' + tblRozpPrijStav + ' (IdKmenZbozi,Mnozstvi,CisloZbozi)'; + sql:= sql + ' SELECT DISTINCT(kz.id),SUM(pz.Mnozstvi),kz.CisloZbozi FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS; + sql:= sql + ' ss ON (pz.IdZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id) WHERE'; + sql:= sql + ' pz.IDDoklad=' + IntToStr(idDZ) + ' GROUP BY kz.id,kz.CisloZbozi ORDER BY kz.id'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + if not(chyba) then + begin + sql:= 'SELECT DISTINCT(RIGHT(vp.KmenoveStredisko,3)) FROM TabPrKVazby kv INNER JOIN TabPrikaz vp'; + sql:= sql + ' ON (kv.IdPrikaz=vp.Id AND vp.StavPrikazu<=40) WHERE kv.mnoz_Nevydane>0 AND kv.nizsi IN'; + sql:= sql + ' (SELECT IdKmenZbozi FROM _TabRozpadPrijStav) ORDER BY RIGHT(vp.KmenoveStredisko,3)'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while (not(EOF) and not(chyba)) do + begin + stred:= VarToStr(FieldValues(0)); + sql:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Stav' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Stav' + stred; + sql:= sql + ' NUMERIC(19,6) NOT NULL DEFAULT 0.0' + CRLF; + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Pozad' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Pozad' + stred; + sql:= sql + ' NUMERIC(19,6) NOT NULL DEFAULT 0.0' + CRLF; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + if not(chyba) then + begin + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Prebyt' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Prebyt' + stred; + sql:= sql + ' AS ([Stav' + stred + ']-[Pozad' + stred + '])' + CRLF; + Helios.ExecSQL(sql); + + sql:= 'SET NOCOUNT ON' + CRLF; + sql:= sql + 'DECLARE @idKZ INT,@MnS NUMERIC(19,6),@MnP NUMERIC(19,6),@Skl NVARCHAR(30)' + CRLF; + sql:= sql + 'DECLARE c CURSOR LOCAL FAST_FORWARD FOR SELECT IdKmenZbozi FROM '; + sql:= sql + tblRozpPrijStav + CRLF + 'OPEN c' + CRLF + 'WHILE (1=1) BEGIN FETCH NEXT FROM c INTO @idKZ' + CRLF; + sql:= sql + ' IF (@@FETCH_STATUS<>0) BREAK' + CRLF + 'SET @MnS=ISNULL((SELECT ISNULL(Mnozstvi,0) FROM ' + tblSS; + sql:= sql + ' WHERE IdKmenZbozi=@idKZ AND IDSklad'; + if stred='200' then + sql:= sql + '=N' + QuotedStr('200') + else + sql:= sql + ' LIKE N' + QuotedStr('200%' + stred); + sql:= sql + '),0)' + CRLF; + sql:= sql + 'SET @MnP=ISNULL((SELECT ISNULL(SUM(kv.Mnoz_Nevydane),0) FROM ' + tblPrVaz + ' kv INNER JOIN' + tblPrikaz; + sql:= sql + ' vp ON (kv.IdPrikaz=vp.Id AND vp.StavPrikazu<=40) WHERE kv.Nizsi=@idKZ AND vp.KmenoveStredisko'; + if stred='200' then + sql:= sql + '=N' + QuotedStr('200') + else + sql:= sql + ' LIKE N' + QuotedStr('200%' + stred); + sql:= sql + '),0)' + CRLF; + sql:= sql + 'UPDATE ' + tblRozpPrijStav + ' SET Stav' + stred + '=@MnS,Pozad' + stred; + sql:= sql + '=@MnP WHERE idKmenZbozi=@idKZ' + CRLF + 'END' + CRLF + 'CLOSE c' + CRLF + 'DEALLOCATE c'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + Next; + end; + + celkD:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemDodat'); + celkD:= celkD + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemDodat AS ('; + dodat:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Dodat' + stred); + dodat:= dodat + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Dodat' + stred + ' AS ('; + +// celkem prebytek + celkP:= celkP + 'CASE WHEN [Stav' + stred + ']-[Pozad' + stred + ']>0 THEN ([Stav' + stred + ']-'; + celkP:= celkP + '[Pozad' + stred + ']) ELSE 0 END + '; +// celkem dodat + celkD:= celkD + 'CASE WHEN [Stav' + stred + ']-[Pozad' + stred + ']<0 THEN ABS([Stav' + stred + ']-'; + celkD:= celkD + '[Pozad' + stred + ']) ELSE 0 END + '; + +// celkem Prebytek + mn:= 0; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N''_TabRozpadPrijStav'')'; + sql:= sql + ' AND [name] LIKE N''Prebyt%'''; + with Helios.OpenSQL('') do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + Next; + end; + end; + celkP:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemPrebyt'); + celkP:= celkP + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemPrebyt NUMERIC(19,6) DEFAULT 0.0'; + sql:= 'UPDATE ' + QuotedStr(tblRozpPrijStav) + ' SET '; + Helios.ExecSQL(celkP + CRLF + sql); + +// celkem Dodat + SetLength(celkD,Length(celkD)-3); + celkD:= celkD + ')'; + Helios.ExecSQL(celkD); + end; + end; + end; + + + + + procedure TplgLOVATO.PrevodStavSkladuImp(const Helios: IHelios; TypImp: Byte); + var lSQL: string; + cnt: integer; + begin + cnt:= 0; + lSQL:= 'SELECT ssi.IDSklad,ssi.IDKmenZbozi,ssi.Minimum,ssi.Maximum,ssi.id,kz.SkupZbo,kz.RegCis FROM '; + lSQL:= lSQL + 'dbo.TabStavSkladuImp ssi INNER JOIN ' + tblKZ + ' kz ON (ssi.IdKmenZbozi=kz.id)'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + lSQL:= 'DECLARE @idSS INT' + CRLF + 'SET @idSS=(SELECT id FROM ' + tblSS; + lSQL:= lSQL + ' WHERE IDSklad=N' + QuotedStr(VarToStr(FieldValues(0))); + lSQL:= lSQL + ' AND IDKmenZbozi=' + VarToStr(FieldValues(1)) + ')' + CRLF + 'IF (@idSS IS NOT NULL)' + CRLF + 'BEGIN'; + lSQL:= lSQL + CRLF + 'UPDATE ' + tblSS + ' SET Minimum=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',Maximum=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + ' WHERE id=@idSS'; + lSQL:= lSQL + CRLF + 'DELETE FROM dbo.TabStavSkladuImp WHERE id=' + VarToStr(FieldValues(4)) + CRLF + 'END'; + try + Helios.ExecSQL(lSQL); + Inc(cnt); + except on E:Exception do + Helios.Error('Nelze uložit položku '#1 + VarToStr(FieldValues(5)) + ' ' + VarToStr(FieldValues(6)) + #1); + end; + Next; + end; + if cnt>0 then + Helios.Info(#1'Aktualizováno ' + IntToStr(cnt) + ' položek.'#1); + Helios.Refresh(true); + end; + end; + + + + + procedure TplgLOVATO.ImportZClipboardu(const Helios: IHelios; TypImp: Byte); + var arrRadky: TArray>; + idx: integer; + lSQL, sz, rc, sMin, sMax, idKZ, jc: string; + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ') IS NOT NULL DROP TABLE #TabExtKom'; + lSQL:= lSQL + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(255) NOT NULL)'; + Helios.ExecSQL(lSQL); + + case TypImp of + 1: ReseedTable(Helios,'TabStavSkladuImp'); + 2: begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabImpRCCena') + ') IS NOT NULL DROP TABLE #TabImpRCCena' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabImpRCCena (RegCis NVARCHAR(35) NOT NULL, JCena NUMERIC(19,6) DEFAULT 0.0, Autor NVARCHAR(50) DEFAULT SUSER_SNAME())'; + Helios.ExecSQL(lSQL); + end; + end; + + try + arrRadky:= Clipboard2StringArray(false); // false = nemaze nazvy sloupcu + for idx:=0 to High(arrRadky) do + begin + idKZ:= ''; + sz:= ''; + rc:= ''; + case TypImp of + 1: begin + sz:= UpperCase(arrRadky[idx,0]); + rc:= UpperCase(arrRadky[idx,1]); + sMin:= arrRadky[idx,2]; + if sMin='' then + sMin:= '0'; + sMax:= arrRadky[idx,3]; + if sMax='' then + sMax:= '0'; + + lSQL:= 'SELECT Id FROM ' + tblKZ + ' WHERE UPPER(SkupZbo)=N' + QuotedStr(sz); + lSQL:= lSQL + ' AND UPPER(RegCis)=N' + QuotedStr(rc); + with Helios.OpenSQL(lSQL) do + if RecordCount=1 then + idKZ:= VarToStr(FieldValues(0)) + else + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (N' + QuotedStr('Karta nenalezena: ' + sz + ' ' + rc + ' : min. ' + sMin) + ' , max. ' + sMax + ')'); + if (idKZ<>'') then + begin + lSQL:= 'INSERT dbo.TabStavSkladuImp (SkupZboImp,RegCisImp,IDKmenZbozi,IDSklad,Minimum,Maximum) VALUES (N'; + lSQL:= lSQL + QuotedStr(sz) + ',N' + QuotedStr(rc) + ',' + idKZ + ',N' + QuotedStr(Helios.Sklad) + ','; + lSQL:= lSQL + StringReplace(sMin,',','.',[rfReplaceAll]) + ',' + StringReplace(sMax,',','.',[rfReplaceAll]) + ')'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + begin + UlozChybu(Helios,'Nelze importovat min/max do Stavu skladu.',E); + end; + end; + end; + end; + 2: begin + rc:= IfThen(arrRadky[idx,0]<>'', UpperCase(arrRadky[idx,0]), ''); + jc:= IfThen(arrRadky[idx,1]<>'', arrRadky[idx,0], '0'); + if (rc<>'') then + Helios.ExecSQL('INSERT #TabImpRCCena (RegCis, JCena) VALUES (N' + QuotedStr(rc) + ',' + StringReplace(jc,',','.',[rfReplaceAll]) + ')'); + end; + end; + end; + case TypImp of + 2: Helios.ExecSQL('EXEC dbo.ep_PZ_Import @Typ=1, @IDDoklad=' + VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('ID'))); + end; + except on E:Exception do + begin + lSQL:= 'Nelze importovat údaje ze schránky (Clipboardu).'; + UlozChybu(Helios,lSQL,E); + Helios.Error(#1 + lSQL + #1); + end; + end; + Helios.Refresh(true); + try + with Helios.OpenSQL('SELECT Poznamka FROM #TabExtKom') do + if RecordCount>0 then + Helios.OpenBrowse(541,''); + finally + end; + end; + + + + + procedure TplgLOVATO.VyrabeneDilceDoZadVyp(const Helios: IHelios); + var lSQL, IDs: string; + aID: TArray; + idx: integer; + begin + lSQL:= 'TabKmenZbozi.Blokovano=0 AND TabKmenZbozi.Dilec=1'; + if Helios.Prenos(bidSS,'TabKmenZbozi.id',oVar1,lSQL,'Vyberte požadované dílce',true) then + begin + if not VarIsNull(oVar1) then + begin + Helios.ExecSQL('DELETE FROM ' + tblPPlan + ' WHERE Autor=SUSER_SNAME() AND IDVarianta IS NULL'); + IDs:= VarToStr(oVar1); + lSQL:= 'SELECT id,1 FROM ' + tblKZ + ' WHERE id IN (' + IDs + ')'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi) VALUES (' + VarToStr(FieldValues(0)); + lSQL:= lSQL + ',' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + Next; + end; + end; +{ + aID:= StrToArrayInt(IDs); + for idx:= Low(aID) to High(aID) do + begin + lSQL:= 'SELECT kz.id,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON(ss.IdKmenZbozi=kz.id) WHERE ss.id=' + IntToStr(aID[idx]); + with Helios.OpenSQL('') + end; +} + Helios.Refresh(true); + end; + end; + end; + + + + + procedure TplgLOVATO.StavSkladuDoZadVyp(const Helios: IHelios); + var lSQL,IDs: string; + aID: TArray; + idx: integer; + begin + Helios.Info(#1'Bude importovan stav vybraneho skladu.'#1); + lSQL:= 'TabStavSkladu.Mnozstvi>0'; + if Helios.Prenos2(bidSS,'TabStavSkladu.id','',oVar1,oVar2,lSQL,'',true,true,false,1) then + begin + if not VarIsNull(oVar1) then + begin + Helios.ExecSQL('DELETE FROM ' + tblPPlan + ' WHERE Autor=SUSER_SNAME()'); + IDs:= VarToStr(oVar1); + lSQL:= 'SELECT kz.id,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON(ss.IdKmenZbozi=kz.id)'; + lSQL:= lSQL + ' WHERE ss.id IN (' + IDs + ')'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi) VALUES (' + VarToStr(FieldValues(0)); + lSQL:= lSQL + ',' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + Next; + end; + end; +{ + aID:= StrToArrayInt(IDs); + for idx:= Low(aID) to High(aID) do + begin + lSQL:= 'SELECT kz.id,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON(ss.IdKmenZbozi=kz.id) WHERE ss.id=' + IntToStr(aID[idx]); + with Helios.OpenSQL('') + end; +} + Helios.Refresh(true); + end; + end; + end; + + + + + procedure TplgLOVATO.ZadejVyrPrikazNaVydejku(const Helios: IHelios; idVPr: Integer); + var lSQL: string; + pz,mu: IHeQuery; + idVydej,idPolExpP,idExpPr,idNPol,sMU,sNO: string; + idx: Integer; + mn: extended; + begin + if (idVPr>0) then + begin + lSQL:= 'SELECT kz.id FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.id=' + IntToStr(idVPr); + with Helios.OpenSQL(lSQL) do + if RecordCount=0 then + begin + Helios.Error(#1'Výrobní příkaz není na finální výrobek.'#1); + Exit; + end; + + lSQL:= 'SELECT p.IdRezervace,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.IdRezervace IS NOT NULL AND p.id=' + IntToStr(idVPr); + pz:= Helios.OpenSQL(lSQL); + if (pz.RecordCount>0) then + begin + if Helios.YesNo('Chcete dílec z výrobního příkazu uložit do výdejky exportu ?',false) then + begin + lSQL:= 'TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklVyroba) + ' AND TabDokladyZbozi.DruhPohybuZbo IN (2,3,4)'; + lSQL:= lSQL + ' AND TabDokladyZbozi.RadaDokladu IN (N' + QuotedStr('420') + ') AND TabDokladyZbozi.Realizovano=0'; + if Helios.Prenos(bidDZVydej,'id',vOle1,lSQL,'Výdejky pro Vývoz',true) then + begin + pz.First; + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + + sNO:= ''; + sMU:= ''; + idVydej:= VarToStr(vOle1); + mu:= Helios.OpenSQL('SELECT ISNULL(MistoUrceni,0) FROM ' + tblDZ + ' WHERE id=' + idVydej); + if (mu.RecordCount>0) then + begin + sMU:= VarToStr(mu.FieldValues(0)); + lSQL:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + lSQL:= lSQL + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idPolExpP; // jen Exp.prikazy + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + sNO:= LeftStr(VarToStr(FieldValues(0)),2); + if ((sNO<>'52') and (sMU='3')) or ( ((sNO<>'45') and (sMU='1')) and ((sNO<>'50') and (sMU='1')) ) then + begin + Helios.Error(#1'Místo určení na výdejce není určeno pro tuto řadu objednávek.'#1); + Exit; + end; + end; + end; + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE BlokovaniEditoru IS NOT NULL AND id=' + idVydej) do + if (RecordCount=0) then // doklad neni blokovan + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + idVydej); + pz.First; + idx:= 0; + while not(pz.EOF) do + begin + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + lSQL:= VarToStr(pz.FieldValues(1)) + ' ' + VarToStr(pz.FieldValues(2)) + ' - ' + VarToStr(pz.FieldValues(3)); + // try + mn:= StrToFloat(InputBox(lSQL,'Množství na výdejku:','0')); // 5.10.2018 přidáno ošetření na nečíslo + // except on E:Exception do begin + // helios.Error('Zadaná honota není číslo!'); + // exit; + // end + // end; + if (mn>0) then + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka '; + lSQL:= lSQL + 'NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'DECLARE @m NVARCHAR(3),@vc INT,@sDPH NUMERIC(5,2),@sSD NUMERIC(5,2),@kEUR NUMERIC(19,6),'; + lSQL:= lSQL + '@jm INT,@k NUMERIC(19,6),@ss INT,@mn NUMERIC(19,6),@idOut INT,@d DATETIME' + CRLF; + +// udaje z radky Exp. prikazu + lSQL:= lSQL + 'SELECT @sDPH=SazbaDPH,@sSD=SazbaSD,@mn=' + StringReplace(FloatToStr(mn),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@k=Kurz,@jm=JednotkaMeny,@ss=IDZboSklad,@kEUR=KurzEuro FROM ' + tblPZ + ' WHERE id=' + idPolExpP + CRLF; + +// udaje z hlavicky Exp. prikazu + with Helios.OpenSQL('SELECT Mena,VstupniCena,Kurz,KurzEuro,DatPorizeni FROM ' + tblDZ + ' WHERE id=' + idVydej) do + begin + lSQL:= lSQL + 'SET @m=N' + QuotedStr(VarToStr(FieldValues(0))) + CRLF + 'SET @vc=' + VarToStr(FieldValues(1)); + lSQL:= lSQL + CRLF + 'SET @k=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @kEUR=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @d=CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)' + CRLF; + end; + + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + idVydej + ',@DruhPohybu=2,@CisloOrg=1,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + idNPol:= ''; + try + Inc(idx); + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idNPol:= VarToStr(FieldValues(0)); + if (idNPol<>'') and (idPolExpP<>'') then + begin +// aktualizuje udaje na vydejce + lSQL:= 'DECLARE @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF; + lSQL:= lSQL + 'DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5)' + CRLF; + lSQL:= lSQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + lSQL:= lSQL + ' WHERE id=' + idPolExpP + CRLF; + lSQL:= lSQL + 'SELECT @k=Kurz FROM ' + tblDZ + ' WHERE id=@idDok' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET PozadDatDod=@d,NazevSozNa1=@n1,NazevSozNa2=@n2,JCbezDaniKC=@jcV*@k,JCbezDaniVal=@jcV'; + lSQL:= lSQL + ',IdOldPolozka=' + idPolExpP + ' WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JCbezDaniKC*Mnozstvi,CCbezDaniVal=JCbezDaniVal*Mnozstvi WHERE id=' + idNPol; + Helios.ExecSQL(lSQL); +// prepocte mnozstvi vydane na ExpPr + lSQL:= 'SELECT ISNULL( (SELECT IDDoklad FROM ' + tblPZ + ' WHERE Id=' + idPolExpP + '), 0)'; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idExpPr:= VarToStr(FieldValues(0)); + lSQL:= 'MERGE dbo.TabPohybyZbozi AS T USING (SELECT ss.Id, kz.MJEvidence AS MJ FROM dbo.TabStavSkladu ss' + CRLF; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=ss.IDKmenZbozi) WHERE ss.IDSklad=N''200'') AS S'; + lSQL:= lSQL + ' ON (T.IdZboSklad=S.Id) WHEN MATCHED AND T.IDDoklad=' + idExpPr + ' THEN UPDATE SET T.MJ=S.MJ, T.MJEvidence=S.MJ;'; + Helios.ExecSQL(lSQL); + lSQL:= 'BEGIN TRY' + CRLF + 'EXEC dbo.hp_Aktualizuj_OdebraneMnozstviDoklad @IDDoklad=' + idExpPr + ',@DruhPohybu=9' + CRLF; + lSQL:= lSQL + 'END TRY' + CRLF + 'BEGIN CATCH' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=ERROR_MESSAGE' + CRLF + 'END CATCH'; //upraveno 5.10.2018 - odstraněny závorky za error_message + try + Helios.ExecSQL(lSQL); + except on E:Exception do + // UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + sql, E); + UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + lsql, E); // změněno 26.6.2018 (z sql na lsql) + end; + end; + + end; + except on E:Exception do + Helios.Error(#1'Nelze uložit položku na doklad.'#1 + CRLF + E.Message + CRLF + lSQL + errPlg); + end; + end + else + Helios.Error(#1'Zadané množství je nulové, převod dílce na výdejku NEBUDE proveden.'#1); + pz.Next; + end; +// Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idVydej + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idVydej); + Helios.Refresh(true); + end + else + Helios.Error(#1'Doklad je blokován jiným uživatelem.'#1); + end; + end; + end; + end; + end; + + + + + procedure TplgLOVATO.ZadejPolPrijemkyNaVydejku(const Helios: IHelios; idPrij: Integer); + var lSQL: string; + pz,mu: IHeQuery; + mn, mnE: Single; + idVydej,idPol,idNPol: string; + idx: Integer; + begin + if (idPrij>0) then + begin + lSQL:= 'SELECT pz.Id FROM ' + tblDZ + ' dz INNER JOIN ' + tblPZ + ' pz ON (dz.Id=pz.IdDoklad) INNER JOIN ' + tblSS + ' ss ON'; + lSQL:= lSQL + ' (pz.IdZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id) WHERE dz.DruhPohybuZbo=0'; + lSQL:= lSQL + ' AND dz.Id=' + IntToStr(idPrij) + ' AND pz.TypVyrobnihoDokladu=0 AND dz.RadaDokladu IN (N' + QuotedStr('220') + ')'; + lSQL:= lSQL + ' AND kz.SkupZbo LIKE ' + QuotedStr('V%') + ' ORDER BY pz.SkupZbo,pz.RegCis,pz.NazevSozNa1,pz.NazevSozNa2'; + pz:= Helios.OpenSQL(lSQL); + if (pz.RecordCount>0) then + begin + if Helios.YesNo('Chcete položky FINÁLNÍCH dílců z příjemky z výroby uložit do výdejky exportu ?',false) then + begin + lSQL:= 'IDSklad=N' + QuotedStr(sklVyroba) + ' AND RadaDokladu IN (N' + QuotedStr('420') + ')'; + if Helios.Prenos(100092,'id',vOle1,lSQL,'Výdejky pro Vývoz',true) then + begin + pz.First; + idPol:= VarToStr(pz.FieldValues(0)); // ID polozky v Prijemce + idNPol:= '0'; + with Helios.OpenSQL('SELECT p.IdRezervace FROM ' + tblPZ + ' pz INNER JOIN ' + tblPrikaz + ' p ON (pz.IdPrikaz=p.id) WHERE pz.id=' + idPol) do + if (RecordCount>0) then + idNPol:= VarToStr(FieldValues(0)); // ID polozky ExpPrikazu + if (idNPol<>'0') then + with Helios.OpenSQL('IF NOT EXISTS(SELECT id FROM ' + tblPZ + ' WHERE id=' + idNPol + ') SELECT 0 ELSE SELECT Mnozstvi-MnOdebrane-MnozstviStorno FROM ' + tblPZ + ' WHERE id=' + idNPol) do + mnE:= StrToFloat(VarToStr(FieldValues(0))); // mnozstvi zbytek na ExpPr + if (mnE<=0) then + begin + lSQL:= 'Položka objednávky (ExpPř) již byla celá splněna/odeslána.'; + Helios.ExecSQL('INSERT #TabExtKom(Poznamka) VALUES (N' + QuotedStr(lSQL) + ')'); + Helios.Error(#1 + lSQL + #1); + Exit; + end; + + idVydej:= VarToStr(vOle1); + mu:= Helios.OpenSQL('SELECT ISNULL(MistoUrceni,0) FROM ' + tblDZ + ' WHERE id=' + idVydej); + if (mu.RecordCount>0) then + begin + lSQL:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + lSQL:= lSQL + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idNPol; // jen Exp.prikazy + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + if ((LeftStr(VarToStr(FieldValues(0)),2)<>'45') and (VarToStr(mu.FieldValues(0))='1')) + or ((LeftStr(VarToStr(FieldValues(0)),2)<>'52') and (VarToStr(mu.FieldValues(0))='3')) then + begin + Helios.Error(#1'Místo určení na výdejce není určeno pro tuto řadu objednávek.'#1); + Exit; + end; + end; + end; + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE BlokovaniEditoru IS NOT NULL AND id=' + idVydej) do + if (RecordCount=0) then // ma vydejku otevrenou nekdo jiny ? 0=ne + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + idVydej); + pz.First; + idx:= 0; + while not(pz.EOF) do + begin + idPol:= VarToStr(pz.FieldValues(0)); + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka '; + lSQL:= lSQL + 'NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'DECLARE @m NVARCHAR(3),@vc INT,@sDPH NUMERIC(5,2),@sSD NUMERIC(5,2),@kEUR NUMERIC(19,6),'; + lSQL:= lSQL + '@jm INT,@k NUMERIC(19,6),@ss INT,@mn NUMERIC(19,6),@idOut INT,@d DATETIME, @mExp NUMERIC(19,6)' + CRLF; + lSQL:= lSQL + 'SET @mExp=' + StringReplace(FloatToStr(mnE),'','',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SELECT @sDPH=SazbaDPH,@sSD=SazbaSD,@mn=Mnozstvi,@k=Kurz,@jm=JednotkaMeny,'; + lSQL:= lSQL + '@ss=IDZboSklad,@kEUR=KurzEuro FROM ' + tblPZ + ' WHERE id=' + idPol + CRLF; + with Helios.OpenSQL('SELECT Mena,VstupniCena,Kurz,KurzEuro,DatPorizeni FROM ' + tblDZ + ' WHERE id=' + idVydej) do + begin + lSQL:= lSQL + 'SET @m=N' + QuotedStr(VarToStr(FieldValues(0))) + CRLF + 'SET @vc=' + VarToStr(FieldValues(1)); + lSQL:= lSQL + CRLF + 'SET @k=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @kEUR=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @d=CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)' + CRLF; + end; + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + idVydej + ',@DruhPohybu=2,@CisloOrg=1,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=NULL,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0' + CRLF; + lSQL:= lSQL + 'SELECT @idOut'; + idNPol:= ''; + try + Inc(idx); + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idNPol:= VarToStr(FieldValues(0)); + if (idNPol<>'') then + begin + lSQL:= 'IF EXISTS(SELECT id FROM ' + tblPZ + ' WHERE IdPrikaz IS NOT NULL AND id=' + idPol + ') BEGIN'; + lSQL:= lSQL + ' DECLARE @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF + 'SELECT @idP=IdPrikaz FROM ' + tblPZ + ' WHERE id=' + idPol + CRLF; + lSQL:= lSQL + 'SELECT @idRez=IdRezervace FROM ' + tblPrikaz + ' WHERE IDPrikazRidici=@idP AND id=@idP' + CRLF; + lSQL:= lSQL + 'IF (@idRez IS NOT NULL) BEGIN DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5)' + CRLF; + lSQL:= lSQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + lSQL:= lSQL + ' WHERE id=@idRez' + CRLF; + lSQL:= lSQL + 'SELECT @k=Kurz FROM ' + tblDZ + ' WHERE id=@idDok' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET PozadDatDod=@d,NazevSozNa1=@n1,NazevSozNa2=@n2,IdOldPolozka=@idRez,JCbezDaniKC=@jcV*@k,JCbezDaniVal=@jcV'; + lSQL:= lSQL + ' WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JCbezDaniKC*Mnozstvi,CCbezDaniVal=JCbezDaniVal*Mnozstvi WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'IF (@idDok IS NOT NULL) EXEC dbo.hp_Aktualizuj_OdebraneMnozstviDoklad @IDDoklad=@idDok,@DruhPohybu=9 END END'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + begin + Clipboard.AsText:= lSQL + CRLF + errPlg; + Helios.Error(#1'Nelze uložit položku na doklad.'#1 + CRLF + E.Message + CRLF + '(SQL v clipboardu)'); + end; + end; + pz.Next; + end; + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idVydej + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idVydej); + Helios.Refresh(true); + Helios.Info(#1'Uloženo ' + IntToStr(idx) + ' položek.'#1); + end + else + Helios.Error(#1'Doklad je blokován jiným uživatelem.'#1); + end; + end; + end; + end; + end; + + + + + function TplgLOVATO.TestKoopObjVydejMat(const Helios: IHelios; idPKO: Integer): Boolean; + var idVPr: integer; + begin + result:= false; + with Helios.OpenSQL('SELECT IDPrikaz FROM ' + tblPKObj + ' WHERE id=' + IntToStr(idPKO)) do + if RecordCount>0 then + begin + idVPr:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL('SELECT id FROM ' + tblPZ + ' WHERE IDPrikaz=' + IntToStr(idVPr) + ' AND TypVyrobnihoDokladu=1') do + if RecordCount>0 then + result:= true; + end; + end; + + + + + procedure TplgLOVATO.PrerovnejPolozkyKoopObj(const Helios: IHelios; idKObj: Integer); + var lSQL: string; + idx: integer; + pol: IHeQuery; + begin + lSQL:= 'SELECT pko.id FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' ORDER BY pko.PozadTerDod DESC,kz.RegCis DESC'; + pol:= Helios.OpenSQL(lSQL); + if pol.RecordCount>0 then + begin + idx:= 101; + pol.First; + while not(pol.EOF) do + begin + try + lSQL:= 'UPDATE ' + tblPKObj + ' SET Polozka=' + IntToStr(idx) + ' WHERE id=' + VarToStr(pol.FieldValues(0)); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error('Chyba: ' + E.Message + CRLF + lSQL); + end; + Dec(idx); + pol.Next + end; + end; + lSQL:= 'SELECT pko.id FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' ORDER BY pko.PozadTerDod,kz.RegCis'; + pol:= Helios.OpenSQL(lSQL); + if pol.RecordCount>0 then + begin + idx:= 1; + pol.First; + while not(pol.EOF) do + begin + try + lSQL:= 'UPDATE ' + tblPKObj + ' SET Polozka=' + IntToStr(idx) + ' WHERE id=' + VarToStr(pol.FieldValues(0)); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error('Chyba: ' + E.Message + CRLF + lSQL); + end; + Inc(idx); + pol.Next + end; + end; + end; + + + + + procedure TplgLOVATO.ExportKoopObjHQL(const Helios: IHelios; idKObj: integer); // 29 + var lSQL, sqlOut, fName: string; + myDIC, myICO, cOrg, cObj, sGUID: string; + guid: TGUID; + fs: TFileStream; + begin + CreateGUID(guid); + sGuid:= GUIDToString(guid); + sGuid:= StringReplace(sGuid,'{','',[rfReplaceAll]); + sGuid:= StringReplace(sGuid,'}','',[rfReplaceAll]); + with Helios.OpenSQL('SELECT ICO,DIC FROM ' + tblCOrg + ' WHERE CisloOrg=0') do + begin + myICO:= VarToStr(FieldValues(0)); + myDIC:= VarToStr(FieldValues(1)); + end; + sqlOut:= 'SET NOCOUNT ON' + CRLF + 'DECLARE @nIdDZ INT, @autor NVARCHAR(80), @dt DATETIME' + CRLF; + sqlOut:= sqlOut + 'SELECT @autor=SUSER_SNAME()' + CRLF + 'SET @dt=GETDATE()' + CRLF; + sqlOut:= sqlOut + 'BEGIN TRAN' + CRLF; + lSQL:= 'SELECT REPLACE(k.Objednavka,N''/'',N''''),c.CisloOrg,k.DIC,k.DatPorizeni,k.DatRealizace,k.Autor,'; + lSQL:= lSQL + 'SUBSTRING(REPLACE(SUBSTRING(k.Poznamka,1,2000),(CHAR(13) + CHAR(10)),N'' ''),1,2000),k.Cislo,k.Rada FROM ' + tblKObj; + lSQL:= lSQL + ' k INNER JOIN ' + tblCOrg + ' c ON (c.Id=k.IDOrganizace) WHERE k.id=' + IntToStr(idKObj); + with Helios.OpenSQL(lSQL) do + begin + cObj:= VarToStr(FieldValues(8)) + VarToStr(FieldValues(7)); + cOrg:= VarToStr(FieldValues(1)); + sqlOut:= sqlOut + ' INSERT dbo._TabEDI_Doklady (DruhDokladu,DIC_src,CisloOrg_dst,DIC_dst,ParovaciZnak,DatPorizeniDokl'; + sqlOut:= sqlOut + ',DatRealizaceDokl,VstupniCena,SazbaDPH,Mena,Poznamka,AutorDokl,Objednavka,GUID) VALUES (1001,N'; + sqlOut:= sqlOut + QuotedStr(myDIC) + ',' + VarToStr(FieldValues(1)) + ',N' + QuotedStr(VarToStr(FieldValues(2))); + sqlOut:= sqlOut + ',N' + QuotedStr('') + ',CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(3))) + ',104),'; + if (VarToStr(FieldValues(4))='') or (VarToStr(FieldValues(4))='30.12.1899') then + sqlOut:= sqlOut + 'NULL' + else + sqlOut:= sqlOut + 'CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)'; + sqlOut:= sqlOut + ',0,NULL,N' + QuotedStr('CZK') + ','; + if (VarToStr(FieldValues(6))='') then + sqlOut:= sqlOut + 'NULL' + else + sqlOut:= sqlOut + 'N' + QuotedStr(VarToStr(FieldValues(6))); + sqlOut:= sqlOut + ',N' + QuotedStr(VarToStr(FieldValues(5))) + ',N' + QuotedStr(VarToStr(FieldValues(0))); + sqlOut:= sqlOut + ',CONVERT(uniqueidentifier,N' + QuotedStr(sGuid) + ') )' + CRLF; + sqlOut:= sqlOut + ' SELECT @nIdDZ=SCOPE_IDENTITY()' + CRLF; + + lSQL:= 'SELECT k.RegCis,p.Kusy,ROUND(p.Cena/p.Kusy,3),p.Polozka FROM ' + tblPKObj + ' p INNER JOIN ' + tblPrikaz; + lSQL:= lSQL + ' pr ON (pr.Id=p.IDPrikaz) INNER JOIN ' + tblKZ + ' k ON (k.Id=pr.IdTabKmen) WHERE p.IDObjednavky=' + IntToStr(idKObj); + lSQL:= lSQL + ' ORDER BY p.Polozka'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + sqlOut:= sqlOut + ' INSERT dbo._TabEDI_Polozky (IDDoklad,RegCis,Mnozstvi,JCbezDaniKc,SazbaDPH,Poradi,'; + sqlOut:= sqlOut + 'Popis1,Zpracovano) VALUES (@nIdDZ,N' + QuotedStr(VarToStr(FieldValues(0))); + sqlOut:= sqlOut + ',' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]); + sqlOut:= sqlOut + ',' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + ',21,'; + sqlOut:= sqlOut + VarToStr(FieldValues(3)) + ',N' + QuotedStr(cObj + '/' + VarToStr(FieldValues(3))) + ',0)'; + sqlOut:= sqlOut + CRLF; + Next; + end; + end; + sqlOut:= sqlOut + CRLF + ' INSERT dbo._TabEDI_GUID (GUID,Autor,DatPorizeni) VALUES (CONVERT(uniqueidentifier,N'; + sqlOut:= sqlOut + QuotedStr(sGuid) + '),@autor,@dt)' + CRLF; + sqlOut:= sqlOut + ' UPDATE dbo._TabEDI_Doklady SET ImportOK=1 WHERE id=@nIdDZ' + CRLF; + sqlOut:= sqlOut + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN' + CRLF; + end; + fName:= GetEnvironmentVariable('USERPROFILE') + '\Desktop\EDI-Koop-' + cOrg + '-' + cObj + '.hql'; + fs:= TFileStream.Create(fName, fmCreate); + try + WriteStringToStream(fs,sqlOut); + finally + fs.Free; + Helios.Info('Soubor uložen jako '#1 + fName + #1); + end; + end; + + + + + procedure TplgLOVATO.ExportKoopObj(const Helios: IHelios; idKObj: integer); + const strLov = '40755509 LOVATO spol.s r.o.'; + var fld: string; + lSQL: string; + xls: TXLSReadWriteII5; + wSheet1, wSheet2: TXLSWorksheet; + poz: IHeQuery; + idPolKObj, idx: integer; + cObj, dodav, dat, datKO: string; + begin + if idKObj>0 then + begin + +// lSQL:= 'SELECT p.Polozka,p.Kusy,p.PozadTerDod_X,k.RegCis FROM ' + tblPKObj + ' p INNER JOIN ' + tblPrikaz + ' pr ON (p.IDPrikaz=pr.id)'; +// lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' k ON (pr.IdTabKmen=k.id) WHERE p.IDObjednavky=' + IntToStr(idKObj); +// lSQL:= lSQL + ' ORDER BY p.Polozka'; + + lSQL:= 'SELECT DISTINCT(kz.RegCis),pko.PozadTerDod,SUM(pko.Kusy) FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.PozadTerDod ORDER BY pko.PozadTerDod'; // kz.RegCis'; + + poz:= Helios.OpenSQL(lSQL); + if (poz.RecordCount>0) then + begin + if VyberAdresar(fld, 'Umístění exportního souboru') then + begin + lSQL:= 'SELECT k.Objednavka,c.ICO + N' + QuotedStr(' ') + ' + c.Nazev,k.TerminOdeslani FROM ' + tblKObj; + lSQL:= lSQL + ' k INNER JOIN ' + tblCOrg + ' c ON (k.IDOrganizace=c.id) WHERE k.id=' + IntToStr(idKObj); + with Helios.OpenSQL(lSQL) do + begin + cObj:= VarToStr(FieldValues(0)); + dodav:= VarToStr(FieldValues(1)); + datKO:= VarToStr(FieldValues(2)); + end; + cObj:= StringReplace(cObj,'/','',[rfReplaceAll]); + + xls:= TXLSReadWriteII5.Create(nil); + try + xls.Version:= xvExcel97; + wSheet2:= xls.Sheets[0]; + wSheet2.Name:= 'Sumace'; +// xls[1].InsertRows(0,poz.RecordCount); +// xls[1].InsertColumns(0,7); + wSheet2.AsString[0,0]:= 'Objednavatel'; + wSheet2.AsString[2,0]:= strLov; + wSheet2.AsString[0,2]:= 'Dodavatel:'; + wSheet2.AsString[2,2]:= dodav; + wSheet2.AsString[0,4]:= 'Datum vystavení:'; + wSheet2.AsString[2,4]:= datKO; + wSheet2.AsString[0,6]:= 'Čís.obj.'; + wSheet2.AsString[1,6]:= 'Poř.č.'; + wSheet2.Columns.Items[1].NumberFormat:= '##0'; + wSheet2.Columns.Items[1].HorizAlignment:= chaCenter; + wSheet2.AsString[2,6]:= 'Číslo výrobku'; + wSheet2.AsString[3,6]:= 'Množství'; + wSheet2.Columns.Items[3].NumberFormat:= '###,##0.###'; + wSheet2.AsString[4,6]:= 'Splnit do'; + wSheet2.Columns.Items[4].NumberFormat:= 'DD.MM.YYYY'; + wSheet2.Columns.Items[4].HorizAlignment:= chaCenter; + idx:= 7; + poz.First; + while not(poz.EOF) do + begin + wSheet2.AsString[0, idx]:= cObj; + wSheet2.AsInteger[1, idx]:= idx-6; // VarToStr(poz.FieldValues(0)); + wSheet2.AsString[2, idx]:= VarToStr(poz.FieldValues(0)); // RegCis + wSheet2.AsFloat[3, idx]:= StrToFloat(VarToStr(poz.FieldValues(2))); // mnozstvi + dat:= VarToStr(poz.FieldValues(1)); + if (dat<>'') then + wSheet2.AsString[4, idx]:= dat; + Inc(idx); + poz.Next; + end; + wSheet2.AutoWidthCols(0, 4); + +// if Helios.YesNo('Mám přerovnat položky objednávky podle datumu a reg.čísla ?',false) then +// PrerovnejPolozkyKoopObj(Helios,idKObj); + + lSQL:= 'SELECT pko.Polozka,kz.RegCis,pko.Kusy,pko.PozadTerDod_X FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IdPrikaz=p.id)'; + lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj); + +{ + lSQL:= 'CREATE TABLE #Vystup (Pozice INT IDENTITY(1,1),RegCis NVARCHAR(20),Polozka INT,Kusu NUMERIC(19,6)) ' + CRLF; + lSQL:= lSQL + 'INSERT INTO #Vystup (RegCis,Polozka,Kusu) '; + lSQL:= lSQL + 'SELECT DISTINCT(kz.RegCis),pko.Polozka,SUM(pko.Kusy) FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.Polozka ORDER BY pko.Polozka' + CRLF; + lSQL:= lSQL + 'SELECT * FROM #Vystup'; +} + poz:= Helios.OpenSQL(lSQL); + if (poz.RecordCount>0) then + begin + poz.First; + idx:= 7; + wSheet1:= xls.Add; + wSheet1.Name:= 'Detail'; + wSheet1.AsString[0,0]:= 'Objednavatel'; + wSheet1.AsString[2,0]:= strLov; + wSheet1.AsString[0,2]:= 'Dodavatel:'; + wSheet1.AsString[2,2]:= dodav; + wSheet1.AsString[0,4]:= 'Datum vystavení:'; + wSheet1.AsString[2,4]:= datKO; + wSheet1.AsString[0,6]:= 'Čís.obj.'; + wSheet1.AsString[1,6]:= 'Poř.č.'; + wSheet1.Columns.Items[1].NumberFormat:= '##0'; + wSheet1.Columns.Items[1].HorizAlignment:= chaCenter; + wSheet1.AsString[2,6]:= 'Číslo výrobku'; + wSheet1.AsString[3,6]:= 'Množství'; + wSheet1.Columns.Items[3].NumberFormat:= '###,###,##0.###'; + wSheet1.AsString[4,6]:= 'Splnit do'; + wSheet1.Columns.Items[4].NumberFormat:= 'DD.MM.YYYY'; + wSheet1.Columns.Items[4].HorizAlignment:= chaCenter; + while not(poz.EOF) do + begin + wSheet1.AsString[0, idx]:= cObj; + wSheet1.AsInteger[1, idx]:= StrToInt(VarToStr(poz.FieldValues(0))); // polozka + wSheet1.AsString[2, idx]:= VarToStr(poz.FieldValues(1)); // RegCis + wSheet1.AsFloat[3, idx]:= StrToFloat(VarToStr(poz.FieldValues(2))); // mnozstvi + dat:= VarToStr(poz.FieldValues(3)); + if (dat<>'') then + wSheet1.AsString[4, idx]:= dat; + Inc(idx); + poz.Next; + end; + wSheet1.AutoWidthCols(0, 4); + end; + xls.Sheets[0].Rows.Items[6].FontStyle:= [xfsBold]; + xls.Sheets[0].Columns.Items[1].HorizAlignment:= chaCenter; + xls.Sheets[0].Columns.Items[3].HorizAlignment:= chaCenter; + xls.Sheets[0].Columns.Items[4].HorizAlignment:= chaCenter; + xls.Sheets[1].Rows.Items[6].FontStyle:= [xfsBold]; + xls.SaveToFile(fld + '\Obj-' + cObj + '.xls'); + finally + xls.Free; + end; + Helios.Info('Export souboru ukončen.'); + end; + end + else + Helios.Error(#1'Kooperační objednávka neobsahuje žádnou položku.'#1); + end + else + Helios.Error(#1'Nelze identifikovat Kooperační objednávku.'#1); + end; + + + + + procedure TplgLOVATO.GenerujVydejZEP(const Helios: IHelios); + begin + + end; + + + + + procedure TplgLOVATO.GenerujVydejMatZPrikazu(const Helios: IHelios; idEvidKoop: integer); + const rDoklVydMat = '400'; + drVydej = '4'; + var pol: IHeQuery; + lSQL, podm: string; + idKZ, idKZPr, idDZ, idPZ, iPC, idVPr, idPrKVaz: Integer; + mnoz, mnozOdv, mnozVPr, mnReal: Extended; + sPC, stredVPr, cOrgKoop, idSS, dokl, idObd, cOrg: string; // poradove cislo noveho dokladu vydejky + begin + idVPr:= 0; + with Helios.OpenSQL('SELECT IDPrikaz FROM ' + tblMzdZm + ' WHERE TypMzdy=2 AND id=' + IntToStr(idEvidKoop)) do + if (RecordCount>0) then + idVPr:= StrToInt(VarToStr(FieldValues(0))); + if (idVPr>0) then + begin + mnozVPr:= 0; + stredVPr:= ''; + with Helios.OpenSQL('SELECT ISNULL(KmenoveStredisko,' + QuotedStr('') + '),kusy_zive,IDTabKmen FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idVPr)) do + if RecordCount=1 then + begin + stredVPr:= VarToStr(FieldValues(0)); + mnozVPr:= StrToFloat(VarToStr(FieldValues(1))); + idKZPr:= StrToInt(VarToStr(FieldValues(2))); + end; + if (stredVPr<>'') and (mnozVPr>0) then + begin + with Helios.OpenSQL('SELECT ISNULL(Cislo_V,' + QuotedStr('') + ') FROM ' + tblStrom + ' WHERE Cislo=N' + QuotedStr(stredVPr)) do + stredVPr:= VarToStr(FieldValues(0)); + if (stredVPr<>'') then + begin + lSQL:= 'SELECT se._CisloOrg FROM ' + tblStrom + ' s INNER JOIN ' + tblStromE + ' se ON (s.id=se.id)'; + lSQL:= lSQL + ' WHERE s.Cislo=N' + QuotedStr(stredVPr); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + cOrg:= VarToStr(FieldValues(0)) + else + cOrg:= ''; + if (cOrg<>'') then + begin + mnozOdv:= 0; + lSQL:= 'SELECT kusy_odv FROM ' + tblMzdZm + ' WHERE TypMzdy=2 AND id=' + IntToStr(idEvidKoop); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + mnozOdv:= StrToFloat(VarToStr(FieldValues(0))); + + lSQL:= 'SELECT nizsi,mnoz_Nevydane,Doklad,id,Mnoz_skut_realizovane FROM ' + tblPrVaz + ' WHERE mnoz_Nevydane>0 AND IDPrikaz=' + IntToStr(idVPr); + lSQL:= lSQL + ' ORDER BY DatPorizeni'; + pol:= Helios.OpenSQL(lSQL); + if (pol.RecordCount>0) and (mnozOdv>0) then + begin + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + + podm:= 'Obdobi=' + idObd + ' AND DruhPohybuZbo=' + drVydej + ' AND RadaDokladu=N' + QuotedStr(rDoklVydMat); + podm:= podm + ' AND IDSklad=N' + QuotedStr(stredVPr); + iPC:= NajdiPrvniVolny(Helios,tblDZ,'PoradoveCislo',drVydej,rDoklVydMat,idObd,podm); + + lSQL:= 'DECLARE @i INT' + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @i OUT,@sklad=N' + QuotedStr(stredVPr); + lSQL:= lSQL + ',@DruhPohybu=' + drVydej + ',@RadaDokladu=N' + QuotedStr(rDoklVydMat) + ',@CisloOrg=' + cOrg + ',@Mena=N'; + lSQL:= lSQL + QuotedStr('CZK') + ',@Insert=1' + CRLF + 'SELECT @i'; + idDZ:= 0; + try + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uložit hlavičku Výdejky materiálu.'#1); + end; + if (idDZ>0) then + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + IntToStr(idDZ)); + pol.First; + while not(pol.EOF) do + begin + idSS:= ''; + idKZ:= StrToInt(VarToStr(pol.FieldValues(0))); + dokl:= VarToStr(pol.FieldValues(2)); + idPrKVaz:= StrToInt(VarToStr(pol.FieldValues(3))); + mnReal:= StrToFloat(VarToStr(pol.FieldValues(4))); + mnoz:= 0; + + lSQL:= 'SELECT mnozstvi FROM ' + tblKVaz + ' WHERE nizsi=' + IntToStr(idKZ) + ' AND vyssi=' + IntToStr(idKZPr); + with Helios.OpenSQL(lSQL) do + begin + mnoz:= StrToFloat(VarToStr(FieldValues(0))); + mnoz:= RoundToEx(mnoz*mnozOdv,-3); + mnReal:= mnReal + mnoz; + end; + + if (idKZ>0) then + begin + lSQL:= 'SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + IntToStr(idKZ) + ' AND IDSklad=N' + QuotedStr(stredVPr); + with Helios.OpenSQL(lSQL) do + if RecordCount=0 then + begin + lSQL:= 'INSERT ' + tblSS + ' (IDSklad,IdKmenZbozi) VALUES (N' + QuotedStr(stredVPr) + ',' + IntToStr(idKZ) + ')'; + lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(lSQL) do + idSS:= VarToStr(FieldValues(0)); + end + else + idSS:= VarToStr(FieldValues(0)); + end; + lSQL:= 'DECLARE @i INT'; + lSQL:= lSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @i OUT,@IDDoklad=' + IntToStr(idDZ); + lSQL:= lSQL + ',@DruhPohybu=' + drVydej + ',@CisloOrg=' + cOrg + ',@IDZboSklad=' + idSS + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@JednotkaMeny=1,@Kurz=1'; + lSQL:= lSQL + ',@VstupniCena=0,@JCbezDaniKC=0.1,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0'; + lSQL:= lSQL + ',@Selectem=0,@Mnozstvi=' + StringReplace(FloatToStr(mnoz),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@DatPorizeni=NULL,@PovolitDuplicitu=1' + CRLF + 'SELECT @i'; + idPZ:= 0; + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idPZ:= StrToInt(VarToStr(FieldValues(0))); + if (idPZ>0) then + try + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET DokladPrikazu=' + dokl + ',TypVyrobnihoDokladu=1, IDPrikaz=' + IntToStr(idVPr) + ' WHERE id=' + IntToStr(idPZ)); + try + Helios.ExecSQL('INSERT ' + tblMzdZmGenPZ + ' (IDMzdy,TypGen,IDPohybu) VALUES (' + IntToStr(idEvidKoop) + ',0,' + IntToStr(idPZ) + ')'); + except + end; +{ + lSQL:= 'UPDATE ' + tblPrVaz + ' SET '; + lSQL:= lSQL + 'Mnoz_skut_realizovane=' + StringReplace(FloatToStr(mnReal),',','.',[rfReplaceAll]); + lSQL:= lSQL + 'Mnoz_odv=' + StringReplace(FloatToStr(mnReal),',','.',[rfReplaceAll]); + lSQL:= lSQL + ' WHERE id=' + IntToStr(idPrKVaz); + Helios.ExecSQL(lSQL); +} + except on E:Exception do + Helios.Error(#1'Nelze uložit položku výdejky.'#1 + CRLF + E.Message + errPlg); + end + else + Helios.Error(#1'Nelze uložit položku výdejky.'#1 + CRLF + lSQL + errPlg); + pol.Next; + end; + + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null,IDPrikaz=' + IntToStr(idVPr) + ' WHERE id=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); + try + lSQL:= 'DECLARE @BylaChyba BIT' + CRLF + 'EXEC dbo.hp_Realizuj_Vydej ' + IntToStr(idDZ) + ',NULL,' + IntToStr(Helios.UserId); + lSQL:= lSQL + ',0,@BylaChyba OUT' + CRLF + 'SELECT @BylaChyba'; + Helios.OpenSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Nelze realizovat výdejku.'#1 + CRLF + E.Message + errPlg); + end; + Helios.Info('Hotovo - nová výdejka na skladě ' + stredVPr + ', č.' + rDoklVydMat + ' : ' + IntToStr(iPC)); + end; + end + else + Helios.Error(#1'Skladu není přiřazena organizace.'#1 + errPlg); + end + else + Helios.Error(#1'Skladu není přiřazena organizace.'#1 + errPlg); + end + else + Helios.Error(#1'Kmenové středisko Výrobního příkazu nemá určen sklad materiálu.'#1); + end + else + Helios.Error(#1'Na Výrobním příkazu není určeno Kmenové středisko.'#1 + errPlg); + end + else + Helios.Error(#1'Operace není Kooperační, resp. nebyl identifikován Výrobní příkaz.'#1 + errPlg); + end; + + + + + procedure TplgLOVATO.OdpovedPPL(const Helios: IHelios); + begin + end; + + + + + procedure TplgLOVATO.ImportNesplObj(const Helios: IHelios); + var idx: integer; + cObj, rc, sTmp, idDZ, idSS, idKZ, idPZ: string; + xls: TXLSReadWriteII5; + fs: TFileStream; + wSheet: TXLSWorksheet; + dat1, dat2: TDate; + poz: integer; + Mnoz, JCena, kurz: Extended; + sql: string; + begin + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ',N' + QuotedStr('U') + ') IS NOT NULL'; + sql:= sql + CRLF + 'DROP TABLE #TabExtKom' + CRLF + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(255) NOT NULL)'; + Helios.ExecSQL(sql); + if OtevriSouborXLS(fName,'') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + wSheet:= xls.Add; + if (wSheet.AsString[0,0]<>'CISOBJ') or (wSheet.AsString[7,0]<>'ZBYVYR') then + raise Exception.Create('Soubor s nesplněnými objednávkami není v požadovaném formátu.') + else + if (wSheet.LastRow>0) then + begin + Helios.ExecSQL('DECLARE @max INT' + CRLF + 'SELECT @max=MAX(id) FROM ' + tblDZ + CRLF + 'DBCC CHECKIDENT(TabDokladyZbozi,reseed,@max)'); + Helios.ExecSQL('DECLARE @max INT' + CRLF + 'SELECT @max=MAX(id) FROM ' + tblPZ + CRLF + 'DBCC CHECKIDENT(TabPohybyZbozi,reseed,@max)'); + sql:= 'DECLARE @i INT' + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @i OUT,@sklad=N' + QuotedStr(Helios.Sklad); + sql:= sql + ',@DruhPohybu=9,@RadaDokladu=N' + QuotedStr(rImpNesplObj) + ',@CisloOrg=1,@Mena=N'; + sql:= sql + QuotedStr('EUR') + ',@Insert=1' + CRLF + 'SELECT @i'; + idDZ:= ''; + with Helios.OpenSQL(sql) do + idDZ:= VarToStr(FieldValues(0)); + if (idDZ<>'') then + begin + with Helios.OpenSQL('SELECT Kurz FROM ' + tblDZ + ' WHERE id=' + idDZ) do + kurz:= StrToFloat(VarToStr(FieldValues(0))); + + idx:= 1; + cObj:= Trim(wSheet.AsString[0, idx]); + while (cObj<>'') do + begin + poz:= wSheet.AsInteger[1, idx]; + rc:= wSheet.AsString[3, idx]; + rc:= StringReplace(rc,' ','',[rfReplaceAll]); + rc:= StringReplace(rc,'.','',[rfReplaceAll]); + rc:= StringReplace(rc,'/','',[rfReplaceAll]); + + sTmp:= wSheet.AsString[2, idx]; + if Pos(' ',sTmp)>0 then + begin + sTmp:= StringReplace(sTmp,' ','',[rfReplaceAll]); + sTmp:= StringReplace(sTmp,'i','',[rfReplaceAll]); + dat1:= StrToDate(sTmp); // datum objednavky + end + else + dat1:= wSheet.AsDateTime[2, idx]; // datum objednavky + + dat2:= wSheet.AsDateTime[8, idx]; // pozadovane datum + + mnoz:= wSheet.AsFloat[7, idx]; + JCena:= wSheet.AsFloat[10, idx]; + + idSS:= ''; + idKZ:= ''; + sql:= 'SELECT ss.id,kz.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IDKmenZbozi=kz.id)'; + sql:= sql + ' WHERE ss.IDSklad=N' + QuotedStr(Helios.Sklad) + ' AND kz.RegCis=N' + QuotedStr(rc) + ' AND kz.SkupZbo LIKE N''V%'''; + with Helios.OpenSQL(sql) do + begin + idSS:= VarToStr(FieldValues(0)); + idKZ:= VarToStr(FieldValues(1)); + end; + idPZ:= ''; + if idSS<>'' then + begin + sql:= 'DECLARE @i INT, @d DATETIME' + CRLF + 'SET @d=CONVERT(datetime,' + QuotedStr(DateToStr(dat1)) + ',104)'; + sql:= sql + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @i OUT,@IDDoklad=' + idDZ; + sql:= sql + ',@DruhPohybu=9,@CisloOrg=1,@IDZboSklad=' + idSS + ',@Mena=N' + QuotedStr('EUR'); + sql:= sql + ',@JednotkaMeny=1,@Kurz=' + StringReplace(FloatToStr(kurz),',','.',[rfReplaceAll]); + sql:= sql + ',@VstupniCena=4,@JCbezDaniKC=0,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=1'; + sql:= sql + ',@Selectem=0,@Mnozstvi=' + StringReplace(FloatToStr(mnoz),',','.',[rfReplaceAll]); + sql:= sql + ',@DatPorizeni=@d,@PovolitDuplicitu=1' + CRLF + 'SELECT @i'; + with Helios.OpenSQL(sql) do + idPZ:= VarToStr(FieldValues(0)); + if idPZ<>'' then + begin + sql:= 'UPDATE ' + tblPZ + ' SET JCbezDaniKc=' + StringReplace(FloatToStr(JCena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniKcPoS=' + StringReplace(FloatToStr(JCena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniKc=' + StringReplace(FloatToStr(mnoz*JCena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniValPoS=' + StringReplace(FloatToStr(JCena),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniVal=' + StringReplace(FloatToStr(JCena),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniVal=' + StringReplace(FloatToStr(mnoz*JCena),',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + idPZ + CRLF; + sql:= sql + 'UPDATE ' + tblPZ + ' SET PozadDatDod=CONVERT(datetime,' + QuotedStr(DateToStr(dat2)) + ',104)'; + sql:= sql + ',NazevSozNa1=N' + QuotedStr(cObj) + ',NazevSozNa2=N'; + sql:= sql + QuotedStr(StringOfChar('0', 4-Length(IntToStr(poz))) + IntToStr(poz)); + sql:= sql + ' WHERE id=' + idPZ; + Helios.ExecSQL(sql); + end; + end + else + UlozChybu(Helios,'Nenalezena skladová karta: ' + rc,nil); + Inc(idx); + cObj:= Trim(wSheet.AsString[0, idx]); + end; + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idDZ); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idDZ + ',@AktualizaceSlev=1'); + Helios.Refresh(true); + try + with Helios.OpenSQL('SELECT Poznamka FROM #TabExtKom') do + if RecordCount>0 then + Helios.OpenBrowse(541,''); + finally + end; + end; + end; + finally + fs.Free; + end; + end; + end; + +{ +// generuj kooperacni objednavku + procedure TplgLOVATO.GenerujKoopObjednavku(const Helios: IHelios; idVP: Integer); + var pp: IHeQuery; + sql: WideString; + idKoopObj,idOrg,idZam: integer; + cVPrik,radaKoop,cKoopObj,termOdesli: ShortString; + dat1: TDateTime; + begin + cVPrik:= ''; + dat1:= Now; + with Helios.OpenSQL('SELECT RadaPrikaz,CONVERT(datetime,Plan_zadani,104) FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idVP)) do + if RecordCount>0 then + begin + cVPrik:= VarToStr(FieldValues(0)); + dat1:= StrToDateTime(VarToStr(FieldValues(1))); + end; + radaKoop:= '101'; + idOrg:= 0; + idZam:= 0; + + pp:= Helios.OpenSQL('SELECT * FROM ' + tblPrPost + ' WHERE idPrikaz=' + IntToStr(idVP)); + if pp.RecordCount>0 then + begin + cKoopObj:= '1'; + sql:= 'SELECT MAX(Cislo)+1 FROM ' + tblKoopObj + ' WHERE Rada=N' + QuotedStr(radaKoop); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + cKoopObj:= VarToStr(FieldValues(0)); + cKoopObj:= StringOfChar('0',6-Length(cKoopObj)) + cKoopObj; // zadat na 6 cislic + + sql:= 'INSERT INTO dbo.TabKoopObj (Rada,Cislo,IDOrganizace,IDZamestnance,TerminOdeslani,PozadTerDod) '; + sql:= sql + 'VALUES (N' + QuotedStr(radaKoop) + ',' + cKoopObj + ',' + IntToStr(idOrg) + ',' + IntToStr(idZam) + ','; + sql:= sql + 'CONVERT(datetime,' + QuotedStr(DateTimeToStr(dat1)) + ',104),'; + sql:= sql + 'CONVERT(datetime,' + QuotedStr(DateTimeToStr(dat1)) + ',104) )' + CRLF; + sql:= sql + 'SELECT SCOPE_IDENTITY()'; + idKoopObj:= 0; + with Helios.OpenSQL(sql) do + idKoopObj:= StrToInt(VarToStr(FieldValues(0))); + + if idKoopObj>0 then + begin + pp.First; + while not(pp.EOF) do + begin + pp.Next; + end; + end + else + Helios.Error(#1'Nepodařilo se uložit Kooperační objednávku' + CRLF + 'pro výrobní příkaz: ' + cVPrik + #1); + end; + end; +} + + + +// import polozek objednavky z IT (pokud je v vlastTbl<>'' pak import do jiz existujiciho dokladu + procedure TplgLOVATO.ImportEP(const Helios: IHelios; const idDZx: integer; ExpP: boolean); + var sql, fName, errMsg: string; + testOK, kontrolaCen: Boolean; + tStr, rCeniky, cObj, regCis, wCond, cisDZ, skladEP, cOrg, mena, boxik, hmotJg: string; + idSS, jCenaSS, sazba, mj, descript, cenik: string; + pozice: integer; + qty, cena, per, kurz, ccena: Extended; + datum: TDateTime; + iLoop, iSheet, iX, iY, iPos: integer; + pol, obj: IHeQuery; + idDZ, idDZShift, idPZ, idKZ, cDokl, idUmist: Integer; + pocRadek, idCen, idPolCen, maxRegCis: integer; + sCen: string; + rDokl: string[3]; + tmpTab, szPodm: string; + chybka,newKarta: boolean; + xls: TXLSReadWriteII5; + wSheet1, wSheet2: TXLSWorkSheet; + begin + sql:= 'IF OBJECT_ID(N' + QuotedStr('TempDB..#TabExtKom') + ',N' + QuotedStr('U') + ') IS NOT NULL'; + sql:= sql + CRLF + 'DROP TABLE #TabExtKom' + CRLF + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(255) NOT NULL)'; + Helios.ExecSQL(sql); + + chybka:= false; + + if (idDZx>0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE Realizovano=1 AND id=' + IntToStr(idDZx)) do + if (RecordCount>0) then + begin + raise Exception.Create('Položky nelze vložit do REALIZOVANÉHO dokladu.'); + chybka:= true; + end; + + cOrg:= '0'; + if not VarIsNull(Helios.QueryEdit.FieldByNameValues('CisloOrg')) then + cOrg:= VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg')); + + idCen:= 0; + sCen:= ''; + kontrolaCen:= false; + sql:= 'SELECT coe.id FROM ' + tblCOrgE + ' coe INNER JOIN ' + tblCOrg + ' co ON (coe.id=co.id) WHERE'; + sql:= sql + ' coe._KontrolaCenPrijem=1 AND co.CisloOrg=' + cOrg; + + with Helios.OpenSQL(sql) do + if (RecordCount>0) then // pri prijmu kontrolovat cenu podle ceniku (Nabidkove sestavy) + begin + + // hleda pokud k dane firme existuje Nabidkova sestava v rade "Ceniky pro kontrolu" pro dany rok podle DatPorizeni + // pokud existuje vic Nabidek, bere prvni se razenim podle DatPorizeni DESC + datum:= Now; + if not VarIsNull(Helios.QueryEdit.FieldByNameValues('DatPorizeni')) then + datum:= StrToDateTime(VarToStr(Helios.QueryEdit.FieldByNameValues('DatPorizeni'))); + + if (ExpP) then + begin + if (Helios.Sklad='200') then + rCeniky:= '210' + else + begin + sql:= 'DruhPohybuZbo=11'; + if Helios.Prenos(bidDDZ, 'RadaDokladu', oVar1, sql, 'Řada ceníku podle které bude provedena kontrola ceny', true) then + rCeniky:= VarToStr(oVar1) + else + rCeniky:= '210'; + end; + sql:= 'SELECT TOP(1) id, ParovaciZnak FROM ' + tblDZ + ' WHERE DruhPohybuZbo=11 AND NabidkaCenik=1 AND RadaDokladu=N'; + sql:= sql + QuotedStr(rCeniky) + ' AND CisloOrg=' + cOrg + ' AND GETDATE() BETWEEN ISNULL(Splatnost, CONVERT(datetime,N'; + sql:= sql + QuotedStr('1.1.2015') + ',104)) AND ISNULL(DatUhrady, CONVERT(datetime,N' + QuotedStr('31.12.2030') + ',104)) ORDER BY DatPorizeni DESC'; + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + idCen:= StrToInt(VarToStr(FieldValues(0))); + tStr:= VarToStr(FieldValues(1)); + sCen:= tStr; // rCeniky + StringOfChar('0',6 - Length(tStr)) + tStr; + kontrolaCen:= true; + end; +{ + tStr:= ''; + if not VarIsNull(Helios.QueryEdit.FieldByNameValues('Nabidka')) then + tStr:= VarToStr(Helios.QueryEdit.FieldByNameValues('Nabidka')); + if (tStr<>'') then + with Helios.OpenSQL('SELECT ParovaciZnak FROM ' + tblDZ + ' WHERE id=' + tStr) do + if RecordCount>0 then + tStr:= VarToStr(FieldValues(0)); + + if (sCen<>tStr) and (idCen>0) then + begin + raise Exception.Create('Není zadán Ceník, podle kterého se mají kontrolovat ceny.'); + chybka:= true; + end; +} + end; + end; + end; + + if chybka then + Exit; + + chybka:= false; + tmpTab:= ''; + if ExpP then + tmpTab:= '[dbo].[_TabImportEP]' + else + tmpTab:= '[dbo].[_TabImportPckLst]'; +// tmpTab:= '#' + tmpTab; + + cOrg:= orgLovatoIT; + mena:= orgLovatoITmena; + if (idDZx>0) then + begin + cOrg:= VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg')); + if (cOrg='') then + cOrg:= orgLovatoIT; + mena:= VarToStr(Helios.QueryEdit.FieldByNameValues('Mena')); + if (mena='') then + mena:= orgLovatoITmena; + rDokl:= VarToStr(Helios.QueryEdit.FieldByNameValues('RadaDokladu')); +{ + with Helios.OpenSQL('SELECT Mena,CisloOrg,RadaDokladu FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZx)) do + if RecordCount>0 then + begin + mena:= VarToStr(FieldValues(0)); + cOrg:= VarToStr(FieldValues(1)); + rDokl:= VarToStr(FieldValues(2)); + end; +} + end; + + skladEP:= Helios.Sklad; + + if OtevriSouborXLS(fName,'') then + begin + Screen.Cursor:= crHourGlass; + xls:= TXLSReadWriteII5.Create(nil); + try + xls.Filename:= fName; + xls.Read; + if ExpP then + begin + if (xls.Count<>1) then + begin + Helios.Error('Soubor s objednávkou ORDER má mít jen 1 list !'); + xls.Free; + Exit; + end; + end + else + begin + if (xls.Count<>2) then + begin + Helios.Error('Soubor s dodávkou PACKING LIST má mít 2 listy !'); + xls.Free; + Exit; + end; + end; + + testOK:= true; + if ExpP then + begin // format pro objednavku (order) + iSheet:= 0; + wSheet1:= xls.Sheets[0]; + tStr:= LowerCase(wSheet1.AsString[0,0]); + if (Pos('purchase',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[2,0]); + if (Pos('code',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[4,0]); + if (Pos('quantity',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[5,0]); + if (Pos('price',tStr)=0) then + testOK:= false + end + else + begin // format pro prijemku materialu (Packinglist) + iSheet:= 1; + wSheet1:= xls.Sheets[1]; + wSheet2:= xls.Sheets[0]; +// iSheet:= xls.Sheets.Count-1; + tStr:= LowerCase(wSheet1.AsString[0,6]); + if (Pos('codice',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[5,6]); + if (Pos('nr',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[7,6]); + if (Pos('totale',tStr)=0) then + testOK:= false; + end; + + if testOK then + begin + pocRadek:= 0; + if ExpP then + begin + if not(VarIsNull(wSheet1.AsVariant[0, 1+pocRadek])) then + sql:= wSheet1.AsString[0, 1+pocRadek] + else + sql:= '' + end + else + begin + if not(VarIsNull(wSheet1.AsVariant[0, 7+pocRadek])) then + sql:= wSheet1.AsString[0, 7+pocRadek] + else + sql:= ''; + end; + while (sql<>'') do + begin + Inc(pocRadek); + if ExpP then + begin + if not(VarIsNull(wSheet1.AsVariant[0, 1+pocRadek])) then + sql:= wSheet1.AsString[0, 1+pocRadek] + else + sql:= '' + end + else + begin + if not(VarIsNull(wSheet1.AsVariant[0, 7+pocRadek])) then + sql:= wSheet1.AsString[0, 7+pocRadek] + else + sql:= ''; + end; + end; + + if (pocRadek>0) then + begin + if (idDZx=0) then + begin + sql:= 'DruhPohybuZbo=9'; + if not(ExpP) then + sql:= 'DruhPohybuZbo=0'; +// iSheet + if Helios.Prenos(bidDDZ,'RadaDokladu',oVar1,sql,'Vyberte řadu do které bude vystaven doklad',true) then + rDokl:= VarToStr(oVar1) + else + begin + if Helios.YesNo('Nebyla vybrána řada dokladů. Chcete ukončit import ?',false) then + begin + xls.Free; + Exit; + end; + end; + end; + + maxRegCis:= 15; + with Helios.OpenSQL('SELECT TOP(1)DelkaRegCislaZbozi FROM TabHGlob') do + if (RecordCount>0) then + maxRegCis:= StrToInt(VarToStr(FieldValues(0))); +// sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..' + tmpTab) + ',' + QuotedStr('U') + ') IS NOT NULL '; + sql:= 'IF OBJECT_ID(N' + QuotedStr(tmpTab) + ',' + QuotedStr('U') + ') IS NOT NULL '; + sql:= sql + 'DROP TABLE ' + tmpTab + CRLF + 'CREATE TABLE ' + tmpTab + '('; + sql:= sql + 'cObj NVARCHAR(12), pozice INT, regCis NVARCHAR(' + IntToStr(maxRegCis) + ') NOT NULL,'; + sql:= sql + 'mnozstvi NUMERIC(19,6) NOT NULL, cena NUMERIC(19,6), per NUMERIC(19,6),'; + sql:= sql + 'datDod DATETIME, popis NVARCHAR(100), boxik NVARCHAR(50), hmotJg NUMERIC(10,2) DEFAULT 0.0)'; + Helios.ExecSQL(sql); + + tStr:= ''; +// import polozek z XLS do pomocne tabulky + for iLoop:=1 to pocRadek do + begin + regCis:= ''; + qty:= 0; + boxik:= ''; + if ExpP then // je to objednavka z IT ? + begin // ano + cObj:= Trim(wSheet1.AsString[0, iLoop]); + Pozice:= wSheet1.AsInteger[1, iLoop]; + regCis:= UpperCase(Trim(wSheet1.AsString[2, iLoop])); + descript:= wSheet1.AsString[3, iLoop]; + qty:= wSheet1.AsFloat[4, iLoop]; + cena:= wSheet1.AsFloat[5, iLoop]; + per:= wSheet1.AsFloat[6, iLoop]; + datum:= wSheet1.AsDateTime[7, iLoop]; + hmotJg:= '0'; + end + else + begin // ne, je to Packinglist (prijemka) + qty:= 0; + try + if (VarIsNull(wSheet1.AsVariant[5, iLoop+6])) then + Break; + + if not(VarIsNull(wSheet1.AsVariant[5, iLoop+6])) then + qty:= wSheet1.AsFloat[5, iLoop+6]; + except + end; + if (qty>0) then + begin + cObj:= Trim(wSheet1.AsString[1, iLoop+6]); // celni nomenklatura + pozice:= 0; + regCis:= Trim(wSheet1.AsString[0, iLoop+6]); + + if not(VarIsNull(wSheet1.AsVariant[4, iLoop])) then + begin + iX:= 0; +// nahrazuje VLOOKUP (SVYHLEDAT) - kouka na odkaz do 1.listu + sql:= wSheet2.AsString[0, iX]; + while (sql<>'') do + begin + if (sql=regCis) then + begin + if not(VarIsNull(wSheet2.AsVariant[1, iX])) then + boxik:= wSheet2.AsString[1, iX] + else + boxik:= ''; + Break; + end; + Inc(iX); + if not(VarIsNull(wSheet2.AsVariant[0, iX])) then + sql:= wSheet2.AsString[0, iX] + else + sql:= ''; + end; + end; + + if not(VarIsNull(wSheet1.AsVariant[4, iLoop+6])) then + boxik:= wSheet1.AsString[4, iLoop+6]; + if not(VarIsNull(wSheet1.AsVariant[3, iLoop+6])) then + descript:= wSheet1.AsString[3, iLoop+6]; + per:= 1; + if (VarIsNull(wSheet1.AsVariant[6, iLoop+6])) then + begin + UlozChybu(Helios, 'Nelze uložit položku z XLS: obj.č. ' + regCis + ' (' + FloatToStr(qty) + ' ks, ' + DateToStr(datum) + ') - není zadána vstupní cena.', nil); + qty:= 0; + end + else + cena:= wSheet1.AsFloat[6, iLoop+6]; + hmotJg:= '0'; + if not(VarIsNull(wSheet1.AsVariant[8, iLoop+6])) then + hmotJg:= wSheet1.AsString[8, iLoop+6]; + hmotJg:= StringReplace(hmotJg,' ','',[rfReplaceAll]); + + datum:= Now; + end; + end; + if (qty<>0) then + begin + sql:= 'INSERT ' + tmpTab + ' (cObj, Pozice, regCis, mnozstvi, cena, per, datDod, popis, boxik, hmotJg)'; + sql:= sql + ' SELECT N' + QuotedStr(cObj) + ',' + IntToStr(pozice); + sql:= sql + ',N' + QuotedStr(regCis) + ',' + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]); + sql:= sql + ',' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ','; + sql:= sql + StringReplace(FloatToStr(per),',','.',[rfReplaceAll]); + sql:= sql + ',CONVERT(datetime,' + QuotedStr(DateToStr(datum)) + ',104),'; + sql:= sql + 'N' + QuotedStr(descript) + ',N' + QuotedStr(boxik) + ', ' + StringReplace(hmotJg,',','.',[rfReplaceAll]); + try + if (sql<>'') then + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios, 'Nelze uložit požadavek XLS: obj.č. ' + regCis + ' (' + FloatToStr(qty) + ', ' + DateToStr(datum) + ')', E); + end; + end; + end; + xls.Free; + end + end + else // test OK + begin + Helios.Error(#1'Importovaný soubor není v definovaném formátu.'#1); + Exit; + end; + + except on E:Exception do + begin + xls.Free; + Helios.Error(#1'Chyba při importu XLS souboru (ExpP/Pckg): '#1 + E.Message + CRLF + errMsg); + Exit; + end; + end; + +// pro PL (dodaci list) najdi neexistujici polozky, pripadne je zaloz + if not(ExpP) then + begin + sql:= 'SELECT LTRIM(RTRIM(regCis)), popis, cObj FROM ' + tmpTab + ' WHERE LTRIM(RTRIM(regCis)) NOT IN (SELECT LTRIM(RTRIM(RegCis)) FROM ' + tblKZ; + sql:= sql + ' WHERE SkupZbo=N' + QuotedStr('MAT') + ')'; + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + sql:= 'INSERT ' + tblKZ + ' (SkupZbo,RegCis,Nazev2,DruhSkladu,MJEvidence,CelniNomenklatura) VALUES (N' + QuotedStr('MAT'); + sql:= sql + ',N' + QuotedStr(LeftStr(VarToStr(FieldValues(0)),maxRegCis)) + ',N'; + sql:= sql + QuotedStr(LeftStr(VarToStr(FieldValues(1)),100)) + ',1,N' + QuotedStr('ks'); + sql:= sql + ',N' + QuotedStr(VarToStr(FieldValues(2))) + ')'; + sql:= sql + CRLF + 'INSERT #TabExtKom(Poznamka) VALUES (N'; + sql:= sql + QuotedStr('Založena nová karta: MAT ' + VarToStr(FieldValues(0))) + ')'; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze založit novou kartu: MAT ' + VarToStr(FieldValues(0)),E); + end; + Next; + end; + end; + end; + +// konec importu XLS do pomocne tabulky + +// test karta je pro vyrobu + sql:= 'SELECT RegCis,Popis FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + if expP = false then sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0) AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')' + else sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0 OR sz.SkupZbo not LIKE N' + QuotedStr('V%') + ') AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')'; // upraveno + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + pol.First; + while not(pol.EOF) do + begin + regCis:= VarToStr(pol.FieldValues(0)); + tStr:= VarToStr(pol.FieldValues(1)); + UlozChybu(Helios,'Karta nepatří výrobě nebo je blokována, nebyla importována: ' + regCis + ' - ' + tStr ,nil); + pol.Next; + end; + end; + +// test karta existuje + sql:= 'SELECT RegCis,Popis FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + if expP = false then sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0) AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')' + else sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0 OR sz.SkupZbo not LIKE N' + QuotedStr('V%') + ') AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')'; // upraveno + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + pol.First; + while not(pol.EOF) do + begin + regCis:= VarToStr(pol.FieldValues(0)); + tStr:= VarToStr(pol.FieldValues(1)); + UlozChybu(Helios,'Karta nepatří výrobě nebo je blokována, nebyla importována: ' + regCis + ' - ' + tStr ,nil); + pol.Next; + end; + end; + +// test v PackingListu karta je material + if not(ExpP) then + begin + sql:= 'SELECT RegCis,Popis,Mnozstvi FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=1 AND kz.SkupZbo<>N' + QuotedStr(szNovyImportMat) + ')'; + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + pol.First; + while not(pol.EOF) do + begin + regCis:= VarToStr(pol.FieldValues(0)); + tStr:= VarToStr(pol.FieldValues(1)); + tStr:= tStr + ' (množ. ' + VarToStr(pol.FieldValues(2)) + ' )'; + UlozChybu(Helios,'Pozor, karta nebyla importována, není materiál (skupina MAT): ' + regCis + ' - ' + tStr ,nil); + pol.Next; + end; + end; + end; + +// kontrola na existenci karet + sql:= 'SELECT RegCis, Popis FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + //sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=1)'; + sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=1 '; // upraveno 7.9.2018 + // if ExpP = true then sql := sql + ' AND _JeProImportObjednavkyZItalie = 1'; // přidáno 7.9.2018 + if ExpP = true then sql := sql + ' AND sz.SkupZbo LIKE N' + QuotedStr('V%'); // přidáno 7.9.2018 verze skupina na V + sql := sql + ')'; // přidáno 7.9.2018 + //Helios.Info(sql); + pol:= Helios.OpenSQL(sql); + //helios.Info((pol.RecordCount.ToString)); + if (pol.RecordCount>0) then + begin + sql:= ''; + pol.First; + while not(pol.EOF) do + begin + newKarta:= false; + regCis:= VarToStr(pol.FieldValues(0)); + sql:= 'SELECT id FROM ' + tblKZ + ' WHERE UPPER(SkupZbo)=N'; + if ExpP then + tStr:= szNovyImportExpP + else + tStr:= 'MAT'; + sql:= sql + QuotedStr(tStr); + sql:= sql + ' AND UPPER(RegCis)=N' + QuotedStr(regCis); + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + begin + sql:= 'INSERT ' + tblKZ + ' (SkupZbo, RegCis, Nazev2, DruhSkladu, MJEvidence, Material, Dilec) VALUES (N' + QuotedStr(tStr); + sql:= sql + ',N' + QuotedStr(regCis) + ',N' + QuotedStr(VarToStr(pol.FieldValues(1))); + sql:= sql + ',1,N' + QuotedStr('ks') + ','; + if ExpP then + sql:= sql + '0,1' + else + sql:= sql + '1,0'; + sql:= sql + ')' + CRLF + 'SELECT SCOPE_IDENTITY()'; + // Helios.Info(sql + CRLF + tstr); + try + if (tStr<>szNovyImportExpP) and (tStr<>szNovyImportMat) then + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + tStr:= VarToStr(FieldValues(0)); + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET Blokovano=1 WHERE id=' + tStr); + UlozChybu(Helios,'Nová karta (bude blokovaná): ' + tStr + '-' + regCis ,nil); + newKarta:= true; + end; + except on E:Exception do + UlozChybu(Helios,'Nelze založit novou kartu ' + regCis + ' : SQL ' + sql, E); + end; + end; + pol.Next; + end; + end; + +{ + tStr:= ''; + sql:= 'SELECT RegCis FROM ' + tblKZ + ' WHERE Blokovano=1 AND SkupZbo=N' + QuotedStr('MAT'); + sql:= sql + ' AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tmpTab + ')'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + UlozChybu(Helios,'Karta je označena jako ARCHIVNÍ a NEBUDE importována: ' + VarHodnota(FieldValues(0),''), nil);; + Next; + end; + end; +} + +// pokud je to DL, aktualizuj hmotnosti + if not(ExpP) then + begin + sql:= 'UPDATE kz SET kz.Hmotnost=ROUND((t.hmotJg/1000),6) FROM ' + tblKZ + ' kz INNER JOIN ' + tmpTab + ' t ON (t.regCis=kz.RegCis)'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (sz.SkupZbo=kz.SkupZbo) INNER JOIN ' + tblSZe; + sql:= sql + ' sze ON (sze.Id=sz.Id) WHERE sze._JeVyroba=1'; + Helios.ExecSQL(sql); + end; + + + sql:= 'SELECT * FROM ' + tmpTab; // + ' WHERE RegCis NOT IN (SELECT RegCis FROM ' + tblKZ + ' WHERE Blokovano=1)'; +// sql:= sql + ' AND cObj=N' + QuotedStr(cObj); + sql:= sql + ' ORDER BY pozice'; + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + ReseedTable(Helios,tblSS); +// ReseedTable(Helios,tblNC); + ReseedTable(Helios,tblJC); + +{ + if idDZx=0 then + begin + idDZshift:= 0; // posunuti cisla brane z nastaveni TabDruhDokZboDef + sql:= 'SELECT dzd.PosledniPC FROM [dbo].[TabDruhDokZboDef] dzd INNER JOIN [dbo].[TabDruhDokZbo] dz'; + sql:= sql + ' ON (dz.ID=dzd.idDruhDZ) WHERE dzd.IdObdobi=' + IntToStr(aktObd); + sql:= sql + ' AND dz.DruhPohybuZbo=9 AND dz.RadaDokladu=N' + QuotedStr(rDokl); + + with Helios.OpenSQL(sql) do + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idDZshift) then + idDZshift:= 0; + + wCond:= 'Obdobi=' + IntToStr(aktObd) + ' AND IdSklad=N' + QuotedStr(skladEP); + wCond:= wCond + ' AND DruhPohybuZbo=9 AND RadaDokladu=N' + QuotedStr(rDokl); + sql:= 'EXEC dbo.hp_NajdiPrvniVolny N' + QuotedStr(tblDZ) + ',N' + QuotedStr('PoradoveCislo'); + sql:= sql + ',' + IntToStr(idDZshift) + ',99999999,N' + QuotedStr(wCond) + ',0,1'; + + idDZ:= 0; + with Helios.OpenSQL(sql) do + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idDZ) then + idDZ:= 0; + if (idDZ=0) or (idDZ=idDZshift) then + idDZ:= idDZshift + 1; + end; +} + cisDZ:= IntToStr(idDZ); + + mena:= UpperCase(mena); + if (idDZx=0) then + begin + sql:= 'DECLARE @Ident INT'+ CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N'; + sql:= sql + QuotedStr(skladEP)+',@DruhPohybu=9,@RadaDokladu=N' + QuotedStr(rDokl)+',@Insert=1,'; + sql:= sql + '@PC=null,@Mena=N' + QuotedStr(mena) + ',@CisloOrg='; +// sql:= sql + '@PC=' + cisDZ + ',@Mena=N' + QuotedStr(mena) + ',@CisloOrg='; + sql:= sql + cOrg + ',@DatumPorizeni=NULL' + CRLF + 'SELECT @Ident'; + + idDZ:= 0; + try + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + if not VarIsNull(FieldValues(0)) then + idDZ:= StrToInt(VarToStr(FieldValues(0))); // zjisti ID vytvorene prijemky + except on E:Exception + do Helios.Error(#1'Nelze uložit hlavičku Exp.příkazu (objednávky) !'#1 + CRLF + E.Message + CRLF + sql); + end; + end + else + begin + idDZ:= idDZx; + cisDZ:= IntToStr(idDZ); + end; +// pokud je vytvorena hlavicka dokladu + if (idDZ>0) then + begin +// zmen pripadnou vstupni cenu + kurz:= 1; + with Helios.OpenSQL('SELECT Kurz FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ)) do + kurz:= StrToFloat(VarToStr(FieldValues(0))); +{ + if (mena<>'CZK') then + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET VstupniCena=4 WHERE id=' + IntToStr(idDZ)); + +// uprav defaultni DPH na 0 (podle platnosti v danem obdobi) + sql:= 'SELECT d.Sazba FROM ' + tblDPHDef + ' def INNER JOIN ' + tblDPH + ' d ON (def.IdDPH=d.id AND d.Sazba=0)'; + sql:= sql + ' WHERE def.IdObdobi=' + IntToStR(aktObd) + ' AND Blokovano=0 AND Platnost=0'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + tStr:= VarToStr(FieldValues(0)); + if tStr='' then + tStr:= '0'; + sql:= 'UPDATE ' + tblDZ + ' SET SazbaDPH=' + StringReplace(tStr,',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + IntToStr(idDZ); + try + Helios.ExecSQL(sql); + except on E:Exception + do Helios.Error('U dokladu (ExpP) nelze změnit Sazbu DPH.'); + end; + end; +} + +// import polozek na doklad + pol.First; + while not(pol.EOF) do + begin + idKZ:= 0; + tStr:= ''; + boxik:= ''; + regCis:= VarToStr(pol.FieldByNameValues('regCis')); + sql:= 'SELECT kz.id, sz.SkupZbo, kz.RegCis, kz.Nazev1, kz.SKP, kz.MJEvidence, kz.SazbaDPHVstup, '; + sql:= sql + 'kz.CelniNomenklatura, kze._UmisteniVyroba, kze._UmisteniPrijem FROM ' + tblKZ + ' kz INNER JOIN '; + sql:= sql + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze ON (sz.id=sze.id)'; + sql:= sql + ' LEFT JOIN ' + tblKZe + ' kze ON (kz.id=kze.id)' ; + sql:= sql + ' WHERE kz.Blokovano=0 AND kz.RegCis=N' + QuotedStr(regCis) + ' AND sze._JeVyroba=1'; + // if (ExpP = True) then sql := sql + ' AND sze._JeProImportObjednavkyZItalie=1'; // přidáno 7.9.2018 + if (ExpP = True) then sql := sql + ' AND sz.SkupZbo LIKE N' + QuotedStr('V%'); // přidáno 7.9.2018 + + szPodm:= ' AND sz.SkupZbo NOT LIKE N' + QuotedStr('%00'); + with Helios.OpenSQL(sql + szPodm) do + if (RecordCount>0) then // regulerni karta + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + if (idKZ=0) then + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + // helios.Info((idkz).ToString); + if (idKZ>0) then + with Helios.OpenSQL(sql) do + begin +// test na existenci Kusovnikovych vazev a Technologickych postupu +{ + sql:= 'SELECT id FROM ' + tblKZ + ' WHERE Material=1 AND Id=' + IntToStr(idKZ) + ' UNION ALL '; + sql:= sql + 'SELECT id FROM ' + tblKVaz + ' WHERE vyssi=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + if (RecordCount>1) then + UlozChybu(Helios,'Pozor, karta je výrobek ale nemá definovaný kusovník (' + regCis + ')',nil); + + sql:= 'SELECT id FROM ' + tblKZ + ' WHERE Material=1 AND Id=' + IntToStr(idKZ) + ' UNION ALL '; + sql:= sql + 'SELECT id FROM ' + tblPostup + ' WHERE dilec=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + if (RecordCount>1) then + UlozChybu(Helios,'Pozor, karta je výrobek ale nemá definované tech.postupy (' + regCis + ')',nil); +} + + try + qty:= StrToFloat(VarToStr(pol.FieldByNameValues('mnozstvi'))); + except + qty:= 0; + end; + pozice:= StrToInt(VarToStr(pol.FieldByNameValues('pozice'))); + boxik:= VarToStr(pol.FieldByNameValues('boxik')); + descript:= VarToStr(pol.FieldByNameValues('popis')); + try + per:= StrToFloat(VarToStr(pol.FieldByNameValues('per'))); + except + per:= 1; + end; + if (per=0) then + per:= 1; + cena:= 0; + cena:= StrToFloat(VarToStr(pol.FieldByNameValues('cena'))); + cena:= RoundToEX(cena/per,-6); + if kontrolaCen then + begin + if (mena='CZK') or (mena='') then + sql:= 'SELECT pz.JCbezDaniKC' + else + sql:= 'SELECT pz.JCbezDaniVal'; + sql:= sql + ' FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS + ' ss ON (pz.IDZboSklad=ss.id)'; + sql:= sql + ' INNER JOIN ' + tblKZ + ' kz ON (ss.IDKmenZbozi=kz.id) WHERE ss.IDSklad=N'; + sql:= sql + QuotedStr(Helios.Sklad) + ' AND pz.IDDoklad=' + IntToStr(idCen) + ' AND kz.id=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + begin + if (RecordCount=0) then + begin + sql:= 'Položka nebyla v ceníku nalezena: ' + regCis; + if ExpP then + sql:= sql + ', pozice ' + IntToStr(pozice); + sql:= sql + ', množ. ' + FloatToStr(qty); + sql:= sql + ' (cena ' + FloatToStr(cena) + ')'; + UlozChybu(Helios, sql, nil); + end; + if (RecordCount>0) then + begin + ccena:= StrToFloat(VarToStr(FieldValues(0))); + ccena:= RoundToEX(ccena, -4); + cena:= RoundToEX(cena, -4); + if (ccena<>cena) then + begin + sql:= 'Rozdílná cena položky: ' + regCis; + if ExpP then + sql:= sql + ', pozice ' + IntToStr(pozice); + sql:= sql + ', množ. ' + FloatToStr(qty); + sql:= sql + ' (cena ' + FloatToStr(cena) + ' x ceník ' + FloatToStr(ccena) + ')'; + UlozChybu(Helios, sql, nil); + end; + end; + end; + end; + + datum:= StrToDate(VarToStr(pol.FieldByNameValues('datDod'))); + idUmist:= 0; + if not ExpP then + begin + tStr:= VarToStr(FieldValues(7)); // celni nomenklatura + cObj:= VarToStr(pol.FieldByNameValues('cObj')); // CN ze souboru + if newKarta then + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET CelniNomenklatura=N' + QuotedStr(LeftStr(cObj,8)) + ' WHERE id=' + IntToStr(idKZ)) + else + if (cObj<>tStr) then + begin + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET CelniNomenklatura=N' + QuotedStr(LeftStr(cObj,8)) + ' WHERE id=' + IntToStr(idKZ)); + UlozChybu(Helios,'Karta má odlišnou celní nomenklaturu: ' + regCis + ' (stará ' + tStr + ' x nová ' + cObj + ')', nil); + end; + end; + + sazba:= VarToStr(FieldValues(6)); + if (sazba='') then + sazba:= '0'; + mj:= VarToStr(FieldValues(5)); + + idSS:= ''; + jCenaSS:= '0'; +{ +// kontrola existence NC + sql:= 'SELECT '; + if mena<>'CZK' then + sql:= sql + 'CenaVal1' + else + sql:= sql + 'CenaKC'; + sql:= sql + ' FROM ' + tblNC + ' WHERE CenovaUroven=1 AND IdKmenZbozi=' + IntToStr(idKZ); + if mena<>'CZK' then + sql:= sql + ' AND UPPER(Mena1)=N' + QuotedStr(mena); + + Clipboard.AsText:= sql; + ShowMessage('SQL: ' + sql); + + with Helios.OpenSQL(sql) do + if RecordCount>0 then + jCenaSS:= VarToStr(FieldValues(0)); // nabidkova cena v dane mene +} + + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skladEP) + ' AND IDKmenZbozi=' + IntToStr(idKZ)) do + if (RecordCount>0) then + idSS:= VarToStr(FieldValues(0)); + if (idSS='') then + begin + sql:= 'INSERT ' + tblSS + ' (IDKmenZbozi,IDSklad) VALUES (' + IntToStr(idKZ) + ',N' + QuotedStr(skladEP) + ')'; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Chyba ins StavSkl pol: ' + regCis + ' : SQL ' + sql,E); + end; + with Helios.OpenSQL('SELECT SCOPE_IDENTITY()') do + if not VarIsNull(FieldValues(0)) then + idSS:= VarToStr(FieldValues(0)); + end; + if (idSS<>'') then + begin + sql:= 'SELECT id FROM ' + tblPZ + ' WHERE IdZboSklad=' + idSS + ' AND DruhPohybuZbo<5'; + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + UlozChybu(Helios,'Položka ' + regCis + ' nemá žádný minulý pohyb na skladě, zkontrolujte hmotnost/celní nomenklaturu...', nil); + + sql:= 'DECLARE @Ident INT' + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @Ident OUT,@IDDoklad='; + sql:= sql + IntToStr(idDZ) + ',@DruhPohybu='; + if ExpP then + sql:= sql + '9' + else + sql:= sql + '0'; + sql:= sql + ',@CisloOrg=' + cOrg + ',@IDZboSklad=' + idSS + ',@SazbaDPH=' + sazba + ',@Mnozstvi='; + sql:= sql + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]) + ',@MJ=N' + QuotedStr(mj) + ',@JCbezDaniKC='; + sql:= sql + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ',@DatPorizeni=NULL'; + if mena='CZK' then + sql:= sql + ',@VstupniCena=0,@Kurz=1' + else + sql:= sql + ',@VstupniCena=4,@Kurz=' + StringReplace(FloatToStr(kurz),',','.',[rfReplaceAll]); + sql:= sql + ',@PovolitDuplicitu=1,@SazbaSD=0,@ZakazanoDPH=0,@KurzEuro=0,@Mena=N' + QuotedStr(mena); + sql:= sql + ',@PovolitBlokovane=1,@JednotkaMeny=1,@Selectem=0' + CRLF + 'SELECT @Ident'; + idPZ:= 0; + try + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idPZ) then + idPZ:= 0; + except on E:Exception do + UlozChybu(Helios,'Nelze uložit položku do dokladu ! SQL ' + sql, E); + end; + if (idPZ>0) then + begin + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idPZ)); + sql:= ''; + + if (mena<>'CZK') then + begin + sql:= 'UPDATE ' + tblPZ + ' SET JCbezDaniKc=' + StringReplace(FloatToStr(cena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniKcPoS=' + StringReplace(FloatToStr(cena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniKc=' + StringReplace(FloatToStr(qty*cena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniValPoS=' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniVal=' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniVal=' + StringReplace(FloatToStr(qty*cena),',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + IntToStr(idPZ) + CRLF; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze upravit cenu položky ExpPř !' + CRLF + sql, E); + end; + end; + + if (cena<>0) and not ExpP then + begin + sql:= 'DECLARE @idZ INT' + CRLF + 'SET @idZ=(SELECT TOP(1) id FROM dbo.TabCZmeny WHERE Rada=N' + QuotedStr('01') + ' AND datum<='; + sql:= sql + 'CONVERT(datetime,N' + QuotedStr(DateToStr(datum)) + ',104) ORDER BY datum DESC)' + CRLF; + sql:= sql + 'SELECT id,Cena FROM ' + tblKaCe + ' WHERE ZmenaOd=@idZ AND IdKmenZbozi=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + begin + if (RecordCount>0) then + begin +// if StrToFloat(VarToStr(FieldValues(1)))=0 then + try + Helios.ExecSQL('UPDATE ' + tblKaCe + ' SET Cena=' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ' WHERE id=' + VarToStr(FieldValues(0))); + except on E:Exception do + UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + sql, E); + end; + end + else + begin + sql:= 'DECLARE @idZ INT' + CRLF + 'SET @idZ=(SELECT TOP(1) id FROM dbo.TabCZmeny WHERE Rada=N' + QuotedStr('01') + ' AND datum<='; + sql:= sql + 'CONVERT(datetime,N' + QuotedStr(DateToStr(datum)) + ',104) ORDER BY datum DESC)' + CRLF; + sql:= sql + 'IF @idZ IS NOT NULL INSERT ' + tblKaCe + ' (IdKmenZbozi,ZmenaOd,Cena) VALUES (' + IntToStr(idKZ) + ',@idZ,'; + sql:= sql + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ')'; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze uložit kalkulační cenu ! SQL: ' + sql, E); + end; + end; + end; + end; + + sql:= 'UPDATE ' + tblPZ + ' SET '; + if ExpP then + begin // objednavka = ExpPr + mj:= IntToStr(pozice); + if (Length(mj)>4) then + mj:= ReverseString(LeftStr(ReverseString(mj),4)); + mj:= StringOfChar('0',4-Length(mj))+mj; + sql:= sql + 'NazevSozNa1=N' + QuotedStr(cObj); + sql:= sql + ',NazevSozNa2=N' + QuotedStr(mj) + ',NazevSozNa3=N' + QuotedStr(cObj+mj); + sql:= sql + ',PozadDatDod=CONVERT(datetime,' + QuotedStr(DateToStr(datum)) + ',104)'; + end + else + begin // packinglist = prijemka + tStr:= ''; + sql:= sql + 'NazevSozNa1=N' + QuotedStr(boxik); // descript + if not VarIsNull(FieldValues(8)) then // umisteni na vyrobu + tStr:= VarToStr(FieldValues(8)); + if (tStr='') then + if not VarIsNull(FieldValues(9)) then // umisteni + tStr:= VarToStr(FieldValues(9)); + if (tStr<>'') then + begin + tStr:= 'SELECT id FROM ' + tblUmist + ' WHERE IDSklad=N' + QuotedStr(Helios.Sklad) + ' AND Kod=N' + QuotedStr(tStr); + with Helios.OpenSQL(tStr) do + if (RecordCount>0) then + begin + idUmist:= StrToInt(VarToStr(FieldValues(0))); + tStr:= 'SELECT id FROM ' + tblStavUm + ' WHERE IDStav=' + idSS + ' AND IDUmisteni=' + IntToStr(idUmist); + with Helios.OpenSQL(tStr) do + if (RecordCount>0) then + sql:= sql + ',IDUmisteni=' + VarToStr(FieldValues(0)); + end; + end; + end; + sql:= sql + ',Popis4=N' + QuotedStr(descript); + sql:= sql + ' WHERE id=' + IntToStr(idPZ); + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze aktualizovat doplňující údaje na položce dokladu ! SQL: ' + sql, E); + end; + end; + end; + end; + pol.Next; + end; + end; + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); +{ + sql:= 'SELECT kz.id FROM ' + tblPZ + ' WHERE kz.Blokovano=1'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + Helios.OpenBrowse(bidKZ,'TabKmenZbozi.Blokovano=1'); +} + end; + Helios.Refresh(True); + try + Helios.ExecSQL('TRUNCATE TABLE ' + tmpTab); + except + end; + Helios.Info('Import souboru '#1 + fName + #1' byl ukoncen.'); + + if not ExpP then + with Helios.OpenSQL('SELECT id FROM ' + tblKZ + ' WHERE Blokovano=0 AND SkupZbo=N' + QuotedStr(szNovyImportMat)) do + if (RecordCount>0) then + begin + Helios.Error(#1'Existují nové materiály, je třeba je přeřadit do skupiny MAT,' + CRLF + 'upravit detaily a zaměnit na dokladech'#1); + Helios.OpenBrowse(2,'TabKmenZbozi.Blokovano=0 AND TabKmenZbozi.SkupZbo=N' + QuotedStr(szNovyImportMat)); + end; + end; + Screen.Cursor:= crDefault; +{ + try + with Helios.OpenSQL('SELECT Poznamka FROM #TabExtKom') do + if (RecordCount>0) then + Helios.OpenBrowse(541,''); + finally + end; +} + end; + + + + + procedure TplgLOVATO.HromadneOdvedeniEvidKoop(const Helios: IHelios); + begin + with Helios.OpenSQL('SELECT id FROM dbo._TabPrijemNadvyroby WHERE Zpracovano=0') do + if (RecordCount>0) then + begin + + end + else + Helios.Error(#1'V importní tabulce (_TabPrijemNadvyroby) nejsou žádné záznamy.'#1); + end; + + + + + procedure TplgLOVATO.ImportDL_CHD(const Helios: IHelios); + var lSQL, cObj, regC, mnoz, cisDL, dat, dokl, altP, mnCena, cOrgCHD, idKoop: string; + idx, poz, idEvid, idKO, idPKO, idVPr, idKZ, idDZ, idDZp, idSS: integer; + xls: TXLSReadWriteII5; + sheet: TXLSWorksheet; + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ',N' + QuotedStr('U') + ') IS NOT NULL'; + lSQL:= lSQL + CRLF + 'DROP TABLE #TabExtKom' + CRLF + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(255) NOT NULL)' + CRLF; + lSQL:= lSQL + 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + lSQL:= lSQL + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + Helios.ExecSQL(lSQL); + if OtevriSouborXLS(fName,'') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + xls.LoadFromFile(fName); + +// CHD-SPEKTRUM s.r.o. + cOrgCHD:= '1118'; + with Helios.OpenSQL('SELECT id FROM ' + tblCOrg + ' WHERE NadrizenaOrg IS NULL AND DIC=N' + QuotedStr('CZ26084155')) do + if (RecordCount=1) then + cOrgCHD:= VarToStr(FieldValues(0)); + idKoop:= '7'; + with Helios.OpenSQL('SELECT id FROM dbo.TabRadyCKoop WHERE LOWER(LTRIM(RTRIM(nazev)))=N' + QuotedStr('spektrum')) do + if (RecordCount=1) then + idKoop:= VarToStr(FieldValues(0)); + + dat:= InputBox('Datum evidence','Datum: ', DateToStr(Now)); + sheet:= xls.Sheets[0]; + idx:= 1; + idDZ:= 0; + idDZp:= 0; + regC:= sheet.AsString[2,idx]; + while (regC<>'') do + begin + cObj:= ''; + poz:= 0; + regC:= ''; + mnoz:= '0'; + cisDL:= ''; + if (sheet.CellType[0,idx]<>xctNone) and (sheet.CellType[0,idx]<>xctBlank) then + cObj:= Trim(sheet.AsString[0,idx]); + if (sheet.CellType[1,idx]<>xctNone) and (sheet.CellType[1,idx]<>xctBlank) then + poz:= sheet.AsInteger[1,idx]; + if (sheet.CellType[2,idx]<>xctNone) and (sheet.CellType[2,idx]<>xctBlank) then + regC:= Trim(sheet.AsString[2,idx]); + if (sheet.CellType[3,idx]<>xctNone) and (sheet.CellType[3,idx]<>xctBlank) then + mnoz:= Trim(sheet.AsString[3,idx]); + if (sheet.CellType[4,idx]<>xctNone) and (sheet.CellType[4,idx]<>xctBlank) then + cisDL:= Trim(sheet.AsString[4,idx]); + idKO:= 0; + idPKO:= 0; + idVPr:= 0; + idKZ:= 0; + if (cObj<>'') then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblKObj + ' WHERE REPLACE(Objednavka,''/'','''')=N' + QuotedStr(cObj)) do + if (RecordCount=1) then + idKO:= StrToInt(VarToStr(FieldValues(0))); + if (idKO>0) and (poz>0) then + with Helios.OpenSQL('SELECT Id, IdPrikaz, DokladPrPostup, AltPrPostup, ROUND(Cena/Kusy,3) FROM ' + tblPKObj + ' WHERE IDObjednavky=' + IntToStr(idKO) + ' AND Polozka=' + IntToStr(poz)) do + if (RecordCount=1) then + begin + idPKO:= StrToInt(VarToStr(FieldValues(0))); + idVPr:= StrToInt(VarToStr(FieldValues(1))); + dokl:= VarToStr(FieldValues(2)); + altP:= VarToStr(FieldValues(3)); + mnCena:= VarToStr(FieldValues(4)); + end; + if (idKO>0) and (idPKO>0) and (idVPr>0) then + begin + idEvid:= 0; + with Helios.OpenSQL('SELECT IdTabKmen FROM ' + tblPrikaz + ' WHERE Id=' + IntToStr(idVPr)) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + lSQL:= 'DECLARE @cc NUMERIC(19,6), @idEvid INT, @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dat) + ',104)' + CRLF; + lSQL:= lSQL + 'SET @cc=' + StringReplace(mnCena,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'EXEC @idEvid=dbo.hp_EvidenceOperace @Datum=@dt,@Platit_TBC=0,@Platit_TEC=0,@Kusy_odv='; + lSQL:= lSQL + StringReplace(mnoz,',','.',[rfReplaceAll]) + ',@Operace_odv=' + StringReplace(mnoz,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@Mzda=@cc,@Stav=1,@IDPolKoopObj=' + IntToStr(idPKO) + CRLF + 'SELECT @idEvid'; + with Helios.OpenSQL(lSQL) do + begin + idEvid:= StrToInt(VarToStr(FieldValues(0))); + Helios.ExecSQL('UPDATE ' + tblMzdZm + ' SET BlokovaniEditoru=NULL WHERE Id=' + IntToStr(idEvid)); + lSQL:= 'UPDATE ' + tblMzdZmE + ' SET _DodaciListKooperanta=N' + QuotedStr(cisDL) + ' WHERE id=' + IntToStr(idEvid) + CRLF; + lSQL:= lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblMzdZmE + ' (ID, _DodaciListKooperanta) VALUES (' + IntToStr(idEvid) + ',N' + QuotedStr(cisDL) + ')'; + Helios.ExecSQL(lSQL); + end; + end; + end + else + if (regC<>'') then + begin + if (idDZ=0) then + begin + lSQL:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(sklCHD) + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr('450') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(lSQL) do + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + end; + if (idDZ>0) then + begin + lSQL:= 'SELECT ss.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.Id AND ss.IDSklad=N' + QuotedStr(sklCHD) + ')'; + lSQL:= lSQL + ' WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + lSQL:= 'DECLARE @idOut INT, @ss INT, @m NVARCHAR(3), @k NUMERIC(12,4), @jm INT, @kEUR NUMERIC(15,4), @sSD NUMERIC(5,2), @sDPH NUMERIC(5,2),'; + lSQL:= lSQL + '@mn NUMERIC(19,6), @d DATETIME, @pdp BIT, @typSaz TINYINT, @idKZ INT' + CRLF + 'SELECT @jm=1, @sSD=0' + CRLF; + lSQL:= lSQL + 'SELECT @mn=' + StringReplace(mnoz,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SELECT @ss=ss.Id, @idKZ=kz.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_GetSazbuDPH @sDPH OUT, @typSaz OUT, @pdp OUT, @DruhPohybu=4, @IDKmenZbozi=@idKZ' + CRLF; + lSQL:= lSQL + 'SELECT @m=Mena, @k=Kurz, @kEUR=KurzEuro FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDZ) + ',@DruhPohybu=4,@CisloOrg=26,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + try + with Helios.OpenSQL(lSQL) do + begin + lSQL:= 'DECLARE @ss INT; SELECT @ss=ss.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET JCbezDaniKC=(SELECT Prumer FROM ' + tblSS + ' WHERE id=@ss) WHERE id=' + VarToStr(FieldValues(0)); + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + Helios.Error(#1 + E.Message + #1); + end; + end + else + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (' + QuotedStr('CHYBA: Karta materiálu '#1 + regC + #1' nebyla na skladě ' + sklCHD + ' nalezena, nebude zadána na výdejku/převodku.') + ')'); + end; + end; + Inc(idx); + end; + if (idDZ>0) then + begin + lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL, IdSkladPrevodu=N' + QuotedStr(sklVyr); + lSQL:= lSQL + ',TypPrevodky=N' + QuotedStr('250') + ',DruhPohybuPrevod=0,PopisDodavky=N' + QuotedStr('Zpětný převod mat.'); + lSQL:= lSQL + ' WHERE DruhPohybuZbo=4 AND id=' + IntToStr(idDZ); + Helios.ExecSQL(lSQL); + +{ + lSQL:= 'DECLARE @dt DATETIME, @idDZp INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZp OUT,@Sklad=N' + QuotedStr(sklVyr) + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr('250') + ',@Insert=1,@CisloOrg=26,@PC=NULL'; + lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZp'; + try + with Helios.OpenSQL(lSQL) do + idDZp:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze uložit hlavičku příjemky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + + lSQL:= 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZp) + ',@IDDokladSrc=' + IntToStr(idDZ); + lSQL:= lSQL + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + lSQL:= lSQL + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Zpětný převod mat.'); + lSQL:= lSQL + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + lSQL:= lSQL + ',@VytvaretDokladovouVazbu=1,@VytvaretPolozkovouVazbu=1'; + try + Helios.ExecSQL(lSQL); + lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE DruhPohybuZbo=0 AND id=' + IntToStr(idDZp); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Chyba generování dokladového řetězu: '#1 + E.Message); + end; +} + end; + Helios.Refresh(true); + Helios.Info(#1'Import DL ukončen' + IfThen(idDZ>0,' + vygenerována výdejka/převodka CHD -> Lovato','...') +#1); + except on E:Exception do + Helios.Error(#1'Chyba: ' + #1 + E.Message); + end; + end; + end; + + + + // vloženo při číslu palety + procedure TplgLOVATO.ImportDL(const Helios: IHelios); + var lSQL, cObj, regC, mnoz, cisDL, dat, dokl, altP, mnCena{, cOrgCHD}{, idKoop}: string; + idx, poz, idEvid, idKO, idPKO, idVPr, idKZ, idDZ, idDZp, idSS: integer; + xls: TXLSReadWriteII5; + sheet: TXLSWorksheet; + CisloPalety: String; + { IdOrg: integer; + DIC: string; } + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ',N' + QuotedStr('U') + ') IS NOT NULL'; + lSQL:= lSQL + CRLF + 'DROP TABLE #TabExtKom' + CRLF + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(255) NOT NULL)' + CRLF; + lSQL:= lSQL + 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + lSQL:= lSQL + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + Helios.ExecSQL(lSQL); + if OtevriSouborXLS(fName,'') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + xls.LoadFromFile(fName); + +// CHD-SPEKTRUM s.r.o. + // cOrgCHD:= '1118'; + { with Helios.OpenSQL('SELECT id FROM ' + tblCOrg + ' WHERE NadrizenaOrg IS NULL AND DIC=N' + QuotedStr('CZ26084155')) do + if (RecordCount=1) then + cOrgCHD:= VarToStr(FieldValues(0)); } + {idKoop:= '7'; + with Helios.OpenSQL('SELECT id FROM dbo.TabRadyCKoop WHERE LOWER(LTRIM(RTRIM(nazev)))=N' + QuotedStr('spektrum')) do + if (RecordCount=1) then + idKoop:= VarToStr(FieldValues(0)); } + + dat:= InputBox('Datum evidence','Datum: ', DateToStr(Now)); + sheet:= xls.Sheets[0]; + idx:= 1; + idDZ:= 0; + idDZp:= 0; + regC:= sheet.AsString[2,idx]; + while (regC<>'') do + begin + cObj:= ''; + poz:= 0; + regC:= ''; + mnoz:= '0'; + cisDL:= ''; + CisloPalety:=''; + if (sheet.CellType[0,idx]<>xctNone) and (sheet.CellType[0,idx]<>xctBlank) then + cObj:= Trim(sheet.AsString[0,idx]); + if (sheet.CellType[1,idx]<>xctNone) and (sheet.CellType[1,idx]<>xctBlank) then + poz:= sheet.AsInteger[1,idx]; + if (sheet.CellType[2,idx]<>xctNone) and (sheet.CellType[2,idx]<>xctBlank) then + regC:= Trim(sheet.AsString[2,idx]); + if (sheet.CellType[3,idx]<>xctNone) and (sheet.CellType[3,idx]<>xctBlank) then + mnoz:= Trim(sheet.AsString[3,idx]); + if (sheet.CellType[4,idx]<>xctNone) and (sheet.CellType[4,idx]<>xctBlank) then + cisDL:= Trim(sheet.AsString[4,idx]); + if (sheet.CellType[5,idx]<>xctNone) and (sheet.CellType[5,idx]<>xctBlank) then + CisloPalety:= Trim(sheet.AsString[5,idx]); + + idKO:= 0; + idPKO:= 0; + idVPr:= 0; + idKZ:= 0; + if (cObj<>'') then + begin + {with Helios.OpenSQL('SELECT id FROM ' + tblCOrg + ' WHERE NadrizenaOrg IS NULL AND DIC=N' + QuotedStr(DIC)) do + if (RecordCount=1) then IdOrg:= (FieldValues(0)); } // nastavení organizace podle DIČ z Excelu, kde zatím není nebo to (DIČ a dokonce i id organizace) lze zjistit na kooperační objednávce - ale zatím to není třeba + + //with Helios.OpenSQL('SELECT id, IDOraganizace, DIC FROM ' + tblKObj + ' WHERE REPLACE(Objednavka,''/'','''')=N' + QuotedStr(cObj)) do + with Helios.OpenSQL('SELECT id FROM ' + tblKObj + ' WHERE REPLACE(Objednavka,''/'','''')=N' + QuotedStr(cObj)) do + if (RecordCount=1) then + idKO:= StrToInt(VarToStr(FieldValues(0))); + //IdOrg:= (FieldValues(1)); + //DIC := (FieldValues(2)); + if (idKO>0) and (poz>0) then + with Helios.OpenSQL('SELECT Id, IdPrikaz, DokladPrPostup, AltPrPostup, ROUND(Cena/Kusy,3) FROM ' + tblPKObj + ' WHERE IDObjednavky=' + IntToStr(idKO) + ' AND Polozka=' + IntToStr(poz)) do + if (RecordCount=1) then + begin + idPKO:= StrToInt(VarToStr(FieldValues(0))); + idVPr:= StrToInt(VarToStr(FieldValues(1))); + dokl:= VarToStr(FieldValues(2)); + altP:= VarToStr(FieldValues(3)); + mnCena:= VarToStr(FieldValues(4)); + end; + if (idKO>0) and (idPKO>0) and (idVPr>0) then + begin + idEvid:= 0; + with Helios.OpenSQL('SELECT IdTabKmen FROM ' + tblPrikaz + ' WHERE Id=' + IntToStr(idVPr)) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + lSQL:= 'DECLARE @cc NUMERIC(19,6), @idEvid INT, @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dat) + ',104)' + CRLF; + lSQL:= lSQL + 'SET @cc=' + StringReplace(mnCena,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'EXEC @idEvid=dbo.hp_EvidenceOperace @Datum=@dt,@Platit_TBC=0,@Platit_TEC=0,@Kusy_odv='; + lSQL:= lSQL + StringReplace(mnoz,',','.',[rfReplaceAll]) + ',@Operace_odv=' + StringReplace(mnoz,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@Mzda=@cc,@Stav=1,@IDPolKoopObj=' + IntToStr(idPKO) + CRLF + 'SELECT @idEvid'; + with Helios.OpenSQL(lSQL) do + begin + idEvid:= StrToInt(VarToStr(FieldValues(0))); + Helios.ExecSQL('UPDATE ' + tblMzdZm + ' SET BlokovaniEditoru=NULL WHERE Id=' + IntToStr(idEvid)); + lSQL:= 'UPDATE ' + tblMzdZmE + ' SET _DodaciListKooperanta=N' + QuotedStr(cisDL) + ' , _CisloPalety = N' + QuotedStr(CisloPalety) + ' WHERE id=' + IntToStr(idEvid) + CRLF; + lSQL:= lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblMzdZmE + ' (ID, _DodaciListKooperanta, _CisloPalety) VALUES (' + IntToStr(idEvid) + ',N' + QuotedStr(cisDL) + ',N' + QuotedStr(CisloPalety)+ ')'; + Helios.ExecSQL(lSQL); + end; + end; + end + ;{ else + if (regC<>'') then + begin + if (idDZ=0) then + begin + lSQL:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(sklCHD) + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr('450') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(lSQL) do + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + end; + if (idDZ>0) then + begin + lSQL:= 'SELECT ss.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.Id AND ss.IDSklad=N' + QuotedStr(sklCHD) + ')'; + lSQL:= lSQL + ' WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + lSQL:= 'DECLARE @idOut INT, @ss INT, @m NVARCHAR(3), @k NUMERIC(12,4), @jm INT, @kEUR NUMERIC(15,4), @sSD NUMERIC(5,2), @sDPH NUMERIC(5,2),'; + lSQL:= lSQL + '@mn NUMERIC(19,6), @d DATETIME, @pdp BIT, @typSaz TINYINT, @idKZ INT' + CRLF + 'SELECT @jm=1, @sSD=0' + CRLF; + lSQL:= lSQL + 'SELECT @mn=' + StringReplace(mnoz,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SELECT @ss=ss.Id, @idKZ=kz.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_GetSazbuDPH @sDPH OUT, @typSaz OUT, @pdp OUT, @DruhPohybu=4, @IDKmenZbozi=@idKZ' + CRLF; + lSQL:= lSQL + 'SELECT @m=Mena, @k=Kurz, @kEUR=KurzEuro FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDZ) + ',@DruhPohybu=4,@CisloOrg=26,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + try + with Helios.OpenSQL(lSQL) do + begin + lSQL:= 'DECLARE @ss INT; SELECT @ss=ss.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET JCbezDaniKC=(SELECT Prumer FROM ' + tblSS + ' WHERE id=@ss) WHERE id=' + VarToStr(FieldValues(0)); + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + Helios.Error(#1 + E.Message + #1); + end; + end + else + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (' + QuotedStr('CHYBA: Karta materiálu '#1 + regC + #1' nebyla na skladě ' + sklCHD + ' nalezena, nebude zadána na výdejku/převodku.') + ')'); + end; + end; } + Inc(idx); + end; + +// if (idDZ>0) then +// begin +// lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL, IdSkladPrevodu=N' + QuotedStr(sklVyr); +// lSQL:= lSQL + ',TypPrevodky=N' + QuotedStr('250') + ',DruhPohybuPrevod=0,PopisDodavky=N' + QuotedStr('Zpětný převod mat.'); +// lSQL:= lSQL + ' WHERE DruhPohybuZbo=4 AND id=' + IntToStr(idDZ); +// Helios.ExecSQL(lSQL); +// +//{ +// lSQL:= 'DECLARE @dt DATETIME, @idDZp INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; +// lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZp OUT,@Sklad=N' + QuotedStr(sklVyr) + ',@Mena=N' + QuotedStr('CZK'); +// lSQL:= lSQL + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr('250') + ',@Insert=1,@CisloOrg=26,@PC=NULL'; +// lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZp'; +// try +// with Helios.OpenSQL(lSQL) do +// idDZp:= StrToInt(VarToStr(FieldValues(0))); +// except on E:Exception do +// begin +// Clipboard.AsText:= lSQL; +// Helios.Error(#1'Nelze uložit hlavičku příjemky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); +// end; +// end; +// +// lSQL:= 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZp) + ',@IDDokladSrc=' + IntToStr(idDZ); +// lSQL:= lSQL + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); +// lSQL:= lSQL + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; +// lSQL:= lSQL + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Zpětný převod mat.'); +// lSQL:= lSQL + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; +// lSQL:= lSQL + ',@VytvaretDokladovouVazbu=1,@VytvaretPolozkovouVazbu=1'; +// try +// Helios.ExecSQL(lSQL); +// lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE DruhPohybuZbo=0 AND id=' + IntToStr(idDZp); +// Helios.ExecSQL(lSQL); +// except on E:Exception do +// Helios.Error(#1'Chyba generování dokladového řetězu: '#1 + E.Message); +// end; +//} +// end; + Helios.Refresh(true); + // Helios.Info(#1'Import DL ukončen' + IfThen(idDZ>0,' + vygenerována výdejka/převodka CHD -> Lovato','...') +#1); + Helios.Info(#1'Import DL ukončen' +#1); + except on E:Exception do + Helios.Error(#1'Chyba: ' + #1 + E.Message); + end; + end; + end; + // konec vložení čísla palety + + + procedure TplgLOVATO.Run(const Helios: IHelios); + const MinVerzeHelios = $020020170001; + var lSQL, contInfo: string; + cRec, cntID, l_loop: integer; + btnRes: TModalResult; + sql, podm, dConv1,dConv2, podmDat, IDcka: string; + arrID: TArray; + typAkce: byte; + dt: TDateTime; + jeTest: boolean; + browID, idDZ, idKZ, iTmp: integer; + params, vlastTbl, sTmp: string; +// impEP : TformImportEP; + CRM_akt: TformCRM_Aktivity; // dočasně zakomentováno 26.6.2018 +// fDodavky: TformDodavky; + fKmenZbozi: TformKartyZbozi; +// fVydej: TformVydejka; + fBL: TformBaliciListy; + fDPVydej: TfrmVydejDPrace; +// fPrijemNadvyroba: TformPrijemkaNadvyroba; + fOdvedBarCode: TformOdvedeniPrikazu; + fStSklHrZmen: TformStavSklHromZmeny; + fRozdelMat: TfrmRozdelMat; + fPrevPrij: TformPrevPrij; + fDemontaz: TformDemontaz; + fReklamaceMat: TformReklamaceMat; + fMatRozp: TformMaterial; + fOdvodRele: TformOdvodRele; + fKanbanBox: TformKanbanBox; + fKanbanObj: TformKanbanObj; + + begin + with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do + if VarIsNull(FieldValues(0)) then + contInfo:= 'NULL' + else + contInfo:= VarToStr(FieldValues(0)); + + Helios.ExecSQL('SET CONTEXT_INFO 0x4E54536D6F64756C4C4F56'); // nastav context v sys.sysprocesses (hexadecimalne NTSmodulLOV) + +{$REGION 'Záznam do TabPlgUse'} + dConv1:= '(CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,Datum))))'; + dConv2:= '(CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,GETDATE() ))))'; + podmDat:= dConv1 + '=' + dConv2; + sql:= 'IF OBJECT_ID(N' + QuotedStr('[dbo].[_TabPlgUse]') + ',N' + QuotedStr('U') + ') IS NULL '; + sql:= sql + 'CREATE TABLE [dbo].[_TabPlgUse] ([ID] int IDENTITY(1, 1) NOT NULL,'; + sql:= sql + '[PlgJmeno] nvarchar(128) COLLATE Czech_CI_AS NOT NULL,'; + sql:= sql + '[Uzivatel] nvarchar(128) COLLATE Czech_CI_AS DEFAULT suser_sname() NOT NULL,'; + sql:= sql + '[Datum] datetime DEFAULT getdate() NOT NULL, [Status] tinyint DEFAULT 0 NOT NULL,'; + sql:= sql + '[Stanice] nvarchar(128) COLLATE Czech_CI_AS DEFAULT host_name() NOT NULL)'; + try + Helios.ExecSQL(sql); + except + end; + + sql:= 'IF NOT EXISTS(SELECT id FROM [dbo].[_TabPlgUse] WHERE Uzivatel=SUSER_SNAME() AND Status=0 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat + ')' + CRLF; + sql:= sql + ' INSERT [dbo].[_TabPlgUse] (PlgJmeno,Status) VALUES (N' + QuotedStr('plgLOVATO') + ',0)' + CRLF; + sql:= sql + 'UPDATE [dbo].[_TabPlgUse] SET Datum=GETDATE() WHERE Uzivatel=SUSER_SNAME() AND Status=0 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat; + try + Helios.ExecSQL(sql); + except + end; +{$ENDREGION} + +{$REGION 'Zapis do TabPluginInfo'} + sTmp:= StringReplace(helUtils.GetFileVersion2(GetModuleName(HInstance)),'.','',[rfReplaceAll]); + sTmp:= '0200' + MidStr(sTmp,3,8); + if Length(sTmp)=11 then + sTmp:= LeftStr(sTmp,8) + '0' + RightStr(sTmp,3); + sql:= 'IF NOT EXISTS(SELECT id FROM ' + tblPlgInfo + ' WHERE NazevSys=N' + QuotedStr(plgSysName) + ')'; + sql:= sql + ' INSERT ' + tblPlgInfo + ' (NazevSys,NazevObjektu,NazevVerejny,VerzePluginu,ZmenyOK) VALUES (N'; + sql:= sql + QuotedStr(plgSysName) + ',N' + QuotedStr(plgSysName) + ',N' + QuotedStr('Plugin pro LOVATO electric'); + sql:= sql + ',N' + QuotedStr(sTmp) + ',1) ELSE '; + sql:= sql + 'UPDATE ' + tblPlgInfo + ' SET VerzePluginu=N' + QuotedStr(sTmp) + ' WHERE'; + sql:= sql + ' NazevSys=N' + QuotedStr(plgSysName); + Helios.ExecSQL(sql); +{$ENDREGION} + +{$REGION 'Region - zjistit typAkce, browID, vlastTbl, vytvor #TabExtKom'} + typAkce:= 0; + with Helios.OpenSQL('SELECT Parametry FROM TabExtKom WHERE ID=' + IntToStr(Helios.ExtKomID)) do + begin + params:= VarToStr(FieldValues(0)); + jeTest:= false; + if Pos('test', LowerCase(params))>0 then + jeTest:= true; + if Pos(';',params)>0 then + begin + typAkce:= StrToInt(LeftStr(params,Pos(';',params)-1)); + params:= MidStr(params,Pos(';',params)+1,255); + if Pos(';',params)>0 then + browID:= StrToInt(LeftStr(params,Pos(';',params)-1)) + else + browID:= StrToInt(params); + if Pos(';',params)>0 then // zadany 3 parametry (akce, browID, vlastnikID) + begin + params:= MidStr(params,Pos(';',params)+1,255); + vlastTbl:= params; + end; + end + else + raise Exception.Create('Nemám potřebný počet parametrů !'); + end; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ') IS NOT NULL DROP TABLE #TabExtKom' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabExtKom (Poznamka nvarchar(255))'; + Helios.ExecSQL(lSQL); + +{$ENDREGION} + + if (Helios.HeVersionbrowID) then + begin + typAkce:= 0; + Helios.Error('Tento plugin lze volat pouze z přehledu: '#1 + IntToStr(browID) + #1'.'); + end; + + IDcka:= ''; + cRec:= 0; + if (Helios.SelectedRecordIDs<>'') then + IDcka:= Helios.SelectedRecordIDs + else + if not VarIsNull(Helios.CurrentRecordID) then + begin + cRec:= StrToInt(VarToStr(Helios.CurrentRecordID)); + IDcka:= IntToStr(cRec); + end; + + if (IDcka<>'') then + begin + cntID:= 1 + Length(IDcka)-Length(StringReplace(IDcka,',','',[rfReplaceAll])); + SetLength(arrID,cntID); + for l_loop:=0 to cntID-1 do + begin + if Pos(',',IDcka)>0 then + begin + arrID[l_loop]:= StrToInt(LeftStr(IDcka,Pos(',',IDcka)-1)); + IDcka:= MidStr(IDcka,Pos(',',IDcka)+1,65535) + end + else + arrID[l_loop]:= StrToInt(IDcka); + end; + cRec:= arrID[0]; + end; + + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + + case typAkce of + 1: begin // import objednavky do ExpPr + idDZ:= 0; + if (vlastTbl<>'') then + idDZ:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('id'))); + ImportEP(Helios, idDZ, true); + end; + + 2: begin // import prijemky materialu (packinglist) do Prijmu + idDZ:= 0; + if (vlastTbl<>'') then + idDZ:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('id'))); + ImportEP(Helios, idDZ, false); // stejna procedura jako pri importu IT objednavky + end; + + 3: begin + CRM_akt:= TformCRM_Aktivity.Create(nil); + try + CRM_akt.Helios:= Helios; + CRM_akt.idAkt:= 0; + if (vlastTbl='1') then + CRM_akt.idAkt:= cRec; + CRM_akt.ShowModal; + finally + CRM_akt.Free; + end; + Helios.Refresh(true); // dočasně zakomentováno 26.6.2018 + end; + + 4: begin + if (cRec>0) then + begin + params:= ''; + sTmp:= ''; + idKZ:= cRec; // id nad prehledem Zbozi a sluzby + + if (Helios.BrowseID=bidSS) then + with Helios.OpenSQL('SELECT IdKmenZbozi FROM ' + tblSS + ' WHERE id=' + IntToStr(cRec)) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + if (Helios.BrowseID=bidPZ) then + begin + sql:= 'SELECT kze.id FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS; + sql:= sql + ' ss ON (pz.IDZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.idKmenZbozi=kz.id)'; + sql:= sql + ' INNER JOIN ' + tblKZe + ' kze ON (kz.id=kze.id) WHERE pz.id=' + IntToStr(cRec); + with Helios.OpenSQL(sql) do + if (RecordCount=1) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + end; + + with Helios.OpenSQL('SELECT ISNULL(_UmisteniPrijem,N'''') FROM ' + tblKZe + ' WHERE id=' + IntToStr(idKZ)) do + if (RecordCount=1) then + begin + if not VarIsNull(FieldValues(0)) then + begin + sTmp:= InputBoxOkCancel('Umístění materiálu','Umístění: ', VarToStr(FieldValues(0)),btnRes); + if (btnRes=mrCancel) then + Exit; + params:= 'UPDATE ' + tblKZe + ' SET _UmisteniPrijem='; + if (sTmp='') then + params:= params + 'null' + else + params:= params + 'N' + QuotedStr(sTmp); + params:= params + ' WHERE id=' + IntToStr(idKZ); + end + end + else + begin + sTmp:= InputBoxOkCancel('Umístění materiálu','Umístění: ', '',btnRes); + if (btnRes<>mrCancel) then + begin + if (sTmp<>'') then + begin + params:= 'IF NOT EXISTS(SELECT id FROM ' + tblKZe + ' WHERE id=' + IntToStr(idKZ) + ')'; + params:= params + ' INSERT ' + tblKZe + ' (id,_UmisteniPrijem) VALUES (' + IntToStr(idKZ); + params:= params + ',N' + QuotedStr(sTmp) + ')'; + end; + end; + end; + if (params<>'') then + Helios.ExecSQL(params); + Helios.Refresh(true); + end + else + Helios.Error(#1'Změna umístění lze udělat pouze nad jednou kartou.'#1); +{ + fDodavky:= TformDodavky.Create(nil); + try + fDodavky.Helios:= Helios; + fDodavky.idOrg:= cRec; + fDodavky.ShowModal; + finally + fDodavky.Free; + end; +} + end; + + 5: begin + fKmenZbozi:= TformKartyZbozi.Create(nil); + try + fKmenZbozi.Helios:= Helios; + fKmenZbozi.idKZ:= 0; + if (vlastTbl='edit') then + begin + case (Helios.BrowseID) of + bidSS: fKmenZbozi.idKZ:= StrToInt(VarToStr(Helios.QueryBrowse.FieldByNameValues('idKmenZbozi'))); + bidKZ: fKmenZbozi.idKZ:= cRec; + end; + end; + fKmenZbozi.ShowModal; + finally + fKmenZbozi.Free; + end; + end; + + 6: begin + if Helios.YesNo(#1'VÝDEJKA KOOPERANTOVI' + CRLF + 'Přejete si vygenerovat položky podle požadavků kooperanta ?'#1,false) then + begin + if (cRec=0) then // tvorim to z ulozeneho Dokladu? NE pak vezmi ID dokladu z QueryEditu + cRec:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('id'))); + +// sql:= 'EXEC dbo.ep_NTS_VydejkaKooperantovi NULL,' + IntToStr(cRec); +// sql:= sql + ',' + VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg')); +// Helios.ExecSQL(sql); +// Helios.Refresh(true); +// Helios.Info('Položky byly uloženy na doklad.'); + end; + end; + + 7: begin // nesplnene objednavky + ImportNesplObj(Helios); + end; + + 8: begin // editace vydejky zjednodusene, viz bod 9 + edit + end; + + 9: begin + fBL:= TformBaliciListy.Create(nil); + try + fBL.idDZ:= 0; + if (vlastTbl='edit') then + fBL.idDZ:= cRec; + fBL.typ:= 3; + fBL.Helios:= Helios; + fBL.ShowModal; + finally + fBL.Free; + end; + end; + +{ + 10: begin + GenerujVydejMatZPrikazu(Helios, cRec); + end; +} + 10: begin + if (cRec>0) then + begin +// if TestKoopObjVydejMat(Helios,cRec) then + begin +{ + fPrijemNadvyroba:= TformPrijemkaNadvyroba.Create(nil); + try + fPrijemNadvyroba.idPKObj:= cRec; + fPrijemNadvyroba.Helios:= Helios; + fPrijemNadvyroba.ShowModal; + finally + fPrijemNadvyroba.Free; + end; +} + end +// else +// Helios.Error(#1'Na příkaz nebyl vydán žádný materiál.'#1); + end; + end; + + 11: begin + with Helios.OpenSQL('SELECT id FROM ' + tblKObj + ' WHERE realizovano=0 AND id=' + IntToStr(cRec)) do + if (RecordCount=0) then + ExportKoopObj(Helios, cRec) + else + Helios.Error(#1'Kooperační objednávka není realizována, nelze exportovat.'#1 + CRLF + 'Realizujte jí a zkuste to znovu.'); + end; + + 12: begin // Hromadna uprava Pozadovany termin dodani na polozkach kooperacni objednavky + sql:= 'SELECT ko.id FROM ' + tblPKObj + ' pko INNER JOIN ' + tblKObj + ' ko ON (pko.IDObjednavky=ko.id)'; + sql:= sql + ' WHERE ko.Realizovano=1 AND pko.id=' + IntToStr(arrID[0]); + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + begin + if FormDatum('Zadejte datum','Požadovaný termín dodání:',dt) then + for l_loop:=0 to Length(arrID)-1 do + begin + sql:= 'UPDATE ' + tblPKObj + ' SET PozadTerDod=CONVERT(datetime,N' + QuotedStr(DateToStr(dt)) + ',104)'; + sql:= sql + ' WHERE id=' + IntToStr(arrID[l_loop]); + try + Helios.ExecSQL(sql); + Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCeny ' + IntToStr(arrID[l_loop])); + except on E:Exception do + Helios.Error('Nelze upravit datum pro položku kooperační objednávky.'); + end; + Helios.Refresh(true); + end; + end + else + Helios.Error(#1'Tato kooperační objednávka byla již realizována,' + CRLF + 'požadované termíny nejdou změnit.'#1); + end; + + 13: begin + if (vlastTbl='del') and (cRec>0) then + begin + if Helios.YesNo('Opravdu chcete zrušit objednávku Nadvýroby ?',false) then + SmazObjNadvyroby(Helios,cRec) + end + else + begin + fDPVydej:= TfrmVydejDPrace.Create(nil); + try + fDPVydej.Helios:= Helios; + fDPVydej.ShowModal; + finally + fDPVydej.Free; + end; + end; + end; + + 14: begin + if (vlastTbl='del') and (cRec>0) then + begin + if Helios.YesNo('Opravdu chcete smazat tento záznam?',false) then + begin + try + lSQL:= 'BEGIN TRAN x' + CRLF + 'UPDATE ' + tblEvidNadvyr + ' SET Zaevidovano=Zaevidovano-'; + with Helios.OpenSQL('SELECT Mnozstvi FROM ' + tblEvidOp + ' WHERE id=' + IntToStr(cRec)) do + if (RecordCount=0) then + lSQL:= lSQL + '0' + else + lSQL:= lSQL + StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ' WHERE id=' + IntToStr(cRec) + CRLF; + lSQL:= lSQL + 'DELETE FROM ' + tblEvidOp + ' WHERE id=' + IntToStr(cRec) + CRLF; + lSQL:= lSQL + 'DELETE FROM ' + tblEvidNadvyrVPr + ' WHERE IdEvidOpBarcode=' + IntToStr(cRec) + CRLF; + lSQL:= lSQL + 'DELETE FROM ' + tblEvidOpVPr + ' WHERE IdEvidOper=' + IntToStR(cRec) + CRLF; + lSQL:= lSQL + 'IF (@@ERROR>0) ROLLBACK TRAN x ELSE COMMIT TRAN x'; + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Chyba při mazání záznamu.'#1 + CRLF + E.Message); + end; + end; + end + else + begin + fOdvedBarCode:= TformOdvedeniPrikazu.Create(nil); + try + fOdvedBarCode.Helios:= Helios; + fOdvedBarCode.typOdvodu:= 2; // podle vyrobku + fOdvedBarCode.jeTest:= (LowerCase(Trim(vlastTbl))='test'); +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Start plugin - Odvedení práce')); + fOdvedBarCode.ShowModal; + finally + fOdvedBarCode.Free; + end; +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Konec plugin - Odvedení práce')); + end; + Helios.Refresh(true); + end; + + 15: begin + // z odvedeni daneho vyrobniho prikazu "preved" dilec na vydejku vyvozu, zachova se vazba na ExpPr + aktualizuje se odebrane mnozstvi + ZadejPolPrijemkyNaVydejku(Helios,cRec); + end; + + 16: begin + fStSklHrZmen:= TformStavSklHromZmeny.Create(nil); + try + fStSklHrZmen.Helios:= Helios; + fStSklHrZmen.arrID:= arrID; + fStSklHrZmen.ShowModal; + finally + fStSklHrZmen.Free; + end; + end; + + 17: begin + // z vyrobniho prikazu "preved" dilec na vydejku vyvozu, zachova se vazba na ExpPr + aktualizuje se odebrane mnozstvi + ZadejVyrPrikazNaVydejku(Helios,cRec); + end; + + 18: begin + StavSkladuDoZadVyp(Helios); // vybrane karty ze Stavu skladu (vc.mnozstvi) do Predbezneho planu + smazani stareho + end; + + 19: begin + ImportZClipboardu(Helios, 1); //typ=1 -> import Min/Max do TabStavSkladuImp + end; + + 20: begin + PrevodStavSkladuImp(Helios,1); //typ=1 -> import Min/Max do TabStavSkladuImp + end; + + 21: begin + VyrabeneDilceDoZadVyp(Helios); // vybrane dilce do Predbezneho planu + smazani stareho (mnozstvi 1) + end; + + 22: begin + if Length(arrID)>0 then + begin + try + fRozdelMat:= TfrmRozdelMat.Create(nil); + fRozdelMat.Helios:= Helios; + if Helios.BrowseID=bidSS then + fRozdelMat.aIdSS:= myUtils.ArrayIntToStr(arrID) + else + fRozdelMat.aIdDZ:= myUtils.ArrayIntToStr(arrID); + fRozdelMat.ShowModal; + finally + fRozdelMat.Free; + end; + end; +{ + sql:= 'IF OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ') IS NOT NULL DROP TABLE ' + tblRozpPrijStav; + sql:= sql + CRLF + 'CREATE TABLE ' + tblRozpPrijStav + '(IdKmenZbozi INT NOT NULL, Mnozstvi NUMERIC(19,6)'; + sql:= sql + ' NOT NULL DEFAULT 0.0, CisloZbozi NVARCHAR(33), Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME())'; + Helios.ExecSQL(sql); + for l_loop:=0 to Length(arrID)-1 do + begin + RozpadPrijStavNaKooperanty(Helios,arrID[l_loop],0); + end; + with Helios.OpenSQL('SELECT Autor FROM ' + tblRozpPrijStav + ' WHERE Autor=SUSER_SNAME()') do + if RecordCount>0 then + begin + podm:= 'SELECT r.*,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM _TabRozpadPrijStav r INNER JOIN ' + tblKZ; + podm:= podm + ' kz ON (r.IdKmenZbozi=kz.id) WHERE r.Autor=SUSER_SNAME()'; + sql:= 'IF OBJECT_ID(N' + QuotedStr('dbo.hvw_RozpadPrijStav') + ',N''V'') IS NOT NULL'; + sql:= sql + ' DROP VIEW [dbo].[hvw_RozpadPrijStav]' + CRLF; + Helios.ExecSQL(sql); + sql:= 'CREATE VIEW dbo.hvw_RozpadPrijStav AS ' + podm + CRLF; + Helios.ExecSQL(sql); + sql:= 'UPDATE dbo.TabObecnyPrehled SET DefView=N' + QuotedStr(podm) + ' WHERE NazevSys=N' + QuotedStr('hvw_RozpadPrijStav'); + Helios.ExecSQL(sql); + Helios.OpenBrowse(100038,'Autor=SUSER_SNAME()'); + end; + end; +} + end; + + 23: begin + sql:= 'SELECT dz.id,odz.id FROM ' + tblDZ + ' dz LEFT JOIN ' + tblDZ + ' odz ON (dz.id=odz.NavaznyDoklad)'; + sql:= sql + ' WHERE (dz.Realizovano=1 OR odz.Realizovano=1) AND dz.id=' + IntToStr(cRec); + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + Helios.Error(#1'Tento doklad nebo zdrojový doklad jsou realizované - nelze opravovat.'#1) + else + begin + fPrevPrij:= TformPrevPrij.Create(nil); + try + fPrevPrij.idDZold:= 0; + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE NavaznyDoklad=' + IntToStr(cRec)) do + fPrevPrij.idDZold:= VarHodnota(FieldValues(0),0); + fPrevPrij.idDZ:= cRec; + fPrevPrij.Helios:= Helios; + fPrevPrij.ShowModal; + finally + fPrevPrij.Free; + end; + end; + end; + + 24: begin // presun kooperace na prikazech do polozek koop.objednavky ! se seskupenim dle vyrobku a data dodani ! + KooperaceniPolozkySeSeskupenim(Helios); + end; + + 25: begin + fDemontaz:= TformDemontaz.Create(nil); + try + if (Length(arrID)>1) then + fDemontaz.idPols:= arrID; + fDemontaz.jeTest:= jeTest; + fDemontaz.Helios:= Helios; + fDemontaz.ShowModal; + finally + fDemontaz.Free; + end; + end; + + 26: begin + Screen.Cursor:= crHourGlass; + UpdateWindow(hInstance); + ImportStavuInventur(Helios); + Screen.Cursor:= crDefault; + Helios.Refresh(true); + end; + + 27: begin + fMatRozp:= TformMaterial.Create(nil); + try + fMatRozp.idMat:= cRec; + fMatRozp.Helios:= Helios; + fMatRozp.ShowModal; + finally + fMatRozp.Free; + end; + end; + + 28: begin +{ + fOdvodRele:= TformOdvodRele.Create(nil); + try + fOdvodRele.Helios:= Helios; + fOdvodRele.ShowModal; + finally + fOdvodRele.Free; + end; +} + fOdvedBarCode:= TformOdvedeniPrikazu.Create(nil); + try + fOdvedBarCode.Helios:= Helios; + fOdvedBarCode.typOdvodu:= 1; // podle prikazu + fOdvedBarCode.ShowModal; + finally + fOdvedBarCode.Free; + end; + Helios.Refresh(true); + end; + + 29: begin + if (cRec>0) then + ExportKoopObjHQL(Helios, cRec); + end; + + 30: begin + fReklamaceMat:= TformReklamaceMat.Create(nil); + try + fReklamaceMat.Helios:= Helios; + fReklamaceMat.ShowModal; + finally + fReklamaceMat.Free; + end; + end; + + 31: ImportDL_CHD(Helios); + + 32: begin + if (vlastTbl='del') then + begin + if Helios.YesNo('Opravdu chcete smazat tento kanban box ?', false) then + begin + with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanPohyby WHERE IdKanbanBox=' + IntToStr(cRec)) do + if (RecordCount=0) then + Helios.ExecSQL('DELETE FROM dbo._TabKanbanBox WHERE id=' + IntToStr(cRec)) + else + Helios.Error(#1'Box byl použit při objednávkách, nelze smazat.'#1); + end; + end + else + begin + try + fKanbanBox:= TformKanbanBox.Create(nil); + if (vlastTbl='edit') then + fKanbanBox.idBox:= cRec + else + fKanbanBox.idBox:= 0; + fKanbanBox.Helios:= Helios; + fKanbanBox.ShowModal; + finally + fKanbanBox.Free; + end; + end; + end; + + 33: begin + if (vlastTbl='del') then + begin + with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(cRec) + ' AND IdKoopObj IS NULL AND IdVydejObalu IS NULL') do + if (RecordCount=1) then + begin + if Helios.YesNo('Opravdu smazat tuto kanban objednávku ?',false) then + begin + Helios.ExecSQL('DELETE FROM dbo._TabKanbanPohyby WHERE IdKanbanObj=' + IntToStr(cRec)); + Helios.ExecSQL('DELETE FROM dbo._TabKanbanObj WHERE id=' + IntToStr(cRec)); + Helios.Refresh(true); + end + end + else + Helios.Error(#1'Z objednávky byla vygenerována výdejka obalů nebo Kooperační objednávka, nelze jí smazat.'#1); + end + else + begin + fKanbanObj:= TformKanbanObj.Create(nil); + try + if (vlastTbl='edit') then + fKanbanObj.idObj:= cRec + else + fKanbanObj.idObj:= 0; + fKanbanObj.Helios:= Helios; + fKanbanObj.ShowModal; + finally + fKanbanObj.Free; + end; + + end; + end; + + 34: KontrolaExistVsechObj(Helios); + + 35: ImportZClipboardu(Helios, 2); + + 36: ImportObjMaterialu(Helios, 0); // sdileny material = 1 + + 37: ImportObjMatEdit(Helios, cRec); + + 38: ImportDL(Helios); // import dodacího listu včetně čísla palety + + 255: begin +// ReseedTable(Helios,'[dbo].[]'); + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + ReseedTable(Helios,'[dbo].[TabSkupinyZbozi]'); + ReseedTable(Helios,'[dbo].[TabParametryKmeneZbozi]'); + ReseedTable(Helios,tblKZ); + ReseedTable(Helios,'[dbo].[TabBarCodeZbo]'); + ReseedTable(Helios,tblSS); + ReseedTable(Helios,tblOrg); + ReseedTable(Helios,tblCZam); + ReseedTable(Helios, tblJC); + ReseedTable(Helios, tblNC); + ReseedTable(Helios,'[dbo].[TabMJ]'); + ReseedTable(Helios, tblStrom); + ReseedTable(Helios,'[dbo].[TabParKmZ]'); + ReseedTable(Helios,'[dbo].[TabKVazby]'); + ReseedTable(Helios,'[dbo].[TabPostup]'); + ReseedTable(Helios,'[dbo].[TabPrKVazby]'); + ReseedTable(Helios, tblPrikaz); + ReseedTable(Helios,'[dbo].[TabPrikazP]'); + ReseedTable(Helios,'[dbo].[TabKalkCe]'); + ReseedTable(Helios,'[dbo].[TabInvPolozka]'); + ReseedTable(Helios,'[dbo].[TabPrPostup]'); + ReseedTable(Helios,'[dbo].[TabCPraco]'); + end; + end; + +{$REGION 'Záznam do TabPlgUse'} + sql:= 'IF NOT EXISTS(SELECT id FROM [dbo].[_TabPlgUse] WHERE Uzivatel=SUSER_SNAME() AND Status=1 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat + ')' + CRLF; + sql:= sql + ' INSERT [dbo].[_TabPlgUse] (PlgJmeno,Status) VALUES (N' + QuotedStr('plgLOVATO') + ',1)' + CRLF; + sql:= sql + 'UPDATE [dbo].[_TabPlgUse] SET Datum=GETDATE() WHERE Uzivatel=SUSER_SNAME() AND Status=1 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat; + try + Helios.ExecSQL(sql); + except + end; +{$ENDREGION} + +// Helios.Refresh(true); + if (contInfo='NULL') then + Helios.ExecSQL('SET CONTEXT_INFO 0x') + else + Helios.ExecSQL('SET CONTEXT_INFO 0x' + contInfo); // vymaz context v sys.sysprocesses (hexadecimalne NTSmodulLOV) + + try + with Helios.OpenSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabExtKom') + ') IS NOT NULL SELECT Poznamka FROM #TabExtKom') do + if (RecordCount>0) then + Helios.OpenBrowse(541,''); + finally + end; + Helios.Refresh(true); + end; + +INITIALIZATION + dxCore.dxInitialize; + dxUnitsLoader.Initialize; +// hdl:= LoadPackage('HeLib.bpl'); +// SetThreadLocale(LOCALE_USER_DEFAULT); +// GetFormatSettings; + TComObjectFactory.Create(ComServer, TplgLOVATO, Class_LOVATO, 'runMe', '', ciMultiInstance, tmSingle); + +finalization + dxUnitsLoader.Finalize; + dxCore.dxFinalize; + +END. diff --git a/ComObjekt.pas b/ComObjekt.pas new file mode 100644 index 0000000..6843e03 --- /dev/null +++ b/ComObjekt.pas @@ -0,0 +1,5134 @@ +{ +Zmeny ve verzich +---------------------- +2.0.2013.0904 - pokud na PL (dodaci list z IT) existuje nova karta materialu, zalozi se do skupiny MAT + +... + +2.0.2022.0614 - kanbanové objednávky - posílání e-mailem // as 10.6.2022 +2.0.2022.0718 - přidána kontrola verze pluginu //18.7.2022 +} + +unit ComObjekt; + +INTERFACE + +uses System.SysUtils, System.Win.ComObj, ddPlugin_TLB; + + +//{$DEFINE IHePlugin3} + + +const + tblObjMatPoh = '[dbo].[_TabObjMat_PohybyZboExpPr]'; + tblOrg = '[dbo].[TabCisOrg]'; // tblOrg = '[dbo].[TabOrganizace]'; // přidáno 26.6.2018 // opraveno 3.7.2018 podle unit3 + BrowseID_PluginInfo = 871; + + +type + TidVPsKanban = record + id: integer; + radaPrikaz: string[20]; + idKZ: integer; + ks: Extended; + ksVKoop: Extended; + end; + +// !!! pri zmene IHePluginXX upravit take v plgAbout - info o jadru !!! + TplgLOVATO = class(TComObject, {$IFDEF IHePlugin3} IHePlugin3 {$ELSE} IHePlugin {$ENDIF}) + protected +// function PartnerIdentification: WideString; safecall; +// function DelphiCompilerVersion: Single; safecall; + procedure Run (const Helios: IHelios); safecall; + + function TestKoopObjVydejMat (const Helios:IHelios; idPKO: integer): Boolean; safecall; + procedure ImportEP (const Helios: IHelios; const idDZx: integer; ExpP: boolean); safecall; + procedure KontrolaExistVsechObj (const Helios: IHelios); safecall; + // procedure ExportKoopObj(const Helios: IHelios; idKObj: integer); safecall; // zakomentováno 6.5.2020 + procedure ExportKoopObj_OLD (const Helios: IHelios; idKObj: integer; ZobrTypKooObj: boolean; NadpisTypuKoopObj: string; vlastTbl: string); safecall; // upraveno 6.5.2020 + procedure ExportKoopObjHQL (const Helios: IHelios; idKObj: integer); safecall; + procedure GenerujVydejZEP (const Helios: IHelios); safecall; + procedure OdpovedPPL (const Helios: IHelios); safecall; + procedure UlozChybu (const Helios: IHelios; msg: string; E:Exception); + procedure ImportNesplObj (const Helios: IHelios); safecall; + procedure HromadneOdvedeniEvidKoop (const Helios: IHelios); safecall; + procedure GenerujVydejMatZPrikazu (const Helios: IHelios; idEvidKoop: integer); safecall; + procedure PrerovnejPolozkyKoopObj (const Helios: IHelios; idKObj: integer); safecall; + procedure ZadejPolPrijemkyNaVydejku (const Helios: IHelios; idPrij: integer); safecall; + procedure ZadejVyrPrikazNaVydejku (const Helios: IHelios; idVPr: integer); safecall; + + procedure StavSkladuDoZadVyp (const Helios: IHelios); safecall; + procedure VyrabeneDilceDoZadVyp (const Helios: IHelios); + + procedure ImportZClipboardu (const Helios: IHelios; TypImp: byte); safecall; + procedure PrevodStavSkladuImp (const Helios: IHelios; TypImp: byte); safecall; + procedure RozpadPrijStavNaKooperanty (const Helios: IHelios; const idDZ: integer=0; const idSS: Integer=0); safecall; + procedure KooperaceniPolozkySeSeskupenim (const Helios: IHelios); safecall; + procedure ImportStavuInventur (const Helios: IHelios); safecall; + procedure ImportObjMaterialu (const Helios: IHelios; const typ:byte); safecall; + procedure ImportObjMatEdit (const Helios: IHelios; idZazn: integer); safecall; + procedure ImportObjMatRozpad (const Helios: IHelios); safecall; + + procedure ImportReklamace (const Helios: IHelios); safecall; + + procedure ImportDL_CHD (const Helios: IHelios); safecall; + procedure ImportDL (const Helios: IHelios; const ZpracProcedurou: boolean); safecall; // přidáno při číslu palety // upraveno 27.4.2022 + + procedure SmazObjNadvyroby (const Helios: IHelios; idNad: integer); safecall; + private + FHelios: IHelios; + procedure OnException (Sender: TObject; E: Exception); +// procedure SouboryProItalii(const Helios: IHelios; TypSouboru: byte); safecall; + end; + + +const + Class_LOVATO: TGUID = '{EA0150F1-EA07-45D2-9109-E7349B03AC1B}'; + + plgSysName = 'plgLOVATO'; + + Nadvyr = '20000105'; + sklVyr = '200'; + sklCHD = '20000107'; + + orgLovatoIT = '1'; + orgLovatoITmena = 'EUR'; + szNovyImportExpP = 'V00'; + szNovyImportMat = 'M00'; + rImpNesplObj = '200'; + + CRLF = #13#10; + tblStavUm = '[dbo].[TabVStavUmisteni]'; + tblUmist = '[dbo].[TabUmisteni]'; + tblRozpPrijStav = '[dbo].[_TabRozpadPrijStav]'; + tblEvidOp = '[dbo].[_TabEvidOperaci_Barcode]'; + tblEvidOpVPr = '[dbo].[_TabEvidOpPrikazy]'; + tblEvidNadvyrVPr = '[dbo].[_TabEvidNadvyrPrikaz]'; + tblPZSD = '[dbo].[TabPohybyZboziSD]'; + + errPlg = CRLF + '(plgLOVATO, COM)'; + +IMPLEMENTATION + +uses Vcl.Controls, System.Win.ComServ, Vcl.Graphics, Vcl.Forms, System.Variants, System.StrUtils, Vcl.Dialogs, + Vcl.Clipbrd, System.Classes, Winapi.Windows, System.DateUtils, Vcl.StdActns, Winapi.ShlObj, Vcl.StdCtrls, + Vcl.ComCtrls, dxCore, myUtils, helUtils, XLSReadWriteII5, XLSSheetData5, Xc12DataStyleSheet5, Xc12Utils5, // nExcel, + plgKonfig, plgType, plgMain, plgSpravce, + // [RK 13.04.2012] nove komponenty DevExpress toto vyzaduji, jinak zatuhne Helios + dxGDIPlusAPI, {!initialization!} +// frmMain, +// frmUnit2, + frmUnit3, //prozatimně zakomentováno 26.6.2018 (z důvodu TBPackageU) + frmUnit5, +// frmUnit6, + frmBaliciListy, +// frmUnit8, { formPrijemkaNadvyroba} + frmUnit9, + frmOdvedPrikaz, { formOdvedeniPrikazu pres BarCode} + frmUnit11, { formStSklHrZmen } + frmUnit12, { formRozdelMat } + frmUnit13, { formPrevPrij } + frmDemontaz, { formDemontaz} + frmMaterial, { formMaterial } + frmUnit15, { formOdvodRele } + frmReklamaceMat, { formDemontazMat } + frmKanbanBox, + frmKanbanObj, + Globalni, // přidáno 10.6.2022 + System.Types; + +var oVar1: OleVariant; + aktObd: integer; + fName: string; +// xls: TXLSReadWriteII5; +// icoAdd, icoDel, icoEdit, icoPrev, icoNext: TIcon; +// hFnd: THandle; +// RS: TResourceStream; + hdl: Cardinal; + + // přidáno 9.8.2018 + waitForm: TForm; + waitLabel: TLabel; + waitPBar: TProgressBar; + + function waitStart (TheParent: TComponent; sMsg: string; maxPBar: integer; PBarColor: TColor):Boolean; + begin + result:= false; + if (waitForm=nil) then + begin + waitForm:= TForm.Create(TheParent); + with waitForm do + begin + Position:= poOwnerFormCenter; + width:= 500; + Height:= 25; + waitLabel:= TLabel.Create(waitForm); + with waitLabel do + begin + Align:= alClient; + Alignment:= taCenter; + Font.Height:= -30; + ParentFont:= false; + Caption:= sMsg; + Parent:= waitForm; + end; + if (maxPBar>0) then + begin + waitPBar:= TProgressBar.Create(waitForm); + with waitPBar do + begin + AlignWithMargins:= true; + BarColor:= PBarColor; + Position:= 0; + Top:= waitLabel.Top + waitLabel.Height + 5; + Min:= 0; + Max:= maxPBar; + Width:= waitForm.Width - 10; + Left:= 5; + Height:= 10; + Parent:= waitForm; + end; + end; + SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION); + ClientHeight:= Height; + Show; + Invalidate; + Repaint; + end; + result:= true; + end; + end; + + + + procedure waitSetProgBar (pozice: integer); + begin + if (pozice>0) then + if Assigned(waitPBar) then + if (waitPBar.Max>=pozice) then + begin + waitPBar.Position:= pozice; + waitPBar.Parent.Invalidate; + end; + end; + + + + procedure WaitSetMsg (sMsg : string ); + begin + WaitLabel.Caption := sMsg; + WaitForm.Refresh; + end; + + + + function waitEnd: boolean; + begin + result:= false; + if (waitForm<>nil) then + begin + waitForm.Hide; + waitForm.Free; + waitForm:= nil; + result:= true; + end; + end; + + // konec přidání 9.8.2018 + + + + //přidáno 26.6.2018 + { WaitForm : TForm; + WaitLabel : TLabel; + // function WaitStart( TheParent : TComponent; sMsg : string ) : boolean; + function WaitStart( + TheParent : TComponent; + sMsg : string ) + : boolean; +begin + Result := False; + // create our message form + // only if it's not already + // created + if( Nil = WaitForm )then + begin + WaitForm := + TForm.Create( TheParent ); + with WaitForm do + begin + Position := poScreenCenter; + Width := 500; + Height := 25; + + // create the message label + WaitLabel := + TLabel.Create( WaitForm ); + with WaitLabel do + begin + Align := alClient; + Alignment := taCenter; + Font.Height := -30; + ParentFont := False; + Caption := sMsg; + Parent := WaitForm; + end; + + // hide the title bar + SetWindowLong( Handle, + GWL_STYLE, + GetWindowLong( + Handle, GWL_STYLE ) + and not WS_CAPTION ); + ClientHeight := Height; + + Show; + Update; + end; + Result := True; + end; +end; + +procedure WaitSetMsg( sMsg : string ); +begin + WaitLabel.Caption := sMsg; + WaitForm.Refresh; +end; + +function WaitEnd : boolean; +begin + Result := False; + if( Nil <> WaitForm )then + begin + WaitForm.Hide; + WaitForm.Free; + WaitForm := Nil; + Result := True; + end; +end; + } //konec přidání 26.6.2018 + + + // přidáno 4.7.2018 + { + WaitForm : TForm; + WaitLabel : TLabel; + + function waitStart(TheParent: TComponent; sMsg: string):Boolean; + begin + result:= false; + if (waitForm=nil) then + begin + waitForm:= TForm.Create(TheParent); + with waitForm do + begin + Position:= poScreenCenter; + width:= 500; + Height:= 25; + waitLabel:= TLabel.Create(waitForm); + with waitLabel do + begin + Align:= alClient; + Alignment:= taCenter; + Font.Height:= -30; + ParentFont:= false; + Caption:= sMsg; + Parent:= waitForm; + end; + SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION); + ClientHeight:= Height; + Show; + Update; + end; + result:= true; + end; + end; + + + + procedure WaitSetMsg( sMsg : string ); + begin + WaitLabel.Caption := sMsg; + WaitForm.Refresh; + end; + + + + function waitEnd: boolean; + begin + result:= false; + if (waitForm<>nil) then + begin + waitForm.Hide; + waitForm.Free; + waitForm:= nil; + result:= true; + end; + end; + } + + // konec přidání 4.7.2018 + + + + + + function VyberAdresar (var Foldr: string; Title: string): Boolean; + var BrowseInfo: TBrowseInfo; + ItemIDList: PItemIDList; + DisplayName: array[0..MAX_PATH] of Char; + begin + Result := False; + FillChar(BrowseInfo, SizeOf(BrowseInfo), #0); + with BrowseInfo do + begin + hwndOwner := Application.Handle; + pszDisplayName := @DisplayName[0]; + lpszTitle := PChar(Title); + ulFlags := BIF_RETURNONLYFSDIRS; + end; + ItemIDList := SHBrowseForFolder(BrowseInfo); + if Assigned(ItemIDList) then + if SHGetPathFromIDList(ItemIDList, DisplayName) then + begin + Foldr := DisplayName; + Result := True; + end; + end; + + + function OtevriSouborXLS (var nazev: string; title: shortString): Boolean; + var dlgOpenXP: TOpenDialog; // dialog pro Windows XP + dlgOpenW7: TFileOpenDialog; // dialog pro Windows Vista a novejsi + titulek, filtr1, filtr2: string; + iniDir: wideString; + begin + result:= false; + if title='' then + title:= 'Vyberte soubor pro import '; + filtr1:= 'Sešit MS Excel'; + filtr2:= '*.xls;*.xlsx'; + nazev:= ''; + iniDir:= GetEnvironmentVariable('USERPROFILE') + '\Desktop'; + try + dlgOpenXP:= TOpenDialog.Create(nil); + dlgOpenW7:= TFileOpenDialog.Create(nil); + + if JeVistaAVyssi then // funkce z "myUtils.pas" + begin + dlgOpenW7.Title:= title; + dlgOpenW7.OkButtonLabel:= 'Vybrat'; + with dlgOpenW7.FileTypes.Add do + begin + DisplayName:= filtr1; + FileMask:= filtr2; + end; + dlgOpenW7.DefaultFolder:= iniDir; + if dlgOpenW7.Execute then + begin + nazev:= dlgOpenW7.FileName; + result:= true; + end; + end + else + begin + dlgOpenXP.Title:= titulek; + dlgOpenXP.Filter:= filtr1 + '|' + filtr2; + dlgOpenXP.InitialDir:= iniDir; + if dlgOpenXP.Execute then + begin + nazev:= dlgOpenXP.FileName; + result:= true; + end; + end; + finally + dlgOpenXP.Free; + dlgOpenW7.Free; + end; + end; + + + + procedure TplgLOVATO.OnException (Sender: TObject; E: Exception); + begin + try + LockWindowUpdate (0); + FHelios.Error (plgPrelozException (E.Message)); + except + Vcl.Forms.Application.ShowException (E); //pro jistotu + end; + end; + + + + + procedure TplgLOVATO.UlozChybu (const Helios: IHelios; msg: string; E: Exception); + var txt: string; + begin + if not Assigned(E) then + txt:= '' + else + txt:= E.Message; + if txt<>'' then + msg:= msg + ' - chyba: ' + txt; + Helios.ExecSQL ('INSERT #TabExtKom (Poznamka) SELECT N' + msg.QuotedString); + end; + +{ + procedure TplgLOVATO.VytvorKanbanObj(const Helios: IHelios; const zOznac: ShortString; const arrID: TArray); + var lSQL: string; + i: integer; + begin + lSQL:= ''; + if (zOznac='1') and (Length(arrID)>0) then + begin + lSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabKanbanObj') + ') IS NULL' + CRLF; + lSQL:= 'CREATE TABLE #TabKanbanObj (IDbox INT NOT NULL)' + CRLF; + for i:=0 to Length(arrID)-1 do + lSQL:= lSQL + 'INSERT #TabKanbanObj (IDbox) VALUES (' + IntToStr(arrID[i]) + ')' + CRLF; + end; + lSQL:= lSQL + 'EXEC dbo.ep_VytvorKanbanObj'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Chyba při vytváření Kanban objednávky - '#1 + E.Message); + end; + end; + Helios.Refresh(true); + end; +} + + + procedure TplgLOVATO.KontrolaExistVsechObj (const Helios: IHelios); safecall; + var lSQL, fName: string; + obj, poz, regC: string; + idx: integer; + xls: TXLSReadWriteII5; + wSheet1: TXLSWorkSheet; + chyba: boolean; + begin + if OtevriSouborXLS(fName, 'Vyberte XLS soubor se seznamem objednávek') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + chyba:= false; + xls.LoadFromFile(fName); + wSheet1:= xls.Items[0]; + idx:= 1; + waitStart(nil, 'Běží porovnávání objedávek - celkem ' + IntToStr(wSheet1.LastRow), wSheet1.LastRow, $0000FF); // clRed + waitSetProgBar(1); //dočasně zakomentováno 26.6.2018 + obj:= Trim(wSheet1.AsString[0,idx]); + if (obj<>'') then + begin + lSQL:= 'IF OBJECT_ID(N''tempdb..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT NULL , Poznamka NVARCHAR(255) )'; + Helios.ExecSQL(lSQL); + while (obj<>'') do + begin + poz:= RightStr(Trim(wSheet1.AsString[1,idx]),4); + regC:= Trim(wSheet1.AsString[2,idx]); + lSQL:= 'SELECT id FROM ' + tblPZ + ' WHERE RegCis=N' + regC.QuotedString + ' AND DruhPohybuZbo=9 AND NazevSozNa1=' + QuotedStr(obj); + lSQL:= lSQL + ' AND NazevSozNa2=N' + QuotedStr(poz); + with Helios.OpenSQL(lSQL) do + if (RecordCount=0) then + begin + chyba:= true; + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) SELECT N' + QuotedStr('Chybí objednávka ' + obj + '/' + poz + ' - ' + regC)); + end; + Inc(idx); + if (idx mod 10=0) then + waitSetProgBar(idx); //dočasně zakomentováno 26.6.2018 + obj:= Trim(wSheet1.AsString[0,idx]); + end; + end; + waitEnd; + Helios.Info(#1'Kontrola ukončena'#1 + IfThen(chyba,CRLF + '(po odkliknutí OK se zobrazí přehled chyb)','')); + except on E:Exception do + Helios.Error('Chyba při zpracování XLS souboru: ' + E.Message + #1); + end; + xls.Free; + end; + end; + + + + + procedure TplgLOVATO.ImportObjMaterialu (const Helios: IHelios; const typ:byte); + var lSQL, sTemp: string; + idVyd, cOrg, cnt: integer; + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('dbo._TabObjMat_PohybyZboExpPr') + ') IS NOT NULL DROP TABLE dbo._TabObjMat_PohybyZboExpPr' + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblObjMatPoh + ' (ID int IDENTITY(1,1) NOT NULL, IdPohybZbozi int NOT NULL, SkupZbo NVARCHAR(3) NOT NULL,'; + lSQL:= lSQL + 'RegCis NVARCHAR(30) NOT NULL, Mnozstvi numeric(19, 6) DEFAULT 0.0 NOT NULL, MnozstviVyd numeric(19, 6) DEFAULT 0.0 NOT NULL,'; + lSQL:= lSQL + ' PozadDatDod DATETIME, SdilenyMat BIT DEFAULT 0, MnozstviZad numeric(19,6) DEFAULT 0.0 NOT NULL, IdKmenZbozi int NOT NULL)'; + Helios.ExecSQL(lSQL); + cOrg:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg'))); + cnt:= 0; + lSQL:= 'SELECT pz.Id, (pz.Mnozstvi-pz.MnOdebrane-pz.MnozstviStorno) AS Mnozstvi, kz.Id AS idKZ, kz.SkupZbo, kz.RegCis, pz.PozadDatDod, ISNULL(kze._SdilenyMaterial,0) AS Sdileny FROM ' + tblPZ; + lSQL:= lSQL + ' pz INNER JOIN ' + tblDZ + ' dz ON (dz.Id=pz.IDDoklad) INNER JOIN ' + tblSS + ' ss ON (ss.Id=pz.IdZboSklad) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.Id)'; + lSQL:= lSQL + ' LEFT JOIN ' + tblKZe + ' kze ON (kze.Id=kz.Id) WHERE dz.CisloOrg=' + IntToStr(cOrg) + ' AND dz.Splneno=0 AND dz.StavRezervace<>N' + QuotedStr('X'); + lSQL:= lSQL + ' AND dz.RadaDokladu=N' + QuotedStr('280') + ' AND dz.DruhPohybuZbo=9 AND DATEDIFF(day,GETDATE(),pz.PozadDatDod)<4 AND (pz.Mnozstvi-pz.MnOdebrane-pz.MnozstviStorno)>0'; + if (typ=1) then + lSQL:= lSQL + ' AND kze._SdilenyMaterial=1'; + with Helios.OpenSQL(lSQL) do + begin + First; + while not(EOF) do + begin + Inc(cnt); + lSQL:= 'INSERT ' + tblObjMatPoh + ' (IdPohybZbozi, SkupZbo, RegCis, Mnozstvi, PozadDatDod, SdilenyMat, IdKmenZbozi, MnozstviZad) VALUES (' + VarToStr(FieldByNameValues('Id')) + ',N'; + lSQL:= lSQL + QuotedStr(VarToStr(FieldByNameValues('SkupZbo'))) + ',N' + QuotedStr(VarToStr(FieldByNameValues('RegCis'))); + lSQL:= lSQL + ',' + StringReplace(VarToStr(FieldByNameValues('Mnozstvi')),',','.',[rfReplaceAll]) + ','; + sTemp:= VarToStr(FieldByNameValues('PozadDatDod')); + lSQL:= lSQL + IfThen(sTemp='','NULL','CONVERT(datetime,N' + QuotedStr(sTemp) + ',104)'); + lSQL:= lSQL + ',' + IfThen(LowerCase(VarToStr(FieldByNameValues('Sdileny')))='false','0','1') + ',' + VarToStr(FieldByNameValues('idKZ')) + ','; + lSQL:= lSQL + StringReplace(VarToStr(FieldByNameValues('Mnozstvi')),',','.',[rfReplaceAll]) + ')'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Chyba řádek ' + IntToStr(cnt) + '/ RČ ' + VarToStr(FieldByNameValues('RegCis')) + ' >> ' + E.Message + #1); + end; + Next; + end; + lSQL:= 'MERGE ' + tblObjMatPoh + ' AS T USING (SELECT DISTINCT(IdKmenZbozi), SUM(Mnozstvi) AS MnSum FROM ' + tblObjMatPoh + ' GROUP BY IdKmenZbozi) AS S'; + lSQL:= lSQL + ' ON (S.IdKmenZbozi=T.IdKmenZbozi) WHEN MATCHED THEN UPDATE SET T.MnozstviZad=S.MnSum;'; + Helios.ExecSQL(lSQL); + end; + + Helios.OpenBrowse(100134,''); + + end; + + + + + procedure TplgLOVATO.ImportObjMatEdit (const Helios: IHelios; idZazn: Integer); + var lSQL, mn: string; + btn: TModalResult; + begin + if (idZazn>0) then + begin + mn:= '0'; + mn:= Trim(InputBoxOkCancel('Vydávané množství materiálu celkem','Množství celkem: ', mn, btn)); + if (btn=mrOk) and (mn<>'') then + Helios.ExecSQL('UPDATE ' + tblObjMatPoh + ' SET MnozstviZad=' + StringReplace(mn,',','.',[rfReplaceAll]) + ' WHERE IdKmenZbozi=' + IntToStr(idZazn)); + end; + end; + + + + + procedure TplgLOVATO.ImportObjMatRozpad (const Helios: IHelios); + var lSQL: string; + begin + lSQL:= 'SELECT DISTINCT(idKmenZbozi), MnozstviZad FROM ' + tblObjMatPoh; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + Next; + end; + end; + end; + + + + + procedure TplgLOVATO.ImportStavuInventur (const Helios: IHelios); + var lSQL, idPlan: string; + begin + if Helios.Prenos2(100099,'id','DatumGenerovani_X',oVar1,oVar2,'','Inventurní hlavičky',true,true,false,1) then + begin + if (VarToStr(oVar1)<>'') then + begin + lSQL:= 'SELECT i.IdKmenZbozi,i.MnozstviInv,i.DatPorizeni,i.SkupZbo+RegCis,ss.IDSklad,i.MnozstviSklad FROM ' + tblInvI; + lSQL:= lSQL + ' i LEFT JOIN ' + tblSS + ' ss ON (i.IDSklad=ss.id) WHERE i.idDoklad IN (' + VarToStr(oVar1) + ')'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + idPlan:= ''; + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi,Datum) VALUES (' + VarToStr(FieldValues(0)) + ','; + lSQL:= lSQL + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(2))) + ',104) )'; + lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + try + with Helios.OpenSQL(lSQL) do + idPlan:= VarToStr(FieldValues(0)); + if (idPlan<>'') then + begin + lSQL:= 'UPDATE ' + tblPPlanE + ' SET _IDSklad=N' + QuotedStr(VarToStr(FieldValues(4))) + ',_InventuraSM=1'; + lSQL:= lSQL + ' WHERE id=' + idPlan + CRLF + 'IF (@@ROWCOUNT=0) INSERT ' + tblPPlanE + ' (id,_IDSklad,_InventuraSM)'; + lSQL:= lSQL + ' VALUES (' + idPlan + ',N'+ QuotedStr(VarToStr(FieldValues(4))) + ',1)'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + UlozChybu(Helios,'Nelze uložit položku inventury (fyz): ' + VarToStr(FieldValues(3)) + ' sklad ' + VarToStr(FieldValues(4)),E); + end; + idPlan:= ''; + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi,Datum) VALUES (' + VarToStr(FieldValues(0)) + ','; + lSQL:= lSQL + StringReplace(VarToStr(FieldValues(5)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(2))) + ',104) )'; + lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + try + with Helios.OpenSQL(lSQL) do + idPlan:= VarToStr(FieldValues(0)); + if (idPlan<>'') then + begin + lSQL:= 'UPDATE ' + tblPPlanE + ' SET _IDSklad=N' + QuotedStr(VarToStr(FieldValues(4))) + ',_InventuraSM=0'; + lSQL:= lSQL + ' WHERE id=' + idPlan + CRLF + 'IF (@@ROWCOUNT=0) INSERT ' + tblPPlanE + ' (id,_IDSklad,_InventuraSM)'; + lSQL:= lSQL + ' VALUES (' + idPlan + ',N'+ QuotedStr(VarToStr(FieldValues(4))) + ',0)'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + UlozChybu(Helios,'Nelze uložit položku inventury (skl): ' + VarToStr(FieldValues(3)) + ' sklad ' + VarToStr(FieldValues(4)),E); + end; + Next; + end; + end; + end + else + Helios.Info(#1'Nebyla vybrána žádná inventura.'#1); + end + else + Helios.Info(#1'Akce importu inventurních stavů byla zrušena.'#1); + end; + + + + + procedure TplgLOVATO.SmazObjNadvyroby (const Helios: IHelios; idNad: integer); + var sql, msg: string; + errId: byte; + cVyd, cPrij, datVyd, datPrij: string; + idDZv, idPZ, idDZp, idVydejMat, idVydejStorno, idPrijMat, idPrijStorno: Integer; + realVyd, realPrij: boolean; + begin + msg:= ''; + errId:= 0; + cVyd:= ''; + cPrij:= ''; + idVydejMat:= 0; + datVyd:= ''; + idVydejStorno:= 0; + idPrijMat:= 0; + datPrij:= ''; + idPrijStorno:= 0; + + with Helios.OpenSQL('SELECT id FROM ' + tblEvidNadvyr + ' WHERE Stav=0 AND Splneno=1 AND id=' + IntToStr(idNad)) do + if (RecordCount=1) then + begin + errId:= 1; + msg:= 'Nelze smazat, objednávka Nadvýroby byla již splněna.'; + end; + if (errId=0) then + with Helios.OpenSQL('SELECT id FROM ' + tblEvidNadvyr + ' WHERE Zaevidovano>0 AND id=' + IntToStr(idNad)) do + if (RecordCount=1) then + begin + errId:= 2; + msg:= 'Nelze smazat, na objednávce Nadvýroby jsou evidované vyrobené kusy.' + CRLF; + msg:= msg + 'Objednávku lze ručně označit jako splněnou' + CRLF; + msg:= msg + ' a zbylý materiál vrátit převodem na sklad 200-Výroba.'; + end; + if (errId=0) then + with Helios.OpenSQL('SELECT IdVydejkaMat FROM ' + tblEvidNadvyr + ' WHERE IdVydejkaMat IS NOT NULL AND id=' + IntToStr(idNad)) do + if (RecordCount=1) then + begin + + realVyd:= false; + idVydejMat:= StrToInt(VarToStr(FieldValues(0))); + if (idVydejMat>0) then + with Helios.OpenSQL('SELECT RadaDokladu + N'' '' + CONVERT(nvarchar,PoradoveCislo),DatPorizeni FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydejMat)) do + begin + cVyd:= VarToStr(FieldValues(0)); + datVyd:= VarToStr(FieldValues(1)); + end; + + realPrij:= false; + idPrijMat:= 0; + + if (idVydejMat>0) then + begin + with Helios.OpenSQL('SELECT TOP(1) IDDoklad FROM ' + tblPZ + ' WHERE IDOldDoklad=' + IntToStr(idVydejMat)) do + if (RecordCount=1) then + idPrijMat:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydejMat) + ' AND Realizovano=1') do + if (RecordCount=1) then + realVyd:= true; + end; + + if (idPrijMat>0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE id=' + IntToStr(idPrijMat) + ' AND Realizovano=1') do + if (RecordCount=1) then + realPrij:= true; + with Helios.OpenSQL('SELECT RadaDokladu + N'' '' + CONVERT(nvarchar,PoradoveCislo),DatPorizeni FROM ' + tblDZ + ' WHERE id=' + IntToStr(idPrijMat)) do + begin + cPrij:= VarToStr(FieldValues(0)); + datPrij:= VarToStr(FieldValues(1)); + end; + end; + + if (realVyd) and (realPrij) then + errId:= 13; + + if (idVydejMat>0) and not(realVyd) and (idPrijMat=0) then + errId:= 4; + + if (idVydejMat>0) and (realVyd) and (idPrijMat>0) and not(realPrij) then + errId:= 6; + end; + + case errId of + 3: begin // real vyd+prij + Helios.Error(#1 + 'Na objednávku byl již vydán materiál, bude vygenerována vratka na sklad 200-Výroba.' + #1); + idDZv:= 0; + sql:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(Nadvyr) + ',@Mena=N' + QuotedStr('CZK'); + sql:= sql + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr('450') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + sql:= sql + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(sql) do + idDZv:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= sql; + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + if (idDZv>0) then + begin + sql:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ',IdSkladPrevodu=N' + QuotedStr(sklVyr); + sql:= sql + ',TypPrevodky=N' + QuotedStr('250') + ',DruhPohybuPrevod=0,PopisDodavky=N' + QuotedStr('Storno Nadvýroby - zpětný převod mat.'); + sql:= sql + ' WHERE id=' + IntToStr(idDZv); + Helios.ExecSQL(sql); + + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + sql:= sql + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + + sql:= sql + 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZv) + ',@IDDokladSrc=' + IntToStr(idPrijMat); + sql:= sql + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + sql:= sql + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + sql:= sql + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Storno Nadvýroby - zpětný převod mat.'); + sql:= sql + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + sql:= sql + ',@VytvaretDokladovouVazbu=0,@VytvaretPolozkovouVazbu=0'; + try + Helios.ExecSQL(sql); + sql:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZv) + CRLF; + sql:= sql + 'UPDATE ' + tblEvidNadvyr + ' SET IdVratkaMat=' + IntToStr(idDZv) + ' WHERE id='; + sql:= sql + IntToStr(idNad); + Helios.ExecSQL(sql); + +{ + idDZp:= 0; + sql:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(sklVyr) + ',@Mena=N' + QuotedStr('CZK'); + sql:= sql + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr('250') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + sql:= sql + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + Clipboard.AsText:= sql; + with Helios.OpenSQL(sql) do + idDZp:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, kontaktujte správce.'#1 + CRLF + E.Message + CRLF + sql); + end; + + if (idDZp>0) then + begin + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + sql:= sql + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + + sql:= sql + 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZp) + ',@IDDokladSrc=' + IntToStr(idDZv); + sql:= sql + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + sql:= sql + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + sql:= sql + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Storno Nadvýroby - zpětný převod mat.'); + sql:= sql + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + sql:= sql + ',@VytvaretDokladovouVazbu=0,@VytvaretPolozkovouVazbu=1'; + try + Clipboard.AsText:= sql; + Helios.ExecSQL(sql); + sql:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZp); + Helios.ExecSQL(sql); + except on E:Exception do + begin + Helios.Error(#1'Nelze uložit hlavičku položky příjemky/převodky, kontaktujte správce.'#1 + CRLF + E.Message); + end; + end; + end; +} + except on E:Exception do + Helios.Error(#1'Nelze vygenerovat výdejka (vratka).'#1 + CRLF + E.Message); + end; + end; + Helios.Info(#1'Pozor, vytvořená výdejka není realizovaná.'#1); + end; + + 4: begin // udelana vydejka, nerealizovana, bez navazne prijemky + Helios.Error(#1 + 'Na objednávku byla vygenerována výdejka, aktuálně není realizována a bude zrušena.' + #1); + sql:= 'BEGIN TRAN' + CRLF + 'DELETE FROM ' + tblDZDod + ' WHERE IDHlavicky=' + IntToStr(idVydejMat) + CRLF; + sql:= sql + 'DELETE FROM ' + tblPZSD + ' WHERE Id IN (SELECT id FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idVydejMat) + ')' + CRLF; + sql:= sql + 'DELETE FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idVydejMat) + CRLF; + sql:= sql + 'DELETE FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydejMat) + ' AND Realizovano=0' + CRLF; + sql:= sql + 'UPDATE ' + tblEvidNadvyroby + ' SET IdVydejkaMat=NULL WHERE id=' + IntToStr(idNad) + CRLF; + sql:= sql + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN'; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + 5: begin + Helios.Error(#1 + 'Na objednávku byl převeden materiál, proveďte zpětný převod ručně (Př. ' + cPrij + ')' + #1); + end; + + 6: begin // vytvorena a realizovana vydejka, vytvorena a NErealizovana prijemka + sql:= 'BEGIN TRAN' + CRLF + 'EXEC dbo.hp_SmazDokladOZ @IDDoklad=' + IntToStr(idPrijMat) + CRLF; + sql:= sql + 'UPDATE ' + tblDZ+ ' SET NavaznyDoklad=NULL WHERE id=' + IntToStr(idVydejMat); +{ + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; +} + sql:= sql + CRLF + 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL'; + sql:= sql + ' CREATE TABLE #TabTempUziv(Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + sql:= sql + CRLF + 'DECLARE @dVyd DATETIME, @idStorno INT, @bylaChyba INT, @uziv SMALLINT' + CRLF; + sql:= sql + 'SELECT @uziv=Id FROM ' + tblUziv + ' WHERE LoginName=SUSER_SNAME()' + CRLF; + sql:= sql + 'SET @dVyd=' + IfThen(datVyd='','NULL','CONVERT(datetime,N' + QuotedStr(datVyd) + ',104)') + CRLF; +// sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idStorno OUT, @Sklad=N' + QuotedStr(sklVyr) + ',@DruhPohybu=3'; +// sql:= sql + ',@RadaDokladu=N' + QuotedStr('410') + ',@Insert=1,@Mena=N' + QuotedStr('CZK'); +// sql:= sql + ',@PC=NULL,@DatumPorizeni=@dVyd,@CisloOrg=0' + CRLF; + sql:= sql + 'EXEC dbo.hp_Generuj_Storno_Doklad @ID=' + IntToStr(idVydejMat) + ',@Selectem=0'; + sql:= sql + ',@DruhPohybu=3,@RadaDokladu=N' + QuotedStr('410') + ',@IDSklad=N' + QuotedStr(sklVyr); + sql:= sql + ',@AObdobi=NULL,@ADatPorizeni=@dVyd,@idStorno=@idStorno OUT,@bylaChyba=@bylaChyba OUT'; + sql:= sql + CRLF + 'IF @idStorno IS NOT NULL' + CRLF + ' BEGIN' + CRLF + ' EXEC dbo.hp_Realizuj_prijem @ID=@idStorno,@DatumRealizace=@dVyd,'; + sql:= sql + '@Uzivatel=@uziv,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + ' EXEC dbo.hp_OZZrusStornoAPuvDok @idStorno=@idStorno' + CRLF + ' END' + CRLF; + sql:= sql + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN'; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + 13: begin + if Helios.YesNo(#1'Opravdu chcete objednávku smazat ?'#1 + CRLF + '!! všechny navázané příjmy a výdeje budou stornovány !!',false) then + begin + sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL'; + sql:= sql + ' CREATE TABLE #TabTempUziv(Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + sql:= sql + 'BEGIN TRAN' + CRLF + 'DECLARE @dVyd DATETIME, @idStorno INT, @bylaChyba INT, @uziv SMALLINT' + CRLF; + sql:= sql + 'SELECT @uziv=Id FROM ' + tblUziv + ' WHERE LoginName=SUSER_SNAME()' + CRLF; + sql:= sql + 'SET @dVyd=' + IfThen(datVyd='','NULL','CONVERT(datetime,N' + QuotedStr(datPrij) + ',104)') + CRLF; + sql:= sql + 'EXEC dbo.hp_Generuj_Storno_Doklad @ID=' + IntToStr(idPrijMat) + ',@Selectem=0'; + sql:= sql + ',@DruhPohybu=1,@RadaDokladu=N' + QuotedStr('200') + ',@IDSklad=N' + QuotedStr(sklVyr); + sql:= sql + ',@AObdobi=NULL,@ADatPorizeni=@dVyd,@idStorno=@idStorno OUT,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + 'IF @idStorno IS NOT NULL' + CRLF + ' BEGIN' + CRLF + ' EXEC dbo.hp_Realizuj_vydej @ID=@idStorno,@DatumRealizace=@dVyd'; + sql:= sql + ',@Hlidat=0,@Uzivatel=@uziv,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + ' EXEC dbo.hp_OZZrusStornoAPuvDok @idStorno=@idStorno' + CRLF; + sql:= sql + ' UPDATE ' + tblDZ+ ' SET NavaznyDoklad=NULL WHERE id=' + IntToStr(idVydejMat) + CRLF + ' END' + CRLF; + sql:= sql + 'SET @dVyd=' + IfThen(datVyd='','NULL','CONVERT(datetime,N' + QuotedStr(datVyd) + ',104)') + CRLF; + sql:= sql + 'EXEC dbo.hp_Generuj_Storno_Doklad @ID=' + IntToStr(idVydejMat) + ',@Selectem=0'; + sql:= sql + ',@DruhPohybu=3,@RadaDokladu=N' + QuotedStr('410') + ',@IDSklad=N' + QuotedStr(sklVyr); + sql:= sql + ',@AObdobi=NULL,@ADatPorizeni=@dVyd,@idStorno=@idStorno OUT,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + 'IF @idStorno IS NOT NULL' + CRLF + ' BEGIN' + CRLF + ' EXEC dbo.hp_Realizuj_prijem @ID=@idStorno,@DatumRealizace=@dVyd,'; + sql:= sql + '@Uzivatel=@uziv,@bylaChyba=@bylaChyba OUT' + CRLF; + sql:= sql + ' EXEC dbo.hp_OZZrusStornoAPuvDok @idStorno=@idStorno' + CRLF + ' END' + CRLF; + sql:= sql + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN'; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + end; + end; + + if (msg<>'') then + Helios.Error(#1 + msg + #1) + else + Helios.ExecSQL('UPDATE ' + tblEvidNadvyroby + ' SET Stav=1 WHERE id=' + IntToStr(idNad)); + + Helios.Refresh(true); + end; + + + + + procedure TplgLOVATO.KooperaceniPolozkySeSeskupenim (const Helios: IHelios); + var sql, IDcka, cOrg, idKOp: string; + cnt: integer; + begin + IDcka:= ''; + IDKop:= VarToStr(Helios.QueryBrowse.FieldByNameValues('IDObjednavky')); + sql:= 'TabPrPostup.typ=2 AND '; + if Helios.Prenos(bidVyrOper,'ID',oVar1,sql,'Kooperační operace na výrobních příkazech',true) then + begin + if not VarIsNull(oVar1) then + IDcka:= VarToStr(oVar1); + if (IDcka<>'') then + begin + sql:= 'SELECT FROM ' + tblPrPost + ' WHERE id IN (' + IDcka + ')'; + end; + end; + end; + + + +// rozpad prijemky nebo vybranych karet stavu skladu pro prevod na kooperanty + procedure TplgLOVATO.RozpadPrijStavNaKooperanty (const Helios: IHelios; const idDZ: integer=0; const idSS: Integer=0); safecall; + var sql, celkP, celkD, dodat, stred: string; + l_loop: integer; + chyba: boolean; + mn: Extended; + begin + chyba:= false; + sql:= ''; + if (idDZ>0) then + begin + sql:= 'INSERT ' + tblRozpPrijStav + ' (IdKmenZbozi,Mnozstvi,CisloZbozi)'; + sql:= sql + ' SELECT DISTINCT(kz.id),SUM(pz.Mnozstvi),kz.CisloZbozi FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS; + sql:= sql + ' ss ON (pz.IdZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id) WHERE'; + sql:= sql + ' pz.IDDoklad=' + IntToStr(idDZ) + ' GROUP BY kz.id,kz.CisloZbozi ORDER BY kz.id'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + if not(chyba) then + begin + sql:= 'SELECT DISTINCT(RIGHT(vp.KmenoveStredisko,3)) FROM TabPrKVazby kv INNER JOIN TabPrikaz vp'; + sql:= sql + ' ON (kv.IdPrikaz=vp.Id AND vp.StavPrikazu<=40) WHERE kv.mnoz_Nevydane>0 AND kv.nizsi IN'; + sql:= sql + ' (SELECT IdKmenZbozi FROM _TabRozpadPrijStav) ORDER BY RIGHT(vp.KmenoveStredisko,3)'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while (not(EOF) and not(chyba)) do + begin + stred:= VarToStr(FieldValues(0)); + sql:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Stav' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Stav' + stred; + sql:= sql + ' NUMERIC(19,6) NOT NULL DEFAULT 0.0' + CRLF; + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Pozad' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Pozad' + stred; + sql:= sql + ' NUMERIC(19,6) NOT NULL DEFAULT 0.0' + CRLF; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + if not(chyba) then + begin + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Prebyt' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Prebyt' + stred; + sql:= sql + ' AS ([Stav' + stred + ']-[Pozad' + stred + '])' + CRLF; + Helios.ExecSQL(sql); + + sql:= 'SET NOCOUNT ON' + CRLF; + sql:= sql + 'DECLARE @idKZ INT,@MnS NUMERIC(19,6),@MnP NUMERIC(19,6),@Skl NVARCHAR(30)' + CRLF; + sql:= sql + 'DECLARE c CURSOR LOCAL FAST_FORWARD FOR SELECT IdKmenZbozi FROM '; + sql:= sql + tblRozpPrijStav + CRLF + 'OPEN c' + CRLF + 'WHILE (1=1) BEGIN FETCH NEXT FROM c INTO @idKZ' + CRLF; + sql:= sql + ' IF (@@FETCH_STATUS<>0) BREAK' + CRLF + 'SET @MnS=ISNULL((SELECT ISNULL(Mnozstvi,0) FROM ' + tblSS; + sql:= sql + ' WHERE IdKmenZbozi=@idKZ AND IDSklad'; + if stred='200' then + sql:= sql + '=N' + QuotedStr('200') + else + sql:= sql + ' LIKE N' + QuotedStr('200%' + stred); + sql:= sql + '),0)' + CRLF; + sql:= sql + 'SET @MnP=ISNULL((SELECT ISNULL(SUM(kv.Mnoz_Nevydane),0) FROM ' + tblPrVaz + ' kv INNER JOIN' + tblPrikaz; + sql:= sql + ' vp ON (kv.IdPrikaz=vp.Id AND vp.StavPrikazu<=40) WHERE kv.Nizsi=@idKZ AND vp.KmenoveStredisko'; + if stred='200' then + sql:= sql + '=N' + QuotedStr('200') + else + sql:= sql + ' LIKE N' + QuotedStr('200%' + stred); + sql:= sql + '),0)' + CRLF; + sql:= sql + 'UPDATE ' + tblRozpPrijStav + ' SET Stav' + stred + '=@MnS,Pozad' + stred; + sql:= sql + '=@MnP WHERE idKmenZbozi=@idKZ' + CRLF + 'END' + CRLF + 'CLOSE c' + CRLF + 'DEALLOCATE c'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + Next; + end; + + celkD:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemDodat'); + celkD:= celkD + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemDodat AS ('; + dodat:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Dodat' + stred); + dodat:= dodat + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Dodat' + stred + ' AS ('; + +// celkem prebytek + celkP:= celkP + 'CASE WHEN [Stav' + stred + ']-[Pozad' + stred + ']>0 THEN ([Stav' + stred + ']-'; + celkP:= celkP + '[Pozad' + stred + ']) ELSE 0 END + '; +// celkem dodat + celkD:= celkD + 'CASE WHEN [Stav' + stred + ']-[Pozad' + stred + ']<0 THEN ABS([Stav' + stred + ']-'; + celkD:= celkD + '[Pozad' + stred + ']) ELSE 0 END + '; + +// celkem Prebytek + mn:= 0; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N''_TabRozpadPrijStav'')'; + sql:= sql + ' AND [name] LIKE N''Prebyt%'''; + with Helios.OpenSQL('') do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + Next; + end; + end; + celkP:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemPrebyt'); + celkP:= celkP + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemPrebyt NUMERIC(19,6) DEFAULT 0.0'; + sql:= 'UPDATE ' + QuotedStr(tblRozpPrijStav) + ' SET '; + Helios.ExecSQL(celkP + CRLF + sql); + +// celkem Dodat + SetLength(celkD,Length(celkD)-3); + celkD:= celkD + ')'; + Helios.ExecSQL(celkD); + end; + end; + end; + + + + + procedure TplgLOVATO.PrevodStavSkladuImp (const Helios: IHelios; TypImp: Byte); + var lSQL: string; + cnt: integer; + begin + cnt:= 0; + lSQL:= 'SELECT ssi.IDSklad,ssi.IDKmenZbozi,ssi.Minimum,ssi.Maximum,ssi.id,kz.SkupZbo,kz.RegCis FROM '; + lSQL:= lSQL + 'dbo.TabStavSkladuImp ssi INNER JOIN ' + tblKZ + ' kz ON (ssi.IdKmenZbozi=kz.id)'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + lSQL:= 'DECLARE @idSS INT' + CRLF + 'SET @idSS=(SELECT id FROM ' + tblSS; + lSQL:= lSQL + ' WHERE IDSklad=N' + QuotedStr(VarToStr(FieldValues(0))); + lSQL:= lSQL + ' AND IDKmenZbozi=' + VarToStr(FieldValues(1)) + ')' + CRLF + 'IF (@idSS IS NOT NULL)' + CRLF + 'BEGIN'; + lSQL:= lSQL + CRLF + 'UPDATE ' + tblSS + ' SET Minimum=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',Maximum=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + ' WHERE id=@idSS'; + lSQL:= lSQL + CRLF + 'DELETE FROM dbo.TabStavSkladuImp WHERE id=' + VarToStr(FieldValues(4)) + CRLF + 'END'; + try + Helios.ExecSQL(lSQL); + Inc(cnt); + except on E:Exception do + Helios.Error('Nelze uložit položku '#1 + VarToStr(FieldValues(5)) + ' ' + VarToStr(FieldValues(6)) + #1); + end; + Next; + end; + if cnt>0 then + Helios.Info(#1'Aktualizováno ' + IntToStr(cnt) + ' položek.'#1); + Helios.Refresh(true); + end; + end; + + + + + procedure TplgLOVATO.ImportReklamace (const Helios: IHelios); + var lSQL, radky, zaznam, nazevSloupce: string; + regC, cisloRekl, sarze, datPrijeti, stavCZ, decisionIT: string; + iRegC, iCisloRekl, iSarze, iDatPrijeti, iStavCZ, iDecisionIT: integer; + cnt, cntX, sl, idxR, idxS, lastPos: integer; + arrRadky: TArray>; + prvniPrazdne, cont: boolean; + aktR, aktC, rowMax, colMax: integer; + begin + if (Clipboard.HasFormat(CF_TEXT)) then + begin + cont := true; + prvniPrazdne := false; + try + radky := Clipboard.AsText; + if (LeftStr(radky,1)=#9) then + prvniPrazdne := true; + sl := PosCount (#9, LeftStr(radky, Pos(#13, radky)-1)) + 1; // pocet sloupcu + except on E:Exception do + cont := false; + end; + + if (radky<>'') and (cont) then + begin + cont:= true; + radky:= radky.Replace(#10#10, ' '); + radky:= radky.Replace(#10, ' '); + radky:= radky.Replace(CRLF, ' '); + cnt:= Length(radky)-Length(StringReplace(radky, Chr(13),'',[rfReplaceAll]))+1; + SetLength (arrRadky, cnt, sl); // index od 0 + if (Pos(#13, radky)>0) then + zaznam := LeftStr(radky, Pos(#13, radky)-1) // nazvy sloupcu + else + zaznam := radky; + + for idxR:=Low(arrRadky) to High(arrRadky) do + begin +// radky := radky.Trim; + if (radky='') then + Continue; + + lastPos := 0; + if (Pos(#13,radky)>0) then + begin + if (Pos(#9,radky)>0) then + begin + if (helUtils.PosCount(#9, radky)>=sl) then + lastPos := helUtils.LastPos(#13, LeftStr(radky, helUtils.PosNthString (radky, #9, sl)-1)) + else + if (RightStr(radky,1)='"') then + lastPos := radky.Length + else + lastPos := helUtils.LastPos(#13, radky); + zaznam := LeftStr (radky, lastPos); + end +// else +// zaznam := radky.Trim; + end; +// else +// zaznam := radky.Trim; + + zaznam:= zaznam.Replace(#10, ' '); + zaznam:= zaznam.Replace(#10#10, ' '); + zaznam:= zaznam.Replace(CRLF, ' '); +// zaznam:= Trim (StringReplace(zaznam, #9#9, #9' '#9, [rfReplaceAll])); + if (zaznam<>'') then + for idxS:=0 to sl-1 do + begin + if (zaznam<>'') then + begin + if (Pos (#9, zaznam)>0) then + begin + arrRadky[idxR,idxS] := LeftStr(zaznam, Pos(#9, zaznam)-1).Trim; + Delete (zaznam, 1, Pos(#9, zaznam)); + end + else + begin + arrRadky[idxR,idxS] := zaznam.Trim; + zaznam := ''; + end; + end; + end; + if (lastPos>0) then + Delete (radky, 1, lastPos) + else + Delete (radky, 1,Pos(#13, radky)+1); + end; // idxR + + + + iRegC := -1; + iCisloRekl := -1; + iSarze := -1; + iDatPrijeti := -1; + iStavCZ := -1; + iDecisionIT := -1; + + for idxS:=0 to sl-1 do + begin + nazevSloupce := arrRadky[0, idxS].Trim; + if (nazevSloupce.ToLower='typ výrobku') then + iRegC := idxS; + end; // idsS + + + lSQL := 'DROP TABLE IF EXISTS #TabImportReklamace' + CRLF + 'CREATE TABLE #TabImportReklamace (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY' + + ', RegCis NVARCHAR(30) NOT NULL, CisloReklamace NVARCHAR(30), Sarze NVARCHAR(100), DatPrijeti NVARCHAR(20), StavCZ NVARCHAR(200)' + + ', DecisionIT NVARCHAR(250), PoznamkaIT NVARCHAR(500) )' + CRLF; + +{ + if (iRegC>-1) then + for idxR:=High(arrRadky) downto Low(arrRadky) do + if (arrRadky[idxR, iRegC]='') then + SetLength (arrRadky, Length(arrRadky)-1); +} + cntX := 0; + for idxR:=Low(arrRadky) to High(arrRadky) do + begin + idKZ := 0; + regC := arrRadky[idxR, 2].Trim; + cisloRekl := arrRadky[idxR, 3].Trim; + sarze := arrRadky[idxR, 5].Trim; + datPrijeti := arrRadky[idxR, 6].Trim; + stavCZ := arrRadky[idxR, 9].Trim; + decisionIT := arrRadky[idxR, 10].Trim; + + if (regC<>'') and (decisionIT<>'') and (cisloRekl<>'') then + begin + lSQL := lSQL + 'INSERT #TabImportReklamace (RegCis, CisloReklamace, Sarze, DatPrijeti, StavCZ, DecisionIT) SELECT N' + + regC.QuotedString + ', N' + cisloRekl.QuotedString + ', N' + sarze.QuotedString + ', N' + datPrijeti.QuotedString + + ', N' + stavCZ.QuotedString + ', N' + decisionIT.QuotedString + CRLF; + Inc (cntX); + end; + end; // idxR + + lSQL := lSQL + 'IF OBJECT_ID(N''dbo.ep_HDC_ImportQMSReklamace_VyjadreniIT_2'', ''P'') IS NOT NULL EXEC dbo.ep_HDC_ImportQMSReklamace_VyjadreniIT_2'; + try + Helios.ExecSQL (lSQL); + except + on E:Exception do + Helios.Error (#1 + 'Chyba: ' + #1 + E.Message); + end; + + end; // radky<>'' and cont + if (cntX=0) then + Helios.Error (#1'Nedohledány žádné záznamy pro zápis'#1) + else + Helios.Info ('Import ukončen'); + end; // Clipboard.HasFormat + end; + + + + + procedure TplgLOVATO.ImportZClipboardu (const Helios: IHelios; TypImp: Byte); + var arrRadky: TArray>; + idx: integer; + lSQL, sz, rc, sMin, sMax, idKZ, jc: string; + begin + lSQL:= 'IF OBJECT_ID(N''tempdb..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT NULL, Poznamka NVARCHAR(255) NOT NULL )'; + Helios.ExecSQL(lSQL); + + case TypImp of + 1: ReseedTable (Helios,'TabStavSkladuImp'); + 2: begin + lSQL := 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabImpRCCena') + ') IS NOT NULL DROP TABLE #TabImpRCCena' + CRLF; + lSQL := lSQL + 'CREATE TABLE #TabImpRCCena (RegCis NVARCHAR(35) NOT NULL, JCena NUMERIC(19,6) DEFAULT 0.0, Autor NVARCHAR(50) DEFAULT SUSER_SNAME())'; + Helios.ExecSQL (lSQL); + end; + end; + + try + arrRadky := Clipboard2StringArray(false); // false = nemaze nazvy sloupcu + for idx:=0 to High(arrRadky) do + begin + idKZ:= ''; + sz:= ''; + rc:= ''; + case TypImp of + 1: begin + sz:= UpperCase(arrRadky[idx,0]); + rc:= UpperCase(arrRadky[idx,1]); + sMin:= arrRadky[idx,2]; + if sMin='' then + sMin:= '0'; + sMax:= arrRadky[idx,3]; + if sMax='' then + sMax:= '0'; + + lSQL:= 'SELECT Id FROM ' + tblKZ + ' WHERE UPPER(SkupZbo)=N' + QuotedStr(sz); + lSQL:= lSQL + ' AND UPPER(RegCis)=N' + QuotedStr(rc); + with Helios.OpenSQL(lSQL) do + if RecordCount=1 then + idKZ:= VarToStr(FieldValues(0)) + else + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) SELECT N' + QuotedStr('Karta nenalezena: ' + sz + ' ' + rc + ' : min. ' + sMin) + ' , max. ' + sMax); + if (idKZ<>'') then + begin + lSQL:= 'INSERT dbo.TabStavSkladuImp (SkupZboImp,RegCisImp,IDKmenZbozi,IDSklad,Minimum,Maximum) VALUES (N'; + lSQL:= lSQL + QuotedStr(sz) + ',N' + QuotedStr(rc) + ',' + idKZ + ',N' + QuotedStr(Helios.Sklad) + ','; + lSQL:= lSQL + StringReplace(sMin,',','.',[rfReplaceAll]) + ',' + StringReplace(sMax,',','.',[rfReplaceAll]) + ')'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + begin + UlozChybu(Helios,'Nelze importovat min/max do Stavu skladu.',E); + end; + end; + end; + end; + 2: begin + rc:= IfThen(arrRadky[idx,0]<>'', UpperCase(arrRadky[idx,0]), ''); + jc:= IfThen(arrRadky[idx,1]<>'', arrRadky[idx,0], '0'); + if (rc<>'') then + Helios.ExecSQL('INSERT #TabImpRCCena (RegCis, JCena) VALUES (N' + QuotedStr(rc) + ',' + StringReplace(jc,',','.',[rfReplaceAll]) + ')'); + end; + end; + end; + case TypImp of + 2: Helios.ExecSQL('EXEC dbo.ep_PZ_Import @Typ=1, @IDDoklad=' + VarToStr(Helios.HeliosVlastnik.QueryBrowse.FieldByNameValues('ID'))); + end; + except on E:Exception do + begin + lSQL:= 'Nelze importovat údaje ze schránky (Clipboardu).'; + UlozChybu(Helios,lSQL,E); + Helios.Error(#1 + lSQL + #1); + end; + end; + Helios.Refresh(true); + try + with Helios.OpenSQL('SELECT Poznamka FROM #TabExtKom') do + if RecordCount>0 then + Helios.OpenBrowse(541,''); + finally + end; + end; + + + + + procedure TplgLOVATO.VyrabeneDilceDoZadVyp (const Helios: IHelios); + var lSQL, IDs: string; + aID: TArray; + idx: integer; + begin + lSQL:= 'TabKmenZbozi.Blokovano=0 AND TabKmenZbozi.Dilec=1'; + if Helios.Prenos(bidSS,'TabKmenZbozi.id',oVar1,lSQL,'Vyberte požadované dílce',true) then + begin + if not VarIsNull(oVar1) then + begin + Helios.ExecSQL('DELETE FROM ' + tblPPlan + ' WHERE Autor=SUSER_SNAME() AND IDVarianta IS NULL'); + IDs:= VarToStr(oVar1); + lSQL:= 'SELECT id,1 FROM ' + tblKZ + ' WHERE id IN (' + IDs + ')'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi) VALUES (' + VarToStr(FieldValues(0)); + lSQL:= lSQL + ',' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + Next; + end; + end; +{ + aID:= StrToArrayInt(IDs); + for idx:= Low(aID) to High(aID) do + begin + lSQL:= 'SELECT kz.id,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON(ss.IdKmenZbozi=kz.id) WHERE ss.id=' + IntToStr(aID[idx]); + with Helios.OpenSQL('') + end; +} + Helios.Refresh(true); + end; + end; + end; + + + + + procedure TplgLOVATO.StavSkladuDoZadVyp (const Helios: IHelios); + var lSQL,IDs: string; + aID: TArray; + idx: integer; + begin + Helios.Info(#1'Bude importovan stav vybraneho skladu.'#1); + lSQL:= 'TabStavSkladu.Mnozstvi>0'; + if Helios.Prenos2(bidSS,'TabStavSkladu.id','',oVar1,oVar2,lSQL,'',true,true,false,1) then + begin + if not VarIsNull(oVar1) then + begin + Helios.ExecSQL('DELETE FROM ' + tblPPlan + ' WHERE Autor=SUSER_SNAME()'); + IDs:= VarToStr(oVar1); + lSQL:= 'SELECT kz.id,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON(ss.IdKmenZbozi=kz.id)'; + lSQL:= lSQL + ' WHERE ss.id IN (' + IDs + ')'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + lSQL:= 'INSERT ' + tblPPlan + ' (Dilec,Mnozstvi) VALUES (' + VarToStr(FieldValues(0)); + lSQL:= lSQL + ',' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + Next; + end; + end; +{ + aID:= StrToArrayInt(IDs); + for idx:= Low(aID) to High(aID) do + begin + lSQL:= 'SELECT kz.id,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON(ss.IdKmenZbozi=kz.id) WHERE ss.id=' + IntToStr(aID[idx]); + with Helios.OpenSQL('') + end; +} + Helios.Refresh(true); + end; + end; + end; + + + + + procedure TplgLOVATO.ZadejVyrPrikazNaVydejku (const Helios: IHelios; idVPr: Integer); + var lSQL: string; + pz,mu: IHeQuery; + idVydej,idPolExpP,idExpPr,idNPol,sMU,sNO: string; + idx: Integer; + mn: extended; + begin + if (idVPr>0) then + begin + lSQL:= 'SELECT kz.id FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.id=' + IntToStr(idVPr); + with Helios.OpenSQL(lSQL) do + if RecordCount=0 then + begin + Helios.Error(#1'Výrobní příkaz není na finální výrobek.'#1); + Exit; + end; + + lSQL:= 'SELECT p.IdRezervace,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.IdRezervace IS NOT NULL AND p.id=' + IntToStr(idVPr); + pz:= Helios.OpenSQL(lSQL); + if (pz.RecordCount>0) then + begin + if Helios.YesNo('Chcete dílec z výrobního příkazu uložit do výdejky exportu ?',false) then + begin + lSQL:= 'TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklVyroba) + ' AND TabDokladyZbozi.DruhPohybuZbo IN (2,3,4)'; + lSQL:= lSQL + ' AND TabDokladyZbozi.RadaDokladu IN (N' + QuotedStr('420') + ') AND TabDokladyZbozi.Realizovano=0'; + if Helios.Prenos(bidDZVydej,'id',vOle1,lSQL,'Výdejky pro Vývoz',true) then + begin + pz.First; + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + + sNO:= ''; + sMU:= ''; + idVydej:= VarToStr(vOle1); + mu:= Helios.OpenSQL('SELECT ISNULL(MistoUrceni,0) FROM ' + tblDZ + ' WHERE id=' + idVydej); + if (mu.RecordCount>0) then + begin + sMU:= VarToStr(mu.FieldValues(0)); + lSQL:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + lSQL:= lSQL + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idPolExpP; // jen Exp.prikazy + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + sNO:= LeftStr(VarToStr(FieldValues(0)),2); + if ((sNO<>'52') and (sMU='3')) or ( ((sNO<>'45') and (sMU='1')) and ((sNO<>'50') and (sMU='1')) ) then + begin + Helios.Error(#1'Místo určení na výdejce není určeno pro tuto řadu objednávek.'#1); + Exit; + end; + end; + end; + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE BlokovaniEditoru IS NOT NULL AND id=' + idVydej) do + if (RecordCount=0) then // doklad neni blokovan + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + idVydej); + pz.First; + idx:= 0; + while not(pz.EOF) do + begin + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + lSQL:= VarToStr(pz.FieldValues(1)) + ' ' + VarToStr(pz.FieldValues(2)) + ' - ' + VarToStr(pz.FieldValues(3)); + // try + mn:= StrToFloat(InputBox(lSQL,'Množství na výdejku:','0')); // 5.10.2018 přidáno ošetření na nečíslo + // except on E:Exception do begin + // helios.Error('Zadaná honota není číslo!'); + // exit; + // end + // end; + if (mn>0) then + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka '; + lSQL:= lSQL + 'NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'DECLARE @m NVARCHAR(3),@vc INT,@sDPH NUMERIC(5,2),@sSD NUMERIC(5,2),@kEUR NUMERIC(19,6),'; + lSQL:= lSQL + '@jm INT,@k NUMERIC(19,6),@ss INT,@mn NUMERIC(19,6),@idOut INT,@d DATETIME' + CRLF; + +// udaje z radky Exp. prikazu + lSQL:= lSQL + 'SELECT @sDPH=SazbaDPH,@sSD=SazbaSD,@mn=' + StringReplace(FloatToStr(mn),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@k=Kurz,@jm=JednotkaMeny,@ss=IDZboSklad,@kEUR=KurzEuro FROM ' + tblPZ + ' WHERE id=' + idPolExpP + CRLF; + +// udaje z hlavicky Exp. prikazu + with Helios.OpenSQL('SELECT Mena,VstupniCena,Kurz,KurzEuro,DatPorizeni FROM ' + tblDZ + ' WHERE id=' + idVydej) do + begin + lSQL:= lSQL + 'SET @m=N' + QuotedStr(VarToStr(FieldValues(0))) + CRLF + 'SET @vc=' + VarToStr(FieldValues(1)); + lSQL:= lSQL + CRLF + 'SET @k=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @kEUR=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @d=CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)' + CRLF; + end; + + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + idVydej + ',@DruhPohybu=2,@CisloOrg=1,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + idNPol:= ''; + try + Inc(idx); + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idNPol:= VarToStr(FieldValues(0)); + if (idNPol<>'') and (idPolExpP<>'') then + begin +// aktualizuje udaje na vydejce + lSQL:= 'DECLARE @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF; + lSQL:= lSQL + 'DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5)' + CRLF; + lSQL:= lSQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + lSQL:= lSQL + ' WHERE id=' + idPolExpP + CRLF; + lSQL:= lSQL + 'SELECT @k=Kurz FROM ' + tblDZ + ' WHERE id=@idDok' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET PozadDatDod=@d,NazevSozNa1=@n1,NazevSozNa2=@n2,JCbezDaniKC=@jcV*@k,JCbezDaniVal=@jcV'; + lSQL:= lSQL + ',IdOldPolozka=' + idPolExpP + ' WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JCbezDaniKC*Mnozstvi,CCbezDaniVal=JCbezDaniVal*Mnozstvi WHERE id=' + idNPol; + Helios.ExecSQL(lSQL); +// prepocte mnozstvi vydane na ExpPr + lSQL:= 'SELECT ISNULL( (SELECT IDDoklad FROM ' + tblPZ + ' WHERE Id=' + idPolExpP + '), 0)'; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idExpPr:= VarToStr(FieldValues(0)); + lSQL:= 'MERGE dbo.TabPohybyZbozi AS T USING (SELECT ss.Id, kz.MJEvidence AS MJ FROM dbo.TabStavSkladu ss' + CRLF; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=ss.IDKmenZbozi) WHERE ss.IDSklad=N''200'') AS S'; + lSQL:= lSQL + ' ON (T.IdZboSklad=S.Id) WHEN MATCHED AND T.IDDoklad=' + idExpPr + ' THEN UPDATE SET T.MJ=S.MJ, T.MJEvidence=S.MJ;'; + Helios.ExecSQL(lSQL); + lSQL:= 'BEGIN TRY' + CRLF + 'EXEC dbo.hp_Aktualizuj_OdebraneMnozstviDoklad @IDDoklad=' + idExpPr + ',@DruhPohybu=9' + CRLF; + lSQL:= lSQL + 'END TRY' + CRLF + 'BEGIN CATCH' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=ERROR_MESSAGE' + CRLF + 'END CATCH'; //upraveno 5.10.2018 - odstraněny závorky za error_message + try + Helios.ExecSQL(lSQL); + except on E:Exception do + // UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + sql, E); + UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + lsql, E); // změněno 26.6.2018 (z sql na lsql) + end; + end; + + end; + except on E:Exception do + Helios.Error(#1'Nelze uložit položku na doklad.'#1 + CRLF + E.Message + CRLF + lSQL + errPlg); + end; + end + else + Helios.Error(#1'Zadané množství je nulové, převod dílce na výdejku NEBUDE proveden.'#1); + pz.Next; + end; +// Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idVydej + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idVydej); + Helios.Refresh(true); + end + else + Helios.Error(#1'Doklad je blokován jiným uživatelem.'#1); + end; + end; + end; + end; + end; + + + + + procedure TplgLOVATO.ZadejPolPrijemkyNaVydejku (const Helios: IHelios; idPrij: Integer); + var lSQL: string; + pz,mu: IHeQuery; + mn, mnE: Single; + idVydej,idPol,idNPol: string; + idx: Integer; + begin + if (idPrij>0) then + begin + lSQL:= 'SELECT pz.Id FROM ' + tblDZ + ' dz INNER JOIN ' + tblPZ + ' pz ON (dz.Id=pz.IdDoklad) INNER JOIN ' + tblSS + ' ss ON'; + lSQL:= lSQL + ' (pz.IdZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id) WHERE dz.DruhPohybuZbo=0'; + lSQL:= lSQL + ' AND dz.Id=' + IntToStr(idPrij) + ' AND pz.TypVyrobnihoDokladu=0 AND dz.RadaDokladu IN (N' + QuotedStr('220') + ')'; + lSQL:= lSQL + ' AND kz.SkupZbo LIKE ' + QuotedStr('V%') + ' ORDER BY pz.SkupZbo,pz.RegCis,pz.NazevSozNa1,pz.NazevSozNa2'; + pz:= Helios.OpenSQL(lSQL); + if (pz.RecordCount>0) then + begin + if Helios.YesNo('Chcete položky FINÁLNÍCH dílců z příjemky z výroby uložit do výdejky exportu ?',false) then + begin + lSQL:= 'IDSklad=N' + QuotedStr(sklVyroba) + ' AND RadaDokladu IN (N' + QuotedStr('420') + ')'; + if Helios.Prenos(100092,'id',vOle1,lSQL,'Výdejky pro Vývoz',true) then + begin + pz.First; + idPol:= VarToStr(pz.FieldValues(0)); // ID polozky v Prijemce + idNPol:= '0'; + with Helios.OpenSQL('SELECT p.IdRezervace FROM ' + tblPZ + ' pz INNER JOIN ' + tblPrikaz + ' p ON (pz.IdPrikaz=p.id) WHERE pz.id=' + idPol) do + if (RecordCount>0) then + idNPol:= VarToStr(FieldValues(0)); // ID polozky ExpPrikazu + if (idNPol<>'0') then + with Helios.OpenSQL('IF NOT EXISTS(SELECT id FROM ' + tblPZ + ' WHERE id=' + idNPol + ') SELECT 0 ELSE SELECT Mnozstvi-MnOdebrane-MnozstviStorno FROM ' + tblPZ + ' WHERE id=' + idNPol) do + mnE:= StrToFloat(VarToStr(FieldValues(0))); // mnozstvi zbytek na ExpPr + if (mnE<=0) then + begin + lSQL:= 'Položka objednávky (ExpPř) již byla celá splněna/odeslána.'; + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) SELECT N' + QuotedStr(lSQL)); + Helios.Error(#1 + lSQL + #1); + Exit; + end; + + idVydej:= VarToStr(vOle1); + mu:= Helios.OpenSQL('SELECT ISNULL(MistoUrceni,0) FROM ' + tblDZ + ' WHERE id=' + idVydej); + if (mu.RecordCount>0) then + begin + lSQL:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + lSQL:= lSQL + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idNPol; // jen Exp.prikazy + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + if ((LeftStr(VarToStr(FieldValues(0)),2)<>'45') and (VarToStr(mu.FieldValues(0))='1')) + or ((LeftStr(VarToStr(FieldValues(0)),2)<>'52') and (VarToStr(mu.FieldValues(0))='3')) then + begin + Helios.Error(#1'Místo určení na výdejce není určeno pro tuto řadu objednávek.'#1); + Exit; + end; + end; + end; + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE BlokovaniEditoru IS NOT NULL AND id=' + idVydej) do + if (RecordCount=0) then // ma vydejku otevrenou nekdo jiny ? 0=ne + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + idVydej); + pz.First; + idx:= 0; + while not(pz.EOF) do + begin + idPol:= VarToStr(pz.FieldValues(0)); + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka '; + lSQL:= lSQL + 'NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'DECLARE @m NVARCHAR(3),@vc INT,@sDPH NUMERIC(5,2),@sSD NUMERIC(5,2),@kEUR NUMERIC(19,6),'; + lSQL:= lSQL + '@jm INT,@k NUMERIC(19,6),@ss INT,@mn NUMERIC(19,6),@idOut INT,@d DATETIME, @mExp NUMERIC(19,6)' + CRLF; + lSQL:= lSQL + 'SET @mExp=' + StringReplace(FloatToStr(mnE),'','',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SELECT @sDPH=SazbaDPH,@sSD=SazbaSD,@mn=Mnozstvi,@k=Kurz,@jm=JednotkaMeny,'; + lSQL:= lSQL + '@ss=IDZboSklad,@kEUR=KurzEuro FROM ' + tblPZ + ' WHERE id=' + idPol + CRLF; + with Helios.OpenSQL('SELECT Mena,VstupniCena,Kurz,KurzEuro,DatPorizeni FROM ' + tblDZ + ' WHERE id=' + idVydej) do + begin + lSQL:= lSQL + 'SET @m=N' + QuotedStr(VarToStr(FieldValues(0))) + CRLF + 'SET @vc=' + VarToStr(FieldValues(1)); + lSQL:= lSQL + CRLF + 'SET @k=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @kEUR=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @d=CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)' + CRLF; + end; + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + idVydej + ',@DruhPohybu=2,@CisloOrg=1,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=NULL,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0' + CRLF; + lSQL:= lSQL + 'SELECT @idOut'; + idNPol:= ''; + try + Inc(idx); + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idNPol:= VarToStr(FieldValues(0)); + if (idNPol<>'') then + begin + lSQL:= 'IF EXISTS(SELECT id FROM ' + tblPZ + ' WHERE IdPrikaz IS NOT NULL AND id=' + idPol + ') BEGIN'; + lSQL:= lSQL + ' DECLARE @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF + 'SELECT @idP=IdPrikaz FROM ' + tblPZ + ' WHERE id=' + idPol + CRLF; + lSQL:= lSQL + 'SELECT @idRez=IdRezervace FROM ' + tblPrikaz + ' WHERE IDPrikazRidici=@idP AND id=@idP' + CRLF; + lSQL:= lSQL + 'IF (@idRez IS NOT NULL) BEGIN DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5)' + CRLF; + lSQL:= lSQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + lSQL:= lSQL + ' WHERE id=@idRez' + CRLF; + lSQL:= lSQL + 'SELECT @k=Kurz FROM ' + tblDZ + ' WHERE id=@idDok' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET PozadDatDod=@d,NazevSozNa1=@n1,NazevSozNa2=@n2,IdOldPolozka=@idRez,JCbezDaniKC=@jcV*@k,JCbezDaniVal=@jcV'; + lSQL:= lSQL + ' WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JCbezDaniKC*Mnozstvi,CCbezDaniVal=JCbezDaniVal*Mnozstvi WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'IF (@idDok IS NOT NULL) EXEC dbo.hp_Aktualizuj_OdebraneMnozstviDoklad @IDDoklad=@idDok,@DruhPohybu=9 END END'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + begin + Clipboard.AsText:= lSQL + CRLF + errPlg; + Helios.Error(#1'Nelze uložit položku na doklad.'#1 + CRLF + E.Message + CRLF + '(SQL v clipboardu)'); + end; + end; + pz.Next; + end; + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idVydej + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idVydej); + Helios.Refresh(true); + Helios.Info(#1'Uloženo ' + IntToStr(idx) + ' položek.'#1); + end + else + Helios.Error(#1'Doklad je blokován jiným uživatelem.'#1); + end; + end; + end; + end; + end; + + + + + function TplgLOVATO.TestKoopObjVydejMat (const Helios: IHelios; idPKO: Integer): Boolean; + var idVPr: integer; + begin + result:= false; + with Helios.OpenSQL('SELECT IDPrikaz FROM ' + tblPKObj + ' WHERE id=' + IntToStr(idPKO)) do + if RecordCount>0 then + begin + idVPr:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL('SELECT id FROM ' + tblPZ + ' WHERE IDPrikaz=' + IntToStr(idVPr) + ' AND TypVyrobnihoDokladu=1') do + if RecordCount>0 then + result:= true; + end; + end; + + + + + procedure TplgLOVATO.PrerovnejPolozkyKoopObj (const Helios: IHelios; idKObj: Integer); + var lSQL: string; + idx: integer; + pol: IHeQuery; + begin + lSQL:= 'SELECT pko.id FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' ORDER BY pko.PozadTerDod DESC,kz.RegCis DESC'; + pol:= Helios.OpenSQL(lSQL); + if pol.RecordCount>0 then + begin + idx:= 101; + pol.First; + while not(pol.EOF) do + begin + try + lSQL:= 'UPDATE ' + tblPKObj + ' SET Polozka=' + IntToStr(idx) + ' WHERE id=' + VarToStr(pol.FieldValues(0)); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error('Chyba: ' + E.Message + CRLF + lSQL); + end; + Dec(idx); + pol.Next + end; + end; + lSQL:= 'SELECT pko.id FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' ORDER BY pko.PozadTerDod,kz.RegCis'; + pol:= Helios.OpenSQL(lSQL); + if pol.RecordCount>0 then + begin + idx:= 1; + pol.First; + while not(pol.EOF) do + begin + try + lSQL:= 'UPDATE ' + tblPKObj + ' SET Polozka=' + IntToStr(idx) + ' WHERE id=' + VarToStr(pol.FieldValues(0)); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error('Chyba: ' + E.Message + CRLF + lSQL); + end; + Inc(idx); + pol.Next + end; + end; + end; + + + + + procedure TplgLOVATO.ExportKoopObjHQL (const Helios: IHelios; idKObj: integer); // 29 + var lSQL, sqlOut, fName: string; + myDIC, myICO, cOrg, cObj, sGUID: string; + guid: TGUID; + fs: TFileStream; + begin + CreateGUID(guid); + sGuid:= GUIDToString(guid); + sGuid:= StringReplace(sGuid,'{','',[rfReplaceAll]); + sGuid:= StringReplace(sGuid,'}','',[rfReplaceAll]); + with Helios.OpenSQL('SELECT ICO,DIC FROM ' + tblCOrg + ' WHERE CisloOrg=0') do + begin + myICO:= VarToStr(FieldValues(0)); + myDIC:= VarToStr(FieldValues(1)); + end; + sqlOut:= 'SET NOCOUNT ON' + CRLF + 'DECLARE @nIdDZ INT, @autor NVARCHAR(80), @dt DATETIME' + CRLF; + sqlOut:= sqlOut + 'SELECT @autor=SUSER_SNAME()' + CRLF + 'SET @dt=GETDATE()' + CRLF; + sqlOut:= sqlOut + 'BEGIN TRAN' + CRLF; + lSQL:= 'SELECT REPLACE(k.Objednavka,N''/'',N''''),c.CisloOrg,k.DIC,k.DatPorizeni,k.DatRealizace,k.Autor,'; + lSQL:= lSQL + 'SUBSTRING(REPLACE(SUBSTRING(k.Poznamka,1,2000),(CHAR(13) + CHAR(10)),N'' ''),1,2000),k.Cislo,k.Rada FROM ' + tblKObj; + lSQL:= lSQL + ' k INNER JOIN ' + tblCOrg + ' c ON (c.Id=k.IDOrganizace) WHERE k.id=' + IntToStr(idKObj); + with Helios.OpenSQL(lSQL) do + begin + cObj:= VarToStr(FieldValues(8)) + VarToStr(FieldValues(7)); + cOrg:= VarToStr(FieldValues(1)); + sqlOut:= sqlOut + ' INSERT dbo._TabEDI_Doklady (DruhDokladu,DIC_src,CisloOrg_dst,DIC_dst,ParovaciZnak,DatPorizeniDokl'; + sqlOut:= sqlOut + ',DatRealizaceDokl,VstupniCena,SazbaDPH,Mena,Poznamka,AutorDokl,Objednavka,GUID) VALUES (1001,N'; + sqlOut:= sqlOut + QuotedStr(myDIC) + ',' + VarToStr(FieldValues(1)) + ',N' + QuotedStr(VarToStr(FieldValues(2))); + sqlOut:= sqlOut + ',N' + QuotedStr('') + ',CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(3))) + ',104),'; + if (VarToStr(FieldValues(4))='') or (VarToStr(FieldValues(4))='30.12.1899') then + sqlOut:= sqlOut + 'NULL' + else + sqlOut:= sqlOut + 'CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)'; + sqlOut:= sqlOut + ',0,NULL,N' + QuotedStr('CZK') + ','; + if (VarToStr(FieldValues(6))='') then + sqlOut:= sqlOut + 'NULL' + else + sqlOut:= sqlOut + 'N' + QuotedStr(VarToStr(FieldValues(6))); + sqlOut:= sqlOut + ',N' + QuotedStr(VarToStr(FieldValues(5))) + ',N' + QuotedStr(VarToStr(FieldValues(0))); + sqlOut:= sqlOut + ',CONVERT(uniqueidentifier,N' + QuotedStr(sGuid) + ') )' + CRLF; + sqlOut:= sqlOut + ' SELECT @nIdDZ=SCOPE_IDENTITY()' + CRLF; + + lSQL:= 'SELECT k.RegCis,p.Kusy,ROUND(p.Cena/p.Kusy,3),p.Polozka FROM ' + tblPKObj + ' p INNER JOIN ' + tblPrikaz; + lSQL:= lSQL + ' pr ON (pr.Id=p.IDPrikaz) INNER JOIN ' + tblKZ + ' k ON (k.Id=pr.IdTabKmen) WHERE p.IDObjednavky=' + IntToStr(idKObj); + lSQL:= lSQL + ' ORDER BY p.Polozka'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + sqlOut:= sqlOut + ' INSERT dbo._TabEDI_Polozky (IDDoklad,RegCis,Mnozstvi,JCbezDaniKc,SazbaDPH,Poradi,'; + sqlOut:= sqlOut + 'Popis1,Zpracovano) VALUES (@nIdDZ,N' + QuotedStr(VarToStr(FieldValues(0))); + sqlOut:= sqlOut + ',' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]); + sqlOut:= sqlOut + ',' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + ',21,'; + sqlOut:= sqlOut + VarToStr(FieldValues(3)) + ',N' + QuotedStr(cObj + '/' + VarToStr(FieldValues(3))) + ',0)'; + sqlOut:= sqlOut + CRLF; + Next; + end; + end; + sqlOut:= sqlOut + CRLF + ' INSERT dbo._TabEDI_GUID (GUID,Autor,DatPorizeni) VALUES (CONVERT(uniqueidentifier,N'; + sqlOut:= sqlOut + QuotedStr(sGuid) + '),@autor,@dt)' + CRLF; + sqlOut:= sqlOut + ' UPDATE dbo._TabEDI_Doklady SET ImportOK=1 WHERE id=@nIdDZ' + CRLF; + sqlOut:= sqlOut + 'IF (@@ERROR<>0) ROLLBACK TRAN ELSE COMMIT TRAN' + CRLF; + end; + fName:= GetEnvironmentVariable('USERPROFILE') + '\Desktop\EDI-Koop-' + cOrg + '-' + cObj + '.hql'; + fs:= TFileStream.Create(fName, fmCreate); + try + WriteStringToStream(fs,sqlOut); + finally + fs.Free; + Helios.Info('Soubor uložen jako '#1 + fName + #1); + end; + end; + + + + // !!!!!!!!! nepoužívat - 10.6.2022 bylo přesunuto do unity Globalni.pas !!!!!!!!!! + procedure TplgLOVATO.ExportKoopObj_OLD (const Helios: IHelios; idKObj: integer; ZobrTypKooObj: boolean; NadpisTypuKoopObj: string; vlastTbl: string); // upraveno 6.5.2020 + const strLov = '40755509 LOVATO spol.s r.o.'; + var fld: string; + lSQL: string; + xls: TXLSReadWriteII5; + wSheet1, wSheet2: TXLSWorksheet; + poz: IHeQuery; + idPolKObj, idx: integer; + cObj, dodav, dat, datKO: string; + begin + if idKObj>0 then + begin + +// lSQL:= 'SELECT p.Polozka,p.Kusy,p.PozadTerDod_X,k.RegCis FROM ' + tblPKObj + ' p INNER JOIN ' + tblPrikaz + ' pr ON (p.IDPrikaz=pr.id)'; +// lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' k ON (pr.IdTabKmen=k.id) WHERE p.IDObjednavky=' + IntToStr(idKObj); +// lSQL:= lSQL + ' ORDER BY p.Polozka'; + + // lSQL:= 'SELECT DISTINCT(kz.RegCis),pko.PozadTerDod,SUM(pko.Kusy) FROM ' + tblPKObj + ' pko'; // zakomentováno 6.5.2020 + lSQL:= 'SELECT DISTINCT(kz.RegCis),pko.PozadTerDod,SUM(pko.Kusy), dbo._ef_NTS_TypObjednavkyKZKooP(kz.id, pko.id) FROM ' + tblPKObj + ' pko'; // přidáno 6.5.2020 + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.PozadTerDod, dbo._ef_NTS_TypObjednavkyKZKooP(kz.id, pko.id) ORDER BY pko.PozadTerDod'; // kz.RegCis'; // přidáno 6.5.2020 + // lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.PozadTerDod ORDER BY pko.PozadTerDod'; // kz.RegCis'; // zakomentováno 6.5.2020 + + poz:= Helios.OpenSQL(lSQL); + if (poz.RecordCount>0) then + begin + if VyberAdresar(fld, 'Umístění exportního souboru') then + begin + lSQL:= 'SELECT k.Objednavka,c.ICO + N' + QuotedStr(' ') + ' + c.Nazev,k.TerminOdeslani FROM ' + tblKObj; + lSQL:= lSQL + ' k INNER JOIN ' + tblCOrg + ' c ON (k.IDOrganizace=c.id) WHERE k.id=' + IntToStr(idKObj); + with Helios.OpenSQL(lSQL) do + begin + cObj:= VarToStr(FieldValues(0)); + dodav:= VarToStr(FieldValues(1)); + datKO:= VarToStr(FieldValues(2)); + end; + cObj:= StringReplace(cObj,'/','',[rfReplaceAll]); + + xls:= TXLSReadWriteII5.Create(nil); + try + xls.Version:= xvExcel97; + wSheet2:= xls.Sheets[0]; + wSheet2.Name:= 'Sumace'; +// xls[1].InsertRows(0,poz.RecordCount); +// xls[1].InsertColumns(0,7); + wSheet2.AsString[0,0]:= 'Objednavatel'; + wSheet2.AsString[2,0]:= strLov; + wSheet2.AsString[0,2]:= 'Dodavatel:'; + wSheet2.AsString[2,2]:= dodav; + wSheet2.AsString[0,4]:= 'Datum vystavení:'; + wSheet2.AsString[2,4]:= datKO; + wSheet2.AsString[0,6]:= 'Čís.obj.'; + wSheet2.AsString[1,6]:= 'Poř.č.'; + wSheet2.Columns.Items[1].NumberFormat:= '##0'; + wSheet2.Columns.Items[1].HorizAlignment:= chaCenter; + wSheet2.AsString[2,6]:= 'Číslo výrobku'; + wSheet2.AsString[3,6]:= 'Množství'; + wSheet2.Columns.Items[3].NumberFormat:= '###,##0.###'; + wSheet2.AsString[4,6]:= 'Splnit do'; + wSheet2.Columns.Items[4].NumberFormat:= 'DD.MM.YYYY'; + wSheet2.Columns.Items[4].HorizAlignment:= chaCenter; + + // přidáno 6.5.2020 + if ZobrTypKooObj = true then begin + wSheet2.AsString[5,6]:= NadpisTypuKoopObj; + if vlastTbl='NaStred' then wSheet2.Columns.Items[5].HorizAlignment:= chaCenter; + if vlastTbl='Vpravo' then wSheet2.Columns.Items[5].HorizAlignment:= chaRight; + end; + // konec přidáno 6.5.2020 + + idx:= 7; + poz.First; + while not(poz.EOF) do + begin + wSheet2.AsString[0, idx]:= cObj; + wSheet2.AsInteger[1, idx]:= idx-6; // VarToStr(poz.FieldValues(0)); + wSheet2.AsString[2, idx]:= VarToStr(poz.FieldValues(0)); // RegCis + wSheet2.AsFloat[3, idx]:= StrToFloat(VarToStr(poz.FieldValues(2))); // mnozstvi + dat:= VarToStr(poz.FieldValues(1)); + if (dat<>'') then + wSheet2.AsString[4, idx]:= dat; + + // přidáno 6.5.2020 + if ZobrTypKooObj = true then begin + wSheet2.AsString[5, idx]:= VarToStr(poz.FieldValues(3)); // Typ objednávky - poznámka z kmenové karty + end; + // konec přidáno 6.5.2020 + + Inc(idx); + poz.Next; + end; + wSheet2.AutoWidthCols(0, 4); + +// if Helios.YesNo('Mám přerovnat položky objednávky podle datumu a reg.čísla ?',false) then +// PrerovnejPolozkyKoopObj(Helios,idKObj); + + // lSQL:= 'SELECT pko.Polozka,kz.RegCis,pko.Kusy,pko.PozadTerDod_X FROM ' + tblPKObj + ' pko'; // zakomentováno 6.5.2020 + lSQL:= 'SELECT pko.Polozka,kz.RegCis,pko.Kusy,pko.PozadTerDod_X, dbo._ef_NTS_TypObjednavkyKZKooP(kz.id, pko.id) FROM ' + tblPKObj + ' pko'; // přidáno 6.5.2020 + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IdPrikaz=p.id)'; + lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj); + +{ + lSQL:= 'CREATE TABLE #Vystup (Pozice INT IDENTITY(1,1),RegCis NVARCHAR(20),Polozka INT,Kusu NUMERIC(19,6)) ' + CRLF; + lSQL:= lSQL + 'INSERT INTO #Vystup (RegCis,Polozka,Kusu) '; + lSQL:= lSQL + 'SELECT DISTINCT(kz.RegCis),pko.Polozka,SUM(pko.Kusy) FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.Polozka ORDER BY pko.Polozka' + CRLF; + lSQL:= lSQL + 'SELECT * FROM #Vystup'; +} + poz:= Helios.OpenSQL(lSQL); + if (poz.RecordCount>0) then + begin + poz.First; + idx:= 7; + wSheet1:= xls.Add; + wSheet1.Name:= 'Detail'; + wSheet1.AsString[0,0]:= 'Objednavatel'; + wSheet1.AsString[2,0]:= strLov; + wSheet1.AsString[0,2]:= 'Dodavatel:'; + wSheet1.AsString[2,2]:= dodav; + wSheet1.AsString[0,4]:= 'Datum vystavení:'; + wSheet1.AsString[2,4]:= datKO; + wSheet1.AsString[0,6]:= 'Čís.obj.'; + wSheet1.AsString[1,6]:= 'Poř.č.'; + wSheet1.Columns.Items[1].NumberFormat:= '##0'; + wSheet1.Columns.Items[1].HorizAlignment:= chaCenter; + wSheet1.AsString[2,6]:= 'Číslo výrobku'; + wSheet1.AsString[3,6]:= 'Množství'; + wSheet1.Columns.Items[3].NumberFormat:= '###,###,##0.###'; + wSheet1.AsString[4,6]:= 'Splnit do'; + wSheet1.Columns.Items[4].NumberFormat:= 'DD.MM.YYYY'; + wSheet1.Columns.Items[4].HorizAlignment:= chaCenter; + + // přidáno 6.5.2020 + if ZobrTypKooObj = true then begin + wSheet1.AsString[5,6]:= NadpisTypuKoopObj; + if vlastTbl='NaStred' then wSheet1.Columns.Items[5].HorizAlignment:= chaCenter; + if vlastTbl='Vpravo' then wSheet1.Columns.Items[5].HorizAlignment:= chaRight; + end; + // konec přidáno 6.5.2020 + + while not(poz.EOF) do + begin + wSheet1.AsString[0, idx]:= cObj; + wSheet1.AsInteger[1, idx]:= StrToInt(VarToStr(poz.FieldValues(0))); // polozka + wSheet1.AsString[2, idx]:= VarToStr(poz.FieldValues(1)); // RegCis + wSheet1.AsFloat[3, idx]:= StrToFloat(VarToStr(poz.FieldValues(2))); // mnozstvi + dat:= VarToStr(poz.FieldValues(3)); + if (dat<>'') then + wSheet1.AsString[4, idx]:= dat; + + // přidáno 6.5.2020 + if ZobrTypKooObj = true then begin + wSheet1.AsString[5, idx]:= VarToStr(poz.FieldValues(4)); // Typ objednávky - poznámka z kmenové karty + end; + // konec přidáno 6.5.2020 + + Inc(idx); + poz.Next; + end; + wSheet1.AutoWidthCols(0, 4); + end; + xls.Sheets[0].Rows.Items[6].FontStyle:= [xfsBold]; + xls.Sheets[0].Columns.Items[1].HorizAlignment:= chaCenter; + xls.Sheets[0].Columns.Items[3].HorizAlignment:= chaCenter; + xls.Sheets[0].Columns.Items[4].HorizAlignment:= chaCenter; + xls.Sheets[1].Rows.Items[6].FontStyle:= [xfsBold]; + xls.SaveToFile(fld + '\Obj-' + cObj + '.xls'); + finally + xls.Free; + end; + Helios.Info('Export souboru ukončen.'); + end; + end + else + Helios.Error(#1'Kooperační objednávka neobsahuje žádnou položku.'#1); + end + else + Helios.Error(#1'Nelze identifikovat Kooperační objednávku.'#1); + end; + + + + + procedure TplgLOVATO.GenerujVydejZEP (const Helios: IHelios); + begin + + end; + + + + + procedure TplgLOVATO.GenerujVydejMatZPrikazu (const Helios: IHelios; idEvidKoop: integer); + const rDoklVydMat = '400'; + drVydej = '4'; + var pol: IHeQuery; + lSQL, podm: string; + idKZ, idKZPr, idDZ, idPZ, iPC, idVPr, idPrKVaz: Integer; + mnoz, mnozOdv, mnozVPr, mnReal: Extended; + sPC, stredVPr, cOrgKoop, idSS, dokl, idObd, cOrg: string; // poradove cislo noveho dokladu vydejky + begin + idVPr:= 0; + with Helios.OpenSQL('SELECT IDPrikaz FROM ' + tblMzdZm + ' WHERE TypMzdy=2 AND id=' + IntToStr(idEvidKoop)) do + if (RecordCount>0) then + idVPr:= StrToInt(VarToStr(FieldValues(0))); + if (idVPr>0) then + begin + mnozVPr:= 0; + stredVPr:= ''; + with Helios.OpenSQL('SELECT ISNULL(KmenoveStredisko,' + QuotedStr('') + '),kusy_zive,IDTabKmen FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idVPr)) do + if RecordCount=1 then + begin + stredVPr:= VarToStr(FieldValues(0)); + mnozVPr:= StrToFloat(VarToStr(FieldValues(1))); + idKZPr:= StrToInt(VarToStr(FieldValues(2))); + end; + if (stredVPr<>'') and (mnozVPr>0) then + begin + with Helios.OpenSQL('SELECT ISNULL(Cislo_V,' + QuotedStr('') + ') FROM ' + tblStrom + ' WHERE Cislo=N' + QuotedStr(stredVPr)) do + stredVPr:= VarToStr(FieldValues(0)); + if (stredVPr<>'') then + begin + lSQL:= 'SELECT se._CisloOrg FROM ' + tblStrom + ' s INNER JOIN ' + tblStromE + ' se ON (s.id=se.id)'; + lSQL:= lSQL + ' WHERE s.Cislo=N' + QuotedStr(stredVPr); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + cOrg:= VarToStr(FieldValues(0)) + else + cOrg:= ''; + if (cOrg<>'') then + begin + mnozOdv:= 0; + lSQL:= 'SELECT kusy_odv FROM ' + tblMzdZm + ' WHERE TypMzdy=2 AND id=' + IntToStr(idEvidKoop); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + mnozOdv:= StrToFloat(VarToStr(FieldValues(0))); + + lSQL:= 'SELECT nizsi,mnoz_Nevydane,Doklad,id,Mnoz_skut_realizovane FROM ' + tblPrVaz + ' WHERE mnoz_Nevydane>0 AND IDPrikaz=' + IntToStr(idVPr); + lSQL:= lSQL + ' ORDER BY DatPorizeni'; + pol:= Helios.OpenSQL(lSQL); + if (pol.RecordCount>0) and (mnozOdv>0) then + begin + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + + podm:= 'Obdobi=' + idObd + ' AND DruhPohybuZbo=' + drVydej + ' AND RadaDokladu=N' + QuotedStr(rDoklVydMat); + podm:= podm + ' AND IDSklad=N' + QuotedStr(stredVPr); + iPC:= NajdiPrvniVolny(Helios,tblDZ,'PoradoveCislo',drVydej,rDoklVydMat,idObd,podm); + + lSQL:= 'DECLARE @i INT' + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @i OUT,@sklad=N' + QuotedStr(stredVPr); + lSQL:= lSQL + ',@DruhPohybu=' + drVydej + ',@RadaDokladu=N' + QuotedStr(rDoklVydMat) + ',@CisloOrg=' + cOrg + ',@Mena=N'; + lSQL:= lSQL + QuotedStr('CZK') + ',@Insert=1' + CRLF + 'SELECT @i'; + idDZ:= 0; + try + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uložit hlavičku Výdejky materiálu.'#1); + end; + if (idDZ>0) then + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + IntToStr(idDZ)); + pol.First; + while not(pol.EOF) do + begin + idSS:= ''; + idKZ:= StrToInt(VarToStr(pol.FieldValues(0))); + dokl:= VarToStr(pol.FieldValues(2)); + idPrKVaz:= StrToInt(VarToStr(pol.FieldValues(3))); + mnReal:= StrToFloat(VarToStr(pol.FieldValues(4))); + mnoz:= 0; + + lSQL:= 'SELECT mnozstvi FROM ' + tblKVaz + ' WHERE nizsi=' + IntToStr(idKZ) + ' AND vyssi=' + IntToStr(idKZPr); + with Helios.OpenSQL(lSQL) do + begin + mnoz:= StrToFloat(VarToStr(FieldValues(0))); + mnoz:= RoundToEx(mnoz*mnozOdv,-3); + mnReal:= mnReal + mnoz; + end; + + if (idKZ>0) then + begin + lSQL:= 'SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + IntToStr(idKZ) + ' AND IDSklad=N' + QuotedStr(stredVPr); + with Helios.OpenSQL(lSQL) do + if RecordCount=0 then + begin + lSQL:= 'INSERT ' + tblSS + ' (IDSklad,IdKmenZbozi) VALUES (N' + QuotedStr(stredVPr) + ',' + IntToStr(idKZ) + ')'; + lSQL:= lSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(lSQL) do + idSS:= VarToStr(FieldValues(0)); + end + else + idSS:= VarToStr(FieldValues(0)); + end; + lSQL:= 'DECLARE @i INT'; + lSQL:= lSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @i OUT,@IDDoklad=' + IntToStr(idDZ); + lSQL:= lSQL + ',@DruhPohybu=' + drVydej + ',@CisloOrg=' + cOrg + ',@IDZboSklad=' + idSS + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@JednotkaMeny=1,@Kurz=1'; + lSQL:= lSQL + ',@VstupniCena=0,@JCbezDaniKC=0.1,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0'; + lSQL:= lSQL + ',@Selectem=0,@Mnozstvi=' + StringReplace(FloatToStr(mnoz),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@DatPorizeni=NULL,@PovolitDuplicitu=1' + CRLF + 'SELECT @i'; + idPZ:= 0; + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idPZ:= StrToInt(VarToStr(FieldValues(0))); + if (idPZ>0) then + try + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET DokladPrikazu=' + dokl + ',TypVyrobnihoDokladu=1, IDPrikaz=' + IntToStr(idVPr) + ' WHERE id=' + IntToStr(idPZ)); + try + Helios.ExecSQL('INSERT ' + tblMzdZmGenPZ + ' (IDMzdy,TypGen,IDPohybu) VALUES (' + IntToStr(idEvidKoop) + ',0,' + IntToStr(idPZ) + ')'); + except + end; +{ + lSQL:= 'UPDATE ' + tblPrVaz + ' SET '; + lSQL:= lSQL + 'Mnoz_skut_realizovane=' + StringReplace(FloatToStr(mnReal),',','.',[rfReplaceAll]); + lSQL:= lSQL + 'Mnoz_odv=' + StringReplace(FloatToStr(mnReal),',','.',[rfReplaceAll]); + lSQL:= lSQL + ' WHERE id=' + IntToStr(idPrKVaz); + Helios.ExecSQL(lSQL); +} + except on E:Exception do + Helios.Error(#1'Nelze uložit položku výdejky.'#1 + CRLF + E.Message + errPlg); + end + else + Helios.Error(#1'Nelze uložit položku výdejky.'#1 + CRLF + lSQL + errPlg); + pol.Next; + end; + + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null,IDPrikaz=' + IntToStr(idVPr) + ' WHERE id=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); + try + lSQL:= 'DECLARE @BylaChyba BIT' + CRLF + 'EXEC dbo.hp_Realizuj_Vydej ' + IntToStr(idDZ) + ',NULL,' + IntToStr(Helios.UserId); + lSQL:= lSQL + ',0,@BylaChyba OUT' + CRLF + 'SELECT @BylaChyba'; + Helios.OpenSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Nelze realizovat výdejku.'#1 + CRLF + E.Message + errPlg); + end; + Helios.Info('Hotovo - nová výdejka na skladě ' + stredVPr + ', č.' + rDoklVydMat + ' : ' + IntToStr(iPC)); + end; + end + else + Helios.Error(#1'Skladu není přiřazena organizace.'#1 + errPlg); + end + else + Helios.Error(#1'Skladu není přiřazena organizace.'#1 + errPlg); + end + else + Helios.Error(#1'Kmenové středisko Výrobního příkazu nemá určen sklad materiálu.'#1); + end + else + Helios.Error(#1'Na Výrobním příkazu není určeno Kmenové středisko.'#1 + errPlg); + end + else + Helios.Error(#1'Operace není Kooperační, resp. nebyl identifikován Výrobní příkaz.'#1 + errPlg); + end; + + + + + procedure TplgLOVATO.OdpovedPPL (const Helios: IHelios); + begin + end; + + + + + procedure TplgLOVATO.ImportNesplObj (const Helios: IHelios); + var idx: integer; + cObj, rc, sTmp, idDZ, idSS, idKZ, idPZ: string; + xls: TXLSReadWriteII5; + fs: TFileStream; + wSheet: TXLSWorksheet; + dat1, dat2: TDate; + poz: integer; + Mnoz, JCena, kurz: Extended; + sql: string; + begin + sql:= 'IF OBJECT_ID(N''tempdb..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT NULL, Poznamka NVARCHAR(255) NOT NULL )'; + Helios.ExecSQL(sql); + if OtevriSouborXLS(fName,'') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + wSheet:= xls.Add; + if (wSheet.AsString[0,0]<>'CISOBJ') or (wSheet.AsString[7,0]<>'ZBYVYR') then + raise Exception.Create('Soubor s nesplněnými objednávkami není v požadovaném formátu.') + else + if (wSheet.LastRow>0) then + begin + Helios.ExecSQL('DECLARE @max INT' + CRLF + 'SELECT @max=MAX(id) FROM ' + tblDZ + CRLF + 'DBCC CHECKIDENT(TabDokladyZbozi,reseed,@max)'); + Helios.ExecSQL('DECLARE @max INT' + CRLF + 'SELECT @max=MAX(id) FROM ' + tblPZ + CRLF + 'DBCC CHECKIDENT(TabPohybyZbozi,reseed,@max)'); + sql:= 'DECLARE @i INT' + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @i OUT,@sklad=N' + QuotedStr(Helios.Sklad); + sql:= sql + ',@DruhPohybu=9,@RadaDokladu=N' + QuotedStr(rImpNesplObj) + ',@CisloOrg=1,@Mena=N'; + sql:= sql + QuotedStr('EUR') + ',@Insert=1' + CRLF + 'SELECT @i'; + idDZ:= ''; + with Helios.OpenSQL(sql) do + idDZ:= VarToStr(FieldValues(0)); + if (idDZ<>'') then + begin + with Helios.OpenSQL('SELECT Kurz FROM ' + tblDZ + ' WHERE id=' + idDZ) do + kurz:= StrToFloat(VarToStr(FieldValues(0))); + + idx:= 1; + cObj:= Trim(wSheet.AsString[0, idx]); + while (cObj<>'') do + begin + poz:= wSheet.AsInteger[1, idx]; + rc:= wSheet.AsString[3, idx]; + rc:= StringReplace(rc,' ','',[rfReplaceAll]); + rc:= StringReplace(rc,'.','',[rfReplaceAll]); + rc:= StringReplace(rc,'/','',[rfReplaceAll]); + + sTmp:= wSheet.AsString[2, idx]; + if Pos(' ',sTmp)>0 then + begin + sTmp:= StringReplace(sTmp,' ','',[rfReplaceAll]); + sTmp:= StringReplace(sTmp,'i','',[rfReplaceAll]); + dat1:= StrToDate(sTmp); // datum objednavky + end + else + dat1:= wSheet.AsDateTime[2, idx]; // datum objednavky + + dat2:= wSheet.AsDateTime[8, idx]; // pozadovane datum + + mnoz:= wSheet.AsFloat[7, idx]; + JCena:= wSheet.AsFloat[10, idx]; + + idSS:= ''; + idKZ:= ''; + sql:= 'SELECT ss.id,kz.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IDKmenZbozi=kz.id)'; + sql:= sql + ' WHERE ss.IDSklad=N' + QuotedStr(Helios.Sklad) + ' AND kz.RegCis=N' + QuotedStr(rc) + ' AND kz.SkupZbo LIKE N''V%'''; + with Helios.OpenSQL(sql) do + begin + idSS:= VarToStr(FieldValues(0)); + idKZ:= VarToStr(FieldValues(1)); + end; + idPZ:= ''; + if idSS<>'' then + begin + sql:= 'DECLARE @i INT, @d DATETIME' + CRLF + 'SET @d=CONVERT(datetime,' + QuotedStr(DateToStr(dat1)) + ',104)'; + sql:= sql + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @i OUT,@IDDoklad=' + idDZ; + sql:= sql + ',@DruhPohybu=9,@CisloOrg=1,@IDZboSklad=' + idSS + ',@Mena=N' + QuotedStr('EUR'); + sql:= sql + ',@JednotkaMeny=1,@Kurz=' + StringReplace(FloatToStr(kurz),',','.',[rfReplaceAll]); + sql:= sql + ',@VstupniCena=4,@JCbezDaniKC=0,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=1'; + sql:= sql + ',@Selectem=0,@Mnozstvi=' + StringReplace(FloatToStr(mnoz),',','.',[rfReplaceAll]); + sql:= sql + ',@DatPorizeni=@d,@PovolitDuplicitu=1' + CRLF + 'SELECT @i'; + with Helios.OpenSQL(sql) do + idPZ:= VarToStr(FieldValues(0)); + if idPZ<>'' then + begin + sql:= 'UPDATE ' + tblPZ + ' SET JCbezDaniKc=' + StringReplace(FloatToStr(JCena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniKcPoS=' + StringReplace(FloatToStr(JCena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniKc=' + StringReplace(FloatToStr(mnoz*JCena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniValPoS=' + StringReplace(FloatToStr(JCena),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniVal=' + StringReplace(FloatToStr(JCena),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniVal=' + StringReplace(FloatToStr(mnoz*JCena),',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + idPZ + CRLF; + sql:= sql + 'UPDATE ' + tblPZ + ' SET PozadDatDod=CONVERT(datetime,' + QuotedStr(DateToStr(dat2)) + ',104)'; + sql:= sql + ',NazevSozNa1=N' + QuotedStr(cObj) + ',NazevSozNa2=N'; + sql:= sql + QuotedStr(StringOfChar('0', 4-Length(IntToStr(poz))) + IntToStr(poz)); + sql:= sql + ' WHERE id=' + idPZ; + Helios.ExecSQL(sql); + end; + end + else + UlozChybu(Helios,'Nenalezena skladová karta: ' + rc,nil); + Inc(idx); + cObj:= Trim(wSheet.AsString[0, idx]); + end; + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idDZ); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idDZ + ',@AktualizaceSlev=1'); + Helios.Refresh(true); + try + with Helios.OpenSQL('SELECT Poznamka FROM #TabExtKom') do + if RecordCount>0 then + Helios.OpenBrowse(541,''); + finally + end; + end; + end; + finally + fs.Free; + end; + end; + end; + +{ +// generuj kooperacni objednavku + procedure TplgLOVATO.GenerujKoopObjednavku(const Helios: IHelios; idVP: Integer); + var pp: IHeQuery; + sql: WideString; + idKoopObj,idOrg,idZam: integer; + cVPrik,radaKoop,cKoopObj,termOdesli: ShortString; + dat1: TDateTime; + begin + cVPrik:= ''; + dat1:= Now; + with Helios.OpenSQL('SELECT RadaPrikaz,CONVERT(datetime,Plan_zadani,104) FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idVP)) do + if RecordCount>0 then + begin + cVPrik:= VarToStr(FieldValues(0)); + dat1:= StrToDateTime(VarToStr(FieldValues(1))); + end; + radaKoop:= '101'; + idOrg:= 0; + idZam:= 0; + + pp:= Helios.OpenSQL('SELECT * FROM ' + tblPrPost + ' WHERE idPrikaz=' + IntToStr(idVP)); + if pp.RecordCount>0 then + begin + cKoopObj:= '1'; + sql:= 'SELECT MAX(Cislo)+1 FROM ' + tblKoopObj + ' WHERE Rada=N' + QuotedStr(radaKoop); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + cKoopObj:= VarToStr(FieldValues(0)); + cKoopObj:= StringOfChar('0',6-Length(cKoopObj)) + cKoopObj; // zadat na 6 cislic + + sql:= 'INSERT INTO dbo.TabKoopObj (Rada,Cislo,IDOrganizace,IDZamestnance,TerminOdeslani,PozadTerDod) '; + sql:= sql + 'VALUES (N' + QuotedStr(radaKoop) + ',' + cKoopObj + ',' + IntToStr(idOrg) + ',' + IntToStr(idZam) + ','; + sql:= sql + 'CONVERT(datetime,' + QuotedStr(DateTimeToStr(dat1)) + ',104),'; + sql:= sql + 'CONVERT(datetime,' + QuotedStr(DateTimeToStr(dat1)) + ',104) )' + CRLF; + sql:= sql + 'SELECT SCOPE_IDENTITY()'; + idKoopObj:= 0; + with Helios.OpenSQL(sql) do + idKoopObj:= StrToInt(VarToStr(FieldValues(0))); + + if idKoopObj>0 then + begin + pp.First; + while not(pp.EOF) do + begin + pp.Next; + end; + end + else + Helios.Error(#1'Nepodařilo se uložit Kooperační objednávku' + CRLF + 'pro výrobní příkaz: ' + cVPrik + #1); + end; + end; +} + + + +// import polozek objednavky z IT (pokud je v vlastTbl<>'' pak import do jiz existujiciho dokladu + procedure TplgLOVATO.ImportEP (const Helios: IHelios; const idDZx: integer; ExpP: boolean); + var sql, fName, errMsg: string; + testOK, kontrolaCen: Boolean; + tStr, rCeniky, cObj, regCis, wCond, cisDZ, skladEP, cOrg, mena, boxik, hmotJg: string; + idSS, jCenaSS, sazba, mj, descript, cenik: string; + pozice: integer; + qty, cena, per, kurz, ccena: Extended; + datum: TDateTime; + iLoop, iSheet, iX, iY, iPos: integer; + pol, obj: IHeQuery; + idDZ, idDZShift, idPZ, idKZ, cDokl, idUmist: Integer; + pocRadek, idCen, idPolCen, maxRegCis: integer; + sCen: string; + rDokl: string[3]; + tmpTab, szPodm: string; + chybka,newKarta: boolean; + xls: TXLSReadWriteII5; + wSheet1, wSheet2: TXLSWorkSheet; + begin + sql:= 'IF OBJECT_ID(N''tempDB..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT NULL, Poznamka NVARCHAR(255) NOT NULL )'; + Helios.ExecSQL(sql); + + chybka:= false; + + if (idDZx>0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE Realizovano=1 AND id=' + IntToStr(idDZx)) do + if (RecordCount>0) then + begin + raise Exception.Create('Položky nelze vložit do REALIZOVANÉHO dokladu.'); + chybka:= true; + end; + + cOrg:= '0'; + if not VarIsNull(Helios.QueryEdit.FieldByNameValues('CisloOrg')) then + cOrg:= VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg')); + + idCen:= 0; + sCen:= ''; + kontrolaCen:= false; + sql:= 'SELECT coe.id FROM ' + tblCOrgE + ' coe INNER JOIN ' + tblCOrg + ' co ON (coe.id=co.id) WHERE'; + sql:= sql + ' coe._KontrolaCenPrijem=1 AND co.CisloOrg=' + cOrg; + + with Helios.OpenSQL(sql) do + if (RecordCount>0) then // pri prijmu kontrolovat cenu podle ceniku (Nabidkove sestavy) + begin + + // hleda pokud k dane firme existuje Nabidkova sestava v rade "Ceniky pro kontrolu" pro dany rok podle DatPorizeni + // pokud existuje vic Nabidek, bere prvni se razenim podle DatPorizeni DESC + datum:= Now; + if not VarIsNull(Helios.QueryEdit.FieldByNameValues('DatPorizeni')) then + datum:= StrToDateTime(VarToStr(Helios.QueryEdit.FieldByNameValues('DatPorizeni'))); + + if (ExpP) then + begin + if (Helios.Sklad='200') then + rCeniky:= '210' + else + begin + sql:= 'DruhPohybuZbo=11'; + if Helios.Prenos(bidDDZ, 'RadaDokladu', oVar1, sql, 'Řada ceníku podle které bude provedena kontrola ceny', true) then + rCeniky:= VarToStr(oVar1) + else + rCeniky:= '210'; + end; + sql:= 'SELECT TOP(1) id, ParovaciZnak FROM ' + tblDZ + ' WHERE DruhPohybuZbo=11 AND NabidkaCenik=1 AND RadaDokladu=N'; + sql:= sql + QuotedStr(rCeniky) + ' AND CisloOrg=' + cOrg + ' AND GETDATE() BETWEEN ISNULL(Splatnost, CONVERT(datetime,N'; + sql:= sql + QuotedStr('1.1.2015') + ',104)) AND ISNULL(DatUhrady, CONVERT(datetime,N' + QuotedStr('31.12.2050') + ',104)) ORDER BY DatPorizeni DESC'; + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + idCen:= StrToInt(VarToStr(FieldValues(0))); + tStr:= VarToStr(FieldValues(1)); + sCen:= tStr; // rCeniky + StringOfChar('0',6 - Length(tStr)) + tStr; + kontrolaCen:= true; + end; +{ + tStr:= ''; + if not VarIsNull(Helios.QueryEdit.FieldByNameValues('Nabidka')) then + tStr:= VarToStr(Helios.QueryEdit.FieldByNameValues('Nabidka')); + if (tStr<>'') then + with Helios.OpenSQL('SELECT ParovaciZnak FROM ' + tblDZ + ' WHERE id=' + tStr) do + if RecordCount>0 then + tStr:= VarToStr(FieldValues(0)); + + if (sCen<>tStr) and (idCen>0) then + begin + raise Exception.Create('Není zadán Ceník, podle kterého se mají kontrolovat ceny.'); + chybka:= true; + end; +} + end; + end; + end; + + if chybka then + Exit; + + chybka:= false; + tmpTab:= ''; + if ExpP then + tmpTab:= '[dbo].[_TabImportEP]' + else + tmpTab:= '[dbo].[_TabImportPckLst]'; +// tmpTab:= '#' + tmpTab; + + cOrg:= orgLovatoIT; + mena:= orgLovatoITmena; + if (idDZx>0) then + begin + cOrg:= VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg')); + if (cOrg='') then + cOrg:= orgLovatoIT; + mena:= VarToStr(Helios.QueryEdit.FieldByNameValues('Mena')); + if (mena='') then + mena:= orgLovatoITmena; + rDokl:= VarToStr(Helios.QueryEdit.FieldByNameValues('RadaDokladu')); +{ + with Helios.OpenSQL('SELECT Mena,CisloOrg,RadaDokladu FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZx)) do + if RecordCount>0 then + begin + mena:= VarToStr(FieldValues(0)); + cOrg:= VarToStr(FieldValues(1)); + rDokl:= VarToStr(FieldValues(2)); + end; +} + end; + + skladEP:= Helios.Sklad; + + if OtevriSouborXLS(fName,'') then + begin + Screen.Cursor:= crHourGlass; + xls:= TXLSReadWriteII5.Create(nil); + try + xls.Filename:= fName; + xls.Read; + if ExpP then + begin + if (xls.Count<>1) then + begin + Helios.Error('Soubor s objednávkou ORDER má mít jen 1 list !'); + xls.Free; + Exit; + end; + end + else + begin + if (xls.Count<>2) then + begin + Helios.Error('Soubor s dodávkou PACKING LIST má mít 2 listy !'); + xls.Free; + Exit; + end; + end; + + testOK:= true; + if ExpP then + begin // format pro objednavku (order) + iSheet:= 0; + wSheet1:= xls.Sheets[0]; + tStr:= LowerCase(wSheet1.AsString[0,0]); + if (Pos('purchase',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[2,0]); + if (Pos('code',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[4,0]); + if (Pos('quantity',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[5,0]); + if (Pos('price',tStr)=0) then + testOK:= false + end + else + begin // format pro prijemku materialu (Packinglist) + iSheet:= 1; + wSheet1:= xls.Sheets[1]; + wSheet2:= xls.Sheets[0]; +// iSheet:= xls.Sheets.Count-1; + tStr:= LowerCase(wSheet1.AsString[0,6]); + if (Pos('codice',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[5,6]); + if (Pos('nr',tStr)=0) then + testOK:= false; + tStr:= LowerCase(wSheet1.AsString[7,6]); + if (Pos('totale',tStr)=0) then + testOK:= false; + end; + + if testOK then + begin + pocRadek:= 0; + if ExpP then + begin + if not(VarIsNull(wSheet1.AsVariant[0, 1+pocRadek])) then + sql:= wSheet1.AsString[0, 1+pocRadek] + else + sql:= '' + end + else + begin + if not(VarIsNull(wSheet1.AsVariant[0, 7+pocRadek])) then + sql:= wSheet1.AsString[0, 7+pocRadek] + else + sql:= ''; + end; + while (sql<>'') do + begin + Inc(pocRadek); + if ExpP then + begin + if not(VarIsNull(wSheet1.AsVariant[0, 1+pocRadek])) then + sql:= wSheet1.AsString[0, 1+pocRadek] + else + sql:= '' + end + else + begin + if not(VarIsNull(wSheet1.AsVariant[0, 7+pocRadek])) then + sql:= wSheet1.AsString[0, 7+pocRadek] + else + sql:= ''; + end; + end; + + if (pocRadek>0) then + begin + if (idDZx=0) then + begin + sql:= 'DruhPohybuZbo=9'; + if not(ExpP) then + sql:= 'DruhPohybuZbo=0'; +// iSheet + if Helios.Prenos(bidDDZ,'RadaDokladu',oVar1,sql,'Vyberte řadu do které bude vystaven doklad',true) then + rDokl:= VarToStr(oVar1) + else + begin + if Helios.YesNo('Nebyla vybrána řada dokladů. Chcete ukončit import ?',false) then + begin + xls.Free; + Exit; + end; + end; + end; + + maxRegCis:= 15; + with Helios.OpenSQL('SELECT TOP(1) DelkaRegCislaZbozi FROM dbo.TabHGlob') do + if (RecordCount>0) then + maxRegCis:= StrToInt(VarToStr(FieldValues(0))); +// sql:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..' + tmpTab) + ',' + QuotedStr('U') + ') IS NOT NULL '; + sql:= 'IF OBJECT_ID(N' + QuotedStr(tmpTab) + ',' + QuotedStr('U') + ') IS NOT NULL '; + sql:= sql + 'DROP TABLE ' + tmpTab + CRLF + 'CREATE TABLE ' + tmpTab + '('; + sql:= sql + 'cObj NVARCHAR(12), pozice INT, regCis NVARCHAR(' + IntToStr(maxRegCis) + ') NOT NULL,'; + sql:= sql + 'mnozstvi NUMERIC(19,6) NOT NULL, cena NUMERIC(19,6), per NUMERIC(19,6),'; + sql:= sql + 'datDod DATETIME, popis NVARCHAR(100), boxik NVARCHAR(50), hmotJg NUMERIC(10,2) DEFAULT 0.0)'; + Helios.ExecSQL(sql); + + tStr:= ''; +// import polozek z XLS do pomocne tabulky + for iLoop:=1 to pocRadek do + begin + regCis:= ''; + qty:= 0; + boxik:= ''; + if ExpP then // je to objednavka z IT ? + begin // ano + cObj:= Trim(wSheet1.AsString[0, iLoop]); + Pozice:= wSheet1.AsInteger[1, iLoop]; + regCis:= UpperCase(Trim(wSheet1.AsString[2, iLoop])); + descript:= wSheet1.AsString[3, iLoop]; + qty:= wSheet1.AsFloat[4, iLoop]; + cena:= wSheet1.AsFloat[5, iLoop]; + per:= wSheet1.AsFloat[6, iLoop]; + datum:= wSheet1.AsDateTime[7, iLoop]; + hmotJg:= '0'; + end + else + begin // ne, je to Packinglist (prijemka) + qty:= 0; + try + if (VarIsNull(wSheet1.AsVariant[5, iLoop+6])) then + Break; + + if not(VarIsNull(wSheet1.AsVariant[5, iLoop+6])) then + qty:= wSheet1.AsFloat[5, iLoop+6]; + except + end; + if (qty>0) then + begin + cObj:= Trim(wSheet1.AsString[1, iLoop+6]); // celni nomenklatura + pozice:= 0; + regCis:= Trim(wSheet1.AsString[0, iLoop+6]); + + if not(VarIsNull(wSheet1.AsVariant[4, iLoop])) then + begin + iX:= 0; +// nahrazuje VLOOKUP (SVYHLEDAT) - kouka na odkaz do 1.listu + sql:= wSheet2.AsString[0, iX]; + while (sql<>'') do + begin + if (sql=regCis) then + begin + if not(VarIsNull(wSheet2.AsVariant[1, iX])) then + boxik:= wSheet2.AsString[1, iX] + else + boxik:= ''; + Break; + end; + Inc(iX); + if not(VarIsNull(wSheet2.AsVariant[0, iX])) then + sql:= wSheet2.AsString[0, iX] + else + sql:= ''; + end; + end; + + if not(VarIsNull(wSheet1.AsVariant[4, iLoop+6])) then + boxik:= wSheet1.AsString[4, iLoop+6]; + if not(VarIsNull(wSheet1.AsVariant[3, iLoop+6])) then + descript:= wSheet1.AsString[3, iLoop+6]; + per:= 1; + if (VarIsNull(wSheet1.AsVariant[6, iLoop+6])) then + begin + UlozChybu(Helios, 'Nelze uložit položku z XLS: obj.č. ' + regCis + ' (' + FloatToStr(qty) + ' ks, ' + DateToStr(datum) + ') - není zadána vstupní cena.', nil); + qty:= 0; + end + else + cena:= wSheet1.AsFloat[6, iLoop+6]; + hmotJg:= '0'; + if not(VarIsNull(wSheet1.AsVariant[8, iLoop+6])) then + hmotJg:= wSheet1.AsString[8, iLoop+6]; + hmotJg:= StringReplace(hmotJg,' ','',[rfReplaceAll]); + + datum:= Now; + end; + end; + if (qty<>0) then + begin + sql:= 'INSERT ' + tmpTab + ' (cObj, Pozice, regCis, mnozstvi, cena, per, datDod, popis, boxik, hmotJg)'; + sql:= sql + ' SELECT N' + QuotedStr(cObj) + ',' + IntToStr(pozice); + sql:= sql + ',N' + QuotedStr(regCis) + ',' + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]); + sql:= sql + ',' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ','; + sql:= sql + StringReplace(FloatToStr(per),',','.',[rfReplaceAll]); + sql:= sql + ',CONVERT(datetime,' + QuotedStr(DateToStr(datum)) + ',104),'; + sql:= sql + 'N' + QuotedStr(descript) + ',N' + QuotedStr(boxik) + ', ' + StringReplace(hmotJg,',','.',[rfReplaceAll]); + try + if (sql<>'') then + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios, 'Nelze uložit požadavek XLS: obj.č. ' + regCis + ' (' + FloatToStr(qty) + ', ' + DateToStr(datum) + ')', E); + end; + end; + end; + xls.Free; + end + end + else // test OK + begin + Helios.Error(#1'Importovaný soubor není v definovaném formátu.'#1); + Exit; + end; + + except on E:Exception do + begin + xls.Free; + Helios.Error(#1'Chyba při importu XLS souboru (ExpP/Pckg): '#1 + E.Message + CRLF + errMsg); + Exit; + end; + end; + + + sql:= 'IF OBJECT_ID(N''dbo.ep_HDC_PZ_ImportEP'', ''P'') IS NOT NULL EXEC dbo.ep_HDC_PZ_ImportEP @IDDoklad=' + IfThen(idDZx>0, idDZx.ToString, 'NULL') + + ', @jeExpPr=' + IfThen(ExpP, '1', '0') + ', @radaDokl=N' + IfThen(rDokl='', 'ULL', QuotedStr(rDokl)) + ', @idDokladCenik=' + idCen.ToString; + try + try + Helios.ExecSQL (sql); + except + end; + finally + end; + + + + +// pro PL (dodaci list) najdi neexistujici polozky, pripadne je zaloz + if not(ExpP) then + begin + + sql:= 'SELECT LTRIM(RTRIM(regCis)), popis, cObj FROM ' + tmpTab + ' WHERE LTRIM(RTRIM(regCis)) NOT IN (SELECT LTRIM(RTRIM(RegCis)) FROM ' + tblKZ; + sql:= sql + ' WHERE SkupZbo=N' + QuotedStr('MAT') + ')'; + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + sql:= 'INSERT ' + tblKZ + ' (SkupZbo,RegCis,Nazev2,DruhSkladu,MJEvidence,CelniNomenklatura) VALUES (N' + QuotedStr('MAT'); + sql:= sql + ',N' + QuotedStr(LeftStr(VarToStr(FieldValues(0)),maxRegCis)) + ',N'; + sql:= sql + QuotedStr(LeftStr(VarToStr(FieldValues(1)),100)) + ',1,N' + QuotedStr('ks'); + sql:= sql + ',N' + QuotedStr(VarToStr(FieldValues(2))) + ')'; + sql:= sql + CRLF + 'INSERT #TabExtKom (Poznamka) SELECT N'; + sql:= sql + QuotedStr('Založena nová karta: MAT ' + VarToStr(FieldValues(0))); + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze založit novou kartu: MAT ' + VarToStr(FieldValues(0)),E); + end; + Next; + end; + end; + end; + +// konec importu XLS do pomocne tabulky + +// test karta je pro vyrobu + sql:= 'SELECT RegCis,Popis FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + if expP = false then + sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0) AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')' + else + sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0 OR sz.SkupZbo not LIKE N' + QuotedStr('V%') + ') AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')'; // upraveno + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + pol.First; + while not(pol.EOF) do + begin + regCis:= VarToStr(pol.FieldValues(0)); + tStr:= VarToStr(pol.FieldValues(1)); + UlozChybu(Helios,'Karta nepatří výrobě nebo je blokována, nebyla importována: ' + regCis + ' - ' + tStr ,nil); + pol.Next; + end; + end; + +// test karta existuje + sql:= 'SELECT RegCis,Popis FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + if expP = false then sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0) AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')' + else sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=0 OR kz.Blokovano=0 OR sz.SkupZbo not LIKE N' + QuotedStr('V%') + ') AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tblKZ + ')'; // upraveno + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + pol.First; + while not(pol.EOF) do + begin + regCis:= VarToStr(pol.FieldValues(0)); + tStr:= VarToStr(pol.FieldValues(1)); + UlozChybu(Helios,'Karta nepatří výrobě nebo je blokována, nebyla importována: ' + regCis + ' - ' + tStr ,nil); + pol.Next; + end; + end; + +// test v PackingListu karta je material + if not(ExpP) then + begin + sql:= 'SELECT RegCis,Popis,Mnozstvi FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=1 AND kz.SkupZbo<>N' + QuotedStr(szNovyImportMat) + ')'; + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + pol.First; + while not(pol.EOF) do + begin + regCis:= VarToStr(pol.FieldValues(0)); + tStr:= VarToStr(pol.FieldValues(1)); + tStr:= tStr + ' (množ. ' + VarToStr(pol.FieldValues(2)) + ' )'; + UlozChybu(Helios,'Pozor, karta nebyla importována, není materiál (skupina MAT): ' + regCis + ' - ' + tStr ,nil); + pol.Next; + end; + end; + end; + +// kontrola na existenci karet + sql:= 'SELECT RegCis, Popis FROM ' + tmpTab + ' WHERE UPPER(RegCis) NOT IN (SELECT UPPER(kz.RegCis) FROM ' + tblKZ + ' kz'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze'; + //sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=1)'; + sql:= sql + ' ON (sz.id=sze.id) WHERE sze._JeVyroba=1 '; // upraveno 7.9.2018 + // if ExpP = true then sql := sql + ' AND _JeProImportObjednavkyZItalie = 1'; // přidáno 7.9.2018 + if ExpP = true then sql := sql + ' AND sz.SkupZbo LIKE N' + QuotedStr('V%'); // přidáno 7.9.2018 verze skupina na V + sql := sql + ')'; // přidáno 7.9.2018 + //Helios.Info(sql); + pol:= Helios.OpenSQL(sql); + //helios.Info((pol.RecordCount.ToString)); + if (pol.RecordCount>0) then + begin + sql:= ''; + pol.First; + while not(pol.EOF) do + begin + newKarta:= false; + regCis:= VarToStr(pol.FieldValues(0)); + sql:= 'SELECT id FROM ' + tblKZ + ' WHERE UPPER(SkupZbo)=N'; + if ExpP then + tStr:= szNovyImportExpP + else + tStr:= 'MAT'; + sql:= sql + QuotedStr(tStr); + sql:= sql + ' AND UPPER(RegCis)=N' + QuotedStr(regCis); + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + begin + sql:= 'INSERT ' + tblKZ + ' (SkupZbo, RegCis, Nazev2, DruhSkladu, MJEvidence, Material, Dilec) VALUES (N' + QuotedStr(tStr); + sql:= sql + ',N' + QuotedStr(regCis) + ',N' + QuotedStr(VarToStr(pol.FieldValues(1))); + sql:= sql + ',1,N' + QuotedStr('ks') + ','; + if ExpP then + sql:= sql + '0,1' + else + sql:= sql + '1,0'; + sql:= sql + ')' + CRLF + 'SELECT SCOPE_IDENTITY()'; + // Helios.Info(sql + CRLF + tstr); + try + if (tStr<>szNovyImportExpP) and (tStr<>szNovyImportMat) then + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + tStr:= VarToStr(FieldValues(0)); + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET Blokovano=1 WHERE id=' + tStr); + UlozChybu(Helios,'Nová karta (bude blokovaná): ' + tStr + '-' + regCis ,nil); + newKarta:= true; + end; + except on E:Exception do + UlozChybu(Helios,'Nelze založit novou kartu ' + regCis + ' : SQL ' + sql, E); + end; + end; + pol.Next; + end; + end; + +{ + tStr:= ''; + sql:= 'SELECT RegCis FROM ' + tblKZ + ' WHERE Blokovano=1 AND SkupZbo=N' + QuotedStr('MAT'); + sql:= sql + ' AND UPPER(RegCis) IN (SELECT UPPER(RegCis) FROM ' + tmpTab + ')'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + UlozChybu(Helios,'Karta je označena jako ARCHIVNÍ a NEBUDE importována: ' + VarHodnota(FieldValues(0),''), nil);; + Next; + end; + end; +} + +// pokud je to DL, aktualizuj hmotnosti + if not(ExpP) then + begin + sql:= 'UPDATE kz SET kz.Hmotnost=ROUND((t.hmotJg/1000),6) FROM ' + tblKZ + ' kz INNER JOIN ' + tmpTab + ' t ON (t.regCis=kz.RegCis)'; + sql:= sql + ' INNER JOIN ' + tblSZ + ' sz ON (sz.SkupZbo=kz.SkupZbo) INNER JOIN ' + tblSZe; + sql:= sql + ' sze ON (sze.Id=sz.Id) WHERE sze._JeVyroba=1'; + Helios.ExecSQL(sql); + end; + + + sql:= 'SELECT * FROM ' + tmpTab; // + ' WHERE RegCis NOT IN (SELECT RegCis FROM ' + tblKZ + ' WHERE Blokovano=1)'; +// sql:= sql + ' AND cObj=N' + QuotedStr(cObj); + sql:= sql + ' ORDER BY pozice'; + pol:= Helios.OpenSQL(sql); + if (pol.RecordCount>0) then + begin + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + ReseedTable(Helios,tblSS); +// ReseedTable(Helios,tblNC); + ReseedTable(Helios,tblJC); + +{ + if idDZx=0 then + begin + idDZshift:= 0; // posunuti cisla brane z nastaveni TabDruhDokZboDef + sql:= 'SELECT dzd.PosledniPC FROM [dbo].[TabDruhDokZboDef] dzd INNER JOIN [dbo].[TabDruhDokZbo] dz'; + sql:= sql + ' ON (dz.ID=dzd.idDruhDZ) WHERE dzd.IdObdobi=' + IntToStr(aktObd); + sql:= sql + ' AND dz.DruhPohybuZbo=9 AND dz.RadaDokladu=N' + QuotedStr(rDokl); + + with Helios.OpenSQL(sql) do + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idDZshift) then + idDZshift:= 0; + + wCond:= 'Obdobi=' + IntToStr(aktObd) + ' AND IdSklad=N' + QuotedStr(skladEP); + wCond:= wCond + ' AND DruhPohybuZbo=9 AND RadaDokladu=N' + QuotedStr(rDokl); + sql:= 'EXEC dbo.hp_NajdiPrvniVolny N' + QuotedStr(tblDZ) + ',N' + QuotedStr('PoradoveCislo'); + sql:= sql + ',' + IntToStr(idDZshift) + ',99999999,N' + QuotedStr(wCond) + ',0,1'; + + idDZ:= 0; + with Helios.OpenSQL(sql) do + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idDZ) then + idDZ:= 0; + if (idDZ=0) or (idDZ=idDZshift) then + idDZ:= idDZshift + 1; + end; +} + cisDZ:= IntToStr(idDZ); + + mena:= UpperCase(mena); + if (idDZx=0) then + begin + sql:= 'DECLARE @Ident INT'+ CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N'; + sql:= sql + QuotedStr(skladEP)+',@DruhPohybu=9,@RadaDokladu=N' + QuotedStr(rDokl)+',@Insert=1,'; + sql:= sql + '@PC=null,@Mena=N' + QuotedStr(mena) + ',@CisloOrg='; +// sql:= sql + '@PC=' + cisDZ + ',@Mena=N' + QuotedStr(mena) + ',@CisloOrg='; + sql:= sql + cOrg + ',@DatumPorizeni=NULL' + CRLF + 'SELECT @Ident'; + + idDZ:= 0; + try + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + if not VarIsNull(FieldValues(0)) then + idDZ:= StrToInt(VarToStr(FieldValues(0))); // zjisti ID vytvorene prijemky + except on E:Exception + do Helios.Error(#1'Nelze uložit hlavičku Exp.příkazu (objednávky) !'#1 + CRLF + E.Message + CRLF + sql); + end; + end + else + begin + idDZ:= idDZx; + cisDZ:= IntToStr(idDZ); + end; +// pokud je vytvorena hlavicka dokladu + if (idDZ>0) then + begin +// zmen pripadnou vstupni cenu + kurz:= 1; + with Helios.OpenSQL('SELECT Kurz FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ)) do + kurz:= StrToFloat(VarToStr(FieldValues(0))); +{ + if (mena<>'CZK') then + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET VstupniCena=4 WHERE id=' + IntToStr(idDZ)); + +// uprav defaultni DPH na 0 (podle platnosti v danem obdobi) + sql:= 'SELECT d.Sazba FROM ' + tblDPHDef + ' def INNER JOIN ' + tblDPH + ' d ON (def.IdDPH=d.id AND d.Sazba=0)'; + sql:= sql + ' WHERE def.IdObdobi=' + IntToStR(aktObd) + ' AND Blokovano=0 AND Platnost=0'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + tStr:= VarToStr(FieldValues(0)); + if tStr='' then + tStr:= '0'; + sql:= 'UPDATE ' + tblDZ + ' SET SazbaDPH=' + StringReplace(tStr,',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + IntToStr(idDZ); + try + Helios.ExecSQL(sql); + except on E:Exception + do Helios.Error('U dokladu (ExpP) nelze změnit Sazbu DPH.'); + end; + end; +} + +// import polozek na doklad + pol.First; + while not(pol.EOF) do + begin + idKZ:= 0; + tStr:= ''; + boxik:= ''; + regCis:= VarToStr(pol.FieldByNameValues('regCis')); + sql:= 'SELECT kz.id, sz.SkupZbo, kz.RegCis, kz.Nazev1, kz.SKP, kz.MJEvidence, kz.SazbaDPHVstup, '; + sql:= sql + 'kz.CelniNomenklatura, kze._UmisteniVyroba, kze._UmisteniPrijem FROM ' + tblKZ + ' kz INNER JOIN '; + sql:= sql + tblSZ + ' sz ON (kz.SkupZbo=sz.SkupZbo) LEFT JOIN ' + tblSZe + ' sze ON (sz.id=sze.id)'; + sql:= sql + ' LEFT JOIN ' + tblKZe + ' kze ON (kz.id=kze.id)' ; + sql:= sql + ' WHERE kz.Blokovano=0 AND kz.RegCis=N' + QuotedStr(regCis) + ' AND sze._JeVyroba=1'; + // if (ExpP = True) then sql := sql + ' AND sze._JeProImportObjednavkyZItalie=1'; // přidáno 7.9.2018 + if (ExpP = True) then sql := sql + ' AND sz.SkupZbo LIKE N' + QuotedStr('V%'); // přidáno 7.9.2018 + + szPodm:= ' AND sz.SkupZbo NOT LIKE N' + QuotedStr('%00'); + with Helios.OpenSQL(sql + szPodm) do + if (RecordCount>0) then // regulerni karta + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + if (idKZ=0) then + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + // helios.Info((idkz).ToString); + if (idKZ>0) then + with Helios.OpenSQL(sql) do + begin +// test na existenci Kusovnikovych vazev a Technologickych postupu +{ + sql:= 'SELECT id FROM ' + tblKZ + ' WHERE Material=1 AND Id=' + IntToStr(idKZ) + ' UNION ALL '; + sql:= sql + 'SELECT id FROM ' + tblKVaz + ' WHERE vyssi=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + if (RecordCount>1) then + UlozChybu(Helios,'Pozor, karta je výrobek ale nemá definovaný kusovník (' + regCis + ')',nil); + + sql:= 'SELECT id FROM ' + tblKZ + ' WHERE Material=1 AND Id=' + IntToStr(idKZ) + ' UNION ALL '; + sql:= sql + 'SELECT id FROM ' + tblPostup + ' WHERE dilec=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + if (RecordCount>1) then + UlozChybu(Helios,'Pozor, karta je výrobek ale nemá definované tech.postupy (' + regCis + ')',nil); +} + + try + qty:= StrToFloat(VarToStr(pol.FieldByNameValues('mnozstvi'))); + except + qty:= 0; + end; + pozice:= StrToInt(VarToStr(pol.FieldByNameValues('pozice'))); + boxik:= VarToStr(pol.FieldByNameValues('boxik')); + descript:= VarToStr(pol.FieldByNameValues('popis')); + try + per:= StrToFloat(VarToStr(pol.FieldByNameValues('per'))); + except + per:= 1; + end; + if (per=0) then + per:= 1; + cena:= 0; + cena:= StrToFloat(VarToStr(pol.FieldByNameValues('cena'))); + cena:= RoundToEX(cena/per,-6); + if kontrolaCen then + begin + if (mena='CZK') or (mena='') then + sql:= 'SELECT pz.JCbezDaniKC' + else + sql:= 'SELECT pz.JCbezDaniVal'; + sql:= sql + ' FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS + ' ss ON (pz.IDZboSklad=ss.id)'; + sql:= sql + ' INNER JOIN ' + tblKZ + ' kz ON (ss.IDKmenZbozi=kz.id) WHERE ss.IDSklad=N'; + sql:= sql + QuotedStr(Helios.Sklad) + ' AND pz.IDDoklad=' + IntToStr(idCen) + ' AND kz.id=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + begin + if (RecordCount=0) then + begin + sql:= 'Položka nebyla v ceníku nalezena: ' + regCis; + if ExpP then + sql:= sql + ', pozice ' + IntToStr(pozice); + sql:= sql + ', množ. ' + FloatToStr(qty); + sql:= sql + ' (cena ' + FloatToStr(cena) + ')'; + UlozChybu(Helios, sql, nil); + end; + if (RecordCount>0) then + begin + ccena:= StrToFloat(VarToStr(FieldValues(0))); + ccena:= RoundToEX(ccena, -4); + cena:= RoundToEX(cena, -4); + if (ccena<>cena) then + begin + sql:= 'Rozdílná cena položky: ' + regCis; + if ExpP then + sql:= sql + ', pozice ' + IntToStr(pozice); + sql:= sql + ', množ. ' + FloatToStr(qty); + sql:= sql + ' (cena ' + FloatToStr(cena) + ' x ceník ' + FloatToStr(ccena) + ')'; + UlozChybu(Helios, sql, nil); + end; + end; + end; + end; + + datum:= StrToDate(VarToStr(pol.FieldByNameValues('datDod'))); + idUmist:= 0; + if not ExpP then + begin + tStr:= VarToStr(FieldValues(7)); // celni nomenklatura + cObj:= VarToStr(pol.FieldByNameValues('cObj')); // CN ze souboru + if newKarta then + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET CelniNomenklatura=N' + QuotedStr(LeftStr(cObj,8)) + ' WHERE id=' + IntToStr(idKZ)) + else + if (cObj<>tStr) then + begin + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET CelniNomenklatura=N' + QuotedStr(LeftStr(cObj,8)) + ' WHERE id=' + IntToStr(idKZ)); + UlozChybu(Helios,'Karta má odlišnou celní nomenklaturu: ' + regCis + ' (stará ' + tStr + ' x nová ' + cObj + ')', nil); + end; + end; + + sazba:= VarToStr(FieldValues(6)); + if (sazba='') then + sazba:= '0'; + mj:= VarToStr(FieldValues(5)); + + idSS:= ''; + jCenaSS:= '0'; +{ +// kontrola existence NC + sql:= 'SELECT '; + if mena<>'CZK' then + sql:= sql + 'CenaVal1' + else + sql:= sql + 'CenaKC'; + sql:= sql + ' FROM ' + tblNC + ' WHERE CenovaUroven=1 AND IdKmenZbozi=' + IntToStr(idKZ); + if mena<>'CZK' then + sql:= sql + ' AND UPPER(Mena1)=N' + QuotedStr(mena); + + Clipboard.AsText:= sql; + ShowMessage('SQL: ' + sql); + + with Helios.OpenSQL(sql) do + if RecordCount>0 then + jCenaSS:= VarToStr(FieldValues(0)); // nabidkova cena v dane mene +} + + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skladEP) + ' AND IDKmenZbozi=' + IntToStr(idKZ)) do + if (RecordCount>0) then + idSS:= VarToStr(FieldValues(0)); + if (idSS='') then + begin + sql:= 'INSERT ' + tblSS + ' (IDKmenZbozi,IDSklad) VALUES (' + IntToStr(idKZ) + ',N' + QuotedStr(skladEP) + ')'; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Chyba ins StavSkl pol: ' + regCis + ' : SQL ' + sql,E); + end; + with Helios.OpenSQL('SELECT SCOPE_IDENTITY()') do + if not VarIsNull(FieldValues(0)) then + idSS:= VarToStr(FieldValues(0)); + end; + if (idSS<>'') then + begin + sql:= 'SELECT id FROM ' + tblPZ + ' WHERE IdZboSklad=' + idSS + ' AND DruhPohybuZbo<5'; + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + UlozChybu(Helios,'Položka ' + regCis + ' nemá žádný minulý pohyb na skladě, zkontrolujte hmotnost/celní nomenklaturu...', nil); + + sql:= 'DECLARE @Ident INT' + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @Ident OUT,@IDDoklad='; + sql:= sql + IntToStr(idDZ) + ',@DruhPohybu='; + if ExpP then + sql:= sql + '9' + else + sql:= sql + '0'; + sql:= sql + ',@CisloOrg=' + cOrg + ',@IDZboSklad=' + idSS + ',@SazbaDPH=' + sazba + ',@Mnozstvi='; + sql:= sql + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]) + ',@MJ=N' + QuotedStr(mj) + ',@JCbezDaniKC='; + sql:= sql + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ',@DatPorizeni=NULL'; + if mena='CZK' then + sql:= sql + ',@VstupniCena=0,@Kurz=1' + else + sql:= sql + ',@VstupniCena=4,@Kurz=' + StringReplace(FloatToStr(kurz),',','.',[rfReplaceAll]); + sql:= sql + ',@PovolitDuplicitu=1,@SazbaSD=0,@ZakazanoDPH=0,@KurzEuro=0,@Mena=N' + QuotedStr(mena); + sql:= sql + ',@PovolitBlokovane=1,@JednotkaMeny=1,@Selectem=0' + CRLF + 'SELECT @Ident'; + idPZ:= 0; + try + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idPZ) then + idPZ:= 0; + except on E:Exception do + UlozChybu(Helios,'Nelze uložit položku do dokladu ! SQL ' + sql, E); + end; + if (idPZ>0) then + begin + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idPZ)); + sql:= ''; + + if (mena<>'CZK') then + begin + sql:= 'UPDATE ' + tblPZ + ' SET JCbezDaniKc=' + StringReplace(FloatToStr(cena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniKcPoS=' + StringReplace(FloatToStr(cena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniKc=' + StringReplace(FloatToStr(qty*cena*kurz),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniValPoS=' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniVal=' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]); + sql:= sql + ',CCbezDaniVal=' + StringReplace(FloatToStr(qty*cena),',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + IntToStr(idPZ) + CRLF; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze upravit cenu položky ExpPř !' + CRLF + sql, E); + end; + end; + + if (cena<>0) and not ExpP then + begin + sql:= 'DECLARE @idZ INT' + CRLF + 'SET @idZ=(SELECT TOP(1) id FROM dbo.TabCZmeny WHERE Rada=N' + QuotedStr('01') + ' AND datum<='; + sql:= sql + 'CONVERT(datetime,N' + QuotedStr(DateToStr(datum)) + ',104) ORDER BY datum DESC)' + CRLF; + sql:= sql + 'SELECT id,Cena FROM ' + tblKalkCe + ' WHERE ZmenaOd=@idZ AND IdKmenZbozi=' + IntToStr(idKZ); + with Helios.OpenSQL(sql) do + begin + if (RecordCount>0) then + begin +// if StrToFloat(VarToStr(FieldValues(1)))=0 then + try + Helios.ExecSQL('UPDATE ' + tblKalkCe + ' SET Cena=' + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ' WHERE id=' + VarToStr(FieldValues(0))); + except on E:Exception do + UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + sql, E); + end; + end + else + begin + sql:= 'DECLARE @idZ INT' + CRLF + 'SET @idZ=(SELECT TOP(1) id FROM ' + tblCZmen + ' WHERE Rada=N' + QuotedStr('01') + ' AND datum<='; + sql:= sql + 'CONVERT(datetime,N' + QuotedStr(DateToStr(datum)) + ',104) ORDER BY datum DESC)' + CRLF; + sql:= sql + 'IF @idZ IS NOT NULL INSERT ' + tblKalkCe + ' (IdKmenZbozi,ZmenaOd,Cena) VALUES (' + IntToStr(idKZ) + ',@idZ,'; + sql:= sql + StringReplace(FloatToStr(cena),',','.',[rfReplaceAll]) + ')'; + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze uložit kalkulační cenu ! SQL: ' + sql, E); + end; + end; + end; + end; + + sql:= 'UPDATE ' + tblPZ + ' SET '; + if ExpP then + begin // objednavka = ExpPr + mj:= IntToStr(pozice); + if (Length(mj)>4) then + mj:= ReverseString(LeftStr(ReverseString(mj),4)); + mj:= StringOfChar('0',4-Length(mj))+mj; + sql:= sql + 'NazevSozNa1=N' + QuotedStr(cObj); + sql:= sql + ',NazevSozNa2=N' + QuotedStr(mj) + ',NazevSozNa3=N' + QuotedStr(cObj+mj); + sql:= sql + ',PozadDatDod=CONVERT(datetime,' + QuotedStr(DateToStr(datum)) + ',104)'; + end + else + begin // packinglist = prijemka + tStr:= ''; + sql:= sql + 'NazevSozNa1=N' + QuotedStr(boxik); // descript + if not VarIsNull(FieldValues(8)) then // umisteni na vyrobu + tStr:= VarToStr(FieldValues(8)); + if (tStr='') then + if not VarIsNull(FieldValues(9)) then // umisteni + tStr:= VarToStr(FieldValues(9)); + if (tStr<>'') then + begin + tStr:= 'SELECT id FROM ' + tblUmist + ' WHERE IDSklad=N' + QuotedStr(Helios.Sklad) + ' AND Kod=N' + QuotedStr(tStr); + with Helios.OpenSQL(tStr) do + if (RecordCount>0) then + begin + idUmist:= StrToInt(VarToStr(FieldValues(0))); + tStr:= 'SELECT id FROM ' + tblStavUm + ' WHERE IDStav=' + idSS + ' AND IDUmisteni=' + IntToStr(idUmist); + with Helios.OpenSQL(tStr) do + if (RecordCount>0) then + sql:= sql + ',IDUmisteni=' + VarToStr(FieldValues(0)); + end; + end; + end; + sql:= sql + ',Popis4=N' + QuotedStr(descript); + sql:= sql + ' WHERE id=' + IntToStr(idPZ); + try + Helios.ExecSQL(sql); + except on E:Exception do + UlozChybu(Helios,'Nelze aktualizovat doplňující údaje na položce dokladu ! SQL: ' + sql, E); + end; + end; + end; + end; + pol.Next; + end; + end; + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); +{ + sql:= 'SELECT kz.id FROM ' + tblPZ + ' WHERE kz.Blokovano=1'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + Helios.OpenBrowse(bidKZ,'TabKmenZbozi.Blokovano=1'); +} + end; + Helios.Refresh(True); + try + Helios.ExecSQL('TRUNCATE TABLE ' + tmpTab); + except + end; + Helios.Info('Import souboru '#1 + fName + #1' byl ukoncen.'); + + if not ExpP then + with Helios.OpenSQL('SELECT id FROM ' + tblKZ + ' WHERE Blokovano=0 AND SkupZbo=N' + QuotedStr(szNovyImportMat)) do + if (RecordCount>0) then + begin + Helios.Error(#1'Existují nové materiály, je třeba je přeřadit do skupiny MAT,' + CRLF + 'upravit detaily a zaměnit na dokladech'#1); + Helios.OpenBrowse(2,'TabKmenZbozi.Blokovano=0 AND TabKmenZbozi.SkupZbo=N' + QuotedStr(szNovyImportMat)); + end; + end; + Screen.Cursor:= crDefault; +{ + try + with Helios.OpenSQL('SELECT Poznamka FROM #TabExtKom') do + if (RecordCount>0) then + Helios.OpenBrowse(541,''); + finally + end; +} + end; + + + + + procedure TplgLOVATO.HromadneOdvedeniEvidKoop(const Helios: IHelios); + begin + with Helios.OpenSQL('SELECT id FROM dbo._TabPrijemNadvyroby WHERE Zpracovano=0') do + if (RecordCount>0) then + begin + + end + else + Helios.Error(#1'V importní tabulce (_TabPrijemNadvyroby) nejsou žádné záznamy.'#1); + end; + + + + + procedure TplgLOVATO.ImportDL_CHD(const Helios: IHelios); + var lSQL, cObj, regC, mnoz, cisDL, dat, dokl, altP, mnCena, cOrgCHD, idKoop: string; + idx, poz, idEvid, idKO, idPKO, idVPr, idKZ, idDZ, idDZp, idSS: integer; + xls: TXLSReadWriteII5; + sheet: TXLSWorksheet; + begin + lSQL:= 'IF OBJECT_ID(N''tempdb..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT NULL, Poznamka NVARCHAR(255) NOT NULL)' + CRLF; + lSQL:= lSQL + 'IF OBJECT_ID(N''tempdb..#TabTempUziv'', ''U'') IS NULL CREATE TABLE #TabTempUziv (Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + Helios.ExecSQL(lSQL); + if OtevriSouborXLS(fName,'') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + xls.LoadFromFile(fName); + +// CHD-SPEKTRUM s.r.o. + cOrgCHD:= '1118'; + with Helios.OpenSQL('SELECT id FROM ' + tblCOrg + ' WHERE NadrizenaOrg IS NULL AND DIC=N' + QuotedStr('CZ26084155')) do + if (RecordCount=1) then + cOrgCHD:= VarToStr(FieldValues(0)); + idKoop:= '7'; + with Helios.OpenSQL('SELECT id FROM dbo.TabRadyCKoop WHERE LOWER(LTRIM(RTRIM(nazev)))=N' + QuotedStr('spektrum')) do + if (RecordCount=1) then + idKoop:= VarToStr(FieldValues(0)); + + dat:= InputBox('Datum evidence','Datum: ', DateToStr(Now)); + sheet:= xls.Sheets[0]; + idx:= 1; + idDZ:= 0; + idDZp:= 0; + regC:= sheet.AsString[2,idx]; + while (regC<>'') do + begin + cObj:= ''; + poz:= 0; + regC:= ''; + mnoz:= '0'; + cisDL:= ''; + if (sheet.CellType[0,idx]<>xctNone) and (sheet.CellType[0,idx]<>xctBlank) then + cObj:= Trim(sheet.AsString[0,idx]); + if (sheet.CellType[1,idx]<>xctNone) and (sheet.CellType[1,idx]<>xctBlank) then + poz:= sheet.AsInteger[1,idx]; + if (sheet.CellType[2,idx]<>xctNone) and (sheet.CellType[2,idx]<>xctBlank) then + regC:= Trim(sheet.AsString[2,idx]); + if (sheet.CellType[3,idx]<>xctNone) and (sheet.CellType[3,idx]<>xctBlank) then + mnoz:= Trim(sheet.AsString[3,idx]); + if (sheet.CellType[4,idx]<>xctNone) and (sheet.CellType[4,idx]<>xctBlank) then + cisDL:= Trim(sheet.AsString[4,idx]); + idKO:= 0; + idPKO:= 0; + idVPr:= 0; + idKZ:= 0; + if (cObj<>'') then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblKObj + ' WHERE REPLACE(Objednavka,''/'','''')=N' + QuotedStr(cObj)) do + if (RecordCount=1) then + idKO:= StrToInt(VarToStr(FieldValues(0))); + if (idKO>0) and (poz>0) then + with Helios.OpenSQL('SELECT Id, IdPrikaz, DokladPrPostup, AltPrPostup, ROUND(Cena/Kusy,3) FROM ' + tblPKObj + ' WHERE IDObjednavky=' + IntToStr(idKO) + ' AND Polozka=' + IntToStr(poz)) do + if (RecordCount=1) then + begin + idPKO:= StrToInt(VarToStr(FieldValues(0))); + idVPr:= StrToInt(VarToStr(FieldValues(1))); + dokl:= VarToStr(FieldValues(2)); + altP:= VarToStr(FieldValues(3)); + mnCena:= VarToStr(FieldValues(4)); + end; + if (idKO>0) and (idPKO>0) and (idVPr>0) then + begin + idEvid:= 0; + with Helios.OpenSQL('SELECT IdTabKmen FROM ' + tblPrikaz + ' WHERE Id=' + IntToStr(idVPr)) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + lSQL:= 'DECLARE @cc NUMERIC(19,6), @idEvid INT, @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dat) + ',104)' + CRLF; + lSQL:= lSQL + 'SET @cc=' + StringReplace(mnCena,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'EXEC @idEvid=dbo.hp_EvidenceOperace @Datum=@dt,@Platit_TBC=0,@Platit_TEC=0,@Kusy_odv='; + lSQL:= lSQL + StringReplace(mnoz,',','.',[rfReplaceAll]) + ',@Operace_odv=' + StringReplace(mnoz,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@Mzda=@cc,@Stav=1,@IDPolKoopObj=' + IntToStr(idPKO) + CRLF + 'SELECT @idEvid'; + with Helios.OpenSQL(lSQL) do + begin + idEvid:= StrToInt(VarToStr(FieldValues(0))); + Helios.ExecSQL('UPDATE ' + tblMzdZm + ' SET BlokovaniEditoru=NULL WHERE Id=' + IntToStr(idEvid)); + lSQL:= 'UPDATE ' + tblMzdZmE + ' SET _DodaciListKooperanta=N' + QuotedStr(cisDL) + ' WHERE id=' + IntToStr(idEvid) + CRLF; + lSQL:= lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblMzdZmE + ' (ID, _DodaciListKooperanta) VALUES (' + IntToStr(idEvid) + ',N' + QuotedStr(cisDL) + ')'; + Helios.ExecSQL(lSQL); + end; + end; + end + else + if (regC<>'') then + begin + if (idDZ=0) then + begin + lSQL:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(sklCHD) + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr('450') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(lSQL) do + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + end; + if (idDZ>0) then + begin + lSQL:= 'SELECT ss.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.Id AND ss.IDSklad=N' + QuotedStr(sklCHD) + ')'; + lSQL:= lSQL + ' WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + lSQL:= 'DECLARE @idOut INT, @ss INT, @m NVARCHAR(3), @k NUMERIC(12,4), @jm INT, @kEUR NUMERIC(15,4), @sSD NUMERIC(5,2), @sDPH NUMERIC(5,2),'; + lSQL:= lSQL + '@mn NUMERIC(19,6), @d DATETIME, @pdp BIT, @typSaz TINYINT, @idKZ INT' + CRLF + 'SELECT @jm=1, @sSD=0' + CRLF; + lSQL:= lSQL + 'SELECT @mn=' + StringReplace(mnoz,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SELECT @ss=ss.Id, @idKZ=kz.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_GetSazbuDPH @sDPH OUT, @typSaz OUT, @pdp OUT, @DruhPohybu=4, @IDKmenZbozi=@idKZ' + CRLF; + lSQL:= lSQL + 'SELECT @m=Mena, @k=Kurz, @kEUR=KurzEuro FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDZ) + ',@DruhPohybu=4,@CisloOrg=26,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + try + with Helios.OpenSQL(lSQL) do + begin + lSQL:= 'DECLARE @ss INT; SELECT @ss=ss.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET JCbezDaniKC=(SELECT Prumer FROM ' + tblSS + ' WHERE id=@ss) WHERE id=' + VarToStr(FieldValues(0)); + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + Helios.Error(#1 + E.Message + #1); + end; + end + else + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (' + QuotedStr('CHYBA: Karta materiálu '#1 + regC + #1' nebyla na skladě ' + sklCHD + ' nalezena, nebude zadána na výdejku/převodku.') + ')'); + end; + end; + Inc(idx); + end; + if (idDZ>0) then + begin + lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL, IdSkladPrevodu=N' + QuotedStr(sklVyr); + lSQL:= lSQL + ',TypPrevodky=N' + QuotedStr('250') + ',DruhPohybuPrevod=0,PopisDodavky=N' + QuotedStr('Zpětný převod mat.'); + lSQL:= lSQL + ' WHERE DruhPohybuZbo=4 AND id=' + IntToStr(idDZ); + Helios.ExecSQL(lSQL); + +{ + lSQL:= 'DECLARE @dt DATETIME, @idDZp INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZp OUT,@Sklad=N' + QuotedStr(sklVyr) + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr('250') + ',@Insert=1,@CisloOrg=26,@PC=NULL'; + lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZp'; + try + with Helios.OpenSQL(lSQL) do + idDZp:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze uložit hlavičku příjemky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + + lSQL:= 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZp) + ',@IDDokladSrc=' + IntToStr(idDZ); + lSQL:= lSQL + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + lSQL:= lSQL + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Zpětný převod mat.'); + lSQL:= lSQL + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + lSQL:= lSQL + ',@VytvaretDokladovouVazbu=1,@VytvaretPolozkovouVazbu=1'; + try + Helios.ExecSQL(lSQL); + lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE DruhPohybuZbo=0 AND id=' + IntToStr(idDZp); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Chyba generování dokladového řetězu: '#1 + E.Message); + end; +} + end; + Helios.Refresh(true); + Helios.Info(#1'Import DL ukončen' + IfThen(idDZ>0,' + vygenerována výdejka/převodka CHD -> Lovato','...') +#1); + except on E:Exception do + Helios.Error(#1'Chyba: ' + #1 + E.Message); + end; + end; + end; + + + + // vloženo při číslu palety + procedure TplgLOVATO.ImportDL(const Helios: IHelios; const ZpracProcedurou: boolean); + var lSQL, cObj, regC, mnoz, cisDL, dat, dokl, altP, mnCena{, cOrgCHD}{, idKoop}: string; + idx, poz, idEvid, idKO, idPKO, idVPr, idKZ, idDZ, idDZp, idSS: integer; + xls: TXLSReadWriteII5; + sheet: TXLSWorksheet; + CisloPalety: String; + Sql2: String; // přidáno 27.4.2022 + { IdOrg: integer; + DIC: string; } + begin + + lSQL:= 'IF OBJECT_ID(N''tempdb..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL )' + CRLF; // upraveno 27.7.2022 + lSQL:= lSQL + 'TRUNCATE TABLE #TabExtKom;' + CRLF; // přidáno 27.4.2022 + lSQL:= lSQL + 'IF OBJECT_ID(N''tempdb..#TabTempUziv'', ''U'') IS NULL CREATE TABLE #TabTempUziv (Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL )'; + Helios.ExecSQL(lSQL); + + // přidáno 27.4.2022 + if (ZpracProcedurou = true) then begin + Sql2:= 'IF OBJECT_ID(''tempdb..#Tabx_NTS_ImportDoEvidKoop'') IS NULL ' + CRLF;; + Sql2:= Sql2 + 'CREATE TABLE #Tabx_NTS_ImportDoEvidKoop ( ' + CRLF; + Sql2:= Sql2 + 'ID INT IDENTITY(1,1) PRIMARY KEY, ' + CRLF; + Sql2:= Sql2 + 'CisloRadku INT, ' + CRLF; + Sql2:= Sql2 + 'Pozice INT, ' + CRLF; + Sql2:= Sql2 + 'Mnozstvi NUMERIC(19,6), ' + CRLF; + Sql2:= Sql2 + 'Datum DATETIME, ' + CRLF; + Sql2:= Sql2 + 'CisloObj NVARCHAR(100), ' + CRLF; + Sql2:= Sql2 + 'PoziceChar NVARCHAR(20), ' + CRLF; + Sql2:= Sql2 + 'RegCis NVARCHAR(30), ' + CRLF; + Sql2:= Sql2 + 'MnozstviChar NVARCHAR(30), ' + CRLF; + Sql2:= Sql2 + 'CisDL NVARCHAR(10), ' + CRLF; + Sql2:= Sql2 + 'CisloPalety NVARCHAR(30), ' + CRLF; + Sql2:= Sql2 + 'DatumChar NVARCHAR(30) ' + CRLF; + Sql2:= Sql2 + ' );'; + + Sql2:= Sql2 + ' TRUNCATE TABLE #Tabx_NTS_ImportDoEvidKoop'; + + Helios.ExecSQL(Sql2); + end ; + //konec přidání 27.4.2022 + + + if OtevriSouborXLS(fName,'') then + begin + xls:= TXLSReadWriteII5.Create(nil); + try + xls.LoadFromFile(fName); + +// CHD-SPEKTRUM s.r.o. + // cOrgCHD:= '1118'; + { with Helios.OpenSQL('SELECT id FROM ' + tblCOrg + ' WHERE NadrizenaOrg IS NULL AND DIC=N' + QuotedStr('CZ26084155')) do + if (RecordCount=1) then + cOrgCHD:= VarToStr(FieldValues(0)); } + {idKoop:= '7'; + with Helios.OpenSQL('SELECT id FROM dbo.TabRadyCKoop WHERE LOWER(LTRIM(RTRIM(nazev)))=N' + QuotedStr('spektrum')) do + if (RecordCount=1) then + idKoop:= VarToStr(FieldValues(0)); } + + dat:= InputBox('Datum evidence','Datum: ', DateToStr(Now)); + sheet:= xls.Sheets[0]; + idx:= 1; + idDZ:= 0; + idDZp:= 0; + regC:= sheet.AsString[2,idx]; + while (regC<>'') do + begin + cObj:= ''; + poz:= 0; + regC:= ''; + mnoz:= '0'; + cisDL:= ''; + CisloPalety:=''; + if (sheet.CellType[0,idx]<>xctNone) and (sheet.CellType[0,idx]<>xctBlank) then + cObj:= Trim(sheet.AsString[0,idx]); + if (sheet.CellType[1,idx]<>xctNone) and (sheet.CellType[1,idx]<>xctBlank) then + poz:= sheet.AsInteger[1,idx]; + if (sheet.CellType[2,idx]<>xctNone) and (sheet.CellType[2,idx]<>xctBlank) then + regC:= Trim(sheet.AsString[2,idx]); + if (sheet.CellType[3,idx]<>xctNone) and (sheet.CellType[3,idx]<>xctBlank) then + mnoz:= Trim(sheet.AsString[3,idx]); + if (sheet.CellType[4,idx]<>xctNone) and (sheet.CellType[4,idx]<>xctBlank) then + cisDL:= Trim(sheet.AsString[4,idx]); + if (sheet.CellType[5,idx]<>xctNone) and (sheet.CellType[5,idx]<>xctBlank) then + CisloPalety:= Trim(sheet.AsString[5,idx]); + + + // přidáno 27.4.2022 + if (ZpracProcedurou = true) then begin + if (cObj<>'') then begin + Sql2 := 'INSERT INTO #Tabx_NTS_ImportDoEvidKoop (CisloRadku, CisloObj, PoziceChar, RegCis, MnozstviChar, CisDL, CisloPalety) VALUES (' ; + Sql2 := Sql2 + IntToStr(idx) + ', LEFT(N''' + cObj + ''', 100), LEFT(N''' + IntToStr(poz) + ''', 20), LEFT(N''' + regC + ''', 30), LEFT(N''' + Mnoz; + Sql2 := Sql2 + ''', 30), LEFT(N''' + cisDL + ''', 10), LEFT(N''' + CisloPalety + ''', 30)); '; + + + try + Helios.ExecSQL(Sql2); + except on E:Exception do + Helios.Error('Chyba: ' + E.Message); + + end; + end; + + end else begin + //konec přidání 27.4.2022 + + + idKO:= 0; + idPKO:= 0; + idVPr:= 0; + idKZ:= 0; + if (cObj<>'') then + begin + {with Helios.OpenSQL('SELECT id FROM ' + tblCOrg + ' WHERE NadrizenaOrg IS NULL AND DIC=N' + QuotedStr(DIC)) do + if (RecordCount=1) then IdOrg:= (FieldValues(0)); } // nastavení organizace podle DIČ z Excelu, kde zatím není nebo to (DIČ a dokonce i id organizace) lze zjistit na kooperační objednávce - ale zatím to není třeba + + //with Helios.OpenSQL('SELECT id, IDOraganizace, DIC FROM ' + tblKObj + ' WHERE REPLACE(Objednavka,''/'','''')=N' + QuotedStr(cObj)) do + with Helios.OpenSQL('SELECT id FROM ' + tblKObj + ' WHERE REPLACE(Objednavka,''/'','''')=N' + QuotedStr(cObj)) do + if (RecordCount=1) then + idKO:= StrToInt(VarToStr(FieldValues(0))); + //IdOrg:= (FieldValues(1)); + //DIC := (FieldValues(2)); + if (idKO>0) and (poz>0) then + with Helios.OpenSQL('SELECT Id, IdPrikaz, DokladPrPostup, AltPrPostup, ROUND(Cena/Kusy,3) FROM ' + tblPKObj + ' WHERE IDObjednavky=' + IntToStr(idKO) + ' AND Polozka=' + IntToStr(poz)) do + if (RecordCount=1) then + begin + idPKO:= StrToInt(VarToStr(FieldValues(0))); + idVPr:= StrToInt(VarToStr(FieldValues(1))); + dokl:= VarToStr(FieldValues(2)); + altP:= VarToStr(FieldValues(3)); + mnCena:= VarToStr(FieldValues(4)); + end; + if (idKO>0) and (idPKO>0) and (idVPr>0) then + begin + idEvid:= 0; + with Helios.OpenSQL('SELECT IdTabKmen FROM ' + tblPrikaz + ' WHERE Id=' + IntToStr(idVPr)) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + lSQL:= 'DECLARE @cc NUMERIC(19,6), @idEvid INT, @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dat) + ',104)' + CRLF; + lSQL:= lSQL + 'SET @cc=' + StringReplace(mnCena,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'EXEC @idEvid=dbo.hp_EvidenceOperace @Datum=@dt,@Platit_TBC=0,@Platit_TEC=0,@Kusy_odv='; + lSQL:= lSQL + StringReplace(mnoz,',','.',[rfReplaceAll]) + ',@Operace_odv=' + StringReplace(mnoz,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@Mzda=@cc,@Stav=1,@IDPolKoopObj=' + IntToStr(idPKO) + CRLF + 'SELECT @idEvid'; + with Helios.OpenSQL(lSQL) do + begin + idEvid:= StrToInt(VarToStr(FieldValues(0))); + Helios.ExecSQL('UPDATE ' + tblMzdZm + ' SET BlokovaniEditoru=NULL WHERE Id=' + IntToStr(idEvid)); + lSQL:= 'UPDATE ' + tblMzdZmE + ' SET _DodaciListKooperanta=N' + QuotedStr(cisDL) + ' , _CisloPalety = N' + QuotedStr(CisloPalety) + ' WHERE id=' + IntToStr(idEvid) + CRLF; + lSQL:= lSQL + 'IF (@@ROWCOUNT=0) INSERT ' + tblMzdZmE + ' (ID, _DodaciListKooperanta, _CisloPalety) VALUES (' + IntToStr(idEvid) + ',N' + QuotedStr(cisDL) + ',N' + QuotedStr(CisloPalety)+ ')'; + Helios.ExecSQL(lSQL); + end; + end; + end + ;{ else + if (regC<>'') then + begin + if (idDZ=0) then + begin + lSQL:= 'DECLARE @dt DATETIME, @idDZ INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(sklCHD) + ',@Mena=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr('450') + ',@Insert=1,@CisloOrg=0,@PC=NULL'; + lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(lSQL) do + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze uložit hlavičku výdejky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); + end; + end; + end; + if (idDZ>0) then + begin + lSQL:= 'SELECT ss.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.Id AND ss.IDSklad=N' + QuotedStr(sklCHD) + ')'; + lSQL:= lSQL + ' WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + lSQL:= 'DECLARE @idOut INT, @ss INT, @m NVARCHAR(3), @k NUMERIC(12,4), @jm INT, @kEUR NUMERIC(15,4), @sSD NUMERIC(5,2), @sDPH NUMERIC(5,2),'; + lSQL:= lSQL + '@mn NUMERIC(19,6), @d DATETIME, @pdp BIT, @typSaz TINYINT, @idKZ INT' + CRLF + 'SELECT @jm=1, @sSD=0' + CRLF; + lSQL:= lSQL + 'SELECT @mn=' + StringReplace(mnoz,',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SELECT @ss=ss.Id, @idKZ=kz.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_GetSazbuDPH @sDPH OUT, @typSaz OUT, @pdp OUT, @DruhPohybu=4, @IDKmenZbozi=@idKZ' + CRLF; + lSQL:= lSQL + 'SELECT @m=Mena, @k=Kurz, @kEUR=KurzEuro FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ) + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDZ) + ',@DruhPohybu=4,@CisloOrg=26,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + try + with Helios.OpenSQL(lSQL) do + begin + lSQL:= 'DECLARE @ss INT; SELECT @ss=ss.Id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IdKmenZbozi=kz.Id AND ss.IdSklad=N' + QuotedStr(sklCHD); + lSQL:= lSQL + ') WHERE kz.SkupZbo=N' + QuotedStr('MAT') + ' AND kz.RegCis=N' + QuotedStr(regC) + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET JCbezDaniKC=(SELECT Prumer FROM ' + tblSS + ' WHERE id=@ss) WHERE id=' + VarToStr(FieldValues(0)); + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + Helios.Error(#1 + E.Message + #1); + end; + end + else + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (' + QuotedStr('CHYBA: Karta materiálu '#1 + regC + #1' nebyla na skladě ' + sklCHD + ' nalezena, nebude zadána na výdejku/převodku.') + ')'); + end; + end; } + end; // přidáno 27.4.2022 + Inc(idx); + end; + + // přidáno 27.4.2022 + if (ZpracProcedurou = true) then begin + + Sql2 := 'DECLARE @dat NVARCHAR(30) = N''' + dat + ''';' + CRLF; + Sql2 := Sql2 + 'BEGIN TRY ' + CRLF; + Sql2 := Sql2 + 'EXEC dbo.hpx_NTS_ImportDLDoEvidKoop @SpustenoPluginem = 1, @VychDatum_string = @dat, @VychDatum = NULL;'; + Sql2 := Sql2 + 'END TRY ' + CRLF + 'BEGIN CATCH ' + CRLF + 'SELECT ERROR_MESSAGE();' + CRLF + ' END CATCH'; + + try + With Helios.OpenSQL(Sql2) do + if recordcount > 0 then Helios.Error(VarToStr(FieldValues(0))); + + except on E:Exception do begin + helios.Info('105'); + Helios.Error('Nespecifikovaná chyba - SQL procedura'); + Helios.Error('Chyba: ' + E.Message); + end; + end; + end; + //konec přidání 27.4.2022 + + +// if (idDZ>0) then +// begin +// lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL, IdSkladPrevodu=N' + QuotedStr(sklVyr); +// lSQL:= lSQL + ',TypPrevodky=N' + QuotedStr('250') + ',DruhPohybuPrevod=0,PopisDodavky=N' + QuotedStr('Zpětný převod mat.'); +// lSQL:= lSQL + ' WHERE DruhPohybuZbo=4 AND id=' + IntToStr(idDZ); +// Helios.ExecSQL(lSQL); +// +//{ +// lSQL:= 'DECLARE @dt DATETIME, @idDZp INT' + CRLF + 'SET @dt=GETDATE()' + CRLF; +// lSQL:= lSQL + 'EXEC dbo.hp_InsertHlavickyOZ @idDZp OUT,@Sklad=N' + QuotedStr(sklVyr) + ',@Mena=N' + QuotedStr('CZK'); +// lSQL:= lSQL + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr('250') + ',@Insert=1,@CisloOrg=26,@PC=NULL'; +// lSQL:= lSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZp'; +// try +// with Helios.OpenSQL(lSQL) do +// idDZp:= StrToInt(VarToStr(FieldValues(0))); +// except on E:Exception do +// begin +// Clipboard.AsText:= lSQL; +// Helios.Error(#1'Nelze uložit hlavičku příjemky/převodky, vratka musí být provedena ručně.'#1 + CRLF + E.Message); +// end; +// end; +// +// lSQL:= 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZp) + ',@IDDokladSrc=' + IntToStr(idDZ); +// lSQL:= lSQL + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); +// lSQL:= lSQL + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; +// lSQL:= lSQL + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Zpětný převod mat.'); +// lSQL:= lSQL + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; +// lSQL:= lSQL + ',@VytvaretDokladovouVazbu=1,@VytvaretPolozkovouVazbu=1'; +// try +// Helios.ExecSQL(lSQL); +// lSQL:= 'UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE DruhPohybuZbo=0 AND id=' + IntToStr(idDZp); +// Helios.ExecSQL(lSQL); +// except on E:Exception do +// Helios.Error(#1'Chyba generování dokladového řetězu: '#1 + E.Message); +// end; +//} +// end; + Helios.Refresh(true); + // Helios.Info(#1'Import DL ukončen' + IfThen(idDZ>0,' + vygenerována výdejka/převodka CHD -> Lovato','...') +#1); + Helios.Info(#1'Import DL ukončen' +#1); + except on E:Exception do + Helios.Error(#1'Chyba: ' + #1 + E.Message); + end; + end; + end; + // konec vložení čísla palety + + + + + procedure TplgLOVATO.Run (const Helios: IHelios); + const MinVerzeHelios = $030020260301; + var lSQL, contInfo: string; + PomHandle: THandle; + MinVerze: Int64; + Porovnani: TplgPorovnaniVerzi; + VerzeDB: String; + ZmenyOK: Boolean; + SlepaProcName: string; + SlepaProcGUID: string; + SlepaProcBrowse: string; + Browse: TplgBrowse; + GUIDAkce: String; + Q: IHeQuery; + + cRec, cntID, l_loop: integer; + btnRes: TModalResult; + sql, podm, dConv1,dConv2, podmDat, IDcka: string; + arrID: TArray; + typAkce: Integer; + dt: TDateTime; + jeTest: boolean; + browID, idDZ, idKZ, iTmp: integer; + params, paramsBak, vlastTbl, sTmp: string; +// impEP : TformImportEP; + CRM_akt: TformCRM_Aktivity; // dočasně zakomentováno 26.6.2018 +// fDodavky: TformDodavky; + fKmenZbozi: TformKartyZbozi; +// fVydej: TformVydejka; + fBL: TformBaliciListy; + fDPVydej: TfrmVydejDPrace; +// fPrijemNadvyroba: TformPrijemkaNadvyroba; + fOdvedBarCode: TformOdvedeniPrikazu; + fStSklHrZmen: TformStavSklHromZmeny; + fRozdelMat: TfrmRozdelMat; + fPrevPrij: TformPrevPrij; + fDemontaz: TformDemontaz; + fReklamaceMat: TformReklamaceMat; + fMatRozp: TformMaterial; + fOdvodRele: TformOdvodRele; + fKanbanBox: TformKanbanBox; + fKanbanObj: TformKanbanObj; + CtvrtyParametr,PatyParametr: String; // přidáno 11.3.2019 + SestyParametr, SedmyParametr, OsmyParametr, DevatyParametr, DesatyParametr: String; // přidáno 10.6.2022 + IDForm: integer; // přidáno 11.3.2019 + TypKooObj: boolean; // přidáno 6.5.2020 + NadpisTypuKoopObj: String; // přidáno 6.5.2020 + PokusVyjimka: double; // přidáno 10.6.2022 + ZobrazitHlasku: Integer ; // přidáno 10.6.2022 + SQLZp : string; // přidáno 18.7.2022 + Zprava: string; // přidáno 18.7.2022 + VerzeS : string; // přidáno 18.7.2022 + VerzeCasti: TStringDynArray; // přidáno 18.7.2022 + VerzeCislo: long; // přidáno 18.7.2022 + + begin + try + FHelios := Helios; + SpravceHeliosu.PridejHelios (FHelios); + + try + Application.OnException := Self.OnException; + +// [RK 10.04.2006] zavedeni PomHandle, problemy s realokaci ikonky +// [RK 02.04.2009] doplneno pretypovani na THandle + PomHandle := THandle(FHelios.MainApplicationHandle); + if PomHandle <> Application.Handle then + Application.Handle := PomHandle; + + PomHandle := THandle(FHelios.MainApplicationIconHandle); + if PomHandle <> Application.Icon.Handle then + Application.Icon.Handle := PomHandle; + + + +// ### INICIALIZACE ### + InicializaceJadraPluginu (FHelios); + PluginKonfig.VlastniInicializacePluginu (FHelios); + +// ### O PLUGINU ### + if FHelios.BrowseID = BrowseID_PluginInfo then + begin + case FHelios.ExtKomID of + Cplg_ExtKomID_About: + begin + InformaceOPluginu (FHelios); + Exit; + end; + + Cplg_ExtKomID_HlaskyNaWeb: + begin + plgPresunHlaskyNaWeb (FHelios); + Exit; + end; + + Cplg_ExtKomID_HlaskyDoDLL: + begin + plgStahniZWebuJazykovaDLL (FHelios); + Exit; + end; + // AJ, 14./17.12.2015 - Administrátorská podpora v HeO - Odinstalace + Cplg_ExtKomID_Odinstalace: + begin + PluginKonfig.PluginUninstall (FHelios); + Exit; + end; + end; + end; + + // ### test na verzi SQL Serveru ### + if FHelios.SQLVersion < PluginKonfig.PluginMinimalniPozadovanaVerzeSQLServeru then + raise Exception.Create( + Format('%s (%s)'#13#13+plgCtiOznam(plxJadroPluginVyzadujeMinVerziSQL_X), + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgVerzeSQLServeru(PluginKonfig.PluginMinimalniPozadovanaVerzeSQLServeru)])); + + // ### test na verzi Heliosu ### + if plgObecnaVerze(FHelios.HeVersion, jvMajor) >= '3' then + begin + // Helios 3.x + MinVerze := PluginKonfig.PluginMinimalniPozadovanaVerzeHeliosu_ver3; + if MinVerze < Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu_ver3 then + MinVerze := Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu_ver3; + end + else + begin + // Helios 2.x + MinVerze := PluginKonfig.PluginMinimalniPozadovanaVerzeHeliosu; + if MinVerze < Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu then + MinVerze := Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu; + end; + + if FHelios.HeVersion < MinVerze then + raise Exception.Create( + Format('%s (%s)'#13#13+plgCtiOznam(plxJadroPluginVyzadujeMinVerziX), + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgObecnaVerze(MinVerze, jvCela)])); + + VerzeDB := plgNactiVerziPluginuZDB(FHelios, ZmenyOK); + Porovnani := plgPorovnejVerziPluginuSVerziDB(VerzeDB); + + if Porovnani = pvDBMaVetsi then + raise Exception.Create( + Format('%s (%s)'#13#13'%s'#13#13'%s: %s'#13'%s: %s', + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgCtiOznam(plxJadroVerzePluginuJeNizsiNezVDB), + plgCtiOznam(plxJadroVerze_V_DB), VerzeDB, + plgCtiOznam(plxJadroVerzePluginu), plgVerzePluginu(jvHexa)])); + + // ### INSTALACE PLUGINU ### + if (FHelios.BrowseID = BrowseID_PluginInfo) and plgExtKomIDInstalace(FHelios) then + begin + InstalacePluginu(FHelios, (FHelios.ExtKomID = Cplg_ExtKomID_TichaInstalace)); + Exit; + end; + + + + + + + // přidáno 14.6.2022 + //Application.Handle := Helios.MainApplicationHandle; + //Application.Icon.Handle := Helios.MainApplicationIconHandle; + // konec přidání 14.6.2022 + + with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do + if VarIsNull(FieldValues(0)) then + contInfo:= 'NULL' + else + contInfo:= VarToStr(FieldValues(0)); + + Helios.ExecSQL('SET CONTEXT_INFO 0x484443344C6F7661746F'); // nastav context v sys.sysprocesses (hexadecimalne HDC4Lovato) + + {$REGION 'Záznam do TabPlgUse'} + dConv1:= '(CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,Datum))))'; + dConv2:= '(CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,GETDATE() ))))'; + podmDat:= dConv1 + '=' + dConv2; + sql:= 'IF OBJECT_ID(N' + QuotedStr('[dbo].[_TabPlgUse]') + ',N' + QuotedStr('U') + ') IS NULL '; + sql:= sql + 'CREATE TABLE [dbo].[_TabPlgUse] ([ID] int IDENTITY(1, 1) NOT NULL,'; + sql:= sql + '[PlgJmeno] nvarchar(128) COLLATE Czech_CI_AS NOT NULL,'; + sql:= sql + '[Uzivatel] nvarchar(128) COLLATE Czech_CI_AS DEFAULT suser_sname() NOT NULL,'; + sql:= sql + '[Datum] datetime DEFAULT getdate() NOT NULL, [Status] tinyint DEFAULT 0 NOT NULL,'; + sql:= sql + '[Stanice] nvarchar(128) COLLATE Czech_CI_AS DEFAULT host_name() NOT NULL)'; + try + Helios.ExecSQL(sql); + except + end; + + sql:= 'IF NOT EXISTS(SELECT id FROM [dbo].[_TabPlgUse] WHERE Uzivatel=SUSER_SNAME() AND Status=0 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat + ')' + CRLF; + sql:= sql + ' INSERT [dbo].[_TabPlgUse] (PlgJmeno,Status) VALUES (N' + QuotedStr('plgLOVATO') + ',0)' + CRLF; + sql:= sql + 'UPDATE [dbo].[_TabPlgUse] SET Datum=GETDATE() WHERE Uzivatel=SUSER_SNAME() AND Status=0 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat; + try + Helios.ExecSQL(sql); + except + end; + {$ENDREGION} + + VerzeS := plgType.CVerzePluginu.ToHexString; + if LeftStr(VerzeS,4)='0000' then + VerzeS := MidStr(VerzeS, 5, 20); + if (VerzeS.Length=12) then + VerzeS := LeftStr(VerzeS, 2) + '.0.' + MidStr(VerzeS, 5, 4) + '.' + RightStr(VerzeS, 4) + else + // přidáno 18.7.2022 + {$REGION 'Kontrola verze pluginu'} + // kontrola verze pluginu + VerzeS := GetFileVersion2(GetModuleName(HInstance)); + VerzeCasti:= System.StrUtils.SplitString(VerzeS, '.'); + + SQL := ''; + if Length(VerzeCasti) >= 1 then SQL := ', @VerzeDll1 = ' + QuotedStr(VerzeCasti[0]); + if Length(VerzeCasti) >= 2 then SQL := SQL + ', @VerzeDll2 = ' + QuotedStr(VerzeCasti[1]); + if Length(VerzeCasti) >= 3 then SQL := SQL + ', @VerzeDll3 = ' + QuotedStr(VerzeCasti[2]); + if Length(VerzeCasti) >= 4 then SQL := SQL + ', @VerzeDll4 = ' + QuotedStr(VerzeCasti[3]); + + + SQL := 'EXEC dbo.hpx_NTS_KontrolaVerzePluginu @SysJmeno = N' + QuotedStr(plgSysName) + ', @VerzeDll = N' + QuotedStr(VerzeS) + ', @Selectem = 1 ' + SQL; + + // SQL := 'EXEC dbo.hpx_NTS_KontrolaVerzePluginu @SysJmeno = N' + QuotedStr(plgSysName) + ', @VerzeDll = N' + QuotedStr(GetFileVersion2(GetModuleName(HInstance))) + ', @Selectem = 1'; + With Helios.OpenSQL(SQL) do begin + if VarToBool(FieldValues(0)) = False then begin + + Zprava := VarToStr(FieldValues(2)); + + case StrToInt(VarToStr(FieldValues(1))) of + 1: begin + Helios.error(Zprava); + exit; + end ; + + 2: begin + if (Helios.YesNo(Zprava, false)) = false then exit; + end; + + 3: begin + Helios.info(Zprava); + //exit; + end ; + end; + + end; + end; + //Helios.Info(INTToStr(GetFileVersion(GetModuleName(HInstance)))); + //Helios.Info(GetModuleName(HInstance)); + {$ENDREGION} + // konec přidání 18.7.2022 + + + {$REGION 'Zapis do TabPluginInfo'} +{ + sTmp:= StringReplace(helUtils.GetFileVersion2(GetModuleName(HInstance)),'.','',[rfReplaceAll]); + sTmp:= '0200' + MidStr(sTmp,3,8); + if Length(sTmp)=11 then + sTmp:= LeftStr(sTmp,8) + '0' + RightStr(sTmp,3); + sql:= 'IF NOT EXISTS(SELECT id FROM ' + tblPlgInfo + ' WHERE NazevSys=N' + QuotedStr(plgSysName) + ')'; + sql:= sql + ' INSERT ' + tblPlgInfo + ' (NazevSys,NazevObjektu,NazevVerejny,VerzePluginu,ZmenyOK) VALUES (N'; + sql:= sql + QuotedStr(plgSysName) + ',N' + QuotedStr(plgSysName) + ',N' + QuotedStr('Plugin pro LOVATO electric'); + sql:= sql + ',N' + QuotedStr(sTmp) + ',1) ELSE '; + sql:= sql + 'UPDATE ' + tblPlgInfo + ' SET VerzePluginu=N' + QuotedStr(sTmp) + ' WHERE'; + sql:= sql + ' NazevSys=N' + QuotedStr(plgSysName); + try + Helios.ExecSQL(sql); + except + end; +} + {$ENDREGION} + + + + // ### kontrola verze pluginu ### +{ + if Porovnani = pvDBMaMensi then + raise Exception.Create( + Format('%s (%s)'#13#13'%s'#13#1'%s'#1#13#13'%s: %s'#13'%s: %s', + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgCtiOznam(plxJadroVerzePluginuJeVyssiNezVDB), + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu), + plgCtiOznam(plxJadroVerze_V_DB), VerzeDB, + plgCtiOznam(plxJadroVerzePluginu), plgVerzePluginu(jvHexa)])); +} + + if not ZmenyOK then + raise Exception.Create( + Format('%s (%s)'#13#13'%s'#13#1'%s'#1, + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgCtiOznam(plxJadroMinulaInstalaceNeprobehlaKorektne), + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu)])); + + if FHelios.ExtKomID = Cplg_ExtKomID_EditorController then + SpustControllerEditoru (FHelios) + else + if FHelios.ExtKomID = Cplg_ExtKomID_Zpravy then + PluginKonfig.ExtKomIDJeRovnoNule (FHelios) + else + if FHelios.ExtKomID = Cplg_ExtKomID_Konfigurace then + PluginKonfig.PluginConfiguration (FHelios) + else + begin + // ### nacteni parametru akce ### + Q := FHelios.OpenSQL( + Format( + 'SELECT CAST(CAST(GUID AS UNIQUEIDENTIFIER) AS NVARCHAR(36)) AS GUIDAkce, Parametry'#13+ + ' FROM ' + tblExtKom + ' WHERE ID=%d', [FHelios.ExtKomID])); + + GUIDAkce:= Format('{%s}', [varToStr(Q.FieldValues(0))]); + params:= Format('%s', [varToStr(Q.FieldByNameValues('Parametry'))]); + paramsBak:= params; + + // ### SPUSTENI AKCE ### + + // [JAS 17.8.2015] - moznost spustit externi akci pluginu i z rucne vytvorene definice EA + // Postup je nasledujici: + // 1. V Heliosu vytvorit rucne externi akci typu plugin, doplnit spravne ProgID COM pluginu. Tato externi akce dostane automaticky prideleny novy GUID + // 2. Vytvorit slepou proceduru, jejiz nazev musi byt tvoren maskou: epx__ + // Jako GUID se do nazvu dava nove prideleny GUID rucne vytvorene akce z kroku 1. + // 3. Slepa procedura musi vracet SELECTem dve hodnoty: + // - GUID akce (vcetne slozenych zavorek!!), ktera se ma ve skutecnosti spustit (musi byt soucasti daneho pluginu) + // - cislo prehledu nebo systemovy nazev (pokud jde o prehled daneho pluginu), ve kterem je puvodni akce definovana + // + //Priklad: + // CREATE PROC dbo.epx_rpMujPlugin_9549A0D78192439C803255B8AD5484AD + // AS + // SELECT N'{506E3776-B9F0-4F37-97E3-5CBB78BC67A5}', N'hvw_MujPlugin_DefPrehled' + + SlepaProcName := 'dbo.epx_' + PluginKonfig.PluginSystemoveJmeno + '_' + plgGUIDBezPomlcek(GUIDAkce); + if FHelios.OpenSQL('IF OBJECT_ID(' + plgNQuotedStr(SlepaProcName) + ', N''P'') IS NULL SELECT 0 ELSE SELECT 1').FieldValues(0)=1 then + begin + with FHelios.OpenSQL('EXEC ' + SlepaProcName) + do + begin + SlepaProcGUID := VarToStr(FieldValues(0)); + SlepaProcBrowse := VarToStr(FieldValues(1)); + end; + + if plgJeObecnyPrehled(SlepaProcBrowse) then + Browse := plgJmenoView2Browse (SlepaProcBrowse) + else + Browse := bZadny; + + if Browse <> bZadny then + // akce nad prehledem pluginu + SpustAkciPluginu(FHelios, Browse, SlepaProcGUID) + else + // akce nad tabulkou Heliosu, popr. jinym definovanym prehledem + SpustAkciPluginuProTab(FHelios, StrToInt(SlepaProcBrowse), SlepaProcGUID); + end + else + begin + if plgJeObecnyPrehled(FHelios.BrowseID) then + Browse := plgJmenoView2Browse(FHelios.MainBrowseTable) + else + Browse := bZadny; + + if Browse <> bZadny then + // akce nad prehledem pluginu + SpustAkciPluginu(FHelios, Browse, GUIDAkce) + else + // akce nad tabulkou Heliosu, popr. jinym definovanym prehledem + SpustAkciPluginuProTab (FHelios, FHelios.BrowseID, GUIDAkce); + end; + + + + + {$REGION 'Region - zjistit typAkce, browID, vlastTbl, vytvor #TabExtKom'} + typAkce:= 0; + CtvrtyParametr :=''; // přidáno 6.5.2020 + PatyParametr:= ''; // přidáno 6.5.2020 + SestyParametr:= ''; // přidáno 10.6.2022 + SedmyParametr:= ''; // přidáno 10.6.2022 + OsmyParametr:= ''; // přidáno 10.6.2022 + DevatyParametr:= ''; // přidáno 10.6.2022 + DesatyParametr:= ''; // přidáno 10.6.2022 + + with Helios.OpenSQL('SELECT Parametry FROM TabExtKom WHERE ID=' + IntToStr(Helios.ExtKomID)) do + begin + params:= VarToStr(FieldValues(0)); + jeTest:= false; + if Pos('test', LowerCase(params))>0 then + jeTest:= true; + if Pos(';',params)>0 then + begin + typAkce:= StrToInt(LeftStr(params,Pos(';',params)-1)); + params:= MidStr(params,Pos(';',params)+1,255); + if Pos(';',params)>0 then + browID:= StrToInt(LeftStr(params,Pos(';',params)-1)) + else + browID:= StrToInt(params); + if Pos(';',params)>0 then // zadany 3 parametry (akce, browID, vlastnikID) + begin + params:= MidStr(params,Pos(';',params)+1,255); + // přidáno 11.3.2019 + if Pos(';',params)>0 then begin + vlastTbl:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + if Pos(';',params)>0 then begin + CtvrtyParametr:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + + // přidáno 10.6.2022 + if Pos(';',params)>0 then begin + PatyParametr:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + + if Pos(';',params)>0 then begin + SestyParametr:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + + if Pos(';',params)>0 then begin + SedmyParametr:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + + if Pos(';',params)>0 then begin + OsmyParametr:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + + if Pos(';',params)>0 then begin + DevatyParametr:=LeftStr(params,Pos(';',params)-1); + params:= MidStr(params,Pos(';',params)+1,255); + + DesatyParametr:= params; + + end else begin + DevatyParametr := params; + end; + + + end else begin + OsmyParametr := params; + end; + + end else begin + SedmyParametr := params; + end; + + end else begin + SestyParametr := params; + end; + + end else begin + PatyParametr := params; + end; + // konec přidání 10.6.2022 + + // PatyParametr:= params; // zakomentováno 10.6.2022 + end else begin + CtvrtyParametr := params; + end; + end else begin // konec přidání 11.3.2019 + vlastTbl:= params; + end + end; + end + else + raise Exception.Create('Nemám potřebný počet parametrů !'); + end; + + lSQL:= 'IF OBJECT_ID(N''tempdb..#TabExtKom'', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka nvarchar(255))'; + Helios.ExecSQL(lSQL); + + {$ENDREGION} + + + if (Helios.HeVersionbrowID) then + begin + typAkce := 0; + Helios.Error ('Tento plugin lze volat pouze z přehledu: '#1 + IntToStr(browID) + #1'.'); + end; + + + + + + + IDcka := ''; + cRec := 0; + if (Helios.SelectedRecordIDs<>'') then + IDcka := Helios.SelectedRecordIDs + else + if not VarIsNull(Helios.CurrentRecordID) then + begin + cRec:= StrToInt(VarToStr(Helios.CurrentRecordID)); + IDcka:= IntToStr(cRec); + end; + + if (IDcka<>'') then + begin + cntID := 1 + Length(IDcka)-Length(StringReplace(IDcka,',','',[rfReplaceAll])); + SetLength (arrID,cntID); + for l_loop:=0 to cntID-1 do + begin + if Pos(',',IDcka)>0 then + begin + arrID[l_loop] := StrToInt(LeftStr(IDcka,Pos(',',IDcka)-1)); + IDcka := MidStr(IDcka,Pos(',',IDcka)+1,65535) + end + else + arrID[l_loop] := StrToInt(IDcka); + end; + cRec := arrID[0]; + end; + + ReseedTable (Helios, tblDZ); + ReseedTable (Helios, tblPZ); + + + case typAkce of + 1: begin // import objednavky do ExpPr + idDZ:= 0; + if (vlastTbl<>'') then + idDZ:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('id'))); + ImportEP (Helios, idDZ, true); + end; + + 2: begin // import prijemky materialu (packinglist) do Prijmu + idDZ:= 0; + if (vlastTbl<>'') then + idDZ:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('id'))); + ImportEP (Helios, idDZ, false); // stejna procedura jako pri importu IT objednavky + end; + + 3: begin + CRM_akt:= TformCRM_Aktivity.Create(nil); + try + CRM_akt.Helios:= Helios; + CRM_akt.idAkt:= 0; + if (vlastTbl='1') then + CRM_akt.idAkt:= cRec; + CRM_akt.ShowModal; + finally + CRM_akt.Free; + end; + Helios.Refresh (true); // dočasně zakomentováno 26.6.2018 + end; + + 4: begin + if (cRec>0) then + begin + params:= ''; + sTmp:= ''; + idKZ:= cRec; // id nad prehledem Zbozi a sluzby + + if (Helios.BrowseID=bidSS) then + with Helios.OpenSQL('SELECT IdKmenZbozi FROM ' + tblSS + ' WHERE id=' + IntToStr(cRec)) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + if (Helios.BrowseID=bidPZ) then + begin + sql:= 'SELECT kze.id FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS; + sql:= sql + ' ss ON (pz.IDZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.idKmenZbozi=kz.id)'; + sql:= sql + ' INNER JOIN ' + tblKZe + ' kze ON (kz.id=kze.id) WHERE pz.id=' + IntToStr(cRec); + with Helios.OpenSQL(sql) do + if (RecordCount=1) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + end; + + with Helios.OpenSQL('SELECT ISNULL(_UmisteniPrijem,N'''') FROM ' + tblKZe + ' WHERE id=' + IntToStr(idKZ)) do + if (RecordCount=1) then + begin + if not VarIsNull(FieldValues(0)) then + begin + sTmp:= InputBoxOkCancel('Umístění materiálu','Umístění: ', VarToStr(FieldValues(0)),btnRes); + if (btnRes=mrCancel) then + Exit; + params:= 'UPDATE ' + tblKZe + ' SET _UmisteniPrijem='; + if (sTmp='') then + params:= params + 'null' + else + params:= params + 'N' + QuotedStr(sTmp); + params:= params + ' WHERE id=' + IntToStr(idKZ); + end + end + else + begin + sTmp:= InputBoxOkCancel('Umístění materiálu','Umístění: ', '',btnRes); + if (btnRes<>mrCancel) then + begin + if (sTmp<>'') then + begin + params:= 'IF NOT EXISTS(SELECT id FROM ' + tblKZe + ' WHERE id=' + IntToStr(idKZ) + ')'; + params:= params + ' INSERT ' + tblKZe + ' (id,_UmisteniPrijem) VALUES (' + IntToStr(idKZ); + params:= params + ',N' + QuotedStr(sTmp) + ')'; + end; + end; + end; + if (params<>'') then + Helios.ExecSQL(params); + Helios.Refresh(true); + end + else + Helios.Error(#1'Změna umístění lze udělat pouze nad jednou kartou.'#1); + { + fDodavky:= TformDodavky.Create(nil); + try + fDodavky.Helios:= Helios; + fDodavky.idOrg:= cRec; + fDodavky.ShowModal; + finally + fDodavky.Free; + end; + } + end; + + 5: begin + fKmenZbozi:= TformKartyZbozi.Create(nil); + try + fKmenZbozi.Helios:= Helios; + fKmenZbozi.idKZ:= 0; + if (vlastTbl='edit') then + begin + case (Helios.BrowseID) of + bidSS: fKmenZbozi.idKZ:= StrToInt(VarToStr(Helios.QueryBrowse.FieldByNameValues('idKmenZbozi'))); + bidKZ: fKmenZbozi.idKZ:= cRec; + end; + end; + fKmenZbozi.ShowModal; + finally + fKmenZbozi.Free; + end; + end; + + 6: begin + if Helios.YesNo(#1'VÝDEJKA KOOPERANTOVI' + CRLF + 'Přejete si vygenerovat položky podle požadavků kooperanta ?'#1,false) then + begin + if (cRec=0) then // tvorim to z ulozeneho Dokladu? NE pak vezmi ID dokladu z QueryEditu + cRec:= StrToInt(VarToStr(Helios.QueryEdit.FieldByNameValues('id'))); + + // sql:= 'EXEC dbo.ep_NTS_VydejkaKooperantovi NULL,' + IntToStr(cRec); + // sql:= sql + ',' + VarToStr(Helios.QueryEdit.FieldByNameValues('CisloOrg')); + // Helios.ExecSQL(sql); + // Helios.Refresh(true); + // Helios.Info('Položky byly uloženy na doklad.'); + end; + end; + + 7: begin // nesplnene objednavky + ImportNesplObj(Helios); + end; + + 8: begin // editace vydejky zjednodusene, viz bod 9 + edit + end; + + 9: begin + fBL:= TformBaliciListy.Create(nil); + try + fBL.idDZ:= 0; + if (vlastTbl='edit') then + fBL.idDZ:= cRec; + fBL.typ:= 3; + fBL.Helios:= Helios; + fBL.ShowModal; + finally + fBL.Free; + end; + end; + + { + 10: begin + GenerujVydejMatZPrikazu(Helios, cRec); + end; + } + 10: begin + if (cRec>0) then + begin + // if TestKoopObjVydejMat(Helios,cRec) then + begin + { + fPrijemNadvyroba:= TformPrijemkaNadvyroba.Create(nil); + try + fPrijemNadvyroba.idPKObj:= cRec; + fPrijemNadvyroba.Helios:= Helios; + fPrijemNadvyroba.ShowModal; + finally + fPrijemNadvyroba.Free; + end; + } + end + // else + // Helios.Error(#1'Na příkaz nebyl vydán žádný materiál.'#1); + end; + end; + + 11: begin + with Helios.OpenSQL('SELECT id FROM ' + tblKObj + ' WHERE realizovano=0 AND id=' + IntToStr(cRec)) do + if (RecordCount=0) then + begin + TypKooObj := (CtvrtyParametr = 'TypObj=1'); // přidáno 6.5.2020 + if (PatyParametr='') then + NadpisTypuKoopObj := ' ' + else + NadpisTypuKoopObj := PatyParametr; // přidáno 6.5.2020 + + // ExportKoopObj(Helios, cRec, TypKooObj, NadpisTypuKoopObj, vlastTbl) ; // přidáno 6.5.2020 // zakomentováno 10.6.2022 + ExportKoopObjXls (Helios, cRec, TypKooObj, NadpisTypuKoopObj, vlastTbl, '', '', 1) ; // přidáno 10.6.2022 + // ExportKoopObj(Helios, cRec) ; //zakomentováno 6.5.2020 + end + else + Helios.Error(#1'Kooperační objednávka není realizována, nelze exportovat.'#1 + CRLF + 'Realizujte jí a zkuste to znovu.'); + end; + + 12: begin // Hromadna uprava Pozadovany termin dodani na polozkach kooperacni objednavky + sql := 'SELECT ko.id FROM ' + tblPKObj + ' pko INNER JOIN ' + tblKObj + ' ko ON (pko.IDObjednavky=ko.id)'; + sql := sql + ' WHERE ko.Realizovano=1 AND pko.id=' + IntToStr(arrID[0]); + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + begin + if FormDatum('Zadejte datum','Požadovaný termín dodání:',dt) then + for l_loop:=0 to Length(arrID)-1 do + begin + sql := 'UPDATE ' + tblPKObj + ' SET PozadTerDod=CONVERT(datetime,N' + QuotedStr(DateToStr(dt)) + ',104)'; + sql := sql + ' WHERE id=' + IntToStr(arrID[l_loop]); + try + Helios.ExecSQL (sql); + Helios.ExecSQL ('EXEC dbo.ep_DoplnKooperacniCeny ' + IntToStr(arrID[l_loop])); + except on E:Exception do + Helios.Error ('Nelze upravit datum pro položku kooperační objednávky.'); + end; + Helios.Refresh (true); + end; + end + else + Helios.Error(#1'Tato kooperační objednávka byla již realizována,' + CRLF + 'požadované termíny nejdou změnit.'#1); + end; + + 13: begin + if (vlastTbl='del') and (cRec>0) then + begin + if Helios.YesNo('Opravdu chcete zrušit objednávku Nadvýroby ?',false) then + SmazObjNadvyroby(Helios,cRec) + end + else + begin + fDPVydej := TfrmVydejDPrace.Create(nil); + try + fDPVydej.Helios := Helios; + fDPVydej.ShowModal; + finally + fDPVydej.Free; + end; + end; + end; + + 14: begin + if (vlastTbl='del') and (cRec>0) then + begin + if Helios.YesNo('Opravdu chcete smazat tento záznam?',false) then + begin + try + lSQL := 'BEGIN TRAN x' + CRLF + 'UPDATE ' + tblEvidNadvyr + ' SET Zaevidovano=Zaevidovano-'; + with Helios.OpenSQL('SELECT Mnozstvi FROM ' + tblEvidOp + ' WHERE id=' + IntToStr(cRec)) do + if (RecordCount=0) then + lSQL := lSQL + '0' + else + lSQL := lSQL + StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]); + lSQL := lSQL + ' WHERE id=' + IntToStr(cRec) + CRLF; + lSQL := lSQL + 'DELETE FROM ' + tblEvidOp + ' WHERE id=' + IntToStr(cRec) + CRLF; + lSQL := lSQL + 'DELETE FROM ' + tblEvidNadvyrVPr + ' WHERE IdEvidOpBarcode=' + IntToStr(cRec) + CRLF; + lSQL := lSQL + 'DELETE FROM ' + tblEvidOpVPr + ' WHERE IdEvidOper=' + IntToStR(cRec) + CRLF; + lSQL := lSQL + 'IF (@@ERROR>0) ROLLBACK TRAN x ELSE COMMIT TRAN x'; + Helios.ExecSQL (lSQL); + except on E:Exception do + Helios.Error(#1'Chyba při mazání záznamu.'#1 + CRLF + E.Message); + end; + end; + end + else + begin + fOdvedBarCode:= TformOdvedeniPrikazu.Create(nil); + try + if CtvrtyParametr = 'tisk' then begin // přidáno 11.3.2019 + fOdvedBarCode.TiskListku := true; + idForm := StrToInt(PatyParametr); + fOdvedBarCode.idTiskForm := idForm; + end else begin fOdvedBarCode.TiskListku := false end; // konec přidání 11.3.2019 + fOdvedBarCode.Helios := Helios; + fOdvedBarCode.typOdvodu := 2; // podle vyrobku + fOdvedBarCode.jeTest:= (LowerCase(Trim(vlastTbl))='test'); + // Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Start plugin - Odvedení práce')); + fOdvedBarCode.ShowModal; + finally + fOdvedBarCode.Free; + end; + // Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Konec plugin - Odvedení práce')); + end; + Helios.Refresh (true); + end; + + 15: begin + // z odvedeni daneho vyrobniho prikazu "preved" dilec na vydejku vyvozu, zachova se vazba na ExpPr + aktualizuje se odebrane mnozstvi + ZadejPolPrijemkyNaVydejku(Helios,cRec); + end; + + 16: begin + fStSklHrZmen:= TformStavSklHromZmeny.Create(nil); + try + fStSklHrZmen.Helios := Helios; + fStSklHrZmen.arrID := arrID; + fStSklHrZmen.ShowModal; + finally + fStSklHrZmen.Free; + end; + end; + + 17: begin + // z vyrobniho prikazu "preved" dilec na vydejku vyvozu, zachova se vazba na ExpPr + aktualizuje se odebrane mnozstvi + ZadejVyrPrikazNaVydejku(Helios,cRec); + end; + + 18: begin + StavSkladuDoZadVyp(Helios); // vybrane karty ze Stavu skladu (vc.mnozstvi) do Predbezneho planu + smazani stareho + end; + + 19: begin + ImportZClipboardu(Helios, 1); //typ=1 -> import Min/Max do TabStavSkladuImp + end; + + 20: begin + PrevodStavSkladuImp(Helios,1); //typ=1 -> import Min/Max do TabStavSkladuImp + end; + + 21: begin + VyrabeneDilceDoZadVyp(Helios); // vybrane dilce do Predbezneho planu + smazani stareho (mnozstvi 1) + end; + + 22: begin + if Length(arrID)>0 then + begin + try + fRozdelMat:= TfrmRozdelMat.Create(nil); + fRozdelMat.Helios:= Helios; + if Helios.BrowseID=bidSS then + fRozdelMat.aIdSS:= myUtils.ArrayIntToStr(arrID) + else + fRozdelMat.aIdDZ:= myUtils.ArrayIntToStr(arrID); + fRozdelMat.ShowModal; + finally + fRozdelMat.Free; + end; + end; + { + sql:= 'IF OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ') IS NOT NULL DROP TABLE ' + tblRozpPrijStav; + sql:= sql + CRLF + 'CREATE TABLE ' + tblRozpPrijStav + '(IdKmenZbozi INT NOT NULL, Mnozstvi NUMERIC(19,6)'; + sql:= sql + ' NOT NULL DEFAULT 0.0, CisloZbozi NVARCHAR(33), Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME())'; + Helios.ExecSQL(sql); + for l_loop:=0 to Length(arrID)-1 do + begin + RozpadPrijStavNaKooperanty(Helios,arrID[l_loop],0); + end; + with Helios.OpenSQL('SELECT Autor FROM ' + tblRozpPrijStav + ' WHERE Autor=SUSER_SNAME()') do + if RecordCount>0 then + begin + podm:= 'SELECT r.*,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM _TabRozpadPrijStav r INNER JOIN ' + tblKZ; + podm:= podm + ' kz ON (r.IdKmenZbozi=kz.id) WHERE r.Autor=SUSER_SNAME()'; + sql:= 'IF OBJECT_ID(N' + QuotedStr('dbo.hvw_RozpadPrijStav') + ',N''V'') IS NOT NULL'; + sql:= sql + ' DROP VIEW [dbo].[hvw_RozpadPrijStav]' + CRLF; + Helios.ExecSQL(sql); + sql:= 'CREATE VIEW dbo.hvw_RozpadPrijStav AS ' + podm + CRLF; + Helios.ExecSQL(sql); + sql:= 'UPDATE dbo.TabObecnyPrehled SET DefView=N' + QuotedStr(podm) + ' WHERE NazevSys=N' + QuotedStr('hvw_RozpadPrijStav'); + Helios.ExecSQL(sql); + Helios.OpenBrowse(100038,'Autor=SUSER_SNAME()'); + end; + end; + } + end; + + 23: begin + sql:= 'SELECT dz.id,odz.id FROM ' + tblDZ + ' dz LEFT JOIN ' + tblDZ + ' odz ON (dz.id=odz.NavaznyDoklad)'; + sql:= sql + ' WHERE (dz.Realizovano=1 OR odz.Realizovano=1) AND dz.id=' + IntToStr(cRec); + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + Helios.Error(#1'Tento doklad nebo zdrojový doklad jsou realizované - nelze opravovat.'#1) + else + begin + fPrevPrij:= TformPrevPrij.Create(nil); + try + fPrevPrij.idDZold:= 0; + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE NavaznyDoklad=' + IntToStr(cRec)) do + fPrevPrij.idDZold:= VarHodnota(FieldValues(0),0); + fPrevPrij.idDZ:= cRec; + fPrevPrij.Helios:= Helios; + fPrevPrij.ShowModal; + finally + fPrevPrij.Free; + end; + end; + end; + + 24: begin // presun kooperace na prikazech do polozek koop.objednavky ! se seskupenim dle vyrobku a data dodani ! + KooperaceniPolozkySeSeskupenim(Helios); + end; + + 25: begin + fDemontaz:= TformDemontaz.Create(nil); + try + if (Length(arrID)>1) then + fDemontaz.idPols:= arrID; + fDemontaz.jeTest:= jeTest; + fDemontaz.Helios:= Helios; + fDemontaz.ShowModal; + finally + fDemontaz.Free; + end; + end; + + 26: begin + Screen.Cursor:= crHourGlass; + UpdateWindow(hInstance); + ImportStavuInventur(Helios); + Screen.Cursor:= crDefault; + Helios.Refresh(true); + end; + + 27: begin + fMatRozp:= TformMaterial.Create(nil); + try + fMatRozp.idMat:= cRec; + fMatRozp.Helios:= Helios; + fMatRozp.ShowModal; + finally + fMatRozp.Free; + end; + end; + + 28: begin + { + fOdvodRele:= TformOdvodRele.Create(nil); + try + fOdvodRele.Helios:= Helios; + fOdvodRele.ShowModal; + finally + fOdvodRele.Free; + end; + } + fOdvedBarCode:= TformOdvedeniPrikazu.Create(nil); + try + if CtvrtyParametr = 'tisk' then begin // přidáno 11.3.2019 + fOdvedBarCode.TiskListku := true; + idForm:= StrToInt(PatyParametr); + fOdvedBarCode.idTiskForm := idForm; + end else begin fOdvedBarCode.TiskListku := false end; // konec přidání 11.3.2019 + fOdvedBarCode.Helios:= Helios; + fOdvedBarCode.typOdvodu:= 1; // podle prikazu + fOdvedBarCode.ShowModal; + finally + fOdvedBarCode.Free; + end; + Helios.Refresh(true); + end; + + 29: begin + if (cRec>0) then + ExportKoopObjHQL(Helios, cRec); + end; + + 30: begin + fReklamaceMat:= TformReklamaceMat.Create(nil); + try + fReklamaceMat.Helios:= Helios; + fReklamaceMat.ShowModal; + finally + fReklamaceMat.Free; + end; + end; + + 31: ImportDL_CHD(Helios); + + 32: begin + if (vlastTbl='del') then + begin + if Helios.YesNo('Opravdu chcete smazat tento kanban box ?', false) then + begin + with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanPohyby WHERE IdKanbanBox=' + IntToStr(cRec)) do + if (RecordCount=0) then + Helios.ExecSQL('DELETE FROM dbo._TabKanbanBox WHERE id=' + IntToStr(cRec)) + else + Helios.Error(#1'Box byl použit při objednávkách, nelze smazat.'#1); + end; + end + else + begin + try + fKanbanBox:= TformKanbanBox.Create(nil); + if (vlastTbl='edit') then + fKanbanBox.idBox:= cRec + else + fKanbanBox.idBox:= 0; + fKanbanBox.Helios:= Helios; + fKanbanBox.ShowModal; + finally + fKanbanBox.Free; + end; + end; + end; + + 33: begin + if (vlastTbl='del') then + begin + with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(cRec) + ' AND IdKoopObj IS NULL AND IdVydejObalu IS NULL') do + if (RecordCount=1) then + begin + // přidáno 18.3.2021 + with Helios.OpenSQL('SELECT COUNT(1) FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(cRec) + ' AND IDPrikaz IS NOT NULL' ) do + begin + if not VarIsNull(FieldValues(0)) and (VarToStr(FieldValues(0))<>'0') and (VarToStr(FieldValues(0))<>'') then begin + Helios.Error(#1'Z objednávky byla vygenerována Kooperační objednávka nebo výrobní příkazy, nelze jí tedy smazat.'#1); + exit; + end; + end; + // konec přidání 18.3.2021 + + if Helios.YesNo('Opravdu smazat tuto kanban objednávku ?',false) then + begin + Helios.ExecSQL('DELETE FROM dbo._TabKanbanPohyby WHERE IdKanbanObj=' + IntToStr(cRec)); + Helios.ExecSQL('DELETE FROM dbo._TabKanbanObj WHERE id=' + IntToStr(cRec)); + Helios.Refresh(true); + end + end + else + Helios.Error(#1'Z objednávky byla vygenerována výdejka obalů nebo Kooperační objednávka, nelze jí smazat.'#1); + end + else + begin + fKanbanObj:= TformKanbanObj.Create(nil); + try + if (vlastTbl='edit') then + fKanbanObj.idObj:= cRec + else + fKanbanObj.idObj:= 0; + + // přidáno 10.6.2022 + if (CtvrtyParametr <> '') and (trim(CtvrtyParametr) = '1') then + fKanbanObj.PoslatEmail:= 1 {StrToInt(VarToStr(CtvrtyParametr))} + else + fKanbanObj.PoslatEmail:= 0; // přidáno 10.6.2022 + + if PatyParametr = 'TypObj=1' then + TypKooObj:= true + else + TypKooObj:= false; // přidáno 6.5.2020 + + if SestyParametr = '' then + NadpisTypuKoopObj:= ' ' + else + NadpisTypuKoopObj:= SestyParametr; // přidáno 6.5.2020 + + fKanbanObj.TypKooObj := TypKooObj; + fKanbanObj.NadpisTypuKoopObj := NadpisTypuKoopObj; + fKanbanObj.Zarovnani := SedmyParametr; + fKanbanObj.Cesta := OsmyParametr ; + fKanbanObj.Nazev := DevatyParametr; + + // Helios.Info('ID: "' + IntToStr(fKanbanObj.idObj) + '", ZobrTypKooObj:"' + BoolToStr(TypKooObj) + '", NadpisTypuKoopObj"' + NadpisTypuKoopObj + '", Zarovnani: "' + fKanbanObj.Zarovnani + '", cesta: "' + fKanbanObj.Cesta + '", Nazev: "' + fKanbanObj.Nazev + '"'); + // konec přidání 10.6.2022 + + + fKanbanObj.Helios:= Helios; + fKanbanObj.ShowModal; + finally + fKanbanObj.Free; + end; + + end; + end; + + 34: KontrolaExistVsechObj (Helios); + + 35: ImportZClipboardu (Helios, 2); + + 36: ImportObjMaterialu (Helios, 0); // sdileny material = 1 + + 37: ImportObjMatEdit (Helios, cRec); + + //38: ImportDL(Helios); // import dodacího listu včetně čísla palety // zakomentováno 27.4.2022 + 38: if (vlastTbl<>'zpracPluginem') then + ImportDL (Helios, true) else ImportDL(Helios, false); // přidáno 27.4.2022 + + // přidáno 10.6.2022 + 39: begin + with Helios.OpenSQL ('SELECT id FROM ' + tblKObj + ' WHERE realizovano=0 AND id=' + cRec.ToString) do + if (RecordCount=0) then + begin + TypKooObj := (CtvrtyParametr='TypObj=1'); // přidáno 6.5.2020 + + if (PatyParametr='') then + NadpisTypuKoopObj := ' ' + else + NadpisTypuKoopObj := PatyParametr; // přidáno 6.5.2020 + + if (OsmyParametr<>'1') then + ZobrazitHlasku := 0 + else + ZobrazitHlasku := 1; + + // Helios.Info('ID: "' + IntToStr(cRec) + '", ZobrTypKooObj:"' + BoolToStr(TypKooObj) + '", NadpisTypuKoopObj"' + NadpisTypuKoopObj + '", Zarovnani: "' + vlastTbl + '", cesta: "' + SestyParametr + '", Nazev: "' + SedmyParametr + '", ZobrazInfoKonec: "'+ IntToStr(ZobrazitHlasku) + '"'); + + ExportKoopObjXls (Helios, cRec, TypKooObj, NadpisTypuKoopObj, vlastTbl, SestyParametr, SedmyParametr, ZobrazitHlasku) ; // přidáno 6.5.2020 + // ExportKoopObj(Helios, cRec) ; //zakomentováno 6.5.2020 + end + else + Helios.Error(#1'Kooperační objednávka není realizována, nelze exportovat.'#1 + CRLF + 'Realizujte jí a zkuste to znovu.'); + end; + + // konec přidání 10.6.2022 + + 40: begin + ImportReklamace (Helios); + end; + + 255: begin + // ReseedTable(Helios,'[dbo].[]'); + ReseedTable (Helios, tblDZ); + ReseedTable (Helios, tblPZ); + ReseedTable (Helios, tblSZ); + ReseedTable (Helios, '[dbo].[TabParametryKmeneZbozi]'); + ReseedTable (Helios, tblKZ); + ReseedTable (Helios, tblBCode); + ReseedTable (Helios, tblSS); + ReseedTable (Helios, tblOrg); + ReseedTable (Helios, tblCZam); + ReseedTable (Helios, tblJC); + ReseedTable (Helios, tblNC); + ReseedTable (Helios, '[dbo].[TabMJ]'); + ReseedTable (Helios, tblStrom); + ReseedTable (Helios, '[dbo].[TabParKmZ]'); + ReseedTable (Helios, '[dbo].[TabKVazby]'); + ReseedTable (Helios, '[dbo].[TabPostup]'); + ReseedTable (Helios, '[dbo].[TabPrKVazby]'); + ReseedTable (Helios, tblPrikaz); + ReseedTable (Helios, '[dbo].[TabPrikazP]'); + ReseedTable (Helios, '[dbo].[TabKalkCe]'); + ReseedTable (Helios, '[dbo].[TabInvPolozka]'); + ReseedTable (Helios, tblPrPost); + ReseedTable (Helios, tblCPrac); + end; + + 997: begin + Helios.Info ('Test Výjimky'); + // Helios.ExecSQL('Select * fro'); + + Helios.Info ('Prošlo to'); + end; + + 998: begin + Helios.Info ('Test Výjimky'); + PokusVyjimka := 5/0; + + raise Exception.Create('Error Message'); + + Helios.Info ('Prošlo to'); + end; + + 999: begin + Helios.Info ('Test Výjimky'); + //PokusVyjimka := 5/0; + + raise Exception.Create ('Error Message'); + + Helios.Info ('Prošlo to'); + end; + end; + + if (contInfo='NULL') then + Helios.ExecSQL ('SET CONTEXT_INFO 0x') + else + Helios.ExecSQL ('SET CONTEXT_INFO 0x' + contInfo); // vymaz context v sys.sysprocesses (hexadecimalne NTSmodulLOV) + + try + with Helios.OpenSQL ('IF OBJECT_ID(''tempdb..#TabExtKom'', ''U'') IS NOT NULL SELECT Poznamka FROM #TabExtKom') do + if (RecordCount>0) then + Helios.OpenBrowse (541,''); + finally + end; + Helios.Refresh (true); + + end; + finally + SpravceHeliosu.OdeberHelios (FHelios); + end; + +{$REGION 'Záznam do TabPlgUse'} + sql:= 'IF NOT EXISTS(SELECT id FROM [dbo].[_TabPlgUse] WHERE Uzivatel=SUSER_SNAME() AND Status=1 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat + ')' + CRLF; + sql:= sql + ' INSERT [dbo].[_TabPlgUse] (PlgJmeno,Status) VALUES (N' + QuotedStr('plgLOVATO') + ',1)' + CRLF; + sql:= sql + 'UPDATE [dbo].[_TabPlgUse] SET Datum=GETDATE() WHERE Uzivatel=SUSER_SNAME() AND Status=1 AND '; + sql:= sql + 'PlgJmeno=N' + QuotedStr('plgLOVATO') + ' AND ' + podmDat; + try + Helios.ExecSQL(sql); + except + end; +{$ENDREGION} + +// Helios.Refresh(true); + + except + // neni to pres Application.HandleException() kvuli probublani vyjimky + // do Heliosu (konkretni pouziti napr. v Automatu) + on E: EExternal do + begin + LockWindowUpdate(0); // jistota, kdyby nekde zustalo viset + raise EExternal.Create(E.Message); + end; + + on E: Exception do + begin + LockWindowUpdate(0); // jistota, kdyby nekde zustalo viset + E.Message := plgPrelozException(E.Message); + raise; + end; + end; + end; + + + + INITIALIZATION + dxCore.dxInitialize; +// dxUnitsLoader.Initialize; +// hdl:= LoadPackage('HeLib.bpl'); +// SetThreadLocale(LOCALE_USER_DEFAULT); +// GetFormatSettings; + TComObjectFactory.Create(ComServer, TplgLOVATO, Class_LOVATO, 'runMe', '', ciMultiInstance, tmSingle); + + finalization +// dxUnitsLoader.Finalize; + dxCore.dxFinalize; + +END. diff --git a/Globalni.pas b/Globalni.pas new file mode 100644 index 0000000..e9aef21 --- /dev/null +++ b/Globalni.pas @@ -0,0 +1,347 @@ +unit Globalni; + +interface + +uses System.SysUtils, System.Win.ComObj, ddPlugin_TLB; + +const strLov = '40755509 LOVATO spol.s r.o.'; + CRLF = #13#10; + sklVyroba = '200'; + +//vytvoeno 10.6.2022// z funkce ExportKoopObj v ComObject upraven 6.5.2020 +function ExportKoopObjXls(const Helios: IHelios; idKObj: integer; ZobrTypKooObj: boolean; NadpisTypuKoopObj: string; vlastTbl: string; Cesta: string; Nazev: string; ZobrazInfoKonec: Integer): string; safecall; + + +implementation + +uses Vcl.Controls, System.Win.ComServ, Vcl.Graphics, Vcl.Forms, System.Variants, System.StrUtils, Vcl.Dialogs, + Vcl.Clipbrd, System.Classes, Winapi.Windows, System.DateUtils, Vcl.StdActns, Winapi.ShlObj, Vcl.StdCtrls, + Vcl.ComCtrls, myUtils, helUtils, XLSReadWriteII5, XLSSheetData5, Xc12DataStyleSheet5, Xc12Utils5//, // nExcel, +; + +//procedure ExportKoopObj(const Helios: IHelios; idKObj: integer; ZobrTypKooObj: boolean; NadpisTypuKoopObj: string; vlastTbl: string); safecall; // upraveno 6.5.2020 + +// upraveno 6.5.2020 +function ExportKoopObjXls (const Helios: IHelios; idKObj: integer; ZobrTypKooObj: boolean; NadpisTypuKoopObj: string; vlastTbl: string; Cesta: string; Nazev: string; ZobrazInfoKonec: Integer): string; + var lSQL, fld: string; + jCena: Extended; + xls: TXLSReadWriteII5; + wSheet1, wSheet2: TXLSWorksheet; + poz: IHeQuery; + idPolKObj, idKZ, idx, idDZCenik: integer; + cObj, cOrg, dodav, dat, datKO: string; + listSumace: boolean; + VybranyAdresar: boolean; // pidno 10.6.2022 + NazevSouboru: String; // pidno 10.6.2022 + Vysledek: String; // pidno 10.6.2022 + begin + + // Helios.Info('ID: "' + IntToStr(idKObj) + '", ZobrTypKooObj:"' + BoolToStr(ZobrTypKooObj) + '", NadpisTypuKoopObj"' + NadpisTypuKoopObj + '", Zarovnani: "' + vlastTbl + '", cesta: "' + Cesta + '", Nazev: "' + Nazev + '", ZobrazInfoKonec: "'+ IntToStr(ZobrazInfoKonec) + '"'); + + listSumace:= false; + + Vysledek := '**_CHYBA_**'; + if (idKObj>0) then + begin + +// lSQL:= 'SELECT p.Polozka,p.Kusy,p.PozadTerDod_X,k.RegCis FROM ' + tblPKObj + ' p INNER JOIN ' + tblPrikaz + ' pr ON (p.IDPrikaz=pr.id)'; +// lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' k ON (pr.IdTabKmen=k.id) WHERE p.IDObjednavky=' + IntToStr(idKObj); +// lSQL:= lSQL + ' ORDER BY p.Polozka'; + + // lSQL:= 'SELECT DISTINCT(kz.RegCis),pko.PozadTerDod,SUM(pko.Kusy) FROM ' + tblPKObj + ' pko'; // zakomentovno 6.5.2020 + lSQL:= 'SELECT DISTINCT(kz.RegCis), pko.PozadTerDod,SUM(pko.Kusy), dbo._ef_NTS_TypObjednavkyKZKooP(kz.id, pko.id) FROM ' + tblPKObj + ' pko'; // pidno 6.5.2020 + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.PozadTerDod, dbo._ef_NTS_TypObjednavkyKZKooP(kz.id, pko.id) ORDER BY pko.PozadTerDod'; // kz.RegCis'; // pidno 6.5.2020 + // lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.PozadTerDod ORDER BY pko.PozadTerDod'; // kz.RegCis'; // zakomentovno 6.5.2020 + + poz:= Helios.OpenSQL(lSQL); + if (poz.RecordCount>0) then + begin + cOrg:= ''; + datKO:= ''; + + lSQL:= 'SELECT c.CisloOrg, k.TerminOdeslani FROM ' + tblKObj + ' k INNER JOIN ' + tblCOrg + ' c ON (k.IDOrganizace=c.id) WHERE k.id=' + IntToStr(idKObj); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + if not(VarIsNull(FieldByNameValues('CisloOrg'))) then + cOrg:= VarToStr(FieldByNameValues('CisloOrg')); + if not(VarIsNull(FieldByNameValues('TerminOdeslani'))) then + datKO:= VarToStr(FieldByNameValues('TerminOdeslani')); + end; + + idDZCenik:= 0; + if (cOrg<>'') and (datKO<>'') then + begin + lSQL:= 'DECLARE @dat DATETIME, @cnt INT' + CRLF + 'SET @dat=CONVERT(datetime,N' + datKO.QuotedString + ', 104)' + CRLF + + 'SELECT COUNT(d.ID) AS Pocet FROM ' + tblDZ + ' d INNER JOIN ' + tblDZe + ' de ON (de.ID=d.ID)' + + ' WHERE d.IDSklad=N' + sklVyroba.QuotedString + ' AND d.CisloOrg=' + cOrg + ' AND d.RadaDokladu=N''220'' AND d.DruhPohybuZbo=11' + + ' AND @dat BETWEEN d.Splatnost AND d.DatUhrady AND dbo.hfx_SD_AktualniUrovenSchvalovani(d.ID, 0)=9999'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + if (VarToStr(FieldByNameValues('Pocet')).ToInteger)>1 then + begin + Helios.Error('Pro danho dodavatele existuje vc platnch Nabdkovch cenk !' + CRLF + 'Export nebude proveden'); + Exit; + end; + + lSQL:= 'DECLARE @idDZ INT=0, @dat DATETIME' + CRLF + + 'SET @dat=CONVERT(datetime,N' + datKO.QuotedString + ', 104)' + CRLF + + 'IF EXISTS(SELECT 1 FROM ' + tblDZ + ' d INNER JOIN ' + tblDZe + ' de ON (de.ID=d.ID)' + + ' WHERE d.IDSklad=N' + sklVyroba.QuotedString + ' AND d.CisloOrg=' + cOrg + ' AND d.RadaDokladu=N''220'' AND d.DruhPohybuZbo=11' + + ' AND @dat BETWEEN d.Splatnost AND d.DatUhrady AND dbo.hfx_SD_AktualniUrovenSchvalovani(d.ID, 0)=9999)' + CRLF + + ' SET @idDZ=(SELECT d.ID FROM ' + tblDZ + ' d INNER JOIN ' + tblDZe + ' de ON (de.ID=d.ID)' + + ' WHERE d.IDSklad=N' + sklVyroba.QuotedString + ' AND d.CisloOrg=' + cOrg + ' AND d.RadaDokladu=N''220'' AND d.DruhPohybuZbo=11' + + ' AND @dat BETWEEN d.Splatnost AND d.DatUhrady AND dbo.hfx_SD_AktualniUrovenSchvalovani(d.ID, 0)=9999)' + CRLF + 'SELECT @idDZ AS idDoklad'; + with Helios.OpenSQL(lSQL) do + idDZCenik:= VarToStr(FieldByNameValues('idDoklad')).ToInteger; + end; + + + // pidno 10.6.2022 + VybranyAdresar := false; + + if trim(cesta) <> '' then + begin + fld := cesta; + VybranyAdresar := true; + end + else + begin +// fld:= GetEnvironmentVariable('USERPROFILE') + '\Desktop'; + VybranyAdresar := VyberAdresar(fld, 'Umstn exportnho souboru'); + end; + // konec pidn 10.6.2022 + + cObj:= ''; + dodav:= ''; + + // if VyberAdresar(fld, 'Umstn exportnho souboru') then // zakomentovno 10.6.2022 + if VybranyAdresar then // pidno 10.6.202 + begin + lSQL:= 'SELECT k.Objednavka, (c.ICO + N' + QuotedStr(' ') + ' + c.Nazev) AS Nazev, k.TerminOdeslani FROM ' + tblKObj; + lSQL:= lSQL + ' k INNER JOIN ' + tblCOrg + ' c ON (k.IDOrganizace=c.id) WHERE k.id=' + IntToStr(idKObj); + with Helios.OpenSQL(lSQL) do + begin + cObj:= VarToStr(FieldByNameValues('Objednavka')); + dodav:= VarToStr(FieldByNameValues('Nazev')); + datKO:= VarToStr(FieldByNameValues('TerminOdeslani')); + end; + cObj:= StringReplace(cObj,'/','',[rfReplaceAll]); + + xls:= TXLSReadWriteII5.Create(nil); + try + xls.Version:= xvExcel97; + if (listSumace) then + begin + wSheet2:= xls.Sheets[0]; + wSheet2.Name:= 'Sumace'; + // xls[1].InsertRows(0,poz.RecordCount); + // xls[1].InsertColumns(0,7); + wSheet2.AsString[0,0]:= 'Objednavatel'; + wSheet2.AsString[2,0]:= strLov; + wSheet2.AsString[0,2]:= 'Dodavatel:'; + wSheet2.AsString[2,2]:= dodav; + wSheet2.AsString[0,4]:= 'Datum vystaven:'; + wSheet2.AsString[2,4]:= datKO; + wSheet2.AsString[0,6]:= 's.obj.'; + wSheet2.AsString[1,6]:= 'Po..'; + wSheet2.Columns.Items[1].NumberFormat:= '##0'; + wSheet2.Columns.Items[1].HorizAlignment:= chaCenter; + wSheet2.AsString[2,6]:= 'slo vrobku'; + wSheet2.AsString[3,6]:= 'Mnostv'; + wSheet2.Columns.Items[3].NumberFormat:= '###,##0.###'; + wSheet2.AsString[4,6]:= 'Splnit do'; + wSheet2.Columns.Items[4].NumberFormat:= 'DD.MM.YYYY'; + wSheet2.Columns.Items[4].HorizAlignment:= chaCenter; + + // pidno 6.5.2020 + if ZobrTypKooObj then + begin + wSheet2.AsString[5,6]:= NadpisTypuKoopObj; + if (vlastTbl='NaStred') then + wSheet2.Columns.Items[5].HorizAlignment:= chaCenter; + if (vlastTbl='Vpravo') then + wSheet2.Columns.Items[5].HorizAlignment:= chaRight; + end; + // konec pidno 6.5.2020 + + idx:= 7; + poz.First; + while not(poz.EOF) do + begin + wSheet2.AsString[0, idx]:= cObj; + wSheet2.AsInteger[1, idx]:= idx-6; // VarToStr(poz.FieldValues(0)); + wSheet2.AsString[2, idx]:= VarToStr(poz.FieldValues(0)); // RegCis + wSheet2.AsFloat[3, idx]:= StrToFloat(VarToStr(poz.FieldValues(2))); // mnozstvi + + dat:= VarToStr(poz.FieldValues(1)); + if (dat<>'') then + wSheet2.AsString[4, idx]:= dat; + + // pidno 6.5.2020 + if ZobrTypKooObj then + wSheet2.AsString[5, idx]:= VarToStr(poz.FieldValues(3)); // Typ objednvky - poznmka z kmenov karty + // konec pidno 6.5.2020 + + Inc(idx); + poz.Next; + end; + wSheet2.AutoWidthCols(0, 4); + end; + + + // if Helios.YesNo('Mm perovnat poloky objednvky podle datumu a reg.sla ?',false) then + // PrerovnejPolozkyKoopObj(Helios,idKObj); + + // lSQL:= 'SELECT pko.Polozka,kz.RegCis,pko.Kusy,pko.PozadTerDod_X FROM ' + tblPKObj + ' pko'; // zakomentovno 6.5.2020 + lSQL:= 'SELECT pko.Polozka, kz.RegCis, pko.Kusy, pko.PozadTerDod_X, dbo._ef_NTS_TypObjednavkyKZKooP(kz.id, pko.id), kz.ID AS IDKmen' + + ' FROM ' + tblPKObj + ' pko' // pidno 6.5.2020 + + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IdPrikaz=p.id)' + + ' INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)' + + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj); + + { + lSQL:= 'CREATE TABLE #Vystup (Pozice INT IDENTITY(1,1),RegCis NVARCHAR(20),Polozka INT,Kusu NUMERIC(19,6)) ' + CRLF; + lSQL:= lSQL + 'INSERT INTO #Vystup (RegCis,Polozka,Kusu) '; + lSQL:= lSQL + 'SELECT DISTINCT(kz.RegCis),pko.Polozka,SUM(pko.Kusy) FROM ' + tblPKObj + ' pko'; + lSQL:= lSQL + ' INNER JOIN ' + tblPrikaz + ' p ON (pko.IDPrikaz=p.id) INNER JOIN ' + tblKZ + ' kz ON (p.IDTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE pko.IDObjednavky=' + IntToStr(idKObj) + ' GROUP BY kz.RegCis,pko.Polozka ORDER BY pko.Polozka' + CRLF; + lSQL:= lSQL + 'SELECT * FROM #Vystup'; + } + poz:= Helios.OpenSQL(lSQL); + if (poz.RecordCount>0) then + begin + poz.First; + idx:= 7; + if (listSumace) then + wSheet1:= xls.Add + else + wSheet1:= xls.Sheets[0]; + wSheet1.Name:= 'Detail'; + wSheet1.AsString[0,0]:= 'Objednavatel'; + wSheet1.AsString[2,0]:= strLov; + wSheet1.AsString[0,2]:= 'Dodavatel:'; + wSheet1.AsString[2,2]:= dodav; + wSheet1.AsString[0,4]:= 'Datum vystaven:'; + wSheet1.AsString[2,4]:= datKO; + wSheet1.AsString[0,6]:= 's.obj.'; + wSheet1.AsString[1,6]:= 'Po..'; + wSheet1.Columns.Items[1].NumberFormat:= '##0'; + wSheet1.Columns.Items[1].HorizAlignment:= chaCenter; + wSheet1.AsString[2,6]:= 'slo vrobku'; + wSheet1.AsString[3,6]:= 'Mnostv'; + wSheet1.Columns.Items[3].NumberFormat:= '###,##0.###'; + wSheet1.AsString[4,6]:= 'Splnit do'; + wSheet1.Columns.Items[4].NumberFormat:= 'DD.MM.YYYY'; + wSheet1.Columns.Items[4].HorizAlignment:= chaCenter; + + // pidno 6.5.2020 + if ZobrTypKooObj then + begin + wSheet1.AsString[5,6]:= NadpisTypuKoopObj; + if (vlastTbl='NaStred') then + wSheet1.Columns.Items[5].HorizAlignment:= chaCenter; + if (vlastTbl='Vpravo') then + wSheet1.Columns.Items[5].HorizAlignment:= chaRight; + + wSheet1.AsString[6,6]:= 'JCena'; + wSheet1.Columns.Items[6].NumberFormat:= '###,##0.###'; + end + // konec pidno 6.5.2020 + else + begin + wSheet1.AsString[5,6]:= 'JCena'; + wSheet1.Columns.Items[5].NumberFormat:= '###,##0.###'; + end; + + + while not(poz.EOF) do + begin + wSheet1.AsString[0, idx]:= cObj; + wSheet1.AsInteger[1, idx]:= VarToStr(poz.FieldByNameValues('Polozka')).ToInteger; // polozka + wSheet1.AsString[2, idx]:= VarToStr(poz.FieldByNameValues('RegCis')); // RegCis + wSheet1.AsFloat[3, idx]:= StrToFloat(VarToStr(poz.FieldByNameValues('Kusy'))); // mnozstvi + + dat:= ''; + if not(VarIsNull(poz.FieldByNameValues('PozadTerDod_X'))) then + dat:= VarToStr(poz.FieldByNameValues('PozadTerDod_X')); + if (dat<>'') then + wSheet1.AsString[4, idx]:= dat; + + idKZ:= VarToStr(poz.FieldByNameValues('IDKmen')).ToInteger; + jCena:= 0; + if (idDZCenik>0) then + begin + lSQL:= 'SELECT TOP(1) CASE WHEN d.Mena=N''CZK'' THEN pz.JCbezDaniKcPoS ELSE pz.JCBezDaniValPoS END AS JCPolozky FROM ' + + tblPZ + ' pz INNER JOIN ' + tblSS + ' ss ON (ss.ID=pz.IDZboSklad) INNER JOIN ' + tblDZ + + ' d ON (d.ID=pz.IDDoklad) WHERE d.ID=' + idDZCenik.ToString + ' AND ss.IDKmenZbozi=' + idKZ.ToString; + with Helios.OpenSQL (lSQL) do + if (RecordCount>0) then + jCena:= VarToStr(FieldByNameValues('JCPolozky')).ToDouble; + end; + + // pidno 6.5.2020 + if ZobrTypKooObj then + begin + wSheet1.AsString[5, idx]:= VarToStr(poz.FieldValues(4)); // Typ objednvky - poznmka z kmenov karty + if (jCena>0) then + wSheet1.AsFloat[6, idx]:= jCena; + end + // konec pidno 6.5.2020 + else + if (jCena>0) then + wSheet1.AsFloat[5, idx]:= jCena; + + + Inc(idx); + poz.Next; + end; + wSheet1.AutoWidthCols(0, 4); + end; + + if (listSumace) then + begin + xls.Sheets[0].Rows.Items[6].FontStyle:= [xfsBold]; + xls.Sheets[0].Columns.Items[1].HorizAlignment:= chaCenter; + xls.Sheets[0].Columns.Items[3].HorizAlignment:= chaCenter; + xls.Sheets[0].Columns.Items[4].HorizAlignment:= chaCenter; + end; + + if not(listSumace) then + xls.Sheets[0].Rows.Items[6].FontStyle:= [xfsBold] + else + xls.Sheets[1].Rows.Items[6].FontStyle:= [xfsBold]; + + //pidno 10.6.2022 + if (Nazev.Trim<>'') then + NazevSouboru:= Nazev.Trim + else + NazevSouboru:= 'Obj-' + cObj + '.xls'; + //konec pidn 10.6.2022 + + //xls.SaveToFile(fld + '\Obj-' + cObj + '.xls'); // zakomentovno 10.6.2022 + xls.SaveToFile(fld + '\' + NazevSouboru); // pidno 10.6.2022 + Vysledek:= NazevSouboru; // pidno 10.6.2022 + + finally + xls.Free; + end; + + if (ZobrazInfoKonec=1) then + Helios.Info('Export souboru ukonen.'); + end; + end + else + Helios.Error(#1'Kooperan objednvka neobsahuje dnou poloku.'#1); + end + else + Helios.Error(#1'Nelze identifikovat Kooperan objednvku.'#1); + + ExportKoopObjXls := Vysledek; + + end; + + + +end. diff --git a/HeODefine.inc b/HeODefine.inc new file mode 100644 index 0000000..e69de29 diff --git a/IEGate.pas b/IEGate.pas new file mode 100644 index 0000000..165bbf4 --- /dev/null +++ b/IEGate.pas @@ -0,0 +1,2843 @@ +// ************************************************************************ // +// The types declared in this file were generated from data read from the +// WSDL File described below: +// WSDL : http://www.ppl.cz/IEGate/IEGate.asmx?WSDL +// >Import : http://www.ppl.cz/IEGate/IEGate.asmx?WSDL>0 +// >Import : http://www.ppl.cz/IEGate/IEGate.asmx?WSDL>1 +// Encoding : utf-8 +// Codegen : [wfForceSOAP12+] +// Version : 1.0 +// (5.10.2011 16:44:43 - - $Rev: 25127 $) +// ************************************************************************ // + +unit IEGate; + +interface + +uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns; + +const + IS_OPTN = $0001; + IS_UNBD = $0002; + IS_NLBL = $0004; + IS_UNQL = $0008; + IS_REF = $0080; + + +type + + // ************************************************************************ // + // The following types, referred to in the WSDL document are not being represented + // in this file. They are either aliases[@] of other types represented or were referred + // to but never[!] declared in the document. The types from the latter category + // typically map to predefined/known XML or Embarcadero types; however, they could also + // indicate incorrect WSDL documents that failed to declare or import a schema type. + // ************************************************************************ // + // !:int - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:string - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:decimal - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:boolean - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:unsignedByte - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:dateTime - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:float - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !:schema - "http://www.w3.org/2001/XMLSchema"[Gbl] + // !: - "PPLIEGate"[] + + Package_ = class; { "PPLIEGate"[GblCplx] } + City = class; { "PPLIEGate"[GblCplx] } + PackageWeighed = class; { "PPLIEGate"[GblCplx] } + ZipCode = class; { "PPLIEGate"[GblCplx] } + PackageEsyco = class; { "PPLIEGate"[GblCplx] } + PackageInfo = class; { "PPLIEGate"[GblCplx] } + Order = class; { "PPLIEGate"[GblCplx] } + StatusDHL = class; { "PPLIEGate"[GblCplx] } + OrderCart = class; { "PPLIEGate"[GblCplx] } + PackageInfo2 = class; { "PPLIEGate"[GblElm] } + colOrderCart = class; { "PPLIEGate"[GblCplx] } + colStatus = class; { "PPLIEGate"[GblCplx] } + colPackageHoffmann = class; { "PPLIEGate"[GblCplx] } + colPackageWeighed = class; { "PPLIEGate"[GblCplx] } + colOrder = class; { "PPLIEGate"[GblCplx] } + colPackage = class; { "PPLIEGate"[GblCplx] } + colPackage2 = class; { "PPLIEGate"[GblElm] } + colPPLSprint = class; { "PPLIEGate"[GblCplx] } + + + + // ************************************************************************ // + // XML : Package, global, + // Namespace : PPLIEGate + // ************************************************************************ // + Package_ = class(TRemotable) + private + FPackageID: string; + FPackageID_Specified: boolean; + FPackageIDCUS: string; + FPackageIDCUS_Specified: boolean; + FZipCode: string; + FZipCode_Specified: boolean; + FCountry: string; + FCountry_Specified: boolean; + FCodPrice: TXSDecimal; + FCodPriceCurID: string; + FCodPriceCurID_Specified: boolean; + FVarSym: string; + FVarSym_Specified: boolean; + FConsigneeName: string; + FConsigneeName_Specified: boolean; + FConsigneeStreet: string; + FConsigneeStreet_Specified: boolean; + FConsigneeCity: string; + FConsigneeCity_Specified: boolean; + FPhone: string; + FPhone_Specified: boolean; + FContact: string; + FContact_Specified: boolean; + FEveningDelivery: Boolean; + FCustRef: string; + FCustRef_Specified: boolean; + FLength: string; + FLength_Specified: boolean; + FHeight: string; + FHeight_Specified: boolean; + FWidth: string; + FWidth_Specified: boolean; + FRecMail: string; + FRecMail_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetPackageID(Index: Integer; const Astring: string); + function PackageID_Specified(Index: Integer): boolean; + procedure SetPackageIDCUS(Index: Integer; const Astring: string); + function PackageIDCUS_Specified(Index: Integer): boolean; + procedure SetZipCode(Index: Integer; const Astring: string); + function ZipCode_Specified(Index: Integer): boolean; + procedure SetCountry(Index: Integer; const Astring: string); + function Country_Specified(Index: Integer): boolean; + procedure SetCodPriceCurID(Index: Integer; const Astring: string); + function CodPriceCurID_Specified(Index: Integer): boolean; + procedure SetVarSym(Index: Integer; const Astring: string); + function VarSym_Specified(Index: Integer): boolean; + procedure SetConsigneeName(Index: Integer; const Astring: string); + function ConsigneeName_Specified(Index: Integer): boolean; + procedure SetConsigneeStreet(Index: Integer; const Astring: string); + function ConsigneeStreet_Specified(Index: Integer): boolean; + procedure SetConsigneeCity(Index: Integer; const Astring: string); + function ConsigneeCity_Specified(Index: Integer): boolean; + procedure SetPhone(Index: Integer; const Astring: string); + function Phone_Specified(Index: Integer): boolean; + procedure SetContact(Index: Integer; const Astring: string); + function Contact_Specified(Index: Integer): boolean; + procedure SetCustRef(Index: Integer; const Astring: string); + function CustRef_Specified(Index: Integer): boolean; + procedure SetLength(Index: Integer; const Astring: string); + function Length_Specified(Index: Integer): boolean; + procedure SetHeight(Index: Integer; const Astring: string); + function Height_Specified(Index: Integer): boolean; + procedure SetWidth(Index: Integer; const Astring: string); + function Width_Specified(Index: Integer): boolean; + procedure SetRecMail(Index: Integer; const Astring: string); + function RecMail_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property PackageID: string Index (IS_OPTN) read FPackageID write SetPackageID stored PackageID_Specified; + property PackageIDCUS: string Index (IS_OPTN) read FPackageIDCUS write SetPackageIDCUS stored PackageIDCUS_Specified; + property ZipCode: string Index (IS_OPTN) read FZipCode write SetZipCode stored ZipCode_Specified; + property Country: string Index (IS_OPTN) read FCountry write SetCountry stored Country_Specified; + property CodPrice: TXSDecimal read FCodPrice write FCodPrice; + property CodPriceCurID: string Index (IS_OPTN) read FCodPriceCurID write SetCodPriceCurID stored CodPriceCurID_Specified; + property VarSym: string Index (IS_OPTN) read FVarSym write SetVarSym stored VarSym_Specified; + property ConsigneeName: string Index (IS_OPTN) read FConsigneeName write SetConsigneeName stored ConsigneeName_Specified; + property ConsigneeStreet: string Index (IS_OPTN) read FConsigneeStreet write SetConsigneeStreet stored ConsigneeStreet_Specified; + property ConsigneeCity: string Index (IS_OPTN) read FConsigneeCity write SetConsigneeCity stored ConsigneeCity_Specified; + property Phone: string Index (IS_OPTN) read FPhone write SetPhone stored Phone_Specified; + property Contact: string Index (IS_OPTN) read FContact write SetContact stored Contact_Specified; + property EveningDelivery: Boolean read FEveningDelivery write FEveningDelivery; + property CustRef: string Index (IS_OPTN) read FCustRef write SetCustRef stored CustRef_Specified; + property Length: string Index (IS_OPTN) read FLength write SetLength stored Length_Specified; + property Height: string Index (IS_OPTN) read FHeight write SetHeight stored Height_Specified; + property Width: string Index (IS_OPTN) read FWidth write SetWidth stored Width_Specified; + property RecMail: string Index (IS_OPTN) read FRecMail write SetRecMail stored RecMail_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : City, global, + // Namespace : PPLIEGate + // ************************************************************************ // + City = class(TRemotable) + private + FZip: string; + FZip_Specified: boolean; + FCity: string; + FCity_Specified: boolean; + FRegion: string; + FRegion_Specified: boolean; + FPost: string; + FPost_Specified: boolean; + FCountry: string; + FCountry_Specified: boolean; + FReject: Boolean; + procedure SetZip(Index: Integer; const Astring: string); + function Zip_Specified(Index: Integer): boolean; + procedure SetCity(Index: Integer; const Astring: string); + function City_Specified(Index: Integer): boolean; + procedure SetRegion(Index: Integer; const Astring: string); + function Region_Specified(Index: Integer): boolean; + procedure SetPost(Index: Integer; const Astring: string); + function Post_Specified(Index: Integer): boolean; + procedure SetCountry(Index: Integer; const Astring: string); + function Country_Specified(Index: Integer): boolean; + published + property Zip: string Index (IS_OPTN) read FZip write SetZip stored Zip_Specified; + property City: string Index (IS_OPTN) read FCity write SetCity stored City_Specified; + property Region: string Index (IS_OPTN) read FRegion write SetRegion stored Region_Specified; + property Post: string Index (IS_OPTN) read FPost write SetPost stored Post_Specified; + property Country: string Index (IS_OPTN) read FCountry write SetCountry stored Country_Specified; + property Reject: Boolean read FReject write FReject; + end; + + + + // ************************************************************************ // + // XML : PackageWeighed, global, + // Namespace : PPLIEGate + // ************************************************************************ // + PackageWeighed = class(TRemotable) + private + FPackageID: string; + FPackageID_Specified: boolean; + FPackageIDCUS: string; + FPackageIDCUS_Specified: boolean; + FInputDestination: string; + FInputDestination_Specified: boolean; + FOutputDestination: string; + FOutputDestination_Specified: boolean; + FZipCode: string; + FZipCode_Specified: boolean; + FWeight: TXSDecimal; + FCountry: string; + FCountry_Specified: boolean; + FPrice: TXSDecimal; + FPriceCurID: string; + FPriceCurID_Specified: boolean; + FConsigneeName: string; + FConsigneeName_Specified: boolean; + FConsigneeStreet: string; + FConsigneeStreet_Specified: boolean; + FConsigneeCity: string; + FConsigneeCity_Specified: boolean; + FPhone: string; + FPhone_Specified: boolean; + FVarSym: string; + FVarSym_Specified: boolean; + FAccount: string; + FAccount_Specified: boolean; + FBankCode: string; + FBankCode_Specified: boolean; + FSpecSymbol: string; + FSpecSymbol_Specified: boolean; + FDateDelivFrom: string; + FDateDelivFrom_Specified: boolean; + FDateDelivTo: string; + FDateDelivTo_Specified: boolean; + FContact: string; + FContact_Specified: boolean; + FCustRef: string; + FCustRef_Specified: boolean; + FEveningDelivery: Boolean; + FLength: string; + FLength_Specified: boolean; + FHeight: string; + FHeight_Specified: boolean; + FWidth: string; + FWidth_Specified: boolean; + FRecMail: string; + FRecMail_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetPackageID(Index: Integer; const Astring: string); + function PackageID_Specified(Index: Integer): boolean; + procedure SetPackageIDCUS(Index: Integer; const Astring: string); + function PackageIDCUS_Specified(Index: Integer): boolean; + procedure SetInputDestination(Index: Integer; const Astring: string); + function InputDestination_Specified(Index: Integer): boolean; + procedure SetOutputDestination(Index: Integer; const Astring: string); + function OutputDestination_Specified(Index: Integer): boolean; + procedure SetZipCode(Index: Integer; const Astring: string); + function ZipCode_Specified(Index: Integer): boolean; + procedure SetCountry(Index: Integer; const Astring: string); + function Country_Specified(Index: Integer): boolean; + procedure SetPriceCurID(Index: Integer; const Astring: string); + function PriceCurID_Specified(Index: Integer): boolean; + procedure SetConsigneeName(Index: Integer; const Astring: string); + function ConsigneeName_Specified(Index: Integer): boolean; + procedure SetConsigneeStreet(Index: Integer; const Astring: string); + function ConsigneeStreet_Specified(Index: Integer): boolean; + procedure SetConsigneeCity(Index: Integer; const Astring: string); + function ConsigneeCity_Specified(Index: Integer): boolean; + procedure SetPhone(Index: Integer; const Astring: string); + function Phone_Specified(Index: Integer): boolean; + procedure SetVarSym(Index: Integer; const Astring: string); + function VarSym_Specified(Index: Integer): boolean; + procedure SetAccount(Index: Integer; const Astring: string); + function Account_Specified(Index: Integer): boolean; + procedure SetBankCode(Index: Integer; const Astring: string); + function BankCode_Specified(Index: Integer): boolean; + procedure SetSpecSymbol(Index: Integer; const Astring: string); + function SpecSymbol_Specified(Index: Integer): boolean; + procedure SetDateDelivFrom(Index: Integer; const Astring: string); + function DateDelivFrom_Specified(Index: Integer): boolean; + procedure SetDateDelivTo(Index: Integer; const Astring: string); + function DateDelivTo_Specified(Index: Integer): boolean; + procedure SetContact(Index: Integer; const Astring: string); + function Contact_Specified(Index: Integer): boolean; + procedure SetCustRef(Index: Integer; const Astring: string); + function CustRef_Specified(Index: Integer): boolean; + procedure SetLength(Index: Integer; const Astring: string); + function Length_Specified(Index: Integer): boolean; + procedure SetHeight(Index: Integer; const Astring: string); + function Height_Specified(Index: Integer): boolean; + procedure SetWidth(Index: Integer; const Astring: string); + function Width_Specified(Index: Integer): boolean; + procedure SetRecMail(Index: Integer; const Astring: string); + function RecMail_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property PackageID: string Index (IS_OPTN) read FPackageID write SetPackageID stored PackageID_Specified; + property PackageIDCUS: string Index (IS_OPTN) read FPackageIDCUS write SetPackageIDCUS stored PackageIDCUS_Specified; + property InputDestination: string Index (IS_OPTN) read FInputDestination write SetInputDestination stored InputDestination_Specified; + property OutputDestination: string Index (IS_OPTN) read FOutputDestination write SetOutputDestination stored OutputDestination_Specified; + property ZipCode: string Index (IS_OPTN) read FZipCode write SetZipCode stored ZipCode_Specified; + property Weight: TXSDecimal read FWeight write FWeight; + property Country: string Index (IS_OPTN) read FCountry write SetCountry stored Country_Specified; + property Price: TXSDecimal read FPrice write FPrice; + property PriceCurID: string Index (IS_OPTN) read FPriceCurID write SetPriceCurID stored PriceCurID_Specified; + property ConsigneeName: string Index (IS_OPTN) read FConsigneeName write SetConsigneeName stored ConsigneeName_Specified; + property ConsigneeStreet: string Index (IS_OPTN) read FConsigneeStreet write SetConsigneeStreet stored ConsigneeStreet_Specified; + property ConsigneeCity: string Index (IS_OPTN) read FConsigneeCity write SetConsigneeCity stored ConsigneeCity_Specified; + property Phone: string Index (IS_OPTN) read FPhone write SetPhone stored Phone_Specified; + property VarSym: string Index (IS_OPTN) read FVarSym write SetVarSym stored VarSym_Specified; + property Account: string Index (IS_OPTN) read FAccount write SetAccount stored Account_Specified; + property BankCode: string Index (IS_OPTN) read FBankCode write SetBankCode stored BankCode_Specified; + property SpecSymbol: string Index (IS_OPTN) read FSpecSymbol write SetSpecSymbol stored SpecSymbol_Specified; + property DateDelivFrom: string Index (IS_OPTN) read FDateDelivFrom write SetDateDelivFrom stored DateDelivFrom_Specified; + property DateDelivTo: string Index (IS_OPTN) read FDateDelivTo write SetDateDelivTo stored DateDelivTo_Specified; + property Contact: string Index (IS_OPTN) read FContact write SetContact stored Contact_Specified; + property CustRef: string Index (IS_OPTN) read FCustRef write SetCustRef stored CustRef_Specified; + property EveningDelivery: Boolean read FEveningDelivery write FEveningDelivery; + property Length: string Index (IS_OPTN) read FLength write SetLength stored Length_Specified; + property Height: string Index (IS_OPTN) read FHeight write SetHeight stored Height_Specified; + property Width: string Index (IS_OPTN) read FWidth write SetWidth stored Width_Specified; + property RecMail: string Index (IS_OPTN) read FRecMail write SetRecMail stored RecMail_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : ZipCode, global, + // Namespace : PPLIEGate + // ************************************************************************ // + ZipCode = class(TRemotable) + private + FZip: string; + FZip_Specified: boolean; + FPost: string; + FPost_Specified: boolean; + FDepot: string; + FDepot_Specified: boolean; + FDestination: string; + FDestination_Specified: boolean; + FVisual: Byte; + FEveningDelivery: Boolean; + procedure SetZip(Index: Integer; const Astring: string); + function Zip_Specified(Index: Integer): boolean; + procedure SetPost(Index: Integer; const Astring: string); + function Post_Specified(Index: Integer): boolean; + procedure SetDepot(Index: Integer; const Astring: string); + function Depot_Specified(Index: Integer): boolean; + procedure SetDestination(Index: Integer; const Astring: string); + function Destination_Specified(Index: Integer): boolean; + published + property Zip: string Index (IS_OPTN) read FZip write SetZip stored Zip_Specified; + property Post: string Index (IS_OPTN) read FPost write SetPost stored Post_Specified; + property Depot: string Index (IS_OPTN) read FDepot write SetDepot stored Depot_Specified; + property Destination: string Index (IS_OPTN) read FDestination write SetDestination stored Destination_Specified; + property Visual: Byte read FVisual write FVisual; + property EveningDelivery: Boolean read FEveningDelivery write FEveningDelivery; + end; + + + + // ************************************************************************ // + // XML : PackageEsyco, global, + // Namespace : PPLIEGate + // ************************************************************************ // + PackageEsyco = class(TRemotable) + private + FPackageID: string; + FPackageID_Specified: boolean; + FZipCode: string; + FZipCode_Specified: boolean; + FCountry: string; + FCountry_Specified: boolean; + FCodPrice: TXSDecimal; + FVarSym: string; + FVarSym_Specified: boolean; + FAccount: string; + FAccount_Specified: boolean; + FBankCode: string; + FBankCode_Specified: boolean; + FSpecSymbol: string; + FSpecSymbol_Specified: boolean; + FConsigneeName: string; + FConsigneeName_Specified: boolean; + FConsigneeStreet: string; + FConsigneeStreet_Specified: boolean; + FConsigneeCity: string; + FConsigneeCity_Specified: boolean; + FPhone: string; + FPhone_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetPackageID(Index: Integer; const Astring: string); + function PackageID_Specified(Index: Integer): boolean; + procedure SetZipCode(Index: Integer; const Astring: string); + function ZipCode_Specified(Index: Integer): boolean; + procedure SetCountry(Index: Integer; const Astring: string); + function Country_Specified(Index: Integer): boolean; + procedure SetVarSym(Index: Integer; const Astring: string); + function VarSym_Specified(Index: Integer): boolean; + procedure SetAccount(Index: Integer; const Astring: string); + function Account_Specified(Index: Integer): boolean; + procedure SetBankCode(Index: Integer; const Astring: string); + function BankCode_Specified(Index: Integer): boolean; + procedure SetSpecSymbol(Index: Integer; const Astring: string); + function SpecSymbol_Specified(Index: Integer): boolean; + procedure SetConsigneeName(Index: Integer; const Astring: string); + function ConsigneeName_Specified(Index: Integer): boolean; + procedure SetConsigneeStreet(Index: Integer; const Astring: string); + function ConsigneeStreet_Specified(Index: Integer): boolean; + procedure SetConsigneeCity(Index: Integer; const Astring: string); + function ConsigneeCity_Specified(Index: Integer): boolean; + procedure SetPhone(Index: Integer; const Astring: string); + function Phone_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property PackageID: string Index (IS_OPTN) read FPackageID write SetPackageID stored PackageID_Specified; + property ZipCode: string Index (IS_OPTN) read FZipCode write SetZipCode stored ZipCode_Specified; + property Country: string Index (IS_OPTN) read FCountry write SetCountry stored Country_Specified; + property CodPrice: TXSDecimal read FCodPrice write FCodPrice; + property VarSym: string Index (IS_OPTN) read FVarSym write SetVarSym stored VarSym_Specified; + property Account: string Index (IS_OPTN) read FAccount write SetAccount stored Account_Specified; + property BankCode: string Index (IS_OPTN) read FBankCode write SetBankCode stored BankCode_Specified; + property SpecSymbol: string Index (IS_OPTN) read FSpecSymbol write SetSpecSymbol stored SpecSymbol_Specified; + property ConsigneeName: string Index (IS_OPTN) read FConsigneeName write SetConsigneeName stored ConsigneeName_Specified; + property ConsigneeStreet: string Index (IS_OPTN) read FConsigneeStreet write SetConsigneeStreet stored ConsigneeStreet_Specified; + property ConsigneeCity: string Index (IS_OPTN) read FConsigneeCity write SetConsigneeCity stored ConsigneeCity_Specified; + property Phone: string Index (IS_OPTN) read FPhone write SetPhone stored Phone_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + ArrayOfZipCode = array of ZipCode; { "PPLIEGate"[GblCplx] } + ArrayOfCity = array of City; { "PPLIEGate"[GblCplx] } + ArrayOfString = array of string; { "PPLIEGate"[GblCplx] } + + + // ************************************************************************ // + // XML : PackageInfo, global, + // Namespace : PPLIEGate + // ************************************************************************ // + PackageInfo = class(TRemotable) + private + FPackageID: string; + FPackageID_Specified: boolean; + FPackageIDCus: string; + FPackageIDCus_Specified: boolean; + FCustReference: string; + FCustReference_Specified: boolean; + FInputDepoCode: string; + FInputDepoCode_Specified: boolean; + FInputDepoName: string; + FInputDepoName_Specified: boolean; + FOutputDepoCode: string; + FOutputDepoCode_Specified: boolean; + FOutputDepoName: string; + FOutputDepoName_Specified: boolean; + FRecZipCode: string; + FRecZipCode_Specified: boolean; + FRecCity: string; + FRecCity_Specified: boolean; + FWeight: Single; + FDateInputDepo: string; + FDateInputDepo_Specified: boolean; + FDateWeighed: string; + FDateWeighed_Specified: boolean; + FDateCentral: string; + FDateCentral_Specified: boolean; + FDateOutputDepo: string; + FDateOutputDepo_Specified: boolean; + FDateNotDeliv: string; + FDateNotDeliv_Specified: boolean; + FNotDelivCode: string; + FNotDelivCode_Specified: boolean; + FNotDelivName: string; + FNotDelivName_Specified: boolean; + FDateDeliv: string; + FDateDeliv_Specified: boolean; + FDelivPerson: string; + FDelivPerson_Specified: boolean; + FDateExport: string; + FDateExport_Specified: boolean; + FDateImport: string; + FDateImport_Specified: boolean; + FInputCountry: string; + FInputCountry_Specified: boolean; + FOutputCountry: string; + FOutputCountry_Specified: boolean; + FInvoiceNumber: string; + FInvoiceNumber_Specified: boolean; + FReturnToSender: string; + FReturnToSender_Specified: boolean; + FSendInfo: string; + FSendInfo_Specified: boolean; + FCardPay: Boolean; + FEveningDelivery: Boolean; + FLoadingDate: string; + FLoadingDate_Specified: boolean; + FCodPrice: TXSDecimal; + FDateTakeMoney: string; + FDateTakeMoney_Specified: boolean; + FDateMoneyToBank: string; + FDateMoneyToBank_Specified: boolean; + FDateMoneyToCustomer: string; + FDateMoneyToCustomer_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetPackageID(Index: Integer; const Astring: string); + function PackageID_Specified(Index: Integer): boolean; + procedure SetPackageIDCus(Index: Integer; const Astring: string); + function PackageIDCus_Specified(Index: Integer): boolean; + procedure SetCustReference(Index: Integer; const Astring: string); + function CustReference_Specified(Index: Integer): boolean; + procedure SetInputDepoCode(Index: Integer; const Astring: string); + function InputDepoCode_Specified(Index: Integer): boolean; + procedure SetInputDepoName(Index: Integer; const Astring: string); + function InputDepoName_Specified(Index: Integer): boolean; + procedure SetOutputDepoCode(Index: Integer; const Astring: string); + function OutputDepoCode_Specified(Index: Integer): boolean; + procedure SetOutputDepoName(Index: Integer; const Astring: string); + function OutputDepoName_Specified(Index: Integer): boolean; + procedure SetRecZipCode(Index: Integer; const Astring: string); + function RecZipCode_Specified(Index: Integer): boolean; + procedure SetRecCity(Index: Integer; const Astring: string); + function RecCity_Specified(Index: Integer): boolean; + procedure SetDateInputDepo(Index: Integer; const Astring: string); + function DateInputDepo_Specified(Index: Integer): boolean; + procedure SetDateWeighed(Index: Integer; const Astring: string); + function DateWeighed_Specified(Index: Integer): boolean; + procedure SetDateCentral(Index: Integer; const Astring: string); + function DateCentral_Specified(Index: Integer): boolean; + procedure SetDateOutputDepo(Index: Integer; const Astring: string); + function DateOutputDepo_Specified(Index: Integer): boolean; + procedure SetDateNotDeliv(Index: Integer; const Astring: string); + function DateNotDeliv_Specified(Index: Integer): boolean; + procedure SetNotDelivCode(Index: Integer; const Astring: string); + function NotDelivCode_Specified(Index: Integer): boolean; + procedure SetNotDelivName(Index: Integer; const Astring: string); + function NotDelivName_Specified(Index: Integer): boolean; + procedure SetDateDeliv(Index: Integer; const Astring: string); + function DateDeliv_Specified(Index: Integer): boolean; + procedure SetDelivPerson(Index: Integer; const Astring: string); + function DelivPerson_Specified(Index: Integer): boolean; + procedure SetDateExport(Index: Integer; const Astring: string); + function DateExport_Specified(Index: Integer): boolean; + procedure SetDateImport(Index: Integer; const Astring: string); + function DateImport_Specified(Index: Integer): boolean; + procedure SetInputCountry(Index: Integer; const Astring: string); + function InputCountry_Specified(Index: Integer): boolean; + procedure SetOutputCountry(Index: Integer; const Astring: string); + function OutputCountry_Specified(Index: Integer): boolean; + procedure SetInvoiceNumber(Index: Integer; const Astring: string); + function InvoiceNumber_Specified(Index: Integer): boolean; + procedure SetReturnToSender(Index: Integer; const Astring: string); + function ReturnToSender_Specified(Index: Integer): boolean; + procedure SetSendInfo(Index: Integer; const Astring: string); + function SendInfo_Specified(Index: Integer): boolean; + procedure SetLoadingDate(Index: Integer; const Astring: string); + function LoadingDate_Specified(Index: Integer): boolean; + procedure SetDateTakeMoney(Index: Integer; const Astring: string); + function DateTakeMoney_Specified(Index: Integer): boolean; + procedure SetDateMoneyToBank(Index: Integer; const Astring: string); + function DateMoneyToBank_Specified(Index: Integer): boolean; + procedure SetDateMoneyToCustomer(Index: Integer; const Astring: string); + function DateMoneyToCustomer_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property PackageID: string Index (IS_OPTN) read FPackageID write SetPackageID stored PackageID_Specified; + property PackageIDCus: string Index (IS_OPTN) read FPackageIDCus write SetPackageIDCus stored PackageIDCus_Specified; + property CustReference: string Index (IS_OPTN) read FCustReference write SetCustReference stored CustReference_Specified; + property InputDepoCode: string Index (IS_OPTN) read FInputDepoCode write SetInputDepoCode stored InputDepoCode_Specified; + property InputDepoName: string Index (IS_OPTN) read FInputDepoName write SetInputDepoName stored InputDepoName_Specified; + property OutputDepoCode: string Index (IS_OPTN) read FOutputDepoCode write SetOutputDepoCode stored OutputDepoCode_Specified; + property OutputDepoName: string Index (IS_OPTN) read FOutputDepoName write SetOutputDepoName stored OutputDepoName_Specified; + property RecZipCode: string Index (IS_OPTN) read FRecZipCode write SetRecZipCode stored RecZipCode_Specified; + property RecCity: string Index (IS_OPTN) read FRecCity write SetRecCity stored RecCity_Specified; + property Weight: Single read FWeight write FWeight; + property DateInputDepo: string Index (IS_OPTN) read FDateInputDepo write SetDateInputDepo stored DateInputDepo_Specified; + property DateWeighed: string Index (IS_OPTN) read FDateWeighed write SetDateWeighed stored DateWeighed_Specified; + property DateCentral: string Index (IS_OPTN) read FDateCentral write SetDateCentral stored DateCentral_Specified; + property DateOutputDepo: string Index (IS_OPTN) read FDateOutputDepo write SetDateOutputDepo stored DateOutputDepo_Specified; + property DateNotDeliv: string Index (IS_OPTN) read FDateNotDeliv write SetDateNotDeliv stored DateNotDeliv_Specified; + property NotDelivCode: string Index (IS_OPTN) read FNotDelivCode write SetNotDelivCode stored NotDelivCode_Specified; + property NotDelivName: string Index (IS_OPTN) read FNotDelivName write SetNotDelivName stored NotDelivName_Specified; + property DateDeliv: string Index (IS_OPTN) read FDateDeliv write SetDateDeliv stored DateDeliv_Specified; + property DelivPerson: string Index (IS_OPTN) read FDelivPerson write SetDelivPerson stored DelivPerson_Specified; + property DateExport: string Index (IS_OPTN) read FDateExport write SetDateExport stored DateExport_Specified; + property DateImport: string Index (IS_OPTN) read FDateImport write SetDateImport stored DateImport_Specified; + property InputCountry: string Index (IS_OPTN) read FInputCountry write SetInputCountry stored InputCountry_Specified; + property OutputCountry: string Index (IS_OPTN) read FOutputCountry write SetOutputCountry stored OutputCountry_Specified; + property InvoiceNumber: string Index (IS_OPTN) read FInvoiceNumber write SetInvoiceNumber stored InvoiceNumber_Specified; + property ReturnToSender: string Index (IS_OPTN) read FReturnToSender write SetReturnToSender stored ReturnToSender_Specified; + property SendInfo: string Index (IS_OPTN) read FSendInfo write SetSendInfo stored SendInfo_Specified; + property CardPay: Boolean read FCardPay write FCardPay; + property EveningDelivery: Boolean read FEveningDelivery write FEveningDelivery; + property LoadingDate: string Index (IS_OPTN) read FLoadingDate write SetLoadingDate stored LoadingDate_Specified; + property CodPrice: TXSDecimal read FCodPrice write FCodPrice; + property DateTakeMoney: string Index (IS_OPTN) read FDateTakeMoney write SetDateTakeMoney stored DateTakeMoney_Specified; + property DateMoneyToBank: string Index (IS_OPTN) read FDateMoneyToBank write SetDateMoneyToBank stored DateMoneyToBank_Specified; + property DateMoneyToCustomer: string Index (IS_OPTN) read FDateMoneyToCustomer write SetDateMoneyToCustomer stored DateMoneyToCustomer_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + ArrayOfPackageInfo = array of PackageInfo; { "PPLIEGate"[GblCplx] } + + + // ************************************************************************ // + // XML : Order, global, + // Namespace : PPLIEGate + // ************************************************************************ // + Order = class(TRemotable) + private + FOrdNumber: string; + FOrdNumber_Specified: boolean; + FCountPack: string; + FCountPack_Specified: boolean; + FSendName: string; + FSendName_Specified: boolean; + FSendStreet: string; + FSendStreet_Specified: boolean; + FSendCity: string; + FSendCity_Specified: boolean; + FSendZipCode: string; + FSendZipCode_Specified: boolean; + FSendContact: string; + FSendContact_Specified: boolean; + FSendPhone: string; + FSendPhone_Specified: boolean; + FSendDateFrom: TXSDateTime; + FSendDateTo: TXSDateTime; + FSendCountry: string; + FSendCountry_Specified: boolean; + FRecName: string; + FRecName_Specified: boolean; + FRecStreet: string; + FRecStreet_Specified: boolean; + FRecCity: string; + FRecCity_Specified: boolean; + FRecZipCode: string; + FRecZipCode_Specified: boolean; + FRecContact: string; + FRecContact_Specified: boolean; + FRecPhone: string; + FRecPhone_Specified: boolean; + FRecCountry: string; + FRecCountry_Specified: boolean; + FNote: string; + FNote_Specified: boolean; + FEmail: string; + FEmail_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetOrdNumber(Index: Integer; const Astring: string); + function OrdNumber_Specified(Index: Integer): boolean; + procedure SetCountPack(Index: Integer; const Astring: string); + function CountPack_Specified(Index: Integer): boolean; + procedure SetSendName(Index: Integer; const Astring: string); + function SendName_Specified(Index: Integer): boolean; + procedure SetSendStreet(Index: Integer; const Astring: string); + function SendStreet_Specified(Index: Integer): boolean; + procedure SetSendCity(Index: Integer; const Astring: string); + function SendCity_Specified(Index: Integer): boolean; + procedure SetSendZipCode(Index: Integer; const Astring: string); + function SendZipCode_Specified(Index: Integer): boolean; + procedure SetSendContact(Index: Integer; const Astring: string); + function SendContact_Specified(Index: Integer): boolean; + procedure SetSendPhone(Index: Integer; const Astring: string); + function SendPhone_Specified(Index: Integer): boolean; + procedure SetSendCountry(Index: Integer; const Astring: string); + function SendCountry_Specified(Index: Integer): boolean; + procedure SetRecName(Index: Integer; const Astring: string); + function RecName_Specified(Index: Integer): boolean; + procedure SetRecStreet(Index: Integer; const Astring: string); + function RecStreet_Specified(Index: Integer): boolean; + procedure SetRecCity(Index: Integer; const Astring: string); + function RecCity_Specified(Index: Integer): boolean; + procedure SetRecZipCode(Index: Integer; const Astring: string); + function RecZipCode_Specified(Index: Integer): boolean; + procedure SetRecContact(Index: Integer; const Astring: string); + function RecContact_Specified(Index: Integer): boolean; + procedure SetRecPhone(Index: Integer; const Astring: string); + function RecPhone_Specified(Index: Integer): boolean; + procedure SetRecCountry(Index: Integer; const Astring: string); + function RecCountry_Specified(Index: Integer): boolean; + procedure SetNote(Index: Integer; const Astring: string); + function Note_Specified(Index: Integer): boolean; + procedure SetEmail(Index: Integer; const Astring: string); + function Email_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property OrdNumber: string Index (IS_OPTN) read FOrdNumber write SetOrdNumber stored OrdNumber_Specified; + property CountPack: string Index (IS_OPTN) read FCountPack write SetCountPack stored CountPack_Specified; + property SendName: string Index (IS_OPTN) read FSendName write SetSendName stored SendName_Specified; + property SendStreet: string Index (IS_OPTN) read FSendStreet write SetSendStreet stored SendStreet_Specified; + property SendCity: string Index (IS_OPTN) read FSendCity write SetSendCity stored SendCity_Specified; + property SendZipCode: string Index (IS_OPTN) read FSendZipCode write SetSendZipCode stored SendZipCode_Specified; + property SendContact: string Index (IS_OPTN) read FSendContact write SetSendContact stored SendContact_Specified; + property SendPhone: string Index (IS_OPTN) read FSendPhone write SetSendPhone stored SendPhone_Specified; + property SendDateFrom: TXSDateTime read FSendDateFrom write FSendDateFrom; + property SendDateTo: TXSDateTime read FSendDateTo write FSendDateTo; + property SendCountry: string Index (IS_OPTN) read FSendCountry write SetSendCountry stored SendCountry_Specified; + property RecName: string Index (IS_OPTN) read FRecName write SetRecName stored RecName_Specified; + property RecStreet: string Index (IS_OPTN) read FRecStreet write SetRecStreet stored RecStreet_Specified; + property RecCity: string Index (IS_OPTN) read FRecCity write SetRecCity stored RecCity_Specified; + property RecZipCode: string Index (IS_OPTN) read FRecZipCode write SetRecZipCode stored RecZipCode_Specified; + property RecContact: string Index (IS_OPTN) read FRecContact write SetRecContact stored RecContact_Specified; + property RecPhone: string Index (IS_OPTN) read FRecPhone write SetRecPhone stored RecPhone_Specified; + property RecCountry: string Index (IS_OPTN) read FRecCountry write SetRecCountry stored RecCountry_Specified; + property Note: string Index (IS_OPTN) read FNote write SetNote stored Note_Specified; + property Email: string Index (IS_OPTN) read FEmail write SetEmail stored Email_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : StatusDHL, global, + // Namespace : PPLIEGate + // ************************************************************************ // + StatusDHL = class(TRemotable) + private + FPackageIDPPL: string; + FPackageIDPPL_Specified: boolean; + FPackageIDExp: string; + FPackageIDExp_Specified: boolean; + FStatusID: string; + FStatusID_Specified: boolean; + FCreated: TXSDateTime; + FNote: string; + FNote_Specified: boolean; + FZpID: string; + FZpID_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetPackageIDPPL(Index: Integer; const Astring: string); + function PackageIDPPL_Specified(Index: Integer): boolean; + procedure SetPackageIDExp(Index: Integer; const Astring: string); + function PackageIDExp_Specified(Index: Integer): boolean; + procedure SetStatusID(Index: Integer; const Astring: string); + function StatusID_Specified(Index: Integer): boolean; + procedure SetNote(Index: Integer; const Astring: string); + function Note_Specified(Index: Integer): boolean; + procedure SetZpID(Index: Integer; const Astring: string); + function ZpID_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property PackageIDPPL: string Index (IS_OPTN) read FPackageIDPPL write SetPackageIDPPL stored PackageIDPPL_Specified; + property PackageIDExp: string Index (IS_OPTN) read FPackageIDExp write SetPackageIDExp stored PackageIDExp_Specified; + property StatusID: string Index (IS_OPTN) read FStatusID write SetStatusID stored StatusID_Specified; + property Created: TXSDateTime read FCreated write FCreated; + property Note: string Index (IS_OPTN) read FNote write SetNote stored Note_Specified; + property ZpID: string Index (IS_OPTN) read FZpID write SetZpID stored ZpID_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : OrderCart, global, + // Namespace : PPLIEGate + // ************************************************************************ // + OrderCart = class(TRemotable) + private + FCountPack: Integer; + FSendName: string; + FSendName_Specified: boolean; + FSendStreet: string; + FSendStreet_Specified: boolean; + FSendCity: string; + FSendCity_Specified: boolean; + FSendZipCode: string; + FSendZipCode_Specified: boolean; + FSendDateFrom: TXSDateTime; + FSendDateTo: TXSDateTime; + FNote: string; + FNote_Specified: boolean; + FEmail: string; + FEmail_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetSendName(Index: Integer; const Astring: string); + function SendName_Specified(Index: Integer): boolean; + procedure SetSendStreet(Index: Integer; const Astring: string); + function SendStreet_Specified(Index: Integer): boolean; + procedure SetSendCity(Index: Integer; const Astring: string); + function SendCity_Specified(Index: Integer): boolean; + procedure SetSendZipCode(Index: Integer; const Astring: string); + function SendZipCode_Specified(Index: Integer): boolean; + procedure SetNote(Index: Integer; const Astring: string); + function Note_Specified(Index: Integer): boolean; + procedure SetEmail(Index: Integer; const Astring: string); + function Email_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + public + destructor Destroy; override; + published + property CountPack: Integer read FCountPack write FCountPack; + property SendName: string Index (IS_OPTN) read FSendName write SetSendName stored SendName_Specified; + property SendStreet: string Index (IS_OPTN) read FSendStreet write SetSendStreet stored SendStreet_Specified; + property SendCity: string Index (IS_OPTN) read FSendCity write SetSendCity stored SendCity_Specified; + property SendZipCode: string Index (IS_OPTN) read FSendZipCode write SetSendZipCode stored SendZipCode_Specified; + property SendDateFrom: TXSDateTime read FSendDateFrom write FSendDateFrom; + property SendDateTo: TXSDateTime read FSendDateTo write FSendDateTo; + property Note: string Index (IS_OPTN) read FNote write SetNote stored Note_Specified; + property Email: string Index (IS_OPTN) read FEmail write SetEmail stored Email_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + ImportPackagesResult = TXMLData; { "PPLIEGate"[CplxMxd] } + ImportOrdersResult = TXMLData; { "PPLIEGate"[CplxMxd] } + ArrayOfZipCode2 = type ArrayOfZipCode; { "PPLIEGate"[GblElm] } + ArrayOfCity2 = type ArrayOfCity; { "PPLIEGate"[GblElm] } + ArrayOfPackageInfo2 = type ArrayOfPackageInfo; { "PPLIEGate"[GblElm] } + + + // ************************************************************************ // + // XML : PackageInfo, global, + // Namespace : PPLIEGate + // ************************************************************************ // + PackageInfo2 = class(PackageInfo) + private + published + end; + + anyType = type string; { "PPLIEGate"[Alias] } + ArrayOfAnyType = array of anyType; { "PPLIEGate"[GblCplx] } + + + // ************************************************************************ // + // XML : colOrderCart, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colOrderCart = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : colStatus, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colStatus = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : colPackageHoffmann, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colPackageHoffmann = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : colPackageWeighed, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colPackageWeighed = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : colOrder, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colOrder = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : colPackage, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colPackage = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + + + // ************************************************************************ // + // XML : colPackage, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colPackage2 = class(colPackage) + private + published + end; + + + + // ************************************************************************ // + // XML : colPPLSprint, global, + // Namespace : PPLIEGate + // ************************************************************************ // + colPPLSprint = class(TRemotable) + private + FItems: ArrayOfAnyType; + FItems_Specified: boolean; + FErrorCode: Integer; + FErrorMessage: string; + FErrorMessage_Specified: boolean; + procedure SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); + function Items_Specified(Index: Integer): boolean; + procedure SetErrorMessage(Index: Integer; const Astring: string); + function ErrorMessage_Specified(Index: Integer): boolean; + published + property Items: ArrayOfAnyType Index (IS_OPTN) read FItems write SetItems stored Items_Specified; + property ErrorCode: Integer read FErrorCode write FErrorCode; + property ErrorMessage: string Index (IS_OPTN) read FErrorMessage write SetErrorMessage stored ErrorMessage_Specified; + end; + + String_ = type string; { "PPLIEGate/AbstractTypes"[Alias] } + StringArray = array of String_; { "PPLIEGate/AbstractTypes"[GblCplx] } + + // ************************************************************************ // + // Namespace : PPLIEGate + // soapAction: PPLIEGate/%operationName% + // transport : http://schemas.xmlsoap.org/soap/http + // style : document + // binding : IEGateSoap12 + // service : IEGate + // port : IEGateSoap12 + // URL : http://www.ppl.cz/IEGate/IEGate.asmx + // ************************************************************************ // + IEGateSoap = interface(IInvokable) + ['{FD249145-7C12-8F8C-8988-85AAA99D2A7B}'] + procedure ImportPPLSprint(const FirCode: string; const packages: colPPLSprint); stdcall; + function GetZipCodes(const FirCode: string; const Changed: TXSDateTime): ArrayOfZipCode; stdcall; + function GetCities(const FirCode: string; const Date_From: TXSDateTime): ArrayOfCity; stdcall; + function GetPackagesInfo(const FirCode: string; const PackageID: ArrayOfString; const CustReference: ArrayOfString): ArrayOfPackageInfo; stdcall; + function GetPackageToDelivery(const FirCode: string; const DateToDeliv: string): colPackage; stdcall; + function GetPackageInfo(const PackageID: string): PackageInfo; stdcall; + procedure ImportOrderExt(const FirCode: string; const order: Order); stdcall; + procedure ImportOrdersExt(const FirCode: string; const Orders: colOrder); stdcall; + procedure ImportPackageExt(const FirCode: string; const pack: Package_); stdcall; + procedure ImportPackagesExt(const FirCode: string; const Packages: colPackage); stdcall; + function ImportPackages: ImportPackagesResult; stdcall; + function ImportOrders: ImportOrdersResult; stdcall; + procedure ImportWeighedPack(const FirCode: string; const pack: PackageWeighed; const DepID: string); stdcall; + procedure ImportWeighedPackages(const FirCode: string; const Packages: colPackageWeighed; const DepID: string); stdcall; + procedure ImportPackagesHoffmann(const FirCode: string; const Packages: colPackageHoffmann; const DepID: string); stdcall; + procedure ImportESYCOPack(const FirCode: string; const pack: PackageEsyco); stdcall; + procedure ImportESYCOPackages(const FirCode: string; const Packages: colPackage); stdcall; + procedure ImportStatusDHL(const FirCode: string; const Stat: StatusDHL); stdcall; + procedure ImportStatusesDHL(const FirCode: string; const Statuses: colStatus); stdcall; + procedure ImportOrderCart(const FirCode: string; const order: OrderCart; const Accept: Boolean); stdcall; + procedure ImportOrdersCart(const FirCode: string; const Orders: colOrderCart; const Accept: Boolean); stdcall; + end; + + + // ************************************************************************ // + // Namespace : PPLIEGate + // binding : IEGateHttpGet + // service : IEGate + // port : IEGateHttpGet + // ************************************************************************ // + IEGateHttpGet = interface(IInvokable) + ['{B23DC711-DA48-BB66-FC16-CA4E9C93FAC2}'] + function GetZipCodes(const FirCode: string; const Changed: string): ArrayOfZipCode2; stdcall; + function GetCities(const FirCode: string; const Date_From: string): ArrayOfCity2; stdcall; + function GetPackagesInfo(const FirCode: string; const PackageID: StringArray; const CustReference: StringArray): ArrayOfPackageInfo2; stdcall; + function GetPackageToDelivery(const FirCode: string; const DateToDeliv: string): colPackage2; stdcall; + function GetPackageInfo(const PackageID: string): PackageInfo2; stdcall; + function ImportPackages: Variant; stdcall; + function ImportOrders: Variant; stdcall; + end; + + + // ************************************************************************ // + // Namespace : PPLIEGate + // binding : IEGateHttpPost + // service : IEGate + // port : IEGateHttpPost + // ************************************************************************ // + IEGateHttpPost = interface(IInvokable) + ['{1575FC81-306E-D4F1-7EFB-6101AA468A86}'] + function GetZipCodes(const FirCode: string; const Changed: string): ArrayOfZipCode2; stdcall; + function GetCities(const FirCode: string; const Date_From: string): ArrayOfCity2; stdcall; + function GetPackagesInfo(const FirCode: string; const PackageID: StringArray; const CustReference: StringArray): ArrayOfPackageInfo2; stdcall; + function GetPackageToDelivery(const FirCode: string; const DateToDeliv: string): colPackage2; stdcall; + function GetPackageInfo(const PackageID: string): PackageInfo2; stdcall; + function ImportPackages: Variant; stdcall; + function ImportOrders: Variant; stdcall; + end; + +function GetIEGateSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IEGateSoap; +function GetIEGateHttpGet(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IEGateHttpGet; +function GetIEGateHttpPost(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IEGateHttpPost; + + +implementation + uses SysUtils; + +function GetIEGateSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IEGateSoap; +const + defWSDL = 'http://www.ppl.cz/IEGate/IEGate.asmx?WSDL'; + defURL = 'http://www.ppl.cz/IEGate/IEGate.asmx'; + defSvc = 'IEGate'; + defPrt = 'IEGateSoap12'; +var + RIO: THTTPRIO; +begin + Result := nil; + if (Addr = '') then + begin + if UseWSDL then + Addr := defWSDL + else + Addr := defURL; + end; + if HTTPRIO = nil then + RIO := THTTPRIO.Create(nil) + else + RIO := HTTPRIO; + try + Result := (RIO as IEGateSoap); + if UseWSDL then + begin + RIO.WSDLLocation := Addr; + RIO.Service := defSvc; + RIO.Port := defPrt; + end else + RIO.URL := Addr; + finally + if (Result = nil) and (HTTPRIO = nil) then + RIO.Free; + end; +end; + + +function GetIEGateHttpGet(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IEGateHttpGet; +const + defWSDL = 'http://www.ppl.cz/IEGate/IEGate.asmx?WSDL'; + defURL = ''; + defSvc = 'IEGate'; + defPrt = 'IEGateHttpGet'; +var + RIO: THTTPRIO; +begin + Result := nil; + if (Addr = '') then + begin + if UseWSDL then + Addr := defWSDL + else + Addr := defURL; + end; + if HTTPRIO = nil then + RIO := THTTPRIO.Create(nil) + else + RIO := HTTPRIO; + try + Result := (RIO as IEGateHttpGet); + if UseWSDL then + begin + RIO.WSDLLocation := Addr; + RIO.Service := defSvc; + RIO.Port := defPrt; + end else + RIO.URL := Addr; + finally + if (Result = nil) and (HTTPRIO = nil) then + RIO.Free; + end; +end; + + +function GetIEGateHttpPost(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IEGateHttpPost; +const + defWSDL = 'http://www.ppl.cz/IEGate/IEGate.asmx?WSDL'; + defURL = ''; + defSvc = 'IEGate'; + defPrt = 'IEGateHttpPost'; +var + RIO: THTTPRIO; +begin + Result := nil; + if (Addr = '') then + begin + if UseWSDL then + Addr := defWSDL + else + Addr := defURL; + end; + if HTTPRIO = nil then + RIO := THTTPRIO.Create(nil) + else + RIO := HTTPRIO; + try + Result := (RIO as IEGateHttpPost); + if UseWSDL then + begin + RIO.WSDLLocation := Addr; + RIO.Service := defSvc; + RIO.Port := defPrt; + end else + RIO.URL := Addr; + finally + if (Result = nil) and (HTTPRIO = nil) then + RIO.Free; + end; +end; + + +destructor Package_.Destroy; +begin + SysUtils.FreeAndNil(FCodPrice); + inherited Destroy; +end; + +procedure Package_.SetPackageID(Index: Integer; const Astring: string); +begin + FPackageID := Astring; + FPackageID_Specified := True; +end; + +function Package_.PackageID_Specified(Index: Integer): boolean; +begin + Result := FPackageID_Specified; +end; + +procedure Package_.SetPackageIDCUS(Index: Integer; const Astring: string); +begin + FPackageIDCUS := Astring; + FPackageIDCUS_Specified := True; +end; + +function Package_.PackageIDCUS_Specified(Index: Integer): boolean; +begin + Result := FPackageIDCUS_Specified; +end; + +procedure Package_.SetZipCode(Index: Integer; const Astring: string); +begin + FZipCode := Astring; + FZipCode_Specified := True; +end; + +function Package_.ZipCode_Specified(Index: Integer): boolean; +begin + Result := FZipCode_Specified; +end; + +procedure Package_.SetCountry(Index: Integer; const Astring: string); +begin + FCountry := Astring; + FCountry_Specified := True; +end; + +function Package_.Country_Specified(Index: Integer): boolean; +begin + Result := FCountry_Specified; +end; + +procedure Package_.SetCodPriceCurID(Index: Integer; const Astring: string); +begin + FCodPriceCurID := Astring; + FCodPriceCurID_Specified := True; +end; + +function Package_.CodPriceCurID_Specified(Index: Integer): boolean; +begin + Result := FCodPriceCurID_Specified; +end; + +procedure Package_.SetVarSym(Index: Integer; const Astring: string); +begin + FVarSym := Astring; + FVarSym_Specified := True; +end; + +function Package_.VarSym_Specified(Index: Integer): boolean; +begin + Result := FVarSym_Specified; +end; + +procedure Package_.SetConsigneeName(Index: Integer; const Astring: string); +begin + FConsigneeName := Astring; + FConsigneeName_Specified := True; +end; + +function Package_.ConsigneeName_Specified(Index: Integer): boolean; +begin + Result := FConsigneeName_Specified; +end; + +procedure Package_.SetConsigneeStreet(Index: Integer; const Astring: string); +begin + FConsigneeStreet := Astring; + FConsigneeStreet_Specified := True; +end; + +function Package_.ConsigneeStreet_Specified(Index: Integer): boolean; +begin + Result := FConsigneeStreet_Specified; +end; + +procedure Package_.SetConsigneeCity(Index: Integer; const Astring: string); +begin + FConsigneeCity := Astring; + FConsigneeCity_Specified := True; +end; + +function Package_.ConsigneeCity_Specified(Index: Integer): boolean; +begin + Result := FConsigneeCity_Specified; +end; + +procedure Package_.SetPhone(Index: Integer; const Astring: string); +begin + FPhone := Astring; + FPhone_Specified := True; +end; + +function Package_.Phone_Specified(Index: Integer): boolean; +begin + Result := FPhone_Specified; +end; + +procedure Package_.SetContact(Index: Integer; const Astring: string); +begin + FContact := Astring; + FContact_Specified := True; +end; + +function Package_.Contact_Specified(Index: Integer): boolean; +begin + Result := FContact_Specified; +end; + +procedure Package_.SetCustRef(Index: Integer; const Astring: string); +begin + FCustRef := Astring; + FCustRef_Specified := True; +end; + +function Package_.CustRef_Specified(Index: Integer): boolean; +begin + Result := FCustRef_Specified; +end; + +procedure Package_.SetLength(Index: Integer; const Astring: string); +begin + FLength := Astring; + FLength_Specified := True; +end; + +function Package_.Length_Specified(Index: Integer): boolean; +begin + Result := FLength_Specified; +end; + +procedure Package_.SetHeight(Index: Integer; const Astring: string); +begin + FHeight := Astring; + FHeight_Specified := True; +end; + +function Package_.Height_Specified(Index: Integer): boolean; +begin + Result := FHeight_Specified; +end; + +procedure Package_.SetWidth(Index: Integer; const Astring: string); +begin + FWidth := Astring; + FWidth_Specified := True; +end; + +function Package_.Width_Specified(Index: Integer): boolean; +begin + Result := FWidth_Specified; +end; + +procedure Package_.SetRecMail(Index: Integer; const Astring: string); +begin + FRecMail := Astring; + FRecMail_Specified := True; +end; + +function Package_.RecMail_Specified(Index: Integer): boolean; +begin + Result := FRecMail_Specified; +end; + +procedure Package_.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function Package_.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure City.SetZip(Index: Integer; const Astring: string); +begin + FZip := Astring; + FZip_Specified := True; +end; + +function City.Zip_Specified(Index: Integer): boolean; +begin + Result := FZip_Specified; +end; + +procedure City.SetCity(Index: Integer; const Astring: string); +begin + FCity := Astring; + FCity_Specified := True; +end; + +function City.City_Specified(Index: Integer): boolean; +begin + Result := FCity_Specified; +end; + +procedure City.SetRegion(Index: Integer; const Astring: string); +begin + FRegion := Astring; + FRegion_Specified := True; +end; + +function City.Region_Specified(Index: Integer): boolean; +begin + Result := FRegion_Specified; +end; + +procedure City.SetPost(Index: Integer; const Astring: string); +begin + FPost := Astring; + FPost_Specified := True; +end; + +function City.Post_Specified(Index: Integer): boolean; +begin + Result := FPost_Specified; +end; + +procedure City.SetCountry(Index: Integer; const Astring: string); +begin + FCountry := Astring; + FCountry_Specified := True; +end; + +function City.Country_Specified(Index: Integer): boolean; +begin + Result := FCountry_Specified; +end; + +destructor PackageWeighed.Destroy; +begin + SysUtils.FreeAndNil(FWeight); + SysUtils.FreeAndNil(FPrice); + inherited Destroy; +end; + +procedure PackageWeighed.SetPackageID(Index: Integer; const Astring: string); +begin + FPackageID := Astring; + FPackageID_Specified := True; +end; + +function PackageWeighed.PackageID_Specified(Index: Integer): boolean; +begin + Result := FPackageID_Specified; +end; + +procedure PackageWeighed.SetPackageIDCUS(Index: Integer; const Astring: string); +begin + FPackageIDCUS := Astring; + FPackageIDCUS_Specified := True; +end; + +function PackageWeighed.PackageIDCUS_Specified(Index: Integer): boolean; +begin + Result := FPackageIDCUS_Specified; +end; + +procedure PackageWeighed.SetInputDestination(Index: Integer; const Astring: string); +begin + FInputDestination := Astring; + FInputDestination_Specified := True; +end; + +function PackageWeighed.InputDestination_Specified(Index: Integer): boolean; +begin + Result := FInputDestination_Specified; +end; + +procedure PackageWeighed.SetOutputDestination(Index: Integer; const Astring: string); +begin + FOutputDestination := Astring; + FOutputDestination_Specified := True; +end; + +function PackageWeighed.OutputDestination_Specified(Index: Integer): boolean; +begin + Result := FOutputDestination_Specified; +end; + +procedure PackageWeighed.SetZipCode(Index: Integer; const Astring: string); +begin + FZipCode := Astring; + FZipCode_Specified := True; +end; + +function PackageWeighed.ZipCode_Specified(Index: Integer): boolean; +begin + Result := FZipCode_Specified; +end; + +procedure PackageWeighed.SetCountry(Index: Integer; const Astring: string); +begin + FCountry := Astring; + FCountry_Specified := True; +end; + +function PackageWeighed.Country_Specified(Index: Integer): boolean; +begin + Result := FCountry_Specified; +end; + +procedure PackageWeighed.SetPriceCurID(Index: Integer; const Astring: string); +begin + FPriceCurID := Astring; + FPriceCurID_Specified := True; +end; + +function PackageWeighed.PriceCurID_Specified(Index: Integer): boolean; +begin + Result := FPriceCurID_Specified; +end; + +procedure PackageWeighed.SetConsigneeName(Index: Integer; const Astring: string); +begin + FConsigneeName := Astring; + FConsigneeName_Specified := True; +end; + +function PackageWeighed.ConsigneeName_Specified(Index: Integer): boolean; +begin + Result := FConsigneeName_Specified; +end; + +procedure PackageWeighed.SetConsigneeStreet(Index: Integer; const Astring: string); +begin + FConsigneeStreet := Astring; + FConsigneeStreet_Specified := True; +end; + +function PackageWeighed.ConsigneeStreet_Specified(Index: Integer): boolean; +begin + Result := FConsigneeStreet_Specified; +end; + +procedure PackageWeighed.SetConsigneeCity(Index: Integer; const Astring: string); +begin + FConsigneeCity := Astring; + FConsigneeCity_Specified := True; +end; + +function PackageWeighed.ConsigneeCity_Specified(Index: Integer): boolean; +begin + Result := FConsigneeCity_Specified; +end; + +procedure PackageWeighed.SetPhone(Index: Integer; const Astring: string); +begin + FPhone := Astring; + FPhone_Specified := True; +end; + +function PackageWeighed.Phone_Specified(Index: Integer): boolean; +begin + Result := FPhone_Specified; +end; + +procedure PackageWeighed.SetVarSym(Index: Integer; const Astring: string); +begin + FVarSym := Astring; + FVarSym_Specified := True; +end; + +function PackageWeighed.VarSym_Specified(Index: Integer): boolean; +begin + Result := FVarSym_Specified; +end; + +procedure PackageWeighed.SetAccount(Index: Integer; const Astring: string); +begin + FAccount := Astring; + FAccount_Specified := True; +end; + +function PackageWeighed.Account_Specified(Index: Integer): boolean; +begin + Result := FAccount_Specified; +end; + +procedure PackageWeighed.SetBankCode(Index: Integer; const Astring: string); +begin + FBankCode := Astring; + FBankCode_Specified := True; +end; + +function PackageWeighed.BankCode_Specified(Index: Integer): boolean; +begin + Result := FBankCode_Specified; +end; + +procedure PackageWeighed.SetSpecSymbol(Index: Integer; const Astring: string); +begin + FSpecSymbol := Astring; + FSpecSymbol_Specified := True; +end; + +function PackageWeighed.SpecSymbol_Specified(Index: Integer): boolean; +begin + Result := FSpecSymbol_Specified; +end; + +procedure PackageWeighed.SetDateDelivFrom(Index: Integer; const Astring: string); +begin + FDateDelivFrom := Astring; + FDateDelivFrom_Specified := True; +end; + +function PackageWeighed.DateDelivFrom_Specified(Index: Integer): boolean; +begin + Result := FDateDelivFrom_Specified; +end; + +procedure PackageWeighed.SetDateDelivTo(Index: Integer; const Astring: string); +begin + FDateDelivTo := Astring; + FDateDelivTo_Specified := True; +end; + +function PackageWeighed.DateDelivTo_Specified(Index: Integer): boolean; +begin + Result := FDateDelivTo_Specified; +end; + +procedure PackageWeighed.SetContact(Index: Integer; const Astring: string); +begin + FContact := Astring; + FContact_Specified := True; +end; + +function PackageWeighed.Contact_Specified(Index: Integer): boolean; +begin + Result := FContact_Specified; +end; + +procedure PackageWeighed.SetCustRef(Index: Integer; const Astring: string); +begin + FCustRef := Astring; + FCustRef_Specified := True; +end; + +function PackageWeighed.CustRef_Specified(Index: Integer): boolean; +begin + Result := FCustRef_Specified; +end; + +procedure PackageWeighed.SetLength(Index: Integer; const Astring: string); +begin + FLength := Astring; + FLength_Specified := True; +end; + +function PackageWeighed.Length_Specified(Index: Integer): boolean; +begin + Result := FLength_Specified; +end; + +procedure PackageWeighed.SetHeight(Index: Integer; const Astring: string); +begin + FHeight := Astring; + FHeight_Specified := True; +end; + +function PackageWeighed.Height_Specified(Index: Integer): boolean; +begin + Result := FHeight_Specified; +end; + +procedure PackageWeighed.SetWidth(Index: Integer; const Astring: string); +begin + FWidth := Astring; + FWidth_Specified := True; +end; + +function PackageWeighed.Width_Specified(Index: Integer): boolean; +begin + Result := FWidth_Specified; +end; + +procedure PackageWeighed.SetRecMail(Index: Integer; const Astring: string); +begin + FRecMail := Astring; + FRecMail_Specified := True; +end; + +function PackageWeighed.RecMail_Specified(Index: Integer): boolean; +begin + Result := FRecMail_Specified; +end; + +procedure PackageWeighed.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function PackageWeighed.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure ZipCode.SetZip(Index: Integer; const Astring: string); +begin + FZip := Astring; + FZip_Specified := True; +end; + +function ZipCode.Zip_Specified(Index: Integer): boolean; +begin + Result := FZip_Specified; +end; + +procedure ZipCode.SetPost(Index: Integer; const Astring: string); +begin + FPost := Astring; + FPost_Specified := True; +end; + +function ZipCode.Post_Specified(Index: Integer): boolean; +begin + Result := FPost_Specified; +end; + +procedure ZipCode.SetDepot(Index: Integer; const Astring: string); +begin + FDepot := Astring; + FDepot_Specified := True; +end; + +function ZipCode.Depot_Specified(Index: Integer): boolean; +begin + Result := FDepot_Specified; +end; + +procedure ZipCode.SetDestination(Index: Integer; const Astring: string); +begin + FDestination := Astring; + FDestination_Specified := True; +end; + +function ZipCode.Destination_Specified(Index: Integer): boolean; +begin + Result := FDestination_Specified; +end; + +destructor PackageEsyco.Destroy; +begin + SysUtils.FreeAndNil(FCodPrice); + inherited Destroy; +end; + +procedure PackageEsyco.SetPackageID(Index: Integer; const Astring: string); +begin + FPackageID := Astring; + FPackageID_Specified := True; +end; + +function PackageEsyco.PackageID_Specified(Index: Integer): boolean; +begin + Result := FPackageID_Specified; +end; + +procedure PackageEsyco.SetZipCode(Index: Integer; const Astring: string); +begin + FZipCode := Astring; + FZipCode_Specified := True; +end; + +function PackageEsyco.ZipCode_Specified(Index: Integer): boolean; +begin + Result := FZipCode_Specified; +end; + +procedure PackageEsyco.SetCountry(Index: Integer; const Astring: string); +begin + FCountry := Astring; + FCountry_Specified := True; +end; + +function PackageEsyco.Country_Specified(Index: Integer): boolean; +begin + Result := FCountry_Specified; +end; + +procedure PackageEsyco.SetVarSym(Index: Integer; const Astring: string); +begin + FVarSym := Astring; + FVarSym_Specified := True; +end; + +function PackageEsyco.VarSym_Specified(Index: Integer): boolean; +begin + Result := FVarSym_Specified; +end; + +procedure PackageEsyco.SetAccount(Index: Integer; const Astring: string); +begin + FAccount := Astring; + FAccount_Specified := True; +end; + +function PackageEsyco.Account_Specified(Index: Integer): boolean; +begin + Result := FAccount_Specified; +end; + +procedure PackageEsyco.SetBankCode(Index: Integer; const Astring: string); +begin + FBankCode := Astring; + FBankCode_Specified := True; +end; + +function PackageEsyco.BankCode_Specified(Index: Integer): boolean; +begin + Result := FBankCode_Specified; +end; + +procedure PackageEsyco.SetSpecSymbol(Index: Integer; const Astring: string); +begin + FSpecSymbol := Astring; + FSpecSymbol_Specified := True; +end; + +function PackageEsyco.SpecSymbol_Specified(Index: Integer): boolean; +begin + Result := FSpecSymbol_Specified; +end; + +procedure PackageEsyco.SetConsigneeName(Index: Integer; const Astring: string); +begin + FConsigneeName := Astring; + FConsigneeName_Specified := True; +end; + +function PackageEsyco.ConsigneeName_Specified(Index: Integer): boolean; +begin + Result := FConsigneeName_Specified; +end; + +procedure PackageEsyco.SetConsigneeStreet(Index: Integer; const Astring: string); +begin + FConsigneeStreet := Astring; + FConsigneeStreet_Specified := True; +end; + +function PackageEsyco.ConsigneeStreet_Specified(Index: Integer): boolean; +begin + Result := FConsigneeStreet_Specified; +end; + +procedure PackageEsyco.SetConsigneeCity(Index: Integer; const Astring: string); +begin + FConsigneeCity := Astring; + FConsigneeCity_Specified := True; +end; + +function PackageEsyco.ConsigneeCity_Specified(Index: Integer): boolean; +begin + Result := FConsigneeCity_Specified; +end; + +procedure PackageEsyco.SetPhone(Index: Integer; const Astring: string); +begin + FPhone := Astring; + FPhone_Specified := True; +end; + +function PackageEsyco.Phone_Specified(Index: Integer): boolean; +begin + Result := FPhone_Specified; +end; + +procedure PackageEsyco.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function PackageEsyco.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +destructor PackageInfo.Destroy; +begin + SysUtils.FreeAndNil(FCodPrice); + inherited Destroy; +end; + +procedure PackageInfo.SetPackageID(Index: Integer; const Astring: string); +begin + FPackageID := Astring; + FPackageID_Specified := True; +end; + +function PackageInfo.PackageID_Specified(Index: Integer): boolean; +begin + Result := FPackageID_Specified; +end; + +procedure PackageInfo.SetPackageIDCus(Index: Integer; const Astring: string); +begin + FPackageIDCus := Astring; + FPackageIDCus_Specified := True; +end; + +function PackageInfo.PackageIDCus_Specified(Index: Integer): boolean; +begin + Result := FPackageIDCus_Specified; +end; + +procedure PackageInfo.SetCustReference(Index: Integer; const Astring: string); +begin + FCustReference := Astring; + FCustReference_Specified := True; +end; + +function PackageInfo.CustReference_Specified(Index: Integer): boolean; +begin + Result := FCustReference_Specified; +end; + +procedure PackageInfo.SetInputDepoCode(Index: Integer; const Astring: string); +begin + FInputDepoCode := Astring; + FInputDepoCode_Specified := True; +end; + +function PackageInfo.InputDepoCode_Specified(Index: Integer): boolean; +begin + Result := FInputDepoCode_Specified; +end; + +procedure PackageInfo.SetInputDepoName(Index: Integer; const Astring: string); +begin + FInputDepoName := Astring; + FInputDepoName_Specified := True; +end; + +function PackageInfo.InputDepoName_Specified(Index: Integer): boolean; +begin + Result := FInputDepoName_Specified; +end; + +procedure PackageInfo.SetOutputDepoCode(Index: Integer; const Astring: string); +begin + FOutputDepoCode := Astring; + FOutputDepoCode_Specified := True; +end; + +function PackageInfo.OutputDepoCode_Specified(Index: Integer): boolean; +begin + Result := FOutputDepoCode_Specified; +end; + +procedure PackageInfo.SetOutputDepoName(Index: Integer; const Astring: string); +begin + FOutputDepoName := Astring; + FOutputDepoName_Specified := True; +end; + +function PackageInfo.OutputDepoName_Specified(Index: Integer): boolean; +begin + Result := FOutputDepoName_Specified; +end; + +procedure PackageInfo.SetRecZipCode(Index: Integer; const Astring: string); +begin + FRecZipCode := Astring; + FRecZipCode_Specified := True; +end; + +function PackageInfo.RecZipCode_Specified(Index: Integer): boolean; +begin + Result := FRecZipCode_Specified; +end; + +procedure PackageInfo.SetRecCity(Index: Integer; const Astring: string); +begin + FRecCity := Astring; + FRecCity_Specified := True; +end; + +function PackageInfo.RecCity_Specified(Index: Integer): boolean; +begin + Result := FRecCity_Specified; +end; + +procedure PackageInfo.SetDateInputDepo(Index: Integer; const Astring: string); +begin + FDateInputDepo := Astring; + FDateInputDepo_Specified := True; +end; + +function PackageInfo.DateInputDepo_Specified(Index: Integer): boolean; +begin + Result := FDateInputDepo_Specified; +end; + +procedure PackageInfo.SetDateWeighed(Index: Integer; const Astring: string); +begin + FDateWeighed := Astring; + FDateWeighed_Specified := True; +end; + +function PackageInfo.DateWeighed_Specified(Index: Integer): boolean; +begin + Result := FDateWeighed_Specified; +end; + +procedure PackageInfo.SetDateCentral(Index: Integer; const Astring: string); +begin + FDateCentral := Astring; + FDateCentral_Specified := True; +end; + +function PackageInfo.DateCentral_Specified(Index: Integer): boolean; +begin + Result := FDateCentral_Specified; +end; + +procedure PackageInfo.SetDateOutputDepo(Index: Integer; const Astring: string); +begin + FDateOutputDepo := Astring; + FDateOutputDepo_Specified := True; +end; + +function PackageInfo.DateOutputDepo_Specified(Index: Integer): boolean; +begin + Result := FDateOutputDepo_Specified; +end; + +procedure PackageInfo.SetDateNotDeliv(Index: Integer; const Astring: string); +begin + FDateNotDeliv := Astring; + FDateNotDeliv_Specified := True; +end; + +function PackageInfo.DateNotDeliv_Specified(Index: Integer): boolean; +begin + Result := FDateNotDeliv_Specified; +end; + +procedure PackageInfo.SetNotDelivCode(Index: Integer; const Astring: string); +begin + FNotDelivCode := Astring; + FNotDelivCode_Specified := True; +end; + +function PackageInfo.NotDelivCode_Specified(Index: Integer): boolean; +begin + Result := FNotDelivCode_Specified; +end; + +procedure PackageInfo.SetNotDelivName(Index: Integer; const Astring: string); +begin + FNotDelivName := Astring; + FNotDelivName_Specified := True; +end; + +function PackageInfo.NotDelivName_Specified(Index: Integer): boolean; +begin + Result := FNotDelivName_Specified; +end; + +procedure PackageInfo.SetDateDeliv(Index: Integer; const Astring: string); +begin + FDateDeliv := Astring; + FDateDeliv_Specified := True; +end; + +function PackageInfo.DateDeliv_Specified(Index: Integer): boolean; +begin + Result := FDateDeliv_Specified; +end; + +procedure PackageInfo.SetDelivPerson(Index: Integer; const Astring: string); +begin + FDelivPerson := Astring; + FDelivPerson_Specified := True; +end; + +function PackageInfo.DelivPerson_Specified(Index: Integer): boolean; +begin + Result := FDelivPerson_Specified; +end; + +procedure PackageInfo.SetDateExport(Index: Integer; const Astring: string); +begin + FDateExport := Astring; + FDateExport_Specified := True; +end; + +function PackageInfo.DateExport_Specified(Index: Integer): boolean; +begin + Result := FDateExport_Specified; +end; + +procedure PackageInfo.SetDateImport(Index: Integer; const Astring: string); +begin + FDateImport := Astring; + FDateImport_Specified := True; +end; + +function PackageInfo.DateImport_Specified(Index: Integer): boolean; +begin + Result := FDateImport_Specified; +end; + +procedure PackageInfo.SetInputCountry(Index: Integer; const Astring: string); +begin + FInputCountry := Astring; + FInputCountry_Specified := True; +end; + +function PackageInfo.InputCountry_Specified(Index: Integer): boolean; +begin + Result := FInputCountry_Specified; +end; + +procedure PackageInfo.SetOutputCountry(Index: Integer; const Astring: string); +begin + FOutputCountry := Astring; + FOutputCountry_Specified := True; +end; + +function PackageInfo.OutputCountry_Specified(Index: Integer): boolean; +begin + Result := FOutputCountry_Specified; +end; + +procedure PackageInfo.SetInvoiceNumber(Index: Integer; const Astring: string); +begin + FInvoiceNumber := Astring; + FInvoiceNumber_Specified := True; +end; + +function PackageInfo.InvoiceNumber_Specified(Index: Integer): boolean; +begin + Result := FInvoiceNumber_Specified; +end; + +procedure PackageInfo.SetReturnToSender(Index: Integer; const Astring: string); +begin + FReturnToSender := Astring; + FReturnToSender_Specified := True; +end; + +function PackageInfo.ReturnToSender_Specified(Index: Integer): boolean; +begin + Result := FReturnToSender_Specified; +end; + +procedure PackageInfo.SetSendInfo(Index: Integer; const Astring: string); +begin + FSendInfo := Astring; + FSendInfo_Specified := True; +end; + +function PackageInfo.SendInfo_Specified(Index: Integer): boolean; +begin + Result := FSendInfo_Specified; +end; + +procedure PackageInfo.SetLoadingDate(Index: Integer; const Astring: string); +begin + FLoadingDate := Astring; + FLoadingDate_Specified := True; +end; + +function PackageInfo.LoadingDate_Specified(Index: Integer): boolean; +begin + Result := FLoadingDate_Specified; +end; + +procedure PackageInfo.SetDateTakeMoney(Index: Integer; const Astring: string); +begin + FDateTakeMoney := Astring; + FDateTakeMoney_Specified := True; +end; + +function PackageInfo.DateTakeMoney_Specified(Index: Integer): boolean; +begin + Result := FDateTakeMoney_Specified; +end; + +procedure PackageInfo.SetDateMoneyToBank(Index: Integer; const Astring: string); +begin + FDateMoneyToBank := Astring; + FDateMoneyToBank_Specified := True; +end; + +function PackageInfo.DateMoneyToBank_Specified(Index: Integer): boolean; +begin + Result := FDateMoneyToBank_Specified; +end; + +procedure PackageInfo.SetDateMoneyToCustomer(Index: Integer; const Astring: string); +begin + FDateMoneyToCustomer := Astring; + FDateMoneyToCustomer_Specified := True; +end; + +function PackageInfo.DateMoneyToCustomer_Specified(Index: Integer): boolean; +begin + Result := FDateMoneyToCustomer_Specified; +end; + +procedure PackageInfo.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function PackageInfo.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +destructor Order.Destroy; +begin + SysUtils.FreeAndNil(FSendDateFrom); + SysUtils.FreeAndNil(FSendDateTo); + inherited Destroy; +end; + +procedure Order.SetOrdNumber(Index: Integer; const Astring: string); +begin + FOrdNumber := Astring; + FOrdNumber_Specified := True; +end; + +function Order.OrdNumber_Specified(Index: Integer): boolean; +begin + Result := FOrdNumber_Specified; +end; + +procedure Order.SetCountPack(Index: Integer; const Astring: string); +begin + FCountPack := Astring; + FCountPack_Specified := True; +end; + +function Order.CountPack_Specified(Index: Integer): boolean; +begin + Result := FCountPack_Specified; +end; + +procedure Order.SetSendName(Index: Integer; const Astring: string); +begin + FSendName := Astring; + FSendName_Specified := True; +end; + +function Order.SendName_Specified(Index: Integer): boolean; +begin + Result := FSendName_Specified; +end; + +procedure Order.SetSendStreet(Index: Integer; const Astring: string); +begin + FSendStreet := Astring; + FSendStreet_Specified := True; +end; + +function Order.SendStreet_Specified(Index: Integer): boolean; +begin + Result := FSendStreet_Specified; +end; + +procedure Order.SetSendCity(Index: Integer; const Astring: string); +begin + FSendCity := Astring; + FSendCity_Specified := True; +end; + +function Order.SendCity_Specified(Index: Integer): boolean; +begin + Result := FSendCity_Specified; +end; + +procedure Order.SetSendZipCode(Index: Integer; const Astring: string); +begin + FSendZipCode := Astring; + FSendZipCode_Specified := True; +end; + +function Order.SendZipCode_Specified(Index: Integer): boolean; +begin + Result := FSendZipCode_Specified; +end; + +procedure Order.SetSendContact(Index: Integer; const Astring: string); +begin + FSendContact := Astring; + FSendContact_Specified := True; +end; + +function Order.SendContact_Specified(Index: Integer): boolean; +begin + Result := FSendContact_Specified; +end; + +procedure Order.SetSendPhone(Index: Integer; const Astring: string); +begin + FSendPhone := Astring; + FSendPhone_Specified := True; +end; + +function Order.SendPhone_Specified(Index: Integer): boolean; +begin + Result := FSendPhone_Specified; +end; + +procedure Order.SetSendCountry(Index: Integer; const Astring: string); +begin + FSendCountry := Astring; + FSendCountry_Specified := True; +end; + +function Order.SendCountry_Specified(Index: Integer): boolean; +begin + Result := FSendCountry_Specified; +end; + +procedure Order.SetRecName(Index: Integer; const Astring: string); +begin + FRecName := Astring; + FRecName_Specified := True; +end; + +function Order.RecName_Specified(Index: Integer): boolean; +begin + Result := FRecName_Specified; +end; + +procedure Order.SetRecStreet(Index: Integer; const Astring: string); +begin + FRecStreet := Astring; + FRecStreet_Specified := True; +end; + +function Order.RecStreet_Specified(Index: Integer): boolean; +begin + Result := FRecStreet_Specified; +end; + +procedure Order.SetRecCity(Index: Integer; const Astring: string); +begin + FRecCity := Astring; + FRecCity_Specified := True; +end; + +function Order.RecCity_Specified(Index: Integer): boolean; +begin + Result := FRecCity_Specified; +end; + +procedure Order.SetRecZipCode(Index: Integer; const Astring: string); +begin + FRecZipCode := Astring; + FRecZipCode_Specified := True; +end; + +function Order.RecZipCode_Specified(Index: Integer): boolean; +begin + Result := FRecZipCode_Specified; +end; + +procedure Order.SetRecContact(Index: Integer; const Astring: string); +begin + FRecContact := Astring; + FRecContact_Specified := True; +end; + +function Order.RecContact_Specified(Index: Integer): boolean; +begin + Result := FRecContact_Specified; +end; + +procedure Order.SetRecPhone(Index: Integer; const Astring: string); +begin + FRecPhone := Astring; + FRecPhone_Specified := True; +end; + +function Order.RecPhone_Specified(Index: Integer): boolean; +begin + Result := FRecPhone_Specified; +end; + +procedure Order.SetRecCountry(Index: Integer; const Astring: string); +begin + FRecCountry := Astring; + FRecCountry_Specified := True; +end; + +function Order.RecCountry_Specified(Index: Integer): boolean; +begin + Result := FRecCountry_Specified; +end; + +procedure Order.SetNote(Index: Integer; const Astring: string); +begin + FNote := Astring; + FNote_Specified := True; +end; + +function Order.Note_Specified(Index: Integer): boolean; +begin + Result := FNote_Specified; +end; + +procedure Order.SetEmail(Index: Integer; const Astring: string); +begin + FEmail := Astring; + FEmail_Specified := True; +end; + +function Order.Email_Specified(Index: Integer): boolean; +begin + Result := FEmail_Specified; +end; + +procedure Order.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function Order.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +destructor StatusDHL.Destroy; +begin + SysUtils.FreeAndNil(FCreated); + inherited Destroy; +end; + +procedure StatusDHL.SetPackageIDPPL(Index: Integer; const Astring: string); +begin + FPackageIDPPL := Astring; + FPackageIDPPL_Specified := True; +end; + +function StatusDHL.PackageIDPPL_Specified(Index: Integer): boolean; +begin + Result := FPackageIDPPL_Specified; +end; + +procedure StatusDHL.SetPackageIDExp(Index: Integer; const Astring: string); +begin + FPackageIDExp := Astring; + FPackageIDExp_Specified := True; +end; + +function StatusDHL.PackageIDExp_Specified(Index: Integer): boolean; +begin + Result := FPackageIDExp_Specified; +end; + +procedure StatusDHL.SetStatusID(Index: Integer; const Astring: string); +begin + FStatusID := Astring; + FStatusID_Specified := True; +end; + +function StatusDHL.StatusID_Specified(Index: Integer): boolean; +begin + Result := FStatusID_Specified; +end; + +procedure StatusDHL.SetNote(Index: Integer; const Astring: string); +begin + FNote := Astring; + FNote_Specified := True; +end; + +function StatusDHL.Note_Specified(Index: Integer): boolean; +begin + Result := FNote_Specified; +end; + +procedure StatusDHL.SetZpID(Index: Integer; const Astring: string); +begin + FZpID := Astring; + FZpID_Specified := True; +end; + +function StatusDHL.ZpID_Specified(Index: Integer): boolean; +begin + Result := FZpID_Specified; +end; + +procedure StatusDHL.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function StatusDHL.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +destructor OrderCart.Destroy; +begin + SysUtils.FreeAndNil(FSendDateFrom); + SysUtils.FreeAndNil(FSendDateTo); + inherited Destroy; +end; + +procedure OrderCart.SetSendName(Index: Integer; const Astring: string); +begin + FSendName := Astring; + FSendName_Specified := True; +end; + +function OrderCart.SendName_Specified(Index: Integer): boolean; +begin + Result := FSendName_Specified; +end; + +procedure OrderCart.SetSendStreet(Index: Integer; const Astring: string); +begin + FSendStreet := Astring; + FSendStreet_Specified := True; +end; + +function OrderCart.SendStreet_Specified(Index: Integer): boolean; +begin + Result := FSendStreet_Specified; +end; + +procedure OrderCart.SetSendCity(Index: Integer; const Astring: string); +begin + FSendCity := Astring; + FSendCity_Specified := True; +end; + +function OrderCart.SendCity_Specified(Index: Integer): boolean; +begin + Result := FSendCity_Specified; +end; + +procedure OrderCart.SetSendZipCode(Index: Integer; const Astring: string); +begin + FSendZipCode := Astring; + FSendZipCode_Specified := True; +end; + +function OrderCart.SendZipCode_Specified(Index: Integer): boolean; +begin + Result := FSendZipCode_Specified; +end; + +procedure OrderCart.SetNote(Index: Integer; const Astring: string); +begin + FNote := Astring; + FNote_Specified := True; +end; + +function OrderCart.Note_Specified(Index: Integer): boolean; +begin + Result := FNote_Specified; +end; + +procedure OrderCart.SetEmail(Index: Integer; const Astring: string); +begin + FEmail := Astring; + FEmail_Specified := True; +end; + +function OrderCart.Email_Specified(Index: Integer): boolean; +begin + Result := FEmail_Specified; +end; + +procedure OrderCart.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function OrderCart.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colOrderCart.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colOrderCart.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colOrderCart.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colOrderCart.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colStatus.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colStatus.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colStatus.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colStatus.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colPackageHoffmann.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colPackageHoffmann.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colPackageHoffmann.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colPackageHoffmann.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colPackageWeighed.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colPackageWeighed.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colPackageWeighed.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colPackageWeighed.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colOrder.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colOrder.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colOrder.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colOrder.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colPackage.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colPackage.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colPackage.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colPackage.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +procedure colPPLSprint.SetItems(Index: Integer; const AArrayOfAnyType: ArrayOfAnyType); +begin + FItems := AArrayOfAnyType; + FItems_Specified := True; +end; + +function colPPLSprint.Items_Specified(Index: Integer): boolean; +begin + Result := FItems_Specified; +end; + +procedure colPPLSprint.SetErrorMessage(Index: Integer; const Astring: string); +begin + FErrorMessage := Astring; + FErrorMessage_Specified := True; +end; + +function colPPLSprint.ErrorMessage_Specified(Index: Integer): boolean; +begin + Result := FErrorMessage_Specified; +end; + +initialization + InvRegistry.RegisterInterface(TypeInfo(IEGateSoap), 'PPLIEGate', 'utf-8'); + InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IEGateSoap), 'PPLIEGate/%operationName%'); + InvRegistry.RegisterInvokeOptions(TypeInfo(IEGateSoap), ioDocument); + InvRegistry.RegisterInvokeOptions(TypeInfo(IEGateSoap), ioSOAP12); + InvRegistry.RegisterInterface(TypeInfo(IEGateHttpGet), 'PPLIEGate', 'utf-8'); + InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IEGateHttpGet), ''); + InvRegistry.RegisterInvokeOptions(TypeInfo(IEGateHttpGet), ioSOAP12); + InvRegistry.RegisterInterface(TypeInfo(IEGateHttpPost), 'PPLIEGate', 'utf-8'); + InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IEGateHttpPost), ''); + InvRegistry.RegisterInvokeOptions(TypeInfo(IEGateHttpPost), ioSOAP12); + RemClassRegistry.RegisterXSClass(Package_, 'PPLIEGate', 'Package_', 'Package'); + RemClassRegistry.RegisterXSClass(City, 'PPLIEGate', 'City'); + RemClassRegistry.RegisterXSClass(PackageWeighed, 'PPLIEGate', 'PackageWeighed'); + RemClassRegistry.RegisterXSClass(ZipCode, 'PPLIEGate', 'ZipCode'); + RemClassRegistry.RegisterXSClass(PackageEsyco, 'PPLIEGate', 'PackageEsyco'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfZipCode), 'PPLIEGate', 'ArrayOfZipCode'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfCity), 'PPLIEGate', 'ArrayOfCity'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfString), 'PPLIEGate', 'ArrayOfString'); + RemClassRegistry.RegisterXSClass(PackageInfo, 'PPLIEGate', 'PackageInfo'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfPackageInfo), 'PPLIEGate', 'ArrayOfPackageInfo'); + RemClassRegistry.RegisterXSClass(Order, 'PPLIEGate', 'Order'); + RemClassRegistry.RegisterXSClass(StatusDHL, 'PPLIEGate', 'StatusDHL'); + RemClassRegistry.RegisterXSClass(OrderCart, 'PPLIEGate', 'OrderCart'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ImportPackagesResult), 'PPLIEGate', 'ImportPackagesResult'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ImportOrdersResult), 'PPLIEGate', 'ImportOrdersResult'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfZipCode2), 'PPLIEGate', 'ArrayOfZipCode2', 'ArrayOfZipCode'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfCity2), 'PPLIEGate', 'ArrayOfCity2', 'ArrayOfCity'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfPackageInfo2), 'PPLIEGate', 'ArrayOfPackageInfo2', 'ArrayOfPackageInfo'); + RemClassRegistry.RegisterXSClass(PackageInfo2, 'PPLIEGate', 'PackageInfo2', 'PackageInfo'); + RemClassRegistry.RegisterXSInfo(TypeInfo(anyType), 'PPLIEGate', 'anyType'); + RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfAnyType), 'PPLIEGate', 'ArrayOfAnyType'); + RemClassRegistry.RegisterXSClass(colOrderCart, 'PPLIEGate', 'colOrderCart'); + RemClassRegistry.RegisterXSClass(colStatus, 'PPLIEGate', 'colStatus'); + RemClassRegistry.RegisterXSClass(colPackageHoffmann, 'PPLIEGate', 'colPackageHoffmann'); + RemClassRegistry.RegisterXSClass(colPackageWeighed, 'PPLIEGate', 'colPackageWeighed'); + RemClassRegistry.RegisterXSClass(colOrder, 'PPLIEGate', 'colOrder'); + RemClassRegistry.RegisterXSClass(colPackage, 'PPLIEGate', 'colPackage'); + RemClassRegistry.RegisterXSClass(colPackage2, 'PPLIEGate', 'colPackage2', 'colPackage'); + RemClassRegistry.RegisterXSClass(colPPLSprint, 'PPLIEGate', 'colPPLSprint'); + RemClassRegistry.RegisterXSInfo(TypeInfo(String_), 'PPLIEGate/AbstractTypes', 'String_', 'String'); + RemClassRegistry.RegisterXSInfo(TypeInfo(StringArray), 'PPLIEGate/AbstractTypes', 'StringArray'); + +end. \ No newline at end of file diff --git a/IEGate_Impl.pas b/IEGate_Impl.pas new file mode 100644 index 0000000..b0ae458 --- /dev/null +++ b/IEGate_Impl.pas @@ -0,0 +1,203 @@ +unit IEGate_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I RemObjects.inc} + +interface + +uses + {$IFDEF LCL}LResources,{$ENDIF} + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Generated:} libPPL_Intf; + +type + { TIEGate } + TIEGate = class(TRORemoteDataModule, IIEGate) + private + protected + { IIEGate methods } + function ImportPPLSprint(const parameters: ImportPPLSprint): ImportPPLSprintResponse; + function GetZipCodes(const parameters: GetZipCodes): GetZipCodesResponse; + function GetCities(const parameters: GetCities): GetCitiesResponse; + function GetPackagesInfo(const parameters: GetPackagesInfo): GetPackagesInfoResponse; + function GetPackageToDelivery(const parameters: GetPackageToDelivery): GetPackageToDeliveryResponse; + function GetPackageInfo(const parameters: GetPackageInfo): GetPackageInfoResponse; + function ImportOrderExt(const parameters: ImportOrderExt): ImportOrderExtResponse; + function ImportOrdersExt(const parameters: ImportOrdersExt): ImportOrdersExtResponse; + function ImportPackageExt(const parameters: ImportPackageExt): ImportPackageExtResponse; + function ImportPackagesExt(const parameters: ImportPackagesExt): ImportPackagesExtResponse; + function ImportPackages(const parameters: ImportPackages): ImportPackagesResponse; + function ImportOrders(const parameters: ImportOrders): ImportOrdersResponse; + function ImportWeighedPack(const parameters: ImportWeighedPack): ImportWeighedPackResponse; + function ImportWeighedPackages(const parameters: ImportWeighedPackages): ImportWeighedPackagesResponse; + function ImportPackagesHoffmann(const parameters: ImportPackagesHoffmann): ImportPackagesHoffmannResponse; + function ImportESYCOPack(const parameters: ImportESYCOPack): ImportESYCOPackResponse; + function ImportESYCOPackages(const parameters: ImportESYCOPackages): ImportESYCOPackagesResponse; + function ImportStatusDHL(const parameters: ImportStatusDHL): ImportStatusDHLResponse; + function ImportStatusesDHL(const parameters: ImportStatusesDHL): ImportStatusesDHLResponse; + function ImportOrderCart(const parameters: ImportOrderCart): ImportOrderCartResponse; + function ImportOrdersCart(const parameters: ImportOrdersCart): ImportOrdersCartResponse; + end; + +implementation + +{$IFNDEF FPC} + {$R *.dfm} +{$ENDIF} +uses + {Generated:} libPPL_Invk; + +procedure Create_IEGate(out anInstance : IUnknown); +begin + anInstance := TIEGate.Create(nil); +end; + +{ IEGate } +function TIEGate.ImportPPLSprint(const parameters: ImportPPLSprint): ImportPPLSprintResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.GetZipCodes(const parameters: GetZipCodes): GetZipCodesResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.GetCities(const parameters: GetCities): GetCitiesResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.GetPackagesInfo(const parameters: GetPackagesInfo): GetPackagesInfoResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.GetPackageToDelivery(const parameters: GetPackageToDelivery): GetPackageToDeliveryResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.GetPackageInfo(const parameters: GetPackageInfo): GetPackageInfoResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportOrderExt(const parameters: ImportOrderExt): ImportOrderExtResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportOrdersExt(const parameters: ImportOrdersExt): ImportOrdersExtResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportPackageExt(const parameters: ImportPackageExt): ImportPackageExtResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportPackagesExt(const parameters: ImportPackagesExt): ImportPackagesExtResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportPackages(const parameters: ImportPackages): ImportPackagesResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportOrders(const parameters: ImportOrders): ImportOrdersResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportWeighedPack(const parameters: ImportWeighedPack): ImportWeighedPackResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportWeighedPackages(const parameters: ImportWeighedPackages): ImportWeighedPackagesResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportPackagesHoffmann(const parameters: ImportPackagesHoffmann): ImportPackagesHoffmannResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportESYCOPack(const parameters: ImportESYCOPack): ImportESYCOPackResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportESYCOPackages(const parameters: ImportESYCOPackages): ImportESYCOPackagesResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportStatusDHL(const parameters: ImportStatusDHL): ImportStatusDHLResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportStatusesDHL(const parameters: ImportStatusesDHL): ImportStatusesDHLResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportOrderCart(const parameters: ImportOrderCart): ImportOrderCartResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +function TIEGate.ImportOrdersCart(const parameters: ImportOrdersCart): ImportOrdersCartResponse; +begin + {$Message Hint 'is not implemented yet!'} + Result := nil; +end; + +var + fClassFactory: IROClassFactory; +initialization +{$IFDEF LCL} + {$I IEGate_Impl.lrs} +{$ENDIF} + fClassFactory := TROClassFactory.Create('IEGate', {$IFDEF FPC}@{$ENDIF}Create_IEGate, TIEGate_Invoker); + // RegisterForZeroConf(fClassFactory,'_IEGate_rosdk._tcp.'); + +finalization + UnRegisterClassFactory(fClassFactory); + fClassFactory := nil; + +end. diff --git a/barcode.gif b/barcode.gif new file mode 100644 index 0000000000000000000000000000000000000000..bd8ac0ea41120274eddfc0bdfb9727953ef5ede8 GIT binary patch literal 13396 zcmV-aG^@);Nk%w1VfFzj0rvm^1OfyHf(8bHgbW3QTgc`FQUr>NinGp@ms13}#Ltoh z2EvENC`gF}-UJZ>RJY>HHAYjLY>PZw&V_;mr>lw_Xm>eglOl%Jpodo|CKbrZ&YVh1 zp0LInOL60;kHG8mM`W6brbi?tPW$MQn5MKOw%nJj?Qka%b+4Y>;_Ogurge;)+slph zhKQlY?I2FBggsr7v$$Y3OlOC=Vr5id0tAJTrIINK+Q#~yxzA;2XNSuWN=sJ7ibVVU z=%Q-`s%uAletd6?_o<~Uj>k_C0y6{x{1I;pNJ?)KD{yowj3z5FX^q7bCzMJ@muh*4 z;K{AZ($}P}x?PJ`F_zy}TJ@#jCW1lAWt6I)&}1W|>+x@#V<`{saX6{9wm3 zeBw;q#8Yle1^mth?WqN9ZWd!?(Oa!7JclyOVx;^!JnZAIJWcVfl`xo5aM--Mv#fW? zg>j~5cUVa-*r_pUXD!@F2wVbCNlUR)C~sDJ^;!Zql4&&jX=wc2OaubFC z1f(Y>*+MZLilyUXG}IXI=(u^M@~#+hc;xjJNeGzWbKDOzeT zJ4cH;1qZzabY2AHx)hdvZ)RC7TUWAXH+4K)T)X}IDtpTxc#y4IP5ArJ{MvLEmJIRQ znERTX4O_Bs78tg7P4yQT>Q_01#UH>+~J`q$j#MP8h7jWpI-F<-bb z%ra!U`P#U)e3-lBa5@Eidd%9LPP}#mcXjvRNkgnded>Q^FJJ9S}goD|Nbvw}S-oAtX-koEZu)xY?(`G&!F>+gi zX&IXg4f-=g%nVT@Q;=-C?b4D5jfNcPvZ{tR&yLUp}mJ8<5ExMqW-nT^$M-IRX z!Q;$zJ7*Yux4_!Be@EADJ2>>_&#OoO7meL^?(750Tc4v|qWIgvfpbSb-}gZI_u+Te z-LO4x{j0raUV8iyh#qYPUYDRj)y)@NS;QgqU2n=oH=RHeTG&v71`c=-haUon;cXYr zk)eR(E$E+u2eP-ILjnR2pNI@@_aAcv;U|!e4y~w=j|K5~-g`r?2V_w`9+@AGH_C|6 za<&y09&;5kSK^7tl~|vOFXm`th}}&I-auH2mtu=aa@it`0?rs_llFm0-;z$!`JiB3 z2Dqk|ZyKZ?h%Ta;=TK?xNoSlj_9gQYDJP;qemMt^LgHztpQ5(^$|8{+8YyZ}pstrHlbJrrs6mbvrXiUEPI_vky7GzX zrJCAyWsJY(TI945k*e&ShsLTZt2Fj^Ypo6<79+K@CQFpGl)k!Zx56eT;dt#rO6+^a zUW%xaJF2>?sU~hZFSG!7YOA0GTgv8prDB^eul6p;t)kwlOD?nG3OF&oLZN%Cy0TLC zt8wsNHtdM>Zm258fbQGum?Q%%@Wsfw*XFfba=a~#9i#Pax#8+bE6?C2rE$YHLmY3w z?^1cRbevjgGQ%kAOY^_a0*o}!SO*%a#OWfJaLooQi|E7rMjW=!<}O@zt$+?~l-pu! zYqZGjHX5?WPX8^jD{Vor4I z9d|C}=yl^QZ_9fh4)y7%(%!GLO~2QA;ldv*-q&5*ezT%ER~-AqsTcI8=>;zyeEN#> zzG(6wD^2(E(~DQ{zV||Z`pTmKg9*S^FV@F4+|ob-xRIrd%7fwglVgy2^_ z&xOuk%p+X^6_~A}@#{PNL(%^rxVvg0ZgU$P-g*Xzz@3$_SCm8F*2V`E!>KKL2Yg?Y zl7^f|^(KV$OQGNYP$xYQRn+L~+Gj=V6i9=M_`JP9@w`EU`#IxfVkC(yZ zU66Xn3nBrj2uSZK%7}?H(+FpXMVZaci;aY09q0BV7v@oX;(?j&da}ioE%0cBtRIDz zX2vp!ZXpc}Za{$`TfDZJeJrbrG6PiwT`mvwkl;ASMh)rkCvsnIYC>L>vQb-okdf61E zL7O_U>m(bRj9FdQ_^;^mAgQXh)-IPin3-tUvW=TtO<=Mgr5JeznwL*_y?S z^73_0Wn@%gidcO5ih_}pXDzqN&6c7yhd#Ba2tTUMgPIk5Yn|#&9d=fT;Bli?^sHnF zMb}yX5_FIfH6-ciiO9~PF|m&P;ARI$T6Tuiu&p&|Nx^E@f;QHz<{MW~*9q0i2KSwq z4XkE+D_TV=cZgr*QD}LKReqNCA=bL>YJn>~rM~sKuw|PI^5>@ zwyVJnFO9})%Osk&u_E=_W7q3d)}oe^jAg1jS^C@azSP2Lg&{=YnORnHm%R7Ouw#*` zVUAvNzXz_aG^0b(1P9o`{Bmz}%^6>(&eyaxw6B0U8BzUCbhkL=s*X2GV5=FJtfNHk zgUM-KO)mLyppA09x$LsJJ|CcH=K(Nb>ki_GT4QxPo85T-<~W(B zd{=q@IB$XFE3XIbzHYN_y1_Q#CGl%<<(hk`%1-wl?X2cmSNz!6<+96l3-dF}T+r;j zxV~e)&yCBvcBuwAvPJG%l^%S?aDAiERo-)owdU4m-fpLZtmu31Shyc9FwVbi$z7`V z*mUH23nTq?SX-UC^hNrXHQnJq$GzU#elfRyjpn~U+r?RLxTEzBX_7PB#wS;JP8g1F zTW2@zxdt=E$u9Up%RT3)M{hTChIbeP9Nj^ey5IXf)VaF7be{ZYzY;vMMo+q4td(sJy>)q>`yNUm7PZ^KIxf7qLlovSvMw1WrW%s?= z&PVy!Rb2WFf8NjhJ^aKwesrzplj>uoJ=y>LamjzL*i05-vBz?lmwuXu6VZozXa|4S zhJV@Sd)xMP!AELo_I%iw|9B@Rc$XvKb}T^q-TGDlX1yY zf$CR$7)WknMt)bvZXGjpAZURLcWLLxXSu~?4d`^c26YigXc)I|8mE6Z2zeXWdM#pu zA&7&5q=Sxk6bVRzxmS4c$9wbFcJ=3fkHmdd$AnYpgfn=2;)hZ)c7xD0d!`m{Jvf3t zSb|F@gc9dp_7;YnCu;I{bHi6w0`!Dhmv;aNWkA<~W`}T@Cx@H==YvR?X%LrJc^GKR z)oY9Qhr&m9bEiH3)PH>#a)&r_<`;=@2yRKX6Iob?TUdQvczq9Ogo-DDWSD<(=x>9V zhGn;g`PPP0_=f1WgE0tgkeF_*2zu5hdMe0%ENFU0=6!-FgQJL1yeNgw28;zLj0boV zt7wWXr+crcj9|EeVhDF$2#B1RdY-swcUOq6w_pXwfs0svls1gE$A{84c$4U5mDqII zM~$?ki4=H+nwMTY2Zf5Yf$_MIw`GN9h#++6jX>yQOoxJOw}<2yislH5{C0~K$A9fu zj)wSp23LwgCtd1zW%#Io?-y}RmxANSjOBQLL}-hs_>sB)IE~6xjS88FC3%v*laiCQ zl3KWcE@_dyCyUybZxaY?>G+iE=y4&bks}F@J}HmP=a3#bY^qp{viFT#ID{~Xkus@~ zG-+r{xRp&vY$Umh8mNm5seE6VjaPVK8JUk~*OHX@k{9`pI~kDYxQQ@WkgL~bBKeN$ z6_@1)lwlW*#2AsrXq0=2lwU}ef!B;l=ztx0llzyGZHbWL1eaH-m^p}&P^pr4$&yM3 zj$+xD5IBpG*p!X;koL%yp!jxGnV6%woA{-boT(Ju7@2y>k9?Vwmq>F`C!5_Dh`1&Wx0+$ukKT2hzc-KKX_LaXmKUg#;Q5vSx_qQrh3?s$k4coQD4E1bnR@u0ycnLf zSY8C_hz99!8CZkTxtIeukEht5fOk;sCy7C5LH7AfF?pFY*@8;=f)$#I))jeFnVuL* zodwECz6qibsh|>Rhpc&`PlumJSaTD)nL1jV|M{GU8J(gzoj*C3A6S>D8K0_2eaIM& z*cN8Thl#W(kWM+67Fw9b2Av7nq#SCa4SAqADS|vIob>66t!bRR$fdDaq-pt^<(Z_n ziJWX0XS{i)9vX~NI+WSDpxb$ZC|Z-TD5S9eNu*vno8-xZStg_C$)p3?p;-A?IogR+ zs-kA8k0q*hu&AYFN2iV&m;*_hgt>Dys)hpEmh0)M?HQD(NvKq+oo{-jaq69~xs>8% zr!K0hValqkN2Z~9sc7n?)k&+@34LDafyc;zKw5;1>Z^W;s$cq|wP&6OX{-YmfUzo~ z2Fk4O>8y|mrO|qni8_`LnxWhGsLT13&8ny8$)~;Or^aT5zt^tdvTE(kM36P)#tXu}BFgmG(=&;8M ztAEO#6sC=ih=9);s1s>|6}hgi*|C5B`LPJgpU^n63~QJ(YN;rjuYX#a8bKb zq7;dT-T9!s>ap*Nt&pm)NE)Lh`?C)lw1AqaXvnxKW+qv<-CG%KefW~#{vvbUtI zTxqqs2%6uDh(bHJ6RW13$);iJrdBGgO-rz6Yp{UHk#~Bet7>=MYO--liUiuVjcK&z zda(d|s585!zTqxIRh{`j;v8?}NP ztdUx^B>T4Bs#XM-va-6egKDvPi?Nc+v;*6^mK&jg>w+Q6wsrT3^_rj7IE>gBrL<|6 zw`!=l%D2ONp9Pzr2b;MGOSr@TYPhZHmKtiNZdh^@JFjyHxv4w04O+GwTdh#blxllq z(>r>UYOl}xS|pgh<=T~~%Y5!Du<%>C^832Pk>vcWqzm5yQ>?^<-JGm1|s`Y5Rm>avv%fOuL zwk8b0eVV(XySt>@yY2SEk2Sy=JHw+_y>+UYQcGm!Az{T z`$)hYOuPqtxv-18YpcUi+_PhfxDhP3TdS|L+PEbAxEb8OF)X|V?7>?KxHoLZ_B*># zsbI}Jq;0IYn5wB-EUBmeYs9yO#4@bFG`wy$T*fV$!?Rns%4pRBT+uZrsdu$ij2%!qVK!)GVsvXqi}?wEMZhuiU`I z>a&{+y1IGAR9L}YE6PV(&{g`yNeszL{LY!^y*fM3$Sjr0?7YnUi|A|4Ez6BBJI$v2 zzNmc7u1m%V?9mASO|_Vu%(6_yv~0z;+|#%mN}Ot|9BsYpe9G;dq88oJIPA(c4a+#) zu;E3?SP7% zevJLA@hrPdecG{{+RJRdYF*Wtt;kr-*{$lxc>K~qy1j%P!nU;EkoW?bYNB&!o-U z;OpB@&CtPZ!r@xialG9X+ugFw(s2#ObB)ce+Q+T@*hd=K`AgEmeT^qw+|VrF2@cRL z&EOgx+WD>2etgX6UC-7kidw7Bn4Qa-?bbsrww@i{_buWete@s>+WpMKlO5nIKHM#C z;Oe{C^PSu?Zr_S}+rpUJ*Xr0NzOX1hzmq566HMT|d%r?0+Fl&0wVmYnedFEh4fd(->vD0&FMBy=eoV$(%tBKjoJWi;e6iHqsxc}$mXq%=|*1PyK2CQuIFcY zdO8l)RgU;|=Dl4C=Qo>J)yprf%-6 zjqY`;;e#FUuAb>|9_s_`;3r(?5iaUCUDm+O>yi$=8D8lde(A{Vc?1vd++Muy>hTKy z&*%(~zYg!?{0`*)-iTMN@nKI@*Y&1f0wci!-}d*&rQ>BNol6+aUKui)>_ z)ir+bv|jHYf9D}D$Rl0u(k}6V{qH?L>?=QQM}F*jT&h|B?Y2(yNpJH@AMH(V@{}&* z|I5XKp6y&t<6chmtcTICr;{m zo}21f<$kX2z_P{r~|W z$Q*(N3j#oxFrh()3LP3$IPhRXi3}|o45IL&#f%F#M%>uZ;Yf@c3yK7=QRPaOEnTui zS<>UhkuxoVyqHH}o{e5=0^mtdXH72#ef~^Xv?WrR2vsuuNYQB0sYq)EofGq=HE8hJ1G;LXd5Xpx1x-xFVw+vB2{c3Y=SiXJzZq*BxZcVjjHx5OJmEqBm zSP?r^N{}(q$Sd(?73`L9RKo=sSDrjJF<_^pQ<`piny=`#Y|joR$vHOvL7cSfy4-s) zx9!dxS*Hg6SNL$;V0VjMOY?TY$BL^qX8sej=*op>W3~zVq3pAtpR)#vT72Hp~xQ??9DfO0PYdZo>yil|Jipwq}3)f5SvJWi`u*R2WY_Y@_Nt~m( zo)|=Mr0K@0PBs*eyUf7nhTIS<9Q}KeLYLB0@jxAO#1F;wU~CCQ{*<&&v;ilyvCO}s z3~|T!4D#`!&=L$1vImKpQbHsp1XHpM_1rML4*w+c%R0vzaZMHfQLNCWEqPSQOF;9~ zPfQPKG_%r3p;WWLDi7P~$E)I0h)K!@z3$HUAoWheCMON7RsUY1(zP_PluygLxP*z) zM>h>~tT7$6)KWB!%+$&rJ9QICp&;bbsv=J`E>lE#ZB|s)oQ&4h^MFlsq(WCbR9dhW zH8fXR$AmOSJF|T?Sa*LFmsVVlg)`Ytm!(tHQ6qfMR83`7)mqW8)fV1!iLL2dV{47q zKXSn}x7}W)1lTu80p<4H8i$2eULM=D=uHmk6>`p!`7O0!it)n`A%Vvt7}J6UMOj2@ z+50!kac^bR#e;XP_)@D3mRRFpImUU~pxHz=WMxT~Q(tEPEnC;)Q*TbSS@2@smffy@ zPWmT>XDymxMR_h)E?om9(Ac}Gmbq-B%|yD}l~c^A>BXLYEL4-DW=Test!o*8m#yNO z=&$8Q*xQ@!Ci}dH7xtNPpjobbXjUzsJHWcbwHjim71X-vzW1C%WWcHJcW~~O{2Qsn zH(&hj$S03H_n_x(bZvj#-VfuoJOA(VE6bi2|LYj?z=t-`^$u+0o0$3H zW;+EI&w?TRUfSH3KR-2Zf<&U<3&X}f{FQEC{9{`XVdcNaflh?)2_JnjIMh};4G$r1u1xSaKF^H`69wZ%k!2$CBE_1cqq#RS0NnH+ymv~a+=sfjF8y0hn z&dMP-%?8H89S(bltX%>H=@1Zp5t%!Sk2Pu8B_>i*bMWluF7Fu2`{fOoG=yI$&$%yS zZWD~jTn{SyR6`C9w4sdjt09v-DhP(#Z=fEB|Reu1r zWI7$E)b%|SpZV#i&^}twp*rz$MipO7PntXkB2rq0MWSQ`A~a#R)2`n0 zZ2A1DScA&WTRL>4X!WLA!O2yXsxG1b!=xZgO}f}q8ggrSjcF?Zn>Lv~(v^J~Uq3@? zRv{u5w2Dn?MwdFyX1?{MRvjfZOUu(j!gZp~tSH#*#@Eiumbcd&>`cpg%%Ylhth4QF zHmlfHQ9jmrqI~WmQJXWA-t~|-^$lJOi@v~`#BVn~!KXn>6Vuzh8SyRef*gDs; zQ5uRs=IULdYUKP72)^1-n zoZ!p+cAo(Tsk%svToa#o!Wvco@p2E^T-QR?obmOlP|xXPa^@DrX#8L}J4|5@2NuM1 z<uVdF{N}5~A5wl%^b?jVxdx1G>b5)}CzB6(^=Tw#k5$E0-HB zm^x|!XvR}EKb5&-y&Ib4S%Xu2~bWc*{^X43=C0=b(v)1Vf z#dye%eeW+-fby~{jyDKD7mEhcujpFHlV*7n7>{dn9p3sy#v z{I87P^Sk?;YrNw)r+ZI2*@Ml;Vb2_$H9zx=lYRI(zuM(k#;AgkobarlT+`tc^UBjL z_RROa?80`ii>aLdY9y0ez*J}6&X3-6$X8nQ(Jp?bB|r3d7oD`RHZb40?e|h!9PLmi zynG$)_NrUH;KVoi>Vd9scu$_w&L1-L%`1J%-=6ci4?J|m&FI1hob=0v`|Nc}{*C9k z?!&)3^xHM{GcNW!zs+kpr}Dghi#kHGKPt;T;p4SQOFjqOI{srm^CLR*FuDmux;Ilg zPC7Iu+qe5;!0d~%spG!j%RipmEev!#hrvLU%fN<4J*!I0tHRowKKDyNELuSLLP4o3w-u~1BpgHiioz`$KQt`A8ic*zF})nr z!TMvYijz4l{5&CCyAY%)`D4Mn1G&WuKQrt5Lbiw_TMnF76TvQ@zvpqIU zzh;cSU_3x>oWmN5KiG<{WBj?G0lrxDMa84QOx#4)W5+jg$2f$?0hGt}qsJ>`#4NnN zE#yc4t*b17b2VmkLuX9K7?d0*T)t0?!d`^6hAhB`+(s;fzhYFVibS|%gvD|U$XV2} zXJoruBuGMp!ZMV?c-+W&1VPQSM`Cou6AZ@`%tMSkH$H4eGUOeP^r^@bI+5f_k~}?Z z#IKiJL~qkKRfI*}<0)-Sxqp<&lKj3G>_}TIIW42gwF4e&%rM#u%6A;fRLsY;b4l^@ zM{*29rrb!UY&^Amyqs*yE_};M%1W%fMvLT0mGnkE1j|hnOT&Y}zBI?-L(7BI%1!*g zBn-fXl)ZDryt!1!x+Fobq{P?COHHgUzFbDX{6$(!OK8MNw%kd#EUeJPOkgBUVKmME zZ!5vwGqx_2#AS*}%bZEktjXED$+g_C!VEoLG{m^%%~Etl5k$q)yi0IQvB`wV)GSMv z>%%nKFR1jdPP|RS%uOUz%*EWy#*E07EJ`~(N<92M*Blv*jLqfLOughxkete$6tU^N zx?Z!wl#I{ERLVu`PDQ*(6CAk3q)yrFPuA=)0PQ-Vw92f)$^%U~>N7h9oKIuCLkoP+ z%6!esOv22}N%O2GFS9!hCD601&LO?y5oXAJy!sztEB1AlbyTpN9LfUlBKZMR* z6rBxC%nn7#50yir+)<-!P;pej1${de9nUN)Pr;PIbWGCE>`8|FNr&vsdUQ|vm8>atI&cB#5&cRmIKmVoyu`(`4mJ>!VdRwN)!k%4qdCA>~z4^;J{-QalY)8HLLNl}qb{ zRqT{i`D9i?byhQo1D1X4Az8|)b(Uo zZ>?G=9Y(u^+kL#<_sm_dMcUF;+S46dcP-ne72aVb-kELK*lk;7ecM4j+^|gC(OcZz zE#BT`&fh&!YmL{+bzOR`(MS|Zw{@>vjm!@7&QCqxyH(D|ZB(*7*vakN(v({HHQCH9 z&Tiveam`xW1zp@VU)}ZJMdi-`w%!50wS@G|11?#rJ=p~YQ6JRQ2d-7bHP<(d**FzX z)8$gVjocTNO3F3hzx`jJ4B`3(-}_zR!HZz$onYuC-CYG-jx|03mfQ{2#i+Gm3x?g} z#ZmLJ=Jij}6=L+|UJ0AK6i(t?biI*mVwz20`lU<%`vteu%-;?KVw}TREhgfP zUD}R~;g40~FkV&5UDx>~P92uw5{As-^w9+-OXQ4WCpO|&s$-ljAo!)!*TrE4_TvT) zS`#K$6rS4(d*ccw;|nfT_61fXJzGaER+Btd?;Tu9#@aw;#r^GC@HFHWp57Nm-9_eG z07TnIMqm(@mSKcl-EI9d-Av|4HsjJnnpj;3O}O=vl$UZ!p6aVB6~CS{4n=`sdr-)v`z#Y-!;&>%MEkG^TV zrRD0~X$=NrHALPqMdzSKtD*iFf#z!NlxboH>zZb233Xwyh3d0*XoQ65s`kl=Hq#vT zWtR@$eH~xPOzO7t=pi0!r!MQhW@gp(>3a0w%jM&WKJ20fWc)2?SH|M7hHP)P6bORZ4uTZe2tJ_g+^+5af{<<9o^3ub2;BB<-3IP18Sb;lgWPVE z<6iFBRt(_|g5o9!=ss@Wwr%`MZrWxO|QR-_M~sMcI)~^#Mag24}N0U_D%c-@N6{Y0M9}FhGxQ+X8*270%veYX7KzD zGoT*uw`OS=eel=b;|s@11Gj1bhilGagDTJgFCg&}rvfQp1L5EU8o+{)zycbOZoa4j zt5|{*2M{*kffAqUm572CPly;##Au%Jguns~_=`Lk@e=m}9teVSC=(6HgD8)J0AYhA zPzWlx5hd61Emv|N=kUS4YF=JvVblQsDi{ka*zq~g0nyL_zF-5F!h$OJ4-N2fVeX46 zCvx$=%9o(?gjj;><_jsPbE2?u7t(0HF!O|v^OrEft=iM~c4CS)XtIlf4KV<|paJl} z@|Uo3@Q{MxsDeSS;=ky004Q?6_UCh`^BVVyH5ZLj9}YIibmnb!g;;b(pD2X5buotY zbdK*aKR-YEiBDhe(p!lk2M=EmjuFdWmPm9{*YiP(H9SX%3@G%lkb(_i^}nEYT9CEo81y#xi$0I(Vpnv(h=O+K_>PbA49JWxCsPFP z94Ywi@aZx{XmaupLpmgvU+c_Pyx3cOZl4UW{BUxI;bK%pU9=Cd=+4baCju`<+Evps45;l_#!mLRa>`aba<6g{ac1{L| zI()LpyOTshDLNnj`Wy?O3QS)_nU18QaA{c@cJI3NN;f2%mW%HyO$qbpN2X{VMuZC> zC{wCzIUDr|G34aObGcf!Y5FZkic45?MoGiuP}CPI--bQgxIw68-AZ9P(W93tRSZ9j z;?pHe!^%G+mc2SEXe?gFlMj-DDe=yi&l+4pemoBYS8vwby;5~(pOZ3JuPq!V8-t1W zo)Us;sN+Xpld1Sz%lIaQKvNsvPD_V8l zw4U1b3870~NZ+z67I{g*bWVz_nnl8}4q*YO zrJJ>T?Q+cm$Q2KKL5Np3>s0zLFf2CTZTSuFd=$EvN` zX)C}|l^hbE4izg9e)bW48vv6gw6MK0t2my>8-oI5wld!CVCai$ih_Xzo|0&-Hi_UdQsm7c}+BRG$)jqzI=iGq@iasUam)f zHtf;WFh%Z*-l+rH;@o+w4l3rZ8D3W09`QR+)dr1=YJQ2g+#A{UgN-=!U_Z|R z8tWIa{2<_qTj&#h%?o6h@(Zyc_v_tTX8q8vd(WE4C2Vzo zSe336`Py`QWVx_b?|E`EE(N^LjmjXXyHDn#A~=KGZG1y3(j>YkJ_nYiaJ(_zuXb`L zgUrr-1_58=rdOD#`A2VvtDoYck^+_W#UTe26aB6fyr6Llg(9S&>NL|pP)!hrhuRAN zqyn0^ZSQ>wxz$Qe=%^XOkA$Yl9&ePmkN~FeE|Ke<=WdumEsCUuygQx`i6)c$y{?C0 zT#2#_5=0?-Q6N%Gh?BsWCf(tRi7qlo`@m?wFi1DU(tZGBH2x5IuYU90+Kl zw~)wb?I!q<lR<5LN29aORJW?8t90d!Ah{EMmfsS zIFbu&K3Yf>{s;gv8mm1Cor54lDz#T)tD=JJRSpMwxho=e)JI#1v1wun^w5fjm>jCB;RUs%M)JbQmRKSw9wDo$@U=?!H2Vqko-+aaItI6yP|~;xSc0*l`CJSMnPrvz3;({3lk}T^{O&u3LE&_-ztzd zj4Nc}BUX{tzA%O}tlt1OPk3%`fZ# literal 0 HcmV?d00001 diff --git a/czStrings.res b/czStrings.res new file mode 100644 index 0000000000000000000000000000000000000000..e8d73dc811d91a37504ec00f506800ae7abe9c5b GIT binary patch literal 1052 zcma)*&rZTX5XLw0M#4KZJ?Vv@HxE5PMMFZ0iTEcP4~tBsw9MA+7735S!J7}p4HJ0= zoVE+JwV<19r|JIo`(}2wj4@`=T(8qfuetGg#8{8M*zAFISeIghVw*iu>{0A8=g-wx zupU43csi}0oj+GAFVmY#*H<7LIIwx3T!EI!&CEj6=jd&h0=bwC@GA$1X~Xxo#PQu6 zP73RZMz}++QB{Oti7_osU+tiLv%!zzTB5tEmat}9MA~fMh`2f{%JxFpLaj(=d>5%SsV!5yB c1nOE44jmA2scEA2%T{LYX+O@WTA_dS2ZbMMJOBUy literal 0 HcmV?d00001 diff --git a/frmBaliciListy.dfm b/frmBaliciListy.dfm new file mode 100644 index 0000000..59e2f90 --- /dev/null +++ b/frmBaliciListy.dfm @@ -0,0 +1,524 @@ +object formBaliciListy: TformBaliciListy + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = ' Balic'#237' listy' + ClientHeight = 589 + ClientWidth = 589 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poMainFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnShow = FormShow + TextHeight = 13 + object lblVerze: TLabel + Left = 12 + Top = 572 + Width = 3 + Height = 11 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Visible = False + end + object GroupBox2: TGroupBox + Left = 7 + Top = 46 + Width = 574 + Height = 493 + Caption = ' Obsah ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + object Label1: TLabel + Left = 12 + Top = 150 + Width = 205 + Height = 16 + Caption = 'Obsah bal'#237'c'#237'ho listu (boxu, krabice):' + end + object Label4: TLabel + Left = 267 + Top = 47 + Width = 42 + Height = 16 + Caption = 'Datum:' + end + object Label5: TLabel + Left = 17 + Top = 22 + Width = 53 + Height = 16 + Caption = 'Na sklad:' + end + object GroupBox3: TGroupBox + Left = 9 + Top = 62 + Width = 546 + Height = 88 + Caption = ' Polo'#382'ka ' + TabOrder = 0 + object Label2: TLabel + Left = 10 + Top = 18 + Width = 61 + Height = 16 + Caption = 'Skup.zbo'#382#237 + end + object Label3: TLabel + Left = 78 + Top = 18 + Width = 51 + Height = 16 + Caption = 'Reg.'#269#237'slo' + end + object Label7: TLabel + Left = 220 + Top = 18 + Width = 49 + Height = 16 + Caption = 'Mno'#382'stv'#237 + end + object Label9: TLabel + Left = 318 + Top = 18 + Width = 58 + Height = 16 + Caption = #268#237'slo boxu' + end + object lblKarta: TLabel + Left = 13 + Top = 62 + Width = 4 + Height = 14 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 390 + Top = 18 + Width = 81 + Height = 16 + Caption = 'V'#253'robn'#237' p'#345#237'kaz' + end + object selSZ: TRzButtonEdit + Left = 11 + Top = 36 + Width = 55 + Height = 24 + Text = '' + Alignment = taCenter + TabOrder = 0 + OnKeyUp = selSZKeyUp + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selSZButtonClick + end + object selRegCis: TRzButtonEdit + Left = 78 + Top = 38 + Width = 131 + Height = 24 + Text = '' + CharCase = ecUpperCase + TabOrder = 1 + OnExit = selRegCisExit + OnKeyUp = selRegCisKeyUp + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selRegCisButtonClick + end + object edtKS: TRzNumericEdit + Left = 220 + Top = 36 + Width = 81 + Height = 24 + Alignment = taCenter + CharCase = ecUpperCase + TabOrder = 2 + OnExit = edtKSExit + CalculatorVisible = True + DisplayFormat = '###,###0;-###,###0' + end + object edtBox: TRzNumericEdit + Left = 318 + Top = 36 + Width = 55 + Height = 24 + TabOrder = 3 + DisplayFormat = ',0;(,0)' + end + object btnAddPol: TBitBtn + Left = 323 + Top = 61 + Width = 47 + Height = 25 + Caption = 'V' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnClick = btnAddPolClick + end + object edtPrikaz: TRzNumericEdit + Left = 392 + Top = 36 + Width = 74 + Height = 24 + MaxLength = 10 + TabOrder = 5 + DisplayFormat = ',0;(,0)' + end + end + object edtDat: TRzDateTimeEdit + Left = 313 + Top = 44 + Width = 100 + Height = 24 + CalendarElements = [ceYear, ceMonth, ceArrows, ceDaysOfWeek, ceFillDays, ceTodayButton] + CaptionTodayBtn = 'Dnes' + CaptionClearBtn = 'Smazat' + FirstDayOfWeek = fdowMonday + EditType = etDate + Format = 'd.m.yyyy' + Alignment = taCenter + TabOrder = 1 + end + object cbOrg: TRzComboBox + Left = 91 + Top = 19 + Width = 159 + Height = 24 + Style = csDropDownList + TabOrder = 2 + OnChange = cbOrgChange + OnEnter = cbOrgEnter + Items.Strings = ( + 'LOVATO It'#225'lie' + 'VD Otava Strakonice' + 'Pikl Protiv'#237'n') + end + object cbVratka: TCheckBox + Left = 263 + Top = 20 + Width = 144 + Height = 17 + Caption = 'vratka od kooperanta' + Enabled = False + TabOrder = 3 + OnClick = cbVratkaClick + end + object cbTypDokl: TRzComboBox + Left = 91 + Top = 44 + Width = 139 + Height = 24 + Style = csDropDownList + TabOrder = 4 + OnChange = cbTypDoklChange + OnEnter = cbTypDoklEnter + Items.Strings = ( + 'FIN'#193'LN'#205' PRODUKTY' + 'NEBALEN'#201' V'#221'ROBKY' + 'MATERI'#193'LY' + 'REKLAMACE') + end + object cbReklamace: TCheckBox + Left = 423 + Top = 21 + Width = 97 + Height = 17 + Caption = ' REKLAMACE' + Enabled = False + TabOrder = 5 + Visible = False + end + object grd: TJvDBGrid + Left = 6 + Top = 169 + Width = 561 + Height = 302 + DataSource = dsBL + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + PopupMenu = pMenu + TabOrder = 6 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -13 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = grdDblClick + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 20 + TitleRowHeight = 20 + Columns = < + item + Expanded = False + FieldName = 'idKZ' + Visible = False + end + item + Expanded = False + FieldName = 'idSS' + Visible = False + end + item + Expanded = False + FieldName = 'idPZ' + Visible = False + end + item + Alignment = taCenter + Expanded = False + FieldName = 'SkupZbo' + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 38 + Visible = True + end + item + Expanded = False + FieldName = 'RegCis' + Width = 150 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'Mnoz' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Width = 60 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'Box' + Title.Alignment = taCenter + Width = 80 + Visible = True + end + item + Expanded = False + FieldName = 'CelkHmot' + Title.Alignment = taCenter + Title.Caption = 'Hmotnost' + Width = 60 + Visible = True + end + item + Expanded = False + FieldName = 'Prikaz' + Width = 0 + Visible = True + end + item + Expanded = False + FieldName = 'IdBLPol' + Visible = False + end + item + Alignment = taCenter + Expanded = False + FieldName = 'IDSklad' + Title.Alignment = taCenter + Title.Caption = 'Sklad zdroj' + Width = 70 + Visible = True + end + item + Expanded = False + FieldName = 'idSSCil' + Visible = False + end + item + Alignment = taCenter + Expanded = False + FieldName = 'IDSkladCil' + Title.Alignment = taCenter + Title.Caption = 'Sklad c'#237'l' + Width = 70 + Visible = True + end> + end + object statBar: TJvStatusBar + Left = 2 + Top = 472 + Width = 570 + Height = 19 + Panels = < + item + Width = 205 + end + item + Alignment = taRightJustify + Width = 60 + end + item + Width = 80 + end + item + Alignment = taRightJustify + Width = 60 + end + item + Width = 100 + end> + end + end + object btnOK: TButton + Left = 202 + Top = 556 + Width = 75 + Height = 25 + Caption = '&OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ModalResult = 1 + ParentFont = False + TabOrder = 1 + OnClick = btnOKClick + OnMouseDown = btnOKMouseDown + end + object btnCancel: TButton + Left = 381 + Top = 556 + Width = 75 + Height = 25 + Caption = '&Zru'#353'it' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ModalResult = 2 + ParentFont = False + TabOrder = 2 + OnClick = btnCancelClick + end + object vTabBL: TFDMemTable + Active = True + AfterPost = vTabBLAfterPost + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 496 + Top = 96 + object vTabBLidKZ: TIntegerField + FieldName = 'idKZ' + Visible = False + end + object vTabBLidSS: TIntegerField + FieldName = 'idSS' + Visible = False + end + object vTabBLidPZ: TIntegerField + FieldName = 'idPZ' + Visible = False + end + object vTabBLSkupZbo: TStringField + FieldName = 'SkupZbo' + Size = 3 + end + object vTabBLRegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object vTabBLBox: TStringField + FieldName = 'Box' + end + object vTabBLMnoz: TFloatField + FieldName = 'Mnoz' + DisplayFormat = '#,##0.###' + end + object vTabBLCelkHmot: TFloatField + FieldName = 'CelkHmot' + DisplayFormat = '#,##0.##' + end + object vTabBLPrikaz: TIntegerField + FieldName = 'Prikaz' + Visible = False + end + object vTabBLIdBLPol: TIntegerField + FieldName = 'IdBLPol' + Visible = False + end + object vTabBLIDSklad: TStringField + FieldName = 'IDSklad' + Size = 30 + end + object vTabBLidSSCil: TIntegerField + FieldName = 'idSSCil' + Visible = False + end + object vTabBLIDSkladCil: TStringField + FieldName = 'IDSkladCil' + Size = 30 + end + end + object dsBL: TDataSource + DataSet = vTabBL + Left = 540 + Top = 98 + end + object pMenu: TPopupMenu + Left = 154 + Top = 304 + object pmDelPol: TMenuItem + Caption = '&Smazat polo'#382'ku' + OnClick = pmDelPolClick + end + object N1: TMenuItem + Caption = '-' + end + object pmObnovNeulozene: TMenuItem + Caption = '&Obnovit neulo'#382'en'#233' polo'#382'ky' + OnClick = pmObnovNeulozeneClick + end + object N2: TMenuItem + Caption = '-' + end + object pmSmazNeulozene: TMenuItem + Caption = 'Sma&zat neulo'#382'en'#233' polo'#382'ky' + OnClick = pmSmazNeulozeneClick + end + object N3: TMenuItem + Caption = '-' + end + object pmImpReader: TMenuItem + Caption = '&Import dat ze '#269'te'#269'ky' + OnClick = pmImpReaderClick + end + end +end diff --git a/frmBaliciListy.pas b/frmBaliciListy.pas new file mode 100644 index 0000000..1c4edf5 --- /dev/null +++ b/frmBaliciListy.pas @@ -0,0 +1,2082 @@ +unit frmBaliciListy; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ddPlugin_TLB, Vcl.StdCtrls, Vcl.Mask, RzEdit, + RzBtnEdt, DB, helUtils, Vcl.Buttons, RzCmboBx, Vcl.Menus, FireDAC.Comp.Client, FireDAC.Stan.Intf, + FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, + FireDAC.Comp.DataSet, Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid, JvExComCtrls, JvStatusBar; + +const errPlg = #13#10 + '(plgLovato.frmBalListy)'; + tblBL = '[dbo].[_TabBL]'; + tblBLPol = '[dbo].[_TabBLPolozky]'; + cOrgFinaly = '3'; + VyrSkl = '200'; + VyrFin = '210'; + VyrRekl = '20000001'; + +type + Tkooperanti = record + Nazev, Sklad: string; + CisloOrg: Integer; + ItemIndex: Integer; + end; + + TformBaliciListy = class(TForm) + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + selSZ: TRzButtonEdit; + GroupBox2: TGroupBox; + GroupBox3: TGroupBox; + selRegCis: TRzButtonEdit; + edtKS: TRzNumericEdit; + Label7: TLabel; + Label9: TLabel; + edtBox: TRzNumericEdit; + vTabBL: TFDMemTable; + dsBL: TDataSource; + btnOK: TButton; + btnCancel: TButton; + lblKarta: TLabel; + btnAddPol: TBitBtn; + Label4: TLabel; + edtDat: TRzDateTimeEdit; + Label5: TLabel; + cbOrg: TRzComboBox; + pMenu: TPopupMenu; + pmDelPol: TMenuItem; + cbVratka: TCheckBox; + Label6: TLabel; + edtPrikaz: TRzNumericEdit; + pmObnovNeulozene: TMenuItem; + N1: TMenuItem; + N2: TMenuItem; + pmSmazNeulozene: TMenuItem; + N3: TMenuItem; + pmImpReader: TMenuItem; + cbTypDokl: TRzComboBox; + cbReklamace: TCheckBox; + lblVerze: TLabel; + vTabBLidKZ: TIntegerField; + vTabBLidSS: TIntegerField; + vTabBLidPZ: TIntegerField; + vTabBLSkupZbo: TStringField; + vTabBLRegCis: TStringField; + vTabBLBox: TStringField; + vTabBLMnoz: TFloatField; + vTabBLCelkHmot: TFloatField; + vTabBLPrikaz: TIntegerField; + vTabBLIdBLPol: TIntegerField; + vTabBLIDSklad: TStringField; + vTabBLidSSCil: TIntegerField; + vTabBLIDSkladCil: TStringField; + grd: TJvDBGrid; + statBar: TJvStatusBar; + procedure FormShow(Sender: TObject); + procedure btnCancelClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure selSZButtonClick(Sender: TObject); + procedure selRegCisButtonClick(Sender: TObject); + procedure selRegCisExit(Sender: TObject); + procedure selRegCisKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selSZKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure edtKSExit(Sender: TObject); + procedure btnAddPolClick(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure pmDelPolClick(Sender: TObject); + procedure cbOrgChange(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure cbVratkaClick(Sender: TObject); + procedure viewPolKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure pmObnovNeulozeneClick(Sender: TObject); + procedure pmSmazNeulozeneClick(Sender: TObject); + procedure pmImpReaderClick(Sender: TObject); + procedure cbTypDoklChange(Sender: TObject); + procedure btnOKMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure cbTypDoklEnter(Sender: TObject); + procedure cbOrgEnter(Sender: TObject); + procedure vTabBLAfterPost(DataSet: TDataSet); + procedure grdDblClick(Sender: TObject); + private + helParams: THeliosParams; + cfMnozBLDef: TFieldDef; + cfMnozBL: TField; + function JeLovato: boolean; + function JePrevodka: boolean; + function VratVyrFin: string; + function VratSumu (FieldName: string): Extended; + procedure VytvorTabulkyAGrid; + procedure TestRC; + procedure NastavEdity; + procedure NastavFonty; + procedure NactiBalList; + procedure WMGetMinMaxInfo(var AMsg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO; + procedure FocusRegCis; + procedure FocusKS; + procedure NajdiZdrojCil; + public + idDZ: integer; + edit: Boolean; + typ: byte; // 1=BL, 2=Prevodka, 3=Prijemka + Helios: IHelios; + end; + +var + formBaliciListy: TformBaliciListy; + koop: TArray; + oVar1,oVar2: OleVariant; + rDokl, cDokl, sIdSS, sIdSSCil, verText, sklZdroj, sklCil: string; + idPZDZ, idBL, idPZBL, idKZ: integer; + mnoz, hmotZ, hmotC: Extended; + iOdb: integer; + selVyber, jsemLov, jsemPrev, insData: boolean; + oldCBTyp, oldCBOdb: integer; + +implementation +uses System.StrUtils, Vcl.Clipbrd; + +{$R *.dfm} + + function GetAveCharSize(Canvas: TCanvas): TPoint; + const Buffer: PChar = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var tm: TTextMetric; + begin + GetTextMetrics(Canvas.Handle, tm); + GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result)); + Result.X := (Result.X div 26 + 1) div 2; + Result.Y := tm.tmHeight; + end; + + + + function FormMnozstviBox(const Helios: IHelios; Title: string; var mnoz: extended; var box: string): boolean; + var frm: TForm; + lbl1,lbl2: TLabel; + eMnoz,eBox: TEdit; + btnOK,btnCancel: TButton; + DialogUnits: TPoint; + ButtonWidth, ButtonHeight: Integer; + begin + result:= false; + frm:= TForm.Create(nil); + with frm do + try + Canvas.Font:= Font; + DialogUnits:= GetAveCharSize(Canvas); + BorderStyle:= bsDialog; + Caption:= Title; + ClientWidth:= MulDiv(180, DialogUnits.X, 4); + ClientHeight:= 150; + Position:= poScreenCenter; + lbl1:= TLabel.Create(frm); + with lbl1 do + begin + Parent:= frm; + Caption:= 'Mnostv: '; + Left:= MulDiv(8, DialogUnits.X, 4); + Top:= MulDiv(8, DialogUnits.X, 4); + Constraints.MaxWidth:= MulDiv(164, DialogUnits.X, 4); + WordWrap:= True; + end; + lbl2:= TLabel.Create(frm); + with lbl2 do + begin + Parent:= frm; + Caption:= 'slo boxu/krabice: '; + Left:= MulDiv(8, DialogUnits.X, 4); + Top:= lbl1.Top + lbl1.Height + 10; + Constraints.MaxWidth:= MulDiv(164, DialogUnits.X, 4); + WordWrap:= True; + end; + + eMnoz:= TFloatEdit.Create(frm); + with eMnoz do + begin + Parent:= frm; + Left:= lbl2.Left + lbl2.Width + 25; + Top:= lbl1.Top; + Alignment:= taRightJustify; + Text:= FloatToStr(Mnoz); + end; + eBox:= TEdit.Create(frm); + with eBox do + begin + Parent:= frm; + Left:= lbl2.Left + lbl2.Width + 25; + Top:= lbl2.Top; + Alignment:= taRightJustify; + Text:= Box; + end; + + ButtonWidth := MulDiv(50, DialogUnits.X, 4); + ButtonHeight := MulDiv(14, DialogUnits.Y, 8); + with TButton.Create(frm) do + begin + Parent:= frm; + Caption:= 'OK'; + ModalResult:= mrOK; + Default:= true; + SetBounds(MulDiv(20, DialogUnits.X, 4), 100, ButtonWidth, ButtonHeight); + end; + with TButton.Create(frm) do + begin + Parent:= frm; + Caption:= 'Zruit'; + ModalResult:= mrCancel; + Cancel:= True; + SetBounds(MulDiv(100, DialogUnits.X, 4), 100, ButtonWidth, ButtonHeight); + end; + + if ShowModal=mrOK then + begin + result:= true; + mnoz:= StrToFloat(Trim(eMnoz.Text)); + box:= Trim(eBox.Text); + end; + finally + frm.Free; + end; + end; + + + + function NajdiVKoop(vrat,podle: byte; fHodn: Variant): Variant; + var i: integer; + begin + case vrat of + 1,3: result:= ''; + else result:= -1; + end; + for i:=0 to Length(koop)-1 do + begin + case vrat of +// vrat Nazev + 1: case podle of + 2: if koop[i].CisloOrg=fHodn then + begin + result:= koop[i].Nazev; + Exit; + end; + 3: if koop[i].Sklad=fHodn then + begin + result:= koop[i].Nazev; + Exit; + end; + 4: if koop[i].ItemIndex=fHodn then + begin + result:= koop[i].Nazev; + Exit; + end; + end; +// vrat CisloOrg + 2: case podle of + 1: if koop[i].Nazev=fHodn then + begin + result:= koop[i].CisloOrg; + Exit; + end; + 3: if koop[i].Sklad=fHodn then + begin + result:= koop[i].CisloOrg; + Exit; + end; + 4: if koop[i].ItemIndex=fHodn then + begin + result:= koop[i].CisloOrg; + Exit; + end; + end; +// vrat Cislo skladu + 3: case podle of + 1: if koop[i].Nazev=fHodn then + begin + result:= koop[i].Sklad; + Exit; + end; + 2: if koop[i].CisloOrg=fHodn then + begin + result:= koop[i].Sklad; + Exit; + end; + 4: if koop[i].ItemIndex=fHodn then + begin + result:= koop[i].Sklad; + Exit; + end; + end; +// vrat ItemIndex + 4: case podle of + 1: if koop[i].Nazev=fHodn then + begin + result:= koop[i].ItemIndex; + Exit; + end; + 2: if koop[i].CisloOrg=fHodn then + begin + result:= koop[i].ItemIndex; + Exit; + end; + 3: if koop[i].Sklad=fHodn then + begin + result:= koop[i].ItemIndex; + Exit; + end; + end; + end; + end; + end; + + + + + function TformBaliciListy.VratVyrFin: string; + begin + result:= VyrFin; + with Helios.OpenSQL('SELECT Cislo FROM ' + tblStrom + ' WHERE Cislo LIKE N''2%'' AND TypStrediska=0') do + if (RecordCount=1) then + result:= VarToStr(FieldValues(0)); + end; + + + + function TformBaliciListy.VratSumu(FieldName: string): Extended; + var bmk: TBookmark; + begin + result:= 0; + + if (Assigned(grd.DataSource)) then + if (grd.DataSource.DataSet.Active) then + begin + bmk:= vTabBL.GetBookmark; + vTabBL.DisableControls; + try + vTabBL.First; + while not(vTabBL.Eof) do + begin + if (vTabBL.FindField(FieldName)<>nil) then + if not(vTabBL.FieldByName(FieldName).IsNull) then + result:= result + vTabBL.FieldByName(FieldName).AsExtended; + vTabBL.Next; + end; + finally + if (vTabBL.BookmarkValid (bmk)) then + vTabBL.GotoBookmark (bmk); + vTabBL.FreeBookmark (bmk); + vTabBL.EnableControls; + end; + end; + end; + + + + procedure TformBaliciListy.vTabBLAfterPost (DataSet: TDataSet); + begin + statBar.Panels.Items[1].Text:= FormatFloat('#,##0.##', self.VratSumu('Mnoz')); + statBar.Panels.Items[3].Text:= FormatFloat('#,##0.###', self.VratSumu('CelkHmot')); + end; + + + + + procedure TformBaliciListy.NajdiZdrojCil; + begin + sklZdroj:= Helios.Sklad; + + if (jsemLov) and (cbTypDokl.ItemIndex=3) then + sklZdroj:= VyrRekl; + + if not(jsemLov) then + sklCil:= NajdiVKoop(3, 4, cbOrg.ItemIndex); + + if (cbVratka.Checked) then + begin + sklZdroj:= NajdiVKoop(3, 4, cbOrg.ItemIndex); + sklCil:= VratVyrFin; + end; + + if (cbTypDokl.Text='REKLAMACE') then + sklCil:= VyrRekl; + end; + + + + function TformBaliciListy.JePrevodka: boolean; + var i: integer; + begin + result:= false; + for i:=0 to Length(koop)-1 do + if (koop[i].itemIndex=cbOrg.ItemIndex) then + if (koop[i].CisloOrg=0) then + result:= true; + jsemPrev:= result; + end; + + + + function TformBaliciListy.JeLovato: boolean; + begin + result:= false; + if (Pos('itlie',LowerCase(cbOrg.Text))>0) then + result:= true; + jsemLov:= result; + end; + + + + procedure TformBaliciListy.FocusRegCis; + begin + selRegCis.SetFocus; + if Length(selRegCis.Text)=0 then + selRegCis.Text:= '%'; + selRegCis.SelStart:= Length(selRegCis.Text); + selRegCis.SelLength:= 0; + end; + + + + procedure TformBaliciListy.FocusKS; + begin + edtKS.SetFocus; + edtKS.SelStart:= 0; + edtKS.SelLength:= Length(edtKS.Text); + end; + + + + procedure TformBaliciListy.NactiBalList; + var pol: IHeQuery; + lSQL, tStr: string; + iTmp: integer; + begin + if (idDZ>0) then + begin + cbOrg.Enabled:= false; + edtDat.Enabled:= false; + edit:= false; + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE Realizovano=1 AND ID=' + IntToStr(idDZ)) do + if RecordCount>0 then + begin + edit:= true; + btnAddPol.Enabled:= False; + pMDelPol.Enabled:= false; + Helios.Error('Doklad byl realizovn, nelze editovat.'); + btnOK.Enabled:= false; + end; + +{ + with Helios.OpenSQL('SELECT IDHlavicky FROM TabDokZboDodatek WHERE DatumTisku IS NOT NULL AND IDHlavicky=' + IntToStr(idDZ)) do + if RecordCount>0 then + begin + edit:= true; + btnAddPol.Enabled:= False; + pMDelPol.Enabled:= false; + Helios.Error('Doklad byl vytisknut, nelze editovat.'); + btnOK.Enabled:= false; + end; +} + + lSQL:= 'SELECT co.CisloOrg,dz.DatPorizeni,dz.MistoUrceni FROM ' + tblDZ + ' dz INNER JOIN ' + tblCOrg + ' co ON (dz.CisloOrg=co.CisloOrg)'; + lSQL:= lSQL + ' WHERE dz.id=' + IntToStr(idDZ); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + tStr:= VarToStr(FieldValues(1)); + tStr:= LeftStr(tStr,Pos(' ',tStr)-1); + edtDat.Date:= StrToDate(tStr); + iTmp:= StrToInt(VarToStr(FieldValues(0))); + if (iTmp=1) then + cbOrg.ItemIndex:= 0 + else + cbOrg.ItemIndex:= NajdiVKoop(4,2,iTmp); + cbTypDokl.Enabled:= true; + cbTypDokl.ItemIndex:= 0; + if (cbOrg.ItemIndex=0) then + begin + with Helios.OpenSQL('SELECT _TypBalicihoListu FROM ' + tblDZe + ' WHERE id=' + IntToStr(idDZ)) do + if not VarIsNull(FieldValues(0)) then + cbTypDokl.ItemIndex:= StrToInt(VarToStr(FieldValues(0))) - 1; + end; + lSQL:= 'SELECT pz.id,pz.IDZboSklad,pz.SkupZbo,pz.RegCis,pz.Mnozstvi,kz.id,pz.NazevSozNa1,pz.Hmotnost FROM ' + tblPZ + ' pz INNER JOIN '; + lSQL:= lSQL + tblKZ + ' kz ON (pz.RegCis=kz.RegCis AND pz.SkupZbo=kz.SkupZbo) WHERE pz.IDDoklad=' + IntToStr(idDZ); +// lSQL:= lSQL + ' ORDER BY pz.SkupZbo,pz.RegCis'; + lSQL:= lSQL + ' ORDER BY pz.id'; + pol:= Helios.OpenSQL(lSQL); + if pol.RecordCount>0 then + begin + if not vTabBL.Active then + vTabBL.Open; + vTabBL.EmptyDataSet; + pol.First; + while not(pol.EOF) do + begin + vTabBL.Insert; + vTabBL.FieldByName('idPZ').AsString:= VarToStr(pol.FieldValues(0)); + vTabBL.FieldByName('idSS').AsString:= VarToStr(pol.FieldValues(1)); + vTabBL.FieldByName('idKZ').AsString:= VarToStr(pol.FieldValues(5)); + vTabBL.FieldByName('SkupZbo').AsString:= VarToStr(pol.FieldValues(2)); + vTabBL.FieldByName('RegCis').AsString:= VarToStr(pol.FieldValues(3)); + vTabBL.FieldByName('Box').AsString:= VarToStr(pol.FieldValues(6)); + vTabBL.FieldByName('Mnoz').AsFloat:= StrToFloat(VarToStr(pol.FieldValues(4))); + vTabBL.FieldByName('CelkHmot').AsFloat:= RoundToEx(StrToFloat(VarToStr(pol.FieldValues(7))),-3); + with Helios.OpenSQL('SELECT id FROM ' + tblBLPol + ' WHERE id=' + VarToStr(pol.FieldValues(0))) do + if RecordCount>0 then + vTabBL.FieldByName('IdBLPol').AsString:= VarToStr(FieldValues(0)); + vTabBL.Post; + pol.Next; + end; + end; + + end; + end; + end; + + + + procedure TformBaliciListy.TestRC; + var lSQL, podm, skl: string; + begin + jsemLov:= JeLovato; + if (jsemLov) and (cbTypDokl.ItemIndex=2) then + if (selSZ.Text<>'MAT') then + begin + Helios.Error(#1'Je vybrn BL druh MATERIL, nelze zadat dlce/polosestavy.'#1); + selSZ.Text:= ''; + selRegCis.Text:= ''; + edtKS.Value:= 0; + idKZ:= 0; + sIdSS:= ''; + Exit; + end; + if (jsemLov) and (cbTypDokl.ItemIndex<2) then + if (Pos('POL_',selRegCis.Text)>0) or (selSZ.Text='MAT') then + begin + Helios.Error(#1'Je vybrn BL druh FINLY/NEBALEN, nelze zadat polosestavy i materil.'#1); + selSZ.Text:= ''; + selRegCis.Text:= ''; + edtKS.Value:= 0; + idKZ:= 0; + sIdSS:= ''; + Exit; + end; + + if (sIdSS<>'') and (not selVyber) then + begin + if (idKZ>0) then + begin + lSQL:= 'SELECT Hmotnost FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ); + with Helios.OpenSQL(lSQL) do + hmotZ:= StrToFloat(VarToStr(FieldValues(0))); + end; + lSQL:= 'SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(sklCil) + ' AND IDKmenZbozi=('; + lSQL:= lSQL + 'SELECT IdKmenZbozi FROM ' + tblSS + ' WHERE id=' + sIdSS + ')'; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + if not(VarIsNull(FieldValues(0))) then + sIdSSCil:= VarToStr(FieldValues(0)); + if (sIdSSCil='') and not(jsemLov) then + begin + Helios.Error(#1'Vybran poloka nen urena pro tohoto odbratele !'#1 + CRLF + 'Nejprve piate kartu na sklad.'); + sIdSS:= ''; + idKZ:= 0; + lblKarta.Caption:= ''; + selSZ.Text:= ''; + selRegCis.Text:= '%'; + selRegCis.SetFocus; + Exit; + end; + end; + end; + + + + + procedure TformBaliciListy.grdDblClick (Sender: TObject); + var mnozZad, stav: Extended; + lSQL, box,skl: string; + chkStav: boolean; + clRow, clCol: integer; + fldName: string; + begin + // Zskn pozice kurzoru v gridu + clCol := grd.MouseCoord(Mouse.CursorPos.X - grd.ClientOrigin.X, + Mouse.CursorPos.Y - grd.ClientOrigin.Y).X; + clRow := grd.MouseCoord(Mouse.CursorPos.X - grd.ClientOrigin.X, + Mouse.CursorPos.Y - grd.ClientOrigin.Y).Y; + +// Pokud je dvojklik na buce, zjistme jmno pole + if (clRow>0) and (clCol>0) then + begin + fldName:= grd.Columns[clCol-1].FieldName; + + mnozZad:= vTabBL.FieldByName('Mnoz').AsFloat; + box:= vTabBL.FieldByName('Box').AsString; + if FormMnozstviBox(Helios, 'Zadejte opraven mnostv', mnozZad, box) then + begin + skl:= NajdiVKoop(3,4,cbOrg.ItemIndex); + if not(jsemLov) and (Helios.BrowseID=18) then + skl:= '200'; + chkStav:= false; + if (Helios.BrowseID=18) then + chkStav:= true; + stav:= 0; + lSQL:= 'DECLARE @mn NUMERIC(19,6)' + CRLF + 'SET @mn=0' + CRlF; + lSQL:= lSQL + 'IF EXISTS(SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skl) + ' AND IdKmenZbozi='; + lSQL:= lSQL + vTabBL.FieldByName('idKZ').AsString + ')' + CRLF + 'SELECT @Mn=Mnozstvi FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skl); + lSQL:= lSQL + ' AND IdKmenZbozi=' + vTabBL.FieldByName('idKZ').AsString + CRLF + 'SELECT @mn'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + stav:= StrToFloat(VarToStr(FieldValues(0))); + if (stav0'; + cBid:= 235; + end; + + if (jsemLov) and (Helios.BrowseID=27) then + begin + podm:= 'IdSklad=N' + QuotedStr(sklZdroj) + ' AND IdKmenZbozi IN (SELECT id FROM ' + tblKZ + ' WHERE Material='; + if (cbTypDokl.ItemIndex=2) or (cbTypDokl.ItemIndex=3) then + podm:= podm + '1' + else + podm:= podm + '0'; + podm:= podm + ' AND LEFT(RegCis,4)<>N' + QuotedStr('POL_') + ')'; + cBid:= 235; + end; + + bidTit:= 'Stavy skladu "' + sklZdroj +'"'; + if (selRegCis.Text<>'%') and (selRegCis.Text<>'') then + podm:= podm + ' AND IdKmenZbozi IN (SELECT id FROM ' + tblKZ + ' WHERE RegCis LIKE N' + QuotedStr(selRegCis.Text + '%') + ')'; + podm:= podm + ' AND IdKmenZbozi NOT IN (SELECT id FROM ' + tblKZ + ' WHERE Blokovano=1)'; + if Helios.Prenos(cBid,'id',oVar1,podm,bidTit,true) then + begin + idKZ:= 0; + if (cBid=100050) or (cBid=235) then + begin + sIdSS:= VarToStr(oVar1); // zdroj + podm:= 'SELECT kz.SkupZbo,kz.RegCis,kz.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id)'; + podm:= podm + ' WHERE ss.id=' + sIdSS; + with Helios.OpenSQL(podm) do + begin + selSZ.Text:= VarToStr(FieldValues(0)); + selRegCis.Text:= VarToStr(FieldValues(1)); + idKZ:= StrToInt(VarToStr(FieldValues(2))); + end; + end; + sIdSSCil:= ''; + if (idKZ>0) then // and (skl<>VyrSkl) + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + IntToStr(idKZ) + ' AND IDSklad=N' + QuotedStr(sklCil)) do + if (RecordCount=1) then + if not(VarIsNull(FieldValues(0))) then + sIdSSCil:= VarToStr(FieldValues(0)); + if (sIdSSCil='') and not(jsemLov) then + begin + Helios.Error(#1'Tato poloka nelze pevst na sklad ' + sklCil + #1 + CRLF + '(nen vytvoena karta)'); + Exit; + end; + + if (cBid=bidKZ) then + begin + idKZ:= StrToInt(VarToStr(oVar1)); + with Helios.OpenSQL('SELECT SkupZbo,RegCis FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ)) do + begin + selSZ.Text:= VarToStr(FieldValues(0)); + selRegCis.Text:= VarToStr(FieldValues(1)); + end; + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + IntToStr(idKZ) + ' AND IDSklad=N' + QuotedStr(skl)) do + if (RecordCount=1) then + sIdSS:= VarToStr(FieldValues(0)); + end; + TestRC; + end; +{ + if Helios.Prenos2(bidKZ,'SkupZbo','RegCis',oVar1,oVar2,podm,'Karty zbo a materilu',true,true,false,1) then + begin + selSZ.Text:= VarToStr(oVar1); + selSZ.Text:= StringReplace(selSZ.Text,'N''','',[rfReplaceAll]); + selSZ.Text:= StringReplace(selSZ.Text,'''','',[rfReplaceAll]); + selRegCis.Text:= VarToStr(oVar2); + selRegCis.Text:= StringReplace(selRegCis.Text,'N''','',[rfReplaceAll]); + if Length(selRegCis.Text)=2 then + selRegCis.Text:= selRegCis.Text + 'N'; + selRegCis.Text:= StringReplace(selRegCis.Text,'''','',[rfReplaceAll]); + end; +} + end; + + + + + procedure TformBaliciListy.selRegCisExit(Sender: TObject); + var lSQL, podm: string; + wild: boolean; + begin + jsemLov:= JeLovato; + jsemPrev:= JePrevodka; + if (selRegCis.Text<>'') and (selRegCis.Text<>'%') and not(selVyber) then + // KBN4L11P, %BGX5000 - final + // 4RF915 - nebalane + begin + NajdiZdrojCil; + sIdSS:= ''; + sIdSSCil:= ''; + if (selRegCis.Text[1]='%') then + begin + wild:= true; + selRegCis.Text:= MidStr(selRegCis.Text,2,255); + end; + + lSQL:= 'SELECT ss.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id)'; + lSQL:= lSQL + ' INNER JOIN ' + tblKZe + ' kze ON (kze.id=kz.id)'; + lSQL:= lSQL + ' WHERE ss.IDSklad=N' + QuotedStr(sklZdroj) + ' AND kz.RegCis LIKE ' + QuotedStr('%' + selRegCis.Text + '%'); + lSQL:= lSQL + ' AND kz.SkupZbo<>N' + QuotedStr('M00') + ' AND kz.SkupZbo IN (SELECT sz.SkupZbo FROM '; + lSQL:= lSQL + tblSZ + ' sz LEFT JOIN ' + tblSZe + ' sze ON (sz.id=sze.id) WHERE sze._JeVyroba=1)'; + +// finaly + if (cbTypDokl.ItemIndex=0) and (jsemLov) then + lSQL:= lSQL + ' AND kze._TypKartyVyroba IN (0,2)'; + +// nebalene + if (cbTypDokl.ItemIndex=1) and (jsemLov) then + lSQL:= lSQL + ' AND kze._TypKartyVyroba IN (1,2)'; + +{ + with Helios.OpenSQL(lSQL + ' AND ss.Blokovano=1') do + begin + if (RecordCount>0) then + begin + Helios.Error(#1'Nkter odpovdajc karta je na zdrojovm sklad (' + sklZdroj + ') blokovna, pokud chcete' + CRLF + 'pevst blokovanou kartu, pevod se mus udlat standardnm editorem.'#1); + selRegCis.Text:= '%' + selRegCis.Text; + selRegCis.SetFocus; + idKZ:= 0; + sIdSS:= ''; + sIdSSCil:= ''; + end; + end; +} + + with Helios.OpenSQL(lSQL) do + begin + case RecordCount of + 0: begin + Helios.Error(#1'Nebyla nalezena dn odpovdajc karta zbo.'#1 + CRLF + 'Zkontrolujte typ na ext.informacch kmenov karty (Finl/Nebalen apod.)'); + selRegCis.Text:= '%'; + selRegCis.SetFocus; + idKZ:= 0; + sIdSS:= ''; + sIdSSCil:= ''; + Exit; + end; + 1: begin + sIdSS:= VarToStr(FieldValues(0)); // idSS zdroj + with Helios.OpenSQL('SELECT IdKmenZbozi FROM ' + tblSS + ' WHERE id=' + sIdSS) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + end; + else + begin + podm:= 'TabStavSkladu.IDSklad=N' + QuotedStr(sklZdroj) + ' AND TabStavSkladu.idKmenZbozi IN (SELECT id FROM ' + tblKZ; + podm:= podm + ' kz WHERE '; + if (jsemLov) and (cbTypDokl.ItemIndex<2) then + podm:= podm + 'SkupZbo<>N' + QuotedStr('MAT') + ' AND LEFT(RegCis,4)<>N' + QuotedStr('POL_'); + if (Pos('MAT', podm))>0 then + podm:= podm + ' AND '; + podm:= podm + 'RegCis LIKE N' + QuotedStr(IfThen(selRegCis.Text[1]='%','','%') + selRegCis.Text + '%'); + if (jsemLov) and (cbTypDokl.ItemIndex=2) then + podm:= podm + ' AND SkupZbo=N' + QuotedStr('MAT'); + podm:= podm + ' AND Blokovano=0 AND SkupZbo IN (SELECT SkupZbo FROM dbo.TabSkupinyZbozi sz LEFT JOIN dbo.TabSkupinyZbozi_EXT'; + podm:= podm + ' sze ON (sz.id=sze.id) WHERE sze._JeVyroba=1 AND RIGHT(SkupZbo,1)<>N''V''))'; + if Helios.Prenos(235,'id',oVar1,podm,'Stav skladu ' + sklZdroj,true) then + begin + sIdSS:= VarToStr(oVar1); + with Helios.OpenSQL('SELECT IdKmenZbozi FROM ' + tblSS + ' WHERE id=' + sIdSS) do + idKZ:= StrToInt(VarToStr(FieldValues(0))); + end + else + sIdSS:= ''; + end; + end; + end; + if (sIdSS<>'') then + begin + lSQL:= 'SELECT kz.SkupZbo,kz.RegCis,kz.Nazev1,kz.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id)'; + lSQL:= lSQL + ' WHERE ss.id=' + sIdSS; + with Helios.OpenSQL(lSQL) do + begin + selSZ.Text:= VarToStr(FieldValues(0)); + selRegCis.Text:= VarToStr(FieldValues(1)); + lblKarta.Caption:= VarToStr(FieldValues(2)); + idKZ:= StrToInt(VarToStr(FieldValues(3))); + end; + sIdSSCil:= ''; + end; + end; + selVyber:= false; + if (sIdSS<>'') and (idKZ>0) then + begin + TestRC; + if (selRegCis.Text<>'%') then + FocusKS; + end; + end; + + + + + procedure TformBaliciListy.selRegCisKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if Key=VK_ESCAPE then + selRegCis.Text:= ''; + if (Key in [VK_RETURN,VK_TAB]) and (selRegCis.Text<>'') and (selRegCis.Text<>'%') then + begin + selRegCisButtonClick(Sender); + FocusKS; + end; + end; + + + + + procedure TformBaliciListy.selSZButtonClick(Sender: TObject); + var podm: string; + begin + podm:= 'TabSkupinyZbozi.id IN (SELECT id FROM ' + tblSZe + ' WHERE _JeVyroba=1)'; + + if (JeLovato) and (cbTypDokl.ItemIndex=2) then + podm:= 'TabSkupinyZbozi.SkupZbo=N' + QuotedStr('MAT'); + + if Helios.Prenos(bidSZ,'SkupZbo',oVar1,podm,'Skupiny zbo',true) then + selSZ.Text:= VarToStr(oVar1); + selSZ.Text:= Trim(selSZ.Text); + end; + + + + + procedure TformBaliciListy.selSZKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + selSZ.Text:= Trim(selSZ.Text); + if (Key in [VK_RETURN,VK_TAB]) and (selSZ.Text<>'') then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblSZ + ' WHERE SkupZbo=N' + QuotedStr(selSZ.Text)) do + if RecordCount=0 then + begin + Helios.Error(#1'Zadan skupina zbo neexistuje.'#1); + selSZ.Text:= ''; + end; + end; + end; + + + + + procedure TformBaliciListy.pmDelPolClick(Sender: TObject); + var sTmp: string; + begin + if not edit then + begin + if vTabBL.RecordCount=0 then + Exit; + sTmp:= vTabBL.FieldByName('SkupZbo').AsString + ' : ' + vTabBL.FieldByName('RegCis').AsString; + if Helios.YesNo('Opravdu zruit poloku (' + sTmp + ') ?',False) then + begin + Clipboard.AsText:= vTabBL.FieldByName('Mnoz').AsString; + vTabBL.Delete; + FocusRegCis; + end; + end + else + Helios.Error('Na realizovanm dokladu nelze mazat poloky.'); + end; + + + + + procedure TformBaliciListy.pmImpReaderClick(Sender: TObject); + var fIn: TStringStream; + idx,pocet: Integer; + fName: string; + radky: TStringList; + begin + if OtevriSoubor('Soubor importovanch dat','Textov soubor','*.txt','',fName) then + begin + fIn:= TStringStream.Create; + try + fIn.LoadFromFile(fName); + pocet:= Length(fIn.DataString)-Length(StringReplace(fIn.DataString,#13,'',[rfReplaceAll])); + finally + fIn.Free; + end; + end + else + Helios.Error(#1'Nebyl vybrn soubor pro import...'#1); + end; + + + + + procedure TformBaliciListy.VytvorTabulkyAGrid; + var idx: integer; + begin + if not(vTabBL.Active) then + vTabBL.Open; +{ + with vTabBL do + begin + with FieldDefs do + begin + Clear; + Add('idKZ', ftInteger, 0, true); + Add('idSS', ftInteger, 0, false); + Add('idPZ', ftInteger, 0, false); + Add('SkupZbo', ftString, 3, true); + Add('RegCis', ftString, 20, true); + Add('Box', ftString, 20, false); + Add('Mnoz', ftFloat, 0, true); + Add('CelkHmot', ftFloat, 0, false); + Add('Prikaz', ftInteger, 0, false); + Add('IdBLPol', ftInteger, 0, false); + Add('IDSklad', ftString, 30, false); + Add('idSSCil', ftInteger, 0, false); + Add('IDSkladCil', ftString, 30, false); + end; + end; + vTabBL.Open; + +} + end; + + + + + procedure TformBaliciListy.btnAddPolClick(Sender: TObject); + var lSQL, skl: string; + stav: Extended; + chkStav: Boolean; + begin + jsemLov:= JeLovato; + if (idKZ>0) and (sIdSS<>'') and ((sIdSSCil<>'') or (jsemLov)) then + begin + chkStav:= false; + if (Helios.BrowseID=18) then + chkStav:= true; + stav:= 0; + +// skl:= VyrSkl; +// if (cbVratka.Checked) then +// skl:= NajdiVKoop(3,4,cbOrg.ItemIndex); + +{ + lSQL:= 'DECLARE @mn NUMERIC(19,6)' + CRLF + 'SET @mn=0' + CRLF; + lSQL:= lSQL + 'IF EXISTS(SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skl) + ' AND IdKmenZbozi='; + lSQL:= lSQL + IntToStr(idKZ) + ')' + CRLF + 'SELECT @mn=Mnozstvi FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(skl); + lSQL:= lSQL + ' AND IdKmenZbozi=' + IntToStr(idKZ) + CRLF + 'SELECT @mn'; +} + lSQL:= 'DECLARE @mn NUMERIC(19,6)' + CRLF + 'DECLARE @skl NVARCHAR(30)' + CRLF + 'SET @mn=0' + CRLF + 'SET @skl=NULL' + CRLF; + lSQL:= lSQL + 'SELECT @mn=Mnozstvi-MnozstviKVydeji,@skl=IDSklad FROM ' + tblSS + ' WHERE id=' + sIdSS + CRLF + 'SELECT @mn,@skl'; + with Helios.OpenSQL(lSQL) do + stav:= StrToFloat(VarToStr(FieldValues(0))); + if (stav0) then + begin + edtBox.Text:= Trim(edtBox.Text); + vTabBL.Append; + vTabBL.FieldByName('idKZ').AsInteger:= idKZ; + vTabBL.FieldByName('idSS').AsString:= sIdSS; + vTabBL.FieldByName('Mnoz').AsFloat:= edtKS.Value; + vTabBL.FieldByName('SkupZbo').AsString:= selSZ.Text; + vTabBL.FieldByName('RegCis').AsString:= selRegCis.Text; + vTabBL.FieldByName('Box').AsString:= edtBox.Text; + vTabBL.FieldByName('CelkHmot').AsFloat:= RoundToEX(hmotC,-3); + vTabBL.FieldByName('IDSklad').AsString:= sklZdroj; + vTabBL.FieldByName('IDSkladCil').AsString:= sklCil; + vTabBL.FieldByName('IdSSCil').AsString:= sIdSSCil; + + lSQL:= 'INSERT ' + tblBLPol + ' (IdDoklad,IdStavSkladu,IdStavSkladuCil,Mnozstvi,Box) VALUES ('; + lSQL:= lSQL + IntToStr(idBL) + ',' + sIdSS + ','; + if (sIdSSCil='') then + lSQL:= lSQL + '0' + else + lSQL:= lSQL + sIdSSCil; + lSQL:= lSQL + ',' + StringReplace(FloatToStr(edtKS.Value),',','.',[rfReplaceAll]) + ',N'; + lSQL:= lSQL + QuotedStr(edtBox.Text) + ')' + CRLF + 'SELECT SCOPE_IDENTITY()'; + try + with Helios.OpenSQL(lSQL) do + vTabBL.FieldByName('IdBLPol').AsString:= VarToStr(FieldValues(0)); + except + end; + + vTabBL.Post; + selSZ.Text:= ''; + selRegCis.Text:= ''; + edtKS.Value:= 0; + edtBox.Text:= '0'; + idKZ:= 0; + sIdSS:= ''; + sIdSSCil:= ''; + lblKarta.Caption:= ''; + FocusRegCis; + end; + end + else + Helios.Error(#1'Nen vybran poloka.'#1); + end; + + + + + procedure TformBaliciListy.btnCancelClick(Sender: TObject); + begin + if vTabBL.RecordCount=0 then + Helios.ExecSQL('DELETE FROM ' + tblBL + ' WHERE id=' + IntToStr(idBL)); + Close; + end; + + + + + procedure TformBaliciListy.btnOKClick(Sender: TObject); + const rPrev = '250'; + var idx, idKZ, idPZ, idSS, prikaz, idDZ2, idDZv, idDZp, idKJ: integer; + lSQL, wCond: string; + kurz, jcena, qty, hmot: Extended; + mena, mj, cOrg, cBL, rDoklBL, cSkl, dt, idObd, cZak: string; + idcka: string; + jeMat, realVyd, realPrij: boolean; + oldSkl, sklPrev: string; + begin + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + ReseedTable(Helios,tblBL); + ReseedTable(Helios,tblBLPol); + +// ReseedTable(Helios,'[dbo].[_TamTempPolozkyBL]'); + idObd:= ''; + idDZv:= 0; // vydejka + idDZp:= 0; // prijemka + idKJ:= 0; + + jsemLov:= JeLovato; + jsemPrev:= JePrevodka; + + lSQL:= 'DECLARE @obd INT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateToStr(edtDat.Date)) + ',104)'; + lSQL:= lSQL + CRLF + 'EXEC @obd=dbo.hp_GetObdobiDleDatumu @dt,0,null,null,0,0' + CRLF + 'SELECT @obd'; + with Helios.OpenSQL(lSQL) do + idObd:= Trim(VarToStr(FieldValues(0))); + if (idObd='') then + begin + Helios.Error(#1'Podle zadanho data nebylo nalezeno Obdob, zkontrolujte nastaven Heliosu.'#1); + end; + + lSQL:= 'DELETE FROM dbo._TabStavPrevod WHERE DATEDIFF(month, DatPorizeni, GETDATE())>1'; + Helios.ExecSQL(lSQL); + + oldSkl:= Helios.Sklad; +// balici listy + cBL:= '11'; // druh pohybu Nabidkove sestavy + rDoklBL:= '200'; // rada dokladu + + lSQL:= BoolToStr(jsemLov); + + if not(jsemLov) then + begin + cBL:= '4'; // vydej v evid.cene + rDoklBL:= '450'; // vydejka-prevodka + end; + + if (vTabBL.RecordCount>0) then + begin +// smaze z dokladu polozky smazane skladnikem v BL + idcka:= helUtils.IDckaTabulky(vTabBL,'idPZ'); + if (idcka<>'') then + try + Helios.ExecSQL('DELETE FROM ' + tblPZ + ' WHERE idDoklad=' + IntToStr(idDZ) + ' AND id NOT IN (' + idcka + ')'); + except on E:Exception do + Helios.Error(#1'Z Balicho listu nelze smazat "star" dek.'#1 + CRLF + E.Message); + end; + + if (jsemLov) then + cOrg:= '1' // Lovato IT + else + cOrg:= NajdiVKoop(2, 4, cbOrg.ItemIndex); + if (jsemPrev) then + cOrg:= '0'; // pri prevodce nastav vlastni organizaci + + lSQL:= 'UPDATE ' + tblBL + ' SET CisloOrg=' + cOrg + ',Vratka='; + if cbVratka.Checked then + lSQL:= lSQL + '1' + else + lSQL:= lSQL + '0'; + + if (jsemLov) then + begin + lSQL:= lSQL + ',MistoUrceni='; + if (cbTypDokl.ItemIndex>0) then + begin lSQL:= lSQL + cOrg end + else + begin lSQL:= lSQL + cOrgFinaly; end; + end; + + if (jsemLov) then + lSQL:= lSQL + ',TypBL=' + IntToStr(cbTypDokl.ItemIndex+1); + lSQL:= lSQL + ' WHERE id=' + IntToStr(idBL); + try + Helios.ExecSQL(lSQL); + except + end; + +// pri reklamaci udelej zakazku + cZak:= ''; + if (cbTypDokl.Text='REKLAMACE') then + begin + dt:= '200'; // rada zakazek Vyroba-Reklamace + lSQL:= 'SELECT REPLICATE(N''0'', (SELECT CisloDelka FROM dbo.TabZakazkaRada WHERE Rada=N' + QuotedStr(dt); + lSQL:= lSQL + ') - LEN(CONVERT(nvarchar, CONVERT(int, ( SELECT ISNULL'; + lSQL:= lSQL + ' ( (SELECT MAX(CisloZakazky) FROM dbo.TabZakazka WHERE Rada=N' + QuotedStr(dt) + ') ,0))))))'; + lSQL:= lSQL + ' + CONVERT(NVARCHAR,MAX(CONVERT(int,z.CisloZakazky))+1) FROM TabZakazka z WHERE z.Rada=N' + QuotedStr(dt); + with Helios.OpenSQL(lSQL) do + cZak:= VarToStr(FieldValues(0)); + + lSQL:= 'INSERT ' + tblZak + ' (Rada,CisloZakazky,Nazev) VALUES (N' + QuotedStr(dt) + ',N' + QuotedStr(cZak) + ',N'; + dt:= 'Reklamace > '; + case StrToInt(cOrg) of + 11: dt:= dt + 'VDST'; + 17: dt:= dt + 'Pikl'; + 25: dt:= dt + 'PCO'; + end; + lSQL:= lSQL + QuotedStr(dt) + ')'; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Nelze uloit slo zakzky pro reklamaci.'#1 + CRLF + E.Message); + end; + end; + +{ + vTabBL.First; + while not vTabBL.Eof do + begin + lSQL:= 'INSERT [dbo].[_TabTempPolozkyBL] (SkupZbo,RegCis,Mnoz,Box,CisloOrg) VALUES (N'; + lSQL:= lSQL + QuotedStr(vTabBL.FieldByName('SkupZbo').AsString) + ',N' + QuotedStr(vTabBL.FieldByName('RegCis').AsString); + lSQL:= lSQL + ',' + StringReplace(vTabBL.FieldByName('Mnoz').AsString,',','.',[rfReplaceAll]) + ',N'; + lSQL:= lSQL + QuotedStr(vTabBL.FieldByName('Box').AsString) + ',' + cOrg + ')'; + try + Helios.ExecSQL(lSQL); + except + end; + vTabBL.Next; + end; + + sklPrev:= NajdiVKoop(3,4,cbOrg.ItemIndex); + if (cbVratka.Checked) and not(jeLovato) then + begin + Helios.SetSklad(sklPrev); + sklPrev:= '200'; + if (cbTypDokl.ItemIndex=1) and (cbReklamace.Checked) then + if Length(sklPrev)=3 then + begin sklPrev:= sklPrev + '00001' end + else + begin sklPrev:= sklPrev + '001' end + end; +} + + dt:= DateTimeToStr(Now); + if (edtDat.Text<>'') then + dt:= DateToStr(edtDat.Date) + ' ' + TimeToStr(Now); + + kurz:= 1; + mena:= 'CZK'; + if (jsemLov) then + begin + mena:= 'EUR'; + lSQL:= 'DECLARE @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + lSQL:= lSQL + CRLF + 'SELECT kurz FROM ' + tblKList + ' WHERE Datum<=@dt AND Mena=N' + QuotedStr(mena) + ' ORDER BY Datum DESC'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + kurz:= StrToFloat(VarToStr(FieldValues(0))); + end; + + if (idDZ=0) then + begin + lSQL:= 'DECLARE @dt DATETIME,@Ident INT'; + lSQL:= lSQL + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + lSQL:= lSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N'; + lSQL:= lSQL + QuotedStr(sklZdroj)+',@DruhPohybu=' + cBL + ',@RadaDokladu=N' + QuotedStr(rDoklBL); + lSQL:= lSQL +',@Insert=1,@PC=NULL,@CisloOrg=' + cOrg + ',@Mena=N' + QuotedStr(mena) + ',@DatumPorizeni=@dt'; + lSQL:= lSQL + CRLF + 'SELECT @Ident'; + idDZ:= 0; + try + with Helios.OpenSQL(lSQL) do + if VarIsNull(FieldValues(0)) then + idDZ:= 0 + else + if not TryStrToInt(VarToStr(FieldValues(0)), idDZ) then + idDZ:= 0; + if (idDZ>0) and (cOrg<>'') and not(jeLovato) then + begin + idDZv:= idDZ; + lSQL:= 'UPDATE ' + tblDZ + ' SET Mena=' + QuotedStr('CZK') + ',IdSkladPrevodu=N' + QuotedStr(sklCil); + lSQL:= lSQL + ',BlokovaniEditoru=' + IntToStr(Helios.UserId) + ',TypPrevodky=N' + QuotedStr(rPrev); + lSQL:= lSQL + ',Text3=CONVERT(ntext,N' + QuotedStr('plgLOVATO') + '),DruhPohybuPrevod=0 WHERE id=' + IntToStr(idDZ); + if (cZak<>'') then + lSQL:= lSQL + CRLF + 'UPDATE ' + tblDZ + ' SET CisloZakazky=N' + QuotedStr(cZak) + ' WHERE id=' + IntToStr(idDZ); + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + begin + Helios.Error(#1'Nelze uloit nov Balc list/Vdejku/Vratku.'#1 + CRLF + E.Message); + idKJ:= ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze uloit nov Balc list/Vdejku/Vratku'); + if idKJ>0 then + Helios.ExecSQL('INSERT ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.baliciListy') + ',N' + QuotedStr(E.Message + CRLF + lSQL) + ')'); + idKJ:= 0; + end; + end; + end; + + if (idDZ>0) then + begin + if (jsemLov) then + begin + lSQL:= 'UPDATE ' + tblDZ + ' SET MistoUrceni='; + if (cOrg='1') then + if (cbTypDokl.ItemIndex>0) then + begin lSQL:= lSQL + cOrg end + else + begin lSQL:= lSQL + cOrgFinaly; end; + lSQL:= lSQL + ' WHERE id=' + IntToStr(idDZ); + Helios.ExecSQL(lSQL); + lSQL:= 'IF NOT EXISTS(SELECT id FROM ' + tblDZe + ' WHERE id=' + IntToStr(idDZ) + ')' + CRLF; + lSQL:= lSQL + 'INSERT ' + tblDZe + ' (id) VALUES (' + IntToStr(idDZ) + ')' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblDZe + ' SET _TypBalicihoListu=' + IntToStr(cbTypDokl.ItemIndex+1); + lSQL:= lSQL + ' WHERE id=' + IntToStr(idDZ); + Helios.ExecSQL(lSQL); + end; + + with Helios.OpenSQL('SELECT Mena FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ)) do + begin + if not VarIsNull(FieldValues(0)) then + mena:= VarToStr(FieldValues(0)); +// if not VarIsNull(FieldValues(1)) then +// kurz:= StrToFloat(VarToStr(FieldValues(1))); + end; + vTabBL.DisableControls; + vTabBL.First; + while not(vTabBL.EOF) do + begin + qty:= vTabBL.FieldByName('Mnoz').AsFloat; + idKZ:= vTabBL.FieldByName('idKZ').AsInteger; + idSS:= vTabBL.FieldByName('idSS').AsInteger; + idPZ:= vTabBL.FieldByName('idPZ').AsInteger; + hmot:= vTabBL.FieldByName('CelkHmot').AsFloat; + hmot:= RoundToEx(hmot/qty,-3); + prikaz:= vTabBL.FieldByName('Prikaz').AsInteger; + jcena:= 0.1; + mj:= 'ks'; + if (idKZ<>0) and (idPZ=0) then + with Helios.OpenSQL('SELECT MJevidence,Hmotnost FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ)) do + begin + mj:= VarToStr(FieldValues(0)); + if VarIsNull(FieldValues(1)) then + Helios.ExecSQL('UPDATE ' + tblKZ + ' SET Hmotnost=0 WHERE id=' + IntToStr(idKZ)) + else + hmot:= StrToFloat(VarToStr(FieldValues(1))); + end; + if (idSS=0) and (idKZ<>0) and (idPZ=0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(Helios.Sklad) + ' AND IDKMenZbozi=' + IntToStr(idKZ)) do + if RecordCount>0 then + idSS:= StrToInt(VarToStr(FieldValues(0))) + else + begin + lSQL:= 'INSERT ' + tblSS + ' (IDSklad,IDKmenZbozi) VALUES (N' + QuotedStr(Helios.Sklad); + lSQL:= lSQL + ',' + IntToStr(idKZ) + ')' + CRLF + 'SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(lSQL) do + idSS:= StrToInt(VarToStr(FieldValues(0))); + end; + end; + if (idSS>0) and (qty<>0) then + begin +// data pro kontrolu prevodu + lSQL:= 'INSERT dbo._TabStavPrevod(IDDoklad,IDZboSklad,Stav,Mnozstvi) VALUES ('; + lSQL:= lSQL + IntToStr(idDZ) + ',' + IntToStR(idSS) + ','; + with Helios.OpenSQL('SELECT Mnozstvi FROM ' + tblSS + ' WHERE id=' + IntToStr(idSS)) do + lSQL:= lSQL + StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]) + ','; + lSQL:= lSQL + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + + with Helios.OpenSQL('SELECT EcJc FROM ' + tblJC + ' WHERE IDStavSkladu=' + IntToStr(idSS)) do + if (RecordCount>0) then + jcena:= StrToFloat(VarToStr(FieldValues(0))) + else + jcena:= 0.1; + jeMat:= false; + if (idKZ>0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblKZ + ' WHERE Material=1 AND id=' + IntToStr(idKZ)) do + if (RecordCount>0) then + jeMat:= true; + end; + +// kalkulacni cena materialu na balici listy i vydejky kooperantum +// !! kalk.cena je v EURech !! + if (jeMat) then + begin + with Helios.OpenSQL('SELECT TOP(1) kc.Cena FROM ' + tblKalkCe + ' kc LEFT JOIN ' + tblCZmen + ' cz ON (kc.ZmenaOd=cz.id) WHERE kc.IDKmenZbozi=' + IntToStr(idKZ) + ' ORDER BY cz.datum DESC') do + if (RecordCount=1) then + jcena:= StrToFloat(VarToStr(FieldValues(0))); + end + else + begin + with Helios.OpenSQL('SELECT TOP(1) zk.Mat FROM ' + tblZaklKalk + ' zk LEFT JOIN ' + tblCZmen +' cz ON (zk.ZmenaOd=cz.id) WHERE zk.dilec=' + IntToStr(idKZ) + ' ORDER BY cz.Datum DESC') do + if (RecordCount=1) then + jcena:= StrToFloat(VarToStr(FieldValues(0))); + end; + + jCena:= RoundToEx(jcena*Kurz,-4); // cena * Kurz + + if (idPZ=0) then + begin + lSQL:= 'DECLARE @Ident INT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + lSQL:= lSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @Ident OUT,@IDDoklad='; + lSQL:= lSQL + IntToStr(idDZ) + ',@DruhPohybu=' + cBL + ',@CisloOrg=' + cOrg + ',@IDZboSklad=' + IntToStr(idSS); + lSQL:= lSQL + ',@SazbaDPH=null,@Mnozstvi=' + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@MJ=N' + QuotedStr(mj) + ',@JCbezDaniKC=' + StringReplace(FloatToStr(jcena),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@DatPorizeni=@dt,@VstupniCena='; + if (cOrg='1') then + lSQL:= lSQL + '4,@Kurz=' + StringReplace(FloatToStr(kurz),',','.',[rfReplaceAll]) + else + lSQL:= lSQL + '0,@Kurz=1'; + lSQL:= lSQL + ',@PovolitDuplicitu=1,@SazbaSD=0,@ZakazanoDPH=0,@KurzEuro=0,@Mena=N' + QuotedStr(mena); + lSQL:= lSQL + ',@JednotkaMeny=1,@Selectem=0' + CRLF + 'SELECT @Ident'; + end + else + begin + lSQL:= 'UPDATE ' + tblPZ + ' SET Mnozstvi=' + StringReplace(FloatToStr(qty),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',VstupniCena='; + if cOrg='1' then + lSQL:= lSQL + '4,Kurz=' + StringReplace(FloatToStr(kurz),',','.',[rfReplaceAll]) + else + lSQL:= lSQL + '0,Kurz=1'; + lSQL:= lSQL + ',StredNaklad=N' + QuotedStr(VyrSkl) + ' WHERE id=' + IntToStr(idPZ); + end; + try + with Helios.OpenSQL(lSQL) do + if (idPZ=0) then + if (RecordCount>0) then + if not VarIsNull(FieldValues(0)) then + if not TryStrToInt(VarToStr(FieldValues(0)),idPZ) then + idPZ:= 0; + except on E:Exception do + Helios.Error(#1'Nelze uloit poloku do Balcho listu/Vdejky !'#1 + CRLF + lSQL); + end; + if (idPZ>0) then + begin + if (vTabBL.FieldByName('idBLPol').AsString<>'') then + begin + lSQL:= 'UPDATE ' + tblBLPol + ' SET IdPolozkaOZ=' + IntToStr(idPZ) + ' WHERE id='; + lSQL:= lSQL + vTabBL.FieldByName('idBLPol').AsString; + Helios.ExecSQL(lSQL); + end; + + lSQL:= 'UPDATE ' + tblPZ + ' SET NazevSozNa1=N' + QuotedStr(IfThen(jsemPrev, '', vTabBL.FieldByName('Box').AsString)); + lSQL:= lSQL + ',JCbezDaniKC=Kurz*' + StringReplace(FloatToStr(jcena),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CCbezDaniKc=JCbezDaniKC*Mnozstvi,JCbezDaniVal='; + lSQL:= lSQL + StringReplace(FloatToStr(jcena),',','.',[rfReplaceAll]) + ',CCbezDaniVal='; + lSQL:= lSQL + 'JCbezDaniVal*Mnozstvi WHERE id=' + IntToStr(idPZ); + Helios.ExecSQL(lSQL); + if (prikaz>0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblPZe + ' WHERE id=' + IntToStr(idPZ)) do + if RecordCount=0 then + lSQL:= 'INSERT ' + tblPZe + ' (id,_VyrobniPrikaz) VALUES (' + IntToStr(idPZ) + ',' + IntToStr(prikaz) + ')' + else + lSQL:= 'UPDATE ' + tblPZe + ' SET _VyrobniPrikaz=' + IntToStr(prikaz) + ' WHERE id=' + IntToStr(idPZ); + Helios.ExecSQL(lSQL); + end; + end; + vTabBL.Next; + end; + end; + vTabBL.EnableControls; + + Helios.ExecSQL('UPDATE ' + tblBL + ' SET IdDokladOZ=' + IntToStr(idDZ) + ' WHERE id=' + IntToStr(idBL)); + Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCenyVydejky @idDZ=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ)); + if (cZak<>'') then + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET CisloZakazky=N' + QuotedStr(cZak) + ' WHERE idDoklad=' + IntToStr(idDZ)); + + if not(jsemLov) and (Helios.BrowseID=bidDZPrij) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE NavaznyDoklad IS NOT NULL AND id=' + IntToStR(idDZ)) do + if (RecordCount=0) then + begin + realVyd:= false; +// vytvor hlavicku nasledneho dokladu + if (rDoklBL='450') then + begin + rDoklBL:= '250'; + cBL:= '0'; + end; +// wCond:= 'IDSklad=N' + QuotedStr(sklCil); +// wCond:= wCond + ' AND Obdobi=' + idObd; +// wCond:= wCond + ' AND DruhPohybuZbo=' + cBL + ' AND RadaDokladu=N' + QuotedStr(rDoklBL); +// idDZ2:= helUtils.NajdiPrvniVolny(Helios,tblDZ,'PoradoveCislo',cBL,rDoklBL,idObd,wCond); + + lSQL:= 'DECLARE @dt DATETIME,@Ident INT' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + lSQL:= lSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N' + QuotedStr(sklCil); + lSQL:= lSQL + ',@DruhPohybu=' + cBL + ',@RadaDokladu=N' + QuotedStr(rDoklBL); + lSQL:= lSQL + ',@Insert=1,@PC=NULL,@CisloOrg='; + lSQL:= lSQL + cOrg + ',@Mena=N' + QuotedStr(mena) + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @Ident'; + idDZ2:= 0; + try + with Helios.OpenSQL(lSQL) do + if VarIsNull(FieldValues(0)) then + idDZ2:= 0 + else + if not TryStrToInt(VarToStr(FieldValues(0)), idDZ2) then + idDZ2:= 0; + except on E:Exception do + Helios.Error(#1'Nelze vytvoit nsledn doklad.'#1 + CRLF + E.Message + errPlg); + end; + end; + if (idDZ2>0) then + idDZp:= idDZ2; + + if (cZak<>'') and (idDZp>0) then + begin + lSQL:= 'UPDATE ' + tblDZ + ' SET CisloZakazky=N' + QuotedStr(cZak) + ' WHERE id=' + IntToStr(idDZp); + try + Helios.ExecSQL(lSQL); + except + end; + end; + +// if cbVratka.Checked then + try + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + lSQL:= lSQL + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZ2) + ',@IDDokladSrc=' + IntToStr(idDZ); + lSQL:= lSQL + ',@CisloOrgCil=' + cOrg + ',@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + lSQL:= lSQL + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=N' + QuotedStr(VyrSkl) + ',@StredVynosCil=null'; + lSQL:= lSQL + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Pevod materilu'); + lSQL:= lSQL + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0,@VytvaretPolozkovouVazbu=1'; + Helios.ExecSQL(lSQL); + except on E:Exception do + begin + Helios.ExecSQL('DELETE FROM ' + tblDZ + ' WHERE id=' + IntToStR(idDZp)); +// idDZp:= 0; + Helios.Error(#1'Chyba pi generovn nvaznho dokladu.'#1 + CRLF + E.Message + errPlg); + end; + end; + + try + lSQL:= 'EXEC dbo.ep_PZ_KopirujCenyDleOldPolozky @IdDokladNew=' + IntTOStr(idDZ2); + Helios.ExecSQL(lSQL); + except on E:Exception do + begin + Helios.Error(#1'Chyba pi duplikaci cen na nvazn doklad.'#1 + CRLF + E.Message + errPlg); + end; + end; + +{ +// pokud je kalkulacni cena nulova, koukni se na posledni prijemku, cena v EURech + if jcena=0 then + with Helios.OpenSQL('SELECT TOP(1) JCbezDaniValPoS FROM ' + tblPZ + ' WHERE Mena=N''EUR'' AND DruhPohybuZbo=0 AND IdZboSklad=' + IntToStr(idSS) + ' ORDER BY pz.DatPorizeni DESC') do + if RecordCount=1 then + if not VarIsNull(FieldValues(0)) then + jcena:= StrToFloat(VarToStr(FieldValues(0))); + +} + realVyd:= false; + if (idDZ>0) and (idDZp>0) and not(JeLovato) then + begin + realPrij:= false; + try + lSQL:= 'DECLARE @dt DATETIME,@chyba BIT' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)' + CRLF; + lSQL:= lSQL + 'SET @chyba=0' + CRLF + 'EXEC dbo.hp_Realizuj_Vydej ' + IntToStr(idDZ) + ',@dt,' + IntToStr(Helios.UserId) + ',0,@chyba OUT'; + lSQL:= lSQL + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(lSQL) do + begin + if not VarIsNull(FieldValues(0)) then + if (LowerCase(VarToStr(FieldValues(0)))='false') then + realVyd:= true; + end; + except on E:Exception do + begin + if (Pos('50024',E.Message))>0 then + Helios.Error(#1'Na vdejce nejsou poloky, nelze realizovat.'#1) + else + Helios.Error(#1'Nelze realizovat vdejku !'#1 + CRLF + 'idVyd: ' + IntToStr(idDZ) + CRLF + E.Message + errPlg); +{ + idKJ:= ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze realizovat Vdejku/Vratku'); + if idKJ>0 then + Helios.ExecSQL('INSERT INTO ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit7') + ',N' + QuotedStr(E.Message + CRLF + lSQL) + ')'); + idKJ:= 0; +} + end; + end; +{ + try + lSQL:= 'DECLARE @dt DATETIME,@chyba BIT' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_Realizuj_Prijem ' + IntToStr(idDZp) + ',@dt,' + IntToStr(Helios.UserId) + ',@chyba OUT'; + lSQL:= lSQL + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(lSQL) do + begin + if not VarIsNull(FieldValues(0)) then + if LowerCase(VarToStr(FieldValues(0)))='false' then + realPrij:= true; + end; + except on E:Exception do + Helios.Error(#1'Nelze realizovat vdejku/pjemku !'#1 + CRLF + 'idVyd: ' + IntToStr(idDZ) + CRLF + 'idPrij: ' + IntToStr(idDZp) + CRLF + E.Message + errPlg); + end; +} + end; + + if (idDZp>0) and (realVyd) then + begin + realPrij:= false; + + try + lSQL:= 'EXEC dbo.ep_PZ_KopirujCenyDleOldPolozky @IdDokladNew=' + IntTOStr(idDZp); + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Chyba pi duplikaci cen na nvazn doklad.'#1 + CRLF + E.Message + errPlg); + end; + + try + lSQL:= 'DECLARE @chyba BIT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_Realizuj_Prijem ' + IntToStr(idDZp) + ',@dt,' + IntToStr(Helios.UserId) + ',@chyba OUT'; + lSQL:= lSQL + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + if (LowerCase(VarToStr(FieldValues(0)))='false') then + realPrij:= true; + except on E:Exception do + Helios.Error(#1'Nelze realizovat nslednou pjemku !'#1 + CRLF + E.Message + errPlg); + end; + end + else + begin + if (idDZp>0) then + begin + lSQL:= 'FROM ' + tblPZ + ' WHERE IdDoklad=' + IntToStr(idDZp); + try + Helios.ExecSQL('DELETE FROM [dbo].[TabPohybyZboziSD] WHERE id IN (SELECT id ' + lSQL + ')'); + Helios.ExecSQL('DELETE ' + lSQL); + Helios.ExecSQL('DELETE FROM [dbo].[TabDokZboDodatek] WHERE IDHlavicky=' + IntToStr(idDZp)); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET NavaznyDoklad=null WHERE id='+ IntToStr(idDZv)); + Helios.ExecSQL('DELETE FROM ' + tblDZ + ' WHERE Id=' + IntToStr(idDZp)); + except on E:Exception do + Helios.Error('Chyba pi mazn zznam.' + CRLF + E.Message); + end; + end; + end; + end; + Helios.Refresh(true); + end; + end; + end; + + + + + procedure TformBaliciListy.btnOKMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + var log: string; + begin + log:= 'SELECT DISTINCT(Stanice) FROM dbo._TabPlgUse WHERE PlgJmeno=N' + QuotedStr('plgLOVATO'); + log:= log + ' AND DATEDIFF(day,GETDATE(),Datum)=0 GROUP BY Stanice'; + if (ssCtrl in Shift) and (Button=mbRight) then + with Helios.OpenSQL(log) do + if (RecordCount>0) then + begin + log:= ''; + First; + while not(EOF) do + begin + log:= log + VarToStr(FieldValues(0)) + CRLF; + Next; + end; + Helios.Info('Dnes plugin pouvali:' + CRLF + log); + end; + end; + + + + + procedure TformBaliciListy.cbOrgChange(Sender: TObject); + var msg: string; + begin + jsemLov:= JeLovato; + jsemPrev:= JePrevodka; + + if not(jsemLov) and (Helios.BrowseID<>27) then + Self.Caption:= ' Vdejky / Vratky / Pevodky' + else + Self.Caption:= ' Balic listy'; + + if ((Helios.BrowseID=16) or (Helios.BrowseID=18)) and (JeLovato) then + begin + if (Helios.Sklad<>VyrRekl) then + begin + msg:= #1'Vdejku pro LOVATO Itlie lze dlat pouze pro sklad Vroba REKLAMACE.' + CRLF + 'Chcete pepnout sklad ?'; + if Helios.YesNo(msg,true) then + begin + Self.Caption:= ' Vdej do IT ze skladu Vroba REKLAMACE'; + Helios.SetSklad(VyrRekl); + end + end + else + begin + cbOrg.ItemIndex:= oldCBOdb; + Exit; + end; + end; + + if (vTabBL.RecordCount>0) then + begin + Helios.Error(#1'Ve Vdejce/pevodce jsou poloky, nelze mnit Odbratele.'#1); + cbOrg.ItemIndex:= oldCBOdb; + end; + + if (jsemLov) or (jsemPrev) then + cbVratka.Visible:= false; + + selRegCis.Text:= Trim(selRegCis.Text); + if (selRegCis.Text='') or (selRegCis.Text='%') then + FocusRegCis; + end; + + + + + procedure TformBaliciListy.cbOrgEnter(Sender: TObject); + begin + oldCBOdb:= cbOrg.ItemIndex; + end; + + + + + procedure TformBaliciListy.cbTypDoklChange(Sender: TObject); + var sSkl, nSkl, msg: string; + begin + if (jsemLov) then + begin + if (vTabBL.RecordCount>0) then + begin + Helios.Error(#1'V balcm listu jsou zadny poloky, nelze mnit typ BL.'#1); + cbTypDokl.ItemIndex:= oldCBTyp; + Exit; + end; + msg:= 'Tento druh BL lze vydvat jen ze skladu '; + case cbTypDokl.ItemIndex of + 0: begin + sSkl:= VyrFin; + nSkl:= 'Vroba sklad ' + sSkl; + end; + 1,2: begin + sSkl:= VyrSkl; + nSkl:= 'Vroba ' + sSkl; + end; + 3: begin + sSkl:= VyrRekl; + nSkl:= 'Vroba REKLAMACE'; + end; + end; + if (Helios.Sklad<>sSkl) then + begin + Helios.Error(msg + #1 + nSkl + ',' + CRLF + 'aktuln sklad bude zmnn.'#1); + Helios.SetSklad(sSkl); + end; + end; + selRegCis.SetFocus; + end; + + + + procedure TformBaliciListy.cbTypDoklEnter(Sender: TObject); + begin + oldCBTyp:= cbTypDokl.ItemIndex; + end; + + + + procedure TformBaliciListy.cbVratkaClick(Sender: TObject); + begin + Self.Caption:= ' Vdejky pro kooperanta'; + if cbVratka.Checked then + Self.Caption:= ' Vratky materilu od kooperanta' + else + if (JeLovato) then + Self.Caption:= ' Balc listy'; + end; + + + + procedure TformBaliciListy.edtKSExit(Sender: TObject); + begin + mnoz:= edtKS.Value; + hmotC:= hmotZ * mnoz; + end; + + + + procedure TformBaliciListy.FormActivate(Sender: TObject); + begin + verText:= GetFileVersion2(GetModuleName(HInstance)); + if Length(verText)=12 then + verText:= LeftStr(verText,9) + '0' + RightStr(verText,3); + lblVerze.Caption:= verText; + + pmObnovNeulozene.Visible:= false; + pmSmazNeulozene.Visible:= false; + N1.Visible:= false; + N2.Visible:= false; + with Helios.OpenSQL('SELECT id FROM ' + tblBLPol + ' WHERE IdPolozkaOZ IS NULL') do + if (RecordCount>0) then + begin + pmObnovNeulozene.Visible:= true; + pmSmazNeulozene.Visible:= true; + N1.Visible:= true; + N2.Visible:= true; + end; + + cbVratka.Enabled:= false; + cbVratka.Checked:= false; + cbOrg.ItemIndex:= 1; + edtBox.Enabled:= false; + edtPrikaz.Enabled:= false; + case Helios.BrowseID of + 16: begin + Self.Caption:= ' Pjemky od kooperanta'; + cbVratka.Checked:= true; +// cbPolos.Visible:= true; +// cbPolos.Checked:= false; +// cbPolos.Caption:= 'REKLAMACE'; + cbTypDokl.Items.Clear; + cbTypDokl.Items.Add(''); + cbTypDokl.Items.Add('REKLAMACE'); + cbTypDokl.ItemIndex:= 0; + cbTypDokl.Visible:= true; + cbTypDokl.Enabled:= true; + cbReklamace.Enabled:= true; + end; + 18: begin + Self.Caption:= ' Vdejky pro kooperanta/pevodka mezi sklady'; +// cbPolos.Visible:= false; + cbTypDokl.Visible:= false; + cbTypDokl.Enabled:= false; + end; + else + begin + Self.Caption:= ' Balc listy'; + cbOrg.Enabled:= false; + cbOrg.ItemIndex:= 0; + edtBox.Enabled:= true; + cbTypDokl.ItemIndex:= 0; + edtPrikaz.Enabled:= false; + if (idDZ>0) then + NactiBalList; + end; + end; + FocusRegCis; + end; + + + + procedure TformBaliciListy.FormClose(Sender: TObject; var Action: TCloseAction); + begin + if (vTabBL.Active) then + vTabBL.Close; + Action:= caFree; + end; + + + + procedure TformBaliciListy.NastavEdity; + var idx: integer; + begin + for idx:=0 to ComponentCount-1 do + begin + if (Self.Components[idx] is TRzEdit) then + (Self.Components[idx] as TRzEdit).FocusColor:= helParams.colBg; + end; + end; + + + + procedure TformBaliciListy.NastavFonty; + var idx: integer; + begin + idx:= 0; + while idx0) then + begin + if Helios.YesNo(#1'POZOR - Smazat zadan poloky ?'#1,false) then + vTabBL.EmptyDataSet; + Helios.ExecSQL('UPDATE ' + tblBLPol + ' SET IdDoklad=' + IntToStr(idBL) + ' WHERE IdPolozkaOZ IS NULL'); + First; + while not(EOF) do + begin + vTabBL.Append; + vTabBL.FieldByName('idBLPol').AsString:= VarToStr(FieldByNameValues('Id')); + vTabBL.FieldByName('idSS').AsString:= VarToStr(FieldByNameValues('IdStavSkladu')); + vTabBL.FieldByName('Mnoz').AsFloat:= StrToFloat(VarToStr(FieldByNameValues('Mnozstvi'))); + vTabBL.FieldByName('Box').AsString:= VarToStr(FieldByNameValues('Box')); + if VarIsNull(FieldByNameValues('IdPolozkaOZ')) then + vTabBL.FieldByName('idPZ').AsString:= '' + else + vTabBL.FieldByName('idPZ').AsString:= VarToStr(FieldByNameValues('IdPolozkaOZ')); + + lSQL:= 'SELECT kz.SkupZbo,kz.RegCis,kz.id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz'; + lSQL:= lSQL + ' ON (ss.IdKmenZbozi=kz.id) WHERE ss.id=' + VarToStr(FieldByNameValues('IdStavSkladu')); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + vTabBL.FieldByName('SkupZbo').AsString:= VarToStr(FieldValues(0)); + vTabBL.FieldByName('RegCis').AsString:= VarToStr(FieldValues(1)); + vTabBL.FieldByName('idKZ').AsString:= VarToStr(FieldValues(2)); + end; + + vTabBL.Post; + Next; + end; + end; + end; + + + + + procedure TformBaliciListy.pmSmazNeulozeneClick (Sender: TObject); + begin + if Helios.YesNo(#1'POZOR - opravdu chcete smazat neuloen poloky ?'#1 + CRLF + '(tyto vzniknou nap. pi nsilnm vypnut PC/Heliosu)',false) then + Helios.ExecSQL('DELETE FROM ' + tblBLPol + ' WHERE IdPolozkaOZ IS NULL'); + end; + + + + + procedure TformBaliciListy.FormShow (Sender: TObject); + var lSQL: string; + i: integer; + begin +// if (Helios.Sklad<>'200') then +// begin +// Helios.Error('Aktuln sklad nen 200 - Vroba, automaticky pepnm.'); +// Helios.SetSklad('200'); +// end; + +{ + SetThreadLocale(LOCALE_USER_DEFAULT); + GetFormatSettings; + ShortDateFormat:= 'dd.mm.yyyy'; +} + Application.Handle:= Helios.MainApplicationHandle; + Application.Icon.Handle:= Helios.MainApplicationIconHandle; +// Self.Font.Name:= Helios.Font; + NactiParametryHeliosu(Helios, helParams); + if (helParams.podbarveni) then + NastavEdity; +// NastavFonty; + + selVyber:= false; + cbOrg.Items.Clear; + cbOrg.Items.Add('LOVATO Itlie'); + lSQL:= 'SELECT s.Nazev, se._CisloOrg, s.Cislo FROM ' + tblStrom + ' s INNER JOIN ' + tblStromE + ' se ON (se.id=s.id)'; + lSQL:= lSQL + ' WHERE se._VydejZjednodusene=1 AND ISNULL(se._CisloOrg,-1)>=0 ORDER BY s.Cislo'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + SetLength(koop,RecordCount); + i:= -1; + + lSQL:= 'SELECT s.Nazev, se._CisloOrg, s.Cislo FROM ' + tblStrom + ' s INNER JOIN ' + tblStromE + ' se ON (se.id=s.id)'; + lSQL:= lSQL + ' WHERE se._VydejZjednodusene=1 AND ISNULL(se._CisloOrg,-1)=0 ORDER BY s.Cislo'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) and (Length(koop)>0) then + begin + First; + while not(EOF) do + begin + if (VarToStr(FieldValues(2))<>Helios.Sklad) then + begin + Inc(i); + koop[i].Nazev:= VarToStr(FieldValues(0)); + koop[i].CisloOrg:= StrToInt(VarToStr(FieldValues(1))); + koop[i].Sklad:= VarToStr(FieldValues(2)); + koop[i].ItemIndex:= i+1; + cbOrg.Items.Add(koop[i].Nazev); + end; + Next; + end; + end; + + lSQL:= 'SELECT s.Nazev, se._CisloOrg, s.Cislo FROM ' + tblStrom + ' s INNER JOIN ' + tblStromE + ' se ON (se.id=s.id)'; + lSQL:= lSQL + ' WHERE se._VydejZjednodusene=1 AND ISNULL(se._CisloOrg,-1)>0 ORDER BY s.Cislo'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) and (Length(koop)>0) then + begin + First; + while not(EOF) do + begin + if (VarToStr(FieldValues(2))<>Helios.Sklad) then + begin + Inc(i); + koop[i].Nazev:= VarToStr(FieldValues(0)); + koop[i].CisloOrg:= StrToInt(VarToStr(FieldValues(1))); + koop[i].Sklad:= VarToStr(FieldValues(2)); + koop[i].ItemIndex:= i+1; + cbOrg.Items.Add(koop[i].Nazev); + end; + Next; + end; + end; + + i:= 0; + if (Length(koop)>0) then + begin + for i:=0 to Length(koop)-1 do + if (koop[i].Nazev='') then + Break; + end; + if (i>0) then + SetLength (koop,i); + + edtDat.Date:= Now; +// viewPol.OptionsView.NoDataToDisplayInfoText:= ''; + + + insData:= true; + VytvorTabulkyAGrid; + + iOdb:= 0; // pocatecni index cbOrg + idBL:= 0; + + + if (idDZ>0) then + begin +// cbTypDokl.Enabled:= false; + NactiBalList + end + else + begin + lSQL:= 'INSERT ' + tblBL + ' (CisloOrg, Datum, Vratka) VALUES ('; + case Helios.BrowseID of + 27: lSQL:= lSQL + '1'; + else lSQL:= lSQL + '11'; + end; + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(edtDat.Text) + ',104),0)' + CRLF + 'SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(lSQL) do + idBL:= StrToInt(VarToStr(FieldValues(0))); + end; + insData:= false; + + end; + + + + + procedure TformBaliciListy.WMGetMinMaxInfo (var AMsg: TWMGetMinMaxInfo); + begin + inherited; +{ + with AMsg.MinMaxInfo^ do + begin + ptMinTrackSize:= Point(Self.Constraints.MinWidth, Self.Constraints.MinHeight); + ptMaxTrackSize:= Point(Self.Constraints.MaxWidth, Self.Constraints.MaxHeight); + end; +} + end; + + +end. + diff --git a/frmDemontaz.dfm b/frmDemontaz.dfm new file mode 100644 index 0000000..b04e1be --- /dev/null +++ b/frmDemontaz.dfm @@ -0,0 +1,695 @@ +object formDemontaz: TformDemontaz + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = ' Demont'#225#382' d'#237'lce/polosestavy' + ClientHeight = 547 + ClientWidth = 622 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poOwnerFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnShow = FormShow + TextHeight = 16 + object Label7: TLabel + Left = 5 + Top = 86 + Width = 84 + Height = 16 + Caption = 'V'#253'dejka do IT:' + end + object lblVerze: TLabel + Left = 7 + Top = 530 + Width = 3 + Height = 11 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -9 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Visible = False + end + object lblZpracovavam: TLabel + Left = 244 + Top = 521 + Width = 87 + Height = 13 + Caption = 'Zpracov'#225'v'#225'm...' + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 232 + Top = 86 + Width = 81 + Height = 16 + Caption = 'Zam'#283'stnanec:' + end + object lblZamest: TLabel + Left = 407 + Top = 85 + Width = 204 + Height = 16 + AutoSize = False + end + object GroupBox1: TGroupBox + Left = 13 + Top = 110 + Width = 600 + Height = 121 + Caption = ' D'#237'lce / polosestavy ' + TabOrder = 0 + object Label4: TLabel + Left = 11 + Top = 18 + Width = 56 + Height = 16 + Caption = 'Reg.'#269#237'slo:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblNazev: TLabel + Left = 74 + Top = 40 + Width = 53 + Height = 16 + Caption = 'lblNazev' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 401 + Top = 19 + Width = 54 + Height = 16 + Caption = 'Mno'#382'stv'#237':' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object btnRozeber: TSpeedButton + Left = 547 + Top = 13 + Width = 33 + Height = 32 + Glyph.Data = { + 42080000424D4208000000000000420000002800000020000000200000000100 + 10000300000000080000202E0000202E00000000000000000000007C0000E003 + 00001F000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7F9D77B556FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7F4E3A8000D65AFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FD556E0016002E104F862FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + 1863C2098002E102C00104119D77FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7B6F + C1058002A1028102C102C0016821BF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9D77E71D + 4002A10281028102A102C00240018B31FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FE8212002 + A1028102810281028102A102C00240011042FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F6F3E0002A102 + 810281028102810281028102A102A002E000734EFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F6F3EE001C002A102 + A102A102A102A102A102A102A102C1028002E000F966FF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FF65AE001A002A102A102 + A102A102A102A102A102A102A102A102E102400225155C73FF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FF75EC105A002A102A102A102 + A102A102A102A102A102A102A102A102A102E102E00105199F7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9B6F020A8002C002C002A102A102 + A102A102A102A102A102A102A102A102C002C002E002C001CA29BD77FF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F6B2E200282066206430AA106A102 + A102A102A102A102A102A102A102A106630E630A6206A2068001914AFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F796739675B6B5B6B3C6FA61EA002 + A102A102A102A102A102A102C0026002B24A5C6F5B6B5B6B59679B6FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FA722A002 + C102C102C102C102C102C10201032002B34EFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA71EA002 + C102C102C102C102C102C102E1022002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA71EA002 + C102C102C102C102C102C102E1024002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA71EA002 + C102C102C102C102C102C102E1022002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FC71EC002 + C102C102C102C102C102C102E1022002B14AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FC71EE002 + E102E102E102E102E102E10201034002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FC71EE002 + E102E102E102E102E102E10221034002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FC71EE002 + E102E102E102E102E102E10201034002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FC71EE002 + E102E102E102E102E102E10201034002B14AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA71EE002 + E102E102E102E102E102E10201034002924AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA71EE002 + E102E102E102E102E102E10200034002934EFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA71E0003 + 01030103010301030103010320034002934EFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FC71E0003 + 01030103010301030103010340036002924EFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FA412C002 + C002C002C002C002C002E00200034002914AFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FF24ACF3E + F042F042F042F042F0420F3FF042CF3E5863FF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7F} + OnClick = btnRozeberClick + end + object selRegCis: TRzButtonEdit + Left = 74 + Top = 16 + Width = 184 + Height = 24 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 30 + ParentFont = False + TabOrder = 0 + OnExit = selRegCisExit + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selRegCisButtonClick + end + object edtMnoz: TRzNumericEdit + Left = 463 + Top = 16 + Width = 65 + Height = 24 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnKeyDown = edtMnozKeyDown + DisplayFormat = '##,##0.##;-##,##0.##' + end + object cbMaxRozpad: TCheckBox + Left = 271 + Top = 45 + Width = 183 + Height = 17 + Caption = 'Rozpad na z'#225'kladn'#237' MAT' + Checked = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + State = cbChecked + TabOrder = 2 + end + object selSZ: TRzButtonEdit + Left = 21 + Top = 36 + Width = 35 + Height = 24 + Text = '' + MaxLength = 3 + TabOrder = 3 + Visible = False + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + end + object cbTiskRozp: TCheckBox + Left = 475 + Top = 46 + Width = 109 + Height = 17 + Caption = 'Tisk rozpisky' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + end + object grdDilce: TJvDBGrid + Left = 11 + Top = 66 + Width = 528 + Height = 50 + DataSource = dsDilce + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + PopupMenu = popMenu + TabOrder = 5 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -13 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = grdDilceDblClick + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 20 + TitleRowHeight = 20 + Columns = < + item + Expanded = False + FieldName = 'idKZ' + Visible = False + end + item + Expanded = False + FieldName = 'idSS' + Visible = False + end + item + Alignment = taCenter + Expanded = False + FieldName = 'SZ' + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 42 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RegCis' + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 130 + Visible = True + end + item + Expanded = False + FieldName = 'Nazev' + Title.Alignment = taCenter + Title.Caption = 'N'#225'zev' + Width = 265 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'Mnozstvi' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Width = 62 + Visible = True + end> + end + end + object GroupBox2: TGroupBox + Left = 14 + Top = 243 + Width = 594 + Height = 262 + Caption = ' Materi'#225'ly ' + TabOrder = 1 + object grdMat: TJvDBGrid + Left = 1 + Top = 18 + Width = 590 + Height = 240 + DataSource = dsMat + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleHotTrack] + PopupMenu = popMat + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -13 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = grdMatDblClick + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 20 + TitleRowHeight = 20 + Columns = < + item + Alignment = taCenter + Expanded = False + FieldName = 'SZ' + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 40 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RegCis' + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 100 + Visible = True + end + item + Expanded = False + FieldName = 'Nazev' + Title.Alignment = taCenter + Title.Caption = 'N'#225'zev' + Width = 220 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'Mnozstvi' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Width = 60 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'CilSklad' + Title.Alignment = taCenter + Title.Caption = 'C'#237'l materi'#225'lu' + Width = 86 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'MnozstviIT' + Title.Alignment = taCenter + Title.Caption = 'V'#253'voz IT' + Width = 62 + Visible = True + end + item + Expanded = False + FieldName = 'idKZ' + Visible = False + end + item + Expanded = False + FieldName = 'idSSold' + Visible = False + end + item + Expanded = False + FieldName = 'idSS' + Visible = False + end + item + Expanded = False + FieldName = 'CilSkladCislo' + Visible = False + end> + end + end + object btnOK: TButton + Left = 421 + Top = 516 + Width = 75 + Height = 25 + Caption = 'OK' + TabOrder = 2 + OnClick = btnOKClick + end + object btnStorno: TButton + Left = 533 + Top = 516 + Width = 75 + Height = 25 + Caption = 'Storno' + TabOrder = 3 + OnClick = btnStornoClick + end + object GroupBox3: TGroupBox + Left = 5 + Top = 4 + Width = 605 + Height = 69 + Caption = ' Sklady ' + TabOrder = 4 + object Label1: TLabel + Left = 11 + Top = 16 + Width = 87 + Height = 16 + Caption = 'Zdrojov'#253' sklad:' + end + object Label2: TLabel + Left = 25 + Top = 45 + Width = 71 + Height = 16 + Caption = 'C'#237'lov'#253' sklad:' + end + object selSrcSkl: TRzButtonEdit + Left = 107 + Top = 13 + Width = 113 + Height = 24 + Text = '' + Alignment = taCenter + Enabled = False + TabOrder = 0 + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selSrcSklButtonClick + end + object selDstSkl: TRzButtonEdit + Left = 107 + Top = 42 + Width = 113 + Height = 24 + Text = '' + Alignment = taCenter + Enabled = False + TabOrder = 1 + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selDstSklButtonClick + end + object selSrcSklNazev: TRzButtonEdit + Left = 225 + Top = 13 + Width = 228 + Height = 24 + Text = '' + Enabled = False + TabOrder = 2 + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + end + object selDstSklNazev: TRzButtonEdit + Left = 225 + Top = 42 + Width = 228 + Height = 24 + Text = '' + Enabled = False + TabOrder = 3 + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + end + object dtDatum: TRzDateTimePicker + Left = 475 + Top = 26 + Width = 106 + Height = 24 + Date = 41411.000000000000000000 + Format = 'dd.MM.yyyy' + Time = 0.458783750000293400 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + end + end + object selVydejIT: TRzButtonEdit + Left = 96 + Top = 82 + Width = 112 + Height = 24 + Text = '' + Alignment = taCenter + TabOrder = 5 + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selVydejITButtonClick + end + object selCisZam: TRzButtonEdit + Left = 325 + Top = 82 + Width = 68 + Height = 24 + Text = '' + Alignment = taCenter + TabOrder = 6 + OnExit = selCisZamExit + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selCisZamButtonClick + end + object dsDilce: TDataSource + DataSet = tabDilce + Left = 228 + Top = 174 + end + object dsMat: TDataSource + DataSet = tabMat + Left = 122 + Top = 462 + end + object popMenu: TPopupMenu + Left = 290 + Top = 174 + object pmOprav: TMenuItem + Caption = '&Oprav mno'#382'stv'#237 + OnClick = pmOpravClick + end + object N1: TMenuItem + Caption = '-' + end + object pmSmazat: TMenuItem + Caption = '&Smazat polo'#382'ku' + OnClick = pmSmazatClick + end + end + object tabMat: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 65 + Top = 462 + object colMidKZ: TIntegerField + FieldName = 'idKZ' + end + object colMidSSold: TIntegerField + FieldName = 'idSSold' + Visible = False + end + object colMidSS: TIntegerField + FieldName = 'idSS' + end + object colMSZ: TStringField + FieldName = 'SZ' + Size = 3 + end + object colMRegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object colMNazev: TStringField + FieldName = 'Nazev' + Size = 100 + end + object colMMnoz: TFloatField + FieldName = 'Mnozstvi' + DisplayFormat = '#,##0.###' + end + object colMMnozIT: TFloatField + FieldName = 'MnozstviIT' + DisplayFormat = '#,##0.###' + end + object colMCilSklad: TStringField + FieldName = 'CilSklad' + Size = 30 + end + object tabMatCilSkladCislo: TStringField + FieldName = 'CilSkladCislo' + Size = 30 + end + end + object tabDilce: TFDMemTable + Active = True + AfterPost = tabDilceAfterPost + AfterDelete = tabDilceAfterDelete + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 164 + Top = 174 + object colDidKZ: TIntegerField + FieldName = 'idKZ' + end + object colDidSS: TIntegerField + FieldName = 'idSS' + end + object colDSZ: TStringField + FieldName = 'SZ' + Size = 3 + end + object colDRegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object colDNazev: TStringField + FieldName = 'Nazev' + Size = 100 + end + object colDMnoz: TFloatField + FieldName = 'Mnozstvi' + DisplayFormat = '#,##0' + end + end + object popMat: TPopupMenu + Left = 178 + Top = 460 + object pmAll2IT: TMenuItem + Caption = '&V'#353'e do IT' + OnClick = pmAll2ITClick + end + object N2: TMenuItem + Caption = '-' + end + object pmDel2IT: TMenuItem + Caption = 'Smazat v'#353'e z IT' + OnClick = pmDel2ITClick + end + end +end diff --git a/frmDemontaz.pas b/frmDemontaz.pas new file mode 100644 index 0000000..285b41c --- /dev/null +++ b/frmDemontaz.pas @@ -0,0 +1,1446 @@ +unit frmDemontaz; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, RzEdit, RzBtnEdt, Data.DB, + Vcl.Buttons, FireDAC.Comp.Client, ddPlugin_TLB, Vcl.ComCtrls, RzDTP, Vcl.Menus, + FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, + FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, + FireDAC.Comp.DataSet, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, + JvDBGrid; + +const + VyrSkl = '200'; + VyrRekl = '20000001'; + +// definice rad dokladu v kodu +// 441 - vydej demontaz dilcu/polosestav +// 241 - prijem materialu demontaz + +type + TformDemontaz = class(TForm) + GroupBox1: TGroupBox; + GroupBox2: TGroupBox; + btnOK: TButton; + btnStorno: TButton; + GroupBox3: TGroupBox; + Label1: TLabel; + Label2: TLabel; + selSrcSkl: TRzButtonEdit; + selDstSkl: TRzButtonEdit; + selSrcSklNazev: TRzButtonEdit; + selDstSklNazev: TRzButtonEdit; + selRegCis: TRzButtonEdit; + Label4: TLabel; + lblNazev: TLabel; + edtMnoz: TRzNumericEdit; + Label5: TLabel; + btnRozeber: TSpeedButton; + dsDilce: TDataSource; + dsMat: TDataSource; + cbMaxRozpad: TCheckBox; + dtDatum: TRzDateTimePicker; + popMenu: TPopupMenu; + pmOprav: TMenuItem; + pmSmazat: TMenuItem; + N1: TMenuItem; + Label7: TLabel; + selVydejIT: TRzButtonEdit; + selSZ: TRzButtonEdit; + lblVerze: TLabel; + cbTiskRozp: TCheckBox; + tabMat: TFDMemTable; + colMidKZ: TIntegerField; + colMidSS: TIntegerField; + colMSZ: TStringField; + colMRegCis: TStringField; + colMNazev: TStringField; + colMMnoz: TFloatField; + colMMnozIT: TFloatField; + colMCilSklad: TStringField; + + tabDilce: TFDMemTable; + colDidKZ: TIntegerField; + colDidSS: TIntegerField; + colDSZ: TStringField; + colDRegCis: TStringField; + colDNazev: TStringField; + colDMnoz: TFloatField; + lblZpracovavam: TLabel; + Label3: TLabel; + selCisZam: TRzButtonEdit; + lblZamest: TLabel; + colMidSSold: TIntegerField; + popMat: TPopupMenu; + pmAll2IT: TMenuItem; + N2: TMenuItem; + pmDel2IT: TMenuItem; + tabMatCilSkladCislo: TStringField; + grdDilce: TJvDBGrid; + grdMat: TJvDBGrid; + + procedure btnStornoClick (Sender: TObject); + procedure FormClose (Sender: TObject; var Action: TCloseAction); + procedure btnRozeberClick (Sender: TObject); + procedure selSZButtonClick (Sender: TObject); + procedure selRegCisButtonClick (Sender: TObject); + procedure selSZExit (Sender: TObject); + procedure selSrcSklButtonClick (Sender: TObject); + procedure selDstSklButtonClick (Sender: TObject); + procedure FormShow (Sender: TObject); + procedure tabDilceAfterPost (DataSet: TDataSet); + procedure FormActivate (Sender: TObject); + procedure btnOKClick (Sender: TObject); + procedure pmOpravClick (Sender: TObject); + procedure pmSmazatClick (Sender: TObject); + procedure tabDilceAfterDelete (DataSet: TDataSet); + procedure selVydejITButtonClick (Sender: TObject); + procedure selCisZamButtonClick (Sender: TObject); + procedure selCisZamExit (Sender: TObject); + procedure selRegCisExit (Sender: TObject); + procedure pmAll2ITClick (Sender: TObject); + procedure pmDel2ITClick (Sender: TObject); + procedure edtMnozKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState); + procedure grdDilceDblClick (Sender: TObject); + procedure grdMatDblClick (Sender: TObject); + private + procedure ZjistiKmen; + function TestMnozOK: boolean; + function TestMatDoIT: boolean; safecall; + procedure DemontujVybrane; safecall; +// procedure UlozPolozkyMatIT(idDokl: integer); safecall; + public + Helios: IHelios; + idPols: TArray; + jeTest: Boolean; + end; + +var + formDemontaz: TformDemontaz; + idKZ, idSS, idDZVyd: integer; + oVar1, oVar2: OleVariant; + sklSrc, sklDst, sklVyd, verText: string; + +implementation +uses System.StrUtils, Vcl.Clipbrd, helUtils; +{$R *.dfm} + + + procedure TformDemontaz.DemontujVybrane; + var lSQL: string; + idx: integer; + begin + if (Length(idPols)>0) then + begin + tabDilce.EmptyDataSet; + for idx:=0 to Length(idPols)-1 do + begin + idSS:= idPols[idx]; + lSQL:= 'SELECT kz.Id, kz.SkupZbo, kz.RegCis, kz.Nazev1, ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN '; + lSQL:= lSQL + tblKZ + ' kz ON (kz.Id=ss.IdKmenZbozi) WHERE ss.id=' + IntToStr(idSS); + with Helios.OpenSQL(lSQL) do + begin + idKZ:= StrToInt(VarToStr(FieldValues(0))); + selSZ.Text:= VarToStr(FieldValues(1)); + selRegCis.Text:= VarToStr(FieldValues(2)); + lblNazev.Caption:= VarToStr(FieldValues(3)); + edtMnoz.Value:= StrToFloat(VarToStr(FieldValues(4))); + btnRozeberClick(nil); + end; + end; + end; + end; + + + + procedure TformDemontaz.edtMnozKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + btnRozeberClick(Sender); + end; + + +{ + procedure TformDemontaz.UlozPolozkyMatIT(idDokl: Integer); + var kurz,lSkl,mena,vc,dp,cOrg,jc: string; + locSQL: string; + idSS,idPZ: integer; + begin + with Helios.OpenSQL('SELECT idMat,MnozIT FROM #TabMaterialyIT WHERE ISNULL(MnozIT,0)>0') do + if (RecordCount>0) then + begin + kurz:= '1'; + lSkl:= ''; + vc:= '0'; + mena:= 'CZK'; + with Helios.OpenSQL('SELECT Kurz,IDSklad,Mena,VstupniCena,DruhPohybuZbo,CisloOrg FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDokl)) do + begin + kurz:= VarToStr(FieldValues(0)); + lSkl:= VarToStr(FieldValues(1)); + mena:= VarToStr(FieldValues(2)); + vc:= VarToStr(FieldValues(3)); + dp:= VarToStr(FieldValues(4)); + cOrg:= VarToStr(FieldValues(5)); + end; + kurz:= StringReplace(kurz,',','.',[rfReplaceAll]); + + First; + while not(EOF) do + begin + idSS:= 0; + locSQL:= 'IF NOT EXISTS(SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + VarToStr(FieldValues(0)); + locSQL:= locSQL + ' AND IDSklad=N' + QuotedStr(lSkl) + ') INSERT ' + tblSS + ' (IDSklad,IdKmenZbozi) VALUES (N'; + locSQL:= locSQL + QuotedStr(lSkl) + ',' + VarToStr(FieldValues(0)) + ')'; + Helios.ExecSQL(locSQL); + locSQL:= 'SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + VarToStr(FieldValues(0)) + ' AND IDSklad=N' + QuotedStr(lSkl); + with Helios.OpenSQL(locSQL) do + if (RecordCount>0) then + begin + if not(VarIsNull(FieldValues(0))) then + idSS:= StrToInt(VarToStr(FieldValues(0))); + end; + if (idSS>0) then + begin + idPZ:= 0; + locSQL:= 'DECLARE @idOut INT, @dt DATETIME' + CRLF + 'SET @dt=GETDATE()'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDokl) + ',@DruhPohybu=' + dp; + locSQL:= locSQL + ',@CisloOrg=' + cOrg + ',@IDZboSklad=' + IntToStr(idSS) + ',@Mena=N' + QuotedStr(mena) + ',@Kurz='; + locSQL:= locSQL + kurz + ',@JednotkaMeny=1,@KurzEuro=0,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0,@VstupniCena='; + locSQL:= locSQL + vc + ',@Mnozstvi=' + StringReplace(VarToStr(FieldValues(1)),',','.',[rfReplaceAll]); + locSQL:= locSQL + ',@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@dt,@Selectem=0' + CRLF; + locSQL:= locSQL + 'SELECT @idOut'; + try + with Helios.OpenSQL(locSQL) do + idPZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + idPZ:= 0; + end; + end; + if (idPZ>0) then + begin + // update ceny na JC + jc:= '0.1'; + locSQL:= 'SELECT ISNULL(EcJC,0) FROM ' + tblJC + ' WHERE IdStavSkladu=' + IntToStr(idSS); + with Helios.OpenSQL(locSQL) do + if (RecordCount=1) then + jc:= StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]); + locSQL:= 'UPDATE ' + tblPZ + ' SET JcBezDaniKc=' + jc + ' WHERE id=' + IntToStr(idPZ); + Helios.ExecSQL(locSQL); + locSQL:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JcBezDaniKc*Mnozstvi,CCsDPHKc=JcBezDaniKc*Mnozstvi,CCbezDaniVal=JcBezDaniKc*Mnozstvi,'; + locSQL:= locSQL + 'CCsDPHVal=JcBezDaniKc*Mnozstvi,CCbezDaniKcPoS=JcBezDaniKc*Mnozstvi,CCsDPHKcPoS=JcBezDaniKc*Mnozstvi,'; + locSQL:= locSQL + 'CCbezDaniValPoS=JcBezDaniKc*Mnozstvi,CCsDPHValPoS=JcBezDaniKc*Mnozstvi,CCsSDKc=JcBezDaniKc*Mnozstvi,'; + locSQL:= locSQL + 'CCsSDVal=JcBezDaniKc*Mnozstvi,BlokovaniEditoru=NULL WHERE id=' + IntToStr(idPZ); + Helios.ExecSQL(locSQL); + end; + end; + Next; + end; + end; + end; +} + + + function TformDemontaz.TestMatDoIT; + var idx,i: integer; + bmk: TBookmark; + begin + result:= true; + tabMat.DisableControls; + if (tabMat.RecordCount>0) then + begin + bmk:= tabMat.GetBookmark; + + for idx:=1 to tabMat.RecordCount do + begin + tabMat.RecNo:= idx; + if (tabMat.FieldByName('MnozstviIT').AsString<>'') then + if (tabMat.FieldByName('MnozstviIT').AsExtended > tabMat.FieldByName('Mnozstvi').AsExtended) then + result:= false; + end; + + if (tabMat.BookmarkValid (bmk)) then + tabMat.GotoBookmark (bmk); + tabmat.FreeBookmark (bmk); + end; + tabMat.EnableControls; + end; + + + + + function TformDemontaz.TestMnozOK: boolean; + var mn: extended; + begin + mn:= 0; + result:= false; + if (idSS>0) and (edtMnoz.Value>0) then + begin +// if tabDilce.Locate('idSS',VarArrayOf([idSS]),[loCaseInsensitive]) then +// mn:= tabDilce.FieldByName('Mnozstvi').AsExtended; // jiz pozadovane mnozstvi na demontaz + + with Helios.OpenSQL('SELECT Mnozstvi FROM ' + tblSS + ' WHERE id=' + IntToStr(idSS)) do + if (StrToFloat(VarToStr(FieldValues(0))))>=(edtMnoz.Value) then + result:= true; + end; + end; + + + + + procedure TformDemontaz.grdDilceDblClick (Sender: TObject); + var fldName: string; + clCol, clRow: integer; + iR, iC: Integer; + begin + clCol:= grdDilce.MouseCoord (Mouse.CursorPos.X - grdDilce.ClientOrigin.X, Mouse.CursorPos.Y - grdDilce.ClientOrigin.Y).X; + clRow:= grdDilce.MouseCoord (Mouse.CursorPos.X - grdDilce.ClientOrigin.X, Mouse.CursorPos.Y - grdDilce.ClientOrigin.Y).X; + if (clRow>0) and (clCol>0) then + begin + fldName:= grdDilce.Columns[clCol-1].FieldName; + if (iC=5) then + begin + idKZ:= tabDilce.FieldByName('idKZ').AsInteger; + idSS:= tabDilce.FieldByName('idSS').AsInteger; +// vDilce.DataController.FocusedRecordIndex:= iR; + pmOpravClick (Sender); + grdDilce.Refresh; +// gDilce.Refresh; + end; +// DemontujVybrane; + end; + end; + + + + procedure TformDemontaz.grdMatDblClick (Sender: TObject); + var sql, strMn,skl: string; + mn, jc: Extended; + mnOld, mnIT: Extended; + iR, iC: integer; + podm, iO: string; + clCol, clRow: integer; + fldName: string; + begin + clCol:= grdMat.MouseCoord (Mouse.CursorPos.X - grdMat.ClientOrigin.X, Mouse.CursorPos.Y - grdMat.ClientOrigin.Y).X; + clRow:= grdMat.MouseCoord (Mouse.CursorPos.X - grdMat.ClientOrigin.X, Mouse.CursorPos.Y - grdMat.ClientOrigin.Y).X; + if (clRow>0) and (clCol>0) and (tabMat.RecordCount>0) then + begin + fldName:= grdMat.Columns[clCol].FieldName; + + case helUtils.StringToCaseSelect(fldName, ['CilSklad', 'MnozstviIT']) of + 0: begin // cilovy sklad + skl:= ''; + iO:= IntToStr(Helios.Obdobi); + try + sql:= 'DECLARE @i INT; DECLARE @dt DATETIME; SET @dt=CONVERT(datetime,N' + QuotedStr(DateToStr(dtDatum.Date)) + ',104); '; + sql:= sql + 'EXEC @i=dbo.hp_GetObdobiDleDatumu @Datum=@dt, @JakyDatum=1; SELECT @i'; + with Helios.OpenSQL(sql) do + iO:= VarToStr(FieldValues(0)); + except + end; + podm:= 'TabStrom.Id IN (SELECT IDStrom FROM dbo.TabStromDef WHERE Blokovano=0 AND Zakazano=0 AND IdObdobi=' + iO; + podm:= podm + ') AND TabStrom.Cislo LIKE N' + QuotedStr('2%'); + if Helios.Prenos(bidStrom,'Cislo',oVar1,podm,'Vyberte cílový sklad',true) then + skl:= VarToStr(oVar1); + with Helios.OpenSQL('SELECT e._ShortName FROM ' + tblStrom + ' s INNER JOIN ' + tblStromE + ' e ON (e.Id=s.Id) WHERE s.Cislo=N' + QuotedStr(skl)) do + if (RecordCount=1) then + begin + tabMat.Edit; + sql:= 'SELECT s.id FROM ' + tblSS + ' s INNER JOIN ' + tblKZ + ' k ON (k.Id=s.IdKmenZbozi) WHERE s.IDSklad=N' + QuotedStr(skl); + sql:= sql + ' AND k.id=' + tabMat.FieldByName('idKZ').AsString; + with Helios.OpenSQL(sql) do + if (RecordCount=0) then + begin + sql:= 'INSERT ' + tblSS + ' (IDSklad,IdKmenZbozi) SELECT N' + QuotedStr(skl) + ', ' + tabMat.FieldByName('idKZ').AsString; + sql:= sql + '; SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(sql) do + tabMat.FieldByName('idSS').AsString:= VarToStr(FieldValues(0)); + end + else + tabMat.FieldByName('idSS').AsString:= VarToStr(FieldValues(0)); + tabMat.FieldByName('CilSkladCislo').AsString:= StringReplace(skl,'.','',[rfReplaceAll]); + skl:= VarToStr(FieldValues(0)); + tabMat.FieldByName('CilSklad').AsString:= skl; + tabMat.Post; + end; + end; + 1: begin // mnozstvi do IT + jc:= 0; + mnOld:= tabMat.FieldByName('Mnozstvi').AsExtended; +// mnOld:= StrToFloat(VarToStr(ACellViewInfo.GridRecord.Values[5])); // tabDilce.FieldByName('Mnozstvi').AsExtended; + + mnIT:= 0; + mn:= mnOld; +{ + if (VarToStr(ACellViewInfo.GridRecord.Values[7])<>'') then + mnIT:= StrToFloat(VarToStr(ACellViewInfo.GridRecord.Values[7])); // MnozstviIT +} + if not(tabMat.FieldByName('MnozstviIT').IsNull) then + mnIT:= tabMat.FieldByName('MnozstviIT').AsExtended; + + + if (mnIT>0) then + mn:= mnIT; + + if (FormMnozstviCena('Zadejte nové množství na vývoz',mn,jc,false,false)) then + begin + if (mn>=0) then + begin + if (mn<=mnOld) then + begin + grdMat.LockDrawing; + tabMat.Edit; + if (mn=0) then + tabMat.FieldByName('MnozstviIT').AsString:= '' + else + tabMat.FieldByName('MnozstviIT').AsExtended:= mn; + tabMat.Post; + grdMat.UnlockDrawing; + strMn:= StringReplace(FloatToStr(mn),',','.',[rfReplaceAll]); + sql:= 'UPDATE #TabMaterialyIT SET MnozIT=' + IfThen(mn=0, 'NULL', strMn); + sql:= sql + ' WHERE idMat=' + tabMat.FieldByName('idKZ').AsString; + Helios.ExecSQL(sql); + end + else + Helios.Error(#1'Nelze zadat množství vyšší než demontované.'#1); + end; + end; + end; + end; + + end; + end; + + + + + procedure TformDemontaz.btnOKClick (Sender: TObject); + var idDZv, idDZp, idPZ, idDZPrev, idDZPrev2, idVydVDST, idVydPCO, idVydPikl: integer; + rada, cZak, kurz, jc, idSS, idSSold: string; + mnV, mnIT, mnZbyt: Extended; + locSQL: string; + i: integer; + cont: Boolean; + begin + if (tabMat.RecordCount>0) then + begin + selCisZam.Text:= Trim(selCisZam.Text); + Self.Refresh; + try + locSQL:= 'SELECT idMat FROM #TabMaterialyIT WHERE ISNULL(MnozIT,0)>0'; + with Helios.OpenSQL(locSQL) do + if (RecordCount>0) then + if (selVydejIT.Text='') then + begin + Helios.Error(#1'Není vybrána výdejka do Lovato IT.'#1); + idDZVyd:= 0; + selVydejIT.SetFocus; + Exit; + end; + except + end; + + if not(TestMatDoIT) then + begin + Helios.Error(#1'V kusech pro vývoz je větší množství než v demontáži.'#1); + Exit; + end; + + lblZpracovavam.Visible:= true; + ReseedTable(Helios,tblDZ); + ReseedTable(Helios,tblPZ); + ReseedTable(Helios,tblZak); + +// tabDilce Mnozstvi, idKZ, idSS, SZ, RegCis, Nazev + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabHDCDemont') + ') IS NOT NULL DROP TABLE #TabHDCDemont' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabHDCDemont (SklSrc NVARCHAR(30), SklDst NVARCHAR(30), IdKmenRozpad INT, Mnozstvi NUMERIC(19,6) DEFAULT 0.0, Datum DATETIME'; + locSQL:= locSQL + ', CisloZam INT, IDVydIT INT)'; + Helios.ExecSQL(locSQL); + i:= tabDilce.RecNo; + grdDilce.LockDrawing; + tabDilce.First; + while not (tabDilce.Eof) do + begin + locSQL:= 'INSERT #TabHDCDemont (SklSrc, SklDst, IdKmenRozpad, Mnozstvi, Datum, CisloZam, IDVydIT) SELECT N' + QuotedStr(sklSrc) + ', N' + QuotedStr(sklDst); + locSQL:= locSQL + ', ' + tabDilce.FieldByName('idKZ').AsString + ', ' + StringReplace(tabDilce.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + locSQL:= locSQL + ', CONVERT(datetime,N' + QuotedStr(DateToStr(dtDatum.Date)) + ',104), ' + IfThen(selCisZam.Text='','null',selCisZam.Text); + locSQL:= locSQL + ', ' + IfThen(idDZVyd=0,'null',IntToStr(idDZVyd)); + Helios.ExecSQL(locSQL); + tabDilce.Next; + end; + tabDilce.RecNo:= i; + grdDilce.UnlockDrawing; + + +// tabMat - SZ, RegCis, Nazev, idKZ, Mnozstvi, idSSold, idSS, MnozstviIT, CilSklad + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabHDCDemontMat') + ') IS NOT NULL DROP TABLE #TabHDCDemontMat' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabHDCDemontMat (idKZ INT, idSS INT, idSSold INT, Mnozstvi NUMERIC(19,6) DEFAULT 0.0, MnozstviIT NUMERIC(19,6) DEFAULT 0.0'; + locSQL:= locSQL + ', CilSklad NVARCHAR(30))'; + Helios.ExecSQL(locSQL); + i:= tabDilce.RecNo; + grdMat.LockDrawing; + tabMat.First; + while not (tabMat.Eof) do + begin + locSQL:= 'INSERT #TabHDCDemontMat (idKZ, idSS, idSSold, Mnozstvi, MnozstviIT, CilSklad) SELECT ' + tabMat.FieldByName('idKZ').AsString; + locSQL:= locSQL + ', ' + tabMat.FieldByName('idSS').AsString + ', ' + tabMat.FieldByName('idSSold').AsString; + locSQL:= locSQL + ', ' + IfThen(tabMat.FieldByName('Mnozstvi').AsString='', '0', StringReplace(tabMat.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll])); + locSQL:= locSQL + ', ' + IfThen(tabMat.FieldByName('MnozstviIT').AsString='', '0', StringReplace(tabMat.FieldByName('MnozstviIT').AsString,',','.',[rfReplaceAll])); + locSQL:= locSQL + ', N' + QuotedStr(IfThen(tabMat.FieldByName('CilSkladCislo').AsString='', sklDst, tabMat.FieldByName('CilSkladCislo').AsString)); + Helios.ExecSQL(locSQL); + tabMat.Next; + end; + tabMat.RecNo:= i; + grdMat.LockDrawing; + + + try + try +// 1 - chyba pri ukladani hlavicky vydejky demontaze / 2 - / 3 - chyba pri realizaci prijemky + with Helios.OpenSQL('DECLARE @chyba INT; EXEC @chyba=dbo.ep_HDC_ZpracujDemontaz; SELECT @chyba;') do + rada:= VarToStr(FieldValues(0)); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + finally + begin + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabHDCDemontMat') + ') IS NOT NULL DROP TABLE #TabHDCDemontMat'; + Helios.ExecSQL(locSQL); + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabHDCDemont') + ') IS NOT NULL DROP TABLE #TabHDCDemont'; + Helios.ExecSQL(locSQL); + end; + end; + + + +{ + if (1=0) then + +// if Helios.Prenos(bidDDZ,'RadaDokladu',oVar1,'TabDruhDokZbo.DruhPohybuZbo=4','Řada dokladů - Demontáž výdejka dílců/polosestav',true) then + begin + cont:= true; +// rada:= VarToStr(oVar1); + rada:= '441'; + locSQL:= 'DECLARE @Ident INT,@dt DATETIME'+ CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N' + QuotedStr(sklSrc); + locSQL:= locSQL + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr(rada) +',@Insert=1,@PC=NULL,@Mena=N' + QuotedStr('CZK'); + locSQL:= locSQL + ',@CisloOrg=0,@DatumPorizeni=@dt' + CRLF + 'SELECT @Ident'; + idDZv:= 0; + try + with Helios.OpenSQL(locSQL) do + idDZv:= StrToInt(VarToStr(FieldValues(0))); // zjisti ID vytvoreneho dokladu + except on E:Exception do + Helios.Error(#1'Nelze uložit hlavičku Výdejky pro Demontáž.'#1 + CRLF + E.Message + CRLF + locSQL); + end; + if (idDZv>0) then + begin + tabDilce.First; + while not(tabDilce.Eof) do + begin + locSQL:= 'DECLARE @idOut INT, @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDZv) + ',@DruhPohybu=4,@CisloOrg=0,@IDZboSklad='; + locSQL:= locSQL + tabDilce.FieldByName('idSS').AsString + ',@Mena=N' + QuotedStr('CZK') + ',@Kurz=1,@JednotkaMeny=1,@KurzEuro=0'; + locSQL:= locSQL + ',@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0,@VstupniCena=0,@Mnozstvi='; + locSQL:= locSQL + StringReplace(tabDilce.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + locSQL:= locSQL + ',@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@dt,@Selectem=0' + CRLF; + locSQL:= locSQL + 'SELECT @idOut'; + try + with Helios.OpenSQL(locSQL) do + idPZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Helios.Error(#1'Nelze uložit položku Příjemky pro Demontáž.'#1 + CRLF + E.Message); + cont:= false; + end; + end; + tabDilce.Next; + end; + if (cont) then // polozky ulozeny OK + begin + locSQL:= 'DECLARE @BylaChyba BIT' + CRLF + 'EXEC dbo.hp_Realizuj_Vydej @Id=' + IntToStr(idDZv) + ',@DatumRealizace=NULL,@Uzivatel=' + IntToStr(Helios.UserId); + locSQL:= locSQL + ',@Hlidat=0,@BylaChyba=@BylaChyba OUT' + CRLF + 'SELECT @BylaChyba'; + try + with Helios.OpenSQL(locSQL) do + if (VarToStr(FieldValues(0))='1') then + Helios.Error(#1'Nelze realizovat výdejku.'#1); + locSQL:= 'INSERT dbo._TabRekuperace (IdKmenZbozi,Mnozstvi,Autor,SrcSklad) VALUES (' + tabDilce.FieldByName('idKZ').AsString; + locSQL:= locSQL + ',' + StringReplace(tabDilce.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + locSQL:= locSQL + ',N'+QuotedStr(LeftStr(lblZamest.Caption,80)) + ',N' + QuotedStr(selSrcSkl.Text) + ')'; + Helios.ExecSQL(locSQL); + except on E:Exception do + begin + Helios.Error(#1'Nelze realizovat výdejku.'#1 + CRLF + E.Message); + end; + end; + end; + end; + end; + +// if Helios.Prenos(bidDDZ,'RadaDokladu',oVar1,'TabDruhDokZbo.DruhPohybuZbo=0','Řada dokladů - Demontáž příjemka materiálu',true) then + if (cont) then + begin +// cont:= true; + rada:= '241'; +// rada:= VarToStr(oVar1); + locSQL:= 'DECLARE @Ident INT,@dt DATETIME'+ CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N' + QuotedStr(sklDst); + locSQL:= locSQL + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr(rada) +',@Insert=1,@PC=NULL,@Mena=N' + QuotedStr('CZK'); + locSQL:= locSQL + ',@CisloOrg=0,@DatumPorizeni=@dt' + CRLF + 'SELECT @Ident'; + idDZp:= 0; + try + with Helios.OpenSQL(locSQL) do + idDZp:= StrToInt(VarToStr(FieldValues(0))); // zjisti ID vytvoreneho dokladu + except on E:Exception do + Helios.Error(#1'Nelze uložit hlavičku Příjemky pro Demontáž.'#1 + CRLF + E.Message); + end; + if (idDZp>0) then + begin + locSQL:= 'IF OBJECT_ID(N''dbo._TabMaterialy'') IS NULL CREATE TABLE dbo._TabMaterialy (idKZ INT,'; + locSQL:= locSQL + 'Mnoz NUMERIC(19,6), MnozIT NUMERIC(19,6), Sklad NVARCHAR(30), Autor NVARCHAR(50) DEFAULT SUSER_SNAME() )' + CRLF; + locSQL:= locSQL + 'DELETE FROM dbo._TabMaterialy WHERE Autor=SUSER_SNAME()' + CRLF; + Helios.ExecSQL(locSQL); + tabMat.DisableControls; + tabMat.First; + while not(tabMat.Eof) do + begin + mnV:= tabMat.FieldByName('Mnozstvi').AsExtended; + mnIT:= 0; + mnZbyt:= 0; + jc:= '0'; + idKZ:= tabMat.FieldByName('idKZ').AsInteger; + idSS:= tabMat.FieldByName('idSS').AsString; + idSSold:= tabMat.FieldByName('idSSold').AsString; + if (idSSold='') and (idKZ>0) then + begin + locSQL:= 'SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(sklSrc) + ' AND IDKmenZbozi=' + IntToStr(idKZ); + with Helios.OpenSQL(locSQL) do + if (RecordCount=1) then + idSSold:= VarToStr(FieldValues(0)); + end; + + with Helios.OpenSQL('SELECT ISNULL(EcJc,0) FROM ' + tblJC + ' WHERE IdStavSkladu=' + idSS) do + jc:= StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]); + if (jc='0') or (jc='') then + with Helios.OpenSQL('SELECT ISNULL(Prumer,0) FROM ' + tblSS + ' WHERE id=' + idSS) do + jc:= StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]); + if ((jc='0') or (jc='')) and (idSSold<>'') then + with Helios.OpenSQL('SELECT ISNULL(Prumer,0) FROM ' + tblSS + ' WHERE id=' + idSSold) do + jc:= StringReplace(VarToStr(FieldValues(0)),',','.',[rfReplaceAll]); + if (jc='0') or (jc='') then + jc:= '0.1'; + + mnIT:= 0; + with Helios.OpenSQL('SELECT ISNULL(MnozIT,0) FROM #TabMaterialyIT WHERE idMat=' + tabMat.FieldByName('idKZ').AsString) do + if (RecordCount>0) then + mnIT:= StrToFloat(VarToStr(FieldValues(0))); + if (sklDst=VyrRekl) and (idDZVyd>0) then + mnIT:= 0; + + locSQL:= 'INSERT dbo._TabMaterialy (idKZ, Mnoz, MnozIT, Sklad) VALUES (' + tabMat.FieldByName('idKZ').AsString; + locSQL:= locSQL + ',' + StringReplace(FloatToStr(mnV),',','.',[rfReplaceAll]); + locSQL:= locSQL + ',' + StringReplace(FloatToStr(mnIT),',','.',[rfReplaceAll]) + ','; + locSQL:= locSQL + IfThen(tabMat.FieldByName('CilSklad').AsString='','null','N' + QuotedStr(tabMat.FieldByName('CilSklad').AsString)); + locSQL:= locSQL + ')'; + try + Helios.ExecSQL(locSQL); + except on E:Exception do + Helios.Error(#1'Chyba zápisu: ' + E.Message + #1); + end; + +// prijemka na material na sklad Rekuperace (Reklamace demontované) + locSQL:= 'DECLARE @idOut INT, @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + IntToStr(idDZp) + ',@DruhPohybu=0,@CisloOrg=0,@IDZboSklad='; + locSQL:= locSQL + tabMat.FieldByName('idSS').AsString + ',@Mena=N' + QuotedStr('CZK') + ',@Kurz=1,@JednotkaMeny=1,@KurzEuro=0'; + locSQL:= locSQL + ',@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0,@VstupniCena=0,@Mnozstvi='; + locSQL:= locSQL + StringReplace(FloatToStr(mnV),',','.',[rfReplaceAll]); + locSQL:= locSQL + ',@JCbezDaniKC=' + StringReplace(jc,',','.',[rfReplaceAll]) + ',@PovolitDuplicitu=1,@DatPorizeni=@dt,@Selectem=0' + CRLF; + locSQL:= locSQL + 'SELECT ISNULL(@idOut,0)'; + try + with Helios.OpenSQL(locSQL) do + idPZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + begin + Helios.Error(#1'Nelze uložit položku Příjemky pro Demontáž.'#1 + CRLF + E.Message); + cont:= false; + end; + end; + if (idPZ>0) then + begin + locSQL:= 'EXEC dbo.ep_PZ_AktualizujCenu @idPZ=' + IntToStr(idPZ) + ',@typCeny=0,@jc=' + StringReplace(jc,',','.',[rfReplaceAll]); + Helios.ExecSQL(locSQL); + end; + tabMat.Next; + end; + tabMat.EnableControls; + + if (cont) then // polozky prijemky mat ulozeny OK + begin + locSQL:= 'DECLARE @BylaChyba BIT'+ CRLF + 'EXEC dbo.hp_Realizuj_Prijem @Id=' + IntToStr(idDZp); + locSQL:= locSQL + ',@DatumRealizace=NULL,@Uzivatel=' + IntToStr(Helios.UserId) + ',@BylaChyba=@BylaChyba OUT' + CRLF + 'SELECT @BylaChyba'; + try + with Helios.OpenSQL(locSQL) do + if (VarToStr(FieldValues(0))='1') then + Helios.Error(#1'Nelze realizovat příjemku.'#1); + except on E:Exception do + Helios.Error(#1'Nelze realizovat příjemku na sklad Demontáž.'#1 + CRLF + E.Message); + end; + try + Helios.ExecSQL('EXEC dbo.ep_ZpracujVydejZDemontaze ' + IntToStr(idDZVyd)); + except on E:Exception do + Helios.Error(#1'Nelze zpracovat výdejky/převodky pro kooperanty.'#1 + CRLF + E.Message); + end; + end; + end; + end; +} + { + if (idDZv>0) and (idDZp>0) then + begin + locSQL:= 'SELECT ISNULL((SELECT TOP(1) CisloZakazky FROM ' + tblZak + ' WHERE Rada=N' + QuotedStr('300') + ' ORDER BY CisloZakazky DESC),0)'; + with Helios.OpenSQL(locSQL) do + cZak:= IntToStr(StrToInt(VarToStr(FieldValues(0)))+1); + + if (cZak='1') then + with Helios.OpenSQL('SELECT CisloPrefixDef,CisloDelka FROM [dbo].[TabZakazkaRada] WHERE Rada=N' + QuotedStr('300')) do + cZak:= VarToStr(FieldValues(0)) + StringOfChar('0', StrToInt(VarToStr(FieldValues(1))) - Length(cZak)) + cZak; + + locSQL:= 'INSERT ' + tblZak + ' (Rada,CisloZakazky,Nazev) VALUES (N' + QuotedStr('300') + ',' + cZak + ',N'; + locSQL:= locSQL + QuotedStr('Demontáž') + ')'; + try + Helios.ExecSQL(locSQL); + finally + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET CisloZakazky=N' + QuotedStr(cZak) + ' WHERE id=' + IntToStr(idDZv)); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET CisloZakazky=N' + QuotedStr(cZak) + ' WHERE id=' + IntToStr(idDZp)); + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET IdOldDoklad=' + IntToStr(idDZv) + ' WHERE IdDoklad=' + IntToStr(idDZp)); + end; + +{ + if (sklDst<>VyrRekl) and (idDZVyd>0) then + begin // udelej prijemku na sklad reklamace na polozky odesilane do IT + cont:= true; + idDZp:= 0; + cont:= true; + rada:= '241'; + // rada:= VarToStr(oVar1); + locSQL:= 'DECLARE @Ident INT,@dt DATETIME'+ CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @Ident OUT,@Sklad=N' + QuotedStr(VyrRekl); + locSQL:= locSQL + ',@DruhPohybu=0,@RadaDokladu=N' + QuotedStr(rada) +',@Insert=1,@PC=NULL,@Mena=N' + QuotedStr('CZK'); + locSQL:= locSQL + ',@CisloOrg=0,@DatumPorizeni=@dt' + CRLF + 'SELECT @Ident'; + idDZp:= 0; + try + with Helios.OpenSQL(locSQL) do + if (RecordCount>0) then + idDZp:= StrToInt(VarToStr(FieldValues(0))); // zjisti ID vytvoreneho dokladu + except on E:Exception do + begin + Clipboard.AsText:= locSQL; + Helios.Error(#1'Nelze uložit hlavičku Příjemky pro Demontáž (na sklad Reklamace).'#1 + CRLF + E.Message); + cont:= false; + end; + end; + if (cont) then + begin + UlozPolozkyMatIT(idDZp); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET CisloZakazky=N' + QuotedStr(cZak) + ' WHERE id=' + IntToStr(idDZp)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZp) + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZp)); + + locSQL:= 'DECLARE @BylaChyba BIT'+ CRLF + 'EXEC dbo.hp_Realizuj_Prijem ' + IntToStr(idDZp); + locSQL:= locSQL + ',NULL,' + IntToStr(Helios.UserId) + ',@BylaChyba OUT' + CRLF + 'SELECT @BylaChyba'; + try + with Helios.OpenSQL(locSQL) do + if (VarToStr(FieldValues(0))='1') then + Helios.Error(#1'Nelze realizovat příjemku.'#1); + except on E:Exception do + begin + Clipboard.AsText:= locSQL; + Helios.Error(#1'Nelze realizovat příjemku.'#1 + CRLF + E.Message); + end; + end; + end; + end; +} + +{ + with Helios.OpenSQL('SELECT idMat FROM #TabMaterialyIT WHERE ISNULL(MnozIT,0)>0') do + if (RecordCount>0) then + begin + UlozPolozkyMatIT(idDZVyd); // uloz polozky na doklad pro IT + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZVyd) + ', @AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZVyd)); + end; + + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZVyd) + ', @AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZVyd)); + end; +} + Helios.Refresh(true); + Close; + end; + end; + + + + + procedure TformDemontaz.btnRozeberClick(Sender: TObject); + var lSQL: string; + begin + if not (TestMnozOK) then + begin + Helios.Error(#1'Na skladě není požadované množství kusů.'#1 + CRLF + '(množství skladem + požadováno na demontáž)'); + Exit; + end; + if (idKZ>0) and (edtMnoz.Value>0) then + begin + if not(tabDilce.Active) then + tabDilce.Open; + if tabDilce.Locate('idKZ',VarArrayOf([idKZ]),[loCaseInsensitive]) then + begin + tabDilce.Edit; + tabDilce.FieldByName('Mnozstvi').AsExtended:= tabDilce.FieldByName('Mnozstvi').AsExtended + edtMnoz.Value; + end + else + begin + tabDilce.Append; + tabDilce.FieldByName('Mnozstvi').AsExtended:= edtMnoz.Value; + tabDilce.FieldByName('idKZ').AsInteger:= idKZ; + tabDilce.FieldByName('idSS').AsInteger:= idSS; + tabDilce.FieldByName('SZ').AsString:= selSZ.Text; + tabDilce.FieldByName('RegCis').AsString:= selRegCis.Text; + tabDilce.FieldByName('Nazev').AsString:= ' ' + lblNazev.Caption; + end; + tabDilce.Post; +{ + lSQL:= 'IF OBJECT_ID(N''tempdb..#TabOznaceneIDProTisk'')IS NULL CREATE TABLE #TabOznaceneIDProTisk(ID INT NOT NULL PRIMARY KEY,' + + 'Poradi INT NOT NULL IDENTITY UNIQUE) ELSE TRUNCATE TABLE #TabOznaceneIDProTisk' + CRLF; + lSQL:= lSQL + 'INSERT #TabOznaceneIDProTisk(ID) VALUES (' + IntToStr(idKZ) + ')' + CRLF; + lSQL:= lSQL + 'IF OBJECT_ID(N''tempdb..#TabOznaceneIDProTiskG'') IS NULL CREATE TABLE #TabOznaceneIDProTiskG(ID INT NOT NULL PRIMARY KEY)'; + lSQL:= lSQL + ' ELSE TRUNCATE TABLE #TabOznaceneIDProTiskG' + CRLF + 'INSERT #TabOznaceneIDProTiskG(ID) VALUES (' + IntToStr(idKZ) + ')' + CRLF; + lSQL:= lSQL + 'IF OBJECT_ID(N''tempdb..#TabParNapoctuTPV'') IS NULL '; + lSQL:= lSQL + 'CREATE TABLE #TabParNapoctuTPV(ID INT IDENTITY NOT NULL, DatumTPV DATETIME DEFAULT GETDATE(),' + + 'Mnozstvi NUMERIC(19,6) NULL, RespekPlanZtratyPriVyrobeDilcu BIT NOT NULL DEFAULT 0,' + + 'RespekDodatecneProcZtratKV BIT NOT NULL DEFAULT 0, DelitFixniMnozstviOptDavkou BIT NOT NULL DEFAULT 0,' + + 'KalkCenyKDnesku BIT NOT NULL DEFAULT 0, RespekAltPriInverVypoctu BIT NOT NULL DEFAULT 0,' + + 'RespekZakazModifPriInverVypoctu BIT NOT NULL DEFAULT 0, RespekNedelitMJ BIT NOT NULL DEFAULT 0,' + + 'VcetneNulovychKV BIT NOT NULL DEFAULT 0, KalkulaceJednotlivychPolozek BIT NOT NULL DEFAULT 0,' + + 'DatumTPV_D AS (DATEPART(DAY,DatumTPV)), DatumTPV_M AS (DATEPART(MONTH,DatumTPV)),' + + 'DatumTPV_Y AS (DATEPART(YEAR,DatumTPV)), DatumTPV_Q AS (DATEPART(QUARTER,DatumTPV)),' + + 'DatumTPV_W AS (DATEPART(WEEK,DatumTPV)), DatumTPV_X AS (CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,DatumTPV)))) )' + + ' ELSE TRUNCATE TABLE #TabParNapoctuTPV' + CRLF; + lSQL:= lSQL + 'INSERT INTO #TabParNapoctuTPV(Mnozstvi, KalkCenyKDnesku, RespekNedelitMJ, VcetneNulovychKV) VALUES(' + + StringReplace(FloatToStr(edtMnoz.Value),',','.',[rfReplaceAll]) + ', 1, 1, 1)'; + Helios.ExecSQL(lSQL); +} +// Helios.PrintForm(81); + if (cbTiskRozp.Checked) and not (Length(idPols)>0) then + Helios.PrintForm3(bidDilce,81,'TabKmenZbozi.Id=' + IntToStr(idKZ)); + + idKZ:= 0; + idSS:= 0; + selSZ.Text:= ''; + selRegCis.Text:= ''; + if not (Length(idPols)>0) then + selRegCis.SetFocus; + lblNazev.Caption:= ''; + edtMnoz.Value:= 0; + if (tabDilce.RecordCount>0) then + begin + selRegCis.Enabled:= false; + edtMnoz.Enabled:= false; + btnRozeber.Enabled:= false; + end; + + end; + end; + + + + + procedure TformDemontaz.ZjistiKmen; + begin + with Helios.OpenSQL('SELECT SkupZbo,RegCis,Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStR(idKZ)) do + if (RecordCount=1) then + begin + if (selSZ.Text='') then + selSZ.Text:= VarToStr(FieldValues(0)); + if (selRegCis.Text='') then + selRegCis.Text:= VarToStr(FieldValues(1)); + lblNazev.Caption:= VarToStr(FieldValues(2)); + end; + end; + + + + + procedure TformDemontaz.btnStornoClick(Sender: TObject); + begin + Close; + end; + + + + + procedure TformDemontaz.FormActivate(Sender: TObject); + begin + if not(tabDilce.Active) then + tabDilce.Open; + if not(tabMat.Active) then + tabMat.Open; + + verText:= GetFileVersion2(GetModuleName(HInstance)); + if (Length(verText)=12) then + verText:= LeftStr(verText,9) + '0' + RightStr(verText,3); + lblVerze.Caption:= verText; + +// vDilce.OptionsView.NoDataToDisplayInfoText:= ''; +// vMat.OptionsView.NoDataToDisplayInfoText:= ''; + sklVyd:= ''; + end; + + + + + procedure TformDemontaz.FormClose(Sender: TObject; var Action: TCloseAction); + var locSQL: string; + begin + if (tabDilce.Active) then + tabDilce.Close; + if (tabMat.Active) then + tabMat.Close; + locSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabMaterialyIT') + ') IS NOT NULL DROP TABLE #TabMaterialyIT'; + Helios.ExecSQL(locSQL); + Action:= caFree; + end; + + + + + procedure TformDemontaz.FormShow(Sender: TObject); + var i: integer; + begin + Application.Handle:= Helios.MainApplicationHandle; + Application.Icon.Handle:= Helios.MainApplicationIconHandle; + + selVydejIT.SetFocus; + idKZ:= 0; + idSS:= 0; + lblNazev.Caption:= ''; + dtDatum.DateTime:= Now; + + sklSrc:= Helios.Sklad; + with Helios.OpenSQL('SELECT Nazev,CisloStr FROM ' + tblStrom + ' WHERE Cislo=N' + QuotedStr(sklSrc)) do + begin + selSrcSklNazev.Text:= VarToStr(FieldValues(0)); + selSrcSkl.Text:= VarToStr(FieldValues(1)); + end; + + with Helios.OpenSQL('SELECT Nazev,CisloStr,Cislo FROM ' + tblStrom + ' WHERE LOWER(Nazev) LIKE N' + QuotedStr('%výrob%demont%')) do + begin + selDstSklNazev.Text:= VarToStr(FieldValues(0)); + selDstSkl.Text:= VarToStr(FieldValues(1)); + sklDst:= VarToStr(FieldValues(2)); + end; + + cbTiskRozp.Checked:= false; + cbTiskRozp.Visible:= true; + cbMaxRozpad.Checked:= true; + cbTiskRozp.Visible:= true; + grdDilce.Height:= 42; + grdDilce.Width:= 518; + grdDilce.Top:= 80; + if (Length(idPols)>0) then + begin + for i:=0 to Length(idPols)-1 do + begin + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE Mnozstvi>0 AND Id=' + IntToStr(idPols[i])) do + if (RecordCount=0) then + Delete(idPols,i,1); + end; + cbTiskRozp.Visible:= false; + cbMaxRozpad.Visible:= false; + grdDilce.Height:= 109; + grdDilce.Width:= 518; + grdDilce.Top:= 16; + DemontujVybrane; + end; + end; + + + + +procedure TformDemontaz.pmAll2ITClick(Sender: TObject); + var lSQL: string; + i: integer; + begin + if (tabMat.RecordCount>0) then + begin + i:= tabMat.RecNo; + tabMat.DisableControls; + tabMat.First; + while not(tabMat.Eof) do + begin + tabMat.Edit; + tabMat.FieldByName('MnozstviIT').AsExtended:= tabMat.FieldByName('Mnozstvi').AsExtended; + tabMat.Post; + lSQL:= 'IF EXISTS(SELECT idMat FROM #TabMaterialyIT WHERE idMat=' + tabMat.FieldByName('idKZ').AsString + ') '; + lSQL:= lSQL +'UPDATE #TabMaterialyIT SET MnozIT=' + StringReplace(tabMat.FieldByName('Mnozstvi').AsString, ',', '.', [rfReplaceAll]); + lSQL:= lSQL + ' WHERE idMat=' + tabMat.FieldByName('idKZ').AsString + ' ELSE INSERT #TabMaterialyIT (idMat, MnozIT) SELECT '; + lSQL:= lSQL + tabMat.FieldByName('idKZ').AsString + ', ' + StringReplace(tabMat.FieldByName('Mnozstvi').AsString, ',', '.', [rfReplaceAll]); + Helios.ExecSQL(lSQL); + tabMat.Next; + end; + tabMat.RecNo:= i; + tabMat.EnableControls; + end; + end; + + + + + procedure TformDemontaz.pmDel2ITClick(Sender: TObject); + var lSQL: string; + i: integer; + begin + i:= tabMat.RecNo; + tabMat.DisableControls; + tabMat.First; + while not(tabMat.Eof) do + begin + tabMat.Edit; + tabMat.FieldByName('MnozstviIT').AsExtended:= 0; + tabMat.Post; + tabMat.Next; + end; + Helios.ExecSQL('DELETE FROM #TabMaterialyIT'); + tabMat.RecNo:= i; + tabMat.EnableControls; + end; + + + + + procedure TformDemontaz.pmOpravClick(Sender: TObject); + var strMn, iSS: string; + mn, jc, mnSkl: Extended; + iR: integer; + begin + tabDilce.DisableControls; + if (tabDilce.RecordCount>0) then + begin +// iR:= vDilce.DataController.FocusedRecordIndex; + mn:= tabDilce.FieldByName('Mnozstvi').AsFloat; + iSS:= tabDilce.FieldByName('idSS').AsString; + jc:= 0; + if (FormMnozstviCena('Zadejte nové množství',mn,jc,false,false)) then + begin + mnSkl:= 0; + with Helios.OpenSQL('SELECT Mnozstvi FROM ' + tblSS + ' WHERE Id=' + iSS) do + if (RecordCount=1) then + mnSkl:= StrToFloat(VarToStr(FieldValues(0))); + if (mn<=mnSkl) then + begin + tabDilce.Edit; + tabDilce.FieldByName('Mnozstvi').AsExtended:= mn; + tabDilce.Post; + grdDilce.Refresh; + end + else + Helios.Error(#1'Na skladě je pouze ' + FormatFloat('##,##0.###',mnSkl) + ' kusů'#1); + end; +// vDilce.DataController.FocusedRecordIndex:= iR; + end; + tabDilce.EnableControls; + end; + + + + + procedure TformDemontaz.pmSmazatClick(Sender: TObject); + begin +{ + if Helios.YesNo('Opravdu smazat položku "' + vDilce.Controller.FocusedRecord.Values[3] + '" ?', false) then + begin + vDilce.BeginUpdate; + tabDilce.Delete; + if (tabDilce.RecordCount=0) then + begin + selRegCis.Enabled:= true; + edtMnoz.Enabled:= true; + btnRozeber.Enabled:= true; + end; + vDilce.EndUpdate; + end; +} + end; + + + + procedure TformDemontaz.selCisZamButtonClick(Sender: TObject); + begin + if Helios.Prenos(bidCisZam,'Cislo',oVar1,'','Zaměstnanci',true) then + begin + selCisZam.Text:= VarToStr(oVar1); + with Helios.OpenSQL('SELECT PrijmeniJmeno FROM ' + tblCZam + ' WHERE Cislo=' + selCisZam.Text) do + lblZamest.Caption:= VarToStr(FieldValues(0)); + selRegCis.SetFocus; + end + else + begin + selCisZam.Text:= ''; + lblZamest.Caption:= ''; + end; + end; + + + + + procedure TformDemontaz.selCisZamExit(Sender: TObject); + var cZam: string; + begin + selCisZam.Text:= Trim(selCisZam.Text); + if (selCisZam.Text<>'') then + begin + with Helios.OpenSQL('SELECT PrijmeniJmeno FROM ' + tblCZam + ' WHERE Cislo=' + selCisZam.Text) do + if (RecordCount=1) then + begin + lblZamest.Caption:= VarToStr(FieldValues(0)); + selRegCis.SetFocus; + end + else + begin + Helios.Error(#1'Toto číslo nebylo nalezena u žádného zaměstnance.'#1); + lblZamest.Caption:= ''; + selCisZam.Text:= ''; + selCisZam.SetFocus; + end; + end + else + lblZamest.Caption:= ''; + end; + + + + + procedure TformDemontaz.selDstSklButtonClick(Sender: TObject); + var podm: string; + begin + podm:= 'LEFT(TabStrom.Cislo,1)=N' + QuotedStr('2'); + if Helios.Prenos(bidStrom,'Cislo',oVar1,podm,'Organizační struktura',true) then + begin + if not(VarIsNull(oVar1)) then + begin + sklDst:= VarToStr(oVar1); + with Helios.OpenSQL('SELECT Nazev,CisloStr FROM ' + tblStrom + ' WHERE Cislo=N' + QuotedStr(sklDst)) do + begin + selDstSklNazev.Text:= VarToStr(FieldValues(0)); + selDstSkl.Text:= VarToStr(FieldValues(1)); +// Helios.SetSklad(sklDst); + end; + end; + end; + end; + + + + + procedure TformDemontaz.selRegCisButtonClick(Sender: TObject); + var podm: string; + begin + selSZ.Text:= ''; + selRegCis.Text:= ''; + podm:= 'TabStavSkladu.IDSklad=N' + QuotedStr(sklSrc) + ' AND TabStavSkladu.Mnozstvi>0 AND '; + podm:= podm + 'TabStavSkladu.IdKmenZbozi IN (SELECT id FROM TabKmenZbozi WHERE Material=0 AND SkupZbo IN (SELECT sz.SkupZbo FROM ' + tblSZ + ' sz LEFT JOIN ' + tblSZe; + podm:= podm + ' sze ON (sze.id=sz.id) WHERE sze._JeVyroba=1)'; + if (selSZ.Text<>'') then + podm:= ' AND SkupZbo=N' + QuotedStr(selSZ.Text); + podm:= podm + ')'; + if Helios.Prenos(bidSS,'id',oVar1,podm,'Stav skladu ' + sklSrc,true) then + begin + idSS:= StrToInt(VarToStr(oVar1)); + with Helios.OpenSQL('SELECT idKmenZbozi FROM ' + tblSS + ' WHERE id=' + IntToStr(idSS)) do + if (RecordCount=1) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + ZjistiKmen; + edtMnoz.SetFocus; + end; + end; + + + + + procedure TformDemontaz.selRegCisExit(Sender: TObject); + var lSQL: string; + begin + selRegCis.Text:= Trim(selRegCis.Text); + if (selRegCis.Text<>'') and (idKZ=0) then + begin + lSQL:= 'SELECT ss.Id, kz.Id FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ + ' kz ON (kz.Id=ss.IdKmenZbozi)'; + lSQL:= lSQL + ' INNER JOIN ' + tblSZ + ' sz ON (sz.SkupZbo=kz.SkupZbo) INNER JOIN ' + tblSZe + ' sze ON (sz.Id=sze.Id)'; + lSQL:= lSQL + ' WHERE ss.IDSklad=N' + QuotedStr(sklSrc) + ' AND ss.Mnozstvi>0 AND kz.RegCis=N' + QuotedStr(selRegCis.Text); + lSQL:= lSQL + ' AND kz.Material=0 AND sze._JeVyroba=1'; + if (selSZ.Text<>'') then + lSQL:= ' AND kz.SkupZbo=N' + QuotedStr(selSZ.Text); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idSS:= StrToInt(VarToStr(FieldValues(0))); + idKZ:= StrToInt(VarToStr(FieldValues(1))); + ZjistiKmen; + edtMnoz.SetFocus; + end + else + begin + idSS:= 0; + idKZ:= 0; + Helios.Error(#1'Nelze dohledat kartu zboží (určena pro výrobu, na skladě > 0)'#1); + end; + end; + end; + + + + + procedure TformDemontaz.selSrcSklButtonClick(Sender: TObject); + begin + if Helios.Prenos(bidStrom,'Cislo',oVar1,'','Organizační struktura',true) then + begin + if not(VarIsNull(oVar1)) then + begin + sklSrc:= VarToStr(oVar1); + with Helios.OpenSQL('SELECT Nazev,CisloStr FROM ' + tblStrom + ' WHERE Cislo=N' + QuotedStr(sklSrc)) do + begin + selSrcSklNazev.Text:= VarToStr(FieldValues(0)); + selSrcSkl.Text:= VarToStr(FieldValues(1)); + end; + end; + end; + end; + + + + + procedure TformDemontaz.selSZButtonClick(Sender: TObject); + begin + if Helios.Prenos(bidSZ,'SkupZbo',oVar1,'','Skupiny zboží',true) then + selSZ.Text:= VarToStr(oVar1); + end; + + + + + procedure TformDemontaz.selSZExit(Sender: TObject); + begin + selSZ.Text:= Trim(selSZ.Text); + if (selSZ.Text<>'') then + with Helios.OpenSQL('SELECT sz.id FROM ' + tblSZ + ' sz LEFT JOIN ' + tblSZe + ' sze ON (sze.id=sz.id) WHERE sze._JeVyroba=1 AND sz.SkupZbo=N' + QuotedStr(selSZ.Text)) do + if (RecordCount=0) then + begin + selSZ.Text:= ''; + Helios.Error(#1'Nelze dohledat Skupinu zboží pro výrobu.'#1); + end; + end; + + + + + procedure TformDemontaz.selVydejITButtonClick(Sender: TObject); + var podm: string; + begin + selVydejIT.Text:= ''; + if (selVydejIT.Text<>'') and (sklDst<>VyrRekl) then + begin + Helios.Error(#1'Výdej vadného materiálu z demontáže do IT lze dělat pouze na skladě Výroba REKLAMACE.'#1); + Exit; + end; + +// Helios.SetSklad(VyrRekl); + podm:= 'TabDokladyZbozi.Obdobi=' + IntToStr(Helios.Obdobi) + ' AND TabDokladyZbozi.DruhPohybuZbo=2 AND TabDokladyZbozi.Realizovano=0'; + podm:= podm + ' AND TabDokladyZbozi.RadaDokladu=N' + QuotedStr('420') + ' AND TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.MistoUrceni=1'; + podm:= podm + ' AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklDst); + Helios.SetSklad(sklDst); + if Helios.Prenos(bidDZVydej,'id',oVar1,podm,'Výdejky do IT',true) then + begin +// Helios.SetSklad(sklSrc); + idDZVyd:= StrToInt(VarToStr(oVar1)); + with Helios.OpenSQL('SELECT RadaDokladu + N''-'' + CONVERT(nvarchar,PoradoveCislo),IdSklad FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZVyd)) do + if (RecordCount=1) then + begin + selVydejIT.Text:= VarToStr(FieldValues(0)); + sklVyd:= VarToStr(FieldValues(1)); + end; + end + else + begin + idDZVyd:= 0; + sklVyd:= ''; + selVydejIT.Text:= ''; + end; + Helios.SetSklad(sklSrc); + end; + + + + + procedure TformDemontaz.tabDilceAfterDelete(DataSet: TDataSet); + begin + tabDilceAfterPost(DataSet); + end; + + + + + procedure TformDemontaz.tabDilceAfterPost(DataSet: TDataSet); + var locSQL, strIdMat, strMnoz: string; + mnoz,mnozNiz: Extended; + matIdSS, matIdSSold: integer; + sz,regcis,pop: string; + iRowPolos,idx: integer; + lp: integer; + rozp: IHeQuery; + begin +// iRowPolos:= vDilce.DataController.FocusedRowIndex; + + if not(tabMat.Active) then + tabMat.Open; + tabMat.EmptyDataSet; + if (tabDilce.RecordCount=0) then + begin + selRegCis.SetFocus; + Exit; + end; + + locSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabMaterialyIT') + ') IS NULL CREATE TABLE #TabMaterialyIT (idMat INT NOT NULL,'; + locSQL:= locSQL + 'MnozIT NUMERIC(19,6) DEFAULT NULL)' + CRLF + 'DELETE FROM #TabMaterialyIT'; + Helios.ExecSQL(locSQL); + + locSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabRozpad') + ') IS NOT NULL DROP TABLE #TabRozpad' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabRozpad(idMat INT NOT NULL, Mnoz NUMERIC(19,6) DEFAULT 0.0)'; + Helios.ExecSQL(locSQL); + Helios.ExecSQL('DELETE FROM dbo._TabKus_Rozpad WHERE Autor=SUSER_SNAME()'); + + for idx:=1 to tabDilce.RecordCount do + begin + tabDilce.RecNo:= idx; + locSQL:= 'DECLARE @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)); + locSQL:= locSQL + ',104)' + CRLF + 'IF OBJECT_ID(N''tempdb..#TabSouhKusov'') IS NOT NULL DROP TABLE #TabSouhKusov' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabSouhKusov (IdKZ INT, mnozstvi NUMERIC(19,6) DEFAULT 0.0)' + CRLF; + locSQL:= locSQL + 'EXEC dbo.ep_GetKusovnikProOZ @ID=' + tabDilce.FieldByName('idKZ').AsString + ', @mnozstvi='; + locSQL:= locSQL + StringReplace(tabDilce.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + // locSQL:= locSQL + StringReplace(DataSet.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + locSQL:= locSQL + ',@datum=@dt,@JenPrvniUroven='; + if (cbMaxRozpad.Checked=true) then + locSQL:= locSQL + '0' + else + locSQL:= locSQL + '1'; + locSQL:= locSQL + CRLF + 'INSERT #TabRozpad SELECT IdKZ,Mnozstvi FROM #TabSouhKusov'; + Helios.ExecSQL(locSQL); +{ + locSQL:= 'INSERT dbo._TabKus_Rozpad(IdKmenZbozi,Mnozstvi,IdKmenZboziV,MnozstviV) VALUES (' + strIdMat + ','; + locSQL:= locSQL + StringReplace(strMnoz,',','.',[rfReplaceAll]) + ','; + locSQL:= locSQL + tabDilce.FieldByName('idKZ').AsString + ','; + locSQL:= locSQL + StringReplace(tabDilce.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(locSQL); +} + end; + + rozp:= Helios.OpenSQL('SELECT DISTINCT(IdMat),ISNULL(SUM(Mnoz),0) FROM #TabRozpad GROUP BY IdMat'); + if (rozp.RecordCount>0) then + begin + GroupBox2.Caption:= ' Materiály (' + IntToStr(rozp.RecordCount) + ') '; + tabMat.DisableControls; + rozp.First; + while not(rozp.EOF) do + begin + strIdMat:= VarToStr(rozp.FieldValues(0)); + strMnoz:= StringReplace(VarToStr(rozp.FieldValues(1)),',','.',[rfReplaceAll]); + // strMnoz:= FloatToStr(StrToFloat(strMnoz) * edtMnoz.Value); + + tabMat.Append; + locSQL:= 'SELECT SkupZbo,RegCis,Nazev1 FROM ' + tblKZ + ' WHERE id=' + strIdMat; + with Helios.OpenSQL(locSQL) do + if (RecordCount=1) then + begin + tabMat.FieldByName('SZ').AsString:= VarToStr(FieldValues(0)); + tabMat.FieldByName('RegCis').AsString:= VarToStr(FieldValues(1)); + tabMat.FieldByName('Nazev').AsString:= ' ' + VarToStr(FieldValues(2)); + end; + + matIdSS:= 0; + matIdSSold:= 0; + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IdKmenZbozi=' + strIdMat + ' AND IDSklad=N' + QuotedStr(sklDst)) do + if (RecordCount=0) then + begin + locSQL:= 'INSERT ' + tblSS + ' (IdKmenZbozi,IDSklad) VALUES (' + strIdMat + ',N' + QuotedStr(sklDst) + ')'; + locSQL:= locSQL + CRLF + 'SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(locSQL) do + matIdSS:= StrToInt(VarToStr(FieldValues(0))); + end + else + matIdSS:= StrToInt(VarToStr(FieldValues(0))); + if (matIdSS>0) then + begin + locSQL:= 'SELECT id FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(sklSrc) + ' AND IdKmenZbozi=' + strIdMat; + with Helios.OpenSQL(locSQL) do + if (RecordCount>0) then + matIdSSold:= StrToInt(VarToStr(FieldValues(0))); + end; + tabMat.FieldByName('idKZ').AsString:= strIdMat; + tabMat.FieldByName('Mnozstvi').AsExtended:= StrToFloat(StringReplace(strMnoz,'.',',',[rfReplaceAll])); + tabMat.FieldByName('idSSold').AsInteger:= matIdSSold; + tabMat.FieldByName('idSS').AsInteger:= matIdSS; + + tabMat.FieldByName('MnozstviIT').AsString:= ''; + locSQL:= 'SELECT MnozIT FROM #TabMaterialyIT WHERE idMat=' + strIdMat; + with Helios.OpenSQL(locSQL) do + if (RecordCount=1) then + begin + if not(VarIsNull(FieldValues(0))) then + tabMat.FieldByName('MnozstviIT').AsFloat:= StrToFloat(VarToStr(FieldValues(0))); + end + else + begin + locSQL:= 'INSERT #TabMaterialyIT (idMat) VALUES (' + strIdMat + ')'; + Helios.ExecSQL(locSQL); + end; + + tabMat.Post; + rozp.Next; + end; + + locSQL:= 'SELECT idMat FROM #TabMaterialyIT WHERE MnozIT>0'; + with Helios.OpenSQL(locSQL) do + if (RecordCount>0) then + begin + First; + while not(EOF) do + begin + if not(tabMat.Locate('idKZ',VarArrayOf([VarToStr(FieldValues(0))]),[loCaseInsensitive])) then + begin + locSQL:= 'DELETE FROM #TabMaterialyIT WHERE idMat=' + VarToStr(FieldValues(0)); + Helios.ExecSQL(locSQL); + end; + Next; + end; + end; + tabMat.EnableControls; + tabMat.RecNo:= 1; + tabMat.Refresh; + end; + locSQL:= 'IF OBJECT_ID(N''tempdb..#TabRozpad'') IS NOT NULL DROP TABLE #TabRozpad' + CRLF; + locSQL:= locSQL + 'IF OBJECT_ID(N''tempdb..#TabSouhKusov'') IS NOT NULL DROP TABLE #TabSouhKusov'; + Helios.ExecSQL(locSQL); + + if not TestMatDoIT then + Helios.Error(#1'V kusech pro vývoz je větší množství než v demontáži.'#1); + +// vDilce.DataController.FocusedRowIndex:= iRowPolos; + tabMat.RecNo:= 1; + locSQL:= 'IF OBJECT_ID(N''tempdb..#TabRozpad'') IS NOT NULL DROP TABLE #TabRozpad'; + Helios.ExecSQL(locSQL); + end; + + end. + diff --git a/frmKanbanBox.dfm b/frmKanbanBox.dfm new file mode 100644 index 0000000..d83223e --- /dev/null +++ b/frmKanbanBox.dfm @@ -0,0 +1,196 @@ +object formKanbanBox: TformKanbanBox + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = 'Definice kanban box'#367 + ClientHeight = 220 + ClientWidth = 544 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 22 + Top = 50 + Width = 135 + Height = 16 + Caption = 'V'#253'robek / polosestava :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label2: TLabel + Left = 22 + Top = 20 + Width = 114 + Height = 16 + Caption = 'Unik'#225'tn'#237' '#269#237'slo boxu :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblPopis: TLabel + Left = 22 + Top = 77 + Width = 499 + Height = 16 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 23 + Top = 103 + Width = 63 + Height = 16 + Caption = 'Ks v boxu :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 19 + Top = 134 + Width = 67 + Height = 16 + Caption = 'Pozn'#225'mka :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object selCisloZbozi: TRzButtonEdit + Left = 172 + Top = 47 + Width = 175 + Height = 24 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnExit = selCisloZboziExit + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selCisloZboziButtonClick + end + object lblID: TEdit + Left = 144 + Top = 15 + Width = 76 + Height = 24 + Alignment = taCenter + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + NumbersOnly = True + ParentFont = False + TabOrder = 1 + end + object edtKs: TEdit + Left = 99 + Top = 100 + Width = 48 + Height = 24 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + NumbersOnly = True + ParentFont = False + TabOrder = 2 + OnExit = edtKsExit + end + object btnOK: TButton + Left = 336 + Top = 180 + Width = 75 + Height = 25 + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + OnClick = btnOKClick + end + object btnZrus: TButton + Left = 446 + Top = 180 + Width = 75 + Height = 25 + Caption = 'Storno' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnClick = btnZrusClick + end + object edtPozn: TEdit + Left = 99 + Top = 131 + Width = 422 + Height = 24 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 255 + ParentFont = False + TabOrder = 5 + OnExit = edtPoznExit + end + object colBarva1: TPanel + Left = 364 + Top = 46 + Width = 29 + Height = 25 + ParentBackground = False + TabOrder = 6 + end + object colBarva2: TPanel + Left = 410 + Top = 46 + Width = 29 + Height = 25 + TabOrder = 7 + end +end diff --git a/frmKanbanBox.pas b/frmKanbanBox.pas new file mode 100644 index 0000000..6e45d20 --- /dev/null +++ b/frmKanbanBox.pas @@ -0,0 +1,228 @@ +unit frmKanbanBox; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.StrUtils, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, RzEdit, RzBtnEdt, ddPlugin_TLB, + Vcl.ExtCtrls; + +const + tblKanBox = '[dbo].[_TabKanbanBox]'; + tblKmen = '[dbo].[TabKmenZbozi]'; + +type + TformKanbanBox = class(TForm) + selCisloZbozi: TRzButtonEdit; + Label1: TLabel; + Label2: TLabel; + lblID: TEdit; + lblPopis: TLabel; + edtKs: TEdit; + Label3: TLabel; + btnOK: TButton; + btnZrus: TButton; + Label4: TLabel; + edtPozn: TEdit; + colBarva1: TPanel; + colBarva2: TPanel; + procedure FormShow(Sender: TObject); + procedure btnZrusClick(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure selCisloZboziButtonClick(Sender: TObject); + procedure edtPoznExit(Sender: TObject); + procedure edtKsExit(Sender: TObject); + procedure selCisloZboziExit(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + private + procedure NactiKmen(idKZx: Integer); safecall; + public + Helios: IHelios; + idBox: integer; + end; + +var + formKanbanBox: TformKanbanBox; + idKZ: integer; + edit: boolean; + mnoz: integer; + +implementation + +{$R *.dfm} + + procedure TformKanbanBox.btnOKClick(Sender: TObject); + var lSQL: string; + jeOK: boolean; + begin + jeOK:= true; + if (edit) then + begin + lSQL:= 'Zmenil=SUSER_SNAME(), DatZmeny=GETDATE(), Poznamka=' + Ifthen(edtPozn.Text='','null','N' + QuotedStr(edtPozn.Text)); + jeOK:= true; + end + else + begin + if (idKZ=0) then + begin + jeOK:= false; + selCisloZbozi.SetFocus; + end; + lSQL:= 'idKmenZbozi=' + IntToStr(idKZ) + ',Mnozstvi=' + edtKs.Text + ',Poznamka=' + Ifthen(edtPozn.Text='','null','N' + QuotedStr(edtPozn.Text)); + end; + + if (jeOK) then + begin + lSQL:= 'UPDATE ' + tblKanBox + ' SET ' + lSQL + ' WHERE id=' + IntToStr(idBox); + try + Helios.ExecSQL(lSQL); + Helios.Refresh(true); + Close; + except on E:Exception do + Helios.Error(#1'Chyba box ' + IntToStR(idBox) + ': '#1 + E.Message); + end; + end + else + Helios.Error(#1'Vyplte vechny potebn daje...'#1); + end; + + + procedure TformKanbanBox.btnZrusClick(Sender: TObject); + begin + with Helios.OpenSQL('SELECT id FROM ' + tblKanBox + ' WHERE Id=' + IntToStr(idBox) + ' AND IdKmenZbozi=0') do + if (RecordCount=1) then + Helios.ExecSQL('DELETE FROM ' + tblKanBox + ' WHERE Id=' + IntToStr(idBox)); + with Helios.OpenSQL('SELECT ISNULL(MAX(id),1) FROM ' + tblKanBox) do + Helios.ExecSQL('DBCC CHECKIDENT(_TabKanbanBox, reseed, ' + VarToStr(FieldValues(0)) + ')'); + Close; + end; + + + procedure TformKanbanBox.edtKsExit(Sender: TObject); + begin + edtKs.Text:= Trim(edtKs.Text); + end; + + + procedure TformKanbanBox.edtPoznExit(Sender: TObject); + begin + edtPozn.Text:= Trim(edtPozn.Text); + end; + + + procedure TformKanbanBox.FormClose(Sender: TObject; var Action: TCloseAction); + begin + Action:= caFree; + end; + + + + function RGBtoTColor(strRGB: string): TColor; + var sR,sG,sB: string; + r,g,b: byte; + begin + result:= 0; + strRGB:= StringOfChar('0', 6-Length(strRGB)) + strRGB; + sR:= LeftStr(strRGB,2); + r:= StrToInt('$'+sR); + sG:= MidStr(strRGB,3,2); + g:= StrToInt('$'+sG); + sB:= RightStr(strRGB,2); + b:= StrToInt('$'+sB); + result:= RGB(r,g,b); + end; + + + procedure TformKanbanBox.FormShow(Sender: TObject); + var lSQL: string; + begin + edit:= false; + selCisloZbozi.Enabled:= false; + edtKs.Enabled:= false; + mnoz:= 0; + if (idBox>0) then + begin + edit:= true; + lSQL:= 'SELECT kz.CisloZbozi, kz.Nazev1, kz.Id, kze._KanbanMnozstvi, b.Poznamka, kze._KanbanBarva,'; + lSQL:= lSQL + ' kze._KanbanBarva2 FROM ' + tblKanBox + ' b INNER JOIN ' + tblKmen + ' kz ON (kz.Id=b.IdKmenZbozi) INNER JOIN'; + lSQL:= lSQL + ' dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE b.Id=' + IntToStr(idBox); + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + lblID.Text:= IntToStr(idBox); + selCisloZbozi.Text:= VarToStr(FieldValues(0)); + lblPopis.Caption:= VarToStr(FieldValues(1)); + idKZ:= StrToInt(VarToStr(FieldValues(2))); + edtKs.Text:= VarToStr(FieldValues(3)); + if not(VarIsNull(FieldValues(4))) then + edtPozn.Text:= Trim(VarToStr(FieldValues(4))); + if not(VarIsNull(FieldValues(5))) then +// colBarva1.Color:= RGBtoTColor(IntToHex(StrToInt(VarToStr(FieldValues(5))),2)); + colBarva1.Color:= StrToInt(VarToStr(FieldValues(5))); + if not(VarIsNull(FieldValues(6))) then +// colBarva2.Color:= RGBtoTColor(IntToHex(StrToInt(VarToStr(FieldValues(6))),2)); + colBarva2.Color:= StrToInt(VarToStr(FieldValues(6))); + end; + end + else + begin + idBox:= 0; + with Helios.OpenSQL('INSERT ' + tblKanBox + ' (Mnozstvi) VALUES (0); SELECT SCOPE_IDENTITY();') do + begin + lblID.Text:= VarToStr(FieldValues(0)); + idBox:= StrToInt(lblID.Text); + end; + idKZ:= 0; + lblPopis.Caption:= ''; + selCisloZbozi.Enabled:= true; + selCisloZbozi.Text:= ''; + end; + end; + + + procedure TformKanbanBox.NactiKmen(idKZx: Integer); + var lSQL: string; + begin + lSQL:= 'SELECT kz.RegCis, kz.Nazev1, kze._KanbanBarva, kze._KanbanBarva2, kze._KanbanMnozstvi FROM ' + tblKmen + ' kz'; + lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE kz.Id=' + IntToStr(idKZx); + with Helios.OpenSQL(lSQL) do + begin + selCisloZbozi.Text:= VarToStr(FieldValues(0)); + lblPopis.Caption:= VarToStr(FieldValues(1)); + if not VarIsNull(FieldValues(2)) then + colBarva1.Color:= StrToInt(VarToStr(FieldValues(2))); + if not VarIsNull(FieldValues(3)) then + colBarva1.Color:= StrToInt(VarToStr(FieldValues(3))); + if not VarIsNull(FieldValues(4)) then + edtKs.Text:= VarToStr(FieldValues(4)); + end; + end; + + + procedure TformKanbanBox.selCisloZboziButtonClick(Sender: TObject); + var oVar: OleVariant; + begin + if Helios.Prenos(2,'TabKmenZbozi.id',oVar,'TabKmenZbozi.Blokovano=0','Vyberte poloku',true) then + begin + idKZ:= StrToInt(VarToStr(oVar)); + NactiKmen(idKZ); + end; + end; + + + procedure TformKanbanBox.selCisloZboziExit(Sender: TObject); + begin + selCisloZbozi.Text:= Trim(selCisloZbozi.Text); + if (selCisloZbozi.Text<>'') and (idKZ=0) then + begin + with Helios.OpenSQL('SELECT id FROM ' + tblKmen + ' WHERE RegCis=N' + QuotedStr(selCisloZbozi.Text)) do + if (RecordCount=1) then + begin + idKZ:= StrToInt(VarToStr(FieldValues(0))); + NactiKmen(idKZ); + end; + end; + + end; + +end. diff --git a/frmKanbanObj.dfm b/frmKanbanObj.dfm new file mode 100644 index 0000000..5bf0c05 --- /dev/null +++ b/frmKanbanObj.dfm @@ -0,0 +1,283 @@ +object formKanbanObj: TformKanbanObj + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = 'Kanban objedn'#225'vka' + ClientHeight = 626 + ClientWidth = 737 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poMainFormCenter + OnClose = FormClose + OnShow = FormShow + TextHeight = 13 + object Label1: TLabel + Left = 391 + Top = 19 + Width = 87 + Height = 16 + Caption = 'Po'#269'et polo'#382'ek :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblPocetPol: TLabel + Left = 489 + Top = 4 + Width = 24 + Height = 45 + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -37 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 26 + Top = 24 + Width = 65 + Height = 16 + Caption = 'Dodavatel :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblDodavatel: TLabel + Left = 102 + Top = 19 + Width = 7 + Height = 25 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 26 + Top = 66 + Width = 75 + Height = 16 + Caption = 'Kanban box :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblWork: TLabel + Left = 444 + Top = 606 + Width = 285 + Height = 13 + Alignment = taRightJustify + AutoSize = False + Caption = 'lblWork' + end + object btnStorno: TButton + Left = 638 + Top = 565 + Width = 75 + Height = 25 + Caption = 'Zru'#353'it' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnClick = btnStornoClick + end + object btnOK: TButton + Left = 490 + Top = 565 + Width = 75 + Height = 25 + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnClick = btnOKClick + end + object btnGenObj: TButton + Left = 558 + Top = 12 + Width = 155 + Height = 29 + Caption = 'Generuj v'#253'dejku obal'#367 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 2 + OnClick = btnGenObjClick + end + object btnGenKoopOrVPr: TButton + Left = 558 + Top = 8 + Width = 155 + Height = 29 + Caption = 'Generuj v'#253'dejku obal'#367 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + OnClick = btnGenKoopOrVPrClick + end + object mLog: TMemo + Left = 26 + Top = 538 + Width = 401 + Height = 75 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + Lines.Strings = ( + '') + ParentFont = False + ScrollBars = ssVertical + TabOrder = 3 + end + object edtBox: TEdit + Left = 107 + Top = 63 + Width = 121 + Height = 24 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + NumbersOnly = True + ParentFont = False + TabOrder = 4 + OnKeyUp = edtBoxKeyUp + end + object grdPolozky: TJvDBGrid + Left = 25 + Top = 90 + Width = 687 + Height = 440 + DataSource = ds + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleHotTrack] + TabOrder = 5 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnKeyUp = grdPolozkyKeyUp + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 17 + TitleRowHeight = 17 + Columns = < + item + Alignment = taCenter + Expanded = False + FieldName = 'IdKanbanBox' + Title.Alignment = taCenter + Title.Caption = #268#237'slo boxu' + Width = 84 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RegCis' + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 126 + Visible = True + end + item + Expanded = False + FieldName = 'Nazev' + Title.Caption = 'Popis' + Width = 373 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'Mnozstvi' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Width = 73 + Visible = True + end + item + Expanded = False + FieldName = 'IdPohybu' + Visible = False + end> + end + object ds: TDataSource + DataSet = vTable + Left = 282 + Top = 8 + end + object vTable: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 328 + Top = 10 + object vTableIdPohybu: TIntegerField + FieldName = 'IdPohybu' + end + object vTableIdKanbanBox: TIntegerField + FieldName = 'IdKanbanBox' + Required = True + end + object vTableRegCis: TStringField + FieldName = 'RegCis' + Required = True + Size = 30 + end + object vTableNazev: TStringField + FieldName = 'Nazev' + Required = True + Size = 50 + end + object vTableMnozstvi: TSmallintField + FieldName = 'Mnozstvi' + Required = True + DisplayFormat = '#,##0' + end + end +end diff --git a/frmKanbanObj.pas b/frmKanbanObj.pas new file mode 100644 index 0000000..8181011 --- /dev/null +++ b/frmKanbanObj.pas @@ -0,0 +1,590 @@ +unit frmKanbanObj; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Data.DB, FireDAC.Comp.Client, ddPlugin_TLB, + FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, + FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, + FireDAC.Comp.DataSet, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid; + +const + KLF_ACTIVATE = $00000001; + KLF_SETFORPROCESS = $00000100; + CRLF = #13#10; + +type + TformKanbanObj = class(TForm) + Label1: TLabel; + lblPocetPol: TLabel; + Label2: TLabel; + lblDodavatel: TLabel; + ds: TDataSource; + vTable: TFDMemTable; + vTableIdPohybu: TIntegerField; + vTableIdKanbanBox: TIntegerField; + vTableNazev: TStringField; + vTableMnozstvi: TSmallintField; + btnStorno: TButton; + btnOK: TButton; + btnGenObj: TButton; + btnGenKoopOrVPr: TButton; // pidno 18.3.2021 + vTableRegCis: TStringField; + mLog: TMemo; + Label3: TLabel; + edtBox: TEdit; + lblWork: TLabel; + grdPolozky: TJvDBGrid; + procedure FormShow (Sender: TObject); + procedure edtBoxKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); + procedure btnStornoClick (Sender: TObject); + procedure FormClose (Sender: TObject; var Action: TCloseAction); + procedure btnGenObjClick (Sender: TObject); + procedure btnGenKoopOrVPrClick(Sender: TObject); // pidno 18.3.2021 + procedure btnOKClick (Sender: TObject); + procedure grdPolozkyKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); + private + function IDPol2Str: string; + public + Helios: IHelios; + idObj: integer; + btnGenVPrOrKoopText: string; // pidno 18.3.2021 + PoslatEmail: integer; // pidno 10.6.2022 + TypKooObj: boolean; // pidno 10.6.2022 + NadpisTypuKoopObj: String; // pidno 10.6.2022 + Zarovnani: string; // pidno 10.6.2022 + Cesta: string; // pidno 10.6.2022 + Nazev: string // pidno 10.6.2022 + end; + +var + formKanbanObj: TformKanbanObj; + cOrg: integer; + jeGenVydej, jeKoopObj, primaObj: Boolean; + layName: array[0..KL_NAMELENGTH+1] of Char; + + jsouGenVPr: Boolean; // pidno 18.3.2021 + +implementation + +uses + System.StrUtils, + Globalni; + +{$R *.dfm} + + function TformKanbanObj.IDPol2Str: string; + var tmp: string; + x: integer; + begin + x:= vTable.RecNo; + grdPolozky.LockDrawing; + vTable.First; + tmp:= ''; + while not(vTable.Eof) do + begin + if (vTable.Fields.FieldByName('IdPohybu').AsString<>'') then + tmp:= tmp + vTable.Fields.FieldByName('IdPohybu').AsString + ','; + vTable.Next; + end; + if (RightStr(tmp,1)=',') then + SetLength(tmp, Length(tmp)-1); + vTable.RecNo:= x; + grdPolozky.UnlockDrawing; + result:= tmp; + end; + + + + + + procedure TformKanbanObj.grdPolozkyKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (jeGenVydej) then + Helios.Error(#1'Z objednvky byla vytvoena vdejka obal, zznamy nelze mazat.'#1) + else + begin + // pidno 18.3.2021 + if (jsouGenVPr) then + Helios.Error(#1'Z objednvky byly vygenerovny vrobn pkazy nebo kooperan objednvka, zznamy nelze mazat.'#1) + else + begin + // konec pidno 18.3.2021 + if (Key=VK_DELETE) and (vTable.RecordCount>0) then + if Helios.YesNo('Opravdu chcete z objednvky smazat tento box ?',false) then + begin + vTable.Delete; + lblPocetPol.Caption:= IntToStr(StrToInt(lblPocetPol.Caption)-1); + grdPolozky.Refresh; + edtBox.SetFocus; + end; + end; + end; // pidno 18.3.2021 + end; + + + + procedure TformKanbanObj.btnStornoClick(Sender: TObject); + begin + Close; + end; + + + + + procedure TformKanbanObj.btnOKClick(Sender: TObject); + var lSQL, idcka, idKZobal: string; + x: integer; + begin + lblWork.Visible:= true; + lblWork.Caption:= 'Ukldm poloky...'; + + lSQL:= 'DECLARE @i INT; SELECT @i=ISNULL(MAX(id),0) FROM dbo._TabKanbanPohyby;DBCC CHECKIDENT(_TabKanbanPohyby,reseed,@i);'; + Helios.ExecSQL(lSQL); + + idcka:= IDPol2Str; + if (idObj>0) then + begin + Helios.ExecSQL('DELETE FROM dbo._TabKanbanPohyby WHERE IdKanbanObj=' + IntToStr(idObj) + ' AND Id NOT IN (' + IfThen(idcka='','0',idcka) + ')'); + + x:= vTable.RecNo; + grdPolozky.BeginUpdate; + vTable.First; + while not(vTable.Eof) do + begin + if (vTable.Fields.FieldByName('IdPohybu').AsString='') then + begin + idKZobal:= ''; + lSQL:= 'SELECT kzO.Id FROM dbo._TabKanbanBox b INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; + lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) LEFT JOIN dbo.TabKmenZbozi kzO ON'; + lSQL:= lSQL + ' (kzO.CisloZbozi=kze._KanbanObal) WHERE b.Id=' + vTable.Fields.FieldByName('IdKanbanBox').AsString; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + if not VarIsNull(FieldValues(0)) then + idKZobal:= VarToStr(FieldValues(0)); + + lSQL:= 'INSERT dbo._TabKanbanPohyby (IDKanbanObj, IDKanbanBox, IdKmenZboziObal) VALUES ('; + lSQL:= lSQL + IntToStr(idObj) + ',' + vTable.Fields.FieldByName('IdKanbanBox').AsString + ','; + lSQL:= lSQL + IfThen(idKZobal='','null',idKZobal) + ')'; + Helios.ExecSQL(lSQL); + end; + vTable.Next; + end; + vTable.RecNo:= x; + grdPolozky.EndUpdate; + Close; + + end + else + begin + if (cOrg >=0) then + begin // pidno 18.3.2021 + lSQL:= 'DECLARE @i INT; SELECT @i=ISNULL(MAX(id),0) FROM dbo._TabKanbanObj; DBCC CHECKIDENT(_TabKanbanObj,reseed,@i);'; + Helios.ExecSQL(lSQL); + lSQL:= 'INSERT dbo._TabKanbanObj (CisloOrgKoop) VALUES (' + IntToStr(cOrg) + '); SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idObj:= StrToInt(VarToStr(FieldValues(0))); + + x:= vTable.RecNo; + grdPolozky.BeginUpdate; + vTable.First; + while not(vTable.Eof) do + begin + idKZobal:= ''; + lSQL:= 'SELECT kzO.Id FROM dbo._TabKanbanBox b INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; + lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) LEFT JOIN dbo.TabKmenZbozi kzO ON'; + lSQL:= lSQL + ' (kzO.CisloZbozi=kze._KanbanObal) WHERE b.Id=' + vTable.Fields.FieldByName('IdKanbanBox').AsString; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + if not VarIsNull(FieldValues(0)) then + idKZobal:= VarToStr(FieldValues(0)); + + lSQL:= 'INSERT dbo._TabKanbanPohyby (IDKanbanObj, IDKanbanBox, IdKmenZboziObal) VALUES ('; + lSQL:= lSQL + IntToStr(idObj) + ',' + vTable.Fields.FieldByName('IdKanbanBox').AsString + ','; + lSQL:= lSQL + IfThen(idKZobal='','null',idKZobal) + ')'; + Helios.ExecSQL(lSQL); + vTable.Next; + end; + vTable.RecNo:= x; + grdPolozky.EndUpdate; + Close; + end; + end + else + begin + Close; + end; // pidno 18.3.2021 + end; + lblWork.Visible:= false; + end; + + + + + procedure TformKanbanObj.btnGenObjClick (Sender: TObject); + begin + btnGenObj.Caption:= 'Probh generovn...'; + if (primaObj) then + btnOKClick(Sender); + try + Helios.ExecSQL('EXEC dbo.ep_KanbanGenVydejObalu @idKanObj=' + IntToStr(idObj)); + btnGenObj.Caption:= 'Generuj vdejku obal'; + with Helios.OpenSQL('SELECT IdVydejObalu FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(idObj)) do + if (RecordCount=1) then + if not VarIsNull(FieldValues(0)) then + Helios.PrintForm3(18, 2, 'TabDokladyZbozi.Id=' + VarToStr(FieldValues(0))); + Close; + except on E:Exception do + Helios.Error(#1'Chyba pi generovn vdejky kanban box'#1#13#10 + E.Message); + end; + end; + + + + // pidno 18.3.2021 + procedure TformKanbanObj.btnGenKoopOrVPrClick (Sender: TObject); + var + IDKoopObj, JeGenKoop : integer; + Sql : string; + JmenoSouboruVyg: String; + begin + + //if (primaObj) then + btnOKClick (Sender); + + with Helios.OpenSQL('SELECT CASE WHEN EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ' AND IDPrikaz IS NULL) OR NOT EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ') THEN 1 ELSE 0 END' ) do + begin + if VarIsNull(FieldValues(0)) or (VarToStr(FieldValues(0))='0') or (VarToStr(FieldValues(0))='') then begin + Helios.Error('Vrobn pkazy ji byly vygenerovny. Nelze je vygenerovat znovu'); + exit; + end; + end; + + with Helios.OpenSQL('SELECT CASE WHEN EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ') THEN 1 ELSE 0 END' ) do + begin + if VarIsNull(FieldValues(0)) or (VarToStr(FieldValues(0))='0') or (VarToStr(FieldValues(0))='') then begin + Helios.Error('Nejsou zadny dn poloky'); + exit; + end; + end; + + btnGenKoopOrVPr.Caption:= 'Probh generovn...'; + + try + //Helios.ExecSQL('EXEC dbo.hpx_NTS_Kanban_GenerujKoopObjNeboVPr @idKanObj=' + IntToStr(idObj)); // zakomentovno 10.6.2022 + + // pidno 10.6.2022 + Sql := 'DECLARE @IDKoopObj INT, @VzniklaKoopObj INT; '; + Sql := Sql + ' EXEC dbo.hpx_NTS_Kanban_GenerujKoopObjNeboVPr_Plugin @idKanObj=' + IntToStr(idObj) + ', @IDKoopObj = @IDKoopObj OUT, @VzniklaKoopObj = @VzniklaKoopObj OUT;'; + Sql := Sql + ' SELECT @IDKoopObj AS IDKoopObj, @VzniklaKoopObj AS VzniklaKoopObj'; + + + with Helios.OpenSQL(Sql) do + begin + if not VarIsNull(FieldValues(0)) then IDKoopObj := FieldValues(0) else IDKoopObj := -99; + if not VarIsNull(FieldValues(1)) then JeGenKoop := FieldValues(1) else JeGenKoop := 0; + + + end; + // konec pidn 10.6.2022 + + btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; + + + //Close; // zakomentovno 10.6.2022 + except on E:Exception do begin + Helios.Error(#1'Chyba pi generovn kooperan objednvky nebo VP'#1#13#10 + E.Message); + btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; // pidno 10.6.2022 + exit; // pidno 10.6.2022 + end; + + end; + + + // pidno 10.6.2022 + if (PoslatEmail = 1) and (IDKoopObj > 0) and (JeGenKoop > 0) then begin + btnGenKoopOrVPr.Caption:= 'Export do xls...'; + + // export do xls + with Helios.OpenSQL('SELECT id FROM dbo.TabKoopObj WHERE realizovano=0 AND id=' + IntToStr(IDKoopObj)) do begin + if (RecordCount=0) then begin + + JmenoSouboruVyg:= ExportKoopObjXls (Helios, IDKoopObj, TypKooObj, NadpisTypuKoopObj, Zarovnani, Cesta, Nazev, 0) ; + + end else begin + Helios.Error(#1'Kooperan objednvka nen realizovna, nelze exportovat.'#1 + CRLF + 'Realizujte j a zkuste to znovu.'); + end; + end; + + + // zavoln procedury na posln e-mailu + btnGenKoopOrVPr.Caption:= 'Generovn e-mailu...'; + + Sql := 'DECLARE @IDExtKom INT = ' + IntToStr(Helios.ExtKomID) + ', @Soubor NVARCHAR(255) = N''' + JmenoSouboruVyg + ''', @Cesta NVARCHAR(255) = N''' + Cesta + ''', @Chyba NVARCHAR(500);'; + Sql := Sql + ' EXEC dbo.hpx_OdeslatKooperacniObjednavkuEmailem_Plugin @IDExtKom , @Soubor = @Soubor, @Cesta = @Cesta, @Chyba = @Chyba OUT, @IDKoopObj = ' + IntToStr(IDKoopObj) + ';' ; + Sql := Sql + ' SELECT @Chyba; ' ; + + // Helios.Info(sql); + + with Helios.OpenSQL(Sql) do + begin + if (Not VarIsNull(FieldValues(0))) and (trim(VarToStr(FieldValues(0)))<>'') then begin + Helios.Error(VarToStr(FieldValues(0))); + + end; + end; + + btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; + end; + + + Close; + // konec pidn 10.6.2022 + + end; + // konec pidn 18.3.2021 + + + + procedure TformKanbanObj.edtBoxKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + var lSQL: string; + idx, idKZ: Integer; + PridatPolozku: boolean; // pidno 18.3.2021 + begin + edtBox.Text:= Trim(edtBox.Text); + if (jeKoopObj) then + begin + Helios.Error(#1'Byla vytvoena Kooperan objednvka, poloky nelze pidvat.'#1); + Exit; + end; + + // pidno 18.3.2021 + if (jsouGenVPr) then + begin + Helios.Error(#1'Byly vytvoeny vrobn pkazy, poloky nelze pidvat.'#1); + Exit; + end; + // konec pidn 18.3.2021 + + if (jeGenVydej) then + begin + Helios.Error(#1'Byla vytvoena vdejka na obaly, poloky nelze pidvat.'#1); + Exit; + end; + if ((Key=VK_TAB) or (Key=VK_RETURN)) and (edtBox.Text<>'') then + begin + idx:= vTable.RecNo; + if not(vTable.Locate('IdKanbanBox', VarArrayOf([edtBox.Text]),[loCaseInsensitive])) then + begin + PridatPolozku := true; //pidno 18.3.2021 + vTable.RecNo:= idx; + with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanBox WHERE Id=' + edtBox.Text) do + if (RecordCount=1) then + begin + lSQL:= 'SELECT kz.RegCis, kz.Nazev1, kze._KanbanMnozstvi, kz.Id FROM dbo._TabKanbanBox b'; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; + lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE b.Id=' + edtBox.Text; + with Helios.OpenSQL(lSQL) do + begin + if (cOrg=-99) then // upraveno 18.3.2021 + begin + idKZ:= StrToInt(VarToStr(FieldValues(3))); + lSQL:= 'SELECT se._CisloOrg, co.Nazev FROM dbo.TabKmenZbozi kz INNER JOIN dbo.TabStrom s ON (s.Cislo=kz.KmenoveStredisko)'; + lSQL:= lSQL + ' INNER JOIN dbo.TabStrom_EXT se ON (se.Id=s.Id) INNER JOIN dbo.TabCisOrg co ON (co.CisloOrg=se._CisloOrg)'; + lSQL:= lSQL + ' WHERE kz.Id=' + IntToStr(idKZ); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + cOrg:= StrToInt(VarToStr(FieldValues(0))); + lblDodavatel.Caption:= VarToStr(FieldValues(1)); + end; + + // pidno 18.3.2021 + end else begin + idKZ:= StrToInt(VarToStr(FieldValues(3))); + lSQL:= 'SELECT se._CisloOrg, co.Nazev FROM dbo.TabKmenZbozi kz INNER JOIN dbo.TabStrom s ON (s.Cislo=kz.KmenoveStredisko)'; + lSQL:= lSQL + ' INNER JOIN dbo.TabStrom_EXT se ON (se.Id=s.Id) INNER JOIN dbo.TabCisOrg co ON (co.CisloOrg=se._CisloOrg)'; + lSQL:= lSQL + ' WHERE kz.Id=' + IntToStr(idKZ); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + if (cOrg <> StrToInt(VarToStr(FieldValues(0)))) then begin + PridatPolozku := false; + Helios.Error('Tento kanbanbox pat jin organizaci. Nelze pidat na objednvku.') ; + if (mLog.Lines.Count=0) then + mLog.Lines.Append('Kanbanbox pat jin organizaci: ' + edtBox.Text) + else + mLog.Lines.Insert(0, 'Kanbanbox pat jin organizaci: ' + edtBox.Text); + end; + + end; + // konec pidno 18.3.2021 + end; + + if (PridatPolozku) then begin // pidno 18.3.2021 + + vTable.Append; + vTable.Fields.FieldByName('IdKanbanBox').AsString:= edtBox.Text; + vTable.Fields.FieldByName('RegCis').AsString:= VarToStr(FieldValues(0)); + vTable.Fields.FieldByName('Nazev').AsString:= VarToStr(FieldValues(1)); + vTable.Fields.FieldByName('Mnozstvi').AsInteger:= StrToInt(VarToStr(FieldValues(2))); + vTable.Post; + lblPocetPol.Caption:= IntToStr(1 + StrToInt(lblPocetPol.Caption)); + end; // pidno 18.3.2021 + end; + end + else + begin + if (mLog.Lines.Count=0) then + mLog.Lines.Append('Nebyl nalezen kanban box: ' + edtBox.Text) + else + mLog.Lines.Insert(0, 'Nebyl nalezen kanban box: ' + edtBox.Text); + end; + end + else + if (mLog.Lines.Count=0) then + mLog.Lines.Append('Kanban box je ji zadn: ' + edtBox.Text) + else + mLog.Lines.Insert(0, 'Kanban box je ji zadn: ' + edtBox.Text); + edtBox.Text:= ''; + edtBox.SetFocus; + end; + end; + + + + + procedure TformKanbanObj.FormClose(Sender: TObject; var Action: TCloseAction); + begin + if (layName[0]<>'') then + LoadKeyboardLayout(@layName, KLF_ACTIVATE or KLF_SETFORPROCESS); + if (vTable.Active) then + vTable.Close; + Action:= caFree; + end; + + + + + procedure TformKanbanObj.FormShow(Sender: TObject); + var lSQL: string; + begin + + if GetKeyboardLayoutName(@layName) then + LoadKeyboardLayout('00020409', KLF_ACTIVATE or KLF_SETFORPROCESS); + + lblWork.Visible:= false; + cOrg:= -99; // upraveno 18.3.2021 + jeGenVydej:= false; + jeKoopObj:= false; + jsouGenVPr := false; // pidno 18.3.2021 + primaObj:= true; + if not(vTable.Active) then + vTable.Open; + vTable.EmptyDataSet; + Self.Caption:= 'Kanban objednvka'; + edtBox.SetFocus; + edtBox.Color:= clWindow; + btnGenObj.Enabled:= true; + btnGenKoopOrVPr.Enabled:= true; // pidno 18.3.2021 + + //pidno 18.3.2021 + with Helios.OpenSQL('EXEC dbo.hpx_NTS_Kanban_TextButonuGenVPrNeboKoop') do + begin + btnGenVPrOrKoopText:=VarToStr(FieldValues(0)); + btnGenKoopOrVPr.Width := StrToInt(VarToStr(FieldValues(1))) ; + btnGenKoopOrVPr.Height := StrToInt(VarToStr(FieldValues(2))) ; + btnGenKoopOrVPr.Top := StrToInt(VarToStr(FieldValues(3))) ; + btnGenKoopOrVPr.Left := StrToInt(VarToStr(FieldValues(4))) ; + btnGenKoopOrVPr.Font.Height := StrToInt(VarToStr(FieldValues(5))) ; + end; + btnGenKoopOrVPr.Caption := btnGenVPrOrKoopText; + // konec pidn 18.3.2021 + + if (idObj>0) then + begin + primaObj:= false; + with Helios.OpenSQL('SELECT CisloOrgKoop, IdVydejObalu, IdKoopObj FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(idObj)) do + begin + cOrg:= StrToInt(VarToStr(FieldValues(0))); + if not VarIsNull(FieldValues(1)) and (VarToStr(FieldValues(1))<>'0') and (VarToStr(FieldValues(1))<>'') then + jeGenVydej:= true; + if not VarIsNull(FieldValues(2)) and (VarToStr(FieldValues(2))<>'0') and (VarToStr(FieldValues(2))<>'') then + jeKoopObj:= true; + end; + + // pidno 18.3.2021 + with Helios.OpenSQL('SELECT COUNT(1) FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ' AND IDPrikaz IS NOT NULL' ) do + begin + if not VarIsNull(FieldValues(0)) and (VarToStr(FieldValues(0))<>'0') and (VarToStr(FieldValues(0))<>'') then + jsouGenVPr:= true else jsouGenVPr := false; + end; + // konec pidn 18.3.2021 + + if (jeKoopObj) or (jeGenVydej) or (jsouGenVPr) then // upraveno 18.3.2021 + begin + btnGenObj.Enabled:= false; + edtBox.Enabled:= false; + edtBox.Color:= clBtnFace; + btnStorno.SetFocus; + if ((jeKoopObj) or (jeGenVydej)) then btnGenKoopOrVPr.Enabled := false; + + end; + if (jeKoopObj) then + begin + Self.Caption:= Self.Caption + ' (odeslna)'; + mLog.Lines.Insert(0, 'Objednvka byla ji odeslna...'); + end + else + begin + if (jeGenVydej) then + begin + Self.Caption:= Self.Caption + ' (vdejka obal)'; + mLog.Lines.Insert(0, 'Byla ji vygenerovna vdejka obal...'); + end + else + begin + // pidno 18.3.2021 + if (jsouGenVPr) then + begin + Self.Caption:= Self.Caption + ' (vrobn pkaz)'; + mLog.Lines.Insert(0, 'Byl ji vygenerovn vrobn pkaz...'); + end; + // konec pidn 18.3.2021 + end; + end; + + with Helios.OpenSQL('SELECT Nazev FROM dbo.TabCisOrg WHERE CisloOrg=' + IntToStr(cOrg)) do + lblDodavatel.Caption:= VarToStr(FieldValues(0)); + + lSQL:= 'SELECT p.Id, b.Id, kz.RegCis, kz.Nazev1, kze._KanbanMnozstvi FROM dbo._TabKanbanPohyby p'; + lSQL:= lSQL + ' INNER JOIN dbo._TabKanbanBox b ON (p.IdKanbanBox=b.Id)'; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id)'; + lSQL:= lSQL + ' WHERE p.IdKanbanObj=' + IntToStr(idObj) + ' ORDER BY p.Id'; + with Helios.OpenSQL(lSQL) do + begin + lblPocetPol.Caption:= IntToStr(RecordCount); + grdPolozky.BeginUpdate; + First; + while not(EOF) do + begin + vTable.Append; + vTable.Fields.FieldByName('IdPohybu').AsString:= VarToStr(FieldValues(0)); + vTable.Fields.FieldByName('IdKanbanBox').AsString:= VarToStr(FieldValues(1)); + vTable.Fields.FieldByName('RegCis').AsString:= VarToStr(FieldValues(2)); + vTable.Fields.FieldByName('Nazev').AsString:= VarToStr(FieldValues(3)); + vTable.Fields.FieldByName('Mnozstvi').AsInteger:= StrToInt(VarToStr(FieldValues(4))); + vTable.Post; + Next; + end; + grdPolozky.EndUpdate; + end; + end; + end; + + +end. diff --git a/frmKanbanObj_bak_do210318.dfm b/frmKanbanObj_bak_do210318.dfm new file mode 100644 index 0000000..fa37f4c --- /dev/null +++ b/frmKanbanObj_bak_do210318.dfm @@ -0,0 +1,307 @@ +object formKanbanObj: TformKanbanObj + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = 'Kanban objedn'#225'vka' + ClientHeight = 624 + ClientWidth = 737 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 391 + Top = 19 + Width = 87 + Height = 16 + Caption = 'Po'#269'et polo'#382'ek :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblPocetPol: TLabel + Left = 489 + Top = 4 + Width = 24 + Height = 45 + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -37 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 26 + Top = 24 + Width = 65 + Height = 16 + Caption = 'Dodavatel :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblDodavatel: TLabel + Left = 102 + Top = 19 + Width = 7 + Height = 25 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -21 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label3: TLabel + Left = 26 + Top = 66 + Width = 75 + Height = 16 + Caption = 'Kanban box :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblWork: TLabel + Left = 444 + Top = 606 + Width = 285 + Height = 13 + Alignment = taRightJustify + AutoSize = False + Caption = 'lblWork' + end + object gPolozky: TcxGrid + Left = 26 + Top = 93 + Width = 687 + Height = 439 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + object vgPolozky: TcxGridDBTableView + OnKeyUp = vgPolozkyKeyUp + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = ds + DataController.Summary.DefaultGroupSummaryItems = < + item + Kind = skSum + Position = spFooter + Column = vgPolozkyMnozstvi + end> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnHidingOnGrouping = False + OptionsCustomize.ColumnHorzSizing = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.GroupBySorting = True + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object vgPolozkyIdPohybu: TcxGridDBColumn + DataBinding.FieldName = 'IdPohybu' + Visible = False + end + object vgPolozkyIdKanbanBox: TcxGridDBColumn + Caption = #268#237'slo boxu' + DataBinding.FieldName = 'IdKanbanBox' + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taCenter + MinWidth = 84 + Options.Editing = False + Options.Filtering = False + Options.AutoWidthSizable = False + Options.Grouping = False + Options.HorzSizing = False + Options.Moving = False + Width = 84 + end + object vgPolozkyRegCis: TcxGridDBColumn + Caption = 'Reg. '#269#237'slo' + DataBinding.FieldName = 'RegCis' + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taCenter + MinWidth = 126 + Options.Editing = False + Options.Filtering = False + Options.HorzSizing = False + Options.Moving = False + Width = 126 + end + object vgPolozkyNazev: TcxGridDBColumn + Caption = 'Popis' + DataBinding.FieldName = 'Nazev' + PropertiesClassName = 'TcxLabelProperties' + MinWidth = 373 + Options.Editing = False + Options.Filtering = False + Options.AutoWidthSizable = False + Options.HorzSizing = False + Options.Moving = False + Options.Sorting = False + Width = 373 + end + object vgPolozkyMnozstvi: TcxGridDBColumn + Caption = 'Mno'#382'stv'#237 + DataBinding.FieldName = 'Mnozstvi' + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + HeaderAlignmentHorz = taCenter + MinWidth = 73 + Options.Editing = False + Options.Filtering = False + Options.AutoWidthSizable = False + Options.Grouping = False + Options.HorzSizing = False + Options.Moving = False + Options.Sorting = False + Width = 73 + end + end + object lvlgPolozky: TcxGridLevel + GridView = vgPolozky + end + end + object btnStorno: TButton + Left = 638 + Top = 565 + Width = 75 + Height = 25 + Caption = 'Zru'#353'it' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnClick = btnStornoClick + end + object btnOK: TButton + Left = 490 + Top = 565 + Width = 75 + Height = 25 + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 2 + OnClick = btnOKClick + end + object btnGenObj: TButton + Left = 558 + Top = 12 + Width = 155 + Height = 29 + Caption = 'Generuj v'#253'dejku obal'#367 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + OnClick = btnGenObjClick + end + object mLog: TMemo + Left = 26 + Top = 538 + Width = 401 + Height = 75 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + Lines.Strings = ( + '') + ParentFont = False + ScrollBars = ssVertical + TabOrder = 4 + end + object edtBox: TEdit + Left = 107 + Top = 63 + Width = 121 + Height = 24 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + NumbersOnly = True + ParentFont = False + TabOrder = 5 + OnKeyUp = edtBoxKeyUp + end + object ds: TDataSource + DataSet = vTable + Left = 282 + Top = 8 + end + object vTable: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 328 + Top = 10 + object vTableIdPohybu: TIntegerField + FieldName = 'IdPohybu' + end + object vTableIdKanbanBox: TIntegerField + FieldName = 'IdKanbanBox' + Required = True + end + object vTableRegCis: TStringField + FieldName = 'RegCis' + Required = True + Size = 30 + end + object vTableNazev: TStringField + FieldName = 'Nazev' + Required = True + Size = 50 + end + object vTableMnozstvi: TSmallintField + FieldName = 'Mnozstvi' + Required = True + end + end +end diff --git a/frmMain.dfm b/frmMain.dfm new file mode 100644 index 0000000..fe9cd76 --- /dev/null +++ b/frmMain.dfm @@ -0,0 +1,22 @@ +object formMain: TformMain + Left = 0 + Top = 0 + Caption = 'formMain' + ClientHeight = 202 + ClientWidth = 447 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object imgList: TImageList + Height = 24 + Width = 24 + Left = 18 + Top = 16 + end +end diff --git a/frmMain.pas b/frmMain.pas new file mode 100644 index 0000000..0e94504 --- /dev/null +++ b/frmMain.pas @@ -0,0 +1,25 @@ +unit frmMain; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ImgList; + +type + TformMain = class(TForm) + imgList: TImageList; + private + { Private declarations } + public + { Public declarations } + end; + +var + formMain: TformMain; + +implementation + +{$R *.dfm} + +end. diff --git a/frmMaterial.dfm b/frmMaterial.dfm new file mode 100644 index 0000000..63c95dd --- /dev/null +++ b/frmMaterial.dfm @@ -0,0 +1,65 @@ +object formMaterial: TformMaterial + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'formMaterial' + ClientHeight = 382 + ClientWidth = 570 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poOwnerFormCenter + OnClose = FormClose + OnShow = FormShow + TextHeight = 13 + object treeMat: TTreeView + Left = 0 + Top = 0 + Width = 568 + Height = 380 + Indent = 19 + TabOrder = 0 + end + object ds: TDataSource + DataSet = vTab + Left = 514 + Top = 326 + end + object vTab: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 444 + Top = 328 + object vTabId: TIntegerField + FieldName = 'Id' + Visible = False + end + object vTabParentId: TIntegerField + FieldName = 'ParentId' + Visible = False + end + object vTabSZ: TStringField + FieldName = 'SZ' + Size = 3 + end + object vTabRegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object vTabNazev: TStringField + FieldName = 'Nazev' + Size = 100 + end + object vTabMnoz: TFloatField + FieldName = 'Mnoz' + end + end +end diff --git a/frmMaterial.pas b/frmMaterial.pas new file mode 100644 index 0000000..4403902 --- /dev/null +++ b/frmMaterial.pas @@ -0,0 +1,87 @@ +unit frmMaterial; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, ddPlugin_TLB, Data.DB, FireDAC.Comp.Client, + FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, + FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet; + +type + TformMaterial = class(TForm) + ds: TDataSource; + vTab: TFDMemTable; + vTabId: TIntegerField; + vTabParentId: TIntegerField; + vTabSZ: TStringField; + vTabRegCis: TStringField; + vTabNazev: TStringField; + vTabMnoz: TFloatField; + treeMat: TTreeView; + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + private + procedure NactiTree; + public + Helios: IHelios; + idMat: integer; + end; + +var + formMaterial: TformMaterial; + +implementation +uses helUtils; + +{$R *.dfm} + + procedure TformMaterial.NactiTree; + var lSQL: string; + id: integer; + root,uzel: TTreeNode; + cont: boolean; + begin + with Helios.OpenSQL('SELECT SkupZbo,RegCis,Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStr(idMat)) do + begin + treeMat.Items.AddFirst(nil, VarToStr(FieldValues(0)) + ' ' + VarToStr(FieldValues(1)) + ' ' + VarToStr(FieldValues(2))); + root:= treeMat.Items.GetFirstNode; + end; + id:= idMat; + lSQL:= 'SELECT kz.id, kz.SkupZbo, kz.RegCis, kz.Nazev1, v.MnozstviSeZtratou/v.DavkaTPV FROM ' + tblKVaz; + lSQL:= lSQL + ' v INNER JOIN ' + tblKZ + ' kz ON (kz.id=v.vyssi)'; + lSQL:= lSQL + ' LEFT JOIN ' + tblParKZ + ' p ON (p.IdKmenZbozi=kz.id) WHERE v.nizsi='; + cont:= true; + while (cont) do + begin + with Helios.OpenSQL(lSQL + IntToStr(id)) do + if (RecordCount=0) then + cont:= false + else + begin + First; + while not(EOF) do + begin + treeMat.Items.AddChild(root, VarToStr(FieldValues(1)) + ' ' + VarToStr(FieldValues(2)) + ' ' + VarToStr(FieldValues(3))); + Next; + end; + cont:= false; + end; + end; + end; + + procedure TformMaterial.FormClose(Sender: TObject; var Action: TCloseAction); + begin + Action:= caFree; + end; + + procedure TformMaterial.FormShow(Sender: TObject); + begin + Self.Icon.Handle:= Helios.MainApplicationIconHandle; + Self.Font.Name:= Helios.Font; + Self.Font.Height:= Helios.FontHeight; + + NactiTree; + end; + +end. diff --git a/frmOdvedPrikaz - kopie (2).dfm b/frmOdvedPrikaz - kopie (2).dfm new file mode 100644 index 0000000..84a3eef --- /dev/null +++ b/frmOdvedPrikaz - kopie (2).dfm @@ -0,0 +1,864 @@ +object formOdvedeniPrikazu: TformOdvedeniPrikazu + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + ClientHeight = 577 + ClientWidth = 724 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnKeyUp = FormKeyUp + OnResize = FormResize + OnShow = FormShow + DesignSize = ( + 724 + 577) + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 272 + Width = 121 + Height = 17 + Caption = 'Odv'#225'd'#283'n'#253'ch kus'#367' :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 10 + Top = 231 + Width = 51 + Height = 17 + Caption = 'Sm'#283'na :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 11 + Top = 185 + Width = 51 + Height = 17 + Caption = 'Datum :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 205 + Top = 185 + Width = 91 + Height = 17 + Caption = 'Zam'#283'stnanec :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblZamest: TLabel + Left = 400 + Top = 183 + Width = 275 + Height = 20 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object lblDilec: TLabel + Left = 8 + Top = 38 + Width = 404 + Height = 20 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 13 + Top = 74 + Width = 95 + Height = 17 + Caption = 'V'#253'robn'#237' p'#345#237'kaz :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 8 + Top = 11 + Width = 101 + Height = 17 + Caption = 'D'#237'lec / v'#253'robek :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 11 + Top = 146 + Width = 37 + Height = 17 + Caption = 'Sklad:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 10 + Top = 111 + Width = 87 + Height = 17 + Caption = 'Fronta pr'#225'ce :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Visible = False + end + object gOperace: TNextGrid6 + Left = 15 + Top = 318 + Width = 701 + Height = 208 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentColor = False + ParentFont = False + PopupMenu = pOperace + TabOrder = 12 + TabStop = True + Touch.InteractiveGestures = [igPan, igPressAndTap] + Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough] + ActiveView = gView + ActiveViewIndex = 0 + ScrollBars = [sbHorizontal, sbVertical] + SelectFullRow = True + object gView: TNxReportGridView6 + ColumnMoving = False + GridLines = True + HeaderHeight = 24 + InsertRowHeight = 24 + end + object colOper: TNxNumberColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Alignment = taCenter + Header.Caption = #268'.op.' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 0 + PlaceholderText = '1742.50' + Position = 0 + FormatMask = '0' + Precision = 0 + Incrememnt = 1.000000000000000000 + InsertString = '0' + end + object colEvid: TNxCheckBoxColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Alignment = taCenter + Header.Caption = 'Evid ?' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 1 + PlaceholderText = 'True' + Position = 1 + InsertString = 'False' + end + object colPopis: TNxTextColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'Popis' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 2 + PlaceholderText = 'Text Text' + Position = 2 + end + object colIdPostup: TNxNumberColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'idPostup' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 3 + PlaceholderText = '1742.50' + Position = 3 + Visible = False + Width = 8 + FormatMask = '#,##0.00' + Precision = 0 + Incrememnt = 1.000000000000000000 + InsertString = '0' + end + object colNormCasS: TNxNumberColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'NormCasS' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 4 + PlaceholderText = '1742.50' + Position = 4 + Visible = False + Width = 8 + FormatMask = '#,##0.00' + Precision = 0 + Incrememnt = 1.000000000000000000 + InsertString = '0' + end + end + object edtKusu: TRzNumericEdit + Left = 140 + Top = 268 + Width = 68 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 6 + ParentFont = False + ParentShowHint = False + ShowHint = False + TabOrder = 5 + OnEnter = edtKusuEnter + OnExit = edtKusuExit + OnKeyUp = edtKusuKeyUp + Max = 999999.000000000000000000 + DisplayFormat = ',0;(,0)' + end + object GroupBox2: TGroupBox + Left = 488 + Top = 8 + Width = 225 + Height = 109 + Anchors = [akTop, akRight] + Caption = ' Kusy ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 13 + object Label2: TLabel + Left = 8 + Top = 22 + Width = 86 + Height = 17 + Caption = 'Kusy zadan'#233' :' + end + object lblZadane: TLabel + Left = 171 + Top = 21 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 8 + Top = 53 + Width = 95 + Height = 17 + Caption = 'Kusy zb'#253'vaj'#237'c'#237' :' + end + object lblZive: TLabel + Left = 171 + Top = 52 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object Label9: TLabel + Left = 8 + Top = 83 + Width = 74 + Height = 17 + Caption = 'Evidov'#225'no :' + end + object lblEvid: TLabel + Left = 171 + Top = 81 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + end + object btnSave: TBitBtn + Left = 155 + Top = 537 + Width = 92 + Height = 32 + Align = alCustom + Anchors = [akBottom] + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Glyph.Data = { + DE010000424DDE01000000000000760000002800000024000000120000000100 + 0400000000006801000000000000000000001000000000000000000000000000 + 80000080000000808000800000008000800080800000C0C0C000808080000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 + 3333333333333333333333330000333333333333333333333333F33333333333 + 00003333344333333333333333388F3333333333000033334224333333333333 + 338338F3333333330000333422224333333333333833338F3333333300003342 + 222224333333333383333338F3333333000034222A22224333333338F338F333 + 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 + 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 + 0000333333333A222433333333333338F338F33300003333333333A222433333 + 333333338F338F33000033333333333A222433333333333338F338F300003333 + 33333333A222433333333333338F338F00003333333333333A22433333333333 + 3338F38F000033333333333333A223333333333333338F830000333333333333 + 333A333333333333333338330000333333333333333333333333333333333333 + 0000} + ModalResult = 1 + NumGlyphs = 2 + ParentFont = False + TabOrder = 7 + OnClick = btnSaveClick + end + object btnSavetisk: TBitBtn + Left = 305 + Top = 537 + Width = 92 + Height = 32 + Align = alCustom + Anchors = [akBottom] + Caption = 'OK + Tisk' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Glyph.Data = { + DE010000424DDE01000000000000760000002800000024000000120000000100 + 0400000000006801000000000000000000001000000000000000000000000000 + 80000080000000808000800000008000800080800000C0C0C000808080000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 + 3333333333333333333333330000333333333333333333333333F33333333333 + 00003333344333333333333333388F3333333333000033334224333333333333 + 338338F3333333330000333422224333333333333833338F3333333300003342 + 222224333333333383333338F3333333000034222A22224333333338F338F333 + 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 + 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 + 0000333333333A222433333333333338F338F33300003333333333A222433333 + 333333338F338F33000033333333333A222433333333333338F338F300003333 + 33333333A222433333333333338F338F00003333333333333A22433333333333 + 3338F38F000033333333333333A223333333333333338F830000333333333333 + 333A333333333333333338330000333333333333333333333333333333333333 + 0000} + ModalResult = 1 + NumGlyphs = 2 + ParentFont = False + TabOrder = 7 + OnClick = btnSaveTiskClick + end + object btnCancel: TBitBtn + Left = 455 + Top = 537 + Width = 89 + Height = 32 + Anchors = [akBottom] + Caption = ' Storno' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Kind = bkCancel + NumGlyphs = 2 + ParentFont = False + TabOrder = 8 + end + object cbCasMzda: TCheckBox + Left = 238 + Top = 228 + Width = 184 + Height = 17 + Caption = 'Mzda dle skute'#269'n'#233'ho '#269'asu' + Checked = True + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + State = cbChecked + TabOrder = 11 + end + object selSmena: TRzButtonEdit + Left = 68 + Top = 228 + Width = 75 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 2 + ParentFont = False + TabOrder = 10 + AltBtnWidth = 16 + ButtonWidth = 16 + end + object selZamest: TRzButtonEdit + Left = 303 + Top = 181 + Width = 84 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnEnter = selZamestEnter + OnExit = selZamestExit + OnKeyUp = selZamestKeyUp + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selZamestButtonClick + end + object selBarCode: TRzButtonEdit + Left = 256 + Top = 69 + Width = 131 + Height = 25 + Text = '' + CharCase = ecUpperCase + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 15 + ParentFont = False + TabOrder = 2 + Visible = False + OnExit = selBarCodeExit + OnKeyUp = selBarCodeKeyUp + ButtonGlyph.Data = { + AE060000424DAE0600000000000036000000280000001E000000120000000100 + 18000000000078060000C40E0000C40E00000000000000000000FBFCF8F0F1EE + FBFCF8FBFCF8FBFCF8CDCECAE3E4E0CACAC7DDDEDAC4C4C1E7E8E4DEDFDBECED + E9CFCFCBECEDE9F7F8F4CBCBC8E5E6E2DCDCD8F5F6F2DCDDD9E6E7E4CCCCC9E7 + E8E5EAEAE7FBFCF8FBFCF8FBFCF8EFEFECF6F7F30000FAFBF7CDCECACBCCC9BA + BAB7D2D3CFB5B6B3BFBFBC949391BFBEBC9C9C9ACECFCBB1B0AEDCDDD99C9C9A + BFBFBCD1D1CF929290D2D3CF7F7E7CDDDEDAB1B2AFCECECB9B9B98E3E3E0B2B2 + AFC5C5C2A4A4A2BFBFBCC8C9C6E8E9E50000FBFCF8E8E8E4A1A29F80807FAFAF + ACA8A8A6BABAB7959593AFB0ADADADABC0C1BEA8A9A6D8D9D5A8A8A5959694AB + ABA9C8C8C6D9D9D6959593C8C9C6A1A19FC9C9C7D5D6D2DADBD7B2B2AF959593 + 5857588A8A88D8D9D5F6F7F30000FBFCF8F7F8F4A1A29F80807FAFAFAC919190 + 908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3 + A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A + 8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C + 3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A1 + 5F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9 + E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B5454 + 53A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90 + 908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF8 + 0000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A0 + 7D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E + 6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFC + F8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C86 + 86858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6B + D2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4 + A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C + 8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2 + C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80 + 807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B484747 + 4B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5 + B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAF + AC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C + 8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B2989897 + 5857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190 + 908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3 + A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A + 8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C + 3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A1 + 5F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9 + E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B5454 + 53A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90 + 908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF8 + 0000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A0 + 7D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E + 6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFC + F8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C86 + 86858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6B + D2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4 + A2A2A081817FAFAFAD92929190908E3D3C3C555554A2A2A07E7E7D8787858D8D + 8C4948484C4C4C8D8D8CA3A4A2A4A4A260605F9191907170706D6D6CD2D3D0C2 + C3C0B4B5B39999975958598B8B89E8E9E5FBFCF80000FBFCF8FAFBF7D8D8D5CB + CBC8DDDDDAD1D2CFD0D1CEAFB0ADB9BAB7D8D9D5C9CAC7CDCDCACFD0CDB4B5B2 + B5B5B3CFD0CDD8D9D6D8D9D5BDBEBBD2D3D0C7C7C5C4C4C1EBECE8E4E5E2DFE0 + DCD4D4D1BABBB8CFCFCCF3F4F0FBFCF80000} + ButtonKind = bkCustom + AltBtnWidth = 16 + ButtonWidth = 16 + end + object selPrikaz: TRzButtonEdit + Left = 115 + Top = 69 + Width = 132 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 20 + ParentFont = False + TabOrder = 1 + OnExit = selPrikazExit + OnKeyUp = selPrikazKeyUp + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selPrikazButtonClick + end + object selDilec: TRzButtonEdit + Left = 122 + Top = 6 + Width = 183 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 22 + ParentFont = False + TabOrder = 0 + OnEnter = selDilecEnter + OnExit = selDilecExit + OnKeyDown = selDilecKeyDown + OnKeyUp = selDilecKeyUp + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selDilecButtonClick + end + object cbSklad: TComboBox + Left = 58 + Top = 143 + Width = 198 + Height = 25 + Style = csDropDownList + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ItemIndex = 0 + ParentFont = False + TabOrder = 3 + Text = '200 - V'#253'roba' + Items.Strings = ( + '200 - V'#253'roba' + '210 - Sklad v'#253'robk'#367 + '200.00105 - Nadv'#253'roba' + '100.00300 - Va'#269'ky') + end + object dtDatum: TRzDateTimePicker + Left = 70 + Top = 182 + Width = 121 + Height = 26 + Date = 41401.452400474540000000 + Format = 'dd.MM.yyyy' + Time = 41401.452400474540000000 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + MinDate = 41275.000000000000000000 + ParentFont = False + TabOrder = 9 + ShowToday = True + FirstDayOfWeek = dowMonday + end + object grpTampo: TGroupBox + Left = 238 + Top = 262 + Width = 294 + Height = 31 + TabOrder = 6 + object Label6: TLabel + Left = 4 + Top = 11 + Width = 76 + Height = 13 + Caption = 'Evidovan'#253' '#269'as :' + OnMouseDown = Label6MouseDown + end + object Label7: TLabel + Left = 136 + Top = 11 + Width = 26 + Height = 14 + AutoSize = False + Caption = 'hod' + end + object Label8: TLabel + Left = 223 + Top = 11 + Width = 25 + Height = 14 + AutoSize = False + Caption = 'min' + end + object edtCasHod: TRzNumericEdit + Left = 96 + Top = 4 + Width = 32 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 2 + ParentFont = False + TabOrder = 0 + OnKeyUp = edtCasHodKeyUp + DisplayFormat = ',0;(,0)' + end + object edtCasMin: TRzNumericEdit + Left = 179 + Top = 4 + Width = 39 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnKeyUp = edtCasMinKeyUp + DisplayFormat = ',0;(,0)' + end + end + object grpNadvyroba: TGroupBox + Left = 238 + Top = 263 + Width = 307 + Height = 30 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 14 + object Label14: TLabel + Left = 10 + Top = 6 + Width = 113 + Height = 17 + Caption = 'V'#253'dejka materi'#225'lu:' + end + object selVydejMat: TRzButtonEdit + Left = 140 + Top = 4 + Width = 161 + Height = 25 + Text = '' + Alignment = taCenter + TabOrder = 0 + OnExit = selVydejMatExit + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selVydejMatButtonClick + end + end + object selFronta: TRzButtonEdit + Left = 103 + Top = 106 + Width = 132 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 20 + ParentFont = False + TabOrder = 15 + Visible = False + OnExit = selFrontaExit + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selFrontaButtonClick + end + object pOperace: TPopupMenu + Left = 510 + Top = 347 + object pOdznacVse: TMenuItem + Caption = 'O&dzna'#269'it v'#353'e' + OnClick = pOdznacVseClick + end + object pVyberVse: TMenuItem + Caption = '&Vybrat v'#353'e' + OnClick = pVyberVseClick + end + end +end diff --git a/frmOdvedPrikaz - kopie.dfm b/frmOdvedPrikaz - kopie.dfm new file mode 100644 index 0000000..d051af1 --- /dev/null +++ b/frmOdvedPrikaz - kopie.dfm @@ -0,0 +1,828 @@ +object formOdvedeniPrikazu: TformOdvedeniPrikazu + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + ClientHeight = 577 + ClientWidth = 724 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnKeyUp = FormKeyUp + OnResize = FormResize + OnShow = FormShow + DesignSize = ( + 724 + 577) + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 272 + Width = 121 + Height = 17 + Caption = 'Odv'#225'd'#283'n'#253'ch kus'#367' :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 10 + Top = 231 + Width = 51 + Height = 17 + Caption = 'Sm'#283'na :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 11 + Top = 185 + Width = 51 + Height = 17 + Caption = 'Datum :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 205 + Top = 185 + Width = 91 + Height = 17 + Caption = 'Zam'#283'stnanec :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblZamest: TLabel + Left = 400 + Top = 183 + Width = 275 + Height = 20 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object lblDilec: TLabel + Left = 8 + Top = 38 + Width = 404 + Height = 20 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 13 + Top = 74 + Width = 95 + Height = 17 + Caption = 'V'#253'robn'#237' p'#345#237'kaz :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 8 + Top = 11 + Width = 101 + Height = 17 + Caption = 'D'#237'lec / v'#253'robek :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 11 + Top = 146 + Width = 37 + Height = 17 + Caption = 'Sklad:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 10 + Top = 111 + Width = 87 + Height = 17 + Caption = 'Fronta pr'#225'ce :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Visible = False + end + object gOperace: TNextGrid6 + Left = 15 + Top = 318 + Width = 701 + Height = 208 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentColor = False + ParentFont = False + PopupMenu = pOperace + TabOrder = 12 + TabStop = True + Touch.InteractiveGestures = [igPan, igPressAndTap] + Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough] + ActiveView = gView + ActiveViewIndex = 0 + ScrollBars = [sbHorizontal, sbVertical] + SelectFullRow = True + object gView: TNxReportGridView6 + ColumnMoving = False + GridLines = True + HeaderHeight = 24 + InsertRowHeight = 24 + end + object colOper: TNxNumberColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Alignment = taCenter + Header.Caption = #268'.op.' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 0 + PlaceholderText = '1742.50' + Position = 0 + FormatMask = '0' + Precision = 0 + Incrememnt = 1.000000000000000000 + InsertString = '0' + end + object colEvid: TNxCheckBoxColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Alignment = taCenter + Header.Caption = 'Evid ?' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 1 + PlaceholderText = 'True' + Position = 1 + InsertString = 'False' + end + object colPopis: TNxTextColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'Popis' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 2 + PlaceholderText = 'Text Text' + Position = 2 + end + object colIdPostup: TNxNumberColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'idPostup' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 3 + PlaceholderText = '1742.50' + Position = 3 + Visible = False + Width = 8 + FormatMask = '#,##0.00' + Precision = 0 + Incrememnt = 1.000000000000000000 + InsertString = '0' + end + object colNormCasS: TNxNumberColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'NormCasS' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 4 + PlaceholderText = '1742.50' + Position = 4 + Visible = False + Width = 8 + FormatMask = '#,##0.00' + Precision = 0 + Incrememnt = 1.000000000000000000 + InsertString = '0' + end + end + object edtKusu: TRzNumericEdit + Left = 140 + Top = 268 + Width = 68 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 6 + ParentFont = False + ParentShowHint = False + ShowHint = False + TabOrder = 5 + OnEnter = edtKusuEnter + OnExit = edtKusuExit + OnKeyUp = edtKusuKeyUp + Max = 999999.000000000000000000 + DisplayFormat = ',0;(,0)' + end + object GroupBox2: TGroupBox + Left = 488 + Top = 8 + Width = 225 + Height = 109 + Anchors = [akTop, akRight] + Caption = ' Kusy ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 13 + object Label2: TLabel + Left = 8 + Top = 22 + Width = 86 + Height = 17 + Caption = 'Kusy zadan'#233' :' + end + object lblZadane: TLabel + Left = 171 + Top = 21 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 8 + Top = 53 + Width = 95 + Height = 17 + Caption = 'Kusy zb'#253'vaj'#237'c'#237' :' + end + object lblZive: TLabel + Left = 171 + Top = 52 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object Label9: TLabel + Left = 8 + Top = 83 + Width = 74 + Height = 17 + Caption = 'Evidov'#225'no :' + end + object lblEvid: TLabel + Left = 171 + Top = 81 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + end + object btnSave: TBitBtn + Left = 205 + Top = 537 + Width = 92 + Height = 32 + Align = alCustom + Anchors = [akBottom] + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Glyph.Data = { + DE010000424DDE01000000000000760000002800000024000000120000000100 + 0400000000006801000000000000000000001000000000000000000000000000 + 80000080000000808000800000008000800080800000C0C0C000808080000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 + 3333333333333333333333330000333333333333333333333333F33333333333 + 00003333344333333333333333388F3333333333000033334224333333333333 + 338338F3333333330000333422224333333333333833338F3333333300003342 + 222224333333333383333338F3333333000034222A22224333333338F338F333 + 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 + 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 + 0000333333333A222433333333333338F338F33300003333333333A222433333 + 333333338F338F33000033333333333A222433333333333338F338F300003333 + 33333333A222433333333333338F338F00003333333333333A22433333333333 + 3338F38F000033333333333333A223333333333333338F830000333333333333 + 333A333333333333333338330000333333333333333333333333333333333333 + 0000} + ModalResult = 1 + NumGlyphs = 2 + ParentFont = False + TabOrder = 7 + OnClick = btnSaveClick + end + object btnCancel: TBitBtn + Left = 405 + Top = 537 + Width = 89 + Height = 32 + Anchors = [akBottom] + Caption = ' Storno' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Kind = bkCancel + NumGlyphs = 2 + ParentFont = False + TabOrder = 8 + end + object cbCasMzda: TCheckBox + Left = 238 + Top = 228 + Width = 184 + Height = 17 + Caption = 'Mzda dle skute'#269'n'#233'ho '#269'asu' + Checked = True + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + State = cbChecked + TabOrder = 11 + end + object selSmena: TRzButtonEdit + Left = 68 + Top = 228 + Width = 75 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 2 + ParentFont = False + TabOrder = 10 + AltBtnWidth = 16 + ButtonWidth = 16 + end + object selZamest: TRzButtonEdit + Left = 303 + Top = 181 + Width = 84 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnEnter = selZamestEnter + OnExit = selZamestExit + OnKeyUp = selZamestKeyUp + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selZamestButtonClick + end + object selBarCode: TRzButtonEdit + Left = 256 + Top = 69 + Width = 131 + Height = 25 + Text = '' + CharCase = ecUpperCase + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 15 + ParentFont = False + TabOrder = 2 + Visible = False + OnExit = selBarCodeExit + OnKeyUp = selBarCodeKeyUp + ButtonGlyph.Data = { + AE060000424DAE0600000000000036000000280000001E000000120000000100 + 18000000000078060000C40E0000C40E00000000000000000000FBFCF8F0F1EE + FBFCF8FBFCF8FBFCF8CDCECAE3E4E0CACAC7DDDEDAC4C4C1E7E8E4DEDFDBECED + E9CFCFCBECEDE9F7F8F4CBCBC8E5E6E2DCDCD8F5F6F2DCDDD9E6E7E4CCCCC9E7 + E8E5EAEAE7FBFCF8FBFCF8FBFCF8EFEFECF6F7F30000FAFBF7CDCECACBCCC9BA + BAB7D2D3CFB5B6B3BFBFBC949391BFBEBC9C9C9ACECFCBB1B0AEDCDDD99C9C9A + BFBFBCD1D1CF929290D2D3CF7F7E7CDDDEDAB1B2AFCECECB9B9B98E3E3E0B2B2 + AFC5C5C2A4A4A2BFBFBCC8C9C6E8E9E50000FBFCF8E8E8E4A1A29F80807FAFAF + ACA8A8A6BABAB7959593AFB0ADADADABC0C1BEA8A9A6D8D9D5A8A8A5959694AB + ABA9C8C8C6D9D9D6959593C8C9C6A1A19FC9C9C7D5D6D2DADBD7B2B2AF959593 + 5857588A8A88D8D9D5F6F7F30000FBFCF8F7F8F4A1A29F80807FAFAFAC919190 + 908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3 + A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A + 8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C + 3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A1 + 5F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9 + E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B5454 + 53A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90 + 908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF8 + 0000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A0 + 7D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E + 6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFC + F8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C86 + 86858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6B + D2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4 + A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C + 8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2 + C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80 + 807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B484747 + 4B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5 + B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAF + AC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C + 8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B2989897 + 5857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190 + 908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3 + A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A + 8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C + 3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A1 + 5F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9 + E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B5454 + 53A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90 + 908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF8 + 0000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A0 + 7D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E + 6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFC + F8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C86 + 86858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6B + D2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4 + A2A2A081817FAFAFAD92929190908E3D3C3C555554A2A2A07E7E7D8787858D8D + 8C4948484C4C4C8D8D8CA3A4A2A4A4A260605F9191907170706D6D6CD2D3D0C2 + C3C0B4B5B39999975958598B8B89E8E9E5FBFCF80000FBFCF8FAFBF7D8D8D5CB + CBC8DDDDDAD1D2CFD0D1CEAFB0ADB9BAB7D8D9D5C9CAC7CDCDCACFD0CDB4B5B2 + B5B5B3CFD0CDD8D9D6D8D9D5BDBEBBD2D3D0C7C7C5C4C4C1EBECE8E4E5E2DFE0 + DCD4D4D1BABBB8CFCFCCF3F4F0FBFCF80000} + ButtonKind = bkCustom + AltBtnWidth = 16 + ButtonWidth = 16 + end + object selPrikaz: TRzButtonEdit + Left = 115 + Top = 69 + Width = 132 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 20 + ParentFont = False + TabOrder = 1 + OnExit = selPrikazExit + OnKeyUp = selPrikazKeyUp + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selPrikazButtonClick + end + object selDilec: TRzButtonEdit + Left = 122 + Top = 6 + Width = 183 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 22 + ParentFont = False + TabOrder = 0 + OnEnter = selDilecEnter + OnExit = selDilecExit + OnKeyDown = selDilecKeyDown + OnKeyUp = selDilecKeyUp + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selDilecButtonClick + end + object cbSklad: TComboBox + Left = 58 + Top = 143 + Width = 198 + Height = 25 + Style = csDropDownList + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ItemIndex = 0 + ParentFont = False + TabOrder = 3 + Text = '200 - V'#253'roba' + Items.Strings = ( + '200 - V'#253'roba' + '210 - Sklad v'#253'robk'#367 + '200.00105 - Nadv'#253'roba' + '100.00300 - Va'#269'ky') + end + object dtDatum: TRzDateTimePicker + Left = 70 + Top = 182 + Width = 121 + Height = 26 + Date = 41401.452400474540000000 + Format = 'dd.MM.yyyy' + Time = 41401.452400474540000000 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + MinDate = 41275.000000000000000000 + ParentFont = False + TabOrder = 9 + ShowToday = True + FirstDayOfWeek = dowMonday + end + object grpTampo: TGroupBox + Left = 238 + Top = 262 + Width = 294 + Height = 31 + TabOrder = 6 + object Label6: TLabel + Left = 4 + Top = 11 + Width = 76 + Height = 13 + Caption = 'Evidovan'#253' '#269'as :' + OnMouseDown = Label6MouseDown + end + object Label7: TLabel + Left = 136 + Top = 11 + Width = 26 + Height = 14 + AutoSize = False + Caption = 'hod' + end + object Label8: TLabel + Left = 223 + Top = 11 + Width = 25 + Height = 14 + AutoSize = False + Caption = 'min' + end + object edtCasHod: TRzNumericEdit + Left = 96 + Top = 4 + Width = 32 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 2 + ParentFont = False + TabOrder = 0 + OnKeyUp = edtCasHodKeyUp + DisplayFormat = ',0;(,0)' + end + object edtCasMin: TRzNumericEdit + Left = 179 + Top = 4 + Width = 39 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnKeyUp = edtCasMinKeyUp + DisplayFormat = ',0;(,0)' + end + end + object grpNadvyroba: TGroupBox + Left = 238 + Top = 263 + Width = 307 + Height = 30 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 14 + object Label14: TLabel + Left = 10 + Top = 6 + Width = 113 + Height = 17 + Caption = 'V'#253'dejka materi'#225'lu:' + end + object selVydejMat: TRzButtonEdit + Left = 140 + Top = 4 + Width = 161 + Height = 25 + Text = '' + Alignment = taCenter + TabOrder = 0 + OnExit = selVydejMatExit + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selVydejMatButtonClick + end + end + object selFronta: TRzButtonEdit + Left = 103 + Top = 106 + Width = 132 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 20 + ParentFont = False + TabOrder = 15 + Visible = False + OnExit = selFrontaExit + AltBtnWidth = 16 + ButtonWidth = 16 + OnButtonClick = selFrontaButtonClick + end + object pOperace: TPopupMenu + Left = 510 + Top = 347 + object pOdznacVse: TMenuItem + Caption = 'O&dzna'#269'it v'#353'e' + OnClick = pOdznacVseClick + end + object pVyberVse: TMenuItem + Caption = '&Vybrat v'#353'e' + OnClick = pVyberVseClick + end + end +end diff --git a/frmOdvedPrikaz - kopie.pas b/frmOdvedPrikaz - kopie.pas new file mode 100644 index 0000000..3a84e04 --- /dev/null +++ b/frmOdvedPrikaz - kopie.pas @@ -0,0 +1,1789 @@ +unit frmOdvedPrikaz; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, RzEdit, RzBtnEdt, ddPlugin_TLB, Vcl.ComCtrls, + NxGrid6, NxCustomGrid6, NxColumns6, Vcl.Buttons, Vcl.Menus, RzDTP, NxGridView6, NxControls6, NxVirtualGrid6, + Vcl.WinXCtrls; + +const + clYellowLight = $0078F8E8; + + DesignTimePixelsPerInch = 120; + KLF_ACTIVATE = $00000001; + KLF_SETFORPROCESS = $00000100; + + radaVPNadvyroba = '400'; + radaVPRekl = '090'; + radaVPVyroba = '100'; + sklVyr = '200'; + sklFin = '210'; + sklObch = '100'; + sklDP = '20000105'; // nadvyroba + bidHrOdvod = 100053; + bidFrontaPrace = 11109; + radaOdved = '220'; + radaOdvedO = '150'; + radaOdvedNad = '240'; + rDoklVydMat = '400'; + rDoklVydMatO = '350'; + tblEvidOp = '[dbo].[_TabEvidOperaci_Barcode]'; + tblEvidOpPol = '[dbo].[_TabEvidOpPolozky]'; + tblEvidOpVPr = '[dbo].[_TabEvidOpPrikazy]'; + tblEvidNadvyr = '[dbo].[_TabEvidNadvyroby]'; + tblEvidNadPrij = '[dbo].[_TabEvidNadvyrPrijmy]'; + tblEvidNadvyrVPr = '[dbo].[_TabEvidNadvyrPrikaz]'; + errPlg = #13#10 + '(plgLOVATO.u10)'; + + sklVyroba = '200'; // přidáno 8.11.2018 + +type + TidVPs = record + id: integer; + radaPrikaz: string[20]; + idKZ: integer; + ks: Extended; + end; + + TOperace = record + idVP: integer; + doklad: integer; + operace: integer; + casS: extended; + ks: extended; + koef: extended; + end; + + TcasKoef = record + operace: ShortString; + koef: extended; + end; + + TformOdvedeniPrikazu = class(TForm) + selPrikaz: TRzButtonEdit; + lblDilec: TLabel; + Label2: TLabel; + Label3: TLabel; + lblZadane: TLabel; + lblZive: TLabel; + selBarCode: TRzButtonEdit; + edtKusu: TRzNumericEdit; + Label1: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + edtCasMin: TRzNumericEdit; + selZamest: TRzButtonEdit; + lblZamest: TLabel; + cbCasMzda: TCheckBox; + edtCasHod: TRzNumericEdit; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + lblEvid: TLabel; + GroupBox2: TGroupBox; + selDilec: TRzButtonEdit; + Label10: TLabel; + selSmena: TRzButtonEdit; + gOperace: TNextGrid6; + colOper: TNxNumberColumn6; + colPopis: TNxTextColumn6; + colEvid: TNxCheckBoxColumn6; + btnSave: TBitBtn; + btnCancel: TBitBtn; + pOperace: TPopupMenu; + pOdznacVse: TMenuItem; + pVyberVse: TMenuItem; + Label11: TLabel; + Label12: TLabel; + colIdPostup: TNxNumberColumn6; + colNormCasS: TNxNumberColumn6; + Label13: TLabel; + cbSklad: TComboBox; + dtDatum: TRzDateTimePicker; + grpTampo: TGroupBox; + grpNadvyroba: TGroupBox; + Label14: TLabel; + selVydejMat: TRzButtonEdit; + Label15: TLabel; + selFronta: TRzButtonEdit; + gView: TNxReportGridView6; + procedure selPrikazButtonClick(Sender: TObject); + procedure selBarCodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure FormShow(Sender: TObject); + procedure btnSaveClick(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure selZamestButtonClick(Sender: TObject); + procedure selZamestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure edtCasMinKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selZamestExit(Sender: TObject); + procedure Label6MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure edtCasHodKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecButtonClick(Sender: TObject); + procedure selDilecKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecExit(Sender: TObject); + procedure edtKusuExit(Sender: TObject); + procedure edtKusuKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure pOdznacVseClick(Sender: TObject); + procedure pVyberVseClick(Sender: TObject); + procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selVydejMatButtonClick(Sender: TObject); + procedure selVydejMatExit(Sender: TObject); + procedure selPrikazExit(Sender: TObject); + procedure selBarCodeExit(Sender: TObject); + procedure selFrontaExit(Sender: TObject); + procedure selFrontaButtonClick(Sender: TObject); + procedure selPrikazKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure FormResize(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure selZamestEnter(Sender: TObject); + procedure edtKusuEnter(Sender: TObject); + procedure selDilecEnter(Sender: TObject); + procedure ZadejVyrPrikazNaVydejku(const Helios: IHelios; idVPr: Integer; MnozstviNaVydejku: double); // přidáno 8.11.2018 + procedure UlozChybu(const Helios: IHelios; msg: string; E:Exception); // přidáno 8.11.2018 + private +// procedure WMNCLBUTTONDOWN(var msg: TMessage); message WM_NCLBUTTONDOWN; + function TestFormulareOK: Boolean; + function VlastniSkladySQL(const datum: string): string; + procedure VyplnPrikaz; + procedure VyplnDleDilce; + procedure VyplnFrontuPrace; + procedure NastavGrid; + public + Helios: IHelios; + typOdvodu: byte; + jeTest: boolean; + end; + +var + verText: string; + formOdvedeniPrikazu: TformOdvedeniPrikazu; + idPrikaz, idKZ, idDZ, idPZ, idVydej, idNadvyr, idPrPostup: integer; + sklProOdvod, dokl, kmen, cZam, idZam, operaceFP: string; + vOle1,vOle2: OleVariant; + casTPVs,casTPVm: Extended; + canCont, nadvyroba: boolean; + layName: array[0..KL_NAMELENGTH+1] of Char; + + +implementation +uses Vcl.Clipbrd, System.StrUtils, System.Threading, helUtils, myUtils; + +{$R *.dfm} + +{ + procedure TformOdvedeniPrikazu.WMNCLBUTTONDOWN(var msg: TMessage); + var txt: string; + begin + if (msg.WParam=HTCAPTION) and (HiWord(GetKeyState(VK_SHIFT))<>0) then + begin + txt:= 'Scr ' + IntToStr(Screen.Width) + ' w / ' + IntToStr(Screen.Height) + ' h' + CRLF; + txt:= txt + 'Frm ' + IntToStr(Self.Width) + ' w / ' + IntToStr(Self.Height) + ' h' + CRLF; + txt:= txt + IntToStr(Screen.PixelsPerInch) + ' PPI mon / ' + IntToStr(Self.PixelsPerInch) + ' PPI frm' + CRLF; + Helios.Info(txt); + end; + end; +} + + + function TformOdvedeniPrikazu.VlastniSkladySQL(const datum: string): string; + var sql: string; + begin + result:= 'N' + QuotedStr(''); + sql:= 'DECLARE @dt DATETIME; DECLARE @i INT;'; + if (datum<>'') then + sql:= sql + ' SET @dt=CONVERT(datetime,N' + QuotedStr(datum) + ',104); EXEC @i=dbo.hp_GetObdobiDleDatumu @Datum=@dt, @JakyDatum=1' + else + sql:= sql + ' SET @i=' + IntToStr(Helios.Obdobi); + sql:= sql + '; SELECT s.Cislo FROM ' + tblStrom + ' s INNER JOIN dbo.TabStromDef d ON (d.IdStrom=s.Id) WHERE d.Blokovano=0 AND d.Zakazano=0'; + sql:= sql + ' AND s.Cislo LIKE N' + QuotedStr('2%') + ' AND s.Nazev LIKE N' + QuotedStr('%LOV') + ' AND d.IdObdobi=@i ORDER BY s.Cislo'; + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + First; + result:= ''; + while not(EOF) do + begin + result:= result + 'N' + QuotedStr(FieldValues(0)) + ','; + Next; + end; + if (RightStr(result,1)=',') then + result:= LeftStr(Result, Length(Result)-1); + end; + end; + + + procedure TformOdvedeniPrikazu.NastavGrid; + begin +// gOperace.HeaderSize:= Screen.PixelsPerInch + if (gOperace.RowCount<1) then + gOperace.ClearRows; + gOperace.Width:= Self.Width - 30; + gOperace.Height:= btnSave.Top - gOperace.Top - 10; + gOperace.Left:= 10; + gOperace.RowHeight:= 24; +// gOperace.RowSize:= 24; + + gOperace.Columns.Item[0].Width:= Round(gOperace.Width*0.12); + gOperace.Columns.Item[1].Width:= Round(gOperace.Width*0.12); + gOperace.Columns.Item[2].Width:= gOperace.Width - gOperace.Columns.Item[0].Width - gOperace.Columns.Item[1].Width - 20; + + btnSave.Top:= Self.Height - 2*btnSave.Height - Round(Self.Height*0.03); + btnCancel.Top:= btnSave.Top; + end; + + + + procedure TformOdvedeniPrikazu.pOdznacVseClick(Sender: TObject); + var i: Integer; + begin + for i:=0 to gOperace.RowCount-1 do + gOperace.Cell[1,i].AsBoolean:= false; + end; + + + + function TformOdvedeniPrikazu.TestFormulareOK; + var lSQL: string; + begin + result:= false; + if (Pos('%',selDilec.Text)>0) and (typOdvodu=2) then + Exit; + result:= true; + if (edtKusu.Value<=0) or (edtKusu.Value>StrToFloat(lblZive.Caption)) then + begin + Helios.Error(#1'Chybné množství odváděných kusů.'#1); + edtKusu.SetFocus; + result:= false; + end; + if (idVydej>0) and (result) then + begin + lSQL:= 'SELECT id FROM ' + tblEvidNadvyr + ' WHERE IdVydejkaMat=' + IntToStr(idVydej) + ' AND Mnozstvi0) then + begin + Helios.Error(#1'Zadané množství by přesáhlo množství zbývající (objednáno-zaevidováno).'#1); + edtKusu.Value:= 0; + edtKusu.SetFocus; + result:= false; + end; + end; +{ + if (edtCasHod.Value<0) then + begin + Helios.Error(#1'Chybný evidovaný čas (v hodinách).'#1); + result:= false; + end; + if (edtCasMin.Value<0) then + begin + Helios.Error(#1'Chybný evidovaný čas (v minutách).'#1); + result:= false; + end; + if (edtCasHod.Value<=0) and (edtCasMin.Value<=0) and (not nadvyroba) then + begin + Helios.Error(#1'Chybný evidovaný čas.'#1); + result:= false; + end; +} + if ((idZam='') or (idZam='0')) and (result) then + begin + Helios.Error(#1'Nebyl vybrán zaměstnanec.'#1); + result:= false; + end; +{ + if (nadvyroba) then + begin + Helios.Error(#1'Nebyla vybrána materiálový výdejka ("Objednávka nadvýroby").'#1); + result:= false; + end; +} + + end; + + + + procedure TformOdvedeniPrikazu.VyplnFrontuPrace; + var lSQL: string; + r: integer; + begin + if (idPrPostup>0) then + begin + gOperace.RowCount:= gOperace.RowCount + 1; + r:= gOperace.RowCount-1; + with Helios.OpenSQL('SELECT Operace,Nazev FROM ' + tblPrPost + ' WHERE id=' + IntToStr(idPrPostup)) do + if (gOperace.Cells[3,r]<>IntToStr(idPrPostup)) then + begin + gOperace.Cell[0,r].AsString:= VarToStr(FieldValues(0)); + gOperace.Cell[1,r].AsBoolean:= true; + gOperace.Cell[2,r].AsString:= VarToStr(FieldValues(1)); + gOperace.Cell[3,r].AsInteger:= idPrPostup; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.VyplnPrikaz; + var lSQL, podm: string; + begin + selPrikaz.Text:= Trim(selPrikaz.Text); + selPrikaz.Text:= StringReplace(selPrikaz.Text,' ','',[rfReplaceAll]); + if (selPrikaz.Text<>'') then + begin + podm:= 'p.Rada=N' + QuotedStr(LeftStr(selPrikaz.Text, Pos('-', selPrikaz.Text)-1)); + podm:= podm + ' AND p.Prikaz=' + MidStr(selPrikaz.Text,Pos('-', selPrikaz.Text)+1,255); + lSQL:= 'SELECT kz.SkupZbo,kz.RegCis,kz.Nazev1,p.kusy_zad,p.kusy_zive,p.kusy_odved,kz.id,pp.Doklad FROM ' + tblPrikaz + ' p INNER JOIN '; + lSQL:= lSQL + tblKZ + ' kz ON (p.IdTabKmen=kz.id) INNER JOIN ' + tblPrPost + ' pp ON (p.id=pp.IDPrikaz AND pp.Odvadeci=1)'; + lSQL:= lSQL + ' WHERE ' + podm; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + lblDilec.Caption:= VarToStr(FieldValues(0)) + ' ' + VarToStr(FieldValues(1)) + ' ' + VarToStr(FieldValues(2)); + lblZadane.Caption:= VarToStr(FieldValues(3)); + lblZive.Caption:= VarToStr(FieldValues(4)); + if (lblZive.Caption='0') then + lblZive.Font.Color:= clRed + else + lblZive.Font.Color:= clWindowText; + lblEvid.Caption:= VarToStr(FieldValues(5)); + idKZ:= StrToInt(VarToStr(FieldValues(6))); + dokl:= VarToStr(FieldValues(7)); + with Helios.OpenSQL('SELECT VychoziSklad FROM ' + tblParKZ + ' WHERE IdKmenZbozi=' + IntToStr(idKZ)) do + if (RecordCount>0) then + sklProOdvod:= VarToStr(FieldValues(0)); + end; + if (idPrikaz>0) then + begin + if (selBarCode.Text='') then + begin + with Helios.OpenSQL('SELECT TOP(1) BarCode FROM ' + tblPrPost + ' WHERE idPrikaz=' + IntToStr(idPrikaz) + ' AND Odvadeci=1') do + if RecordCount>0 then + selBarCode.Text:= VarToStr(FieldValues(0)); + selZamest.SetFocus; + end; + with Helios.OpenSQL('SELECT ISNULL(SUM(TAC_S),0),ISNULL(SUM(TAC_N),0) FROM ' + tblPrPost + ' WHERE IdPrikaz=' + IntToStr(idPrikaz)) do + if (RecordCount>0) then + begin + casTPVs:= RoundToEX(StrToFloat(VarToStr(FieldValues(0))),-1); + casTPVm:= RoundToEX(StrToFloat(VarToStr(FieldValues(1))),-1); + with Helios.OpenSQL('SELECT id,Operace,nazev,TAC_Obsluhy_S FROM ' + tblPrPost + ' WHERE IdPrikaz=' + IntToStr(idPrikaz)) do + begin + First; + gOperace.ClearRows; + while not(EOF) do + begin + gOperace.AddRow; + gOperace.Cell[0,gOperace.RowCount-1].AsString:= VarToStr(FieldValues(1)); + gOperace.Cell[1,gOperace.RowCount-1].AsBoolean:= true; + gOperace.Cell[2,gOperace.RowCount-1].AsString:= VarToStr(FieldValues(2)); + gOperace.Cell[3,gOperace.RowCount-1].AsInteger:= StrToInt(VarToStr(FieldValues(0))); + gOperace.Cell[4,gOperace.RowCount-1].AsFloat:= StrToFloat(VarToStr(FieldValues(3))); + Next; + end; + end; + + end; + + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.btnSaveClick(Sender: TObject); + var lSQL, podm, SQLko: string; + idx, idx2, idx3, idDZshift, idPMZ, idDZV, idDZP,idKJ,idxTPV,idOdv: integer; + GidSS,Gdokl,lDokl,sTemp: string; + GidKZ,idPrKVaz: integer; + mnoz, mnReal, kszbyt, kszive, VPcas, Pcas, NormCasAll, SkCas, koef: Extended; + genVO, realVyd, realPrij, cont: boolean; + ks, ks2, dt, smena, regC, radaVPr, sklOdv, sklMat, rOdv, rPri, rPrik: string; + idVPs: TArray; + operace: TArray; + casKoef: TArray; + tblOdv, tblOdvPr, tblOdvOp: string; + idVPr: integer; // přidáno 8.11.2018 + MnozzstviOdvadene: double; // přidáno 8.11.2018 + begin + ReseedTable(Helios, tblMzdZm); + ReseedTable(Helios, tblDZ); + ReseedTable(Helios, tblPZ); + ReseedTable(Helios, tblEvidOp); + ReseedTable(Helios, tblEvidOpPol); + ReseedTable(Helios, tblEvidOpVPr); + ReseedTable(Helios, tblEvidNadPrij); + genVO:= false; + + tblOdv:= 'dbo._TabNTSEvidOpBC'; + tblOdvPr:= 'dbo._TabNTSOdvodPrikazu'; + tblOdvOp:= 'dbo._TabNTSOdvodOperaci'; + + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(tblOdv) + ') IS NOT NULL DROP TABLE ' + tblOdv); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(tblOdvPr) + ') IS NOT NULL DROP TABLE ' + tblOdvPr); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(tblOdvOp) + ') IS NOT NULL DROP TABLE ' + tblOdvOp); + + if not(jeTest) then // pokud je test, udelej tabulky typu dbo._TabNTS..... + begin + tblOdv:= StringReplace(tblOdv,'dbo._','#',[rfReplaceAll]); + tblOdvPr:= StringReplace(tblOdvPr,'dbo._','#',[rfReplaceAll]); + tblOdvOp:= StringReplace(tblOdvOp,'dbo._','#',[rfReplaceAll]); + end; + + if (TestFormulareOK) then + begin +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - klik OK uloz')); + + edtKusu.Color:= clWindow; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ',N' + QuotedStr('U') + ') IS NULL' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(250) NOT NULL)'; + try + Helios.ExecSQL(lSQL); + except + end; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr(IfThen(jeTest,tblOdv, 'tempdb..' + tblOdv)) + ') IS NOT NULL DROP TABLE ' + tblOdv + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblOdv + ' (IdPrikaz INT, IdKmenZbozi INT, CisloZbozi NVARCHAR(33),'; + lSQL:= lSQL + 'Datum DATETIME, Mnozstvi NUMERIC(19,6), CisloZamest INT, CasHod NUMERIC(9,4), CasMin NUMERIC(9,4),'; + lSQL:= lSQL + 'IdNadvyroba INT NULL, Poznamka NTEXT, Sklad NVARCHAR(30) NOT NULL, IDUziv INT NOT NULL, IdVydejMat INT)'; + Helios.ExecSQL(lSQL); + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr(IfThen(jeTest,tblOdvPr,'tempdb..' + tblOdvPr)) + ') IS NOT NULL DROP TABLE ' + tblOdvPr + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblOdvPr + ' (idPrikaz INT, RadaPrikaz NVARCHAR(20), idKmenZbozi INT, Datum DATETIME DEFAULT GETDATE(),'; + lSQL:= lSQL + 'Mnozstvi NUMERIC(19,6) DEFAULT 0, CisloZamest INT, CasHod TINYINT, CasMin TINYINT, SkladOdv NVARCHAR(30), SkladMat NVARCHAR(30))'; + Helios.ExecSQL(lSQL); + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr(IfThen(jeTest,tblOdvOp,'tempdb..' + tblOdvOp)) + ') IS NOT NULL DROP TABLE ' + tblOdvOp + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblOdvOp + ' (Operace NVARCHAR(4), idPostup INT NOT NULL, IDPrikaz INT NULL, Mnozstvi NUMERIC(19,6), NormCasS NUMERIC(10,2))'; + Helios.ExecSQL(lSQL); + + if (LeftStr(selPrikaz.Text,3)='010') then + //cbSklad.ItemIndex:= GetItemIndexStartingWith(cbSklad,'100'); + cbSklad.ItemIndex:= 3;//GetItemIndexStartingWith(cbSklad,'100'); //upraveno 26.6.2018 + sklProOdvod:= StringReplace(cbSklad.Text,'.','',[rfReplaceAll]); + if (nadvyroba) then + sklProOdvod:= sklFin; + + regC:= ''; + idOdv:= 0; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - info o porizene evidenci')); +// ReseedTable(Helios, tblEvidOp); + lSQL:= 'INSERT ' + tblOdv + ' (IdPrikaz,IdKmenZbozi,CisloZbozi,Datum,Mnozstvi,CisloZamest,CasHod,CasMin,Sklad'; + lSQL:= lSQL + ',IdNadvyroba,Poznamka,IDUziv,IdVydejMat) VALUES ('; + if (selPrikaz.Text<>'') then + lSQL:= lSQL + IntToStr(idPrikaz) + else + lSQL:= lSQL + 'NULL'; + lSQL:= lSQL + ','; + if (selDilec.Text<>'') or (idPrikaz>0) then + begin + lSQL:= lSQL + IntToStr(idKZ); + with Helios.OpenSQL('SELECT CisloZbozi FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ)) do + if (RecordCount>0) and not VarIsNull(FieldValues(0)) then + begin + lSQL:= lSQL + ',N' + QuotedStr(VarToStr(FieldValues(0))); + regC:= VarToStr(FieldValues(0)); + end + else + lSQL:= lSQL + ',NULL' + end + else + lSQL:= lSQL + 'NULL,NULL'; + podm:= DateToStr(dtDatum.Date) + ' ' + TimeToStr(Now); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(podm) + ',104),'; + lSQL:= lSQL + StringReplace(FloatToStr(edtKusu.Value),',','.',[rfReplaceAll]) + ',' + selZamest.Text + ','; + lSQL:= lSQL + StringReplace(IfThen(edtCasHod.Text<>'',edtCasHod.Text,'0'),',','.',[rfReplaceAll]) + ','; + lSQL:= lSQL + StringReplace(IfThen(edtCasMin.Text<>'',edtCasMin.Text,'0'),',','.',[rfReplaceAll]) + ',N'; + lSQL:= lSQL + QuotedStr(sklProOdvod) + ','; + if (nadvyroba) then + lSQL:= lSQL + IntToStr(idNadvyr) + else + lSQL:= lSQL + 'NULL'; + lSQL:= lSQL + ',N' + QuotedStr('') + ',' + IntToStr(Helios.UserId) + ',' + IntToStr(idVydej) + ')'; // QuotedStr(verText) + try + Helios.ExecSQL(lSQL) + except on E:Exception do + begin + Helios.Error(#1'Informace - nelze uložit údaj o pořizované evidenci.'#1 + CRLF + errPlg + CRLF + E.Message + CRLF + lSQL); + Exit; + end; + end; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - zapis operaci')); +// zapis operaci do nove tabulky + podm:= StringReplace(FloatToStr(edtKusu.Value),',','.',[rfReplaceAll]); // evidovane kusy + for idx:=0 to gOperace.RowCount-1 do + try + if (gOperace.Cell[1,idx].AsBoolean=true) then + begin + lSQL:= 'INSERT ' + tblOdvOp + ' (Operace, idPostup, Mnozstvi, NormCasS) VALUES (N'; + lSQL:= lSQL + QuotedStr(gOperace.Cell[0,idx].AsString) + ','; + lSQL:= lSQL + gOperace.Cell[3,idx].AsString + ',' + podm + ','; + lSQL:= lSQL + StringReplace(FloatToStr(gOperace.Cell[4,idx].AsFloat*edtKusu.Value),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + begin +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba insertu operaci: ' + E.Message)); + Helios.Error(#1'CHYBA: '#1 + E.Message + CRLF + lSQL); + Exit; + end; + end; + Helios.ExecSQL('MERGE ' + tblOdvOp + ' AS T USING dbo.TabPrPostup AS S ON (S.ID=T.IdPostup) WHEN MATCHED THEN UPDATE SET T.IdPrikaz=S.IdPrikaz;'); + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - nacitani udaju o prikazech')); +// ziskej data o prikazu/prikazech + SetLength(idVPs,1); + if (idPrikaz>0) then + begin + idVPs[0].id:= idPrikaz; + with Helios.OpenSQL('SELECT RadaPrikaz FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idPrikaz)) do + idVPs[0].radaPrikaz:= VarToStr(FieldValues(0)); + idVPs[0].idKZ:= idKZ; + idVPs[0].ks:= edtKusu.Value; + end + else + begin + lSQL:= 'SELECT id, kusy_zive, IDTabKmen, RadaPrikaz FROM ' + tblPrikaz + ' WHERE kusy_zive>0 AND StavPrikazu IN (30,40) AND '; + if (nadvyroba) then + lSQL:= lSQL + 'Rada IN (N' + QuotedStr('400') + ',N' + QuotedStr(radaVPVyroba) + ') AND KmenoveStredisko=N' + QuotedStr(sklDP) + else + lSQL:= lSQL + 'Rada IN (N' + QuotedStr(radaVPRekl) + ',N' + QuotedStr(radaVPVyroba) + ')'; + lSQL:= lSQL + ' AND IDTabKmen=' + IntTOStr(idKZ) + ' ORDER BY Rada DESC,Plan_ukonceni'; // RadaPrikaz + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + SetLength(idVPs,RecordCount); + idx:= 0; + ksZbyt:= edtKusu.Value; + First; + while (not(EOF)) and (kszbyt>0) do + begin + ksZive:= StrToFloat(VarToStr(FieldValues(1))); + if (ksZive>=kszbyt) then + begin + ksZive:= kszbyt; + ksZbyt:= 0; + end; + if (ksZive>0) then + begin + idVPs[idx].id:= StrToInt(VarToStr(FieldValues(0))); + idVPs[idx].radaPrikaz:= VarToStr(FieldValues(3)); + idVPs[idx].ks:= ksZive; + idVPs[idx].idKZ:= StrToInt(VarToStr(FieldValues(2))); + ksZbyt:= ksZbyt - ksZive; + end; + Inc(idx); + Next; + end; + end; + end; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - prikazy do pomocne tabulky')); + +// zapis prikazy do pracovni tabulky + for idx:=Low(idVPs) to High(idVPs) do + begin + idPrikaz:= idVPs[idx].id; + if (idPrikaz=0) then + Continue; + + with Helios.OpenSQL('SELECT Rada FROM dbo.TabPrikaz WHERE Id=' + IntToStr(idPrikaz)) do + radaVPr:= VarToStr(FieldValues(0)); + + sklOdv:= ''; + ks:= StringReplace(FloatToStr(idVPs[idx].ks),',','.',[rfReplaceAll]); + if (radaVPr='010') then + begin + if (sklOdv='') then + sklOdv:= sklObch; + end + else + begin + if (sklOdv='') then + sklOdv:= sklVyr; + end; + + if (nadvyroba) then + sklOdv:= sklFin; + + +{ + lSQL:= 'SELECT ISNULL(PrijemVyrDil_SkladProGenHlavDZ,N'''') /*, ISNULL(VydejMatPol_SkladProGenHlavDZ,N'''')*/ FROM dbo.TabRadyPrikazu'; + lSQL:= lSQL + ' WHERE Rada=N' + QuotedStr(radaVPr); + with Helios.OpenSQL(lSQL) do + if (VarToStr(FieldValues(0))<>'') then + sklOdv:= VarToStr(FieldValues(0)); +} + + lSQL:= 'INSERT ' + tblOdvPr + ' (IdPrikaz,RadaPrikaz,IdKmenZbozi,Mnozstvi,Datum,CisloZamest,CasHod,CasMin,SkladOdv) SELECT '; + lSQL:= lSQL + IntToStr(idPrikaz) + ',N' + QuotedStr(idVPs[idx].radaPrikaz) + ',' + IntToStr(idKZ) + ',' + StringReplace(ks,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(DateToStr(dtDatum.Date)) + ',104),' + IfThen(selZamest.Text<>'', Trim(selZamest.Text) ,'NULL'); + lSQL:= lSQL + ',0,0,N' + QuotedStr(sklOdv); + Helios.ExecSQL(lSQL); + end; + + if not(jeTest) then + begin + try +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - start procedury ep_NTS_plgOdvedeniPrikazu')); + Helios.ExecSQL('EXEC dbo.ep_NTS_plgOdvedeniPrikazu'); +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - konec procedury ep_NTS_plgOdvedeniPrikazu')); + + + with Helios.OpenSQL('SELECT * FROM #TabExtKom') do + if (RecordCount>0) then begin + Helios.OpenBrowse(541,''); + exit; + end; + +//přidáno 8.11.2018 + SQLko := 'Select IdPrikaz,Mnozstvi/*,RadaPrikaz,IdKmenZbozi,Datum,CisloZamest,CasHod,CasMin,SkladOdv*/ from ' + tblOdvPr ; + with Helios.OpenSQL(SQLko) do begin + if (RecordCount>0) then + begin + First; + while (not(EOF)) do + begin + idVPr:= FieldValues(0) ; + MnozzstviOdvadene:= FieldValues(1) ; + ZadejVyrPrikazNaVydejku(Helios, idVPr, MnozzstviOdvadene); + //Helios.Info(idVPr.tostring); + Next; + end; + end; + // Helios.Info(recordcount.ToString) + end; + + // Helios.Info('Dnešní verze 8.11.2018'); + + +//konec přidání 8.11.2018 + + with Helios.OpenSQL('SELECT * FROM #TabExtKom') do + if (RecordCount>0) then Helios.OpenBrowse(541,''); + + + + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba pri spusteni procedury dbo.ep_NTS_plgOdvedeniPrikazu: ' + E.Message)); + end; + end + else + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - test, procedura dbo.ep_NTS_plgOdvedeniPrikazu nebude spustena')); + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - mazu temp tabulky')); + try + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabOdved') + ') IS NOT NULL DROP TABLE #TabOdved'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenPrijem') + ') IS NOT NULL DROP TABLE #TabGenPrijem'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenRezVyd') + ') IS NOT NULL DROP TABLE #TabGenRezVyd'); + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba pri mazani temp tabulek: ' + E.Message)); + end; + + Helios.Refresh(true); + end; + +// sBar.SimpleText:= ''; + if not(jeTest) then + begin + try +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - mazu temp tabulky 2')); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(IfThen(jeTest,tblOdv,'tempdb..' + tblOdv)) + ') IS NOT NULL DROP TABLE ' + tblOdv); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(IfThen(jeTest,tblOdvPr,'tempdb..' + tblOdvPr)) + ') IS NOT NULL DROP TABLE ' + tblOdvPr); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(IfThen(jeTest,tblOdvOp,'tempdb..' + tblOdvOp)) + ') IS NOT NULL DROP TABLE ' + tblOdvOp); + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba pri mazani temp tabulek 2: ' + E.Message)); + end; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - test podminky tisku: ' + LeftStr(selDilec.Text,3) + ' ' + lblDilec.Caption)); + // pokud je to Rele a zbytek je >0, tiskni novou pruvodku + end; + + if ((LeftStr(selDilec.Text,3)='PRF') or (LeftStr(selDilec.Text,3)='VRF') or + (LeftStr(lblDilec.Caption,3)='PRF') or (LeftStr(lblDilec.Caption,3)='VRF')) + and (StrToFloat(lblZive.Caption)-edtKusu.Value>0) then +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - podminka splnena, tisk by byl proveden')); + + begin +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - tisk')); + try + Helios.PrintForm3(bidFrontaPrace,31,'TabPrPostup.IdPrikaz=' + IntToStr(idPrikaz)); +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - konec tisku')); + except on E:Exception do + begin + Helios.Error(#1'Chyba'#1 + E.Message); + end; + end; + end; +// else +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - podminka tisku nesplnena')); + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - konec pluginu')); + Close; +{ + try + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - nove form activate')); + FormActivate(Sender); + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - nove form show')); + FormShow(Sender); + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - po form show')); + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba: ' + E.Message)); + end; +} + end; + + + + procedure TformOdvedeniPrikazu.edtCasHodKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + edtCasMin.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.edtCasMinKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + btnSave.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.edtKusuEnter(Sender: TObject); + begin + if (selZamest.Text<>'') and (lblZamest.Caption='') then + selZamestExit(Sender); + selDilec.Color:= clWindow; + selZamest.Color:= clWindow; + edtKusu.Color:= clYellowLight; + end; + + + + procedure TformOdvedeniPrikazu.edtKusuExit(Sender: TObject); + begin + edtKusu.Color:= clWindow; + if (edtKusu.Value>0) then + begin + if (edtKusu.Value>StrToFloat(lblZive.Caption)) then + begin + Helios.Error(#1'Nelze odvést víc kusů než zbývá na příkaze.'#1); + edtKusu.Value:= 0; + edtKusu.Color:= clYellowLight; + edtKusu.SelectAll; + edtKusu.SetFocus; + end + else + btnSave.SetFocus; + end + else + if (gOperace.RowCount>1) then + Helios.Error(#1'Zadejte počet kusů'#1); + end; + + + + procedure TformOdvedeniPrikazu.edtKusuKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + btnSave.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.FormActivate(Sender: TObject); + begin + canCont:= false; + + verText:= GetFileVersion2(GetModuleName(HInstance)); + if (Length(verText)=12) then + verText:= LeftStr(verText,9) + '0' + RightStr(verText,3); + selDilec.SetFocus; + Self.Caption:= Self.Caption + ' (verze ' + verText + ')'; + + btnSave.Top:= Self.Height - 2*btnSave.Height - Round(13/(Screen.Height/Self.Width)); + btnCancel.Top:= btnSave.Top; + gOperace.Height:= btnSave.Top - gOperace.Top - 15; + + case typOdvodu of + 1: begin // podle prikazu + selDilec.Enabled:= false; + selFronta.Enabled:= false; + selPrikaz.Enabled:= true; + selPrikaz.SetFocus; + end; + 2: begin // podle vyrobku + selPrikaz.Enabled:= false; + selFronta.Enabled:= false; + selDilec.Enabled:= true; + selDilec.SetFocus; + end; + 3: begin // podle fronty prace + selDilec.Enabled:= false; + selPrikaz.Enabled:= false; + selFronta.Enabled:= true; + selFronta.SetFocus; + end; + end; + + selDilec.Left:= Label12.Left + Label12.Width + 13; + selPrikaz.Left:= Label11.Left + Label11.Width + 8; + dtDatum.Left:= Label4.Left + Label4.Width + 8; + Label5.Left:= dtDatum.Left + dtDatum.Width + 8; + selZamest.Left:= Label5.Left + Label5.Width + 8; + lblZamest.Left:= selZamest.Left + selZamest.Width + 8; + edtKusu.Left:= Label1.Left + Label1.Width + 10; +// Self.Width:= Round(320/(Screen.Height/Screen.Width)); + + end; + + + + procedure TformOdvedeniPrikazu.FormClose(Sender: TObject; var Action: TCloseAction); + begin + if (layName[0]<>'') then + LoadKeyboardLayout(@layName, KLF_ACTIVATE or KLF_SETFORPROCESS); + Action:= caFree; + end; + + + + procedure TformOdvedeniPrikazu.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin +// if Key=VK_RETURN then +// Key:= 0; + end; + + + + procedure TformOdvedeniPrikazu.FormResize(Sender: TObject); + begin + NastavGrid; + end; + + + + procedure TformOdvedeniPrikazu.FormShow(Sender: TObject); + var lSQL: string; + idx, x: integer; + begin + if GetKeyboardLayoutName(@layName) then + LoadKeyboardLayout('00020409', KLF_ACTIVATE or KLF_SETFORPROCESS); + +{ + Application.Handle:= Helios.MainApplicationHandle; + Application.Icon.Handle:= Helios.MainApplicationIconHandle; + + DefFontData.CharSet:= Helios.Charset; + DefFontData.Name:= Helios.Font; + DefFontData.Height:= Helios.FontHeight; + + Screen.MenuFont.CharSet:= DefFontData.CharSet; + Screen.MenuFont.Name:= DefFontData.Name; + Screen.MenuFont.Height:= DefFontData.Height; + + Self.Font.Name:= Helios.Font; + Self.Font.Size:= Helios.FontHeight; +} + +// ignore changed DPI and keep dialog in originaly designed size +// if (Screen.PixelsPerInch<>PixelsPerInch) then +// ScaleBy(Screen.PixelsPerInch, PixelsPerInch); + + idx:= 0; + x:= Helios.FontHeight-3; + while (idx0) then + begin // Nadvyroba + nadvyroba:= true; + Label11.Visible:= false; + selPrikaz.Visible:= false; + grpTampo.Visible:= false; + grpNadvyroba.Visible:= true; + cbSklad.ItemIndex:= 2; + cbSklad.Enabled:= false; +// edtCasHod.Enabled:= false; +// edtCasMin.Enabled:= false; + selSmena.Enabled:= false; + gOperace.PopupMenu:= nil; + selVydejMat.SetFocus; + Self.Caption:= 'Odvedení Nadvýroby'; + end; + + with Helios.OpenSQL('SELECT kod FROM ' + tblCSmen + ' WHERE Blokovano=0') do + if (RecordCount>0) then + begin + First; + selSmena.Text:= VarToStr(FieldValues(0)); + end; + end; + + + + procedure TformOdvedeniPrikazu.Label6MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer); + begin + if (ssShift in Shift) then + ShowMessage('Čas dle TPV: sek. ' + FloatToStr(casTPVs*edtKusu.Value) + ' / min. ' + FloatToStr(casTPVm*edtKusu.Value)); + end; + + + + procedure TformOdvedeniPrikazu.selBarCodeExit(Sender: TObject); + begin + selPrikazExit(Sender); + end; + + + procedure TformOdvedeniPrikazu.selBarCodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + selBarCode.Text:= Trim(selBarCode.Text); + if (selBarCode.Text<>'') then + begin + selDilec.Text:= ''; + idKZ:= 0; + end; + if (Key=VK_RETURN) then + begin + with Helios.OpenSQL('SELECT idPrikaz FROM ' + tblPrPost + ' WHERE BarCode=N' + QuotedStr(selBarCode.Text)) do // and Odvadeci=1 + if (RecordCount>0) then + begin + idPrikaz:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL('SELECT RadaPrikaz FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idPrikaz)) do + selPrikaz.Text:= VarToStr(FieldValues(0)); + VyplnPrikaz; + selZamest.SetFocus; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.pVyberVseClick(Sender: TObject); + var i: Integer; + begin + for i:=0 to gOperace.RowCount-1 do + gOperace.Cell[1,i].AsBoolean:= true; + end; + + + + procedure TformOdvedeniPrikazu.VyplnDleDilce; + var lSQL: string; + idx: integer; + begin + if (idKZ>0) then + begin + with Helios.OpenSQL('SELECT SkupZbo,RegCis,Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStR(idKZ)) do + begin + selDilec.Text:= VarToStr(FieldValues(0)) + ' ' + VarToStr(FieldValues(1)); + lblDilec.Caption:= VarHodnota(FieldValues(2),''); + end; + + lSQL:= 'SELECT SUM(kusy_zad), SUM(kusy_odved), SUM(kusy_zive) FROM ' + tblPrikaz; + lSQL:= lSQL + ' WHERE StavPrikazu=30 AND IDTabKmen=' + IntToStr(idKZ); + if (nadvyroba) then + lSQL:= lSQL + ' AND KmenoveStredisko=N' + QuotedStr(sklDP); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + if not VarIsNull(FieldValues(0)) then + lblZadane.Caption:= VarToStr(FieldValues(0)); + if not VarIsNull(FieldValues(1)) then + lblEvid.Caption:= VarToStr(FieldValues(1)); + if not VarIsNull(FieldValues(2)) then + lblZive.Caption:= VarToStr(FieldValues(2)); + end; + + with Helios.OpenSQL('SELECT CONVERT(int,operace),nazev,id,TAC_S FROM ' + tblPostup + ' WHERE dilec=' + IntToStr(idKZ)) do + if (RecordCount>0) then + begin + gOperace.ClearRows; + NastavGrid; + gOperace.RowCount:= RecordCount; + First; + idx:= -1; + while not(EOF) do + begin + Inc(idx); + gOperace.Cell[0,idx].AsInteger:= VarHodnota(FieldValues(0),0); + gOperace.Cell[1,idx].AsBoolean:= true; + gOperace.Cell[2,idx].AsString:= VarHodnota(FieldValues(1),''); + gOperace.Cell[3,idx].AsInteger:= VarHodnota(FieldValues(2),0); + gOperace.Cell[4,idx].AsFloat:= VarHodnota(FieldValues(3),0.0); // normovany cas v sek + Next; + end; + end; + selZamest.SetFocus; + end; + end; + + + + procedure TformOdvedeniPrikazu.selDilecButtonClick(Sender: TObject); + var podm: string; + begin + idKZ:= 0; + podm:= 'TabKmenZbozi.id IN (SELECT IDTabKmen FROM ' + tblPrikaz + ' WHERE StavPrikazu=30 GROUP BY IDTabKmen)'; + if Helios.Prenos(bidKZ,'id',vOle1,podm,'Vyráběné dílce',true) then + idKZ:= StrToInt(VarToStr(vOle1)); + VyplnDleDilce; + end; + + + + procedure TformOdvedeniPrikazu.selDilecEnter(Sender: TObject); + begin + selDilec.Color:= clYellowLight; + end; + + + + procedure TformOdvedeniPrikazu.selDilecExit(Sender: TObject); + var podm: string; + begin + selDilec.Color:= clWindow; + selDilec.Text:= UpperCase(Trim(selDilec.Text)); +// selDilec.Text:= StringReplace() + if (selDilec.Text<>'') then + begin + if Pos('%',selDilec.Text)>0 then + selDilec.Text:= StringReplace(selDilec.Text,'%','_',[rfReplaceAll]); + podm:= 'SELECT id FROM ' + tblKZ + ' WHERE UPPER(CisloZbozi) LIKE N' + QuotedStr('%' + StringReplace(selDilec.Text,' ','',[rfReplaceAll]) + '%' ); + if (selDilec.Text<>'') and (idKZ=0) then + with Helios.OpenSQL(podm) do + begin + if (RecordCount>1) then + begin + podm:= 'TabKmenZbozi.id IN (' + podm + ')'; + if Helios.Prenos(bidKZ,'id',vOle1,podm,'Vyráběné dílce',true) then + idKZ:= StrToInt(VarToStr(vOle1)); + end; + + if (RecordCount=1) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + if (RecordCount=0) then + begin + idKZ:= 0; + Helios.Error(#1'Zadaný dílec nebyl nalezen.'#1); + selDilec.Color:= clYellowLight; + selDilec.SelectAll; + selDilec.SetFocus; + end; +{ + with Helios.OpenSQL('SELECT id FROM ' + tblPostup + ' WHERE dilec=' + IntTOStr(idKZ)) do + if RecordCount>1 then + begin + if not Helios.YesNo(#1'Pozor, tento dílec obsahuje více jak 1 operaci na kus.'#1 + CRLF + 'Chcete jej i přesto evidovat ?',true) then + Exit; + end; +} + if (idKZ>0) then + begin + VyplnDleDilce; + selZamest.Color:= clYellowLight; + selZamest.Text:= ''; + selZamest.SelectAll; + end; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.selDilecKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + begin +// if (Key=VK_RETURN) then +// Key:= 0; + end; + + + + procedure TformOdvedeniPrikazu.selDilecKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + selDilec.Text:= Trim(selDilec.Text); + if (selDilec.Text<>'') then + begin + selBarCode.Text:= ''; + selPrikaz.Text:= ''; + idPrikaz:= 0; + end; + if (Key=VK_RETURN) then + begin + selDilec.Width:= Self.Canvas.TextWidth(selDilec.Text); + selDilecExit(Sender); + end; + end; + + + + procedure TformOdvedeniPrikazu.selFrontaButtonClick(Sender: TObject); + var podm: string; + begin + idPrPostup:= 0; + idPrikaz:= 0; + operaceFP:= ''; + podm:= 'TabPrPostup.Kusy_zive>0 AND TabPrPostup.Pracoviste IN (SELECT id FROM ' + tblCPrac + ' WHERE Pracoviste LIKE N'; + podm:= podm + QuotedStr('RF%') + ')'; + if Helios.Prenos(bidVyrOper,'Id',vOle1,podm,'Fronta práce',true) then + begin + idPrPostup:= StrToInt(VarToStr(vOle1)); + podm:= 'SELECT vp.RadaPrikaz,pp.idPrikaz,pp.Operace FROM ' + tblPrPost + ' pp INNER JOIN ' + tblPrikaz; + podm:= podm + ' vp ON (vp.Id=pp.IdPrikaz) WHERE pp.id=' + IntToStr(idPrPostup); + with Helios.OpenSQL(podm) do + begin + selPrikaz.Text:= VarToStr(FieldValues(0)); + idPrikaz:= StrToInt(VarToStr(FieldValues(1))); + operaceFP:= Trim(VarToStr(FieldValues(2))); + end; + selFronta.Text:= IntToStr(idPrPostup); + VyplnPrikaz; + VyplnFrontuPrace; + end; + end; + + + procedure TformOdvedeniPrikazu.selFrontaExit(Sender: TObject); + begin + selFronta.Text:= Trim(selFronta.Text); + if (selFronta.Text<>'') and IsNumeric(selFronta.Text) then + begin + if (idPrPostup=0) then + with Helios.OpenSQL('SELECT Id,IdPrikaz,Operace FROM ' + tblPrPost + ' WHERE id=' + selFronta.Text) do + if (RecordCount=1) then + begin + idPrPostup:= StrToInt(VarToStr(FieldValues(0))); + idPrikaz:= StrToInt(VarToStr(FieldValues(1))); + operaceFP:= Trim(VarToStr(FieldValues(2))); + VyplnPrikaz; + VyplnFrontuPrace; + end; + end + else + begin + idPrPostup:= 0; + idPrikaz:= 0; + operaceFP:= ''; + Helios.Error(#1'Chybně zadané identifikační číslo operace.'#1); + end; + end; + + + + procedure TformOdvedeniPrikazu.selPrikazButtonClick(Sender: TObject); + var podm: string; + begin + podm:= 'TabPrikaz.StavPrikazu=30 AND TabPrikaz.KmenoveStredisko IN (N' + QuotedStr(sklVyr) + ',N'; + podm:= podm + QuotedStr(sklDP) +')'; + if Helios.Prenos(bidVyrPrik,'RadaPrikaz',vOle1,podm,'Výrobní příkazy',true) then + begin + selPrikaz.Text:= VarToStr(vOle1); + with Helios.OpenSQL('SELECT id FROM ' + tblPrikaz + ' WHERE RadaPrikaz=N' + QuotedStr(selPrikaz.Text)) do + idPrikaz:= StrToInt(VarToStr(FieldValues(0))); + VyplnPrikaz; + end; + + end; + + + + procedure TformOdvedeniPrikazu.selPrikazExit(Sender: TObject); + var podm, r: string; + begin + r:= ''; + selPrikaz.Text:= Trim(selPrikaz.Text); + selPrikaz.Text:= StringReplace(selPrikaz.Text,' ','',[rfReplaceAll]); +// if not IsNumeric(selPrikaz.Text) then + if (LeftStr(selPrikaz.Text,1)='A') then + Helios.Error(#1'Výrobní příkaz může mít jen numerické označení.' + #1 + CRLF + '(zadáváte opravdu příkaz ?]') + else + if (selPrikaz.Text<>'') then + begin + r:= LeftStr(selPrikaz.Text, Pos('-', selPrikaz.Text)-1); + podm:= 'Rada=N' + QuotedStr(r); + podm:= podm + ' AND Prikaz=' + MidStr(selPrikaz.Text,Pos('-', selPrikaz.Text)+1,255); + with Helios.OpenSQL('SELECT id,IdTabKmen FROM ' + tblPrikaz + ' WHERE StavPrikazu IN (30,40) AND ' + podm) do + if (RecordCount>0) then + begin + idPrikaz:= StrToInt(VarToStr(FieldValues(0))); + idKZ:= StrToInt(VarToStr(FieldValues(1))); + VyplnPrikaz; + selZamest.SetFocus; + end + else + begin + idPrikaz:= 0; + idKZ:= 0; + Helios.Error(#1'Nebyl nalezen odpovídající Výrobní příkaz'#1 + CRLF + '(může být již uzavřen nebo je neplatný)'); + selPrikaz.SetFocus; + end; + if (r='010') then + begin + cbSklad.ItemIndex:= 2; + grpTampo.Visible:= true; + end; + end + else + begin + idPrikaz:= 0; + idKZ:= 0; + end; + end; + + + + procedure TformOdvedeniPrikazu.selPrikazKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (selPrikaz.Text<>'') then + idKZ:= 0; + + if (Key=VK_RETURN) then + selZamest.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.selVydejMatButtonClick(Sender: TObject); + var podm: string; + begin + if (selZamest.Text='') then + begin + Helios.Error(#1'Před výběrem nejprve zadejte zaměstnance.'#1); + Exit; + end; + podm:= 'TabDokladyZbozi.DruhPohybuZbo=4 AND TabDokladyZbozi.Realizovano=1 AND TabDokladyZbozi.CisloZam=' + selZamest.Text; + if Helios.Prenos(bidDZVydej,'id',vOle1,podm,'Výdejky',true) then + idVydej:= StrToInt(VarToStr(vOle1)) + else + idVydej:= 0; + with Helios.OpenSQL('SELECT RadaDokladu,PoradoveCislo FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydej)) do + if (RecordCount>0) then + selVydejMat.Text:= VarToStr(FieldValues(0)) + '-' + StringOfChar('0', 6-Length(VarToStr(FieldValues(1)))) + VarToStr(FieldValues(1)) + else + selVydejMat.Text:= ''; + selVydejMatExit(Sender); + end; + + + + procedure TformOdvedeniPrikazu.selVydejMatExit(Sender: TObject); + var lSQL: string; + begin + selVydejMat.Text:= Trim(selVydejMat.Text); + if (selVydejMat.Text<>'') and (Pos('-',selVydejMat.Text)>0) then + begin + lSQL:= 'SELECT id FROM ' + tblDZ + ' WHERE RadaDokladu=N' + QuotedStr(LeftStr(selVydejMat.Text,Pos('-',selVydejMat.Text)-1)); + lSQL:= lSQL + ' AND PoradoveCislo=CONVERT(int,N' + QuotedStr(MidStr(selVydejMat.Text,Pos('-',selVydejMat.Text)+1,20)); + lSQL:= lSQL + ') AND DruhPohybuZbo=4 AND CisloOrg=2 AND IDSklad=N' + QuotedStr(sklFin); // IN (' + VlastniSkladySQL(DateToStr(dtDatum.Date)) + ')'; + if (selZamest.Text<>'') then + lSQL:= lSQL + ' AND CisloZam=' + selZamest.Text; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + if not(VarIsNull(FieldValues(0))) then + idVydej:= StrToInt(VarToStr(FieldValues(0))) + else + idVydej:= 0; + end; + if (idVydej=0) then + Helios.Error(#1'Nelze dohledat zadanou výdejku na Nadvýrobu.'#1) + else + begin + if (selDilec.Text='') then + begin + lSQL:= 'SELECT CisloZam,IdKmenZbozi,Mnozstvi-Zaevidovano,id FROM ' + tblEvidNadvyr + ' WHERE idVydejkaMat=' + IntToStr(idVydej); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + if not(VarIsNull(FieldValues(0))) then + selZamest.Text:= StringOfChar('0',6-Length(VarToStr(FieldValues(0)))) + VarToStr(FieldValues(0)); + idKZ:= StrToInt(VarToStr(FieldValues(1))); + with Helios.OpenSQL('SELECT PrijmeniJmeno, Id FROM ' + tblCZam + ' WHERE Cislo=' + VarToStr(FieldValues(0))) do + if (RecordCount=1) then + begin + lblZamest.Caption:= VarToStr(FieldValues(0)); + idZam:= VarToStr(FieldValues(1)); + end; + with Helios.OpenSQL('SELECT RegCis, Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ)) do + if (RecordCount=1) then + begin + selDilec.Text:= VarToStr(FieldValues(0)); + lblDilec.Caption:= VarToStr(FieldValues(1)); + end; + VyplnDleDilce; + edtKusu.Value:= StrToFloat(VarToStr(FieldValues(2))); + idNadvyr:= StrToInt(VarToStr(FieldValues(3))); + edtKusu.SetFocus; + end + else + Helios.Error(#1'Dle zadané výdejky nelze dohledat údaje k evidenci Nadvýroby.'#1 + CRLF + 'Zadejte je ručně.'); + end; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.selZamestButtonClick(Sender: TObject); + begin + if Helios.Prenos2(bidCisZam,'PrijmeniJmeno','Cislo',vOle1,vOle2,'','Zaměstnanci',true,false,false,1) then + begin + lblZamest.Caption:= VarToStr(vOle1); + cZam:= VarToStr(vOle2); + with Helios.OpenSQL('SELECT id FROM ' + tblCZam + ' WHERE Cislo=' + cZam) do + idzam:= VarToStr(FieldValues(0)); + selZamest.Text:= StringOfChar('0',6-Length(cZam)) + cZam; + edtKusu.SetFocus; + end + else + begin + lblZamest.Caption:= ''; + cZam:= '0'; + end; + end; + + + + procedure TformOdvedeniPrikazu.selZamestEnter(Sender: TObject); + begin + selZamest.Color:= clYellowLight; + end; + + + + procedure TformOdvedeniPrikazu.selZamestExit(Sender: TObject); + begin + if (selZamest.Text<>'') then + begin + selZamest.Text:= GetNumbersFromString(selZamest.Text); + selZamest.Text:= Trim(selZamest.Text); + cZam:= selZamest.Text; + with Helios.OpenSQL('SELECT PrijmeniJmeno,id FROM ' + tblCZam + ' WHERE Cislo=' + selZamest.Text) do + if (RecordCount>0) then + begin + lblZamest.Caption:= VarToStr(FieldValues(0)); + idZam:= VarToStr(FieldValues(1)); + selZamest.Text:= StringOfChar('0',6-Length(cZam)) + cZam; +// lblZamest.Left:= selZamest.Left + selZamest.Width + 5; + end + else + begin + Helios.Error(#1'Zadaný zaměstnanec nebyl nalezen, zkuste jej zadat znovu.'#1); + cZam:= '0'; + idZam:= '0'; + selZamest.SetFocus; + selZamest.Text:= ''; + lblZamest.Caption:= ''; + end; + end; + selZamest.Color:= clWindow; + end; + + + + procedure TformOdvedeniPrikazu.selZamestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + begin + if (selZamest.Text<>'') then + begin + selZamest.Width:= Self.Canvas.TextWidth(selZamest.Text) + 5; + lblZamest.Left:= selZamest.Left + selZamest.Width + 8; + selZamestExit(Sender); + edtKusu.SetFocus; + end; + end; + end; + + + // přidáno 8.11.2018 + procedure TformOdvedeniPrikazu.ZadejVyrPrikazNaVydejku(const Helios: IHelios; idVPr: Integer; MnozstviNaVydejku: double); + var lSQL, SQL, SQLko: string; + pz,mu: IHeQuery; + idVydej,idPolExpP,idExpPr,idNPol,sMU,sNO: string; + idx: Integer; + mn: extended; + PoloZkaVydejkyExistuje:boolean; + IdPolozkaVydeky:integer; + Zprava : string; + RegCis : string; + begin + if (idVPr>0) then + begin + lSQL:= 'SELECT kz.id, kz.RegCis FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.id=' + IntToStr(idVPr); + with Helios.OpenSQL(lSQL) do begin + if RecordCount=0 then + begin + //Helios.Error(#1'Výrobní příkaz není na finální výrobek.'#1); // zakomentováno 8.11.2018 + Exit; + end; + regcis:= FieldValues(1); + end; + + lSQL:= 'SELECT p.IdRezervace,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.IdRezervace IS NOT NULL AND p.id=' + IntToStr(idVPr); + pz:= Helios.OpenSQL(lSQL); + if (pz.RecordCount>0) then + begin + // if Helios.YesNo('Chcete dílec z výrobního příkazu uložit do výdejky exportu ?',false) then + // begin + lSQL:= 'TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklVyroba) + ' AND TabDokladyZbozi.DruhPohybuZbo IN (2,3,4)'; + lSQL:= lSQL + ' AND TabDokladyZbozi.RadaDokladu IN (N' + QuotedStr('420') + ') AND TabDokladyZbozi.Realizovano=0'; + + // výběr výdejky + pz.First; + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + + SQLko:= ''; + + sNO:= ''; + SQLko:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + SQLko:= SQLko + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idPolExpP; // jen Exp.prikazy + with Helios.OpenSQL(SQLko) do + if (RecordCount>0) then + begin + sNO:= LeftStr(VarToStr(FieldValues(0)),2); + end else begin + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku, protože není zadána návazná objednávka na expedičním příkaze. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + exit; // a když nebude zadáno? + end; + + SQLko:= 'Select id from TabDokladyZbozi where '; + SQLko:= SQLko + 'TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklVyroba) + ' AND TabDokladyZbozi.DruhPohybuZbo IN (2,3,4)'; + SQLko:= SQLko + ' AND TabDokladyZbozi.RadaDokladu IN (N' + QuotedStr('420') + ') AND TabDokladyZbozi.Realizovano=0 AND TabDokladyZbozi.MistoUrceni= ' ; + if sNo='52' then SQLko:= SQLko + '3' else begin + if sNo='45' then SQLko:= SQLko + '1' else begin + //Helios.OpenSQL('SELECT * FROM #TabExtKom') + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku, protože zadána návazná objednávka na expedičním příkaze nezačíná na 45 nebo 52. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce='' Chyba při ukládání položky na výdejku: zadána návazná objednávka na expedičním příkaze nezačíná na 45 nebo 52. '''); + exit; + end; + + end; + // kontrola na návaznpou objednávku na výdejce: + // SQLko:= SQLko + ' AND TabDokladyZbozi.NavaznaObjednavka like ' + QuotedStr(sNo + '%'); + + // helios.Info('3 ' + sNo + CRLF + SQLko); + + with Helios.OpenSQL(SQLko) do + if (RecordCount>0) then + begin + if (RecordCount=1) then idVydej:= FieldValues(0) else begin + Helios.Info('Položka nebude uložena na výdejku. Bylo nalezeno více odpovídajících nerealizovaných výdejek.'); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Bylo nalezeno více odpovídajících nerealizovaných výdejek. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + exit; + end; + end else begin + helios.Info('Položka nebude uložena na výdejku. Nebyla nalezena žádná odpovídající nerealizovaná výdejka.'); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Nebyla nalezena žádná odpovídající nerealizovaná výdejka. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + // Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce='' Položka nebude uložena na výdejku. Nebyla nalezena žádná odpovídající nerealizovaná výdejka. '''); + exit; + end; + + // konec výběru výdejky + + + + // if Helios.Prenos(bidDZVydej,'id',vOle1,lSQL,'Výdejky pro Vývoz',true) then + + + begin + pz.First; + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + + sNO:= ''; + sMU:= ''; + // idVydej:= VarToStr(vOle1); + mu:= Helios.OpenSQL('SELECT ISNULL(MistoUrceni,0) FROM ' + tblDZ + ' WHERE id=' + idVydej); + if (mu.RecordCount>0) then + begin + sMU:= VarToStr(mu.FieldValues(0)); + lSQL:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + lSQL:= lSQL + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idPolExpP; // jen Exp.prikazy + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + sNO:= LeftStr(VarToStr(FieldValues(0)),2); + if ((sNO<>'52') and (sMU='3')) or ( ((sNO<>'45') and (sMU='1')) and ((sNO<>'50') and (sMU='1')) ) then + begin + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku, protože místo určení na výdejce není určeno pro tuto řadu objednávek. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + Helios.Error(#1'Místo určení na výdejce není určeno pro tuto řadu objednávek.'#1); + Exit; + end; + end; + end; + + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE BlokovaniEditoru IS NOT NULL AND id=' + idVydej) do + if (RecordCount=0) then // doklad neni blokovan + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + idVydej); + pz.First; + idx:= 0; + while not(pz.EOF) do + begin + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + lSQL:= VarToStr(pz.FieldValues(1)) + ' ' + VarToStr(pz.FieldValues(2)) + ' - ' + VarToStr(pz.FieldValues(3)); + // try + // mn:= StrToFloat(InputBox(lSQL,'Množství na výdejku:','0')); // 5.10.2018 přidáno ošetření na nečíslo + mn:= MnozstviNaVydejku; // změněno 8.11.2018 + // except on E:Exception do begin + // helios.Error('Zadaná honota není číslo!'); + // exit; + // end + // end; + if (mn>0) then + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka '; + lSQL:= lSQL + 'NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'DECLARE @m NVARCHAR(3),@vc INT,@sDPH NUMERIC(5,2),@sSD NUMERIC(5,2),@kEUR NUMERIC(19,6),'; + lSQL:= lSQL + '@jm INT,@k NUMERIC(19,6),@ss INT,@mn NUMERIC(19,6),@idOut INT,@d DATETIME' + CRLF; + +// udaje z radky Exp. prikazu + lSQL:= lSQL + 'SELECT @sDPH=SazbaDPH,@sSD=SazbaSD,@mn=' + StringReplace(FloatToStr(mn),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@k=Kurz,@jm=JednotkaMeny,@ss=IDZboSklad,@kEUR=KurzEuro FROM ' + tblPZ + ' WHERE id=' + idPolExpP + CRLF; + +// udaje z hlavicky Exp. prikazu + with Helios.OpenSQL('SELECT Mena,VstupniCena,Kurz,KurzEuro,DatPorizeni FROM ' + tblDZ + ' WHERE id=' + idVydej) do + begin + lSQL:= lSQL + 'SET @m=N' + QuotedStr(VarToStr(FieldValues(0))) + CRLF + 'SET @vc=' + VarToStr(FieldValues(1)); + lSQL:= lSQL + CRLF + 'SET @k=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @kEUR=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @d=CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)' + CRLF; + end; + + // úpravy 8.11.2018 + try + SQL:= 'DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5), @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF; + SQL:= SQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + SQL:= SQL + ' WHERE id=' + idPolExpP + CRLF; + SQL:= SQL + 'Select id from ' + tblPZ + ' where NazevSozNa1=@n1 and NazevSozNa2=@n2 and idDoklad = ' + idVydej ; + with Helios.OpenSQL(SQL) do begin + if recordcount=1 then begin + PoloZkaVydejkyExistuje := true; + IdPolozkaVydeky := FieldValues(0); + end else begin + PoloZkaVydejkyExistuje := false ; + end; + + end; + except on E4:Exception do begin + helios.Info('Chyba - položka nebude uložena na výdejku ' + CRLF + 'Detail chyby: ' + E4.ToString); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. ' + CRLF + 'Detail chyby: ' + E4.ToString; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + end; + end; + + // Helios.Info('1'); + + if PoloZkaVydejkyExistuje then begin + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET Mnozstvi = Mnozstvi + @mn where id = ' + IdPolozkaVydeky.ToString; + lSQL:= lSQL + CRLF + 'SELECT ' + IdPolozkaVydeky.ToString + ' as idout'; + idNPol:= ''; + end else begin + + + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + idVydej + ',@DruhPohybu=2,@CisloOrg=1,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + idNPol:= ''; + end; + + try + Inc(idx); + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idNPol:= VarToStr(FieldValues(0)); + if (idNPol<>'') and (idPolExpP<>'') then + begin +// aktualizuje udaje na vydejce + lSQL:= 'DECLARE @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF; + lSQL:= lSQL + 'DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5)' + CRLF; + lSQL:= lSQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + lSQL:= lSQL + ' WHERE id=' + idPolExpP + CRLF; + lSQL:= lSQL + 'SELECT @k=Kurz FROM ' + tblDZ + ' WHERE id=@idDok' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET PozadDatDod=@d,NazevSozNa1=@n1,NazevSozNa2=@n2,JCbezDaniKC=@jcV*@k,JCbezDaniVal=@jcV'; + lSQL:= lSQL + ',IdOldPolozka=' + idPolExpP + ' WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JCbezDaniKC*Mnozstvi,CCbezDaniVal=JCbezDaniVal*Mnozstvi WHERE id=' + idNPol; + Helios.ExecSQL(lSQL); +// prepocte mnozstvi vydane na ExpPr + lSQL:= 'SELECT ISNULL( (SELECT IDDoklad FROM ' + tblPZ + ' WHERE Id=' + idPolExpP + '), 0)'; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idExpPr:= VarToStr(FieldValues(0)); + lSQL:= 'MERGE dbo.TabPohybyZbozi AS T USING (SELECT ss.Id, kz.MJEvidence AS MJ FROM dbo.TabStavSkladu ss' + CRLF; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=ss.IDKmenZbozi) WHERE ss.IDSklad=N''200'') AS S'; + lSQL:= lSQL + ' ON (T.IdZboSklad=S.Id) WHEN MATCHED AND T.IDDoklad=' + idExpPr + ' THEN UPDATE SET T.MJ=S.MJ, T.MJEvidence=S.MJ;'; + Helios.ExecSQL(lSQL); + lSQL:= 'BEGIN TRY' + CRLF + 'EXEC dbo.hp_Aktualizuj_OdebraneMnozstviDoklad @IDDoklad=' + idExpPr + ',@DruhPohybu=9' + CRLF; + lSQL:= lSQL + 'END TRY' + CRLF + 'BEGIN CATCH' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=ERROR_MESSAGE' + CRLF + 'END CATCH'; //upraveno 5.10.2018 - odstraněny závorky za error_message + try + Helios.ExecSQL(lSQL); + except on E:Exception do begin + // UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + sql, E); + UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + lsql, E); // změněno 26.6.2018 (z sql na lsql) + Zprava := 'Odvod BC: Chyba - Nelze aktualizovat kalkulační cenu ! SQL: ' + lsql; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + end; + end; + end; + + end; + except on E:Exception do begin + Helios.Error(#1'Nelze uložit položku na doklad.'#1 + CRLF + E.Message + CRLF + lSQL + errPlg); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Nelze uložit položku na doklad' + CRLF + 'Detail chyby: ' + E.ToString; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + + end; + end; + end + else begin + Helios.Error(#1'Zadané množství je nulové, převod dílce na výdejku NEBUDE proveden.'#1); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Zadané množství je nulové, převod dílce na výdejku NEBUDE proveden.' ; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + + end; + pz.Next; + end; +// Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idVydej + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idVydej); + Helios.Refresh(true); + // helios.Info('Položka uložena na výdejku č. '); + end + else begin + Helios.Error(#1'Doklad je blokován jiným uživatelem.'#1); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Doklad je blokován jiným uživatelem.' ; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + + end; + end; + // end; + end; + end; + end; + + // přidáno 8.11.2018 + procedure TformOdvedeniPrikazu.UlozChybu(const Helios: IHelios; msg: string; E: Exception); + var txt: string; + begin + if not Assigned(E) then + txt:= '' + else + txt:= E.Message; + if txt<>'' then + msg:= msg + ' - chyba: ' + txt; + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (N' + QuotedStr(msg) + ')'); + end; +end. diff --git a/frmOdvedPrikaz.dfm b/frmOdvedPrikaz.dfm new file mode 100644 index 0000000..8f03aac --- /dev/null +++ b/frmOdvedPrikaz.dfm @@ -0,0 +1,830 @@ +object formOdvedeniPrikazu: TformOdvedeniPrikazu + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + ClientHeight = 577 + ClientWidth = 724 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poOwnerFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnKeyUp = FormKeyUp + OnResize = FormResize + OnShow = FormShow + DesignSize = ( + 724 + 577) + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 272 + Width = 121 + Height = 17 + Caption = 'Odv'#225'd'#283'n'#253'ch kus'#367' :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label10: TLabel + Left = 10 + Top = 231 + Width = 51 + Height = 17 + Caption = 'Sm'#283'na :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label4: TLabel + Left = 11 + Top = 185 + Width = 51 + Height = 17 + Caption = 'Datum :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label5: TLabel + Left = 205 + Top = 185 + Width = 91 + Height = 17 + Caption = 'Zam'#283'stnanec :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblZamest: TLabel + Left = 400 + Top = 183 + Width = 275 + Height = 20 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object lblDilec: TLabel + Left = 8 + Top = 38 + Width = 404 + Height = 20 + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 13 + Top = 74 + Width = 95 + Height = 17 + Caption = 'V'#253'robn'#237' p'#345#237'kaz :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label12: TLabel + Left = 8 + Top = 11 + Width = 101 + Height = 17 + Caption = 'D'#237'lec / v'#253'robek :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label13: TLabel + Left = 11 + Top = 146 + Width = 37 + Height = 17 + Caption = 'Sklad:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label15: TLabel + Left = 10 + Top = 111 + Width = 87 + Height = 17 + Caption = 'Fronta pr'#225'ce :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + Visible = False + end + object gOperace: TNextGrid6 + Left = 15 + Top = 318 + Width = 701 + Height = 208 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentColor = False + ParentFont = False + PopupMenu = pOperace + TabOrder = 12 + TabStop = True + Touch.InteractiveGestures = [igPan, igPressAndTap] + Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough] + ActiveView = gView + ActiveViewIndex = 0 + ScrollBars = [sbHorizontal, sbVertical] + SelectFullRow = True + UserDefinedColorPalette.GeometryHoverColor = clBlack + object gView: TNxReportGridView6 + ColumnMoving = False + GridLines = True + HeaderHeight = 24 + InsertRowHeight = 24 + end + object colOper: TNxNumberColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Alignment = taCenter + Header.Caption = #268'.op.' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 0 + PlaceholderText = '1742.50' + Position = 0 + FormatMask = '0' + Precision = 0 + Increment = 1.000000000000000000 + InsertString = '0' + end + object colEvid: TNxCheckBoxColumn6 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Alignment = taCenter + Header.Caption = 'Evid ?' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 1 + PlaceholderText = 'True' + Position = 1 + CheckedImageIndex = -1 + UncheckedImageIndex = -1 + InsertString = 'False' + end + object colPopis: TNxTextColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'Popis' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -17 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 2 + PlaceholderText = 'Text Text' + Position = 2 + end + object colIdPostup: TNxNumberColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'idPostup' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 3 + PlaceholderText = '1742.50' + Position = 3 + Visible = False + Width = 8 + FormatMask = '#,##0.00' + Precision = 0 + Increment = 1.000000000000000000 + InsertString = '0' + end + object colNormCasS: TNxNumberColumn6 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Footer.Font.Charset = DEFAULT_CHARSET + Footer.Font.Color = clWindowText + Footer.Font.Height = -13 + Footer.Font.Name = 'Tahoma' + Footer.Font.Style = [] + Footer.ParentFont = False + Footer.FormatMask = '#,##0.00' + Header.Caption = 'NormCasS' + Header.Font.Charset = DEFAULT_CHARSET + Header.Font.Color = clWindowText + Header.Font.Height = -11 + Header.Font.Name = 'Tahoma' + Header.Font.Style = [] + Header.ParentFont = False + Index = 4 + PlaceholderText = '1742.50' + Position = 4 + Visible = False + Width = 8 + FormatMask = '#,##0.00' + Precision = 0 + Increment = 1.000000000000000000 + InsertString = '0' + end + end + object edtKusu: TRzNumericEdit + Left = 140 + Top = 268 + Width = 68 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 6 + ParentFont = False + ParentShowHint = False + ShowHint = False + TabOrder = 5 + OnEnter = edtKusuEnter + OnExit = edtKusuExit + OnKeyUp = edtKusuKeyUp + Max = 999999.000000000000000000 + DisplayFormat = ',0;(,0)' + end + object GroupBox2: TGroupBox + Left = 488 + Top = 8 + Width = 225 + Height = 109 + Anchors = [akTop, akRight] + Caption = ' Kusy ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 13 + object Label2: TLabel + Left = 8 + Top = 22 + Width = 86 + Height = 17 + Caption = 'Kusy zadan'#233' :' + end + object lblZadane: TLabel + Left = 171 + Top = 21 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 8 + Top = 53 + Width = 95 + Height = 17 + Caption = 'Kusy zb'#253'vaj'#237'c'#237' :' + end + object lblZive: TLabel + Left = 171 + Top = 52 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + end + object Label9: TLabel + Left = 8 + Top = 83 + Width = 74 + Height = 17 + Caption = 'Evidov'#225'no :' + end + object lblEvid: TLabel + Left = 171 + Top = 81 + Width = 8 + Height = 14 + Alignment = taRightJustify + Caption = '0' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + end + object btnSave: TBitBtn + Left = 205 + Top = 537 + Width = 92 + Height = 32 + Align = alCustom + Anchors = [akBottom] + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Glyph.Data = { + DE010000424DDE01000000000000760000002800000024000000120000000100 + 0400000000006801000000000000000000001000000000000000000000000000 + 80000080000000808000800000008000800080800000C0C0C000808080000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 + 3333333333333333333333330000333333333333333333333333F33333333333 + 00003333344333333333333333388F3333333333000033334224333333333333 + 338338F3333333330000333422224333333333333833338F3333333300003342 + 222224333333333383333338F3333333000034222A22224333333338F338F333 + 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 + 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 + 0000333333333A222433333333333338F338F33300003333333333A222433333 + 333333338F338F33000033333333333A222433333333333338F338F300003333 + 33333333A222433333333333338F338F00003333333333333A22433333333333 + 3338F38F000033333333333333A223333333333333338F830000333333333333 + 333A333333333333333338330000333333333333333333333333333333333333 + 0000} + ModalResult = 1 + NumGlyphs = 2 + ParentFont = False + TabOrder = 7 + OnClick = btnSaveClick + end + object btnCancel: TBitBtn + Left = 405 + Top = 537 + Width = 89 + Height = 32 + Anchors = [akBottom] + Caption = ' Storno' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + Kind = bkCancel + NumGlyphs = 2 + ParentFont = False + TabOrder = 8 + end + object cbCasMzda: TCheckBox + Left = 238 + Top = 228 + Width = 184 + Height = 17 + Caption = 'Mzda dle skute'#269'n'#233'ho '#269'asu' + Checked = True + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + State = cbChecked + TabOrder = 11 + end + object selSmena: TRzButtonEdit + Left = 68 + Top = 228 + Width = 75 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 2 + ParentFont = False + TabOrder = 10 + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + end + object selZamest: TRzButtonEdit + Left = 303 + Top = 181 + Width = 84 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnEnter = selZamestEnter + OnExit = selZamestExit + OnKeyUp = selZamestKeyUp + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selZamestButtonClick + end + object selBarCode: TRzButtonEdit + Left = 256 + Top = 69 + Width = 131 + Height = 25 + Text = '' + CharCase = ecUpperCase + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 15 + ParentFont = False + TabOrder = 2 + Visible = False + OnExit = selBarCodeExit + OnKeyUp = selBarCodeKeyUp + ButtonGlyph.Data = { + AE060000424DAE0600000000000036000000280000001E000000120000000100 + 18000000000078060000C40E0000C40E00000000000000000000FBFCF8F0F1EE + FBFCF8FBFCF8FBFCF8CDCECAE3E4E0CACAC7DDDEDAC4C4C1E7E8E4DEDFDBECED + E9CFCFCBECEDE9F7F8F4CBCBC8E5E6E2DCDCD8F5F6F2DCDDD9E6E7E4CCCCC9E7 + E8E5EAEAE7FBFCF8FBFCF8FBFCF8EFEFECF6F7F30000FAFBF7CDCECACBCCC9BA + BAB7D2D3CFB5B6B3BFBFBC949391BFBEBC9C9C9ACECFCBB1B0AEDCDDD99C9C9A + BFBFBCD1D1CF929290D2D3CF7F7E7CDDDEDAB1B2AFCECECB9B9B98E3E3E0B2B2 + AFC5C5C2A4A4A2BFBFBCC8C9C6E8E9E50000FBFCF8E8E8E4A1A29F80807FAFAF + ACA8A8A6BABAB7959593AFB0ADADADABC0C1BEA8A9A6D8D9D5A8A8A5959694AB + ABA9C8C8C6D9D9D6959593C8C9C6A1A19FC9C9C7D5D6D2DADBD7B2B2AF959593 + 5857588A8A88D8D9D5F6F7F30000FBFCF8F7F8F4A1A29F80807FAFAFAC919190 + 908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3 + A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A + 8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C + 3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A1 + 5F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9 + E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B5454 + 53A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90 + 908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF8 + 0000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A0 + 7D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E + 6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFC + F8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C86 + 86858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6B + D2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4 + A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C + 8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2 + C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80 + 807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B484747 + 4B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5 + B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAF + AC919190908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C + 8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B2989897 + 5857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190 + 908F8E3C3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3 + A1A3A3A15F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A + 8A88E8E9E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C + 3B3B545453A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A1 + 5F5F5E90908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9 + E5FBFCF80000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B5454 + 53A2A2A07D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90 + 908E6F6E6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF8 + 0000FBFCF8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A0 + 7D7D7C8686858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E + 6E6C6C6BD2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFC + F8F7F8F4A1A29F80807FAFAFAC919190908F8E3C3B3B545453A2A2A07D7D7C86 + 86858C8C8B4847474B4A4B8C8C8BA3A3A1A3A3A15F5F5E90908E6F6E6E6C6C6B + D2D3D0C2C2C0B4B5B29898975857588A8A88E8E9E5FBFCF80000FBFCF8F7F8F4 + A2A2A081817FAFAFAD92929190908E3D3C3C555554A2A2A07E7E7D8787858D8D + 8C4948484C4C4C8D8D8CA3A4A2A4A4A260605F9191907170706D6D6CD2D3D0C2 + C3C0B4B5B39999975958598B8B89E8E9E5FBFCF80000FBFCF8FAFBF7D8D8D5CB + CBC8DDDDDAD1D2CFD0D1CEAFB0ADB9BAB7D8D9D5C9CAC7CDCDCACFD0CDB4B5B2 + B5B5B3CFD0CDD8D9D6D8D9D5BDBEBBD2D3D0C7C7C5C4C4C1EBECE8E4E5E2DFE0 + DCD4D4D1BABBB8CFCFCCF3F4F0FBFCF80000} + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + ButtonKind = bkCustom + ButtonWidth = 16 + end + object selPrikaz: TRzButtonEdit + Left = 115 + Top = 69 + Width = 132 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 20 + ParentFont = False + TabOrder = 1 + OnExit = selPrikazExit + OnKeyUp = selPrikazKeyUp + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selPrikazButtonClick + end + object selDilec: TRzButtonEdit + Left = 122 + Top = 6 + Width = 183 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 22 + ParentFont = False + TabOrder = 0 + OnEnter = selDilecEnter + OnExit = selDilecExit + OnKeyDown = selDilecKeyDown + OnKeyUp = selDilecKeyUp + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selDilecButtonClick + end + object cbSklad: TComboBox + Left = 58 + Top = 143 + Width = 198 + Height = 25 + Style = csDropDownList + Enabled = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ItemIndex = 0 + ParentFont = False + TabOrder = 3 + Text = '200 - V'#253'roba' + Items.Strings = ( + '200 - V'#253'roba' + '210 - Sklad v'#253'robk'#367 + '200.00105 - Nadv'#253'roba' + '100.00300 - Va'#269'ky') + end + object dtDatum: TRzDateTimePicker + Left = 70 + Top = 182 + Width = 121 + Height = 26 + Date = 41401.000000000000000000 + Format = 'dd.MM.yyyy' + Time = 41401.000000000000000000 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + MinDate = 41275.000000000000000000 + ParentFont = False + TabOrder = 9 + ShowToday = True + FirstDayOfWeek = dowMonday + end + object grpTampo: TGroupBox + Left = 238 + Top = 262 + Width = 294 + Height = 31 + TabOrder = 6 + object Label6: TLabel + Left = 4 + Top = 11 + Width = 76 + Height = 13 + Caption = 'Evidovan'#253' '#269'as :' + OnMouseDown = Label6MouseDown + end + object Label7: TLabel + Left = 136 + Top = 11 + Width = 26 + Height = 14 + AutoSize = False + Caption = 'hod' + end + object Label8: TLabel + Left = 223 + Top = 11 + Width = 25 + Height = 14 + AutoSize = False + Caption = 'min' + end + object edtCasHod: TRzNumericEdit + Left = 96 + Top = 4 + Width = 32 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 2 + ParentFont = False + TabOrder = 0 + OnKeyUp = edtCasHodKeyUp + DisplayFormat = ',0;(,0)' + end + object edtCasMin: TRzNumericEdit + Left = 179 + Top = 4 + Width = 39 + Height = 25 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + OnKeyUp = edtCasMinKeyUp + DisplayFormat = ',0;(,0)' + end + end + object grpNadvyroba: TGroupBox + Left = 238 + Top = 263 + Width = 307 + Height = 30 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 14 + object Label14: TLabel + Left = 10 + Top = 6 + Width = 113 + Height = 17 + Caption = 'V'#253'dejka materi'#225'lu:' + end + object selVydejMat: TRzButtonEdit + Left = 140 + Top = 4 + Width = 161 + Height = 25 + Text = '' + Alignment = taCenter + TabOrder = 0 + OnExit = selVydejMatExit + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selVydejMatButtonClick + end + end + object selFronta: TRzButtonEdit + Left = 103 + Top = 106 + Width = 132 + Height = 25 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 20 + ParentFont = False + TabOrder = 15 + Visible = False + OnExit = selFrontaExit + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selFrontaButtonClick + end + object pOperace: TPopupMenu + Left = 510 + Top = 347 + object pOdznacVse: TMenuItem + Caption = 'O&dzna'#269'it v'#353'e' + OnClick = pOdznacVseClick + end + object pVyberVse: TMenuItem + Caption = '&Vybrat v'#353'e' + OnClick = pVyberVseClick + end + end +end diff --git a/frmOdvedPrikaz.pas b/frmOdvedPrikaz.pas new file mode 100644 index 0000000..f5360c0 --- /dev/null +++ b/frmOdvedPrikaz.pas @@ -0,0 +1,1828 @@ +unit frmOdvedPrikaz; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, RzEdit, RzBtnEdt, ddPlugin_TLB, Vcl.ComCtrls, + NxGrid6, NxCustomGrid6, NxColumns6, Vcl.Buttons, Vcl.Menus, RzDTP, NxGridView6, NxControls6, NxVirtualGrid6, + Vcl.WinXCtrls; + +const + clYellowLight = $0078F8E8; + + DesignTimePixelsPerInch = 120; + KLF_ACTIVATE = $00000001; + KLF_SETFORPROCESS = $00000100; + + radaVPNadvyroba = '400'; + radaVPRekl = '090'; + radaVPVyroba = '100'; + sklVyr = '200'; + sklFin = '210'; + sklObch = '100'; + sklDP = '20000105'; // nadvyroba + bidHrOdvod = 100053; + bidFrontaPrace = 11109; + radaOdved = '220'; + radaOdvedO = '150'; + radaOdvedNad = '240'; + rDoklVydMat = '400'; + rDoklVydMatO = '350'; + tblEvidOp = '[dbo].[_TabEvidOperaci_Barcode]'; + tblEvidOpPol = '[dbo].[_TabEvidOpPolozky]'; + tblEvidOpVPr = '[dbo].[_TabEvidOpPrikazy]'; + tblEvidNadvyr = '[dbo].[_TabEvidNadvyroby]'; + tblEvidNadPrij = '[dbo].[_TabEvidNadvyrPrijmy]'; + tblEvidNadvyrVPr = '[dbo].[_TabEvidNadvyrPrikaz]'; + errPlg = #13#10 + '(plgLOVATO.u10)'; + + sklVyroba = '200'; // přidáno 8.11.2018 + +type + TidVPs = record + id: integer; + radaPrikaz: string[20]; + idKZ: integer; + ks: Extended; + end; + + TOperace = record + idVP: integer; + doklad: integer; + operace: integer; + casS: extended; + ks: extended; + koef: extended; + end; + + TcasKoef = record + operace: ShortString; + koef: extended; + end; + + TformOdvedeniPrikazu = class(TForm) + selPrikaz: TRzButtonEdit; + lblDilec: TLabel; + Label2: TLabel; + Label3: TLabel; + lblZadane: TLabel; + lblZive: TLabel; + selBarCode: TRzButtonEdit; + edtKusu: TRzNumericEdit; + Label1: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + edtCasMin: TRzNumericEdit; + selZamest: TRzButtonEdit; + lblZamest: TLabel; + cbCasMzda: TCheckBox; + edtCasHod: TRzNumericEdit; + Label7: TLabel; + Label8: TLabel; + Label9: TLabel; + lblEvid: TLabel; + GroupBox2: TGroupBox; + selDilec: TRzButtonEdit; + Label10: TLabel; + selSmena: TRzButtonEdit; + gOperace: TNextGrid6; + colOper: TNxNumberColumn6; + colPopis: TNxTextColumn6; + colEvid: TNxCheckBoxColumn6; + btnSave: TBitBtn; + btnSavetisk: TBitBtn; // přidáno 11.3.2019 + btnCancel: TBitBtn; + pOperace: TPopupMenu; + pOdznacVse: TMenuItem; + pVyberVse: TMenuItem; + Label11: TLabel; + Label12: TLabel; + colIdPostup: TNxNumberColumn6; + colNormCasS: TNxNumberColumn6; + Label13: TLabel; + cbSklad: TComboBox; + dtDatum: TRzDateTimePicker; + grpTampo: TGroupBox; + grpNadvyroba: TGroupBox; + Label14: TLabel; + selVydejMat: TRzButtonEdit; + Label15: TLabel; + selFronta: TRzButtonEdit; + gView: TNxReportGridView6; + procedure selPrikazButtonClick(Sender: TObject); + procedure selBarCodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure FormShow(Sender: TObject); + procedure btnSaveClick(Sender: TObject); + procedure btnSaveTiskClick(Sender: TObject); // přidáno 11.3.2019 + procedure FormActivate(Sender: TObject); + procedure selZamestButtonClick(Sender: TObject); + procedure selZamestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure edtCasMinKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selZamestExit(Sender: TObject); + procedure Label6MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure edtCasHodKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecButtonClick(Sender: TObject); + procedure selDilecKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecExit(Sender: TObject); + procedure edtKusuExit(Sender: TObject); + procedure edtKusuKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure pOdznacVseClick(Sender: TObject); + procedure pVyberVseClick(Sender: TObject); + procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selVydejMatButtonClick(Sender: TObject); + procedure selVydejMatExit(Sender: TObject); + procedure selPrikazExit(Sender: TObject); + procedure selBarCodeExit(Sender: TObject); + procedure selFrontaExit(Sender: TObject); + procedure selFrontaButtonClick(Sender: TObject); + procedure selPrikazKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure FormResize(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure selZamestEnter(Sender: TObject); + procedure edtKusuEnter(Sender: TObject); + procedure selDilecEnter(Sender: TObject); + procedure ZadejVyrPrikazNaVydejku(const Helios: IHelios; idVPr: Integer; MnozstviNaVydejku: double); // přidáno 8.11.2018 + procedure UlozChybu(const Helios: IHelios; msg: string; E:Exception); // přidáno 8.11.2018 + private +// procedure WMNCLBUTTONDOWN(var msg: TMessage); message WM_NCLBUTTONDOWN; + function TestFormulareOK: Boolean; + function VlastniSkladySQL(const datum: string): string; + procedure VyplnPrikaz; + procedure VyplnDleDilce; + procedure VyplnFrontuPrace; + procedure NastavGrid; + procedure Odved(const Vytiskni: boolean); + public + Helios: IHelios; + typOdvodu: byte; + jeTest: boolean; + TiskListku: boolean; // přidáno 11.3.2019 + idTiskForm: integer; + end; + +var + verText: string; + formOdvedeniPrikazu: TformOdvedeniPrikazu; + idPrikaz, idKZ, idDZ, idPZ, idVydej, idNadvyr, idPrPostup: integer; + sklProOdvod, dokl, kmen, cZam, idZam, operaceFP: string; + vOle1,vOle2: OleVariant; + casTPVs,casTPVm: Extended; + canCont, nadvyroba: boolean; + layName: array[0..KL_NAMELENGTH+1] of Char; + + +implementation +uses Vcl.Clipbrd, System.StrUtils, System.Threading, helUtils, myUtils; + +{$R *.dfm} + +{ + procedure TformOdvedeniPrikazu.WMNCLBUTTONDOWN(var msg: TMessage); + var txt: string; + begin + if (msg.WParam=HTCAPTION) and (HiWord(GetKeyState(VK_SHIFT))<>0) then + begin + txt:= 'Scr ' + IntToStr(Screen.Width) + ' w / ' + IntToStr(Screen.Height) + ' h' + CRLF; + txt:= txt + 'Frm ' + IntToStr(Self.Width) + ' w / ' + IntToStr(Self.Height) + ' h' + CRLF; + txt:= txt + IntToStr(Screen.PixelsPerInch) + ' PPI mon / ' + IntToStr(Self.PixelsPerInch) + ' PPI frm' + CRLF; + Helios.Info(txt); + end; + end; +} + + + function TformOdvedeniPrikazu.VlastniSkladySQL(const datum: string): string; + var sql: string; + begin + result:= 'N' + QuotedStr(''); + sql:= 'DECLARE @dt DATETIME; DECLARE @i INT;'; + if (datum<>'') then + sql:= sql + ' SET @dt=CONVERT(datetime,N' + QuotedStr(datum) + ',104); EXEC @i=dbo.hp_GetObdobiDleDatumu @Datum=@dt, @JakyDatum=1' + else + sql:= sql + ' SET @i=' + IntToStr(Helios.Obdobi); + sql:= sql + '; SELECT s.Cislo FROM ' + tblStrom + ' s INNER JOIN dbo.TabStromDef d ON (d.IdStrom=s.Id) WHERE d.Blokovano=0 AND d.Zakazano=0'; + sql:= sql + ' AND s.Cislo LIKE N' + QuotedStr('2%') + ' AND s.Nazev LIKE N' + QuotedStr('%LOV') + ' AND d.IdObdobi=@i ORDER BY s.Cislo'; + with Helios.OpenSQL(sql) do + if (RecordCount>0) then + begin + First; + result:= ''; + while not(EOF) do + begin + result:= result + 'N' + QuotedStr(FieldValues(0)) + ','; + Next; + end; + if (RightStr(result,1)=',') then + result:= LeftStr(Result, Length(Result)-1); + end; + end; + + + procedure TformOdvedeniPrikazu.NastavGrid; + begin +// gOperace.HeaderSize:= Screen.PixelsPerInch + if (gOperace.RowCount<1) then + gOperace.ClearRows; + gOperace.Width:= Self.Width - 30; + gOperace.Height:= btnSave.Top - gOperace.Top - 10; + gOperace.Left:= 10; + gOperace.RowHeight:= 24; +// gOperace.RowSize:= 24; + + gOperace.Columns.Item[0].Width:= Round(gOperace.Width*0.12); + gOperace.Columns.Item[1].Width:= Round(gOperace.Width*0.12); + gOperace.Columns.Item[2].Width:= gOperace.Width - gOperace.Columns.Item[0].Width - gOperace.Columns.Item[1].Width - 20; + + btnSave.Top:= Self.Height - 2*btnSave.Height - Round(Self.Height*0.03); + btnCancel.Top:= btnSave.Top; + btnSaveTisk.Top:= btnSave.Top; // přidáno 12.3.2019 + end; + + + + procedure TformOdvedeniPrikazu.pOdznacVseClick(Sender: TObject); + var i: Integer; + begin + for i:=0 to gOperace.RowCount-1 do + gOperace.Cell[1,i].AsBoolean:= false; + end; + + + + function TformOdvedeniPrikazu.TestFormulareOK; + var lSQL: string; + begin + result:= false; + if (Pos('%',selDilec.Text)>0) and (typOdvodu=2) then + Exit; + result:= true; + if (edtKusu.Value<=0) or (edtKusu.Value>StrToFloat(lblZive.Caption)) then + begin + Helios.Error(#1'Chybné množství odváděných kusů.'#1); + edtKusu.SetFocus; + result:= false; + end; + if (idVydej>0) and (result) then + begin + lSQL:= 'SELECT id FROM ' + tblEvidNadvyr + ' WHERE IdVydejkaMat=' + IntToStr(idVydej) + ' AND Mnozstvi0) then + begin + Helios.Error(#1'Zadané množství by přesáhlo množství zbývající (objednáno-zaevidováno).'#1); + edtKusu.Value:= 0; + edtKusu.SetFocus; + result:= false; + end; + end; +{ + if (edtCasHod.Value<0) then + begin + Helios.Error(#1'Chybný evidovaný čas (v hodinách).'#1); + result:= false; + end; + if (edtCasMin.Value<0) then + begin + Helios.Error(#1'Chybný evidovaný čas (v minutách).'#1); + result:= false; + end; + if (edtCasHod.Value<=0) and (edtCasMin.Value<=0) and (not nadvyroba) then + begin + Helios.Error(#1'Chybný evidovaný čas.'#1); + result:= false; + end; +} + if ((idZam='') or (idZam='0')) and (result) then + begin + Helios.Error(#1'Nebyl vybrán zaměstnanec.'#1); + result:= false; + end; +{ + if (nadvyroba) then + begin + Helios.Error(#1'Nebyla vybrána materiálový výdejka ("Objednávka nadvýroby").'#1); + result:= false; + end; +} + + end; + + + + procedure TformOdvedeniPrikazu.VyplnFrontuPrace; + var lSQL: string; + r: integer; + begin + if (idPrPostup>0) then + begin + gOperace.RowCount:= gOperace.RowCount + 1; + r:= gOperace.RowCount-1; + with Helios.OpenSQL('SELECT Operace,Nazev FROM ' + tblPrPost + ' WHERE id=' + IntToStr(idPrPostup)) do + if (gOperace.Cells[3,r]<>IntToStr(idPrPostup)) then + begin + gOperace.Cell[0,r].AsString:= VarToStr(FieldValues(0)); + gOperace.Cell[1,r].AsBoolean:= true; + gOperace.Cell[2,r].AsString:= VarToStr(FieldValues(1)); + gOperace.Cell[3,r].AsInteger:= idPrPostup; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.VyplnPrikaz; + var lSQL, podm: string; + begin + selPrikaz.Text:= Trim(selPrikaz.Text); + selPrikaz.Text:= StringReplace(selPrikaz.Text,' ','',[rfReplaceAll]); + if (selPrikaz.Text<>'') then + begin + podm:= 'p.Rada=N' + QuotedStr(LeftStr(selPrikaz.Text, Pos('-', selPrikaz.Text)-1)); + podm:= podm + ' AND p.Prikaz=' + MidStr(selPrikaz.Text,Pos('-', selPrikaz.Text)+1,255); + lSQL:= 'SELECT kz.SkupZbo,kz.RegCis,kz.Nazev1,p.kusy_zad,p.kusy_zive,p.kusy_odved,kz.id,pp.Doklad FROM ' + tblPrikaz + ' p INNER JOIN '; + lSQL:= lSQL + tblKZ + ' kz ON (p.IdTabKmen=kz.id) INNER JOIN ' + tblPrPost + ' pp ON (p.id=pp.IDPrikaz AND pp.Odvadeci=1)'; + lSQL:= lSQL + ' WHERE ' + podm; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + lblDilec.Caption:= VarToStr(FieldValues(0)) + ' ' + VarToStr(FieldValues(1)) + ' ' + VarToStr(FieldValues(2)); + lblZadane.Caption:= VarToStr(FieldValues(3)); + lblZive.Caption:= VarToStr(FieldValues(4)); + if (lblZive.Caption='0') then + lblZive.Font.Color:= clRed + else + lblZive.Font.Color:= clWindowText; + lblEvid.Caption:= VarToStr(FieldValues(5)); + idKZ:= StrToInt(VarToStr(FieldValues(6))); + dokl:= VarToStr(FieldValues(7)); + with Helios.OpenSQL('SELECT VychoziSklad FROM ' + tblParKZ + ' WHERE IdKmenZbozi=' + IntToStr(idKZ)) do + if (RecordCount>0) then + sklProOdvod:= VarToStr(FieldValues(0)); + end; + if (idPrikaz>0) then + begin + if (selBarCode.Text='') then + begin + with Helios.OpenSQL('SELECT TOP(1) BarCode FROM ' + tblPrPost + ' WHERE idPrikaz=' + IntToStr(idPrikaz) + ' AND Odvadeci=1') do + if RecordCount>0 then + selBarCode.Text:= VarToStr(FieldValues(0)); + selZamest.SetFocus; + end; + with Helios.OpenSQL('SELECT ISNULL(SUM(TAC_S),0),ISNULL(SUM(TAC_N),0) FROM ' + tblPrPost + ' WHERE IdPrikaz=' + IntToStr(idPrikaz)) do + if (RecordCount>0) then + begin + casTPVs:= RoundToEX(StrToFloat(VarToStr(FieldValues(0))),-1); + casTPVm:= RoundToEX(StrToFloat(VarToStr(FieldValues(1))),-1); + with Helios.OpenSQL('SELECT id,Operace,nazev,TAC_Obsluhy_S FROM ' + tblPrPost + ' WHERE IdPrikaz=' + IntToStr(idPrikaz)) do + begin + First; + gOperace.ClearRows; + while not(EOF) do + begin + gOperace.AddRow; + gOperace.Cell[0,gOperace.RowCount-1].AsString:= VarToStr(FieldValues(1)); + gOperace.Cell[1,gOperace.RowCount-1].AsBoolean:= true; + gOperace.Cell[2,gOperace.RowCount-1].AsString:= VarToStr(FieldValues(2)); + gOperace.Cell[3,gOperace.RowCount-1].AsInteger:= StrToInt(VarToStr(FieldValues(0))); + gOperace.Cell[4,gOperace.RowCount-1].AsFloat:= StrToFloat(VarToStr(FieldValues(3))); + Next; + end; + end; + + end; + + end; + end; + end; + + + procedure TformOdvedeniPrikazu.btnSaveClick(Sender: TObject); +begin + Odved(false); +end; + + // přidáno 11.3.2019 + procedure TformOdvedeniPrikazu.btnSaveTiskClick(Sender: TObject); +begin + Odved(true); +end; + + + + procedure TformOdvedeniPrikazu.edtCasHodKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + edtCasMin.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.edtCasMinKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + btnSave.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.edtKusuEnter(Sender: TObject); + begin + if (selZamest.Text<>'') and (lblZamest.Caption='') then + selZamestExit(Sender); + selDilec.Color:= clWindow; + selZamest.Color:= clWindow; + edtKusu.Color:= clYellowLight; + end; + + + + procedure TformOdvedeniPrikazu.edtKusuExit(Sender: TObject); + begin + edtKusu.Color:= clWindow; + if (edtKusu.Value>0) then + begin + if (edtKusu.Value>StrToFloat(lblZive.Caption)) then + begin + Helios.Error(#1'Nelze odvést víc kusů než zbývá na příkaze.'#1); + edtKusu.Value:= 0; + edtKusu.Color:= clYellowLight; + edtKusu.SelectAll; + edtKusu.SetFocus; + end + else + btnSave.SetFocus; + end + else + if (gOperace.RowCount>1) then + Helios.Error(#1'Zadejte počet kusů'#1); + end; + + + + procedure TformOdvedeniPrikazu.edtKusuKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + btnSave.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.FormActivate(Sender: TObject); + begin + canCont:= false; + + verText:= GetFileVersion2(GetModuleName(HInstance)); + if (Length(verText)=12) then + verText:= LeftStr(verText,9) + '0' + RightStr(verText,3); + selDilec.SetFocus; + Self.Caption:= Self.Caption + ' (verze ' + verText + ')'; + + btnSave.Top:= Self.Height - 2*btnSave.Height - Round(13/(Screen.Height/Self.Width)); + btnCancel.Top:= btnSave.Top; + btnSaveTisk.Top:= btnSave.Top; // přidáno 12.3.2019 + gOperace.Height:= btnSave.Top - gOperace.Top - 15; + + case typOdvodu of + 1: begin // podle prikazu + selDilec.Enabled:= false; + selFronta.Enabled:= false; + selPrikaz.Enabled:= true; + selPrikaz.SetFocus; + end; + 2: begin // podle vyrobku + selPrikaz.Enabled:= false; + selFronta.Enabled:= false; + selDilec.Enabled:= true; + selDilec.SetFocus; + end; + 3: begin // podle fronty prace + selDilec.Enabled:= false; + selPrikaz.Enabled:= false; + selFronta.Enabled:= true; + selFronta.SetFocus; + end; + end; + + selDilec.Left:= Label12.Left + Label12.Width + 13; + selPrikaz.Left:= Label11.Left + Label11.Width + 8; + dtDatum.Left:= Label4.Left + Label4.Width + 8; + Label5.Left:= dtDatum.Left + dtDatum.Width + 8; + selZamest.Left:= Label5.Left + Label5.Width + 8; + lblZamest.Left:= selZamest.Left + selZamest.Width + 8; + edtKusu.Left:= Label1.Left + Label1.Width + 10; +// Self.Width:= Round(320/(Screen.Height/Screen.Width)); + + end; + + + + procedure TformOdvedeniPrikazu.FormClose(Sender: TObject; var Action: TCloseAction); + begin + if (layName[0]<>'') then + LoadKeyboardLayout(@layName, KLF_ACTIVATE or KLF_SETFORPROCESS); + Action:= caFree; + end; + + + + procedure TformOdvedeniPrikazu.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin +// if Key=VK_RETURN then +// Key:= 0; + end; + + + + procedure TformOdvedeniPrikazu.FormResize(Sender: TObject); + begin + NastavGrid; + end; + + + + procedure TformOdvedeniPrikazu.FormShow(Sender: TObject); + var lSQL: string; + idx, x: integer; + begin + if GetKeyboardLayoutName(@layName) then + LoadKeyboardLayout('00020409', KLF_ACTIVATE or KLF_SETFORPROCESS); + +{ + Application.Handle:= Helios.MainApplicationHandle; + Application.Icon.Handle:= Helios.MainApplicationIconHandle; + + DefFontData.CharSet:= Helios.Charset; + DefFontData.Name:= Helios.Font; + DefFontData.Height:= Helios.FontHeight; + + Screen.MenuFont.CharSet:= DefFontData.CharSet; + Screen.MenuFont.Name:= DefFontData.Name; + Screen.MenuFont.Height:= DefFontData.Height; + + Self.Font.Name:= Helios.Font; + Self.Font.Size:= Helios.FontHeight; +} + +// ignore changed DPI and keep dialog in originaly designed size +// if (Screen.PixelsPerInch<>PixelsPerInch) then +// ScaleBy(Screen.PixelsPerInch, PixelsPerInch); + + idx:= 0; + x:= Helios.FontHeight-3; + while (idx0) then + begin // Nadvyroba + nadvyroba:= true; + Label11.Visible:= false; + selPrikaz.Visible:= false; + grpTampo.Visible:= false; + grpNadvyroba.Visible:= true; + cbSklad.ItemIndex:= 2; + cbSklad.Enabled:= false; +// edtCasHod.Enabled:= false; +// edtCasMin.Enabled:= false; + selSmena.Enabled:= false; + gOperace.PopupMenu:= nil; + selVydejMat.SetFocus; + Self.Caption:= 'Odvedení Nadvýroby'; + end; + + with Helios.OpenSQL('SELECT kod FROM ' + tblCSmen + ' WHERE Blokovano=0') do + if (RecordCount>0) then + begin + First; + selSmena.Text:= VarToStr(FieldValues(0)); + end; + + if TiskListku = true then btnSaveTisk.enabled:=true else btnSaveTisk.enabled:= false; // přidáno 11.3.2019 + end; + + + + procedure TformOdvedeniPrikazu.Label6MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer); + begin + if (ssShift in Shift) then + ShowMessage('Čas dle TPV: sek. ' + FloatToStr(casTPVs*edtKusu.Value) + ' / min. ' + FloatToStr(casTPVm*edtKusu.Value)); + end; + + + + procedure TformOdvedeniPrikazu.selBarCodeExit(Sender: TObject); + begin + selPrikazExit(Sender); + end; + + + procedure TformOdvedeniPrikazu.selBarCodeKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + selBarCode.Text:= Trim(selBarCode.Text); + if (selBarCode.Text<>'') then + begin + selDilec.Text:= ''; + idKZ:= 0; + end; + if (Key=VK_RETURN) then + begin + with Helios.OpenSQL('SELECT idPrikaz FROM ' + tblPrPost + ' WHERE BarCode=N' + QuotedStr(selBarCode.Text)) do // and Odvadeci=1 + if (RecordCount>0) then + begin + idPrikaz:= StrToInt(VarToStr(FieldValues(0))); + with Helios.OpenSQL('SELECT RadaPrikaz FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idPrikaz)) do + selPrikaz.Text:= VarToStr(FieldValues(0)); + VyplnPrikaz; + selZamest.SetFocus; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.pVyberVseClick(Sender: TObject); + var i: Integer; + begin + for i:=0 to gOperace.RowCount-1 do + gOperace.Cell[1,i].AsBoolean:= true; + end; + + + + procedure TformOdvedeniPrikazu.VyplnDleDilce; + var lSQL: string; + idx: integer; + begin + if (idKZ>0) then + begin + with Helios.OpenSQL('SELECT SkupZbo,RegCis,Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStR(idKZ)) do + begin + selDilec.Text:= VarToStr(FieldValues(0)) + ' ' + VarToStr(FieldValues(1)); + lblDilec.Caption:= VarHodnota(FieldValues(2),''); + end; + + lSQL:= 'SELECT SUM(kusy_zad), SUM(kusy_odved), SUM(kusy_zive) FROM ' + tblPrikaz; + lSQL:= lSQL + ' WHERE StavPrikazu=30 AND IDTabKmen=' + IntToStr(idKZ); + if (nadvyroba) then + lSQL:= lSQL + ' AND KmenoveStredisko=N' + QuotedStr(sklDP); + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + if not VarIsNull(FieldValues(0)) then + lblZadane.Caption:= VarToStr(FieldValues(0)); + if not VarIsNull(FieldValues(1)) then + lblEvid.Caption:= VarToStr(FieldValues(1)); + if not VarIsNull(FieldValues(2)) then + lblZive.Caption:= VarToStr(FieldValues(2)); + end; + + with Helios.OpenSQL('SELECT CONVERT(int,operace),nazev,id,TAC_S FROM ' + tblPostup + ' WHERE dilec=' + IntToStr(idKZ)) do + if (RecordCount>0) then + begin + gOperace.ClearRows; + NastavGrid; + gOperace.RowCount:= RecordCount; + First; + idx:= -1; + while not(EOF) do + begin + Inc(idx); + gOperace.Cell[0,idx].AsInteger:= VarHodnota(FieldValues(0),0); + gOperace.Cell[1,idx].AsBoolean:= true; + gOperace.Cell[2,idx].AsString:= VarHodnota(FieldValues(1),''); + gOperace.Cell[3,idx].AsInteger:= VarHodnota(FieldValues(2),0); + gOperace.Cell[4,idx].AsFloat:= VarHodnota(FieldValues(3),0.0); // normovany cas v sek + Next; + end; + end; + selZamest.SetFocus; + end; + end; + + + + procedure TformOdvedeniPrikazu.selDilecButtonClick(Sender: TObject); + var podm: string; + begin + idKZ:= 0; + podm:= 'TabKmenZbozi.id IN (SELECT IDTabKmen FROM ' + tblPrikaz + ' WHERE StavPrikazu=30 GROUP BY IDTabKmen)'; + if Helios.Prenos(bidKZ,'id',vOle1,podm,'Vyráběné dílce',true) then + idKZ:= StrToInt(VarToStr(vOle1)); + VyplnDleDilce; + end; + + + + procedure TformOdvedeniPrikazu.selDilecEnter(Sender: TObject); + begin + selDilec.Color:= clYellowLight; + end; + + + + procedure TformOdvedeniPrikazu.selDilecExit(Sender: TObject); + var podm: string; + begin + selDilec.Color:= clWindow; + selDilec.Text:= UpperCase(Trim(selDilec.Text)); +// selDilec.Text:= StringReplace() + if (selDilec.Text<>'') then + begin + if Pos('%',selDilec.Text)>0 then + selDilec.Text:= StringReplace(selDilec.Text,'%','_',[rfReplaceAll]); + podm:= 'SELECT id FROM ' + tblKZ + ' WHERE UPPER(CisloZbozi) LIKE N' + QuotedStr('%' + StringReplace(selDilec.Text,' ','',[rfReplaceAll]) + '%' ); + if (selDilec.Text<>'') and (idKZ=0) then + with Helios.OpenSQL(podm) do + begin + if (RecordCount>1) then + begin + podm:= 'TabKmenZbozi.id IN (' + podm + ')'; + if Helios.Prenos(bidKZ,'id',vOle1,podm,'Vyráběné dílce',true) then + idKZ:= StrToInt(VarToStr(vOle1)); + end; + + if (RecordCount=1) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + + if (RecordCount=0) then + begin + idKZ:= 0; + Helios.Error(#1'Zadaný dílec nebyl nalezen.'#1); + selDilec.Color:= clYellowLight; + selDilec.SelectAll; + selDilec.SetFocus; + end; +{ + with Helios.OpenSQL('SELECT id FROM ' + tblPostup + ' WHERE dilec=' + IntTOStr(idKZ)) do + if RecordCount>1 then + begin + if not Helios.YesNo(#1'Pozor, tento dílec obsahuje více jak 1 operaci na kus.'#1 + CRLF + 'Chcete jej i přesto evidovat ?',true) then + Exit; + end; +} + if (idKZ>0) then + begin + VyplnDleDilce; + selZamest.Color:= clYellowLight; + selZamest.Text:= ''; + selZamest.SelectAll; + end; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.selDilecKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + begin +// if (Key=VK_RETURN) then +// Key:= 0; + end; + + + + procedure TformOdvedeniPrikazu.selDilecKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + selDilec.Text:= Trim(selDilec.Text); + if (selDilec.Text<>'') then + begin + selBarCode.Text:= ''; + selPrikaz.Text:= ''; + idPrikaz:= 0; + end; + if (Key=VK_RETURN) then + begin + selDilec.Width:= Self.Canvas.TextWidth(selDilec.Text); + selDilecExit(Sender); + end; + end; + + + + procedure TformOdvedeniPrikazu.selFrontaButtonClick(Sender: TObject); + var podm: string; + begin + idPrPostup:= 0; + idPrikaz:= 0; + operaceFP:= ''; + podm:= 'TabPrPostup.Kusy_zive>0 AND TabPrPostup.Pracoviste IN (SELECT id FROM ' + tblCPrac + ' WHERE Pracoviste LIKE N'; + podm:= podm + QuotedStr('RF%') + ')'; + if Helios.Prenos(bidVyrOper,'Id',vOle1,podm,'Fronta práce',true) then + begin + idPrPostup:= StrToInt(VarToStr(vOle1)); + podm:= 'SELECT vp.RadaPrikaz,pp.idPrikaz,pp.Operace FROM ' + tblPrPost + ' pp INNER JOIN ' + tblPrikaz; + podm:= podm + ' vp ON (vp.Id=pp.IdPrikaz) WHERE pp.id=' + IntToStr(idPrPostup); + with Helios.OpenSQL(podm) do + begin + selPrikaz.Text:= VarToStr(FieldValues(0)); + idPrikaz:= StrToInt(VarToStr(FieldValues(1))); + operaceFP:= Trim(VarToStr(FieldValues(2))); + end; + selFronta.Text:= IntToStr(idPrPostup); + VyplnPrikaz; + VyplnFrontuPrace; + end; + end; + + + procedure TformOdvedeniPrikazu.selFrontaExit(Sender: TObject); + begin + selFronta.Text:= Trim(selFronta.Text); + if (selFronta.Text<>'') and IsNumeric(selFronta.Text) then + begin + if (idPrPostup=0) then + with Helios.OpenSQL('SELECT Id,IdPrikaz,Operace FROM ' + tblPrPost + ' WHERE id=' + selFronta.Text) do + if (RecordCount=1) then + begin + idPrPostup:= StrToInt(VarToStr(FieldValues(0))); + idPrikaz:= StrToInt(VarToStr(FieldValues(1))); + operaceFP:= Trim(VarToStr(FieldValues(2))); + VyplnPrikaz; + VyplnFrontuPrace; + end; + end + else + begin + idPrPostup:= 0; + idPrikaz:= 0; + operaceFP:= ''; + Helios.Error(#1'Chybně zadané identifikační číslo operace.'#1); + end; + end; + + + + procedure TformOdvedeniPrikazu.selPrikazButtonClick(Sender: TObject); + var podm: string; + begin + podm:= 'TabPrikaz.StavPrikazu=30 AND TabPrikaz.KmenoveStredisko IN (N' + QuotedStr(sklVyr) + ',N'; + podm:= podm + QuotedStr(sklDP) +')'; + if Helios.Prenos(bidVyrPrik,'RadaPrikaz',vOle1,podm,'Výrobní příkazy',true) then + begin + selPrikaz.Text:= VarToStr(vOle1); + with Helios.OpenSQL('SELECT id FROM ' + tblPrikaz + ' WHERE RadaPrikaz=N' + QuotedStr(selPrikaz.Text)) do + idPrikaz:= StrToInt(VarToStr(FieldValues(0))); + VyplnPrikaz; + end; + + end; + + + + procedure TformOdvedeniPrikazu.selPrikazExit(Sender: TObject); + var podm, r: string; + begin + r:= ''; + selPrikaz.Text:= Trim(selPrikaz.Text); + selPrikaz.Text:= StringReplace(selPrikaz.Text,' ','',[rfReplaceAll]); +// if not IsNumeric(selPrikaz.Text) then + if (LeftStr(selPrikaz.Text,1)='A') then + Helios.Error(#1'Výrobní příkaz může mít jen numerické označení.' + #1 + CRLF + '(zadáváte opravdu příkaz ?]') + else + if (selPrikaz.Text<>'') then + begin + r:= LeftStr(selPrikaz.Text, Pos('-', selPrikaz.Text)-1); + podm:= 'Rada=N' + QuotedStr(r); + podm:= podm + ' AND Prikaz=' + MidStr(selPrikaz.Text,Pos('-', selPrikaz.Text)+1,255); + with Helios.OpenSQL('SELECT id,IdTabKmen FROM ' + tblPrikaz + ' WHERE StavPrikazu IN (30,40) AND ' + podm) do + if (RecordCount>0) then + begin + idPrikaz:= StrToInt(VarToStr(FieldValues(0))); + idKZ:= StrToInt(VarToStr(FieldValues(1))); + VyplnPrikaz; + selZamest.SetFocus; + end + else + begin + idPrikaz:= 0; + idKZ:= 0; + Helios.Error(#1'Nebyl nalezen odpovídající Výrobní příkaz'#1 + CRLF + '(může být již uzavřen nebo je neplatný)'); + selPrikaz.SetFocus; + end; + if (r='010') then + begin + cbSklad.ItemIndex:= 2; + grpTampo.Visible:= true; + end; + end + else + begin + idPrikaz:= 0; + idKZ:= 0; + end; + end; + + + + procedure TformOdvedeniPrikazu.selPrikazKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (selPrikaz.Text<>'') then + idKZ:= 0; + + if (Key=VK_RETURN) then + selZamest.SetFocus; + end; + + + + procedure TformOdvedeniPrikazu.selVydejMatButtonClick(Sender: TObject); + var podm: string; + begin + if (selZamest.Text='') then + begin + Helios.Error(#1'Před výběrem nejprve zadejte zaměstnance.'#1); + Exit; + end; + podm:= 'TabDokladyZbozi.DruhPohybuZbo=4 AND TabDokladyZbozi.Realizovano=1 AND TabDokladyZbozi.CisloZam=' + selZamest.Text; + if Helios.Prenos(bidDZVydej,'id',vOle1,podm,'Výdejky',true) then + idVydej:= StrToInt(VarToStr(vOle1)) + else + idVydej:= 0; + with Helios.OpenSQL('SELECT RadaDokladu,PoradoveCislo FROM ' + tblDZ + ' WHERE id=' + IntToStr(idVydej)) do + if (RecordCount>0) then + selVydejMat.Text:= VarToStr(FieldValues(0)) + '-' + StringOfChar('0', 6-Length(VarToStr(FieldValues(1)))) + VarToStr(FieldValues(1)) + else + selVydejMat.Text:= ''; + selVydejMatExit(Sender); + end; + + + + procedure TformOdvedeniPrikazu.selVydejMatExit(Sender: TObject); + var lSQL: string; + begin + selVydejMat.Text:= Trim(selVydejMat.Text); + if (selVydejMat.Text<>'') and (Pos('-',selVydejMat.Text)>0) then + begin + lSQL:= 'SELECT id FROM ' + tblDZ + ' WHERE RadaDokladu=N' + QuotedStr(LeftStr(selVydejMat.Text,Pos('-',selVydejMat.Text)-1)); + lSQL:= lSQL + ' AND PoradoveCislo=CONVERT(int,N' + QuotedStr(MidStr(selVydejMat.Text,Pos('-',selVydejMat.Text)+1,20)); + lSQL:= lSQL + ') AND DruhPohybuZbo=4 AND CisloOrg=2 AND IDSklad=N' + QuotedStr(sklFin); // IN (' + VlastniSkladySQL(DateToStr(dtDatum.Date)) + ')'; + if (selZamest.Text<>'') then + lSQL:= lSQL + ' AND CisloZam=' + selZamest.Text; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + if not(VarIsNull(FieldValues(0))) then + idVydej:= StrToInt(VarToStr(FieldValues(0))) + else + idVydej:= 0; + end; + if (idVydej=0) then + Helios.Error(#1'Nelze dohledat zadanou výdejku na Nadvýrobu.'#1) + else + begin + if (selDilec.Text='') then + begin + lSQL:= 'SELECT CisloZam,IdKmenZbozi,Mnozstvi-Zaevidovano,id FROM ' + tblEvidNadvyr + ' WHERE idVydejkaMat=' + IntToStr(idVydej); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + if not(VarIsNull(FieldValues(0))) then + selZamest.Text:= StringOfChar('0',6-Length(VarToStr(FieldValues(0)))) + VarToStr(FieldValues(0)); + idKZ:= StrToInt(VarToStr(FieldValues(1))); + with Helios.OpenSQL('SELECT PrijmeniJmeno, Id FROM ' + tblCZam + ' WHERE Cislo=' + VarToStr(FieldValues(0))) do + if (RecordCount=1) then + begin + lblZamest.Caption:= VarToStr(FieldValues(0)); + idZam:= VarToStr(FieldValues(1)); + end; + with Helios.OpenSQL('SELECT RegCis, Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ)) do + if (RecordCount=1) then + begin + selDilec.Text:= VarToStr(FieldValues(0)); + lblDilec.Caption:= VarToStr(FieldValues(1)); + end; + VyplnDleDilce; + edtKusu.Value:= StrToFloat(VarToStr(FieldValues(2))); + idNadvyr:= StrToInt(VarToStr(FieldValues(3))); + edtKusu.SetFocus; + end + else + Helios.Error(#1'Dle zadané výdejky nelze dohledat údaje k evidenci Nadvýroby.'#1 + CRLF + 'Zadejte je ručně.'); + end; + end; + end; + end; + + + + procedure TformOdvedeniPrikazu.selZamestButtonClick(Sender: TObject); + begin + if Helios.Prenos2(bidCisZam,'PrijmeniJmeno','Cislo',vOle1,vOle2,'','Zaměstnanci',true,false,false,1) then + begin + lblZamest.Caption:= VarToStr(vOle1); + cZam:= VarToStr(vOle2); + with Helios.OpenSQL('SELECT id FROM ' + tblCZam + ' WHERE Cislo=' + cZam) do + idzam:= VarToStr(FieldValues(0)); + selZamest.Text:= StringOfChar('0',6-Length(cZam)) + cZam; + edtKusu.SetFocus; + end + else + begin + lblZamest.Caption:= ''; + cZam:= '0'; + end; + end; + + + + procedure TformOdvedeniPrikazu.selZamestEnter(Sender: TObject); + begin + selZamest.Color:= clYellowLight; + end; + + + + procedure TformOdvedeniPrikazu.selZamestExit(Sender: TObject); + begin + if (selZamest.Text<>'') then + begin + selZamest.Text:= GetNumbersFromString(selZamest.Text); + selZamest.Text:= Trim(selZamest.Text); + cZam:= selZamest.Text; + with Helios.OpenSQL('SELECT PrijmeniJmeno,id FROM ' + tblCZam + ' WHERE Cislo=' + selZamest.Text) do + if (RecordCount>0) then + begin + lblZamest.Caption:= VarToStr(FieldValues(0)); + idZam:= VarToStr(FieldValues(1)); + selZamest.Text:= StringOfChar('0',6-Length(cZam)) + cZam; +// lblZamest.Left:= selZamest.Left + selZamest.Width + 5; + end + else + begin + Helios.Error(#1'Zadaný zaměstnanec nebyl nalezen, zkuste jej zadat znovu.'#1); + cZam:= '0'; + idZam:= '0'; + selZamest.SetFocus; + selZamest.Text:= ''; + lblZamest.Caption:= ''; + end; + end; + selZamest.Color:= clWindow; + end; + + + + procedure TformOdvedeniPrikazu.selZamestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + begin + if (selZamest.Text<>'') then + begin + selZamest.Width:= Self.Canvas.TextWidth(selZamest.Text) + 5; + lblZamest.Left:= selZamest.Left + selZamest.Width + 8; + selZamestExit(Sender); + edtKusu.SetFocus; + end; + end; + end; + + + // přidáno 8.11.2018 + procedure TformOdvedeniPrikazu.ZadejVyrPrikazNaVydejku(const Helios: IHelios; idVPr: Integer; MnozstviNaVydejku: double); + var lSQL, SQL, SQLko: string; + pz,mu: IHeQuery; + idVydej,idPolExpP,idExpPr,idNPol,sMU,sNO: string; + idx: Integer; + mn: extended; + PoloZkaVydejkyExistuje:boolean; + IdPolozkaVydeky:integer; + Zprava : string; + RegCis : string; + begin + if (idVPr>0) then + begin + lSQL:= 'SELECT kz.id, kz.RegCis FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.id=' + IntToStr(idVPr); + with Helios.OpenSQL(lSQL) do begin + if RecordCount=0 then + begin + //Helios.Error(#1'Výrobní příkaz není na finální výrobek.'#1); // zakomentováno 8.11.2018 + Exit; + end; + regcis:= FieldValues(1); + end; + + lSQL:= 'SELECT p.IdRezervace,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM ' + tblPrikaz + ' p INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id)'; + lSQL:= lSQL + ' WHERE kz.SkupZbo LIKE ' + QuotedStr('V%') + ' AND p.IdRezervace IS NOT NULL AND p.id=' + IntToStr(idVPr); + pz:= Helios.OpenSQL(lSQL); + if (pz.RecordCount>0) then + begin + // if Helios.YesNo('Chcete dílec z výrobního příkazu uložit do výdejky exportu ?',false) then + // begin + lSQL:= 'TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklVyroba) + ' AND TabDokladyZbozi.DruhPohybuZbo IN (2,3,4)'; + lSQL:= lSQL + ' AND TabDokladyZbozi.RadaDokladu IN (N' + QuotedStr('420') + ') AND TabDokladyZbozi.Realizovano=0'; + + // výběr výdejky + pz.First; + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + + SQLko:= ''; + + sNO:= ''; + SQLko:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + SQLko:= SQLko + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idPolExpP; // jen Exp.prikazy + with Helios.OpenSQL(SQLko) do + if (RecordCount>0) then + begin + sNO:= LeftStr(VarToStr(FieldValues(0)),2); + end else begin + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku, protože není zadána návazná objednávka na expedičním příkaze. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + exit; // a když nebude zadáno? + end; + + SQLko:= 'Select id from TabDokladyZbozi where '; + SQLko:= SQLko + 'TabDokladyZbozi.CisloOrg=1 AND TabDokladyZbozi.IDSklad=N' + QuotedStr(sklVyroba) + ' AND TabDokladyZbozi.DruhPohybuZbo IN (2,3,4)'; + SQLko:= SQLko + ' AND TabDokladyZbozi.RadaDokladu IN (N' + QuotedStr('420') + ') AND TabDokladyZbozi.Realizovano=0 AND TabDokladyZbozi.MistoUrceni= ' ; + if sNo='52' then SQLko:= SQLko + '3' else begin + if sNo='45' then SQLko:= SQLko + '1' else begin + //Helios.OpenSQL('SELECT * FROM #TabExtKom') + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku, protože zadána návazná objednávka na expedičním příkaze nezačíná na 45 nebo 52. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce='' Chyba při ukládání položky na výdejku: zadána návazná objednávka na expedičním příkaze nezačíná na 45 nebo 52. '''); + exit; + end; + + end; + + SQLko := SQLko +' AND TabDokladyZbozi.NavaznaObjednavka like ' + QuotedStr(sNo + '%'); + // kontrola na návaznpou objednávku na výdejce: + //SQLko:= SQLko + ' AND TabDokladyZbozi.NavaznaObjednavka like ' + QuotedStr(sNo + '%'); + + // helios.Info('3 ' + sNo + CRLF + SQLko); + + with Helios.OpenSQL(SQLko) do + if (RecordCount>0) then + begin + if (RecordCount=1) then idVydej:= FieldValues(0) else begin + Helios.Info('Položka nebude uložena na výdejku. Bylo nalezeno více odpovídajících nerealizovaných výdejek.'); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Bylo nalezeno více odpovídajících nerealizovaných výdejek. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + exit; + end; + end else begin + helios.Info('Položka nebude uložena na výdejku. Nebyla nalezena žádná odpovídající nerealizovaná výdejka.'); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Nebyla nalezena žádná odpovídající nerealizovaná výdejka. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + // Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce='' Položka nebude uložena na výdejku. Nebyla nalezena žádná odpovídající nerealizovaná výdejka. '''); + exit; + end; + + // konec výběru výdejky + + + + // if Helios.Prenos(bidDZVydej,'id',vOle1,lSQL,'Výdejky pro Vývoz',true) then + + + begin + pz.First; + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + + sNO:= ''; + sMU:= ''; + // idVydej:= VarToStr(vOle1); + mu:= Helios.OpenSQL('SELECT ISNULL(MistoUrceni,0) FROM ' + tblDZ + ' WHERE id=' + idVydej); + if (mu.RecordCount>0) then + begin + sMU:= VarToStr(mu.FieldValues(0)); + lSQL:= 'SELECT dz.NavaznaObjednavka FROM ' + tblPZ + ' pz INNER JOIN ' + tblDZ + ' dz ON (pz.idDoklad=dz.id)'; + lSQL:= lSQL + ' WHERE pz.DruhPohybuZbo=9 AND pz.id=' + idPolExpP; // jen Exp.prikazy + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + sNO:= LeftStr(VarToStr(FieldValues(0)),2); + if ((sNO<>'52') and (sMU='3')) or ( ((sNO<>'45') and (sMU='1')) and ((sNO<>'50') and (sMU='1')) ) then + begin + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku, protože místo určení na výdejce není určeno pro tuto řadu objednávek. '; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + Helios.Error(#1'Místo určení na výdejce není určeno pro tuto řadu objednávek.'#1); + Exit; + end; + end; + end; + + + with Helios.OpenSQL('SELECT id FROM ' + tblDZ + ' WHERE BlokovaniEditoru IS NOT NULL AND id=' + idVydej) do + if (RecordCount=0) then // doklad neni blokovan + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + idVydej); + pz.First; + idx:= 0; + while not(pz.EOF) do + begin + idPolExpP:= VarToStr(pz.FieldValues(0)); // ID polozky v ExpPr + lSQL:= VarToStr(pz.FieldValues(1)) + ' ' + VarToStr(pz.FieldValues(2)) + ' - ' + VarToStr(pz.FieldValues(3)); + // try + // mn:= StrToFloat(InputBox(lSQL,'Množství na výdejku:','0')); // 5.10.2018 přidáno ošetření na nečíslo + mn:= MnozstviNaVydejku; // změněno 8.11.2018 + // except on E:Exception do begin + // helios.Error('Zadaná honota není číslo!'); + // exit; + // end + // end; + if (mn>0) then + begin + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka '; + lSQL:= lSQL + 'NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + lSQL:= lSQL + 'DECLARE @m NVARCHAR(3),@vc INT,@sDPH NUMERIC(5,2),@sSD NUMERIC(5,2),@kEUR NUMERIC(19,6),'; + lSQL:= lSQL + '@jm INT,@k NUMERIC(19,6),@ss INT,@mn NUMERIC(19,6),@idOut INT,@d DATETIME' + CRLF; + +// udaje z radky Exp. prikazu + lSQL:= lSQL + 'SELECT @sDPH=SazbaDPH,@sSD=SazbaSD,@mn=' + StringReplace(FloatToStr(mn),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@k=Kurz,@jm=JednotkaMeny,@ss=IDZboSklad,@kEUR=KurzEuro FROM ' + tblPZ + ' WHERE id=' + idPolExpP + CRLF; + +// udaje z hlavicky Exp. prikazu + with Helios.OpenSQL('SELECT Mena,VstupniCena,Kurz,KurzEuro,DatPorizeni FROM ' + tblDZ + ' WHERE id=' + idVydej) do + begin + lSQL:= lSQL + 'SET @m=N' + QuotedStr(VarToStr(FieldValues(0))) + CRLF + 'SET @vc=' + VarToStr(FieldValues(1)); + lSQL:= lSQL + CRLF + 'SET @k=' + StringReplace(VarToStr(FieldValues(2)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @kEUR=' + StringReplace(VarToStr(FieldValues(3)),',','.',[rfReplaceAll]) + CRLF; + lSQL:= lSQL + 'SET @d=CONVERT(datetime,N' + QuotedStr(VarToStr(FieldValues(4))) + ',104)' + CRLF; + end; + + // úpravy 8.11.2018 + try + SQL:= 'DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5), @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF; + SQL:= SQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + SQL:= SQL + ' WHERE id=' + idPolExpP + CRLF; + SQL:= SQL + 'Select id from ' + tblPZ + ' where NazevSozNa1=@n1 and NazevSozNa2=@n2 and idDoklad = ' + idVydej ; + with Helios.OpenSQL(SQL) do begin + if recordcount=1 then begin + PoloZkaVydejkyExistuje := true; + IdPolozkaVydeky := FieldValues(0); + end else begin + PoloZkaVydejkyExistuje := false ; + end; + + end; + except on E4:Exception do begin + helios.Info('Chyba - položka nebude uložena na výdejku ' + CRLF + 'Detail chyby: ' + E4.ToString); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. ' + CRLF + 'Detail chyby: ' + E4.ToString; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + end; + end; + + // Helios.Info('1'); + + if PoloZkaVydejkyExistuje then begin + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET Mnozstvi = Mnozstvi + @mn where id = ' + IdPolozkaVydeky.ToString; + lSQL:= lSQL + CRLF + 'SELECT ' + IdPolozkaVydeky.ToString + ' as idout'; + idNPol:= ''; + end else begin + + + lSQL:= lSQL + 'EXEC dbo.hp_InsertPolozkyOZ @idOut OUT,@IDDoklad=' + idVydej + ',@DruhPohybu=2,@CisloOrg=1,@IDZboSklad=@ss,'; + lSQL:= lSQL + '@Mena=@m,@Kurz=@k,@JednotkaMeny=@jm,@KurzEuro=@kEUR,@SazbaSD=@sSD,@SazbaDPH=@sDPH,@ZakazanoDPH=0,'; + lSQL:= lSQL + '@VstupniCena=4,@Mnozstvi=@mn,@JCbezDaniKC=0,@PovolitDuplicitu=1,@DatPorizeni=@d,@Selectem=0'; + lSQL:= lSQL + CRLF + 'SELECT @idOut'; + idNPol:= ''; + end; + + try + Inc(idx); + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + idNPol:= VarToStr(FieldValues(0)); + if (idNPol<>'') and (idPolExpP<>'') then + begin +// aktualizuje udaje na vydejce + lSQL:= 'DECLARE @idP INT,@idRez INT,@d DATETIME,@idDok INT' + CRLF; + lSQL:= lSQL + 'DECLARE @n1 NVARCHAR(30),@n2 NVARCHAR(30),@jc NUMERIC(19,6),@jcV NUMERIC(19,6),@k NUMERIC(12,5)' + CRLF; + lSQL:= lSQL + 'SELECT @n1=NazevSozNa1,@n2=NazevSozNa2,@d=PozadDatDod,@jc=JCbezDaniKC,@jcV=JCbezDaniVal,@idDok=IDDoklad FROM ' + tblPZ; + lSQL:= lSQL + ' WHERE id=' + idPolExpP + CRLF; + lSQL:= lSQL + 'SELECT @k=Kurz FROM ' + tblDZ + ' WHERE id=@idDok' + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET PozadDatDod=@d,NazevSozNa1=@n1,NazevSozNa2=@n2,JCbezDaniKC=@jcV*@k,JCbezDaniVal=@jcV'; + lSQL:= lSQL + ',IdOldPolozka=' + idPolExpP + ' WHERE id=' + idNPol + CRLF; + lSQL:= lSQL + 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JCbezDaniKC*Mnozstvi,CCbezDaniVal=JCbezDaniVal*Mnozstvi WHERE id=' + idNPol; + Helios.ExecSQL(lSQL); +// prepocte mnozstvi vydane na ExpPr + lSQL:= 'SELECT ISNULL( (SELECT IDDoklad FROM ' + tblPZ + ' WHERE Id=' + idPolExpP + '), 0)'; + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idExpPr:= VarToStr(FieldValues(0)); + lSQL:= 'MERGE dbo.TabPohybyZbozi AS T USING (SELECT ss.Id, kz.MJEvidence AS MJ FROM dbo.TabStavSkladu ss' + CRLF; + lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=ss.IDKmenZbozi) WHERE ss.IDSklad=N''200'') AS S'; + lSQL:= lSQL + ' ON (T.IdZboSklad=S.Id) WHEN MATCHED AND T.IDDoklad=' + idExpPr + ' THEN UPDATE SET T.MJ=S.MJ, T.MJEvidence=S.MJ;'; + Helios.ExecSQL(lSQL); + lSQL:= 'BEGIN TRY' + CRLF + 'EXEC dbo.hp_Aktualizuj_OdebraneMnozstviDoklad @IDDoklad=' + idExpPr + ',@DruhPohybu=9' + CRLF; + lSQL:= lSQL + 'END TRY' + CRLF + 'BEGIN CATCH' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=ERROR_MESSAGE' + CRLF + 'END CATCH'; //upraveno 5.10.2018 - odstraněny závorky za error_message + try + Helios.ExecSQL(lSQL); + except on E:Exception do begin + // UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + sql, E); + UlozChybu(Helios,'Nelze aktualizovat kalkulační cenu ! SQL: ' + lsql, E); // změněno 26.6.2018 (z sql na lsql) + Zprava := 'Odvod BC: Chyba - Nelze aktualizovat kalkulační cenu ! SQL: ' + lsql; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + end; + end; + end; + + end; + except on E:Exception do begin + Helios.Error(#1'Nelze uložit položku na doklad.'#1 + CRLF + E.Message + CRLF + lSQL + errPlg); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Nelze uložit položku na doklad' + CRLF + 'Detail chyby: ' + E.ToString; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + + end; + end; + end + else begin + Helios.Error(#1'Zadané množství je nulové, převod dílce na výdejku NEBUDE proveden.'#1); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Zadané množství je nulové, převod dílce na výdejku NEBUDE proveden.' ; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + + end; + pz.Next; + end; +// Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + idVydej + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + idVydej); + Helios.Refresh(true); + // helios.Info('Položka uložena na výdejku č. '); + end + else begin + Helios.Error(#1'Doklad je blokován jiným uživatelem.'#1); + Zprava := 'Odvod BC: Chyba - položka s reg. číslem ' + RegCis + ' nebyla uložena na výdejku. Doklad je blokován jiným uživatelem.' ; + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=' + QuotedStr(Zprava)); + + end; + end; + // end; + end; + end; + end; + + // přidáno 8.11.2018 + procedure TformOdvedeniPrikazu.UlozChybu(const Helios: IHelios; msg: string; E: Exception); + var txt: string; + begin + if not Assigned(E) then + txt:= '' + else + txt:= E.Message; + if txt<>'' then + msg:= msg + ' - chyba: ' + txt; + Helios.ExecSQL('INSERT #TabExtKom (Poznamka) VALUES (N' + QuotedStr(msg) + ')'); + end; + + // přidáno 11.3.2019 - přesunuto přímo z tlačítka + procedure TformOdvedeniPrikazu.Odved(const Vytiskni: boolean); + var lSQL, podm, SQLko, SQLPodm: string; + idx, idx2, idx3, idDZshift, idPMZ, idDZV, idDZP,idKJ,idxTPV,idOdv: integer; + GidSS,Gdokl,lDokl,sTemp: string; + GidKZ,idPrKVaz: integer; + mnoz, mnReal, kszbyt, kszive, VPcas, Pcas, NormCasAll, SkCas, koef: Extended; + genVO, realVyd, realPrij, cont: boolean; + ks, ks2, dt, smena, regC, radaVPr, sklOdv, sklMat, rOdv, rPri, rPrik: string; + idVPs: TArray; + operace: TArray; + casKoef: TArray; + tblOdv, tblOdvPr, tblOdvOp: string; + idVPr: integer; // přidáno 8.11.2018 + MnozzstviOdvadene: double; // přidáno 8.11.2018 + IdOdved: integer ; // přidáno 11.3.2019 + begin + ReseedTable(Helios, tblMzdZm); + ReseedTable(Helios, tblDZ); + ReseedTable(Helios, tblPZ); + ReseedTable(Helios, tblEvidOp); + ReseedTable(Helios, tblEvidOpPol); + ReseedTable(Helios, tblEvidOpVPr); + ReseedTable(Helios, tblEvidNadPrij); + genVO:= false; + + tblOdv:= 'dbo._TabNTSEvidOpBC'; + tblOdvPr:= 'dbo._TabNTSOdvodPrikazu'; + tblOdvOp:= 'dbo._TabNTSOdvodOperaci'; + + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(tblOdv) + ') IS NOT NULL DROP TABLE ' + tblOdv); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(tblOdvPr) + ') IS NOT NULL DROP TABLE ' + tblOdvPr); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(tblOdvOp) + ') IS NOT NULL DROP TABLE ' + tblOdvOp); + + if not(jeTest) then // pokud je test, udelej tabulky typu dbo._TabNTS..... + begin + tblOdv:= StringReplace(tblOdv,'dbo._','#',[rfReplaceAll]); + tblOdvPr:= StringReplace(tblOdvPr,'dbo._','#',[rfReplaceAll]); + tblOdvOp:= StringReplace(tblOdvOp,'dbo._','#',[rfReplaceAll]); + end; + + if (TestFormulareOK) then + begin +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - klik OK uloz')); + + edtKusu.Color:= clWindow; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ',N' + QuotedStr('U') + ') IS NULL' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabExtKom(Poznamka NVARCHAR(250) NOT NULL)'; + try + Helios.ExecSQL(lSQL); + except + end; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr(IfThen(jeTest,tblOdv, 'tempdb..' + tblOdv)) + ') IS NOT NULL DROP TABLE ' + tblOdv + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblOdv + ' (IdPrikaz INT, IdKmenZbozi INT, CisloZbozi NVARCHAR(33),'; + lSQL:= lSQL + 'Datum DATETIME, Mnozstvi NUMERIC(19,6), CisloZamest INT, CasHod NUMERIC(9,4), CasMin NUMERIC(9,4),'; + lSQL:= lSQL + 'IdNadvyroba INT NULL, Poznamka NTEXT, Sklad NVARCHAR(30) NOT NULL, IDUziv INT NOT NULL, IdVydejMat INT)'; + Helios.ExecSQL(lSQL); + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr(IfThen(jeTest,tblOdvPr,'tempdb..' + tblOdvPr)) + ') IS NOT NULL DROP TABLE ' + tblOdvPr + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblOdvPr + ' (idPrikaz INT, RadaPrikaz NVARCHAR(20), idKmenZbozi INT, Datum DATETIME DEFAULT GETDATE(),'; + lSQL:= lSQL + 'Mnozstvi NUMERIC(19,6) DEFAULT 0, CisloZamest INT, CasHod TINYINT, CasMin TINYINT, SkladOdv NVARCHAR(30), SkladMat NVARCHAR(30))'; + Helios.ExecSQL(lSQL); + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr(IfThen(jeTest,tblOdvOp,'tempdb..' + tblOdvOp)) + ') IS NOT NULL DROP TABLE ' + tblOdvOp + CRLF; + lSQL:= lSQL + 'CREATE TABLE ' + tblOdvOp + ' (Operace NVARCHAR(4), idPostup INT NOT NULL, IDPrikaz INT NULL, Mnozstvi NUMERIC(19,6), NormCasS NUMERIC(10,2))'; + Helios.ExecSQL(lSQL); + + if (LeftStr(selPrikaz.Text,3)='010') then + //cbSklad.ItemIndex:= GetItemIndexStartingWith(cbSklad,'100'); + cbSklad.ItemIndex:= 3;//GetItemIndexStartingWith(cbSklad,'100'); //upraveno 26.6.2018 + sklProOdvod:= StringReplace(cbSklad.Text,'.','',[rfReplaceAll]); + if (nadvyroba) then + sklProOdvod:= sklFin; + + regC:= ''; + idOdv:= 0; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - info o porizene evidenci')); +// ReseedTable(Helios, tblEvidOp); + lSQL:= 'INSERT ' + tblOdv + ' (IdPrikaz,IdKmenZbozi,CisloZbozi,Datum,Mnozstvi,CisloZamest,CasHod,CasMin,Sklad'; + lSQL:= lSQL + ',IdNadvyroba,Poznamka,IDUziv,IdVydejMat) VALUES ('; + if (selPrikaz.Text<>'') then + lSQL:= lSQL + IntToStr(idPrikaz) + else + lSQL:= lSQL + 'NULL'; + lSQL:= lSQL + ','; + if (selDilec.Text<>'') or (idPrikaz>0) then + begin + lSQL:= lSQL + IntToStr(idKZ); + with Helios.OpenSQL('SELECT CisloZbozi FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ)) do + if (RecordCount>0) and not VarIsNull(FieldValues(0)) then + begin + lSQL:= lSQL + ',N' + QuotedStr(VarToStr(FieldValues(0))); + regC:= VarToStr(FieldValues(0)); + end + else + lSQL:= lSQL + ',NULL' + end + else + lSQL:= lSQL + 'NULL,NULL'; + podm:= DateToStr(dtDatum.Date) + ' ' + TimeToStr(Now); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(podm) + ',104),'; + lSQL:= lSQL + StringReplace(FloatToStr(edtKusu.Value),',','.',[rfReplaceAll]) + ',' + selZamest.Text + ','; + lSQL:= lSQL + StringReplace(IfThen(edtCasHod.Text<>'',edtCasHod.Text,'0'),',','.',[rfReplaceAll]) + ','; + lSQL:= lSQL + StringReplace(IfThen(edtCasMin.Text<>'',edtCasMin.Text,'0'),',','.',[rfReplaceAll]) + ',N'; + lSQL:= lSQL + QuotedStr(sklProOdvod) + ','; + if (nadvyroba) then + lSQL:= lSQL + IntToStr(idNadvyr) + else + lSQL:= lSQL + 'NULL'; + lSQL:= lSQL + ',N' + QuotedStr('') + ',' + IntToStr(Helios.UserId) + ',' + IntToStr(idVydej) + ')'; // QuotedStr(verText) + try + Helios.ExecSQL(lSQL) + except on E:Exception do + begin + Helios.Error(#1'Informace - nelze uložit údaj o pořizované evidenci.'#1 + CRLF + errPlg + CRLF + E.Message + CRLF + lSQL); + Exit; + end; + end; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - zapis operaci')); +// zapis operaci do nove tabulky + podm:= StringReplace(FloatToStr(edtKusu.Value),',','.',[rfReplaceAll]); // evidovane kusy + for idx:=0 to gOperace.RowCount-1 do + try + if (gOperace.Cell[1,idx].AsBoolean=true) then + begin + lSQL:= 'INSERT ' + tblOdvOp + ' (Operace, idPostup, Mnozstvi, NormCasS) VALUES (N'; + lSQL:= lSQL + QuotedStr(gOperace.Cell[0,idx].AsString) + ','; + lSQL:= lSQL + gOperace.Cell[3,idx].AsString + ',' + podm + ','; + lSQL:= lSQL + StringReplace(FloatToStr(gOperace.Cell[4,idx].AsFloat*edtKusu.Value),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(lSQL); + end; + except on E:Exception do + begin +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba insertu operaci: ' + E.Message)); + Helios.Error(#1'CHYBA: '#1 + E.Message + CRLF + lSQL); + Exit; + end; + end; + Helios.ExecSQL('MERGE ' + tblOdvOp + ' AS T USING dbo.TabPrPostup AS S ON (S.ID=T.IdPostup) WHEN MATCHED THEN UPDATE SET T.IdPrikaz=S.IdPrikaz;'); + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - nacitani udaju o prikazech')); +// ziskej data o prikazu/prikazech + SetLength(idVPs,1); + if (idPrikaz>0) then + begin + idVPs[0].id:= idPrikaz; + with Helios.OpenSQL('SELECT RadaPrikaz FROM ' + tblPrikaz + ' WHERE id=' + IntToStr(idPrikaz)) do + idVPs[0].radaPrikaz:= VarToStr(FieldValues(0)); + idVPs[0].idKZ:= idKZ; + idVPs[0].ks:= edtKusu.Value; + end + else + begin + lSQL:= 'SELECT id, kusy_zive, IDTabKmen, RadaPrikaz FROM ' + tblPrikaz + ' WHERE kusy_zive>0 AND StavPrikazu IN (30,40) AND '; + if (nadvyroba) then + lSQL:= lSQL + 'Rada IN (N' + QuotedStr('400') + ',N' + QuotedStr(radaVPVyroba) + ') AND KmenoveStredisko=N' + QuotedStr(sklDP) + else + lSQL:= lSQL + 'Rada IN (N' + QuotedStr(radaVPRekl) + ',N' + QuotedStr(radaVPVyroba) + ')'; + lSQL:= lSQL + ' AND IDTabKmen=' + IntTOStr(idKZ) + ' ORDER BY Rada DESC,Plan_ukonceni'; // RadaPrikaz + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + SetLength(idVPs,RecordCount); + idx:= 0; + ksZbyt:= edtKusu.Value; + First; + while (not(EOF)) and (kszbyt>0) do + begin + ksZive:= StrToFloat(VarToStr(FieldValues(1))); + if (ksZive>=kszbyt) then + begin + ksZive:= kszbyt; + ksZbyt:= 0; + end; + if (ksZive>0) then + begin + idVPs[idx].id:= StrToInt(VarToStr(FieldValues(0))); + idVPs[idx].radaPrikaz:= VarToStr(FieldValues(3)); + idVPs[idx].ks:= ksZive; + idVPs[idx].idKZ:= StrToInt(VarToStr(FieldValues(2))); + ksZbyt:= ksZbyt - ksZive; + end; + Inc(idx); + Next; + end; + end; + end; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - prikazy do pomocne tabulky')); + +// zapis prikazy do pracovni tabulky + for idx:=Low(idVPs) to High(idVPs) do + begin + idPrikaz:= idVPs[idx].id; + if (idPrikaz=0) then + Continue; + + with Helios.OpenSQL('SELECT Rada FROM dbo.TabPrikaz WHERE Id=' + IntToStr(idPrikaz)) do + radaVPr:= VarToStr(FieldValues(0)); + + sklOdv:= ''; + ks:= StringReplace(FloatToStr(idVPs[idx].ks),',','.',[rfReplaceAll]); + if (radaVPr='010') then + begin + if (sklOdv='') then + sklOdv:= sklObch; + end + else + begin + if (sklOdv='') then + sklOdv:= sklVyr; + end; + + if (nadvyroba) then + sklOdv:= sklFin; + + +{ + lSQL:= 'SELECT ISNULL(PrijemVyrDil_SkladProGenHlavDZ,N'''') /*, ISNULL(VydejMatPol_SkladProGenHlavDZ,N'''')*/ FROM dbo.TabRadyPrikazu'; + lSQL:= lSQL + ' WHERE Rada=N' + QuotedStr(radaVPr); + with Helios.OpenSQL(lSQL) do + if (VarToStr(FieldValues(0))<>'') then + sklOdv:= VarToStr(FieldValues(0)); +} + + lSQL:= 'INSERT ' + tblOdvPr + ' (IdPrikaz,RadaPrikaz,IdKmenZbozi,Mnozstvi,Datum,CisloZamest,CasHod,CasMin,SkladOdv) SELECT '; + lSQL:= lSQL + IntToStr(idPrikaz) + ',N' + QuotedStr(idVPs[idx].radaPrikaz) + ',' + IntToStr(idKZ) + ',' + StringReplace(ks,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',CONVERT(datetime,N' + QuotedStr(DateToStr(dtDatum.Date)) + ',104),' + IfThen(selZamest.Text<>'', Trim(selZamest.Text) ,'NULL'); + lSQL:= lSQL + ',0,0,N' + QuotedStr(sklOdv); + Helios.ExecSQL(lSQL); + end; + + if not(jeTest) then + begin + try +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - start procedury ep_NTS_plgOdvedeniPrikazu')); + with Helios.OpenSQL('EXEC dbo.ep_NTS_plgOdvedeniPrikazu') do //upraveno 11.3.2019 +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - konec procedury ep_NTS_plgOdvedeniPrikazu')); + if not VarIsNull(FieldValues(0)) then IdOdved:=StrToInt(FieldValues(0)) else IdOdved:=-1; + + with Helios.OpenSQL('SELECT * FROM #TabExtKom') do + if (RecordCount>0) then begin + Helios.OpenBrowse(541,''); + exit; + end; + +//přidáno 8.11.2018 + SQLko := 'Select IdPrikaz,Mnozstvi/*,RadaPrikaz,IdKmenZbozi,Datum,CisloZamest,CasHod,CasMin,SkladOdv*/ from ' + tblOdvPr ; + with Helios.OpenSQL(SQLko) do begin + if (RecordCount>0) then + begin + First; + while (not(EOF)) do + begin + idVPr:= FieldValues(0) ; + MnozzstviOdvadene:= FieldValues(1) ; + ZadejVyrPrikazNaVydejku(Helios, idVPr, MnozzstviOdvadene); + //Helios.Info(idVPr.tostring); + Next; + end; + end; + // Helios.Info(recordcount.ToString) + end; + + // Helios.Info('Dnešní verze 8.11.2018'); + + +//konec přidání 8.11.2018 + + +// přidáno 11.3.2019 + try + if (Vytiskni = true) and (IdOdved <> -1) then begin + SQLPodm := 'hvw_EvidencePraceBarcode.id=' + IntTOStr(IdOdved); + SQLko:= 'Update _TabEvidOperaci_Barcode set tisk = 1 where id = ' + IntTOStr(IdOdved); + if Helios.PrintForm3(100056, idTiskForm, SQLPodm) then begin + Helios.ExecSQL(SQLko); + end + end; + except on E:exception do + Helios.Error('Lístek se nepodařilo vytisknout ' + E.ToString); + end; +// konec přidání 11.3.2019 + + with Helios.OpenSQL('SELECT * FROM #TabExtKom') do + if (RecordCount>0) then Helios.OpenBrowse(541,''); + + + + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba pri spusteni procedury dbo.ep_NTS_plgOdvedeniPrikazu: ' + E.Message)); + end; + end + else + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - test, procedura dbo.ep_NTS_plgOdvedeniPrikazu nebude spustena')); + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - mazu temp tabulky')); + try + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabOdved') + ') IS NOT NULL DROP TABLE #TabOdved'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenPrijem') + ') IS NOT NULL DROP TABLE #TabGenPrijem'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenRezVyd') + ') IS NOT NULL DROP TABLE #TabGenRezVyd'); + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba pri mazani temp tabulek: ' + E.Message)); + end; + + Helios.Refresh(true); + end; + +// sBar.SimpleText:= ''; + if not(jeTest) then + begin + try +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - mazu temp tabulky 2')); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(IfThen(jeTest,tblOdv,'tempdb..' + tblOdv)) + ') IS NOT NULL DROP TABLE ' + tblOdv); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(IfThen(jeTest,tblOdvPr,'tempdb..' + tblOdvPr)) + ') IS NOT NULL DROP TABLE ' + tblOdvPr); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr(IfThen(jeTest,tblOdvOp,'tempdb..' + tblOdvOp)) + ') IS NOT NULL DROP TABLE ' + tblOdvOp); + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba pri mazani temp tabulek 2: ' + E.Message)); + end; + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - test podminky tisku: ' + LeftStr(selDilec.Text,3) + ' ' + lblDilec.Caption)); + // pokud je to Rele a zbytek je >0, tiskni novou pruvodku + end; + + if ((LeftStr(selDilec.Text,3)='PRF') or (LeftStr(selDilec.Text,3)='VRF') or + (LeftStr(lblDilec.Caption,3)='PRF') or (LeftStr(lblDilec.Caption,3)='VRF')) + and (StrToFloat(lblZive.Caption)-edtKusu.Value>0) then +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - podminka splnena, tisk by byl proveden')); + + begin +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - tisk')); + try + Helios.PrintForm3(bidFrontaPrace,31,'TabPrPostup.IdPrikaz=' + IntToStr(idPrikaz)); +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - konec tisku')); + except on E:Exception do + begin + Helios.Error(#1'Chyba'#1 + E.Message); + end; + end; + end; +// else +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - podminka tisku nesplnena')); + +// Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - konec pluginu')); + Close; +{ + try + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - nove form activate')); + FormActivate(Sender); + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - nove form show')); + FormShow(Sender); + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - po form show')); + except on E:Exception do + Helios.ExecSQL('EXEC dbo.hp_ZapisDoZurnalu @Uroven=2, @Udalost=-1, @Akce=N' + QuotedStr('Plg Odvod - chyba: ' + E.Message)); + end; +} + end; + +end. diff --git a/frmReklamaceMat.dfm b/frmReklamaceMat.dfm new file mode 100644 index 0000000..dc5c774 --- /dev/null +++ b/frmReklamaceMat.dfm @@ -0,0 +1,325 @@ +object formReklamaceMat: TformReklamaceMat + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = ' Reklamace - p'#345'esun MATERI'#193'LU' + ClientHeight = 533 + ClientWidth = 792 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poMainFormCenter + OnClose = FormClose + OnShow = FormShow + TextHeight = 14 + object Label1: TLabel + Left = 5 + Top = 5 + Width = 69 + Height = 16 + Caption = 'REKLAMACE' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Label2: TLabel + Left = 5 + Top = 253 + Width = 53 + Height = 16 + Caption = 'P'#344'ESUNY' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object btnOK: TButton + Left = 586 + Top = 499 + Width = 75 + Height = 25 + Caption = 'OK' + TabOrder = 0 + OnClick = btnOKClick + end + object btnStorno: TButton + Left = 708 + Top = 499 + Width = 75 + Height = 25 + Caption = 'Storno' + TabOrder = 1 + OnClick = btnStornoClick + end + object gridMat: TJvDBGrid + Left = 3 + Top = 25 + Width = 781 + Height = 215 + DataSource = dsMat + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleHotTrack] + TabOrder = 2 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -12 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = gridMatDblClick + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 18 + TitleRowHeight = 18 + Columns = < + item + Alignment = taCenter + Expanded = False + FieldName = 'mSZ' + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 40 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'mRegCis' + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 115 + Visible = True + end + item + Expanded = False + FieldName = 'mNazev' + Title.Caption = 'N'#225'zev' + Width = 535 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'mMnoz' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Visible = True + end + item + Expanded = False + FieldName = 'mIdSS' + Visible = False + end> + end + object gridCil: TJvDBGrid + Left = 5 + Top = 272 + Width = 779 + Height = 215 + DataSource = dsCil + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleHotTrack] + PopupMenu = pmCil + TabOrder = 3 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -12 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = gridCilDblClick + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 18 + TitleRowHeight = 18 + Columns = < + item + Alignment = taCenter + Expanded = False + FieldName = 'cSZ' + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 40 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'cRegCis' + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 115 + Visible = True + end + item + Expanded = False + FieldName = 'cNazev' + Title.Caption = 'N'#225'zev' + Width = 295 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'cMnoz' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'.' + Width = 65 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'cSklad' + Title.Alignment = taCenter + Title.Caption = 'Sklad' + Width = 110 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'cMnozPresun' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'.skl.' + Width = 64 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'cMnozIT' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'. IT' + Visible = True + end + item + Expanded = False + FieldName = 'cIdSSOld' + Visible = False + end + item + Expanded = False + FieldName = 'cIdSSNew' + Visible = False + end + item + Expanded = False + FieldName = 'cIdSklad' + Visible = False + end> + end + object tblMat: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 38 + Top = 110 + object mIdSS: TIntegerField + FieldName = 'mIdSS' + end + object mSZ: TStringField + FieldName = 'mSZ' + Size = 3 + end + object mRegCis: TStringField + FieldName = 'mRegCis' + Size = 30 + end + object mNazev: TStringField + FieldName = 'mNazev' + Size = 100 + end + object mMnoz: TFloatField + FieldName = 'mMnoz' + DisplayFormat = '#,##0.##' + end + end + object tblCil: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 68 + Top = 321 + object cIdSSOld: TIntegerField + FieldName = 'cIdSSOld' + Required = True + end + object cIdSSNew: TIntegerField + FieldName = 'cIdSSNew' + end + object cSZ: TStringField + FieldName = 'cSZ' + Required = True + Size = 3 + end + object cRegCis: TStringField + FieldName = 'cRegCis' + Required = True + Size = 30 + end + object cNazev: TStringField + FieldName = 'cNazev' + Required = True + Size = 100 + end + object cMnoz: TFloatField + FieldName = 'cMnoz' + Required = True + DisplayFormat = '#,##0.##' + end + object cIdSklad: TStringField + FieldName = 'cIdSklad' + Size = 30 + end + object cMnozPresun: TFloatField + FieldName = 'cMnozPresun' + DisplayFormat = '#,##0.##' + end + object cSklad: TStringField + FieldName = 'cSklad' + Size = 50 + end + object tblCilcMnozIT: TFloatField + FieldName = 'cMnozIT' + DisplayFormat = '#,##0.##' + end + end + object dsMat: TDataSource + DataSet = tblMat + Left = 82 + Top = 110 + end + object dsCil: TDataSource + DataSet = tblCil + Left = 108 + Top = 319 + end + object pmCil: TPopupMenu + Left = 246 + Top = 347 + object pmDelCil: TMenuItem + Caption = '&Smazat polo'#382'ku' + OnClick = pmDelCilClick + end + end +end diff --git a/frmReklamaceMat.pas b/frmReklamaceMat.pas new file mode 100644 index 0000000..36d7dc8 --- /dev/null +++ b/frmReklamaceMat.pas @@ -0,0 +1,327 @@ +unit frmReklamaceMat; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Buttons, FireDAC.Comp.Client, Vcl.StdCtrls, + ddPlugin_TLB, Vcl.Menus, FireDAC.Stan.Intf, FireDAC.Stan.Option, + FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet, + Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid; + +const + sklady: TArray = ['20000101','20000101001','20000104','20000104001','20000106','20000106001','200','20000001001','20000107','20000107001']; + nazvy: TArray = ['VDST','VDST REKL.','Pikl','Pikl REKL.','PCO','PCO REKL.','LOVATO V','DEMONT','CHD','CHD REKL.']; +type + TformReklamaceMat = class(TForm) + tblMat: TFDMemTable; + tblCil: TFDMemTable; + dsMat: TDataSource; + dsCil: TDataSource; + mIdSS: TIntegerField; + mNazev: TStringField; + mMnoz: TFloatField; + mSZ: TStringField; + mRegCis: TStringField; + cIdSSOld: TIntegerField; + cIdSSNew: TIntegerField; + cSZ: TStringField; + cRegCis: TStringField; + cNazev: TStringField; + cMnoz: TFloatField; + cIdSklad: TStringField; + cSklad: TStringField; + cMnozPresun: TFloatField; + btnOK: TButton; + btnStorno: TButton; + pmCil: TPopupMenu; + pmDelCil: TMenuItem; + Label1: TLabel; + Label2: TLabel; + tblCilcMnozIT: TFloatField; + gridMat: TJvDBGrid; + gridCil: TJvDBGrid; + procedure FormShow(Sender: TObject); + procedure btnStornoClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure pmDelCilClick(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure gridMatDblClick(Sender: TObject); + procedure gridCilDblClick(Sender: TObject); + private + procedure ImportStavuSkladu; safecall; + public + Helios: IHelios; + end; + +var + formDemontazMat: TformReklamaceMat; + oVar1: OleVariant; + vydejky: array[0..7] of integer; + +implementation +uses System.StrUtils, helUtils; + +{$R *.dfm} + + + procedure TformReklamaceMat.ImportStavuSkladu; + var lSQL: string; + begin + lSQL:= 'SELECT ss.Id,kz.SkupZbo,kz.RegCis,kz.Nazev1,ss.Mnozstvi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ; + lSQL:= lSQL + ' kz ON (kz.Id=ss.IdKmenZbozi) WHERE ss.Mnozstvi>0 AND ss.IDSklad=N' + QuotedStr(Helios.Sklad); + lSQL:= lSQL + ' AND kz.Blokovano=0 AND kz.SkupZbo=N' + QuotedStr('MAT'); + lSQL:= lSQL + ' ORDER BY kz.SkupZbo,kz.RegCis'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + if not(tblMat.Active) then + tblMat.Open; + tblMat.DisableControls; + First; + while not(EOF) do + begin + tblMat.Append; + tblMat.FieldByName('mIdSS').AsString:= VarToStr(FieldValues(0)); + tblMat.FieldByName('mSZ').AsString:= VarToStr(FieldValues(1)); + tblMat.FieldByName('mRegCis').AsString:= VarToStr(FieldValues(2)); + tblMat.FieldByName('mNazev').AsString:= VarToStr(FieldValues(3)); + tblMat.FieldByName('mMnoz').AsFloat:= StrToFloat(VarToStr(FieldValues(4))); + tblMat.Post; + Next; + end; + tblMat.First; + tblMat.EnableControls; + end; + end; + + + + procedure TformReklamaceMat.pmDelCilClick(Sender: TObject); + begin + if Helios.YesNo('Opravdu smazat poloku ?',false) then + begin + tblMat.Append; + tblMat.FieldByName('mIdSS').AsInteger:= tblCil.FieldByName('cIdSSOld').AsInteger; + tblMat.FieldByName('mSZ').AsString:= tblCil.FieldByName('cSZ').AsString; + tblMat.FieldByName('mRegCis').AsString:= tblCil.FieldByName('cRegCis').AsString; + tblMat.FieldByName('mNazev').AsString:= tblCil.FieldByName('cNazev').AsString; + tblMat.FieldByName('mMnoz').AsFloat:= tblCil.FieldByName('cMnoz').AsFloat; + tblMat.Post; + tblCil.Delete; + + gridMat.LockDrawing; + tblMat.IndexFieldNames:= 'mSZ;mRegCis'; + tblmat.Refresh; + gridMat.UnlockDrawing; + end; + end; + + + + procedure TformReklamaceMat.btnOKClick(Sender: TObject); + var lSQL: string; + begin + if (tblCil.RecordCount>0) then + begin + tblCil.DisableControls; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('dbo._TabReklamaceMat') + ') IS NOT NULL DROP TABLE dbo._TabReklamaceMat' + CRLF; + lSQL:= lSQL + 'CREATE TABLE dbo._TabReklamaceMat (IdSSOld INT NOT NULL,IdSSNew INT,SkupZbo NVARCHAR(3),'; + lSQL:= lSQL + 'RegCis NVARCHAR(30),Nazev1 NVARCHAR(100),Mnozstvi NUMERIC(19,6), Sklad NVARCHAR(30),'; + lSQL:= lSQL + 'IdSklad NVARCHAR(20), MnozPrev NUMERIC(19,6), MnozIT NUMERIC(19,6))'; + Helios.ExecSQL(lSQL); + tblCil.First; + while not(tblCil.Eof) do + begin + lSQL:= 'INSERT dbo._TabReklamaceMat (IdSSOld,SkupZbo,RegCis,Nazev1,Mnozstvi,Sklad,IdSklad,MnozPrev,MnozIT) VALUES ('; + lSQL:= lSQL + tblCil.FieldByName('cIdSSOld').AsString + ',N' + QuotedStr(tblCil.FieldByName('cSZ').AsString); + lSQL:= lSQL + ',N' + QuotedStr(tblCil.FieldByName('cRegCis').AsString) + ',N' + QuotedStr(tblCil.FieldByName('cNazev').AsString); + lSQL:= lSQL + ',' + StringReplace(tblCil.FieldByName('cMnoz').AsString,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',N' + QuotedStr(tblCil.FieldByName('cSklad').AsString) + ',N'; + lSQL:= lSQL + QuotedStr(IfThen(tblCil.FieldByName('cSklad').AsString='DEMONT', '20000001001', tblCil.FieldByName('cIdSklad').AsString)); + lSQL:= lSQL + ',' + IfThen(tblCil.FieldByName('cMnozPresun').AsString='','0',StringReplace(tblCil.FieldByName('cMnozPresun').AsString,',','.',[rfReplaceAll])); + lSQL:= lSQL + ',' + IfThen(tblCil.FieldByName('cMnozIT').AsString='','0',StringReplace(tblCil.FieldByName('cMnozIT').AsString,',','.',[rfReplaceAll])); + lSQL:= lSQL + ')'; + try + Helios.ExecSQL(lSQL); + except + end; + tblCil.Next; + end; + + tblCil.EnableControls; + Helios.ExecSQL('INSERT #TabExtKom(Poznamka) EXEC dbo.ep_ReklamaceMatDilce'); + end; + Close; + end; + + + + procedure TformReklamaceMat.btnStornoClick(Sender: TObject); + begin + Close; + end; + + + + procedure TformReklamaceMat.FormClose(Sender: TObject; var Action: TCloseAction); + begin + if (tblMat.Active) then + tblMat.Close; + if (tblCil.Active) then + tblCil.Close; + Action:= caFree; + end; + + + + procedure TformReklamaceMat.FormShow(Sender: TObject); + begin + ImportStavuSkladu; + end; + + + + procedure TformReklamaceMat.gridCilDblClick (Sender: TObject); + var podm: string; + iR, iC: integer; + skl, strMn, sql, cisSkl: string; + jc, mn, mnOld, mnSkl, mnIT: Extended; + clCol, clRow: integer; + fldName: string; + begin + clCol:= gridCil.MouseCoord (Mouse.CursorPos.X - gridCil.ClientOrigin.X, Mouse.CursorPos.Y - gridCil.ClientOrigin.Y).X; + clRow:= gridCil.MouseCoord (Mouse.CursorPos.X - gridCil.ClientOrigin.X, Mouse.CursorPos.Y - gridCil.ClientOrigin.Y).X; + if (clRow>0) and (clCol>0) and (tblCil.RecordCount>0) then + begin + fldName:= gridCil.Columns[clCol].FieldName; + + case helUtils.StringToCaseSelect(fldName, ['cSklad', 'cMnozPresun', 'cMnozIT']) of + 0: begin // cilovy sklad + skl:= ''; + cisSkl:= ''; + podm:= 'TabStrom.Cislo IN (N' + QuotedStr('200') + ',N' + QuotedStr('20000101') + ',N' + QuotedStr('20000101001'); + podm:= podm + ',N' + QuotedStr('20000104') + ',N' + QuotedStr('20000104001') + ',N' + QuotedStr('20000106'); + podm:= podm + ',N' + QuotedStr('20000106001') + ',N' + QuotedStr('20000001001') + ')'; + if Helios.Prenos(bidStrom,'Cislo',oVar1,podm,'Vyberte clov sklad',true) then + cisSkl:= VarToStr(oVar1); + case sStrIndex(cisSkl,sklady) of + 0: skl:= nazvy[0]; + 1: skl:= nazvy[1]; + 2: skl:= nazvy[2]; + 3: skl:= nazvy[3]; + 4: skl:= nazvy[4]; + 5: skl:= nazvy[5]; + 6: skl:= nazvy[6]; + 7: skl:= nazvy[7]; + end; + if (skl='') then + skl:= nazvy[7]; + tblCil.Edit; + tblCil.FieldByName('cSklad').AsString:= skl; + tblCil.FieldByName('cIdSklad').AsString:= cisSkl; + tblCil.Post; + end; + + 1: begin + jc:= 0; + mnOld:= tblCil.FieldByName('cMnoz').AsExtended; + mn:= 0; + mnSkl:= 0; + mnIT:= 0; + + if not(VarIsNull(tblCil.FieldByName('cMnozPresun').AsVariant)) then + mnSkl:= tblCil.FieldByName('cMnozPresun').AsExtended; + if not(VarIsNull(tblCil.FieldByName('cMnozIT').AsVariant)) then + mnIT:= tblCil.FieldByName('cMnozIT').AsExtended; + + if (mnSkl>0) then + mn:= mnSkl; + if (FormMnozstviCena('Mnostv na vybran sklad',mn,jc,false,false)) then + begin + if (mn>=0) then + begin + if (mn<=mnOld) then + begin + tblCil.DisableControls; + tblCil.Edit; + if (mn=0) then + tblCil.FieldByName('cMnozPresun').AsString:= '' + else + tblCil.FieldByName('cMnozPresun').AsExtended:= mn; + tblCil.Post; + tblCil.EnableControls; + end + else + Helios.Error(#1'Nelze zadat mnostv vy ne demontovan.'#1); + end; + end; + end; + + 2: begin + jc:= 0; + mnOld:= tblCil.FieldByName('cMnoz').AsExtended; + mn:= 0; + mnSkl:= 0; + mnIT:= 0; + + if not(VarIsNull(tblCil.FieldByName('cMnozPresun').AsVariant)) then + mnSkl:= tblCil.FieldByName('cMnozPresun').AsExtended; + if not(VarIsNull(tblCil.FieldByName('cMnozIT').AsVariant)) then + mnIT:= tblCil.FieldByName('cMnozIT').AsExtended; + + if (mnIT>0) then + mn:= mnIT; + if (FormMnozstviCena('Mnostv na vdejku IT',mn,jc,false,false)) then + begin + if (mn>=0) then + begin + if (mn+mnSkl<=mnOld) then + begin + tblCil.DisableControls; + tblCil.Edit; + if (mn=0) then + tblCil.FieldByName('cMnozIT').AsString:= '' + else + tblCil.FieldByName('cMnozIT').AsExtended:= mn; + tblCil.Post; + tblCil.EnableControls; + end + else + Helios.Error(#1'Nelze zadat mnostv vy ne demontovan.'#1); + end; + end; + end; + end; + end; + end; + + + + + procedure TformReklamaceMat.gridMatDblClick (Sender: TObject); + begin + if not(tblMat.Active) then + tblMat.Open; + + if (tblMat.RecordCount>0) then + begin + if not(tblCil.Active) then + tblCil.Open; + tblCil.Append; + tblCil.FieldByName('cIdSSOld').AsString:= tblMat.FieldByName('mIdSS').AsString; + tblCil.FieldByName('cSZ').AsString:= tblMat.FieldByName('mSZ').AsString; + tblCil.FieldByName('cRegCis').AsString:= tblMat.FieldByName('mRegCis').AsString; + tblCil.FieldByName('cNazev').AsString:= tblMat.FieldByName('mNazev').AsString; + tblCil.FieldByName('cMnoz').AsFloat:= tblMat.FieldByName('mMnoz').AsFloat; + if (tblMat.FieldByName('mSZ').AsString='MAT') then + tblCil.FieldByName('cSklad').AsString:= 'DEMONT'; + tblCil.Post; + tblMat.Delete; + end; + end; + + + + end. diff --git a/frmUnit1.dfm b/frmUnit1.dfm new file mode 100644 index 0000000..b0f981b --- /dev/null +++ b/frmUnit1.dfm @@ -0,0 +1,8 @@ +object formUnit1: TformImportEP + Left = 196 + Top = 237 + BorderStyle = bsDialog + Caption = 'Obchodn'#237' kalkulace' + ClientHeight = 543 + ClientWidth = 1009 +end diff --git a/frmUnit1.pas b/frmUnit1.pas new file mode 100644 index 0000000..f001ce4 --- /dev/null +++ b/frmUnit1.pas @@ -0,0 +1,21 @@ +unit frmUnit1; + +interface + +uses + Windows, Variants, Classes, Controls, Forms, SysUtils, ddPlugin_TLB, StdCtrls; + +type + TformImportEP = class(TForm) + private + public + Helios : IHelios; + end; + +var + formImportEP: TformImportEP; + +implementation + +{$R *.dfm} + end. diff --git a/frmUnit11.dfm b/frmUnit11.dfm new file mode 100644 index 0000000..bb42090 --- /dev/null +++ b/frmUnit11.dfm @@ -0,0 +1,291 @@ +object formStavSklHromZmeny: TformStavSklHromZmeny + Left = 196 + Top = 237 + BorderIcons = [biSystemMenu] + Caption = ' Hromadn'#233' zm'#283'ny' + ClientHeight = 297 + ClientWidth = 344 + Color = clBtnFace + Constraints.MaxHeight = 335 + Constraints.MaxWidth = 360 + Constraints.MinHeight = 335 + Constraints.MinWidth = 360 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = True + Position = poMainFormCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object btnOK: TButton + Left = 152 + Top = 264 + Width = 75 + Height = 25 + Caption = 'OK' + ModalResult = 1 + TabOrder = 0 + OnClick = btnOKClick + end + object btnStorno: TButton + Left = 260 + Top = 264 + Width = 75 + Height = 25 + Caption = 'Storno' + TabOrder = 1 + OnClick = btnStornoClick + end + object GroupBox1: TGroupBox + Left = 8 + Top = 9 + Width = 327 + Height = 247 + Caption = ' Zm'#283'ny ' + TabOrder = 2 + object Label1: TLabel + Left = 20 + Top = 30 + Width = 44 + Height = 13 + Caption = 'Polo'#382'ka' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 164 + Top = 30 + Width = 78 + Height = 13 + Caption = 'Nov'#225' hodnota' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 256 + Top = 30 + Width = 40 + Height = 13 + Caption = 'Zm'#283'nit' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 20 + Top = 53 + Width = 77 + Height = 13 + Caption = 'Minimum skladu:' + end + object Label5: TLabel + Left = 16 + Top = 80 + Width = 81 + Height = 13 + Caption = 'Maximum skladu:' + end + object Label6: TLabel + Left = 44 + Top = 133 + Width = 53 + Height = 13 + Caption = 'Blokov'#225'no:' + end + object Label7: TLabel + Left = 37 + Top = 160 + Width = 60 + Height = 13 + Caption = 'Kontrola V'#268':' + end + object Label8: TLabel + Left = 31 + Top = 187 + Width = 66 + Height = 13 + Caption = 'K'#243'd '#250#269'tov'#225'n'#237':' + end + object Label9: TLabel + Left = 20 + Top = 106 + Width = 77 + Height = 13 + Caption = 'Zadan'#253' pr'#367'm'#283'r:' + end + object cbJedenRadek: TCheckBox + Left = 13 + Top = 220 + Width = 117 + Height = 17 + Caption = 'Pouze aktu'#225'ln'#237' '#345#225'dek' + Enabled = False + TabOrder = 12 + Visible = False + end + object cbMin: TComboBox + Left = 250 + Top = 50 + Width = 57 + Height = 21 + Style = csDropDownList + ItemIndex = 1 + TabOrder = 1 + Text = ' Ne' + Items.Strings = ( + ' Ano' + ' Ne') + end + object edtMin: TRzNumericEdit + Left = 144 + Top = 50 + Width = 93 + Height = 21 + MaxLength = 8 + TabOrder = 0 + CalculatorVisible = True + IntegersOnly = False + DisplayFormat = ',0;-,0' + end + object edtMax: TRzNumericEdit + Left = 144 + Top = 77 + Width = 93 + Height = 21 + MaxLength = 8 + TabOrder = 2 + CalculatorVisible = True + IntegersOnly = False + DisplayFormat = ',0;-,0' + end + object cbMax: TComboBox + Left = 250 + Top = 77 + Width = 57 + Height = 21 + Style = csDropDownList + ItemIndex = 1 + TabOrder = 3 + Text = ' Ne' + Items.Strings = ( + ' Ano' + ' Ne') + end + object cbBlokVal: TComboBox + Left = 124 + Top = 130 + Width = 113 + Height = 21 + Style = csDropDownList + ItemIndex = 0 + TabOrder = 6 + Text = ' B'#283#382'n'#253' z'#225'znam' + Items.Strings = ( + ' B'#283#382'n'#253' z'#225'znam' + ' Archivn'#237' z'#225'znam') + end + object cbBlok: TComboBox + Left = 250 + Top = 130 + Width = 57 + Height = 21 + Style = csDropDownList + ItemIndex = 1 + TabOrder = 7 + Text = ' Ne' + Items.Strings = ( + ' Ano' + ' Ne') + end + object cbVCVal: TComboBox + Left = 124 + Top = 157 + Width = 113 + Height = 21 + Style = csDropDownList + ItemIndex = 0 + TabOrder = 8 + Text = ' Ne' + Items.Strings = ( + ' Ne' + ' Ano' + ' Ano s hl'#237'd'#225'n'#237'm') + end + object cbVC: TComboBox + Left = 250 + Top = 157 + Width = 57 + Height = 21 + Style = csDropDownList + ItemIndex = 1 + TabOrder = 9 + Text = ' Ne' + Items.Strings = ( + ' Ano' + ' Ne') + end + object cbKontace: TComboBox + Left = 250 + Top = 184 + Width = 57 + Height = 21 + Style = csDropDownList + ItemIndex = 1 + TabOrder = 11 + Text = ' Ne' + Items.Strings = ( + ' Ano' + ' Ne') + end + object selKontace: TRzButtonEdit + Left = 124 + Top = 184 + Width = 113 + Height = 21 + Alignment = taCenter + TabOrder = 10 + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selKontaceButtonClick + end + object edtPrumer: TRzNumericEdit + Left = 144 + Top = 103 + Width = 93 + Height = 21 + MaxLength = 8 + TabOrder = 4 + CalculatorVisible = True + IntegersOnly = False + DisplayFormat = ',0;-,0' + end + object cbPrumer: TComboBox + Left = 250 + Top = 103 + Width = 57 + Height = 21 + Style = csDropDownList + ItemIndex = 1 + TabOrder = 5 + Text = ' Ne' + Items.Strings = ( + ' Ano' + ' Ne') + end + end +end diff --git a/frmUnit11.pas b/frmUnit11.pas new file mode 100644 index 0000000..3a91c45 --- /dev/null +++ b/frmUnit11.pas @@ -0,0 +1,163 @@ +unit frmUnit11; + +interface + +uses + Windows, Variants, Classes, Controls, Forms, SysUtils, ddPlugin_TLB, StdCtrls, RzEdit, RzBtnEdt, Vcl.Mask; + +type + TformStavSklHromZmeny = class(TForm) + btnOK: TButton; + btnStorno: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + cbJedenRadek: TCheckBox; + Label4: TLabel; + Label5: TLabel; + cbMin: TComboBox; + edtMin: TRzNumericEdit; + edtMax: TRzNumericEdit; + cbMax: TComboBox; + Label6: TLabel; + cbBlokVal: TComboBox; + cbBlok: TComboBox; + cbVCVal: TComboBox; + cbVC: TComboBox; + Label7: TLabel; + Label8: TLabel; + cbKontace: TComboBox; + selKontace: TRzButtonEdit; + Label9: TLabel; + edtPrumer: TRzNumericEdit; + cbPrumer: TComboBox; + procedure btnStornoClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure selKontaceButtonClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure btnOKClick(Sender: TObject); + private + public + Helios : IHelios; + arrId: TArray; + end; + +var + formStSklHrZmen: TformStavSklHromZmeny; + oVar1, oVar2: OleVariant; + +implementation + +uses helUtils; + +{$R *.dfm} + procedure TformStavSklHromZmeny.btnOKClick(Sender: TObject); + var i: integer; + lSQL: WideString; + id: ShortString; + begin + if Length(arrId)>0 then + begin + for i:=Low(arrId) to High(arrId) do + begin + id:= IntToStr(arrId[i]); + lSQL:= ''; + if cbMin.ItemIndex=0 then + lSQL:= lSQL + 'Minimum=' + StringReplace(FloatToStr(edtMin.Value),'','',[rfReplaceAll]) + ','; + if cbMax.ItemIndex=0 then + lSQL:= lSQL + 'Maximum=' + StringReplace(FloatToStr(edtMax.Value),'','',[rfReplaceAll]) + ','; + if cbPrumer.ItemIndex=0 then + lSQL:= lSQL + 'PrumerZadany=' + StringReplace(FloatToStr(edtPrumer.Value),'','',[rfReplaceAll]) + ','; + if cbBlok.ItemIndex=0 then + lSQL:= lSQL + 'Blokovano=' + IntToStr(cbBlokVal.ItemIndex) + ','; + if cbVC.ItemIndex=0 then + begin + lSQL:= lSQL + 'KontrolaVC=N'''; + case cbVCVal.ItemIndex of + 0: lSQL:= lSQL + 'N'; + 1: lSQL:= lSQL + 'A'; + 2: lSQL:= lSQL + 'B'; + end; + lSQL:= lSQL + ''','; + end; + if cbKontace.ItemIndex=0 then + lSQL:= lSQL + 'UKod=' + Trim(selKontace.Text) + ','; + if (lSQL<>'') then + SetLength(lSQL,Length(lSQL)-1); + lSQL:= 'UPDATE ' + tblSS + ' SET ' + lSQL + ' WHERE id=' + id; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.ExecSQL('INSERT #TabExtKom VALUES (N' + QuotedStr('Nelze aktualizovat zznam id ' + + id + ' : ' + E.ClassName + ' : ' + E.Message) + ')'); + end; + end; + end; + end; + + procedure TformStavSklHromZmeny.btnStornoClick(Sender: TObject); + begin + Close; + end; + + procedure TformStavSklHromZmeny.FormClose(Sender: TObject; var Action: TCloseAction); + begin + Action:= caFree; + end; + + procedure TformStavSklHromZmeny.FormShow(Sender: TObject); + var lSQL: WideString; + edtCol, idx: integer; + begin + Self.Icon.Handle:= Helios.MainApplicationIconHandle; + +{$REGION 'Nastav FontSize a edit Col'} + edtCol:= $FFFF; // clYellow + with Helios.OpenSQL('SELECT BarvaPodbarveni FROM ' + tblUziv + ' WHERE BarevnePodbarveni=1 AND LoginName=N' + QuotedStr(Helios.LoginName)) do + if RecordCount>0 then + edtCol:= StrToInt(VarToStr(FieldValues(0))); + + Self.Font.Name:= Helios.Font; + Self.Font.Height:= Helios.FontHeight; + idx:= 0; + while idx + RowsHeight = 17 + TitleRowHeight = 17 + end + object dsRozpad: TDataSource + DataSet = tabRozpad + Left = 598 + Top = 380 + end + object tabRozpad: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 524 + Top = 380 + end + object dsRozpad2: TDataSource + DataSet = tabRozpad2 + Left = 286 + Top = 376 + end + object tabRozpad2: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 206 + Top = 378 + end +end diff --git a/frmUnit12.pas b/frmUnit12.pas new file mode 100644 index 0000000..69ae7a7 --- /dev/null +++ b/frmUnit12.pas @@ -0,0 +1,1019 @@ +unit frmUnit12; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ddPlugin_TLB, FireDAC.Comp.Client, FireDAC.Stan.Intf, + FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, + FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet, + JvExDBGrids, JvDBGrid, Vcl.Grids, Vcl.DBGrids, Data.DB, Vcl.StdCtrls; + +const + tblRozpPrijStav = '[dbo].[_TabRozpadPrijStav]'; + +type + TfrmRozdelMat = class(TForm) + btnQuit: TButton; + dsRozpad: TDataSource; + tabRozpad: TFDMemTable; + btnPrevod: TButton; + dsRozpad2: TDataSource; + tabRozpad2: TFDMemTable; + gRozpad2: TJvDBGrid; + procedure FormShow (Sender: TObject); + procedure btnQuitClick (Sender: TObject); + procedure FormResize (Sender: TObject); + procedure gRozpad2KeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); + procedure gRozpad2DrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); + procedure gRozpad2EditChange (Sender: TObject); + procedure gRozpad2MouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer); + private + function GetColumnIndexByFieldName (const grid: TJvDBGrid; const fieldName: string): integer; + function GetColumnByFieldName (const grid: TJvDBGrid; const fieldName: string): TColumn; + function GetVisibleColumnByIndex (const grid: TJvDBGrid; const idx: integer): TColumn; + procedure WMSyscommand (Var msg: TWmSysCommand); message WM_SYSCOMMAND; + procedure NactiUdaje; +// procedure DataDoTabulky; + procedure DataDoTabulky2; +// procedure OdectiDodani (celaTab: Boolean); + procedure OdectiDodani2 (celaTab: Boolean); +// procedure SirkySloupcu; + procedure SirkySloupcu2; + procedure VytvorRozpad2; + public + Helios: IHelios; + idDZ: integer; // id prijemky + idSS: Integer; // id stavu skladu + aIdDZ: WideString; // id vice prijemek + aIdSS: WideString; // id vice stavu skladu + end; + +var + frmRozdelMat: TfrmRozdelMat; + vId, dId, vCol, vRow, iHintRec: Integer; + +implementation +uses System.StrUtils, helUtils, myUtils; + +{$R *.dfm} + + procedure TfrmRozdelMat.WMSyscommand(var msg: TWmSysCommand); + begin + Case (msg.cmdtype and $FFF0) of + SC_MINIMIZE: + begin + msg.result := 0; + end; + SC_MAXIMIZE: + begin + Self.WindowState := wsMaximized; + msg.result := 0; + end; + SC_RESTORE: + begin + msg.result := 0; + end; + Else + inherited; + end; + end; + + +{ + procedure TfrmRozdelMat.SirkySloupcu; + var idx: integer; + fName: string; + begin + idx:= 0; + while (idx<=vRozpad.VisibleColumnCount-1) do + begin + fName:= LeftStr(StringReplace(vRozpad.VisibleColumns[idx].Name,'vRozpad','',[rfReplaceAll]),4); + if (fName='Stav') or (fName='Preb') or (fName='Poza') or (fName='Doda') then + vRozpad.VisibleColumns[idx].Width:= 62; + Inc(idx); + end; + vRozpad.GetColumnByFieldName('CisloZbozi').Width:= 110; + vRozpad.GetColumnByFieldName('Mnozstvi').Width:= 60; + end; +} + + + procedure TfrmRozdelMat.SirkySloupcu2; + var idx: integer; + fName: string; + begin + idx:= 0; + while (idx<=gRozpad2.VisibleColCount-1) do + begin + fName:= LeftStr(StringReplace(GetVisibleColumnByIndex (gRozpad2, idx).FieldName,'vRozpad','',[rfReplaceAll]),4); + if (fName='Stav') or (fName='Preb') or (fName='Poza') or (fName='Doda') then + GetVisibleColumnByIndex (gRozpad2, idx).Width:= 62; + Inc(idx); + end; + GetColumnByFieldName (gRozpad2, 'CisloZbozi').Width:= 110; + GetColumnByFieldName (gRozpad2, 'Mnozstvi').Width:= 60; + end; + + + +{ + procedure TfrmRozdelMat.OdectiDodani (celaTab: Boolean); + var fName: string; + colNms: TArray; + idx1, idx2: integer; + num: extended; + begin + SetLength(colNms,tabRozpad.FieldCount); + idx1:= 0; + idx2:= 0; + while (idx1<=tabRozpad.FieldCount-1) do + begin + fName:= tabRozpad.FieldDefs.Items[idx1].Name; + if Pos('Dodat',fName)>0 then + begin + colNms[idx2]:= fName; + Inc(idx2); + end; + Inc(idx1); + end; + idx1:= Length(colNms)-1; + while (idx1>=0) do + begin + if colNms[idx1]='' then + SetLength(colNms,Length(colNms)-1); + Dec(idx1); + end; + +// Pocitej nad celou tabulkou, jinak jen nad vRozpad.DataController.FocusedRecordIndex + if (celaTab) then + begin + tabRozpad.First; + while not(tabRozpad.Eof) do + begin + num:= 0; + idx1:= 0; + while (idx1<=Length(colNms)-1) do + begin + num:= num + tabRozpad.FieldByName(colNms[idx1]).AsFloat; + Inc(idx1); + end; + tabRozpad.Edit; + tabRozpad.FieldByName('Zbytek').AsExtended:= tabRozpad.FieldByName('Mnozstvi').AsExtended - num; + tabRozpad.Post; + tabRozpad.Next; + end; + end + else + begin + num:= 0; + idx1:= 0; + while (idx1<=Length(colNms)-1) do + begin + num:= num + tabRozpad.FieldByName(colNms[idx1]).AsFloat; + Inc(idx1); + end; + tabRozpad.Edit; + tabRozpad.FieldByName('Zbytek').AsExtended:= tabRozpad.FieldByName('Mnozstvi').AsExtended - num; + tabRozpad.Post; + end; + vRozpad.DataController.Refresh; + end; +} + + procedure TfrmRozdelMat.OdectiDodani2 (celaTab: Boolean); + var fName: string; + colNms: TArray; + idx1, idx2: integer; + num: extended; + begin + SetLength(colNms, tabRozpad2.FieldCount); + idx1:= 0; + idx2:= 0; + while (idx1<=tabRozpad2.FieldCount-1) do + begin + fName:= tabRozpad.FieldDefs.Items[idx1].Name; + if Pos('Dodat',fName)>0 then + begin + colNms[idx2]:= fName; + Inc(idx2); + end; + Inc(idx1); + end; + idx1:= Length(colNms)-1; + while (idx1>=0) do + begin + if colNms[idx1]='' then + SetLength(colNms,Length(colNms)-1); + Dec(idx1); + end; + +// Pocitej nad celou tabulkou, jinak jen nad vRozpad.DataController.FocusedRecordIndex + if (celaTab) then + begin + tabRozpad2.First; + while not(tabRozpad2.Eof) do + begin + num:= 0; + idx1:= 0; + while (idx1<=Length(colNms)-1) do + begin + num:= num + tabRozpad2.FieldByName(colNms[idx1]).AsFloat; + Inc(idx1); + end; + tabRozpad2.Edit; + tabRozpad2.FieldByName('Zbytek').AsExtended:= tabRozpad2.FieldByName('Mnozstvi').AsExtended - num; + tabRozpad2.Post; + tabRozpad2.Next; + end; + end + else + begin + num:= 0; + idx1:= 0; + while (idx1<=Length(colNms)-1) do + begin + num:= num + tabRozpad2.FieldByName(colNms[idx1]).AsFloat; + Inc(idx1); + end; + tabRozpad2.Edit; + tabRozpad2.FieldByName('Zbytek').AsExtended:= tabRozpad2.FieldByName('Mnozstvi').AsExtended - num; + tabRozpad2.Post; + end; + gRozpad2.DataSource.DataSet.Refresh; + end; + + + + + + procedure TfrmRozdelMat.gRozpad2DrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); + var i: integer; + v: Extended; + fName: string; + begin + gRozpad2.Canvas.Font.Color:= clBlack; + gRozpad2.Canvas.Font.Style:= []; + + if Odd(gRozpad2.DataSource.DataSet.RecNo) then + gRozpad2.Canvas.Brush.Color:= $00FFD2D2 + else + gRozpad2.Brush.Color:= clWhite; + + if (gdSelected in State) then + begin +// gRozpad2.Canvas.Brush.Color:= clHighlight; +// gRozpad2.Canvas.Font.Color:= clHighlightText; + gRozpad2.Canvas.Brush.Color:= $00FF9933; + gRozpad2.Canvas.Font.Color:= clWhite; + end; +{ + else + begin + ACanvas + end; +} + fName:= Column.FieldName; + fName:= StringReplace(fName,'vRozpad','',[rfReplaceAll]); + i:= DataCol; // TcxGridDBTableView(Sender).GetColumnByFieldName(fName).Index; + SetLength(fName,Length(fName)-3); + if (fName='Dodat') then + begin + v:= Column.Field.AsExtended; // StrToFloat(VarToStr(AViewInfo.GridRecord.Values[i])); + if (v>0) then + begin + gRozpad2.Canvas.Font.Color:= clRed; + gRozpad2.Canvas.Font.Style:= [fsBold]; + end; + end; + + gRozpad2.DefaultDrawColumnCell (Rect, DataCol, Column, State); + end; + + + + + procedure TfrmRozdelMat.gRozpad2EditChange (Sender: TObject); + var i: Integer; + begin + i:= 0; + end; + + +{ + procedure TfrmRozdelMat.vRozpadEditing (Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; var AAllow: Boolean); + var fName: string; + begin + fName:= TcxGridDBTableView(Sender).Columns[AItem.Index].Name; + fName:= StringReplace(fName,'vRozpad','',[rfReplaceAll]); + SetLength(fName,Length(fName)-3); + if (fName='Dodat') then + AAllow:= true + else + AAllow:= false; + end; +} + + + + + procedure TfrmRozdelMat.gRozpad2KeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); + var i: integer; + x, cName: string; + begin + if Key=VK_RETURN then + begin + vCol:= gRozpad2.Col; + i:= gRozpad2.Row; + cName:= StringReplace(gRozpad2.Columns.Items[vCol].FieldName ,'vRozpad','', [rfReplaceAll]); + tabRozpad2.RecNo:= gRozpad2.DataSource.DataSet.RecNo+1; + x:= tabRozpad2.FieldByName(cName).AsString; + tabRozpad2.Edit; + tabRozpad2.FieldByName(cName).AsFloat:= StrToFloat(x); + tabRozpad2.Post; + OdectiDodani2 (false); + gRozpad2.Row:= i; + gRozpad2.Col:= vCol; + end; + end; + + + + + procedure TfrmRozdelMat.gRozpad2MouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer); + var i: integer; +{ + Site: TcxGridSite; + HitTest: TcxCustomGridHitTest; + Item: TcxCustomGridTableItem; + Rec: TcxCustomGridRecord; +} + sNewHint: string; + begin +{ + i:= vRozpad.DataController.FocusedRecordIndex; + Site:= Sender as TcxGridSite; + HitTest:= Site.GridView.ViewInfo.GetHitTest(X, Y); + if HitTest is TcxGridRecordCellHitTest then + begin + Item:= TcxGridRecordCellHitTest(HitTest).Item; + Rec:= TcxGridRecordCellHitTest(HitTest).GridRecord; + + if Item.Index= vRozpad.GetColumnByFieldName('Mnozstvi').Index then begin + sNewHint := 'New hint goes here'; + if (gRozpad.Hint<>sNewHint) or (Rec.RecordIndex<>iHintRec) then + begin + iHintRec:= Rec.RecordIndex; + gRozpad.ShowHint:= false; + gRozpad.Hint:= sNewHint; + end + else + gRozpad.ShowHint:= true; + end + else begin + gRozpad.ShowHint:= false; + end; + end; + vRozpad.DataController.FocusedRecordIndex:= i; +} + end; + + + + procedure TfrmRozdelMat.DataDoTabulky2; + var sql, fName: string; + flds: TArray; + idx: integer; + begin + sql:= ''; + idx:= 0; + SetLength(flds, gRozpad2.VisibleColCount); + while (idx<=gRozpad2.VisibleColCount-1) do + begin + fName:= StringReplace(GetVisibleColumnByIndex(gRozpad2, idx).FieldName, 'vRozpad','',[rfReplaceAll]); + flds[idx]:= StringReplace(GetVisibleColumnByIndex(gRozpad2, idx).FieldName, 'vRozpad','',[rfReplaceAll]); + sql:= sql + flds[idx] + ','; + Inc(idx); + end; + + if (sql<>'') then + SetLength(sql,Length(sql)-1); + + sql:= 'SELECT ' + sql + ' FROM ' + tblRozpPrijStav + ' WHERE Autor=SUSER_SNAME() ORDER BY CisloZbozi'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + sql:= ''; + while not(EOF) do + begin + idx:= 0; + tabRozpad2.Append; + while (idx; + idx: integer; + begin + sql:= ''; + idx:= 0; + SetLength(flds,vRozpad.VisibleItemCount); + while (idx<=vRozpad.VisibleItemCount-1) do + begin + fName:= StringReplace(vRozpad.VisibleColumns[idx].Name,'vRozpad','',[rfReplaceAll]); + flds[idx]:= StringReplace(vRozpad.VisibleColumns[idx].Name,'vRozpad','',[rfReplaceAll]); + sql:= sql + flds[idx] + ','; + Inc(idx); + end; + if (sql<>'') then + SetLength(sql,Length(sql)-1); + sql:= 'SELECT ' + sql + ' FROM ' + tblRozpPrijStav + ' WHERE Autor=SUSER_SNAME() ORDER BY CisloZbozi'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + sql:= ''; + while not(EOF) do + begin + idx:= 0; + tabRozpad.Append; + while (idx0) then + aIdDZ:= IntToStr(idDZ); + if (idSS>0) then + aIdSS:= IntToStr(idSS); + + sql:= 'IF OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ') IS NOT NULL DROP TABLE ' + tblRozpPrijStav; + sql:= sql + CRLF + 'CREATE TABLE ' + tblRozpPrijStav + '(IdKmenZbozi INT NOT NULL, Mnozstvi NUMERIC(19,6)'; + sql:= sql + ' NOT NULL DEFAULT 0.0, CisloZbozi NVARCHAR(33), Autor NVARCHAR(80) NOT NULL DEFAULT SUSER_SNAME(),'; + sql:= sql + 'DatPorizeni DATETIME DEFAULT GETDATE(), Zbytek NUMERIC(19,6) DEFAULT 0.0 )'; + Helios.ExecSQL(sql); + + if (aIdDZ<>'') then + begin + sql:= 'INSERT ' + tblRozpPrijStav + ' (IdKmenZbozi,Mnozstvi,CisloZbozi)'; + sql:= sql + ' SELECT DISTINCT(kz.id),SUM(pz.Mnozstvi),kz.CisloZbozi FROM ' + tblPZ + ' pz INNER JOIN ' + tblSS; + sql:= sql + ' ss ON (pz.IdZboSklad=ss.id) INNER JOIN ' + tblKZ + ' kz ON (ss.IdKmenZbozi=kz.id) WHERE'; + sql:= sql + ' pz.IDDoklad IN (' + aIdDZ + ') GROUP BY kz.id,kz.CisloZbozi ORDER BY kz.id'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + if (aIdSS<>'') then + begin + sql:= 'INSERT ' + tblRozpPrijStav + ' (IdKmenZbozi,Mnozstvi,CisloZbozi)'; + sql:= sql + ' SELECT DISTINCT(kz.id),SUM(ss.Mnozstvi),kz.CisloZbozi FROM ' + tblSS + ' ss INNER JOIN ' + tblKZ; + sql:= sql + ' kz ON (ss.idKmenZbozi=kz.id) WHERE ss.id IN (' + aIdSS + ')'; + sql:= sql + ' GROUP BY kz.id,kz.CisloZbozi ORDER BY kz.id'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + + if not(chyba) then + begin + sql:= 'SELECT DISTINCT(RIGHT(vp.KmenoveStredisko,3)) FROM TabPrKVazby kv INNER JOIN TabPrikaz vp'; + sql:= sql + ' ON (kv.IdPrikaz=vp.Id AND vp.StavPrikazu<=40) WHERE kv.mnoz_Nevydane>0 AND kv.nizsi IN'; + sql:= sql + ' (SELECT IdKmenZbozi FROM ' + tblRozpPrijStav + ') ORDER BY RIGHT(vp.KmenoveStredisko,3)'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while (not(EOF) and not(chyba)) do + begin + stred:= VarToStr(FieldValues(0)); + sql:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Stav' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Stav' + stred; + sql:= sql + ' NUMERIC(19,6) NOT NULL DEFAULT 0.0' + CRLF; + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Pozad' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Pozad' + stred; + sql:= sql + ' NUMERIC(19,6) NOT NULL DEFAULT 0.0' + CRLF; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + if not(chyba) then + begin + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Prebyt' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Prebyt' + stred; + sql:= sql + ' AS ([Stav' + stred + ']-[Pozad' + stred + '])' + CRLF; + Helios.ExecSQL(sql); + + sql:= sql + 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Dodat' + stred); + sql:= sql + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Dodat' + stred; + sql:= sql + ' AS (CASE WHEN [Pozad' + stred + ']-[Stav' + stred + ']<0 THEN 0 ELSE [Pozad' + stred; + sql:= sql + ']-[Stav' + stred + '] END)' + CRLF; + Helios.ExecSQL(sql); + + sql:= 'SET NOCOUNT ON' + CRLF; + sql:= sql + 'DECLARE @idKZ INT,@MnS NUMERIC(19,6),@MnP NUMERIC(19,6),@Skl NVARCHAR(30)' + CRLF; + sql:= sql + 'DECLARE c CURSOR LOCAL FAST_FORWARD FOR SELECT IdKmenZbozi FROM '; + sql:= sql + tblRozpPrijStav + CRLF + 'OPEN c' + CRLF + 'WHILE (1=1) BEGIN FETCH NEXT FROM c INTO @idKZ' + CRLF; + sql:= sql + ' IF (@@FETCH_STATUS<>0) BREAK' + CRLF + 'SET @MnS=ISNULL((SELECT ISNULL(Mnozstvi,0) FROM ' + tblSS; + sql:= sql + ' WHERE IdKmenZbozi=@idKZ AND IDSklad'; + if stred='200' then + sql:= sql + '=N' + QuotedStr('200') + else + sql:= sql + ' LIKE N' + QuotedStr('200%' + stred); + sql:= sql + '),0)' + CRLF; + sql:= sql + 'SET @MnP=ISNULL((SELECT ISNULL(SUM(kv.Mnoz_Nevydane),0) FROM ' + tblPrVaz + ' kv INNER JOIN' + tblPrikaz; + sql:= sql + ' vp ON (kv.IdPrikaz=vp.Id AND vp.StavPrikazu<=40) WHERE kv.Nizsi=@idKZ AND vp.KmenoveStredisko'; + if stred='200' then + sql:= sql + '=N' + QuotedStr('200') + else + sql:= sql + ' LIKE N' + QuotedStr('200%' + stred); + sql:= sql + '),0)' + CRLF; + sql:= sql + 'UPDATE ' + tblRozpPrijStav + ' SET Stav' + stred + '=@MnS,Pozad' + stred; + sql:= sql + '=@MnP WHERE idKmenZbozi=@idKZ' + CRLF + 'END' + CRLF + 'CLOSE c' + CRLF + 'DEALLOCATE c'; + try + Helios.ExecSQL(sql); + except + chyba:= true; + end; + end; + Next; + end; + +// celkD:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemDodat'); +// celkD:= celkD + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemDodat AS ('; +// dodat:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('Dodat' + stred); +// dodat:= dodat + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD Dodat' + stred + ' AS ('; + +// celkem prebytek +// celkP:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemPrebyt'); +// celkP:= celkP + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemPrebyt AS ('; +// celkP:= celkP + 'CASE WHEN [Stav' + stred + ']-[Pozad' + stred + ']>0 THEN ([Stav' + stred + ']-'; +// celkP:= celkP + '[Pozad' + stred + ']) ELSE 0 END + '; +// celkem dodat +// celkD:= celkD + 'CASE WHEN [Stav' + stred + ']-[Pozad' + stred + ']<0 THEN ABS([Stav' + stred + ']-'; +// celkD:= celkD + '[Pozad' + stred + ']) ELSE 0 END + '; + +// celkem Prebytek + mn:= 0; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Prebyt%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + sql:= '['; + while not(EOF) do + begin + sql:= sql + VarToStr(FieldValues(0)) + ']+['; + Next; + end; + SetLength(sql,Length(sql)-2); + end; + celkP:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemPrebyt'); + celkP:= celkP + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemPrebyt NUMERIC(19,6) DEFAULT 0.0'; + Helios.ExecSQL(celkP); + sql:= 'UPDATE ' + tblRozpPrijStav + ' SET CelkemPrebyt=' + sql; + Helios.ExecSQL(sql); + +// celkem Dodat + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Dodat%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + sql:= '['; + while not(EOF) do + begin + sql:= sql + VarToStr(FieldValues(0)) + ']+['; + Next; + end; + SetLength(sql,Length(sql)-2); + end; + celkD:= 'IF (COL_LENGTH(N' + QuotedStr(tblRozpPrijStav) + ',N' + QuotedStr('CelkemDodat'); + celkD:= celkD + ') IS NULL) ALTER TABLE ' + tblRozpPrijStav + ' ADD CelkemDodat NUMERIC(19,6) DEFAULT 0.0'; + Helios.ExecSQL(celkD); + sql:= 'UPDATE ' + tblRozpPrijStav + ' SET CelkemDodat=' + sql; + Helios.ExecSQL(sql); + end; + end; + end; + + + + + procedure TfrmRozdelMat.btnQuitClick (Sender: TObject); + begin + Close; + end; + + + + + procedure TfrmRozdelMat.FormResize (Sender: TObject); + var idx: integer; + w: integer; + begin + gRozpad2.BeginUpdate; + gRozpad2.Width:= Self.Width - 14; + gRozpad2.Height:= Self.Height - 90; + w:= gRozpad2.Width div gRozpad2.VisibleColCount; + idx:= 0; + while (idx<=gRozpad2.VisibleColCount-1) do + begin + GetVisibleColumnByIndex (gRozpad2, idx).Width:= w-1; + Inc (idx); + end; + btnQuit.Left:= Self.Width - btnQuit.Width - 40; + btnQuit.Top:= Self.Height - btnQuit.Height - 50; + btnPrevod.Left:= btnQuit.Left - 160; + btnPrevod.Top:= btnQuit.Top; + SirkySloupcu2; + gRozpad2.EndUpdate; + end; + + + + + function TfrmRozdelMat.GetVisibleColumnByIndex (const grid: TJvDBGrid; const idx: integer): TColumn; + var i, visIdx: integer; + begin + visIdx:= -1; + result:= nil; + for i:=0 to grid.Columns.Count-1 do + if (grid.Columns.Items[i].Visible) then + begin + Inc (visIdx); + if (visIdx=idx) then + begin + result:= grid.Columns.Items[i]; + Break; + end; + end; + end; + + + + + function TfrmRozdelMat.GetColumnByFieldName (const grid: TJvDBGrid; const fieldName: string): TColumn; + var i: integer; + begin + result:= nil; + for i:=0 to grid.Columns.Count-1 do + begin + if (System.SysUtils.SameText(grid.Columns.Items[i].FieldName, fieldName)) then + begin + result:= grid.Columns.Items[i]; + Break; + end; + end; + end; + + + + + function TfrmRozdelMat.GetColumnIndexByFieldName (const grid: TJvDBGrid; const fieldName: string): Integer; + var i: integer; + begin + result:= -1; + for i:=0 to grid.Columns.Count-1 do + if (System.SysUtils.SameText(grid.Columns.Items[i].FieldName, fieldName)) then + begin + result:= i; + Break; + end; + end; + + + + + procedure TfrmRozdelMat.VytvorRozpad2; + var sql, fName: string; + idx, cStr: integer; + begin + if (tabRozpad2.Active) then + if (tabRozpad2.RecordCount>0) then + tabRozpad2.EmptyDataSet; + + if (tabRozpad2.Active) then + tabRozpad2.Close; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Stav%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + tabRozpad2.FieldDefs.Clear; + First; + with tabRozpad.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Pozad%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + with tabRozpad2.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Prebyt%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + with tabRozpad2.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Dodat%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + with tabRozpad2.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + + with tabRozpad2.FieldDefs do + begin + Add('IdKmenZbozi',ftInteger,0,true); + Add('CisloZbozi',ftString,33,true); + Add('Mnozstvi',ftFloat,0,true); // puvodni mnozstvi na vydejce/stavu skladu + Add('Zbytek',ftFloat,0,true); // zbytek po odecteni mnozstvi k dodani + Add('CelkemPrebyt',ftFloat,0,false); + end; + tabRozpad2.Open; + + idx:= 0; + while (idx<=gRozpad2.Columns.Count-1) do + begin + gRozpad2.Columns.Items[idx].Width:= 60; + Inc(idx); + end; + + idx:= 0; + GetColumnByFieldName(gRozpad2, 'CisloZbozi').Index:= idx; + Inc (idx); + GetColumnByFieldName(gRozpad2, 'Zbytek').Index:= idx; + Inc (idx); + + sql:= 'SELECT [name] FROM sys.columns WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr('_TabRozpadPrijStav') + ') AND'; + sql:= sql + ' [name] LIKE N' + QuotedStr('%200') + ' ORDER BY CASE LEFT([name],4) WHEN N''Stav'' THEN 1'; + sql:= sql + ' WHEN N''Poza'' THEN 2 WHEN N''Preb'' THEN 3 WHEN N''Doda'' THEN 4 END'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + GetColumnByFieldName(gRozpad2, VarToStr(FieldValues(0))).Index:= idx; + Inc (idx); + Next; + end; + end; + + for cStr:=101 to 115 do + begin + sql:= 'SELECT [name] FROM sys.columns WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr('_TabRozpadPrijStav') + ') AND'; + sql:= sql + ' [name] LIKE N' + QuotedStr('%' + IntToStr(cStr)) + ' ORDER BY CASE LEFT([name],4) WHEN N''Stav'' THEN 1'; + sql:= sql + ' WHEN N''Poza'' THEN 2 WHEN N''Preb'' THEN 3 WHEN N''Doda'' THEN 4 END'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + fName:= LeftStr(StringReplace(GetVisibleColumnByIndex (gRozpad2,idx).FieldName, 'vRozpad', '', [rfReplaceAll]), 5); +// fName:= LeftStr(StringReplace(vRozpad.VisibleColumns[idx].Name,'vRozpad','',[rfReplaceAll]),5); + GetVisibleColumnByIndex (gRozpad2, idx).ReadOnly:= (fName<>'Dodat'); + GetColumnByFieldName(gRozpad2, VarToStr(FieldValues(0))).Index:= idx; + Inc (idx); + Next; + end; + end; + end; + + end; + + + + + procedure TfrmRozdelMat.FormShow (Sender: TObject); + var sql, fName: string; + idx, cStr: integer; + begin +// cxSetResourceString(@scxGridGroupByBoxCaption,'Sem přetáhněte záhlaví sloupců, podle kterých chcete přehled seskupit.'); +// cxSetResourceString(@scxGridGroupByBoxCaption,''); + + if (idDZ>0) then + aIdDZ:= IntToStr (idDZ); + if (idSS>0) then + aIdSS:= IntToStr (idSS); + + NactiUdaje; + + + { + if (tabRozpad.Active) then + if (tabRozpad.RecordCount>0) then + tabRozpad.EmptyDataSet; + + if (tabRozpad.Active) then + tabRozpad.Close; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Stav%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + tabRozpad.FieldDefs.Clear; + First; + with tabRozpad.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Pozad%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + with tabRozpad.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Prebyt%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + with tabRozpad.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + sql:= 'SELECT [name] FROM sys.[columns] WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr(tblRozpPrijStav) + ')'; + sql:= sql + ' AND [name] LIKE N' + QuotedStr('Dodat%'); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + with tabRozpad.FieldDefs do + while not(EOF) do + begin + Add(VarToStr(FieldValues(0)),ftFloat,0,true); + Next; + end; + end; + + with tabRozpad.FieldDefs do + begin + Add('IdKmenZbozi',ftInteger,0,true); + Add('CisloZbozi',ftString,33,true); + Add('Mnozstvi',ftFloat,0,true); // puvodni mnozstvi na vydejce/stavu skladu + Add('Zbytek',ftFloat,0,true); // zbytek po odecteni mnozstvi k dodani + Add('CelkemPrebyt',ftFloat,0,false); + end; + tabRozpad.Open; + vRozpad.ClearItems; + vRozpad.DataController.CreateAllItems; + vRozpad.OptionsCustomize.ColumnFiltering:= false; + idx:= 0; + while (idx<=vRozpad.ColumnCount-1) do + begin + vRozpad.Columns[idx].Width:= 60; + Inc(idx); + end; + + idx:= 0; + vRozpad.GetColumnByFieldName('CisloZbozi').Index:= idx; + Inc(idx); + vRozpad.GetColumnByFieldName('Zbytek').Index:= idx; + Inc(idx); + + sql:= 'SELECT [name] FROM sys.columns WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr('_TabRozpadPrijStav') + ') AND'; + sql:= sql + ' [name] LIKE N' + QuotedStr('%200') + ' ORDER BY CASE LEFT([name],4) WHEN N''Stav'' THEN 1'; + sql:= sql + ' WHEN N''Poza'' THEN 2 WHEN N''Preb'' THEN 3 WHEN N''Doda'' THEN 4 END'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + vRozpad.GetColumnByFieldName(VarToStr(FieldValues(0))).Index:= idx; + Inc(idx); + Next; + end; + end; + + for cStr:=101 to 115 do + begin + sql:= 'SELECT [name] FROM sys.columns WHERE OBJECT_ID=OBJECT_ID(N' + QuotedStr('_TabRozpadPrijStav') + ') AND'; + sql:= sql + ' [name] LIKE N' + QuotedStr('%' + IntToStr(cStr)) + ' ORDER BY CASE LEFT([name],4) WHEN N''Stav'' THEN 1'; + sql:= sql + ' WHEN N''Poza'' THEN 2 WHEN N''Preb'' THEN 3 WHEN N''Doda'' THEN 4 END'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + fName:= LeftStr(StringReplace(vRozpad.VisibleColumns[idx].Name,'vRozpad','',[rfReplaceAll]),5); + if (fName='Dodat') then + vRozpad.VisibleColumns[idx].Editing:= true; + vRozpad.GetColumnByFieldName(VarToStr(FieldValues(0))).Index:= idx; + Inc(idx); + Next; + end; + end; + end; +} + + VytvorRozpad2; + + + DataDoTabulky2; + SirkySloupcu2; + Self.WindowState:= wsMaximized; + Resize; + OdectiDodani2 (True); + + end; + +end. diff --git a/frmUnit13.dfm b/frmUnit13.dfm new file mode 100644 index 0000000..ab7d574 --- /dev/null +++ b/frmUnit13.dfm @@ -0,0 +1,143 @@ +object formPrevPrij: TformPrevPrij + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = ' Oprava P'#345'evodky / P'#345#237'jemky' + ClientHeight = 348 + ClientWidth = 601 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poMainFormCenter + OnClose = FormClose + OnShow = FormShow + TextHeight = 16 + object btnOK: TButton + Left = 396 + Top = 315 + Width = 75 + Height = 25 + Caption = 'OK' + TabOrder = 0 + OnClick = btnOKClick + end + object btnCancel: TButton + Left = 518 + Top = 315 + Width = 75 + Height = 25 + Caption = 'Storno' + TabOrder = 1 + OnClick = btnCancelClick + end + object grdPrijemky: TJvDBGrid + Left = 8 + Top = 16 + Width = 585 + Height = 290 + DataSource = ds1 + Options = [dgTitles, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgConfirmDelete, dgCancelOnExit, dgTitleHotTrack] + TabOrder = 2 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -13 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDrawColumnCell = grdPrijemkyDrawColumnCell + OnDblClick = grdPrijemkyDblClick + ScrollBars = ssVertical + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 20 + TitleRowHeight = 20 + Columns = < + item + Alignment = taCenter + Expanded = False + FieldName = 'SZ' + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 50 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RegCis' + Title.Alignment = taCenter + Title.Caption = 'Registra'#269'n'#237' '#269#237'slo' + Width = 120 + Visible = True + end + item + Expanded = False + FieldName = 'Nazev1' + Title.Caption = 'N'#225'zev' + Width = 310 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'Mnoz' + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Width = 80 + Visible = True + end + item + Expanded = False + FieldName = 'idPZ' + Visible = False + end + item + Expanded = False + FieldName = 'idPZold' + Visible = False + end> + end + object vTab1: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 194 + Top = 2 + object vTab1idPZ: TIntegerField + FieldName = 'idPZ' + end + object vTab1SZ: TStringField + FieldName = 'SZ' + Size = 3 + end + object vTab1RegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object vTab1Nazev1: TStringField + FieldName = 'Nazev1' + Size = 100 + end + object vTab1Mnoz: TFloatField + FieldName = 'Mnoz' + DisplayFormat = '#,##0.###' + end + object vTab1idPZold: TIntegerField + FieldName = 'idPZold' + Visible = False + end + end + object ds1: TDataSource + DataSet = vTab1 + Left = 242 + Top = 4 + end +end diff --git a/frmUnit13.pas b/frmUnit13.pas new file mode 100644 index 0000000..850c985 --- /dev/null +++ b/frmUnit13.pas @@ -0,0 +1,185 @@ +unit frmUnit13; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, FireDAC.Comp.Client, ddPlugin_TLB, + FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, + FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet, Vcl.Grids, Vcl.DBGrids, + JvExDBGrids, JvDBGrid; + +type + TformPrevPrij = class(TForm) + vTab1: TFDMemTable; + ds1: TDataSource; + btnOK: TButton; + btnCancel: TButton; + vTab1idPZ: TIntegerField; + vTab1SZ: TStringField; + vTab1RegCis: TStringField; + vTab1Nazev1: TStringField; + vTab1Mnoz: TFloatField; + vTab1idPZold: TIntegerField; + grdPrijemky: TJvDBGrid; + procedure FormShow (Sender: TObject); + procedure btnCancelClick (Sender: TObject); + procedure btnOKClick (Sender: TObject); + procedure FormClose (Sender: TObject; var Action: TCloseAction); + procedure grdPrijemkyDblClick (Sender: TObject); + procedure grdPrijemkyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); + private + procedure NactiPrijemku; + public + Helios: IHelios; + idDZ: integer; + idDZold: integer; + end; + +var + formPrevPrij: TformPrevPrij; + +implementation +uses myUtils, helUtils; + +{$R *.dfm} + + procedure TformPrevPrij.btnCancelClick (Sender: TObject); + begin + Close; + end; + + + + procedure TformPrevPrij.NactiPrijemku; + var sql: string; + c: TCloseAction; + begin + if (idDZ>0) then + begin + with Helios.OpenSQL('SELECT RadaDokladu,CONVERT(nvarchar,PoradoveCislo) FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ)) do + begin + sql:= ' Oprava Pevodky/Pjemky : ' + VarHodnota(FieldValues(0),'') + ' '; + sql:= sql + VarHodnota(FieldValues(1),''); + Self.Caption:= sql; + end; + + if not vTab1.Active then + vTab1.Open; + sql:= 'SELECT id,SkupZbo,RegCis,Nazev1,Mnozstvi,ISNULL(IdOldPolozka,0) FROM ' + tblPZ; + sql:= sql + ' WHERE IdDoklad=' + IntToStr(idDZ) + ' ORDER BY DatPorizeni'; + with Helios.OpenSQL(sql) do + begin + First; + while not(EOF) do + begin + vTab1.Append; + vTab1.FieldByName('idPZ').AsInteger:= VarHodnota(FieldValues(0),0); + vTab1.FieldByName('SZ').AsString:= VarHodnota(FieldValues(1),''); + vTab1.FieldByName('RegCis').AsString:= VarHodnota(FieldValues(2),''); + vTab1.FieldByName('Nazev1').AsString:= VarHodnota(FieldValues(3),''); + vTab1.FieldByName('Mnoz').AsExtended:= VarHodnota(FieldValues(4),0.0); + vTab1.FieldByName('idPZOld').AsInteger:= VarHodnota(FieldValues(5),0); + vTab1.Post; + Next; + end; + vTab1.RecNo:= 1; + end; + end + else + Helios.Error(#1'Nebyla vybrna dn pjemka.'#1); + end; + + + + procedure TformPrevPrij.grdPrijemkyDblClick(Sender: TObject); + var mn: Extended; + begin + if not(VarIsNull(vTab1.FieldByName('Mnoz').Value)) then + mn:= vTab1.FieldByName('Mnoz').AsExtended + else + mn:= 0; + if InputNumeric('Zadejte mnostv','Nov mnostv:',mn) then + begin + vTab1.Edit; + vTab1.FieldByName('Mnoz').AsExtended:= mn; + vTab1.Post; + end; + end; + + + + procedure TformPrevPrij.grdPrijemkyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); + begin + if (gdSelected in State) then + begin + TJvDBGrid(Sender).Canvas.Font.Color:= clWhite; + TJvDBGrid(Sender).Canvas.Brush.Color:= $00FF9933; + end; + TJvDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State); + end; + + + + procedure TformPrevPrij.btnOKClick (Sender: TObject); + var idx: integer; + sql: string; + begin + try + if (vTab1.RecordCount>0) then + begin + idx:= 0; + vTab1.First; + while not(vTab1.Eof) do + begin + sql:= 'UPDATE ' + tblPZ + ' SET Mnozstvi=' + StringReplace(vTab1.FieldByName('Mnoz').AsString,'','',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + vTab1.FieldByName('idPZ').AsString; + Helios.ExecSQL(sql); + sql:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JcBezDaniKc*Mnozstvi,CCsDPHKc=JcBezDaniKc*Mnozstvi,CCbezDaniVal=JcBezDaniKc*Mnozstvi,'; + sql:= sql + 'CCsDPHVal=JcBezDaniKc*Mnozstvi,CCbezDaniKcPoS=JcBezDaniKc*Mnozstvi,CCsDPHKcPoS=JcBezDaniKc*Mnozstvi,'; + sql:= sql + 'CCbezDaniValPoS=JcBezDaniKc*Mnozstvi,CCsDPHValPoS=JcBezDaniKc*Mnozstvi,CCsSDKc=JcBezDaniKc*Mnozstvi,'; + sql:= sql + 'CCsSDVal=JcBezDaniKc*Mnozstvi,BlokovaniEditoru=NULL WHERE id=' + vTab1.FieldByName('idPZ').AsString; + Helios.ExecSQL(sql); + + sql:= 'UPDATE ' + tblPZ + ' SET Mnozstvi=' + StringReplace(vTab1.FieldByName('Mnoz').AsString,'','',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + vTab1.FieldByName('idPZold').AsString; + Helios.ExecSQL(sql); + sql:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=JcBezDaniKc*Mnozstvi,CCsDPHKc=JcBezDaniKc*Mnozstvi,CCbezDaniVal=JcBezDaniKc*Mnozstvi,'; + sql:= sql + 'CCsDPHVal=JcBezDaniKc*Mnozstvi,CCbezDaniKcPoS=JcBezDaniKc*Mnozstvi,CCsDPHKcPoS=JcBezDaniKc*Mnozstvi,'; + sql:= sql + 'CCbezDaniValPoS=JcBezDaniKc*Mnozstvi,CCsDPHValPoS=JcBezDaniKc*Mnozstvi,CCsSDKc=JcBezDaniKc*Mnozstvi,'; + sql:= sql + 'CCsSDVal=JcBezDaniKc*Mnozstvi,BlokovaniEditoru=NULL WHERE id=' + vTab1.FieldByName('idPZold').AsString; + Helios.ExecSQL(sql); + vTab1.Next; + end; + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZold) + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZold)); + end; + Close; + finally + end; + end; + + + + + procedure TformPrevPrij.FormClose (Sender: TObject; var Action: TCloseAction); + begin + if (vTab1.Active) then + vTab1.Close; + Helios.Refresh (true); + Action:= caFree; + end; + + + + procedure TformPrevPrij.FormShow(Sender: TObject); + begin + grdPrijemky.Font.Size:= Helios.FontHeight; + grdPrijemky.Font.Name:= Helios.Font; + NactiPrijemku; + end; + + +end. diff --git a/frmUnit15.dfm b/frmUnit15.dfm new file mode 100644 index 0000000..dc868c7 --- /dev/null +++ b/frmUnit15.dfm @@ -0,0 +1,200 @@ +object formOdvodRele: TformOdvodRele + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = ' Odvod Pr'#225'ce' + ClientHeight = 295 + ClientWidth = 377 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object lblKusy: TLabel + Left = 8 + Top = 167 + Width = 92 + Height = 16 + Caption = 'Vyroben'#233' kusy :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblDilecPrikaz: TLabel + Left = 45 + Top = 134 + Width = 55 + Height = 16 + Caption = 'V'#253'robek :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object lblZamest: TLabel + Left = 15 + Top = 98 + Width = 85 + Height = 16 + Caption = 'Zam'#283'stnanec :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + end + object Panel1: TPanel + Left = 6 + Top = 67 + Width = 361 + Height = 218 + Caption = 'Panel1' + TabOrder = 2 + DesignSize = ( + 361 + 218) + object pgControl: TPageControl + Left = 0 + Top = -21 + Width = 361 + Height = 238 + ActivePage = tbVyrobek + Anchors = [akLeft, akTop, akRight, akBottom] + TabOrder = 0 + object tbVyrobek: TTabSheet + Caption = 'tbVyrobek' + end + object tbPrikaz: TTabSheet + Caption = 'tbPrikaz' + ImageIndex = 1 + end + end + end + object btnPrikaz: TButton + Left = 221 + Top = 8 + Width = 129 + Height = 45 + Caption = 'Odvod &P'#345#237'kazu' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + OnClick = btnPrikazClick + end + object btnVyrobek: TButton + Left = 28 + Top = 8 + Width = 129 + Height = 45 + Caption = 'Odvod &V'#253'robku' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = btnVyrobekClick + end + object selZamest: TRzButtonEdit + Left = 127 + Top = 95 + Width = 88 + Height = 24 + Text = '0' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 6 + ParentFont = False + TabOrder = 3 + OnExit = selZamestExit + OnKeyUp = selZamestKeyUp + AltBtnWidth = 15 + ButtonWidth = 15 + end + object selDilecPrikaz: TRzButtonEdit + Left = 127 + Top = 131 + Width = 165 + Height = 24 + Text = '' + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnExit = selDilecPrikazExit + OnKeyUp = selDilecPrikazKeyUp + AltBtnWidth = 15 + ButtonWidth = 15 + end + object edtKusy: TRzNumericEdit + Left = 127 + Top = 165 + Width = 65 + Height = 24 + Alignment = taCenter + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + MaxLength = 5 + ParentFont = False + TabOrder = 5 + OnKeyUp = edtKusyKeyUp + DisplayFormat = ',0;(,0)' + end + object btnOK: TButton + Left = 34 + Top = 224 + Width = 97 + Height = 35 + Caption = 'OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + end + object btnZrus: TButton + Left = 234 + Top = 224 + Width = 97 + Height = 35 + Caption = 'Zru'#353'it' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 7 + OnClick = btnZrusClick + end +end diff --git a/frmUnit15.pas b/frmUnit15.pas new file mode 100644 index 0000000..7bf0169 --- /dev/null +++ b/frmUnit15.pas @@ -0,0 +1,513 @@ +unit frmUnit15; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, + RzEdit, Vcl.Mask, RzBtnEdt, ddPlugin_TLB; + +const + sklVyr = '200'; + radaOdved = '220'; + +type + TarrPrikazy = record + id: Integer; + ks: Single; + ksZive: Single; + idKZ: integer; + end; + + TformOdvodRele = class(TForm) + btnVyrobek: TButton; + btnPrikaz: TButton; + Panel1: TPanel; + pgControl: TPageControl; + tbVyrobek: TTabSheet; + tbPrikaz: TTabSheet; + selZamest: TRzButtonEdit; + lblDilecPrikaz: TLabel; + selDilecPrikaz: TRzButtonEdit; + lblZamest: TLabel; + lblKusy: TLabel; + edtKusy: TRzNumericEdit; + btnOK: TButton; + btnZrus: TButton; + procedure FormShow(Sender: TObject); + procedure btnVyrobekClick(Sender: TObject); + procedure btnPrikazClick(Sender: TObject); + procedure btnZrusClick(Sender: TObject); + procedure selZamestExit(Sender: TObject); + procedure selDilecPrikazExit(Sender: TObject); + procedure selZamestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure selDilecPrikazKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure edtKusyKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + private + procedure OdvodPrikazu; safecall; + public + Helios: IHelios; + end; + +var + formOdvodRele: TformOdvodRele; + lSQL: string; + idZam, idKZ: integer; + idPrikazy: TArray; + odvVyr: boolean; + +implementation +{$R *.dfm} + +uses + Vcl.Clipbrd, helUtils; + + + procedure TformOdvodRele.OdvodPrikazu; + var ksZbyt, ksZive: Single; + idx, idx2, idPrikaz, idDZ, idDZv, idDZp, idKJ: integer; + realVyd, realPrij, cont: boolean; + begin + if (edtKusy.Value=0) then + Helios.Error(#1'Nen zadno odvdn mnostv.'#1) + else + if (Length(idPrikazy)>0) then + begin + ksZbyt:= edtKusy.Value; + idx:= 0; + while (idx<=High(idPrikazy)) and (ksZbyt>0) do + begin + ksZive:= idPrikazy[idx].ksZive; + if (ksZive>=ksZbyt) then + begin + ksZive:= ksZbyt; + ksZbyt:= 0; + end; + if (ksZive>0) then + begin + idPrikazy[idx].ks:= ksZive; + ksZbyt:= ksZbyt-ksZive; + end; + idx:= idx+1; + end; + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabOdved') + ') IS NOT NULL DROP TABLE #TabOdved' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabOdved (id int identity, IDPrikaz int NOT NULL, IDDilec int NOT NULL, IDZakazka int, maxMnozstvi NUMERIC(19,6),'; + lSQL:= lSQL + 'mnozstvi NUMERIC(19,6) NOT NULL, EvidJednotka INT NOT NULL, Sklad NVARCHAR(30), KodUmisteni NVARCHAR(15) )'; + Helios.ExecSQL(lSQL); + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabGenRezVyd') + ') IS NOT NULL DROP TABLE #TabGenRezVyd' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabGenRezVyd(ID INT NOT NULL)'; + Helios.ExecSQL(lSQL); + + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabPrKVazbyGen(ID INT IDENTITY NOT NULL, Generuj BIT NOT NULL DEFAULT 1,'; + lSQL:= lSQL + 'PoKorekciDat BIT NOT NULL DEFAULT 0, IDPrKV INT NOT NULL, Doklad INT NOT NULL, IDPrikaz INT NOT NULL,'; + lSQL:= lSQL + 'Prednastaveno BIT NOT NULL DEFAULT 1, Sklad NVARCHAR(30) COLLATE database_default NULL,'; + lSQL:= lSQL + 'VyrStredisko NVARCHAR(30) COLLATE database_default NULL, IDPracoviste INT NULL,'; + lSQL:= lSQL + 'mnoz_zad NUMERIC(19, 6) NOT NULL DEFAULT 0, Mnoz_nepotrebne NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + lSQL:= lSQL + 'Mnoz_skut_realizovane NUMERIC(19, 6) NOT NULL DEFAULT 0, Cena_real NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + lSQL:= lSQL + 'Mnoz_odv NUMERIC(19, 6) NOT NULL DEFAULT 0, Cena_odv NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + lSQL:= lSQL + 'MnozstviMax NUMERIC(19, 6) NULL, MnozstviPoz NUMERIC(19, 6) NOT NULL, PomMnozPoz NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + lSQL:= lSQL + 'IDPohZbo INT NULL, priorita INT NOT NULL DEFAULT 0, vyssi INT NOT NULL, nizsi INT NOT NULL,'; + lSQL:= lSQL + 'DavkaTPV NUMERIC(19, 6) NOT NULL DEFAULT 1, pozice NVARCHAR(100) COLLATE database_default NULL DEFAULT '''','; + lSQL:= lSQL + 'Operace NCHAR(4) COLLATE database_default NULL DEFAULT N'''', FixniMnozstvi NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + lSQL:= lSQL + 'mnozstvi NUMERIC(19, 6) NOT NULL DEFAULT 1, ProcZtrat NUMERIC(5, 2) NOT NULL DEFAULT 0,'; + lSQL:= lSQL + 'mnozstviSeZtratou NUMERIC(19, 6) NOT NULL DEFAULT 0, Prirez NUMERIC(19, 6) NOT NULL DEFAULT 1,'; + lSQL:= lSQL + 'Poznamka NTEXT COLLATE database_default NULL, pom_pomer_A NUMERIC(19, 6) NULL,'; + lSQL:= lSQL + 'pom_pomer_B NUMERIC(19, 6) NULL, Dodavatel INT NULL)'; + Helios.ExecSQL(lSQL); + + for idx:=Low(idPrikazy) to High(idPrikazy) do + begin + if (idPrikazy[idx].ks<=0) then + Continue; + lSQL:= 'INSERT #TabOdved (IDPrikaz,IDDilec,Mnozstvi,EvidJednotka,Sklad) VALUES ('; + lSQL:= lSQL + IntToStr(idPrikazy[idx].id) + ',' + IntToStr(idPrikazy[idx].idKZ) + ','; + lSQL:= lSQL + StringReplace( FloatToStr(idPrikazy[idx].ks) ,',','.',[rfReplaceAll]); + lSQL:= lSQL + ',1,N' + QuotedStr(sklVyr) + ')'; + Helios.ExecSQL(lSQL); + end; + + lSQL:= 'DECLARE @RespekExistDoklady bit' + CRLF + 'SET @RespekExistDoklady=1' + CRLF; + lSQL:= lSQL + 'INSERT #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz,'; + lSQL:= lSQL + 'Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,'; + lSQL:= lSQL + 'Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,'; + lSQL:= lSQL + 'mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka) SELECT PrKV.ID, PrKV.mnoz_zad*O.mnozstvi/P.kusy_zad'; + lSQL:= lSQL + '-CASE WHEN @RespekExistDoklady=1 THEN PrKV.VydanoRefMnoz + (SELECT ISNULL(SUM(PZ2.prepmnozstvi*(PZ2.mnozstvi'; + lSQL:= lSQL + '-PZ2.MnOdebrane) * PrKV2.RefMnoz / PrKV2.mnoz_zad), 0.0) FROM TabPohybyZbozi PZ2 INNER JOIN TabStavSkladu SS2 ON (SS2.ID=PZ2.IDZboSklad)'; + lSQL:= lSQL + ' INNER JOIN TabPrKVazby PrKV2 ON (PrKV2.IDPrikaz=PZ2.IDPrikaz AND PrKV2.Doklad=PZ2.DokladPrikazu AND '; + lSQL:= lSQL + 'PrKV2.nizsi=SS2.IDKmenZbozi AND PrKV2.IDOdchylkyDo IS NULL) WHERE PZ2.TypVyrobnihoDokladu=1 AND '; + lSQL:= lSQL + 'PZ2.IDPrikaz=PrKV.IDPrikaz AND PZ2.DokladPrikazu=PrKV.Doklad AND PZ2.druhPohybuZbo IN (2,4,9,10) AND '; + lSQL:= lSQL + 'PZ2.SkutecneDatReal IS NULL) ELSE 0.0 END, CASE WHEN @RespekExistDoklady=0 THEN O.mnozstvi END,'; + lSQL:= lSQL + 'CASE WHEN @RespekExistDoklady=0 THEN P.kusy_zad END,PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno,'; + lSQL:= lSQL + 'PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne, PrKV.Mnoz_skut_realizovane,'; + lSQL:= lSQL + 'PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV,'; + lSQL:= lSQL + 'PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi, PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou,'; + lSQL:= lSQL + 'PrKV.Prirez, PrKV.Poznamka FROM (SELECT IDPrikaz=O1.IDPrikaz, Mnozstvi=SUM(O1.mnozstvi)'; + lSQL:= lSQL + ' + CASE WHEN @RespekExistDoklady=1 THEN MAX(P1.kusy_odved+P1.kusy_ztrac+P1.kusy_zmet)'; + lSQL:= lSQL + ' + (SELECT ISNULL(SUM(PZ1.prepmnozstvi*PZ1.mnozstvi), 0.0) FROM TabPohybyZbozi PZ1 WHERE PZ1.TypVyrobnihoDokladu=0'; + lSQL:= lSQL + ' AND PZ1.IDPrikaz=O1.IDPrikaz AND PZ1.druhPohybuZbo=0 AND PZ1.SkutecneDatReal IS NULL) ELSE 0.0 END'; + lSQL:= lSQL + ' FROM #TabOdved O1 INNER JOIN TabPrikaz P1 ON (P1.ID=O1.IDPrikaz) GROUP BY O1.IDPrikaz) O'; + lSQL:= lSQL + ' INNER JOIN TabPrikaz P ON (P.ID=O.IDPrikaz AND P.StavPrikazu IN (30,50)) INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)'; + lSQL:= lSQL + ' INNER JOIN TabPrKVazby PrKV ON (PrKV.IDPrikaz=O.IDPrikaz AND PrKV.predzpracovano=0 AND PrKV.prednastaveno=1'; + lSQL:= lSQL + ' AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND PrKV.IDOdchylkyDo IS NULL) INNER JOIN TabKmenZbozi KZ ON'; + lSQL:= lSQL + ' (KZ.ID=PrKV.nizsi AND KZ.sluzba=0) WHERE (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0)'; + Helios.ExecSQL(lSQL); + + lSQL:= 'UPDATE G SET MnozstviMax=CASE WHEN RP.NekontrolovatMnozMatPol=1 THEN NULL ELSE (CASE WHEN PrKV.splneno=1'; + lSQL:= lSQL + ' THEN 0.0 ELSE PrKV.mnoz_zad-PrKV.VydanoRefMnoz*PrKV.mnoz_zad/PrKV.RefMnoz END) END FROM #TabPrKVazbyGen G'; + lSQL:= lSQL + ' INNER JOIN TabPrKVazby PrKV ON (PrKV.ID=G.IDPrKV) INNER JOIN TabPrikaz P ON (P.ID=PrKV.IDPrikaz)'; + lSQL:= lSQL + ' INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)' + CRLF; + lSQL:= lSQL + 'UPDATE #TabPrKVazbyGen SET mnozstviPoz=CEILING(mnozstviPoz) FROM #TabPrKVazbyGen G INNER JOIN'; + lSQL:= lSQL + ' TabPrKVazby PrKV ON (PrKV.ID=G.IDPrKV) INNER JOIN TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi)'; + lSQL:= lSQL + ' INNER JOIN TabMJ MJ ON (MJ.kod=KZ.MJEvidence AND MJ.nedelitelna=1) WHERE G.PoKorekciDat=0' + CRLF; + lSQL:= lSQL + 'UPDATE #TabPrKVazbyGen SET mnozstviPoz=MnozstviMax WHERE MnozstviMax IS NOT NULL AND mnozstviPoz>MnozstviMax'; + lSQL:= lSQL + CRLF + 'DELETE #TabPrKVazbyGen WHERE MnozstviPoz<=0.0 AND PoKorekciDat=0' + CRLF; + lSQL:= lSQL + 'UPDATE G SET Dodavatel=CO.ID FROM #TabPrKVazbyGen G INNER JOIN TabPrKVazby PrKV ON (PrKV.ID=G.IDPrKV)'; + lSQL:= lSQL + ' INNER JOIN TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi) INNER JOIN TabCisOrg CO ON (CO.CisloOrg=KZ.Aktualni_Dodavatel)'; + lSQL:= lSQL + ' WHERE G.PoKorekciDat=0 AND G.Dodavatel IS NULL' + CRLF + 'UPDATE #TabPrKVazbyGen SET PoKorekciDat=1 WHERE PoKorekciDat=0'; + lSQL:= lSQL + CRLF + 'UPDATE #TabPrKVazbyGen SET Generuj=1'; + Helios.ExecSQL(lSQL); + + for idx:=Low(idPrikazy) to High(idPrikazy) do + begin + if (idPrikazy[idx].id=0) then + Continue; + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabSouhKusov') + ') IS NOT NULL DROP TABLE #TabSouhKusov' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabSouhKusov (IDKZ INT, mnozstvi NUMERIC(19,6) DEFAULT 0.0)' + CRLF; + Helios.ExecSQL(lSQL); + lSQL:= 'DECLARE @dt DATETIME' + CRLF + 'SET @dt=GETDATE()' + CRLF + 'EXEC dbo.ep_GetKusovnikProOZ'; + lSQL:= lSQL + ' @ID=' + IntToStr(idPrikazy[idx].idKZ) + ',@mnozstvi=' + StringReplace(FloatToStr(idPrikazy[idx].ks),',','.',[rfReplaceAll]); + lSQL:= lSQL + ',@datum=@dt' + CRLF + 'MERGE #TabPrKVazbyGen AS T USING #TabSouhKusov AS S ON (T.nizsi=S.IDKZ AND'; + lSQL:= lSQL + ' T.IDPrikaz=' + IntToStr(idPrikazy[idx].id) + ') WHEN MATCHED THEN UPDATE SET T.MnozstviPoz=S.mnozstvi;'; + Helios.ExecSQL(lSQL); + end; + + lSQL:= 'SELECT DISTINCT(v.nizsi),X.Soucet,ss.Mnozstvi,kz.SkupZbo,kz.RegCis,kz.Nazev1 FROM #TabPrKVazbyGen v'; + lSQL:= lSQL + ' INNER JOIN (SELECT DISTINCT(g.nizsi),SUM(g.MnozstviPoz) AS [Soucet] FROM #TabPrKVazbyGen g GROUP BY g.nizsi) AS X'; + lSQL:= lSQL + ' ON (v.nizsi=X.nizsi) INNER JOIN ' + tblSS + ' ss ON (v.nizsi=ss.IDKmenZbozi AND v.Sklad=ss.IDSklad)'; + lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' kz ON (v.nizsi=kz.id) WHERE ss.Mnozstvi0) then + begin + First; + lSQL:= ''; + while not(EOF) do + begin + lSQL:= lSQL + CRLF + VarToStr(FieldValues(3)) + ' : ' + VarToStr(FieldValues(4)) + ' ' + VarToStr(FieldValues(5)); + lSQL:= lSQL + ' - ' + VarToStr(FieldValues(1)) + ' ks (skladem je ' + VarToStr(FieldValues(2)) + ' ks)'; + Next; + end; + Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze vygenerovat vdejku, chyb nkter materil.'#1 + CRLF + 'Zpracovn evidence nebude provedeno.' + CRLF + lSQL); + Exit; + end; + + lSQL:= 'SELECT SUM(vazGen.mnozstviPoz),kz.RegCis,ss.Mnozstvi,kz.Nazev1'; + lSQL:= lSQL + ' FROM #TabPrKVazbyGen vazGen'; + lSQL:= lSQL + ' INNER JOIN ' + tblSS + ' ss ON (ss.IDSklad=vazGen.Sklad AND ss.IDKmenZbozi=vazGen.nizsi)'; + lSQL:= lSQL + ' INNER JOIN ' + tblKZ + ' kz ON (vazGen.nizsi=kz.id) WHERE ss.Mnozstvi0) then + begin + First; + lSQL:= ''; + while not(EOF) do + begin + lSQL:= lSQL + CRLF + VarToStr(FieldValues(1)) + ' : ' + VarToStr(FieldValues(3)) + ' - ' + VarToStr(FieldValues(0)); + lSQL:= lSQL + ' ks (skladem je ' + VarToStr(FieldValues(2)) + ' ks)'; + Next; + end; +// Clipboard.AsText:= lSQL; + Helios.Error(#1'Nelze vygenerovat vdejku, chyb nkter materil.'#1 + CRLF + 'Zpracovn evidence nebude provedeno.' + CRLF + lSQL); + Exit; + end + else + begin + lSQL:= 'DECLARE @obd INT,@dt DATETIME' + CRLF + 'SELECT @dt=GETDATE()'; + lSQL:= lSQL + CRLF + 'EXEC @obd=dbo.hp_GetObdobiDleDatumu @dt,0,null,null,0,0' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_generujRezVyd @RadaDokladu=N' + QuotedStr('400') + ',@DruhPohybuZbo=4,@IDObdobi=@obd,@DatPorizeni=@dt'; + lSQL:= lSQL + ',@SekejZakazky=0'; + try + Helios.ExecSQL(lSQL); + with Helios.OpenSQL('SELECT id FROM #TabGenRezVyd') do + if (RecordCount>0) then + begin + idDZ:= StrToInt(VarToStr(FieldValues(0))); + idDZv:= idDZ; + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET StredNaklad=N' + QuotedStr('200') + ',CisloZam=' + Trim(selZamest.Text) + ' WHERE id=' + IntToStr(idDZ)); + + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=0'); + if Length(idPrikazy)=1 then + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET IDPrikaz=' + IntToStr(idPrikazy[0].id) + ' WHERE id=' + IntToStr(idDZ)); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ)); + try + lSQL:= 'DECLARE @chyba BIT' + CRLF + 'EXEC dbo.hp_Realizuj_Vydej ' + IntToStr(idDZ) + ',NULL,' + IntToStr(Helios.UserId); + lSQL:= lSQL + ',0,@chyba OUT' + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + if LowerCase(VarToStr(FieldValues(0)))='false' then + realVyd:= true; + except on E:Exception do + begin + Helios.ExecSQL('DELETE FROM ' + tblDZDod + ' WHERE IDHlavicky=' + IntToStr(idDZ)); + Helios.ExecSQL('DELETE FROM ' + tblPZ + ' WHERE iddoklad=' + IntToStr(idDZ)); + Helios.ExecSQL('DELETE FROM ' + tblDZ + ' WHERE id=' + IntToStR(idDZ)); + Helios.Error(#1'Nelze realizovat vdejku.'#1 + CRLF + E.Message); + { + idKJ:= ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze realizovat vdejku.'); + if idKJ>0 then + Helios.ExecSQL('INSERT INTO ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit10') + ',N' + QuotedStr(E.Message + CRLF + lSQL) + ')'); + } + idKJ:= 0; + Exit; + end; + end; + end; + except on E:Exception do + begin + Helios.Error(#1'Nelze vygenerovat vdejku materilu.'#1 + CRLF + E.Message); + Exit; + end; + end; + end; + + // odvedeni prikazu, tj. vytvoreni prijemky s cenou podle vydeje za material a ceny za praci + // sBar.SimpleText:= 'Odvdm pkazy...'; + + lSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenPrijem') + ') IS NOT NULL DROP TABLE #TabGenPrijem' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabGenPrijem (ID int)'; + Helios.ExecSQL(lSQL); + + idDZ:= 0; + lSQL:= 'DECLARE @dt DATETIME' + CRLF + 'SELECT @dt=GETDATE()'; + lSQL:= lSQL + CRLF + 'EXEC dbo.hp_OdvedeniPrikazu N' + QuotedStr(radaOdved) + ',' + IntToStr(Helios.Obdobi) + ',0,@dt,0,0'; + try + Helios.ExecSQL(lSQL); + cont:= true; + except on E:Exception do + begin + Helios.Error(#1'Pprava na odveden na sklad nebyla spn.'#1 + CRLF + E.Message + CRLF + lSQL); + idKJ:= ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze pipravit Odveden na sklad.'); + if (idKJ>0) then + Helios.ExecSQL('INSERT ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit10') + ',N' + QuotedStr(E.Message + CRLF + lSQL) + ')'); + idKJ:= 0; + cont:= false; + end; + end; + + with Helios.OpenSQL('SELECT * FROM #TabGenPrijem') do + begin + if (RecordCount=1) then + idDZ:= StrToInt(VarToStr(FieldValues(0))); + if (RecordCount>1) then + Helios.Info(#1'Pozor, vznik vce pjemek.'#1); + end; + if (idDZ>0) and cont then + begin + idDZp:= idDZ; + try + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET CisloZam=' + Trim(selZamest.Text) + ' WHERE id=' + IntToStr(idDZp)); + // Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCenyPrijemka @idDZ=' + IntToStr(idDZp)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZp) + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET StredNaklad=N' + QuotedStr('200') + ',BlokovaniEditoru=null WHERE id=' + IntToStr(idDZp)); + except on E:Exception do + Helios.Error(#1'Nelze napotat ceny pjemky z vroby.'#1 + CRLF + E.Message + CRLF + '(plgLOVATO,unit10)'); + end; + + if (realVyd) then + begin + realPrij:= false; + + // lSQL:= 'IF EXISTS(SELECT id FROM ' + tblPravaSklad + ' WHERE Realizace=1 AND Cislo=N' + QuotedStr(sklVyr) + ' AND'; + // lSQL:= lSQL + ' (LoginName=SUSER_SNAME() OR IDRole=(SELECT IdRole FROM ' + tblUziv + ' WHERE LoginName=SUSER_SNAME())))' + CRLF + ' BEGIN' + CRLF; + // sBar.SimpleText:= 'Realizace pjemky...'; + + lSQL:= 'DECLARE @chyba BIT,@dt DATETIME' + CRLF + 'SELECT @dt=GETDATE()' + CRLF; + lSQL:= lSQL + 'EXEC dbo.hp_Realizuj_Prijem ' + IntToStr(idDZp) + ',@dt,' + IntToStr(Helios.UserId) + ',@chyba OUT'; + lSQL:= lSQL + CRLF + 'SELECT @chyba'; + try + with Helios.OpenSQL(lSQL) do + if not VarIsNull(FieldValues(0)) then + if LowerCase(VarToStr(FieldValues(0)))='false' then + realPrij:= true; + except on E:Exception do + begin + idKJ:= ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze realizovat Odvod na sklad.'); + if (idKJ>0) then + Helios.ExecSQL('INSERT ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit10') + ',N' + QuotedStr(E.Message + CRLF + lSQL) + ')'); + idKJ:= 0; + end; + end; + end; + + end; // prijemka + + if realPrij then + begin + // sBar.SimpleText:= 'Uzavrn pkaz...'; + for idx2:=Low(idPrikazy) to High(idPrikazy) do + begin + idPrikaz:= idPrikazy[idx2].id; + if (idPrikaz<=0) then + Continue; + with Helios.OpenSQL('SELECT id FROM ' + tblPrikaz + ' WHERE StavPrikazu<50 AND id=' + IntToStr(idPrikaz)) do + if (RecordCount>0) then + try + Helios.ExecSQL('UPDATE ' + tblPrikaz + ' SET ukonceni=GETDATE(),StavPrikazu=50 WHERE id=' + IntToStr(idPrikaz)); + except on E:Exception do + Helios.Error(#1'Chyba: ' + E.Message + #1); + end; + end; + end; + + Helios.Refresh(true); + end; + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabOdved') + ') IS NOT NULL DROP TABLE #TabOdved'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenPrijem') + ') IS NOT NULL DROP TABLE #TabGenPrijem'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenRezVyd') + ') IS NOT NULL DROP TABLE #TabGenRezVyd'); + end; + + + procedure TformOdvodRele.FormShow(Sender: TObject); + begin + Panel1.SendToBack; + lblDilecPrikaz.BringToFront; + lblKusy.BringToFront; + lblZamest.BringToFront; + SetLength(idPrikazy,0); + odvVyr:= true; // odvod vyrobku + end; + + + procedure TformOdvodRele.selDilecPrikazExit(Sender: TObject); + var idx: integer; + begin + selDilecPrikaz.Text:= Trim(selDilecPrikaz.Text); + if (selDilecPrikaz.Text<>'') then + begin + if (odvVyr) then + begin + idKZ:= 0; + lSQL:= 'SELECT kz.id FROM ' + tblKZ + ' kz INNER JOIN ' + tblSZ + ' sz ON (sz.SkupZbo=kz.SkupZbo) INNER JOIN '; + lSQL:= lSQL + tblSZe + ' sze ON (sz.id=sze.id) WHERE sze._JeVyroba=1 AND kz.RegCis=N' + QuotedStr(selDilecPrikaz.Text); + with Helios.OpenSQL(lSQL) do + if (RecordCount=1) then + begin + idKZ:= StrToInt(VarToStr(FieldValues(0))); + lSQL:= 'SELECT id,kusy_zive FROM ' + tblPrikaz + ' WHERE StavPrikazu<=40 AND kusy_zive>0 AND IdTabKmen=' + IntToStr(idKZ); + lSQL:= lSQL + 'ORDER BY DatPorizeni DESC'; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + SetLength(idPrikazy, RecordCount); + for idx:=0 to RecordCount-1 do + begin + idPrikazy[idx].id:= StrToInt(VarToStr(FieldValues(0))); + idPrikazy[idx].ksZive:= StrToFloat(VarToStr(FieldValues(1))); + idPrikazy[idx].ks:= 0; + idPrikazy[idx].idKZ:= idKZ; + end; + end + else + Helios.Error(#1'Nenalezeny dn pkazy k odveden tohoto vrobku.'#1); + end + else + Helios.Error(#1'Nejednoznan identifikace vrobku.'#1); + end + else + begin + lSQL:= 'SELECT id,kusy_zive,IdTabKmen FROM ' + tblPrikaz + ' WHERE StavPrikazu<=40 AND kusy_zive>0 AND RadaPrikaz=N' + QuotedStr(selDilecPrikaz.Text); + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + begin + SetLength(idPrikazy, 1); + idPrikazy[0].id:= StrToInt(VarToStr(FieldValues(0))); + idPrikazy[0].ksZive:= StrToFloat(VarToStr(FieldValues(1))); + idKZ:= StrToInt(VarToStr(FieldValues(2))); + end + else + Helios.Error(#1'Zadan vrobn pkaz nebyl nalezen nebo je uzaven.'#1); + end; + OdvodPrikazu; + end + else + Helios.Error(#1'Nen zadno slo vrobku nebo pkazu.'#1); + end; + + + procedure TformOdvodRele.selDilecPrikazKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + edtKusy.SetFocus; + end; + + + procedure TformOdvodRele.selZamestExit(Sender: TObject); + begin + selZamest.Text:= Trim(selZamest.Text); + if (selZamest.Text<>'') then + begin + if (selZamest.Text<>'0') then + begin + idZam:= 0; + lSQL:= 'SELECT id FROM ' + tblCZam + ' WHERE Cislo=' + selZamest.Text; + with Helios.OpenSQL(lSQL) do + if (RecordCount>0) then + idZam:= StrToInt(VarToStr(FieldValues(0))); + end; + end + else + Helios.Error(#1'Nen zadno osobn slo zamstnance.'#1); + end; + + + procedure TformOdvodRele.selZamestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + selDilecPrikaz.SetFocus; + end; + + + procedure TformOdvodRele.btnVyrobekClick(Sender: TObject); + begin + odvVyr:= true; + Self.Height:= 315; + btnPrikaz.Enabled:= false; + selZamest.SetFocus; + end; + + + procedure TformOdvodRele.btnPrikazClick(Sender: TObject); + begin + odvVyr:= false; + Self.Height:= 315; + btnVyrobek.Enabled:= false; + selZamest.SetFocus; + end; + + + procedure TformOdvodRele.btnZrusClick(Sender: TObject); + begin + selZamest.Text:= '0'; + selDilecPrikaz.Text:= ''; + edtKusy.Value:= 0; + Self.Height:= 90; + btnVyrobek.Enabled:= true; + btnPrikaz.Enabled:= true; + end; + + + procedure TformOdvodRele.edtKusyKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if (Key=VK_RETURN) then + btnOK.SetFocus; + end; + +end. diff --git a/frmUnit2.dfm b/frmUnit2.dfm new file mode 100644 index 0000000..7145517 --- /dev/null +++ b/frmUnit2.dfm @@ -0,0 +1,18 @@ +object formOdvezMzdy: TformOdvezMzdy + Left = 196 + Top = 237 + BorderStyle = bsDialog + Caption = ' Hromadn'#233' odveden'#237' operac'#237 + ClientHeight = 394 + ClientWidth = 762 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = True + Position = poOwnerFormCenter + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/frmUnit2.pas b/frmUnit2.pas new file mode 100644 index 0000000..db85657 --- /dev/null +++ b/frmUnit2.pas @@ -0,0 +1,21 @@ +unit frmUnit2; + +interface + +uses + Windows, Variants, Classes, Controls, Forms, SysUtils, ddPlugin_TLB, StdCtrls; + +type + TformOdvedMzdy = class(TForm) + private + public + Helios : IHelios; + end; + +var + formOdvedMzdy: TformOdvedMzdy; + +implementation + +{$R *.dfm} + end. diff --git a/frmUnit3.dfm b/frmUnit3.dfm new file mode 100644 index 0000000..e81ff0e --- /dev/null +++ b/frmUnit3.dfm @@ -0,0 +1,234 @@ +object formCRM_Aktivity: TformCRM_Aktivity + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = ' Firemn'#237' aktivity - Aktivity' + ClientHeight = 353 + ClientWidth = 1108 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1108 + Height = 39 + ButtonHeight = 38 + ButtonWidth = 39 + Caption = 'ToolBar1' + Images = imgList + TabOrder = 0 + object btnPrev: TToolButton + Left = 0 + Top = 0 + Caption = 'P'#345'edchoz'#237 + ImageIndex = 0 + end + object btnNext: TToolButton + Left = 39 + Top = 0 + Caption = 'Dal'#353#237 + ImageIndex = 1 + end + end + object pgCtrl: TPageControl + Left = 0 + Top = 42 + Width = 1105 + Height = 261 + ActivePage = pgAktivity + TabOrder = 1 + object pgAktivity: TTabSheet + Caption = '1 - Aktivity' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object GroupBox1: TGroupBox + Left = -4 + Top = 0 + Width = 583 + Height = 221 + TabOrder = 0 + object Label1: TLabel + Left = 14 + Top = 18 + Width = 73 + Height = 13 + Caption = 'Po'#345'adov'#233' '#269#237'slo:' + end + object Label2: TLabel + Left = 102 + Top = 18 + Width = 82 + Height = 13 + Caption = 'P'#345'edm'#283't aktivity:' + end + object Label4: TLabel + Left = 14 + Top = 72 + Width = 50 + Height = 13 + Caption = 'Kategorie:' + end + object Label5: TLabel + Left = 102 + Top = 72 + Width = 22 + Height = 13 + Caption = 'Typ:' + end + object Label6: TLabel + Left = 208 + Top = 72 + Width = 26 + Height = 13 + Caption = 'Stav:' + end + object Label7: TLabel + Left = 14 + Top = 122 + Width = 63 + Height = 13 + Caption = 'M'#237'sto kon'#225'n'#237':' + end + object Label10: TLabel + Left = 14 + Top = 168 + Width = 42 + Height = 13 + Caption = 'Za'#269#225'tek:' + end + object Label11: TLabel + Left = 284 + Top = 168 + Width = 33 + Height = 13 + Caption = 'Konec:' + end + object dtpKon: TDateTimePicker + Left = 284 + Top = 188 + Width = 95 + Height = 21 + Date = 40826.617409398150000000 + Time = 40826.617409398150000000 + TabOrder = 0 + end + object dtpKonCas: TDateTimePicker + Left = 391 + Top = 188 + Width = 75 + Height = 21 + Date = 40826.620618379630000000 + Time = 40826.620618379630000000 + Kind = dtkTime + TabOrder = 1 + end + object dtpZac: TDateTimePicker + Left = 14 + Top = 188 + Width = 96 + Height = 21 + Date = 40826.617099652780000000 + Time = 40826.617099652780000000 + TabOrder = 2 + end + object dtpZacCas: TDateTimePicker + Left = 122 + Top = 188 + Width = 75 + Height = 21 + Date = 40826.620280509260000000 + Time = 40826.620280509260000000 + Kind = dtkTime + TabOrder = 3 + end + end + object GroupBox2: TGroupBox + Left = 590 + Top = 0 + Width = 501 + Height = 171 + TabOrder = 1 + object Label3: TLabel + Left = 14 + Top = 18 + Width = 29 + Height = 13 + Caption = 'Popis:' + end + end + end + object pgUcast: TTabSheet + Caption = '2 - '#218#269'astn'#237'ci jedn'#225'n'#237 + ImageIndex = 1 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object GroupBox3: TGroupBox + Left = 0 + Top = 0 + Width = 427 + Height = 123 + TabOrder = 0 + object Label8: TLabel + Left = 10 + Top = 18 + Width = 64 + Height = 13 + Caption = 'Jedn'#225'n'#237' vedl:' + end + object Label9: TLabel + Left = 10 + Top = 62 + Width = 58 + Height = 13 + Caption = 'Organizace:' + end + object edtOrgNazev: TEdit + Left = 122 + Top = 84 + Width = 285 + Height = 21 + ReadOnly = True + TabOrder = 0 + end + end + end + end + object btnOK: TButton + Left = 916 + Top = 316 + Width = 75 + Height = 25 + Caption = 'OK' + TabOrder = 2 + OnClick = btnOKClick + end + object btnCancel: TButton + Left = 1014 + Top = 316 + Width = 75 + Height = 25 + Caption = 'Storno' + TabOrder = 3 + OnClick = btnCancelClick + end + object imgList: TImageList + Height = 32 + Width = 32 + Left = 270 + Top = 2 + end +end diff --git a/frmUnit3.pas b/frmUnit3.pas new file mode 100644 index 0000000..5ef64c4 --- /dev/null +++ b/frmUnit3.pas @@ -0,0 +1,443 @@ +unit frmUnit3; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ddPlugin_TLB, + Dialogs, ImgList, ComCtrls, ToolWin, ShellAPI, StdCtrls, TBPackageU, + System.ImageList; + +const tblAkt = '[dbo].[TabKontaktJednani]'; + tblCZam = '[dbo].[TabCisZam]'; + tblOrg = '[dbo].[TabCisOrg]'; + bidTyp = 195; + bidDruhVystupu = 196; + bidStav = 197; + CRLF = #13#10; + +type + TformCRM_Aktivity = class(TForm) + ToolBar1: TToolBar; + btnPrev: TToolButton; + imgList: TImageList; + btnNext: TToolButton; + pgCtrl: TPageControl; + btnOK: TButton; + btnCancel: TButton; + pgAktivity: TTabSheet; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + GroupBox2: TGroupBox; + Label3: TLabel; + memoPopis: TTB_Memo; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + edtKat: TTB_Edit; + edtMisto: TTB_Edit; + pgUcast: TTabSheet; + edtTyp: TTB_Edit; + edtStav: TTB_Edit; + selTyp: TTB_3Button; + selStav: TTB_3Button; + edtPredmet: TTB_Edit; + edtCislo: TTB_Edit; + GroupBox3: TGroupBox; + Label8: TLabel; + Label9: TLabel; + edtVedl: TTB_Edit; + selVedlCislo: TTB_3Button; + edtVedlPrijm: TTB_Edit; + edtVedlJm: TTB_Edit; + selVedlPrijm: TTB_3Button; + selVedlJm: TTB_3Button; + edtOrg: TTB_Edit; + edtOrgNazev: TEdit; + selOrg: TTB_3Button; + Label10: TLabel; + Label11: TLabel; + dtpZac: TDateTimePicker; + dtpKon: TDateTimePicker; + dtpZacCas: TDateTimePicker; + dtpKonCas: TDateTimePicker; + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure edtCisloEnter(Sender: TObject); + procedure edtCisloExit(Sender: TObject); + procedure btnCancelClick(Sender: TObject); + procedure edtPredmetExit(Sender: TObject); + procedure edtPredmetEnter(Sender: TObject); + procedure memoPopisEnter(Sender: TObject); + procedure memoPopisExit(Sender: TObject); + procedure edtMistoEnter(Sender: TObject); + procedure edtMistoExit(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure selTypClick(Sender: TObject); + procedure selStavClick(Sender: TObject); + procedure selVedlCisloClick(Sender: TObject); + procedure selVedlPrijmClick(Sender: TObject); + procedure selVedlJmClick(Sender: TObject); + procedure selOrgClick(Sender: TObject); + private + procedure NactiAktivitu; + public + Helios: IHelios; + idAkt: integer; + end; + +var + formCRM_Aktivity: TformCRM_Aktivity; + sCis: string; + iCis: integer; + sql: string; + iPrev,iNext: TIcon; + bgCol: TColor; + oVar1, oVar2: OleVariant; + tStr: string; + +implementation +uses StrUtils, myUtils, helUtils; + +{$R *.dfm} + + + procedure TformCRM_Aktivity.btnCancelClick(Sender: TObject); + begin + Close; + end; + + + + procedure TformCRM_Aktivity.btnOKClick(Sender: TObject); + var sql: string; + begin + sql:= ''; + if (idAkt>0) then + begin + sql:= 'UPDATE ' + tblAkt + ' SET Predmet=N' + QuotedStr(edtPredmet.Text); + sql:= sql + ',Typ=N' + QuotedStr(edtTyp.Text) + ',Stav=N' + QuotedStr(edtStav.Text); + sql:= sql + ',MistoKonani=N' + QuotedStr(edtMisto.Text); + sql:= sql + ',CisloOrg='; + if edtOrg.Text<>'' then + sql:= sql + edtOrg.Text + else + sql:= sql + 'null'; + sql:= sql + ',CisloZam='; + if edtOrg.Text<>'' then + sql:= sql + edtVedl.Text + else + sql:= sql + 'null'; + sql:= sql + ',Popis=CONVERT(ntext,' + QuotedStr(memoPopis.Text) + ')'; + tStr:= DateToStr(dtpZac.Date) + ' ' + TimeToStr(dtpZacCas.Time); + sql:= sql + ',DatumJednaniOd=CONVERT(datetime,' + QuotedStr(tStr) + ',104)'; + tStr:= DateToStr(dtpKon.Date) + ' ' + TimeToStr(dtpKonCas.Time); + sql:= sql + ',DatumJednaniDo=CONVERT(datetime,' + QuotedStr(tStr) + ',104)'; + sql:= sql + ' WHERE id=' + IntToStr(idAkt); + end + else + begin + sql:= 'INSERT ' + tblAkt + ' (PoradoveCislo,Kategorie,Predmet,Typ,Stav,DruhVystupu,MistoKonani,'; + sql:= sql + 'DatumJednaniOd,DatumJednaniDo,CisloOrg,CisloZam,Popis) VALUES (' + edtCislo.Text; + sql:= sql + ',N' + QuotedStr(edtKat.Text) + ',N' + QuotedStr(edtPredmet.Text); + sql:= sql + ',N' + QuotedStr(edtTyp.Text) + ',N' + QuotedStr(edtStav.Text) + ',N' + QuotedStr(''); + sql:= sql + ',N' + QuotedStr(edtMisto.Text) + ','; + tStr:= DateToStr(dtpZac.Date) + ' ' + TimeToStr(dtpZacCas.Time); + sql:= sql + 'CONVERT(datetime,' + QuotedStr(tStr) + ',104),'; + tStr:= DateToStr(dtpKon.Date) + ' ' + TimeToStr(dtpKonCas.Time); + sql:= sql + 'CONVERT(datetime,' + QuotedStr(tStr) + ',104),'; + if edtOrg.Text<>'' then + sql:= sql + edtOrg.Text + else + sql:= sql + 'null'; + sql:= sql + ','; + if edtVedl.Text<>'' then + sql:= sql + edtVedl.Text + else + sql:= sql + 'null'; + sql:= sql + ',CONVERT(ntext,' + QuotedStr(memoPopis.Text) + ')'; + + sql:= sql + ')'; + end; + if sql<>'' then + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error('Nelze uloit daje pro Aktivitu. ' + CRLF + sql + CRLF + E.Message); + end; + Close; + end; + + + + procedure TformCRM_Aktivity.edtCisloEnter(Sender: TObject); + begin + edtCislo.Color:= bgCol; + end; + + + + procedure TformCRM_Aktivity.edtCisloExit(Sender: TObject); + begin + edtCislo.Color:= clWindow; + end; + + + + procedure TformCRM_Aktivity.edtMistoEnter(Sender: TObject); + begin + edtMisto.Color:= bgCol; + end; + + + + procedure TformCRM_Aktivity.edtMistoExit(Sender: TObject); + begin + edtMisto.Color:= clWindow; + end; + + + + procedure TformCRM_Aktivity.edtPredmetEnter(Sender: TObject); + begin + edtPredmet.Color:= bgCol; + end; + + + + procedure TformCRM_Aktivity.edtPredmetExit(Sender: TObject); + begin + edtPredmet.Color:= clWindow; + end; + + + + procedure TformCRM_Aktivity.FormClose(Sender: TObject; var Action: TCloseAction); + begin + Action:= caFree; + DestroyIcon(iPrev.Handle); + iPrev.Free; + DestroyIcon(iNext.Handle); + iNext.Free; + end; + + + + procedure TformCRM_Aktivity.NactiAktivitu; + var sql: string; + tStr,tStr2: string; + tInt: Integer; + begin + sql:= 'SELECT * FROM ' + tblAkt + ' WHERE id=' + IntToStr(idAkt); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + edtMisto.Text:= VarToStr(FieldByNameValues('MistoKonani')); + edtPredmet.Text:= VarToStr(FieldByNameValues('Predmet')); + edtTyp.Text:= VarToStr(FieldByNameValues('Typ')); + edtStav.Text:= VarToStr(FieldByNameValues('Stav')); + memoPopis.Text:= VarToStr(FieldByNameValues('Popis')); + + tStr:= VarToStr(FieldByNameValues('DatumJednaniOd')); + tStr2:= tStr; + tStr:= Trim(LeftStr(tStr, Pos(' ',tStr)-1)); + if tStr<>'' then + dtpZac.Date:= StrToDate(tStr); + + tStr:= MidStr(tStr2,Pos(' ',tStr2),255); + if (tStr<>'') and (Pos(':',tStr)>0) then + dtpZacCas.Time:= StrToTime(tStr); + + tStr:= VarToStr(FieldByNameValues('DatumJednaniDo')); + tStr2:= tStr; + tStr:= Trim(LeftStr(tStr, Pos(' ',tStr)-1)); + if tStr<>'' then + dtpKon.Date:= StrToDate(tStr); + tStr:= Trim(MidStr(tStr2,Pos(' ',tStr2),255)); + if (tStr<>'') and (Pos(':',tStr)>0) then + dtpKonCas.Time:= StrToTime(tStr); + + tStr:= VarToStr(FieldByNameValues('CisloOrg')); + if tStr<>'' then + with Helios.OpenSQL('SELECT Firma FROM ' + tblOrg + ' WHERE CisloOrg=' + tStr) do + if RecordCount>0 then + begin + edtOrg.Text:= tStr; + edtOrgNazev.Text:= VarToStr(FieldValues(0)); + end; + tStr:= VarToStr(FieldByNameValues('CisloZam')); + if tStr<>'' then + with Helios.OpenSQL('SELECT Prijmeni,Jmeno FROM ' + tblCZam + ' WHERE Cislo=' + tStr) do + if RecordCount>0 then + begin + tInt:= StrToInt(tStr); + edtVedl.Text:= Format('%.6d',[tInt]); + edtVedlPrijm.Text:= VarToStr(FieldValues(0)); + edtVedlJm.Text:= VarToStr(FieldValues(1)); + end; + end; + end; + + + + procedure TformCRM_Aktivity.selOrgClick(Sender: TObject); + var cOrg: string; + begin + if Helios.Prenos(1,'CisloOrg',oVar1,'','Organizace',true) then + cOrg:= VarToStr(oVar1); + if cOrg<>'' then + begin + edtOrg.Text:= cOrg; + with Helios.OpenSQL('SELECT Firma FROM ' + tblOrg + ' WHERE CisloOrg=' + cOrg) do + edtOrgNazev.Text:= VarToStr(FieldValues(0)); + end; + end; + + + + procedure TformCRM_Aktivity.selStavClick(Sender: TObject); + begin + if Helios.Prenos2(bidStav,'Cislo','Popis',oVar1,oVar2,'','Typy aktvit',true,true,false,1) then + begin + edtTyp.Text:= VarToStr(oVar1); + edtTyp.Hint:= VarToStr(oVar2); + edtTyp.ShowHint:= true; + end; + end; + + + + procedure TformCRM_Aktivity.selTypClick(Sender: TObject); + begin + if Helios.Prenos2(bidTyp,'Cislo','Popis',oVar1,oVar2,'','Typy aktvit',true,false,false,1) then + begin + edtTyp.Text:= VarToStr(oVar1); +// edtTyp.Text:= StringReplace(edtTyp.Text,'N''','',[rfReplaceAll]); +// edtTyp.Text:= StringReplace(edtTyp.Text,'''','',[rfReplaceAll]); + edtTyp.Hint:= VarToStr(oVar2); + edtTyp.ShowHint:= true; + end; + end; + + + + procedure TformCRM_Aktivity.selVedlCisloClick(Sender: TObject); + var cZam: string; + iZam: integer; + begin + cZam:= ''; + if Helios.Prenos(86,'Cislo',oVar1,'','Zamstnanec',true) then + cZam:= VarToStr(oVar1); + if cZam<>'' then + with Helios.OpenSQL('SELECT Prijmeni,Jmeno FROM ' + tblCZam + ' WHERE Cislo=' + cZam) do + begin + iZam:= StrToInt(cZam); + edtVedl.Text:= Format('%.6d',[iZam]); + edtVedlPrijm.Text:= VarToStr(FieldValues(0)); + edtVedlJm.Text:= VarToStr(FieldValues(1)); + end; + end; + + + + procedure TformCRM_Aktivity.selVedlJmClick(Sender: TObject); + begin + selVedlCisloClick(Sender); + end; + + + + procedure TformCRM_Aktivity.selVedlPrijmClick(Sender: TObject); + begin + selVedlCisloClick(Sender); + end; + + + + procedure TformCRM_Aktivity.FormShow(Sender: TObject); + var sTmp: string; + hFnd: THandle; + idx: Integer; + begin + SendMessage(Self.Handle, WM_SETICON, 0, Helios.MainApplicationIconHandle); + dtpZac.DateTime:= Now; + dtpZacCas.DateTime:= Now; + dtpKon.DateTime:= Now; + dtpKonCas.DateTime:= Now; + + Self.Font.Name:= Helios.Font; + Self.Font.Height:= Helios.FontHeight; + + bgCol:= clWindow; + with Helios.OpenSQL('SELECT BarvaPodbarveni FROM TabUziv WHERE BarevnePodbarveni=1 AND LoginName=N' + QuotedStr(Helios.LoginName)) do + if RecordCount>0 then + bgCol:= StrToInt(VarToStr(FieldValues(0))); + idx:= 0; + while idx0 then + NactiAktivitu; + edtCislo.SetFocus; + + end; + + + + procedure TformCRM_Aktivity.memoPopisEnter(Sender: TObject); + begin + memoPopis.Color:= bgCol; + end; + + + + procedure TformCRM_Aktivity.memoPopisExit(Sender: TObject); + begin + memoPopis.Color:= clWindow; + end; + +end. diff --git a/frmUnit4.dfm b/frmUnit4.dfm new file mode 100644 index 0000000..9170881 --- /dev/null +++ b/frmUnit4.dfm @@ -0,0 +1,27 @@ +object formDodavky: TformDodavky + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = ' Term'#237'ny dod'#225'vek' + ClientHeight = 278 + ClientWidth = 388 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + PixelsPerInch = 96 + TextHeight = 13 + object btnOK: TButton + Left = 226 + Top = 232 + Width = 75 + Height = 25 + Caption = '&OK' + TabOrder = 0 + OnClick = btnOKClick + end +end diff --git a/frmUnit4.pas b/frmUnit4.pas new file mode 100644 index 0000000..ea2fb1b --- /dev/null +++ b/frmUnit4.pas @@ -0,0 +1,32 @@ +unit frmUnit4; + +interface + +uses + Winapi.Windows, System.Classes, Vcl.Forms, Vcl.Controls, Vcl.StdCtrls, + ddPlugin_TLB; + +type + TformDodavky = class(TForm) + btnOK: TButton; + procedure btnOKClick(Sender: TObject); + private + public + Helios: IHelios; + idOrg: integer; + end; + +var + formDodavky: TformDodavky; + +implementation +uses ComObjekt, helUtils; + +{$R *.dfm} + + procedure TformDodavky.btnOKClick(Sender: TObject); + begin + Close; + end; + + end. diff --git a/frmUnit5.dfm b/frmUnit5.dfm new file mode 100644 index 0000000..56e5e9f --- /dev/null +++ b/frmUnit5.dfm @@ -0,0 +1,227 @@ +object formKartyZbozi: TformKartyZbozi + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + ClientHeight = 249 + ClientWidth = 718 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object GroupBox1: TGroupBox + Left = 5 + Top = 5 + Width = 709 + Height = 115 + Caption = ' Hlavn'#237' '#250'daje ' + TabOrder = 0 + object Label1: TLabel + Left = 22 + Top = 21 + Width = 41 + Height = 13 + Caption = 'Skupina:' + end + object Label2: TLabel + Left = 98 + Top = 21 + Width = 80 + Height = 13 + Caption = 'Registra'#269'n'#237' '#269#237'slo:' + end + object Label3: TLabel + Left = 263 + Top = 21 + Width = 43 + Height = 13 + Caption = 'N'#225'zev 1:' + end + object Label4: TLabel + Left = 22 + Top = 68 + Width = 22 + Height = 13 + Caption = 'SKP:' + end + object Label5: TLabel + Left = 156 + Top = 68 + Width = 63 + Height = 13 + Caption = 'MJ evidence:' + end + object Label6: TLabel + Left = 263 + Top = 68 + Width = 43 + Height = 13 + Caption = 'N'#225'zev 2:' + end + object selSZ: TRzButtonEdit + Left = 22 + Top = 37 + Width = 61 + Height = 21 + Alignment = taCenter + CharCase = ecUpperCase + MaxLength = 3 + TabOrder = 0 + OnKeyUp = selSZKeyUp + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selSZButtonClick + end + object edtRC: TRzEdit + Left = 98 + Top = 37 + Width = 143 + Height = 21 + CharCase = ecUpperCase + TabOrder = 1 + OnKeyUp = edtRCKeyUp + end + object edtNazev1: TRzEdit + Left = 263 + Top = 37 + Width = 426 + Height = 21 + TabOrder = 2 + end + object edtSKP: TRzEdit + Left = 22 + Top = 83 + Width = 121 + Height = 21 + MaxLength = 20 + TabOrder = 3 + end + object cbMJ: TRzComboBox + Left = 156 + Top = 83 + Width = 66 + Height = 21 + AllowEdit = False + Style = csDropDownList + TabOrder = 4 + end + object edtNazev2: TRzEdit + Left = 263 + Top = 84 + Width = 426 + Height = 21 + TabOrder = 5 + end + end + object btnOK: TBitBtn + Left = 472 + Top = 211 + Width = 80 + Height = 30 + Caption = 'OK' + ModalResult = 1 + TabOrder = 1 + OnClick = btnOKClick + end + object btnCancel: TBitBtn + Left = 630 + Top = 211 + Width = 80 + Height = 30 + Caption = 'Storno' + ModalResult = 2 + TabOrder = 2 + OnClick = btnCancelClick + end + object GroupBox2: TGroupBox + Left = 5 + Top = 125 + Width = 709 + Height = 73 + Caption = ' Dopl'#328'uj'#237'c'#237' '#250'daje ' + TabOrder = 3 + object Label7: TLabel + Left = 55 + Top = 48 + Width = 24 + Height = 13 + Caption = 'DPH:' + end + object Label8: TLabel + Left = 7 + Top = 22 + Width = 72 + Height = 13 + Caption = 'Hmotnost (kg):' + end + object Label9: TLabel + Left = 180 + Top = 22 + Width = 32 + Height = 13 + Caption = 'Balen'#237':' + end + object Label10: TLabel + Left = 306 + Top = 22 + Width = 93 + Height = 13 + Caption = 'Aktu'#225'ln'#237' dodavatel:' + end + object Label11: TLabel + Left = 168 + Top = 49 + Width = 127 + Height = 13 + Caption = 'Um'#237'st'#283'n'#237' pro sklad V'#253'roby:' + end + object cbDPH: TComboBox + Left = 98 + Top = 44 + Width = 57 + Height = 21 + Style = csDropDownList + TabOrder = 0 + end + object edtHmot: TRzNumericEdit + Left = 96 + Top = 19 + Width = 58 + Height = 21 + TabOrder = 1 + IntegersOnly = False + DisplayFormat = '##,##0.0###;-##,##0.0###' + end + object edtBal: TRzEdit + Left = 231 + Top = 19 + Width = 55 + Height = 21 + TabOrder = 2 + end + object selDodavatel: TRzButtonEdit + Left = 423 + Top = 18 + Width = 174 + Height = 21 + TabOrder = 3 + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selDodavatelButtonClick + end + object edtUmist: TRzEdit + Left = 321 + Top = 45 + Width = 121 + Height = 21 + TabOrder = 4 + end + end +end diff --git a/frmUnit5.pas b/frmUnit5.pas new file mode 100644 index 0000000..84ab69a --- /dev/null +++ b/frmUnit5.pas @@ -0,0 +1,307 @@ +unit frmUnit5; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ddPlugin_TLB, helUtils, + Dialogs, StdCtrls, Mask, RzEdit, RzCmboBx, RzButton, RzPanel, Vcl.Buttons, RzBtnEdt; + +type + TformKartyZbozi = class(TForm) + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + selSZ: TRzButtonEdit; + edtRC: TRzEdit; + edtNazev1: TRzEdit; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + edtSKP: TRzEdit; + cbMJ: TRzComboBox; + edtNazev2: TRzEdit; + Label6: TLabel; + btnOK: TBitBtn; + btnCancel: TBitBtn; + GroupBox2: TGroupBox; + Label7: TLabel; + Label8: TLabel; + cbDPH: TComboBox; + edtHmot: TRzNumericEdit; + edtBal: TRzEdit; + Label9: TLabel; + Label10: TLabel; + selDodavatel: TRzButtonEdit; + Label11: TLabel; + edtUmist: TRzEdit; + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure selSZButtonClick(Sender: TObject); + procedure selSZKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure edtRCKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure btnUpClick(Sender: TObject); + procedure btnDownClick(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure btnCancelClick(Sender: TObject); + procedure selDodavatelButtonClick(Sender: TObject); + private + helParams: THeliosParams; + procedure NastavEdity; + procedure NulujForm; + procedure NactiKartu; + public + Helios: IHelios; + idKZ: Integer; + end; + +var + formKartyZbozi: TformKartyZbozi; + oVar1,oVar2: OleVariant; + cisDod: ShortString; + +implementation +uses System.StrUtils; + +{$R *.dfm} + + procedure TformKartyZbozi.NactiKartu; + var polKZ: IHeQuery; + mj: ShortString; + lSQL: WideString; + begin + if idKZ>0 then + begin + lSQL:= 'SELECT * FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZ); + polKZ:= Helios.OpenSQL(lSQL); + if polKZ.RecordCount>0 then + begin + selSZ.Text:= VarToStr(polKZ.FieldByNameValues('SkupZbo')); + edtRC.Text:= VarToStr(polKZ.FieldByNameValues('RegCis')); + edtNazev1.Text:= VarToStr(polKZ.FieldByNameValues('Nazev1')); + edtNazev2.Text:= VarToStr(polKZ.FieldByNameValues('Nazev2')); + edtSKP.Text:= VarToStr(polKZ.FieldByNameValues('SKP')); + edtBal.Text:= VarToStr(polKZ.FieldByNameValues('BaleniTXT')); + if VarIsNull(polKZ.FieldByNameValues('MJevidence')) then + mj:= '(nen)' + else + mj:= VarToStr(polKZ.FieldByNameValues('MJevidence')); + cbMJ.ItemIndex:= cbMJ.Items.IndexOf(mj); + if VarIsNull(polKZ.FieldByNameValues('SazbaDPHVystup')) then + mj:= '(nen)' + else + mj:= VarToStr(polKZ.FieldByNameValues('SazbaDPHVystup')); + cbDPH.ItemIndex:= cbDPH.Items.IndexOf(mj); + edtHmot.Value:= StrToFloat(VarToStr(polKZ.FieldByNameValues('Hmotnost'))); + with Helios.OpenSQL('SELECT _UmisteniVyroba FROM ' + tblKZe + ' WHERE id=' + IntToStr(idKZ)) do + if RecordCount=1 then + begin + if not VarIsNull(FieldValues(0)) then + edtUmist.Text:= VarToStr(FieldValues(0)) + else + edtUmist.Text:= ''; + end; + end; + end; + end; + + procedure TformKartyZbozi.NastavEdity; + var idx: integer; + begin + for idx:=0 to ComponentCount-1 do + begin + if (Self.Components[idx] is TRzEdit) then + (Self.Components[idx] as TRzEdit).FocusColor:= helParams.colBg; + end; + end; + + procedure TformKartyZbozi.NulujForm; + var idx: integer; + begin + for idx:=0 to ComponentCount-1 do + begin + if (Self.Components[idx] is TRzEdit) then + (Self.Components[idx] as TRzEdit).Text:= ''; + end; + edtHmot.Value:= 0; + end; + + procedure TformKartyZbozi.selDodavatelButtonClick(Sender: TObject); + begin + if Helios.Prenos(bidCisOrg,'CisloOrg',oVar1,'','Organizace',True) then + begin + cisDod:= VarToStr(oVar1); + with Helios.OpenSQL('SELECT Nazev FROM ' + tblCOrg + ' WHERE CisloOrg=' + cisDod) do + if RecordCount=1 then + selDodavatel.Text:= VarToStr(FieldValues(0)); + end; + end; + + procedure TformKartyZbozi.selSZButtonClick(Sender: TObject); + begin + if Helios.Prenos(bidSZ,'SkupZbo',oVar1,'','Vyberte skupinu zbo',true) then + begin + selSZ.Text:= VarToStr(oVar1); + edtRC.SetFocus; + end; + end; + + procedure TformKartyZbozi.selSZKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if Key<>Ord(32) then + if Length(selSZ.Text)=3 then + edtRC.SetFocus; + end; + + procedure TformKartyZbozi.btnCancelClick(Sender: TObject); + begin + Close; + end; + + procedure TformKartyZbozi.btnDownClick(Sender: TObject); + begin + if not Helios.QueryBrowse.EOF then + Helios.QueryBrowse.Next; + end; + + procedure TformKartyZbozi.btnOKClick(Sender: TObject); + var lSQL: WideString; + begin + if idKZ>0 then + begin + lSQL:= 'UPDATE ' + tblKZ + ' SET Nazev1=N' + QuotedStr(edtNazev1.Text) + ',Nazev2=N' + QuotedStr(edtNazev2.Text); + lSQL:= lSQL + ',BaleniTXT=N' + QuotedStr(edtBal.Text) + ',SKP=N' + QuotedStr(edtSKP.Text); + if cbMJ.ItemIndex=0 then + lSQL:= lSQL + ',MJevidence=null' + else + lSQL:= lSQL + ',MJevidence=N' + QuotedStr(cbMJ.Text); + lSQL:= lSQL + ',Aktualni_Dodavatel='; + if cisDod<>'' then + lSQL:= lSQL + cisDod + else + lSQL:= lSQL + 'null'; + lSQL:= lSQL + ',SkupZbo=N' + QuotedStr(selSZ.Text); + lSQL:= lSQL + ',RegCis=N' + QuotedStr(edtRC.Text) + ',Hmotnost=' + StringReplace(edtHmot.Text,',','.',[rfReplaceAll]); + if cbDPH.ItemIndex=0 then + lSQL:= lSQL + ',SazbaDPHVystup=null' + else + lSQL:= lSQL + ',SazbaDPHVystup=' + cbDPH.Text; + lSQL:= lSQL + ' WHERE id=' + IntToStr(idKZ); + lSQL:= lSQL + CRLF + 'IF EXISTS(SELECT Id FROM ' + tblKZe + ' WHERE id=' + IntToStr(idKZ) + ') '; + lSQL:= lSQL + 'UPDATE ' + tblKZe + ' SET _UmisteniVyroba=N' + QuotedStr(edtUmist.Text) + ' WHERE id=' + IntToStr(idKZ); + lSQL:= lSQL + CRLF + ' ELSE INSERT INTO ' + tblKZe + ' (id,_UmisteniVyroba) VALUES(' + IntToStr(idKZ) + ',N' + QuotedStr(edtUmist.Text) + ')'; + end + else + begin + lSQL:= 'INSERT INTO ' + tblKZ + ' (SkupZbo,RegCis,Nazev1,Nazev2,SKP,MJevidence,BaleniTXT,SazbaDPHVystup,Hmotnost,DruhSkladu,Aktualni_Dodavatel)'; + lSQL:= lSQL + ' VALUES (N' + QuotedStr(selSZ.Text); + lSQL:= lSQL + ',N' + QuotedStr(edtRC.Text) + ',N' + QuotedStr(edtNazev1.Text) + ',N' + QuotedStr(edtNazev2.Text); + lSQL:= lSQL + ',N' + QuotedStr(edtSKP.Text) + ','; + if cbMJ.ItemIndex=0 then + lSQL:= lSQL + 'null' + else + lSQL:= lSQL + 'N' + QuotedStr(cbMJ.Text); + lSQL:= lSQL + ',N' + QuotedStr(edtBal.Text) + ','; + if cbDPH.ItemIndex=0 then + lSQL:= lSQL + 'null' + else + lSQL:= lSQL + cbDPH.Text; + lSQL:= lSQL + ',' + StringReplace(edtHmot.Text,',','.',[rfReplaceAll]) + ',1,'; + if cisDod<>'' then + lSQL:= lSQL + cisDod + else + lSQL:= lSQL + 'null'; + lSQL:= lSQL + ')'; + lSQL:= lSQL + CRLF + 'INSERT INTO ' + tblKZe + ' (id,_UmisteniVyroba) VALUES(SCOPE_IDENTITY(),N' + QuotedStr(edtUmist.Text) + ')'; + end; + try + Helios.ExecSQL(lSQL); + except on E:Exception do + Helios.Error(#1'Nelze uloit novou/aktualizovanou kartu.'#1 + CRLF + E.Message); + end; + Close; + end; + + procedure TformKartyZbozi.btnUpClick(Sender: TObject); + begin + if not Helios.QueryBrowse.BOF then + Helios.QueryBrowse.Prev; + end; + + procedure TformKartyZbozi.edtRCKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + var iCislo: integer; + lSQL: WideString; + begin + edtRC.Text:= UpperCase(edtRC.Text); + if LeftStr(edtRC.Text,4)='POL_' then + if Length(edtRC.Text)=8 then + begin + lSQL:= 'SELECT TOP(1) RegCis FROM ' + tblKZ + ' WHERE SkupZbo=N' + QuotedStr(selSZ.Text) + ' AND RegCis LIKE '; + lSQL:= lSQL + QuotedStr(edtRC.Text + '%') + ' ORDER BY RegCis DESC'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + iCislo:= 1 + StrToInt(MidStr(FieldValues(0),9,10)) + else + iCislo:= 1; + edtRC.Text:= edtRC.Text + StringOfChar('0', 3 - Length(IntToStr(iCislo))) + IntToStr(iCislo); + edtNazev1.SetFocus; + end; + end; + + procedure TformKartyZbozi.FormClose(Sender: TObject; var Action: TCloseAction); + begin + Action:= caFree; + end; + + procedure TformKartyZbozi.FormShow(Sender: TObject); + var lSQL: WideString; + begin + UseLatestCommonDialogs:= True; + + Self.Icon.Handle:= Helios.MainApplicationIconHandle; + Self.Font.Name:= Helios.Font; + Self.Font.Height:= Helios.FontHeight; + + NactiParametryHeliosu(Helios, helParams); + if helParams.podbarveni then + NastavEdity; + + lSQL:= 'SELECT d.Sazba FROM ' + tblDPH + ' d INNER JOIN ' + tblDPHDef + ' df ON (d.id=df.IdDPH) WHERE df.Platnost=0'; + lSQL:= lSQL + ' AND df.Blokovano=0 AND df.IdObdobi=' + IntToStr(Helios.Obdobi) + ' ORDER BY d.Sazba'; + with Helios.OpenSQL(lSQL) do + if RecordCount>0 then + begin + cbDPH.Clear; + cbDPH.Items.Add('(nen)'); + First; + while not(EOF) do + begin + cbDPH.Items.Add(VarToStr(FieldValues(0))); + Next; + end; + cbDPH.ItemIndex:= 0; + end; + + with Helios.OpenSQL('SELECT kod FROM TabMJ ORDER BY kod') do + if RecordCount>0 then + begin + First; + cbMJ.Clear; + cbMJ.Items.Add('(nen)'); + while not(EOF) do + begin + cbMJ.Items.Add(VarToStr(FieldValues(0))); + Next; + end; + cbMJ.ItemIndex:= 0; + end; + + if idKZ=0 then + begin + Self.Caption:= ' Nov karta zbo'; + NulujForm; + end + else + NactiKartu; + end; + +end. diff --git a/frmUnit6.dfm b/frmUnit6.dfm new file mode 100644 index 0000000..f29d3cb --- /dev/null +++ b/frmUnit6.dfm @@ -0,0 +1,457 @@ +object formVydejka: TformVydejka + Left = 0 + Top = 0 + Caption = ' V'#253'dejka' + ClientHeight = 467 + ClientWidth = 944 + Color = clBtnFace + Constraints.MaxHeight = 505 + Constraints.MaxWidth = 960 + Constraints.MinHeight = 505 + Constraints.MinWidth = 960 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object pgControl: TPageControl + Left = 4 + Top = 40 + Width = 940 + Height = 390 + ActivePage = pgHlavicka + TabOrder = 0 + OnChange = pgControlChange + object pgHlavicka: TTabSheet + Caption = '1 - Hlavi'#269'ka' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object GroupBox1: TGroupBox + Left = 6 + Top = 6 + Width = 409 + Height = 139 + Caption = ' [1] Organizace ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + object Label1: TLabel + Left = 10 + Top = 24 + Width = 52 + Height = 13 + Caption = '&Odb'#283'ratel:' + end + object Label2: TLabel + Left = 10 + Top = 74 + Width = 61 + Height = 13 + Caption = '&M'#237'sto ur'#269'en'#237':' + end + object selCisOrg: TRzButtonEdit + Left = 10 + Top = 45 + Width = 81 + Height = 21 + Alignment = taRightJustify + MaxLength = 8 + TabOrder = 0 + OnExit = selCisOrgExit + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selCisOrgButtonClick + end + object selOdber: TRzButtonEdit + Left = 106 + Top = 45 + Width = 289 + Height = 21 + TabOrder = 1 + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selOdberButtonClick + end + object selCisOrgMisto: TRzButtonEdit + Left = 10 + Top = 92 + Width = 81 + Height = 21 + Alignment = taRightJustify + TabOrder = 2 + OnExit = selCisOrgMistoExit + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selCisOrgMistoButtonClick + end + object selOdberMisto: TRzButtonEdit + Left = 106 + Top = 92 + Width = 289 + Height = 21 + TabOrder = 3 + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selOdberMistoButtonClick + end + end + object GroupBox2: TGroupBox + Left = 427 + Top = 6 + Width = 278 + Height = 139 + Caption = ' [2] Datum, dopl'#328'uj'#237'c'#237' informace ' + TabOrder = 1 + object Label3: TLabel + Left = 11 + Top = 24 + Width = 74 + Height = 13 + Caption = 'Datum p'#345#237'padu:' + end + object Label4: TLabel + Left = 55 + Top = 52 + Width = 30 + Height = 13 + Caption = 'M'#283'na:' + end + object Label5: TLabel + Left = 60 + Top = 85 + Width = 25 + Height = 13 + Caption = 'Kurz:' + end + object edtDatPrip: TRzDateTimeEdit + Left = 109 + Top = 21 + Width = 102 + Height = 21 + CaptionTodayBtn = 'Dnes' + CaptionClearBtn = 'Smazat' + CaptionSet = 'Vybrat' + EditType = etDate + Alignment = taCenter + TabOrder = 0 + end + object cbMena: TComboBox + Left = 110 + Top = 49 + Width = 101 + Height = 21 + Style = csDropDownList + CharCase = ecUpperCase + TabOrder = 1 + end + object selKurz: TRzButtonEdit + Left = 109 + Top = 82 + Width = 102 + Height = 21 + Alignment = taRightJustify + MaxLength = 6 + TabOrder = 2 + AltBtnWidth = 15 + ButtonWidth = 15 + OnButtonClick = selKurzButtonClick + end + end + end + object pgPolozky: TTabSheet + Caption = '2 - Polo'#382'ky' + ImageIndex = 1 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object GroupBox3: TGroupBox + Left = 0 + Top = 3 + Width = 931 + Height = 359 + TabOrder = 0 + object GroupBox4: TGroupBox + Left = 3 + Top = 1 + Width = 925 + Height = 55 + TabOrder = 0 + object btnPolAdd: TSpeedButton + Left = 6 + Top = 1 + Width = 49 + Height = 52 + Caption = 'Nov'#253'...' + Layout = blGlyphTop + OnClick = btnPolAddClick + end + object btnPolEdit: TSpeedButton + Left = 59 + Top = 1 + Width = 56 + Height = 52 + Caption = 'Oprava...' + Layout = blGlyphTop + OnClick = btnPolEditClick + end + object btnPolDel: TSpeedButton + Left = 119 + Top = 1 + Width = 51 + Height = 52 + Caption = 'Zru'#353'it' + Layout = blGlyphTop + OnClick = btnPolDelClick + end + end + object gridPol: TcxGrid + Left = 7 + Top = 58 + Width = 924 + Height = 301 + TabOrder = 1 + object viewPol: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellDblClick = viewPolCellDblClick + DataController.DataSource = dsPol + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '### ### ##0.0##' + Position = spFooter + Column = colCCbezDPH + end + item + Format = '###,###,##0.0##' + Position = spFooter + Column = colMnoz + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = colMnoz + end + item + Kind = skSum + Column = colCCbezDPH + end> + DataController.Summary.SummaryGroups = <> + Images = imgList + OptionsCustomize.ColumnFiltering = False + OptionsData.CancelOnExit = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.FooterAutoHeight = True + OptionsView.GroupByBox = False + OnColumnHeaderClick = viewPolColumnHeaderClick + object colIdSS: TcxGridDBColumn + Visible = False + end + object colIdKZ: TcxGridDBColumn + Visible = False + end + object colSZ: TcxGridDBColumn + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + end + object colRegCis: TcxGridDBColumn + end + object colNazev1: TcxGridDBColumn + end + object colNazev2: TcxGridDBColumn + end + object colMJ: TcxGridDBColumn + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + end + object colMnoz: TcxGridDBColumn + end + object colJCbezDaniKc: TcxGridDBColumn + end + object colCCbezDPH: TcxGridDBColumn + end + object colIdPZ: TcxGridDBColumn + end + end + object lvPol: TcxGridLevel + GridView = viewPol + end + end + end + end + object pgSklad: TTabSheet + Caption = '3 - Sklady kooperant'#367 + ImageIndex = 2 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object gridSklad: TcxGrid + Left = 0 + Top = 0 + Width = 929 + Height = 359 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + PopupMenu = pmSklad + TabOrder = 0 + object viewSklad: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + FilterBox.CustomizeDialog = False + FilterBox.Position = fpTop + FilterBox.Visible = fvNever + OnCellDblClick = viewSkladCellDblClick + DataController.DataSource = dsSklad + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + Filtering.ColumnMRUItemsList = False + FilterRow.InfoText = 'Sem klikn'#283'te pro definici filtru' + FilterRow.ApplyChanges = fracImmediately + OptionsCustomize.ColumnFiltering = False + OptionsData.CancelOnExit = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsData.Inserting = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + object colIdSS2: TcxGridDBColumn + end + object colIdKZ2: TcxGridDBColumn + end + object colSZ2: TcxGridDBColumn + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + end + object colRegCis2: TcxGridDBColumn + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + end + object colNazev12: TcxGridDBColumn + end + object colNazev22: TcxGridDBColumn + end + object colMJ2: TcxGridDBColumn + PropertiesClassName = 'TcxLabelProperties' + Properties.Alignment.Horz = taCenter + end + object colMnoz2: TcxGridDBColumn + end + object colJCbezDaniKc2: TcxGridDBColumn + end + object colCCbezDPH2: TcxGridDBColumn + end + end + object lvSklad: TcxGridLevel + GridView = viewSklad + end + end + end + end + object tBar: TToolBar + Left = 0 + Top = 0 + Width = 944 + Height = 36 + ButtonHeight = 38 + ButtonWidth = 39 + Caption = 'tBar' + Images = imgList + TabOrder = 1 + object tBtn1: TToolButton + Left = 0 + Top = 0 + Margins.Left = 1 + Margins.Top = 1 + Margins.Right = 1 + Margins.Bottom = 1 + Caption = 'tBtn1' + ImageIndex = 1 + end + object tBtn2: TToolButton + Left = 39 + Top = 0 + Caption = 'tBtn2' + ImageIndex = 2 + end + end + object btnOK: TButton + Left = 762 + Top = 439 + Width = 75 + Height = 25 + Caption = '&OK' + ModalResult = 1 + TabOrder = 2 + OnClick = btnOKClick + end + object btnCanel: TButton + Left = 857 + Top = 439 + Width = 75 + Height = 25 + Caption = '&Storno' + ModalResult = 2 + TabOrder = 3 + OnClick = btnCanelClick + end + object vTabPol: TVirtualTable + OnCalcFields = vTabPolCalcFields + Left = 90 + Top = 404 + Data = {03000000000000000000} + end + object dsPol: TDataSource + DataSet = vTabPol + Left = 142 + Top = 404 + end + object imgList: TImageList + ColorDepth = cd8Bit + Height = 32 + ShareImages = True + Width = 32 + Left = 30 + Top = 402 + end + object dsSklad: TDataSource + DataSet = vTabSklad + Left = 274 + Top = 404 + end + object vTabSklad: TVirtualTable + Left = 214 + Top = 404 + Data = {03000000000000000000} + end + object pmSklad: TPopupMenu + Left = 440 + Top = 404 + object pmSklad1: TMenuItem + Caption = '&Na'#269'ti obsah skladu' + OnClick = pmSklad1Click + end + end +end diff --git a/frmUnit6.pas b/frmUnit6.pas new file mode 100644 index 0000000..f486ed4 --- /dev/null +++ b/frmUnit6.pas @@ -0,0 +1,1016 @@ +unit frmUnit6; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ToolWin, Vcl.Mask, ddPlugin_TLB, + RzEdit, RzBtnEdt, helUtils, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxStyles, cxCustomData, + cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxGridCustomView, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, RzButton, Vcl.ExtCtrls, RzPanel, + MemDS, VirtualTable, Vcl.ImgList, Vcl.ButtonGroup, Vcl.Buttons, cxLabel, Vcl.Menus; + +type + TformVydejka = class(TForm) + pgControl: TPageControl; + tBar: TToolBar; + tBtn1: TToolButton; + tBtn2: TToolButton; + pgHlavicka: TTabSheet; + btnOK: TButton; + btnCanel: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + selCisOrg: TRzButtonEdit; + selOdber: TRzButtonEdit; + Label2: TLabel; + selCisOrgMisto: TRzButtonEdit; + selOdberMisto: TRzButtonEdit; + pgPolozky: TTabSheet; + GroupBox2: TGroupBox; + edtDatPrip: TRzDateTimeEdit; + Label3: TLabel; + GroupBox3: TGroupBox; + viewPol: TcxGridDBTableView; + lvPol: TcxGridLevel; + gridPol: TcxGrid; + GroupBox4: TGroupBox; + vTabPol: TVirtualTable; + dsPol: TDataSource; + imgList: TImageList; + btnPolAdd: TSpeedButton; + btnPolEdit: TSpeedButton; + btnPolDel: TSpeedButton; + colIdSS: TcxGridDBColumn; + colIdKZ: TcxGridDBColumn; + colSZ: TcxGridDBColumn; + colRegCis: TcxGridDBColumn; + colNazev1: TcxGridDBColumn; + colNazev2: TcxGridDBColumn; + colMnoz: TcxGridDBColumn; + colJCbezDaniKc: TcxGridDBColumn; + colCCbezDPH: TcxGridDBColumn; + colMJ: TcxGridDBColumn; + pgSklad: TTabSheet; + viewSklad: TcxGridDBTableView; + lvSklad: TcxGridLevel; + gridSklad: TcxGrid; + dsSklad: TDataSource; + vTabSklad: TVirtualTable; + colIdSS2: TcxGridDBColumn; + colIdKZ2: TcxGridDBColumn; + colSZ2: TcxGridDBColumn; + colRegCis2: TcxGridDBColumn; + colNazev12: TcxGridDBColumn; + colNazev22: TcxGridDBColumn; + colMJ2: TcxGridDBColumn; + colJCbezDaniKc2: TcxGridDBColumn; + colCCbezDPH2: TcxGridDBColumn; + colMnoz2: TcxGridDBColumn; + Label4: TLabel; + cbMena: TComboBox; + colIdPZ: TcxGridDBColumn; + selKurz: TRzButtonEdit; + Label5: TLabel; + pmSklad: TPopupMenu; + pmSklad1: TMenuItem; + procedure WMGetMinMaxInfo(var AMsg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO; + procedure selOdberButtonClick(Sender: TObject); + procedure selCisOrgButtonClick(Sender: TObject); + procedure selCisOrgMistoButtonClick(Sender: TObject); + procedure selOdberMistoButtonClick(Sender: TObject); + procedure selCisOrgExit(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure btnCanelClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure selCisOrgMistoExit(Sender: TObject); + procedure btnPolAddClick(Sender: TObject); + procedure viewPolColumnHeaderClick(Sender: TcxGridTableView; AColumn: TcxGridColumn); + procedure FormActivate(Sender: TObject); + procedure pgControlChange(Sender: TObject); + procedure vTabPolCalcFields(DataSet: TDataSet); + procedure btnOKClick(Sender: TObject); + procedure btnPolDelClick(Sender: TObject); + procedure btnPolEditClick(Sender: TObject); + procedure viewPolCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure selKurzButtonClick(Sender: TObject); + procedure viewSkladCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure pmSklad1Click(Sender: TObject); + private + cfCelkemDef: TFieldDef; + cfCelkem: TField; + procedure NovyDoklad; + procedure NactiDoklad; + procedure VytvorGrid; + function GetSklad: ShortString; + procedure NaplnSkladKoop; + function LzeUlozit: boolean; + function ZjistiKurzDleMeny(mena: shortString): Extended; + public + Helios: IHelios; + idDZ: integer; + radaV, druhV: ShortString; + vstCena: integer; + end; + +var + formVydejka: TformVydejka; + sql: WideString; + oVar1, oVar2: OleVariant; + wherePodm: WideString; + radaPopis, cDokl, idDDZ, idSS, idKZ, DZshift, cOrg, idSklad: ShortString; + HeliosImages: THeliosImages; + +implementation +uses cxGridStrs, System.StrUtils; + +{$R *.dfm} + + procedure TformVydejka.WMGetMinMaxInfo(var AMsg: TWMGetMinMaxInfo); + begin + inherited; + with AMsg.MinMaxInfo^ do + begin + ptMinTrackSize := Point(Constraints.MinWidth, Constraints.MinHeight); + ptMaxTrackSize := Point(Constraints.MaxWidth, Constraints.MaxHeight); + end; + end; + + procedure TformVydejka.NaplnSkladKoop; + var sql: WideString; + begin + if not vTabSklad.Active then + vTabSklad.Open; + vTabSklad.Clear; + sql:= 'SELECT ss.Id,kz.Id,kz.SkupZbo,kz.RegCis,kz.Nazev1,kz.Nazev2,kz.MJEvidence,ss.Mnozstvi,ss.Prumer,ss.StavSkladu FROM '; + sql:= sql + tblKZ + ' kz INNER JOIN ' + tblSS + ' ss ON (ss.IDKmenZbozi=kz.id AND ss.IDSklad=N' + QuotedStr(idSklad)+ ') WHERE kz.id IN'; + sql:= sql + ' (SELECT IDKmenZbozi FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(idSklad) + ' ORDER BY kz.SkupZbo,kz.RegCis'; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + vTabSklad.Append; + vTabSklad.Fields.Fields[0].AsInteger:= StrToInt(VarToStr(FieldValues(0))); + vTabSklad.Fields.Fields[1].AsInteger:= StrToInt(VarToStr(FieldValues(1))); + vTabSklad.Fields.Fields[2].AsString:= VarToStr(FieldValues(2)); + vTabSklad.Fields.Fields[3].AsString:= VarToStr(FieldValues(3)); + vTabSklad.Fields.Fields[4].AsString:= VarToStr(FieldValues(4)); + vTabSklad.Fields.Fields[5].AsString:= VarToStr(FieldValues(5)); + vTabSklad.Fields.Fields[6].AsString:= VarToStr(FieldValues(6)); + vTabSklad.Fields.Fields[7].AsExtended:= StrToFloat(VarToStr(FieldValues(7))); + vTabSklad.Fields.Fields[8].AsExtended:= StrToFloat(VarToStr(FieldValues(8))); + vTabSklad.Fields.Fields[9].AsExtended:= StrToFloat(VarToStr(FieldValues(9))); + vTabSklad.Post; + Next; + end; + end; + end; + + procedure TformVydejka.VytvorGrid; + var idx: integer; + begin + with vTabPol do + begin + with FieldDefs do + begin + Clear; + Add('idSS', ftInteger, 0, true); + Add('idKZ', ftInteger, 0, true); + Add('SkupZbo', ftString, 3, false); + Add('RegCis', ftString, 20, false); + Add('Nazev1', ftString, 100, false); + Add('Nazev2', ftString, 100, false); + Add('MJ', ftString, 10, false); + Add('Mnozstvi', ftFloat, 0, false); + Add('JCbezDaniKC', ftFloat, 0, false); + Add('CCbezDPH', ftFloat, 0, false); + Add('idPZ', ftInteger, 0, false); + end; + end; + for idx:=0 to vTabPol.FieldDefs.Count-1 do + begin + cfCelkemDef:= vTabPol.FieldDefs.Items[idx]; + cfCelkem:= cfCelkemDef.CreateField(vTabPol); + if (cfCelkem.FieldName='CCbezDPH') then // oznac Pocitane pole + cfCelkem.FieldKind:= fkCalculated; + end; + + with viewPol.Columns[0] do + begin + DataBinding.FieldName:= 'idSS'; + DataBinding.ValueTypeClass:= TcxIntegerValueType; + Visible:= false; + Width:= 1; + end; + with viewPol.Columns[1] do + begin + DataBinding.FieldName:= 'idKZ'; + DataBinding.ValueTypeClass:= TcxIntegerValueType; + Visible:= false; + Width:= 1; + end; + with viewPol.Columns[2] do + begin + DataBinding.FieldName:= 'SkupZbo'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'SZ'; + Width:= 40; + end; + with viewPol.Columns[3] do + begin + DataBinding.FieldName:= 'RegCis'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Reg.slo'; + Width:= 80; + end; + with viewPol.Columns[4] do + begin + DataBinding.FieldName:= 'Nazev1'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Nzev'; + Width:= 280; + end; + with viewPol.Columns[5] do + begin + DataBinding.FieldName:= 'Nazev2'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Nzev 2'; + Width:= 230; + end; + with viewPol.Columns[6] do + begin + DataBinding.FieldName:= 'MJ'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'MJ'; + Width:= 40; + end; + with viewPol.Columns[7] do + begin + DataBinding.FieldName:= 'Mnozstvi'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Mnostv'; + Width:= 70; + end; + with viewPol.Columns[8] do + begin + DataBinding.FieldName:= 'JCbezDaniKC'; + DataBinding.ValueTypeClass:= TcxFloatValueType; + Caption:= 'JC bez DPH'; + Width:= 75; + end; + with viewPol.Columns[9] do + begin + DataBinding.FieldName:= 'CCbezDPH'; + DataBinding.ValueTypeClass:= TcxFloatValueType; + Caption:= 'CC bez DPH'; + Width:= 80; + end; + with viewPol.Columns[10] do + begin + DataBinding.FieldName:= 'idPZ'; + DataBinding.ValueTypeClass:= TcxIntegerValueType; + Visible:= false; + Width:= 1; + end; + + with vTabSklad do + begin + with FieldDefs do + begin + Clear; + Add('idSS', ftInteger, 0, true); + Add('idKZ', ftInteger, 0, true); + Add('SkupZbo', ftString, 3, false); + Add('RegCis', ftString, 20, false); + Add('Nazev1', ftString, 100, false); + Add('Nazev2', ftString, 100, false); + Add('MJ', ftString, 10, false); + Add('Mnozstvi', ftFloat, 0, false); + Add('Prumer', ftFloat, 0, false); // prumerna JC + Add('CCbezDPH', ftFloat, 0, false); + end; + end; + for idx:=0 to vTabSklad.FieldDefs.Count-1 do + begin + cfCelkemDef:= vTabSklad.FieldDefs.Items[idx]; + cfCelkem:= cfCelkemDef.CreateField(vTabSklad); + if (cfCelkem.FieldName='CCbezDPH') then // oznac Pocitane pole + cfCelkem.FieldKind:= fkCalculated; + end; + + with viewSklad.Columns[0] do + begin + DataBinding.FieldName:= 'idSS'; + DataBinding.ValueTypeClass:= TcxIntegerValueType; + Visible:= false; + Width:= 1; + end; + with viewSklad.Columns[1] do + begin + DataBinding.FieldName:= 'idKZ'; + DataBinding.ValueTypeClass:= TcxIntegerValueType; + Visible:= false; + Width:= 1; + end; + with viewSklad.Columns[2] do + begin + DataBinding.FieldName:= 'SkupZbo'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'SZ'; + Width:= 40; + end; + with viewSklad.Columns[3] do + begin + DataBinding.FieldName:= 'RegCis'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Reg.slo'; + Width:= 80; + end; + with viewSklad.Columns[4] do + begin + DataBinding.FieldName:= 'Nazev1'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Nzev'; + Width:= 280; + end; + with viewSklad.Columns[5] do + begin + DataBinding.FieldName:= 'Nazev2'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Nzev 2'; + Width:= 230; + end; + with viewSklad.Columns[6] do + begin + DataBinding.FieldName:= 'MJ'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'MJ'; + Width:= 45; + end; + with viewSklad.Columns[7] do + begin + DataBinding.FieldName:= 'Mnozstvi'; + DataBinding.ValueTypeClass:= TcxStringValueType; + Caption:= 'Mnostv'; + Width:= 70; + end; + with viewSklad.Columns[8] do + begin + DataBinding.FieldName:= 'Prumer'; + DataBinding.ValueTypeClass:= TcxFloatValueType; + Caption:= 'Prmrn JC'; + Width:= 80; + end; + with viewSklad.Columns[9] do + begin + DataBinding.FieldName:= 'StavSkladu'; + DataBinding.ValueTypeClass:= TcxFloatValueType; + Caption:= 'Fin.stav'; + Width:= 80; + end; + end; + + function TformVydejka.GetSklad: shortString; + begin + result:= ''; + if selCisOrg.Text<>'' then + begin + idSklad:= ''; + sql:= 'SELECT s.Cislo FROM ' + tblStromE + ' se INNER JOIN ' + tblStrom + ' s ON (se.id=s.id)' ; + sql:= sql + ' WHERE se._CisloOrg=' + selCisOrg.Text; + with Helios.OpenSQL(sql) do + if RecordCount>0 then + result:= VarToStr(FieldValues(0)); + end; + idSklad:= result; + if idSklad<>'' then + NaplnSkladKoop; + end; + + procedure TformVydejka.btnCanelClick(Sender: TObject); + begin + Close; + end; + + function TformVydejka.LzeUlozit: boolean; + begin + result:= true; + if edtDatPrip.Text='' then + result:= false; + end; + + procedure TformVydejka.btnOKClick(Sender: TObject); + var idPZ, idKZ, idSS, polIdx: integer; + PZtka, sqlInsPZ: WideString; + sIdPZ,sz,regcis,sMnoz,sJC: ShortString; + begin + if LzeUlozit then + begin + if (idDZ>0) then + begin + // hlavicka + sql:= 'DECLARE @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,' + QuotedStr(DateToStr(edtDatPrip.Date)) + ',104)'; + sql:= sql + 'UPDATE ' + tblDZ + ' SET DatPorizeni=@dt WHERE id=' + IntToStr(idDZ); + Helios.ExecSQL(sql); + + // polozky + if vTabPol.RecordCount>0 then + begin + // zjisti idPZ jiz ulozenych polozek v dokladu + PZtka:= IDckaTabulky(vTabPol,'idPZ'); + if PZtka<>'' then + sql:= ' AND id NOT IN (' + PZtka + ')'; + Helios.ExecSQL('DELETE FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idDZ) + sql); + vTabPol.First; + while not(vTabPol.Eof) do + begin + sz:= vTabPol.Fields.Fields[2].AsString; + regCis:= vTabPol.Fields.Fields[3].AsString; + sMnoz:= vTabPol.Fields.Fields[7].AsString; + sJC:= vTabPol.Fields.Fields[8].AsString; + sIdPZ:= vTabPol.Fields.Fields[10].AsString; + if sIdPZ<>'' then + begin + // uloz zmeny polozek ve starem dokladu + sql:= 'UPDATE ' + tblPZ + ' SET Mnozstvi=' + StringReplace(vTabPol.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + sql:= sql + ',JCbezDaniKC=' + StringReplace(vTabPol.FieldByName('JCbezDaniKc').AsString,',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + sIdPZ; + try + Helios.ExecSQL(sql); + except on E:Exception do + Helios.Error('Nelze aktualizovat poloku dokladu: ' + sz + ':' + regCis + CRLF + E.Message + CRLF + sql); + end; + end + else + begin + // uloz nove radky do dokladu + sql:= 'DECLARE @idPZ INT' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertPolozkyOZ @idPZ OUT,@IDDoklad=' + IntToStr(idDZ) + ',@DruhPohybu=' + druhV; + sql:= sql + ',@CisloOrg=' + selCisOrg.Text + ',@IDZboSklad=' + VarToStr(vTabPol.Fields.Fields[0].AsString) + ',@Kurz=1'; + sql:= sql + ',@JednotkaMeny=1,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0,@Mena=N' + QuotedStr(cbMena.Text); + sql:= sql + ',@Selectem=0,@PovolitDuplicitu=1,@VstupniCena=' + IntToStr(vstCena); + sql:= sql + ',@Mnozstvi=' + StringReplace(vTabPol.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + sql:= sql + ',@JCbezDaniKC=' + StringReplace(vTabPol.FieldByName('JCbezDaniKc').AsString,',','.',[rfReplaceAll]); + sql:= sql + ',@MJ=N' + QuotedStr(vTabPol.FieldByName('MJ').AsString) + CRLF + 'SELECT @idPZ'; + + try + with Helios.OpenSQL(sql) do + idPZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uloit poloku dokladu, kontaktujte sprvce.'#1 + CRLF + E.Message + CRLF + sql); + end; + if idPZ>0 then + begin + vTabPol.Edit; + vTabPol.Fields.Fields[10].AsInteger:= idPZ; + vTabPol.Post; + sql:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=' + StringReplace(vTabPol.FieldByName('CCbezDPH').AsString,',','.',[rfReplaceAll]); + if Pos('CZK',cbMena.Text)=0 then + sql:= sql + ',CCbezDaniVal=' + StringReplace(vTabPol.FieldByName('CCbezDPH').AsString,',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + IntToStr(idPZ); + end; + end; + vTabPol.Next; + end; + end + else + Helios.ExecSQL('DELETE FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idDZ)); + end + else + begin + idDZ:= 0; + sql:= 'DECLARE @dt DATETIME,@idDZ INT' + CRLF; + sql:= sql + 'SET @dt=CONVERT(datetime,' + QuotedStr(DateToStr(edtDatPrip.Date)) + ',104)' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertHlavickyOZ @idDZ OUT,@Sklad=N' + QuotedStr(Helios.Sklad) + ',@Mena=N' + QuotedStr(cbMena.Text); + sql:= sql + ',@DruhPohybu=' + druhV + ',@RadaDokladu=N' + QuotedStr(radaV) + ',@Insert=1,@CisloOrg=' + selCisOrg.Text + ',@PC=' + cDokl; + sql:= sql + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @idDZ'; + try + with Helios.OpenSQL(sql) do + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uloit hlaviku dokladu, kontaktujte sprvce.'#1 + CRLF + E.Message + CRLF + sql); + end; + if idDZ>0 then + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + IntToStr(idDZ)); + if vTabPol.RecordCount>0 then + begin + polIdx:= viewPol.DataController.FocusedRecordIndex; // uloz index zaznamu pro zpetne oznaceni + vTabPol.First; + while not(vTabPol.Eof) do + begin + idPZ:= 0; + + sql:= 'DECLARE @idPZ INT' + CRLF; + sql:= sql + 'EXEC dbo.hp_InsertPolozkyOZ @idPZ OUT,@IDDoklad=' + IntToStr(idDZ) + ',@DruhPohybu=' + druhV; + sql:= sql + ',@CisloOrg=' + selCisOrg.Text + ',@IDZboSklad=' + VarToStr(vTabPol.Fields.Fields[0].AsString) + ',@Kurz=1'; + sql:= sql + ',@JednotkaMeny=1,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0,@Mena=N' + QuotedStr(cbMena.Text); + sql:= sql + ',@Selectem=0,@PovolitDuplicitu=1,@VstupniCena=' + IntToStr(vstCena); + sql:= sql + ',@Mnozstvi=' + StringReplace(vTabPol.FieldByName('Mnozstvi').AsString,',','.',[rfReplaceAll]); + sql:= sql + ',@JCbezDaniKC=' + StringReplace(vTabPol.FieldByName('JCbezDaniKc').AsString,',','.',[rfReplaceAll]); + sql:= sql + ',@MJ=N' + QuotedStr(vTabPol.FieldByName('MJ').AsString) + CRLF + 'SELECT @idPZ'; + + try + with Helios.OpenSQL(sql) do + idPZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uloit poloku dokladu, kontaktujte sprvce.'#1 + CRLF + E.Message + CRLF + sql); + end; + if idPZ>0 then + begin + vTabPol.Edit; + vTabPol.Fields.Fields[10].AsInteger:= idPZ; + vTabPol.Post; + sql:= 'UPDATE ' + tblPZ + ' SET CCbezDaniKc=' + StringReplace(vTabPol.FieldByName('CCbezDPH').AsString,',','.',[rfReplaceAll]); + if vstCena in [4,5,6,7] then + sql:= sql + ',CCbezDaniVal=' + StringReplace(vTabPol.FieldByName('CCbezDPH').AsString,',','.',[rfReplaceAll]); + sql:= sql + ' WHERE id=' + IntToStr(idPZ); + end; + vTabPol.Next; + end; + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); + viewPol.DataController.FocusedRecordIndex:= polIdx; // obnov oznaceny zaznam + end; + end; + end; + Close; + end + else + Helios.Error(#1'Nelze uloit doklad, neproel formln kontrolou.'#1); + end; + + procedure TformVydejka.btnPolAddClick(Sender: TObject); + var idKZ: ShortString; + sql: WideString; + polKZ: IHeQuery; + mnoz,jc: Extended; + begin + if (idSklad='') then + begin + idKZ:= ''; + wherePodm:= 'TabKmenZbozi.Id IN (SELECT IDKmenZbozi FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(Helios.Sklad) + ')'; + if Helios.Prenos(bidKZ, 'id', oVar1, wherePodm, '', True) then + idKZ:= VarToStr(oVar1); + if idKZ<>'' then + begin + sql:= 'SELECT id FROM ' + tblSS + ' WHERE IDKmenZbozi=' + idKZ + ' AND IDSklad=N' + QuotedStr(Helios.Sklad); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + begin + mnoz:= 0; + jc:= 0; + if not vTabPol.Active then + vTabPol.Open; + vTabPol.Append; + vTabPol.Fields.Fields[0].AsInteger:= StrToInt(VarToStr(FieldValues(0))); + sql:= 'SELECT * FROM ' + tblKZ + ' WHERE id=' + idKZ; + polKZ:= Helios.OpenSQL(sql); + vTabPol.Fields.Fields[1].AsInteger:= StrToInt(VarToStr(idKZ)); + vTabPol.Fields.Fields[2].AsString:= VarToStr(polKZ.FieldByNameValues('SkupZbo')); + vTabPol.Fields.Fields[3].AsString:= VarToStr(polKZ.FieldByNameValues('RegCis')); + vTabPol.Fields.Fields[4].AsString:= VarToStr(polKZ.FieldByNameValues('Nazev1')); + vTabPol.Fields.Fields[5].AsString:= VarToStr(polKZ.FieldByNameValues('Nazev2')); + if not VarIsNull(polKZ.FieldByNameValues('MJevidence')) then + vTabPol.Fields.Fields[6].AsString:= VarToStr(polKZ.FieldByNameValues('MJevidence')); + vTabPol.Fields.Fields[7].AsFloat:= 0; + vTabPol.Fields.Fields[8].AsFloat:= 0; + if FormMnozstviCena('',mnoz,jc,false) then + begin + vTabPol.Fields.Fields[7].AsFloat:= mnoz; + vTabPol.Fields.Fields[8].AsFloat:= jc; + end; + vTabPol.Post; + end; + end; + end + else + Helios.Error(#1'Kooperantm lze vydvat pouze pednastaven materily' + CRLF + '(zloka 3-Sklady kooperant).'#1); + end; + + procedure TformVydejka.btnPolDelClick(Sender: TObject); + var p: ShortString; + idxR: integer; + begin + idxR:= viewPol.DataController.FocusedRowIndex; + p:= VarToStr(viewPol.ViewData.Rows[idxR].Values[4]); + p:= p + ' (' + VarToStr(viewPol.ViewData.Rows[idxR].Values[7]) + ' '; + p:= p + VarToStr(viewPol.ViewData.Rows[idxR].Values[6]) + ')'; + if Helios.YesNo('Opravdu chcete z dokladu smazat poloku '#1 + p + #1' ?',false) then + begin + vTabPol.RecNo:= viewPol.DataController.FocusedRecordIndex; + vTabPol.Delete; + vTabPol.Refresh; + end; + end; + + procedure TformVydejka.btnPolEditClick(Sender: TObject); + var m,c: Extended; + idx: integer; + begin + idx:= viewPol.DataController.FocusedRecordIndex; + vTabPol.RecNo:= idx; + m:= vTabPol.Fields.FieldByName('Mnozstvi').AsExtended; + c:= vTabPol.Fields.FieldByName('JCbezDaniKC').AsExtended; + if FormMnozstviCena('',m,c,false) then + begin + vTabPol.Edit; + vTabPol.Fields.FieldByName('Mnozstvi').AsExtended:= m; + vTabPol.Fields.FieldByName('JCbezDaniKC').AsExtended:= c; + vTabPol.Post; + end; + viewPol.DataController.FocusedRecordIndex:= idx; + end; + + procedure TformVydejka.FormActivate(Sender: TObject); + begin + selCisOrg.SetFocus; + end; + + procedure TformVydejka.FormClose(Sender: TObject; var Action: TCloseAction); + begin + if vTabSklad.Active then + vTabSklad.Close; + if vTabPol.Active then + vTabPol.Close; + if idDZ>0 then + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ)); + Helios.Refresh(true); + Action:= caFree; + end; + + procedure TformVydejka.NactiDoklad; + var dz: IHeQuery; + idx: Integer; + pol: IHeQuery; + begin + sql:= 'SELECT * FROM ' + tblDZ + ' WHERE id=' + IntToStr(idDZ); + dz:= Helios.OpenSQL(sql); + if dz.RecordCount=1 then + begin + cDokl:= VarToStr(dz.FieldByNameValues('PoradoveCislo')); + cOrg:= VarToStr(dz.FieldByNameValues('CisloOrg')); + selKurz.Text:= Format('%3.4f',[StrToFloat(VarToStr(dz.FieldByNameValues('Kurz')))]); + selCisOrg.Text:= cOrg; + selCisOrgExit(Self); + Self.Caption:= Helios.Sklad + ' ' + radaPopis + ' ' + radaV + ' ' + StringOfChar('0',6 - Length(cDokl)) + cDokl; + edtDatPrip.Date:= StrToDate(VarToStr(dz.FieldByNameValues('DatPorizeni_X'))); + pol:= Helios.OpenSQL('SELECT * FROM ' + tblPZ + ' WHERE IDDoklad=' + IntToStr(idDZ) + ' ORDER BY SkupZbo,RegCis'); + if pol.RecordCount>0 then + begin + if not vTabPol.Active then + vTabPol.Open; + vTabPol.Clear; + pol.First; + while not(pol.EOF) do + begin + vTabPol.Append; + idSS:= VarToStr(pol.FieldByNameValues('IdZboSklad')); + vTabPol.Fields.Fields[0].AsInteger:= StrToInt(idSS); + with Helios.OpenSQL('SELECT idKmenZbozi FROM ' + tblSS + ' WHERE id=' + idSS) do + idKZ:= VarToStr(FieldValues(0)); + vTabPol.Fields.Fields[1].AsInteger:= StrToInt(idKZ); + vTabPol.Fields.Fields[2].AsString:= VarToStr(pol.FieldByNameValues('SkupZbo')); + vTabPol.Fields.Fields[3].AsString:= VarToStr(pol.FieldByNameValues('RegCis')); + vTabPol.Fields.Fields[4].AsString:= VarToStr(pol.FieldByNameValues('Nazev1')); + vTabPol.Fields.Fields[5].AsString:= VarToStr(pol.FieldByNameValues('Nazev2')); + vTabPol.Fields.Fields[6].AsString:= VarToStr(pol.FieldByNameValues('MJ')); + vTabPol.Fields.Fields[7].AsFloat:= StrToFloat(VarToStr(pol.FieldByNameValues('Mnozstvi'))); + vTabPol.Fields.Fields[8].AsFloat:= StrToFloat(VarToStr(pol.FieldByNameValues('JCbezDaniKC'))); + vTabPol.Fields.Fields[10].AsFloat:= StrToInt(VarToStr(pol.FieldByNameValues('Id'))); + vTabPol.Post; + pol.Next; + end; + end; + end; + end; + + procedure TformVydejka.NovyDoklad; + begin + cDokl:= ''; + dzShift:= ''; + sql:= 'SELECT dzd.PosledniPC FROM ' + tblDDZdef + ' dzd INNER JOIN ' + tblDDZ + ' dz ON'; + sql:= sql + ' (dz.ID=dzd.idDruhDZ) WHERE dzd.IdObdobi=' + IntToStr(Helios.Obdobi); + sql:= sql + ' AND dz.DruhPohybuZbo=' + druhV + ' AND dz.RadaDokladu=N' + QuotedStr(radaV); + with Helios.OpenSQL(sql) do + if RecordCount>0 then + dzShift:= VarToStr(FieldValues(0)); + if DZshift= '' then + DZshift:= '1'; + + sql:= 'DECLARE @Cislo INT' + CRLF + 'EXEC @Cislo=dbo.hp_NajdiPrvniVolny ' + QuotedStr('TabDokladyZbozi') + ',' + QuotedStr('PoradoveCislo'); + sql:= sql + ',' + DZshift + ',999999,N' + QuotedStr('RadaDokladu=N' + QuotedStr(radaV) + ' AND IDSklad=N' + QuotedStr(Helios.Sklad) + ' AND DruhPohybuZbo=' + druhV); + with Helios.OpenSQL(sql) do + cDokl:= VarToStr(FieldValues(0)); + if cDokl=DZshift then + cDokl:= IntToStr(StrToInt(cDokl) + 1); + Self.Caption:= Helios.Sklad + ' ' + radaPopis + ' ' + radaV + ' ' + StringOfChar('0',6 - Length(cDokl)) + cDokl; + edtDatPrip.Date:= Now; + if vstCena in [4,5,6,7] then + selKurz.Enabled:= true + else + selKurz.Enabled:= false; + selKurz.Text:= '1.0'; + end; + + procedure TformVydejka.pgControlChange(Sender: TObject); + begin + if pgControl.ActivePageIndex=2 then + pgSklad.Visible:= idSklad<>''; + end; + + procedure TformVydejka.pmSklad1Click(Sender: TObject); + begin + if idSklad<>'' then + NaplnSkladKoop; + end; + + procedure TformVydejka.FormShow(Sender: TObject); + var idx: Integer; + helParam: THeliosParams; + begin + Self.Constraints.MaxWidth:= Self.Width; + Self.Constraints.MinWidth:= Self.Width; + Self.Constraints.MaxHeight:= Self.Height; + Self.Constraints.MinHeight:= Self.Height; + + Self.Icon.Handle:= Helios.MainApplicationIconHandle; + Self.Font.Name:= Helios.Font; + helUtils.NactiParametryHeliosu(Helios, helParam); + pgControl.ActivePageIndex:= 0; + + cxSetResourceString(@scxGridGroupByBoxCaption,'Sem pethnte zhlav sloupc, podle kterch chcete pehled seskupit.'); + viewPol.OptionsView.NoDataToDisplayInfoText:= ''; + viewPol.OptionsView.GroupByBox:= False; + viewSklad.OptionsView.NoDataToDisplayInfoText:= ''; + viewSklad.OptionsView.GroupByBox:= False; + + idx:= 0; + while idx0 then + begin + radaV:= MidStr(radaV,2,5); + radaV:= StringReplace(radaV,'''','',[rfReplaceAll]); + end; + + with Helios.OpenSQL('SELECT Nazev FROM ' + tblDDZ + ' WHERE RadaDokladu=N' + QuotedStr(radaV) + ' AND DruhPohybuZbo=' + druhV) do + radaPopis:= VarToStr(FieldValues(0)); + + pgSklad.Visible:= false; + pgSklad.TabVisible:= false; + + cbMena.Clear; + cbMena.Items.Add('CZK'); + with Helios.OpenSQL('SELECT DISTINCT(Mena) FROM ' + tblKList + ' ORDER BY Mena') do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + cbMena.Items.Add(VarToStr(FieldValues(0))); + Next; + end; + end; + cbMena.ItemIndex:= 0; + + VytvorGrid; + if idDZ=0 then + NovyDoklad + else + NactiDoklad; + end; + + function TformVydejka.ZjistiKurzDleMeny(mena: ShortString): Extended; + begin + result:= 1; + if mena<>'' then + begin + sql:= 'DECLARE @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,' + QuotedStr(edtDatPrip.Text) + ',104)' + CRLF; + sql:= sql + 'SELECT Kurz FROM ' + tblKList + ' WHERE Datum<=@dt AND Mena=N' + QuotedStr(mena) + ' ORDER BY Datum DESC'; + with Helios.OpenSQL(sql) do + result:= StrToFloat(VarToStr(FieldValues(0))); + cbMena.Enabled:= true; + end; + end; + + procedure TformVydejka.selCisOrgButtonClick(Sender: TObject); + var mena: ShortString; + sql: WideString; + begin + if Helios.Prenos2(bidCisOrg,'CisloOrg','Nazev', oVar1, oVar2,'','Vyberte organizaci',true,false,false,1) then + begin + if (vTabPol.RecordCount=0) or (idSklad='') then + begin + selCisOrg.Text:= VarToStr(oVar1); + mena:= ''; + with Helios.OpenSQL('SELECT Mena FROM ' + tblCOrg + ' WHERE CisloOrg=' + selCisOrg.Text) do + if RecordCount=1 then + mena:= VarToStr(FieldValues(0)); + if mena<>'' then + cbMena.ItemIndex:= cbMena.Items.IndexOf(mena) + else + cbMena.ItemIndex:= cbMena.Items.IndexOf('CZK'); + selKurz.Text:= FloatToStr(ZjistiKurzDleMeny(mena)); + idSklad:= GetSklad; + pgSklad.TabVisible:= idSklad<>''; + selOdber.Text:= VarToStr(oVar2); + end + else + Helios.Error(#1'Na dokladu jsou ji zadan poloky vybranho Kooperanta, nelze mnit Odbratele.'#1); + end; + if not pgSklad.TabVisible then + vTabSklad.Clear; + end; + + procedure TformVydejka.selCisOrgExit(Sender: TObject); + var mena: ShortString; + begin + selCisOrg.Text:= Trim(selCisOrg.Text); + if (vTabPol.RecordCount=0) or (idSklad='') then + begin + if (selCisOrg.Text<>'') then + with Helios.OpenSQL('SELECT Nazev,Mena FROM ' + tblCOrg + ' WHERE CisloOrg=' + selCisOrg.Text) do + if RecordCount>0 then + begin + idSklad:= GetSklad; + pgSklad.TabVisible:= idSklad<>''; + if not VarIsNull(FieldValues(0)) then + selOdber.Text:= VarToStr(FieldValues(0)); + mena:= ''; + if not VarIsNull(FieldValues(1)) then + mena:= VarToStr(FieldValues(1)); + if mena<>'' then + cbMena.ItemIndex:= cbMena.Items.IndexOf(mena) + else + cbMena.ItemIndex:= cbMena.Items.IndexOf('CZK'); + selKurz.Text:= FormatFloat('###,##0.0###',ZjistiKurzDleMeny(mena)); + end; + end + else + Helios.Error(#1'Na dokladu jsou ji zadan poloky vybranho Kooperanta, nelze mnit Odbratele.'#1); + if not pgSklad.TabVisible then + vTabSklad.Clear; + end; + + procedure TformVydejka.selCisOrgMistoButtonClick(Sender: TObject); + begin + if Helios.Prenos2(bidCisOrg,'CisloOrg','Nazev', oVar1, oVar2,'','Vyberte organizaci',true,false,false,1) then + begin + selCisOrgMisto.Text:= VarToStr(oVar1); + selOdberMisto.Text:= VarToStr(oVar2); + end; + end; + + procedure TformVydejka.selCisOrgMistoExit(Sender: TObject); + begin + selCisOrgMisto.Text:= Trim(selCisOrgMisto.Text); + if (selCisOrgMisto.Text<>'') and (selOdberMisto.Text='') then + with Helios.OpenSQL('SELECT Nazev FROM ' + tblCOrg + ' WHERE CisloOrg=' + selCisOrgMisto.Text) do + if RecordCount>0 then + begin + if not VarIsNull(FieldValues(0)) then + selOdberMisto.Text:= VarToStr(FieldValues(0)); + end; + NaplnSkladKoop; + end; + + procedure TformVydejka.selKurzButtonClick(Sender: TObject); + begin + if cbMena.Text<>'CZK' then + begin + if Helios.Prenos(bidKList,'Kurz',oVar1,'Mena=N' + QuotedStr(cbMena.Text),'Kurzovn lstek',True) then + selKurz.Text:= FormatFloat('###,##0.0###',StrToFloat(VarToStr(oVar1))) + else + selKurz.Text:= '1,0'; + end + else + Helios.Error(#1'Jako mna jsou vybran koruny, vyberte ciz mnu.'#1); + end; + + procedure TformVydejka.selOdberButtonClick(Sender: TObject); + begin + selCisOrgButtonClick(Sender); + end; + + procedure TformVydejka.selOdberMistoButtonClick(Sender: TObject); + begin + selCisOrgMistoButtonClick(Sender); + end; + + procedure TformVydejka.viewPolCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + var idx: integer; + begin + idx:= ACellViewInfo.RecordViewInfo.Index; + btnPolEditClick(Sender); + end; + + procedure TformVydejka.viewPolColumnHeaderClick(Sender: TcxGridTableView; AColumn: TcxGridColumn); + begin + ShowMessage('ka: ' + IntToStr(AColumn.Width)); + end; + + procedure TformVydejka.viewSkladCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + var m,c: Extended; + begin + if vTabSklad.RecordCount>0 then + begin + if not vTabPol.Active then + vTabPol.Open; + vTabPol.Append; + vTabPol.Fields.FieldByName('idSS').AsInteger:= vTabSklad.Fields.FieldByName('idSS').AsInteger; + vTabPol.Fields.FieldByName('idKZ').AsInteger:= vTabSklad.Fields.FieldByName('idKZ').AsInteger; + vTabPol.Fields.FieldByName('SkupZbo').AsString:= vTabSklad.Fields.FieldByName('SkupZbo').AsString; + vTabPol.Fields.FieldByName('regCis').AsString:= vTabSklad.Fields.FieldByName('regCis').AsString; + vTabPol.Fields.FieldByName('Nazev1').AsString:= vTabSklad.Fields.FieldByName('Nazev1').AsString; + vTabPol.Fields.FieldByName('Nazev2').AsString:= vTabSklad.Fields.FieldByName('Nazev2').AsString; + vTabPol.Fields.FieldByName('MJ').AsString:= vTabSklad.Fields.FieldByName('MJ').AsString; + m:= vTabSklad.Fields.FieldByName('Mnozstvi').AsExtended; + c:= vTabSklad.Fields.FieldByName('Prumer').AsExtended; + vTabPol.Fields.FieldByName('Mnozstvi').AsExtended:= m; + vTabPol.Fields.FieldByName('JCbezDaniKc').AsExtended:= c; + if FormMnozstviCena('',m,c,false) then + begin + vTabPol.Fields.FieldByName('Mnozstvi').AsExtended:= m; + vTabPol.Fields.FieldByName('JCbezDaniKc').AsExtended:= c; + end; + vTabPol.Post; + end; + end; + + procedure TformVydejka.vTabPolCalcFields(DataSet: TDataSet); + var jc,mn: Extended; + begin + if DataSet.RecordCount<>0 then + begin + mn:= DataSet.FieldByName('Mnozstvi').AsFloat; + jc:= DataSet.FieldByName('JCbezDaniKc').AsFloat; + DataSet.FieldByName('CCbezDPH').AsFloat:= RoundToEx(mn*jc,-2); + end; + end; + +end. diff --git a/frmUnit8.dfm b/frmUnit8.dfm new file mode 100644 index 0000000..8ce1a4a --- /dev/null +++ b/frmUnit8.dfm @@ -0,0 +1,214 @@ +object formPrijemkaNadvyroba: TformPrijemkaNadvyroba + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = ' P'#345#237'jemka (evidence) - Dom'#225'c'#237' v'#253'roba' + ClientHeight = 192 + ClientWidth = 584 + Color = clBtnFace + Constraints.MaxHeight = 230 + Constraints.MaxWidth = 600 + Constraints.MinHeight = 230 + Constraints.MinWidth = 600 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object GroupBox2: TGroupBox + Left = 7 + Top = 8 + Width = 569 + Height = 137 + TabOrder = 0 + object Label4: TLabel + Left = 383 + Top = 11 + Width = 41 + Height = 13 + Caption = 'Datum:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label5: TLabel + Left = 9 + Top = 11 + Width = 96 + Height = 13 + Caption = 'Os.'#269#237'slo zam'#283'st. :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label1: TLabel + Left = 23 + Top = 30 + Width = 83 + Height = 13 + Caption = 'Zam'#283'stnanec :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label2: TLabel + Left = 23 + Top = 66 + Width = 14 + Height = 13 + Caption = 'SZ' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label3: TLabel + Left = 58 + Top = 66 + Width = 50 + Height = 13 + Caption = 'Reg.'#269#237'slo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label6: TLabel + Left = 170 + Top = 66 + Width = 34 + Height = 13 + Caption = 'N'#225'zev' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object Label7: TLabel + Left = 389 + Top = 106 + Width = 57 + Height = 13 + Alignment = taCenter + Caption = 'Mno'#382'stv'#237' :' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold, fsItalic] + ParentFont = False + end + object lblSZ: TLabel + Left = 23 + Top = 82 + Width = 3 + Height = 13 + end + object lblRegCis: TLabel + Left = 58 + Top = 82 + Width = 3 + Height = 13 + end + object lblNazev: TLabel + Left = 170 + Top = 82 + Width = 3 + Height = 13 + end + object lblCisZam: TLabel + Left = 117 + Top = 11 + Width = 3 + Height = 13 + end + object lblZamest: TLabel + Left = 117 + Top = 30 + Width = 3 + Height = 13 + end + object lblPrikaz: TLabel + Left = 23 + Top = 106 + Width = 3 + Height = 13 + end + object dtPicker: TDateTimePicker + Left = 435 + Top = 8 + Width = 96 + Height = 21 + Date = 40952.869654375000000000 + Time = 40952.869654375000000000 + MaxDate = 44196.000000000000000000 + MinDate = 40909.000000000000000000 + TabOrder = 0 + end + object edtMnoz: TRzNumericEdit + Left = 456 + Top = 103 + Width = 53 + Height = 21 + Alignment = taCenter + MaxLength = 6 + TabOrder = 1 + Max = 999999.000000000000000000 + DisplayFormat = '0;-0' + end + end + object btnOK: TButton + Left = 384 + Top = 156 + Width = 75 + Height = 25 + Caption = '&OK' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ModalResult = 1 + ParentFont = False + TabOrder = 1 + OnClick = btnOKClick + end + object btnCancel: TButton + Left = 501 + Top = 156 + Width = 75 + Height = 25 + Caption = '&Zru'#353'it' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ModalResult = 2 + ParentFont = False + TabOrder = 2 + OnClick = btnCancelClick + end +end diff --git a/frmUnit8.pas b/frmUnit8.pas new file mode 100644 index 0000000..5f2b00b --- /dev/null +++ b/frmUnit8.pas @@ -0,0 +1,502 @@ +unit frmUnit8; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ddPlugin_TLB, helUtils, Vcl.Buttons, Vcl.Menus, Vcl.ComCtrls, Vcl.StdCtrls, + Vcl.Mask, RzEdit; + +const + sklProOdvodDP = '200'; + radaOdvedDP = '240'; + radaVydejDP = '470'; + errPlg = #13#10 + '(plgLOVATO,unit8)'; + rDoklVydMat = '400'; + sklProMatDP = '20000105'; + +type + TformPrijemkaNadvyroba = class(TForm) + GroupBox2: TGroupBox; + btnOK: TButton; + btnCancel: TButton; + Label4: TLabel; + Label5: TLabel; + Label1: TLabel; + dtPicker: TDateTimePicker; + Label2: TLabel; + Label3: TLabel; + Label6: TLabel; + Label7: TLabel; + lblSZ: TLabel; + lblRegCis: TLabel; + lblNazev: TLabel; + lblCisZam: TLabel; + lblZamest: TLabel; + edtMnoz: TRzNumericEdit; + lblPrikaz: TLabel; + procedure FormShow(Sender: TObject); + procedure btnCancelClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormActivate(Sender: TObject); + procedure btnOKClick(Sender: TObject); + procedure edtMnozKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + private + helParams: THeliosParams; + procedure NastavFonty; + procedure NactiPolozkuKoopObj; + public + idPKObj: integer; + Helios: IHelios; + end; + +var + formPrijemkaNadvyroba: TformPrijemkaNadvyroba; + idKO,idKZ,idVPr,dokl: integer; + idCOrgDP: integer; + cZam: shortString; + +implementation +uses System.StrUtils, System.DateUtils; + +{$R *.dfm} + + procedure TformPrijemkaNadvyroba.NactiPolozkuKoopObj; + var locSQL: WideString; + begin + with Helios.OpenSQL('SELECT id FROM ' + tblPrikaz + ' WHERE StavPrikazu IN (30,40) AND kusy_zive>0 AND id=' + IntToStr(idVPr)) do + if RecordCount>0 then + begin + if idPKObj>0 then + begin + locSQL:= 'SELECT (pko.Kusy-pko.KusyPrevedene),kz.SkupZbo,kz.RegCis,kz.Nazev1,cz.PrijmeniJmeno,cz.Cislo,ko.id,'; + locSQL:= locSQL + 'kz.id,p.id,pko.DokladPrPostup FROM ' + tblPKObj + ' pko INNER JOIN ' + tblPrikaz + ' p ON (pko.IdPrikaz=p.Id)'; + locSQL:= locSQL + ' INNER JOIN ' + tblKZ + ' kz ON (p.IdTabKmen=kz.id) INNER JOIN ' + tblKObj + ' ko ON'; + locSQL:= locSQL + ' (pko.IDObjednavky=ko.id) INNER JOIN ' + tblCZam + ' cz ON (ko.IdZamestnance=cz.id) WHERE'; + locSQL:= locSQL + ' pko.id=' + IntToStr(idPKObj) + ' AND ko.IDOrganizace=' + IntToStr(idCOrgDP); + with Helios.OpenSQL(locSQL) do + if RecordCount>0 then + begin + edtMnoz.Value:= StrToFloat(VarToStr(FieldValues(0))); + lblSZ.Caption:= VarToStr(FieldValues(1)); + lblRegCis.Caption:= VarToStr(FieldValues(2)); + lblNazev.Caption:= VarToStr(FieldValues(3)); + lblZamest.Caption:= VarToStr(FieldValues(4)); + lblCisZam.Caption:= VarToStr(FieldValues(5)); + cZam:= lblCisZam.Caption; + lblCisZam.Caption:= StringOfChar('0',6-Length(cZam)) + cZam; + idKO:= StrToInt(VarToStr(FieldValues(6))); + idKZ:= StrToInt(VarToStr(FieldValues(7))); +// idVPr:= StrToInt(VarToStr(FieldValues(8))); + dokl:= StrToInt(VarToStr(FieldValues(9))); + end; + end; + end + else + begin + locSQL:= #1'Na pkaze nejsou u dn iv kusy, nelze dlat dal pjemku.'#1 + CRLF + 'Pokud i pesto chcete'; + locSQL:= locSQL + ' zaevidovat pjemku, kontaktujte' + CRLF + 'firmu NTS Strakonice, konzultanty Heliosu, modul Vroba.'; + Helios.Error(locSQL); + btnOK.Enabled:= false; + edtMnoz.Enabled:= false; + Close; + end; + end; + + procedure TformPrijemkaNadvyroba.btnCancelClick(Sender: TObject); + begin + Close; + end; + + procedure TformPrijemkaNadvyroba.btnOKClick(Sender: TObject); + var locSQL,podm: WideString; + idPMaZ,idDZ,idPZ,cKoop,idDZshift,idPrKVaz,GidKZ: integer; + jc,cc,kurz,qDat,GidSS,Gdokl,mnTxt,idObd,dt: shortString; + mnoz,mnReal: Extended; + realVyd, realPrij: boolean; + begin + jc:= '0.05'; + kurz:= '25'; + realVyd:= false; + realPrij:= false; + + dt:= DateToStr(dtPicker.Date) + ' ' + TimeToStr(Now); + + idObd:= '0'; + locSQL:= 'DECLARE @obd INT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC @obd=dbo.hp_GetObdobiDleDatumu @dt,0,null,null,0,0' + CRLF + 'SELECT @obd'; + with Helios.OpenSQL(locSQL) do + idObd:= VarToStr(FieldValues(0)); + + with Helios.OpenSQL('SELECT id FROM dbo.TabCKoop WHERE Rada=N' + QuotedStr('105')) do + cKoop:= StrToInt(VarToStr(FieldValues(0))); + locSQL:= 'SELECT CelniKurz FROM ' + tblKList + ' WHERE Mena=N' + QuotedStr('EUR') + ' AND Datum_Y='; + locSQL:= locSQL + IntToStr(YearOf(dtPicker.Date)) + ' AND Datum_M=' + IntToStr(MonthOf(dtPicker.Date)); + locSQL:= locSQL + ' ORDER BY Cislo desc'; + with Helios.OpenSQL(locSQL) do + if RecordCount>0 then + kurz:= VarToStr(FieldValues(0)); + with Helios.OpenSQL('SELECT Mat FROM ' + tblZaKalk + ' WHERE dilec=' + IntToStr(idKZ)) do + if RecordCount>0 then + jc:= VarToStr(FieldValues(0)); + + jc:= FloatToStr(StrToFloat(jc) * StrToFloat(kurz)); + cc:= FloatToStr(StrToFloat(jc) * edtMnoz.Value); + jc:= StringReplace(jc,',','.',[rfReplaceAll]); + cc:= StringReplace(cc,',','.',[rfReplaceAll]); + + ReseedTable(Helios,tblMzdZm); + idPMaZ:= 0; + Helios.ExecSQL('INSERT ' + tblMzdZm + ' (TypMzdy,BlokovaniEditoru) VALUES (2,1)'); + with Helios.OpenSQL('SELECT SCOPE_IDENTITY()') do + idPMaZ:= StrToInt(VarToStr(FieldValues(0))); + + mnTxt:= StringReplace(edtMnoz.Text,' ','',[rfReplaceAll]); + + locSQL:= 'UPDATE ' + tblMzdZm + ' SET Datum=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + locSQL:= locSQL + ',Stav=0,IDKoopObj=' + IntToStr(idKO) + ',IDPolKoopObj=' + IntToStr(idPKObj) + ',IDPrikaz=' + IntToStr(idVPr); + locSQL:= locSQL + ',IDTabKmen=' + IntToStr(idKZ) + ',kusy_odv=' + StringReplace(mnTxt,',','.',[rfReplaceAll]); + locSQL:= locSQL + ',DokladPrPostup=' + IntToStr(dokl) + ',IDDodavatel=' + IntToStr(idCOrgDP) + ',AltPrPostup=N' + QuotedStr('A'); + locSQL:= locSQL + ',Operace_odv=' + StringReplace(mnTxt,',','.',[rfReplaceAll]) + ',BlokovaniEditoru=null'; + locSQL:= locSQL + ',IDKooperace=' + IntToStr(cKoop); + locSQL:= locSQL + ' WHERE id=' + IntToStr(idPMaZ); + try + Helios.ExecSQL(locSQL); + except on E:Exception do + Helios.Error(#1'Chyba pi ukldn zznamu evidence Nadvroby.'#1 + CRLF + E.Message + locSQL + errPlg); + end; + if idPMaZ>0 then + begin + idDZ:= 0; + + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenRezVyd') + ') IS NOT NULL DROP TABLE #TabGenRezVyd' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabGenRezVyd(ID INT NOT NULL)'; + Helios.ExecSQL(locSQL); + + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabOdved') + ') IS NOT NULL DROP TABLE #TabOdved' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabOdved (id int identity, IDPrikaz int NOT NULL, IDDilec int NOT NULL, IDZakazka int, maxMnozstvi NUMERIC(19,6)'; + locSQL:= locSQL + ',mnozstvi NUMERIC(19,6) NOT NULL, EvidJednotka INT NOT NULL, Sklad NVARCHAR(30), KodUmisteni NVARCHAR(15) )'; + Helios.ExecSQL(locSQL); + locSQL:= 'INSERT #TabOdved (IDPrikaz,IDDilec,Mnozstvi,EvidJednotka,Sklad) VALUES ('; + locSQL:= locSQL + IntToStr(idVPr) + ',' + IntToStr(idKZ) + ',' + StringReplace(mnTxt,',','.',[rfReplaceAll]); + locSQL:= locSQL + ',1,N' + QuotedStr(sklProOdvodDP) + ')'; + Helios.ExecSQL(locSQL); + + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabPrKVazbyGen(ID INT IDENTITY NOT NULL, Generuj BIT NOT NULL DEFAULT 1,'; + locSQL:= locSQL + 'PoKorekciDat BIT NOT NULL DEFAULT 0, IDPrKV INT NOT NULL, Doklad INT NOT NULL, IDPrikaz INT NOT NULL,'; + locSQL:= locSQL + 'Prednastaveno BIT NOT NULL DEFAULT 1, Sklad NVARCHAR(30) COLLATE database_default NULL,'; + locSQL:= locSQL + 'VyrStredisko NVARCHAR(30) COLLATE database_default NULL, IDPracoviste INT NULL,'; + locSQL:= locSQL + 'mnoz_zad NUMERIC(19, 6) NOT NULL DEFAULT 0, Mnoz_nepotrebne NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'Mnoz_skut_realizovane NUMERIC(19, 6) NOT NULL DEFAULT 0, Cena_real NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'Mnoz_odv NUMERIC(19, 6) NOT NULL DEFAULT 0, Cena_odv NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'MnozstviMax NUMERIC(19, 6) NULL, MnozstviPoz NUMERIC(19, 6) NOT NULL, PomMnozPoz NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'IDPohZbo INT NULL, priorita INT NOT NULL DEFAULT 0, vyssi INT NOT NULL, nizsi INT NOT NULL,'; + locSQL:= locSQL + 'DavkaTPV NUMERIC(19, 6) NOT NULL DEFAULT 1, pozice NVARCHAR(100) COLLATE database_default NULL DEFAULT '''','; + locSQL:= locSQL + 'Operace NCHAR(4) COLLATE database_default NULL DEFAULT '''', FixniMnozstvi NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'mnozstvi NUMERIC(19, 6) NOT NULL DEFAULT 1, ProcZtrat NUMERIC(5, 2) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'mnozstviSeZtratou NUMERIC(19, 6) NOT NULL DEFAULT 0, Prirez NUMERIC(19, 6) NOT NULL DEFAULT 1,'; + locSQL:= locSQL + 'Poznamka NTEXT COLLATE database_default NULL, pom_pomer_A NUMERIC(19, 6) NULL,'; + locSQL:= locSQL + 'pom_pomer_B NUMERIC(19, 6) NULL, Dodavatel INT NULL)'; + Helios.ExecSQL(locSQL); + + locSQL:= 'DECLARE @RespekExistDoklady bit' + CRLF + 'SELECT @RespekExistDoklady=0' + CRLF; + locSQL:= locSQL + 'INSERT INTO #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz,'; + locSQL:= locSQL + 'Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,'; + locSQL:= locSQL + 'Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,'; + locSQL:= locSQL + 'mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka) SELECT PrKV.ID, PrKV.mnoz_zad*O.mnozstvi/P.kusy_zad'; + locSQL:= locSQL + '-CASE WHEN @RespekExistDoklady=1 THEN PrKV.VydanoRefMnoz + (SELECT ISNULL(SUM(PZ2.prepmnozstvi*(PZ2.mnozstvi'; + locSQL:= locSQL + '-PZ2.MnOdebrane) * PrKV2.RefMnoz / PrKV2.mnoz_zad), 0.0) FROM TabPohybyZbozi PZ2 INNER JOIN TabStavSkladu SS2 ON (SS2.ID=PZ2.IDZboSklad)'; + locSQL:= locSQL + ' INNER JOIN TabPrKVazby PrKV2 ON (PrKV2.IDPrikaz=PZ2.IDPrikaz AND PrKV2.Doklad=PZ2.DokladPrikazu AND '; + locSQL:= locSQL + 'PrKV2.nizsi=SS2.IDKmenZbozi AND PrKV2.IDOdchylkyDo IS NULL) WHERE PZ2.TypVyrobnihoDokladu=1 AND '; + locSQL:= locSQL + 'PZ2.IDPrikaz=PrKV.IDPrikaz AND PZ2.DokladPrikazu=PrKV.Doklad AND PZ2.druhPohybuZbo IN (2,4,9,10) AND '; + locSQL:= locSQL + 'PZ2.SkutecneDatReal IS NULL) ELSE 0.0 END, CASE WHEN @RespekExistDoklady=0 THEN O.mnozstvi END,'; + locSQL:= locSQL + 'CASE WHEN @RespekExistDoklady=0 THEN P.kusy_zad END,PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno,'; + locSQL:= locSQL + 'PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne, PrKV.Mnoz_skut_realizovane,'; + locSQL:= locSQL + 'PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV,'; + locSQL:= locSQL + 'PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi, PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou,'; + locSQL:= locSQL + 'PrKV.Prirez, PrKV.Poznamka FROM (SELECT IDPrikaz=O1.IDPrikaz, Mnozstvi=SUM(O1.mnozstvi)'; + locSQL:= locSQL + ' + CASE WHEN @RespekExistDoklady=1 THEN MAX(P1.kusy_odved+P1.kusy_ztrac+P1.kusy_zmet)'; + locSQL:= locSQL + ' + (SELECT ISNULL(SUM(PZ1.prepmnozstvi*PZ1.mnozstvi), 0.0) FROM TabPohybyZbozi PZ1 WHERE PZ1.TypVyrobnihoDokladu=0'; + locSQL:= locSQL + ' AND PZ1.IDPrikaz=O1.IDPrikaz AND PZ1.druhPohybuZbo=0 AND PZ1.SkutecneDatReal IS NULL) ELSE 0.0 END'; + locSQL:= locSQL + ' FROM #TabOdved O1 INNER JOIN ' + tblPrikaz + ' P1 ON (P1.ID=O1.IDPrikaz) GROUP BY O1.IDPrikaz) O'; + locSQL:= locSQL + ' INNER JOIN ' + tblPrikaz + ' P ON (P.ID=O.IDPrikaz AND P.StavPrikazu IN (30,50)) INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)'; + locSQL:= locSQL + ' INNER JOIN ' + tblPrVaz + ' PrKV ON (PrKV.IDPrikaz=O.IDPrikaz AND PrKV.predzpracovano=0 AND PrKV.prednastaveno=1'; + locSQL:= locSQL + ' AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND PrKV.IDOdchylkyDo IS NULL) INNER JOIN ' + tblKZ + ' KZ ON'; + locSQL:= locSQL + ' (KZ.ID=PrKV.nizsi AND KZ.sluzba=0) WHERE (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0)'; + Helios.ExecSQL(locSQL); + + locSQL:= 'UPDATE G SET MnozstviMax=CASE WHEN RP.NekontrolovatMnozMatPol=1 THEN NULL ELSE (CASE WHEN PrKV.splneno=1'; + locSQL:= locSQL + ' THEN 0.0 ELSE PrKV.mnoz_zad-PrKV.VydanoRefMnoz*PrKV.mnoz_zad/PrKV.RefMnoz END) END FROM #TabPrKVazbyGen G'; + locSQL:= locSQL + ' INNER JOIN TabPrKVazby PrKV ON (PrKV.ID=G.IDPrKV) INNER JOIN TabPrikaz P ON (P.ID=PrKV.IDPrikaz)'; + locSQL:= locSQL + ' INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)' + CRLF; + locSQL:= locSQL + 'UPDATE #TabPrKVazbyGen SET mnozstviPoz=CEILING(mnozstviPoz) FROM #TabPrKVazbyGen G INNER JOIN'; + locSQL:= locSQL + ' TabPrKVazby PrKV ON (PrKV.ID=G.IDPrKV) INNER JOIN TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi)'; + locSQL:= locSQL + ' INNER JOIN TabMJ MJ ON (MJ.kod=KZ.MJEvidence AND MJ.nedelitelna=1) WHERE G.PoKorekciDat=0' + CRLF; + locSQL:= locSQL + 'UPDATE #TabPrKVazbyGen SET mnozstviPoz=MnozstviMax WHERE MnozstviMax IS NOT NULL AND mnozstviPoz>MnozstviMax'; + locSQL:= locSQL + CRLF + 'DELETE #TabPrKVazbyGen WHERE MnozstviPoz<=0.0 AND PoKorekciDat=0' + CRLF; + locSQL:= locSQL + 'UPDATE G SET Dodavatel=CO.ID FROM #TabPrKVazbyGen G INNER JOIN TabPrKVazby PrKV ON (PrKV.ID=G.IDPrKV)'; + locSQL:= locSQL + ' INNER JOIN TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi) INNER JOIN TabCisOrg CO ON (CO.CisloOrg=KZ.Aktualni_Dodavatel)'; + locSQL:= locSQL + ' WHERE G.PoKorekciDat=0 AND G.Dodavatel IS NULL' + CRLF + 'UPDATE #TabPrKVazbyGen SET PoKorekciDat=1 WHERE PoKorekciDat=0'; + locSQL:= locSQL + CRLF + 'UPDATE #TabPrKVazbyGen SET Generuj=1'; + Helios.ExecSQL(locSQL); + + locSQL:= 'SELECT vazGen.IDPrKV, vazGen.Doklad, vazGen.nizsi, ss.id, vazGen.MnozstviPoz'; + locSQL:= locSQL + ' FROM #TabPrKVazbyGen vazGen'; + locSQL:= locSQL + ' LEFT OUTER JOIN TabKmenZbozi kz ON (vazGen.nizsi=kz.ID)'; + locSQL:= locSQL + ' LEFT OUTER JOIN TabStavSkladu ss ON (ss.IDSklad=N' + QuotedStr(sklProMatDP) + ' AND ss.IDKmenZbozi=vazGen.nizsi)'; + with Helios.OpenSQL(locSQL) do + if RecordCount>0 then + begin + podm:= 'Obdobi=' + idObd + ' AND DruhPohybuZbo=4 AND RadaDokladu=N' + QuotedStr(rDoklVydMat); + podm:= podm + ' AND IDSklad=N' + QuotedStr(sklProMatDP); + idDZshift:= NajdiPrvniVolny(Helios,'TabDokladyZbozi','PoradoveCislo','4',rDoklVydMat,idObd,podm); + locSQL:= 'DECLARE @i INT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @i OUT,@sklad=N' + QuotedStr(sklProMatDP) + ',@DatumPorizeni=@dt'; + locSQL:= locSQL + ',@DruhPohybu=4,@RadaDokladu=N' + QuotedStr(rDoklVydMat) + ',@CisloOrg=0,@Mena=N'; + locSQL:= locSQL + QuotedStr('CZK') + ',@Insert=1,@PC=' + IntToStr(idDZshift) + CRLF + 'SELECT @i'; + idDZ:= 0; + try + with Helios.OpenSQL(locSQL) do + if not VarIsNull(FieldValues(0)) then + idDZ:= StrToInt(VarToStr(FieldValues(0))); + except on E:Exception do + Helios.Error(#1'Nelze uloit hlaviku Vdejky materilu.'#1 + CRLF + E.Message + errPlg); + end; + if idDZ>0 then + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + IntToStr(idDZ)); + + First; + while not(EOF) do + begin + idPrKVaz:= StrToInt(VarToStr(FieldValues(0))); + Gdokl:= VarToStr(FieldValues(1)); + GidKZ:= StrToInt(VarToStr(FieldValues(2))); + GidSS:= VarToStr(FieldValues(3)); + if GidSS='' then + begin + Helios.ExecSQL('INSERT ' + tblSS + ' (IDSklad,IDKmenZbozi) VALUES (N' + QuotedStr(sklProMatDP) + ',' + IntToStr(GidKZ) + ')'); + with Helios.OpenSQL('SELECT SCOPE_IDENTITY()') do + GidSS:= VarToStr(FieldValues(0)); + end; + mnoz:= StrToFloat(VarToStr(FieldValues(4))); + mnReal:= 0; + with Helios.OpenSQL('SELECT Mnoz_odv FROM ' + tblPrVaz + ' WHERE id=' + IntToStr(idPrKVaz)) do + if RecordCount>0 then + mnReal:= StrToFloat(VarToStr(FieldValues(0))); + mnReal:= mnReal + mnoz; + + locSQL:= 'DECLARE @i INT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @i OUT,@IDDoklad=' + IntToStr(idDZ); + locSQL:= locSQL + ',@DruhPohybu=4,@CisloOrg=0,@IDZboSklad=' + GidSS + ',@Mena=N' + QuotedStr('CZK'); + locSQL:= locSQL + ',@JednotkaMeny=1,@Kurz=1'; + locSQL:= locSQL + ',@VstupniCena=0,@JCbezDaniKC=0.1,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0,@ZakazanoDPH=0'; + locSQL:= locSQL + ',@Selectem=0,@Mnozstvi=' + StringReplace(FloatToStr(mnoz),',','.',[rfReplaceAll]); + locSQL:= locSQL + ',@DatPorizeni=@dt,@PovolitDuplicitu=1' + CRLF + 'SELECT @i'; + idPZ:= 0; + with Helios.OpenSQL(locSQL) do + if not VarIsNull(FieldValues(0)) then + idPZ:= StrToInt(VarToStr(FieldValues(0))); + if idPZ>0 then + try + Helios.ExecSQL('UPDATE ' + tblPZ + ' SET DokladPrikazu=' + Gdokl + ',TypVyrobnihoDokladu=1,IDPrikaz=' + IntToStr(idVPr) + ' WHERE id=' + IntToStr(idPZ)); + Helios.ExecSQL('INSERT ' + tblMzdZmGenPZ + ' (IDMzdy,TypGen,IDPohybu) VALUES (' + IntToStr(IdPMaZ) + ',0,' + IntToStr(idPZ) + ')'); +{ + locSQL:= 'UPDATE ' + tblPrVaz + ' SET '; + locSQL:= locSQL + 'Mnoz_skut_realizovane=' + StringReplace(FloatToStr(mnReal),',','.',[rfReplaceAll]); + locSQL:= locSQL + ',Mnoz_odv=' + StringReplace(FloatToStr(mnReal),',','.',[rfReplaceAll]); + locSQL:= locSQL + ' WHERE id=' + IntToStr(idPrKVaz); + Helios.ExecSQL(locSQL); +} + except on E:Exception do + Helios.Error(#1'Nelze uloit poloku vdejky.'#1 + CRLF + E.Message + errPlg); + end + else + Helios.Error(#1'Nelze uloit poloku vdejky.'#1 + CRLF + locSQL + errPlg); + Next; + Helios.ExecSQL('UPDATE ' + tblMzdZm + ' SET GenerovanaMatVydejka=1 WHERE id=' + IntToStr(idPMaZ)); + end; + + try +// Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCenyVydejky @idDZ=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=1'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=null,IDPrikaz=' + IntToStr(idVPr) + ',CisloZam=' + cZam + ' WHERE id=' + IntToStr(idDZ)); + locSQL:= 'DECLARE @chyba BIT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_Realizuj_Vydej ' + IntToStr(idDZ) + ',@dt,' + IntToStr(Helios.UserId) + ',0,@chyba OUT'; + locSQL:= locSQL + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(locSQL) do + if not VarIsNull(FieldValues(0)) then + if LowerCase(VarToStr(FieldValues(0)))='false' then + realVyd:= true; + except on E:Exception do + Helios.Error(#1'Nelze realizovat vdejku.'#1 + CRLF + E.Message + errPlg); + end; + end; + end; + + idDZ:= 0; + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabOdved_IDMzdy') + ') IS NULL CREATE TABLE #TabOdved_IDMzdy (IDPrikaz int, IDMzdy int)'; + Helios.ExecSQL(locSQL); + locSQL:= 'INSERT #TabOdved_IDMzdy (IDMzdy,IDPrikaz) VALUES (' + IntToStr(idPMaZ) + ',' + IntToStr(idVPr) + ')'; + Helios.ExecSQL(locSQL); + + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenPrijem') + ') IS NULL CREATE TABLE #TabGenPrijem (ID int)'; + Helios.ExecSQL(locSQL); + + locSQL:= 'DECLARE @dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(dt) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_OdvedeniPrikazu @RadaDokladu=N' + QuotedStr(radaOdvedDP) + ',@IDObdobi=' + idObd; + locSQL:= locSQL + ',@KonecneOdvedeni=0,@DatPorizeni=@dt,@SekejZakazky=0,@SekejPrikazy=0'; + try + Helios.ExecSQL(locSQL); + except on E:Exception do + Helios.Error(#1'Pprava odveden na sklad nebyla spn.'#1 + CRLF + E.Message + errPlg); + end; + with Helios.OpenSQL('SELECT * FROM #TabGenPrijem') do + if RecordCount>0 then + idDZ:= StrToInt(VarToStr(FieldValues(0))); + if idDZ>0 then + begin + realPrij:= false; + Helios.ExecSQL('UPDATE ' + tblMzdZm + ' SET GenerovanoOdvadeni=1 WHERE id=' + IntToStr(idPMaZ)); + +{ +// prirad polozky prijmu k udaji PrikazMzdyAZmetky + with Helios.OpenSQL('SELECT id FROM ' + tblPZ + ' WHERE idDoklad=' + IntToStr(idDZ)) do + if RecordCount>0 then + begin + First; + while not(EOF) do + begin + idPZ:= StrToInt(VarToStr(FieldValues(0))); + Helios.ExecSQL('INSERT INTO ' + tblMzdZmGenPZ + ' (IDMzdy,TypGen,IDPohybu) VALUES (' + IntToStr(IdPMaZ) + ',2,' + IntToStr(idPZ) + ')'); + Next; + end; + end; +} + try +// Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCenyPrijemka @idDZ=' + IntToStr(idDZ)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ) + ',@AktualizaceSlev=0'); + except on E:Exception do + Helios.Error(#1'Nelze pepotat ceny na pjemce z Nadvroby.'#1 + CRLF + E.Message + errPlg); + end; + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET CisloZam=' + cZam + ',BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ)); + if realVyd then + begin + try + locSQL:= 'DECLARE @c BIT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtPicker.DateTime)) + ',104)' + CRLF; + locSQL:= locSQL + 'EXEC dbo.hp_Realizuj_Prijem ' + IntToStr(idDZ) + ',@dt,' + IntToStr(Helios.UserId) + ',@c OUT' + CRLF + 'SELECT @c'; + with Helios.OpenSQL(locSQL) do + if not VarIsNull(FieldValues(0)) then + if StrToBool(VarToStr(FieldValues(0)))=true then + realPrij:= true; + except on E:Exception do + Helios.Error(#1'Nelze realizovat pjemku z Nadvroby.'#1 + CRLF + E.Message + errPlg); + end; + end; + + if realPrij then // je realizovana Prijemka? Ano, uprav kusy na prikazu a evidenci kooperace + begin + try + locSQL:= 'EXEC dbo.hp_ZmenaStavuMezdAZmetku ' + IntToStr(idPMaZ) + ',1'; + try + Helios.ExecSQL(locSQL); + except on E:Exception do + Helios.Error(#1'Nelze zmnit stav Evidence kooperace.'#1 + CRLF + E.Message + errPlg); + end; + + locSQL:= 'UPDATE ' + tblPKObj + ' SET KusyPrevedene=KusyPrevedene+' + StringReplace(mnTxt,',','.',[rfReplaceAll]) + ' WHERE id=' + IntToStr(idPKObj); + locSQL:= locSQL + CRLF + 'UPDATE ' + tblPrikaz + ' SET kusy_zive=kusy_zive-' + StringReplace(mnTxt,',','.',[rfReplaceAll]) + ' WHERE id=' + IntToStr(idVPr); + locSQL:= locSQL + CRLF + 'UPDATE ' + tblPrikaz + ' SET kusy_odved=kusy_odved+' + StringReplace(mnTxt,',','.',[rfReplaceAll]) + ' WHERE id=' + IntToStr(idVPr); + Helios.ExecSQL(locSQL); + locSQL:= 'SELECT pko.id FROM ' + tblPKObj + ' pko INNER JOIN ' + tblKObj + ' ko ON (pko.IdObjednavky=ko.id) WHERE ko.id=' + IntToStr(idKO); + locSQL:= locSQL + ' AND pko.KusyVKoop>0'; + with Helios.OpenSQL(locSQL) do + if RecordCount=0 then + Helios.ExecSQL('UPDATE ' + tblKObj + ' SET PolSplneny=1 WHERE id=' + IntToStr(idKO)); + except on E:Exception do + Helios.Error(#1'Nelze pepotat kusy na pkaz nadvroby.'#1 + CRLF + E.Message + errPlg); + end; + end; + + end; + Helios.Refresh(true); + Close; + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabOdved') + ') IS NOT NULL DROP TABLE #TabOdved'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenPrijem') + ') IS NOT NULL DROP TABLE #TabGenPrijem'); + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabGenRezVyd') + ') IS NOT NULL DROP TABLE #TabGenRezVyd'); + end; + end; + + procedure TformPrijemkaNadvyroba.edtMnozKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); + begin + if Key=VK_RETURN then + btnOKClick(Sender); + end; + + procedure TformPrijemkaNadvyroba.FormActivate(Sender: TObject); + begin + edtMnoz.SetFocus; + end; + + procedure TformPrijemkaNadvyroba.FormClose(Sender: TObject; var Action: TCloseAction); + begin + Action:= caFree; + end; + + procedure TformPrijemkaNadvyroba.NastavFonty; + var idx: integer; + begin + idx:= 0; + while idx0 then + NactiPolozkuKoopObj; + end; + + +end. diff --git a/frmUnit9.dfm b/frmUnit9.dfm new file mode 100644 index 0000000..02b89ba --- /dev/null +++ b/frmUnit9.dfm @@ -0,0 +1,349 @@ +object frmVydejDPrace: TfrmVydejDPrace + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + Caption = ' V'#253'dejka/p'#345'evodka - Nadv'#253'roba (dom'#225'c'#237' pr'#225'ce)' + ClientHeight = 416 + ClientWidth = 588 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Tahoma' + Font.Style = [] + Position = poMainFormCenter + OnActivate = FormActivate + OnClose = FormClose + OnShow = FormShow + TextHeight = 16 + object Label1: TLabel + Left = 219 + Top = 14 + Width = 53 + Height = 16 + Caption = 'Os.'#269#237'slo :' + end + object lblZamest: TLabel + Left = 356 + Top = 14 + Width = 3 + Height = 13 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 18 + Top = 44 + Width = 32 + Height = 16 + Caption = 'Skup.' + end + object Label3: TLabel + Left = 68 + Top = 44 + Width = 51 + Height = 16 + Caption = 'Reg.'#269#237'slo' + end + object Label4: TLabel + Left = 356 + Top = 43 + Width = 49 + Height = 16 + Caption = 'Mno'#382'stv'#237 + end + object lblPopis: TLabel + Left = 67 + Top = 87 + Width = 3 + Height = 13 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [fsBold] + ParentFont = False + end + object lblSZ: TLabel + Left = 18 + Top = 64 + Width = 4 + Height = 16 + end + object Label5: TLabel + Left = 9 + Top = 14 + Width = 87 + Height = 16 + Caption = 'Datum v'#253'daje :' + end + object GroupBox1: TGroupBox + Left = 6 + Top = 185 + Width = 566 + Height = 187 + Caption = ' Vyd'#225'van'#253' materi'#225'l ' + TabOrder = 0 + object gMat2: TJvDBGrid + Left = 2 + Top = 18 + Width = 562 + Height = 167 + Align = alClient + DataSource = dsMat + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -13 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDrawDataCell = gMat2DrawDataCell + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 20 + TitleRowHeight = 20 + Columns = < + item + Expanded = False + FieldName = 'SkupZbo' + Visible = True + end + item + Expanded = False + FieldName = 'RegCis' + Width = 111 + Visible = True + end + item + Expanded = False + FieldName = 'Popis' + Width = 198 + Visible = True + end + item + Expanded = False + FieldName = 'Mnoz' + Visible = True + end + item + Expanded = False + FieldName = 'idKZ' + Visible = False + end + item + Expanded = False + FieldName = 'MnozSkl' + Visible = False + end> + end + end + object selCisZam: TRzButtonEdit + Left = 281 + Top = 11 + Width = 65 + Height = 24 + Text = '' + Alignment = taCenter + MaxLength = 6 + TabOrder = 1 + OnExit = selCisZamExit + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selCisZamButtonClick + end + object selRegCis: TRzButtonEdit + Left = 67 + Top = 60 + Width = 208 + Height = 24 + Text = '' + MaxLength = 20 + TabOrder = 2 + OnExit = selRegCisExit + AltBtnNumGlyphs = 1 + ButtonNumGlyphs = 1 + OnButtonClick = selRegCisButtonClick + end + object edtMnoz: TRzNumericEdit + Left = 356 + Top = 60 + Width = 65 + Height = 24 + MaxLength = 8 + TabOrder = 3 + OnKeyUp = edtMnozKeyUp + DisplayFormat = ',0;(,0)' + end + object btnAdd: TButton + Left = 444 + Top = 58 + Width = 35 + Height = 25 + Caption = 'V' + TabOrder = 4 + OnClick = btnAddClick + end + object OK: TButton + Left = 376 + Top = 382 + Width = 75 + Height = 25 + Caption = 'OK' + TabOrder = 5 + OnClick = OKClick + end + object btnCancel: TButton + Left = 486 + Top = 382 + Width = 75 + Height = 25 + Caption = 'Storno' + ModalResult = 2 + TabOrder = 6 + end + object dtDatum: TRzDateTimePicker + Left = 105 + Top = 9 + Width = 93 + Height = 24 + Date = 41402.000000000000000000 + Format = 'dd.MM.yyyy' + Time = 41402.000000000000000000 + MinDate = 41275.000000000000000000 + TabOrder = 7 + ShowToday = True + ShowTodayCircle = True + end + object gPolos2: TJvDBGrid + Left = 8 + Top = 103 + Width = 561 + Height = 64 + DataSource = dsPolos + TabOrder = 8 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -13 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = gPolos2DblClick + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + RowsHeight = 20 + TitleRowHeight = 20 + Columns = < + item + Expanded = False + FieldName = 'SkupZbo' + Visible = True + end + item + Expanded = False + FieldName = 'RegCis' + Visible = True + end + item + Expanded = False + FieldName = 'Popis' + Visible = True + end + item + Expanded = False + FieldName = 'Mnoz' + Visible = True + end + item + Expanded = False + FieldName = 'idKZ' + Visible = False + end> + end + object dsPolos: TDataSource + DataSet = vtPolos + Left = 80 + Top = 130 + end + object dsMat: TDataSource + DataSet = vtMat + Left = 154 + Top = 338 + end + object vtPolos: TFDMemTable + AfterPost = vtPolosAfterPost + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 132 + Top = 128 + object vtPolosSkupZbo: TStringField + FieldName = 'SkupZbo' + Required = True + Size = 3 + end + object vtPolosRegCis: TStringField + FieldName = 'RegCis' + Required = True + Size = 30 + end + object vtPolosPopis: TStringField + FieldName = 'Popis' + Size = 80 + end + object vtPolosMnoz: TFloatField + FieldName = 'Mnoz' + Required = True + end + object vtPolosidKZ: TIntegerField + FieldName = 'idKZ' + Required = True + end + end + object vtMat: TFDMemTable + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 198 + Top = 336 + object vtMatSkupZbo: TStringField + FieldName = 'SkupZbo' + Required = True + Size = 3 + end + object vtMatRegCis: TStringField + FieldName = 'RegCis' + Required = True + Size = 30 + end + object vtMatPopis: TStringField + FieldName = 'Popis' + Size = 80 + end + object vtMatMnoz: TFloatField + FieldName = 'Mnoz' + Required = True + end + object vtMatidKZ: TIntegerField + FieldName = 'idKZ' + Required = True + end + object vtMatMnozSkl: TFloatField + FieldName = 'MnozSkl' + end + end +end diff --git a/frmUnit9.pas b/frmUnit9.pas new file mode 100644 index 0000000..b9bcf6b --- /dev/null +++ b/frmUnit9.pas @@ -0,0 +1,835 @@ +unit frmUnit9; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, + RzEdit, Vcl.Mask, RzBtnEdt, ddPlugin_TLB, Vcl.ComCtrls, + RzDTP, FireDAC.Stan.Intf, FireDAC.Stan.Option, + FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, + FireDAC.DApt.Intf, FireDAC.Comp.DataSet, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid, Data.DB, + FireDAC.Comp.Client; + +const + tblEvidNadvyroby = '[dbo].[_TabEvidNadvyroby]'; + tblEvidNadvyrVPr = '[dbo].[_TabEvidNadvyrPrikaz]'; + druhPrevVydejDP = '450'; + druhPrevPrijDP = '250'; + sklVyroba = '200'; + sklFin = '210'; + sklDP = '20000105'; + errPlg = #13#10 + '(plgLOVATO.unit9)'; + +type + TfrmVydejDPrace = class(TForm) + GroupBox1: TGroupBox; + selCisZam: TRzButtonEdit; + selRegCis: TRzButtonEdit; + edtMnoz: TRzNumericEdit; + dsPolos: TDataSource; + dsMat: TDataSource; + vtPolos: TFDMemTable; + vtMat: TFDMemTable; + Label1: TLabel; + lblZamest: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + lblPopis: TLabel; + lblSZ: TLabel; + btnAdd: TButton; + OK: TButton; + btnCancel: TButton; + Label5: TLabel; + dtDatum: TRzDateTimePicker; + vtPolosSkupZbo: TStringField; + vtPolosRegCis: TStringField; + vtPolosPopis: TStringField; + vtPolosMnoz: TFloatField; + vtPolosidKZ: TIntegerField; + vtMatSkupZbo: TStringField; + vtMatRegCis: TStringField; + vtMatPopis: TStringField; + vtMatMnoz: TFloatField; + vtMatidKZ: TIntegerField; + vtMatMnozSkl: TFloatField; + gPolos2: TJvDBGrid; + gMat2: TJvDBGrid; + procedure FormShow (Sender: TObject); + procedure btnAddClick (Sender: TObject); + procedure selRegCisButtonClick (Sender: TObject); + procedure vtPolosAfterPost (DataSet: TDataSet); + procedure selCisZamButtonClick (Sender: TObject); + procedure OKClick (Sender: TObject); + procedure FormClose (Sender: TObject; var Action: TCloseAction); + procedure edtMnozKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); + procedure FormActivate (Sender: TObject); + procedure selCisZamExit (Sender: TObject); + procedure selRegCisExit (Sender: TObject); + procedure gPolos2DblClick (Sender: TObject); + procedure gMat2DrawDataCell (Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); + private + procedure VytvorTabulkyAGridy; + procedure NastavFonty; + function VratKZSZ(id: integer): ShortString; + function VratKZNazev1(id: integer): ShortString; + function VratKZRegCis(id: integer): ShortString; + public + Helios: IHelios; + end; + +var + frmVydejDPrace: TfrmVydejDPrace; + idKZ, cZam, idZam: integer; + mnoz: Extended; + vOle1,vOle2: OleVariant; + +implementation +uses Vcl.Clipbrd, helUtils; + +{$R *.dfm} + + procedure TfrmVydejDPrace.VytvorTabulkyAGridy; + begin + if not vtPolos.Active then + vtPolos.Open; + vtPolos.EmptyDataset; + + if not vtMat.Active then + vtMat.Open; + vtMat.EmptyDataset; + end; + + + + + function TfrmVydejDPrace.VratKZRegCis(id: Integer): ShortString; + begin + result:= ''; + if (id>0) then + with Helios.OpenSQL('SELECT RegCis FROM ' + tblKZ + ' WHERE id=' + IntToStR(id)) do + if (RecordCount=1) then + result:= VarToStr(FieldValues(0)); + end; + + + + + function TfrmVydejDPrace.VratKZSZ (id: Integer): ShortString; + begin + result:= ''; + if (id>0) then + with Helios.OpenSQL('SELECT SkupZbo FROM ' + tblKZ + ' WHERE id=' + IntToStR(id)) do + if (RecordCount=1) then + result:= VarToStr(FieldValues(0)); + end; + + + + + function TfrmVydejDPrace.VratKZNazev1 (id: Integer): ShortString; + begin + result:= ''; + if (id>0) then + with Helios.OpenSQL('SELECT Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStR(id)) do + if (RecordCount=1) then + result:= VarToStr(FieldValues(0)); + end; + + + + + procedure TfrmVydejDPrace.btnAddClick (Sender: TObject); + var lSQL: WideString; + mn: Extended; + begin + if (vtPolos.RecordCount>0) then + begin + Helios.Error(#1'Na doklad lze uložit jen 1 položku.'#1); + Exit; + end; + + if (edtMnoz.Value>0) then + begin + if (idKZ>0) then + begin + mn:= 0; + lSQL:= 'SELECT ISNULL(SUM(kusy_zive),0) FROM ' + tblPrikaz + ' WHERE StavPrikazu IN (30,40,50) AND IDTabKmen=' + IntToStr(idKZ); + with Helios.OpenSQL(lSQL) do + if not(VarIsNull(FieldValues(0))) then + mn:= StrToFloat(VarToStr(FieldValues(0))) + else + mn:= 0; + if (mn0) then + btnAddClick (Sender); + end; + + + + + procedure TfrmVydejDPrace.FormActivate (Sender: TObject); + begin + selCisZam.SetFocus; + end; + + + + + procedure TfrmVydejDPrace.FormClose (Sender: TObject; var Action: TCloseAction); + begin + if vtMat.Active then + vtMat.Close; + if vtPolos.Active then + vtPolos.Close; + Action:= caFree; + end; + + + + + procedure TfrmVydejDPrace.FormShow (Sender: TObject); + begin + Application.Handle := Helios.MainApplicationHandle; + Application.Icon.Handle := Helios.MainApplicationIconHandle; +// cxSetResourceString(@scxGridNoDataInfoText,''); + + VytvorTabulkyAGridy; + NastavFonty; + idKZ:= 0; + cZam:= 0; + idZam:= 0; + dtDatum.Date:= Now; + end; + + + + + procedure TfrmVydejDPrace.OKClick (Sender: TObject); + var locSQL, podm, mn, sklVyd: string; + idNadvyr, idDZshift1, idDZ1, idObd, idSS1, idPZ1, idKJ: integer; + idDZshift2, idDZ2, idSS2, idPZ2: integer; + idx, i: integer; + qry: IHeQuery; + realVyd, realPrij: boolean; + matOK: boolean; + oVar: OleVariant; + begin + dtDatum.Time:= Now; + if (cZam=0) or (selCisZam.Text='') then + Helios.Error(#1'Není vybrán zaměstnanec kterému bude materiál vydán.'#1) + else + begin + if (vtMat.RecordCount>0) then + begin + matOK:= true; + i:= vtMat.RecNo; // vMat.DataController.FocusedRecordIndex; + gMat2.BeginUpdate; + for idx:= 1 to vtMat.RecordCount do + begin + vtMat.RecNo:= idx; + locSQL:= 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE IDSklad=N' + QuotedStr(sklFin); + locSQL:= locSQL + ' AND IdKmenZbozi=' + vtMat.FieldByName('idKZ').AsString; + with Helios.OpenSQL(locSQL) do + begin + if (RecordCount=1) then + begin + mn:= VarToStr(FieldValues(0)); + mn:= StringReplace(mn,',','.',[rfReplaceAll]); + if (StrToFloat(mn)0) AND (vtMat.RecordCount>0) then + begin + +// zaloz prevodku/vydejku na 200 +{ + idDZshift1:= 0; // posunuti cisla brane z nastaveni TabDruhDokZboDef + locSQL:= 'SELECT dzd.PosledniPC FROM ' + tblDDZdef + ' dzd INNER JOIN ' + tblDDZ + ' dz'; + locSQL:= locSQL + ' ON (dz.ID=dzd.idDruhDZ) WHERE dzd.IdObdobi=' + IntToStr(idObd); + locSQL:= locSQL + ' AND dz.DruhPohybuZbo=4 AND dz.RadaDokladu=N' + QuotedStr(druhPrevVydejDP); + qry:= Helios.OpenSQL(locSQL); + if qry.RecordCount>0 then + idDZshift1:= StrToInt(VarToStr(qry.FieldValues(0))); + podm:= 'DruhPohybuZbo=4 AND RadaDokladu=N' + QuotedStr(druhPrevVydejDP) + ' AND IDSklad=N' + QuotedStr(sklVyroba); + podm:= podm + ' AND Obdobi=' + IntToStr(idObd); + locSQL:= 'EXEC dbo.hp_NajdiPrvniVolny N' + QuotedStr(tblDZ) + ',N' + QuotedStr('PoradoveCislo'); + locSQL:= locSQL + ',' + IntToStr(idDZshift1) + ',99999999,N' + QuotedStr(podm) + ',0,1'; + idDZ1:= 0; + qry:= Helios.OpenSQL(locSQL); + if qry.RecordCount>0 then + idDZ1:= StrToInt(VarToStr(qry.FieldValues(0))); + if (idDZ1=0) or (idDZ1=idDZshift1) then + idDZ1:= idDZshift1 + 1; +} + sklVyd:= Trim('210 '); +{ + locSQL:= 'TabStrom.Cislo LIKE ''2%'' AND TabStrom.ID NOT IN (SELECT IDStrom FROM dbo.TabStromDef WHERE (Blokovano=1 OR Zakazano=1) AND IdObdobi=' + IntToStr(Helios.Obdobi) + ')'; + if Helios.Prenos(4, 'Cislo', oVar, locSQL, 'Materiál vydat ze skladu', true) then + sklVyd:= VarToStr(oVar); +} + locSQL:= 'DECLARE @dt DATETIME,@IDcko INT' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @IDcko OUT,@RadaDokladu=N' + QuotedStr(druhPrevVydejDP); + locSQL:= locSQL + ',@DruhPohybu=4,@CisloOrg=2,@Insert=1,@Sklad=N' + QuotedStr(sklVyd) + ',@PC=null'; + locSQL:= locSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @IDcko'; + idDZ1:= 0; + with Helios.OpenSQL(locSQL) do + if RecordCount>0 then + idDZ1:= StrToInt(VarToStr(FieldValues(0))); + if (idDZ1>0) then + begin + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=' + IntToStr(Helios.UserId) + ' WHERE id=' + IntToStr(idDZ1)); +// polozky prevodky/vydejky + vtMat.First; + while not(vtMat.Eof) do + begin + idSS1:= 0; + with Helios.OpenSQL('SELECT id FROM ' + tblSS + ' WHERE IdSklad=N' + QuotedStr(sklVyd) + ' AND IdKmenZbozi=' + vtMat.FieldByName('idKZ').AsString) do + if RecordCount>0 then + idSS1:= StrToInt(VarToStr(FieldValues(0))); + if (idSS1=0) then + begin + locSQL:= 'DELCARE @idSS INT' + CRLF + 'INSERT ' + tblSS + ' (IDSklad,IDKmenZbozi) VALUES (N' + QuotedStr(sklVyd); + locSQL:= locSQL + ',' + vtMat.FieldByName('idKZ').AsString + ')' + CRLF + 'SELECT SCOPE_IDENTITY()'; + with Helios.OpenSQL(locSQL) do + idSS1:= StrToInt(VarToStr(FieldValues(0))); + end; + locSQL:= 'DECLARE @IDcko INT' + CRLF + 'EXEC dbo.hp_InsertPolozkyOZ @IDcko OUT,'; + locSQL:= locSQL + '@IDDoklad=' + IntToStr(idDZ1) + ',@DruhPohybu=4,@CisloOrg=2,@IDZboSklad=' + IntToStr(idSS1); + locSQL:= locSQL + ',@PovolitDuplicitu=1,@Mnozstvi=' + StringReplace(vtMat.FieldByName('Mnoz').AsString,'','.',[rfReplaceAll]); + locSQL:= locSQL + ',@Selectem=0,@Mena=N' + QuotedStr('CZK') + ',@Kurz=1,@JednotkaMeny=1,@KurzEuro=1,@SazbaSD=0,@SazbaDPH=0'; + locSQL:= locSQL + ',@ZakazanoDPH=0,@VstupniCena=0' + CRLF + 'SELECT @IDcko'; + idPZ1:= 0; + with Helios.OpenSQL(locSQL) do + idPZ1:= StrToInt(VarToStr(FieldValues(0))); + vtMat.Next; + end; + + if (idDZ1>0) then + begin + Helios.ExecSQL('UPDATE ' + tblEvidNadvyroby + ' SET IdVydejkaMat=' + IntToStR(idDZ1) + ' WHERE id=' + IntToStr(idNadvyr)); + + try + Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCenyVydejky ' + IntToStr(idDZ1)); + + locSQL:= 'UPDATE ' + tblDZ + ' SET TypPrevodky=N' + QuotedStr(druhPrevPrijDP) + ',IdSkladPrevodu=N' + QuotedStr(sklDP); + locSQL:= locSQL + ',CisloZam=' + IntToStr(cZam) + ',DruhPohybuPrevod=0,BlokovaniEditoru=null WHERE id=' + IntToStr(idDZ1); + Helios.ExecSQL(locSQL); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ1) + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZ1)); + + except on E:Exception do + begin + Helios.Error(#1'Chyba při nápočtu cen dokladu převodky/výdejky.'#1 + CRLF + E.Message + CRLF + locSQL + errPlg); + idKJ:= helUtils.ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Chyba při nápočtu cen dokladu převodky/výdejky Nadvýroby'); + if idKJ>0 then + Helios.ExecSQL('INSERT ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit9') + ',N' + QuotedStr(E.Message + CRLF + locSQL) + ')'); + idKJ:= 0; + Exit; + end; + end; + + podm:= 'DruhPohybuZbo=0 AND RadaDokladu=N' + QuotedStr(druhPrevPrijDP) + ' AND IDSklad=N' + QuotedStr(sklDP); + podm:= podm + ' AND Obdobi=' + IntToStr(idObd); + idDZ2:= helUtils.NajdiPrvniVolny(Helios,tblDZ,'PoradoveCislo','0',druhPrevPrijDP,IntToStr(idObd),podm); + +{ + idDZshift2:= 0; // posunuti cisla brane z nastaveni TabDruhDokZboDef + locSQL:= 'SELECT dzd.PosledniPC FROM ' + tblDDZdef + ' dzd INNER JOIN ' + tblDDZ + ' dz'; + locSQL:= locSQL + ' ON (dz.ID=dzd.idDruhDZ) WHERE dzd.IdObdobi=' + IntToStr(idObd); + locSQL:= locSQL + ' AND dz.DruhPohybuZbo=0 AND dz.RadaDokladu=N' + QuotedStr(druhPrevPrijDP); + qry:= Helios.OpenSQL(locSQL); + if qry.RecordCount>0 then + idDZshift2:= StrToInt(VarToStr(qry.FieldValues(0))); + podm:= 'DruhPohybuZbo=0 AND RadaDokladu=N' + QuotedStr(druhPrevPrijDP) + ' AND IDSklad=N' + QuotedStr(sklDP); + podm:= podm + ' AND Obdobi=' + IntToStr(idObd); + locSQL:= 'EXEC dbo.hp_NajdiPrvniVolny N' + QuotedStr(tblDZ) + ',N' + QuotedStr('PoradoveCislo'); + locSQL:= locSQL + ',' + IntToStr(idDZshift2) + ',99999999,N' + QuotedStr(podm) + ',0,1'; + idDZ2:= 0; + qry:= Helios.OpenSQL(locSQL); + if qry.RecordCount>0 then + idDZ2:= StrToInt(VarToStr(qry.FieldValues(0))); + if (idDZ2=0) or (idDZ2=idDZshift2) then + idDZ2:= idDZshift2 + 1; +} +{ beg: vypnuti tvorby nasledne prijemky + locSQL:= 'DECLARE @dt DATETIME,@IDcko INT' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)'; + locSQL:= locSQL + CRLF + 'EXEC dbo.hp_InsertHlavickyOZ @IDcko OUT,@RadaDokladu=N' + QuotedStr(druhPrevPrijDP); + locSQL:= locSQL + ',@DruhPohybu=0,@CisloOrg=0,@Insert=1,@Sklad=N' + QuotedStr(sklDP) + ',@PC=' + IntToStr(idDZ2); + locSQL:= locSQL + ',@DatumPorizeni=@dt' + CRLF + 'SELECT @IDcko'; + idDZ2:= 0; + with Helios.OpenSQL(locSQL) do + if (RecordCount>0) then + idDZ2:= StrToInt(VarToStr(FieldValues(0))); + end: vypnuti tvorby nasledne prijemky } + + if (1=0) then { vypnuti tvorby nasledne prijemky (idDZ2>0) } + begin + + try + locSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ') IS NULL CREATE TABLE #TabTempUziv(Tabulka'; + locSQL:= locSQL + ' NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)' + CRLF; + + locSQL:= locSQL + 'EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=' + IntToStr(idDZ2) + ',@IDDokladSrc=' + IntToStr(idDZ1); + locSQL:= locSQL + ',@CisloOrgCil=0,@MUcil=null,@KurzCil=1,@JednotkaMenyCil=1,@MenaCil=N' + QuotedStr('CZK'); + locSQL:= locSQL + ',@Returnem=1,@KurzEuroCil=0,@CisloZakCil=null,@NOkruhCil=null,@StredNakladCil=null,@StredVynosCil=null'; + locSQL:= locSQL + ',@FormaDopravyCil=null,@VozidloCil=null,@ObjednavkaCil=null,@PopisDodavkyCil=N' + QuotedStr('Převod materiálu'); + locSQL:= locSQL + ',@NavaznyDobropisCil=null,@ZamestnanecCil=null,@DodFakCil=null,@Nasobek=1,@SlevaCil=0'; + Helios.ExecSQL(locSQL); + except on E:Exception do + begin + try + locSQL:= 'FROM ' + tblPZ + ' WHERE IdDoklad=' + IntToStr(idDZ2); + Helios.ExecSQL('DELETE FROM dbo.TabPohybyZboziSD WHERE id IN (SELECT id ' + locSQL + ')'); + Helios.ExecSQL('DELETE ' + locSQL); + Helios.ExecSQL('DELETE FROM dbo.TabDokZboDodatek WHERE IDHlavicky=' + IntToStr(idDZ2)); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET NavaznyDoklad=null WHERE id='+ IntToStr(idDZ1)); + Helios.ExecSQL('DELETE FROM ' + tblDZ + ' WHERE Id=' + IntToStr(idDZ2)); + Helios.Error(#1'Chyba při generování návazného dokladu.'#1 + CRLF + E.Message + errPlg); + idKJ:= ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze generovat následný doklad Výdejky Nadvýroby'); + if (idKJ>0) then + Helios.ExecSQL('INSERT ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit9') + ',N' + QuotedStr(E.Message + CRLF + locSQL) + ')'); + idKJ:= 0; + except on E:Exception do + begin + Helios.Error(#1 + E.Message + #1); + Exit; + end; + end; + Exit; + end; + end; + + Helios.ExecSQL('EXEC dbo.ep_DoplnKooperacniCenyVydejky ' + IntToStr(idDZ2)); + Helios.ExecSQL('EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=' + IntToStr(idDZ2) + ',@AktualizaceSlev=0'); + Helios.ExecSQL('UPDATE ' + tblDZ + ' SET BlokovaniEditoru=NULL WHERE id=' + IntToStr(idDZ2)); + + realVyd:= false; +// if idDZ2>0 then +// begin + try + locSQL:= 'DECLARE @chyba BIT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)' + CRLF; + locSQL:= locSQL + 'EXEC dbo.hp_Realizuj_Vydej @ID=' + IntToStr(idDZ1) + ',@DatumRealizace=@dt,@Uzivatel=' + IntToStr(Helios.UserId) + ',@Hlidat=0,@BylaChyba=@chyba OUT'; + locSQL:= locSQL + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(locSQL) do + if not VarIsNull(FieldValues(0)) then + if (LowerCase(VarToStr(FieldValues(0)))='false') then + realVyd:= true; + except on E:Exception do + begin +// Clipboard.AsText:= locSQL; + try + Helios.Error(#1'Nelze realizovat Převodku/výdejku'#1 + CRLF + E.Message + errPlg); +{ + idKJ:= helUtils.ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze realizovat Převodku/výdejku Nadvýroby.'); + if idKJ>0 then + Helios.ExecSQL('INSERT INTO ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit9') + ',N' + QuotedStr(E.Message + CRLF + locSQL) + ')'); +} + idKJ:= 0; + except on E:Exception do + begin + Helios.Error(#1 + E.Message + #1); + Exit; + end; + end; + Exit; + end; + end; +// end; + idDZ2:= 0; + realPrij:= false; + if realVyd then + begin + try + locSQL:= 'DECLARE @chyba BIT,@dt DATETIME' + CRLF + 'SET @dt=CONVERT(datetime,N' + QuotedStr(DateTimeToStr(dtDatum.DateTime)) + ',104)' + CRLF; + locSQL:= locSQL + 'EXEC dbo.hp_Realizuj_Prijem @ID=' + IntToStr(idDZ2) + ',@DatumRealizace=@dt,@Uzivatel=' + IntToStr(Helios.UserId) + ',@BylaChyba=@chyba OUT'; + locSQL:= locSQL + CRLF + 'SELECT @chyba'; + with Helios.OpenSQL(locSQL) do + if not VarIsNull(FieldValues(0)) then + if (LowerCase(VarToStr(FieldValues(0)))='false') then + realPrij:= true; + except on E:Exception do + begin +// ClipBoard.AsText:= locSQL; + Helios.Error(#1'Chyba při realizaci Převodky/příjemky pro Nadvýrobu.'#1 + CRLF + E.Message + CRLF + errPlg); + idKJ:= helUtils.ZapisDoKJ(Helios,'HEO','','POR','','Plugin plgLOVATO','Nelze realizovat příjemku Převodku/příjemku Nadvýroby'); + if (idKJ>0) then + Helios.ExecSQL('INSERT ' + tblKJPozn + ' (IDKontJednani,Nazev,Poznamka) VALUES (' + IntToStr(idKJ) + ',N' + + QuotedStr('Podrobnosti.unit9') + ',N' + QuotedStr(E.Message + CRLF + locSQL) + ')'); + idKJ:= 0; + end; + end; + end; + end; + end; + end; + Helios.Refresh(true); + Close; + end; + end; + end; + + + + + procedure TfrmVydejDPrace.NastavFonty; + var idx: integer; + HelPars: THeliosParams; + begin + NactiParametryHeliosu(Helios,HelPars); + idx:= 0; +{ + while idx'' then + begin + with Helios.OpenSQL('SELECT id,PrijmeniJmeno,Cislo FROM ' + tblCZam + ' WHERE Cislo=' + selCisZam.Text) do + if RecordCount>0 then + begin + begin + idZam:= StrToInt(VarToStr(FieldValues(0))); + lblZamest.Caption:= VarToStr(FieldValues(1)); + cZam:= StrToInt(VarToStr(FieldValues(2))); + end; + selCisZam.Text:= StringOfChar('0',6-Length(IntToStr(cZam))) + IntToStr(cZam); + end; + end; + end; + + + + + procedure TfrmVydejDPrace.selRegCisButtonClick (Sender: TObject); + var podm: WideString; + begin +// podm:= 'TabKmenZbozi.SkupZbo IN (SELECT sz.id FROM TabSkupinyZbozi sz INNER JOIN TabSkupinyZbozi_EXT sze ON (sz.id=sze.id)'; +// podm:= podm + ' WHERE sze._JeVyroba=1) AND'; + +{ podm:= podm + ' TabKmenZbozi.id IN ('; + podm:= podm + 'SELECT kz.id FROM TabPolKoopObj pko INNER JOIN TabPrikaz p ON (pko.IDPrikaz=p.id)'; + podm:= podm + ' INNER JOIN TabKmenZbozi kz ON (p.IDTabKmen=kz.id) WHERE pko.id IN (SELECT po.id FROM TabPolKoopObj po'; + podm:= podm + ' WHERE po.IDObjednavky IN (SELECT o.id FROM TabKoopObj o WHERE o.IDOrganizace=(SELECT id FrOM TabCisOrg WHERE CisloOrg=2)'; + podm:= podm + ' AND o.Splneno=0 AND o.realizovano=1)) GROUP BY kz.id)'; +} + podm:= ''; + if Helios.Prenos(100089,'IdTabKmen',vOle1,podm,'Vyberte dílec/polosestavu',true) then + begin + idKZ:= StrToInt(VarToStr(vOle1)); + lblSZ.Caption:= VratKZSZ(idKZ); + selRegCis.Text:= VratKZRegCis(idKZ); + lblPopis.Caption:= VratKZNazev1(idKZ); + edtMnoz.SetFocus; + end + else + Helios.Error(#1'Nebyla vybrána žádná karta.'#1); + end; + + + + + procedure TfrmVydejDPrace.selRegCisExit (Sender: TObject); + var podm: ShortString; + begin + selRegCis.Text:= Trim(selRegCis.Text); + if (selRegCis.Text='') then + Exit; + with Helios.OpenSQL('SELECT id FROM ' + tblKZ + ' WHERE Dilec=1 AND RegCis LIKE N''%' + selRegCis.Text + '%''') do + begin + if (RecordCount=1) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + if (RecordCount>1) then + begin + podm:= 'TabKmenZbozi.RegCis LIKE N''%' + selRegCis.Text + '%'' AND TabKmenZbozi.Dilec=1'; + if Helios.Prenos(bidKZ,'id',vOle1,podm,'Zboží a služby',True) then + idKZ:= StrToInt(VarToStr(FieldValues(0))); + end; + lblSZ.Caption:= VratKZSZ(idKZ); + lblPopis.Caption:= VratKZNazev1(idKZ); + selRegCis.Text:= VratKZRegCis(idKZ); + end; + end; + + + + + procedure TfrmVydejDPrace.gMat2DrawDataCell (Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); + var m,s: Extended; + begin + if not(TryStrToFloat(gMat2.DataSource.Dataset.FieldByName('Mnoz').AsString, m)) then + m:= 0; + if not(TryStrToFloat(gMat2.DataSource.DataSet.FieldByName('MnozSkl').AsString, s)) then + s:= 0; + if (s<=m) then + gMat2.Canvas.Brush.Color:= $005D5DFC + else + gMat2.Canvas.Brush.Color:= $0; + end; + + + + + procedure TfrmVydejDPrace.gPolos2DblClick (Sender: TObject); + var mn,jc: Extended; + begin + mn:= vtPolos.FieldByName('Mnoz').AsExtended; + jc:= 0; + if FormMnozstviCena('Změna množství',mn,jc,true,false) then + if (mn<>0) then + begin + vtPolos.Edit; + vtPolos.FieldByName('Mnoz').AsExtended:= mn; + vtPolos.Post; + end; + end; + + + + + procedure TfrmVydejDPrace.vtPolosAfterPost (DataSet: TDataSet); + var idMat: integer; + mnoz,mnozNiz: Extended; + idKZNiz: integer; + sz,regcis,pop: ShortString; + iRowPolos: integer; + lp: integer; + locSQL: WideString; + rozp: IHeQuery; + begin + iRowPolos:= vtPolos.RecNo; + + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#MatPozadavky') + ') IS NOT NULL DROP TABLE #MatPozadavky' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #MatPozadavky(ID INT IDENTITY NOT NULL, IdKZMat INT NOT NULL,'; + locSQL:= locSQL + 'MnozNizsi NUMERIC(19,6) NOT NULL DEFAULT 0, MnozVyssi NUMERIC(19,6) NOT NULL DEFAULT 0)'; + Helios.ExecSQL(locSQL); +{ + locSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen' + CRLF; + locSQL:= locSQL + 'CREATE TABLE #TabPrKVazbyGen(ID INT IDENTITY NOT NULL, Generuj BIT NOT NULL DEFAULT 1,'; + locSQL:= locSQL + 'PoKorekciDat BIT NOT NULL DEFAULT 0, IDPrKV INT NOT NULL, Doklad INT NOT NULL, IDPrikaz INT NOT NULL,'; + locSQL:= locSQL + 'Prednastaveno BIT NOT NULL DEFAULT 1, Sklad NVARCHAR(30) COLLATE database_default NULL,'; + locSQL:= locSQL + 'VyrStredisko NVARCHAR(30) COLLATE database_default NULL, IDPracoviste INT NULL,'; + locSQL:= locSQL + 'mnoz_zad NUMERIC(19, 6) NOT NULL DEFAULT 0, Mnoz_nepotrebne NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'Mnoz_skut_realizovane NUMERIC(19, 6) NOT NULL DEFAULT 0, Cena_real NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'Mnoz_odv NUMERIC(19, 6) NOT NULL DEFAULT 0, Cena_odv NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'MnozstviMax NUMERIC(19, 6) NULL, MnozstviPoz NUMERIC(19, 6) NOT NULL, PomMnozPoz NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'IDPohZbo INT NULL, priorita INT NOT NULL DEFAULT 0, vyssi INT NOT NULL, nizsi INT NOT NULL,'; + locSQL:= locSQL + 'DavkaTPV NUMERIC(19, 6) NOT NULL DEFAULT 1, pozice NVARCHAR(100) COLLATE database_default NULL DEFAULT '''','; + locSQL:= locSQL + 'Operace NCHAR(4) COLLATE database_default NULL DEFAULT '''', FixniMnozstvi NUMERIC(19, 6) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'mnozstvi NUMERIC(19, 6) NOT NULL DEFAULT 1, ProcZtrat NUMERIC(5, 2) NOT NULL DEFAULT 0,'; + locSQL:= locSQL + 'mnozstviSeZtratou NUMERIC(19, 6) NOT NULL DEFAULT 0, Prirez NUMERIC(19, 6) NOT NULL DEFAULT 1,'; + locSQL:= locSQL + 'Poznamka NTEXT COLLATE database_default NULL, pom_pomer_A NUMERIC(19, 6) NULL,'; + locSQL:= locSQL + 'pom_pomer_B NUMERIC(19, 6) NULL, Dodavatel INT NULL)'; + Helios.ExecSQL(locSQL); +} + + vtPolos.First; + while not(vtPolos.Eof) do + begin + idKZ:= vtPolos.FieldByName('idKZ').asInteger; + mnoz:= vtPolos.FieldByName('Mnoz').AsFloat; + rozp:= Helios.OpenSQL('SELECT nizsi,Mnozstvi FROM ' + tblKVaz + ' WHERE vyssi=' + IntToStr(idKZ)); + if rozp.RecordCount>0 then + begin + rozp.First; + while not(rozp.EOF) do + begin + locSQL:= 'INSERT #MatPozadavky VALUES (' + VarToStr(rozp.FieldValues(0)) + ','; + mnozNiz:= StrToFloat(VarToStr(rozp.FieldValues(1))); + locSQL:= locSQL + StringReplace(FloatToStr(mnozNiz),',','.',[rfReplaceAll]) + ','; + locSQL:= locSQL + StringReplace(FloatToStr(mnoz),',','.',[rfReplaceAll]) + ')'; + Helios.ExecSQL(locSQL); + rozp.Next; + end; + end; + vtPolos.Next; + end; + rozp:= Helios.OpenSQL('SELECT * FROM #MatPozadavky'); + if rozp.RecordCount>0 then + begin + idMat:= rozp.RecordCount; + if (vtPolos.RecordCount>0) then + vtMat.EmptyDataset; + rozp.First; + vtMat.Open; + while not(rozp.EOF) do + begin + idKZNiz:= StrToInt(VarToStr(rozp.FieldValues(1))); + mnozNiz:= StrToFloat(VarToStr(rozp.FieldValues(2))) * StrToFloat(VarToStr(rozp.FieldValues(3))); + if vtMat.Locate('idKZ',VarArrayOf([idKZNiz]),[loCaseInsensitive]) then + begin + vtMat.Edit; + mnozNiz:= mnozNiz + vtMat.FieldByName('Mnoz').AsExtended; + end + else + begin + vtMat.Insert; + vtMat.FieldByName('idKZ').AsInteger:= idKZNiz; + with Helios.OpenSQL('SELECT SkupZbo,RegCis,Nazev1 FROM ' + tblKZ + ' WHERE id=' + IntToStr(idKZNiz)) do + begin + vtMat.FieldByName('SkupZbo').AsString:= VarToStr(FieldValues(0)); + vtMat.FieldByName('RegCis').AsString:= VarToStr(FieldValues(1)); + vtMat.FieldByName('Popis').AsString:= VarToStr(FieldValues(2)); + end; + end; + vtMat.FieldByName('Mnoz').AsExtended:= mnozNiz; + with Helios.OpenSQL('SELECT Mnozstvi FROM ' + tblSS + ' WHERE IdKmenZbozi=' + IntToStr(idKZNiz) + ' AND IDSklad=N' + QuotedStr(sklFin)) do + if (RecordCount=1) then + vtMat.FieldByName('MnozSkl').AsExtended:= StrToFloat(VarToStr(FieldValues(0))) + else + vtMat.FieldByName('MnozSkl').AsExtended:= 0; + vtMat.Post; + rozp.Next; + end; + end; + Helios.ExecSQL('IF OBJECT_ID(' + QuotedStr('tempdb..#TabPrKVazbyGen') + ') IS NOT NULL DROP TABLE #TabPrKVazbyGen'); + + vtPolos.RecNo:= iRowPolos; + end; + +end. diff --git a/lib/plgHlaskyEx.INC b/lib/plgHlaskyEx.INC new file mode 100644 index 0000000..a29bda8 --- /dev/null +++ b/lib/plgHlaskyEx.INC @@ -0,0 +1,10 @@ +// PRVNI HLASKA MUSI ZACINAT min. W = 5050000 !!! + +// ,(SelfIdent: plx...; +// H : ''; +// W : 5050000;{$IFDEF EdHlasky}I:'';E:'';D:'';{$ENDIF}) + +//last + + + diff --git a/lib/plgHlaskyJadro.INC b/lib/plgHlaskyJadro.INC new file mode 100644 index 0000000..0a4edee --- /dev/null +++ b/lib/plgHlaskyJadro.INC @@ -0,0 +1,847 @@ +// prvni hlaska MUSI zustat prazdna !! +(SelfIdent: plxNic; +H : ''; +W : 5000000) + +,(SelfIdent: plxOK; +H : 'OK'; +SK: 'OK'; +W : 5000001; I:'text na klávese OK';E:'OK';D:'OK') + +,(SelfIdent: plxStorno; +H : 'Storno'; +SK: 'Storno'; +W : 5000002; I:'text na klávese Storno';E:'Cancel';D:'') + +,(SelfIdent: plxJadroUlozitZmeny; +H : 'Uložit změny ?'; +SK: 'Uložiť zmeny ?'; +W : 5000003) + +,(SelfIdent: plxJadroPrazdnaNeboChybneZadanaPolozka; +H : 'Prázdná nebo chybně zadaná položka'; +SK: 'Prázdná alebo chybne zadaná položka'; +W : 5000004) + +,(SelfIdent: plxJadroOprPrejSmazAkt; +H : 'Opravdu si přejete smazat aktuální záznam ?'; +SK: 'Naozaj si prajete zmazať aktuálny záznam ?'; +W : 5000005; I:'Dotaz na DELETE v přehledu';E:'';D:'';) + +,(SelfIdent: plxJadroOprPrejSmazVse; +H : 'Opravdu si přejete smazat'#1' všechny '#1'označené záznamy'; +SK: 'Naozaj si prajete zmazať'#1' všetky '#1'označené záznamy'; +W : 5000006; I:'Dotaz na DELETE v přehledu';E:'';D:'';) + +,(SelfIdent: plxJadroNeni; +H : '(není)'; +SK: '(nie je)'; +W : 5000007; I:'text značící nepřítomnost hodnoty';E:'(none)';D:'') + +,(SelfIdent: plxJadroPluginVyzadujeMinVerziX; +H : 'Plugin vyžaduje minimální verzi Heliosu '#1'%s'#1' !'; +SK: 'Plugin vyžaduje minimálnu verziu Heliosu '#1'%s'#1' !'; +W : 5000008) + +,(SelfIdent: plxJadroAkceNemuzeBytSpustena; +H : 'Akce nemůže být spuštěna nad aktuálním přehledem (chyba č. %d)!'; +SK: 'Akcia nemôže byť spustená nad aktuálnym prehľadom (chyba č. %d)!'; +W : 5000009) + +,(SelfIdent: plxJadroMenuEditace; +H : 'Editace'; +SK: 'Editácia'; +W : 5000010) + +,(SelfIdent: plxJadroAkceNovy; +H : 'Nový'; +SK: 'Nový'; +W : 5000011; GUID: '{B24F7317-2850-4E23-84C2-23759E2104BD}') + +,(SelfIdent: plxJadroAkceOprava; +H : 'Oprava'; +SK: 'Oprava'; +W : 5000012; GUID: '{E72DC09D-A06D-4712-B44E-40F8D4023DD9}') + +,(SelfIdent: plxJadroAkceZrusit; +H : 'Zrušit'; +SK: 'Zrušiť'; +W : 5000013; GUID: '{69B3748A-4A0D-4FAF-95DA-C5A86EAAF64C}') + +,(SelfIdent: plxJadroPouzeKeCteni; +H : 'pouze ke čtení'; +SK: 'len na čítanie'; +W : 5000014) + +,(SelfIdent: plxJadroZavrit; +H : 'Zavřít'; +SK: 'Zavrieť'; +W : 5000015) + +,(SelfIdent: plxJadroIndexSeZmenil; +H : 'Index se v databázi změnil'; +SK: 'Index sa v databázi zmenil'; +W : 5000016) + +,(SelfIdent: plxJadroIndexV_DB_Chybi; +H : 'Index v databázi chybí'; +SK: 'Index v databázi chýba'; +W : 5000017) + +,(SelfIdent: plxJadroKontrolaPluginuX; +H : 'Kontrola pluginu %s (%s)'; +SK: 'Kontrola pluginu %s (%s)'; +W : 5000018) + +,(SelfIdent: plxJadroSpustit; +H : 'Spustit'; +SK: 'Spustiť'; +W : 5000019) + +,(SelfIdent: plxJadroZmenoveSkripty; +H : 'Změnové skripty'; +SK: 'Zmenové skripty'; +W : 5000020) + +,(SelfIdent: plxJadroKontrolaTabulek; +H : 'Kontrola tabulek'; +SK: 'Kontrola tabuliek'; +W : 5000021) + +,(SelfIdent: plxJadroKontrolaJednotlivychAtributu; +H : 'Kontrola jednotlivých atributů'; +SK: 'Kontrola jednotlivých atribútov'; +W : 5000022) + +,(SelfIdent: plxJadroKontrolaUnikatnichKlicu; +H : 'Kontrola unikátních klíčů'; +SK: 'Kontrola unikátnych kľúčov'; +W : 5000023) + +,(SelfIdent: plxJadroKontrolaIntegritnichOmezeni; +H : 'Kontrola integritních omezení'; +SK: 'Kontrola integritných omedzení'; +W : 5000024) + +,(SelfIdent: plxJadroKontrolaCizichKlicu; +H : 'Kontrola cizích klíčů'; +SK: 'Kontrola cudzích kľúčov'; +W : 5000025) + +,(SelfIdent: plxJadroKontrolaUlozenychProcedur; +H : 'Kontrola uložených procedur'; +SK: 'Kontrola uložených procedúr'; +W : 5000026) + +,(SelfIdent: plxJadroKontrolaTriggeru; +H : 'Kontrola triggerů'; +SK: 'Kontrola triggerov'; +W : 5000027) + +,(SelfIdent: plxJadroKontrolaIndexu; +H : 'Kontrola indexů'; +SK: 'Kontrola indexov'; +W : 5000028) + +,(SelfIdent: plxJadroKontrolaPrehledu_a_Akci; +H : 'Kontrola def.přehledů a externích akcí'; +SK: 'Kontrola def.prehľadov a externých akcií'; +W : 5000029) + +,(SelfIdent: plxJadroImportFormularuFilruOpisu; +H : 'Import formulářů, filtrů a opisů'; +SK: 'Import formulárov, filtrov a opisov'; +W : 5000030) + +,(SelfIdent: plxJadroZmenovySkriptJizBylProveden; +H : 'Změnový skript už byl proveden někým jiným - informace by měla být v žurnálu !'; +SK: 'Zmenový skript už bol vykonaný niekym iným - informácia by mala byť v žurnále !'; +W : 5000031) + +,(SelfIdent: plxJadroUpdateZVerze_X_NaVerzi_Y; +H : 'Update z verze %s na verzi %s.'; +SK: 'Update z verzie %s na verziu %s.'; +W : 5000032) + +,(SelfIdent: plxJadroZmenovychSkriptuX; +H : 'změnových skriptů: %d'; +SK: 'zmenových skriptov: %d'; +W : 5000033) + +,(SelfIdent: plxJadroInstalaceHotovo; +H : 'Hotovo'; +SK: 'Hotovo'; +W : 5000034) + +,(SelfIdent: plxJadro_X_BudeNyniUkoncen; +H : 'Aplikace %s bude ukončena.'; +SK: 'Aplikácia %s bude ukončená.'; +W : 5000035) + +,(SelfIdent: plxJadroBylaDetekovanaZmenaStruktury; +H : 'Byla detekována změna struktury.'; +SK: 'Bola detekovaná zmena štruktúry.'; +W : 5000036) + +,(SelfIdent: plxJadroUvedeneTabulkyChybi; +H : 'Uvedené tabulky v databázi chybí.'; +SK: 'Uvedené tabuľky v databázi chýbajú.'; +W : 5000037) + +,(SelfIdent: plxJadroVytvoreniZakladnichPrehledu; +H : 'Vytvoření a změna základních přehledů, akcí a vazeb.'; +SK: 'Vytvorenie a zmena základných prehľadov, akcií a väzieb.'; +W : 5000038) + +,(SelfIdent: plxJadroZmenaStrukturyDB; +H : 'Změna struktury databáze'; +SK: 'Zmena štruktúry databázy'; +W : 5000039) + +,(SelfIdent: plxJadroOpravduSiPrejeteUvedeneZmeny; +H : 'Opravdu si přejete provést výše uvedené změny ?'; +SK: 'Naozaj si prajete vykonať vyššie uvedené zmeny ?'; +W : 5000040) + +,(SelfIdent: plxJadroPredZmenamiDoporucujemeZalohuDB; +H : 'Před provedením změn doporučujeme provést zálohu databáze.'; +SK: 'Pred vykonaním zmien doporučujeme vykonať zálohu databázy.'; +W : 5000041) + +,(SelfIdent: plxJadroTlacitkoZalohovani; +H : '&Zálohování...'; +SK: '&Zálohovanie...'; +W : 5000042) + +,(SelfIdent: plxJadroProvest; +H : 'Provést'; +SK: 'Vykonať'; +W : 5000043) + +,(SelfIdent: plxJadroAkceUkazSQLSkript; +H : '&Ukaž SQL skript...'; +SK: '&Ukáž SQL skript...'; +W : 5000044) + +,(SelfIdent: plxJadroDefinovaneFormulare; +H : 'Definované formuláře'; +SK: 'Definované formuláre'; +W : 5000045) + +,(SelfIdent: plxJadroDefinovaneFiltry; +H : 'Definované filtry'; +SK: 'Definované filtre'; +W : 5000046) + +,(SelfIdent: plxJadroDefinovaneOpisy; +H : 'Definované opisy'; +SK: 'Definované opisy'; +W : 5000047) + +,(SelfIdent: plxJadroAutoImportInfo; +H : 'Byly nalezeny nové soubory pro import.'#13#13+ + 'Pokud neprovedete import v tuto chvíli, máte ' + + 'možnost ho provést později ručně - soubory jsou ' + + 'umístěny v podadresáři SYSTEM v cestě, kde se ' + + 'nachází plugin %s.'; +SK: 'Boli nájdené nové súbory pre import.'#13#13+ + 'Pokiaľ nevykonáte import v tejto chvíli, máte ' + + 'možnosť ho vykonať neskôr ručne - súbory sú ' + + 'umiestnené v podadresári SYSTEM v ceste, kde sa ' + + 'nachádza plugin %s.'; +W : 5000048) + +,(SelfIdent: plxJadroAbout_OPluginu; +H : 'O pluginu...'; +SK: 'O plugine...'; +W : 5000049) + +,(SelfIdent: plxJadroKopirovat; +H : 'Kopírovat'; +SK: 'Kopírovať'; +W : 5000050) + +,(SelfIdent: plxJadroAbout_Nazev; +H : 'Název'; +SK: 'Názov'; +W : 5000051) + +,(SelfIdent: plxJadroAbout_Hodnota; +H : 'Hodnota'; +SK: 'Hodnota'; +W : 5000052) + +,(SelfIdent: plxJadroVerze; +H : 'Verze'; +SK: 'Verzia'; +W : 5000053) + +,(SelfIdent: plxJadroAbout_Vyrobce; +H : 'Výrobce'; +SK: 'Výrobca'; +W : 5000054) + +,(SelfIdent: plxJadroAbout_MinVerze_X; +H : 'Min. verze %s'; +SK: 'Min. verzia %s'; +W : 5000055) + +,(SelfIdent: plxJadroAbout_JADRO; +H : 'JÁDRO'; +SK: 'JADRO'; +W : 5000056) + +,(SelfIdent: plxJadroVerze_V_DB; +H : 'Verze v DB'; +SK: 'Verzia v DB'; +W : 5000057) + +,(SelfIdent: plxJadroVerzePluginu; +H : 'Verze pluginu'; +SK: 'Verzia pluginu'; +W : 5000058) + +,(SelfIdent: plxJadroVerzePluginuJeNizsiNezVDB; +H : 'Verze pluginu je nižší než verze v databázi!'; +SK: 'Verzia pluginu je nižšia ako verzia v databázy!'; +W : 5000059) + +,(SelfIdent: plxJadroNeznamaAkce; +H : 'Neznámá akce!'; +SK: 'Neznáma akcia!'; +W : 5000060) + +,(SelfIdent: plxJadroJeTrebaSpustitInstalaciPluginu; +H : 'Je třeba spustit instalaci pluginu!'; +SK: 'Je potrebné spustiť inštalácia pluginu!'; +W : 5000061) + +,(SelfIdent: plxJadroVerzePluginuJeVyssiNezVDB; +H : 'Verze pluginu je vyšší než verze v databázi!'; +SK: 'Verzia pluginu je vyššia ako verzia v databázy!'; +W : 5000062) + +,(SelfIdent: plxJadroMinulaInstalaceNeprobehlaKorektne; +H : 'Při minulé instalaci nebyly korektně provedeny všechny změny!'; +SK: 'Pri minulej inštalácii neboli korektne vykonané všetky zmeny!'; +W : 5000063) + +,(SelfIdent: plxJadroVymazat; +H : 'Vymazat'; +SK: 'Vymazať'; +W : 5000064) + +,(SelfIdent: plxJadroZakazkaXJeUzavrena; +H : 'Zakázka '#1'%s'#1' je '#1'uzavřena'#1'!'; +SK: 'Zákazka '#1'%s'#1' je '#1'uzavretá'#1'!'; +W : 5000065) + +,(SelfIdent: plxJadroNalezenoViceStejnychHodnotPolozky; +H : 'Nalezeno více stejných hodnot položky'; +SK: 'Nájdených viac rovnakých hodnôt položky'; +W : 5000066) + +,(SelfIdent: plxJadroOrganizaceJeZakazana; +H : 'Organizace je zakázána!'; +SK: 'Organizácia je zakázaná'; +W : 5000067) + +,(SelfIdent: plxJadroOrganizaceJeBlokovana; +H : 'Organizace je blokovaná!'; +SK: 'Organizácia je blokovaná!'; +W : 5000068) + +,(SelfIdent: plxJadroInfoOrg_DluhXKeDniY; +H : ', dluh %s Kč ke dni %s'; +SK: ', dlh %s Sk ku dňu %s'; +W : 5000069) + +,(SelfIdent: plxJadroDatumPoslednihoAutoImportuFormularu; +H : 'Datum posledního autoimportu formulářů'; +SK: 'Dátum posledného autoimportu formulárov'; +W : 5000070) + +,(SelfIdent: plxJadroDatumPoslednihoAutoImportuFiltru; +H : 'Datum posledního autoimportu filtrů'; +SK: 'Dátum posledného autoimportu filtrov'; +W : 5000071) + +,(SelfIdent: plxJadroDatumPoslednihoAutoImportuOpisu; +H : 'Datum posledního autoimportu opisů'; +SK: 'Dátum posledného autoimportu opisov'; +W : 5000072) + +,(SelfIdent: plxJadroSystemoveCislo; +H : 'Systémové číslo'; +SK: 'Systémové číslo'; +W : 5000073) + +,(SelfIdent: plxJadroSysCisZkr; +H : 'Sys.č.'; +SK: 'Sys.č.'; +W : 5000074) + +,(SelfIdent: plxJadroAutor; +H : 'Autor'; +SK: 'Autor'; +W : 5000075; I:'';E:'Author';D:'Autor') + +,(SelfIdent: plxJadroDatumPorizeni; +H : 'Datum pořízení'; +SK: 'Dátum zaevidovania'; +W : 5000076; I:'';E:'Creation date';D:'') + +,(SelfIdent: plxJadroZmenil; +H : 'Změnil'; +SK: 'Zmenil'; +W : 5000077) + +,(SelfIdent: plxJadroDatumZmeny; +H : 'Datum změny'; +SK: 'Dátum zmeny'; +W : 5000078) + +,(SelfIdent: plxJadroBlokovaniEditoru; +H : 'Blokování editoru'; +SK: 'Blokovanie editoru'; +W : 5000079) + +,(SelfIdent: plxJadroNovy; +H : 'Nový...'; +SK: 'Nový...'; +W : 5000080) + +,(SelfIdent: plxJadroOprava; +H : 'Oprava...'; +SK: 'Oprava...'; +W : 5000081) + +,(SelfIdent: plxJadroZrusit; +H : 'Zrušit'; +SK: 'Zrušiť'; +W : 5000082) + +,(SelfIdent: plxJadroObnovit; +H : 'Obnovit'; +SK: 'Obnoviť'; +W : 5000083) + +,(SelfIdent: plxJadroAno; +H : 'Ano'; +SK: 'Áno'; +W : 5000084) + +,(SelfIdent: plxJadroNe; +H : 'Ne'; +SK: 'Nie'; +W : 5000085) + +,(SelfIdent: plxJadroNebylNalezenPrehled_X_Y; +H : 'Nebyl nalezen def.přehled '#1'%s'#1' (%s)!'; +SK: 'Nebol nájdený def.prehľad '#1'%s'#1' (%s)!'; +W : 5000086) + +,(SelfIdent: plxJadroNebylNalezenPrehledCislo_X; +H : 'Nebyl nalezen def.přehled číslo '#1'%s'#1'!'; +SK: 'Nebol nájdený def.prehľad číslo '#1'%s'#1'!'; +W : 5000087) + +,(SelfIdent: plxJadroDefPrehledy_a_JejichAkce; +H : 'Definované přehledy a jejich akce'; +SK: 'Definované prehľady a ich akcia'; +W : 5000088) + +,(SelfIdent: plxJadroExterniAkce; +H : 'Externí akce'; +SK: 'Externá akcia'; +W : 5000089) + +,(SelfIdent: plxJadroAkceProPrehledCislo_X; +H : 'Akce pro přehled č.%d'; +SK: 'Akcia pre prehľad č.%d'; +W : 5000090) + +,(SelfIdent: plxJadroDefinovaneVazby; +H : 'Definované vazby'; +SK: 'Definované väzby'; +W : 5000091) + +,(SelfIdent: plxJadroExterniAtributy; +H : 'Externí atributy'; +SK: 'Externé atribúty'; +W : 5000092) + +,(SelfIdent: plxJadroExterniAtribut_T_A; +H : 'Ext.atribut %s.%s'; +SK: 'Ext.atribút %s.%s'; +W : 5000093) + +,(SelfIdent: plxJadroUzivatelskeSoudecky; +H : 'Uživatelské soudečky'; +SK: 'Uživateľské súdočky'; +W : 5000094) + +,(SelfIdent: plxJadroPoradiSoudecku; +H : 'Pořadí soudečků'; +SK: 'Poradie súdočkov'; +W : 5000095) + +,(SelfIdent: plxJadroInstalace; +H : 'Instalace'; +SK: 'Inštalácia'; +W : 5000096) + +,(SelfIdent: plxJadroZakladniInformace; +H : 'Základní informace'; +SK: 'Základné informácie'; +W : 5000097) + +,(SelfIdent: plxJadroTechnickyPopis; +H : 'Technický popis'; +SK: 'Technický popis'; +W : 5000098) + +,(SelfIdent: plxJadroMinVerzeSQLServeru; +H : 'Min. verze SQL Serveru'; +SK: 'Min. verzia SQL Servera'; +W : 5000099) + +,(SelfIdent: plxJadroNeinstalovano; +H : ''; +SK: ''; +W : 5000100) + +,(SelfIdent: plxJadroInstalovanaVerze; +H : 'Instalovaná verze'; +SK: 'Inštalovaná verzia'; +W : 5000101) + +,(SelfIdent: plxJadroUmisteni; +H : 'Umístění'; +SK: 'Umiestnenie'; +W : 5000102) + +,(SelfIdent: plxJadroPrerusit; +H : 'Přerušit'; +SK: 'Prerušiť'; +W : 5000103) + +,(SelfIdent: plxJadroOpravduAkciPrerusit; +H : 'Opravdu chcete akci přerušit?'; +SK: 'Naozaj chcete akciu prerušiť?'; +W : 5000104) + +,(SelfIdent: plxJadroPluginVyzadujeMinVerziSQL_X; +H : 'Plugin vyžaduje MS SQL Server verze minimálně '#1'%s'#1'!'; +SK: 'Plugin vyžaduje MS SQL Server verzia minimálne '#1'%s'#1'!'; +W : 5000105) + +,(SelfIdent: plxJadroNavaznyCiselnikSFiltraci; +H : 'Návazný číselník s filtrací'; +SK: 'Náväzný číselník s filtráciou'; +W : 5000106) + +,(SelfIdent: plxJadroNavaznyCiselnik; +H : 'Návazný číselník'; +SK: 'Náväzný číselník'; +W : 5000107) + +,(SelfIdent: plxJadroOdesilamPostu; +H : 'Odesílám poštu'; +SK: 'Odosielam poštu'; +W : 5000108) + +,(SelfIdent: plxJadroMailNebylNalezenHeMail; +H : 'Nebyl nalezen program HeMail.EXE pro posílání pošty!'; +SK: 'Nebol nájdený program HeMail.EXE pre posielanie pošty!'; +W : 5000109) + +,(SelfIdent: plxJadroMailNepodariloSeVytvoriKonfigSoubor; +H : 'Nepodařilo se vytvořit konfigurační soubor!'; +SK: 'Nepodarilo sa vytvoriť konfiguračný súbor!'; +W : 5000110) + +,(SelfIdent: plxJadroKontrolaExternichAtributu; +H : 'Kontrola externích atributů'; +SK: 'Kontrola externých atribútov'; +W : 5000111) + +,(SelfIdent: plxJadroStredisko_X_JeZakazano; +H : 'Středisko '#1'%s'#1' je '#1'zakázáno'#1'!'; +SK: 'Stredisko '#1'%s'#1' je '#1'zakázané'#1''; +W : 5000112) + +,(SelfIdent: plxJadroRegistrovanyOtaznik; +H : 'Registrovaný?'; +SK: 'Registrovaný?'; +W : 5000113) + +,(SelfIdent: plxJadroIdentifikator; +H : 'Identifikátor'; +SK: 'Identifikátor'; +W : 5000114) + +,(SelfIdent: plxJadro_Nepouzito_; +H : ''; +SK: ''; +W : 5000115) + +,(SelfIdent: plxJadroLogo; +H : 'Logo'; +SK: 'Logo'; +W : 5000116) + +,(SelfIdent: plxJadroExterniHlasky; +H : 'Externí hlášky'; +W : 5000117) + +,(SelfIdent: plxJadroDoplneniExternichHlasek; +H : 'Doplnění externích hlášek'; +W : 5000118) + +,(SelfIdent: plxJadroAbout_IdentifikaceVyrobce; +H : 'Identifikace výrobce'; +SK: 'Identifikácia výrobca'; +W : 5000119) + +,(SelfIdent: plxJadroHistorieVerzi; +H : 'Historie verzí'; +SK: 'História verzí'; +W : 5000120) + +,(SelfIdent: plxJadroZaznamJeBlokovanNelzeSmazat; +H : 'Záznam je blokován jiným uživatelem - nelze smazat!'; +W : 5000121) + +,(SelfIdent: plxJadroDefinovanyPrehled_X_NebylNalezen; +H : 'Definovaný přehled %s nebyl nalezen!'; +W : 5000122) + +,(SelfIdent: plxJadroCislaPrehleduBylaVycerpana; +H : 'Čísla přehledů byla vyčerpána!'; +W : 5000123) + +,(SelfIdent: plxJadroPredchoziRok; +H : 'Předchozí rok'; +W : 5000124) + +,(SelfIdent: plxJadroPredchoziMesic; +H : 'Předchozí měsíc'; +W : 5000125) + +,(SelfIdent: plxJadroNasledujiciMesic; +H : 'Následující měsíc'; +W : 5000126) + +,(SelfIdent: plxJadroNasledujiciRok; +H : 'Následující rok'; +W : 5000127) + +,(SelfIdent: plxJadroZvolteDatum; +H : 'Zvolte datum'; +W : 5000128) + +,(SelfIdent: plxJadroDnes; +H : 'Dnes'; +W : 5000129) + +,(SelfIdent: plxJadroKalendar; +H : 'Kalendář'; +W : 5000130) + +,(SelfIdent: plxJadroAktualniCas; +H : 'Aktuální čas'; +W : 5000131) + +,(SelfIdent: plxJadroKalkulacka; +H : 'Kalkulačka'; +W : 5000132) + +,(SelfIdent: plxJadroKontrolaUzivatelskychFunkci; +H : 'Kontrola uživatelských funkcí'; +W : 5000133) + +,(SelfIdent: plxJadroPrevodDoUNICODE; +H : 'Převod do UNICODE'; +W : 5000134) + +,(SelfIdent: plxJadroDoplneniPrehleduProUzivAtr; +H : 'Doplnění přehledů pro uživ. atributy'; +W : 5000135) + +,(SelfIdent: plxJadroSkupinaNastrojuPrizpusobeni; +H : 'Skupina nástrojů přizpůsobení'; +W : 5000136) + +,(SelfIdent: plxJadroDoplneniSkupiny; +H : 'Doplnění skupiny'; +W : 5000137) + +,(SelfIdent: plxJadroVlastniInstalace; +H : 'Vlastní instalace'; +W : 5000138) + +,(SelfIdent: plxJadroHotovo; +H : 'hotovo'; +W : 5000139) + +,(SelfIdent: plxJadroOmezeniVDBPrebyva; +H : 'Omezení tohoto názvu v databázi přebývá'; +W : 5000140) + +,(SelfIdent: plxJadroPocitanyAtributChybi; +H : 'Počítaný atribut tohoto názvu v tabulce chybí'; +W : 5000141) + +,(SelfIdent: plxJadroAtributVTabulceChybi; +H : 'Atribut tohoto názvu v tabulce chybí'; +W : 5000142) + +,(SelfIdent: plxJadroZmenaPocitanehoAtributuSmazani; +H : 'Změna počítaného atributu %s -> %s (smazání)'; +W : 5000143) + +,(SelfIdent: plxJadroZmenaPocitanehoAtributuPridani; +H : 'Změna počítaného atributu %s -> %s (přidání)'; +W : 5000144) + +,(SelfIdent: plxJadroZmenaPocitanehoAtributuKodDB; +H : 'Změna počítaného atributu %s -> %s (kód v DB)'; +W : 5000145) + +,(SelfIdent: plxJadroAtributVTabulcePrebyva; +H : 'Atribut tohoto názvu v tabulce přebývá'; +W : 5000146) + +,(SelfIdent: plxJadroOmezeniJeVDBVypnuto; +H : 'Omezení je v databází vypnuto'; +W : 5000147) + +,(SelfIdent: plxJadroOmezeniVDBChybi; +H : 'Omezení tohoto názvu v databázi chybí'; +W : 5000148) + +,(SelfIdent: plxJadroOmezeniSeVDBZmenilo; +H : 'Omezení tohoto názvu se v databázi změnilo'; +W : 5000149) + +,(SelfIdent: plxJadroOmezeniSeVDBZmeniloKodDB; +H : 'Omezení tohoto názvu se v databázi změnilo (kód v DB)'; +W : 5000150) + +,(SelfIdent: plxJadroOmezeniJeVypnuto; +H : 'Omezení je v databází vypnuto'; +W : 5000151) + +,(SelfIdent: plxJadroUlozenkaVDBChybi; +H : 'Uložená procedura tohoto názvu v databázi chybí'; +W : 5000152) + +,(SelfIdent: plxJadroNastaveniPravKUlozence; +H : 'Nastavení práv k nové uložené proceduře'; +W : 5000153) + +,(SelfIdent: plxJadroUlozenkaSeZmenila; +H : 'Uložená procedura se změnila'; +W : 5000154) + +,(SelfIdent: plxJadroFunkceVDBChybi; +H : 'Uživatelská funkce tohoto názvu v databázi chybí'; +W : 5000155) + +,(SelfIdent: plxJadroNastaveniPravKFunkci; +H : 'Nastavení práv k nové uživatelské funkci'; +W : 5000156) + +,(SelfIdent: plxJadroFunkceSeZmenila; +H : 'Uživatelská funkce se změnila'; +W : 5000157) + +,(SelfIdent: plxJadroTriggerVDBChybi; +H : 'Trigger v databázi chybí'; +W : 5000158) + +,(SelfIdent: plxJadroTriggerVDBPrebyva; +H : 'Trigger v databázi přebývá'; +W : 5000159) + +,(SelfIdent: plxJadroTriggerJeVDBVypnut; +H : 'Trigger je v databázi vypnut'; +W : 5000160) + +,(SelfIdent: plxJadroTriggerVDBSeZmenil; +H : 'Trigger v databázi se změnil'; +W : 5000161) + +,(SelfIdent: plxJadroIndexJeVDBPrejmenovan; +H : 'Index je v databázi přejmenován'; +W : 5000162) + +,(SelfIdent: plxJadroHeslo; +H : 'Heslo'; +W : 5000163) + +,(SelfIdent: plxJadroZobrazitHeslo; +H : 'Zobrazit heslo'; +W : 5000164) + +,(SelfIdent: plxJadroAdresarProJazykovaDLL; +H : 'Adresář pro uložení jazykových DLL'; +W : 5000165) + +,(SelfIdent: plxJadroVysledek; +H : 'Výsledek'; +W : 5000166) + +,(SelfIdent: plxJadroPluginNeobsahujeZadneHlasky; +H : 'Plugin neobsahuje žádné hlášky!'; +W : 5000167) + +,(SelfIdent: plxJadroNeniZadanoHeslo; +H : 'Není zadáno heslo!'; +W : 5000168) + +,(SelfIdent: plxJadroNeniZadanAdresarProJazykovaDLL; +H : 'Není zadán adresář pro uložení jazykových DLL!'; +W : 5000169) + +,(SelfIdent: plxJadroAdresarProJazykovaDLLNeexistuje; +H : 'Adresář pro uložení jazykových DLL neexistuje!'; +W : 5000170) + +,(SelfIdent: plxJadroPodporaTicheInstalacePluginu; +H : 'Podpora tiché instalace pluginů'; +W : 5000171) + +,(SelfIdent: plxJadroNepodporaOdinstalace; +H : 'Tento plugin nepodporuje automatickou odinstalaci.'; +W : 5000172) + + +// plgTypeTxtJadro.INC +//last + +// LOCAL | USER: RK | DT: 27.11.2006 09:11:00 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 27.11.2006 09:16:24 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.05.2007 09:33:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.05.2007 09:40:20 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RJ | DT: 23.05.2007 12:13:33 | VER: | TXT: | PC: RJ-XP-D | FROM: L:\H\IQ10\PlugLib | TO: C:\Plugins\SEW\Bin +// LIB | USER: RJ | DT: 23.05.2007 12:14:14 | VER: 20070523 | TXT: | PC: RJ-XP-D | FROM: C:\Plugins\SEW\Bin | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.07.2007 08:46:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 10.07.2007 08:46:46 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 05.11.2007 15:57:29 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 05.11.2007 15:57:39 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2008 15:12:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.07.2008 15:33:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:01:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 10:03:06 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.03.2009 14:00:40 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 05.03.2009 14:05:44 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 16:51:54 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:35 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:02:21 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:06:41 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:06:43 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:07:21 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 16:19:37 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:28:33 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 diff --git a/lib/plgTypeBrowse.INC b/lib/plgTypeBrowse.INC new file mode 100644 index 0000000..ec7f7be --- /dev/null +++ b/lib/plgTypeBrowse.INC @@ -0,0 +1,5 @@ +type + TplgBrowse = (bZadny + +//last + ); diff --git a/lib/plgTypeJadro.INC b/lib/plgTypeJadro.INC new file mode 100644 index 0000000..706006e --- /dev/null +++ b/lib/plgTypeJadro.INC @@ -0,0 +1,1516 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +// ============================================================================ +// Tyto typy a konstanty jsou urceny pro zaklad jadra, NEMENIT, NEPRIDAVAT !!! +// ============================================================================ + +const + Cplg_PrvniUnicodeVerzeHeliosu = $010020090803; + + // jadrem podporovana minimalni verze Heliosu + Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu = $020020210905; // Helios 2.x + Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu_ver3 = $030020240602; // Helios 3.x + + // verze vlastniho jadra + Cplg_VerzeJadra = $030020241014; // AJ, 23.12.2015 - Tich instalace // $020020151223; // AJ, 23.12.2015 - Podpora odinstalace + // JAS 13.2.2018 - rozsireni o moznost pouzit v tabulkach atributy typu (N)VARCHAR(MAX) a (VAR)BINARY(MAX) + // RK 18.1.2024 - podpora NVARCHAR(MAX) a VARBINARY(MAX) pro externi sloupce + + // nazev produktu (nejedna se o nazev pluginu!!) + Cplg_ProductName = 'Helios'; // Orange zruseno (je take Easy, Germany...) + + // aktualni rok + Cplg_AktualniRok = 2024; // [JAS, 04.01.2024] - posun o rok + + // aktualni nazev firmy LCS/Asseco + Cplg_NazevFirmyLCS = 'Asseco Solutions, a.s.'; + +// ============================================================================ + + Cplg_VerzePluginu_Nula_Str = '000000000000'; // 12 nul + + // hausnumera indikujici v jakem modu QueryEdit jede - musi byt Byte + Cplg_tagNovaVeta = $AA; + Cplg_tagOpravaVety = $55; + + dbo = 'dbo.'; + + Cplg_LoginName = 'SUSER_SNAME()'; + Cplg_GetDate = 'GETDATE()'; + + // systemove nazvy atributu pouzivane jadrem, NEMENIT !!! + plg_SystemoveCislo = 'ID'; + plg_Zmenil = 'Zmenil'; + plg_DatZmeny = 'DatZmeny'; + plg_BlokovaniEditoru = 'BlokovaniEditoru'; + + Cplg_ExtKomID_Zpravy = 0; + Cplg_ExtKomID_Instalace = -1; + Cplg_ExtKomID_About = -2; + Cplg_ExtKomID_TichaInstalace = -3; + Cplg_ExtKomID_Konfigurace = -4; + Cplg_ExtKomID_HlaskyNaWeb = -5; + Cplg_ExtKomID_HlaskyDoDLL = -6; + Cplg_ExtKomID_Odinstalace = -7; // AJ, 14.12.2015 - Administrtorsk podpora v HeO + Cplg_ExtKomID_EditorController = -8; + + Cplg_GUID_Instalace = '{224BFCE4-62A1-4990-B723-FCF5BD14F45D}'; + + Cplg_HlaskyBase = 5000000; // ID prvni hlasky jadra pluginu + Cplg_HlaskyPlugin = 5050000; // minimalni ID prvni hlasky vlastniho pluginu + + DisplayMaskPenize = '#,##0.00'; + DisplayMaskPenize4 = ',0.####'; + + Cplg_CDefaultFrmDefExt = 'HFMX'; // defaultni pripona pro soubor s definicemi formularu HELIOSu + Cplg_CDefaultFltDefExt = 'HFLX'; // defaultni pripona pro soubor s definicemi filtru HELIOSu + Cplg_CDefaultOpsDefExt = 'HDOX'; // defaultni pripona pro soubor s definicemi opisu HELIOSu + + // jazyky (pri pridani doplnit i cestu na DLL a instalaci jazyka do TabExtHlasky) + Cplg_jJazykNedefinovan = -1; // pouziva se pro Jazyk2 + Cplg_jCeskyASCII = 0; + Cplg_jCesky = 1; + Cplg_jSlovenctina = 4; + Cplg_jAnglictina = 6; + Cplg_jNemcina = 7; + Cplg_jChorvatstina = 8; + Cplg_jPolstina = 9; + Cplg_jRumunstina = 10; + Cplg_jSpanelstina = 11; + Cplg_jRustina = 12; + Cplg_jExtAnglictina = 1033; + Cplg_jExtNemcina = 1031; + Cplg_jExtFrancouzstina = 1036; + Cplg_jExtDanstina = 1030; + Cplg_jExtSpanelstina = 3082; + Cplg_jExtItalstina = 1040; + Cplg_jExtHolandstina = 1043; + Cplg_jExtNorstina = 2068; + Cplg_jExtPortugalstina = 2070; + Cplg_jExtFinstina = 1035; + Cplg_jExtSvedstina = 1053; + Cplg_jExtMadarstina = 1038; + Cplg_jExtPolstina = 1045; + Cplg_jExtRumunstina = 1048; + Cplg_jExtChorvatstina = 1050; + Cplg_jExtSlovenstina = 1051; + Cplg_jExtSlovinstina = 1060; + Cplg_jExtRectina = 1032; + Cplg_jExtBulharstina = 1026; + Cplg_jExtRustina = 1049; + Cplg_jExtTurectina = 1055; + Cplg_jExtEstonstina = 1061; + Cplg_jExtLotystina = 1062; + Cplg_jExtLitevstina = 1063; + Cplg_jExtJaponstina = 1041; + Cplg_jExtKorejstina = 1042; + Cplg_jExtTradicniCinstina = 1028; + Cplg_jExtZjednodusenaCinstina = 2052; + + Cplg_PoleJazyku: array[1..38] of Integer = ( + Cplg_jCeskyASCII, + Cplg_jCesky, + Cplg_jSlovenctina, + Cplg_jAnglictina, + Cplg_jNemcina, + Cplg_jChorvatstina, + Cplg_jPolstina, + Cplg_jRumunstina, + Cplg_jSpanelstina, + Cplg_jRustina, + Cplg_jExtAnglictina, + Cplg_jExtNemcina, + Cplg_jExtFrancouzstina, + Cplg_jExtDanstina, + Cplg_jExtSpanelstina, + Cplg_jExtItalstina, + Cplg_jExtHolandstina, + Cplg_jExtNorstina, + Cplg_jExtPortugalstina, + Cplg_jExtFinstina, + Cplg_jExtSvedstina, + Cplg_jExtMadarstina, + Cplg_jExtPolstina, + Cplg_jExtRumunstina, + Cplg_jExtChorvatstina, + Cplg_jExtSlovenstina, + Cplg_jExtSlovinstina, + Cplg_jExtRectina, + Cplg_jExtBulharstina, + Cplg_jExtRustina, + Cplg_jExtTurectina, + Cplg_jExtEstonstina, + Cplg_jExtLotystina, + Cplg_jExtLitevstina, + Cplg_jExtJaponstina, + Cplg_jExtKorejstina, + Cplg_jExtTradicniCinstina, + Cplg_jExtZjednodusenaCinstina); + + // legislativa + Cplg_Legislativa_Ceska = 0; + Cplg_Legislativa_Slovenska = 1; + Cplg_Legislativa_Nemecka = 2; + Cplg_Legislativa_Spanelska = 3; + Cplg_Legislativa_Polska = 4; + +// ============================================================================ + + Cplg_TagyPouzitelneOdVerzeHeliosu_2 = $020020200957; + Cplg_TagyPouzitelneOdVerzeHeliosu_3 = $030020200957; + + // tagy pro *** OpenBrowse() ************************************************ + // - je mono je pout v parametru WhereSys + // - pouit se detekuje nalezenm textu <$OB_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_OB_TagPrefix = '$OB_'; + + // pro sestaven pouijte hotov tagy ne (..._Begin a ..._End) + Cplg_OB_Tag_WhereSys = 'WhereSys'; // implicitn: '' + Cplg_OB_Tag_Parametrizovano = 'Parametrizovano'; // monost: 0 nebo 1, implicitn: 1 + Cplg_OB_Tag_Maximalizovat = 'Maximalizovat'; // monost: 0 nebo 1, implicitn: 0 + Cplg_OB_Tag_IDFiltr = 'IDFiltr'; // implicitn: 0 (bez vynucen sestavy) + Cplg_OB_Tag_FormCaption = 'FormCaption'; // implicitn: '' + Cplg_OB_Tag_VynutZapniPosun = 'VynutZapniPosun'; // monost: 0 nebo 1, implicitn: 0 + + // Parametrizovano = 0 => vypne posun po zznamech + // VynutZapniPosun = 1 => zapne posun po zznamech + + // VynutZapniPosun - funkn pouze pokud je Parametrizovano = 1 + // FormCaption - funkn pouze pokud je Parametrizovano = 0 + + Cplg_OB_WhereSys_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_WhereSys + '>'; + Cplg_OB_WhereSys_End = ''; + + Cplg_OB_Parametrizovano_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_Parametrizovano + '>'; + Cplg_OB_Parametrizovano_End = ''; + + Cplg_OB_Maximalizovat_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_Maximalizovat + '>'; + Cplg_OB_Maximalizovat_End = ''; + + Cplg_OB_IDFiltr_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_IDFiltr + '>'; + Cplg_OB_IDFiltr_End = ''; + + Cplg_OB_FormCaption_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_FormCaption + '>'; + Cplg_OB_FormCaption_End = ''; + + Cplg_OB_VynutZapniPosun_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_VynutZapniPosun + '>'; + Cplg_OB_VynutZapniPosun_End = ''; + + // tagy pro *** Prenos(), Prenos2() ***************************************** + // - je mono je pout v parametru WhereSys + // - pouit se detekuje nalezenm textu <$PR_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_PR_TagPrefix = '$PR_'; + + // pro sestaven pouijte hotov tagy ne (..._Begin a ..._End) + Cplg_PR_Tag_WhereSys = 'WhereSys'; // implicitn: '' + Cplg_PR_Tag_IDFiltr = 'IDFiltr'; // implicitn: 0 (bez vynucen sestavy) + Cplg_PR_Tag_MultiSelect = 'MultiSelect'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PR_Tag_NazevAkce = 'NazevAkce'; // implicitn: '' + Cplg_PR_Tag_ReadOnly = 'ReadOnly'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PR_Tag_PodleKolikaLocate = 'PodleKolikaLocate'; // implicitn: 1 + + // pouzitelne v Prenos() a Prenos2(): WhereSys, IDFiltr, NazevAkce + Cplg_PR_WhereSys_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_WhereSys + '>'; + Cplg_PR_WhereSys_End = ''; + + Cplg_PR_IDFiltr_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_IDFiltr + '>'; + Cplg_PR_IDFiltr_End = ''; + + Cplg_PR_NazevAkce_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_NazevAkce + '>'; + Cplg_PR_NazevAkce_End = ''; + + // pouzitelne pouze v Prenos(): MultiSelect, ReadOnly, PodleKolikaLocate + Cplg_PR_MultiSelect_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_MultiSelect + '>'; + Cplg_PR_MultiSelect_End = ''; + + Cplg_PR_ReadOnly_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_ReadOnly + '>'; + Cplg_PR_ReadOnly_End = ''; + + Cplg_PR_PodleKolikaLocate_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_PodleKolikaLocate + '>'; + Cplg_PR_PodleKolikaLocate_End = ''; + + // tagy pro *** PrintForm2(), PrintForm3() ********************************** + // - je mono je pout v parametru WhereSys + // - pouit se detekuje nalezenm textu <$PF_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_PF_TagPrefix = '$PF_'; + + // obecn pouiteln + Cplg_PF_Tag_WhereSys = 'WhereSys'; // implicitn: '' + Cplg_PF_Tag_OznacitVse = 'OznacitVse'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_TypTisku = 'TypTisku'; // 0 = tisk (F8), 1 = tisk jednotliv (Shift+F8) + + // ne uveden tagy se uplatn pouze v ppad, e je TiskDoSouboru = 1 + Cplg_PF_Tag_TiskDoSouboru = 'TiskDoSouboru'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_VariantaTisku = 'VariantaTisku'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_TiskDoDokumentu = 'TiskDoDokumentu'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_UlozitDoDB = 'UlozitDoDB'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_DoSouboruCesta = 'DoSouboruCesta'; // mus bt vyplnno, kdy je UlozitDoDB = 0 + Cplg_PF_Tag_IDTypDoSouboru = 'IDTypDoSouboru'; // implicitn: 0 (zobraz se vbr) + Cplg_PF_Tag_NazevSouboru = 'NazevSouboru'; + Cplg_PF_Tag_VytvorAdresar = 'VytvorAdresar'; + Cplg_PF_Tag_IDDokumStrom = 'IDDokumStrom'; + + Cplg_PF_WhereSys_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_WhereSys + '>'; + Cplg_PF_WhereSys_End = ''; + + Cplg_PF_OznacitVse_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_OznacitVse + '>'; + Cplg_PF_OznacitVse_End = ''; + + Cplg_PF_TypTisku_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_TypTisku + '>'; + Cplg_PF_TypTisku_End = ''; + + Cplg_PF_TiskDoSouboru_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_TiskDoSouboru + '>'; + Cplg_PF_TiskDoSouboru_End = ''; + + Cplg_PF_VariantaTisku_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_VariantaTisku + '>'; + Cplg_PF_VariantaTisku_End = ''; + + Cplg_PF_TiskDoDokumentu_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_TiskDoDokumentu + '>'; + Cplg_PF_TiskDoDokumentu_End = ''; + + Cplg_PF_UlozitDoDB_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_UlozitDoDB + '>'; + Cplg_PF_UlozitDoDB_End = ''; + + Cplg_PF_DoSouboruCesta_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_DoSouboruCesta + '>'; + Cplg_PF_DoSouboruCesta_End = ''; + + Cplg_PF_IDTypDoSouboru_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_IDTypDoSouboru + '>'; + Cplg_PF_IDTypDoSouboru_End = ''; + + Cplg_PF_NazevSouboru_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_NazevSouboru + '>'; + Cplg_PF_NazevSouboru_End = ''; + + Cplg_PF_VytvorAdresar_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_VytvorAdresar + '>'; + Cplg_PF_VytvorAdresar_End = ''; + + Cplg_PF_IDDokumStrom_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_IDDokumStrom + '>'; + Cplg_PF_IDDokumStrom_End = ''; + + // tagy pro *** Error() ***************************************************** + // - je mono je pout v parametru Msg + // - pouit se detekuje nalezenm textu <$ER_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_ER_TagPrefix = '$ER_'; + + // pro sestaven pouijte hotov tagy ne (..._Begin a ..._End) + Cplg_ER_Tag_Chyba = 'Chyba'; + Cplg_ER_Tag_Detail = 'Detail'; + + // okno chyby s detailem se zobraz pouze v ppad, e jsou vyplnny + // jak Chyba, tak i Detail + + Cplg_ER_Chyba_Begin = '<' + Cplg_ER_TagPrefix + Cplg_ER_Tag_Chyba + '>'; + Cplg_ER_Chyba_End = ''; + + Cplg_ER_Detail_Begin = '<' + Cplg_ER_TagPrefix + Cplg_ER_Tag_Detail + '>'; + Cplg_ER_Detail_End = ''; + +// ============================================================================ + + // minimalni a maximalni datum + Cplg_MinDate = '''19000101 00:00:00.000'''; + CPlg_MaxDate = '''99991231 23:59:59.000'''; + + // maximalni cas v Delphi + Cplg_MaxTime = 0.999999537; + + // maximalni cas na SQL Serveru + Cplg_SQLMaxTimeStr = '23:59:59.997'; + + // pouze aktualni datum bez casu + Cplg_OnlyDate = 'CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,GETDATE())))'; + + //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + // definice delky pro "MAX" varianty atributu (N)VARCHAR atd. + Cplg_DelkaNVarcharMax = -1; + Cplg_DelkaVarBinaryMax = Cplg_DelkaNVarcharMax; //je to stejne, ale pro jistotu rozdeleno na dve konstanty, aby to v DTckach nematlo nepritele + + // konstanty - verze MS SQL Serveru - IHelios.SQLVersion (kopie z sqProc) + Cplg_SQLVersion_7_0 = $07000000; // 7.0 [bez rozlien buildu] + Cplg_SQLVersion_7_0_Gold = $0700026F; // 7.0.623 = cista instalace MSSQL 7.0 / MSDE 1.0 Bez SP1 + Cplg_SQLVersion_7_0_SP1 = $070002BB; // 7.0.699 = SP1 + Cplg_SQLVersion_7_0_SP2 = $0700034A; // 7.0.842 = SP2 + Cplg_SQLVersion_7_0_SP3 = $070003C1; // 7.0.961 = SP3 + Cplg_SQLVersion_7_0_SP4 = $07000427; // 7.0.1063 = SP4 + + Cplg_SQLVersion_2000 = $07320000; // 7.5 / 2000 [bez rozlien buildu] + Cplg_SQLVersion_2000_SP1 = $08000180; // 8.0.384 = SP1 + Cplg_SQLVersion_2000_SP2 = $08000216; // 8.0.534 = SP2 + Cplg_SQLVersion_2000_SP3 = $080002F8; // 8.0.760 = SP3 + Cplg_SQLVersion_2000_SP4 = $080007F7; // 8.0.2039 = SP4 + + Cplg_SQLVersion_2005 = $09000000; // 2005 [bez rozlien buildu] + Cplg_SQLVersion_2005_Gold = $09000577; // 9.0.1399 = cista instalace MSSQL 2005 bez Service Packu + Cplg_SQLVersion_2005_SP1 = $090007FF; // 9.0.2047 = SP1 + Cplg_SQLVersion_2005_SP2 = $09000BE2; // 9.0.3042 = SP2 + Cplg_SQLVersion_2005_SP3 = $09000FC3; // 9.0.4035 = SP3 + Cplg_SQLVersion_2005_SP4 = $09001388; // 9.0.5000 = SP4 + + Cplg_SQLVersion_2008 = $0A000000; // 2008 [bez rozlien buildu] + Cplg_SQLVersion_2008_Gold = $0A000640; // 10.0.1600 = ist instalace MSSQL 2008 bez Service Packu + Cplg_SQLVersion_2008_SP1 = $0A0009E3; // 10.0.2531 = SP1 + Cplg_SQLVersion_2008_SP2 = $0A000FA0; // 10.0.4000 = SP2 + Cplg_SQLVersion_2008_SP3 = $0A00157C; // 10.0.5500 = SP3 + Cplg_SQLVersion_2008_SP4 = $0A001770; // 10.0.6000 = SP4 + + Cplg_SQLVersion_2008R2 = $0A320000; // 2008 R2 [bez rozlien buildu] + Cplg_SQLVersion_2008R2_Gold = $0A320640; // 10.50.1600 = ist instalace MSSQL 2008 R2 bez Service Packu + Cplg_SQLVersion_2008R2_SP1 = $0A3209C4; // 10.50.2500 = SP1 + Cplg_SQLVersion_2008R2_SP2 = $0A320FA0; // 10.50.4000 = SP2 + Cplg_SQLVersion_2008R2_SP3 = $0A321770; // 10.50.6000 = SP3 + + Cplg_SQLVersion_2012 = $0B000000; // 2012 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2012_Gold = $0B000834; // 11.0.2100 = ist instalace MSSQL 2012 bez Service Packu + Cplg_SQLVersion_2012_SP1 = $0B000BB8; // 11.0.3000 = SP1 + Cplg_SQLVersion_2012_SP2 = $0B0013C2; // 11.0.5058 = SP2 + Cplg_SQLVersion_2012_SP3 = $0B001784; // 11.0.6020 = SP3 + Cplg_SQLVersion_2012_SP4 = $0B001B59; // 11.0.7001 = SP4 + + Cplg_SQLVersion_2014 = $0C000000; // 2014 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2014_Gold = $0C0007D0; // 12.0.2000 = ist instalace MSSQL 2014 bez Service Packu + Cplg_SQLVersion_2014_SP1 = $0C001004; // 12.0.4100 = SP1 + Cplg_SQLVersion_2014_SP2 = $0C001388; // 12.0.5000 = SP2 + Cplg_SQLVersion_2014_SP3 = $0C001788; // 12.0.6024 = SP3 + + Cplg_SQLVersion_2016 = $0D000000; // 2016 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2016_Gold = $0D000641; // 13.0.1601 = ist instalace MSSQL 2016 bez Service Packu + Cplg_SQLVersion_2016_SP1 = $0D000FA1; // 13.0.4001 = SP1 + Cplg_SQLVersion_2016_SP2 = $0D0013A2; // 13.0.5026 = SP2 + Cplg_SQLVersion_2016_SP3 = $0D00189C; // 13.0.6300 = SP3 - 9/15/2021 (https://www.microsoft.com/en-us/download/details.aspx?id=103440) + + Cplg_SQLVersion_2017 = $0E000000; // 2017 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2017_Gold = $0E0003E8; // 14.0.1000 = ist instalace MSSQL 2017 bez Service Packu + Cplg_SQLVersion_2017_CU08 = $0E000BD5; // 14.0.3029 = CU08 - opravuje vnou chybu vyhodnocovn CASE + Cplg_SQLVersion_2017_CU12 = $0E000BE5; // 14.0.3045 = CU12 - nmi doporuovan pro opravu chyby CASE + Cplg_SQLVersion_2017_CU13 = $0E000BE8; // 14.0.3048 = CU13 - 19.12.2018 + Cplg_SQLVersion_2017_CU28 = $0E000D66; // 14.0.3430 = CU28 - 1/13/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=56128) + Cplg_SQLVersion_2017_CU30 = $0E000D7B; // 14.0.3451 = CU30 - 7/13/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=56128) + Cplg_SQLVersion_2017_CU31 = $0E000D80; // 14.0.3456 = CU31 - 9/20/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=56128) + + Cplg_SQLVersion_2019 = $0F000000; // 2019 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 15.0.0.0 + Cplg_SQLVersion_2019_CU02 = $0F000FAD; // 15.0.4013 = CU02 - opravuje inlining SQL funkci + Cplg_SQLVersion_2019_CU03 = $0F000FB7; // 15.0.4023 = CU03 - opravuje SQL Agenta + Cplg_SQLVersion_2019_CU14 = $0F00105C; // 15.0.4188 = CU14 + Cplg_SQLVersion_2019_CU15 = $0F001066; // 15.0.4198 = CU15 - 1/27/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU16 = $0F00107F; // 15.0.4223 = CU16 - 4/18/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU17 = $0F001099; // 15.0.4249 = CU17 - 8/11/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU18 = $0F0010A5; // 15.0.4261 = CU18 - 9/28/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU19 = $0F0010CA; // 15.0.4298 = CU19 - 2/16/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU20 = $0F0010D8; // 15.0.4312 = CU20 - 4/13/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU21 = $0F0010DC; // 15.0.4316 = CU21 - 6/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU22 = $0F0010E2; // 15.0.4322 = CU22 - 8/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU23 = $0F0010EF; // 15.0.4335 = CU23 - 10/12/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU24 = $0F0010F9; // 15.0.4345 = CU24 - 12/14/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + + Cplg_SQLVersion_2022 = $10000000; // 2022 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 16.0.0.0 + Cplg_SQLVersion_2022_RTM = $100003E8; // 16.0.1000 = ist instalace MSSQL 2022 bez CU (16.11.2022) + Cplg_SQLVersion_2022_CU01 = $10000FA3; // 16.0.4003 = CU01 - 2/16/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU02 = $10000FAF; // 16.0.4015 = CU02 - 3/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU03 = $10000FB9; // 16.0.4025 = CU03 - 4/13/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU04 = $10000FC3; // 16.0.4035 = CU04 - 5/11/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU05 = $10000FCD; // 16.0.4045 = CU05 - 6/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU06 = $10000FD7; // 16.0.4055 = CU06 - 7/13/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU07 = $10000FE1; // 16.0.4065 = CU07 - 8/10/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU08 = $10000FEB; // 16.0.4075 = CU08 - 9/14/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU09 = $10000FF5; // 16.0.4085 = CU09 - 10/12/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU10 = $10000FFF; // 16.0.4095 = CU10 - 11/16/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU11 = $10001009; // 16.0.4105 = CU11 - 01/11/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU22 = $10001081; // 16.0.4225 = CU22 - (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU24 = $10001095; // 16.0.4245 = CU24 - (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + + // HEIQ000020037331 - JAD - SQL2022 RC0 + Cplg_SQLVersion_XXXX = $11000000; // >2022 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 17.0.0.0 + +// ============================================================================ + + Cplg_Prefix_SN_Helios = 'HEIQ'; // Helios Orange + Cplg_Prefix_SN_CLAW = 'CLAW'; // Kobler sm + Cplg_Prefix_SN_CLAH = 'CLAH'; // Hospodsk komora + + Cplg_Prefix_SN_HEED = 'HEED'; // Helios Easy Demo (Trial) + Cplg_Prefix_SN_HEEF = 'HEEF'; // Helios Easy Full + + Cplg_Prefix_SN_ASDT = 'ASDT'; // Helios Germany Demo (Trial) + Cplg_Prefix_SN_ASDE = 'ASDE'; // Helios Germany Full + + Cplg_Prefix_SN_HeliosEasy = Cplg_Prefix_SN_HEED + ',' + Cplg_Prefix_SN_HEEF; + Cplg_Prefix_SN_Germany = Cplg_Prefix_SN_ASDT + ',' + Cplg_Prefix_SN_ASDE; + + Cplg_SerNum_PrefixLen = 4; // HEIQ, CLAW, CLAH, HEED, HEEF + Cplg_SerNum_VerzeLen = 4; // xxyy + Cplg_SerNum_OddelLen = 1; // - + Cplg_SerNum_PoradiLen = 5; // 99999 + + Cplg_SerNum_CelkemLen = Cplg_SerNum_PrefixLen + + Cplg_SerNum_VerzeLen + + Cplg_SerNum_OddelLen + + Cplg_SerNum_PoradiLen; + +// ============================================================================ + + // definovane prehledy a vazby (kopie z Heliosu) + Cplg_ObecnePohledy_BID_Base = 100000; // kopie z ddBrowse + +// [RK 27.07.2009] zruseno, pouzijte PluginKonfig.PluginPrefixTabulek +// Cplg_Tabulka_Prefix = 'Tab'; // prefix pro tabulky + + Cplg_View_Prefix = 'hvw_'; // kopie z ddTypeZbytek.inc + Cplg_View_PrefixLen = 4; // delka 'hvw_' + Cplg_View_NazevSys_Len = 36; // kopie z ddTypeZbytek.inc + Cplg_View_NazevVer_Len = 50; // kopie z dtObecnyPrehled (TabObecnyPrehled_Nazev_Delka) + + Cplg_DefVazba_Prefix = 'Vudv'; // kopie z ddTypeZbytek.inc + Cplg_DefVazba_JmenoSys_Len = 30; // kopie z dtObecnaVazba + Cplg_DefVazba_NazevSys_XX_Len = 30; // kopie z dtObecnaVazba + Cplg_DefVazba_Nazev_XX_Len = 100; // kopie z dtObecnaVazba + + Cplg_DefVazba_SpecifHT = ''; // specifikator pro hlavni tabulku v definici vazby + + Cplg_Soudek_Len = 40; // kopie z dtSoudky + Cplg_Atribut_JmenoSys_Len = 127; // puvodne bylo 30 + Cplg_SkupinaExt_Len = 30; // kopie z ddUta + + Cplg_Soudek_Prefix = '_HeIQ_S_'; // prefix pro definici odkazu na interni soudecky + + Cplg_Soudek_Ucetnictvi = Cplg_Soudek_Prefix + '1'; + Cplg_Soudek_FinancniAnalyza = Cplg_Soudek_Prefix + '30'; + Cplg_Soudek_Leasing = Cplg_Soudek_Prefix + '32'; + Cplg_Soudek_PenezniToky = Cplg_Soudek_Prefix + '29'; + Cplg_Soudek_Pokladna = Cplg_Soudek_Prefix + '2'; + Cplg_Soudek_PokladniProdej = Cplg_Soudek_Prefix + '18'; + Cplg_Soudek_ObehZbozi = Cplg_Soudek_Prefix + '3'; + Cplg_Soudek_DodatecneSN = Cplg_Soudek_Prefix + '27'; + Cplg_Soudek_Fakturace = Cplg_Soudek_Prefix + '4'; + Cplg_Soudek_Mzdy = Cplg_Soudek_Prefix + '5'; + Cplg_Soudek_MzdySK = Cplg_Soudek_Prefix + '15'; + Cplg_Soudek_Banka = Cplg_Soudek_Prefix + '6'; + Cplg_Soudek_Majetek = Cplg_Soudek_Prefix + '7'; + Cplg_Soudek_Posta = Cplg_Soudek_Prefix + '11'; + Cplg_Soudek_CelniPripady = Cplg_Soudek_Prefix + '12'; + Cplg_Soudek_ClaStarePostupy = Cplg_Soudek_Prefix + '34'; + Cplg_Soudek_Intrastat = Cplg_Soudek_Prefix + '19'; + Cplg_Soudek_PripravaVyroby = Cplg_Soudek_Prefix + '8'; + Cplg_Soudek_RizeniVyroby = Cplg_Soudek_Prefix + '9'; + Cplg_Soudek_Kontrakty = Cplg_Soudek_Prefix + '25'; + Cplg_Soudek_Doprava = Cplg_Soudek_Prefix + '10'; + Cplg_Soudek_PrepravniSluzby = Cplg_Soudek_Prefix + '13'; + Cplg_Soudek_KnihaJizd = Cplg_Soudek_Prefix + '21'; + Cplg_Soudek_ICStandardy = Cplg_Soudek_Prefix + '17'; + Cplg_Soudek_SkladZvirat = Cplg_Soudek_Prefix + '20'; + Cplg_Soudek_Kalkulace = Cplg_Soudek_Prefix + '24'; + Cplg_Soudek_Projekty = Cplg_Soudek_Prefix + '23'; +//Cplg_Soudek_ObchodniPripady = Cplg_Soudek_Prefix + '31'; + Cplg_Soudek_CRM = Cplg_Soudek_Prefix + '14'; + Cplg_Soudek_Servis = Cplg_Soudek_Prefix + '26'; + Cplg_Soudek_Workflow = Cplg_Soudek_Prefix + '28'; + Cplg_Soudek_HeliosIntelligence = Cplg_Soudek_Prefix + '251'; + Cplg_Soudek_NastrojePrizpusobeni = Cplg_Soudek_Prefix + '252'; + Cplg_Soudek_Ciselnik = Cplg_Soudek_Prefix + '253'; + Cplg_Soudek_PomCiselnik = Cplg_Soudek_Prefix + '254'; + +// ============================================================================ + +type + TplgMnozinaLegislativa = set of Byte; + TplgTxt = plxNic..plx_MAX; + + TplgHlaska = packed record + SelfIdent : TplgTxt; // pro self-check + H : String; // hlka LESKY + SK: String; // hlka SLOVENSKY (jazykove DLL ma ale prednost!) + W : LongWord; // jednoznacne id, ktere se nikdy nesmi zmenit + GUID: String; // jednoznacne GUID pro zapis do tabulky TabExtHlasky + I : String; // info pro prekladatele - vidi v editoru hlasek + E : String; // anglicky preklad - pokud vim predem, prekladatel nemusi prekladat + D : String; // nemecky preklad - pokud vim predem, prekladatel nemusi prekladat + end; + +// ============================================================================ + +type + TplgTypAtributu = { SQL-92 Delphi Size Range Precision } + (taBlbe, { ----------------------------------------------------------------- } + taInt, { INT Integer 4 -2147483648 .. 1 } + { +2147483647 } + taIdentity, { INT IDENTITY(1,1) -"- } + taInt64, { BIGINT Int64 8 -2^63..2^63-1 1 } + taIdentity64, { BIGINT IDENTITY(1,1) -"- } + taSmallInt, { SMALLINT SmallInt 2 -32768..32767 1 } + taByte, { TINYINT Byte 1 0..255 1 } + taBoolean, { BIT Boolean 1 False..True - } + + taVarChar, { VARCHAR(n) AnsiString n - - } + taChar, { CHAR(n) AnsiString n - - } + taText, { TEXT(n) AnsiString n -} + + taNVarChar, { NVARCHAR(n) String n - - } + taNChar, { NCHAR(n) String n - - } + taNText, { NTEXT(n) String n - } + + taBinary, { BINARY(n)array of Bytes n - - } + taVarBinary, { VARBINARY(n)array of Bytes n - - } + taImage, { IMAGE TBlobField - 0..2,147,483,647 B } + + taDateTime, { DATETIME TDateTime 8 1.1.1753..31.12.9999 } + + //PFA - taTime je pouze pro Eurest!! Nepouzivat jinde, pripadne na vlastni nebezpeci + taTime, { TIME TTime n 00:00:00.0000000..23:59:59.9999999 } + + taNumeric_4_2, { NUMERIC(4,2) } + taNumeric_5_2, { NUMERIC(5,2) } + taNumeric_7_2, { NUMERIC(7,2) } + taNumeric_9_2, { NUMERIC(9,2) } + taNumeric_15_0,{ NUMERIC(15,0) } + taNumeric_19_2,{ NUMERIC(19,2) } + taNumeric_19_6,{ NUMERIC(19,6) } + taNumeric_20_6,{ NUMERIC(20,6) } + taNumeric_28_0,{ NUMERIC(28,0) } + + taFloat { FLOAT } + + // misto taGUID je treba pouzit taBinary s delkou 16 !!! + //taGUID { UNIQUEIDENTIFIER } + ); + + TplgSkupinaAtributu = + (skpZadna, skpCelaCisla, skpDesetinnaCisla, skpRetezce, skpDatumy, skpBinarni); + + TplgPodtypAtributu = + (ptaZadny, + ptaIdentity // property IDENTITY - pro typy [TINY|SMALL]INT | NUMERIC(1..28,0) + ); + + TplgDefTypu = packed record + SelfIdent : TplgTypAtributu; // pro self-check pri startu + T : String; // zakl. typ (INT/CHAR/VARCHAR/NUMERIC...) + X : TplgPodtypAtributu; // podtyp (pro [TINY|SMALL]INT - IDENTITY) + P : Byte; // precision (presnost pro NUMERIC/seed pro IDENTITY) + S : Byte; // scale (poc. des. mist pro NUMERIC/increment pro IDENTITY) + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + +const + Cplg_PodtypStr : array[TplgPodtypAtributu] of String = ('', 'IDENTITY'); + + // konverze na SQL typ + Cplg_GTypy : array[TplgTypAtributu] of TplgDefTypu = + ((SelfIdent: taBlbe; T: ''), + (SelfIdent: taInt; T: 'INT'), + (SelfIdent: taIdentity; T: 'INT'; X:ptaIdentity), + (SelfIdent: taInt64; T: 'BIGINT'), + (SelfIdent: taIdentity64; T: 'BIGINT'; X:ptaIdentity), + (SelfIdent: taSmallInt; T: 'SMALLINT'), + (SelfIdent: taByte; T: 'TINYINT'), + (SelfIdent: taBoolean; T: 'BIT'), + (SelfIdent: taVarChar; T: 'VARCHAR'), + (SelfIdent: taChar; T: 'CHAR'), + (SelfIdent: taText; T: 'TEXT'), + (SelfIdent: taNVarChar; T: 'NVARCHAR'), + (SelfIdent: taNChar; T: 'NCHAR'), + (SelfIdent: taNText; T: 'NTEXT'), + (SelfIdent: taBinary; T: 'BINARY'), + (SelfIdent: taVarBinary; T: 'VARBINARY'), + (SelfIdent: taImage; T: 'IMAGE'), + (SelfIdent: taDateTime; T: 'DATETIME'), + (SelfIdent: taTime; T: 'TIME'), + (SelfIdent: taNumeric_4_2; T: 'NUMERIC'; P: 4; S:2), + (SelfIdent: taNumeric_5_2; T: 'NUMERIC'; P: 5; S:2), + (SelfIdent: taNumeric_7_2; T: 'NUMERIC'; P: 7; S:2), + (SelfIdent: taNumeric_9_2; T: 'NUMERIC'; P: 9; S:2), + (SelfIdent: taNumeric_15_0; T: 'NUMERIC'; P:15; S:0), + (SelfIdent: taNumeric_19_2; T: 'NUMERIC'; P:19; S:2), + (SelfIdent: taNumeric_19_6; T: 'NUMERIC'; P:19; S:6), + (SelfIdent: taNumeric_20_6; T: 'NUMERIC'; P:20; S:6), + (SelfIdent: taNumeric_28_0; T: 'NUMERIC'; P:28; S:0), + (SelfIdent: taFloat; T: 'FLOAT') + + // misto taGUID je treba pouzit BINARY(16) !!! + // (SelfIdent: taGUID; T: 'UNIQUEIDENTIFIER') + ); + +const + Cplg_SkupinaAtributuSDelkou = + [taVarChar, taChar, taNVarChar, taNChar, taBinary, taVarBinary, taTime]; + + Cplg_SkupinaAtributuNumeric = + [taNumeric_4_2, taNumeric_5_2, taNumeric_7_2, taNumeric_9_2, + taNumeric_15_0, taNumeric_19_2, taNumeric_19_6, taNumeric_20_6, + taNumeric_28_0]; + + // typy povolene pro externi atributy + Cplg_SkupinaExternichAtributu = + [taInt, taSmallInt, taBoolean, taVarChar, taText, + taNVarChar, taNText, taVarBinary, + taDateTime, taNumeric_19_6, taFloat]; + + Cplg_SkupinaRetezceANSI = [taVarchar, taChar, taText]; + Cplg_SkupinaRetezceUnicode = [taNVarchar, taNChar, taNText]; + + Cplg_MnozinaIdentity = [taIdentity, taIdentity64]; + + Cplg_MaxPovolenaDelkaAtributuSDelkou = 255; + +// ============================================================================ + +type + // --- ZMENOVE SKRIPTY ------------------------------------------------------ + + PplgZmenovySkript = ^TplgZmenovySkript; + TplgZmenovySkript = packed record + PlatiOd : Int64; // verze z plgVerze.INC, od ktere update plati + // POZOR - MUSI BYT UNIKATNI !!! + Skript : String; // SQL skript delajici zmeny - melo by v nem byt + // co nejvice testu na existenci tabulek, atributu + // a jejich typu - viz SQL metadata function : + // COLUMNPROPERTY, OBJECT_ID apod. - blize viz plgZmeny + end; + + // --- ULOZENE PROCEDURY ---------------------------------------------------- + + PplgUlozenaProcedura = ^TplgUlozenaProcedura; + TplgUlozenaProcedura = packed record + // nejprve se testuje prefix licence, nasleduje legislativa aktualni databaze, + // pak teprve se bere do jake databaze se bude procedura generovat + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + Databaze : String; // DB pro instalaci procedury, prazdne = aktualni DB + Text : String; // definice ulozene procedury vcetne CREATE + // Ulozenka musi byt zadana tak, aby CREATE PROC bylo na jednom radku + // napr. 'CREATE PROCEDURE dbo.ep_XXXX_YYYY'#13+ + // - XXXX je prefix dany pluginem (napr. sys nazev pluginu), pokud je pouzit + // - yyyy je pak vlastni nazev ulozenky + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- UZIVATELSKE FUNKCE --------------------------------------------------- + + PplgUzivatelskaFunkce = ^TplgUzivatelskaFunkce; + TplgUzivatelskaFunkce = packed record + // nejprve se testuje prefix licence, nasleduje legislativa aktualni databaze, + // pak teprve se bere do jake databaze se bude funkce generovat + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + Databaze : String; // DB pro instalaci funkce, prazdne = aktualni DB + Text : String; // definice uzivatelske funkce vcetne CREATE + // Funkce musi byt zadana tak, aby CREATE FUNCTION bylo na jednom radku + // napr. 'CREATE FUNCTION dbo.ef_XXXX_YYYY'#13+ + // - XXXX je prefix dany pluginem (napr. sys nazev pluginu), pokud je pouzit + // - yyyy je pak vlastni nazev funkce + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + +// ============================================================================ + +type + TplgNULL = (nNic, nNOTNULL, nNULL); + TplgBool = (vDefault, vFalse, vTrue); + TplgPK_UQ = (puNic, puPrimaryKey, puUnique); + TplgConstraint = (coChyba, coPrimaryKey, coUnique, coCheck, coForeignKey, + coDefault, coIndex, coIndexClustered{$IFDEF PFA_PlgIndex}, coIndexUnique{$ENDIF PFA_PlgIndex}); + + +const + Cplg_ConstraintOddelovac = '__'; + + Cplg_PrefixyConstraints : array[TplgConstraint] of String = + ('!chyba!', 'PK', 'UQ', 'CK', 'FK', 'DF', 'IX', 'IC'{$IFDEF PFA_PlgIndex}, 'IU'{$ENDIF PFA_PlgIndex}); + + Cplg_NULLorNOTNULL : array[TplgNULL] of String = + ('!chyba!', 'NOT NULL', 'NULL'); + +type + // --- ATRIBUTY ------------------------------------------------------------- + + // preddefinovane atributy - definice viz plgUta + TplgUzivatelskyTypAtributu = + (plg_utaZadny + ,plg_utaSystemoveCislo + ,plg_utaSystemoveCislo64 + ,plg_utaAutor + ,plg_utaDatPorizeni + ,plg_utaZmenil + ,plg_utaDatZmeny + ,plg_utaBlokovaniEditoru + ,plg_utaGUID + ,plg_utaSazbaDPH + ,plg_utaCena + ,plg_utaMena + ,plg_utaTextChyby + ,plg_utaImpSoubor + ,plg_utaSkupZbo + ,plg_utaRegCis + + {$I lib\plgTypeUTA.inc} + ); + + // definice atributu + PplgAtributTabulky = ^TplgAtributTabulky; + TplgAtributTabulky = packed record + JmenoSys : String; // nazev atributu v DB + JmenoVerejne : String; // verejny nazev atributu + JmenoVerejneTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + JmenoVerejneZkr : String; // zkraceny verejny nazev atributu + JmenoVerejneZkrTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + Typ : TplgTypAtributu; // typ atributu (taInt, taVarchar apod.) + UTyp : TplgUzivatelskyTypAtributu; // moznost pouziti preddefinovanych atributu (jakysi template) + Delka : SmallInt; // pro [N][VAR]CHAR(n) a BINARY(n); hodnota Cplg_DelkaNVarcharMax (-1) znamena [N]VARCHAR(MAX) + Pocitany : String; // definice atributu v pripade, ze je pocitany - napr. 'Mnozstvi*Cena' + NULL : TplgNull; // je atribut nullable? implicitne je nNotNull + PK_UQ : TplgPK_UQ; // PRIMARY KEY / UNIQUE, default nic + ForeignKey : String; // specifikace ciziho klice - napr. 'TabDokladyZbozi(ID)' + ServerDEFAULT : String; // defaultni hodnota - napr. '0', '''''' (prazdny retezec) + CHECK : String; // omezujici podminka - napr. 'IN(0,1,3)' + Vyzadovany : TplgBool; // atribut je vzdy pritomen v SELECTU prehledu (nemusi byt ale videt) + Verejny : TplgBool; // pokud vTrue, tak bude atribut pristupny v F4 - Nastav + Konverze : String; // pr.: 'NULL=nevim'#13'0=Ne'#13'1=Ano' + KonverzeTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + SirkaSloupce : Byte; // sirka sloupce pro browse (ve znacich) + MaskaDisplay : String; // maska pro zobrazeni atributu - napr. DisplayMaskPenize + Sumovat : Boolean; // v pripade ciselnych atributu se zobrazi sumace pri zagrupovani prehledu + SkupinaNastav : String; // skupina pro Nastav + SkupinaNastavTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // oproti Heliosu je to zde navic + Hint : String; // tento text se zobrazi u editacniho pole v editoru pri najeti mysi + HintTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + DalsiVlastnosti : set of (dvAbstraktni, // dvAbstraktni = neni v DB, ale pouze v definici view + dvObrazek, // jestli je v typu taImage ulozen obrazek + dvProcPruh, // jestli bude hodnota atributu v gridu vyjadrena procentnim pruhem + dvBarva, // jestli bude hodnota atributu v gridu zobrazena jako barva + dvStav // jestli bude hodnota atributu v gridu zobrazena jako stavov sloupec + ); + + HeliosAttr : String; // - lze zadat atribut tabulky Heliosu (Tabulka.Atribut) + // - neni pak treba vyplnovat JmenoVerejne, JmenoVerejneZkr, + // Konverze, MaskaDisplay ani SirkaSloupce + // pri zobrazeni prehledu si to Helios nastavi sam + // - nejlepsi pouzit v souvislosti s abstraktnim atributem + // nebo abstraktni tabulkou + // - prevzeti hodnot z Heliosu funguje v prehledu i v DB editoru v pluginu + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + TplgUzivatelskeAtributyDef = packed record + SelfIdent: TplgUzivatelskyTypAtributu; // pro self-check pri startu + A: TplgAtributTabulky; + end; + + // --- CONSTRAINTS ---------------------------------------------------------- + + PplgConstraintTabulky = ^TplgConstraintTabulky; + TplgConstraintTabulky = packed record + JmenoSys : String; // u PRIMARY KEY a UNIQUE nesmi byt uveden - vygeneruje se + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + + Typ : TplgConstraint; + + // PRO: coPrimaryKey, coUnique, coIndex, coIndexClustered, coIndexUnique + Atributy : string; { oddelene carkou } + + // PRO: coDefault, coCheck + Vyraz : string; { omezeni typu DEFAULT se pise primo k atributu, sem NE !!! } + + // PRO: coForeignKey + VlastniAtributy : string; { 'ID, Nazev' } + CiziTabulka : string; { TabBlaBla } + CiziAtributy : string; { 'Cislo, Jmeno' } + + //PRO: coIndex, coIndexUnique + Included : string; { seznam atributu v indexu, ktere ale netvori klic } + + //PRO: coIndex, coIndexUnique + Where : String; { podminka, novinka od SQL2008 - pozor zapis musi byt ve tvaru, jak to ma ulozene SQL } + + + end; + + // --- TABULKY -------------------------------------------------------------- + + PplgTabulkaDef = ^TplgTabulkaDef; + TplgTabulkaDef = packed record + SelfIdent : TplgTabulka; // pro self-check pri startu + + JmenoSys : String; // systemove jmeno tabulky v databazi + Jmeno : String; // verejne jmeno tabulky (muze byt totozne s nazvem prehledu, pokud je v prehledu jako nazev '*') + JmenoTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // nejprve se testuje legislativa aktualni databaze, pak teprve se bere + // do jake databaze se bude procedura generovat + PrefixLicence : string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + Databaze : String; // DB pro instalaci tabulky, prazdne = aktualni DB + + // moznost prevzeti casti definice z jine tabulky + // - probiha pouze kopie TplgAtributTabulky + // - zadne jine nastaveni TplgTabulkaDef se nekopiruje + Predek : TplgTabulka; // predek, od nehoz tato tabulka dedi strukturu + VyjmuteAttrPredka : String; // seznam atributu predka, ktere nemaji byt v nove tabulce (polozky oddeleny #13) + + // atributy tabulky + PocetAtributu : Integer; + Atributy : PplgAtributTabulky; + + // integritni omezeni + PocetConstraints : Integer; + Constraints : PplgConstraintTabulky; + + // specialni vlastnosti tabulky + DalsiVlastnosti : set of ( + plg_dvtBezID, // tabulka nema ID (skip kontroly), pouzivat velmi opatrne !!! + plg_dvtAbstraktni, // tabulka neexistuje fyzicky v DB, pouze template pro definici atributu view + plg_dvtNeprevadetNaUnicode, // tabulka nebude obsazena v automatickem prevodu na UNICODE + plg_dvtKopirovatOmezeni, // maji se atributy z Predka kopirovat s Check, ForeignKey, PK_UQ ? + plg_dvtBlokovaniJenOprava // BlokovaniEditoru se nahazuje pouze pri editaci, ne pri nove vete + ); + + // seznam atributu oddeleny carkou - hlavne pro pripad [plg_dvtBezID] + // kdyz je prazdne, bere se automaticky ID + PrimarniKlic : String; + + // skript, ktery se spousti pred smazanim zaznamu (vse v transakci) + // v ramci skriptu existuje promenna @ID = ID zaznamu + TriggerBeforeDelete : String; + + // skript pro pripadne predvyplneni tabulky po jejim vzniku (po CREATE TABLE) + AfterCreateTable : String; + + // definice triggeru (vcetne CREATE TRIGGER ht_XXXXX ON TabXXXX FOR ...) + DefiniceTriggeru : String; + + // !!! NEVYPLNOVAT !!! pouze interni pouziti !!! + _BylInitConstraints : Boolean; + + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- SOUDKY --------------------------------------------------------------- + TplgSoudekDef = packed record + SelfIdent : TplgSoudek; // pro self-check pri startu a navaznost na prehledy + Jmeno : String; + end; + + // --- PREHLEDY ------------------------------------------------------------- + + // tyto tridy jsou pouze pomocne kvuli deklaraci !!! + TplgAkcePrehleduBaseClass = class of TplgAkcePrehleduBase; + TplgAkcePrehleduBase = class + end; + + // ========================================================================== + // Prefix Povinne Mozne + // ========================================================================== + // 'hvw_' JmenoView HlavniTabulka + // DefiniceView DMAkceClass + // SELECT EditorClass + // GUID_ActionNew + // GUID_ActionEdit + // GUID_ActionDelete + // ========================================================================== + + TplgVychoziNastaveniBrowse = packed record + SelfIdent : TplgBrowse; // pro self-check pri startu + + // nazev pro uzivatele (pokud je '*', tak se vezme z hlavni tabulky) + Jmeno : String; + JmenoTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // zakladni tabulka nad kterou je postaven browse (nad tou bezi editor) + // jako abstraktni lze pouzit pro definici nazvu, masek apod. atributu + HlavniTabulka : TplgTabulka; + + // systemovy nazev view, musi zacinat 'hvw_' + JmenoView : String; + + // SELECT definujici vlastni view napr. 'SELECT*FROM TabXXX' + // pokud ma tabulka BlokovaniEditoru, pak aby slo pouzit odblokovani, je treba + // napsat skript takto: 'SELECT*FROM TabXXX', jinak server ohlasi chybu + DefiniceView : String; + + // unikatni GUID definovaneho prehledu, slouzi pro registrace Helios Easy +// GUID : string; + + // rika, ze NECHCI dane view vytvorit v DB; implicitne se v DB vytvareji + // mozno pouzit pro prehled nad docasnou tabulkou + Neni_v_DB : Boolean; + + // tabulka pro atributy typu TEXT + BlobTableName : String; + + // seznam atributu bez tabulky oddeleny #13 + SELECT : String; + + // seznam atributu bez tabulky oddeleny #13 + // muze byt pridano ASC ci DESC, implicitni je ASC + ORDERBY : String; + + // - zakladni funcionalita browsu + // - tda typu TplgAkcePrehledu, dedeno z plgAkce + DMAkceClass : TplgAkcePrehleduBaseClass; + + // - editan obrazovka + // - tda typu TfrmPlgEditor, dedeno z plgEdit + EditorClass : TFormClass; + + // umisteni prehledu do soudecku (soudecky se definuji v plgSoudky) + Soudek : TplgSoudek; + Predek : TplgBrowse; + + // pro jakou legislativu se bude prehled vytvaret + // pokud je omezeno, musi byt v souladu s tabulkou - pokud tabulka pro danou + // legislativu neni vytvarena, nevytvari se ani prehled !! + PrefixLicence : string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + + // Pomocnicek Heliosik pro definovany prehled + Pomocnicek : String; + PomocnicekTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // definice atributu pro systemovou filtaci + // je mozno vyplnit ruzne kombinace, ale do kazdeho "slotu" lze zadat pouze jeden atribut + AttrFor_sqlSklad : String; + AttrFor_sqlSbornik : String; + AttrFor_sqlPokladna : String; + AttrFor_sqlIDObdobi : String; + AttrFor_sqlIDMzdObd : String; + AttrFor_sqlKategorieKJ : String; + AttrFor_sqlRadaUctenek : String; + + // unikatni GUID pro preddefinovane akce, pokud nejsou uvedeny akce neni povolena + GUID_ActionNew : String; + GUID_ActionEdit : String; + GUID_ActionDelete : String; + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- EXTERNI AKCE --------------------------------------------------------- + + PplgExtAkceDef = ^TplgExtAkceDef; + TplgExtAkceDef = packed record + BrowseID : Integer; // musi byt mezi 1..100000 + // BID prehledu z Heliosu (lze zobrazit pomoci AltB) + + // - zakladni funcionalita pro standardni prehled Heliosu + // - tda typu TplgAkcePrehledu, dedeno z plgAkce + DMAkceClass : TplgAkcePrehleduBaseClass; + + // - editan obrazovka + // - tda typu TfrmPlgEditor, dedeno z plgEdit + EditorClass : TFormClass; + + // unikatni GUID pro preddefinovane akce, pokud nejsou uvedeny akce neni povolena + GUID_ActionNew : String; + GUID_ActionEdit : String; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + end; + + // --- EDITOR CONTROLLER ---------------------------------------------------- + + // tyto tridy jsou pouze pomocne kvuli deklaraci !!! + TplgEditorControllerBaseClass = class of TplgEditorControllerBase; + TplgEditorControllerBase = class(TInterfacedObject) + end; + + TplgEditorControllerDef = packed record + FormIdent: string; // klic pro ulozeni informaci o editoru do DB (velikost okna, uzivatelsky editor...) + ControllerClass: TplgEditorControllerBaseClass; + end; + + // --- VZTAHY --------------------------------------------------------------- + + TplgTypVztahu = (tvZadny, { <- zadny (pouziva se k indikaci chyby) } + tv11, { <- vztah 1:1 (nebo 0:1) } + tv1N { <- vztah 1:N (nebo 0:N) } + ); + // tvZadny = protitabulka nebude vidt v Nastav ani v tisku + // tv11 = protitabulka bude vidt v tisku a v Nastav na zlokch 1 - Zobrazen, 2 - Tdn i 3 - Podmnky + // - pouv napr. pro poloky + // tv1N = protitabulka bude vidt v tisku a v Nastav pouze na zloce 3 - Podmnky + // - pouv napr. pro hlaviku + + PplgVztahDef = ^TplgVztahDef; + TplgVztahDef = packed record + GUIDVazby : String; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + + TabLStr : String; // sys. nazev tabulky + NazevLP : String; // verejny nazev protitabulky pro Nastav + NazevLPTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + NazevLPSys : String; // sys. nzev protitabulky (tiskovho zdroje) v nvrhi tiskovch formul + TypLP : TplgTypVztahu; + + TabPStr : String; // sys. nazev tabulky + NazevPL : String; // verejny nazev protitabulky pro Nastav + NazevPLTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + NazevPLSys : String; // sys. nzev protitabulky (tiskovho zdroje) v nvrhi tiskovch formul + TypPL : TplgTypVztahu; + + // NazevLPSys a NazevPLSys - systemovy nazev vazby pro tisk + // - nazvy, ktere by mely mit vypovidaci hodnotu (neprekladaji se) + // - pouzivaji se ke generovani nazvu pipeliny pro tisk formularu + // - jsou ulozeny ve formularich, proto je jiz nelze zmenit !!! + // - MUSI BYT vyplneny + + // Atributy v podmnce zadvejte v pln notaci: Tabulka.Atribut + // Vyhodnocen podmnky je senzitivn na velikost psmen! + // V ppad vazby pes vce tabulek pouijte EXISTS(). + // V ppad vazby shodnch tabulek mus bt jedna z tabulek + // nahrazena specifiktorem , aby se odliily strany vazby. + Join : String; + end; + + // --- EXTERNI ATRIBUTY ----------------------------------------------------- + + TplgTypExtAtr = + (eaChyba, eaUserDef, eaNormal, eaMemo, eaComboBox, eaBrowse, eaDateTime, + eaTime, eaFile, eaDirectory, eaCalcEdit); + // eaUserDef = uzivatelsky definovany atribut, ostatni jsou externi + // eaNormal = normalni editor + // eaMemo = editacni pole Memo + // eaComboBox = editacni pole ComboBox + // eaBrowse = editacni pole pro prenos z jineho prehledu + // eaDateTime = editacni pole pro datum i cas (pouze pro Typ = taDateTime) + // eaTime = editacni pole pro cas (pouze pro Typ = taDateTime) + // eaFile = editacni pole pro nazev souboru + // eaDirectory = editacni pole pro adresar + // eaCalcEdit = editacni pole CalcEdit (pole s kalkulackou) + + PplgExterniAtribut = ^TplgExterniAtribut; + TplgExterniAtribut = packed record + // jmeno tabulky v Heliosu, tabulka musi mit ID !!! + JmenoTabulky : String; + + // systemovy nazev atributu v DB, musi zacinat jednim podtrzitkem + JmenoSys : String; + + // unikatni GUID externiho atributu, slouzi pro registrace Helios Easy +// GUID : string; + + // verejny nazev atributu + JmenoVerejne : String; + JmenoVerejneTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + JmenoVerejneZkr : String; + JmenoVerejneZkrTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // typ atributu v DB + // plati pouze omezeny okruh typu - viz Cplg_SkupinaExternichAtributu + Typ : TplgTypAtributu; + Delka : Integer; // pro [VAR]CHAR(n) + Verejny : Boolean; // viditelnost atributu v Nastav a editoru externich informaci + Editovatelny : TplgBool; // nezadano, coz je vDefault = podle Verejny + SirkaSloupce : Byte; // sirka sloupce pro browse (ve znacich) + MaskaDisplay : String; // maska pro zobrazeni atributu - napr. DisplayMaskPenize + Sumovat : Boolean; // v pripade ciselnych atributu se zobrazi sumace pri zagrupovani prehledu + ProcentniPruh : Boolean; // bude hodnota atributu v gridu vyjadrena procentnim pruhem? + Barva : Boolean; // bude hodnota atributu v gridu zobrazena barvou? + Obrazek : Boolean; // je VARBINARY(MAX) obrazek? + Tisknout : Boolean; // muze se atribut tisknout - bude videt v tiskove pipeline? + StavAtr : Boolean; // Stav + Kopirovat : Boolean; // muze se atribut kopirovat + HromadneZmenyAtr : Boolean; // je mozno atribut hromadne menit + + Konverze : String; + KonverzeTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + JeKonverzeSQLSkript: Boolean; + + Poznamka : String; // poznamka (technicky popis) + PoznamkaTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + Bublina : String; // bublinova napoveda + BublinaTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // typ externiho atributu (uzivatelsky / externi) + TypExtAtr : TplgTypExtAtr; + + // eaBrowse => >0 = systmov slo penosovho pehledu v editoru + // ostatni => nebere se v uvahu + ExtEd_BrowseID : Integer; // BID pro prehledy Heliosu + ExtEd_BrowseDPSN : string; // systemovy nazev definovaneho prehledu + + // eaUserDef => definice atributu (SELECT ... ) + // eaComboBox => skript pro naplneni ComboBoxu + // eaBrowse => "Tabulka.Atribut", kter se m penet - parametr funkce Prenos() + // ostatni => nebere se v uvahu + ExtEd_Atr : String; + + // eaComboBox => nastavi pouze pro vyber (csDropDownList) + // eaBrowse => pole lze zadat pouze prenosem z jineho prehledu + // ostatni => nebere se v uvahu + ExtEd_PrimaEditace : Boolean; // mohu pmo editovat ? + + // eaBrowse => podminka pro prenosovy prehled + // ostatni => nebere se v uvahu + ExtEd_Podminka : String; // podminka pro prenos + + // eaUserDef => nebere se v uvahu (je platne pouze pro editor externich atributu) + ExtEd_Zalozka : String; // nazev zalozky pro editor + ExtEd_ZalozkaTxt : TplgTxt; + ExtEd_Poradi : Integer; // poradi na zalozce (>0) + + // automaticka vazba na atribut + GenerujVazbu: Boolean; + VazbaTypMoje: TplgTypVztahu; // 1:N, 1:1, (neni) + VazbaNazevMoje: string; + VazbaNazevMojeSys: string; + VazbaTypCizi: TplgTypVztahu; // 1:1 nebo (neni) + VazbaNazevCizi: string; + VazbaNazevCiziSys: string; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- EXTERNI TRIGGERY ----------------------------------------------------- + + PplgExterniTrigger = ^TplgExterniTrigger; + TplgExterniTrigger = packed record + // systemove jmeno standardni tabulky Heliosu + JmenoTabulky : String; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + + // skript pro vytvoreni externiho triggeru, jmeno trigeru musi byt et_ + // skript musi zacinat: CREATE TRIGGER et_ ON FOR + TriggerSkript : String; + + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + +{ ########################################################################### } + +// LOCAL | USER: RK | DT: 15.08.2005 14:40:35 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 14:41:54 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 15.08.2005 14:54:37 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 14:57:32 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 15.08.2005 16:25:50 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 16:26:00 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 16.08.2005 09:33:01 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 16.08.2005 09:42:41 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.09.2005 15:44:18 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.09.2005 15:45:55 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.10.2005 10:37:09 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 17.10.2005 10:37:38 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.10.2005 14:06:43 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 17.10.2005 14:06:45 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 13:58:19 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 13:59:02 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 14:30:40 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 14:48:25 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 14:48:28 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 14:48:50 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.12.2005 13:16:42 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.12.2005 13:32:44 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 16.01.2006 12:07:00 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 16.01.2006 12:16:38 | VER: 20060116 | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 14.02.2006 14:17:52 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 14.02.2006 14:20:23 | VER: 20060214 | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.02.2006 15:03:31 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 15.02.2006 15:05:40 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:19:30 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:51:13 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:55:04 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:55:41 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:00:01 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:02:59 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:21:51 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:22:19 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:22:38 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:22:41 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 15:55:44 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 21.03.2006 16:09:13 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 23.03.2006 14:51:13 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 23.03.2006 14:52:48 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.04.2006 15:08:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 10.04.2006 15:08:31 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.05.2006 12:30:25 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 02.05.2006 12:30:30 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.05.2006 14:58:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.05.2006 14:59:17 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.05.2006 10:13:10 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 15.05.2006 10:13:15 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 30.05.2006 09:08:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 30.05.2006 09:14:52 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 31.05.2006 12:29:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 31.05.2006 12:29:13 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 06.06.2006 16:52:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 06.06.2006 16:52:53 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 07.06.2006 11:04:14 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 07.06.2006 11:07:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.06.2006 12:57:59 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.06.2006 12:58:09 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.06.2006 16:01:52 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.06.2006 16:02:19 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.06.2006 10:14:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 22.06.2006 10:16:20 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.06.2006 10:19:38 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 29.06.2006 10:25:59 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.06.2006 10:48:31 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 29.06.2006 10:48:41 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 30.06.2006 10:35:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 30.06.2006 10:36:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.07.2006 09:24:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 10.07.2006 10:02:56 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 09:26:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 18.07.2006 10:07:29 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 10:08:08 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 18.07.2006 10:08:20 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 10:21:35 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2006 10:21:43 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:27:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 13:59:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:59:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 15:05:46 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 14:09:37 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 21.07.2006 14:32:43 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 14:43:45 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 21.07.2006 14:43:53 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 15:59:51 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 24.07.2006 09:34:38 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 24.07.2006 10:16:40 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 24.07.2006 10:16:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 25.07.2006 16:03:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 25.07.2006 16:03:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 27.07.2006 15:58:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 27.07.2006 15:58:57 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.08.2006 12:10:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.08.2006 12:10:24 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 10:35:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 10:42:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 11:10:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 11:11:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.09.2006 14:36:18 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 11.09.2006 08:59:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.09.2006 12:38:52 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 15.09.2006 12:38:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 09:22:50 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 09:24:29 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 09:55:38 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 10:13:17 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 11:02:15 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 11:03:08 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 16:15:56 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 16:16:03 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.10.2006 10:45:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.10.2006 10:45:25 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.11.2006 10:25:06 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.11.2006 10:27:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.11.2006 10:33:46 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.11.2006 10:34:05 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.11.2006 16:11:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 02.11.2006 16:11:40 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.11.2006 16:13:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 02.11.2006 16:13:17 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 27.11.2006 08:53:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 27.11.2006 08:53:14 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: rj | DT: 04.12.2006 12:21:05 | VER: | TXT: | PC: RJ-XP-D | FROM: L:\H\IQ10\PlugLib | TO: C:\Plugins\SEW\Bin +// LIB | USER: rj | DT: 04.12.2006 12:25:20 | VER: ?? LB ?? | TXT: | PC: RJ-XP-D | FROM: C:\Plugins\SEW\Bin | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 08.12.2006 13:04:47 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 08.12.2006 13:23:18 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.01.2007 11:10:55 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 04.01.2007 11:11:03 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.01.2007 09:21:43 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 17.01.2007 09:21:50 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 05.04.2007 14:43:54 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 05.04.2007 14:45:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 06.04.2007 12:06:43 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 06.04.2007 12:07:39 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.05.2007 09:32:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.05.2007 09:38:35 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 16.05.2007 14:17:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 16.05.2007 14:17:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 09:40:33 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 10:26:05 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 10:26:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 10:26:19 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.09.2007 12:30:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 08.10.2007 09:59:47 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.11.2007 12:19:50 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 21.11.2007 12:46:40 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 20.03.2008 15:06:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 20.03.2008 16:14:02 | VER: 20080319 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 20.03.2008 18:29:09 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 20.03.2008 18:29:37 | VER: 20080319 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.04.2008 10:08:51 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 10.04.2008 10:13:29 | VER: 20080410 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 28.05.2008 09:16:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 28.05.2008 10:16:28 | VER: 20080528 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 28.05.2008 13:50:06 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 28.05.2008 13:54:50 | VER: 20080528 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 10:01:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 10:02:43 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 10:11:26 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 12:55:06 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 13:15:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 14:49:22 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:06:33 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 13:48:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.09.2008 15:01:30 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 15:19:11 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 09:10:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 10:07:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 10:38:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 11:31:11 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 12:11:54 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 12:24:42 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.10.2008 10:27:34 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.10.2008 12:26:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.12.2008 12:56:32 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 15.12.2008 14:32:56 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.12.2008 14:35:50 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 15.12.2008 14:46:42 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 07.01.2009 09:55:10 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\HELIOS +// LIB | USER: RK | DT: 07.01.2009 09:55:25 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 12:34:20 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 13:33:46 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 14:59:34 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 15:00:40 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 03.03.2009 15:27:54 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 03.03.2009 15:45:49 | VER: ?? LB ?? | TXT: ticha instalace | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 13.03.2009 15:33:11 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 13.03.2009 15:33:29 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 08.04.2009 12:54:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 08.04.2009 12:56:00 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 12:52:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 21.04.2009 13:01:14 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 13:33:23 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 21.04.2009 13:47:58 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 13:48:01 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 21.04.2009 13:48:10 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 11.05.2009 10:31:05 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 11.05.2009 10:31:11 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.05.2009 13:12:32 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.05.2009 14:34:09 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 17.06.2009 09:11:42 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 17.06.2009 09:15:27 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 17.06.2009 09:17:40 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 17.06.2009 09:21:35 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 22.06.2009 14:24:18 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 22.06.2009 14:31:54 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:23:47 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:25:39 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:33:46 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:34:50 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.07.2009 12:11:44 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 21.07.2009 13:41:16 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 23.07.2009 09:52:31 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 23.07.2009 09:53:53 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 27.07.2009 12:17:56 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 27.07.2009 12:34:50 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.07.2009 14:07:16 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 29.07.2009 14:50:29 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 24.09.2009 10:18:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 24.09.2009 10:25:06 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 22.12.2009 12:13:31 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 04.01.2010 13:49:57 | VER: 20100104 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.01.2010 08:52:15 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 15.01.2010 14:07:55 | VER: 20100115 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.01.2010 13:09:41 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 28.01.2010 13:09:54 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 11.03.2010 12:27:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 11.03.2010 12:29:33 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 09:31:04 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 09:37:13 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 09:46:42 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 09:47:36 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 14:05:19 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 14:50:03 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.04.2010 10:22:11 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 15.04.2010 10:22:24 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2010 11:50:48 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 21.04.2010 12:48:35 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.04.2010 09:33:17 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 28.04.2010 10:00:02 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.04.2010 12:45:41 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 29.04.2010 12:46:28 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 14.05.2010 20:36:26 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 14.05.2010 20:43:47 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 26.05.2010 15:22:43 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 26.05.2010 15:27:00 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 16.06.2010 12:04:29 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 16.06.2010 12:05:54 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.10.2010 08:24:18 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 01.10.2010 08:24:48 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.01.2011 08:38:41 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 05.01.2011 08:38:52 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.02.2011 11:45:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 28.02.2011 11:46:11 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.04.2011 13:09:05 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 12.04.2011 13:37:40 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.04.2011 13:38:05 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 12.04.2011 13:38:18 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 17.06.2011 15:18:19 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 17.06.2011 15:18:45 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 25.07.2011 10:13:40 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 25.07.2011 10:15:15 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 15.08.2011 18:55:41 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 15.08.2011 19:23:14 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 18.08.2011 16:18:40 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 18.08.2011 16:18:53 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 15:41:03 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:17 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 14.09.2011 21:04:48 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 14.09.2011 22:30:46 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:00:47 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:22:24 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:47:02 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:49:06 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:54:27 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:01:32 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 13.10.2011 20:19:31 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 13.10.2011 20:20:00 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: jaroslav.pfauser | DT: 04.01.2012 16:15:45 | VER: | TXT: zmena aktualniho roku | PC: PFAUSERJA-PC | FROM: L:\H\IQ10\PlugLib2 | TO: C:\Helios\Heo +// LIB | USER: jaroslav.pfauser | DT: 04.01.2012 16:16:12 | VER: ?? LB ?? | TXT: | PC: PFAUSERJA-PC | FROM: C:\Helios\Heo | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 25.01.2012 08:23:36 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 25.01.2012 08:24:20 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 31.01.2012 15:44:19 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 31.01.2012 15:46:10 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 03.08.2012 10:14:57 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 03.08.2012 10:15:41 | VER: ?? LB ?? | TXT: Cplg_SQLVersion_2008R2_SP2 | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 05.09.2012 13:09:58 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 05.09.2012 13:10:54 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 06.12.2012 12:34:52 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 06.12.2012 12:35:01 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: jaroslav.pfauser | DT: 02.01.2013 12:43:30 | VER: | TXT: | PC: PFAUSERJA-PC | FROM: L:\H\IQ10\PlugLib2 | TO: C:\HeO\dpr_pfa +// LIB | USER: jaroslav.pfauser | DT: 02.01.2013 12:43:56 | VER: ?? LB ?? | TXT: Cplg_AktualniRok = 2013 | PC: PFAUSERJA-PC | FROM: C:\HeO\dpr_pfa | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 04.04.2013 14:32:32 | VER: | TXT: | PC: KRUPICKARO-PC3 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 04.04.2013 14:33:23 | VER: ?? LB ?? | TXT: SQL2012 SP1 | PC: KRUPICKARO-PC3 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.04.2013 09:57:16 | VER: | TXT: | PC: KRUPICKARO-PC3 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample diff --git a/lib/plgTypeSoudky.inc b/lib/plgTypeSoudky.inc new file mode 100644 index 0000000..d21e96a --- /dev/null +++ b/lib/plgTypeSoudky.inc @@ -0,0 +1,5 @@ +type + TplgSoudek = (sdNeniVidet // neni videt ve stromecku (default) + +//last + ); diff --git a/lib/plgTypeTabulka.inc b/lib/plgTypeTabulka.inc new file mode 100644 index 0000000..1c859da --- /dev/null +++ b/lib/plgTypeTabulka.inc @@ -0,0 +1,7 @@ +// === TABULKY ================================================================ + +type + TplgTabulka = (tZadna + ); + +//last <- to je kvuli rychlejsimu hledani diff --git a/lib/plgTypeTxtEx.inc b/lib/plgTypeTxtEx.inc new file mode 100644 index 0000000..d581e37 --- /dev/null +++ b/lib/plgTypeTxtEx.inc @@ -0,0 +1,15 @@ +// === HLASKY OSTATNI ========================================================= +const +// priklad: +// plxMojeHlaska1=plx_MAX_Jadro+1; <--- POZOR musi byt plx_MAX_Jadro !! +// plxMojeHlaska2=plxMojeHlaska1+1; +// plx_MAX = plxMojeHlaska2; <--- plx_MAX se rovna posledni hlasce, ale bez +1 !! + + + plx_MAX = plx_MAX_Jadro; + +//last <- to je kvuli rychlejsimu hledani + + + + diff --git a/lib/plgTypeTxtJadro.INC b/lib/plgTypeTxtJadro.INC new file mode 100644 index 0000000..2007d69 --- /dev/null +++ b/lib/plgTypeTxtJadro.INC @@ -0,0 +1,192 @@ +// === HLASKY JADRA =========================================================== +const +plxNic=0; +plxOK=plxNic+1; +plxStorno=plxOK+1; +plxJadroUlozitZmeny=plxStorno+1; +plxJadroPrazdnaNeboChybneZadanaPolozka=plxJadroUlozitZmeny+1; +plxJadroOprPrejSmazAkt=plxJadroPrazdnaNeboChybneZadanaPolozka+1; +plxJadroOprPrejSmazVse=plxJadroOprPrejSmazAkt+1; +plxJadroNeni=plxJadroOprPrejSmazVse+1; +plxJadroPluginVyzadujeMinVerziX=plxJadroNeni+1; +plxJadroAkceNemuzeBytSpustena=plxJadroPluginVyzadujeMinVerziX+1; +plxJadroMenuEditace=plxJadroAkceNemuzeBytSpustena+1; +plxJadroAkceNovy=plxJadroMenuEditace+1; +plxJadroAkceOprava=plxJadroAkceNovy+1; +plxJadroAkceZrusit=plxJadroAkceOprava+1; +plxJadroPouzeKeCteni=plxJadroAkceZrusit+1; +plxJadroZavrit=plxJadroPouzeKeCteni+1; +plxJadroIndexSeZmenil=plxJadroZavrit+1; +plxJadroIndexV_DB_Chybi=plxJadroIndexSeZmenil+1; +plxJadroKontrolaPluginuX=plxJadroIndexV_DB_Chybi+1; +plxJadroSpustit=plxJadroKontrolaPluginuX+1; +plxJadroZmenoveSkripty=plxJadroSpustit+1; +plxJadroKontrolaTabulek=plxJadroZmenoveSkripty+1; +plxJadroKontrolaJednotlivychAtributu=plxJadroKontrolaTabulek+1; +plxJadroKontrolaUnikatnichKlicu=plxJadroKontrolaJednotlivychAtributu+1; +plxJadroKontrolaIntegritnichOmezeni=plxJadroKontrolaUnikatnichKlicu+1; +plxJadroKontrolaCizichKlicu=plxJadroKontrolaIntegritnichOmezeni+1; +plxJadroKontrolaUlozenychProcedur=plxJadroKontrolaCizichKlicu+1; +plxJadroKontrolaTriggeru=plxJadroKontrolaUlozenychProcedur+1; +plxJadroKontrolaIndexu=plxJadroKontrolaTriggeru+1; +plxJadroKontrolaPrehledu_a_Akci=plxJadroKontrolaIndexu+1; +plxJadroImportFormularuFilruOpisu=plxJadroKontrolaPrehledu_a_Akci+1; +plxJadroZmenovySkriptJizBylProveden=plxJadroImportFormularuFilruOpisu+1; +plxJadroUpdateZVerze_X_NaVerzi_Y=plxJadroZmenovySkriptJizBylProveden+1; +plxJadroZmenovychSkriptuX=plxJadroUpdateZVerze_X_NaVerzi_Y+1; +plxJadroInstalaceHotovo=plxJadroZmenovychSkriptuX+1; +plxJadro_X_BudeNyniUkoncen=plxJadroInstalaceHotovo+1; +plxJadroBylaDetekovanaZmenaStruktury=plxJadro_X_BudeNyniUkoncen+1; +plxJadroUvedeneTabulkyChybi=plxJadroBylaDetekovanaZmenaStruktury+1; +plxJadroVytvoreniZakladnichPrehledu=plxJadroUvedeneTabulkyChybi+1; +plxJadroZmenaStrukturyDB=plxJadroVytvoreniZakladnichPrehledu+1; +plxJadroOpravduSiPrejeteUvedeneZmeny=plxJadroZmenaStrukturyDB+1; +plxJadroPredZmenamiDoporucujemeZalohuDB=plxJadroOpravduSiPrejeteUvedeneZmeny+1; +plxJadroTlacitkoZalohovani=plxJadroPredZmenamiDoporucujemeZalohuDB+1; +plxJadroProvest=plxJadroTlacitkoZalohovani+1; +plxJadroAkceUkazSQLSkript=plxJadroProvest+1; +plxJadroDefinovaneFormulare=plxJadroAkceUkazSQLSkript+1; +plxJadroDefinovaneFiltry=plxJadroDefinovaneFormulare+1; +plxJadroDefinovaneOpisy=plxJadroDefinovaneFiltry+1; +plxJadroAutoImportInfo=plxJadroDefinovaneOpisy+1; +plxJadroAbout_OPluginu=plxJadroAutoImportInfo+1; +plxJadroKopirovat=plxJadroAbout_OPluginu+1; +plxJadroAbout_Nazev=plxJadroKopirovat+1; +plxJadroAbout_Hodnota=plxJadroAbout_Nazev+1; +plxJadroVerze=plxJadroAbout_Hodnota+1; +plxJadroAbout_Vyrobce=plxJadroVerze+1; +plxJadroAbout_MinVerze_X=plxJadroAbout_Vyrobce+1; +plxJadroAbout_JADRO=plxJadroAbout_MinVerze_X+1; +plxJadroVerze_V_DB=plxJadroAbout_JADRO+1; +plxJadroVerzePluginu=plxJadroVerze_V_DB+1; +plxJadroVerzePluginuJeNizsiNezVDB=plxJadroVerzePluginu+1; +plxJadroNeznamaAkce=plxJadroVerzePluginuJeNizsiNezVDB+1; +plxJadroJeTrebaSpustitInstalaciPluginu=plxJadroNeznamaAkce+1; +plxJadroVerzePluginuJeVyssiNezVDB=plxJadroJeTrebaSpustitInstalaciPluginu+1; +plxJadroMinulaInstalaceNeprobehlaKorektne=plxJadroVerzePluginuJeVyssiNezVDB+1; +plxJadroVymazat=plxJadroMinulaInstalaceNeprobehlaKorektne+1; +plxJadroZakazkaXJeUzavrena=plxJadroVymazat+1; +plxJadroNalezenoViceStejnychHodnotPolozky=plxJadroZakazkaXJeUzavrena+1; +plxJadroOrganizaceJeZakazana=plxJadroNalezenoViceStejnychHodnotPolozky+1; +plxJadroOrganizaceJeBlokovana=plxJadroOrganizaceJeZakazana+1; +plxJadroInfoOrg_DluhXKeDniY=plxJadroOrganizaceJeBlokovana+1; +plxJadroDatumPoslednihoAutoImportuFormularu=plxJadroInfoOrg_DluhXKeDniY+1; +plxJadroDatumPoslednihoAutoImportuFiltru=plxJadroDatumPoslednihoAutoImportuFormularu+1; +plxJadroDatumPoslednihoAutoImportuOpisu=plxJadroDatumPoslednihoAutoImportuFiltru+1; +plxJadroSystemoveCislo=plxJadroDatumPoslednihoAutoImportuOpisu+1; +plxJadroSysCisZkr=plxJadroSystemoveCislo+1; +plxJadroAutor=plxJadroSysCisZkr+1; +plxJadroDatumPorizeni=plxJadroAutor+1; +plxJadroZmenil=plxJadroDatumPorizeni+1; +plxJadroDatumZmeny=plxJadroZmenil+1; +plxJadroBlokovaniEditoru=plxJadroDatumZmeny+1; +plxJadroNovy=plxJadroBlokovaniEditoru+1; +plxJadroOprava=plxJadroNovy+1; +plxJadroZrusit=plxJadroOprava+1; +plxJadroObnovit=plxJadroZrusit+1; +plxJadroAno=plxJadroObnovit+1; +plxJadroNe=plxJadroAno+1; +plxJadroNebylNalezenPrehled_X_Y=plxJadroNe+1; +plxJadroNebylNalezenPrehledCislo_X=plxJadroNebylNalezenPrehled_X_Y+1; +plxJadroDefPrehledy_a_JejichAkce=plxJadroNebylNalezenPrehledCislo_X+1; +plxJadroExterniAkce=plxJadroDefPrehledy_a_JejichAkce+1; +plxJadroAkceProPrehledCislo_X=plxJadroExterniAkce+1; +plxJadroDefinovaneVazby=plxJadroAkceProPrehledCislo_X+1; +plxJadroExterniAtributy=plxJadroDefinovaneVazby+1; +plxJadroExterniAtribut_T_A=plxJadroExterniAtributy+1; +plxJadroUzivatelskeSoudecky=plxJadroExterniAtribut_T_A+1; +plxJadroPoradiSoudecku=plxJadroUzivatelskeSoudecky+1; +plxJadroInstalace=plxJadroPoradiSoudecku+1; +plxJadroZakladniInformace=plxJadroInstalace+1; +plxJadroTechnickyPopis=plxJadroZakladniInformace+1; +plxJadroMinVerzeSQLServeru=plxJadroTechnickyPopis+1; +plxJadroNeinstalovano=plxJadroMinVerzeSQLServeru+1; +plxJadroInstalovanaVerze=plxJadroNeinstalovano+1; +plxJadroUmisteni=plxJadroInstalovanaVerze+1; +plxJadroPrerusit=plxJadroUmisteni+1; +plxJadroOpravduAkciPrerusit=plxJadroPrerusit+1; +plxJadroPluginVyzadujeMinVerziSQL_X=plxJadroOpravduAkciPrerusit+1; +plxJadroNavaznyCiselnikSFiltraci=plxJadroPluginVyzadujeMinVerziSQL_X+1; +plxJadroNavaznyCiselnik=plxJadroNavaznyCiselnikSFiltraci+1; +plxJadroOdesilamPostu=plxJadroNavaznyCiselnik+1; +plxJadroMailNebylNalezenHeMail=plxJadroOdesilamPostu+1; +plxJadroMailNepodariloSeVytvoriKonfigSoubor=plxJadroMailNebylNalezenHeMail+1; +plxJadroKontrolaExternichAtributu=plxJadroMailNepodariloSeVytvoriKonfigSoubor+1; +plxJadroStredisko_X_JeZakazano=plxJadroKontrolaExternichAtributu+1; +plxJadroRegistrovanyOtaznik=plxJadroStredisko_X_JeZakazano+1; +plxJadroIdentifikator=plxJadroRegistrovanyOtaznik+1; +plxJadro_Nepouzito_=plxJadroIdentifikator+1; +plxJadroLogo=plxJadro_Nepouzito_+1; +plxJadroExterniHlasky=plxJadroLogo+1; +plxJadroDoplneniExternichHlasek=plxJadroExterniHlasky+1; +plxJadroAbout_IdentifikaceVyrobce=plxJadroDoplneniExternichHlasek+1; +plxJadroHistorieVerzi=plxJadroAbout_IdentifikaceVyrobce+1; +plxJadroZaznamJeBlokovanNelzeSmazat=plxJadroHistorieVerzi+1; +plxJadroDefinovanyPrehled_X_NebylNalezen=plxJadroZaznamJeBlokovanNelzeSmazat+1; +plxJadroCislaPrehleduBylaVycerpana=plxJadroDefinovanyPrehled_X_NebylNalezen+1; +plxJadroPredchoziRok=plxJadroCislaPrehleduBylaVycerpana+1; +plxJadroPredchoziMesic=plxJadroPredchoziRok+1; +plxJadroNasledujiciMesic=plxJadroPredchoziMesic+1; +plxJadroNasledujiciRok=plxJadroNasledujiciMesic+1; +plxJadroZvolteDatum=plxJadroNasledujiciRok+1; +plxJadroDnes=plxJadroZvolteDatum+1; +plxJadroKalendar=plxJadroDnes+1; +plxJadroAktualniCas=plxJadroKalendar+1; +plxJadroKalkulacka=plxJadroAktualniCas+1; +plxJadroKontrolaUzivatelskychFunkci=plxJadroKalkulacka+1; +plxJadroPrevodDoUNICODE=plxJadroKontrolaUzivatelskychFunkci+1; +plxJadroDoplneniPrehleduProUzivAtr=plxJadroPrevodDoUNICODE+1; +plxJadroSkupinaNastrojuPrizpusobeni=plxJadroDoplneniPrehleduProUzivAtr+1; +plxJadroDoplneniSkupiny=plxJadroSkupinaNastrojuPrizpusobeni+1; +plxJadroVlastniInstalace=plxJadroDoplneniSkupiny+1; +plxJadroHotovo=plxJadroVlastniInstalace+1; +plxJadroOmezeniVDBPrebyva=plxJadroHotovo+1; +plxJadroPocitanyAtributChybi=plxJadroOmezeniVDBPrebyva+1; +plxJadroAtributVTabulceChybi=plxJadroPocitanyAtributChybi+1; +plxJadroZmenaPocitanehoAtributuSmazani=plxJadroAtributVTabulceChybi+1; +plxJadroZmenaPocitanehoAtributuPridani=plxJadroZmenaPocitanehoAtributuSmazani+1; +plxJadroZmenaPocitanehoAtributuKodDB=plxJadroZmenaPocitanehoAtributuPridani+1; +plxJadroAtributVTabulcePrebyva=plxJadroZmenaPocitanehoAtributuKodDB+1; +plxJadroOmezeniJeVDBVypnuto=plxJadroAtributVTabulcePrebyva+1; +plxJadroOmezeniVDBChybi=plxJadroOmezeniJeVDBVypnuto+1; +plxJadroOmezeniSeVDBZmenilo=plxJadroOmezeniVDBChybi+1; +plxJadroOmezeniSeVDBZmeniloKodDB=plxJadroOmezeniSeVDBZmenilo+1; +plxJadroOmezeniJeVypnuto=plxJadroOmezeniSeVDBZmeniloKodDB+1; +plxJadroUlozenkaVDBChybi=plxJadroOmezeniJeVypnuto+1; +plxJadroNastaveniPravKUlozence=plxJadroUlozenkaVDBChybi+1; +plxJadroUlozenkaSeZmenila=plxJadroNastaveniPravKUlozence+1; +plxJadroFunkceVDBChybi=plxJadroUlozenkaSeZmenila+1; +plxJadroNastaveniPravKFunkci=plxJadroFunkceVDBChybi+1; +plxJadroFunkceSeZmenila=plxJadroNastaveniPravKFunkci+1; +plxJadroTriggerVDBChybi=plxJadroFunkceSeZmenila+1; +plxJadroTriggerVDBPrebyva=plxJadroTriggerVDBChybi+1; +plxJadroTriggerJeVDBVypnut=plxJadroTriggerVDBPrebyva+1; +plxJadroTriggerVDBSeZmenil=plxJadroTriggerJeVDBVypnut+1; +plxJadroIndexJeVDBPrejmenovan=plxJadroTriggerVDBSeZmenil+1; +plxJadroHeslo=plxJadroIndexJeVDBPrejmenovan+1; +plxJadroZobrazitHeslo=plxJadroHeslo+1; +plxJadroAdresarProJazykovaDLL=plxJadroZobrazitHeslo+1; +plxJadroVysledek=plxJadroAdresarProJazykovaDLL+1; +plxJadroPluginNeobsahujeZadneHlasky=plxJadroVysledek+1; +plxJadroNeniZadanoHeslo=plxJadroPluginNeobsahujeZadneHlasky+1; +plxJadroNeniZadanAdresarProJazykovaDLL=plxJadroNeniZadanoHeslo+1; +plxJadroAdresarProJazykovaDLLNeexistuje=plxJadroNeniZadanAdresarProJazykovaDLL+1; +plxJadroPodporaTicheInstalacePluginu=plxJadroAdresarProJazykovaDLLNeexistuje+1; +plxJadroNepodporaOdinstalace=plxJadroPodporaTicheInstalacePluginu+1; + +plx_MAX_Jadro = plxJadroNepodporaOdinstalace; + +//last <- to je kvuli rychlejsimu hledani + +// LOCAL | USER: RK | DT: 27.11.2006 09:11:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 27.11.2006 09:16:26 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2008 15:31:34 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.07.2008 15:34:00 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:01:28 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 10:03:08 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.03.2009 14:00:44 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 05.03.2009 14:05:46 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 16:52:33 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:38 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 16:19:41 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:28:35 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 diff --git a/lib/plgTypeUTA.inc b/lib/plgTypeUTA.inc new file mode 100644 index 0000000..e69de29 diff --git a/lib/plgTypeZbytek.inc b/lib/plgTypeZbytek.inc new file mode 100644 index 0000000..1fad3bc --- /dev/null +++ b/lib/plgTypeZbytek.inc @@ -0,0 +1,3 @@ + +// Typy a konstanty tykajici se pouze daneho pluginu + diff --git a/lib/plgUtaDef.inc b/lib/plgUtaDef.inc new file mode 100644 index 0000000..e69de29 diff --git a/lib/plgVerze.INC b/lib/plgVerze.INC new file mode 100644 index 0000000..1365162 --- /dev/null +++ b/lib/plgVerze.INC @@ -0,0 +1,14 @@ +$030020260407 +{MMnnRRRRMMDD} + +{ MM = major verze } +{ nn = minor verze } +{ RRRR = rok } +{ MM = mesic } +{ DD = den } + +{ - cislo (hexadecimalne) verze jako typ Int64 - je v include, protoze se } +{ externe nacita pri distribucni kompilaci pro pridani VERSION INFO do EXE } + +{ - toto cislo MUSI byt na PRVNIM RADKU tohoto souboru a na temze } +{ radku nesmi byt dalsi znaky (komentare apod.) } diff --git a/libPPL_Intf.pas b/libPPL_Intf.pas new file mode 100644 index 0000000..0324767 --- /dev/null +++ b/libPPL_Intf.pas @@ -0,0 +1,17640 @@ +unit libPPL_Intf; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I RemObjects.inc} + +interface + +uses + {vcl:} Classes, TypInfo, + {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf; + +const + { Library ID } + LibraryUID = '{8F02AB81-FC0D-45A7-B017-9D82F0766E03}'; + WSDLLocation = 'http://www.ppl.cz/IEGate/IEGate.asmx?WSDL'; + TargetNamespace = 'PPLIEGate'; + + { Service Interface ID's } + IIEGate_IID : TGUID = '{E379A095-D779-4864-9A1B-F99840E8385A}'; + IEGate_EndPointURI = 'http://www.ppl.cz/IEGate/IEGate.asmx'; + + { Event ID's } + +type + TSeekOrigin = Classes.TSeekOrigin; // fake declaration + { Forward declarations } + IIEGate = interface; + + ArrayOfAnyType = class; + ArrayOfPPLSprintItem = class; + ArrayOfZipCode = class; + ArrayOfCity = class; + ArrayOfString = class; + ArrayOfPackageInfo = class; + StringArray = class; + + ImportPPLSprint = class; + colPPLSprint = class; + Package = class; + PPLSprint = class; + PPLSprintItem = class; + PackageToList = class; + PackageHoffmann = class; + City = class; + PackageWeighed = class; + ZipCode = class; + PackageEsyco = class; + ImportPPLSprintResponse = class; + GetZipCodes = class; + GetZipCodesResponse = class; + GetCities = class; + GetCitiesResponse = class; + GetPackagesInfo = class; + PackageInfo = class; + GetPackagesInfoResponse = class; + GetPackageToDelivery = class; + colPackage = class; + GetPackageToDeliveryResponse = class; + GetPackageInfo = class; + GetPackageInfoResponse = class; + ImportOrderExt = class; + Order = class; + ImportOrderExtResponse = class; + ImportOrdersExt = class; + colOrder = class; + ImportOrdersExtResponse = class; + ImportPackageExt = class; + ImportPackageExtResponse = class; + ImportPackagesExt = class; + ImportPackagesExtResponse = class; + ImportPackages = class; + ImportPackagesResponse_ImportPackagesResult = class; + ImportPackagesResponse = class; + ImportOrders = class; + ImportOrdersResponse_ImportOrdersResult = class; + ImportOrdersResponse = class; + ImportWeighedPack = class; + ImportWeighedPackResponse = class; + ImportWeighedPackages = class; + colPackageWeighed = class; + ImportWeighedPackagesResponse = class; + ImportPackagesHoffmann = class; + colPackageHoffmann = class; + ImportPackagesHoffmannResponse = class; + ImportESYCOPack = class; + ImportESYCOPackResponse = class; + ImportESYCOPackages = class; + ImportESYCOPackagesResponse = class; + ImportStatusDHL = class; + StatusDHL = class; + ImportStatusDHLResponse = class; + ImportStatusesDHL = class; + colStatus = class; + ImportStatusesDHLResponse = class; + ImportOrderCart = class; + OrderCart = class; + ImportOrderCartResponse = class; + ImportOrdersCart = class; + colOrderCart = class; + ImportOrdersCartResponse = class; + + + { ImportPPLSprint } + ImportPPLSprint = class(TROComplexType) + private + fFirCode: UnicodeString; + fpackages: colPPLSprint; + function Getpackages: colPPLSprint; + protected + property int_packages: colPPLSprint read fpackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property packages:colPPLSprint read Getpackages write fpackages; + end; + + { ImportPPLSprintCollection } + ImportPPLSprintCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPPLSprint; + procedure SetItems(aIndex: integer; const Value: ImportPPLSprint); + public + constructor Create; overload; + function Add: ImportPPLSprint; reintroduce; + property Items[Index: integer]:ImportPPLSprint read GetItems write SetItems; default; + end; + + { colPPLSprint } + colPPLSprint = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colPPLSprintCollection } + colPPLSprintCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colPPLSprint; + procedure SetItems(aIndex: integer; const Value: colPPLSprint); + public + constructor Create; overload; + function Add: colPPLSprint; reintroduce; + property Items[Index: integer]:colPPLSprint read GetItems write SetItems; default; + end; + + { Package } + Package = class(TROComplexType) + private + fPackageID: UnicodeString; + fPackageIDCUS: UnicodeString; + ffield_ZipCode: UnicodeString; + fCountry: UnicodeString; + fCodPrice: decimal; + fCodPriceCurID: UnicodeString; + fVarSym: UnicodeString; + fConsigneeName: UnicodeString; + fConsigneeStreet: UnicodeString; + fConsigneeCity: UnicodeString; + fPhone: UnicodeString; + fContact: UnicodeString; + fEveningDelivery: boolean; + fCustRef: UnicodeString; + fLength: UnicodeString; + fHeight: UnicodeString; + fWidth: UnicodeString; + fRecMail: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + property PackageIDCUS:UnicodeString read fPackageIDCUS write fPackageIDCUS; + property field_ZipCode:UnicodeString read ffield_ZipCode write ffield_ZipCode; + property Country:UnicodeString read fCountry write fCountry; + property CodPrice:decimal read fCodPrice write fCodPrice; + property CodPriceCurID:UnicodeString read fCodPriceCurID write fCodPriceCurID; + property VarSym:UnicodeString read fVarSym write fVarSym; + property ConsigneeName:UnicodeString read fConsigneeName write fConsigneeName; + property ConsigneeStreet:UnicodeString read fConsigneeStreet write fConsigneeStreet; + property ConsigneeCity:UnicodeString read fConsigneeCity write fConsigneeCity; + property Phone:UnicodeString read fPhone write fPhone; + property Contact:UnicodeString read fContact write fContact; + property EveningDelivery:boolean read fEveningDelivery write fEveningDelivery; + property CustRef:UnicodeString read fCustRef write fCustRef; + property Length:UnicodeString read fLength write fLength; + property Height:UnicodeString read fHeight write fHeight; + property Width:UnicodeString read fWidth write fWidth; + property RecMail:UnicodeString read fRecMail write fRecMail; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { PackageCollection } + PackageCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): Package; + procedure SetItems(aIndex: integer; const Value: Package); + public + constructor Create; overload; + function Add: Package; reintroduce; + property Items[Index: integer]:Package read GetItems write SetItems; default; + end; + + { PPLSprint } + PPLSprint = class(TROComplexType) + private + fPackageIdPPL: UnicodeString; + fDCOD: UnicodeString; + fPackageType: Integer; + fPickupDate: DateTime; + fPickupTimeFrom: UnicodeString; + fPickupTimeTo: UnicodeString; + fDelivTimeFrom: UnicodeString; + fDelivTimeTo: UnicodeString; + fCountOfEuroPal: Integer; + fDeliveryTerms: UnicodeString; + fEmail: UnicodeString; + fGoodsDesc: UnicodeString; + fNote: UnicodeString; + fCustRef: UnicodeString; + fInsurance: UnicodeString; + fInsuranceValue: Integer; + fCodValue: decimal; + fCodVarCode: UnicodeString; + fSendName: UnicodeString; + fSendStreet: UnicodeString; + fSendCity: UnicodeString; + fSendZipCode: UnicodeString; + fSendContact: UnicodeString; + fSendPhone: UnicodeString; + fSendOrgId: UnicodeString; + fSendOrgVatId: UnicodeString; + fRecName: UnicodeString; + fRecStreet: UnicodeString; + fRecCity: UnicodeString; + fRecZipCode: UnicodeString; + fRecContact: UnicodeString; + fRecPhone: UnicodeString; + fRecOrgId: UnicodeString; + fRecOrgVatId: UnicodeString; + fEurBack: boolean; + fLatePickup: boolean; + fStock: boolean; + fThirdDeliv: boolean; + fPOD: boolean; + fSaturdayDeliv: boolean; + fOutWorkTime: boolean; + fOutWorkTimePickup: boolean; + fCrgManId: Integer; + fPayOnDelivery: boolean; + fDocBack: boolean; + fADR: boolean; + fIdPri: UnicodeString; + fAccount: UnicodeString; + fBankCode: UnicodeString; + fSpecSymbol: UnicodeString; + fPackageItems: ArrayOfPPLSprintItem; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetPackageItems: ArrayOfPPLSprintItem; + protected + property int_PackageItems: ArrayOfPPLSprintItem read fPackageItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageIdPPL:UnicodeString read fPackageIdPPL write fPackageIdPPL; + property DCOD:UnicodeString read fDCOD write fDCOD; + property PackageType:Integer read fPackageType write fPackageType; + property PickupDate:DateTime read fPickupDate write fPickupDate; + property PickupTimeFrom:UnicodeString read fPickupTimeFrom write fPickupTimeFrom; + property PickupTimeTo:UnicodeString read fPickupTimeTo write fPickupTimeTo; + property DelivTimeFrom:UnicodeString read fDelivTimeFrom write fDelivTimeFrom; + property DelivTimeTo:UnicodeString read fDelivTimeTo write fDelivTimeTo; + property CountOfEuroPal:Integer read fCountOfEuroPal write fCountOfEuroPal; + property DeliveryTerms:UnicodeString read fDeliveryTerms write fDeliveryTerms; + property Email:UnicodeString read fEmail write fEmail; + property GoodsDesc:UnicodeString read fGoodsDesc write fGoodsDesc; + property Note:UnicodeString read fNote write fNote; + property CustRef:UnicodeString read fCustRef write fCustRef; + property Insurance:UnicodeString read fInsurance write fInsurance; + property InsuranceValue:Integer read fInsuranceValue write fInsuranceValue; + property CodValue:decimal read fCodValue write fCodValue; + property CodVarCode:UnicodeString read fCodVarCode write fCodVarCode; + property SendName:UnicodeString read fSendName write fSendName; + property SendStreet:UnicodeString read fSendStreet write fSendStreet; + property SendCity:UnicodeString read fSendCity write fSendCity; + property SendZipCode:UnicodeString read fSendZipCode write fSendZipCode; + property SendContact:UnicodeString read fSendContact write fSendContact; + property SendPhone:UnicodeString read fSendPhone write fSendPhone; + property SendOrgId:UnicodeString read fSendOrgId write fSendOrgId; + property SendOrgVatId:UnicodeString read fSendOrgVatId write fSendOrgVatId; + property RecName:UnicodeString read fRecName write fRecName; + property RecStreet:UnicodeString read fRecStreet write fRecStreet; + property RecCity:UnicodeString read fRecCity write fRecCity; + property RecZipCode:UnicodeString read fRecZipCode write fRecZipCode; + property RecContact:UnicodeString read fRecContact write fRecContact; + property RecPhone:UnicodeString read fRecPhone write fRecPhone; + property RecOrgId:UnicodeString read fRecOrgId write fRecOrgId; + property RecOrgVatId:UnicodeString read fRecOrgVatId write fRecOrgVatId; + property EurBack:boolean read fEurBack write fEurBack; + property LatePickup:boolean read fLatePickup write fLatePickup; + property Stock:boolean read fStock write fStock; + property ThirdDeliv:boolean read fThirdDeliv write fThirdDeliv; + property POD:boolean read fPOD write fPOD; + property SaturdayDeliv:boolean read fSaturdayDeliv write fSaturdayDeliv; + property OutWorkTime:boolean read fOutWorkTime write fOutWorkTime; + property OutWorkTimePickup:boolean read fOutWorkTimePickup write fOutWorkTimePickup; + property CrgManId:Integer read fCrgManId write fCrgManId; + property PayOnDelivery:boolean read fPayOnDelivery write fPayOnDelivery; + property DocBack:boolean read fDocBack write fDocBack; + property ADR:boolean read fADR write fADR; + property IdPri:UnicodeString read fIdPri write fIdPri; + property Account:UnicodeString read fAccount write fAccount; + property BankCode:UnicodeString read fBankCode write fBankCode; + property SpecSymbol:UnicodeString read fSpecSymbol write fSpecSymbol; + property PackageItems:ArrayOfPPLSprintItem read GetPackageItems write fPackageItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { PPLSprintCollection } + PPLSprintCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PPLSprint; + procedure SetItems(aIndex: integer; const Value: PPLSprint); + public + constructor Create; overload; + function Add: PPLSprint; reintroduce; + property Items[Index: integer]:PPLSprint read GetItems write SetItems; default; + end; + + { PPLSprintItem } + PPLSprintItem = class(TROComplexType) + private + fLPNumber: UnicodeString; + fCaseDescription: UnicodeString; + fWeight: decimal; + fLength: Integer; + fHeight: Integer; + fWidth: Integer; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property LPNumber:UnicodeString read fLPNumber write fLPNumber; + property CaseDescription:UnicodeString read fCaseDescription write fCaseDescription; + property Weight:decimal read fWeight write fWeight; + property Length:Integer read fLength write fLength; + property Height:Integer read fHeight write fHeight; + property Width:Integer read fWidth write fWidth; + end; + + { PPLSprintItemCollection } + PPLSprintItemCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PPLSprintItem; + procedure SetItems(aIndex: integer; const Value: PPLSprintItem); + public + constructor Create; overload; + function Add: PPLSprintItem; reintroduce; + procedure SaveToArray(anArray: ArrayOfPPLSprintItem); + procedure LoadFromArray(anArray: ArrayOfPPLSprintItem); + property Items[Index: integer]:PPLSprintItem read GetItems write SetItems; default; + end; + + { PackageToList } + PackageToList = class(TROComplexType) + private + fPackageID: UnicodeString; + fWeight: decimal; + fToDelivDate: UnicodeString; + fRecName: UnicodeString; + fRecStreet: UnicodeString; + fRecCity: UnicodeString; + fRecZipCode: UnicodeString; + fCod: UnicodeString; + fCodPrice: decimal; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + property Weight:decimal read fWeight write fWeight; + property ToDelivDate:UnicodeString read fToDelivDate write fToDelivDate; + property RecName:UnicodeString read fRecName write fRecName; + property RecStreet:UnicodeString read fRecStreet write fRecStreet; + property RecCity:UnicodeString read fRecCity write fRecCity; + property RecZipCode:UnicodeString read fRecZipCode write fRecZipCode; + property Cod:UnicodeString read fCod write fCod; + property CodPrice:decimal read fCodPrice write fCodPrice; + end; + + { PackageToListCollection } + PackageToListCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PackageToList; + procedure SetItems(aIndex: integer; const Value: PackageToList); + public + constructor Create; overload; + function Add: PackageToList; reintroduce; + property Items[Index: integer]:PackageToList read GetItems write SetItems; default; + end; + + { PackageHoffmann } + PackageHoffmann = class(TROComplexType) + private + fPackageID: UnicodeString; + ffield_ZipCode: UnicodeString; + fWeight: decimal; + fCountry: UnicodeString; + fPrice: decimal; + fConsigneeName1: UnicodeString; + fConsigneeName2: UnicodeString; + fConsigneeName3: UnicodeString; + fConsigneeName4: UnicodeString; + fConsigneeStreet: UnicodeString; + fConsigneeCity: UnicodeString; + fVarSym: UnicodeString; + fPhone: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + property field_ZipCode:UnicodeString read ffield_ZipCode write ffield_ZipCode; + property Weight:decimal read fWeight write fWeight; + property Country:UnicodeString read fCountry write fCountry; + property Price:decimal read fPrice write fPrice; + property ConsigneeName1:UnicodeString read fConsigneeName1 write fConsigneeName1; + property ConsigneeName2:UnicodeString read fConsigneeName2 write fConsigneeName2; + property ConsigneeName3:UnicodeString read fConsigneeName3 write fConsigneeName3; + property ConsigneeName4:UnicodeString read fConsigneeName4 write fConsigneeName4; + property ConsigneeStreet:UnicodeString read fConsigneeStreet write fConsigneeStreet; + property ConsigneeCity:UnicodeString read fConsigneeCity write fConsigneeCity; + property VarSym:UnicodeString read fVarSym write fVarSym; + property Phone:UnicodeString read fPhone write fPhone; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { PackageHoffmannCollection } + PackageHoffmannCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PackageHoffmann; + procedure SetItems(aIndex: integer; const Value: PackageHoffmann); + public + constructor Create; overload; + function Add: PackageHoffmann; reintroduce; + property Items[Index: integer]:PackageHoffmann read GetItems write SetItems; default; + end; + + { City } + City = class(TROComplexType) + private + fZip: UnicodeString; + ffield_City: UnicodeString; + fRegion: UnicodeString; + fPost: UnicodeString; + fCountry: UnicodeString; + fReject: boolean; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Zip:UnicodeString read fZip write fZip; + property field_City:UnicodeString read ffield_City write ffield_City; + property Region:UnicodeString read fRegion write fRegion; + property Post:UnicodeString read fPost write fPost; + property Country:UnicodeString read fCountry write fCountry; + property Reject:boolean read fReject write fReject; + end; + + { CityCollection } + CityCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): City; + procedure SetItems(aIndex: integer; const Value: City); + public + constructor Create; overload; + function Add: City; reintroduce; + procedure SaveToArray(anArray: ArrayOfCity); + procedure LoadFromArray(anArray: ArrayOfCity); + property Items[Index: integer]:City read GetItems write SetItems; default; + end; + + { PackageWeighed } + PackageWeighed = class(TROComplexType) + private + fPackageID: UnicodeString; + fPackageIDCUS: UnicodeString; + fInputDestination: UnicodeString; + fOutputDestination: UnicodeString; + ffield_ZipCode: UnicodeString; + fWeight: decimal; + fCountry: UnicodeString; + fPrice: decimal; + fPriceCurID: UnicodeString; + fConsigneeName: UnicodeString; + fConsigneeStreet: UnicodeString; + fConsigneeCity: UnicodeString; + fPhone: UnicodeString; + fVarSym: UnicodeString; + fAccount: UnicodeString; + fBankCode: UnicodeString; + fSpecSymbol: UnicodeString; + fDateDelivFrom: UnicodeString; + fDateDelivTo: UnicodeString; + fContact: UnicodeString; + fCustRef: UnicodeString; + fEveningDelivery: boolean; + fLength: UnicodeString; + fHeight: UnicodeString; + fWidth: UnicodeString; + fRecMail: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + property PackageIDCUS:UnicodeString read fPackageIDCUS write fPackageIDCUS; + property InputDestination:UnicodeString read fInputDestination write fInputDestination; + property OutputDestination:UnicodeString read fOutputDestination write fOutputDestination; + property field_ZipCode:UnicodeString read ffield_ZipCode write ffield_ZipCode; + property Weight:decimal read fWeight write fWeight; + property Country:UnicodeString read fCountry write fCountry; + property Price:decimal read fPrice write fPrice; + property PriceCurID:UnicodeString read fPriceCurID write fPriceCurID; + property ConsigneeName:UnicodeString read fConsigneeName write fConsigneeName; + property ConsigneeStreet:UnicodeString read fConsigneeStreet write fConsigneeStreet; + property ConsigneeCity:UnicodeString read fConsigneeCity write fConsigneeCity; + property Phone:UnicodeString read fPhone write fPhone; + property VarSym:UnicodeString read fVarSym write fVarSym; + property Account:UnicodeString read fAccount write fAccount; + property BankCode:UnicodeString read fBankCode write fBankCode; + property SpecSymbol:UnicodeString read fSpecSymbol write fSpecSymbol; + property DateDelivFrom:UnicodeString read fDateDelivFrom write fDateDelivFrom; + property DateDelivTo:UnicodeString read fDateDelivTo write fDateDelivTo; + property Contact:UnicodeString read fContact write fContact; + property CustRef:UnicodeString read fCustRef write fCustRef; + property EveningDelivery:boolean read fEveningDelivery write fEveningDelivery; + property Length:UnicodeString read fLength write fLength; + property Height:UnicodeString read fHeight write fHeight; + property Width:UnicodeString read fWidth write fWidth; + property RecMail:UnicodeString read fRecMail write fRecMail; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { PackageWeighedCollection } + PackageWeighedCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PackageWeighed; + procedure SetItems(aIndex: integer; const Value: PackageWeighed); + public + constructor Create; overload; + function Add: PackageWeighed; reintroduce; + property Items[Index: integer]:PackageWeighed read GetItems write SetItems; default; + end; + + { ZipCode } + ZipCode = class(TROComplexType) + private + fZip: UnicodeString; + fPost: UnicodeString; + fDepot: UnicodeString; + fDestination: UnicodeString; + fVisual: Integer; + fEveningDelivery: boolean; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Zip:UnicodeString read fZip write fZip; + property Post:UnicodeString read fPost write fPost; + property Depot:UnicodeString read fDepot write fDepot; + property Destination:UnicodeString read fDestination write fDestination; + property Visual:Integer read fVisual write fVisual; + property EveningDelivery:boolean read fEveningDelivery write fEveningDelivery; + end; + + { ZipCodeCollection } + ZipCodeCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ZipCode; + procedure SetItems(aIndex: integer; const Value: ZipCode); + public + constructor Create; overload; + function Add: ZipCode; reintroduce; + procedure SaveToArray(anArray: ArrayOfZipCode); + procedure LoadFromArray(anArray: ArrayOfZipCode); + property Items[Index: integer]:ZipCode read GetItems write SetItems; default; + end; + + { PackageEsyco } + PackageEsyco = class(TROComplexType) + private + fPackageID: UnicodeString; + ffield_ZipCode: UnicodeString; + fCountry: UnicodeString; + fCodPrice: decimal; + fVarSym: UnicodeString; + fAccount: UnicodeString; + fBankCode: UnicodeString; + fSpecSymbol: UnicodeString; + fConsigneeName: UnicodeString; + fConsigneeStreet: UnicodeString; + fConsigneeCity: UnicodeString; + fPhone: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + property field_ZipCode:UnicodeString read ffield_ZipCode write ffield_ZipCode; + property Country:UnicodeString read fCountry write fCountry; + property CodPrice:decimal read fCodPrice write fCodPrice; + property VarSym:UnicodeString read fVarSym write fVarSym; + property Account:UnicodeString read fAccount write fAccount; + property BankCode:UnicodeString read fBankCode write fBankCode; + property SpecSymbol:UnicodeString read fSpecSymbol write fSpecSymbol; + property ConsigneeName:UnicodeString read fConsigneeName write fConsigneeName; + property ConsigneeStreet:UnicodeString read fConsigneeStreet write fConsigneeStreet; + property ConsigneeCity:UnicodeString read fConsigneeCity write fConsigneeCity; + property Phone:UnicodeString read fPhone write fPhone; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { PackageEsycoCollection } + PackageEsycoCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PackageEsyco; + procedure SetItems(aIndex: integer; const Value: PackageEsyco); + public + constructor Create; overload; + function Add: PackageEsyco; reintroduce; + property Items[Index: integer]:PackageEsyco read GetItems write SetItems; default; + end; + + { ImportPPLSprintResponse } + ImportPPLSprintResponse = class(TROComplexType) + private + fpackages: colPPLSprint; + function Getpackages: colPPLSprint; + protected + property int_packages: colPPLSprint read fpackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property packages:colPPLSprint read Getpackages write fpackages; + end; + + { ImportPPLSprintResponseCollection } + ImportPPLSprintResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPPLSprintResponse; + procedure SetItems(aIndex: integer; const Value: ImportPPLSprintResponse); + public + constructor Create; overload; + function Add: ImportPPLSprintResponse; reintroduce; + property Items[Index: integer]:ImportPPLSprintResponse read GetItems write SetItems; default; + end; + + { GetZipCodes } + GetZipCodes = class(TROComplexType) + private + fFirCode: UnicodeString; + fChanged: DateTime; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Changed:DateTime read fChanged write fChanged; + end; + + { GetZipCodesCollection } + GetZipCodesCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetZipCodes; + procedure SetItems(aIndex: integer; const Value: GetZipCodes); + public + constructor Create; overload; + function Add: GetZipCodes; reintroduce; + property Items[Index: integer]:GetZipCodes read GetItems write SetItems; default; + end; + + { GetZipCodesResponse } + GetZipCodesResponse = class(TROComplexType) + private + fGetZipCodesResult: ArrayOfZipCode; + function GetGetZipCodesResult: ArrayOfZipCode; + protected + property int_GetZipCodesResult: ArrayOfZipCode read fGetZipCodesResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property GetZipCodesResult:ArrayOfZipCode read GetGetZipCodesResult write fGetZipCodesResult; + end; + + { GetZipCodesResponseCollection } + GetZipCodesResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetZipCodesResponse; + procedure SetItems(aIndex: integer; const Value: GetZipCodesResponse); + public + constructor Create; overload; + function Add: GetZipCodesResponse; reintroduce; + property Items[Index: integer]:GetZipCodesResponse read GetItems write SetItems; default; + end; + + { GetCities } + GetCities = class(TROComplexType) + private + fFirCode: UnicodeString; + fDate_From: DateTime; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Date_From:DateTime read fDate_From write fDate_From; + end; + + { GetCitiesCollection } + GetCitiesCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetCities; + procedure SetItems(aIndex: integer; const Value: GetCities); + public + constructor Create; overload; + function Add: GetCities; reintroduce; + property Items[Index: integer]:GetCities read GetItems write SetItems; default; + end; + + { GetCitiesResponse } + GetCitiesResponse = class(TROComplexType) + private + fGetCitiesResult: ArrayOfCity; + function GetGetCitiesResult: ArrayOfCity; + protected + property int_GetCitiesResult: ArrayOfCity read fGetCitiesResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property GetCitiesResult:ArrayOfCity read GetGetCitiesResult write fGetCitiesResult; + end; + + { GetCitiesResponseCollection } + GetCitiesResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetCitiesResponse; + procedure SetItems(aIndex: integer; const Value: GetCitiesResponse); + public + constructor Create; overload; + function Add: GetCitiesResponse; reintroduce; + property Items[Index: integer]:GetCitiesResponse read GetItems write SetItems; default; + end; + + { GetPackagesInfo } + GetPackagesInfo = class(TROComplexType) + private + fFirCode: UnicodeString; + fPackageID: ArrayOfString; + fCustReference: ArrayOfString; + function GetPackageID: ArrayOfString; + function GetCustReference: ArrayOfString; + protected + property int_PackageID: ArrayOfString read fPackageID; + property int_CustReference: ArrayOfString read fCustReference; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property PackageID:ArrayOfString read GetPackageID write fPackageID; + property CustReference:ArrayOfString read GetCustReference write fCustReference; + end; + + { GetPackagesInfoCollection } + GetPackagesInfoCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetPackagesInfo; + procedure SetItems(aIndex: integer; const Value: GetPackagesInfo); + public + constructor Create; overload; + function Add: GetPackagesInfo; reintroduce; + property Items[Index: integer]:GetPackagesInfo read GetItems write SetItems; default; + end; + + { PackageInfo } + PackageInfo = class(TROComplexType) + private + fPackageID: UnicodeString; + fPackageIDCus: UnicodeString; + fCustReference: UnicodeString; + fInputDepoCode: UnicodeString; + fInputDepoName: UnicodeString; + fOutputDepoCode: UnicodeString; + fOutputDepoName: UnicodeString; + fRecZipCode: UnicodeString; + fRecCity: UnicodeString; + fWeight: Double; + fDateInputDepo: UnicodeString; + fDateWeighed: UnicodeString; + fDateCentral: UnicodeString; + fDateOutputDepo: UnicodeString; + fDateNotDeliv: UnicodeString; + fNotDelivCode: UnicodeString; + fNotDelivName: UnicodeString; + fDateDeliv: UnicodeString; + fDelivPerson: UnicodeString; + fDateExport: UnicodeString; + fDateImport: UnicodeString; + fInputCountry: UnicodeString; + fOutputCountry: UnicodeString; + fInvoiceNumber: UnicodeString; + fReturnToSender: UnicodeString; + fSendInfo: UnicodeString; + fCardPay: boolean; + fEveningDelivery: boolean; + fLoadingDate: UnicodeString; + fCodPrice: decimal; + fDateTakeMoney: UnicodeString; + fDateMoneyToBank: UnicodeString; + fDateMoneyToCustomer: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + property PackageIDCus:UnicodeString read fPackageIDCus write fPackageIDCus; + property CustReference:UnicodeString read fCustReference write fCustReference; + property InputDepoCode:UnicodeString read fInputDepoCode write fInputDepoCode; + property InputDepoName:UnicodeString read fInputDepoName write fInputDepoName; + property OutputDepoCode:UnicodeString read fOutputDepoCode write fOutputDepoCode; + property OutputDepoName:UnicodeString read fOutputDepoName write fOutputDepoName; + property RecZipCode:UnicodeString read fRecZipCode write fRecZipCode; + property RecCity:UnicodeString read fRecCity write fRecCity; + property Weight:Double read fWeight write fWeight; + property DateInputDepo:UnicodeString read fDateInputDepo write fDateInputDepo; + property DateWeighed:UnicodeString read fDateWeighed write fDateWeighed; + property DateCentral:UnicodeString read fDateCentral write fDateCentral; + property DateOutputDepo:UnicodeString read fDateOutputDepo write fDateOutputDepo; + property DateNotDeliv:UnicodeString read fDateNotDeliv write fDateNotDeliv; + property NotDelivCode:UnicodeString read fNotDelivCode write fNotDelivCode; + property NotDelivName:UnicodeString read fNotDelivName write fNotDelivName; + property DateDeliv:UnicodeString read fDateDeliv write fDateDeliv; + property DelivPerson:UnicodeString read fDelivPerson write fDelivPerson; + property DateExport:UnicodeString read fDateExport write fDateExport; + property DateImport:UnicodeString read fDateImport write fDateImport; + property InputCountry:UnicodeString read fInputCountry write fInputCountry; + property OutputCountry:UnicodeString read fOutputCountry write fOutputCountry; + property InvoiceNumber:UnicodeString read fInvoiceNumber write fInvoiceNumber; + property ReturnToSender:UnicodeString read fReturnToSender write fReturnToSender; + property SendInfo:UnicodeString read fSendInfo write fSendInfo; + property CardPay:boolean read fCardPay write fCardPay; + property EveningDelivery:boolean read fEveningDelivery write fEveningDelivery; + property LoadingDate:UnicodeString read fLoadingDate write fLoadingDate; + property CodPrice:decimal read fCodPrice write fCodPrice; + property DateTakeMoney:UnicodeString read fDateTakeMoney write fDateTakeMoney; + property DateMoneyToBank:UnicodeString read fDateMoneyToBank write fDateMoneyToBank; + property DateMoneyToCustomer:UnicodeString read fDateMoneyToCustomer write fDateMoneyToCustomer; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { PackageInfoCollection } + PackageInfoCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): PackageInfo; + procedure SetItems(aIndex: integer; const Value: PackageInfo); + public + constructor Create; overload; + function Add: PackageInfo; reintroduce; + procedure SaveToArray(anArray: ArrayOfPackageInfo); + procedure LoadFromArray(anArray: ArrayOfPackageInfo); + property Items[Index: integer]:PackageInfo read GetItems write SetItems; default; + end; + + { GetPackagesInfoResponse } + GetPackagesInfoResponse = class(TROComplexType) + private + fGetPackagesInfoResult: ArrayOfPackageInfo; + function GetGetPackagesInfoResult: ArrayOfPackageInfo; + protected + property int_GetPackagesInfoResult: ArrayOfPackageInfo read fGetPackagesInfoResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property GetPackagesInfoResult:ArrayOfPackageInfo read GetGetPackagesInfoResult write fGetPackagesInfoResult; + end; + + { GetPackagesInfoResponseCollection } + GetPackagesInfoResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetPackagesInfoResponse; + procedure SetItems(aIndex: integer; const Value: GetPackagesInfoResponse); + public + constructor Create; overload; + function Add: GetPackagesInfoResponse; reintroduce; + property Items[Index: integer]:GetPackagesInfoResponse read GetItems write SetItems; default; + end; + + { GetPackageToDelivery } + GetPackageToDelivery = class(TROComplexType) + private + fFirCode: UnicodeString; + fDateToDeliv: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property DateToDeliv:UnicodeString read fDateToDeliv write fDateToDeliv; + end; + + { GetPackageToDeliveryCollection } + GetPackageToDeliveryCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetPackageToDelivery; + procedure SetItems(aIndex: integer; const Value: GetPackageToDelivery); + public + constructor Create; overload; + function Add: GetPackageToDelivery; reintroduce; + property Items[Index: integer]:GetPackageToDelivery read GetItems write SetItems; default; + end; + + { colPackage } + colPackage = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colPackageCollection } + colPackageCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colPackage; + procedure SetItems(aIndex: integer; const Value: colPackage); + public + constructor Create; overload; + function Add: colPackage; reintroduce; + property Items[Index: integer]:colPackage read GetItems write SetItems; default; + end; + + { GetPackageToDeliveryResponse } + GetPackageToDeliveryResponse = class(TROComplexType) + private + fGetPackageToDeliveryResult: colPackage; + function GetGetPackageToDeliveryResult: colPackage; + protected + property int_GetPackageToDeliveryResult: colPackage read fGetPackageToDeliveryResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property GetPackageToDeliveryResult:colPackage read GetGetPackageToDeliveryResult write fGetPackageToDeliveryResult; + end; + + { GetPackageToDeliveryResponseCollection } + GetPackageToDeliveryResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetPackageToDeliveryResponse; + procedure SetItems(aIndex: integer; const Value: GetPackageToDeliveryResponse); + public + constructor Create; overload; + function Add: GetPackageToDeliveryResponse; reintroduce; + property Items[Index: integer]:GetPackageToDeliveryResponse read GetItems write SetItems; default; + end; + + { GetPackageInfo } + GetPackageInfo = class(TROComplexType) + private + fPackageID: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageID:UnicodeString read fPackageID write fPackageID; + end; + + { GetPackageInfoCollection } + GetPackageInfoCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetPackageInfo; + procedure SetItems(aIndex: integer; const Value: GetPackageInfo); + public + constructor Create; overload; + function Add: GetPackageInfo; reintroduce; + property Items[Index: integer]:GetPackageInfo read GetItems write SetItems; default; + end; + + { GetPackageInfoResponse } + GetPackageInfoResponse = class(TROComplexType) + private + fGetPackageInfoResult: PackageInfo; + function GetGetPackageInfoResult: PackageInfo; + protected + property int_GetPackageInfoResult: PackageInfo read fGetPackageInfoResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property GetPackageInfoResult:PackageInfo read GetGetPackageInfoResult write fGetPackageInfoResult; + end; + + { GetPackageInfoResponseCollection } + GetPackageInfoResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): GetPackageInfoResponse; + procedure SetItems(aIndex: integer; const Value: GetPackageInfoResponse); + public + constructor Create; overload; + function Add: GetPackageInfoResponse; reintroduce; + property Items[Index: integer]:GetPackageInfoResponse read GetItems write SetItems; default; + end; + + { ImportOrderExt } + ImportOrderExt = class(TROComplexType) + private + fFirCode: UnicodeString; + ffield_order: Order; + function Getfield_order: Order; + protected + property int_field_order: Order read ffield_order; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property field_order:Order read Getfield_order write ffield_order; + end; + + { ImportOrderExtCollection } + ImportOrderExtCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrderExt; + procedure SetItems(aIndex: integer; const Value: ImportOrderExt); + public + constructor Create; overload; + function Add: ImportOrderExt; reintroduce; + property Items[Index: integer]:ImportOrderExt read GetItems write SetItems; default; + end; + + { Order } + Order = class(TROComplexType) + private + fOrdNumber: UnicodeString; + fCountPack: UnicodeString; + fSendName: UnicodeString; + fSendStreet: UnicodeString; + fSendCity: UnicodeString; + fSendZipCode: UnicodeString; + fSendContact: UnicodeString; + fSendPhone: UnicodeString; + fSendDateFrom: DateTime; + fSendDateTo: DateTime; + fSendCountry: UnicodeString; + fRecName: UnicodeString; + fRecStreet: UnicodeString; + fRecCity: UnicodeString; + fRecZipCode: UnicodeString; + fRecContact: UnicodeString; + fRecPhone: UnicodeString; + fRecCountry: UnicodeString; + fNote: UnicodeString; + fEmail: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property OrdNumber:UnicodeString read fOrdNumber write fOrdNumber; + property CountPack:UnicodeString read fCountPack write fCountPack; + property SendName:UnicodeString read fSendName write fSendName; + property SendStreet:UnicodeString read fSendStreet write fSendStreet; + property SendCity:UnicodeString read fSendCity write fSendCity; + property SendZipCode:UnicodeString read fSendZipCode write fSendZipCode; + property SendContact:UnicodeString read fSendContact write fSendContact; + property SendPhone:UnicodeString read fSendPhone write fSendPhone; + property SendDateFrom:DateTime read fSendDateFrom write fSendDateFrom; + property SendDateTo:DateTime read fSendDateTo write fSendDateTo; + property SendCountry:UnicodeString read fSendCountry write fSendCountry; + property RecName:UnicodeString read fRecName write fRecName; + property RecStreet:UnicodeString read fRecStreet write fRecStreet; + property RecCity:UnicodeString read fRecCity write fRecCity; + property RecZipCode:UnicodeString read fRecZipCode write fRecZipCode; + property RecContact:UnicodeString read fRecContact write fRecContact; + property RecPhone:UnicodeString read fRecPhone write fRecPhone; + property RecCountry:UnicodeString read fRecCountry write fRecCountry; + property Note:UnicodeString read fNote write fNote; + property Email:UnicodeString read fEmail write fEmail; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { OrderCollection } + OrderCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): Order; + procedure SetItems(aIndex: integer; const Value: Order); + public + constructor Create; overload; + function Add: Order; reintroduce; + property Items[Index: integer]:Order read GetItems write SetItems; default; + end; + + { ImportOrderExtResponse } + ImportOrderExtResponse = class(TROComplexType) + private + ffield_order: Order; + function Getfield_order: Order; + protected + property int_field_order: Order read ffield_order; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property field_order:Order read Getfield_order write ffield_order; + end; + + { ImportOrderExtResponseCollection } + ImportOrderExtResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrderExtResponse; + procedure SetItems(aIndex: integer; const Value: ImportOrderExtResponse); + public + constructor Create; overload; + function Add: ImportOrderExtResponse; reintroduce; + property Items[Index: integer]:ImportOrderExtResponse read GetItems write SetItems; default; + end; + + { ImportOrdersExt } + ImportOrdersExt = class(TROComplexType) + private + fFirCode: UnicodeString; + fOrders: colOrder; + function GetOrders: colOrder; + protected + property int_Orders: colOrder read fOrders; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Orders:colOrder read GetOrders write fOrders; + end; + + { ImportOrdersExtCollection } + ImportOrdersExtCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrdersExt; + procedure SetItems(aIndex: integer; const Value: ImportOrdersExt); + public + constructor Create; overload; + function Add: ImportOrdersExt; reintroduce; + property Items[Index: integer]:ImportOrdersExt read GetItems write SetItems; default; + end; + + { colOrder } + colOrder = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colOrderCollection } + colOrderCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colOrder; + procedure SetItems(aIndex: integer; const Value: colOrder); + public + constructor Create; overload; + function Add: colOrder; reintroduce; + property Items[Index: integer]:colOrder read GetItems write SetItems; default; + end; + + { ImportOrdersExtResponse } + ImportOrdersExtResponse = class(TROComplexType) + private + fOrders: colOrder; + function GetOrders: colOrder; + protected + property int_Orders: colOrder read fOrders; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Orders:colOrder read GetOrders write fOrders; + end; + + { ImportOrdersExtResponseCollection } + ImportOrdersExtResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrdersExtResponse; + procedure SetItems(aIndex: integer; const Value: ImportOrdersExtResponse); + public + constructor Create; overload; + function Add: ImportOrdersExtResponse; reintroduce; + property Items[Index: integer]:ImportOrdersExtResponse read GetItems write SetItems; default; + end; + + { ImportPackageExt } + ImportPackageExt = class(TROComplexType) + private + fFirCode: UnicodeString; + fpack: Package; + function Getpack: Package; + protected + property int_pack: Package read fpack; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property pack:Package read Getpack write fpack; + end; + + { ImportPackageExtCollection } + ImportPackageExtCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackageExt; + procedure SetItems(aIndex: integer; const Value: ImportPackageExt); + public + constructor Create; overload; + function Add: ImportPackageExt; reintroduce; + property Items[Index: integer]:ImportPackageExt read GetItems write SetItems; default; + end; + + { ImportPackageExtResponse } + ImportPackageExtResponse = class(TROComplexType) + private + fpack: Package; + function Getpack: Package; + protected + property int_pack: Package read fpack; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property pack:Package read Getpack write fpack; + end; + + { ImportPackageExtResponseCollection } + ImportPackageExtResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackageExtResponse; + procedure SetItems(aIndex: integer; const Value: ImportPackageExtResponse); + public + constructor Create; overload; + function Add: ImportPackageExtResponse; reintroduce; + property Items[Index: integer]:ImportPackageExtResponse read GetItems write SetItems; default; + end; + + { ImportPackagesExt } + ImportPackagesExt = class(TROComplexType) + private + fFirCode: UnicodeString; + fPackages: colPackage; + function GetPackages: colPackage; + protected + property int_Packages: colPackage read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Packages:colPackage read GetPackages write fPackages; + end; + + { ImportPackagesExtCollection } + ImportPackagesExtCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackagesExt; + procedure SetItems(aIndex: integer; const Value: ImportPackagesExt); + public + constructor Create; overload; + function Add: ImportPackagesExt; reintroduce; + property Items[Index: integer]:ImportPackagesExt read GetItems write SetItems; default; + end; + + { ImportPackagesExtResponse } + ImportPackagesExtResponse = class(TROComplexType) + private + fPackages: colPackage; + function GetPackages: colPackage; + protected + property int_Packages: colPackage read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Packages:colPackage read GetPackages write fPackages; + end; + + { ImportPackagesExtResponseCollection } + ImportPackagesExtResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackagesExtResponse; + procedure SetItems(aIndex: integer; const Value: ImportPackagesExtResponse); + public + constructor Create; overload; + function Add: ImportPackagesExtResponse; reintroduce; + property Items[Index: integer]:ImportPackagesExtResponse read GetItems write SetItems; default; + end; + + { ImportPackages } + ImportPackages = class(TROComplexType) + private + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + end; + + { ImportPackagesCollection } + ImportPackagesCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackages; + procedure SetItems(aIndex: integer; const Value: ImportPackages); + public + constructor Create; overload; + function Add: ImportPackages; reintroduce; + property Items[Index: integer]:ImportPackages read GetItems write SetItems; default; + end; + + { ImportPackagesResponse_ImportPackagesResult } + ImportPackagesResponse_ImportPackagesResult = class(TROComplexType) + private + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + end; + + { ImportPackagesResponse_ImportPackagesResultCollection } + ImportPackagesResponse_ImportPackagesResultCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackagesResponse_ImportPackagesResult; + procedure SetItems(aIndex: integer; const Value: ImportPackagesResponse_ImportPackagesResult); + public + constructor Create; overload; + function Add: ImportPackagesResponse_ImportPackagesResult; reintroduce; + property Items[Index: integer]:ImportPackagesResponse_ImportPackagesResult read GetItems write SetItems; default; + end; + + { ImportPackagesResponse } + ImportPackagesResponse = class(TROComplexType) + private + fImportPackagesResult: ImportPackagesResponse_ImportPackagesResult; + function GetImportPackagesResult: ImportPackagesResponse_ImportPackagesResult; + protected + property int_ImportPackagesResult: ImportPackagesResponse_ImportPackagesResult read fImportPackagesResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property ImportPackagesResult:ImportPackagesResponse_ImportPackagesResult read GetImportPackagesResult write fImportPackagesResult; + end; + + { ImportPackagesResponseCollection } + ImportPackagesResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackagesResponse; + procedure SetItems(aIndex: integer; const Value: ImportPackagesResponse); + public + constructor Create; overload; + function Add: ImportPackagesResponse; reintroduce; + property Items[Index: integer]:ImportPackagesResponse read GetItems write SetItems; default; + end; + + { ImportOrders } + ImportOrders = class(TROComplexType) + private + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + end; + + { ImportOrdersCollection } + ImportOrdersCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrders; + procedure SetItems(aIndex: integer; const Value: ImportOrders); + public + constructor Create; overload; + function Add: ImportOrders; reintroduce; + property Items[Index: integer]:ImportOrders read GetItems write SetItems; default; + end; + + { ImportOrdersResponse_ImportOrdersResult } + ImportOrdersResponse_ImportOrdersResult = class(TROComplexType) + private + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + end; + + { ImportOrdersResponse_ImportOrdersResultCollection } + ImportOrdersResponse_ImportOrdersResultCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrdersResponse_ImportOrdersResult; + procedure SetItems(aIndex: integer; const Value: ImportOrdersResponse_ImportOrdersResult); + public + constructor Create; overload; + function Add: ImportOrdersResponse_ImportOrdersResult; reintroduce; + property Items[Index: integer]:ImportOrdersResponse_ImportOrdersResult read GetItems write SetItems; default; + end; + + { ImportOrdersResponse } + ImportOrdersResponse = class(TROComplexType) + private + fImportOrdersResult: ImportOrdersResponse_ImportOrdersResult; + function GetImportOrdersResult: ImportOrdersResponse_ImportOrdersResult; + protected + property int_ImportOrdersResult: ImportOrdersResponse_ImportOrdersResult read fImportOrdersResult; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property ImportOrdersResult:ImportOrdersResponse_ImportOrdersResult read GetImportOrdersResult write fImportOrdersResult; + end; + + { ImportOrdersResponseCollection } + ImportOrdersResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrdersResponse; + procedure SetItems(aIndex: integer; const Value: ImportOrdersResponse); + public + constructor Create; overload; + function Add: ImportOrdersResponse; reintroduce; + property Items[Index: integer]:ImportOrdersResponse read GetItems write SetItems; default; + end; + + { ImportWeighedPack } + ImportWeighedPack = class(TROComplexType) + private + fFirCode: UnicodeString; + fpack: PackageWeighed; + fDepID: UnicodeString; + function Getpack: PackageWeighed; + protected + property int_pack: PackageWeighed read fpack; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property pack:PackageWeighed read Getpack write fpack; + property DepID:UnicodeString read fDepID write fDepID; + end; + + { ImportWeighedPackCollection } + ImportWeighedPackCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportWeighedPack; + procedure SetItems(aIndex: integer; const Value: ImportWeighedPack); + public + constructor Create; overload; + function Add: ImportWeighedPack; reintroduce; + property Items[Index: integer]:ImportWeighedPack read GetItems write SetItems; default; + end; + + { ImportWeighedPackResponse } + ImportWeighedPackResponse = class(TROComplexType) + private + fpack: PackageWeighed; + function Getpack: PackageWeighed; + protected + property int_pack: PackageWeighed read fpack; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property pack:PackageWeighed read Getpack write fpack; + end; + + { ImportWeighedPackResponseCollection } + ImportWeighedPackResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportWeighedPackResponse; + procedure SetItems(aIndex: integer; const Value: ImportWeighedPackResponse); + public + constructor Create; overload; + function Add: ImportWeighedPackResponse; reintroduce; + property Items[Index: integer]:ImportWeighedPackResponse read GetItems write SetItems; default; + end; + + { ImportWeighedPackages } + ImportWeighedPackages = class(TROComplexType) + private + fFirCode: UnicodeString; + fPackages: colPackageWeighed; + fDepID: UnicodeString; + function GetPackages: colPackageWeighed; + protected + property int_Packages: colPackageWeighed read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Packages:colPackageWeighed read GetPackages write fPackages; + property DepID:UnicodeString read fDepID write fDepID; + end; + + { ImportWeighedPackagesCollection } + ImportWeighedPackagesCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportWeighedPackages; + procedure SetItems(aIndex: integer; const Value: ImportWeighedPackages); + public + constructor Create; overload; + function Add: ImportWeighedPackages; reintroduce; + property Items[Index: integer]:ImportWeighedPackages read GetItems write SetItems; default; + end; + + { colPackageWeighed } + colPackageWeighed = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colPackageWeighedCollection } + colPackageWeighedCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colPackageWeighed; + procedure SetItems(aIndex: integer; const Value: colPackageWeighed); + public + constructor Create; overload; + function Add: colPackageWeighed; reintroduce; + property Items[Index: integer]:colPackageWeighed read GetItems write SetItems; default; + end; + + { ImportWeighedPackagesResponse } + ImportWeighedPackagesResponse = class(TROComplexType) + private + fPackages: colPackageWeighed; + function GetPackages: colPackageWeighed; + protected + property int_Packages: colPackageWeighed read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Packages:colPackageWeighed read GetPackages write fPackages; + end; + + { ImportWeighedPackagesResponseCollection } + ImportWeighedPackagesResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportWeighedPackagesResponse; + procedure SetItems(aIndex: integer; const Value: ImportWeighedPackagesResponse); + public + constructor Create; overload; + function Add: ImportWeighedPackagesResponse; reintroduce; + property Items[Index: integer]:ImportWeighedPackagesResponse read GetItems write SetItems; default; + end; + + { ImportPackagesHoffmann } + ImportPackagesHoffmann = class(TROComplexType) + private + fFirCode: UnicodeString; + fPackages: colPackageHoffmann; + fDepID: UnicodeString; + function GetPackages: colPackageHoffmann; + protected + property int_Packages: colPackageHoffmann read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Packages:colPackageHoffmann read GetPackages write fPackages; + property DepID:UnicodeString read fDepID write fDepID; + end; + + { ImportPackagesHoffmannCollection } + ImportPackagesHoffmannCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackagesHoffmann; + procedure SetItems(aIndex: integer; const Value: ImportPackagesHoffmann); + public + constructor Create; overload; + function Add: ImportPackagesHoffmann; reintroduce; + property Items[Index: integer]:ImportPackagesHoffmann read GetItems write SetItems; default; + end; + + { colPackageHoffmann } + colPackageHoffmann = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colPackageHoffmannCollection } + colPackageHoffmannCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colPackageHoffmann; + procedure SetItems(aIndex: integer; const Value: colPackageHoffmann); + public + constructor Create; overload; + function Add: colPackageHoffmann; reintroduce; + property Items[Index: integer]:colPackageHoffmann read GetItems write SetItems; default; + end; + + { ImportPackagesHoffmannResponse } + ImportPackagesHoffmannResponse = class(TROComplexType) + private + fPackages: colPackageHoffmann; + function GetPackages: colPackageHoffmann; + protected + property int_Packages: colPackageHoffmann read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Packages:colPackageHoffmann read GetPackages write fPackages; + end; + + { ImportPackagesHoffmannResponseCollection } + ImportPackagesHoffmannResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportPackagesHoffmannResponse; + procedure SetItems(aIndex: integer; const Value: ImportPackagesHoffmannResponse); + public + constructor Create; overload; + function Add: ImportPackagesHoffmannResponse; reintroduce; + property Items[Index: integer]:ImportPackagesHoffmannResponse read GetItems write SetItems; default; + end; + + { ImportESYCOPack } + ImportESYCOPack = class(TROComplexType) + private + fFirCode: UnicodeString; + fpack: PackageEsyco; + function Getpack: PackageEsyco; + protected + property int_pack: PackageEsyco read fpack; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property pack:PackageEsyco read Getpack write fpack; + end; + + { ImportESYCOPackCollection } + ImportESYCOPackCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportESYCOPack; + procedure SetItems(aIndex: integer; const Value: ImportESYCOPack); + public + constructor Create; overload; + function Add: ImportESYCOPack; reintroduce; + property Items[Index: integer]:ImportESYCOPack read GetItems write SetItems; default; + end; + + { ImportESYCOPackResponse } + ImportESYCOPackResponse = class(TROComplexType) + private + fpack: PackageEsyco; + function Getpack: PackageEsyco; + protected + property int_pack: PackageEsyco read fpack; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property pack:PackageEsyco read Getpack write fpack; + end; + + { ImportESYCOPackResponseCollection } + ImportESYCOPackResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportESYCOPackResponse; + procedure SetItems(aIndex: integer; const Value: ImportESYCOPackResponse); + public + constructor Create; overload; + function Add: ImportESYCOPackResponse; reintroduce; + property Items[Index: integer]:ImportESYCOPackResponse read GetItems write SetItems; default; + end; + + { ImportESYCOPackages } + ImportESYCOPackages = class(TROComplexType) + private + fFirCode: UnicodeString; + fPackages: colPackage; + function GetPackages: colPackage; + protected + property int_Packages: colPackage read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Packages:colPackage read GetPackages write fPackages; + end; + + { ImportESYCOPackagesCollection } + ImportESYCOPackagesCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportESYCOPackages; + procedure SetItems(aIndex: integer; const Value: ImportESYCOPackages); + public + constructor Create; overload; + function Add: ImportESYCOPackages; reintroduce; + property Items[Index: integer]:ImportESYCOPackages read GetItems write SetItems; default; + end; + + { ImportESYCOPackagesResponse } + ImportESYCOPackagesResponse = class(TROComplexType) + private + fPackages: colPackage; + function GetPackages: colPackage; + protected + property int_Packages: colPackage read fPackages; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Packages:colPackage read GetPackages write fPackages; + end; + + { ImportESYCOPackagesResponseCollection } + ImportESYCOPackagesResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportESYCOPackagesResponse; + procedure SetItems(aIndex: integer; const Value: ImportESYCOPackagesResponse); + public + constructor Create; overload; + function Add: ImportESYCOPackagesResponse; reintroduce; + property Items[Index: integer]:ImportESYCOPackagesResponse read GetItems write SetItems; default; + end; + + { ImportStatusDHL } + ImportStatusDHL = class(TROComplexType) + private + fFirCode: UnicodeString; + fStat: StatusDHL; + function GetStat: StatusDHL; + protected + property int_Stat: StatusDHL read fStat; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Stat:StatusDHL read GetStat write fStat; + end; + + { ImportStatusDHLCollection } + ImportStatusDHLCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportStatusDHL; + procedure SetItems(aIndex: integer; const Value: ImportStatusDHL); + public + constructor Create; overload; + function Add: ImportStatusDHL; reintroduce; + property Items[Index: integer]:ImportStatusDHL read GetItems write SetItems; default; + end; + + { StatusDHL } + StatusDHL = class(TROComplexType) + private + fPackageIDPPL: UnicodeString; + fPackageIDExp: UnicodeString; + fStatusID: UnicodeString; + fCreated: DateTime; + fNote: UnicodeString; + fZpID: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property PackageIDPPL:UnicodeString read fPackageIDPPL write fPackageIDPPL; + property PackageIDExp:UnicodeString read fPackageIDExp write fPackageIDExp; + property StatusID:UnicodeString read fStatusID write fStatusID; + property Created:DateTime read fCreated write fCreated; + property Note:UnicodeString read fNote write fNote; + property ZpID:UnicodeString read fZpID write fZpID; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { StatusDHLCollection } + StatusDHLCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): StatusDHL; + procedure SetItems(aIndex: integer; const Value: StatusDHL); + public + constructor Create; overload; + function Add: StatusDHL; reintroduce; + property Items[Index: integer]:StatusDHL read GetItems write SetItems; default; + end; + + { ImportStatusDHLResponse } + ImportStatusDHLResponse = class(TROComplexType) + private + fStat: StatusDHL; + function GetStat: StatusDHL; + protected + property int_Stat: StatusDHL read fStat; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Stat:StatusDHL read GetStat write fStat; + end; + + { ImportStatusDHLResponseCollection } + ImportStatusDHLResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportStatusDHLResponse; + procedure SetItems(aIndex: integer; const Value: ImportStatusDHLResponse); + public + constructor Create; overload; + function Add: ImportStatusDHLResponse; reintroduce; + property Items[Index: integer]:ImportStatusDHLResponse read GetItems write SetItems; default; + end; + + { ImportStatusesDHL } + ImportStatusesDHL = class(TROComplexType) + private + fFirCode: UnicodeString; + fStatuses: colStatus; + function GetStatuses: colStatus; + protected + property int_Statuses: colStatus read fStatuses; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Statuses:colStatus read GetStatuses write fStatuses; + end; + + { ImportStatusesDHLCollection } + ImportStatusesDHLCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportStatusesDHL; + procedure SetItems(aIndex: integer; const Value: ImportStatusesDHL); + public + constructor Create; overload; + function Add: ImportStatusesDHL; reintroduce; + property Items[Index: integer]:ImportStatusesDHL read GetItems write SetItems; default; + end; + + { colStatus } + colStatus = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colStatusCollection } + colStatusCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colStatus; + procedure SetItems(aIndex: integer; const Value: colStatus); + public + constructor Create; overload; + function Add: colStatus; reintroduce; + property Items[Index: integer]:colStatus read GetItems write SetItems; default; + end; + + { ImportStatusesDHLResponse } + ImportStatusesDHLResponse = class(TROComplexType) + private + fStatuses: colStatus; + function GetStatuses: colStatus; + protected + property int_Statuses: colStatus read fStatuses; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Statuses:colStatus read GetStatuses write fStatuses; + end; + + { ImportStatusesDHLResponseCollection } + ImportStatusesDHLResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportStatusesDHLResponse; + procedure SetItems(aIndex: integer; const Value: ImportStatusesDHLResponse); + public + constructor Create; overload; + function Add: ImportStatusesDHLResponse; reintroduce; + property Items[Index: integer]:ImportStatusesDHLResponse read GetItems write SetItems; default; + end; + + { ImportOrderCart } + ImportOrderCart = class(TROComplexType) + private + fFirCode: UnicodeString; + ffield_order: OrderCart; + fAccept: boolean; + function Getfield_order: OrderCart; + protected + property int_field_order: OrderCart read ffield_order; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property field_order:OrderCart read Getfield_order write ffield_order; + property Accept:boolean read fAccept write fAccept; + end; + + { ImportOrderCartCollection } + ImportOrderCartCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrderCart; + procedure SetItems(aIndex: integer; const Value: ImportOrderCart); + public + constructor Create; overload; + function Add: ImportOrderCart; reintroduce; + property Items[Index: integer]:ImportOrderCart read GetItems write SetItems; default; + end; + + { OrderCart } + OrderCart = class(TROComplexType) + private + fCountPack: Integer; + fSendName: UnicodeString; + fSendStreet: UnicodeString; + fSendCity: UnicodeString; + fSendZipCode: UnicodeString; + fSendDateFrom: DateTime; + fSendDateTo: DateTime; + fNote: UnicodeString; + fEmail: UnicodeString; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property CountPack:Integer read fCountPack write fCountPack; + property SendName:UnicodeString read fSendName write fSendName; + property SendStreet:UnicodeString read fSendStreet write fSendStreet; + property SendCity:UnicodeString read fSendCity write fSendCity; + property SendZipCode:UnicodeString read fSendZipCode write fSendZipCode; + property SendDateFrom:DateTime read fSendDateFrom write fSendDateFrom; + property SendDateTo:DateTime read fSendDateTo write fSendDateTo; + property Note:UnicodeString read fNote write fNote; + property Email:UnicodeString read fEmail write fEmail; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { OrderCartCollection } + OrderCartCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): OrderCart; + procedure SetItems(aIndex: integer; const Value: OrderCart); + public + constructor Create; overload; + function Add: OrderCart; reintroduce; + property Items[Index: integer]:OrderCart read GetItems write SetItems; default; + end; + + { ImportOrderCartResponse } + ImportOrderCartResponse = class(TROComplexType) + private + ffield_order: OrderCart; + function Getfield_order: OrderCart; + protected + property int_field_order: OrderCart read ffield_order; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property field_order:OrderCart read Getfield_order write ffield_order; + end; + + { ImportOrderCartResponseCollection } + ImportOrderCartResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrderCartResponse; + procedure SetItems(aIndex: integer; const Value: ImportOrderCartResponse); + public + constructor Create; overload; + function Add: ImportOrderCartResponse; reintroduce; + property Items[Index: integer]:ImportOrderCartResponse read GetItems write SetItems; default; + end; + + { ImportOrdersCart } + ImportOrdersCart = class(TROComplexType) + private + fFirCode: UnicodeString; + fOrders: colOrderCart; + fAccept: boolean; + function GetOrders: colOrderCart; + protected + property int_Orders: colOrderCart read fOrders; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property FirCode:UnicodeString read fFirCode write fFirCode; + property Orders:colOrderCart read GetOrders write fOrders; + property Accept:boolean read fAccept write fAccept; + end; + + { ImportOrdersCartCollection } + ImportOrdersCartCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrdersCart; + procedure SetItems(aIndex: integer; const Value: ImportOrdersCart); + public + constructor Create; overload; + function Add: ImportOrdersCart; reintroduce; + property Items[Index: integer]:ImportOrdersCart read GetItems write SetItems; default; + end; + + { colOrderCart } + colOrderCart = class(TROComplexType) + private + fItems: ArrayOfAnyType; + fErrorCode: Integer; + fErrorMessage: UnicodeString; + function GetItems: ArrayOfAnyType; + protected + property int_Items: ArrayOfAnyType read fItems; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Items:ArrayOfAnyType read GetItems write fItems; + property ErrorCode:Integer read fErrorCode write fErrorCode; + property ErrorMessage:UnicodeString read fErrorMessage write fErrorMessage; + end; + + { colOrderCartCollection } + colOrderCartCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): colOrderCart; + procedure SetItems(aIndex: integer; const Value: colOrderCart); + public + constructor Create; overload; + function Add: colOrderCart; reintroduce; + property Items[Index: integer]:colOrderCart read GetItems write SetItems; default; + end; + + { ImportOrdersCartResponse } + ImportOrdersCartResponse = class(TROComplexType) + private + fOrders: colOrderCart; + function GetOrders: colOrderCart; + protected + property int_Orders: colOrderCart read fOrders; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + + procedure Assign(iSource: TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + published + property Orders:colOrderCart read GetOrders write fOrders; + end; + + { ImportOrdersCartResponseCollection } + ImportOrdersCartResponseCollection = class(TROCollection) + protected + constructor Create(aItemClass: TCollectionItemClass); overload; + function GetItems(aIndex: integer): ImportOrdersCartResponse; + procedure SetItems(aIndex: integer; const Value: ImportOrdersCartResponse); + public + constructor Create; overload; + function Add: ImportOrdersCartResponse; reintroduce; + property Items[Index: integer]:ImportOrdersCartResponse read GetItems write SetItems; default; + end; + + { ArrayOfAnyType } +// ArrayOfAnyType_unknown = array of unknown; + ArrayOfAnyType = class(TROArray) + private + fCount: Integer; + fItems : ArrayOfAnyType_unknown; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): unknown; + procedure SetItems(aIndex: integer; const Value: unknown); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add(const Value:unknown): integer; + function GetIndex(const aPropertyName : string; + const aPropertyValue : Variant; + StartFrom : integer = 0; + Options : TROSearchOptions = [soIgnoreCase]) : integer; override; + function IndexOf(const aValue: unknown; const aStartFrom: integer = 0): integer; + + property Count : integer read GetCount; + property Items[Index: integer]:unknown read GetItems write SetItems; default; + property InnerArray: ArrayOfAnyType_unknown read fItems; + end; + + { ArrayOfPPLSprintItem } + ArrayOfPPLSprintItem_PPLSprintItem = array of PPLSprintItem; + ArrayOfPPLSprintItem = class(TROArray) + private + fCount: Integer; + fItems : ArrayOfPPLSprintItem_PPLSprintItem; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): PPLSprintItem; + procedure SetItems(aIndex: integer; const Value: PPLSprintItem); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemClass: TClass; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure SetItemRef(aIndex: integer; Ref: pointer); override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add: PPLSprintItem; overload; + function Add(const Value: PPLSprintItem):integer; overload; + + property Count : integer read GetCount; + property Items[Index: integer]:PPLSprintItem read GetItems write SetItems; default; + property InnerArray: ArrayOfPPLSprintItem_PPLSprintItem read fItems; + end; + + { ArrayOfZipCode } + ArrayOfZipCode_ZipCode = array of ZipCode; + ArrayOfZipCode = class(TROArray) + private + fCount: Integer; + fItems : ArrayOfZipCode_ZipCode; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): ZipCode; + procedure SetItems(aIndex: integer; const Value: ZipCode); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemClass: TClass; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure SetItemRef(aIndex: integer; Ref: pointer); override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add: ZipCode; overload; + function Add(const Value: ZipCode):integer; overload; + + property Count : integer read GetCount; + property Items[Index: integer]:ZipCode read GetItems write SetItems; default; + property InnerArray: ArrayOfZipCode_ZipCode read fItems; + end; + + { ArrayOfCity } + ArrayOfCity_City = array of City; + ArrayOfCity = class(TROArray) + private + fCount: Integer; + fItems : ArrayOfCity_City; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): City; + procedure SetItems(aIndex: integer; const Value: City); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemClass: TClass; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure SetItemRef(aIndex: integer; Ref: pointer); override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add: City; overload; + function Add(const Value: City):integer; overload; + + property Count : integer read GetCount; + property Items[Index: integer]:City read GetItems write SetItems; default; + property InnerArray: ArrayOfCity_City read fItems; + end; + + { ArrayOfString } + ArrayOfString_UnicodeString = array of UnicodeString; + ArrayOfString = class(TROArray) + private + fCount: Integer; + fItems : ArrayOfString_UnicodeString; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): UnicodeString; + procedure SetItems(aIndex: integer; const Value: UnicodeString); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add(const Value:UnicodeString): integer; + function GetIndex(const aPropertyName : string; + const aPropertyValue : Variant; + StartFrom : integer = 0; + Options : TROSearchOptions = [soIgnoreCase]) : integer; override; + function IndexOf(const aValue: UnicodeString; const aStartFrom: integer = 0): integer; + + property Count : integer read GetCount; + property Items[Index: integer]:UnicodeString read GetItems write SetItems; default; + property InnerArray: ArrayOfString_UnicodeString read fItems; + end; + + { ArrayOfPackageInfo } + ArrayOfPackageInfo_PackageInfo = array of PackageInfo; + ArrayOfPackageInfo = class(TROArray) + private + fCount: Integer; + fItems : ArrayOfPackageInfo_PackageInfo; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): PackageInfo; + procedure SetItems(aIndex: integer; const Value: PackageInfo); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemClass: TClass; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure SetItemRef(aIndex: integer; Ref: pointer); override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add: PackageInfo; overload; + function Add(const Value: PackageInfo):integer; overload; + + property Count : integer read GetCount; + property Items[Index: integer]:PackageInfo read GetItems write SetItems; default; + property InnerArray: ArrayOfPackageInfo_PackageInfo read fItems; + end; + + { StringArray } + StringArray_unknown = array of unknown; + StringArray = class(TROArray) + private + fCount: Integer; + fItems : StringArray_unknown; + protected + procedure Grow; virtual; + function GetItems(aIndex: integer): unknown; + procedure SetItems(aIndex: integer; const Value: unknown); + function GetCount: integer; override; + public + class function GetAttributeCount: Integer; override; + class function GetAttributeName(aIndex: Integer): string; override; + class function GetAttributeValue(aIndex: Integer): string; override; + class function GetItemType: PTypeInfo; override; + class function GetItemSize: integer; override; + + function GetItemRef(aIndex: integer): pointer; override; + procedure Clear; override; + procedure Delete(aIndex: integer); override; + procedure Resize(ElementCount: integer); override; + + procedure Assign(iSource:TPersistent); override; + procedure ReadComplex(ASerializer: TObject); override; + procedure WriteComplex(ASerializer: TObject); override; + function Add(const Value:unknown): integer; + function GetIndex(const aPropertyName : string; + const aPropertyValue : Variant; + StartFrom : integer = 0; + Options : TROSearchOptions = [soIgnoreCase]) : integer; override; + function IndexOf(const aValue: unknown; const aStartFrom: integer = 0): integer; + + property Count : integer read GetCount; + property Items[Index: integer]:unknown read GetItems write SetItems; default; + property InnerArray: StringArray_unknown read fItems; + end; + + { IIEGate } + IIEGate = interface + ['{E379A095-D779-4864-9A1B-F99840E8385A}'] + function ImportPPLSprint(const parameters: ImportPPLSprint): ImportPPLSprintResponse; + function GetZipCodes(const parameters: GetZipCodes): GetZipCodesResponse; + function GetCities(const parameters: GetCities): GetCitiesResponse; + function GetPackagesInfo(const parameters: GetPackagesInfo): GetPackagesInfoResponse; + function GetPackageToDelivery(const parameters: GetPackageToDelivery): GetPackageToDeliveryResponse; + function GetPackageInfo(const parameters: GetPackageInfo): GetPackageInfoResponse; + function ImportOrderExt(const parameters: ImportOrderExt): ImportOrderExtResponse; + function ImportOrdersExt(const parameters: ImportOrdersExt): ImportOrdersExtResponse; + function ImportPackageExt(const parameters: ImportPackageExt): ImportPackageExtResponse; + function ImportPackagesExt(const parameters: ImportPackagesExt): ImportPackagesExtResponse; + function ImportPackages(const parameters: ImportPackages): ImportPackagesResponse; + function ImportOrders(const parameters: ImportOrders): ImportOrdersResponse; + function ImportWeighedPack(const parameters: ImportWeighedPack): ImportWeighedPackResponse; + function ImportWeighedPackages(const parameters: ImportWeighedPackages): ImportWeighedPackagesResponse; + function ImportPackagesHoffmann(const parameters: ImportPackagesHoffmann): ImportPackagesHoffmannResponse; + function ImportESYCOPack(const parameters: ImportESYCOPack): ImportESYCOPackResponse; + function ImportESYCOPackages(const parameters: ImportESYCOPackages): ImportESYCOPackagesResponse; + function ImportStatusDHL(const parameters: ImportStatusDHL): ImportStatusDHLResponse; + function ImportStatusesDHL(const parameters: ImportStatusesDHL): ImportStatusesDHLResponse; + function ImportOrderCart(const parameters: ImportOrderCart): ImportOrderCartResponse; + function ImportOrdersCart(const parameters: ImportOrdersCart): ImportOrdersCartResponse; + end; + + { CoIEGate } + CoIEGate = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IIEGate; + end; + + { TIEGate_Proxy } + TIEGate_Proxy = class(TROProxy, IIEGate) + protected + function __GetInterfaceName:string; override; + + function ImportPPLSprint(const parameters: ImportPPLSprint): ImportPPLSprintResponse; + function GetZipCodes(const parameters: GetZipCodes): GetZipCodesResponse; + function GetCities(const parameters: GetCities): GetCitiesResponse; + function GetPackagesInfo(const parameters: GetPackagesInfo): GetPackagesInfoResponse; + function GetPackageToDelivery(const parameters: GetPackageToDelivery): GetPackageToDeliveryResponse; + function GetPackageInfo(const parameters: GetPackageInfo): GetPackageInfoResponse; + function ImportOrderExt(const parameters: ImportOrderExt): ImportOrderExtResponse; + function ImportOrdersExt(const parameters: ImportOrdersExt): ImportOrdersExtResponse; + function ImportPackageExt(const parameters: ImportPackageExt): ImportPackageExtResponse; + function ImportPackagesExt(const parameters: ImportPackagesExt): ImportPackagesExtResponse; + function ImportPackages(const parameters: ImportPackages): ImportPackagesResponse; + function ImportOrders(const parameters: ImportOrders): ImportOrdersResponse; + function ImportWeighedPack(const parameters: ImportWeighedPack): ImportWeighedPackResponse; + function ImportWeighedPackages(const parameters: ImportWeighedPackages): ImportWeighedPackagesResponse; + function ImportPackagesHoffmann(const parameters: ImportPackagesHoffmann): ImportPackagesHoffmannResponse; + function ImportESYCOPack(const parameters: ImportESYCOPack): ImportESYCOPackResponse; + function ImportESYCOPackages(const parameters: ImportESYCOPackages): ImportESYCOPackagesResponse; + function ImportStatusDHL(const parameters: ImportStatusDHL): ImportStatusDHLResponse; + function ImportStatusesDHL(const parameters: ImportStatusesDHL): ImportStatusesDHLResponse; + function ImportOrderCart(const parameters: ImportOrderCart): ImportOrderCartResponse; + function ImportOrdersCart(const parameters: ImportOrdersCart): ImportOrdersCartResponse; + end; + +implementation + +uses + {vcl:} SysUtils, + {RemObjects:} uROEventRepository, uROSerializer, uRORes; + +{ ArrayOfAnyType } + +class function ArrayOfAnyType.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function ArrayOfAnyType.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function ArrayOfAnyType.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '-1'; + 2: result := 'PPLIEGate'; + end; +end; + +procedure ArrayOfAnyType.Assign(iSource: TPersistent); +var lSource:ArrayOfAnyType; + i:integer; +begin + if (iSource is ArrayOfAnyType) then begin + lSource := ArrayOfAnyType(iSource); + Clear(); + + Resize(lSource.Count); + for i := 0 to lSource.Count-1 do + Items[i] := lSource.Items[i]; + end + else begin + inherited Assign(iSource); + end; +end; + +class function ArrayOfAnyType.GetItemType: PTypeInfo; +begin + result := TypeInfo(unknown); +end; + +class function ArrayOfAnyType.GetItemSize: integer; +begin + result := SizeOf(unknown); +end; + +function ArrayOfAnyType.GetItems(aIndex: integer): unknown; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function ArrayOfAnyType.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := @fItems[aIndex]; +end; + +procedure ArrayOfAnyType.Clear; +begin + SetLength(fItems, 0); + FCount := 0; +end; + +procedure ArrayOfAnyType.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + fItems[aIndex] := Value; +end; + +procedure ArrayOfAnyType.Resize(ElementCount: integer); +begin + if fCount = ElementCount then Exit; + SetLength(fItems, ElementCount); + FCount := ElementCount; +end; + +function ArrayOfAnyType.GetCount: integer; +begin + result := FCount; +end; + +procedure ArrayOfAnyType.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function ArrayOfAnyType.Add(const Value: unknown): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +function ArrayOfAnyType.GetIndex(const aPropertyName: string; + const aPropertyValue: Variant; StartFrom: integer; + Options: TROSearchOptions): integer; +begin + result := -1; +end; + +function ArrayOfAnyType.IndexOf(const aValue: unknown; const aStartFrom: integer = 0): integer; +begin + for Result := aStartFrom to Count-1 do + if Items[Result] = aValue then Exit; + Result := -1; +end; + +procedure ArrayOfAnyType.ReadComplex(ASerializer: TObject); +var + lval: unknown; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin + end; + Items[i] := lval; + end; +end; + +procedure ArrayOfAnyType.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do +end; + +{ ArrayOfPPLSprintItem } + +class function ArrayOfPPLSprintItem.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function ArrayOfPPLSprintItem.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function ArrayOfPPLSprintItem.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '-1'; + 2: result := 'PPLIEGate'; + end; +end; + +procedure ArrayOfPPLSprintItem.Assign(iSource: TPersistent); +var lSource:ArrayOfPPLSprintItem; + i:integer; + lItem:PPLSprintItem; +begin + if (iSource is ArrayOfPPLSprintItem) then begin + lSource := ArrayOfPPLSprintItem(iSource); + Clear(); + + for i := 0 to lSource.Count-1 do + if Assigned(lSource.Items[i]) then begin + lItem := PPLSprintItem(lSource.Items[i].ClassType.Create); + lItem.Assign(lSource.Items[i]); + Add(lItem); + end + else begin + Add(nil); + end; + end + else begin + inherited Assign(iSource); + end; +end; + +class function ArrayOfPPLSprintItem.GetItemType: PTypeInfo; +begin + result := TypeInfo(PPLSprintItem); +end; + +class function ArrayOfPPLSprintItem.GetItemClass: TClass; +begin + result := PPLSprintItem; +end; + +class function ArrayOfPPLSprintItem.GetItemSize: integer; +begin + result := SizeOf(PPLSprintItem); +end; + +function ArrayOfPPLSprintItem.GetItems(aIndex: integer): PPLSprintItem; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function ArrayOfPPLSprintItem.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +procedure ArrayOfPPLSprintItem.SetItemRef(aIndex: integer; Ref: pointer); +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if Ref <> fItems[aIndex] then begin + if fItems[aIndex] <> nil then fItems[aIndex].Free; + fItems[aIndex] := Ref; + end; +end; + +procedure ArrayOfPPLSprintItem.Clear; +var i: integer; +begin + for i := 0 to (Count-1) do fItems[i].Free(); + SetLength(fItems, 0); + FCount := 0; +end; + +procedure ArrayOfPPLSprintItem.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + fItems[aIndex].Free(); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if fItems[aIndex] <> Value then begin + fItems[aIndex].Free; + fItems[aIndex] := Value; + end; +end; + +procedure ArrayOfPPLSprintItem.Resize(ElementCount: integer); +var i: Integer; +begin + if fCount = ElementCount then Exit; + for i := FCount -1 downto ElementCount do + FItems[i].Free; + SetLength(fItems, ElementCount); + for i := FCount to ElementCount -1 do + FItems[i] := PPLSprintItem.Create; + FCount := ElementCount; +end; + +function ArrayOfPPLSprintItem.GetCount: integer; +begin + result := FCount; +end; + +procedure ArrayOfPPLSprintItem.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function ArrayOfPPLSprintItem.Add: PPLSprintItem; +begin + result := PPLSprintItem.Create; + Add(Result); +end; + +function ArrayOfPPLSprintItem.Add(const Value:PPLSprintItem): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +procedure ArrayOfPPLSprintItem.ReadComplex(ASerializer: TObject); +var + lval: PPLSprintItem; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin + ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), PPLSprintItem, lval, i); + end; + Items[i] := lval; + end; +end; + +procedure ArrayOfPPLSprintItem.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do + WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], PPLSprintItem, i); +end; + +{ ArrayOfZipCode } + +class function ArrayOfZipCode.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function ArrayOfZipCode.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function ArrayOfZipCode.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '-1'; + 2: result := 'PPLIEGate'; + end; +end; + +procedure ArrayOfZipCode.Assign(iSource: TPersistent); +var lSource:ArrayOfZipCode; + i:integer; + lItem:ZipCode; +begin + if (iSource is ArrayOfZipCode) then begin + lSource := ArrayOfZipCode(iSource); + Clear(); + + for i := 0 to lSource.Count-1 do + if Assigned(lSource.Items[i]) then begin + lItem := ZipCode(lSource.Items[i].ClassType.Create); + lItem.Assign(lSource.Items[i]); + Add(lItem); + end + else begin + Add(nil); + end; + end + else begin + inherited Assign(iSource); + end; +end; + +class function ArrayOfZipCode.GetItemType: PTypeInfo; +begin + result := TypeInfo(ZipCode); +end; + +class function ArrayOfZipCode.GetItemClass: TClass; +begin + result := ZipCode; +end; + +class function ArrayOfZipCode.GetItemSize: integer; +begin + result := SizeOf(ZipCode); +end; + +function ArrayOfZipCode.GetItems(aIndex: integer): ZipCode; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function ArrayOfZipCode.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +procedure ArrayOfZipCode.SetItemRef(aIndex: integer; Ref: pointer); +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if Ref <> fItems[aIndex] then begin + if fItems[aIndex] <> nil then fItems[aIndex].Free; + fItems[aIndex] := Ref; + end; +end; + +procedure ArrayOfZipCode.Clear; +var i: integer; +begin + for i := 0 to (Count-1) do fItems[i].Free(); + SetLength(fItems, 0); + FCount := 0; +end; + +procedure ArrayOfZipCode.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + fItems[aIndex].Free(); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if fItems[aIndex] <> Value then begin + fItems[aIndex].Free; + fItems[aIndex] := Value; + end; +end; + +procedure ArrayOfZipCode.Resize(ElementCount: integer); +var i: Integer; +begin + if fCount = ElementCount then Exit; + for i := FCount -1 downto ElementCount do + FItems[i].Free; + SetLength(fItems, ElementCount); + for i := FCount to ElementCount -1 do + FItems[i] := ZipCode.Create; + FCount := ElementCount; +end; + +function ArrayOfZipCode.GetCount: integer; +begin + result := FCount; +end; + +procedure ArrayOfZipCode.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function ArrayOfZipCode.Add: ZipCode; +begin + result := ZipCode.Create; + Add(Result); +end; + +function ArrayOfZipCode.Add(const Value:ZipCode): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +procedure ArrayOfZipCode.ReadComplex(ASerializer: TObject); +var + lval: ZipCode; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin + ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), ZipCode, lval, i); + end; + Items[i] := lval; + end; +end; + +procedure ArrayOfZipCode.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do + WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], ZipCode, i); +end; + +{ ArrayOfCity } + +class function ArrayOfCity.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function ArrayOfCity.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function ArrayOfCity.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '-1'; + 2: result := 'PPLIEGate'; + end; +end; + +procedure ArrayOfCity.Assign(iSource: TPersistent); +var lSource:ArrayOfCity; + i:integer; + lItem:City; +begin + if (iSource is ArrayOfCity) then begin + lSource := ArrayOfCity(iSource); + Clear(); + + for i := 0 to lSource.Count-1 do + if Assigned(lSource.Items[i]) then begin + lItem := City(lSource.Items[i].ClassType.Create); + lItem.Assign(lSource.Items[i]); + Add(lItem); + end + else begin + Add(nil); + end; + end + else begin + inherited Assign(iSource); + end; +end; + +class function ArrayOfCity.GetItemType: PTypeInfo; +begin + result := TypeInfo(City); +end; + +class function ArrayOfCity.GetItemClass: TClass; +begin + result := City; +end; + +class function ArrayOfCity.GetItemSize: integer; +begin + result := SizeOf(City); +end; + +function ArrayOfCity.GetItems(aIndex: integer): City; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function ArrayOfCity.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +procedure ArrayOfCity.SetItemRef(aIndex: integer; Ref: pointer); +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if Ref <> fItems[aIndex] then begin + if fItems[aIndex] <> nil then fItems[aIndex].Free; + fItems[aIndex] := Ref; + end; +end; + +procedure ArrayOfCity.Clear; +var i: integer; +begin + for i := 0 to (Count-1) do fItems[i].Free(); + SetLength(fItems, 0); + FCount := 0; +end; + +procedure ArrayOfCity.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + fItems[aIndex].Free(); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if fItems[aIndex] <> Value then begin + fItems[aIndex].Free; + fItems[aIndex] := Value; + end; +end; + +procedure ArrayOfCity.Resize(ElementCount: integer); +var i: Integer; +begin + if fCount = ElementCount then Exit; + for i := FCount -1 downto ElementCount do + FItems[i].Free; + SetLength(fItems, ElementCount); + for i := FCount to ElementCount -1 do + FItems[i] := City.Create; + FCount := ElementCount; +end; + +function ArrayOfCity.GetCount: integer; +begin + result := FCount; +end; + +procedure ArrayOfCity.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function ArrayOfCity.Add: City; +begin + result := City.Create; + Add(Result); +end; + +function ArrayOfCity.Add(const Value:City): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +procedure ArrayOfCity.ReadComplex(ASerializer: TObject); +var + lval: City; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin + ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), City, lval, i); + end; + Items[i] := lval; + end; +end; + +procedure ArrayOfCity.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do + WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], City, i); +end; + +{ ArrayOfString } + +class function ArrayOfString.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function ArrayOfString.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function ArrayOfString.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '-1'; + 2: result := 'PPLIEGate'; + end; +end; + +procedure ArrayOfString.Assign(iSource: TPersistent); +var lSource:ArrayOfString; + i:integer; +begin + if (iSource is ArrayOfString) then begin + lSource := ArrayOfString(iSource); + Clear(); + + Resize(lSource.Count); + for i := 0 to lSource.Count-1 do + Items[i] := lSource.Items[i]; + end + else begin + inherited Assign(iSource); + end; +end; + +class function ArrayOfString.GetItemType: PTypeInfo; +begin + result := TypeInfo(UnicodeString); +end; + +class function ArrayOfString.GetItemSize: integer; +begin + result := SizeOf(UnicodeString); +end; + +function ArrayOfString.GetItems(aIndex: integer): UnicodeString; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function ArrayOfString.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := @fItems[aIndex]; +end; + +procedure ArrayOfString.Clear; +begin + SetLength(fItems, 0); + FCount := 0; +end; + +procedure ArrayOfString.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + fItems[aIndex] := Value; +end; + +procedure ArrayOfString.Resize(ElementCount: integer); +begin + if fCount = ElementCount then Exit; + SetLength(fItems, ElementCount); + FCount := ElementCount; +end; + +function ArrayOfString.GetCount: integer; +begin + result := FCount; +end; + +procedure ArrayOfString.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function ArrayOfString.Add(const Value: UnicodeString): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +function ArrayOfString.GetIndex(const aPropertyName: string; + const aPropertyValue: Variant; StartFrom: integer; + Options: TROSearchOptions): integer; +begin + result := -1; +end; + +function ArrayOfString.IndexOf(const aValue: UnicodeString; const aStartFrom: integer = 0): integer; +begin + for Result := aStartFrom to Count-1 do + if Items[Result] = aValue then Exit; + Result := -1; +end; + +procedure ArrayOfString.ReadComplex(ASerializer: TObject); +var + lval: UnicodeString; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin +{$IFDEF UNICODE} + ReadUnicodeString(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i); +{$ELSE} + ReadWideString(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i); +{$ENDIF} + end; + Items[i] := lval; + end; +end; + +procedure ArrayOfString.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do +{$IFDEF UNICODE} + WriteUnicodeString(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i); +{$ELSE} + WriteWideString(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i); +{$ENDIF} +end; + +{ ArrayOfPackageInfo } + +class function ArrayOfPackageInfo.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function ArrayOfPackageInfo.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function ArrayOfPackageInfo.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '-1'; + 2: result := 'PPLIEGate'; + end; +end; + +procedure ArrayOfPackageInfo.Assign(iSource: TPersistent); +var lSource:ArrayOfPackageInfo; + i:integer; + lItem:PackageInfo; +begin + if (iSource is ArrayOfPackageInfo) then begin + lSource := ArrayOfPackageInfo(iSource); + Clear(); + + for i := 0 to lSource.Count-1 do + if Assigned(lSource.Items[i]) then begin + lItem := PackageInfo(lSource.Items[i].ClassType.Create); + lItem.Assign(lSource.Items[i]); + Add(lItem); + end + else begin + Add(nil); + end; + end + else begin + inherited Assign(iSource); + end; +end; + +class function ArrayOfPackageInfo.GetItemType: PTypeInfo; +begin + result := TypeInfo(PackageInfo); +end; + +class function ArrayOfPackageInfo.GetItemClass: TClass; +begin + result := PackageInfo; +end; + +class function ArrayOfPackageInfo.GetItemSize: integer; +begin + result := SizeOf(PackageInfo); +end; + +function ArrayOfPackageInfo.GetItems(aIndex: integer): PackageInfo; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function ArrayOfPackageInfo.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +procedure ArrayOfPackageInfo.SetItemRef(aIndex: integer; Ref: pointer); +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if Ref <> fItems[aIndex] then begin + if fItems[aIndex] <> nil then fItems[aIndex].Free; + fItems[aIndex] := Ref; + end; +end; + +procedure ArrayOfPackageInfo.Clear; +var i: integer; +begin + for i := 0 to (Count-1) do fItems[i].Free(); + SetLength(fItems, 0); + FCount := 0; +end; + +procedure ArrayOfPackageInfo.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + fItems[aIndex].Free(); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + if fItems[aIndex] <> Value then begin + fItems[aIndex].Free; + fItems[aIndex] := Value; + end; +end; + +procedure ArrayOfPackageInfo.Resize(ElementCount: integer); +var i: Integer; +begin + if fCount = ElementCount then Exit; + for i := FCount -1 downto ElementCount do + FItems[i].Free; + SetLength(fItems, ElementCount); + for i := FCount to ElementCount -1 do + FItems[i] := PackageInfo.Create; + FCount := ElementCount; +end; + +function ArrayOfPackageInfo.GetCount: integer; +begin + result := FCount; +end; + +procedure ArrayOfPackageInfo.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function ArrayOfPackageInfo.Add: PackageInfo; +begin + result := PackageInfo.Create; + Add(Result); +end; + +function ArrayOfPackageInfo.Add(const Value:PackageInfo): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +procedure ArrayOfPackageInfo.ReadComplex(ASerializer: TObject); +var + lval: PackageInfo; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin + ReadStruct(GetArrayElementName(GetItemType, GetItemRef(i)), PackageInfo, lval, i); + end; + Items[i] := lval; + end; +end; + +procedure ArrayOfPackageInfo.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do + WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], PackageInfo, i); +end; + +{ StringArray } + +class function StringArray.GetAttributeCount: Integer; +begin + result := 3; +end; + +class function StringArray.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'minOccurs'; + 1: result := 'maxOccurs'; + 2: result := 'ImportedFromNamespace'; + end; +end; + +class function StringArray.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := '0'; + 1: result := '0'; + 2: result := 'PPLIEGate/AbstractTypes'; + end; +end; + +procedure StringArray.Assign(iSource: TPersistent); +var lSource:StringArray; + i:integer; +begin + if (iSource is StringArray) then begin + lSource := StringArray(iSource); + Clear(); + + Resize(lSource.Count); + for i := 0 to lSource.Count-1 do + Items[i] := lSource.Items[i]; + end + else begin + inherited Assign(iSource); + end; +end; + +class function StringArray.GetItemType: PTypeInfo; +begin + result := TypeInfo(unknown); +end; + +class function StringArray.GetItemSize: integer; +begin + result := SizeOf(unknown); +end; + +function StringArray.GetItems(aIndex: integer): unknown; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := fItems[aIndex]; +end; + +function StringArray.GetItemRef(aIndex: integer): pointer; +begin + if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + result := @fItems[aIndex]; +end; + +procedure StringArray.Clear; +begin + SetLength(fItems, 0); + FCount := 0; +end; + +procedure StringArray.Delete(aIndex: integer); +var i: integer; +begin + if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]); + + if (aIndex= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]); + fItems[aIndex] := Value; +end; + +procedure StringArray.Resize(ElementCount: integer); +begin + if fCount = ElementCount then Exit; + SetLength(fItems, ElementCount); + FCount := ElementCount; +end; + +function StringArray.GetCount: integer; +begin + result := FCount; +end; + +procedure StringArray.Grow; +var + Delta, Capacity: Integer; +begin + Capacity := Length(fItems); + if Capacity > 64 then + Delta := Capacity div 4 + else + if Capacity > 8 then + Delta := 16 + else + Delta := 4; + SetLength(fItems, Capacity + Delta); +end; + +function StringArray.Add(const Value: unknown): integer; +begin + Result := Count; + if Length(fItems) = Result then + Grow; + fItems[result] := Value; + Inc(fCount); +end; + +function StringArray.GetIndex(const aPropertyName: string; + const aPropertyValue: Variant; StartFrom: integer; + Options: TROSearchOptions): integer; +begin + result := -1; +end; + +function StringArray.IndexOf(const aValue: unknown; const aStartFrom: integer = 0): integer; +begin + for Result := aStartFrom to Count-1 do + if Items[Result] = aValue then Exit; + Result := -1; +end; + +procedure StringArray.ReadComplex(ASerializer: TObject); +var + lval: unknown; + i: integer; +begin + for i := 0 to Count-1 do begin + with TROSerializer(ASerializer) do begin + end; + Items[i] := lval; + end; +end; + +procedure StringArray.WriteComplex(ASerializer: TObject); +var + i: integer; +begin + for i := 0 to Count-1 do + with TROSerializer(ASerializer) do +end; + +{ ImportPPLSprint } + +class function ImportPPLSprint.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPPLSprint.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPPLSprint.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPPLSprint.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPPLSprint; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPPLSprint) then begin + lSource := libPPL_Intf.ImportPPLSprint(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fpackages) then + packages.Assign(lSource.fpackages) + else + FreeAndNil(fpackages); + end; +end; + +function ImportPPLSprint.Getpackages: colPPLSprint; +begin + if (fpackages = nil) then fpackages := colPPLSprint.Create(); + result := fpackages; +end; + +procedure ImportPPLSprint.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_packages: colPPLSprint; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_packages := int_packages; + TROSerializer(ASerializer).ReadStruct('packages', colPPLSprint, l_packages); + if int_packages <> l_packages then packages.Free; + packages := l_packages; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_packages := int_packages; + TROSerializer(ASerializer).ReadStruct('packages', colPPLSprint, l_packages); + if int_packages <> l_packages then packages.Free; + packages := l_packages; + end; +end; + +procedure ImportPPLSprint.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_packages: colPPLSprint; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPPLSprint); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_packages := int_packages; + TROSerializer(ASerializer).WriteStruct('packages', l_packages, colPPLSprint); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_packages := int_packages; + TROSerializer(ASerializer).WriteStruct('packages', l_packages, colPPLSprint); + end; +end; + +{ ImportPPLSprintCollection } +constructor ImportPPLSprintCollection.Create; +begin + inherited Create(ImportPPLSprint); +end; + +constructor ImportPPLSprintCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPPLSprintCollection.Add: ImportPPLSprint; +begin + result := ImportPPLSprint(inherited Add); +end; + +function ImportPPLSprintCollection.GetItems(aIndex: integer): ImportPPLSprint; +begin + result := ImportPPLSprint(inherited Items[aIndex]); +end; + +procedure ImportPPLSprintCollection.SetItems(aIndex: integer; const Value: ImportPPLSprint); +begin + ImportPPLSprint(inherited Items[aIndex]).Assign(Value); +end; + +{ colPPLSprint } + +class function colPPLSprint.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colPPLSprint.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colPPLSprint.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colPPLSprint.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colPPLSprint; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colPPLSprint) then begin + lSource := libPPL_Intf.colPPLSprint(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colPPLSprint.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colPPLSprint.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colPPLSprint.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colPPLSprint); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colPPLSprintCollection } +constructor colPPLSprintCollection.Create; +begin + inherited Create(colPPLSprint); +end; + +constructor colPPLSprintCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colPPLSprintCollection.Add: colPPLSprint; +begin + result := colPPLSprint(inherited Add); +end; + +function colPPLSprintCollection.GetItems(aIndex: integer): colPPLSprint; +begin + result := colPPLSprint(inherited Items[aIndex]); +end; + +procedure colPPLSprintCollection.SetItems(aIndex: integer; const Value: colPPLSprint); +begin + colPPLSprint(inherited Items[aIndex]).Assign(Value); +end; + +{ Package } + +class function Package.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function Package.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function Package.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure Package.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.Package; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.Package) then begin + lSource := libPPL_Intf.Package(iSource); + PackageID := lSource.PackageID; + PackageIDCUS := lSource.PackageIDCUS; + field_ZipCode := lSource.field_ZipCode; + Country := lSource.Country; + CodPrice := lSource.CodPrice; + CodPriceCurID := lSource.CodPriceCurID; + VarSym := lSource.VarSym; + ConsigneeName := lSource.ConsigneeName; + ConsigneeStreet := lSource.ConsigneeStreet; + ConsigneeCity := lSource.ConsigneeCity; + Phone := lSource.Phone; + Contact := lSource.Contact; + EveningDelivery := lSource.EveningDelivery; + CustRef := lSource.CustRef; + Length := lSource.Length; + Height := lSource.Height; + Width := lSource.Width; + RecMail := lSource.RecMail; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure Package.ReadComplex(ASerializer: TObject); +var + l_CodPrice: decimal; + l_CodPriceCurID: UnicodeString; + l_ConsigneeCity: UnicodeString; + l_ConsigneeName: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Contact: UnicodeString; + l_Country: UnicodeString; + l_CustRef: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EveningDelivery: boolean; + l_field_ZipCode: UnicodeString; + l_Height: UnicodeString; + l_Length: UnicodeString; + l_PackageID: UnicodeString; + l_PackageIDCUS: UnicodeString; + l_Phone: UnicodeString; + l_RecMail: UnicodeString; + l_VarSym: UnicodeString; + l_Width: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + PackageIDCUS := l_PackageIDCUS; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_CodPriceCurID := CodPriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CodPriceCurID', l_CodPriceCurID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CodPriceCurID', l_CodPriceCurID); +{$ENDIF} + CodPriceCurID := l_CodPriceCurID; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + ConsigneeName := l_ConsigneeName; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Contact', l_Contact); +{$ENDIF} + Contact := l_Contact; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustRef', l_CustRef); +{$ENDIF} + CustRef := l_CustRef; + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Length', l_Length); +{$ENDIF} + Length := l_Length; + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Height', l_Height); +{$ENDIF} + Height := l_Height; + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Width', l_Width); +{$ENDIF} + Width := l_Width; + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecMail', l_RecMail); +{$ENDIF} + RecMail := l_RecMail; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_CodPriceCurID := CodPriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CodPriceCurID', l_CodPriceCurID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CodPriceCurID', l_CodPriceCurID); +{$ENDIF} + CodPriceCurID := l_CodPriceCurID; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + ConsigneeName := l_ConsigneeName; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Contact', l_Contact); +{$ENDIF} + Contact := l_Contact; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustRef', l_CustRef); +{$ENDIF} + CustRef := l_CustRef; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Height', l_Height); +{$ENDIF} + Height := l_Height; + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Length', l_Length); +{$ENDIF} + Length := l_Length; + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + PackageIDCUS := l_PackageIDCUS; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecMail', l_RecMail); +{$ENDIF} + RecMail := l_RecMail; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Width', l_Width); +{$ENDIF} + Width := l_Width; + end; +end; + +procedure Package.WriteComplex(ASerializer: TObject); +var + l_CodPrice: decimal; + l_CodPriceCurID: UnicodeString; + l_ConsigneeCity: UnicodeString; + l_ConsigneeName: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Contact: UnicodeString; + l_Country: UnicodeString; + l_CustRef: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EveningDelivery: boolean; + l_field_ZipCode: UnicodeString; + l_Height: UnicodeString; + l_Length: UnicodeString; + l_PackageID: UnicodeString; + l_PackageIDCUS: UnicodeString; + l_Phone: UnicodeString; + l_RecMail: UnicodeString; + l_VarSym: UnicodeString; + l_Width: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(Package); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_CodPriceCurID := CodPriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CodPriceCurID', l_CodPriceCurID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CodPriceCurID', l_CodPriceCurID); +{$ENDIF} + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Contact', l_Contact); +{$ENDIF} + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustRef', l_CustRef); +{$ENDIF} + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Length', l_Length); +{$ENDIF} + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Height', l_Height); +{$ENDIF} + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Width', l_Width); +{$ENDIF} + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecMail', l_RecMail); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_CodPriceCurID := CodPriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CodPriceCurID', l_CodPriceCurID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CodPriceCurID', l_CodPriceCurID); +{$ENDIF} + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Contact', l_Contact); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustRef', l_CustRef); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Height', l_Height); +{$ENDIF} + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Length', l_Length); +{$ENDIF} + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecMail', l_RecMail); +{$ENDIF} + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Width', l_Width); +{$ENDIF} + end; +end; + +{ PackageCollection } +constructor PackageCollection.Create; +begin + inherited Create(Package); +end; + +constructor PackageCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PackageCollection.Add: Package; +begin + result := Package(inherited Add); +end; + +function PackageCollection.GetItems(aIndex: integer): Package; +begin + result := Package(inherited Items[aIndex]); +end; + +procedure PackageCollection.SetItems(aIndex: integer; const Value: Package); +begin + Package(inherited Items[aIndex]).Assign(Value); +end; + +{ PPLSprint } + +class function PPLSprint.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PPLSprint.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PPLSprint.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PPLSprint.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PPLSprint; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PPLSprint) then begin + lSource := libPPL_Intf.PPLSprint(iSource); + PackageIdPPL := lSource.PackageIdPPL; + DCOD := lSource.DCOD; + PackageType := lSource.PackageType; + PickupDate := lSource.PickupDate; + PickupTimeFrom := lSource.PickupTimeFrom; + PickupTimeTo := lSource.PickupTimeTo; + DelivTimeFrom := lSource.DelivTimeFrom; + DelivTimeTo := lSource.DelivTimeTo; + CountOfEuroPal := lSource.CountOfEuroPal; + DeliveryTerms := lSource.DeliveryTerms; + Email := lSource.Email; + GoodsDesc := lSource.GoodsDesc; + Note := lSource.Note; + CustRef := lSource.CustRef; + Insurance := lSource.Insurance; + InsuranceValue := lSource.InsuranceValue; + CodValue := lSource.CodValue; + CodVarCode := lSource.CodVarCode; + SendName := lSource.SendName; + SendStreet := lSource.SendStreet; + SendCity := lSource.SendCity; + SendZipCode := lSource.SendZipCode; + SendContact := lSource.SendContact; + SendPhone := lSource.SendPhone; + SendOrgId := lSource.SendOrgId; + SendOrgVatId := lSource.SendOrgVatId; + RecName := lSource.RecName; + RecStreet := lSource.RecStreet; + RecCity := lSource.RecCity; + RecZipCode := lSource.RecZipCode; + RecContact := lSource.RecContact; + RecPhone := lSource.RecPhone; + RecOrgId := lSource.RecOrgId; + RecOrgVatId := lSource.RecOrgVatId; + EurBack := lSource.EurBack; + LatePickup := lSource.LatePickup; + Stock := lSource.Stock; + ThirdDeliv := lSource.ThirdDeliv; + POD := lSource.POD; + SaturdayDeliv := lSource.SaturdayDeliv; + OutWorkTime := lSource.OutWorkTime; + OutWorkTimePickup := lSource.OutWorkTimePickup; + CrgManId := lSource.CrgManId; + PayOnDelivery := lSource.PayOnDelivery; + DocBack := lSource.DocBack; + ADR := lSource.ADR; + IdPri := lSource.IdPri; + Account := lSource.Account; + BankCode := lSource.BankCode; + SpecSymbol := lSource.SpecSymbol; + if Assigned(lSource.fPackageItems) then + PackageItems.Assign(lSource.fPackageItems) + else + FreeAndNil(fPackageItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function PPLSprint.GetPackageItems: ArrayOfPPLSprintItem; +begin + if (fPackageItems = nil) then fPackageItems := ArrayOfPPLSprintItem.Create(); + result := fPackageItems; +end; + +procedure PPLSprint.ReadComplex(ASerializer: TObject); +var + l_Account: UnicodeString; + l_ADR: boolean; + l_BankCode: UnicodeString; + l_CodValue: decimal; + l_CodVarCode: UnicodeString; + l_CountOfEuroPal: Integer; + l_CrgManId: Integer; + l_CustRef: UnicodeString; + l_DCOD: UnicodeString; + l_DeliveryTerms: UnicodeString; + l_DelivTimeFrom: UnicodeString; + l_DelivTimeTo: UnicodeString; + l_DocBack: boolean; + l_Email: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EurBack: boolean; + l_GoodsDesc: UnicodeString; + l_IdPri: UnicodeString; + l_Insurance: UnicodeString; + l_InsuranceValue: Integer; + l_LatePickup: boolean; + l_Note: UnicodeString; + l_OutWorkTime: boolean; + l_OutWorkTimePickup: boolean; + l_PackageIdPPL: UnicodeString; + l_PackageItems: ArrayOfPPLSprintItem; + l_PackageType: Integer; + l_PayOnDelivery: boolean; + l_PickupDate: DateTime; + l_PickupTimeFrom: UnicodeString; + l_PickupTimeTo: UnicodeString; + l_POD: boolean; + l_RecCity: UnicodeString; + l_RecContact: UnicodeString; + l_RecName: UnicodeString; + l_RecOrgId: UnicodeString; + l_RecOrgVatId: UnicodeString; + l_RecPhone: UnicodeString; + l_RecStreet: UnicodeString; + l_RecZipCode: UnicodeString; + l_SaturdayDeliv: boolean; + l_SendCity: UnicodeString; + l_SendContact: UnicodeString; + l_SendName: UnicodeString; + l_SendOrgId: UnicodeString; + l_SendOrgVatId: UnicodeString; + l_SendPhone: UnicodeString; + l_SendStreet: UnicodeString; + l_SendZipCode: UnicodeString; + l_SpecSymbol: UnicodeString; + l_Stock: boolean; + l_ThirdDeliv: boolean; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageIdPPL := PackageIdPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIdPPL', l_PackageIdPPL); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIdPPL', l_PackageIdPPL); +{$ENDIF} + PackageIdPPL := l_PackageIdPPL; + l_DCOD := DCOD; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DCOD', l_DCOD); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DCOD', l_DCOD); +{$ENDIF} + DCOD := l_DCOD; + l_PackageType := PackageType; + TROSerializer(ASerializer).ReadInteger('PackageType', otSLong, l_PackageType); + PackageType := l_PackageType; + l_PickupDate := PickupDate; + TROSerializer(ASerializer).ReadDateTime('PickupDate', l_PickupDate); + PickupDate := l_PickupDate; + l_PickupTimeFrom := PickupTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PickupTimeFrom', l_PickupTimeFrom); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PickupTimeFrom', l_PickupTimeFrom); +{$ENDIF} + PickupTimeFrom := l_PickupTimeFrom; + l_PickupTimeTo := PickupTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PickupTimeTo', l_PickupTimeTo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PickupTimeTo', l_PickupTimeTo); +{$ENDIF} + PickupTimeTo := l_PickupTimeTo; + l_DelivTimeFrom := DelivTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DelivTimeFrom', l_DelivTimeFrom); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DelivTimeFrom', l_DelivTimeFrom); +{$ENDIF} + DelivTimeFrom := l_DelivTimeFrom; + l_DelivTimeTo := DelivTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DelivTimeTo', l_DelivTimeTo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DelivTimeTo', l_DelivTimeTo); +{$ENDIF} + DelivTimeTo := l_DelivTimeTo; + l_CountOfEuroPal := CountOfEuroPal; + TROSerializer(ASerializer).ReadInteger('CountOfEuroPal', otSLong, l_CountOfEuroPal); + CountOfEuroPal := l_CountOfEuroPal; + l_DeliveryTerms := DeliveryTerms; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DeliveryTerms', l_DeliveryTerms); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DeliveryTerms', l_DeliveryTerms); +{$ENDIF} + DeliveryTerms := l_DeliveryTerms; + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Email', l_Email); +{$ENDIF} + Email := l_Email; + l_GoodsDesc := GoodsDesc; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('GoodsDesc', l_GoodsDesc); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('GoodsDesc', l_GoodsDesc); +{$ENDIF} + GoodsDesc := l_GoodsDesc; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustRef', l_CustRef); +{$ENDIF} + CustRef := l_CustRef; + l_Insurance := Insurance; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Insurance', l_Insurance); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Insurance', l_Insurance); +{$ENDIF} + Insurance := l_Insurance; + l_InsuranceValue := InsuranceValue; + TROSerializer(ASerializer).ReadInteger('InsuranceValue', otSLong, l_InsuranceValue); + InsuranceValue := l_InsuranceValue; + l_CodValue := CodValue; + TROSerializer(ASerializer).ReadDecimal('CodValue', l_CodValue); + CodValue := l_CodValue; + l_CodVarCode := CodVarCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CodVarCode', l_CodVarCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CodVarCode', l_CodVarCode); +{$ENDIF} + CodVarCode := l_CodVarCode; + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendName', l_SendName); +{$ENDIF} + SendName := l_SendName; + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendStreet', l_SendStreet); +{$ENDIF} + SendStreet := l_SendStreet; + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCity', l_SendCity); +{$ENDIF} + SendCity := l_SendCity; + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + SendZipCode := l_SendZipCode; + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendContact', l_SendContact); +{$ENDIF} + SendContact := l_SendContact; + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendPhone', l_SendPhone); +{$ENDIF} + SendPhone := l_SendPhone; + l_SendOrgId := SendOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendOrgId', l_SendOrgId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendOrgId', l_SendOrgId); +{$ENDIF} + SendOrgId := l_SendOrgId; + l_SendOrgVatId := SendOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendOrgVatId', l_SendOrgVatId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendOrgVatId', l_SendOrgVatId); +{$ENDIF} + SendOrgVatId := l_SendOrgVatId; + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecName', l_RecName); +{$ENDIF} + RecName := l_RecName; + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecStreet', l_RecStreet); +{$ENDIF} + RecStreet := l_RecStreet; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecContact', l_RecContact); +{$ENDIF} + RecContact := l_RecContact; + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecPhone', l_RecPhone); +{$ENDIF} + RecPhone := l_RecPhone; + l_RecOrgId := RecOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecOrgId', l_RecOrgId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecOrgId', l_RecOrgId); +{$ENDIF} + RecOrgId := l_RecOrgId; + l_RecOrgVatId := RecOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecOrgVatId', l_RecOrgVatId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecOrgVatId', l_RecOrgVatId); +{$ENDIF} + RecOrgVatId := l_RecOrgVatId; + l_EurBack := EurBack; + TROSerializer(ASerializer).ReadEnumerated('EurBack',TypeInfo(boolean), l_EurBack); + EurBack := l_EurBack; + l_LatePickup := LatePickup; + TROSerializer(ASerializer).ReadEnumerated('LatePickup',TypeInfo(boolean), l_LatePickup); + LatePickup := l_LatePickup; + l_Stock := Stock; + TROSerializer(ASerializer).ReadEnumerated('Stock',TypeInfo(boolean), l_Stock); + Stock := l_Stock; + l_ThirdDeliv := ThirdDeliv; + TROSerializer(ASerializer).ReadEnumerated('ThirdDeliv',TypeInfo(boolean), l_ThirdDeliv); + ThirdDeliv := l_ThirdDeliv; + l_POD := POD; + TROSerializer(ASerializer).ReadEnumerated('POD',TypeInfo(boolean), l_POD); + POD := l_POD; + l_SaturdayDeliv := SaturdayDeliv; + TROSerializer(ASerializer).ReadEnumerated('SaturdayDeliv',TypeInfo(boolean), l_SaturdayDeliv); + SaturdayDeliv := l_SaturdayDeliv; + l_OutWorkTime := OutWorkTime; + TROSerializer(ASerializer).ReadEnumerated('OutWorkTime',TypeInfo(boolean), l_OutWorkTime); + OutWorkTime := l_OutWorkTime; + l_OutWorkTimePickup := OutWorkTimePickup; + TROSerializer(ASerializer).ReadEnumerated('OutWorkTimePickup',TypeInfo(boolean), l_OutWorkTimePickup); + OutWorkTimePickup := l_OutWorkTimePickup; + l_CrgManId := CrgManId; + TROSerializer(ASerializer).ReadInteger('CrgManId', otSLong, l_CrgManId); + CrgManId := l_CrgManId; + l_PayOnDelivery := PayOnDelivery; + TROSerializer(ASerializer).ReadEnumerated('PayOnDelivery',TypeInfo(boolean), l_PayOnDelivery); + PayOnDelivery := l_PayOnDelivery; + l_DocBack := DocBack; + TROSerializer(ASerializer).ReadEnumerated('DocBack',TypeInfo(boolean), l_DocBack); + DocBack := l_DocBack; + l_ADR := ADR; + TROSerializer(ASerializer).ReadEnumerated('ADR',TypeInfo(boolean), l_ADR); + ADR := l_ADR; + l_IdPri := IdPri; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('IdPri', l_IdPri); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('IdPri', l_IdPri); +{$ENDIF} + IdPri := l_IdPri; + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Account', l_Account); +{$ENDIF} + Account := l_Account; + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('BankCode', l_BankCode); +{$ENDIF} + BankCode := l_BankCode; + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + SpecSymbol := l_SpecSymbol; + l_PackageItems := int_PackageItems; + TROSerializer(ASerializer).ReadArray('PackageItems', ArrayOfPPLSprintItem, l_PackageItems); + if int_PackageItems <> l_PackageItems then PackageItems.Free; + PackageItems := l_PackageItems; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Account', l_Account); +{$ENDIF} + Account := l_Account; + l_ADR := ADR; + TROSerializer(ASerializer).ReadEnumerated('ADR',TypeInfo(boolean), l_ADR); + ADR := l_ADR; + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('BankCode', l_BankCode); +{$ENDIF} + BankCode := l_BankCode; + l_CodValue := CodValue; + TROSerializer(ASerializer).ReadDecimal('CodValue', l_CodValue); + CodValue := l_CodValue; + l_CodVarCode := CodVarCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CodVarCode', l_CodVarCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CodVarCode', l_CodVarCode); +{$ENDIF} + CodVarCode := l_CodVarCode; + l_CountOfEuroPal := CountOfEuroPal; + TROSerializer(ASerializer).ReadInteger('CountOfEuroPal', otSLong, l_CountOfEuroPal); + CountOfEuroPal := l_CountOfEuroPal; + l_CrgManId := CrgManId; + TROSerializer(ASerializer).ReadInteger('CrgManId', otSLong, l_CrgManId); + CrgManId := l_CrgManId; + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustRef', l_CustRef); +{$ENDIF} + CustRef := l_CustRef; + l_DCOD := DCOD; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DCOD', l_DCOD); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DCOD', l_DCOD); +{$ENDIF} + DCOD := l_DCOD; + l_DeliveryTerms := DeliveryTerms; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DeliveryTerms', l_DeliveryTerms); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DeliveryTerms', l_DeliveryTerms); +{$ENDIF} + DeliveryTerms := l_DeliveryTerms; + l_DelivTimeFrom := DelivTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DelivTimeFrom', l_DelivTimeFrom); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DelivTimeFrom', l_DelivTimeFrom); +{$ENDIF} + DelivTimeFrom := l_DelivTimeFrom; + l_DelivTimeTo := DelivTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DelivTimeTo', l_DelivTimeTo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DelivTimeTo', l_DelivTimeTo); +{$ENDIF} + DelivTimeTo := l_DelivTimeTo; + l_DocBack := DocBack; + TROSerializer(ASerializer).ReadEnumerated('DocBack',TypeInfo(boolean), l_DocBack); + DocBack := l_DocBack; + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Email', l_Email); +{$ENDIF} + Email := l_Email; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_EurBack := EurBack; + TROSerializer(ASerializer).ReadEnumerated('EurBack',TypeInfo(boolean), l_EurBack); + EurBack := l_EurBack; + l_GoodsDesc := GoodsDesc; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('GoodsDesc', l_GoodsDesc); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('GoodsDesc', l_GoodsDesc); +{$ENDIF} + GoodsDesc := l_GoodsDesc; + l_IdPri := IdPri; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('IdPri', l_IdPri); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('IdPri', l_IdPri); +{$ENDIF} + IdPri := l_IdPri; + l_Insurance := Insurance; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Insurance', l_Insurance); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Insurance', l_Insurance); +{$ENDIF} + Insurance := l_Insurance; + l_InsuranceValue := InsuranceValue; + TROSerializer(ASerializer).ReadInteger('InsuranceValue', otSLong, l_InsuranceValue); + InsuranceValue := l_InsuranceValue; + l_LatePickup := LatePickup; + TROSerializer(ASerializer).ReadEnumerated('LatePickup',TypeInfo(boolean), l_LatePickup); + LatePickup := l_LatePickup; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_OutWorkTime := OutWorkTime; + TROSerializer(ASerializer).ReadEnumerated('OutWorkTime',TypeInfo(boolean), l_OutWorkTime); + OutWorkTime := l_OutWorkTime; + l_OutWorkTimePickup := OutWorkTimePickup; + TROSerializer(ASerializer).ReadEnumerated('OutWorkTimePickup',TypeInfo(boolean), l_OutWorkTimePickup); + OutWorkTimePickup := l_OutWorkTimePickup; + l_PackageIdPPL := PackageIdPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIdPPL', l_PackageIdPPL); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIdPPL', l_PackageIdPPL); +{$ENDIF} + PackageIdPPL := l_PackageIdPPL; + l_PackageItems := int_PackageItems; + TROSerializer(ASerializer).ReadArray('PackageItems', ArrayOfPPLSprintItem, l_PackageItems); + if int_PackageItems <> l_PackageItems then PackageItems.Free; + PackageItems := l_PackageItems; + l_PackageType := PackageType; + TROSerializer(ASerializer).ReadInteger('PackageType', otSLong, l_PackageType); + PackageType := l_PackageType; + l_PayOnDelivery := PayOnDelivery; + TROSerializer(ASerializer).ReadEnumerated('PayOnDelivery',TypeInfo(boolean), l_PayOnDelivery); + PayOnDelivery := l_PayOnDelivery; + l_PickupDate := PickupDate; + TROSerializer(ASerializer).ReadDateTime('PickupDate', l_PickupDate); + PickupDate := l_PickupDate; + l_PickupTimeFrom := PickupTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PickupTimeFrom', l_PickupTimeFrom); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PickupTimeFrom', l_PickupTimeFrom); +{$ENDIF} + PickupTimeFrom := l_PickupTimeFrom; + l_PickupTimeTo := PickupTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PickupTimeTo', l_PickupTimeTo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PickupTimeTo', l_PickupTimeTo); +{$ENDIF} + PickupTimeTo := l_PickupTimeTo; + l_POD := POD; + TROSerializer(ASerializer).ReadEnumerated('POD',TypeInfo(boolean), l_POD); + POD := l_POD; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecContact', l_RecContact); +{$ENDIF} + RecContact := l_RecContact; + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecName', l_RecName); +{$ENDIF} + RecName := l_RecName; + l_RecOrgId := RecOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecOrgId', l_RecOrgId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecOrgId', l_RecOrgId); +{$ENDIF} + RecOrgId := l_RecOrgId; + l_RecOrgVatId := RecOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecOrgVatId', l_RecOrgVatId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecOrgVatId', l_RecOrgVatId); +{$ENDIF} + RecOrgVatId := l_RecOrgVatId; + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecPhone', l_RecPhone); +{$ENDIF} + RecPhone := l_RecPhone; + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecStreet', l_RecStreet); +{$ENDIF} + RecStreet := l_RecStreet; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_SaturdayDeliv := SaturdayDeliv; + TROSerializer(ASerializer).ReadEnumerated('SaturdayDeliv',TypeInfo(boolean), l_SaturdayDeliv); + SaturdayDeliv := l_SaturdayDeliv; + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCity', l_SendCity); +{$ENDIF} + SendCity := l_SendCity; + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendContact', l_SendContact); +{$ENDIF} + SendContact := l_SendContact; + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendName', l_SendName); +{$ENDIF} + SendName := l_SendName; + l_SendOrgId := SendOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendOrgId', l_SendOrgId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendOrgId', l_SendOrgId); +{$ENDIF} + SendOrgId := l_SendOrgId; + l_SendOrgVatId := SendOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendOrgVatId', l_SendOrgVatId); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendOrgVatId', l_SendOrgVatId); +{$ENDIF} + SendOrgVatId := l_SendOrgVatId; + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendPhone', l_SendPhone); +{$ENDIF} + SendPhone := l_SendPhone; + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendStreet', l_SendStreet); +{$ENDIF} + SendStreet := l_SendStreet; + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + SendZipCode := l_SendZipCode; + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + SpecSymbol := l_SpecSymbol; + l_Stock := Stock; + TROSerializer(ASerializer).ReadEnumerated('Stock',TypeInfo(boolean), l_Stock); + Stock := l_Stock; + l_ThirdDeliv := ThirdDeliv; + TROSerializer(ASerializer).ReadEnumerated('ThirdDeliv',TypeInfo(boolean), l_ThirdDeliv); + ThirdDeliv := l_ThirdDeliv; + end; +end; + +procedure PPLSprint.WriteComplex(ASerializer: TObject); +var + l_Account: UnicodeString; + l_ADR: boolean; + l_BankCode: UnicodeString; + l_CodValue: decimal; + l_CodVarCode: UnicodeString; + l_CountOfEuroPal: Integer; + l_CrgManId: Integer; + l_CustRef: UnicodeString; + l_DCOD: UnicodeString; + l_DeliveryTerms: UnicodeString; + l_DelivTimeFrom: UnicodeString; + l_DelivTimeTo: UnicodeString; + l_DocBack: boolean; + l_Email: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EurBack: boolean; + l_GoodsDesc: UnicodeString; + l_IdPri: UnicodeString; + l_Insurance: UnicodeString; + l_InsuranceValue: Integer; + l_LatePickup: boolean; + l_Note: UnicodeString; + l_OutWorkTime: boolean; + l_OutWorkTimePickup: boolean; + l_PackageIdPPL: UnicodeString; + l_PackageItems: ArrayOfPPLSprintItem; + l_PackageType: Integer; + l_PayOnDelivery: boolean; + l_PickupDate: DateTime; + l_PickupTimeFrom: UnicodeString; + l_PickupTimeTo: UnicodeString; + l_POD: boolean; + l_RecCity: UnicodeString; + l_RecContact: UnicodeString; + l_RecName: UnicodeString; + l_RecOrgId: UnicodeString; + l_RecOrgVatId: UnicodeString; + l_RecPhone: UnicodeString; + l_RecStreet: UnicodeString; + l_RecZipCode: UnicodeString; + l_SaturdayDeliv: boolean; + l_SendCity: UnicodeString; + l_SendContact: UnicodeString; + l_SendName: UnicodeString; + l_SendOrgId: UnicodeString; + l_SendOrgVatId: UnicodeString; + l_SendPhone: UnicodeString; + l_SendStreet: UnicodeString; + l_SendZipCode: UnicodeString; + l_SpecSymbol: UnicodeString; + l_Stock: boolean; + l_ThirdDeliv: boolean; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PPLSprint); + l_PackageIdPPL := PackageIdPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIdPPL', l_PackageIdPPL); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIdPPL', l_PackageIdPPL); +{$ENDIF} + l_DCOD := DCOD; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DCOD', l_DCOD); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DCOD', l_DCOD); +{$ENDIF} + l_PackageType := PackageType; + TROSerializer(ASerializer).WriteInteger('PackageType', otSLong, l_PackageType); + l_PickupDate := PickupDate; + TROSerializer(ASerializer).WriteDateTime('PickupDate', l_PickupDate); + l_PickupTimeFrom := PickupTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PickupTimeFrom', l_PickupTimeFrom); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PickupTimeFrom', l_PickupTimeFrom); +{$ENDIF} + l_PickupTimeTo := PickupTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PickupTimeTo', l_PickupTimeTo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PickupTimeTo', l_PickupTimeTo); +{$ENDIF} + l_DelivTimeFrom := DelivTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DelivTimeFrom', l_DelivTimeFrom); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DelivTimeFrom', l_DelivTimeFrom); +{$ENDIF} + l_DelivTimeTo := DelivTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DelivTimeTo', l_DelivTimeTo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DelivTimeTo', l_DelivTimeTo); +{$ENDIF} + l_CountOfEuroPal := CountOfEuroPal; + TROSerializer(ASerializer).WriteInteger('CountOfEuroPal', otSLong, l_CountOfEuroPal); + l_DeliveryTerms := DeliveryTerms; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DeliveryTerms', l_DeliveryTerms); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DeliveryTerms', l_DeliveryTerms); +{$ENDIF} + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Email', l_Email); +{$ENDIF} + l_GoodsDesc := GoodsDesc; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('GoodsDesc', l_GoodsDesc); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('GoodsDesc', l_GoodsDesc); +{$ENDIF} + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustRef', l_CustRef); +{$ENDIF} + l_Insurance := Insurance; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Insurance', l_Insurance); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Insurance', l_Insurance); +{$ENDIF} + l_InsuranceValue := InsuranceValue; + TROSerializer(ASerializer).WriteInteger('InsuranceValue', otSLong, l_InsuranceValue); + l_CodValue := CodValue; + TROSerializer(ASerializer).WriteDecimal('CodValue', l_CodValue); + l_CodVarCode := CodVarCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CodVarCode', l_CodVarCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CodVarCode', l_CodVarCode); +{$ENDIF} + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendName', l_SendName); +{$ENDIF} + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendStreet', l_SendStreet); +{$ENDIF} + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCity', l_SendCity); +{$ENDIF} + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendContact', l_SendContact); +{$ENDIF} + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendPhone', l_SendPhone); +{$ENDIF} + l_SendOrgId := SendOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendOrgId', l_SendOrgId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendOrgId', l_SendOrgId); +{$ENDIF} + l_SendOrgVatId := SendOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendOrgVatId', l_SendOrgVatId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendOrgVatId', l_SendOrgVatId); +{$ENDIF} + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecName', l_RecName); +{$ENDIF} + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecStreet', l_RecStreet); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecContact', l_RecContact); +{$ENDIF} + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecPhone', l_RecPhone); +{$ENDIF} + l_RecOrgId := RecOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecOrgId', l_RecOrgId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecOrgId', l_RecOrgId); +{$ENDIF} + l_RecOrgVatId := RecOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecOrgVatId', l_RecOrgVatId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecOrgVatId', l_RecOrgVatId); +{$ENDIF} + l_EurBack := EurBack; + TROSerializer(ASerializer).WriteEnumerated('EurBack',TypeInfo(boolean), l_EurBack); + l_LatePickup := LatePickup; + TROSerializer(ASerializer).WriteEnumerated('LatePickup',TypeInfo(boolean), l_LatePickup); + l_Stock := Stock; + TROSerializer(ASerializer).WriteEnumerated('Stock',TypeInfo(boolean), l_Stock); + l_ThirdDeliv := ThirdDeliv; + TROSerializer(ASerializer).WriteEnumerated('ThirdDeliv',TypeInfo(boolean), l_ThirdDeliv); + l_POD := POD; + TROSerializer(ASerializer).WriteEnumerated('POD',TypeInfo(boolean), l_POD); + l_SaturdayDeliv := SaturdayDeliv; + TROSerializer(ASerializer).WriteEnumerated('SaturdayDeliv',TypeInfo(boolean), l_SaturdayDeliv); + l_OutWorkTime := OutWorkTime; + TROSerializer(ASerializer).WriteEnumerated('OutWorkTime',TypeInfo(boolean), l_OutWorkTime); + l_OutWorkTimePickup := OutWorkTimePickup; + TROSerializer(ASerializer).WriteEnumerated('OutWorkTimePickup',TypeInfo(boolean), l_OutWorkTimePickup); + l_CrgManId := CrgManId; + TROSerializer(ASerializer).WriteInteger('CrgManId', otSLong, l_CrgManId); + l_PayOnDelivery := PayOnDelivery; + TROSerializer(ASerializer).WriteEnumerated('PayOnDelivery',TypeInfo(boolean), l_PayOnDelivery); + l_DocBack := DocBack; + TROSerializer(ASerializer).WriteEnumerated('DocBack',TypeInfo(boolean), l_DocBack); + l_ADR := ADR; + TROSerializer(ASerializer).WriteEnumerated('ADR',TypeInfo(boolean), l_ADR); + l_IdPri := IdPri; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('IdPri', l_IdPri); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('IdPri', l_IdPri); +{$ENDIF} + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Account', l_Account); +{$ENDIF} + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('BankCode', l_BankCode); +{$ENDIF} + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + l_PackageItems := int_PackageItems; + TROSerializer(ASerializer).WriteArray('PackageItems', l_PackageItems, ArrayOfPPLSprintItem); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Account', l_Account); +{$ENDIF} + l_ADR := ADR; + TROSerializer(ASerializer).WriteEnumerated('ADR',TypeInfo(boolean), l_ADR); + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('BankCode', l_BankCode); +{$ENDIF} + l_CodValue := CodValue; + TROSerializer(ASerializer).WriteDecimal('CodValue', l_CodValue); + l_CodVarCode := CodVarCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CodVarCode', l_CodVarCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CodVarCode', l_CodVarCode); +{$ENDIF} + l_CountOfEuroPal := CountOfEuroPal; + TROSerializer(ASerializer).WriteInteger('CountOfEuroPal', otSLong, l_CountOfEuroPal); + l_CrgManId := CrgManId; + TROSerializer(ASerializer).WriteInteger('CrgManId', otSLong, l_CrgManId); + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustRef', l_CustRef); +{$ENDIF} + l_DCOD := DCOD; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DCOD', l_DCOD); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DCOD', l_DCOD); +{$ENDIF} + l_DeliveryTerms := DeliveryTerms; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DeliveryTerms', l_DeliveryTerms); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DeliveryTerms', l_DeliveryTerms); +{$ENDIF} + l_DelivTimeFrom := DelivTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DelivTimeFrom', l_DelivTimeFrom); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DelivTimeFrom', l_DelivTimeFrom); +{$ENDIF} + l_DelivTimeTo := DelivTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DelivTimeTo', l_DelivTimeTo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DelivTimeTo', l_DelivTimeTo); +{$ENDIF} + l_DocBack := DocBack; + TROSerializer(ASerializer).WriteEnumerated('DocBack',TypeInfo(boolean), l_DocBack); + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Email', l_Email); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_EurBack := EurBack; + TROSerializer(ASerializer).WriteEnumerated('EurBack',TypeInfo(boolean), l_EurBack); + l_GoodsDesc := GoodsDesc; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('GoodsDesc', l_GoodsDesc); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('GoodsDesc', l_GoodsDesc); +{$ENDIF} + l_IdPri := IdPri; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('IdPri', l_IdPri); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('IdPri', l_IdPri); +{$ENDIF} + l_Insurance := Insurance; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Insurance', l_Insurance); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Insurance', l_Insurance); +{$ENDIF} + l_InsuranceValue := InsuranceValue; + TROSerializer(ASerializer).WriteInteger('InsuranceValue', otSLong, l_InsuranceValue); + l_LatePickup := LatePickup; + TROSerializer(ASerializer).WriteEnumerated('LatePickup',TypeInfo(boolean), l_LatePickup); + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_OutWorkTime := OutWorkTime; + TROSerializer(ASerializer).WriteEnumerated('OutWorkTime',TypeInfo(boolean), l_OutWorkTime); + l_OutWorkTimePickup := OutWorkTimePickup; + TROSerializer(ASerializer).WriteEnumerated('OutWorkTimePickup',TypeInfo(boolean), l_OutWorkTimePickup); + l_PackageIdPPL := PackageIdPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIdPPL', l_PackageIdPPL); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIdPPL', l_PackageIdPPL); +{$ENDIF} + l_PackageItems := int_PackageItems; + TROSerializer(ASerializer).WriteArray('PackageItems', l_PackageItems, ArrayOfPPLSprintItem); + l_PackageType := PackageType; + TROSerializer(ASerializer).WriteInteger('PackageType', otSLong, l_PackageType); + l_PayOnDelivery := PayOnDelivery; + TROSerializer(ASerializer).WriteEnumerated('PayOnDelivery',TypeInfo(boolean), l_PayOnDelivery); + l_PickupDate := PickupDate; + TROSerializer(ASerializer).WriteDateTime('PickupDate', l_PickupDate); + l_PickupTimeFrom := PickupTimeFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PickupTimeFrom', l_PickupTimeFrom); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PickupTimeFrom', l_PickupTimeFrom); +{$ENDIF} + l_PickupTimeTo := PickupTimeTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PickupTimeTo', l_PickupTimeTo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PickupTimeTo', l_PickupTimeTo); +{$ENDIF} + l_POD := POD; + TROSerializer(ASerializer).WriteEnumerated('POD',TypeInfo(boolean), l_POD); + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecContact', l_RecContact); +{$ENDIF} + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecName', l_RecName); +{$ENDIF} + l_RecOrgId := RecOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecOrgId', l_RecOrgId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecOrgId', l_RecOrgId); +{$ENDIF} + l_RecOrgVatId := RecOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecOrgVatId', l_RecOrgVatId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecOrgVatId', l_RecOrgVatId); +{$ENDIF} + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecPhone', l_RecPhone); +{$ENDIF} + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecStreet', l_RecStreet); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_SaturdayDeliv := SaturdayDeliv; + TROSerializer(ASerializer).WriteEnumerated('SaturdayDeliv',TypeInfo(boolean), l_SaturdayDeliv); + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCity', l_SendCity); +{$ENDIF} + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendContact', l_SendContact); +{$ENDIF} + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendName', l_SendName); +{$ENDIF} + l_SendOrgId := SendOrgId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendOrgId', l_SendOrgId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendOrgId', l_SendOrgId); +{$ENDIF} + l_SendOrgVatId := SendOrgVatId; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendOrgVatId', l_SendOrgVatId); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendOrgVatId', l_SendOrgVatId); +{$ENDIF} + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendPhone', l_SendPhone); +{$ENDIF} + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendStreet', l_SendStreet); +{$ENDIF} + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + l_Stock := Stock; + TROSerializer(ASerializer).WriteEnumerated('Stock',TypeInfo(boolean), l_Stock); + l_ThirdDeliv := ThirdDeliv; + TROSerializer(ASerializer).WriteEnumerated('ThirdDeliv',TypeInfo(boolean), l_ThirdDeliv); + end; +end; + +{ PPLSprintCollection } +constructor PPLSprintCollection.Create; +begin + inherited Create(PPLSprint); +end; + +constructor PPLSprintCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PPLSprintCollection.Add: PPLSprint; +begin + result := PPLSprint(inherited Add); +end; + +function PPLSprintCollection.GetItems(aIndex: integer): PPLSprint; +begin + result := PPLSprint(inherited Items[aIndex]); +end; + +procedure PPLSprintCollection.SetItems(aIndex: integer; const Value: PPLSprint); +begin + PPLSprint(inherited Items[aIndex]).Assign(Value); +end; + +{ PPLSprintItem } + +class function PPLSprintItem.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PPLSprintItem.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PPLSprintItem.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PPLSprintItem.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PPLSprintItem; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PPLSprintItem) then begin + lSource := libPPL_Intf.PPLSprintItem(iSource); + LPNumber := lSource.LPNumber; + CaseDescription := lSource.CaseDescription; + Weight := lSource.Weight; + Length := lSource.Length; + Height := lSource.Height; + Width := lSource.Width; + end; +end; + +procedure PPLSprintItem.ReadComplex(ASerializer: TObject); +var + l_CaseDescription: UnicodeString; + l_Height: Integer; + l_Length: Integer; + l_LPNumber: UnicodeString; + l_Weight: decimal; + l_Width: Integer; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_LPNumber := LPNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('LPNumber', l_LPNumber); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('LPNumber', l_LPNumber); +{$ENDIF} + LPNumber := l_LPNumber; + l_CaseDescription := CaseDescription; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CaseDescription', l_CaseDescription); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CaseDescription', l_CaseDescription); +{$ENDIF} + CaseDescription := l_CaseDescription; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + l_Length := Length; + TROSerializer(ASerializer).ReadInteger('Length', otSLong, l_Length); + Length := l_Length; + l_Height := Height; + TROSerializer(ASerializer).ReadInteger('Height', otSLong, l_Height); + Height := l_Height; + l_Width := Width; + TROSerializer(ASerializer).ReadInteger('Width', otSLong, l_Width); + Width := l_Width; + end + else begin + l_CaseDescription := CaseDescription; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CaseDescription', l_CaseDescription); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CaseDescription', l_CaseDescription); +{$ENDIF} + CaseDescription := l_CaseDescription; + l_Height := Height; + TROSerializer(ASerializer).ReadInteger('Height', otSLong, l_Height); + Height := l_Height; + l_Length := Length; + TROSerializer(ASerializer).ReadInteger('Length', otSLong, l_Length); + Length := l_Length; + l_LPNumber := LPNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('LPNumber', l_LPNumber); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('LPNumber', l_LPNumber); +{$ENDIF} + LPNumber := l_LPNumber; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + l_Width := Width; + TROSerializer(ASerializer).ReadInteger('Width', otSLong, l_Width); + Width := l_Width; + end; +end; + +procedure PPLSprintItem.WriteComplex(ASerializer: TObject); +var + l_CaseDescription: UnicodeString; + l_Height: Integer; + l_Length: Integer; + l_LPNumber: UnicodeString; + l_Weight: decimal; + l_Width: Integer; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PPLSprintItem); + l_LPNumber := LPNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('LPNumber', l_LPNumber); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('LPNumber', l_LPNumber); +{$ENDIF} + l_CaseDescription := CaseDescription; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CaseDescription', l_CaseDescription); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CaseDescription', l_CaseDescription); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + l_Length := Length; + TROSerializer(ASerializer).WriteInteger('Length', otSLong, l_Length); + l_Height := Height; + TROSerializer(ASerializer).WriteInteger('Height', otSLong, l_Height); + l_Width := Width; + TROSerializer(ASerializer).WriteInteger('Width', otSLong, l_Width); + end + else begin + l_CaseDescription := CaseDescription; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CaseDescription', l_CaseDescription); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CaseDescription', l_CaseDescription); +{$ENDIF} + l_Height := Height; + TROSerializer(ASerializer).WriteInteger('Height', otSLong, l_Height); + l_Length := Length; + TROSerializer(ASerializer).WriteInteger('Length', otSLong, l_Length); + l_LPNumber := LPNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('LPNumber', l_LPNumber); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('LPNumber', l_LPNumber); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + l_Width := Width; + TROSerializer(ASerializer).WriteInteger('Width', otSLong, l_Width); + end; +end; + +{ PPLSprintItemCollection } +constructor PPLSprintItemCollection.Create; +begin + inherited Create(PPLSprintItem); +end; + +constructor PPLSprintItemCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PPLSprintItemCollection.Add: PPLSprintItem; +begin + result := PPLSprintItem(inherited Add); +end; + +function PPLSprintItemCollection.GetItems(aIndex: integer): PPLSprintItem; +begin + result := PPLSprintItem(inherited Items[aIndex]); +end; + +procedure PPLSprintItemCollection.LoadFromArray(anArray: ArrayOfPPLSprintItem); +var i : integer; +begin + Clear; + for i := 0 to (anArray.Count-1) do + if anArray[i] <> nil then + anArray[i].Clone.Collection := Self; +end; + +procedure PPLSprintItemCollection.SaveToArray(anArray: ArrayOfPPLSprintItem); +var i : integer; +begin + anArray.Clear; + for i := 0 to (Count-1) do begin + if Assigned(Items[i]) then + anArray.Add(PPLSprintItem(Items[i].Clone)) + else + anArray.Add(nil); + end; +end; + +procedure PPLSprintItemCollection.SetItems(aIndex: integer; const Value: PPLSprintItem); +begin + PPLSprintItem(inherited Items[aIndex]).Assign(Value); +end; + +{ PackageToList } + +class function PackageToList.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PackageToList.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PackageToList.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PackageToList.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PackageToList; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PackageToList) then begin + lSource := libPPL_Intf.PackageToList(iSource); + PackageID := lSource.PackageID; + Weight := lSource.Weight; + ToDelivDate := lSource.ToDelivDate; + RecName := lSource.RecName; + RecStreet := lSource.RecStreet; + RecCity := lSource.RecCity; + RecZipCode := lSource.RecZipCode; + Cod := lSource.Cod; + CodPrice := lSource.CodPrice; + end; +end; + +procedure PackageToList.ReadComplex(ASerializer: TObject); +var + l_Cod: UnicodeString; + l_CodPrice: decimal; + l_PackageID: UnicodeString; + l_RecCity: UnicodeString; + l_RecName: UnicodeString; + l_RecStreet: UnicodeString; + l_RecZipCode: UnicodeString; + l_ToDelivDate: UnicodeString; + l_Weight: decimal; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + l_ToDelivDate := ToDelivDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ToDelivDate', l_ToDelivDate); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ToDelivDate', l_ToDelivDate); +{$ENDIF} + ToDelivDate := l_ToDelivDate; + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecName', l_RecName); +{$ENDIF} + RecName := l_RecName; + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecStreet', l_RecStreet); +{$ENDIF} + RecStreet := l_RecStreet; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_Cod := Cod; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Cod', l_Cod); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Cod', l_Cod); +{$ENDIF} + Cod := l_Cod; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + end + else begin + l_Cod := Cod; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Cod', l_Cod); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Cod', l_Cod); +{$ENDIF} + Cod := l_Cod; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecName', l_RecName); +{$ENDIF} + RecName := l_RecName; + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecStreet', l_RecStreet); +{$ENDIF} + RecStreet := l_RecStreet; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_ToDelivDate := ToDelivDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ToDelivDate', l_ToDelivDate); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ToDelivDate', l_ToDelivDate); +{$ENDIF} + ToDelivDate := l_ToDelivDate; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + end; +end; + +procedure PackageToList.WriteComplex(ASerializer: TObject); +var + l_Cod: UnicodeString; + l_CodPrice: decimal; + l_PackageID: UnicodeString; + l_RecCity: UnicodeString; + l_RecName: UnicodeString; + l_RecStreet: UnicodeString; + l_RecZipCode: UnicodeString; + l_ToDelivDate: UnicodeString; + l_Weight: decimal; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PackageToList); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + l_ToDelivDate := ToDelivDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ToDelivDate', l_ToDelivDate); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ToDelivDate', l_ToDelivDate); +{$ENDIF} + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecName', l_RecName); +{$ENDIF} + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecStreet', l_RecStreet); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_Cod := Cod; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Cod', l_Cod); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Cod', l_Cod); +{$ENDIF} + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + end + else begin + l_Cod := Cod; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Cod', l_Cod); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Cod', l_Cod); +{$ENDIF} + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecName', l_RecName); +{$ENDIF} + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecStreet', l_RecStreet); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_ToDelivDate := ToDelivDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ToDelivDate', l_ToDelivDate); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ToDelivDate', l_ToDelivDate); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + end; +end; + +{ PackageToListCollection } +constructor PackageToListCollection.Create; +begin + inherited Create(PackageToList); +end; + +constructor PackageToListCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PackageToListCollection.Add: PackageToList; +begin + result := PackageToList(inherited Add); +end; + +function PackageToListCollection.GetItems(aIndex: integer): PackageToList; +begin + result := PackageToList(inherited Items[aIndex]); +end; + +procedure PackageToListCollection.SetItems(aIndex: integer; const Value: PackageToList); +begin + PackageToList(inherited Items[aIndex]).Assign(Value); +end; + +{ PackageHoffmann } + +class function PackageHoffmann.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PackageHoffmann.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PackageHoffmann.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PackageHoffmann.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PackageHoffmann; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PackageHoffmann) then begin + lSource := libPPL_Intf.PackageHoffmann(iSource); + PackageID := lSource.PackageID; + field_ZipCode := lSource.field_ZipCode; + Weight := lSource.Weight; + Country := lSource.Country; + Price := lSource.Price; + ConsigneeName1 := lSource.ConsigneeName1; + ConsigneeName2 := lSource.ConsigneeName2; + ConsigneeName3 := lSource.ConsigneeName3; + ConsigneeName4 := lSource.ConsigneeName4; + ConsigneeStreet := lSource.ConsigneeStreet; + ConsigneeCity := lSource.ConsigneeCity; + VarSym := lSource.VarSym; + Phone := lSource.Phone; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure PackageHoffmann.ReadComplex(ASerializer: TObject); +var + l_ConsigneeCity: UnicodeString; + l_ConsigneeName1: UnicodeString; + l_ConsigneeName2: UnicodeString; + l_ConsigneeName3: UnicodeString; + l_ConsigneeName4: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Country: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_field_ZipCode: UnicodeString; + l_PackageID: UnicodeString; + l_Phone: UnicodeString; + l_Price: decimal; + l_VarSym: UnicodeString; + l_Weight: decimal; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_Price := Price; + TROSerializer(ASerializer).ReadDecimal('Price', l_Price); + Price := l_Price; + l_ConsigneeName1 := ConsigneeName1; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName1', l_ConsigneeName1); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName1', l_ConsigneeName1); +{$ENDIF} + ConsigneeName1 := l_ConsigneeName1; + l_ConsigneeName2 := ConsigneeName2; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName2', l_ConsigneeName2); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName2', l_ConsigneeName2); +{$ENDIF} + ConsigneeName2 := l_ConsigneeName2; + l_ConsigneeName3 := ConsigneeName3; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName3', l_ConsigneeName3); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName3', l_ConsigneeName3); +{$ENDIF} + ConsigneeName3 := l_ConsigneeName3; + l_ConsigneeName4 := ConsigneeName4; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName4', l_ConsigneeName4); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName4', l_ConsigneeName4); +{$ENDIF} + ConsigneeName4 := l_ConsigneeName4; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_ConsigneeName1 := ConsigneeName1; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName1', l_ConsigneeName1); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName1', l_ConsigneeName1); +{$ENDIF} + ConsigneeName1 := l_ConsigneeName1; + l_ConsigneeName2 := ConsigneeName2; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName2', l_ConsigneeName2); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName2', l_ConsigneeName2); +{$ENDIF} + ConsigneeName2 := l_ConsigneeName2; + l_ConsigneeName3 := ConsigneeName3; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName3', l_ConsigneeName3); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName3', l_ConsigneeName3); +{$ENDIF} + ConsigneeName3 := l_ConsigneeName3; + l_ConsigneeName4 := ConsigneeName4; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName4', l_ConsigneeName4); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName4', l_ConsigneeName4); +{$ENDIF} + ConsigneeName4 := l_ConsigneeName4; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_Price := Price; + TROSerializer(ASerializer).ReadDecimal('Price', l_Price); + Price := l_Price; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + end; +end; + +procedure PackageHoffmann.WriteComplex(ASerializer: TObject); +var + l_ConsigneeCity: UnicodeString; + l_ConsigneeName1: UnicodeString; + l_ConsigneeName2: UnicodeString; + l_ConsigneeName3: UnicodeString; + l_ConsigneeName4: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Country: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_field_ZipCode: UnicodeString; + l_PackageID: UnicodeString; + l_Phone: UnicodeString; + l_Price: decimal; + l_VarSym: UnicodeString; + l_Weight: decimal; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PackageHoffmann); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_Price := Price; + TROSerializer(ASerializer).WriteDecimal('Price', l_Price); + l_ConsigneeName1 := ConsigneeName1; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName1', l_ConsigneeName1); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName1', l_ConsigneeName1); +{$ENDIF} + l_ConsigneeName2 := ConsigneeName2; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName2', l_ConsigneeName2); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName2', l_ConsigneeName2); +{$ENDIF} + l_ConsigneeName3 := ConsigneeName3; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName3', l_ConsigneeName3); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName3', l_ConsigneeName3); +{$ENDIF} + l_ConsigneeName4 := ConsigneeName4; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName4', l_ConsigneeName4); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName4', l_ConsigneeName4); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_ConsigneeName1 := ConsigneeName1; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName1', l_ConsigneeName1); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName1', l_ConsigneeName1); +{$ENDIF} + l_ConsigneeName2 := ConsigneeName2; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName2', l_ConsigneeName2); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName2', l_ConsigneeName2); +{$ENDIF} + l_ConsigneeName3 := ConsigneeName3; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName3', l_ConsigneeName3); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName3', l_ConsigneeName3); +{$ENDIF} + l_ConsigneeName4 := ConsigneeName4; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName4', l_ConsigneeName4); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName4', l_ConsigneeName4); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_Price := Price; + TROSerializer(ASerializer).WriteDecimal('Price', l_Price); + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + end; +end; + +{ PackageHoffmannCollection } +constructor PackageHoffmannCollection.Create; +begin + inherited Create(PackageHoffmann); +end; + +constructor PackageHoffmannCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PackageHoffmannCollection.Add: PackageHoffmann; +begin + result := PackageHoffmann(inherited Add); +end; + +function PackageHoffmannCollection.GetItems(aIndex: integer): PackageHoffmann; +begin + result := PackageHoffmann(inherited Items[aIndex]); +end; + +procedure PackageHoffmannCollection.SetItems(aIndex: integer; const Value: PackageHoffmann); +begin + PackageHoffmann(inherited Items[aIndex]).Assign(Value); +end; + +{ City } + +class function City.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function City.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function City.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure City.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.City; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.City) then begin + lSource := libPPL_Intf.City(iSource); + Zip := lSource.Zip; + field_City := lSource.field_City; + Region := lSource.Region; + Post := lSource.Post; + Country := lSource.Country; + Reject := lSource.Reject; + end; +end; + +procedure City.ReadComplex(ASerializer: TObject); +var + l_Country: UnicodeString; + l_field_City: UnicodeString; + l_Post: UnicodeString; + l_Region: UnicodeString; + l_Reject: boolean; + l_Zip: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Zip', l_Zip); +{$ENDIF} + Zip := l_Zip; + l_field_City := field_City; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_City', l_field_City); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_City', l_field_City); +{$ENDIF} + field_City := l_field_City; + l_Region := Region; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Region', l_Region); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Region', l_Region); +{$ENDIF} + Region := l_Region; + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Post', l_Post); +{$ENDIF} + Post := l_Post; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_Reject := Reject; + TROSerializer(ASerializer).ReadEnumerated('Reject',TypeInfo(boolean), l_Reject); + Reject := l_Reject; + end + else begin + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_field_City := field_City; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_City', l_field_City); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_City', l_field_City); +{$ENDIF} + field_City := l_field_City; + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Post', l_Post); +{$ENDIF} + Post := l_Post; + l_Region := Region; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Region', l_Region); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Region', l_Region); +{$ENDIF} + Region := l_Region; + l_Reject := Reject; + TROSerializer(ASerializer).ReadEnumerated('Reject',TypeInfo(boolean), l_Reject); + Reject := l_Reject; + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Zip', l_Zip); +{$ENDIF} + Zip := l_Zip; + end; +end; + +procedure City.WriteComplex(ASerializer: TObject); +var + l_Country: UnicodeString; + l_field_City: UnicodeString; + l_Post: UnicodeString; + l_Region: UnicodeString; + l_Reject: boolean; + l_Zip: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(City); + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Zip', l_Zip); +{$ENDIF} + l_field_City := field_City; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_City', l_field_City); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_City', l_field_City); +{$ENDIF} + l_Region := Region; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Region', l_Region); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Region', l_Region); +{$ENDIF} + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Post', l_Post); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_Reject := Reject; + TROSerializer(ASerializer).WriteEnumerated('Reject',TypeInfo(boolean), l_Reject); + end + else begin + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_field_City := field_City; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_City', l_field_City); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_City', l_field_City); +{$ENDIF} + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Post', l_Post); +{$ENDIF} + l_Region := Region; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Region', l_Region); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Region', l_Region); +{$ENDIF} + l_Reject := Reject; + TROSerializer(ASerializer).WriteEnumerated('Reject',TypeInfo(boolean), l_Reject); + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Zip', l_Zip); +{$ENDIF} + end; +end; + +{ CityCollection } +constructor CityCollection.Create; +begin + inherited Create(City); +end; + +constructor CityCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function CityCollection.Add: City; +begin + result := City(inherited Add); +end; + +function CityCollection.GetItems(aIndex: integer): City; +begin + result := City(inherited Items[aIndex]); +end; + +procedure CityCollection.LoadFromArray(anArray: ArrayOfCity); +var i : integer; +begin + Clear; + for i := 0 to (anArray.Count-1) do + if anArray[i] <> nil then + anArray[i].Clone.Collection := Self; +end; + +procedure CityCollection.SaveToArray(anArray: ArrayOfCity); +var i : integer; +begin + anArray.Clear; + for i := 0 to (Count-1) do begin + if Assigned(Items[i]) then + anArray.Add(City(Items[i].Clone)) + else + anArray.Add(nil); + end; +end; + +procedure CityCollection.SetItems(aIndex: integer; const Value: City); +begin + City(inherited Items[aIndex]).Assign(Value); +end; + +{ PackageWeighed } + +class function PackageWeighed.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PackageWeighed.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PackageWeighed.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PackageWeighed.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PackageWeighed; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PackageWeighed) then begin + lSource := libPPL_Intf.PackageWeighed(iSource); + PackageID := lSource.PackageID; + PackageIDCUS := lSource.PackageIDCUS; + InputDestination := lSource.InputDestination; + OutputDestination := lSource.OutputDestination; + field_ZipCode := lSource.field_ZipCode; + Weight := lSource.Weight; + Country := lSource.Country; + Price := lSource.Price; + PriceCurID := lSource.PriceCurID; + ConsigneeName := lSource.ConsigneeName; + ConsigneeStreet := lSource.ConsigneeStreet; + ConsigneeCity := lSource.ConsigneeCity; + Phone := lSource.Phone; + VarSym := lSource.VarSym; + Account := lSource.Account; + BankCode := lSource.BankCode; + SpecSymbol := lSource.SpecSymbol; + DateDelivFrom := lSource.DateDelivFrom; + DateDelivTo := lSource.DateDelivTo; + Contact := lSource.Contact; + CustRef := lSource.CustRef; + EveningDelivery := lSource.EveningDelivery; + Length := lSource.Length; + Height := lSource.Height; + Width := lSource.Width; + RecMail := lSource.RecMail; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure PackageWeighed.ReadComplex(ASerializer: TObject); +var + l_Account: UnicodeString; + l_BankCode: UnicodeString; + l_ConsigneeCity: UnicodeString; + l_ConsigneeName: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Contact: UnicodeString; + l_Country: UnicodeString; + l_CustRef: UnicodeString; + l_DateDelivFrom: UnicodeString; + l_DateDelivTo: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EveningDelivery: boolean; + l_field_ZipCode: UnicodeString; + l_Height: UnicodeString; + l_InputDestination: UnicodeString; + l_Length: UnicodeString; + l_OutputDestination: UnicodeString; + l_PackageID: UnicodeString; + l_PackageIDCUS: UnicodeString; + l_Phone: UnicodeString; + l_Price: decimal; + l_PriceCurID: UnicodeString; + l_RecMail: UnicodeString; + l_SpecSymbol: UnicodeString; + l_VarSym: UnicodeString; + l_Weight: decimal; + l_Width: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + PackageIDCUS := l_PackageIDCUS; + l_InputDestination := InputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputDestination', l_InputDestination); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputDestination', l_InputDestination); +{$ENDIF} + InputDestination := l_InputDestination; + l_OutputDestination := OutputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputDestination', l_OutputDestination); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputDestination', l_OutputDestination); +{$ENDIF} + OutputDestination := l_OutputDestination; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_Price := Price; + TROSerializer(ASerializer).ReadDecimal('Price', l_Price); + Price := l_Price; + l_PriceCurID := PriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PriceCurID', l_PriceCurID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PriceCurID', l_PriceCurID); +{$ENDIF} + PriceCurID := l_PriceCurID; + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + ConsigneeName := l_ConsigneeName; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Account', l_Account); +{$ENDIF} + Account := l_Account; + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('BankCode', l_BankCode); +{$ENDIF} + BankCode := l_BankCode; + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + SpecSymbol := l_SpecSymbol; + l_DateDelivFrom := DateDelivFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateDelivFrom', l_DateDelivFrom); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateDelivFrom', l_DateDelivFrom); +{$ENDIF} + DateDelivFrom := l_DateDelivFrom; + l_DateDelivTo := DateDelivTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateDelivTo', l_DateDelivTo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateDelivTo', l_DateDelivTo); +{$ENDIF} + DateDelivTo := l_DateDelivTo; + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Contact', l_Contact); +{$ENDIF} + Contact := l_Contact; + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustRef', l_CustRef); +{$ENDIF} + CustRef := l_CustRef; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Length', l_Length); +{$ENDIF} + Length := l_Length; + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Height', l_Height); +{$ENDIF} + Height := l_Height; + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Width', l_Width); +{$ENDIF} + Width := l_Width; + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecMail', l_RecMail); +{$ENDIF} + RecMail := l_RecMail; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Account', l_Account); +{$ENDIF} + Account := l_Account; + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('BankCode', l_BankCode); +{$ENDIF} + BankCode := l_BankCode; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + ConsigneeName := l_ConsigneeName; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Contact', l_Contact); +{$ENDIF} + Contact := l_Contact; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustRef', l_CustRef); +{$ENDIF} + CustRef := l_CustRef; + l_DateDelivFrom := DateDelivFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateDelivFrom', l_DateDelivFrom); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateDelivFrom', l_DateDelivFrom); +{$ENDIF} + DateDelivFrom := l_DateDelivFrom; + l_DateDelivTo := DateDelivTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateDelivTo', l_DateDelivTo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateDelivTo', l_DateDelivTo); +{$ENDIF} + DateDelivTo := l_DateDelivTo; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Height', l_Height); +{$ENDIF} + Height := l_Height; + l_InputDestination := InputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputDestination', l_InputDestination); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputDestination', l_InputDestination); +{$ENDIF} + InputDestination := l_InputDestination; + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Length', l_Length); +{$ENDIF} + Length := l_Length; + l_OutputDestination := OutputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputDestination', l_OutputDestination); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputDestination', l_OutputDestination); +{$ENDIF} + OutputDestination := l_OutputDestination; + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + PackageIDCUS := l_PackageIDCUS; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_Price := Price; + TROSerializer(ASerializer).ReadDecimal('Price', l_Price); + Price := l_Price; + l_PriceCurID := PriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PriceCurID', l_PriceCurID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PriceCurID', l_PriceCurID); +{$ENDIF} + PriceCurID := l_PriceCurID; + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecMail', l_RecMail); +{$ENDIF} + RecMail := l_RecMail; + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + SpecSymbol := l_SpecSymbol; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDecimal('Weight', l_Weight); + Weight := l_Weight; + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Width', l_Width); +{$ENDIF} + Width := l_Width; + end; +end; + +procedure PackageWeighed.WriteComplex(ASerializer: TObject); +var + l_Account: UnicodeString; + l_BankCode: UnicodeString; + l_ConsigneeCity: UnicodeString; + l_ConsigneeName: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Contact: UnicodeString; + l_Country: UnicodeString; + l_CustRef: UnicodeString; + l_DateDelivFrom: UnicodeString; + l_DateDelivTo: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EveningDelivery: boolean; + l_field_ZipCode: UnicodeString; + l_Height: UnicodeString; + l_InputDestination: UnicodeString; + l_Length: UnicodeString; + l_OutputDestination: UnicodeString; + l_PackageID: UnicodeString; + l_PackageIDCUS: UnicodeString; + l_Phone: UnicodeString; + l_Price: decimal; + l_PriceCurID: UnicodeString; + l_RecMail: UnicodeString; + l_SpecSymbol: UnicodeString; + l_VarSym: UnicodeString; + l_Weight: decimal; + l_Width: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PackageWeighed); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + l_InputDestination := InputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputDestination', l_InputDestination); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputDestination', l_InputDestination); +{$ENDIF} + l_OutputDestination := OutputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputDestination', l_OutputDestination); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputDestination', l_OutputDestination); +{$ENDIF} + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_Price := Price; + TROSerializer(ASerializer).WriteDecimal('Price', l_Price); + l_PriceCurID := PriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PriceCurID', l_PriceCurID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PriceCurID', l_PriceCurID); +{$ENDIF} + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Account', l_Account); +{$ENDIF} + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('BankCode', l_BankCode); +{$ENDIF} + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + l_DateDelivFrom := DateDelivFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateDelivFrom', l_DateDelivFrom); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateDelivFrom', l_DateDelivFrom); +{$ENDIF} + l_DateDelivTo := DateDelivTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateDelivTo', l_DateDelivTo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateDelivTo', l_DateDelivTo); +{$ENDIF} + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Contact', l_Contact); +{$ENDIF} + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustRef', l_CustRef); +{$ENDIF} + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Length', l_Length); +{$ENDIF} + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Height', l_Height); +{$ENDIF} + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Width', l_Width); +{$ENDIF} + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecMail', l_RecMail); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Account', l_Account); +{$ENDIF} + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('BankCode', l_BankCode); +{$ENDIF} + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_Contact := Contact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Contact', l_Contact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Contact', l_Contact); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_CustRef := CustRef; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustRef', l_CustRef); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustRef', l_CustRef); +{$ENDIF} + l_DateDelivFrom := DateDelivFrom; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateDelivFrom', l_DateDelivFrom); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateDelivFrom', l_DateDelivFrom); +{$ENDIF} + l_DateDelivTo := DateDelivTo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateDelivTo', l_DateDelivTo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateDelivTo', l_DateDelivTo); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_Height := Height; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Height', l_Height); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Height', l_Height); +{$ENDIF} + l_InputDestination := InputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputDestination', l_InputDestination); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputDestination', l_InputDestination); +{$ENDIF} + l_Length := Length; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Length', l_Length); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Length', l_Length); +{$ENDIF} + l_OutputDestination := OutputDestination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputDestination', l_OutputDestination); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputDestination', l_OutputDestination); +{$ENDIF} + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_PackageIDCUS := PackageIDCUS; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDCUS', l_PackageIDCUS); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDCUS', l_PackageIDCUS); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_Price := Price; + TROSerializer(ASerializer).WriteDecimal('Price', l_Price); + l_PriceCurID := PriceCurID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PriceCurID', l_PriceCurID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PriceCurID', l_PriceCurID); +{$ENDIF} + l_RecMail := RecMail; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecMail', l_RecMail); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecMail', l_RecMail); +{$ENDIF} + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDecimal('Weight', l_Weight); + l_Width := Width; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Width', l_Width); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Width', l_Width); +{$ENDIF} + end; +end; + +{ PackageWeighedCollection } +constructor PackageWeighedCollection.Create; +begin + inherited Create(PackageWeighed); +end; + +constructor PackageWeighedCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PackageWeighedCollection.Add: PackageWeighed; +begin + result := PackageWeighed(inherited Add); +end; + +function PackageWeighedCollection.GetItems(aIndex: integer): PackageWeighed; +begin + result := PackageWeighed(inherited Items[aIndex]); +end; + +procedure PackageWeighedCollection.SetItems(aIndex: integer; const Value: PackageWeighed); +begin + PackageWeighed(inherited Items[aIndex]).Assign(Value); +end; + +{ ZipCode } + +class function ZipCode.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ZipCode.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ZipCode.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ZipCode.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ZipCode; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ZipCode) then begin + lSource := libPPL_Intf.ZipCode(iSource); + Zip := lSource.Zip; + Post := lSource.Post; + Depot := lSource.Depot; + Destination := lSource.Destination; + Visual := lSource.Visual; + EveningDelivery := lSource.EveningDelivery; + end; +end; + +procedure ZipCode.ReadComplex(ASerializer: TObject); +var + l_Depot: UnicodeString; + l_Destination: UnicodeString; + l_EveningDelivery: boolean; + l_Post: UnicodeString; + l_Visual: Integer; + l_Zip: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Zip', l_Zip); +{$ENDIF} + Zip := l_Zip; + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Post', l_Post); +{$ENDIF} + Post := l_Post; + l_Depot := Depot; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Depot', l_Depot); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Depot', l_Depot); +{$ENDIF} + Depot := l_Depot; + l_Destination := Destination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Destination', l_Destination); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Destination', l_Destination); +{$ENDIF} + Destination := l_Destination; + l_Visual := Visual; + TROSerializer(ASerializer).ReadInteger('Visual', otSLong, l_Visual); + Visual := l_Visual; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + end + else begin + l_Depot := Depot; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Depot', l_Depot); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Depot', l_Depot); +{$ENDIF} + Depot := l_Depot; + l_Destination := Destination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Destination', l_Destination); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Destination', l_Destination); +{$ENDIF} + Destination := l_Destination; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Post', l_Post); +{$ENDIF} + Post := l_Post; + l_Visual := Visual; + TROSerializer(ASerializer).ReadInteger('Visual', otSLong, l_Visual); + Visual := l_Visual; + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Zip', l_Zip); +{$ENDIF} + Zip := l_Zip; + end; +end; + +procedure ZipCode.WriteComplex(ASerializer: TObject); +var + l_Depot: UnicodeString; + l_Destination: UnicodeString; + l_EveningDelivery: boolean; + l_Post: UnicodeString; + l_Visual: Integer; + l_Zip: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ZipCode); + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Zip', l_Zip); +{$ENDIF} + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Post', l_Post); +{$ENDIF} + l_Depot := Depot; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Depot', l_Depot); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Depot', l_Depot); +{$ENDIF} + l_Destination := Destination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Destination', l_Destination); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Destination', l_Destination); +{$ENDIF} + l_Visual := Visual; + TROSerializer(ASerializer).WriteInteger('Visual', otSLong, l_Visual); + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + end + else begin + l_Depot := Depot; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Depot', l_Depot); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Depot', l_Depot); +{$ENDIF} + l_Destination := Destination; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Destination', l_Destination); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Destination', l_Destination); +{$ENDIF} + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_Post := Post; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Post', l_Post); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Post', l_Post); +{$ENDIF} + l_Visual := Visual; + TROSerializer(ASerializer).WriteInteger('Visual', otSLong, l_Visual); + l_Zip := Zip; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Zip', l_Zip); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Zip', l_Zip); +{$ENDIF} + end; +end; + +{ ZipCodeCollection } +constructor ZipCodeCollection.Create; +begin + inherited Create(ZipCode); +end; + +constructor ZipCodeCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ZipCodeCollection.Add: ZipCode; +begin + result := ZipCode(inherited Add); +end; + +function ZipCodeCollection.GetItems(aIndex: integer): ZipCode; +begin + result := ZipCode(inherited Items[aIndex]); +end; + +procedure ZipCodeCollection.LoadFromArray(anArray: ArrayOfZipCode); +var i : integer; +begin + Clear; + for i := 0 to (anArray.Count-1) do + if anArray[i] <> nil then + anArray[i].Clone.Collection := Self; +end; + +procedure ZipCodeCollection.SaveToArray(anArray: ArrayOfZipCode); +var i : integer; +begin + anArray.Clear; + for i := 0 to (Count-1) do begin + if Assigned(Items[i]) then + anArray.Add(ZipCode(Items[i].Clone)) + else + anArray.Add(nil); + end; +end; + +procedure ZipCodeCollection.SetItems(aIndex: integer; const Value: ZipCode); +begin + ZipCode(inherited Items[aIndex]).Assign(Value); +end; + +{ PackageEsyco } + +class function PackageEsyco.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PackageEsyco.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PackageEsyco.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PackageEsyco.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PackageEsyco; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PackageEsyco) then begin + lSource := libPPL_Intf.PackageEsyco(iSource); + PackageID := lSource.PackageID; + field_ZipCode := lSource.field_ZipCode; + Country := lSource.Country; + CodPrice := lSource.CodPrice; + VarSym := lSource.VarSym; + Account := lSource.Account; + BankCode := lSource.BankCode; + SpecSymbol := lSource.SpecSymbol; + ConsigneeName := lSource.ConsigneeName; + ConsigneeStreet := lSource.ConsigneeStreet; + ConsigneeCity := lSource.ConsigneeCity; + Phone := lSource.Phone; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure PackageEsyco.ReadComplex(ASerializer: TObject); +var + l_Account: UnicodeString; + l_BankCode: UnicodeString; + l_CodPrice: decimal; + l_ConsigneeCity: UnicodeString; + l_ConsigneeName: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Country: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_field_ZipCode: UnicodeString; + l_PackageID: UnicodeString; + l_Phone: UnicodeString; + l_SpecSymbol: UnicodeString; + l_VarSym: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Account', l_Account); +{$ENDIF} + Account := l_Account; + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('BankCode', l_BankCode); +{$ENDIF} + BankCode := l_BankCode; + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + SpecSymbol := l_SpecSymbol; + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + ConsigneeName := l_ConsigneeName; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Account', l_Account); +{$ENDIF} + Account := l_Account; + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('BankCode', l_BankCode); +{$ENDIF} + BankCode := l_BankCode; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + ConsigneeCity := l_ConsigneeCity; + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + ConsigneeName := l_ConsigneeName; + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + ConsigneeStreet := l_ConsigneeStreet; + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Country', l_Country); +{$ENDIF} + Country := l_Country; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + field_ZipCode := l_field_ZipCode; + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Phone', l_Phone); +{$ENDIF} + Phone := l_Phone; + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + SpecSymbol := l_SpecSymbol; + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('VarSym', l_VarSym); +{$ENDIF} + VarSym := l_VarSym; + end; +end; + +procedure PackageEsyco.WriteComplex(ASerializer: TObject); +var + l_Account: UnicodeString; + l_BankCode: UnicodeString; + l_CodPrice: decimal; + l_ConsigneeCity: UnicodeString; + l_ConsigneeName: UnicodeString; + l_ConsigneeStreet: UnicodeString; + l_Country: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_field_ZipCode: UnicodeString; + l_PackageID: UnicodeString; + l_Phone: UnicodeString; + l_SpecSymbol: UnicodeString; + l_VarSym: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PackageEsyco); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Account', l_Account); +{$ENDIF} + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('BankCode', l_BankCode); +{$ENDIF} + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_Account := Account; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Account', l_Account); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Account', l_Account); +{$ENDIF} + l_BankCode := BankCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('BankCode', l_BankCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('BankCode', l_BankCode); +{$ENDIF} + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_ConsigneeCity := ConsigneeCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeCity', l_ConsigneeCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeCity', l_ConsigneeCity); +{$ENDIF} + l_ConsigneeName := ConsigneeName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeName', l_ConsigneeName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeName', l_ConsigneeName); +{$ENDIF} + l_ConsigneeStreet := ConsigneeStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ConsigneeStreet', l_ConsigneeStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ConsigneeStreet', l_ConsigneeStreet); +{$ENDIF} + l_Country := Country; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Country', l_Country); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Country', l_Country); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_field_ZipCode := field_ZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('field_ZipCode', l_field_ZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('field_ZipCode', l_field_ZipCode); +{$ENDIF} + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_Phone := Phone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Phone', l_Phone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Phone', l_Phone); +{$ENDIF} + l_SpecSymbol := SpecSymbol; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SpecSymbol', l_SpecSymbol); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SpecSymbol', l_SpecSymbol); +{$ENDIF} + l_VarSym := VarSym; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('VarSym', l_VarSym); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('VarSym', l_VarSym); +{$ENDIF} + end; +end; + +{ PackageEsycoCollection } +constructor PackageEsycoCollection.Create; +begin + inherited Create(PackageEsyco); +end; + +constructor PackageEsycoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PackageEsycoCollection.Add: PackageEsyco; +begin + result := PackageEsyco(inherited Add); +end; + +function PackageEsycoCollection.GetItems(aIndex: integer): PackageEsyco; +begin + result := PackageEsyco(inherited Items[aIndex]); +end; + +procedure PackageEsycoCollection.SetItems(aIndex: integer; const Value: PackageEsyco); +begin + PackageEsyco(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPPLSprintResponse } + +class function ImportPPLSprintResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPPLSprintResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPPLSprintResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPPLSprintResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPPLSprintResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPPLSprintResponse) then begin + lSource := libPPL_Intf.ImportPPLSprintResponse(iSource); + if Assigned(lSource.fpackages) then + packages.Assign(lSource.fpackages) + else + FreeAndNil(fpackages); + end; +end; + +function ImportPPLSprintResponse.Getpackages: colPPLSprint; +begin + if (fpackages = nil) then fpackages := colPPLSprint.Create(); + result := fpackages; +end; + +procedure ImportPPLSprintResponse.ReadComplex(ASerializer: TObject); +var + l_packages: colPPLSprint; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_packages := int_packages; + TROSerializer(ASerializer).ReadStruct('packages', colPPLSprint, l_packages); + if int_packages <> l_packages then packages.Free; + packages := l_packages; + end + else begin + l_packages := int_packages; + TROSerializer(ASerializer).ReadStruct('packages', colPPLSprint, l_packages); + if int_packages <> l_packages then packages.Free; + packages := l_packages; + end; +end; + +procedure ImportPPLSprintResponse.WriteComplex(ASerializer: TObject); +var + l_packages: colPPLSprint; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPPLSprintResponse); + l_packages := int_packages; + TROSerializer(ASerializer).WriteStruct('packages', l_packages, colPPLSprint); + end + else begin + l_packages := int_packages; + TROSerializer(ASerializer).WriteStruct('packages', l_packages, colPPLSprint); + end; +end; + +{ ImportPPLSprintResponseCollection } +constructor ImportPPLSprintResponseCollection.Create; +begin + inherited Create(ImportPPLSprintResponse); +end; + +constructor ImportPPLSprintResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPPLSprintResponseCollection.Add: ImportPPLSprintResponse; +begin + result := ImportPPLSprintResponse(inherited Add); +end; + +function ImportPPLSprintResponseCollection.GetItems(aIndex: integer): ImportPPLSprintResponse; +begin + result := ImportPPLSprintResponse(inherited Items[aIndex]); +end; + +procedure ImportPPLSprintResponseCollection.SetItems(aIndex: integer; const Value: ImportPPLSprintResponse); +begin + ImportPPLSprintResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ GetZipCodes } + +class function GetZipCodes.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetZipCodes.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetZipCodes.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetZipCodes.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetZipCodes; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetZipCodes) then begin + lSource := libPPL_Intf.GetZipCodes(iSource); + FirCode := lSource.FirCode; + Changed := lSource.Changed; + end; +end; + +procedure GetZipCodes.ReadComplex(ASerializer: TObject); +var + l_Changed: DateTime; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Changed := Changed; + TROSerializer(ASerializer).ReadDateTime('Changed', l_Changed); + Changed := l_Changed; + end + else begin + l_Changed := Changed; + TROSerializer(ASerializer).ReadDateTime('Changed', l_Changed); + Changed := l_Changed; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + end; +end; + +procedure GetZipCodes.WriteComplex(ASerializer: TObject); +var + l_Changed: DateTime; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetZipCodes); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Changed := Changed; + TROSerializer(ASerializer).WriteDateTime('Changed', l_Changed); + end + else begin + l_Changed := Changed; + TROSerializer(ASerializer).WriteDateTime('Changed', l_Changed); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + end; +end; + +{ GetZipCodesCollection } +constructor GetZipCodesCollection.Create; +begin + inherited Create(GetZipCodes); +end; + +constructor GetZipCodesCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetZipCodesCollection.Add: GetZipCodes; +begin + result := GetZipCodes(inherited Add); +end; + +function GetZipCodesCollection.GetItems(aIndex: integer): GetZipCodes; +begin + result := GetZipCodes(inherited Items[aIndex]); +end; + +procedure GetZipCodesCollection.SetItems(aIndex: integer; const Value: GetZipCodes); +begin + GetZipCodes(inherited Items[aIndex]).Assign(Value); +end; + +{ GetZipCodesResponse } + +class function GetZipCodesResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetZipCodesResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetZipCodesResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetZipCodesResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetZipCodesResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetZipCodesResponse) then begin + lSource := libPPL_Intf.GetZipCodesResponse(iSource); + if Assigned(lSource.fGetZipCodesResult) then + GetZipCodesResult.Assign(lSource.fGetZipCodesResult) + else + FreeAndNil(fGetZipCodesResult); + end; +end; + +function GetZipCodesResponse.GetGetZipCodesResult: ArrayOfZipCode; +begin + if (fGetZipCodesResult = nil) then fGetZipCodesResult := ArrayOfZipCode.Create(); + result := fGetZipCodesResult; +end; + +procedure GetZipCodesResponse.ReadComplex(ASerializer: TObject); +var + l_GetZipCodesResult: ArrayOfZipCode; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_GetZipCodesResult := int_GetZipCodesResult; + TROSerializer(ASerializer).ReadArray('GetZipCodesResult', ArrayOfZipCode, l_GetZipCodesResult); + if int_GetZipCodesResult <> l_GetZipCodesResult then GetZipCodesResult.Free; + GetZipCodesResult := l_GetZipCodesResult; + end + else begin + l_GetZipCodesResult := int_GetZipCodesResult; + TROSerializer(ASerializer).ReadArray('GetZipCodesResult', ArrayOfZipCode, l_GetZipCodesResult); + if int_GetZipCodesResult <> l_GetZipCodesResult then GetZipCodesResult.Free; + GetZipCodesResult := l_GetZipCodesResult; + end; +end; + +procedure GetZipCodesResponse.WriteComplex(ASerializer: TObject); +var + l_GetZipCodesResult: ArrayOfZipCode; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetZipCodesResponse); + l_GetZipCodesResult := int_GetZipCodesResult; + TROSerializer(ASerializer).WriteArray('GetZipCodesResult', l_GetZipCodesResult, ArrayOfZipCode); + end + else begin + l_GetZipCodesResult := int_GetZipCodesResult; + TROSerializer(ASerializer).WriteArray('GetZipCodesResult', l_GetZipCodesResult, ArrayOfZipCode); + end; +end; + +{ GetZipCodesResponseCollection } +constructor GetZipCodesResponseCollection.Create; +begin + inherited Create(GetZipCodesResponse); +end; + +constructor GetZipCodesResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetZipCodesResponseCollection.Add: GetZipCodesResponse; +begin + result := GetZipCodesResponse(inherited Add); +end; + +function GetZipCodesResponseCollection.GetItems(aIndex: integer): GetZipCodesResponse; +begin + result := GetZipCodesResponse(inherited Items[aIndex]); +end; + +procedure GetZipCodesResponseCollection.SetItems(aIndex: integer; const Value: GetZipCodesResponse); +begin + GetZipCodesResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ GetCities } + +class function GetCities.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetCities.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetCities.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetCities.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetCities; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetCities) then begin + lSource := libPPL_Intf.GetCities(iSource); + FirCode := lSource.FirCode; + Date_From := lSource.Date_From; + end; +end; + +procedure GetCities.ReadComplex(ASerializer: TObject); +var + l_Date_From: DateTime; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Date_From := Date_From; + TROSerializer(ASerializer).ReadDateTime('Date_From', l_Date_From); + Date_From := l_Date_From; + end + else begin + l_Date_From := Date_From; + TROSerializer(ASerializer).ReadDateTime('Date_From', l_Date_From); + Date_From := l_Date_From; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + end; +end; + +procedure GetCities.WriteComplex(ASerializer: TObject); +var + l_Date_From: DateTime; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetCities); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Date_From := Date_From; + TROSerializer(ASerializer).WriteDateTime('Date_From', l_Date_From); + end + else begin + l_Date_From := Date_From; + TROSerializer(ASerializer).WriteDateTime('Date_From', l_Date_From); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + end; +end; + +{ GetCitiesCollection } +constructor GetCitiesCollection.Create; +begin + inherited Create(GetCities); +end; + +constructor GetCitiesCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetCitiesCollection.Add: GetCities; +begin + result := GetCities(inherited Add); +end; + +function GetCitiesCollection.GetItems(aIndex: integer): GetCities; +begin + result := GetCities(inherited Items[aIndex]); +end; + +procedure GetCitiesCollection.SetItems(aIndex: integer; const Value: GetCities); +begin + GetCities(inherited Items[aIndex]).Assign(Value); +end; + +{ GetCitiesResponse } + +class function GetCitiesResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetCitiesResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetCitiesResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetCitiesResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetCitiesResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetCitiesResponse) then begin + lSource := libPPL_Intf.GetCitiesResponse(iSource); + if Assigned(lSource.fGetCitiesResult) then + GetCitiesResult.Assign(lSource.fGetCitiesResult) + else + FreeAndNil(fGetCitiesResult); + end; +end; + +function GetCitiesResponse.GetGetCitiesResult: ArrayOfCity; +begin + if (fGetCitiesResult = nil) then fGetCitiesResult := ArrayOfCity.Create(); + result := fGetCitiesResult; +end; + +procedure GetCitiesResponse.ReadComplex(ASerializer: TObject); +var + l_GetCitiesResult: ArrayOfCity; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_GetCitiesResult := int_GetCitiesResult; + TROSerializer(ASerializer).ReadArray('GetCitiesResult', ArrayOfCity, l_GetCitiesResult); + if int_GetCitiesResult <> l_GetCitiesResult then GetCitiesResult.Free; + GetCitiesResult := l_GetCitiesResult; + end + else begin + l_GetCitiesResult := int_GetCitiesResult; + TROSerializer(ASerializer).ReadArray('GetCitiesResult', ArrayOfCity, l_GetCitiesResult); + if int_GetCitiesResult <> l_GetCitiesResult then GetCitiesResult.Free; + GetCitiesResult := l_GetCitiesResult; + end; +end; + +procedure GetCitiesResponse.WriteComplex(ASerializer: TObject); +var + l_GetCitiesResult: ArrayOfCity; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetCitiesResponse); + l_GetCitiesResult := int_GetCitiesResult; + TROSerializer(ASerializer).WriteArray('GetCitiesResult', l_GetCitiesResult, ArrayOfCity); + end + else begin + l_GetCitiesResult := int_GetCitiesResult; + TROSerializer(ASerializer).WriteArray('GetCitiesResult', l_GetCitiesResult, ArrayOfCity); + end; +end; + +{ GetCitiesResponseCollection } +constructor GetCitiesResponseCollection.Create; +begin + inherited Create(GetCitiesResponse); +end; + +constructor GetCitiesResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetCitiesResponseCollection.Add: GetCitiesResponse; +begin + result := GetCitiesResponse(inherited Add); +end; + +function GetCitiesResponseCollection.GetItems(aIndex: integer): GetCitiesResponse; +begin + result := GetCitiesResponse(inherited Items[aIndex]); +end; + +procedure GetCitiesResponseCollection.SetItems(aIndex: integer; const Value: GetCitiesResponse); +begin + GetCitiesResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ GetPackagesInfo } + +class function GetPackagesInfo.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetPackagesInfo.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetPackagesInfo.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetPackagesInfo.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetPackagesInfo; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetPackagesInfo) then begin + lSource := libPPL_Intf.GetPackagesInfo(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fPackageID) then + PackageID.Assign(lSource.fPackageID) + else + FreeAndNil(fPackageID); + if Assigned(lSource.fCustReference) then + CustReference.Assign(lSource.fCustReference) + else + FreeAndNil(fCustReference); + end; +end; + +function GetPackagesInfo.GetPackageID: ArrayOfString; +begin + if (fPackageID = nil) then fPackageID := ArrayOfString.Create(); + result := fPackageID; +end; + +function GetPackagesInfo.GetCustReference: ArrayOfString; +begin + if (fCustReference = nil) then fCustReference := ArrayOfString.Create(); + result := fCustReference; +end; + +procedure GetPackagesInfo.ReadComplex(ASerializer: TObject); +var + l_CustReference: ArrayOfString; + l_FirCode: UnicodeString; + l_PackageID: ArrayOfString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_PackageID := int_PackageID; + TROSerializer(ASerializer).ReadArray('PackageID', ArrayOfString, l_PackageID); + if int_PackageID <> l_PackageID then PackageID.Free; + PackageID := l_PackageID; + l_CustReference := int_CustReference; + TROSerializer(ASerializer).ReadArray('CustReference', ArrayOfString, l_CustReference); + if int_CustReference <> l_CustReference then CustReference.Free; + CustReference := l_CustReference; + end + else begin + l_CustReference := int_CustReference; + TROSerializer(ASerializer).ReadArray('CustReference', ArrayOfString, l_CustReference); + if int_CustReference <> l_CustReference then CustReference.Free; + CustReference := l_CustReference; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_PackageID := int_PackageID; + TROSerializer(ASerializer).ReadArray('PackageID', ArrayOfString, l_PackageID); + if int_PackageID <> l_PackageID then PackageID.Free; + PackageID := l_PackageID; + end; +end; + +procedure GetPackagesInfo.WriteComplex(ASerializer: TObject); +var + l_CustReference: ArrayOfString; + l_FirCode: UnicodeString; + l_PackageID: ArrayOfString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetPackagesInfo); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_PackageID := int_PackageID; + TROSerializer(ASerializer).WriteArray('PackageID', l_PackageID, ArrayOfString); + l_CustReference := int_CustReference; + TROSerializer(ASerializer).WriteArray('CustReference', l_CustReference, ArrayOfString); + end + else begin + l_CustReference := int_CustReference; + TROSerializer(ASerializer).WriteArray('CustReference', l_CustReference, ArrayOfString); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_PackageID := int_PackageID; + TROSerializer(ASerializer).WriteArray('PackageID', l_PackageID, ArrayOfString); + end; +end; + +{ GetPackagesInfoCollection } +constructor GetPackagesInfoCollection.Create; +begin + inherited Create(GetPackagesInfo); +end; + +constructor GetPackagesInfoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetPackagesInfoCollection.Add: GetPackagesInfo; +begin + result := GetPackagesInfo(inherited Add); +end; + +function GetPackagesInfoCollection.GetItems(aIndex: integer): GetPackagesInfo; +begin + result := GetPackagesInfo(inherited Items[aIndex]); +end; + +procedure GetPackagesInfoCollection.SetItems(aIndex: integer; const Value: GetPackagesInfo); +begin + GetPackagesInfo(inherited Items[aIndex]).Assign(Value); +end; + +{ PackageInfo } + +class function PackageInfo.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function PackageInfo.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function PackageInfo.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure PackageInfo.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.PackageInfo; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.PackageInfo) then begin + lSource := libPPL_Intf.PackageInfo(iSource); + PackageID := lSource.PackageID; + PackageIDCus := lSource.PackageIDCus; + CustReference := lSource.CustReference; + InputDepoCode := lSource.InputDepoCode; + InputDepoName := lSource.InputDepoName; + OutputDepoCode := lSource.OutputDepoCode; + OutputDepoName := lSource.OutputDepoName; + RecZipCode := lSource.RecZipCode; + RecCity := lSource.RecCity; + Weight := lSource.Weight; + DateInputDepo := lSource.DateInputDepo; + DateWeighed := lSource.DateWeighed; + DateCentral := lSource.DateCentral; + DateOutputDepo := lSource.DateOutputDepo; + DateNotDeliv := lSource.DateNotDeliv; + NotDelivCode := lSource.NotDelivCode; + NotDelivName := lSource.NotDelivName; + DateDeliv := lSource.DateDeliv; + DelivPerson := lSource.DelivPerson; + DateExport := lSource.DateExport; + DateImport := lSource.DateImport; + InputCountry := lSource.InputCountry; + OutputCountry := lSource.OutputCountry; + InvoiceNumber := lSource.InvoiceNumber; + ReturnToSender := lSource.ReturnToSender; + SendInfo := lSource.SendInfo; + CardPay := lSource.CardPay; + EveningDelivery := lSource.EveningDelivery; + LoadingDate := lSource.LoadingDate; + CodPrice := lSource.CodPrice; + DateTakeMoney := lSource.DateTakeMoney; + DateMoneyToBank := lSource.DateMoneyToBank; + DateMoneyToCustomer := lSource.DateMoneyToCustomer; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure PackageInfo.ReadComplex(ASerializer: TObject); +var + l_CardPay: boolean; + l_CodPrice: decimal; + l_CustReference: UnicodeString; + l_DateCentral: UnicodeString; + l_DateDeliv: UnicodeString; + l_DateExport: UnicodeString; + l_DateImport: UnicodeString; + l_DateInputDepo: UnicodeString; + l_DateMoneyToBank: UnicodeString; + l_DateMoneyToCustomer: UnicodeString; + l_DateNotDeliv: UnicodeString; + l_DateOutputDepo: UnicodeString; + l_DateTakeMoney: UnicodeString; + l_DateWeighed: UnicodeString; + l_DelivPerson: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EveningDelivery: boolean; + l_InputCountry: UnicodeString; + l_InputDepoCode: UnicodeString; + l_InputDepoName: UnicodeString; + l_InvoiceNumber: UnicodeString; + l_LoadingDate: UnicodeString; + l_NotDelivCode: UnicodeString; + l_NotDelivName: UnicodeString; + l_OutputCountry: UnicodeString; + l_OutputDepoCode: UnicodeString; + l_OutputDepoName: UnicodeString; + l_PackageID: UnicodeString; + l_PackageIDCus: UnicodeString; + l_RecCity: UnicodeString; + l_RecZipCode: UnicodeString; + l_ReturnToSender: UnicodeString; + l_SendInfo: UnicodeString; + l_Weight: Double; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_PackageIDCus := PackageIDCus; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDCus', l_PackageIDCus); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDCus', l_PackageIDCus); +{$ENDIF} + PackageIDCus := l_PackageIDCus; + l_CustReference := CustReference; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustReference', l_CustReference); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustReference', l_CustReference); +{$ENDIF} + CustReference := l_CustReference; + l_InputDepoCode := InputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputDepoCode', l_InputDepoCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputDepoCode', l_InputDepoCode); +{$ENDIF} + InputDepoCode := l_InputDepoCode; + l_InputDepoName := InputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputDepoName', l_InputDepoName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputDepoName', l_InputDepoName); +{$ENDIF} + InputDepoName := l_InputDepoName; + l_OutputDepoCode := OutputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputDepoCode', l_OutputDepoCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputDepoCode', l_OutputDepoCode); +{$ENDIF} + OutputDepoCode := l_OutputDepoCode; + l_OutputDepoName := OutputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputDepoName', l_OutputDepoName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputDepoName', l_OutputDepoName); +{$ENDIF} + OutputDepoName := l_OutputDepoName; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDouble('Weight', ftDouble, l_Weight); + Weight := l_Weight; + l_DateInputDepo := DateInputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateInputDepo', l_DateInputDepo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateInputDepo', l_DateInputDepo); +{$ENDIF} + DateInputDepo := l_DateInputDepo; + l_DateWeighed := DateWeighed; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateWeighed', l_DateWeighed); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateWeighed', l_DateWeighed); +{$ENDIF} + DateWeighed := l_DateWeighed; + l_DateCentral := DateCentral; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateCentral', l_DateCentral); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateCentral', l_DateCentral); +{$ENDIF} + DateCentral := l_DateCentral; + l_DateOutputDepo := DateOutputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateOutputDepo', l_DateOutputDepo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateOutputDepo', l_DateOutputDepo); +{$ENDIF} + DateOutputDepo := l_DateOutputDepo; + l_DateNotDeliv := DateNotDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateNotDeliv', l_DateNotDeliv); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateNotDeliv', l_DateNotDeliv); +{$ENDIF} + DateNotDeliv := l_DateNotDeliv; + l_NotDelivCode := NotDelivCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('NotDelivCode', l_NotDelivCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('NotDelivCode', l_NotDelivCode); +{$ENDIF} + NotDelivCode := l_NotDelivCode; + l_NotDelivName := NotDelivName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('NotDelivName', l_NotDelivName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('NotDelivName', l_NotDelivName); +{$ENDIF} + NotDelivName := l_NotDelivName; + l_DateDeliv := DateDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateDeliv', l_DateDeliv); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateDeliv', l_DateDeliv); +{$ENDIF} + DateDeliv := l_DateDeliv; + l_DelivPerson := DelivPerson; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DelivPerson', l_DelivPerson); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DelivPerson', l_DelivPerson); +{$ENDIF} + DelivPerson := l_DelivPerson; + l_DateExport := DateExport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateExport', l_DateExport); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateExport', l_DateExport); +{$ENDIF} + DateExport := l_DateExport; + l_DateImport := DateImport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateImport', l_DateImport); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateImport', l_DateImport); +{$ENDIF} + DateImport := l_DateImport; + l_InputCountry := InputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputCountry', l_InputCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputCountry', l_InputCountry); +{$ENDIF} + InputCountry := l_InputCountry; + l_OutputCountry := OutputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputCountry', l_OutputCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputCountry', l_OutputCountry); +{$ENDIF} + OutputCountry := l_OutputCountry; + l_InvoiceNumber := InvoiceNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InvoiceNumber', l_InvoiceNumber); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InvoiceNumber', l_InvoiceNumber); +{$ENDIF} + InvoiceNumber := l_InvoiceNumber; + l_ReturnToSender := ReturnToSender; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ReturnToSender', l_ReturnToSender); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ReturnToSender', l_ReturnToSender); +{$ENDIF} + ReturnToSender := l_ReturnToSender; + l_SendInfo := SendInfo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendInfo', l_SendInfo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendInfo', l_SendInfo); +{$ENDIF} + SendInfo := l_SendInfo; + l_CardPay := CardPay; + TROSerializer(ASerializer).ReadEnumerated('CardPay',TypeInfo(boolean), l_CardPay); + CardPay := l_CardPay; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_LoadingDate := LoadingDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('LoadingDate', l_LoadingDate); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('LoadingDate', l_LoadingDate); +{$ENDIF} + LoadingDate := l_LoadingDate; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_DateTakeMoney := DateTakeMoney; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateTakeMoney', l_DateTakeMoney); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateTakeMoney', l_DateTakeMoney); +{$ENDIF} + DateTakeMoney := l_DateTakeMoney; + l_DateMoneyToBank := DateMoneyToBank; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateMoneyToBank', l_DateMoneyToBank); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateMoneyToBank', l_DateMoneyToBank); +{$ENDIF} + DateMoneyToBank := l_DateMoneyToBank; + l_DateMoneyToCustomer := DateMoneyToCustomer; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ENDIF} + DateMoneyToCustomer := l_DateMoneyToCustomer; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_CardPay := CardPay; + TROSerializer(ASerializer).ReadEnumerated('CardPay',TypeInfo(boolean), l_CardPay); + CardPay := l_CardPay; + l_CodPrice := CodPrice; + TROSerializer(ASerializer).ReadDecimal('CodPrice', l_CodPrice); + CodPrice := l_CodPrice; + l_CustReference := CustReference; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CustReference', l_CustReference); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CustReference', l_CustReference); +{$ENDIF} + CustReference := l_CustReference; + l_DateCentral := DateCentral; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateCentral', l_DateCentral); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateCentral', l_DateCentral); +{$ENDIF} + DateCentral := l_DateCentral; + l_DateDeliv := DateDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateDeliv', l_DateDeliv); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateDeliv', l_DateDeliv); +{$ENDIF} + DateDeliv := l_DateDeliv; + l_DateExport := DateExport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateExport', l_DateExport); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateExport', l_DateExport); +{$ENDIF} + DateExport := l_DateExport; + l_DateImport := DateImport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateImport', l_DateImport); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateImport', l_DateImport); +{$ENDIF} + DateImport := l_DateImport; + l_DateInputDepo := DateInputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateInputDepo', l_DateInputDepo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateInputDepo', l_DateInputDepo); +{$ENDIF} + DateInputDepo := l_DateInputDepo; + l_DateMoneyToBank := DateMoneyToBank; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateMoneyToBank', l_DateMoneyToBank); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateMoneyToBank', l_DateMoneyToBank); +{$ENDIF} + DateMoneyToBank := l_DateMoneyToBank; + l_DateMoneyToCustomer := DateMoneyToCustomer; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ENDIF} + DateMoneyToCustomer := l_DateMoneyToCustomer; + l_DateNotDeliv := DateNotDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateNotDeliv', l_DateNotDeliv); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateNotDeliv', l_DateNotDeliv); +{$ENDIF} + DateNotDeliv := l_DateNotDeliv; + l_DateOutputDepo := DateOutputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateOutputDepo', l_DateOutputDepo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateOutputDepo', l_DateOutputDepo); +{$ENDIF} + DateOutputDepo := l_DateOutputDepo; + l_DateTakeMoney := DateTakeMoney; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateTakeMoney', l_DateTakeMoney); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateTakeMoney', l_DateTakeMoney); +{$ENDIF} + DateTakeMoney := l_DateTakeMoney; + l_DateWeighed := DateWeighed; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateWeighed', l_DateWeighed); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateWeighed', l_DateWeighed); +{$ENDIF} + DateWeighed := l_DateWeighed; + l_DelivPerson := DelivPerson; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DelivPerson', l_DelivPerson); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DelivPerson', l_DelivPerson); +{$ENDIF} + DelivPerson := l_DelivPerson; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).ReadEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + EveningDelivery := l_EveningDelivery; + l_InputCountry := InputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputCountry', l_InputCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputCountry', l_InputCountry); +{$ENDIF} + InputCountry := l_InputCountry; + l_InputDepoCode := InputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputDepoCode', l_InputDepoCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputDepoCode', l_InputDepoCode); +{$ENDIF} + InputDepoCode := l_InputDepoCode; + l_InputDepoName := InputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InputDepoName', l_InputDepoName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InputDepoName', l_InputDepoName); +{$ENDIF} + InputDepoName := l_InputDepoName; + l_InvoiceNumber := InvoiceNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('InvoiceNumber', l_InvoiceNumber); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('InvoiceNumber', l_InvoiceNumber); +{$ENDIF} + InvoiceNumber := l_InvoiceNumber; + l_LoadingDate := LoadingDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('LoadingDate', l_LoadingDate); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('LoadingDate', l_LoadingDate); +{$ENDIF} + LoadingDate := l_LoadingDate; + l_NotDelivCode := NotDelivCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('NotDelivCode', l_NotDelivCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('NotDelivCode', l_NotDelivCode); +{$ENDIF} + NotDelivCode := l_NotDelivCode; + l_NotDelivName := NotDelivName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('NotDelivName', l_NotDelivName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('NotDelivName', l_NotDelivName); +{$ENDIF} + NotDelivName := l_NotDelivName; + l_OutputCountry := OutputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputCountry', l_OutputCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputCountry', l_OutputCountry); +{$ENDIF} + OutputCountry := l_OutputCountry; + l_OutputDepoCode := OutputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputDepoCode', l_OutputDepoCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputDepoCode', l_OutputDepoCode); +{$ENDIF} + OutputDepoCode := l_OutputDepoCode; + l_OutputDepoName := OutputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OutputDepoName', l_OutputDepoName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OutputDepoName', l_OutputDepoName); +{$ENDIF} + OutputDepoName := l_OutputDepoName; + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + l_PackageIDCus := PackageIDCus; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDCus', l_PackageIDCus); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDCus', l_PackageIDCus); +{$ENDIF} + PackageIDCus := l_PackageIDCus; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_ReturnToSender := ReturnToSender; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ReturnToSender', l_ReturnToSender); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ReturnToSender', l_ReturnToSender); +{$ENDIF} + ReturnToSender := l_ReturnToSender; + l_SendInfo := SendInfo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendInfo', l_SendInfo); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendInfo', l_SendInfo); +{$ENDIF} + SendInfo := l_SendInfo; + l_Weight := Weight; + TROSerializer(ASerializer).ReadDouble('Weight', ftDouble, l_Weight); + Weight := l_Weight; + end; +end; + +procedure PackageInfo.WriteComplex(ASerializer: TObject); +var + l_CardPay: boolean; + l_CodPrice: decimal; + l_CustReference: UnicodeString; + l_DateCentral: UnicodeString; + l_DateDeliv: UnicodeString; + l_DateExport: UnicodeString; + l_DateImport: UnicodeString; + l_DateInputDepo: UnicodeString; + l_DateMoneyToBank: UnicodeString; + l_DateMoneyToCustomer: UnicodeString; + l_DateNotDeliv: UnicodeString; + l_DateOutputDepo: UnicodeString; + l_DateTakeMoney: UnicodeString; + l_DateWeighed: UnicodeString; + l_DelivPerson: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_EveningDelivery: boolean; + l_InputCountry: UnicodeString; + l_InputDepoCode: UnicodeString; + l_InputDepoName: UnicodeString; + l_InvoiceNumber: UnicodeString; + l_LoadingDate: UnicodeString; + l_NotDelivCode: UnicodeString; + l_NotDelivName: UnicodeString; + l_OutputCountry: UnicodeString; + l_OutputDepoCode: UnicodeString; + l_OutputDepoName: UnicodeString; + l_PackageID: UnicodeString; + l_PackageIDCus: UnicodeString; + l_RecCity: UnicodeString; + l_RecZipCode: UnicodeString; + l_ReturnToSender: UnicodeString; + l_SendInfo: UnicodeString; + l_Weight: Double; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(PackageInfo); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_PackageIDCus := PackageIDCus; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDCus', l_PackageIDCus); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDCus', l_PackageIDCus); +{$ENDIF} + l_CustReference := CustReference; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustReference', l_CustReference); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustReference', l_CustReference); +{$ENDIF} + l_InputDepoCode := InputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputDepoCode', l_InputDepoCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputDepoCode', l_InputDepoCode); +{$ENDIF} + l_InputDepoName := InputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputDepoName', l_InputDepoName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputDepoName', l_InputDepoName); +{$ENDIF} + l_OutputDepoCode := OutputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputDepoCode', l_OutputDepoCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputDepoCode', l_OutputDepoCode); +{$ENDIF} + l_OutputDepoName := OutputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputDepoName', l_OutputDepoName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputDepoName', l_OutputDepoName); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDouble('Weight', ftDouble, l_Weight); + l_DateInputDepo := DateInputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateInputDepo', l_DateInputDepo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateInputDepo', l_DateInputDepo); +{$ENDIF} + l_DateWeighed := DateWeighed; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateWeighed', l_DateWeighed); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateWeighed', l_DateWeighed); +{$ENDIF} + l_DateCentral := DateCentral; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateCentral', l_DateCentral); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateCentral', l_DateCentral); +{$ENDIF} + l_DateOutputDepo := DateOutputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateOutputDepo', l_DateOutputDepo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateOutputDepo', l_DateOutputDepo); +{$ENDIF} + l_DateNotDeliv := DateNotDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateNotDeliv', l_DateNotDeliv); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateNotDeliv', l_DateNotDeliv); +{$ENDIF} + l_NotDelivCode := NotDelivCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('NotDelivCode', l_NotDelivCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('NotDelivCode', l_NotDelivCode); +{$ENDIF} + l_NotDelivName := NotDelivName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('NotDelivName', l_NotDelivName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('NotDelivName', l_NotDelivName); +{$ENDIF} + l_DateDeliv := DateDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateDeliv', l_DateDeliv); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateDeliv', l_DateDeliv); +{$ENDIF} + l_DelivPerson := DelivPerson; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DelivPerson', l_DelivPerson); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DelivPerson', l_DelivPerson); +{$ENDIF} + l_DateExport := DateExport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateExport', l_DateExport); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateExport', l_DateExport); +{$ENDIF} + l_DateImport := DateImport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateImport', l_DateImport); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateImport', l_DateImport); +{$ENDIF} + l_InputCountry := InputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputCountry', l_InputCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputCountry', l_InputCountry); +{$ENDIF} + l_OutputCountry := OutputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputCountry', l_OutputCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputCountry', l_OutputCountry); +{$ENDIF} + l_InvoiceNumber := InvoiceNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InvoiceNumber', l_InvoiceNumber); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InvoiceNumber', l_InvoiceNumber); +{$ENDIF} + l_ReturnToSender := ReturnToSender; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ReturnToSender', l_ReturnToSender); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ReturnToSender', l_ReturnToSender); +{$ENDIF} + l_SendInfo := SendInfo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendInfo', l_SendInfo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendInfo', l_SendInfo); +{$ENDIF} + l_CardPay := CardPay; + TROSerializer(ASerializer).WriteEnumerated('CardPay',TypeInfo(boolean), l_CardPay); + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_LoadingDate := LoadingDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('LoadingDate', l_LoadingDate); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('LoadingDate', l_LoadingDate); +{$ENDIF} + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_DateTakeMoney := DateTakeMoney; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateTakeMoney', l_DateTakeMoney); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateTakeMoney', l_DateTakeMoney); +{$ENDIF} + l_DateMoneyToBank := DateMoneyToBank; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateMoneyToBank', l_DateMoneyToBank); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateMoneyToBank', l_DateMoneyToBank); +{$ENDIF} + l_DateMoneyToCustomer := DateMoneyToCustomer; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_CardPay := CardPay; + TROSerializer(ASerializer).WriteEnumerated('CardPay',TypeInfo(boolean), l_CardPay); + l_CodPrice := CodPrice; + TROSerializer(ASerializer).WriteDecimal('CodPrice', l_CodPrice); + l_CustReference := CustReference; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CustReference', l_CustReference); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CustReference', l_CustReference); +{$ENDIF} + l_DateCentral := DateCentral; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateCentral', l_DateCentral); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateCentral', l_DateCentral); +{$ENDIF} + l_DateDeliv := DateDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateDeliv', l_DateDeliv); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateDeliv', l_DateDeliv); +{$ENDIF} + l_DateExport := DateExport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateExport', l_DateExport); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateExport', l_DateExport); +{$ENDIF} + l_DateImport := DateImport; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateImport', l_DateImport); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateImport', l_DateImport); +{$ENDIF} + l_DateInputDepo := DateInputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateInputDepo', l_DateInputDepo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateInputDepo', l_DateInputDepo); +{$ENDIF} + l_DateMoneyToBank := DateMoneyToBank; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateMoneyToBank', l_DateMoneyToBank); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateMoneyToBank', l_DateMoneyToBank); +{$ENDIF} + l_DateMoneyToCustomer := DateMoneyToCustomer; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateMoneyToCustomer', l_DateMoneyToCustomer); +{$ENDIF} + l_DateNotDeliv := DateNotDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateNotDeliv', l_DateNotDeliv); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateNotDeliv', l_DateNotDeliv); +{$ENDIF} + l_DateOutputDepo := DateOutputDepo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateOutputDepo', l_DateOutputDepo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateOutputDepo', l_DateOutputDepo); +{$ENDIF} + l_DateTakeMoney := DateTakeMoney; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateTakeMoney', l_DateTakeMoney); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateTakeMoney', l_DateTakeMoney); +{$ENDIF} + l_DateWeighed := DateWeighed; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateWeighed', l_DateWeighed); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateWeighed', l_DateWeighed); +{$ENDIF} + l_DelivPerson := DelivPerson; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DelivPerson', l_DelivPerson); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DelivPerson', l_DelivPerson); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_EveningDelivery := EveningDelivery; + TROSerializer(ASerializer).WriteEnumerated('EveningDelivery',TypeInfo(boolean), l_EveningDelivery); + l_InputCountry := InputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputCountry', l_InputCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputCountry', l_InputCountry); +{$ENDIF} + l_InputDepoCode := InputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputDepoCode', l_InputDepoCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputDepoCode', l_InputDepoCode); +{$ENDIF} + l_InputDepoName := InputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InputDepoName', l_InputDepoName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InputDepoName', l_InputDepoName); +{$ENDIF} + l_InvoiceNumber := InvoiceNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('InvoiceNumber', l_InvoiceNumber); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('InvoiceNumber', l_InvoiceNumber); +{$ENDIF} + l_LoadingDate := LoadingDate; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('LoadingDate', l_LoadingDate); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('LoadingDate', l_LoadingDate); +{$ENDIF} + l_NotDelivCode := NotDelivCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('NotDelivCode', l_NotDelivCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('NotDelivCode', l_NotDelivCode); +{$ENDIF} + l_NotDelivName := NotDelivName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('NotDelivName', l_NotDelivName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('NotDelivName', l_NotDelivName); +{$ENDIF} + l_OutputCountry := OutputCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputCountry', l_OutputCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputCountry', l_OutputCountry); +{$ENDIF} + l_OutputDepoCode := OutputDepoCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputDepoCode', l_OutputDepoCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputDepoCode', l_OutputDepoCode); +{$ENDIF} + l_OutputDepoName := OutputDepoName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OutputDepoName', l_OutputDepoName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OutputDepoName', l_OutputDepoName); +{$ENDIF} + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + l_PackageIDCus := PackageIDCus; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDCus', l_PackageIDCus); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDCus', l_PackageIDCus); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_ReturnToSender := ReturnToSender; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ReturnToSender', l_ReturnToSender); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ReturnToSender', l_ReturnToSender); +{$ENDIF} + l_SendInfo := SendInfo; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendInfo', l_SendInfo); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendInfo', l_SendInfo); +{$ENDIF} + l_Weight := Weight; + TROSerializer(ASerializer).WriteDouble('Weight', ftDouble, l_Weight); + end; +end; + +{ PackageInfoCollection } +constructor PackageInfoCollection.Create; +begin + inherited Create(PackageInfo); +end; + +constructor PackageInfoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function PackageInfoCollection.Add: PackageInfo; +begin + result := PackageInfo(inherited Add); +end; + +function PackageInfoCollection.GetItems(aIndex: integer): PackageInfo; +begin + result := PackageInfo(inherited Items[aIndex]); +end; + +procedure PackageInfoCollection.LoadFromArray(anArray: ArrayOfPackageInfo); +var i : integer; +begin + Clear; + for i := 0 to (anArray.Count-1) do + if anArray[i] <> nil then + anArray[i].Clone.Collection := Self; +end; + +procedure PackageInfoCollection.SaveToArray(anArray: ArrayOfPackageInfo); +var i : integer; +begin + anArray.Clear; + for i := 0 to (Count-1) do begin + if Assigned(Items[i]) then + anArray.Add(PackageInfo(Items[i].Clone)) + else + anArray.Add(nil); + end; +end; + +procedure PackageInfoCollection.SetItems(aIndex: integer; const Value: PackageInfo); +begin + PackageInfo(inherited Items[aIndex]).Assign(Value); +end; + +{ GetPackagesInfoResponse } + +class function GetPackagesInfoResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetPackagesInfoResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetPackagesInfoResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetPackagesInfoResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetPackagesInfoResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetPackagesInfoResponse) then begin + lSource := libPPL_Intf.GetPackagesInfoResponse(iSource); + if Assigned(lSource.fGetPackagesInfoResult) then + GetPackagesInfoResult.Assign(lSource.fGetPackagesInfoResult) + else + FreeAndNil(fGetPackagesInfoResult); + end; +end; + +function GetPackagesInfoResponse.GetGetPackagesInfoResult: ArrayOfPackageInfo; +begin + if (fGetPackagesInfoResult = nil) then fGetPackagesInfoResult := ArrayOfPackageInfo.Create(); + result := fGetPackagesInfoResult; +end; + +procedure GetPackagesInfoResponse.ReadComplex(ASerializer: TObject); +var + l_GetPackagesInfoResult: ArrayOfPackageInfo; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_GetPackagesInfoResult := int_GetPackagesInfoResult; + TROSerializer(ASerializer).ReadArray('GetPackagesInfoResult', ArrayOfPackageInfo, l_GetPackagesInfoResult); + if int_GetPackagesInfoResult <> l_GetPackagesInfoResult then GetPackagesInfoResult.Free; + GetPackagesInfoResult := l_GetPackagesInfoResult; + end + else begin + l_GetPackagesInfoResult := int_GetPackagesInfoResult; + TROSerializer(ASerializer).ReadArray('GetPackagesInfoResult', ArrayOfPackageInfo, l_GetPackagesInfoResult); + if int_GetPackagesInfoResult <> l_GetPackagesInfoResult then GetPackagesInfoResult.Free; + GetPackagesInfoResult := l_GetPackagesInfoResult; + end; +end; + +procedure GetPackagesInfoResponse.WriteComplex(ASerializer: TObject); +var + l_GetPackagesInfoResult: ArrayOfPackageInfo; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetPackagesInfoResponse); + l_GetPackagesInfoResult := int_GetPackagesInfoResult; + TROSerializer(ASerializer).WriteArray('GetPackagesInfoResult', l_GetPackagesInfoResult, ArrayOfPackageInfo); + end + else begin + l_GetPackagesInfoResult := int_GetPackagesInfoResult; + TROSerializer(ASerializer).WriteArray('GetPackagesInfoResult', l_GetPackagesInfoResult, ArrayOfPackageInfo); + end; +end; + +{ GetPackagesInfoResponseCollection } +constructor GetPackagesInfoResponseCollection.Create; +begin + inherited Create(GetPackagesInfoResponse); +end; + +constructor GetPackagesInfoResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetPackagesInfoResponseCollection.Add: GetPackagesInfoResponse; +begin + result := GetPackagesInfoResponse(inherited Add); +end; + +function GetPackagesInfoResponseCollection.GetItems(aIndex: integer): GetPackagesInfoResponse; +begin + result := GetPackagesInfoResponse(inherited Items[aIndex]); +end; + +procedure GetPackagesInfoResponseCollection.SetItems(aIndex: integer; const Value: GetPackagesInfoResponse); +begin + GetPackagesInfoResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ GetPackageToDelivery } + +class function GetPackageToDelivery.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetPackageToDelivery.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetPackageToDelivery.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetPackageToDelivery.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetPackageToDelivery; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetPackageToDelivery) then begin + lSource := libPPL_Intf.GetPackageToDelivery(iSource); + FirCode := lSource.FirCode; + DateToDeliv := lSource.DateToDeliv; + end; +end; + +procedure GetPackageToDelivery.ReadComplex(ASerializer: TObject); +var + l_DateToDeliv: UnicodeString; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_DateToDeliv := DateToDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateToDeliv', l_DateToDeliv); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateToDeliv', l_DateToDeliv); +{$ENDIF} + DateToDeliv := l_DateToDeliv; + end + else begin + l_DateToDeliv := DateToDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DateToDeliv', l_DateToDeliv); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DateToDeliv', l_DateToDeliv); +{$ENDIF} + DateToDeliv := l_DateToDeliv; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + end; +end; + +procedure GetPackageToDelivery.WriteComplex(ASerializer: TObject); +var + l_DateToDeliv: UnicodeString; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetPackageToDelivery); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_DateToDeliv := DateToDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateToDeliv', l_DateToDeliv); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateToDeliv', l_DateToDeliv); +{$ENDIF} + end + else begin + l_DateToDeliv := DateToDeliv; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DateToDeliv', l_DateToDeliv); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DateToDeliv', l_DateToDeliv); +{$ENDIF} + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + end; +end; + +{ GetPackageToDeliveryCollection } +constructor GetPackageToDeliveryCollection.Create; +begin + inherited Create(GetPackageToDelivery); +end; + +constructor GetPackageToDeliveryCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetPackageToDeliveryCollection.Add: GetPackageToDelivery; +begin + result := GetPackageToDelivery(inherited Add); +end; + +function GetPackageToDeliveryCollection.GetItems(aIndex: integer): GetPackageToDelivery; +begin + result := GetPackageToDelivery(inherited Items[aIndex]); +end; + +procedure GetPackageToDeliveryCollection.SetItems(aIndex: integer; const Value: GetPackageToDelivery); +begin + GetPackageToDelivery(inherited Items[aIndex]).Assign(Value); +end; + +{ colPackage } + +class function colPackage.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colPackage.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colPackage.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colPackage.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colPackage; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colPackage) then begin + lSource := libPPL_Intf.colPackage(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colPackage.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colPackage.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colPackage.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colPackage); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colPackageCollection } +constructor colPackageCollection.Create; +begin + inherited Create(colPackage); +end; + +constructor colPackageCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colPackageCollection.Add: colPackage; +begin + result := colPackage(inherited Add); +end; + +function colPackageCollection.GetItems(aIndex: integer): colPackage; +begin + result := colPackage(inherited Items[aIndex]); +end; + +procedure colPackageCollection.SetItems(aIndex: integer; const Value: colPackage); +begin + colPackage(inherited Items[aIndex]).Assign(Value); +end; + +{ GetPackageToDeliveryResponse } + +class function GetPackageToDeliveryResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetPackageToDeliveryResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetPackageToDeliveryResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetPackageToDeliveryResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetPackageToDeliveryResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetPackageToDeliveryResponse) then begin + lSource := libPPL_Intf.GetPackageToDeliveryResponse(iSource); + if Assigned(lSource.fGetPackageToDeliveryResult) then + GetPackageToDeliveryResult.Assign(lSource.fGetPackageToDeliveryResult) + else + FreeAndNil(fGetPackageToDeliveryResult); + end; +end; + +function GetPackageToDeliveryResponse.GetGetPackageToDeliveryResult: colPackage; +begin + if (fGetPackageToDeliveryResult = nil) then fGetPackageToDeliveryResult := colPackage.Create(); + result := fGetPackageToDeliveryResult; +end; + +procedure GetPackageToDeliveryResponse.ReadComplex(ASerializer: TObject); +var + l_GetPackageToDeliveryResult: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_GetPackageToDeliveryResult := int_GetPackageToDeliveryResult; + TROSerializer(ASerializer).ReadStruct('GetPackageToDeliveryResult', colPackage, l_GetPackageToDeliveryResult); + if int_GetPackageToDeliveryResult <> l_GetPackageToDeliveryResult then GetPackageToDeliveryResult.Free; + GetPackageToDeliveryResult := l_GetPackageToDeliveryResult; + end + else begin + l_GetPackageToDeliveryResult := int_GetPackageToDeliveryResult; + TROSerializer(ASerializer).ReadStruct('GetPackageToDeliveryResult', colPackage, l_GetPackageToDeliveryResult); + if int_GetPackageToDeliveryResult <> l_GetPackageToDeliveryResult then GetPackageToDeliveryResult.Free; + GetPackageToDeliveryResult := l_GetPackageToDeliveryResult; + end; +end; + +procedure GetPackageToDeliveryResponse.WriteComplex(ASerializer: TObject); +var + l_GetPackageToDeliveryResult: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetPackageToDeliveryResponse); + l_GetPackageToDeliveryResult := int_GetPackageToDeliveryResult; + TROSerializer(ASerializer).WriteStruct('GetPackageToDeliveryResult', l_GetPackageToDeliveryResult, colPackage); + end + else begin + l_GetPackageToDeliveryResult := int_GetPackageToDeliveryResult; + TROSerializer(ASerializer).WriteStruct('GetPackageToDeliveryResult', l_GetPackageToDeliveryResult, colPackage); + end; +end; + +{ GetPackageToDeliveryResponseCollection } +constructor GetPackageToDeliveryResponseCollection.Create; +begin + inherited Create(GetPackageToDeliveryResponse); +end; + +constructor GetPackageToDeliveryResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetPackageToDeliveryResponseCollection.Add: GetPackageToDeliveryResponse; +begin + result := GetPackageToDeliveryResponse(inherited Add); +end; + +function GetPackageToDeliveryResponseCollection.GetItems(aIndex: integer): GetPackageToDeliveryResponse; +begin + result := GetPackageToDeliveryResponse(inherited Items[aIndex]); +end; + +procedure GetPackageToDeliveryResponseCollection.SetItems(aIndex: integer; const Value: GetPackageToDeliveryResponse); +begin + GetPackageToDeliveryResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ GetPackageInfo } + +class function GetPackageInfo.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetPackageInfo.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetPackageInfo.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetPackageInfo.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetPackageInfo; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetPackageInfo) then begin + lSource := libPPL_Intf.GetPackageInfo(iSource); + PackageID := lSource.PackageID; + end; +end; + +procedure GetPackageInfo.ReadComplex(ASerializer: TObject); +var + l_PackageID: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + end + else begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageID', l_PackageID); +{$ENDIF} + PackageID := l_PackageID; + end; +end; + +procedure GetPackageInfo.WriteComplex(ASerializer: TObject); +var + l_PackageID: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetPackageInfo); + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + end + else begin + l_PackageID := PackageID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageID', l_PackageID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageID', l_PackageID); +{$ENDIF} + end; +end; + +{ GetPackageInfoCollection } +constructor GetPackageInfoCollection.Create; +begin + inherited Create(GetPackageInfo); +end; + +constructor GetPackageInfoCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetPackageInfoCollection.Add: GetPackageInfo; +begin + result := GetPackageInfo(inherited Add); +end; + +function GetPackageInfoCollection.GetItems(aIndex: integer): GetPackageInfo; +begin + result := GetPackageInfo(inherited Items[aIndex]); +end; + +procedure GetPackageInfoCollection.SetItems(aIndex: integer; const Value: GetPackageInfo); +begin + GetPackageInfo(inherited Items[aIndex]).Assign(Value); +end; + +{ GetPackageInfoResponse } + +class function GetPackageInfoResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function GetPackageInfoResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function GetPackageInfoResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure GetPackageInfoResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.GetPackageInfoResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.GetPackageInfoResponse) then begin + lSource := libPPL_Intf.GetPackageInfoResponse(iSource); + if Assigned(lSource.fGetPackageInfoResult) then + GetPackageInfoResult.Assign(lSource.fGetPackageInfoResult) + else + FreeAndNil(fGetPackageInfoResult); + end; +end; + +function GetPackageInfoResponse.GetGetPackageInfoResult: PackageInfo; +begin + if (fGetPackageInfoResult = nil) then fGetPackageInfoResult := PackageInfo.Create(); + result := fGetPackageInfoResult; +end; + +procedure GetPackageInfoResponse.ReadComplex(ASerializer: TObject); +var + l_GetPackageInfoResult: PackageInfo; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_GetPackageInfoResult := int_GetPackageInfoResult; + TROSerializer(ASerializer).ReadStruct('GetPackageInfoResult', PackageInfo, l_GetPackageInfoResult); + if int_GetPackageInfoResult <> l_GetPackageInfoResult then GetPackageInfoResult.Free; + GetPackageInfoResult := l_GetPackageInfoResult; + end + else begin + l_GetPackageInfoResult := int_GetPackageInfoResult; + TROSerializer(ASerializer).ReadStruct('GetPackageInfoResult', PackageInfo, l_GetPackageInfoResult); + if int_GetPackageInfoResult <> l_GetPackageInfoResult then GetPackageInfoResult.Free; + GetPackageInfoResult := l_GetPackageInfoResult; + end; +end; + +procedure GetPackageInfoResponse.WriteComplex(ASerializer: TObject); +var + l_GetPackageInfoResult: PackageInfo; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(GetPackageInfoResponse); + l_GetPackageInfoResult := int_GetPackageInfoResult; + TROSerializer(ASerializer).WriteStruct('GetPackageInfoResult', l_GetPackageInfoResult, PackageInfo); + end + else begin + l_GetPackageInfoResult := int_GetPackageInfoResult; + TROSerializer(ASerializer).WriteStruct('GetPackageInfoResult', l_GetPackageInfoResult, PackageInfo); + end; +end; + +{ GetPackageInfoResponseCollection } +constructor GetPackageInfoResponseCollection.Create; +begin + inherited Create(GetPackageInfoResponse); +end; + +constructor GetPackageInfoResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function GetPackageInfoResponseCollection.Add: GetPackageInfoResponse; +begin + result := GetPackageInfoResponse(inherited Add); +end; + +function GetPackageInfoResponseCollection.GetItems(aIndex: integer): GetPackageInfoResponse; +begin + result := GetPackageInfoResponse(inherited Items[aIndex]); +end; + +procedure GetPackageInfoResponseCollection.SetItems(aIndex: integer; const Value: GetPackageInfoResponse); +begin + GetPackageInfoResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrderExt } + +class function ImportOrderExt.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrderExt.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrderExt.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrderExt.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrderExt; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrderExt) then begin + lSource := libPPL_Intf.ImportOrderExt(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.ffield_order) then + field_order.Assign(lSource.ffield_order) + else + FreeAndNil(ffield_order); + end; +end; + +function ImportOrderExt.Getfield_order: Order; +begin + if (ffield_order = nil) then ffield_order := Order.Create(); + result := ffield_order; +end; + +procedure ImportOrderExt.ReadComplex(ASerializer: TObject); +var + l_field_order: Order; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', Order, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + end + else begin + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', Order, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + end; +end; + +procedure ImportOrderExt.WriteComplex(ASerializer: TObject); +var + l_field_order: Order; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrderExt); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, Order); + end + else begin + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, Order); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + end; +end; + +{ ImportOrderExtCollection } +constructor ImportOrderExtCollection.Create; +begin + inherited Create(ImportOrderExt); +end; + +constructor ImportOrderExtCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrderExtCollection.Add: ImportOrderExt; +begin + result := ImportOrderExt(inherited Add); +end; + +function ImportOrderExtCollection.GetItems(aIndex: integer): ImportOrderExt; +begin + result := ImportOrderExt(inherited Items[aIndex]); +end; + +procedure ImportOrderExtCollection.SetItems(aIndex: integer; const Value: ImportOrderExt); +begin + ImportOrderExt(inherited Items[aIndex]).Assign(Value); +end; + +{ Order } + +class function Order.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function Order.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function Order.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure Order.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.Order; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.Order) then begin + lSource := libPPL_Intf.Order(iSource); + OrdNumber := lSource.OrdNumber; + CountPack := lSource.CountPack; + SendName := lSource.SendName; + SendStreet := lSource.SendStreet; + SendCity := lSource.SendCity; + SendZipCode := lSource.SendZipCode; + SendContact := lSource.SendContact; + SendPhone := lSource.SendPhone; + SendDateFrom := lSource.SendDateFrom; + SendDateTo := lSource.SendDateTo; + SendCountry := lSource.SendCountry; + RecName := lSource.RecName; + RecStreet := lSource.RecStreet; + RecCity := lSource.RecCity; + RecZipCode := lSource.RecZipCode; + RecContact := lSource.RecContact; + RecPhone := lSource.RecPhone; + RecCountry := lSource.RecCountry; + Note := lSource.Note; + Email := lSource.Email; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure Order.ReadComplex(ASerializer: TObject); +var + l_CountPack: UnicodeString; + l_Email: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Note: UnicodeString; + l_OrdNumber: UnicodeString; + l_RecCity: UnicodeString; + l_RecContact: UnicodeString; + l_RecCountry: UnicodeString; + l_RecName: UnicodeString; + l_RecPhone: UnicodeString; + l_RecStreet: UnicodeString; + l_RecZipCode: UnicodeString; + l_SendCity: UnicodeString; + l_SendContact: UnicodeString; + l_SendCountry: UnicodeString; + l_SendDateFrom: DateTime; + l_SendDateTo: DateTime; + l_SendName: UnicodeString; + l_SendPhone: UnicodeString; + l_SendStreet: UnicodeString; + l_SendZipCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_OrdNumber := OrdNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OrdNumber', l_OrdNumber); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OrdNumber', l_OrdNumber); +{$ENDIF} + OrdNumber := l_OrdNumber; + l_CountPack := CountPack; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CountPack', l_CountPack); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CountPack', l_CountPack); +{$ENDIF} + CountPack := l_CountPack; + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendName', l_SendName); +{$ENDIF} + SendName := l_SendName; + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendStreet', l_SendStreet); +{$ENDIF} + SendStreet := l_SendStreet; + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCity', l_SendCity); +{$ENDIF} + SendCity := l_SendCity; + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + SendZipCode := l_SendZipCode; + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendContact', l_SendContact); +{$ENDIF} + SendContact := l_SendContact; + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendPhone', l_SendPhone); +{$ENDIF} + SendPhone := l_SendPhone; + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).ReadDateTime('SendDateFrom', l_SendDateFrom); + SendDateFrom := l_SendDateFrom; + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).ReadDateTime('SendDateTo', l_SendDateTo); + SendDateTo := l_SendDateTo; + l_SendCountry := SendCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCountry', l_SendCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCountry', l_SendCountry); +{$ENDIF} + SendCountry := l_SendCountry; + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecName', l_RecName); +{$ENDIF} + RecName := l_RecName; + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecStreet', l_RecStreet); +{$ENDIF} + RecStreet := l_RecStreet; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecContact', l_RecContact); +{$ENDIF} + RecContact := l_RecContact; + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecPhone', l_RecPhone); +{$ENDIF} + RecPhone := l_RecPhone; + l_RecCountry := RecCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCountry', l_RecCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCountry', l_RecCountry); +{$ENDIF} + RecCountry := l_RecCountry; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Email', l_Email); +{$ENDIF} + Email := l_Email; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_CountPack := CountPack; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('CountPack', l_CountPack); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('CountPack', l_CountPack); +{$ENDIF} + CountPack := l_CountPack; + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Email', l_Email); +{$ENDIF} + Email := l_Email; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_OrdNumber := OrdNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('OrdNumber', l_OrdNumber); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('OrdNumber', l_OrdNumber); +{$ENDIF} + OrdNumber := l_OrdNumber; + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCity', l_RecCity); +{$ENDIF} + RecCity := l_RecCity; + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecContact', l_RecContact); +{$ENDIF} + RecContact := l_RecContact; + l_RecCountry := RecCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecCountry', l_RecCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecCountry', l_RecCountry); +{$ENDIF} + RecCountry := l_RecCountry; + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecName', l_RecName); +{$ENDIF} + RecName := l_RecName; + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecPhone', l_RecPhone); +{$ENDIF} + RecPhone := l_RecPhone; + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecStreet', l_RecStreet); +{$ENDIF} + RecStreet := l_RecStreet; + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + RecZipCode := l_RecZipCode; + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCity', l_SendCity); +{$ENDIF} + SendCity := l_SendCity; + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendContact', l_SendContact); +{$ENDIF} + SendContact := l_SendContact; + l_SendCountry := SendCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCountry', l_SendCountry); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCountry', l_SendCountry); +{$ENDIF} + SendCountry := l_SendCountry; + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).ReadDateTime('SendDateFrom', l_SendDateFrom); + SendDateFrom := l_SendDateFrom; + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).ReadDateTime('SendDateTo', l_SendDateTo); + SendDateTo := l_SendDateTo; + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendName', l_SendName); +{$ENDIF} + SendName := l_SendName; + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendPhone', l_SendPhone); +{$ENDIF} + SendPhone := l_SendPhone; + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendStreet', l_SendStreet); +{$ENDIF} + SendStreet := l_SendStreet; + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + SendZipCode := l_SendZipCode; + end; +end; + +procedure Order.WriteComplex(ASerializer: TObject); +var + l_CountPack: UnicodeString; + l_Email: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Note: UnicodeString; + l_OrdNumber: UnicodeString; + l_RecCity: UnicodeString; + l_RecContact: UnicodeString; + l_RecCountry: UnicodeString; + l_RecName: UnicodeString; + l_RecPhone: UnicodeString; + l_RecStreet: UnicodeString; + l_RecZipCode: UnicodeString; + l_SendCity: UnicodeString; + l_SendContact: UnicodeString; + l_SendCountry: UnicodeString; + l_SendDateFrom: DateTime; + l_SendDateTo: DateTime; + l_SendName: UnicodeString; + l_SendPhone: UnicodeString; + l_SendStreet: UnicodeString; + l_SendZipCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(Order); + l_OrdNumber := OrdNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OrdNumber', l_OrdNumber); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OrdNumber', l_OrdNumber); +{$ENDIF} + l_CountPack := CountPack; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CountPack', l_CountPack); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CountPack', l_CountPack); +{$ENDIF} + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendName', l_SendName); +{$ENDIF} + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendStreet', l_SendStreet); +{$ENDIF} + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCity', l_SendCity); +{$ENDIF} + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendContact', l_SendContact); +{$ENDIF} + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendPhone', l_SendPhone); +{$ENDIF} + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).WriteDateTime('SendDateFrom', l_SendDateFrom); + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).WriteDateTime('SendDateTo', l_SendDateTo); + l_SendCountry := SendCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCountry', l_SendCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCountry', l_SendCountry); +{$ENDIF} + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecName', l_RecName); +{$ENDIF} + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecStreet', l_RecStreet); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecContact', l_RecContact); +{$ENDIF} + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecPhone', l_RecPhone); +{$ENDIF} + l_RecCountry := RecCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCountry', l_RecCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCountry', l_RecCountry); +{$ENDIF} + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Email', l_Email); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_CountPack := CountPack; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('CountPack', l_CountPack); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('CountPack', l_CountPack); +{$ENDIF} + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Email', l_Email); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_OrdNumber := OrdNumber; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('OrdNumber', l_OrdNumber); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('OrdNumber', l_OrdNumber); +{$ENDIF} + l_RecCity := RecCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCity', l_RecCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCity', l_RecCity); +{$ENDIF} + l_RecContact := RecContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecContact', l_RecContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecContact', l_RecContact); +{$ENDIF} + l_RecCountry := RecCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecCountry', l_RecCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecCountry', l_RecCountry); +{$ENDIF} + l_RecName := RecName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecName', l_RecName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecName', l_RecName); +{$ENDIF} + l_RecPhone := RecPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecPhone', l_RecPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecPhone', l_RecPhone); +{$ENDIF} + l_RecStreet := RecStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecStreet', l_RecStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecStreet', l_RecStreet); +{$ENDIF} + l_RecZipCode := RecZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('RecZipCode', l_RecZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('RecZipCode', l_RecZipCode); +{$ENDIF} + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCity', l_SendCity); +{$ENDIF} + l_SendContact := SendContact; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendContact', l_SendContact); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendContact', l_SendContact); +{$ENDIF} + l_SendCountry := SendCountry; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCountry', l_SendCountry); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCountry', l_SendCountry); +{$ENDIF} + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).WriteDateTime('SendDateFrom', l_SendDateFrom); + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).WriteDateTime('SendDateTo', l_SendDateTo); + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendName', l_SendName); +{$ENDIF} + l_SendPhone := SendPhone; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendPhone', l_SendPhone); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendPhone', l_SendPhone); +{$ENDIF} + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendStreet', l_SendStreet); +{$ENDIF} + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + end; +end; + +{ OrderCollection } +constructor OrderCollection.Create; +begin + inherited Create(Order); +end; + +constructor OrderCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function OrderCollection.Add: Order; +begin + result := Order(inherited Add); +end; + +function OrderCollection.GetItems(aIndex: integer): Order; +begin + result := Order(inherited Items[aIndex]); +end; + +procedure OrderCollection.SetItems(aIndex: integer; const Value: Order); +begin + Order(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrderExtResponse } + +class function ImportOrderExtResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrderExtResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrderExtResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrderExtResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrderExtResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrderExtResponse) then begin + lSource := libPPL_Intf.ImportOrderExtResponse(iSource); + if Assigned(lSource.ffield_order) then + field_order.Assign(lSource.ffield_order) + else + FreeAndNil(ffield_order); + end; +end; + +function ImportOrderExtResponse.Getfield_order: Order; +begin + if (ffield_order = nil) then ffield_order := Order.Create(); + result := ffield_order; +end; + +procedure ImportOrderExtResponse.ReadComplex(ASerializer: TObject); +var + l_field_order: Order; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', Order, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + end + else begin + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', Order, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + end; +end; + +procedure ImportOrderExtResponse.WriteComplex(ASerializer: TObject); +var + l_field_order: Order; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrderExtResponse); + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, Order); + end + else begin + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, Order); + end; +end; + +{ ImportOrderExtResponseCollection } +constructor ImportOrderExtResponseCollection.Create; +begin + inherited Create(ImportOrderExtResponse); +end; + +constructor ImportOrderExtResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrderExtResponseCollection.Add: ImportOrderExtResponse; +begin + result := ImportOrderExtResponse(inherited Add); +end; + +function ImportOrderExtResponseCollection.GetItems(aIndex: integer): ImportOrderExtResponse; +begin + result := ImportOrderExtResponse(inherited Items[aIndex]); +end; + +procedure ImportOrderExtResponseCollection.SetItems(aIndex: integer; const Value: ImportOrderExtResponse); +begin + ImportOrderExtResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrdersExt } + +class function ImportOrdersExt.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrdersExt.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrdersExt.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrdersExt.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrdersExt; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrdersExt) then begin + lSource := libPPL_Intf.ImportOrdersExt(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fOrders) then + Orders.Assign(lSource.fOrders) + else + FreeAndNil(fOrders); + end; +end; + +function ImportOrdersExt.GetOrders: colOrder; +begin + if (fOrders = nil) then fOrders := colOrder.Create(); + result := fOrders; +end; + +procedure ImportOrdersExt.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Orders: colOrder; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrder, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrder, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end; +end; + +procedure ImportOrdersExt.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Orders: colOrder; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrdersExt); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrder); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrder); + end; +end; + +{ ImportOrdersExtCollection } +constructor ImportOrdersExtCollection.Create; +begin + inherited Create(ImportOrdersExt); +end; + +constructor ImportOrdersExtCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersExtCollection.Add: ImportOrdersExt; +begin + result := ImportOrdersExt(inherited Add); +end; + +function ImportOrdersExtCollection.GetItems(aIndex: integer): ImportOrdersExt; +begin + result := ImportOrdersExt(inherited Items[aIndex]); +end; + +procedure ImportOrdersExtCollection.SetItems(aIndex: integer; const Value: ImportOrdersExt); +begin + ImportOrdersExt(inherited Items[aIndex]).Assign(Value); +end; + +{ colOrder } + +class function colOrder.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colOrder.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colOrder.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colOrder.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colOrder; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colOrder) then begin + lSource := libPPL_Intf.colOrder(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colOrder.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colOrder.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colOrder.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colOrder); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colOrderCollection } +constructor colOrderCollection.Create; +begin + inherited Create(colOrder); +end; + +constructor colOrderCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colOrderCollection.Add: colOrder; +begin + result := colOrder(inherited Add); +end; + +function colOrderCollection.GetItems(aIndex: integer): colOrder; +begin + result := colOrder(inherited Items[aIndex]); +end; + +procedure colOrderCollection.SetItems(aIndex: integer; const Value: colOrder); +begin + colOrder(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrdersExtResponse } + +class function ImportOrdersExtResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrdersExtResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrdersExtResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrdersExtResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrdersExtResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrdersExtResponse) then begin + lSource := libPPL_Intf.ImportOrdersExtResponse(iSource); + if Assigned(lSource.fOrders) then + Orders.Assign(lSource.fOrders) + else + FreeAndNil(fOrders); + end; +end; + +function ImportOrdersExtResponse.GetOrders: colOrder; +begin + if (fOrders = nil) then fOrders := colOrder.Create(); + result := fOrders; +end; + +procedure ImportOrdersExtResponse.ReadComplex(ASerializer: TObject); +var + l_Orders: colOrder; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrder, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end + else begin + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrder, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end; +end; + +procedure ImportOrdersExtResponse.WriteComplex(ASerializer: TObject); +var + l_Orders: colOrder; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrdersExtResponse); + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrder); + end + else begin + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrder); + end; +end; + +{ ImportOrdersExtResponseCollection } +constructor ImportOrdersExtResponseCollection.Create; +begin + inherited Create(ImportOrdersExtResponse); +end; + +constructor ImportOrdersExtResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersExtResponseCollection.Add: ImportOrdersExtResponse; +begin + result := ImportOrdersExtResponse(inherited Add); +end; + +function ImportOrdersExtResponseCollection.GetItems(aIndex: integer): ImportOrdersExtResponse; +begin + result := ImportOrdersExtResponse(inherited Items[aIndex]); +end; + +procedure ImportOrdersExtResponseCollection.SetItems(aIndex: integer; const Value: ImportOrdersExtResponse); +begin + ImportOrdersExtResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackageExt } + +class function ImportPackageExt.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackageExt.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackageExt.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackageExt.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackageExt; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackageExt) then begin + lSource := libPPL_Intf.ImportPackageExt(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fpack) then + pack.Assign(lSource.fpack) + else + FreeAndNil(fpack); + end; +end; + +function ImportPackageExt.Getpack: Package; +begin + if (fpack = nil) then fpack := Package.Create(); + result := fpack; +end; + +procedure ImportPackageExt.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_pack: Package; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', Package, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', Package, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end; +end; + +procedure ImportPackageExt.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_pack: Package; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackageExt); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, Package); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, Package); + end; +end; + +{ ImportPackageExtCollection } +constructor ImportPackageExtCollection.Create; +begin + inherited Create(ImportPackageExt); +end; + +constructor ImportPackageExtCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackageExtCollection.Add: ImportPackageExt; +begin + result := ImportPackageExt(inherited Add); +end; + +function ImportPackageExtCollection.GetItems(aIndex: integer): ImportPackageExt; +begin + result := ImportPackageExt(inherited Items[aIndex]); +end; + +procedure ImportPackageExtCollection.SetItems(aIndex: integer; const Value: ImportPackageExt); +begin + ImportPackageExt(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackageExtResponse } + +class function ImportPackageExtResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackageExtResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackageExtResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackageExtResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackageExtResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackageExtResponse) then begin + lSource := libPPL_Intf.ImportPackageExtResponse(iSource); + if Assigned(lSource.fpack) then + pack.Assign(lSource.fpack) + else + FreeAndNil(fpack); + end; +end; + +function ImportPackageExtResponse.Getpack: Package; +begin + if (fpack = nil) then fpack := Package.Create(); + result := fpack; +end; + +procedure ImportPackageExtResponse.ReadComplex(ASerializer: TObject); +var + l_pack: Package; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', Package, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end + else begin + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', Package, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end; +end; + +procedure ImportPackageExtResponse.WriteComplex(ASerializer: TObject); +var + l_pack: Package; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackageExtResponse); + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, Package); + end + else begin + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, Package); + end; +end; + +{ ImportPackageExtResponseCollection } +constructor ImportPackageExtResponseCollection.Create; +begin + inherited Create(ImportPackageExtResponse); +end; + +constructor ImportPackageExtResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackageExtResponseCollection.Add: ImportPackageExtResponse; +begin + result := ImportPackageExtResponse(inherited Add); +end; + +function ImportPackageExtResponseCollection.GetItems(aIndex: integer): ImportPackageExtResponse; +begin + result := ImportPackageExtResponse(inherited Items[aIndex]); +end; + +procedure ImportPackageExtResponseCollection.SetItems(aIndex: integer; const Value: ImportPackageExtResponse); +begin + ImportPackageExtResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackagesExt } + +class function ImportPackagesExt.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackagesExt.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackagesExt.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackagesExt.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackagesExt; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackagesExt) then begin + lSource := libPPL_Intf.ImportPackagesExt(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + end; +end; + +function ImportPackagesExt.GetPackages: colPackage; +begin + if (fPackages = nil) then fPackages := colPackage.Create(); + result := fPackages; +end; + +procedure ImportPackagesExt.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportPackagesExt.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackagesExt); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end; +end; + +{ ImportPackagesExtCollection } +constructor ImportPackagesExtCollection.Create; +begin + inherited Create(ImportPackagesExt); +end; + +constructor ImportPackagesExtCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesExtCollection.Add: ImportPackagesExt; +begin + result := ImportPackagesExt(inherited Add); +end; + +function ImportPackagesExtCollection.GetItems(aIndex: integer): ImportPackagesExt; +begin + result := ImportPackagesExt(inherited Items[aIndex]); +end; + +procedure ImportPackagesExtCollection.SetItems(aIndex: integer; const Value: ImportPackagesExt); +begin + ImportPackagesExt(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackagesExtResponse } + +class function ImportPackagesExtResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackagesExtResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackagesExtResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackagesExtResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackagesExtResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackagesExtResponse) then begin + lSource := libPPL_Intf.ImportPackagesExtResponse(iSource); + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + end; +end; + +function ImportPackagesExtResponse.GetPackages: colPackage; +begin + if (fPackages = nil) then fPackages := colPackage.Create(); + result := fPackages; +end; + +procedure ImportPackagesExtResponse.ReadComplex(ASerializer: TObject); +var + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportPackagesExtResponse.WriteComplex(ASerializer: TObject); +var + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackagesExtResponse); + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end; +end; + +{ ImportPackagesExtResponseCollection } +constructor ImportPackagesExtResponseCollection.Create; +begin + inherited Create(ImportPackagesExtResponse); +end; + +constructor ImportPackagesExtResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesExtResponseCollection.Add: ImportPackagesExtResponse; +begin + result := ImportPackagesExtResponse(inherited Add); +end; + +function ImportPackagesExtResponseCollection.GetItems(aIndex: integer): ImportPackagesExtResponse; +begin + result := ImportPackagesExtResponse(inherited Items[aIndex]); +end; + +procedure ImportPackagesExtResponseCollection.SetItems(aIndex: integer; const Value: ImportPackagesExtResponse); +begin + ImportPackagesExtResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackages } + +class function ImportPackages.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackages.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackages.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackages.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackages; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackages) then begin + lSource := libPPL_Intf.ImportPackages(iSource); + end; +end; + +procedure ImportPackages.ReadComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + end + else begin + end; +end; + +procedure ImportPackages.WriteComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackages); + end + else begin + end; +end; + +{ ImportPackagesCollection } +constructor ImportPackagesCollection.Create; +begin + inherited Create(ImportPackages); +end; + +constructor ImportPackagesCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesCollection.Add: ImportPackages; +begin + result := ImportPackages(inherited Add); +end; + +function ImportPackagesCollection.GetItems(aIndex: integer): ImportPackages; +begin + result := ImportPackages(inherited Items[aIndex]); +end; + +procedure ImportPackagesCollection.SetItems(aIndex: integer; const Value: ImportPackages); +begin + ImportPackages(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackagesResponse_ImportPackagesResult } + +class function ImportPackagesResponse_ImportPackagesResult.GetAttributeCount: Integer; +begin + result := 2; +end; + +class function ImportPackagesResponse_ImportPackagesResult.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'SOAPName'; + 1: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackagesResponse_ImportPackagesResult.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportPackagesResult'; + 1: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackagesResponse_ImportPackagesResult.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackagesResponse_ImportPackagesResult; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackagesResponse_ImportPackagesResult) then begin + lSource := libPPL_Intf.ImportPackagesResponse_ImportPackagesResult(iSource); + end; +end; + +procedure ImportPackagesResponse_ImportPackagesResult.ReadComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + end + else begin + end; +end; + +procedure ImportPackagesResponse_ImportPackagesResult.WriteComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackagesResponse_ImportPackagesResult); + end + else begin + end; +end; + +{ ImportPackagesResponse_ImportPackagesResultCollection } +constructor ImportPackagesResponse_ImportPackagesResultCollection.Create; +begin + inherited Create(ImportPackagesResponse_ImportPackagesResult); +end; + +constructor ImportPackagesResponse_ImportPackagesResultCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesResponse_ImportPackagesResultCollection.Add: ImportPackagesResponse_ImportPackagesResult; +begin + result := ImportPackagesResponse_ImportPackagesResult(inherited Add); +end; + +function ImportPackagesResponse_ImportPackagesResultCollection.GetItems(aIndex: integer): ImportPackagesResponse_ImportPackagesResult; +begin + result := ImportPackagesResponse_ImportPackagesResult(inherited Items[aIndex]); +end; + +procedure ImportPackagesResponse_ImportPackagesResultCollection.SetItems(aIndex: integer; const Value: ImportPackagesResponse_ImportPackagesResult); +begin + ImportPackagesResponse_ImportPackagesResult(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackagesResponse } + +class function ImportPackagesResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackagesResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackagesResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackagesResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackagesResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackagesResponse) then begin + lSource := libPPL_Intf.ImportPackagesResponse(iSource); + if Assigned(lSource.fImportPackagesResult) then + ImportPackagesResult.Assign(lSource.fImportPackagesResult) + else + FreeAndNil(fImportPackagesResult); + end; +end; + +function ImportPackagesResponse.GetImportPackagesResult: ImportPackagesResponse_ImportPackagesResult; +begin + if (fImportPackagesResult = nil) then fImportPackagesResult := ImportPackagesResponse_ImportPackagesResult.Create(); + result := fImportPackagesResult; +end; + +procedure ImportPackagesResponse.ReadComplex(ASerializer: TObject); +var + l_ImportPackagesResult: ImportPackagesResponse_ImportPackagesResult; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_ImportPackagesResult := int_ImportPackagesResult; + TROSerializer(ASerializer).ReadStruct('ImportPackagesResult', ImportPackagesResponse_ImportPackagesResult, l_ImportPackagesResult); + if int_ImportPackagesResult <> l_ImportPackagesResult then ImportPackagesResult.Free; + ImportPackagesResult := l_ImportPackagesResult; + end + else begin + l_ImportPackagesResult := int_ImportPackagesResult; + TROSerializer(ASerializer).ReadStruct('ImportPackagesResult', ImportPackagesResponse_ImportPackagesResult, l_ImportPackagesResult); + if int_ImportPackagesResult <> l_ImportPackagesResult then ImportPackagesResult.Free; + ImportPackagesResult := l_ImportPackagesResult; + end; +end; + +procedure ImportPackagesResponse.WriteComplex(ASerializer: TObject); +var + l_ImportPackagesResult: ImportPackagesResponse_ImportPackagesResult; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackagesResponse); + l_ImportPackagesResult := int_ImportPackagesResult; + TROSerializer(ASerializer).WriteStruct('ImportPackagesResult', l_ImportPackagesResult, ImportPackagesResponse_ImportPackagesResult); + end + else begin + l_ImportPackagesResult := int_ImportPackagesResult; + TROSerializer(ASerializer).WriteStruct('ImportPackagesResult', l_ImportPackagesResult, ImportPackagesResponse_ImportPackagesResult); + end; +end; + +{ ImportPackagesResponseCollection } +constructor ImportPackagesResponseCollection.Create; +begin + inherited Create(ImportPackagesResponse); +end; + +constructor ImportPackagesResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesResponseCollection.Add: ImportPackagesResponse; +begin + result := ImportPackagesResponse(inherited Add); +end; + +function ImportPackagesResponseCollection.GetItems(aIndex: integer): ImportPackagesResponse; +begin + result := ImportPackagesResponse(inherited Items[aIndex]); +end; + +procedure ImportPackagesResponseCollection.SetItems(aIndex: integer; const Value: ImportPackagesResponse); +begin + ImportPackagesResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrders } + +class function ImportOrders.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrders.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrders.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrders.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrders; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrders) then begin + lSource := libPPL_Intf.ImportOrders(iSource); + end; +end; + +procedure ImportOrders.ReadComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + end + else begin + end; +end; + +procedure ImportOrders.WriteComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrders); + end + else begin + end; +end; + +{ ImportOrdersCollection } +constructor ImportOrdersCollection.Create; +begin + inherited Create(ImportOrders); +end; + +constructor ImportOrdersCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersCollection.Add: ImportOrders; +begin + result := ImportOrders(inherited Add); +end; + +function ImportOrdersCollection.GetItems(aIndex: integer): ImportOrders; +begin + result := ImportOrders(inherited Items[aIndex]); +end; + +procedure ImportOrdersCollection.SetItems(aIndex: integer; const Value: ImportOrders); +begin + ImportOrders(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrdersResponse_ImportOrdersResult } + +class function ImportOrdersResponse_ImportOrdersResult.GetAttributeCount: Integer; +begin + result := 2; +end; + +class function ImportOrdersResponse_ImportOrdersResult.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'SOAPName'; + 1: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrdersResponse_ImportOrdersResult.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportOrdersResult'; + 1: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrdersResponse_ImportOrdersResult.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrdersResponse_ImportOrdersResult; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrdersResponse_ImportOrdersResult) then begin + lSource := libPPL_Intf.ImportOrdersResponse_ImportOrdersResult(iSource); + end; +end; + +procedure ImportOrdersResponse_ImportOrdersResult.ReadComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + end + else begin + end; +end; + +procedure ImportOrdersResponse_ImportOrdersResult.WriteComplex(ASerializer: TObject); +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrdersResponse_ImportOrdersResult); + end + else begin + end; +end; + +{ ImportOrdersResponse_ImportOrdersResultCollection } +constructor ImportOrdersResponse_ImportOrdersResultCollection.Create; +begin + inherited Create(ImportOrdersResponse_ImportOrdersResult); +end; + +constructor ImportOrdersResponse_ImportOrdersResultCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersResponse_ImportOrdersResultCollection.Add: ImportOrdersResponse_ImportOrdersResult; +begin + result := ImportOrdersResponse_ImportOrdersResult(inherited Add); +end; + +function ImportOrdersResponse_ImportOrdersResultCollection.GetItems(aIndex: integer): ImportOrdersResponse_ImportOrdersResult; +begin + result := ImportOrdersResponse_ImportOrdersResult(inherited Items[aIndex]); +end; + +procedure ImportOrdersResponse_ImportOrdersResultCollection.SetItems(aIndex: integer; const Value: ImportOrdersResponse_ImportOrdersResult); +begin + ImportOrdersResponse_ImportOrdersResult(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrdersResponse } + +class function ImportOrdersResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrdersResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrdersResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrdersResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrdersResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrdersResponse) then begin + lSource := libPPL_Intf.ImportOrdersResponse(iSource); + if Assigned(lSource.fImportOrdersResult) then + ImportOrdersResult.Assign(lSource.fImportOrdersResult) + else + FreeAndNil(fImportOrdersResult); + end; +end; + +function ImportOrdersResponse.GetImportOrdersResult: ImportOrdersResponse_ImportOrdersResult; +begin + if (fImportOrdersResult = nil) then fImportOrdersResult := ImportOrdersResponse_ImportOrdersResult.Create(); + result := fImportOrdersResult; +end; + +procedure ImportOrdersResponse.ReadComplex(ASerializer: TObject); +var + l_ImportOrdersResult: ImportOrdersResponse_ImportOrdersResult; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_ImportOrdersResult := int_ImportOrdersResult; + TROSerializer(ASerializer).ReadStruct('ImportOrdersResult', ImportOrdersResponse_ImportOrdersResult, l_ImportOrdersResult); + if int_ImportOrdersResult <> l_ImportOrdersResult then ImportOrdersResult.Free; + ImportOrdersResult := l_ImportOrdersResult; + end + else begin + l_ImportOrdersResult := int_ImportOrdersResult; + TROSerializer(ASerializer).ReadStruct('ImportOrdersResult', ImportOrdersResponse_ImportOrdersResult, l_ImportOrdersResult); + if int_ImportOrdersResult <> l_ImportOrdersResult then ImportOrdersResult.Free; + ImportOrdersResult := l_ImportOrdersResult; + end; +end; + +procedure ImportOrdersResponse.WriteComplex(ASerializer: TObject); +var + l_ImportOrdersResult: ImportOrdersResponse_ImportOrdersResult; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrdersResponse); + l_ImportOrdersResult := int_ImportOrdersResult; + TROSerializer(ASerializer).WriteStruct('ImportOrdersResult', l_ImportOrdersResult, ImportOrdersResponse_ImportOrdersResult); + end + else begin + l_ImportOrdersResult := int_ImportOrdersResult; + TROSerializer(ASerializer).WriteStruct('ImportOrdersResult', l_ImportOrdersResult, ImportOrdersResponse_ImportOrdersResult); + end; +end; + +{ ImportOrdersResponseCollection } +constructor ImportOrdersResponseCollection.Create; +begin + inherited Create(ImportOrdersResponse); +end; + +constructor ImportOrdersResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersResponseCollection.Add: ImportOrdersResponse; +begin + result := ImportOrdersResponse(inherited Add); +end; + +function ImportOrdersResponseCollection.GetItems(aIndex: integer): ImportOrdersResponse; +begin + result := ImportOrdersResponse(inherited Items[aIndex]); +end; + +procedure ImportOrdersResponseCollection.SetItems(aIndex: integer; const Value: ImportOrdersResponse); +begin + ImportOrdersResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportWeighedPack } + +class function ImportWeighedPack.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportWeighedPack.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportWeighedPack.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportWeighedPack.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportWeighedPack; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportWeighedPack) then begin + lSource := libPPL_Intf.ImportWeighedPack(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fpack) then + pack.Assign(lSource.fpack) + else + FreeAndNil(fpack); + DepID := lSource.DepID; + end; +end; + +function ImportWeighedPack.Getpack: PackageWeighed; +begin + if (fpack = nil) then fpack := PackageWeighed.Create(); + result := fpack; +end; + +procedure ImportWeighedPack.ReadComplex(ASerializer: TObject); +var + l_DepID: UnicodeString; + l_FirCode: UnicodeString; + l_pack: PackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageWeighed, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DepID', l_DepID); +{$ENDIF} + DepID := l_DepID; + end + else begin + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DepID', l_DepID); +{$ENDIF} + DepID := l_DepID; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageWeighed, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end; +end; + +procedure ImportWeighedPack.WriteComplex(ASerializer: TObject); +var + l_DepID: UnicodeString; + l_FirCode: UnicodeString; + l_pack: PackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportWeighedPack); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageWeighed); + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DepID', l_DepID); +{$ENDIF} + end + else begin + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DepID', l_DepID); +{$ENDIF} + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageWeighed); + end; +end; + +{ ImportWeighedPackCollection } +constructor ImportWeighedPackCollection.Create; +begin + inherited Create(ImportWeighedPack); +end; + +constructor ImportWeighedPackCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportWeighedPackCollection.Add: ImportWeighedPack; +begin + result := ImportWeighedPack(inherited Add); +end; + +function ImportWeighedPackCollection.GetItems(aIndex: integer): ImportWeighedPack; +begin + result := ImportWeighedPack(inherited Items[aIndex]); +end; + +procedure ImportWeighedPackCollection.SetItems(aIndex: integer; const Value: ImportWeighedPack); +begin + ImportWeighedPack(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportWeighedPackResponse } + +class function ImportWeighedPackResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportWeighedPackResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportWeighedPackResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportWeighedPackResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportWeighedPackResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportWeighedPackResponse) then begin + lSource := libPPL_Intf.ImportWeighedPackResponse(iSource); + if Assigned(lSource.fpack) then + pack.Assign(lSource.fpack) + else + FreeAndNil(fpack); + end; +end; + +function ImportWeighedPackResponse.Getpack: PackageWeighed; +begin + if (fpack = nil) then fpack := PackageWeighed.Create(); + result := fpack; +end; + +procedure ImportWeighedPackResponse.ReadComplex(ASerializer: TObject); +var + l_pack: PackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageWeighed, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end + else begin + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageWeighed, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end; +end; + +procedure ImportWeighedPackResponse.WriteComplex(ASerializer: TObject); +var + l_pack: PackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportWeighedPackResponse); + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageWeighed); + end + else begin + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageWeighed); + end; +end; + +{ ImportWeighedPackResponseCollection } +constructor ImportWeighedPackResponseCollection.Create; +begin + inherited Create(ImportWeighedPackResponse); +end; + +constructor ImportWeighedPackResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportWeighedPackResponseCollection.Add: ImportWeighedPackResponse; +begin + result := ImportWeighedPackResponse(inherited Add); +end; + +function ImportWeighedPackResponseCollection.GetItems(aIndex: integer): ImportWeighedPackResponse; +begin + result := ImportWeighedPackResponse(inherited Items[aIndex]); +end; + +procedure ImportWeighedPackResponseCollection.SetItems(aIndex: integer; const Value: ImportWeighedPackResponse); +begin + ImportWeighedPackResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportWeighedPackages } + +class function ImportWeighedPackages.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportWeighedPackages.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportWeighedPackages.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportWeighedPackages.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportWeighedPackages; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportWeighedPackages) then begin + lSource := libPPL_Intf.ImportWeighedPackages(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + DepID := lSource.DepID; + end; +end; + +function ImportWeighedPackages.GetPackages: colPackageWeighed; +begin + if (fPackages = nil) then fPackages := colPackageWeighed.Create(); + result := fPackages; +end; + +procedure ImportWeighedPackages.ReadComplex(ASerializer: TObject); +var + l_DepID: UnicodeString; + l_FirCode: UnicodeString; + l_Packages: colPackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageWeighed, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DepID', l_DepID); +{$ENDIF} + DepID := l_DepID; + end + else begin + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DepID', l_DepID); +{$ENDIF} + DepID := l_DepID; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageWeighed, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportWeighedPackages.WriteComplex(ASerializer: TObject); +var + l_DepID: UnicodeString; + l_FirCode: UnicodeString; + l_Packages: colPackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportWeighedPackages); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageWeighed); + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DepID', l_DepID); +{$ENDIF} + end + else begin + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DepID', l_DepID); +{$ENDIF} + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageWeighed); + end; +end; + +{ ImportWeighedPackagesCollection } +constructor ImportWeighedPackagesCollection.Create; +begin + inherited Create(ImportWeighedPackages); +end; + +constructor ImportWeighedPackagesCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportWeighedPackagesCollection.Add: ImportWeighedPackages; +begin + result := ImportWeighedPackages(inherited Add); +end; + +function ImportWeighedPackagesCollection.GetItems(aIndex: integer): ImportWeighedPackages; +begin + result := ImportWeighedPackages(inherited Items[aIndex]); +end; + +procedure ImportWeighedPackagesCollection.SetItems(aIndex: integer; const Value: ImportWeighedPackages); +begin + ImportWeighedPackages(inherited Items[aIndex]).Assign(Value); +end; + +{ colPackageWeighed } + +class function colPackageWeighed.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colPackageWeighed.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colPackageWeighed.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colPackageWeighed.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colPackageWeighed; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colPackageWeighed) then begin + lSource := libPPL_Intf.colPackageWeighed(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colPackageWeighed.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colPackageWeighed.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colPackageWeighed.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colPackageWeighed); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colPackageWeighedCollection } +constructor colPackageWeighedCollection.Create; +begin + inherited Create(colPackageWeighed); +end; + +constructor colPackageWeighedCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colPackageWeighedCollection.Add: colPackageWeighed; +begin + result := colPackageWeighed(inherited Add); +end; + +function colPackageWeighedCollection.GetItems(aIndex: integer): colPackageWeighed; +begin + result := colPackageWeighed(inherited Items[aIndex]); +end; + +procedure colPackageWeighedCollection.SetItems(aIndex: integer; const Value: colPackageWeighed); +begin + colPackageWeighed(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportWeighedPackagesResponse } + +class function ImportWeighedPackagesResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportWeighedPackagesResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportWeighedPackagesResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportWeighedPackagesResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportWeighedPackagesResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportWeighedPackagesResponse) then begin + lSource := libPPL_Intf.ImportWeighedPackagesResponse(iSource); + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + end; +end; + +function ImportWeighedPackagesResponse.GetPackages: colPackageWeighed; +begin + if (fPackages = nil) then fPackages := colPackageWeighed.Create(); + result := fPackages; +end; + +procedure ImportWeighedPackagesResponse.ReadComplex(ASerializer: TObject); +var + l_Packages: colPackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageWeighed, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageWeighed, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportWeighedPackagesResponse.WriteComplex(ASerializer: TObject); +var + l_Packages: colPackageWeighed; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportWeighedPackagesResponse); + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageWeighed); + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageWeighed); + end; +end; + +{ ImportWeighedPackagesResponseCollection } +constructor ImportWeighedPackagesResponseCollection.Create; +begin + inherited Create(ImportWeighedPackagesResponse); +end; + +constructor ImportWeighedPackagesResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportWeighedPackagesResponseCollection.Add: ImportWeighedPackagesResponse; +begin + result := ImportWeighedPackagesResponse(inherited Add); +end; + +function ImportWeighedPackagesResponseCollection.GetItems(aIndex: integer): ImportWeighedPackagesResponse; +begin + result := ImportWeighedPackagesResponse(inherited Items[aIndex]); +end; + +procedure ImportWeighedPackagesResponseCollection.SetItems(aIndex: integer; const Value: ImportWeighedPackagesResponse); +begin + ImportWeighedPackagesResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackagesHoffmann } + +class function ImportPackagesHoffmann.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackagesHoffmann.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackagesHoffmann.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackagesHoffmann.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackagesHoffmann; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackagesHoffmann) then begin + lSource := libPPL_Intf.ImportPackagesHoffmann(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + DepID := lSource.DepID; + end; +end; + +function ImportPackagesHoffmann.GetPackages: colPackageHoffmann; +begin + if (fPackages = nil) then fPackages := colPackageHoffmann.Create(); + result := fPackages; +end; + +procedure ImportPackagesHoffmann.ReadComplex(ASerializer: TObject); +var + l_DepID: UnicodeString; + l_FirCode: UnicodeString; + l_Packages: colPackageHoffmann; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageHoffmann, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DepID', l_DepID); +{$ENDIF} + DepID := l_DepID; + end + else begin + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('DepID', l_DepID); +{$ENDIF} + DepID := l_DepID; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageHoffmann, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportPackagesHoffmann.WriteComplex(ASerializer: TObject); +var + l_DepID: UnicodeString; + l_FirCode: UnicodeString; + l_Packages: colPackageHoffmann; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackagesHoffmann); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageHoffmann); + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DepID', l_DepID); +{$ENDIF} + end + else begin + l_DepID := DepID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('DepID', l_DepID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('DepID', l_DepID); +{$ENDIF} + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageHoffmann); + end; +end; + +{ ImportPackagesHoffmannCollection } +constructor ImportPackagesHoffmannCollection.Create; +begin + inherited Create(ImportPackagesHoffmann); +end; + +constructor ImportPackagesHoffmannCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesHoffmannCollection.Add: ImportPackagesHoffmann; +begin + result := ImportPackagesHoffmann(inherited Add); +end; + +function ImportPackagesHoffmannCollection.GetItems(aIndex: integer): ImportPackagesHoffmann; +begin + result := ImportPackagesHoffmann(inherited Items[aIndex]); +end; + +procedure ImportPackagesHoffmannCollection.SetItems(aIndex: integer; const Value: ImportPackagesHoffmann); +begin + ImportPackagesHoffmann(inherited Items[aIndex]).Assign(Value); +end; + +{ colPackageHoffmann } + +class function colPackageHoffmann.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colPackageHoffmann.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colPackageHoffmann.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colPackageHoffmann.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colPackageHoffmann; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colPackageHoffmann) then begin + lSource := libPPL_Intf.colPackageHoffmann(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colPackageHoffmann.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colPackageHoffmann.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colPackageHoffmann.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colPackageHoffmann); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colPackageHoffmannCollection } +constructor colPackageHoffmannCollection.Create; +begin + inherited Create(colPackageHoffmann); +end; + +constructor colPackageHoffmannCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colPackageHoffmannCollection.Add: colPackageHoffmann; +begin + result := colPackageHoffmann(inherited Add); +end; + +function colPackageHoffmannCollection.GetItems(aIndex: integer): colPackageHoffmann; +begin + result := colPackageHoffmann(inherited Items[aIndex]); +end; + +procedure colPackageHoffmannCollection.SetItems(aIndex: integer; const Value: colPackageHoffmann); +begin + colPackageHoffmann(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportPackagesHoffmannResponse } + +class function ImportPackagesHoffmannResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportPackagesHoffmannResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportPackagesHoffmannResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportPackagesHoffmannResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportPackagesHoffmannResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportPackagesHoffmannResponse) then begin + lSource := libPPL_Intf.ImportPackagesHoffmannResponse(iSource); + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + end; +end; + +function ImportPackagesHoffmannResponse.GetPackages: colPackageHoffmann; +begin + if (fPackages = nil) then fPackages := colPackageHoffmann.Create(); + result := fPackages; +end; + +procedure ImportPackagesHoffmannResponse.ReadComplex(ASerializer: TObject); +var + l_Packages: colPackageHoffmann; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageHoffmann, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackageHoffmann, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportPackagesHoffmannResponse.WriteComplex(ASerializer: TObject); +var + l_Packages: colPackageHoffmann; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportPackagesHoffmannResponse); + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageHoffmann); + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackageHoffmann); + end; +end; + +{ ImportPackagesHoffmannResponseCollection } +constructor ImportPackagesHoffmannResponseCollection.Create; +begin + inherited Create(ImportPackagesHoffmannResponse); +end; + +constructor ImportPackagesHoffmannResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportPackagesHoffmannResponseCollection.Add: ImportPackagesHoffmannResponse; +begin + result := ImportPackagesHoffmannResponse(inherited Add); +end; + +function ImportPackagesHoffmannResponseCollection.GetItems(aIndex: integer): ImportPackagesHoffmannResponse; +begin + result := ImportPackagesHoffmannResponse(inherited Items[aIndex]); +end; + +procedure ImportPackagesHoffmannResponseCollection.SetItems(aIndex: integer; const Value: ImportPackagesHoffmannResponse); +begin + ImportPackagesHoffmannResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportESYCOPack } + +class function ImportESYCOPack.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportESYCOPack.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportESYCOPack.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportESYCOPack.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportESYCOPack; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportESYCOPack) then begin + lSource := libPPL_Intf.ImportESYCOPack(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fpack) then + pack.Assign(lSource.fpack) + else + FreeAndNil(fpack); + end; +end; + +function ImportESYCOPack.Getpack: PackageEsyco; +begin + if (fpack = nil) then fpack := PackageEsyco.Create(); + result := fpack; +end; + +procedure ImportESYCOPack.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_pack: PackageEsyco; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageEsyco, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageEsyco, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end; +end; + +procedure ImportESYCOPack.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_pack: PackageEsyco; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportESYCOPack); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageEsyco); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageEsyco); + end; +end; + +{ ImportESYCOPackCollection } +constructor ImportESYCOPackCollection.Create; +begin + inherited Create(ImportESYCOPack); +end; + +constructor ImportESYCOPackCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportESYCOPackCollection.Add: ImportESYCOPack; +begin + result := ImportESYCOPack(inherited Add); +end; + +function ImportESYCOPackCollection.GetItems(aIndex: integer): ImportESYCOPack; +begin + result := ImportESYCOPack(inherited Items[aIndex]); +end; + +procedure ImportESYCOPackCollection.SetItems(aIndex: integer; const Value: ImportESYCOPack); +begin + ImportESYCOPack(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportESYCOPackResponse } + +class function ImportESYCOPackResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportESYCOPackResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportESYCOPackResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportESYCOPackResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportESYCOPackResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportESYCOPackResponse) then begin + lSource := libPPL_Intf.ImportESYCOPackResponse(iSource); + if Assigned(lSource.fpack) then + pack.Assign(lSource.fpack) + else + FreeAndNil(fpack); + end; +end; + +function ImportESYCOPackResponse.Getpack: PackageEsyco; +begin + if (fpack = nil) then fpack := PackageEsyco.Create(); + result := fpack; +end; + +procedure ImportESYCOPackResponse.ReadComplex(ASerializer: TObject); +var + l_pack: PackageEsyco; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageEsyco, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end + else begin + l_pack := int_pack; + TROSerializer(ASerializer).ReadStruct('pack', PackageEsyco, l_pack); + if int_pack <> l_pack then pack.Free; + pack := l_pack; + end; +end; + +procedure ImportESYCOPackResponse.WriteComplex(ASerializer: TObject); +var + l_pack: PackageEsyco; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportESYCOPackResponse); + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageEsyco); + end + else begin + l_pack := int_pack; + TROSerializer(ASerializer).WriteStruct('pack', l_pack, PackageEsyco); + end; +end; + +{ ImportESYCOPackResponseCollection } +constructor ImportESYCOPackResponseCollection.Create; +begin + inherited Create(ImportESYCOPackResponse); +end; + +constructor ImportESYCOPackResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportESYCOPackResponseCollection.Add: ImportESYCOPackResponse; +begin + result := ImportESYCOPackResponse(inherited Add); +end; + +function ImportESYCOPackResponseCollection.GetItems(aIndex: integer): ImportESYCOPackResponse; +begin + result := ImportESYCOPackResponse(inherited Items[aIndex]); +end; + +procedure ImportESYCOPackResponseCollection.SetItems(aIndex: integer; const Value: ImportESYCOPackResponse); +begin + ImportESYCOPackResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportESYCOPackages } + +class function ImportESYCOPackages.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportESYCOPackages.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportESYCOPackages.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportESYCOPackages.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportESYCOPackages; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportESYCOPackages) then begin + lSource := libPPL_Intf.ImportESYCOPackages(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + end; +end; + +function ImportESYCOPackages.GetPackages: colPackage; +begin + if (fPackages = nil) then fPackages := colPackage.Create(); + result := fPackages; +end; + +procedure ImportESYCOPackages.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportESYCOPackages.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportESYCOPackages); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end; +end; + +{ ImportESYCOPackagesCollection } +constructor ImportESYCOPackagesCollection.Create; +begin + inherited Create(ImportESYCOPackages); +end; + +constructor ImportESYCOPackagesCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportESYCOPackagesCollection.Add: ImportESYCOPackages; +begin + result := ImportESYCOPackages(inherited Add); +end; + +function ImportESYCOPackagesCollection.GetItems(aIndex: integer): ImportESYCOPackages; +begin + result := ImportESYCOPackages(inherited Items[aIndex]); +end; + +procedure ImportESYCOPackagesCollection.SetItems(aIndex: integer; const Value: ImportESYCOPackages); +begin + ImportESYCOPackages(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportESYCOPackagesResponse } + +class function ImportESYCOPackagesResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportESYCOPackagesResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportESYCOPackagesResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportESYCOPackagesResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportESYCOPackagesResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportESYCOPackagesResponse) then begin + lSource := libPPL_Intf.ImportESYCOPackagesResponse(iSource); + if Assigned(lSource.fPackages) then + Packages.Assign(lSource.fPackages) + else + FreeAndNil(fPackages); + end; +end; + +function ImportESYCOPackagesResponse.GetPackages: colPackage; +begin + if (fPackages = nil) then fPackages := colPackage.Create(); + result := fPackages; +end; + +procedure ImportESYCOPackagesResponse.ReadComplex(ASerializer: TObject); +var + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).ReadStruct('Packages', colPackage, l_Packages); + if int_Packages <> l_Packages then Packages.Free; + Packages := l_Packages; + end; +end; + +procedure ImportESYCOPackagesResponse.WriteComplex(ASerializer: TObject); +var + l_Packages: colPackage; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportESYCOPackagesResponse); + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end + else begin + l_Packages := int_Packages; + TROSerializer(ASerializer).WriteStruct('Packages', l_Packages, colPackage); + end; +end; + +{ ImportESYCOPackagesResponseCollection } +constructor ImportESYCOPackagesResponseCollection.Create; +begin + inherited Create(ImportESYCOPackagesResponse); +end; + +constructor ImportESYCOPackagesResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportESYCOPackagesResponseCollection.Add: ImportESYCOPackagesResponse; +begin + result := ImportESYCOPackagesResponse(inherited Add); +end; + +function ImportESYCOPackagesResponseCollection.GetItems(aIndex: integer): ImportESYCOPackagesResponse; +begin + result := ImportESYCOPackagesResponse(inherited Items[aIndex]); +end; + +procedure ImportESYCOPackagesResponseCollection.SetItems(aIndex: integer; const Value: ImportESYCOPackagesResponse); +begin + ImportESYCOPackagesResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportStatusDHL } + +class function ImportStatusDHL.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportStatusDHL.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportStatusDHL.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportStatusDHL.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportStatusDHL; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportStatusDHL) then begin + lSource := libPPL_Intf.ImportStatusDHL(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fStat) then + Stat.Assign(lSource.fStat) + else + FreeAndNil(fStat); + end; +end; + +function ImportStatusDHL.GetStat: StatusDHL; +begin + if (fStat = nil) then fStat := StatusDHL.Create(); + result := fStat; +end; + +procedure ImportStatusDHL.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Stat: StatusDHL; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Stat := int_Stat; + TROSerializer(ASerializer).ReadStruct('Stat', StatusDHL, l_Stat); + if int_Stat <> l_Stat then Stat.Free; + Stat := l_Stat; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Stat := int_Stat; + TROSerializer(ASerializer).ReadStruct('Stat', StatusDHL, l_Stat); + if int_Stat <> l_Stat then Stat.Free; + Stat := l_Stat; + end; +end; + +procedure ImportStatusDHL.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Stat: StatusDHL; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportStatusDHL); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Stat := int_Stat; + TROSerializer(ASerializer).WriteStruct('Stat', l_Stat, StatusDHL); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Stat := int_Stat; + TROSerializer(ASerializer).WriteStruct('Stat', l_Stat, StatusDHL); + end; +end; + +{ ImportStatusDHLCollection } +constructor ImportStatusDHLCollection.Create; +begin + inherited Create(ImportStatusDHL); +end; + +constructor ImportStatusDHLCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportStatusDHLCollection.Add: ImportStatusDHL; +begin + result := ImportStatusDHL(inherited Add); +end; + +function ImportStatusDHLCollection.GetItems(aIndex: integer): ImportStatusDHL; +begin + result := ImportStatusDHL(inherited Items[aIndex]); +end; + +procedure ImportStatusDHLCollection.SetItems(aIndex: integer; const Value: ImportStatusDHL); +begin + ImportStatusDHL(inherited Items[aIndex]).Assign(Value); +end; + +{ StatusDHL } + +class function StatusDHL.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function StatusDHL.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function StatusDHL.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure StatusDHL.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.StatusDHL; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.StatusDHL) then begin + lSource := libPPL_Intf.StatusDHL(iSource); + PackageIDPPL := lSource.PackageIDPPL; + PackageIDExp := lSource.PackageIDExp; + StatusID := lSource.StatusID; + Created := lSource.Created; + Note := lSource.Note; + ZpID := lSource.ZpID; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure StatusDHL.ReadComplex(ASerializer: TObject); +var + l_Created: DateTime; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Note: UnicodeString; + l_PackageIDExp: UnicodeString; + l_PackageIDPPL: UnicodeString; + l_StatusID: UnicodeString; + l_ZpID: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_PackageIDPPL := PackageIDPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDPPL', l_PackageIDPPL); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDPPL', l_PackageIDPPL); +{$ENDIF} + PackageIDPPL := l_PackageIDPPL; + l_PackageIDExp := PackageIDExp; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDExp', l_PackageIDExp); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDExp', l_PackageIDExp); +{$ENDIF} + PackageIDExp := l_PackageIDExp; + l_StatusID := StatusID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('StatusID', l_StatusID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('StatusID', l_StatusID); +{$ENDIF} + StatusID := l_StatusID; + l_Created := Created; + TROSerializer(ASerializer).ReadDateTime('Created', l_Created); + Created := l_Created; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_ZpID := ZpID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ZpID', l_ZpID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ZpID', l_ZpID); +{$ENDIF} + ZpID := l_ZpID; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_Created := Created; + TROSerializer(ASerializer).ReadDateTime('Created', l_Created); + Created := l_Created; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_PackageIDExp := PackageIDExp; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDExp', l_PackageIDExp); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDExp', l_PackageIDExp); +{$ENDIF} + PackageIDExp := l_PackageIDExp; + l_PackageIDPPL := PackageIDPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('PackageIDPPL', l_PackageIDPPL); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('PackageIDPPL', l_PackageIDPPL); +{$ENDIF} + PackageIDPPL := l_PackageIDPPL; + l_StatusID := StatusID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('StatusID', l_StatusID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('StatusID', l_StatusID); +{$ENDIF} + StatusID := l_StatusID; + l_ZpID := ZpID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ZpID', l_ZpID); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ZpID', l_ZpID); +{$ENDIF} + ZpID := l_ZpID; + end; +end; + +procedure StatusDHL.WriteComplex(ASerializer: TObject); +var + l_Created: DateTime; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Note: UnicodeString; + l_PackageIDExp: UnicodeString; + l_PackageIDPPL: UnicodeString; + l_StatusID: UnicodeString; + l_ZpID: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(StatusDHL); + l_PackageIDPPL := PackageIDPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDPPL', l_PackageIDPPL); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDPPL', l_PackageIDPPL); +{$ENDIF} + l_PackageIDExp := PackageIDExp; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDExp', l_PackageIDExp); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDExp', l_PackageIDExp); +{$ENDIF} + l_StatusID := StatusID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('StatusID', l_StatusID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('StatusID', l_StatusID); +{$ENDIF} + l_Created := Created; + TROSerializer(ASerializer).WriteDateTime('Created', l_Created); + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_ZpID := ZpID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ZpID', l_ZpID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ZpID', l_ZpID); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_Created := Created; + TROSerializer(ASerializer).WriteDateTime('Created', l_Created); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_PackageIDExp := PackageIDExp; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDExp', l_PackageIDExp); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDExp', l_PackageIDExp); +{$ENDIF} + l_PackageIDPPL := PackageIDPPL; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('PackageIDPPL', l_PackageIDPPL); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('PackageIDPPL', l_PackageIDPPL); +{$ENDIF} + l_StatusID := StatusID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('StatusID', l_StatusID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('StatusID', l_StatusID); +{$ENDIF} + l_ZpID := ZpID; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ZpID', l_ZpID); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ZpID', l_ZpID); +{$ENDIF} + end; +end; + +{ StatusDHLCollection } +constructor StatusDHLCollection.Create; +begin + inherited Create(StatusDHL); +end; + +constructor StatusDHLCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function StatusDHLCollection.Add: StatusDHL; +begin + result := StatusDHL(inherited Add); +end; + +function StatusDHLCollection.GetItems(aIndex: integer): StatusDHL; +begin + result := StatusDHL(inherited Items[aIndex]); +end; + +procedure StatusDHLCollection.SetItems(aIndex: integer; const Value: StatusDHL); +begin + StatusDHL(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportStatusDHLResponse } + +class function ImportStatusDHLResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportStatusDHLResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportStatusDHLResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportStatusDHLResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportStatusDHLResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportStatusDHLResponse) then begin + lSource := libPPL_Intf.ImportStatusDHLResponse(iSource); + if Assigned(lSource.fStat) then + Stat.Assign(lSource.fStat) + else + FreeAndNil(fStat); + end; +end; + +function ImportStatusDHLResponse.GetStat: StatusDHL; +begin + if (fStat = nil) then fStat := StatusDHL.Create(); + result := fStat; +end; + +procedure ImportStatusDHLResponse.ReadComplex(ASerializer: TObject); +var + l_Stat: StatusDHL; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Stat := int_Stat; + TROSerializer(ASerializer).ReadStruct('Stat', StatusDHL, l_Stat); + if int_Stat <> l_Stat then Stat.Free; + Stat := l_Stat; + end + else begin + l_Stat := int_Stat; + TROSerializer(ASerializer).ReadStruct('Stat', StatusDHL, l_Stat); + if int_Stat <> l_Stat then Stat.Free; + Stat := l_Stat; + end; +end; + +procedure ImportStatusDHLResponse.WriteComplex(ASerializer: TObject); +var + l_Stat: StatusDHL; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportStatusDHLResponse); + l_Stat := int_Stat; + TROSerializer(ASerializer).WriteStruct('Stat', l_Stat, StatusDHL); + end + else begin + l_Stat := int_Stat; + TROSerializer(ASerializer).WriteStruct('Stat', l_Stat, StatusDHL); + end; +end; + +{ ImportStatusDHLResponseCollection } +constructor ImportStatusDHLResponseCollection.Create; +begin + inherited Create(ImportStatusDHLResponse); +end; + +constructor ImportStatusDHLResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportStatusDHLResponseCollection.Add: ImportStatusDHLResponse; +begin + result := ImportStatusDHLResponse(inherited Add); +end; + +function ImportStatusDHLResponseCollection.GetItems(aIndex: integer): ImportStatusDHLResponse; +begin + result := ImportStatusDHLResponse(inherited Items[aIndex]); +end; + +procedure ImportStatusDHLResponseCollection.SetItems(aIndex: integer; const Value: ImportStatusDHLResponse); +begin + ImportStatusDHLResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportStatusesDHL } + +class function ImportStatusesDHL.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportStatusesDHL.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportStatusesDHL.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportStatusesDHL.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportStatusesDHL; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportStatusesDHL) then begin + lSource := libPPL_Intf.ImportStatusesDHL(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fStatuses) then + Statuses.Assign(lSource.fStatuses) + else + FreeAndNil(fStatuses); + end; +end; + +function ImportStatusesDHL.GetStatuses: colStatus; +begin + if (fStatuses = nil) then fStatuses := colStatus.Create(); + result := fStatuses; +end; + +procedure ImportStatusesDHL.ReadComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Statuses: colStatus; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Statuses := int_Statuses; + TROSerializer(ASerializer).ReadStruct('Statuses', colStatus, l_Statuses); + if int_Statuses <> l_Statuses then Statuses.Free; + Statuses := l_Statuses; + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Statuses := int_Statuses; + TROSerializer(ASerializer).ReadStruct('Statuses', colStatus, l_Statuses); + if int_Statuses <> l_Statuses then Statuses.Free; + Statuses := l_Statuses; + end; +end; + +procedure ImportStatusesDHL.WriteComplex(ASerializer: TObject); +var + l_FirCode: UnicodeString; + l_Statuses: colStatus; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportStatusesDHL); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Statuses := int_Statuses; + TROSerializer(ASerializer).WriteStruct('Statuses', l_Statuses, colStatus); + end + else begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Statuses := int_Statuses; + TROSerializer(ASerializer).WriteStruct('Statuses', l_Statuses, colStatus); + end; +end; + +{ ImportStatusesDHLCollection } +constructor ImportStatusesDHLCollection.Create; +begin + inherited Create(ImportStatusesDHL); +end; + +constructor ImportStatusesDHLCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportStatusesDHLCollection.Add: ImportStatusesDHL; +begin + result := ImportStatusesDHL(inherited Add); +end; + +function ImportStatusesDHLCollection.GetItems(aIndex: integer): ImportStatusesDHL; +begin + result := ImportStatusesDHL(inherited Items[aIndex]); +end; + +procedure ImportStatusesDHLCollection.SetItems(aIndex: integer; const Value: ImportStatusesDHL); +begin + ImportStatusesDHL(inherited Items[aIndex]).Assign(Value); +end; + +{ colStatus } + +class function colStatus.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colStatus.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colStatus.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colStatus.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colStatus; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colStatus) then begin + lSource := libPPL_Intf.colStatus(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colStatus.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colStatus.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colStatus.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colStatus); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colStatusCollection } +constructor colStatusCollection.Create; +begin + inherited Create(colStatus); +end; + +constructor colStatusCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colStatusCollection.Add: colStatus; +begin + result := colStatus(inherited Add); +end; + +function colStatusCollection.GetItems(aIndex: integer): colStatus; +begin + result := colStatus(inherited Items[aIndex]); +end; + +procedure colStatusCollection.SetItems(aIndex: integer; const Value: colStatus); +begin + colStatus(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportStatusesDHLResponse } + +class function ImportStatusesDHLResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportStatusesDHLResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportStatusesDHLResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportStatusesDHLResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportStatusesDHLResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportStatusesDHLResponse) then begin + lSource := libPPL_Intf.ImportStatusesDHLResponse(iSource); + if Assigned(lSource.fStatuses) then + Statuses.Assign(lSource.fStatuses) + else + FreeAndNil(fStatuses); + end; +end; + +function ImportStatusesDHLResponse.GetStatuses: colStatus; +begin + if (fStatuses = nil) then fStatuses := colStatus.Create(); + result := fStatuses; +end; + +procedure ImportStatusesDHLResponse.ReadComplex(ASerializer: TObject); +var + l_Statuses: colStatus; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Statuses := int_Statuses; + TROSerializer(ASerializer).ReadStruct('Statuses', colStatus, l_Statuses); + if int_Statuses <> l_Statuses then Statuses.Free; + Statuses := l_Statuses; + end + else begin + l_Statuses := int_Statuses; + TROSerializer(ASerializer).ReadStruct('Statuses', colStatus, l_Statuses); + if int_Statuses <> l_Statuses then Statuses.Free; + Statuses := l_Statuses; + end; +end; + +procedure ImportStatusesDHLResponse.WriteComplex(ASerializer: TObject); +var + l_Statuses: colStatus; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportStatusesDHLResponse); + l_Statuses := int_Statuses; + TROSerializer(ASerializer).WriteStruct('Statuses', l_Statuses, colStatus); + end + else begin + l_Statuses := int_Statuses; + TROSerializer(ASerializer).WriteStruct('Statuses', l_Statuses, colStatus); + end; +end; + +{ ImportStatusesDHLResponseCollection } +constructor ImportStatusesDHLResponseCollection.Create; +begin + inherited Create(ImportStatusesDHLResponse); +end; + +constructor ImportStatusesDHLResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportStatusesDHLResponseCollection.Add: ImportStatusesDHLResponse; +begin + result := ImportStatusesDHLResponse(inherited Add); +end; + +function ImportStatusesDHLResponseCollection.GetItems(aIndex: integer): ImportStatusesDHLResponse; +begin + result := ImportStatusesDHLResponse(inherited Items[aIndex]); +end; + +procedure ImportStatusesDHLResponseCollection.SetItems(aIndex: integer; const Value: ImportStatusesDHLResponse); +begin + ImportStatusesDHLResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrderCart } + +class function ImportOrderCart.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrderCart.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrderCart.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrderCart.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrderCart; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrderCart) then begin + lSource := libPPL_Intf.ImportOrderCart(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.ffield_order) then + field_order.Assign(lSource.ffield_order) + else + FreeAndNil(ffield_order); + Accept := lSource.Accept; + end; +end; + +function ImportOrderCart.Getfield_order: OrderCart; +begin + if (ffield_order = nil) then ffield_order := OrderCart.Create(); + result := ffield_order; +end; + +procedure ImportOrderCart.ReadComplex(ASerializer: TObject); +var + l_Accept: boolean; + l_field_order: OrderCart; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', OrderCart, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + l_Accept := Accept; + TROSerializer(ASerializer).ReadEnumerated('Accept',TypeInfo(boolean), l_Accept); + Accept := l_Accept; + end + else begin + l_Accept := Accept; + TROSerializer(ASerializer).ReadEnumerated('Accept',TypeInfo(boolean), l_Accept); + Accept := l_Accept; + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', OrderCart, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + end; +end; + +procedure ImportOrderCart.WriteComplex(ASerializer: TObject); +var + l_Accept: boolean; + l_field_order: OrderCart; + l_FirCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrderCart); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, OrderCart); + l_Accept := Accept; + TROSerializer(ASerializer).WriteEnumerated('Accept',TypeInfo(boolean), l_Accept); + end + else begin + l_Accept := Accept; + TROSerializer(ASerializer).WriteEnumerated('Accept',TypeInfo(boolean), l_Accept); + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, OrderCart); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + end; +end; + +{ ImportOrderCartCollection } +constructor ImportOrderCartCollection.Create; +begin + inherited Create(ImportOrderCart); +end; + +constructor ImportOrderCartCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrderCartCollection.Add: ImportOrderCart; +begin + result := ImportOrderCart(inherited Add); +end; + +function ImportOrderCartCollection.GetItems(aIndex: integer): ImportOrderCart; +begin + result := ImportOrderCart(inherited Items[aIndex]); +end; + +procedure ImportOrderCartCollection.SetItems(aIndex: integer; const Value: ImportOrderCart); +begin + ImportOrderCart(inherited Items[aIndex]).Assign(Value); +end; + +{ OrderCart } + +class function OrderCart.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function OrderCart.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function OrderCart.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure OrderCart.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.OrderCart; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.OrderCart) then begin + lSource := libPPL_Intf.OrderCart(iSource); + CountPack := lSource.CountPack; + SendName := lSource.SendName; + SendStreet := lSource.SendStreet; + SendCity := lSource.SendCity; + SendZipCode := lSource.SendZipCode; + SendDateFrom := lSource.SendDateFrom; + SendDateTo := lSource.SendDateTo; + Note := lSource.Note; + Email := lSource.Email; + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +procedure OrderCart.ReadComplex(ASerializer: TObject); +var + l_CountPack: Integer; + l_Email: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Note: UnicodeString; + l_SendCity: UnicodeString; + l_SendDateFrom: DateTime; + l_SendDateTo: DateTime; + l_SendName: UnicodeString; + l_SendStreet: UnicodeString; + l_SendZipCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_CountPack := CountPack; + TROSerializer(ASerializer).ReadInteger('CountPack', otSLong, l_CountPack); + CountPack := l_CountPack; + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendName', l_SendName); +{$ENDIF} + SendName := l_SendName; + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendStreet', l_SendStreet); +{$ENDIF} + SendStreet := l_SendStreet; + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCity', l_SendCity); +{$ENDIF} + SendCity := l_SendCity; + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + SendZipCode := l_SendZipCode; + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).ReadDateTime('SendDateFrom', l_SendDateFrom); + SendDateFrom := l_SendDateFrom; + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).ReadDateTime('SendDateTo', l_SendDateTo); + SendDateTo := l_SendDateTo; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Email', l_Email); +{$ENDIF} + Email := l_Email; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_CountPack := CountPack; + TROSerializer(ASerializer).ReadInteger('CountPack', otSLong, l_CountPack); + CountPack := l_CountPack; + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Email', l_Email); +{$ENDIF} + Email := l_Email; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('Note', l_Note); +{$ENDIF} + Note := l_Note; + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendCity', l_SendCity); +{$ENDIF} + SendCity := l_SendCity; + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).ReadDateTime('SendDateFrom', l_SendDateFrom); + SendDateFrom := l_SendDateFrom; + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).ReadDateTime('SendDateTo', l_SendDateTo); + SendDateTo := l_SendDateTo; + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendName', l_SendName); +{$ENDIF} + SendName := l_SendName; + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendStreet', l_SendStreet); +{$ENDIF} + SendStreet := l_SendStreet; + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + SendZipCode := l_SendZipCode; + end; +end; + +procedure OrderCart.WriteComplex(ASerializer: TObject); +var + l_CountPack: Integer; + l_Email: UnicodeString; + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Note: UnicodeString; + l_SendCity: UnicodeString; + l_SendDateFrom: DateTime; + l_SendDateTo: DateTime; + l_SendName: UnicodeString; + l_SendStreet: UnicodeString; + l_SendZipCode: UnicodeString; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(OrderCart); + l_CountPack := CountPack; + TROSerializer(ASerializer).WriteInteger('CountPack', otSLong, l_CountPack); + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendName', l_SendName); +{$ENDIF} + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendStreet', l_SendStreet); +{$ENDIF} + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCity', l_SendCity); +{$ENDIF} + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).WriteDateTime('SendDateFrom', l_SendDateFrom); + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).WriteDateTime('SendDateTo', l_SendDateTo); + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Email', l_Email); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_CountPack := CountPack; + TROSerializer(ASerializer).WriteInteger('CountPack', otSLong, l_CountPack); + l_Email := Email; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Email', l_Email); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Email', l_Email); +{$ENDIF} + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Note := Note; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('Note', l_Note); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('Note', l_Note); +{$ENDIF} + l_SendCity := SendCity; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendCity', l_SendCity); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendCity', l_SendCity); +{$ENDIF} + l_SendDateFrom := SendDateFrom; + TROSerializer(ASerializer).WriteDateTime('SendDateFrom', l_SendDateFrom); + l_SendDateTo := SendDateTo; + TROSerializer(ASerializer).WriteDateTime('SendDateTo', l_SendDateTo); + l_SendName := SendName; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendName', l_SendName); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendName', l_SendName); +{$ENDIF} + l_SendStreet := SendStreet; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendStreet', l_SendStreet); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendStreet', l_SendStreet); +{$ENDIF} + l_SendZipCode := SendZipCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('SendZipCode', l_SendZipCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('SendZipCode', l_SendZipCode); +{$ENDIF} + end; +end; + +{ OrderCartCollection } +constructor OrderCartCollection.Create; +begin + inherited Create(OrderCart); +end; + +constructor OrderCartCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function OrderCartCollection.Add: OrderCart; +begin + result := OrderCart(inherited Add); +end; + +function OrderCartCollection.GetItems(aIndex: integer): OrderCart; +begin + result := OrderCart(inherited Items[aIndex]); +end; + +procedure OrderCartCollection.SetItems(aIndex: integer; const Value: OrderCart); +begin + OrderCart(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrderCartResponse } + +class function ImportOrderCartResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrderCartResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrderCartResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrderCartResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrderCartResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrderCartResponse) then begin + lSource := libPPL_Intf.ImportOrderCartResponse(iSource); + if Assigned(lSource.ffield_order) then + field_order.Assign(lSource.ffield_order) + else + FreeAndNil(ffield_order); + end; +end; + +function ImportOrderCartResponse.Getfield_order: OrderCart; +begin + if (ffield_order = nil) then ffield_order := OrderCart.Create(); + result := ffield_order; +end; + +procedure ImportOrderCartResponse.ReadComplex(ASerializer: TObject); +var + l_field_order: OrderCart; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', OrderCart, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + end + else begin + l_field_order := int_field_order; + TROSerializer(ASerializer).ReadStruct('field_order', OrderCart, l_field_order); + if int_field_order <> l_field_order then field_order.Free; + field_order := l_field_order; + end; +end; + +procedure ImportOrderCartResponse.WriteComplex(ASerializer: TObject); +var + l_field_order: OrderCart; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrderCartResponse); + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, OrderCart); + end + else begin + l_field_order := int_field_order; + TROSerializer(ASerializer).WriteStruct('field_order', l_field_order, OrderCart); + end; +end; + +{ ImportOrderCartResponseCollection } +constructor ImportOrderCartResponseCollection.Create; +begin + inherited Create(ImportOrderCartResponse); +end; + +constructor ImportOrderCartResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrderCartResponseCollection.Add: ImportOrderCartResponse; +begin + result := ImportOrderCartResponse(inherited Add); +end; + +function ImportOrderCartResponseCollection.GetItems(aIndex: integer): ImportOrderCartResponse; +begin + result := ImportOrderCartResponse(inherited Items[aIndex]); +end; + +procedure ImportOrderCartResponseCollection.SetItems(aIndex: integer; const Value: ImportOrderCartResponse); +begin + ImportOrderCartResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrdersCart } + +class function ImportOrdersCart.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrdersCart.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrdersCart.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrdersCart.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrdersCart; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrdersCart) then begin + lSource := libPPL_Intf.ImportOrdersCart(iSource); + FirCode := lSource.FirCode; + if Assigned(lSource.fOrders) then + Orders.Assign(lSource.fOrders) + else + FreeAndNil(fOrders); + Accept := lSource.Accept; + end; +end; + +function ImportOrdersCart.GetOrders: colOrderCart; +begin + if (fOrders = nil) then fOrders := colOrderCart.Create(); + result := fOrders; +end; + +procedure ImportOrdersCart.ReadComplex(ASerializer: TObject); +var + l_Accept: boolean; + l_FirCode: UnicodeString; + l_Orders: colOrderCart; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrderCart, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + l_Accept := Accept; + TROSerializer(ASerializer).ReadEnumerated('Accept',TypeInfo(boolean), l_Accept); + Accept := l_Accept; + end + else begin + l_Accept := Accept; + TROSerializer(ASerializer).ReadEnumerated('Accept',TypeInfo(boolean), l_Accept); + Accept := l_Accept; + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('FirCode', l_FirCode); +{$ENDIF} + FirCode := l_FirCode; + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrderCart, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end; +end; + +procedure ImportOrdersCart.WriteComplex(ASerializer: TObject); +var + l_Accept: boolean; + l_FirCode: UnicodeString; + l_Orders: colOrderCart; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrdersCart); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrderCart); + l_Accept := Accept; + TROSerializer(ASerializer).WriteEnumerated('Accept',TypeInfo(boolean), l_Accept); + end + else begin + l_Accept := Accept; + TROSerializer(ASerializer).WriteEnumerated('Accept',TypeInfo(boolean), l_Accept); + l_FirCode := FirCode; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('FirCode', l_FirCode); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('FirCode', l_FirCode); +{$ENDIF} + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrderCart); + end; +end; + +{ ImportOrdersCartCollection } +constructor ImportOrdersCartCollection.Create; +begin + inherited Create(ImportOrdersCart); +end; + +constructor ImportOrdersCartCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersCartCollection.Add: ImportOrdersCart; +begin + result := ImportOrdersCart(inherited Add); +end; + +function ImportOrdersCartCollection.GetItems(aIndex: integer): ImportOrdersCart; +begin + result := ImportOrdersCart(inherited Items[aIndex]); +end; + +procedure ImportOrdersCartCollection.SetItems(aIndex: integer; const Value: ImportOrdersCart); +begin + ImportOrdersCart(inherited Items[aIndex]).Assign(Value); +end; + +{ colOrderCart } + +class function colOrderCart.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function colOrderCart.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function colOrderCart.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure colOrderCart.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.colOrderCart; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.colOrderCart) then begin + lSource := libPPL_Intf.colOrderCart(iSource); + if Assigned(lSource.fItems) then + Items.Assign(lSource.fItems) + else + FreeAndNil(fItems); + ErrorCode := lSource.ErrorCode; + ErrorMessage := lSource.ErrorMessage; + end; +end; + +function colOrderCart.GetItems: ArrayOfAnyType; +begin + if (fItems = nil) then fItems := ArrayOfAnyType.Create(); + result := fItems; +end; + +procedure colOrderCart.ReadComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).ReadInteger('ErrorCode', otSLong, l_ErrorCode); + ErrorCode := l_ErrorCode; + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).ReadUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).ReadWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + ErrorMessage := l_ErrorMessage; + l_Items := int_Items; + TROSerializer(ASerializer).ReadArray('Items', ArrayOfAnyType, l_Items); + if int_Items <> l_Items then Items.Free; + Items := l_Items; + end; +end; + +procedure colOrderCart.WriteComplex(ASerializer: TObject); +var + l_ErrorCode: Integer; + l_ErrorMessage: UnicodeString; + l_Items: ArrayOfAnyType; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(colOrderCart); + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + end + else begin + l_ErrorCode := ErrorCode; + TROSerializer(ASerializer).WriteInteger('ErrorCode', otSLong, l_ErrorCode); + l_ErrorMessage := ErrorMessage; +{$IFDEF UNICODE} + TROSerializer(ASerializer).WriteUnicodeString('ErrorMessage', l_ErrorMessage); +{$ELSE} + TROSerializer(ASerializer).WriteWideString('ErrorMessage', l_ErrorMessage); +{$ENDIF} + l_Items := int_Items; + TROSerializer(ASerializer).WriteArray('Items', l_Items, ArrayOfAnyType); + end; +end; + +{ colOrderCartCollection } +constructor colOrderCartCollection.Create; +begin + inherited Create(colOrderCart); +end; + +constructor colOrderCartCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function colOrderCartCollection.Add: colOrderCart; +begin + result := colOrderCart(inherited Add); +end; + +function colOrderCartCollection.GetItems(aIndex: integer): colOrderCart; +begin + result := colOrderCart(inherited Items[aIndex]); +end; + +procedure colOrderCartCollection.SetItems(aIndex: integer; const Value: colOrderCart); +begin + colOrderCart(inherited Items[aIndex]).Assign(Value); +end; + +{ ImportOrdersCartResponse } + +class function ImportOrdersCartResponse.GetAttributeCount: Integer; +begin + result := 1; +end; + +class function ImportOrdersCartResponse.GetAttributeName(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'ImportedFromNamespace'; + end; +end; + +class function ImportOrdersCartResponse.GetAttributeValue(aIndex: Integer): string; +begin + case aIndex of + 0: result := 'PPLIEGate'; + end; +end; + +procedure ImportOrdersCartResponse.Assign(iSource: TPersistent); +var lSource: libPPL_Intf.ImportOrdersCartResponse; +begin + inherited Assign(iSource); + if (iSource is libPPL_Intf.ImportOrdersCartResponse) then begin + lSource := libPPL_Intf.ImportOrdersCartResponse(iSource); + if Assigned(lSource.fOrders) then + Orders.Assign(lSource.fOrders) + else + FreeAndNil(fOrders); + end; +end; + +function ImportOrdersCartResponse.GetOrders: colOrderCart; +begin + if (fOrders = nil) then fOrders := colOrderCart.Create(); + result := fOrders; +end; + +procedure ImportOrdersCartResponse.ReadComplex(ASerializer: TObject); +var + l_Orders: colOrderCart; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrderCart, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end + else begin + l_Orders := int_Orders; + TROSerializer(ASerializer).ReadStruct('Orders', colOrderCart, l_Orders); + if int_Orders <> l_Orders then Orders.Free; + Orders := l_Orders; + end; +end; + +procedure ImportOrdersCartResponse.WriteComplex(ASerializer: TObject); +var + l_Orders: colOrderCart; +begin + if TROSerializer(ASerializer).RecordStrictOrder then begin + TROSerializer(ASerializer).ChangeClass(ImportOrdersCartResponse); + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrderCart); + end + else begin + l_Orders := int_Orders; + TROSerializer(ASerializer).WriteStruct('Orders', l_Orders, colOrderCart); + end; +end; + +{ ImportOrdersCartResponseCollection } +constructor ImportOrdersCartResponseCollection.Create; +begin + inherited Create(ImportOrdersCartResponse); +end; + +constructor ImportOrdersCartResponseCollection.Create(aItemClass: TCollectionItemClass); +begin + inherited Create(aItemClass); +end; + +function ImportOrdersCartResponseCollection.Add: ImportOrdersCartResponse; +begin + result := ImportOrdersCartResponse(inherited Add); +end; + +function ImportOrdersCartResponseCollection.GetItems(aIndex: integer): ImportOrdersCartResponse; +begin + result := ImportOrdersCartResponse(inherited Items[aIndex]); +end; + +procedure ImportOrdersCartResponseCollection.SetItems(aIndex: integer; const Value: ImportOrdersCartResponse); +begin + ImportOrdersCartResponse(inherited Items[aIndex]).Assign(Value); +end; + +{ CoIEGate } + +class function CoIEGate.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IIEGate; +begin + result := TIEGate_Proxy.Create(aMessage, aTransportChannel); +end; + +{ TIEGate_Proxy } + +function TIEGate_Proxy.__GetInterfaceName:string; +begin + result := 'IEGate'; +end; + +function TIEGate_Proxy.ImportPPLSprint(const parameters: ImportPPLSprint): ImportPPLSprintResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPPLSprint', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportPPLSprint'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPPLSprint), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPPLSprintResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.GetZipCodes(const parameters: GetZipCodes): GetZipCodesResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetZipCodes', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'GetZipCodes'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetZipCodes), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetZipCodesResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.GetCities(const parameters: GetCities): GetCitiesResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetCities', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'GetCities'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetCities), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetCitiesResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.GetPackagesInfo(const parameters: GetPackagesInfo): GetPackagesInfoResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetPackagesInfo', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'GetPackagesInfo'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetPackagesInfo), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetPackagesInfoResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.GetPackageToDelivery(const parameters: GetPackageToDelivery): GetPackageToDeliveryResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetPackageToDelivery', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'GetPackageToDelivery'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetPackageToDelivery), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetPackageToDeliveryResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.GetPackageInfo(const parameters: GetPackageInfo): GetPackageInfoResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetPackageInfo', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'GetPackageInfo'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetPackageInfo), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetPackageInfoResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportOrderExt(const parameters: ImportOrderExt): ImportOrderExtResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrderExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportOrderExt'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrderExt), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrderExtResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportOrdersExt(const parameters: ImportOrdersExt): ImportOrdersExtResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrdersExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportOrdersExt'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrdersExt), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrdersExtResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportPackageExt(const parameters: ImportPackageExt): ImportPackageExtResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackageExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportPackageExt'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackageExt), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackageExtResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportPackagesExt(const parameters: ImportPackagesExt): ImportPackagesExtResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackagesExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportPackagesExt'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackagesExt), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackagesExtResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportPackages(const parameters: ImportPackages): ImportPackagesResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackages', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportPackages'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackages), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackagesResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportOrders(const parameters: ImportOrders): ImportOrdersResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrders', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportOrders'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrders), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrdersResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportWeighedPack(const parameters: ImportWeighedPack): ImportWeighedPackResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportWeighedPack', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportWeighedPack'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportWeighedPack), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportWeighedPackResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportWeighedPackages(const parameters: ImportWeighedPackages): ImportWeighedPackagesResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportWeighedPackages', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportWeighedPackages'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportWeighedPackages), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportWeighedPackagesResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportPackagesHoffmann(const parameters: ImportPackagesHoffmann): ImportPackagesHoffmannResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackagesHoffmann', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportPackagesHoffmann'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackagesHoffmann), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackagesHoffmannResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportESYCOPack(const parameters: ImportESYCOPack): ImportESYCOPackResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportESYCOPack', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportESYCOPack'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportESYCOPack), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportESYCOPackResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportESYCOPackages(const parameters: ImportESYCOPackages): ImportESYCOPackagesResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportESYCOPackages', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportESYCOPackages'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportESYCOPackages), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportESYCOPackagesResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportStatusDHL(const parameters: ImportStatusDHL): ImportStatusDHLResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportStatusDHL', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportStatusDHL'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportStatusDHL), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportStatusDHLResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportStatusesDHL(const parameters: ImportStatusesDHL): ImportStatusesDHLResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportStatusesDHL', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportStatusesDHL'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportStatusesDHL), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportStatusesDHLResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportOrderCart(const parameters: ImportOrderCart): ImportOrderCartResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrderCart', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportOrderCart'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrderCart), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrderCartResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +function TIEGate_Proxy.ImportOrdersCart(const parameters: ImportOrdersCart): ImportOrdersCartResponse; +begin + __Message.SetAttributes(__TransportChannel, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrdersCart', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + try + result := nil; + __Message.InitializeRequestMessage(__TransportChannel, 'libPPL', __InterfaceName, 'ImportOrdersCart'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrdersCart), parameters, []); + __Message.Finalize; + + __TransportChannel.Dispatch(__Message); + + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrdersCartResponse), result, []); + finally + __Message.UnsetAttributes(__TransportChannel); + __Message.FreeStream; + end +end; + +initialization + RegisterROClass(ImportPPLSprint); + RegisterROClass(colPPLSprint); + RegisterROClass(ArrayOfAnyType); + RegisterROClass(Package); + RegisterROClass(PPLSprint); + RegisterROClass(ArrayOfPPLSprintItem); + RegisterROClass(PPLSprintItem); + RegisterROClass(PackageToList); + RegisterROClass(PackageHoffmann); + RegisterROClass(City); + RegisterROClass(PackageWeighed); + RegisterROClass(ZipCode); + RegisterROClass(PackageEsyco); + RegisterROClass(ImportPPLSprintResponse); + RegisterROClass(GetZipCodes); + RegisterROClass(ArrayOfZipCode); + RegisterROClass(GetZipCodesResponse); + RegisterROClass(GetCities); + RegisterROClass(ArrayOfCity); + RegisterROClass(GetCitiesResponse); + RegisterROClass(GetPackagesInfo); + RegisterROClass(ArrayOfString); + RegisterROClass(PackageInfo); + RegisterROClass(ArrayOfPackageInfo); + RegisterROClass(GetPackagesInfoResponse); + RegisterROClass(GetPackageToDelivery); + RegisterROClass(colPackage); + RegisterROClass(GetPackageToDeliveryResponse); + RegisterROClass(GetPackageInfo); + RegisterROClass(GetPackageInfoResponse); + RegisterROClass(ImportOrderExt); + RegisterROClass(Order); + RegisterROClass(ImportOrderExtResponse); + RegisterROClass(ImportOrdersExt); + RegisterROClass(colOrder); + RegisterROClass(ImportOrdersExtResponse); + RegisterROClass(ImportPackageExt); + RegisterROClass(ImportPackageExtResponse); + RegisterROClass(ImportPackagesExt); + RegisterROClass(ImportPackagesExtResponse); + RegisterROClass(ImportPackages); + RegisterROClass(ImportPackagesResponse_ImportPackagesResult); + RegisterROClass(ImportPackagesResponse); + RegisterROClass(ImportOrders); + RegisterROClass(ImportOrdersResponse_ImportOrdersResult); + RegisterROClass(ImportOrdersResponse); + RegisterROClass(ImportWeighedPack); + RegisterROClass(ImportWeighedPackResponse); + RegisterROClass(ImportWeighedPackages); + RegisterROClass(colPackageWeighed); + RegisterROClass(ImportWeighedPackagesResponse); + RegisterROClass(ImportPackagesHoffmann); + RegisterROClass(colPackageHoffmann); + RegisterROClass(ImportPackagesHoffmannResponse); + RegisterROClass(ImportESYCOPack); + RegisterROClass(ImportESYCOPackResponse); + RegisterROClass(ImportESYCOPackages); + RegisterROClass(ImportESYCOPackagesResponse); + RegisterROClass(ImportStatusDHL); + RegisterROClass(StatusDHL); + RegisterROClass(ImportStatusDHLResponse); + RegisterROClass(ImportStatusesDHL); + RegisterROClass(colStatus); + RegisterROClass(ImportStatusesDHLResponse); + RegisterROClass(ImportOrderCart); + RegisterROClass(OrderCart); + RegisterROClass(ImportOrderCartResponse); + RegisterROClass(ImportOrdersCart); + RegisterROClass(colOrderCart); + RegisterROClass(ImportOrdersCartResponse); + RegisterROClass(StringArray); + RegisterProxyClass(IIEGate_IID, TIEGate_Proxy); + + +finalization + UnregisterROClass(ImportPPLSprint); + UnregisterROClass(colPPLSprint); + UnregisterROClass(ArrayOfAnyType); + UnregisterROClass(Package); + UnregisterROClass(PPLSprint); + UnregisterROClass(ArrayOfPPLSprintItem); + UnregisterROClass(PPLSprintItem); + UnregisterROClass(PackageToList); + UnregisterROClass(PackageHoffmann); + UnregisterROClass(City); + UnregisterROClass(PackageWeighed); + UnregisterROClass(ZipCode); + UnregisterROClass(PackageEsyco); + UnregisterROClass(ImportPPLSprintResponse); + UnregisterROClass(GetZipCodes); + UnregisterROClass(ArrayOfZipCode); + UnregisterROClass(GetZipCodesResponse); + UnregisterROClass(GetCities); + UnregisterROClass(ArrayOfCity); + UnregisterROClass(GetCitiesResponse); + UnregisterROClass(GetPackagesInfo); + UnregisterROClass(ArrayOfString); + UnregisterROClass(PackageInfo); + UnregisterROClass(ArrayOfPackageInfo); + UnregisterROClass(GetPackagesInfoResponse); + UnregisterROClass(GetPackageToDelivery); + UnregisterROClass(colPackage); + UnregisterROClass(GetPackageToDeliveryResponse); + UnregisterROClass(GetPackageInfo); + UnregisterROClass(GetPackageInfoResponse); + UnregisterROClass(ImportOrderExt); + UnregisterROClass(Order); + UnregisterROClass(ImportOrderExtResponse); + UnregisterROClass(ImportOrdersExt); + UnregisterROClass(colOrder); + UnregisterROClass(ImportOrdersExtResponse); + UnregisterROClass(ImportPackageExt); + UnregisterROClass(ImportPackageExtResponse); + UnregisterROClass(ImportPackagesExt); + UnregisterROClass(ImportPackagesExtResponse); + UnregisterROClass(ImportPackages); + UnregisterROClass(ImportPackagesResponse_ImportPackagesResult); + UnregisterROClass(ImportPackagesResponse); + UnregisterROClass(ImportOrders); + UnregisterROClass(ImportOrdersResponse_ImportOrdersResult); + UnregisterROClass(ImportOrdersResponse); + UnregisterROClass(ImportWeighedPack); + UnregisterROClass(ImportWeighedPackResponse); + UnregisterROClass(ImportWeighedPackages); + UnregisterROClass(colPackageWeighed); + UnregisterROClass(ImportWeighedPackagesResponse); + UnregisterROClass(ImportPackagesHoffmann); + UnregisterROClass(colPackageHoffmann); + UnregisterROClass(ImportPackagesHoffmannResponse); + UnregisterROClass(ImportESYCOPack); + UnregisterROClass(ImportESYCOPackResponse); + UnregisterROClass(ImportESYCOPackages); + UnregisterROClass(ImportESYCOPackagesResponse); + UnregisterROClass(ImportStatusDHL); + UnregisterROClass(StatusDHL); + UnregisterROClass(ImportStatusDHLResponse); + UnregisterROClass(ImportStatusesDHL); + UnregisterROClass(colStatus); + UnregisterROClass(ImportStatusesDHLResponse); + UnregisterROClass(ImportOrderCart); + UnregisterROClass(OrderCart); + UnregisterROClass(ImportOrderCartResponse); + UnregisterROClass(ImportOrdersCart); + UnregisterROClass(colOrderCart); + UnregisterROClass(ImportOrdersCartResponse); + UnregisterROClass(StringArray); + UnregisterProxyClass(IIEGate_IID); + +end. \ No newline at end of file diff --git a/libPPL_Invk.pas b/libPPL_Invk.pas new file mode 100644 index 0000000..f131fcf --- /dev/null +++ b/libPPL_Invk.pas @@ -0,0 +1,888 @@ +unit libPPL_Invk; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ Do not modify this unit manually, or your changes will be lost when this } +{ unit is regenerated the next time you compile the project. } +{----------------------------------------------------------------------------} + +{$I RemObjects.inc} + +interface + +uses + {vcl:} Classes, + {RemObjects:} uROXMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf, + {Generated:} libPPL_Intf; + +type + TSeekOrigin = Classes.TSeekOrigin; // fake declaration + TIEGate_Invoker = class(TROInvoker) + private + protected + public + constructor Create; override; + published + procedure Invoke_ImportPPLSprint(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetZipCodes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetCities(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetPackagesInfo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetPackageToDelivery(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_GetPackageInfo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportOrderExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportOrdersExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportPackageExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportPackagesExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportPackages(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportOrders(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportWeighedPack(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportWeighedPackages(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportPackagesHoffmann(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportESYCOPack(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportESYCOPackages(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportStatusDHL(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportStatusesDHL(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportOrderCart(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + procedure Invoke_ImportOrdersCart(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); + end; + +implementation + +uses + {RemObjects:} uRORes, uROClient; + +{ TIEGate_Invoker } + +constructor TIEGate_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + +procedure TIEGate_Invoker.Invoke_ImportPPLSprint(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportPPLSprint(const parameters: ImportPPLSprint): ImportPPLSprintResponse; } +var + parameters: libPPL_Intf.ImportPPLSprint; + lResult: libPPL_Intf.ImportPPLSprintResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPPLSprint', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPPLSprint), parameters, []); + + lResult := (__Instance as IIEGate).ImportPPLSprint(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportPPLSprintResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPPLSprintResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_GetZipCodes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetZipCodes(const parameters: GetZipCodes): GetZipCodesResponse; } +var + parameters: libPPL_Intf.GetZipCodes; + lResult: libPPL_Intf.GetZipCodesResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetZipCodes', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetZipCodes), parameters, []); + + lResult := (__Instance as IIEGate).GetZipCodes(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'GetZipCodesResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetZipCodesResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_GetCities(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetCities(const parameters: GetCities): GetCitiesResponse; } +var + parameters: libPPL_Intf.GetCities; + lResult: libPPL_Intf.GetCitiesResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetCities', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetCities), parameters, []); + + lResult := (__Instance as IIEGate).GetCities(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'GetCitiesResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetCitiesResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_GetPackagesInfo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetPackagesInfo(const parameters: GetPackagesInfo): GetPackagesInfoResponse; } +var + parameters: libPPL_Intf.GetPackagesInfo; + lResult: libPPL_Intf.GetPackagesInfoResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetPackagesInfo', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetPackagesInfo), parameters, []); + + lResult := (__Instance as IIEGate).GetPackagesInfo(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'GetPackagesInfoResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetPackagesInfoResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_GetPackageToDelivery(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetPackageToDelivery(const parameters: GetPackageToDelivery): GetPackageToDeliveryResponse; } +var + parameters: libPPL_Intf.GetPackageToDelivery; + lResult: libPPL_Intf.GetPackageToDeliveryResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetPackageToDelivery', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetPackageToDelivery), parameters, []); + + lResult := (__Instance as IIEGate).GetPackageToDelivery(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'GetPackageToDeliveryResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetPackageToDeliveryResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_GetPackageInfo(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function GetPackageInfo(const parameters: GetPackageInfo): GetPackageInfoResponse; } +var + parameters: libPPL_Intf.GetPackageInfo; + lResult: libPPL_Intf.GetPackageInfoResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/GetPackageInfo', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.GetPackageInfo), parameters, []); + + lResult := (__Instance as IIEGate).GetPackageInfo(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'GetPackageInfoResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.GetPackageInfoResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportOrderExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportOrderExt(const parameters: ImportOrderExt): ImportOrderExtResponse; } +var + parameters: libPPL_Intf.ImportOrderExt; + lResult: libPPL_Intf.ImportOrderExtResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrderExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrderExt), parameters, []); + + lResult := (__Instance as IIEGate).ImportOrderExt(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportOrderExtResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrderExtResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportOrdersExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportOrdersExt(const parameters: ImportOrdersExt): ImportOrdersExtResponse; } +var + parameters: libPPL_Intf.ImportOrdersExt; + lResult: libPPL_Intf.ImportOrdersExtResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrdersExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrdersExt), parameters, []); + + lResult := (__Instance as IIEGate).ImportOrdersExt(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportOrdersExtResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrdersExtResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportPackageExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportPackageExt(const parameters: ImportPackageExt): ImportPackageExtResponse; } +var + parameters: libPPL_Intf.ImportPackageExt; + lResult: libPPL_Intf.ImportPackageExtResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackageExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackageExt), parameters, []); + + lResult := (__Instance as IIEGate).ImportPackageExt(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportPackageExtResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackageExtResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportPackagesExt(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportPackagesExt(const parameters: ImportPackagesExt): ImportPackagesExtResponse; } +var + parameters: libPPL_Intf.ImportPackagesExt; + lResult: libPPL_Intf.ImportPackagesExtResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackagesExt', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackagesExt), parameters, []); + + lResult := (__Instance as IIEGate).ImportPackagesExt(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportPackagesExtResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackagesExtResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportPackages(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportPackages(const parameters: ImportPackages): ImportPackagesResponse; } +var + parameters: libPPL_Intf.ImportPackages; + lResult: libPPL_Intf.ImportPackagesResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackages', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackages), parameters, []); + + lResult := (__Instance as IIEGate).ImportPackages(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportPackagesResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackagesResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportOrders(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportOrders(const parameters: ImportOrders): ImportOrdersResponse; } +var + parameters: libPPL_Intf.ImportOrders; + lResult: libPPL_Intf.ImportOrdersResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrders', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrders), parameters, []); + + lResult := (__Instance as IIEGate).ImportOrders(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportOrdersResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrdersResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportWeighedPack(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportWeighedPack(const parameters: ImportWeighedPack): ImportWeighedPackResponse; } +var + parameters: libPPL_Intf.ImportWeighedPack; + lResult: libPPL_Intf.ImportWeighedPackResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportWeighedPack', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportWeighedPack), parameters, []); + + lResult := (__Instance as IIEGate).ImportWeighedPack(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportWeighedPackResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportWeighedPackResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportWeighedPackages(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportWeighedPackages(const parameters: ImportWeighedPackages): ImportWeighedPackagesResponse; } +var + parameters: libPPL_Intf.ImportWeighedPackages; + lResult: libPPL_Intf.ImportWeighedPackagesResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportWeighedPackages', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportWeighedPackages), parameters, []); + + lResult := (__Instance as IIEGate).ImportWeighedPackages(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportWeighedPackagesResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportWeighedPackagesResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportPackagesHoffmann(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportPackagesHoffmann(const parameters: ImportPackagesHoffmann): ImportPackagesHoffmannResponse; } +var + parameters: libPPL_Intf.ImportPackagesHoffmann; + lResult: libPPL_Intf.ImportPackagesHoffmannResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportPackagesHoffmann', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportPackagesHoffmann), parameters, []); + + lResult := (__Instance as IIEGate).ImportPackagesHoffmann(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportPackagesHoffmannResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportPackagesHoffmannResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportESYCOPack(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportESYCOPack(const parameters: ImportESYCOPack): ImportESYCOPackResponse; } +var + parameters: libPPL_Intf.ImportESYCOPack; + lResult: libPPL_Intf.ImportESYCOPackResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportESYCOPack', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportESYCOPack), parameters, []); + + lResult := (__Instance as IIEGate).ImportESYCOPack(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportESYCOPackResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportESYCOPackResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportESYCOPackages(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportESYCOPackages(const parameters: ImportESYCOPackages): ImportESYCOPackagesResponse; } +var + parameters: libPPL_Intf.ImportESYCOPackages; + lResult: libPPL_Intf.ImportESYCOPackagesResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportESYCOPackages', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportESYCOPackages), parameters, []); + + lResult := (__Instance as IIEGate).ImportESYCOPackages(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportESYCOPackagesResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportESYCOPackagesResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportStatusDHL(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportStatusDHL(const parameters: ImportStatusDHL): ImportStatusDHLResponse; } +var + parameters: libPPL_Intf.ImportStatusDHL; + lResult: libPPL_Intf.ImportStatusDHLResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportStatusDHL', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportStatusDHL), parameters, []); + + lResult := (__Instance as IIEGate).ImportStatusDHL(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportStatusDHLResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportStatusDHLResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportStatusesDHL(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportStatusesDHL(const parameters: ImportStatusesDHL): ImportStatusesDHLResponse; } +var + parameters: libPPL_Intf.ImportStatusesDHL; + lResult: libPPL_Intf.ImportStatusesDHLResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportStatusesDHL', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportStatusesDHL), parameters, []); + + lResult := (__Instance as IIEGate).ImportStatusesDHL(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportStatusesDHLResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportStatusesDHLResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportOrderCart(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportOrderCart(const parameters: ImportOrderCart): ImportOrderCartResponse; } +var + parameters: libPPL_Intf.ImportOrderCart; + lResult: libPPL_Intf.ImportOrderCartResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrderCart', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrderCart), parameters, []); + + lResult := (__Instance as IIEGate).ImportOrderCart(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportOrderCartResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrderCartResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +procedure TIEGate_Invoker.Invoke_ImportOrdersCart(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); +{ function ImportOrdersCart(const parameters: ImportOrdersCart): ImportOrdersCartResponse; } +var + parameters: libPPL_Intf.ImportOrdersCart; + lResult: libPPL_Intf.ImportOrdersCartResponse; + __lObjectDisposer: TROObjectDisposer; +begin + __Message.SetAttributes(__Transport, ['Action', 'Location', 'remap_GetCities', 'remap_GetPackageInfo', 'remap_GetPackagesInfo', 'remap_GetPackageToDelivery', 'remap_GetZipCodes' + , 'remap_ImportESYCOPack', 'remap_ImportESYCOPackages', 'remap_ImportOrderCart', 'remap_ImportOrderExt', 'remap_ImportOrders', 'remap_ImportOrdersCart', 'remap_ImportOrdersExt', 'remap_ImportPackageExt' + , 'remap_ImportPackages', 'remap_ImportPackagesExt', 'remap_ImportPackagesHoffmann', 'remap_ImportPPLSprint', 'remap_ImportStatusDHL', 'remap_ImportStatusesDHL', 'remap_ImportWeighedPack', 'remap_ImportWeighedPackages' + , 'Style', 'TargetNamespace', 'Type', 'Use', 'Wsdl'], + ['PPLIEGate/ImportOrdersCart', 'http://www.ppl.cz/IEGate/IEGate.asmx', 'PPLIEGate/GetCities', 'PPLIEGate/GetPackageInfo', 'PPLIEGate/GetPackagesInfo', 'PPLIEGate/GetPackageToDelivery', 'PPLIEGate/GetZipCodes' + , 'PPLIEGate/ImportESYCOPack', 'PPLIEGate/ImportESYCOPackages', 'PPLIEGate/ImportOrderCart', 'PPLIEGate/ImportOrderExt', 'PPLIEGate/ImportOrders', 'PPLIEGate/ImportOrdersCart', 'PPLIEGate/ImportOrdersExt', 'PPLIEGate/ImportPackageExt' + , 'PPLIEGate/ImportPackages', 'PPLIEGate/ImportPackagesExt', 'PPLIEGate/ImportPackagesHoffmann', 'PPLIEGate/ImportPPLSprint', 'PPLIEGate/ImportStatusDHL', 'PPLIEGate/ImportStatusesDHL', 'PPLIEGate/ImportWeighedPack', 'PPLIEGate/ImportWeighedPackages' + , 'document', TargetNamespace, 'SOAP', 'literal', WSDLLocation]); + parameters := nil; + lResult := nil; + try + __Message.Read('parameters', TypeInfo(libPPL_Intf.ImportOrdersCart), parameters, []); + + lResult := (__Instance as IIEGate).ImportOrdersCart(parameters); + + __Message.InitializeResponseMessage(__Transport, 'libPPL', 'IEGate', 'ImportOrdersCartResponse'); + __Message.Write('parameters', TypeInfo(libPPL_Intf.ImportOrdersCartResponse), lResult, []); + __Message.Finalize; + __Message.UnsetAttributes(__Transport); + + finally + __lObjectDisposer := TROObjectDisposer.Create(__Instance); + try + __lObjectDisposer.Add(parameters); + __lObjectDisposer.Add(lResult); + finally + __lObjectDisposer.Free(); + end; + end; +end; + +initialization + RegisterServiceAttribute('','Wsdl','http://www.ppl.cz/IEGate/IEGate.asmx?WSDL'); + RegisterServiceAttribute('','TargetNamespace','PPLIEGate'); + RegisterServiceAttribute('IEGate','Type','SOAP'); + RegisterServiceAttribute('IEGate','Location','http://www.ppl.cz/IEGate/IEGate.asmx'); + RegisterServiceAttribute('IEGate','remap_ImportPPLSprint','PPLIEGate/ImportPPLSprint'); + RegisterServiceAttribute('IEGate','remap_GetZipCodes','PPLIEGate/GetZipCodes'); + RegisterServiceAttribute('IEGate','remap_GetCities','PPLIEGate/GetCities'); + RegisterServiceAttribute('IEGate','remap_GetPackagesInfo','PPLIEGate/GetPackagesInfo'); + RegisterServiceAttribute('IEGate','remap_GetPackageToDelivery','PPLIEGate/GetPackageToDelivery'); + RegisterServiceAttribute('IEGate','remap_GetPackageInfo','PPLIEGate/GetPackageInfo'); + RegisterServiceAttribute('IEGate','remap_ImportOrderExt','PPLIEGate/ImportOrderExt'); + RegisterServiceAttribute('IEGate','remap_ImportOrdersExt','PPLIEGate/ImportOrdersExt'); + RegisterServiceAttribute('IEGate','remap_ImportPackageExt','PPLIEGate/ImportPackageExt'); + RegisterServiceAttribute('IEGate','remap_ImportPackagesExt','PPLIEGate/ImportPackagesExt'); + RegisterServiceAttribute('IEGate','remap_ImportPackages','PPLIEGate/ImportPackages'); + RegisterServiceAttribute('IEGate','remap_ImportOrders','PPLIEGate/ImportOrders'); + RegisterServiceAttribute('IEGate','remap_ImportWeighedPack','PPLIEGate/ImportWeighedPack'); + RegisterServiceAttribute('IEGate','remap_ImportWeighedPackages','PPLIEGate/ImportWeighedPackages'); + RegisterServiceAttribute('IEGate','remap_ImportPackagesHoffmann','PPLIEGate/ImportPackagesHoffmann'); + RegisterServiceAttribute('IEGate','remap_ImportESYCOPack','PPLIEGate/ImportESYCOPack'); + RegisterServiceAttribute('IEGate','remap_ImportESYCOPackages','PPLIEGate/ImportESYCOPackages'); + RegisterServiceAttribute('IEGate','remap_ImportStatusDHL','PPLIEGate/ImportStatusDHL'); + RegisterServiceAttribute('IEGate','remap_ImportStatusesDHL','PPLIEGate/ImportStatusesDHL'); + RegisterServiceAttribute('IEGate','remap_ImportOrderCart','PPLIEGate/ImportOrderCart'); + RegisterServiceAttribute('IEGate','remap_ImportOrdersCart','PPLIEGate/ImportOrdersCart'); +end. diff --git a/libSys/plgAkce.pas b/libSys/plgAkce.pas new file mode 100644 index 0000000..3155aee --- /dev/null +++ b/libSys/plgAkce.pas @@ -0,0 +1,1153 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgAkce; + +interface + +uses + plgType, Classes, Forms, DB, plgQuery, ddPlugin_TLB; + +type + TplgJednaAkce = procedure of object; + + TKdyZapsatParametry = + (kzpNikdy, + kzpInsert{akce neexistuje - prvni instalace nebo byla smazana}, + kzpInsertUpdate{akce (ne)existuje - parametry se pri kazde (re)instalaci prepisi}); + + TplgAkctionContainer = class + NazevSys: string; + Nazev: string; + NazevTxt: TplgTxt; + Akce: TplgJednaAkce; + GUID: string; + HotKey: Integer; + Verejna: Boolean; + NazevPodmenu: string; + NazevPodmenuTxt: TplgTxt; + KdyZapsatParametry: TKdyZapsatParametry; + Parametry: string; + PridatOddelovacMenu: Boolean; + Napoveda: string; + NapovedaTxt: TplgTxt; + end; + + { +++++++++++++++++++++++++++ } + + TplgAkcePrehleduClass = class of TplgAkcePrehledu; + TplgAkcePrehledu = class(TplgAkcePrehleduBase) + private + FBrowse: TplgBrowse; + FTabulka: TplgTabulka; + FSetrideneAtributy: TStringList; + FSeznamAkci: TStringList; + + FDataSourceEdit : TDataSource; + FMemDataSet: TplgQuery; + + FPlgEditor: TForm; + FHelios : IHelios; + + procedure _VolejEditor(AQuery: TDataSet); + procedure CreateMemDataSet; + procedure My_OnGetText(Sender: TField; var Text: string; DisplayText: Boolean); + procedure My_OnSetText(Sender: TField; const Text: string); + + procedure MemDataSet_BeforePost(DataSet: TDataSet); + procedure MemDataSet_AfterCancel(DataSet: TDataSet); + + procedure Field_OnChange(Sender: TField); + + procedure ZrusUdalostiDataSetu; + function NahodBlokovaniEditoru(NacteniPoInsertu: Boolean): Boolean; + procedure NovyRadekDataSetu; + procedure NactiRadek_Z_DB(const IDStr: string); + + protected + FLastID: Variant; + + procedure VytvorSetrideneAtributy; + function TestNaTabulku: Boolean; dynamic; + function _GetValueFromField(F: TField): string; + function TestPredStandardnimiAkcemi(ChciID: Boolean): Boolean; + procedure AddAkce(const NazevSys, NazevVerejny: string; Akce: TplgJednaAkce; + const GUID: string; const NazevPodmenu: string = ''; HotKey: Integer = 0; + KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; + const Parametry: string = ''; AVerejna: Boolean = True); overload; + procedure AddAkce(const NazevSys: string; NazevVerejnyTxt: TplgTxt; Akce: TplgJednaAkce; + const GUID: string; NazevPodmenuTxt: TplgTxt = plxNic; HotKey: Integer = 0; + KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; const Parametry: string = ''; + PridatOddelovacMenu: Boolean = False; Napoveda: TplgTxt = plxNic; + AVerejna: Boolean = True); overload; + + function PripravProEditaci: Boolean; + function PripravProNova: Boolean; + procedure ProvedRefresh(NovaVeta: Boolean); + + public + FPlgEditorClass: TFormClass; + + constructor Create(aHelios: IHelios; aBrowse: TplgBrowse; aPlgEditorClass: TFormClass); virtual; + constructor CreateTab(AHelios: IHelios; AExtAkceDef: PplgExtAkceDef); virtual; + destructor Destroy; override; + + procedure ActionNew; dynamic; + procedure ActionEdit; dynamic; + procedure ActionDelete; dynamic; + + function SpustAkci(const GUIDAkce: string): string; + function FieldWasChanged(F: TField): Boolean; + + function NajdiPrvniVolny(ATabulka : TplgTabulka; + const AAtribut : string; + const AWHERE : string; + { klauzule WHERE, kterou se dosahne unikatnosti atributu } + { ocekavan je syntaxe pr.: RadaDokladu='101' AND DruhPohybuZbo=0 AND IDSklad='001' } + { nebo prazdny String - nefiltruje se } + AMin, AMax : Integer; + APlnitMezery: boolean = True): Integer; + + function GetIDHlavicky(var IDHlavicky: Integer): Boolean; + function NastavIDHlavickyDoRadku(FieldNaRadku: TField): Boolean; + + procedure OnNovaVeta( AFields : TFields; + var Prerusit : Boolean; + PrvniPruchod : Boolean); virtual; // dedit - override; + + function AfterInsertSkript: string; dynamic; + function AfterUpdateSkript: string; dynamic; + + property Browse: TplgBrowse read FBrowse; + property Helios: IHelios read FHelios; + property HlavniTabulka: TplgTabulka read FTabulka; + property PlgEditor: TForm read FPlgEditor; + property SetrideneAtributy: TStringList read FSetrideneAtributy; + end; + +{ =========================================================================== } + +implementation + +uses + SysUtils, Windows, Controls, Variants, Generics.Collections, + plgMain, plgEdit, plgBrowse, plgSpravce, plgInstalace, plgLadit; + +{ ########################################################################### } + +constructor TplgAkcePrehledu.Create(aHelios : IHelios; + aBrowse : TplgBrowse; + aPlgEditorClass: TFormClass); +begin + inherited Create; + + FHelios := aHelios; + FBrowse := aBrowse; + FTabulka := Cplg_SeznamVychozichNastaveniBrowse[FBrowse].HlavniTabulka; + FPlgEditorClass := aPlgEditorClass; + + SpravceHeliosu.NastavAkce(FHelios, Self); + + VytvorSetrideneAtributy; + + FSeznamAkci := TStringList.Create; // NETRIDIT !! + + with Cplg_SeznamVychozichNastaveniBrowse[FBrowse] do + begin + if GUID_ActionNew <> '' then + AddAkce('ActionNew', plxJadroAkceNovy, ActionNew, GUID_ActionNew, plxJadroMenuEditace, VK_F2); + + if GUID_ActionEdit <> '' then + AddAkce('ActionEdit', plxJadroAkceOprava, ActionEdit, GUID_ActionEdit, plxJadroMenuEditace, VK_RETURN); + + if GUID_ActionDelete <> '' then + AddAkce('ActionDelete', plxJadroAkceZrusit, ActionDelete, GUID_ActionDelete, plxJadroMenuEditace, VK_DELETE); + end; +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgAkcePrehledu.CreateTab(AHelios: IHelios; AExtAkceDef: PplgExtAkceDef); +begin + Create(AHelios, bZadny, AExtAkceDef.EditorClass); +end; + +{ --------------------------------------------------------------------------- } + +destructor TplgAkcePrehledu.Destroy; + var + II: Integer; +begin + SpravceHeliosu.NastavAkce(FHelios, nil); + + for II := 0 to FSeznamAkci.Count-1 do + TplgAkctionContainer(FSeznamAkci.Objects[II]).Free; + FSeznamAkci.Free; + FSetrideneAtributy.Free; + + inherited; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.VytvorSetrideneAtributy; +begin + FreeAndNil(FSetrideneAtributy); + FSetrideneAtributy := plgSetrideneAtributy(FTabulka); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.AddAkce(const NazevSys, NazevVerejny: string; + Akce: TplgJednaAkce; const GUID: string; const NazevPodmenu: string = ''; + HotKey: Integer = 0; KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; + const Parametry: string = ''; AVerejna: Boolean = True); + var + XX: TplgAkctionContainer; +begin + plgLadit_KontrolaGUIDInstalace(GUID); + + XX := TplgAkctionContainer.Create; + XX.NazevSys := NazevSys; + XX.Nazev := NazevVerejny; + XX.Akce := Akce; + XX.GUID := GUID; + XX.HotKey := HotKey; + XX.NazevPodmenu := NazevPodmenu; + XX.KdyZapsatParametry := KdyZapsatParametry; + XX.Parametry := Parametry; + XX.Verejna := AVerejna; + FSeznamAkci.AddObject(GUID, XX); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.AddAkce(const NazevSys: string; NazevVerejnyTxt: TplgTxt; + Akce: TplgJednaAkce; const GUID: string; NazevPodmenuTxt: TplgTxt = plxNic; + HotKey: Integer = 0; KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; + const Parametry: string = ''; PridatOddelovacMenu: Boolean = False; + Napoveda: TplgTxt = plxNic; AVerejna: Boolean = True); + var + XX: TplgAkctionContainer; +begin + plgLadit_KontrolaGUIDInstalace(GUID); + + XX := TplgAkctionContainer.Create; + XX.NazevSys := NazevSys; + XX.NazevTxt := NazevVerejnyTxt; + XX.Nazev := plgCtiOznam(XX.NazevTxt); + XX.Akce := Akce; + XX.GUID := GUID; + XX.HotKey := HotKey; + XX.NazevPodmenuTxt := NazevPodmenuTxt; + XX.NazevPodmenu := plgCtiOznam(XX.NazevPodmenuTxt); + XX.KdyZapsatParametry := KdyZapsatParametry; + XX.Parametry := Parametry; + XX.PridatOddelovacMenu := PridatOddelovacMenu; + XX.NapovedaTxt := Napoveda; + XX.Napoveda := plgCtiOznam(XX.Napoveda); + XX.Verejna := AVerejna; + FSeznamAkci.AddObject(GUID, XX); +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.GetIDHlavicky(var IDHlavicky: Integer): Boolean; + var + HeliosVlastnik: IHelios; + AkceVlastnika: TplgAkcePrehledu; +begin + Result := False; + + HeliosVlastnik := SpravceHeliosu.VratVlastnika(FHelios); + + // pokud neni navazan vlastnik, tak neni co priradit + if not Assigned(HeliosVlastnik) then + begin + FHelios.Error('NastavIDHlavickyDoRadku: Nen piazen HeliosVlastnik!'); + Exit; + end; + + AkceVlastnika := SpravceHeliosu.VratAkcePrehledu(HeliosVlastnik); + + if Assigned(AkceVlastnika) and Assigned(AkceVlastnika.FPlgEditor) then + IDHlavicky := TfrmPlgEditor(AkceVlastnika.FPlgEditor).DataSourceEdit.DataSet.FieldByName(plg_SystemoveCislo).AsInteger + else + IDHlavicky := HeliosVlastnik.CurrentRecordID; + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.NastavIDHlavickyDoRadku(FieldNaRadku: TField): Boolean; + var + IDHlavicky: Integer; +begin + Result := GetIDHlavicky(IDHlavicky); + if Result then + FieldNaRadku.AsInteger := IDHlavicky; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.OnNovaVeta( AFields : TFields; + var Prerusit : Boolean; + PrvniPruchod : Boolean); +begin + // dedi se +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.NajdiPrvniVolny(ATabulka : TplgTabulka; + const AAtribut : string; + const AWHERE : string; + AMin, AMax : Integer; + APlnitMezery: Boolean = True): Integer; + var + TabulkaStr: string; + PomInt: Integer; + Q: IHeQuery; +begin + Result := -1; + + TabulkaStr := plgJmenoTabulky(ATabulka); + if ((AMin > AMax) or (TabulkaStr = '')) then Exit; + + Q := FHelios.OpenSQL( + Format('EXEC dbo.hp_NajdiPrvniVolny %s,%s,%d,%d,%s,0,%d', + [plgNQuotedStr(TabulkaStr), plgNQuotedStr(AAtribut), AMin, AMax, + plgNQuotedStr(AWHERE), Integer(APlnitMezery)])); + if not varIsNull(Q.FieldValues(0)) then + begin + PomInt := Q.FieldValues(0); + if (AMin <= PomInt) and (PomInt <= AMax) then Result := PomInt; + end; +end; + +{ --------------------------------------------------------------------------- } + +var + OnGetText_PomSL: TStringList = nil; + +procedure TplgAkcePrehledu.My_OnGetText( Sender : TField; + var Text : String; + DisplayText : Boolean); + var + PA: PplgAtributTabulky; +begin + if Sender.Tag <> 0 then + PA := PplgAtributTabulky(Sender.Tag) + else + PA := plgAtribut(Sender.Origin); + + if Assigned(PA) then + begin + if not Assigned(OnGetText_PomSL) then + OnGetText_PomSL := TStringList.Create; + + OnGetText_PomSL.Text := PA.Konverze; + Text := plgHodnotaZKonverze(Sender.IsNULL, Sender.AsString, OnGetText_PomSL); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.My_OnSetText(Sender: TField; const Text: string); + var + PomSL : TStringList; + S : String; + PA : PplgAtributTabulky; +begin + if Sender.Tag <> 0 then + PA := PplgAtributTabulky(Sender.Tag) + else + PA := plgAtribut(Sender.Origin); + + PomSL := plgObracenaKonverze(PA.Konverze); + try + if PomSL.IndexOfName(Text) = -1 then // je v obracenem StringListu + Sender.AsString := Text // neni - nekonvertuj + else + begin // je - konvertuj s ohledem na hodnotu NULL + S := PomSL.Values[Text]; + if SameText(S, 'NULL') then + Sender.Clear + else + Sender.AsString := S; + end; + finally + PomSL.Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.Field_OnChange(Sender: TField); +begin + if Assigned(Sender.DataSet.BeforePost) then + Sender.ImportedConstraint := '1'; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.FieldWasChanged(F: TField): Boolean; +begin + //toto zlobi v pripade blobu + //Result := not plgVarSameValue(F.OldValue, F.Value); + Result := (F.ImportedConstraint = '1'); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.CreateMemDataSet; + var + PA : PplgAtributTabulky; + II : Integer; + TabName: string; + + { +++++++++++++++++++++++++++ } + + function CreateField(FC: TFieldClass): TField; + begin + Result := FC.Create(FMemDataSet); + with Result do + begin + FieldName := PA.JmenoSys; + Origin := TabName + '.' + PA.JmenoSys; + DataSet := FMemDataSet; + Tag := Integer(PA); + Required := False; + + OnChange := Field_OnChange; + + if PA.Konverze <> '' then + begin + OnGetText := My_OnGetText; + OnSetText := My_OnSetText; + Alignment := taLeftJustify; + end; + end; + end; + + { +++++++++++++++++++++++++++ } + +begin + FMemDataSet := TplgQuery.Create(nil); + try + with plgGetTabulkaDef(FTabulka)^ do + begin + TabName := JmenoSys; + + PA := Atributy; + for II := 1 to PocetAtributu do + begin + // pocitane a abstraktni neexistuji, binary nejde zpravne zobrazit... + if (PA.Pocitany = '') and (PA.Typ <> taBinary) and + (not(dvAbstraktni in PA.DalsiVlastnosti)) then + case PA.Typ of + taInt, // ftInteger + taIdentity: + with TIntegerField(CreateField(TIntegerField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + + taInt64, // ftLargeint + taIdentity64: + with TLargeintField(CreateField(TLargeintField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + +// taGUID: // ftString +// with TStringField(CreateField(TStringField)) do +// Size := 36; // napr. 85AA05CC-9D09-4BA9-B07B-7A25319BE5F4 + + taSmallInt: // ftSmallint + with TSmallIntField(CreateField(TSmallIntField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + + taByte: // ftByte + with TByteField(CreateField(TByteField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + + taBoolean: // ftBoolean + with TBooleanField(CreateField(TBooleanField)) do + DisplayValues := 'A;N'; + + taVarChar, // ftString + taChar: + begin + //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + if PA.Delka=Cplg_DelkaNVarcharMax then + CreateField(TMemoField) + else + with TStringField(CreateField(TStringField)) do + Size := PA.Delka; + end; + + taText: // ftMemo + CreateField(TMemoField); + + taNVarChar, // ftWideString + taNChar: + begin + //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + if PA.Delka=Cplg_DelkaNVarcharMax then + CreateField(TWideMemoField) + else + with TWideStringField(CreateField(TWideStringField)) do + Size := PA.Delka; + end; + + taNText: // ftWideMemo + CreateField(TWideMemoField); + + taDateTime: // ftDateTime + CreateField(TDateTimeField); + + taTime: // ftTime + CreateField(TTimeField); + + taImage: // ftBlob + CreateField(TBlobField); + + taFloat: // ftFloat + with TFloatField(CreateField(TFloatField)) do + DisplayFormat := PA.MaskaDisplay; + + else + if PA.Typ in Cplg_SkupinaAtributuNumeric then // ftFloat + with TFloatField(CreateField(TFloatField)) do + begin + DisplayFormat := PA.MaskaDisplay; + Precision := 6; + end; + end; + + Inc(PA); + end; + end; + except + FreeAndNil(FMemDataSet); + raise; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu._VolejEditor(AQuery : TDataSet); +begin + if not Assigned(FPlgEditorClass) then Exit; + + FDataSourceEdit := TDataSource.Create(AQuery); + try + FDataSourceEdit.DataSet := AQuery; + try + FPlgEditor := TfrmPlgEditor(FPlgEditorClass.NewInstance).Create(Application, FHelios, Self, FDataSourceEdit); + try + Screen.Cursor := crDefault; + FPlgEditor.ShowModal; + finally + FreeAndNil(FPlgEditor); + end; + finally + if FDataSourceEdit.State <> dsBrowse then + FDataSourceEdit.DataSet.Cancel; + end; + finally + FreeAndNil(FDataSourceEdit); + ProvedRefresh(Lo(AQuery.Tag) = Cplg_tagNovaVeta); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ProvedRefresh(NovaVeta: Boolean); + var + PomID: Integer; +begin + FHelios.Refresh(NovaVeta); + if NovaVeta and (not varIsNull(FLastID)) then + begin + PomID := FLastID; + FHelios.Locate(plg_SystemoveCislo, PomID); + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu._GetValueFromField(F: TField): string; +begin + if F.IsNull then + Result := 'NULL' + else + case F.DataType of + ftInteger, + ftLargeInt, + ftSmallint, + ftShortint, + ftWord, + ftByte: + Result := F.AsString; + + ftBoolean: + if F.AsBoolean then + Result := '1' + else + Result := '0'; + + ftString, + ftMemo: + Result := QuotedStr(string(F.AsAnsiString)); + + ftWideString, + ftWideMemo: + Result := plgNQuotedStr(F.AsString); + + ftBlob: + Result := plgTextToBinary(F.AsAnsiString); + + ftDateTime: + Result := plgGetIndependentSQLDateTime(F.AsDateTime); + + ftFloat: + Result := plgGetIndependentSQLFloat('%.6f', F.AsFloat); + + else + Result := 'NULL'; // sem by to ale prijit nemelo + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.MemDataSet_AfterCancel(DataSet: TDataSet); + var + LF: TField; +begin + LF := DataSet.FieldByName(plg_SystemoveCislo); + + case Lo(FMemDataSet.Tag) of + Cplg_tagNovaVeta: + FHelios.ExecSQL( + Format(plgSkriptProDeleteJednohoZaznamu(FTabulka, False), [_GetValueFromField(LF)])); + + Cplg_tagOpravaVety: + FHelios.ExecSQL( + Format('UPDATE %s SET ' + plg_BlokovaniEditoru + '=NULL WHERE %s=%s', + [plgJmenoTabulky(FTabulka), LF.FieldName, _GetValueFromField(LF)])); + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.AfterInsertSkript: string; +begin + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.AfterUpdateSkript: string; +begin + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.MemDataSet_BeforePost(DataSet: TDataSet); + var + Skript, Hodnoty: string; + II: Integer; + LF: TField; + AfterSkript, Deklarace: string; + PridatZmenu: Boolean; +begin + Skript := ''; + Hodnoty := ''; + + case DataSet.State of + dsInsert: + begin + Deklarace := 'INT'; + for II := 0 to DataSet.Fields.Count-1 do + begin + LF := DataSet.Fields[II]; + if (LF <> TplgQuery(DataSet).RecIdField) and (LF.Tag <> 0) then + begin + if (not LF.IsNull) and (not (PplgAtributTabulky(LF.Tag).Typ in Cplg_MnozinaIdentity)) then + begin + Skript := Format('%s,%s', [Skript, LF.FieldName]); + Hodnoty := Format('%s,%s', [Hodnoty, _GetValueFromField(LF)]); + end + else + if PplgAtributTabulky(LF.Tag).Typ = taIdentity64 then + Deklarace := 'BIGINT'; + end; + end; + + if Skript <> '' then + begin + // zrus carky na zacatku + Delete(Skript, 1, 1); + Delete(Hodnoty, 1, 1); + + Skript := Format('INSERT %s(%s)VALUES(%s)', + [plgJmenoTabulky(FTabulka), Skript, Hodnoty]); + + AfterSkript := AfterInsertSkript; + if AfterSkript = '' then + Skript := Format('%s'#13'SELECT SCOPE_IDENTITY()', [Skript]) + else + Skript := + Format('BEGIN TRANSACTION'#13+ + 'DECLARE @ID %s'#13+ + '%s'#13+ // INSERT + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'SET @ID=SCOPE_IDENTITY()'#13+ + '%s'#13+ // AFTER INSERT SKRIPT + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'COMMIT'#13+ + 'SELECT @ID'#13+ + 'GOTO KONEC'#13+ + 'CHYBAROLLBACK:'#13+ + 'ROLLBACK'#13+ + 'KONEC:', + [Deklarace, Skript, AfterSkript]); + end; + end; + + dsEdit: + begin + // [RK 17.01.2007] doplnen test na skutecnou zmenu + if Assigned(FPlgEditor) and (FPlgEditor is TfrmPlgEditor) then + PridatZmenu := TfrmPlgEditor(FPlgEditor).BylaZmena + else + // [RK 20.10.2008] zmeneno na False, jelikoz to nastavovalo i pri editaci + // pri nahazovani BlokovaniEditoru + PridatZmenu := False; + + for II := 0 to DataSet.Fields.Count-1 do + begin + LF := DataSet.Fields[II]; + if (LF <> TplgQuery(DataSet).RecIdField) and (LF.Tag <> 0) and + (not(PplgAtributTabulky(LF.Tag).Typ in Cplg_MnozinaIdentity)) then + begin + if SameText(LF.FieldName, plg_Zmenil) and PridatZmenu then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, Cplg_LoginName]) + else + if SameText(LF.FieldName, plg_DatZmeny) and PridatZmenu then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, Cplg_GetDate]) + else + if SameText(LF.FieldName, plg_BlokovaniEditoru) then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, _GetValueFromField(LF)]) + else + if FieldWasChanged(LF) then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, _GetValueFromField(LF)]); + end; + end; + + if Skript <> '' then + begin + // zrus carku na zacatku + Delete(Skript, 1, 1); + + LF := DataSet.FieldByName(plg_SystemoveCislo); + Hodnoty := _GetValueFromField(LF); + + Skript := Format('UPDATE %s SET %s'#13'WHERE %s=%s', + [plgJmenoTabulky(FTabulka), Skript, LF.FieldName, Hodnoty]); + + // [RK 05.09.2012] AfterUpdateSkript pouze pri skutecne zmene, nikoliv pri nahozeni BlokovaniEditoru + if PridatZmenu then + AfterSkript := AfterUpdateSkript + else + AfterSkript := ''; + + if AfterSkript = '' then + Skript := Format('%s'#13'SELECT %s', [Skript, Hodnoty]) + else + Skript := + Format('BEGIN TRANSACTION'#13+ + 'DECLARE @ID INT'#13+ + '%s'#13+ // UPDATE + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'SET @ID=%s'#13+ + '%s'#13+ // AFTER UPDATE SKRIPT + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'COMMIT'#13+ + 'SELECT @ID'#13+ + 'GOTO KONEC'#13+ + 'CHYBAROLLBACK:'#13+ + 'ROLLBACK'#13+ + 'KONEC:', + [Skript, Hodnoty, AfterSkript]); + end; + end; + end; + + if Skript = '' then + FLastID := NULL + else + try + FLastID := FHelios.OpenSQL(Skript).FieldValues(0); + finally + Screen.Cursor := crDefault; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.NahodBlokovaniEditoru(NacteniPoInsertu: Boolean): Boolean; + var + LF: TField; + TD: PplgTabulkaDef; +begin + FMemDataSet.BeforePost := MemDataSet_BeforePost; + + TD := plgGetTabulkaDef(FTabulka); + + // blokovani editoru - pri oprave vzdy, pri nove vete pouze pokud neni vypnuto + // [RK 20.10.2008] plg_dvtBlokovaniJenOprava + LF := FMemDataSet.FindField(plg_BlokovaniEditoru); + Result := Assigned(LF) and + ((Lo(FMemDataSet.Tag) = Cplg_tagOpravaVety) or + ((Lo(FMemDataSet.Tag) = Cplg_tagNovaVeta) and + (not (plg_dvtBlokovaniJenOprava in TD.DalsiVlastnosti)))); + + if Result then + begin + if (Lo(FMemDataSet.Tag) = Cplg_tagOpravaVety) and (not LF.IsNull) then + begin + // nastav Hi(Tag) na 1 - blokovano + FMemDataSet.Tag := FMemDataSet.Tag or $00000100; + LF := nil; + end + else + begin + // nastav Hi(Tag) na 0 - neblokovano + FMemDataSet.Tag := FMemDataSet.Tag and $FFFF00FF; + LF.AsInteger := FHelios.UserId; + + // [RK 05.09.2012] je treba signalizovat, ze zmena nebyla - kvuli datu zmeny !! + LF.ImportedConstraint := ''; + + with FMemDataSet do + begin + if not NacteniPoInsertu then + begin + Post; // toto jde do DB, ale pouze pri INSERTu ! + Edit; + end; + AfterCancel := MemDataSet_AfterCancel; // pro budouci shozeni priznaku v DB + end; + + // nacteni ID nove vety + if Lo(FMemDataSet.Tag) = Cplg_tagNovaVeta then + FMemDataSet.FieldByName(plg_SystemoveCislo).Value := FLastID; + end; + + if Assigned(LF) then + begin + with FMemDataSet do + begin + // ulozeni ID a BlokovaniEditoru, ale ne do DB !! + BeforePost := nil; + + // BlokovaniEditoru opet vynullujeme + // [RK 05.09.2012] presunuto az za BeforePost := nil -> jinak nahodi zmenu na True + LF.Clear; + + // bez ulozeni by se to ptalo na zmenu a v ID by bylo NULL po Cancel + Post; + Edit; + + // obnovime update DB + BeforePost := MemDataSet_BeforePost; + end; + end; + end; + + FMemDataSet.SetModified(False); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ZrusUdalostiDataSetu; + var + II: Integer; +begin + with FMemDataSet do + begin + ReadOnly := False; + BeforePost := nil; + AfterCancel := nil; + + // zrus priznak zmeny atributu - viz Field_OnChange + for II := 0 to Fields.Count-1 do + Fields[II].ImportedConstraint := ''; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.NovyRadekDataSetu; +begin + with FMemDataSet do + begin + Open; + while RecordCount > 0 do Delete; + Insert; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.PripravProNova: Boolean; + var + II: Integer; + PA: PplgAtributTabulky; + LPrerusit: Boolean; + LF: TField; +begin + Result := False; + + // nastaveni Lo(Tag) - signalizuj Nova + FMemDataSet.Tag := (FMemDataSet.Tag and $FFFFFF00) or Lo(Cplg_tagNovaVeta); + + ZrusUdalostiDataSetu; + NovyRadekDataSetu; + + for II := FMemDataSet.Fields.Count-1 downto 0 do + begin + LF := FMemDataSet.Fields[II]; + if (LF <> FMemDataSet.RecIdField) and (LF.Tag <> 0) then + begin + PA := PplgAtributTabulky(LF.Tag); + + // kdyz nebyla zmena a nema povoleno NULL a nema DEFAULT -> pokus se vyplnit + if (LF.IsNULL) and (PA.NULL <> nNULL) and (PA.ServerDEFAULT = '') then + if (not(PA.Typ in Cplg_MnozinaIdentity)) or (Trim(PA.Pocitany) <> '') then + begin + if LF is TStringField then + LF.AsString := '' + else + if LF is TNumericField then + LF.AsInteger := 0; + end; + end; + end; + + LPrerusit := False; + OnNovaVeta(FMemDataSet.Fields, LPrerusit, True); + if LPrerusit then Exit; + + if NahodBlokovaniEditoru(False) then + begin + ZrusUdalostiDataSetu; + NactiRadek_Z_DB(varToStr(FLastID)); + NahodBlokovaniEditoru(True); + end; + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.TestNaTabulku: Boolean; +begin + Result := plgJeObecnyPrehled(FHelios.MainBrowseTable); +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.TestPredStandardnimiAkcemi(ChciID: Boolean): Boolean; + var + TD: PplgTabulkaDef; +begin + Result := False; + + if not TestNaTabulku then Exit; + + TD := plgGetTabulkaDef(FTabulka); + if not Assigned(TD) then Exit; + if plg_dvtAbstraktni in TD.DalsiVlastnosti then Exit; + + if ChciID then + if varToStr(FHelios.CurrentRecordID) = '' then Exit; + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ActionNew; +begin + if not TestPredStandardnimiAkcemi(False) then Exit; + + CreateMemDataSet; + try + if not PripravProNova then Exit; + _VolejEditor(FMemDataSet); + finally + FreeAndNil(FMemDataSet); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.NactiRadek_Z_DB(const IDStr: string); + var + II: Integer; + SelectStr: string; + LF: TField; + LFieldList: TList; + Q: IHeQuery; +begin + NovyRadekDataSetu; + + LFieldList := TList.Create; + try + // sestaveni selectu pro nacteni hodnot + SelectStr := ''; + for II := 0 to FMemDataSet.Fields.Count-1 do + begin + LF := FMemDataSet.Fields[II]; + if (LF <> FMemDataSet.RecIdField) and (LF.Tag <> 0) then + begin + SelectStr := Format('%s,%s', [SelectStr, LF.FieldName]); + LFieldList.Add(LF); + end; + end; + Delete(SelectStr, 1, 1); + + Q := FHelios.OpenSQL(Format('SELECT %s FROM %s WHERE %s=%s', + [SelectStr, plgJmenoTabulky(FTabulka), + plg_SystemoveCislo, IDStr])); + if Q.EOF then Exit; + + for II := 0 to LFieldList.Count-1 do + begin + LF := LFieldList[II]; +// if PplgAtributTabulky(LF.Tag).Typ = taGUID then +// LF.AsString := varToStr(Q.FieldValues(II)) +// else + LF.Value := Q.FieldValues(II); + end; + finally + LFieldList.Free; + end; + + // zplatneni hodnot v datasetu + with FMemDataSet do + begin + Post; First; Edit; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.PripravProEditaci: Boolean; + var + IDStr: string; +begin + Result := False; + + IDStr := varToStr(FHelios.CurrentRecordID); + if IDStr = '' then Exit; + + // nastaveni Lo(Tag) - signalizuj Oprava + FMemDataSet.Tag := (FMemDataSet.Tag and $FFFFFF00) or Lo(Cplg_tagOpravaVety); + + ZrusUdalostiDataSetu; + NactiRadek_Z_DB(IDStr); + NahodBlokovaniEditoru(False); + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ActionEdit; +begin + if not TestPredStandardnimiAkcemi(True) then Exit; + + CreateMemDataSet; + try + if not PripravProEditaci then Exit; + _VolejEditor(FMemDataSet); + finally + FreeAndNil(FMemDataSet); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ActionDelete; + var + PomStr: string; + SL: TStringList; + II: Integer; +begin + if not TestPredStandardnimiAkcemi(True) then Exit; + + SL := TStringList.Create; + try + PomStr := FHelios.SelectedRecordIDs; + if PomStr <> '' then + SL.CommaText := PomStr + else + SL.Add(varToStr(FHelios.CurrentRecordID)); + + if SL.Count > 1 then + PomStr := Format('%s (%d) ?', [plgCtiOznam(plxJadroOprPrejSmazVse), SL.Count]) + else + PomStr := plgCtiOznam(plxJadroOprPrejSmazAkt); + + if not FHelios.YesNo(PomStr, False) then Exit; + + PomStr := plgSkriptProDeleteJednohoZaznamu(FTabulka, True); + for II := 0 to SL.Count-1 do + FHelios.ExecSQL(Format(PomStr, [SL.Strings[II]])); + finally + SL.Free; + FHelios.Refresh(True); + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.SpustAkci(const GUIDAkce: string): string; + var + II: Integer; +begin + Result := ''; + + if SameText(GUIDAkce, Cplg_GUID_Instalace) then + Result := GetInstallScriptForAction(Helios, FSeznamAkci, Self.ClassName) + else + begin + II := FSeznamAkci.IndexOf(GUIDAkce); + if II = -1 then Exit; + + if Assigned(FSeznamAkci.Objects[II]) then + TplgAkctionContainer(FSeznamAkci.Objects[II]).Akce; + end; +end; + +{ ########################################################################### } + +end. diff --git a/libSys/plgBrowse.pas b/libSys/plgBrowse.pas new file mode 100644 index 0000000..c9e98d5 --- /dev/null +++ b/libSys/plgBrowse.pas @@ -0,0 +1,25 @@ +unit plgBrowse; + +interface + +uses + plgType; + +var + Cplg_SeznamVychozichNastaveniBrowse : array[TplgBrowse] of TplgVychoziNastaveniBrowse = + ( + (SelfIdent : bZadny; + ) + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgExtAkce.pas b/libSys/plgExtAkce.pas new file mode 100644 index 0000000..ce80209 --- /dev/null +++ b/libSys/plgExtAkce.pas @@ -0,0 +1,29 @@ +unit plgExtAkce; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceExtAkci : array[0..0] of TplgExtAkceDef = + ( + // aby bylo mozno nemit zadnou externi akci, + // musi zustat prvni akce nedefinovana !! + (BrowseID : 0) + + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgExtAttr.pas b/libSys/plgExtAttr.pas new file mode 100644 index 0000000..4aff235 --- /dev/null +++ b/libSys/plgExtAttr.pas @@ -0,0 +1,29 @@ +unit plgExtAttr; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceExtAttr : array[0..0] of TplgExterniAtribut = + ( + // aby bylo mozno nemit zadny externi atribut, + // musi zustat prvni akce nedefinovana !! + (JmenoTabulky : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. + diff --git a/libSys/plgExtTrigger.pas b/libSys/plgExtTrigger.pas new file mode 100644 index 0000000..187c6e7 --- /dev/null +++ b/libSys/plgExtTrigger.pas @@ -0,0 +1,27 @@ +unit plgExtTrigger; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceExtTrigger : array[0..0] of TplgExterniTrigger = + ( + // aby bylo mozno nemit zadny externi trigger, + // musi zustat prvni trigger nedefinovan !! + (JmenoTabulky : '') + + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgFunkce.pas b/libSys/plgFunkce.pas new file mode 100644 index 0000000..95fc3bd --- /dev/null +++ b/libSys/plgFunkce.pas @@ -0,0 +1,33 @@ +unit plgFunkce; + +interface + +uses + plgType; + +// !!! POZOR !!! ############################################################## +// Funkce musi byt zadana tak, aby CREATE FUNCTION bylo na jednom radku: +// napr. 'CREATE FUNCTION dbo.pf_MujPrefix_MujNazev'#13+ +// ############################################################################ + +{ =========================================================================== } + +const + SeznamUzivatelskychFunkci : array[0..0] of TplgUzivatelskaFunkce = + ( + // aby bylo mozno nemit zadnou uzivatelskou funkci :-) + // musi zustat prvni funkce definovana !! + (Text : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgHlasky.pas b/libSys/plgHlasky.pas new file mode 100644 index 0000000..53e622b --- /dev/null +++ b/libSys/plgHlasky.pas @@ -0,0 +1,28 @@ +unit plgHlasky; + +interface + +// [RK 10.10.2011] zapnuto vzdy vkuli prekladovemu portalu +{$DEFINE EdHlasky} + +uses + plgType; + +// rozsah hlasek je W=5000000-5999999 + +const + GplgHlasky : array[TplgTxt] of TplgHlaska = + ( + {$I ..\lib\plgHlaskyJadro.INC} // definice hlasek jadra + {$I ..\lib\plgHlaskyEx.INC} // definice ostatnich hlasek + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgMain.pas b/libSys/plgMain.pas new file mode 100644 index 0000000..0551116 --- /dev/null +++ b/libSys/plgMain.pas @@ -0,0 +1,2427 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgMain; + +interface + +uses + SysUtils, Messages, Forms, DBCtrls, Classes, StdCtrls, + ddPlugin_TLB, plgType, plgKonfig; + +type + TplgJakaVerze = + (jvZakladni, // '1.0' + jvMajor, // '1' + jvMinor, // '0' + jvDatumRRRRMMDD, // '20050307' + jvCela, // '1.0.2005.0307' + jvCelaUnicode, // '2.0.2009.0909 - UNICODE' + jvHexa // '010020050307' <- bez znaku $ + ); + + TplgPorovnaniVerzi = (pvStejneVerze, pvDBMaVetsi, pvDBMaMensi); + +// --- verze pluginu ---------------------------------------------------------- +function plgVerzePluginu(AJakaVerze: TplgJakaVerze): String; +function plgObecnaVerze(Averze: Int64; AJakaVerze: TplgJakaVerze): String; +function plgNactiVerziPluginuZDB(Helios: IHelios; var ZmenyOK: Boolean): String; +function plgPorovnejVerziPluginuSVerziDB(const VerzeDB: String): TplgPorovnaniVerzi; +function plgVerzeSQLServeru(AVerze: Integer): String; + +// --- prace s tabulkami a atributy ------------------------------------------- +function plgJmenoSys2Tabulka(const AJmenoSys: String): TplgTabulka; +function plgGetTabulkaDef(aTabulka : TplgTabulka): PplgTabulkaDef; +function plgJmenoTabulky(aTabulka : TplgTabulka): String; +function plgVerejneJmenoTabulky(const AJmenoSys: String) : String; +function plgAtribut(aTabulka: TplgTabulka; const AJmenoSysAtributuBezTabulky : String): PplgAtributTabulky; overload; +function plgAtribut(const AJmenoSysAtributu : String): PplgAtributTabulky; overload; +function plgSetrideneAtributy(aTabulka : TplgTabulka): TStringList; +function plgSkupinaAtributu(ATypAtributu: TplgTypAtributu) : TplgSkupinaAtributu; +function plgMuzeBytSumovat(aTypAtributu : TplgTypAtributu): Boolean; +function plgHodnotaZKonverze(JeNULL: Boolean; const Hodnota: String; SLKonverze: TStringList): String; +// pouze cisty typ (bez IDENTITY, NULL apod.) - napr. INT, VARCHAR(20), NUMERIC(19,6) +function plgTypAtributu2Str(PA: PplgAtributTabulky): String; +function plgStr2TypAtributu(const ANazevTypu: String; APrecision, AScale: Integer): TplgTypAtributu; + +// --- prehledy --------------------------------------------------------------- +function plgJmenoView2Browse(const AJmenoView: String): TplgBrowse; +function plgBrowse2BID(Helios: IHelios; Browse: TplgBrowse): Integer; +function plgBID2JmenoView(Helios: IHelios; BID: Integer): String; +function plgJeObecnyPrehled(const NazevSys: String): Boolean; overload; +function plgJeObecnyPrehled(BID: Integer): Boolean; overload; +// VBL: 21.4.2018 funkce vrac BID dle systmovho jmna +function plgJmenoView2BID(Helios: IHelios; AJmenoView: String): Integer; + +// --- databaze --------------------------------------------------------------- +function plgGetDBName(Helios: IHelios): String; +function plgExistuje(Helios: IHelios; const Tabulka, Podminka: String): Boolean; +function plgSkriptProDeleteJednohoZaznamu(Tabulka: TplgTabulka; KontrolaBE: Boolean): String; +function plgAtributExistujeVDatabazi(Helios: IHelios; const Tabulka, Atribut: String): Boolean; + +// --- zurnal ----------------------------------------------------------------- +procedure plgZapisDoZurnalu(Helios: IHelios; Uroven: Byte; Udalost: Integer; const Akce: String); + +// --- vraci nazev DLL pluginu s celou cestou --------------------------------- +function plgGetPluginPathAndName: String; + +// --- vraci cestu na TEMP adresar +function plgGetTemporaryPath: string; + +// --- vraci nazev docasneho souboru s danym prefixem (prvni 3 znaky) a priponou +function plgGetTemporaryFileName(Prefix, Extension : String): String; + +// --- testuje existenci prepinace /XX (instalace bez preruseni) -------------- +function plgJeParametrXX: Boolean; + +// --- testuje existenci prepinace /X (tichy chod) ---------------------------- +function plgJeParametrX: Boolean; + +// --- jsem v modu tiche instalace? (vynuceno bud ExtKomID = -3 nebo /XX) ----- +function plgJeTichaInstalace: Boolean; + +// --- vrati nazev pocitace --------------------------------------------------- +function plgJmenoPocitace: String; + +// --- produkt ---------------------------------------------------------------- +function plgJeToHeliosEasy(Helios: IHelios): Boolean; +function plgJeToHeliosGermany(Helios: IHelios): Boolean; + +// --- centruje form na obrazovce --------------------------------------------- +// - na rozdil od poScreenCenter bere ohled na TaskBar +procedure plgCenterForm(AForm : TForm); +// --- minimalizuje aplikaci -------------------------------------------------- +function plgMinimizeApplication(AForm: TForm; var AMessage: TWMSysCommand): Boolean; + +// --- nahozeni, shozeni a test priznaku blokovani editoru -------------------- +// - predpoklada dotaz na jeden radek !!! +function plgZablokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +function plgOdblokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +function plgJeZaznamBlokovan(Helios: IHelios; const TabName, Where : String): Boolean; + +// --- preklad hlasek --------------------------------------------------------- +function plgCtiOznam(const AHlaska: String): String; overload; +function plgCtiOznam(ATxt: TplgTxt): String; overload; +function plgPrepniJazykoveDLL(Helios: IHelios; Jazyk1, Jazyk2: Integer): Boolean; + +// --- prelozeni vyjimek s cislem vetsim nebo rovno 5000000 ----------------- +function plgPrelozException(const Hlaska: String): String; + +// --- RTTI procedury a funkce - pracuji s published atributy ----------------- +function plgHasPropertyRTTI(Instance: TObject; const aProperty : String): Boolean; +function plgGetStringPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: String): Boolean; +function plgGetObjectPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: TObject): Boolean; +procedure plgSetPropertiesOfObjectRTTI( + Instance: TObject; const AProperty: array of string; const AValues: array of const); +procedure plgSetPropertiesOfListOfObjectsRTTI( + AObjectList: TList; const AProperty: array of string; const AValues: array of const); overload; +procedure plgSetPropertiesOfListOfObjectsRTTI( + AObjectList: TStringList; const AProperty: array of string; const AValues: array of const); overload; +procedure plgSetPropertiesOfArrayOfObjectsRTTI( + const AObjectArray: array of TObject; const AProperty: array of string; const AValues: array of const); + +// --- prace s retezci -------------------------------------------------------- +// - odstrani z retezce S zadanou mnozinu znaku +function plgFilterStr(const S: String; CS: TSysCharSet): String; +// - odstrani vsechny znaky krome zadanych +function plgFilterVseKrome(const S: string; CS: TSysCharSet): string; +// - vrati retezec ze Znaku o delce Delka +function plgCharStr(Znak: Char; Delka: Integer): String; inline; +// - prevede retezec do hexa vyjadreni pouzitelne pro SQL +// - napr. '012:' -> '0x3031323A' +function plgTextToBinary(const S: AnsiString): String; +// Unicode varianta QuotedStr(), tedy N'...' (pokud pouvm v neUnicode Delphi, tak je to to sam, co QuotedStr()) } +// pouvat jen na SQL-typy: na NCHAR, NVARCHAR, NTEXT, ne nap. na DATETIME, CHAR, VARCHAR, TEXT } +function plgNQuotedStr(const S: string): string; inline; +// zrusi z GUIDStr zavorky a pomlcky +function plgGUIDBezPomlcek(const GUIDStr: String): String; + +// --- prace s Varianty ------------------------------------------------------- +// - porovna 2 varianty, funguje i s variantnim polem (s dimenzi 1) +function plgVarSameValue(const A, B: Variant): Boolean; + +// --- fonty ------------------------------------------------------------------ +function plgFontExistuje(const FaceName: String): Boolean; +function plgTestMSSansSerifFont(const AFontName: string): String; + +// --- podpora pro praci s konverzi ------------------------------------------- +// - vrati obracenou konverzi: misto 1=Ano vrati Ano=1 +function plgObracenaKonverze(const AKonverze : String) : TStringList; + +// - plni kombo externi konverzi - stejne texty, ale nektere chybi +function plgNaplnNeDBComboZVenku(ACombo: TCustomComboBox; const AKonverze : String; + ATridit: Boolean = False) : Boolean; +// - plni kombo externi konverzi +function plgNaplnComboZVenku(ADBCombo: TDBComboBox; AKonverze : String): Boolean; + +// --- podpora pro prevod hodnot do SQL skriptu ------------------------------- +// - Vrati datum ve formatu nezavislem na nastaveni SET DATETIME dmy +// - Pokud je ADate rovno 0, vraci NULL !!! +function plgGetIndependentSQLDate(ADate: TDateTime): String; +function plgGetIndependentSQLDateTime(ADateTime: TDateTime; Quotovat : Boolean = True): String; + +// - Vrati cislo jako string ve formatu SQL nezavislem na mistnim nastaveni +// - AMaska ... maska pro prikaz Format, napr. '%.2f' +function plgGetIndependentSQLFloat(const AMaska: String; ACislo: Extended): String; + +// --- zobrazi okno s memo komponentou se zadanym textem ---------------------- +procedure plgHelpForm(const ACaption, AText: String); + +// --- prace s definicemi ----------------------------------------------------- +function plgVratVztah(Index: Integer): PplgVztahDef; +function plgVratExtAkci(Index: Integer): PplgExtAkceDef; +function plgVratExtAttr(Index: Integer): PplgExterniAtribut; +function plgVratExtTrigger(Index: Integer): PplgExterniTrigger; +function plgVratZmenovySkript(Index : Integer): PplgZmenovySkript; +function plgVratUProc(Index: Integer): PplgUlozenaProcedura; +function plgVratUzivFunkci(Index: Integer): PplgUzivatelskaFunkce; + +// - kdyz neni definovana zadna tabulka, vrati tZadna a False +function plgJeNejakaTabulka(var Prvni: TplgTabulka): Boolean; +// - kdyz neni definovana zadny prehled, vrati bZadny a False +function plgJeNejakyPrehled(var Prvni: TplgBrowse): Boolean; +// - kdyz neni definovana zadny soudek, vrati sdNeniVidet a False +function plgJeNejakySoudek(var Prvni: TplgSoudek): Boolean; + +// --- konfiguracni objekt pluginu -------------------------------------------- +function PluginKonfig: TPluginKonfig; + +// --- zakladni inicializace -------------------------------------------------- +procedure InicializaceJadraPluginu(Helios: IHelios); + +// --- spusti specifickou akci nad danou tabulkou ----------------------------- +// - navratova hodnota ma smysl pouze pro akci plgGlobAkce_GenerujPrehledy +// - v takovem pripade vraci skript pro vygenerovani externich akci +function SpustAkciPluginu(Helios: IHelios; Browse: TplgBrowse; const GUIDAkce: String): String; +function SpustAkciPluginuProTab(Helios: IHelios; BrowseID: Integer; const GUIDAkce: String): String; + +// --- provede vygenerovani, popr. pregenerovani vsech zakladnich prehledu ---- +function plgExtKomIDInstalace(Helios: IHelios): Boolean; +procedure InstalacePluginu(Helios: IHelios; TichaInstalace: Boolean); + +// --- zobrazeni informace o pluginu ------------------------------------------ +procedure InformaceOPluginu(Helios: IHelios); + +// --- preklad hlasek --------------------------------------------------------- +procedure plgPresunHlaskyNaWeb(Helios: IHelios); +procedure plgStahniZWebuJazykovaDLL(Helios: IHelios); + +// --- controller pro editory ------------------------------------------------- +procedure SpustControllerEditoru(Helios: IHelios); + +var + Global_Legislativa : Integer = -1; + +{ =========================================================================== } + +implementation + +uses + Windows, Controls, Types, TypInfo, Math, ComObj, Variants, + sqIcons, + plgEdit, plgTable, plgInstalace, plgUta, plgSoudky, plgDMGlob, plgLadit, + plgUProc, plgFunkce, plgZmeny, plgExtAttr, plgExtAkce, plgExtTrigger, + plgVazby, plgHlasky, plgBrowse, plgAkce, plgAbout, plgPreklady, + plgController, plgExtController + ; + +var + InicializaceProbehla: Boolean = False; + + Global_PluginKonfig: TPluginKonfig = nil; + + AktivniJazyk1: Integer = Cplg_jJazykNedefinovan; + AktivniJazyk2: Integer = Cplg_jJazykNedefinovan; + AktivniJazyky: TStringList = nil; + +type + TplgPrekladHlasekA = function(LW: LongWord): PAnsiChar; + TplgPrekladHlasekW = function(LW: LongWord): PWideChar; + TplgPrekladHlasekCP = function(LW: LongWord; var CP: Integer): PAnsiChar; stdcall; + + TplgAktivniJazyk = class + protected + FHandle_JazykDLL: HINST; + public + destructor Destroy; override; + function CtiOznam(AHlaska: TplgTxt): string; virtual; abstract; + end; + + TplgJazykPrekladHlasekA = class(TplgAktivniJazyk) + private + FPreklad: TplgPrekladHlasekA; + public + constructor Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekA); + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + + TplgJazykPrekladHlasekW = class(TplgAktivniJazyk) + private + FPreklad: TplgPrekladHlasekW; + public + constructor Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekW); + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + + TplgJazykPrekladHlasekCP = class(TplgAktivniJazyk) + private + FPreklad: TplgPrekladHlasekCP; + public + constructor Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekCP); + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + + TplgJazykPrekladHlasek04 = class(TplgAktivniJazyk) + public + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + +{ ########################################################################### } + +destructor TplgAktivniJazyk.Destroy; +begin + if FHandle_JazykDLL <> 0 then + FreeLibrary(FHandle_JazykDLL); + + inherited; +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgJazykPrekladHlasekA.Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekA); +begin + FHandle_JazykDLL := AHandleDLL; + FPreklad := APreklad; +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasekA.CtiOznam(AHlaska: TplgTxt): string; + var + LAnsiS: RawByteString; +begin + LAnsiS := FPreklad(GplgHlasky[AHlaska].W); + SetCodePage(LAnsiS, 1250, False); //hlky "po staru" jsou vdy v CP1250 + Result := string(LAnsiS); +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgJazykPrekladHlasekW.Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekW); +begin + FHandle_JazykDLL := AHandleDLL; + FPreklad := APreklad; +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasekW.CtiOznam(AHlaska: TplgTxt): string; +begin + Result := FPreklad(GplgHlasky[AHlaska].W); +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgJazykPrekladHlasekCP.Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekCP); +begin + FHandle_JazykDLL := AHandleDLL; + FPreklad := APreklad; +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasekCP.CtiOznam(AHlaska: TplgTxt): string; + var + LAnsiS: RawByteString; + CP: Integer; +begin + LAnsiS := FPreklad(GplgHlasky[AHlaska].W, CP); + SetCodePage(LAnsiS, CP, False); + Result := string(LAnsiS); +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasek04.CtiOznam(AHlaska: TplgTxt): string; +begin + Result := GplgHlasky[AHlaska].SK; +end; + +{ =========================================================================== } + +function PluginKonfig: TPluginKonfig; +begin + if not Assigned(Global_PluginKonfig) then + Global_PluginKonfig := TPluginKonfig.Create; + + Result := Global_PluginKonfig; +end; + +{ --------------------------------------------------------------------------- } + +function SpustAkciPluginu(Helios: IHelios; Browse: TplgBrowse; const GUIDAkce: String): String; + var + plgAkcePrehleduClass: TplgAkcePrehleduClass; + frmPlgEditorClass: TfrmPlgEditorClass; + AP: TplgAkcePrehledu; +begin + with Cplg_SeznamVychozichNastaveniBrowse[Browse] do + begin + plgAkcePrehleduClass := TplgAkcePrehleduClass(DMAkceClass); + frmPlgEditorClass := TfrmPlgEditorClass(EditorClass); + end; + + if not Assigned(plgAkcePrehleduClass) then + Result := '' + else + begin + AP := plgAkcePrehleduClass.Create(Helios, Browse, frmPlgEditorClass); + plgLadit_KontrolaTridyAkce(AP); + with AP do + try + Result := SpustAkci(GUIDAkce); + finally + Free; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +function SpustAkciPluginuProTab(Helios: IHelios; BrowseID: Integer; const GUIDAkce: String): String; + var + EA: PplgExtAkceDef; + II: Integer; + plgAkcePrehleduClass: TplgAkcePrehleduClass; +begin + Result := ''; + + II := 1; + EA := plgVratExtAkci(II); + while Assigned(EA) do + begin + if EA.BrowseID = BrowseID then + begin + plgAkcePrehleduClass := TplgAkcePrehleduClass(EA.DMAkceClass); + if Assigned(plgAkcePrehleduClass) then + begin + with plgAkcePrehleduClass.CreateTab(Helios, EA) do + try + Result := SpustAkci(GUIDAkce); + finally + Free; + end; + end; + Exit; + end; + + Inc(II); + EA := plgVratExtAkci(II); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgObecnaVerze(Averze: Int64; AJakaVerze: TplgJakaVerze): String; + var + LMajor, LMinor, LDatum : String; + + { +++++++++++++++++++++++++++ } + + function UdelejCislo(ACislo: Int64): string; + begin + Result := Format('%.2x', [ACislo]); + if Result[1] = '0' then + Result := Result[2]; + end; + + { +++++++++++++++++++++++++++ } + +begin + LMajor := UdelejCislo(Lo(AVerze shr (32 + 4 + 4))); // '1' + LMinor := UdelejCislo(Lo(AVerze shr (32))); // '0' + LDatum := Format('%.8x', [LongWord(AVerze)]); // '19990924' + case AJakaVerze of + jvZakladni : Result := Format('%s.%s', [LMajor, LMinor]); + jvMajor : Result := LMajor; + jvMinor : Result := LMinor; + jvDatumRRRRMMDD : Result := LDatum; + jvCela, + jvCelaUnicode : Result := Format('%s.%s.%s.%s', [LMajor, LMinor, Copy(LDatum, 1, 4), Copy(LDatum, 5, MaxInt)]); + jvHexa : Result := Format('%.12x', [AVerze]); + else Result := ''; + end; + + if AJakaVerze = jvCelaUnicode then + Result := Result + ' - UNICODE' + {$IFDEF VER220}+' XE'{$ENDIF} + {$IFDEF VER240}+' XE3'{$ENDIF} + {$IFDEF VER280}+' XE7'{$ENDIF} + {$IFDEF VER310}+' 10.1'{$ENDIF} + {$IFDEF VER330}+' 10.3'{$ENDIF} + {$IFDEF VER340}+' 10.4'{$ENDIF} + {$IFDEF VER350}+' 11'{$ENDIF} + {$IFDEF VER360}+' 12'{$ENDIF}; +end; + +{ --------------------------------------------------------------------------- } + +function plgVerzePluginu(AJakaVerze: TplgJakaVerze): String; +begin + Result := plgObecnaVerze(CVerzePluginu, AJakaVerze); +end; + +{ --------------------------------------------------------------------------- } + +function plgVerzeSQLServeru(AVerze: Integer): String; +begin + if AVerze >= Cplg_SQLVersion_2022 then + Result := '2022' + else + if AVerze >= Cplg_SQLVersion_2019 then + Result := '2019' + else + if AVerze >= Cplg_SQLVersion_2017 then + Result := '2017' + else + if AVerze >= Cplg_SQLVersion_2016 then + Result := '2016' + else + if AVerze >= Cplg_SQLVersion_2014 then + Result := '2014' + else + if AVerze >= Cplg_SQLVersion_2012_SP2 then + Result := '2012 SP2' + else + if AVerze >= Cplg_SQLVersion_2012_SP1 then + Result := '2012 SP1' + else + if AVerze >= Cplg_SQLVersion_2012 then + Result := '2012' + else + if AVerze >= Cplg_SQLVersion_2008R2_SP3 then + Result := '2008 R2 SP3' + else + if AVerze >= Cplg_SQLVersion_2008R2_SP2 then + Result := '2008 R2 SP2' + else + if AVerze >= Cplg_SQLVersion_2008R2_SP1 then + Result := '2008 R2 SP1' + else + if AVerze >= Cplg_SQLVersion_2008R2 then + Result := '2008 R2' + else + if AVerze >= Cplg_SQLVersion_2008_SP4 then + Result := '2008 SP4' + else + if AVerze >= Cplg_SQLVersion_2008_SP3 then + Result := '2008 SP3' + else + if AVerze >= Cplg_SQLVersion_2008_SP2 then + Result := '2008 SP2' + else + if AVerze >= Cplg_SQLVersion_2008_SP1 then + Result := '2008 SP1' + else + if AVerze >= Cplg_SQLVersion_2008 then + Result := '2008' + else + if AVerze >= Cplg_SQLVersion_2005_SP3 then + Result := '2005 SP3' + else + if AVerze >= Cplg_SQLVersion_2005_SP2 then + Result := '2005 SP2' + else + if AVerze >= Cplg_SQLVersion_2005_SP1 then + Result := '2005 SP1' + else + if AVerze >= Cplg_SQLVersion_2005 then + Result := '2005' + else + if AVerze >= Cplg_SQLVersion_2000_SP4 then + Result := '2000 SP4' + else + if AVerze >= Cplg_SQLVersion_2000_SP3 then + Result := '2000 SP3' + else + if AVerze >= Cplg_SQLVersion_2000_SP2 then + Result := '2000 SP2' + else + if AVerze >= Cplg_SQLVersion_2000_SP1 then + Result := '2000 SP1' + else + if AVerze >= Cplg_SQLVersion_2000 then + Result := '2000' + else + if AVerze >= Cplg_SQLVersion_7_0_SP4 then + Result := '7.00 SP4' + else + if AVerze >= Cplg_SQLVersion_7_0_SP3 then + Result := '7.00 SP3' + else + if AVerze >= Cplg_SQLVersion_7_0_SP2 then + Result := '7.00 SP2' + else + if AVerze >= Cplg_SQLVersion_7_0_SP1 then + Result := '7.00 SP1' + else + Result := '7.00'; + + Result := Format('MS SQL Server %s', [Result]); +end; + +{ --------------------------------------------------------------------------- } + +function plgNactiVerziPluginuZDB(Helios: IHelios; var ZmenyOK: Boolean): String; + var + Q: IHeQuery; +begin + Q := Helios.OpenSQL( + Format( + 'IF EXISTS(SELECT*FROM TabPluginInfo WHERE NazevSys=%s)'#13+ + 'SELECT VerzePluginu, CAST(ZmenyOK AS INT) FROM TabPluginInfo WHERE NazevSys=%0:s'#13+ + 'ELSE'#13+ + 'SELECT %s, CAST(0 AS INT)', + [plgNQuotedStr(PluginKonfig.PluginSystemoveJmeno), + plgNQuotedStr(Cplg_VerzePluginu_Nula_Str)])); + + Result := varToStr(Q.FieldValues(0)); + ZmenyOK := (Q.FieldValues(1) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgPorovnejVerziPluginuSVerziDB(const VerzeDB: String): TplgPorovnaniVerzi; + var + VerzePlg: String; +begin + VerzePlg := plgVerzePluginu(jvHexa); + + if SameText(VerzeDB, VerzePlg) then + Result := pvStejneVerze + else + if VerzeDB > VerzePlg then + Result := pvDBMaVetsi + else + Result := pvDBMaMensi; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetDBName(Helios: IHelios): String; +begin + Result := varToStr(Helios.OpenSQL('SELECT DB_NAME()').FieldValues(0)); +end; + +{ --------------------------------------------------------------------------- } + +function plgExistuje(Helios: IHelios; const Tabulka, Podminka: String): Boolean; +begin + Result := + (Helios.OpenSQL( + Format('IF EXISTS(SELECT*FROM %s WHERE %s) SELECT 1 ELSE SELECT 0', + [Tabulka, Podminka])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgAtributExistujeVDatabazi(Helios: IHelios; const Tabulka, Atribut: String): Boolean; +begin + Result := + (Helios.OpenSQL( + Format('IF COLUMNPROPERTY(OBJECT_ID(N''%s'',N''U''),N''%s'',N''AllowsNull'')IS NOT NULL SELECT 1 ELSE SELECT 0', + [Tabulka, Atribut])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgZapisDoZurnalu(Helios: IHelios; Uroven: Byte; Udalost: Integer; const Akce: String); + var + InfoText: String; +begin + InfoText := Copy(PluginKonfig.PluginSystemoveJmeno + ' - ' + Akce, 1, 255); + Helios.ExecSQL( + Format('EXEC dbo.hp_ZapisDoZurnalu %d,%d,%s', + [Uroven, Udalost, plgNQuotedStr(InfoText)])); +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoSys2Tabulka(const AJmenoSys: String): TplgTabulka; +begin + if plgJeNejakaTabulka(Result) and (Trim(AJmenoSys) <> '') then + for Result := Result to High(TplgTabulka) do + if SameText(AJmenoSys, Cplg_SeznamTabulek[Result].JmenoSys) then Exit; + + // nic jsme nenalezli + Result := tZadna; +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoView2Browse(const AJmenoView: String): TplgBrowse; +begin + if plgJeNejakyPrehled(Result) and (Trim(AJmenoView) <> '') then + for Result := Result to High(TplgBrowse) do + if SameText(AJmenoView, Cplg_SeznamVychozichNastaveniBrowse[Result].JmenoView) then Exit; + + // nic jsme nenalezli + Result := bZadny; +end; + +{ --------------------------------------------------------------------------- } + +function plgBrowse2BID(Helios: IHelios; Browse: TplgBrowse): Integer; + var + Q: IHeQuery; +begin + with Cplg_SeznamVychozichNastaveniBrowse[Browse] do + begin + if JmenoView = '' then + Result := 0 + else + if not plgJeObecnyPrehled(JmenoView) then + Result := 0 + else + begin + Q := Helios.OpenSQL( + Format('SELECT Cislo FROM TabObecnyPrehled WHERE NazevSys=%s', + [plgNQuotedStr(JmenoView)])); + // [RK 26.07.2005] doplnena vyjimka + if Q.RecordCount = 0 then + raise Exception.Create( + Format(plgCtiOznam(plxJadroNebylNalezenPrehled_X_Y)+#13#13#1'%s'#1, + [JmenoView, Jmeno, + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu)])) + else + Result := Q.FieldValues(0) + Cplg_ObecnePohledy_BID_Base; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgBID2JmenoView(Helios: IHelios; BID: Integer): String; + var + Q: IHeQuery; +begin + if not plgJeObecnyPrehled(BID) then + Result := '' + else + begin + Q := Helios.OpenSQL( + Format('SELECT NazevSys FROM TabObecnyPrehled WHERE Cislo=%d', + [BID - Cplg_ObecnePohledy_BID_Base])); + + if Q.RecordCount = 0 then + raise Exception.Create( + Format(plgCtiOznam(plxJadroNebylNalezenPrehledCislo_X)+#13#13#1'%s'#1, + [BID - Cplg_ObecnePohledy_BID_Base, + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu)])) + else + Result := varToStr(Q.FieldValues(0)); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeObecnyPrehled(const NazevSys: String): Boolean; +begin + Result := SameText(Cplg_View_Prefix, Copy(NazevSys, 1, Cplg_View_PrefixLen)); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeObecnyPrehled(BID: Integer): Boolean; +begin + Result := (BID >= Cplg_ObecnePohledy_BID_Base); +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoView2BID(Helios: IHelios; AJmenoView: String): Integer; + var + Q: IHeQuery; +begin + Result := 0; + if (Trim(AJmenoView) <> '') and plgJeObecnyPrehled(AJmenoView) then + begin + Q := Helios.OpenSQL(Format('SELECT Cislo FROM TabObecnyPrehled WHERE NazevSys=%s', [plgNQuotedStr(AJmenoView)])); + if Q.RecordCount = 0 then + raise Exception.Create(Format(plgCtiOznam(plxJadroNebylNalezenPrehled_X_Y),[AJmenoView, AJmenoView])) + else + Result := Q.FieldValues(0) + Cplg_ObecnePohledy_BID_Base; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetTabulkaDef(aTabulka : TplgTabulka): PplgTabulkaDef; +begin + Result := Cplg_SeznamTabulek[ATabulka]; +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoTabulky(aTabulka : TplgTabulka): String; +begin + if Assigned(Cplg_SeznamTabulek[aTabulka]) then + Result := Cplg_SeznamTabulek[aTabulka].JmenoSys + else + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgMuzeBytSumovat(aTypAtributu : TplgTypAtributu): Boolean; +begin + Result := (not (aTypAtributu in [taBoolean])) and + (plgSkupinaAtributu(aTypAtributu) in [skpCelaCisla, skpDesetinnaCisla]); +end; + +{ --------------------------------------------------------------------------- } + +function plgHodnotaZKonverze(JeNULL: Boolean; const Hodnota: String; SLKonverze: TStringList): String; +begin + if not JeNULL then + begin + if SLKonverze.IndexOfName(Hodnota) <> -1 then + Result := SLKonverze.Values[Hodnota] + else + Result := Hodnota; + end + else + begin + if SLKonverze.IndexOfName('NULL') > -1 then + Result := SLKonverze.Values['NULL'] + else + Result := plgCtiOznam(plxJadroNeni); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgSkupinaAtributu(ATypAtributu: TplgTypAtributu) : TplgSkupinaAtributu; +begin + case ATypAtributu of + taInt, + taIdentity, + taInt64, + taIdentity64, + taSmallInt, + taByte, + taBoolean: + Result := skpCelaCisla; + + taNVarChar, + taNChar, + taNText, + taVarChar, + taChar, + taText: + Result := skpRetezce; + + taDateTime, + taTime: + Result := skpDatumy; + + taFloat, + taNumeric_4_2, + taNumeric_5_2, + taNumeric_7_2, + taNumeric_9_2, + taNumeric_15_0, + taNumeric_19_2, + taNumeric_19_6, + taNumeric_20_6, + taNumeric_28_0: + Result := skpDesetinnaCisla; + +// taGUID, + taBinary, + taImage: + Result := skpBinarni; + + else + Result := skpZadna; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgTypAtributu2Str(PA: PplgAtributTabulky): String; +begin + Result := UpperCase(Cplg_GTypy[PA.Typ].T); + if (Pos('CHAR', Result) > 0) or (Pos('BINARY', Result) > 0) then + begin + if PA.Delka=Cplg_DelkaNVarcharMax then + Result := Format('%s(%s)', [Result, 'MAX']) //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + else + Result := Format('%s(%d)', [Result, PA.Delka]) + end + else + if SameText(Result, 'NUMERIC') then + Result := Format('%s(%d,%d)', [Result, Cplg_GTypy[PA.Typ].P, Cplg_GTypy[PA.Typ].S]); +end; + +{ --------------------------------------------------------------------------- } + +function plgStr2TypAtributu(const ANazevTypu: String; APrecision, AScale: Integer): TplgTypAtributu; + var + TT: TplgTypAtributu; + JeNumeric: Boolean; +begin + Result := taBlbe; + + if SameText(ANazevTypu, 'BIGINT IDENTITY') then + begin + Result := taIdentity64; + Exit; + end; + + if SameText(ANazevTypu, 'INT IDENTITY') then + begin + Result := taIdentity; + Exit; + end; + + if APrecision = -1 then + begin + if SameText(ANazevTypu, 'NVARCHAR') then Exit(taNText); + if SameText(ANazevTypu, 'VARCHAR') then Exit(taText); + end; + + JeNumeric := SameText(ANazevTypu, 'NUMERIC'); + + for TT := Succ(Low(TplgTypAtributu)) to High(TplgTypAtributu) do + begin + if SameText(ANazevTypu, Cplg_GTypy[TT].T) then + begin + if not JeNumeric then + begin + Result := TT; + Exit; + end; + + if (Cplg_GTypy[TT].P = APrecision) and (Cplg_GTypy[TT].S = AScale) then + begin + Result := TT; + Exit; + end; + end; + end; + + // pokud to je numeric a nemam ho definovany, tak vezmi ten "nejvetsi" + if JeNumeric then + Result := taNumeric_20_6; +end; + +{ --------------------------------------------------------------------------- } + +function plgVerejneJmenoTabulky(const AJmenoSys: String): String; + var + LTabulka: TplgTabulka; +begin + if plgJeNejakaTabulka(LTabulka) and (Trim(AJmenoSys) <> '') then + for LTabulka := LTabulka to High(TplgTabulka) do + if SameText(AJmenoSys, Cplg_SeznamTabulek[LTabulka].JmenoSys) then + begin + Result := Cplg_SeznamTabulek[LTabulka].Jmeno; + Exit; {!} + end; + + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgSetrideneAtributy(aTabulka: TplgTabulka): TStringList; + var + PA : PplgAtributTabulky; + II : Integer; +begin + Result := TStringList.Create; + if Cplg_SeznamTabulek[aTabulka] = nil then Exit; + + with Cplg_SeznamTabulek[aTabulka]^ do + begin + PA := Atributy; + for II := 1 to PocetAtributu do + begin + Result.AddObject(PA.JmenoSys, TObject(PA)); + Inc(PA); + end; + end; + Result.Sorted := True; // setrideni az na zaver (je to nejrychlejsi) +end; + +{ --------------------------------------------------------------------------- } + +function plgAtribut(aTabulka : TplgTabulka; + const AJmenoSysAtributuBezTabulky : String): PplgAtributTabulky; + var + PA : PplgAtributTabulky; + II : Integer; +begin + if Cplg_SeznamTabulek[aTabulka] <> nil then + begin + with Cplg_SeznamTabulek[aTabulka]^ do + begin + PA := Atributy; + for II := 1 to PocetAtributu do + begin + if SameText(AJmenoSysAtributuBezTabulky, PA.JmenoSys) then + begin + Result := PA; + Exit; {!} + end; + Inc(PA); + end; + end; + end; + + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgAtribut(const AJmenoSysAtributu : String): PplgAtributTabulky; + var + I: Integer; + LJmenoSysTabulky, + LJmenoSysAtributu: String; + LTabulka: TplgTabulka; +begin + Result := nil; + + I := Pos('.', AJmenoSysAtributu); + if I = 0 then Exit; + + LJmenoSysTabulky := Copy(AJmenoSysAtributu, 1, I-1); + LJmenoSysAtributu := Copy(AJmenoSysAtributu, I+1, MaxInt); + + LTabulka := plgJmenoSys2Tabulka(LJmenoSysTabulky); + Result := plgAtribut(LTabulka, LJmenoSysAtributu); +end; + +{ --------------------------------------------------------------------------- } + +function plgSkriptProDeleteJednohoZaznamu(Tabulka: TplgTabulka; KontrolaBE: Boolean): String; + var + PD: PplgTabulkaDef; +begin + PD := plgGetTabulkaDef(Tabulka); + + if KontrolaBE and (plgAtribut(Tabulka, plg_BlokovaniEditoru) <> nil) then + Result := Format('IF EXISTS(SELECT*FROM %s WHERE ' + plg_SystemoveCislo + '=@ID'+ + ' AND ' + plg_BlokovaniEditoru + ' IS NOT NULL)'#13+ + 'BEGIN'#13+ + 'RAISERROR(%s, 16, 1)'#13+ + 'RETURN'#13+ + 'END'#13, + [PD.JmenoSys, plgNQuotedStr(plgCtiOznam(plxJadroZaznamJeBlokovanNelzeSmazat))]) + else + Result := ''; + + Result := + Format( + 'DECLARE @ID INT'#13+ + 'SET @ID = %s'#13+ + '%s', // test blokovani editoru + ['%s', Result]); + + if PD.TriggerBeforeDelete = '' then + Result := + Format( + '%s'#13+ + 'DELETE %s WHERE ' + plg_SystemoveCislo + '=@ID', + [Result, PD.JmenoSys]) + else + Result := + Format( + '%s'#13+ + 'DECLARE @Mazat BIT'#13+ + 'SET @Mazat = 1'#13+ // moznost v TriggerBeforeDelete vypnout mazani + + 'BEGIN TRANSACTION'#13+ + + '%s'#13+ // TriggerBeforeDelete + 'IF @@ERROR <> 0 GOTO CHYBAROLLBACK'#13+ + + 'IF @Mazat = 1'#13+ + 'BEGIN'#13+ + 'DELETE %s WHERE ' + plg_SystemoveCislo + '=@ID'#13+ + 'IF @@ERROR <> 0 GOTO CHYBAROLLBACK'#13+ + 'END'#13+ + + 'IF @@TRANCOUNT <> 0 COMMIT'#13+ + 'RETURN'#13+ + + 'CHYBAROLLBACK:'#13+ + 'IF @@TRANCOUNT <> 0 ROLLBACK', + [Result, PD.TriggerBeforeDelete, PD.JmenoSys]); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetPluginPathAndName: String; + var + PomName: array[0..MAX_PATH] of Char; +begin + SetString(Result, PomName, GetModuleFileName(hInstance, PomName, SizeOf(PomName))); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetTemporaryPath: string; +begin + // cesta na TEMP adresar + SetLength(Result, MAX_PATH); + SetLength(Result, Windows.GetTempPath(MAX_PATH, PChar(Result))); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetTemporaryFileName(Prefix, Extension : String): String; + var + Temp : String; + Pocet : Integer; + Existuje : Boolean; +begin + // cesta na TEMP adresar + Temp := plgGetTemporaryPath; + + Pocet := 0; + repeat + Result := StringOfChar(#0, MAX_PATH); + // tato funkce nevraci vyslednou delku jako napr. GetTempPath + GetTempFileName(PChar(Temp), PChar(Prefix), 0, PChar(Result)); + Result := StrPas(PChar(Result)); + + if Length(Extension) > 0 then + begin + if Extension[1] <> '.' then + Extension := '.' + Extension; + + Temp := Result; + Result := ChangeFileExt(Temp, Extension); + + // zruseni puvodniho souboru (ma koncovku TMP) + if not SameText(Temp, Result) then + if FileExists(Temp) then SysUtils.DeleteFile(Temp); + + // pokud soubor existuje, tak to projedu cele znovu (max. 10x) + Existuje := FileExists(Result); + end + else + Existuje := False; + + Inc(Pocet); + until (not Existuje) or (Pocet >= 10); + + if Existuje then Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoPocitace: String; + var + DW: DWORD; +begin + DW := MAX_COMPUTERNAME_LENGTH + 1; + SetLength(Result, DW); + if GetComputerName(PChar(Result), DW) then + SetLength(Result, DW) + else + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeToHeliosEasy(Helios: IHelios): Boolean; + var + S: string; +begin + S := Copy(Helios.SerNum, 1, Cplg_SerNum_PrefixLen); + Result := SameText(S, Cplg_Prefix_SN_HEED) or SameText(S, Cplg_Prefix_SN_HEEF); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeToHeliosGermany(Helios: IHelios): Boolean; + var + S: string; +begin + S := Copy(Helios.SerNum, 1, Cplg_SerNum_PrefixLen); + Result := SameText(S, Cplg_Prefix_SN_ASDT) or SameText(S, Cplg_Prefix_SN_ASDE); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgCenterForm(AForm: TForm); + var + LRect: TRect; + LMon: TMonitor; +begin + // [RK 26.05.2010] centrovani na monitoru, kde okno lezi + with AForm do + begin + LMon := Monitor; + if LMon <> nil then + LRect := LMon.WorkareaRect + else + LRect := Screen.WorkareaRect; + + SetBounds(LRect.Left + ((RectWidth(LRect) - Width) div 2), + LRect.Top + ((RectHeight(LRect) - Height) div 2), Width, Height); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgMinimizeApplication(AForm: TForm; var AMessage: TWMSysCommand): Boolean; +begin + // [RK 18.08.2011] uprava podle Heliosu + Result := ((AMessage.CmdType and $FFF0) = SC_MINIMIZE); + if Result then + begin + AMessage.Result := 0; + EnableWindow(Application.Handle, True); + ShowWindow(Application.Handle, SW_MINIMIZE); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgZablokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +begin + // pokud ho neblokuje nekdo jiny, tak ho muzu zablokovat + Result := + (Helios.OpenSQL( + Format( + 'IF (SELECT ' + plg_BlokovaniEditoru + ' FROM %s WHERE %s) IS NULL'#13+ + 'BEGIN'#13+ + 'UPDATE %0:s SET ' + plg_BlokovaniEditoru + '=%2:d WHERE %1:s'#13+ + 'SELECT 1'#13+ + 'END'#13+ + 'ELSE'#13+ + 'SELECT 0', + [{0}TabName, {1}Where, {2}Helios.UserId])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgOdblokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +begin + // pokud ho blokuji ja, tak muzu odblokovat + Result := + (Helios.OpenSQL( + Format( + 'IF (SELECT ' + plg_BlokovaniEditoru + ' FROM %s WHERE %s)=%d'#13+ + 'BEGIN'#13+ + 'UPDATE %0:s SET ' + plg_BlokovaniEditoru + '=NULL WHERE %s'#13+ + 'SELECT 1'#13+ + 'END'#13+ + 'ELSE'#13+ + 'SELECT 0', + [{0}TabName, {1}Where, {2}Helios.UserId])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeZaznamBlokovan(Helios: IHelios; const TabName, Where : String): Boolean; +begin + Result := + (Helios.OpenSQL( + Format( + 'IF (SELECT ' + plg_BlokovaniEditoru + ' FROM %s WHERE %s) IS NULL SELECT 0 ELSE SELECT 1', + [{0}TabName, {1}Where])).FieldValues(0) = 1); +end; + +{ =========================================================================== } + +function _plgCtiOznam1(AHlaska: TplgTxt): String; +begin + Result := GplgHlasky[AHlaska].H; +end; + +{ --------------------------------------------------------------------------- } + +function _plgCtiOznamX(AHlaska: TplgTxt): String; // cizi jazyky + var + II: Integer; +begin + for II := 0 to AktivniJazyky.Count-1 do + begin + Result := TplgAktivniJazyk(AktivniJazyky.Objects[II]).CtiOznam(AHlaska); + if Result <> '' then Exit; + end; + + Result := GplgHlasky[AHlaska].H; +end; + +{ --------------------------------------------------------------------------- } + +var + { default je etina s diakritikou (1) } + _plgCtiOznam : function(ATxt : TplgTxt) : String = _plgCtiOznam1; + +{ --------------------------------------------------------------------------- } + +function plgCtiOznam(ATxt: TplgTxt): String; +begin + Result := _plgCtiOznam(ATxt); +end; + +{ --------------------------------------------------------------------------- } + +function plgCtiOznam(const AHlaska: String): String; +begin + Result := AHlaska; +end; + +{ =========================================================================== } + +function plgPrelozException(const Hlaska: String): String; + var + LTxt: TplgTxt; + Cislo: Integer; +begin + Cislo := StrToIntDef(Hlaska, -1); + if Cislo >= Cplg_HlaskyBase then + for LTxt := Succ(Low(TplgTxt)) to High(TplgTxt) do + if Cislo = Integer(GplgHlasky[LTxt].W) then // pretypovani, aby nerval kompilator warning + begin + // [RK 18.07.2008] nebylo pres plgCtiOznam() + Result := plgCtiOznam(LTxt); //GplgHlasky[LTxt].H; + Exit; + end; + + Result := Hlaska; +end; + +{ --------------------------------------------------------------------------- } + +function plgHasPropertyRTTI(Instance: TObject; const aProperty : String): Boolean; +begin + Result := Assigned(GetPropInfo(Instance, aProperty)); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetStringPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: String): Boolean; + var + PropInfo : PPropInfo; +begin + PropInfo := GetPropInfo(Instance, aProperty); + if Assigned(PropInfo) then + begin + aValue := GetStrProp(Instance, PropInfo); + Result := True; + end + else + Result := False; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetObjectPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: TObject): Boolean; + var + PropInfo : PPropInfo; +begin + PropInfo := GetPropInfo(Instance, aProperty); + if Assigned(PropInfo) then + begin + aValue := GetObjectProp(Instance, PropInfo); + Result := True; + end + else + Result := False; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfObjectRTTI( Instance : TObject; + const AProperty : array of string; + const AValues : array of const); + var + JJ : Integer; + PropInfo : PPropInfo; + + { +++++++++++++++++++++++++++ } + + procedure _RaiseErrorVar(const aPropKind: String; aVarKind: Integer); + begin + raise + Exception.Create( + Format('plgMain.plgSetPropertiesOfObjectRTTI: nezapojeny typ variantu (%s,%d)', + [aPropKind, aVarKind])); + end; + + { +++++++++++++++++++++++++++ } + +begin + if not Assigned(Instance) then Exit; + + for JJ := Low(AProperty) to High(AProperty) do + begin + PropInfo := GetPropInfo(Instance, AProperty[JJ]); + if Assigned(PropInfo) then + begin + case PropInfo^.PropType^^.Kind of + tkInteger: + case AValues[JJ].VType of + vtInteger: + SetOrdProp(Instance, PropInfo, AValues[JJ].VInteger); + else + _RaiseErrorVar('tkInteger', AValues[JJ].VType); + end; + + tkEnumeration: + case AValues[JJ].VType of + vtBoolean: + SetEnumProp(Instance, PropInfo, BooleanIdents[AValues[JJ].VBoolean]); + vtString: + SetEnumProp(Instance, PropInfo, string(AValues[JJ].VString^)); + vtAnsiString: + SetEnumProp(Instance, PropInfo, string(AnsiString(AValues[JJ].VAnsiString))); + vtWideString: + SetEnumProp(Instance, PropInfo, WideString(AValues[JJ].VWideString)); + vtUnicodeString: + SetEnumProp(Instance, PropInfo, UnicodeString(AValues[JJ].VUnicodeString)); + else + _RaiseErrorVar('tkEnumeration', AValues[JJ].VType); + end; + + tkClass: + case AValues[JJ].VType of + vtObject: + SetObjectProp(Instance, PropInfo, AValues[JJ].VObject); + vtPointer: + SetObjectProp(Instance, PropInfo, TObject(AValues[JJ].VPointer)); + else + _RaiseErrorVar('tkClass', AValues[JJ].VType); + end; + + tkString, tkLString, tkWString, tkUString: + case AValues[JJ].VType of + vtString: + SetStrProp(Instance, PropInfo, string(AValues[JJ].VString^)); + vtAnsiString: + SetAnsiStrProp(Instance, PropInfo, AnsiString(AValues[JJ].VAnsiString)); + vtWideString: + SetWideStrProp(Instance, PropInfo, WideString(AValues[JJ].VWideString)); + vtUnicodeString: + SetUnicodeStrProp(Instance, PropInfo, UnicodeString(AValues[JJ].VUnicodeString)); + else + _RaiseErrorVar('tkString/tkLString/tkWString/tkUString', AValues[JJ].VType); + end; + + else + raise + Exception.Create( + Format('plgMain.plgSetPropertiesOfObjectRTTI: nezapojeny typ property (%d)', + [Integer(PropInfo^.PropType^^.Kind)])); + end; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfListOfObjectsRTTI( AObjectList : TList; + const AProperty : array of string; + const AValues : array of const); + var + II : Integer; +begin + if Assigned(AObjectList) then + for II := 0 to AObjectList.Count - 1 do + plgSetPropertiesOfObjectRTTI(TObject(AObjectList.Items[II]), AProperty, AValues); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfListOfObjectsRTTI( AObjectList : TStringList; + const AProperty : array of string; + const AValues : array of const); + var + II : Integer; +begin + if Assigned(AObjectList) then + for II := 0 to AObjectList.Count - 1 do + plgSetPropertiesOfObjectRTTI(AObjectList.Objects[II], AProperty, AValues); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfArrayOfObjectsRTTI(const AObjectArray : array of TObject; + const AProperty : array of string; + const AValues : array of const); + var + II : Integer; +begin + for II := Low(AObjectArray) to High(AObjectArray) do + plgSetPropertiesOfObjectRTTI(TObject(AObjectArray[II]), AProperty, AValues); +end; + +{ --------------------------------------------------------------------------- } + +function plgFilterStr(const S: String; CS: TSysCharSet): String; + var + II : Integer; +begin + Result := ''; + for II := 1 to Length(S) do + if not CharInSet(S[II], CS) then + Result := Result + S[II]; +end; + +{ ---------------------------------------------------------------------------- } + +function plgFilterVseKrome(const S: string; CS: TSysCharSet): string; + var + II : Integer; +begin + Result := ''; + for II := 1 to Length(S) do + if CharInSet(S[II], CS) then + Result := Result + S[II]; +end; + +{ --------------------------------------------------------------------------- } + +function plgCharStr(Znak: Char; Delka: Integer): String; +begin + Result := StringOfChar(Znak, Delka); +end; + +{ ---------------------------------------------------------------------------- } + +function plgTextToBinary(const S: AnsiString): String; + var + BufSize: Integer; +begin + BufSize := Length(S); + SetLength(Result, 2 + (2 * BufSize)); + Result[1] := '0'; + Result[2] := 'x'; + Classes.BinToHex(PAnsiChar(S), PWideChar(Result) + 2, BufSize); +end; + +{ --------------------------------------------------------------------------- } + +function plgNQuotedStr(const S: string): string; inline; +begin + Result := 'N' + SysUtils.QuotedStr(S); +end; + +{ --------------------------------------------------------------------------- } + +function plgGUIDBezPomlcek(const GUIDStr: String): String; +begin + Result := plgFilterStr(GUIDStr, ['{','-','}']); +end; + +{ --------------------------------------------------------------------------- } + +function plgVarSameValue(const A, B: Variant): Boolean; + var + II, XLo, XHi: Integer; +begin + if VarIsArray(A) or VarIsArray(B) then + begin + Result := False; + + // pole a nepole jsou si vdy nerovna + if (not VarIsArray(A)) or + (not VarIsArray(B)) then Exit; + + // ob pole mus mt prv jednu dimenzi + if (VarArrayDimCount(A) <> 1) or + (VarArrayDimCount(B) <> 1) then Exit; + + // pole se povauj za shodn, pokud maj stejn doln a horn index + XLo := VarArrayLowBound(A, 1); + XHi := VarArrayHighBound(A, 1); + if (XLo <> VarArrayLowBound(B, 1)) or + (XHi <> VarArrayHighBound(B, 1)) then Exit; + + // mohu porovnvat + for II := XLo to XHi do + if not VarSameValue(A[II], B[II]) then Exit; + + // kdy to dolo a sem, tak se rovnaj + Result := True; + end + else + // ani A ani B nen pole, mohu "postaru" + Result := VarSameValue(A, B); +end; + +{ --------------------------------------------------------------------------- } + +function plgObracenaKonverze(const AKonverze : String) : TStringList; + var + II, JJ : Integer; + PomStr : String; +begin + Result := TStringList.Create; + Result.Text := AKonverze; + for II := 0 to Result.Count-1 do + begin + PomStr := Result[II]; + JJ := Pos('=', PomStr); + Result[II] := Format('%s=%s', [Copy(PomStr, JJ+1, MaxInt), Copy(PomStr, 1, JJ-1)]); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgNaplnNeDBComboZVenku(ACombo : TCustomComboBox; const AKonverze : String; + ATridit: Boolean = False) : Boolean; + var + II, JJ : Integer; + SL : TStringList; +begin + Result := True; + + if Trim(AKonverze) = '' then Exit; + + SL := TStringList.Create; + try + SL.Text := AKonverze; + for II := 0 to SL.Count-1 do + begin + JJ := Pos('=', SL.Strings[II]); + // zapamatuj si skutecnou "DB" hodnotu + if ATridit then + SL.Objects[II] := TObject(StrToIntDef(Copy(SL.Strings[II], 1, JJ-1), -1)); + SL.Strings[II] := Copy(SL.Strings[II], JJ+1, MaxInt); + end; + + // setrideni seznamu + if ATridit then SL.Sorted := True; + + // zde se zavola DataChange a tim se nastavi aktualni hodnota + ACombo.Items := SL; + finally + SL.Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgNaplnComboZVenku(ADBCombo : TDBComboBox; AKonverze : String): Boolean; +begin + Result := plgNaplnNeDBComboZVenku(ADBCombo, AKonverze); + + // pokud se nezdari nastavit ItemIndex komponente, udelam to za ni - FM + if ADBCombo.ItemIndex = -1 then + if Assigned(ADBCombo.Field) then + ADBCombo.ItemIndex := ADBCombo.Items.IndexOf(ADBCombo.Field.Text); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetIndependentSQLDate(ADate: TDateTime): String; +begin + if ADate = 0 then + Result := 'NULL' + else + {! NEMENIT ! Tento format data je pro SQL nezavisly !} + Result := QuotedStr(FormatDateTime('yyyymmdd', ADate)); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetIndependentSQLDateTime(ADateTime: TDateTime; Quotovat : Boolean = True): String; +begin + if ADateTime = 0 then + Result := 'NULL' + else + {! NEMENIT ! Tento format data je pro SQL nezavisly !} + begin + Result := FormatDateTime('yyyymmdd hh":"nn":"ss.zzz', ADateTime); + if Quotovat then + Result := QuotedStr(Result); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetIndependentSQLFloat(const AMaska: String; ACislo: Extended): String; + var + OldThousandSeparator : Char; + OldDecimalSeparator : Char; +begin + OldThousandSeparator := FormatSettings.ThousandSeparator; + OldDecimalSeparator := FormatSettings.DecimalSeparator; + + // pro jistotu, kdyby byly nastaveny oba stejne v mistnim nastaveni + FormatSettings.ThousandSeparator := ','; + FormatSettings.DecimalSeparator := '.'; {! NEMENIT ! SQL Server pouziva tecku !} + + try + // prevod cisla a vybagrovani oddelovace tisicu a prebytecnych mezer + Result := plgFilterStr(Format(AMaska, [ACislo]), [FormatSettings.ThousandSeparator, ' ']); + finally + FormatSettings.ThousandSeparator := OldThousandSeparator; + FormatSettings.DecimalSeparator := OldDecimalSeparator; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgHelpForm(const ACaption, AText: String); + var + LForm : TForm; +begin + LForm := TForm.CreateNew(nil); + try + with TButton.Create(LForm) do + begin + Parent := LForm; + Cancel := True; + ModalResult := mrCancel; + Width := 0; + Height := 0; + end; + + with TMemo.Create(LForm) do + begin + Parent := LForm; + Align := alClient; + Lines.Text := AText; + ReadOnly := True; + end; + + with LForm do + begin + Caption := ACaption; + Font.Height := -11; + WindowState := wsMaximized; + + ShowModal; + end; + finally + LForm.Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratVztah(Index: Integer): PplgVztahDef; +begin + if (Index >= Low(GDefiniceVztahu)) and (Index <= High(GDefiniceVztahu)) then + Result := @GDefiniceVztahu[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratExtAkci(Index: Integer): PplgExtAkceDef; +begin + if (Index >= Low(GDefiniceExtAkci)) and (Index <= High(GDefiniceExtAkci)) then + Result := @GDefiniceExtAkci[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratExtAttr(Index: Integer): PplgExterniAtribut; +begin + if (Index >= Low(GDefiniceExtAttr)) and (Index <= High(GDefiniceExtAttr)) then + Result := @GDefiniceExtAttr[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratExtTrigger(Index: Integer): PplgExterniTrigger; +begin + if (Index >= Low(GDefiniceExtTrigger)) and (Index <= High(GDefiniceExtTrigger)) then + Result := @GDefiniceExtTrigger[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratZmenovySkript(Index : Integer): PplgZmenovySkript; +begin + if (Index >= Low(GZmenoveSkripty)) and (Index <= High(GZmenoveSkripty)) then + Result := @GZmenoveSkripty[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratUProc(Index: Integer): PplgUlozenaProcedura; +begin + if (Index >= Low(SeznamUlozenychProcedur)) and (Index <= High(SeznamUlozenychProcedur)) then + Result := @SeznamUlozenychProcedur[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratUzivFunkci(Index: Integer): PplgUzivatelskaFunkce; +begin + if (Index >= Low(SeznamUzivatelskychFunkci)) and (Index <= High(SeznamUzivatelskychFunkci)) then + Result := @SeznamUzivatelskychFunkci[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeNejakaTabulka(var Prvni: TplgTabulka): Boolean; +begin + Prvni := tZadna; + + Result := High(TplgTabulka) > Prvni; + if Result and (Cplg_SeznamTabulek[tZadna] = nil) then + Prvni := Succ(Prvni); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeNejakyPrehled(var Prvni: TplgBrowse): Boolean; +begin + Prvni := bZadny; + + Result := High(TplgBrowse) > Prvni; + if Result then + Prvni := Succ(Prvni); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeNejakySoudek(var Prvni: TplgSoudek): Boolean; +begin + Prvni := sdNeniVidet; + + Result := High(TplgSoudek) > Prvni; + if Result then + Prvni := Succ(Prvni); +end; + +{ --------------------------------------------------------------------------- } + +function FontExistsCallback(const lplf: TLogFont; const lptm: TTextMetric; + dwType: DWORD; lpData: LPARAM): Integer; stdcall; +begin + Boolean(Pointer(lpData)^) := True; + Result := 1; +end; + +{ --------------------------------------------------------------------------- } + +function plgFontExistuje(const FaceName: String): Boolean; + var + DC: HDC; +begin + Result := False; + DC := GetDC(0); + try + EnumFonts(DC, PChar(FaceName), @FontExistsCallback, @Result); + finally + ReleaseDC(0, DC); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgTestMSSansSerifFont(const AFontName: string): String; +begin + // nahrada fontu "MS Sans Serif" jinym pismem (je to hnusne rastrove pismo) + if not SameText(AFontName, 'MS Sans Serif') then + Result := AFontName + else + if plgFontExistuje('Microsoft Sans Serif') then + Result := 'Microsoft Sans Serif' + else + if plgFontExistuje('Tahoma') then + Result := 'Tahoma' + else +// if FontExists('Segoe UI') then +// Result := 'Segoe UI' +// else + Result := AFontName; +end; + +{ --------------------------------------------------------------------------- } + +function plgPrepniJazykoveDLL(Helios: IHelios; Jazyk1, Jazyk2: Integer): Boolean; + + { +++++++++++++++++++++++++++ } + + procedure ZkusJazyk(J: Integer); + var + H: HINST; + A: TplgPrekladHlasekA; + W: TplgPrekladHlasekW; + CP: TplgPrekladHlasekCP; + DLLName: string; + OK: Boolean; + begin + // zjisteni jazykoveho DLL + DLLName := PluginKonfig.PluginJazykoveDLL_Ext(J); + + // neni nastaveno jazykove DLL => jazyk nebyl prepnut + OK := (DLLName <> ''); + if OK then + begin + // jazykove DLL neexistuje => jazyk nebyl prepnut + DLLName := ExtractFilePath(plgGetPluginPathAndName) + DLLName; + OK := FileExists(DLLName); + end; + + if not OK then + begin + // slovenstina ma vyjimku (je primo v plgHlasky) + if J = Cplg_jSlovenctina then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasek04.Create); + Exit; + end; + + H := LoadLibrary(PChar(DLLName)); + try + if H > 0 then + begin + @A := GetProcAddress(H, 'CtiOznamID'); + if Assigned(A) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekA.Create(H, A)) + else + begin + @CP := GetProcAddress(H, 'TranslateCP'); + if Assigned(CP) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekCP.Create(H, CP)) + else + begin + @W := GetProcAddress(H, 'CtiOznamIDW'); + if Assigned(W) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekW.Create(H, W)) + else + begin + @W := GetProcAddress(H, 'TranslateW'); + if Assigned(W) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekW.Create(H, W)) + else + RaiseLastOSError; + end; + end; + end; + end + else + RaiseLastOSError; + except + on E: Exception do + begin + Helios.Error(#1'Chyba pi natn jazykovho DLL'#1#13+ + DLLName + #13#13 + E.Message); + end; + end; + end; + + { +++++++++++++++++++++++++++ } + +begin + // -2 prichazi z instalace po instalaci ruznych jazykovych mutaci do TabExtHlasky + if Jazyk1 = -2 then + Jazyk1 := AktivniJazyk1; + + if Jazyk2 = -2 then + Jazyk2 := AktivniJazyk2; + + // nejdrive uvolnime aktivni DLL + AktivniJazyky.Clear; + + case Jazyk1 of + Cplg_jCeskyASCII, Cplg_jCesky: + begin + _plgCtiOznam := _plgCtiOznam1; + Result := True; + end; + + else + begin + ZkusJazyk(Jazyk1); + + if (Jazyk1 <> Jazyk2) and (Jazyk2 <> Cplg_jJazykNedefinovan) then + ZkusJazyk(Jazyk2); + + Result := (AktivniJazyky.Count > 0); + if Result then + _plgCtiOznam := _plgCtiOznamX + else + _plgCtiOznam := _plgCtiOznam1; + end; + end; +end; + + + +{ --------------------------------------------------------------------------- } + +procedure InicializaceJadraPluginu(Helios: IHelios); + var + LTabulka: TplgTabulka; + LBrowse: TplgBrowse; + PA, PAOld: PplgAtributTabulky; + UA: TplgUzivatelskeAtributyDef; + II, JJ: Integer; + TD: PplgTabulkaDef; + PVD: PplgVztahDef; + AT: PplgExterniAtribut; + NewDef, OldDef: PplgTabulkaDef; + SLVyjmute: TStringList; + Q: IHeQuery; + Jaz1, Jaz2: Integer; + LSysDB: string; +begin + plgLadit_KontrolaPriInicializaci; + + // --- inicializace tabulek ------------------------------------------------- + if not InicializaceProbehla then + begin + InicializaceProbehla := True; + + if plgJeNejakaTabulka(LTabulka) then + for LTabulka := LTabulka to High(TplgTabulka) do + begin + // nejprve se vytvori definice podle Predka + if Cplg_SeznamTabulek[LTabulka].Predek <> tZadna then + begin + NewDef := Cplg_SeznamTabulek[LTabulka]; + OldDef := Cplg_SeznamTabulek[Cplg_SeznamTabulek[LTabulka].Predek]; + + plgLadit_KontrolaPredkaTabulky(LTabulka, NewDef, OldDef); + + SLVyjmute := TStringList.Create; + try + SLVyjmute.Text := NewDef.VyjmuteAttrPredka; + SLVyjmute.Sorted := True; + + // pocet atributu predka + JJ := 0; + PA := OldDef.Atributy; + for II := 1 to OldDef.PocetAtributu do + begin + if SLVyjmute.IndexOf(PA.JmenoSys) = -1 then Inc(JJ); + Inc(PA); + end; + + // pridame pocet atributu nove tabulky + II := NewDef.PocetAtributu + JJ; + + // vytvorime novy seznam atributu + GetMem(PA, II * SizeOf(TplgAtributTabulky)); + FillChar(PA^, II * SizeOf(TplgAtributTabulky), 0); + + // seznam priradime a zapamatujeme si puvodni + PAOld := NewDef.Atributy; + NewDef.Atributy := PA; + + // prenos puvodni definice + if NewDef.PocetAtributu <> 0 then + begin + Move(PAOld^, NewDef.Atributy^, NewDef.PocetAtributu * SizeOf(TplgAtributTabulky)); + Inc(PA, NewDef.PocetAtributu); // prvni volna pozice + end; + NewDef.PocetAtributu := II; // novy pocet atributu + + // prekopirovani definice predka + PAOld := OldDef.Atributy; + for II := 1 to OldDef.PocetAtributu do + begin + if SLVyjmute.IndexOf(PAOld.JmenoSys) = -1 then + begin + plgLadit_KontrolaPrevzetiAtributuPredkaTabulky(LTabulka, PAOld); + + PA^ := PAOld^; + with PA^ do + begin + if not (plg_dvtKopirovatOmezeni in NewDef.DalsiVlastnosti) then + begin + PK_UQ := puNic; + ForeignKey := ''; + Check := ''; + end; + if Pocitany <> '' then + Pocitany := StringReplace(Pocitany, OldDef.JmenoSys+'.', NewDef.JmenoSys+'.', [rfReplaceAll, rfIgnoreCase]); + end; + + Inc(PA); + end; + + Inc(PAOld); + end; + finally + SLVyjmute.Free; + end; + end; + + // inicializace atributu + PA := Cplg_SeznamTabulek[LTabulka].Atributy; + for II := 1 to Cplg_SeznamTabulek[LTabulka].PocetAtributu do + begin + if PA.UTyp <> plg_utaZadny then + begin + UA := Cplg_UzivatelskeAtributy[PA.UTyp]; + if PA.JmenoSys = '' then PA.JmenoSys := UA.A.JmenoSys; + if PA.JmenoVerejne = '' then PA.JmenoVerejne := UA.A.JmenoVerejne; + if PA.JmenoVerejneTxt = plxNic then PA.JmenoVerejneTxt := UA.A.JmenoVerejneTxt; + if PA.JmenoVerejneZkr = '' then PA.JmenoVerejneZkr := UA.A.JmenoVerejneZkr; + if PA.JmenoVerejneZkrTxt = plxNic then PA.JmenoVerejneZkrTxt := UA.A.JmenoVerejneZkrTxt; + if PA.Typ = taBlbe then PA.Typ := UA.A.Typ; + if PA.Delka = 0 then PA.Delka := UA.A.Delka; + if PA.Pocitany = '' then PA.Pocitany := UA.A.Pocitany; + if PA.NULL = nNic then PA.NULL := UA.A.NULL; + if PA.PK_UQ = puNic then PA.PK_UQ := UA.A.PK_UQ; + if PA.ForeignKey = '' then PA.ForeignKey := UA.A.ForeignKey; + if PA.ServerDefault = '' then PA.ServerDefault := UA.A.ServerDefault; + if PA.CHECK = '' then PA.CHECK := Format(UA.A.CHECK, [PA.JmenoSys]); + if PA.Vyzadovany = vDefault then PA.Vyzadovany := UA.A.Vyzadovany; + if PA.Verejny = vDefault then PA.Verejny := UA.A.Verejny; + if PA.Konverze = '' then PA.Konverze := UA.A.Konverze; + if PA.KonverzeTxt = plxNic then PA.KonverzeTxt := UA.A.KonverzeTxt; + if PA.SirkaSloupce = 0 then PA.SirkaSloupce := UA.A.SirkaSloupce; + if PA.MaskaDisplay = '' then PA.MaskaDisplay := UA.A.MaskaDisplay; + if not PA.Sumovat then PA.Sumovat := UA.A.Sumovat; + if PA.Hint = '' then PA.Hint := UA.A.Hint; + if PA.HintTxt = plxNic then PA.HintTxt := UA.A.HintTxt; + if PA.DalsiVlastnosti = [] then PA.DalsiVlastnosti := UA.A.DalsiVlastnosti; + if PA.HeliosAttr = '' then PA.HeliosAttr := UA.A.HeliosAttr; + + // kvuli definice tabulek... + PA.UTyp := plg_utaZadny; + end; + + // z nedefinovaneho stavu na definovany + if PA.NULL = nNic then PA.NULL := nNOTNULL; + if PA.Vyzadovany = vDefault then PA.Vyzadovany := vFalse; + if PA.Verejny = vDefault then PA.Verejny := vFalse; + + plgLadit_KontrolaAtributu(LTabulka, PA, II); + + Inc(PA); + end; + + plgLadit_KontrolaMaTabulkaID(LTabulka); + end; + end; + + // --- nastaveni jazyka ----------------------------------------------------- + Q := Helios.OpenSQL( + 'SELECT Jazyk, Jazyk2 FROM TabUziv WHERE LoginName = ' + Cplg_LoginName); + + if Q.RecordCount > 0 then + begin + Jaz1 := Q.FieldValues(0); + Jaz2 := Q.FieldValues(1); + end + else + begin + Jaz1 := Cplg_jCesky; + Jaz2 := Cplg_jJazykNedefinovan; + end; + + if (AktivniJazyk1 <> Jaz1) or (AktivniJazyk2 <> Jaz2) then + begin + AktivniJazyk1 := Jaz1; + AktivniJazyk2 := Jaz2; + + plgPrepniJazykoveDLL(Helios, AktivniJazyk1, AktivniJazyk2); + + // --- TABULKY --- + if plgJeNejakaTabulka(LTabulka) then + for LTabulka := LTabulka to High(TplgTabulka) do + begin + TD := Cplg_SeznamTabulek[LTabulka]; + if Assigned(TD) then + begin + if TD.JmenoTxt <> plxNic then + TD.Jmeno := plgCtiOznam(TD.JmenoTxt); + + PA := TD.Atributy; + for II := 1 to TD.PocetAtributu do + begin + if PA.JmenoVerejneTxt <> plxNic then + PA.JmenoVerejne := plgCtiOznam(PA.JmenoVerejneTxt) + else + if PA.HeliosAttr <> '' then // [RK 01.04.2010] + PA.JmenoVerejne := Helios.AttrPublicName(PA.HeliosAttr); + + if PA.JmenoVerejneZkrTxt <> plxNic then + PA.JmenoVerejneZkr := plgCtiOznam(PA.JmenoVerejneZkrTxt); + + if PA.KonverzeTxt <> plxNic then + PA.Konverze := plgCtiOznam(PA.KonverzeTxt) + else + if PA.HeliosAttr <> '' then // [RK 01.04.2010] + PA.Konverze := Helios.Konverze(PA.HeliosAttr); + + if PA.HintTxt <> plxNic then + PA.Hint := plgCtiOznam(PA.HintTxt); + + Inc(PA); + end; + end; + end; + + // --- PREHLEDY --- + if plgJeNejakyPrehled(LBrowse) then + for LBrowse := LBrowse to High(TplgBrowse) do + begin + with Cplg_SeznamVychozichNastaveniBrowse[LBrowse] do + begin + if Jmeno = '*' then + begin + TD := plgGetTabulkaDef(HlavniTabulka); + if Assigned(TD) then + Jmeno := TD.Jmeno; + end + else + if JmenoTxt <> plxNic then + Jmeno := plgCtiOznam(JmenoTxt); + + plgLadit_KontrolaVerejnehoJmenaPrehledu(LBrowse); + + if PomocnicekTxt <> plxNic then + Pomocnicek := plgCtiOznam(PomocnicekTxt); + end; + end; + + // --- VAZBY --- + II := 1; + PVD := plgVratVztah(II); + while Assigned(PVD) do + begin + if PVD.NazevLPTxt <> plxNic then + PVD.NazevLP := plgCtiOznam(PVD.NazevLPTxt) + else + if PVD.NazevLP = '' then + PVD.NazevLP := Cplg_SeznamVychozichNastaveniBrowse[plgJmenoView2Browse(PVD.TabPStr)].Jmeno; + + if PVD.NazevPLTxt <> plxNic then + PVD.NazevPL := plgCtiOznam(PVD.NazevPLTxt) + else + if PVD.NazevPL = '' then + PVD.NazevPL := Cplg_SeznamVychozichNastaveniBrowse[plgJmenoView2Browse(PVD.TabLStr)].Jmeno; + + plgLadit_KontrolaVazby(PVD); + + Inc(II); + PVD := plgVratVztah(II); + end; + + // --- EXTERNI ATRIBUTY --- + II := 1; + AT := plgVratExtAttr(II); + while Assigned(AT) do + begin + if AT.JmenoVerejneTxt <> plxNic then + AT.JmenoVerejne := plgCtiOznam(AT.JmenoVerejneTxt); + + if AT.JmenoVerejneZkrTxt <> plxNic then + AT.JmenoVerejneZkr := plgCtiOznam(AT.JmenoVerejneZkrTxt); + + if AT.KonverzeTxt <> plxNic then + AT.Konverze := plgCtiOznam(AT.KonverzeTxt); + + if AT.PoznamkaTxt <> plxNic then + AT.Poznamka := plgCtiOznam(AT.PoznamkaTxt); + + if AT.BublinaTxt <> plxNic then + AT.Bublina := plgCtiOznam(AT.BublinaTxt); + + if AT.ExtEd_ZalozkaTxt <> plxNic then + AT.ExtEd_Zalozka := plgCtiOznam(AT.ExtEd_ZalozkaTxt); + + Inc(II); + AT := plgVratExtAttr(II); + end; + end; + + // --- nacteni ikonek ------------------------------------------------------- + if not Assigned(DataModuleGlobPLG) then + begin + // barevne ikonky jsou implementovany az od verze 3.0.2020.0152 + if Helios.HeVersion >= $030020200152 then + begin + LSysDB := Helios.SystemDB; + if LSysDB <> '' then + begin + if not IsValidIdent(LSysDB) then + begin + LSysDB := AnsiQuotedStr(LSysDB, ']'); + LSysDB[1] := '['; + end; + + try + G_SadaIkonekKterouChci := Helios.OpenSQL('SELECT SadaIkonek FROM ' + LSysDB + '..TabUserCfg WHERE LoginName = '+ Cplg_LoginName).FieldValues(0); + except + G_SadaIkonekKterouChci := C_SadaIkonek_Default; + end; + end; + end; + + DataModuleGlobPLG := TDataModuleGlobPLG.Create(Application); + end; + + // --- nastaveni legislativy ------------------------------------------------ + if Global_Legislativa = -1 then + Global_Legislativa := Helios.OpenSQL('SELECT Legislativa FROM TabHGlob').FieldValues(0); +end; + + +{ --------------------------------------------------------------------------- } + +function plgJeParametrXX: Boolean; + var + II: Integer; + S: String; +begin + for II := 1 to ParamCount do + begin + S := ParamStr(II); + if (Length(S) >= 3) and CharInSet(S[1], ['/','-']) and (UpperCase(Copy(S,2,2)) = 'XX') then + begin + Result := True; + Exit; + end; + end; + Result := False; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeParametrX: Boolean; +begin + Result := FindCmdLineSwitch('X', ['/','-'], True); +end; + +{ --------------------------------------------------------------------------- } + +var + G_TichaInstalace: Boolean; + +function plgJeTichaInstalace: Boolean; +begin + Result := G_TichaInstalace or plgJeParametrXX; +end; + +{ --------------------------------------------------------------------------- } + +function plgExtKomIDInstalace(Helios: IHelios): Boolean; +begin + Result := (Helios.ExtKomID = Cplg_ExtKomID_Instalace) or + (Helios.ExtKomID = Cplg_ExtKomID_TichaInstalace); +end; + +{ --------------------------------------------------------------------------- } + +procedure InstalacePluginu(Helios: IHelios; TichaInstalace: Boolean); +begin + G_TichaInstalace := TichaInstalace; + with TfrmInstalace.Create(Application) do + try + ShowModalEx(Helios); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure InformaceOPluginu(Helios: IHelios); +begin + with TfrmAbout.Create(Application) do + try + ShowModalEx(Helios); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgPresunHlaskyNaWeb(Helios: IHelios); +begin + with TfrmPreklady.Create(Application) do + try + ShowModalEx(Helios, sphNaWeb); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgStahniZWebuJazykovaDLL(Helios: IHelios); +begin + with TfrmPreklady.Create(Application) do + try + ShowModalEx(Helios, sphDoDLL); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure SpustControllerEditoru(Helios: IHelios); + var + LControllerClass: TplgEditorControllerClass; + LController: TplgEditorController; + II: Integer; + LKlicProDB: string; +begin + LControllerClass := nil; + LKlicProDB := Helios.FormIdent; + + II := Low(GDefiniceControlleru) + 1; // prvni prvek je defaultne prazdny + while II <= High(GDefiniceControlleru) do + begin + if LKlicProDB = GDefiniceControlleru[II].FormIdent then + begin + LControllerClass := TplgEditorControllerClass(GDefiniceControlleru[II].ControllerClass); + Break; + end; + Inc(II); + end; + + if LControllerClass <> nil then + begin + LController := LControllerClass.Create (Helios); + Helios.RegisterPluginController (LController); + end + {$IFnDEF BezLadit} + else + Helios.Error(plgCtiOznam('{Ladit} - Controller nenalezen!')) + {$ENDIF} + ; +end; + +{ ########################################################################### } + +initialization + AktivniJazyky := TStringList.Create(True); + +{ ########################################################################### } + +end. diff --git a/libSys/plgQuery.pas b/libSys/plgQuery.pas new file mode 100644 index 0000000..5c57a90 --- /dev/null +++ b/libSys/plgQuery.pas @@ -0,0 +1,34 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgQuery; + +interface + +uses + dxmdaset, DB; + +type + TplgQuery = class(TdxMemData) + public + // zmena viditelnosti - abych mohl shodit DataSet.Modified + procedure SetModified(Value: Boolean); + end; + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +procedure TplgQuery.SetModified(Value: Boolean); +begin + inherited; +end; + +{ ########################################################################### } + +end. diff --git a/libSys/plgSoudky.pas b/libSys/plgSoudky.pas new file mode 100644 index 0000000..fe53924 --- /dev/null +++ b/libSys/plgSoudky.pas @@ -0,0 +1,24 @@ +unit plgSoudky; + +interface + +uses + plgType; + +const + Cplg_SeznamSoudku : array [TplgSoudek] of TplgSoudekDef = + ((SelfIdent: sdNeniVidet; + Jmeno : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgSpravce.pas b/libSys/plgSpravce.pas new file mode 100644 index 0000000..3fadceb --- /dev/null +++ b/libSys/plgSpravce.pas @@ -0,0 +1,189 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgSpravce; + +interface + +uses + plgAkce, ddPlugin_TLB, Contnrs, Classes; + +type + TJedenHelios = class + private + FHelios: IHelios; + FAkce: TplgAkcePrehledu; + public + property Helios: IHelios read FHelios; + property Akce: TplgAkcePrehledu read FAkce; + end; + + TSpravceHeliosu = class + private + FSeznam: TObjectList; + function NajdiHelios(Helios: IHelios): Integer; + function NajdiIdent(Helios: IHelios): Integer; + public + constructor Create; + destructor Destroy; override; + + // === pouze interni pouziti !!! ============================= + procedure PridejHelios(Helios: IHelios); + procedure OdeberHelios(Helios: IHelios); + procedure NastavAkce(Helios: IHelios; Akce: TplgAkcePrehledu); + // =========================================================== + + function VratVlastnika(Helios: IHelios): IHelios; + function VratAkcePrehledu(Helios: IHelios): TplgAkcePrehledu; + end; + +var + SpravceHeliosu: TSpravceHeliosu = nil; + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +constructor TSpravceHeliosu.Create; +begin + inherited Create; + FSeznam := TObjectList.Create; +end; + +{ --------------------------------------------------------------------------- } + +destructor TSpravceHeliosu.Destroy; +begin + FSeznam.Free; + inherited; +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.NajdiHelios(Helios: IHelios): Integer; + var + II: Integer; +begin + // jedeme odzadu - bude to rychlejsi + if Assigned(Helios) then + for II := FSeznam.Count-1 downto 0 do + begin + if TJedenHelios(FSeznam.Items[II]).FHelios = Helios then + begin + Result := II; + Exit; + end; + end; + + Result := -1; // nenalezeno +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.NajdiIdent(Helios: IHelios): Integer; + var + II: Integer; +begin + // jedeme odzadu - bude to rychlejsi + if Assigned(Helios) then + for II := FSeznam.Count-1 downto 0 do + begin + if TJedenHelios(FSeznam.Items[II]).FHelios.Ident = Helios.Ident then + begin + Result := II; + Exit; + end; + end; + + Result := -1; // nenalezeno +end; + +{ --------------------------------------------------------------------------- } + +procedure TSpravceHeliosu.PridejHelios(Helios: IHelios); + var + JH: TJedenHelios; +begin + if not Assigned(Helios) then Exit; + + JH := TJedenHelios.Create; + JH.FHelios := Helios; + FSeznam.Add(JH); +end; + +{ --------------------------------------------------------------------------- } + +procedure TSpravceHeliosu.OdeberHelios(Helios: IHelios); + var + II: Integer; +begin + II := NajdiHelios(Helios); + if II <> -1 then FSeznam.Delete(II); +end; + +{ --------------------------------------------------------------------------- } + +procedure TSpravceHeliosu.NastavAkce(Helios: IHelios; Akce: TplgAkcePrehledu); + var + II: Integer; +begin + II := NajdiHelios(Helios); + if II <> -1 then + TJedenHelios(FSeznam.Items[II]).FAkce := Akce; +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.VratVlastnika(Helios: IHelios): IHelios; + var + II: Integer; + Vlastnik: IHelios; +begin + if not Assigned(Helios) then + Result := nil + else + begin + Vlastnik := Helios.HeliosVlastnik; + II := NajdiIdent(Vlastnik); + if II <> -1 then + Result := TJedenHelios(FSeznam.Items[II]).FHelios + else + Result := Vlastnik; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.VratAkcePrehledu(Helios: IHelios): TplgAkcePrehledu; + var + II: Integer; +begin + II := NajdiIdent(Helios); + if II <> -1 then + Result := TJedenHelios(FSeznam.Items[II]).FAkce + else + Result := nil; +end; + +{ ########################################################################### } + +initialization + SpravceHeliosu := TSpravceHeliosu.Create; + +{ ########################################################################### } + +end. +// LIB | USER: rk | DT: 08.03.2005 13:29:04 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 13:54:41 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 14:13:52 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 15.03.2005 09:35:54 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 15.03.2005 10:05:23 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:58:05 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:58:09 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 08:37:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 08:52:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib diff --git a/libSys/plgTable.pas b/libSys/plgTable.pas new file mode 100644 index 0000000..ae76945 --- /dev/null +++ b/libSys/plgTable.pas @@ -0,0 +1,23 @@ +unit plgTable; + +interface + +uses + plgType; + +var + Cplg_SeznamTabulek : array[TplgTabulka] of PplgTabulkaDef = + (nil // tZadna + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgType.pas b/libSys/plgType.pas new file mode 100644 index 0000000..080f4d7 --- /dev/null +++ b/libSys/plgType.pas @@ -0,0 +1,29 @@ +unit plgType; + +interface + +uses + System.Classes, Vcl.Forms; + +const + CVerzePluginu = Int64({$I ..\lib\plgVerze.INC}); + +{$I ..\lib\plgTypeTabulka.INC} // definice typu TplgTabulka +{$I ..\lib\plgTypeSoudky.INC} // definice typu TplgSoudek +{$I ..\lib\plgTypeBrowse.INC} // definice typu TplgBrowse +{$I ..\lib\plgTypeTxtJadro.INC} // definice "typu" TplgTxt - hlasky jadra +{$I ..\lib\plgTypeTxtEx.INC} // definice "typu" TplgTxt - ostatni hlasky +{$I ..\lib\plgTypeJadro.INC} // zakladni typy a konstanty jadra 1 +{$I ..\lib\plgTypeZbytek.INC} // vsechny ostatni typy a konstanty + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. + +// LIB | USER: rk | DT: 09.02.2005 09:09:48 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ diff --git a/libSys/plgUProc.pas b/libSys/plgUProc.pas new file mode 100644 index 0000000..398c0fc --- /dev/null +++ b/libSys/plgUProc.pas @@ -0,0 +1,33 @@ +unit plgUProc; + +interface + +uses + plgType; + +// !!! POZOR !!! ############################################################## +// Ulozenka musi byt zadana tak, aby CREATE PROC bylo na jednom radku: +// napr. 'CREATE PROCEDURE dbo.pp_MujPrefix_MujNazev'#13+ +// ############################################################################ + +{ =========================================================================== } + +const + SeznamUlozenychProcedur : array[0..0] of TplgUlozenaProcedura = + ( + // aby bylo mozno nemit zadnou ulozenou proceduru :-) + // musi zustat prvni procedura definovana !! + (Text : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgUta.pas b/libSys/plgUta.pas new file mode 100644 index 0000000..ed2dd5e --- /dev/null +++ b/libSys/plgUta.pas @@ -0,0 +1,181 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgUta; + +interface + +uses + plgType; + +const + plg_uta_SystemoveCislo = plg_SystemoveCislo; + plg_uta_Autor = 'Autor'; + plg_uta_DatPorizeni = 'DatPorizeni'; + plg_uta_Zmenil = plg_Zmenil; + plg_uta_DatZmeny = plg_DatZmeny; + plg_uta_BlokovaniEditoru = plg_BlokovaniEditoru; + plg_uta_GUID = 'GUID'; + plg_uta_Mena = 'Mena'; + plg_uta_TextChyby = 'TextChyby'; + plg_uta_ImpSoubor = 'ImpSoubor'; + plg_uta_SkupZbo = 'SkupZbo'; + plg_uta_RegCis = 'RegCis'; + + Cplg_DisplaySirkaDatum = 20; // [RK 02.07.2012] 12 -> 20 + + { +++++++++++++++++++++++++++ } + + Cplg_UzivatelskeAtributy : array [TplgUzivatelskyTypAtributu] of TplgUzivatelskeAtributyDef = + ((SelfIdent: plg_utaZadny) + + ,(SelfIdent: plg_utaSystemoveCislo; + A:(JmenoSys : plg_uta_SystemoveCislo; + JmenoVerejneTxt : plxJadroSystemoveCislo; + JmenoVerejneZkrTxt : plxJadroSysCisZkr; + Typ : taIdentity; + PK_UQ : puPrimaryKey; + Vyzadovany : vTrue; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaSystemoveCislo64; + A:(JmenoSys : plg_uta_SystemoveCislo; + JmenoVerejneTxt : plxJadroSystemoveCislo; + JmenoVerejneZkrTxt : plxJadroSysCisZkr; + Typ : taIdentity64; + PK_UQ : puPrimaryKey; + Vyzadovany : vTrue; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaAutor; + A:(JmenoSys : plg_uta_Autor; + JmenoVerejneTxt : plxJadroAutor; + Typ : taNVarChar; + Delka : 128; + ServerDefault : Cplg_LoginName; + Verejny : vTrue; + SirkaSloupce : 15) + ) + + ,(SelfIdent: plg_utaDatPorizeni; + A:(JmenoSys : plg_uta_DatPorizeni; + JmenoVerejneTxt : plxJadroDatumPorizeni; + Typ : taDateTime; + ServerDefault : Cplg_GetDate; + Verejny : vTrue; + SirkaSloupce : Cplg_DisplaySirkaDatum) + ) + + ,(SelfIdent: plg_utaZmenil; + A:(JmenoSys : plg_uta_Zmenil; + JmenoVerejneTxt : plxJadroZmenil; + Typ : taNVarChar; + Delka : 128; + NULL : nNULL; + Verejny : vTrue; + SirkaSloupce : 20) + ) + + ,(SelfIdent: plg_utaDatZmeny; + A:(JmenoSys : plg_uta_DatZmeny; + JmenoVerejneTxt : plxJadroDatumZmeny; + Typ : taDateTime; + NULL : nNULL; + Verejny : vTrue; + SirkaSloupce : Cplg_DisplaySirkaDatum) + ) + + ,(SelfIdent: plg_utaBlokovaniEditoru; + A:(JmenoSys : plg_uta_BlokovaniEditoru; + JmenoVerejneTxt : plxJadroBlokovaniEditoru; + Typ : taSmallInt; + NULL : nNULL; + Vyzadovany : vTrue; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaGUID; + A:(JmenoSys : plg_uta_GUID; + JmenoVerejne : 'GUID'; + Typ : taBinary; + Delka : 16; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaSazbaDPH; + A:(Typ : taNumeric_5_2; + NULL : nNULL; + ForeignKey : 'TabDPH(Sazba)'; + Verejny : vTrue) + ) + + ,(SelfIdent: plg_utaCena; + A:(Typ : taNumeric_19_6; + ServerDefault : '0.0'; + Verejny : vTrue; + MaskaDisplay : DisplayMaskPenize; + Sumovat : True) + ) + + ,(SelfIdent: plg_utaMena; + A:(JmenoSys : plg_uta_Mena; + JmenoVerejne : 'Mna'; + Typ : taNVarChar; + Delka : 3; + ForeignKey : 'TabKodMen(Kod)'; + Verejny : vTrue) + ) + + ,(SelfIdent: plg_utaTextChyby; + A:(JmenoSys : plg_uta_TextChyby; + JmenoVerejne : 'Text chyby'; + Typ : taNVarChar; + Delka : 255; + ServerDefault : ''''''; + Verejny : vTrue; + SirkaSloupce : 30) + ) + + ,(SelfIdent: plg_utaImpSoubor; + A:(JmenoSys : plg_uta_ImpSoubor; + JmenoVerejne : 'Importn soubor'; + Typ : taNVarChar; + Delka : 255; + ServerDefault : ''''''; + Verejny : vTrue; + SirkaSloupce : 30) + ) + + ,(SelfIdent: plg_utaSkupZbo; + A:(JmenoSys : plg_uta_SkupZbo; + Typ : taNVarChar; + Delka : 3; + Verejny : vTrue; + HeliosAttr : 'TabKmenZbozi.SkupZbo') + ) + + ,(SelfIdent: plg_utaRegCis; + A:(JmenoSys : plg_uta_RegCis; + Typ : taNVarChar; + Delka : 30; + Verejny : vTrue; + HeliosAttr : 'TabKmenZbozi.RegCis') + ) + + {$I ..\lib\plgUtaDef.inc} + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgVazby.pas b/libSys/plgVazby.pas new file mode 100644 index 0000000..b723e5e --- /dev/null +++ b/libSys/plgVazby.pas @@ -0,0 +1,28 @@ +unit plgVazby; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceVztahu : array[0..0] of TplgVztahDef = + ( + // aby bylo mozno nemit zadnou vazbu, + // musi zustat prvni vazba nedefinovana !! + (GUIDVazby : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgZmeny.pas b/libSys/plgZmeny.pas new file mode 100644 index 0000000..544001c --- /dev/null +++ b/libSys/plgZmeny.pas @@ -0,0 +1,60 @@ +{ *************************************************************************** } +{ } +{! SKRIPTY BY MLY BT PSNY TAK, ABY BYLY SPUSTITELN VCEKRT - TZN. MLY !} +{! BY OBSAHOVAT RZN TESTY EXISTENCE - NAP.: !} +{ } +{ -existuje tabulka TabXXX ? } +{ IF OBJECT_ID('TabXXX','U')IS NOT NULL ... } +{ } +{ -existuje sloupec ABC v tabulce TabXXX ? } +{ IF COLUMNPROPERTY(OBJECT_ID('TabXXX','U'),'ABC','AllowsNull')IS NOT NULL ... } +{ } +{ -existuje default DF__TabXXX__ABC na sloupci ABC v tabulce TabXXX ? } +{ IF OBJECT_ID('DF__TabXXX__ABC','D')IS NOT NULL ... } +{ } +{ kde vezmu 2. parametr systmov funkce OBJECT_ID() - je to sysobjects.xtype } +{ - viz BOL } +{ } +{!!! POZOR - POUIT RETURN VE ZMNOVCH SKRIPTECH V plgZmeny.pas NEN BEZTRESTN !!!} +{ -protoe zmnov skripty jsou obaleny knihovanmi BEGIN TRAN..COMMIT, tak } +{ by ppadn RETURN ponechal transakci neuzavenou ! Proto bych ml } +{ pout tuto konstrukci: } +{ IF @@TRANCOUNT>0 ROLLBACK /* nebo COMMIT dle situace */ } +{ RETURN } +{ -pokud je kd spoutn pes EXEC() nebo sp_executesql, tak tam naopak } +{ ROLLBACK (COMMIT) bt NESM, protoe RETURN ukonuje jen dan EXEC() } +{ -pln nejlep je se RETURNu ve zmnovch skriptech pln vyhnout } +{ } +{ *************************************************************************** } + +unit plgZmeny; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GZmenoveSkripty : array[0..0] of TplgZmenovySkript = + ( + // aby bylo mozno nemit zadny zmenovy skript, + // musi zustat prvni skript nedefinovan !! + (PlatiOd : $010020050210; + Skript : ''; + ) + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. + diff --git a/plgExtController.pas b/plgExtController.pas new file mode 100644 index 0000000..678c823 --- /dev/null +++ b/plgExtController.pas @@ -0,0 +1,31 @@ +unit plgExtController; + +interface + +uses + plgType; //, pec_ObjednavkaDopravy, pec_DosleObjednavky; + +{ =========================================================================== } + +const + GDefiniceControlleru: array[0..0] of TplgEditorControllerDef = + ( + // aby bylo mozno nemit zadnou definici controlleru, + // musi zustat prvni prvek nedefinovan !! + (FormIdent : '') + +// ,(FormIdent: 'TedfrmUTEditorhvw_Bonum_ObjednavkyDopravy'; +// ControllerClass: TplgBonumExtReseniGornicky3DObjednavkaDopravyController) + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/plgKonfig.pas b/plgKonfig.pas new file mode 100644 index 0000000..60f7ad7 --- /dev/null +++ b/plgKonfig.pas @@ -0,0 +1,109 @@ +{ *************************************************************************** } +{ } +{ PluginExample Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgKonfig; + +interface + +uses + plgKonfigBase, ddPlugin_TLB; + +// ============================================================================ +// !!! Konfigurace zavisla na danem pluginu, je treba ji nastavit !!! +// ============================================================================ + +type + TPluginKonfig = class(TPluginKonfigBase) + protected + procedure NastaveniKonfigu; override; + function GetPluginVerejneJmeno: String; override; + function GetPluginTechnickyPopis: String; override; + function GetPluginHistorieVerzi: String; override; + public + function PartnerIdentification: string; override; + function PluginJazykoveDLL (AJazyk: Integer): string; override; + procedure VlastniInicializacePluginu (Helios: IHelios); override; + end; + +{ =========================================================================== } + +implementation + +uses + SysUtils, ComObj, plgType, plgMain; + +{ ########################################################################### } + +procedure TPluginKonfig.NastaveniKonfigu; +begin + // !! POZOR !! Tento GUID je pouze pro PlgBonum_ExtReseniGornicky3D !! + FPluginClass_ID := StringToGUID('{EA0150F1-EA07-45D2-9109-E7349B03AC1B}'); + + FPluginSystemoveJmeno := 'plgLOVATO'; + FPluginClassName := 'runMe'; + FPluginMinimalniPozadovanaVerzeHeliosu := Cplg_PrvniUnicodeVerzeHeliosu; + FPluginCopyrightVyrobce := Format(' 2012-%d NTS/HD Consulting s.r.o. Strakonice', [Cplg_AktualniRok]); + FPluginIdentifikator := 'Lovato'; + + FPluginMinimalniPozadovanaVerzeSQLServeru:= Cplg_SQLVersion_2022_CU22; +end; + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.PartnerIdentification: string; +begin + // zde zadejte partnerskou identifikaci + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.GetPluginVerejneJmeno: String; +begin + Result := plgCtiOznam('Plugin Extern een pro LOVATO Psek'); +end; + + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.GetPluginTechnickyPopis: String; +begin + Result := 'Plugin pro extern een'; +end; + + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.GetPluginHistorieVerzi: String; +begin + Result := 'Historie verz'; +end; + + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.PluginJazykoveDLL (AJazyk: Integer): string; +begin + case AJazyk of + Cplg_jAnglictina, + Cplg_jExtAnglictina: Result := 'plgLovatoLng1033.DLL'; + else Result := ''; + end; +end; + + +{ --------------------------------------------------------------------------- } + +procedure TPluginKonfig.VlastniInicializacePluginu (Helios: IHelios); +begin + // - tato procedura se vola vzdy pri spusteni externi akce !! + // - pokud je treba udelat nejakou inicializaci pouze jednou, je treba + // pouzit promennou, ktera bude signalizovat prvni a dalsi volani +end; + +{ ########################################################################### } + +end. diff --git a/plgLOVATO.dpr b/plgLOVATO.dpr new file mode 100644 index 0000000..075e78f --- /dev/null +++ b/plgLOVATO.dpr @@ -0,0 +1,61 @@ +library plgLOVATO; + +{$WEAKLINKRTTI ON} +{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} +{$IFOPT D-} + {$SetPEFlags $AE0E} + {$SetPEOptFlags $AE0E} +{$ELSE} + {$SetPEFlags $AC02} + {$SetPEOptFlags $AC02} +{$ENDIF} + +// IMAGE_FILE_RELOCS_STRIPPED = $0001 +// IMAGE_FILE_EXECUTABLE_IMAGE = $0002 * +// IMAGE_FILE_LINE_NUMS_STRIPPED = $0004 * +// IMAGE_FILE_LOCAL_SYMS_STRIPPED = $0008 * +// IMAGE_FILE_AGGRESIVE_WS_TRIM = $0010 +// IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020 +// IMAGE_FILE_BYTES_REVERSED_LO = $0080 +// IMAGE_FILE_32BIT_MACHINE = $0100 +// IMAGE_FILE_DEBUG_STRIPPED = $0200 +// IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400 * +// IMAGE_FILE_NET_RUN_FROM_SWAP = $0800 * +// IMAGE_FILE_SYSTEM = $1000 +// IMAGE_FILE_DLL = $2000 * +// IMAGE_FILE_UP_SYSTEM_ONLY = $4000 +// IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000 * + +uses + System.Win.ComServ, + ddPlugin_TLB, + ComObjekt in 'ComObjekt.pas' {frmUnit1 in 'frmUnit1.pas' {formImportEP}, + frmUnit5 in 'frmUnit5.pas' {formKartyZbozi}, + frmBaliciListy in 'frmBaliciListy.pas' {formBaliciListy}, + frmUnit9 in 'frmUnit9.pas' {frmVydejDPrace}, + frmOdvedPrikaz in 'frmOdvedPrikaz.pas' {formOdvedeniPrikazu}, + frmUnit11 in 'frmUnit11.pas' {formStSklHrZmen}, + frmUnit12 in 'frmUnit12.pas' {frmRozdelMat}, + frmUnit13 in 'frmUnit13.pas' {formPrevPrij}, + frmDemontaz in 'frmDemontaz.pas' {formDemontaz}, + frmReklamaceMat in 'frmReklamaceMat.pas' {formReklamaceMat}, + frmKanbanBox in 'frmKanbanBox.pas' {formKanbanBox}, + frmUnit3 in 'frmUnit3.pas', + frmKanbanObj in 'frmKanbanObj.pas' {formKanbanObj}, + Globalni in 'Globalni.pas'; + +// frmUnit4 in 'frmUnit4.pas' {formDodavky}; + +// frmUnit1 in 'frmUnit1.pas' {formImportEP}, +// frmMain in 'frmMain.pas' {formMain} + +exports + DllGetClassObject, + DllCanUnloadNow, + DllRegisterServer, + DllUnregisterServer; + +{$R *.RES} + +BEGIN +END. diff --git a/plgLOVATO.dproj b/plgLOVATO.dproj new file mode 100644 index 0000000..fcdb449 --- /dev/null +++ b/plgLOVATO.dproj @@ -0,0 +1,244 @@ + + + {CFA8C8BC-D9C3-4491-8C35-1B1688ACE999} + plgLOVATO.dpr + True + Release + plgLOVATO + 3 + Library + None + 20.3 + Win32 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + false + false + false + false + false + 00400000 + .\lib;.\libSys;$(DCC_UnitSearchPath) + true + plgLOVATO + 1029 + CompanyName=NTS computer a.s. Strakonice / HD Consulting Strakonice;FileDescription=Helios Orange plugin - LOVATO Electric s.r.o. Pisek;FileVersion=3.0.2026.407;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=plgLOVATO.dll;ProductName=;ProductVersion=1.0.0.0;Comments=XE12.3.1;CFBundleName= + System;Xml;Data;Datasnap;Web;Soap;Vcl;Winapi;$(DCC_Namespace) + 3 + 2026 + 407 + true + + + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=;minSdkVersion=23;targetSdkVersion=35 + Debug + false + activity-1.7.2.dex.jar;annotation-experimental-1.4.1.dex.jar;annotation-jvm-1.8.1.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-7.1.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-jvm-1.4.2.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.15.0.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.15.0.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.2.dex.jar;lifecycle-livedata-2.6.2.dex.jar;lifecycle-livedata-core-2.6.2.dex.jar;lifecycle-runtime-2.6.2.dex.jar;lifecycle-service-2.6.2.dex.jar;lifecycle-viewmodel-2.6.2.dex.jar;lifecycle-viewmodel-savedstate-2.6.2.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.5.0.dex.jar;play-services-basement-18.4.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.2.0.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.2.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar + + + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=;minSdkVersion=23;targetSdkVersion=35 + Debug + false + activity-1.7.2.dex.jar;annotation-experimental-1.4.1.dex.jar;annotation-jvm-1.8.1.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-7.1.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-jvm-1.4.2.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.15.0.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.15.0.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.2.dex.jar;lifecycle-livedata-2.6.2.dex.jar;lifecycle-livedata-core-2.6.2.dex.jar;lifecycle-runtime-2.6.2.dex.jar;lifecycle-service-2.6.2.dex.jar;lifecycle-viewmodel-2.6.2.dex.jar;lifecycle-viewmodel-savedstate-2.6.2.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.5.0.dex.jar;play-services-basement-18.4.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.2.0.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.2.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar + + + System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + D:\Data\Helios\HeliosMain.exe + D:\Data\Helios + + + System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + D:\Data\Helios\win64\HeliosMain.exe + D:\Data\Helios + + + RELEASE;$(DCC_Define) + 0 + false + 0 + + + CompanyName=NTS computer a.s. Strakonice / HD Consulting Strakonice;FileDescription=Helios Orange plugin - LOVATO Electric s.r.o. Pisek;FileVersion=3.0.2026.407;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=plgLOVATO.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1 + 1033 + (None) + none + true + + + DEBUG;$(DCC_Define) + false + true + true + true + true + true + true + + + true + 1033 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + (None) + none + + + 1033 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=3.0.2026.407;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + (None) + none + + + + MainSource + + +
frmUnit1 in 'frmUnit1.pas' {formImportEP
+
+ +
formKartyZbozi
+
+ +
formBaliciListy
+
+ +
frmVydejDPrace
+
+ +
formOdvedeniPrikazu
+
+ +
formStSklHrZmen
+
+ +
frmRozdelMat
+
+ +
formPrevPrij
+
+ +
formDemontaz
+
+ +
formReklamaceMat
+
+ +
formKanbanBox
+
+ + +
formKanbanObj
+
+ + + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + + + + + plgLOVATO.dpr + + + Ethea SVGIconImageList VCL components + TurboPack Essentials Delphi Runtime package + Png Components for Delphi + DMVCFramework - CopyRight (2010-2025) Daniele Teti and the DMVCFramework Team + (untitled) + File C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\VirtualTreesDD290.bpl not found + Helios Orange Components + TurboPack LockBox 3 Delphi runtime package + Embarcadero Standard Components + TurboPack Orpheus Delphi datataware designtime package + TurboPack LockBox 3 VCL designtime package + TurboPack LockBox Delphi designtime package + Ethea IconFontsImageList VCL components + Ethea IconFontsImageList FMX components + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + File D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLVCLTeeGrid29.bpl not found + File D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLFMXTeeGrid29.bpl not found + + + + False + False + False + True + True + + + 12 + + + +
diff --git a/plgLOVATO.otares b/plgLOVATO.otares new file mode 100644 index 0000000000000000000000000000000000000000..08cdae7a01be19dfee966980299f844b91e97d76 GIT binary patch literal 96 zcmZQzU|>)H;{X347|28cEI^(O5dZ(r#Sp;Y!{Epe!r;c>&k)4m3uHM0X?F%!AS)QE O%YcCsqy-F^fg}Kqp9>@a literal 0 HcmV?d00001 diff --git a/plgLOVATO.res b/plgLOVATO.res new file mode 100644 index 0000000000000000000000000000000000000000..a2b03683ea2f02cd502f77464d1bc9249f3c4223 GIT binary patch literal 992 zcmZvb%Sr=55JhiHKqDxwUCqLkV4P_1g&<;lfsddP-02u&2qu#-F$@2~o#4Od*SK=y z9~e*d%xHWxR8LP=)va5%yCuoP27}mG{ur0p)IUW`#`%2Zb7|0Jw#2fkQ(Z7`>x9+5 zj&;QUKJyN18_&7-56SYgdd$3y#%pQAc_jlJN!ID-g^dh&cZ$?hs0L_FwNwW=)Qvg> zKDiiQCHY##N^men4_YC2i!5`@iWKXpuqED4Nbv$AU>S10|InXUJ zA(d-Hc$&xdRAx5xkk~$)?h=OoXBnRod{X{pkb2-*UtO1LNH+HHwAk(7_s}kK+#9ZP z7f&A*ObbtQ*Z~n$ZPLpzf7?!*TB28t9qS{)I8iir-Ug%7(~<;jWfmEEO~ zIz9H!QNM^%1(|Y1*N1hJ;e4!vRGsgeE6uoDf9ATkd(uLV afjet^Qzts))HnI=QrYfuJci#UPgkFN6p(WO literal 0 HcmV?d00001 diff --git a/plgLOVATO_Icon.ico b/plgLOVATO_Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..379ec80d91cd5bef25a44bb21ae1c40a278cd772 GIT binary patch literal 4286 zcmbW5J#OSi5QW>=U_(1{ItmS4g1!V}9;N3d++blCyaXpU6e=_@dxQ-)FhIZWRTs$_ zQLQs45wEHCWfF(Ina})Ode)6gDYWM$ z`da(ilNf!AOPu5~4YkC0g5>}zsRTQQFwaIk6Ia_!s-hw;D* z4$F-GYV1Yp_u8l7(Q8Bdv$RV$`r$CjE8hJ>d<<-IyyjW$2WzC1C;Lz8$&(dnV^yHs*_M0!evCMzyCP#I}Mi1k$e+_$(mafVo z?u4#EZTzU*p0uu0o@MMw(cCoiE^B0p-_xJteel6RbLgJRqBYqMe8sLZ;a>i}cs=^3 zI=N52OVvKGW&k@m;2Z7@wm8t&T;ijZ*m(1pn|5MqtRF(R*UT{n2m0*4u}5K_;3+@I zpLj3ym%7&uzKprbo=2STfBg|0=HTEnTNOuE2Jls5Ps@r)AFjq9wT88Wd>2N3tY7i0 zcZ7r5v#>F}pSfSI+OPS!BnLQw8Q8>a_*zHZgGn7kn;bWuC;3kA4Z#78V0ix%cWxY1 zpUgR@%TnOrw$2CRzVtLP-{@f$) z6M5EJaM0zw7eDS?pHty74mL5|KEUUF=erX>8C=3tf8xe@jyoXqyEecfA4A)tku}PH zMQh`rcH)OW*6;i)mN5tRHmpcLb9v`DN1BVemlt;Gr}kri^e*@^Fw>Z)&H1~@ecOkq zJMJ$yMl9l?-}|pNdYz|1@wJY5$D9Mp^LjV$M&|N7(00Eb<3~-SyX_tEr9bfv3pjQXKNPop-Pc{`-;TsMZTFw+PknNN!H@fkSm;8#xk)=YOs#n@#5dHIheLeT zLfmWUmmc8|KQu=DppS1L&bi0c=bl|e(Lk8{c67h zwDYcUO^BoGUbtDiVEMjjxLJc>^CXuee8#9n=eyhToq50U9lAq%o?Xrv*eiz`ZE~@H znCD!*#bK@a6BuyW`&(>syxp_3Hx6LkKa62VXCXPUN38KZ(K<9Dy&s2=h=GJV#& zW84!^pK&blUiH`bEul8hNZz;;>BG^rr1AZ?ocF)w-~f6ZS~*Z-)Y^MYYmKRzUbA73t|EE@br_Cxkv_Dyzac9zFJ`keLO4%nrXPuRCo TJ}dUm!Z-=56Xvp9J}v(Ob;cBC literal 0 HcmV?d00001 diff --git a/plgLOVATO_Icon1.ico b/plgLOVATO_Icon1.ico new file mode 100644 index 0000000000000000000000000000000000000000..379ec80d91cd5bef25a44bb21ae1c40a278cd772 GIT binary patch literal 4286 zcmbW5J#OSi5QW>=U_(1{ItmS4g1!V}9;N3d++blCyaXpU6e=_@dxQ-)FhIZWRTs$_ zQLQs45wEHCWfF(Ina})Ode)6gDYWM$ z`da(ilNf!AOPu5~4YkC0g5>}zsRTQQFwaIk6Ia_!s-hw;D* z4$F-GYV1Yp_u8l7(Q8Bdv$RV$`r$CjE8hJ>d<<-IyyjW$2WzC1C;Lz8$&(dnV^yHs*_M0!evCMzyCP#I}Mi1k$e+_$(mafVo z?u4#EZTzU*p0uu0o@MMw(cCoiE^B0p-_xJteel6RbLgJRqBYqMe8sLZ;a>i}cs=^3 zI=N52OVvKGW&k@m;2Z7@wm8t&T;ijZ*m(1pn|5MqtRF(R*UT{n2m0*4u}5K_;3+@I zpLj3ym%7&uzKprbo=2STfBg|0=HTEnTNOuE2Jls5Ps@r)AFjq9wT88Wd>2N3tY7i0 zcZ7r5v#>F}pSfSI+OPS!BnLQw8Q8>a_*zHZgGn7kn;bWuC;3kA4Z#78V0ix%cWxY1 zpUgR@%TnOrw$2CRzVtLP-{@f$) z6M5EJaM0zw7eDS?pHty74mL5|KEUUF=erX>8C=3tf8xe@jyoXqyEecfA4A)tku}PH zMQh`rcH)OW*6;i)mN5tRHmpcLb9v`DN1BVemlt;Gr}kri^e*@^Fw>Z)&H1~@ecOkq zJMJ$yMl9l?-}|pNdYz|1@wJY5$D9Mp^LjV$M&|N7(00Eb<3~-SyX_tEr9bfv3pjQXKNPop-Pc{`-;TsMZTFw+PknNN!H@fkSm;8#xk)=YOs#n@#5dHIheLeT zLfmWUmmc8|KQu=DppS1L&bi0c=bl|e(Lk8{c67h zwDYcUO^BoGUbtDiVEMjjxLJc>^CXuee8#9n=eyhToq50U9lAq%o?Xrv*eiz`ZE~@H znCD!*#bK@a6BuyW`&(>syxp_3Hx6LkKa62VXCXPUN38KZ(K<9Dy&s2=h=GJV#& zW84!^pK&blUiH`bEul8hNZz;;>BG^rr1AZ?ocF)w-~f6ZS~*Z-)Y^MYYmKRzUbA73t|EE@br_Cxkv_Dyzac9zFJ`keLO4%nrXPuRCo TJ}dUm!Z-=56Xvp9J}v(Ob;cBC literal 0 HcmV?d00001