243 lines
5.6 KiB
ObjectPascal
243 lines
5.6 KiB
ObjectPascal
unit uSvcCustom;
|
||
|
||
interface
|
||
{$I 'GlobalDefs.inc'}
|
||
|
||
uses
|
||
System.Classes,
|
||
System.JSON,
|
||
System.Generics.Collections,
|
||
Winapi.ActiveX,
|
||
System.DateUtils,
|
||
System.SysUtils,
|
||
JsonDataObjects,
|
||
uSvc_Base,
|
||
uCommons, // kvuli EServiceException
|
||
helTabsBIDs,
|
||
uHeoObj_Base,
|
||
uHeOObj_Custom,
|
||
uHeoObj_Vyroba,
|
||
uSvc_Obecne,
|
||
uSvc_ObehZbozi,
|
||
uSvc_Vyroba;
|
||
|
||
|
||
const
|
||
//{$I C:\_zakaznici\pluginy_obecne\HDCApi2\globalConsts.inc}
|
||
{$I .\..\..\globalConsts.inc}
|
||
|
||
selSloupce = 'SELECT TypZakazky, CisloZakazky, NazevOrg, CisloOrg, VyrobniCislo, NazevPol, idPolozkaObj, PotvrzenyTerminDod, NadrazeneCisloZakazky, Vykres, Stav'
|
||
+ ', ID AS IDZakazky, Nazev, DruhyNazev, DatPorizeni_Y FROM dbo.hvw_ADE_VIEW_ZAKAZKA ORDER BY CisloZakazky';
|
||
|
||
selEMPAtestDok = 'SELECT d.ID, d.Popis, d.JmenoACesta, ISNULL(de_CisloAtestu, N'''') AS CisloAtestu, ISNULL(de._AtestyPoznamka, N'''') AS AtestPoznamka'
|
||
+ ', d.DatPorizeni FROM ' + tblDokum + ' d LEFT JOIN ' + tblDokumE + ' de ON (de.ID=d.ID)';
|
||
|
||
type
|
||
TEMPNadobaService = class(TServiceBase)
|
||
public
|
||
function GetAll: TObjectList<TEMPNadoba>;
|
||
function GetByID (const AID: integer): TEMPNadoba;
|
||
function GetByCislo (const ACislo: string): TEMPNadoba;
|
||
function GetMeta: TJSONObject;
|
||
function GetByParams (params: TDictionary<string, string>): TObjectList<TEMPNadoba>;
|
||
end;
|
||
|
||
|
||
|
||
implementation
|
||
uses
|
||
System.StrUtils,
|
||
FireDAC.Stan.Option,
|
||
FireDAC.Comp.Client,
|
||
FireDAC.Stan.Param,
|
||
MVCFramework.FireDAC.Utils,
|
||
MVCFramework.DataSet.Utils,
|
||
MVCFramework.Serializer.Commons,
|
||
uCtrlBase
|
||
;
|
||
|
||
|
||
|
||
|
||
{ TEMPNadobaService }
|
||
|
||
function TEMPNadobaService.GetByParams (params: TDictionary<string, string>): TObjectList<TEMPNadoba>;
|
||
var lSQL, where, ordBy: string;
|
||
AID, cnt, rNo: integer;
|
||
retObj: TEMPNadoba;
|
||
lsRetObj: TObjectList<TEMPNadoba>;
|
||
lQry: TFDQuery;
|
||
sqlConnX: TFDConnection;
|
||
begin
|
||
result:= nil;
|
||
|
||
ordBy:= 'VyrobniCislo';
|
||
|
||
if (params<>nil) then
|
||
begin
|
||
if (params.ContainsKey('ordBy')) then
|
||
if (params.Items['ordBy']<>'') then
|
||
ordBy:= params.Items['ordBy'];
|
||
end;
|
||
|
||
lSQL:= 'SELECT ' + selSloupce;
|
||
lSQL:= lSQL + ' ORDER BY ' + ordBy;
|
||
|
||
|
||
sqlConnX:= TFDConnection.Create(nil);
|
||
sqlConnX.ConnectionDefName:= sqlPoolName;
|
||
|
||
lQry:= TFDQuery.Create(nil);
|
||
try
|
||
lQry.FetchOptions.Mode:= fmAll;
|
||
lQry.Connection:= sqlConnX;
|
||
lQry.Open(lSQL);
|
||
cnt:= lQry.RecordCount;
|
||
if (cnt>0) then
|
||
begin
|
||
lsRetObj:= TObjectList<TEMPNadoba>.Create;
|
||
try
|
||
lQry.First;
|
||
rNo:= 1;
|
||
while (rNo<=cnt) do
|
||
begin
|
||
lQry.RecNo:= rNo;
|
||
AID:= lQry.FieldByName('ID').AsInteger;
|
||
retObj:= self.GetByID (AID);
|
||
lsRetObj.Add(retObj);
|
||
if not(lQry.Active) then
|
||
lQry.Open;
|
||
Inc (rNo);
|
||
end;
|
||
Result:= lsRetObj;
|
||
except on E:Exception do
|
||
raise EServiceException.Create('Chyba nacitani nadob: ' + E.Message);
|
||
end;
|
||
end;
|
||
except on E:Exception do
|
||
raise EServiceException.Create(errMaterialy + E.Message);
|
||
end;
|
||
|
||
lQry.Free;
|
||
sqlConnX.Close;
|
||
sqlConnX.Free;
|
||
|
||
end;
|
||
|
||
|
||
|
||
|
||
function TEMPNadobaService.GetAll:TObjectList<TEMPNadoba>;
|
||
var lSQL: string;
|
||
begin
|
||
lSQL:= selSloupce + ' ORDER BY VyrobniCislo';
|
||
FDM.sqlQry1.Open(lSQL, []);
|
||
result:= FDM.sqlQry1.AsObjectList<TEMPNadoba>;
|
||
FDM.sqlQry1.Close;
|
||
end;
|
||
|
||
|
||
|
||
|
||
function TEMPNadobaService.GetByID (const AID: Integer): TEMPNadoba;
|
||
var lSQL: string;
|
||
lQry: TFDQuery;
|
||
sqlConnX: TFDConnection;
|
||
begin
|
||
lSQL:= selSloupce + ' WHERE ID=:ID';
|
||
|
||
sqlConnX:= TFDConnection.Create(nil);
|
||
sqlConnX.ConnectionDefName:= sqlPoolName;
|
||
|
||
lQry:= TFDQuery.Create(nil);
|
||
try
|
||
lQry.FetchOptions.Mode:= fmAll;
|
||
lQry.Connection:= sqlConnX;
|
||
lQry.Open(lSQL, [AID]);
|
||
lQry.First;
|
||
try
|
||
if not(lQry.EOF) then
|
||
begin
|
||
result:= FDM.sqlQry1.AsObject<TEMPNadoba>
|
||
end
|
||
else
|
||
raise EServiceException.Create('N<>doba s ID ' + AID.ToString + ' nebyla nalezena.');
|
||
except on E:Exception do
|
||
raise EServiceException.Create('N<>doba s ID ' + AID.ToString + ' nebyla nalezena - ' + E.Message);
|
||
end;
|
||
finally
|
||
lQry.Free;
|
||
end;
|
||
|
||
sqlConnX.Close;
|
||
sqlConnX.Free;
|
||
end;
|
||
|
||
|
||
|
||
|
||
function TEMPNadobaService.GetByCislo (const ACislo: string): TEMPNadoba;
|
||
var lSQL: string;
|
||
lQry: TFDQuery;
|
||
sqlConnX: TFDConnection;
|
||
begin
|
||
lSQL:= selSloupce + ' WHERE VyrobniCislo=:ACislo';
|
||
|
||
sqlConnX:= TFDConnection.Create(nil);
|
||
sqlConnX.ConnectionDefName:= sqlPoolName;
|
||
|
||
lQry:= TFDQuery.Create(nil);
|
||
try
|
||
lQry.FetchOptions.Mode:= fmAll;
|
||
lQry.Connection:= sqlConnX;
|
||
lQry.Open(lSQL, [ACislo]);
|
||
lQry.First;
|
||
try
|
||
if not(lQry.EOF) then
|
||
begin
|
||
result:= FDM.sqlQry1.AsObject<TEMPNadoba>
|
||
end
|
||
else
|
||
raise EServiceException.Create('N<>doba s <20><>slem ' + ACislo + ' nebyla nalezena.');
|
||
except on E:Exception do
|
||
raise EServiceException.Create('N<>doba s <20><>slem ' + ACislo + ' nebyla nalezena - ' + E.Message);
|
||
end;
|
||
finally
|
||
lQry.Free;
|
||
end;
|
||
|
||
sqlConnX.Close;
|
||
sqlConnX.Free;
|
||
end;
|
||
|
||
|
||
|
||
|
||
function TEMPNadobaService.GetMeta: TJSONObject;
|
||
var lSQL: string;
|
||
lQry: TFDQuery;
|
||
sqlConnX: TFDConnection;
|
||
begin
|
||
lSQL:= selSloupce + ' WHERE 1=0';
|
||
|
||
sqlConnX:= TFDConnection.Create(nil);
|
||
sqlConnX.ConnectionDefName:= sqlPoolName;
|
||
|
||
lQry:= TFDQuery.Create(nil);
|
||
try
|
||
lQry.FetchOptions.Mode:= fmAll;
|
||
lQry.Connection:= sqlConnX;
|
||
lQry.Open(lSQL);
|
||
result:= lQry.MetadataAsJSONObject();
|
||
finally
|
||
lQry.Free;
|
||
end;
|
||
|
||
sqlConnX.Close;
|
||
sqlConnX.Free;
|
||
|
||
end;
|
||
|
||
|
||
end.
|