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 0000000..bd8ac0e Binary files /dev/null and b/barcode.gif differ diff --git a/czStrings.res b/czStrings.res new file mode 100644 index 0000000..e8d73dc Binary files /dev/null and b/czStrings.res differ 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 0000000..08cdae7 Binary files /dev/null and b/plgLOVATO.otares differ diff --git a/plgLOVATO.res b/plgLOVATO.res new file mode 100644 index 0000000..a2b0368 Binary files /dev/null and b/plgLOVATO.res differ diff --git a/plgLOVATO_Icon.ico b/plgLOVATO_Icon.ico new file mode 100644 index 0000000..379ec80 Binary files /dev/null and b/plgLOVATO_Icon.ico differ diff --git a/plgLOVATO_Icon1.ico b/plgLOVATO_Icon1.ico new file mode 100644 index 0000000..379ec80 Binary files /dev/null and b/plgLOVATO_Icon1.ico differ