587 lines
17 KiB
ObjectPascal
587 lines
17 KiB
ObjectPascal
unit uCtrlCustom;
|
|
|
|
interface
|
|
|
|
uses
|
|
MVCframework,
|
|
MVCframework.Commons,
|
|
MVCframework.Serializer.Commons,
|
|
// MVCframework.Serializer.Intf,
|
|
System.Generics.Collections, // kvuli TDictionary
|
|
System.RegularExpressions,
|
|
// JsonDataObjects,
|
|
uCommons, // kvuli EServiceException
|
|
uCtrlBase,
|
|
// uSvc_Base,
|
|
uHeoObj_Base,
|
|
uHeOObj_Custom,
|
|
uSvcCustom,
|
|
MVCFramework.Swagger.Commons; // kvuli dokumentaci
|
|
|
|
type
|
|
|
|
[MVCPath('/vyroba-pila')]
|
|
TKRXVyrobaPilaController = class(TBaseController)
|
|
strict private
|
|
FSelfSvc: TKoramexService;
|
|
strict protected
|
|
function GetKoramexService: TKoramexService;
|
|
public
|
|
destructor Destroy; override;
|
|
|
|
[MVCPath('hlavicky')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Hlavičky evidence práce pily', 'Vrátí seznam hlaviček evidence pily', 'GetHlavicky')]
|
|
[MVCSwagParam(plQuery, 'cislozam', 'Osobní číslo zaměstnance', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'radky', 'Včetně řádků (0/1)', ptString, false)]
|
|
procedure GetHlavicky ([MVCFromQueryString('cislozam', '')] cislozam: string='';
|
|
[MVCFromQueryString('radky', '')] radky: string=''
|
|
);
|
|
|
|
[MVCPath('operace')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Výrobní operace', 'Vrátí seznam operací výrobních příkazů s živými kusy', 'GetOperace')]
|
|
[MVCSwagParam(plQuery, 'idpracoviste', 'ID pracoviště', ptString, true)]
|
|
[MVCSwagParam(plQuery, 'zakazka', 'Osobní číslo zaměstnance', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'idkmenmaterial', 'ID kmenové karty materiálu', ptString, false)]
|
|
procedure GetOperace ([MVCFromQueryString('idpracoviste', '')] idPrac: string='';
|
|
[MVCFromQueryString('zakazka', '')] zakazka: string='';
|
|
[MVCFromQueryString('idkmenmaterial', '')] idKmenMat: string=''
|
|
);
|
|
|
|
end;
|
|
|
|
|
|
|
|
[MVCPath('/kooperace')]
|
|
TKRXVyrobaCisKooperaceController = class(TTPVCisKooperaciController)
|
|
strict private
|
|
FSelfSvc: TKoramexService;
|
|
strict protected
|
|
function GetKoramexService: TKoramexService;
|
|
public
|
|
destructor Destroy; override;
|
|
|
|
// [MVCDoc('Pomocí POST zapíše data DataZone tasků (kontroluje duplicitu,vrací NEW, OLD nebo NOT OK s textem chyby)')]
|
|
[MVCPath('/zapis')] // zapis pozadavku prevodu na mezisklad
|
|
[MVCHTTPMethod([httpPOST])]
|
|
[MVCSwagSummary('Požadavek převodu na mezisklad', 'Zápis požadavku převodu na mezisklad', 'ZapisPozadavku')]
|
|
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
|
|
procedure ZapisPozadavku(CTX: TWebContext);
|
|
|
|
[MVCPath('/potvrzeni')] // vracti potvrzeni zapisu pozadavku
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Požadavek převodu na mezisklad', 'Potvrzení požadavku převodu na mezisklad', 'PotvrzeniPozadavku')]
|
|
[MVCSwagParam(plPath, 'id', 'ID požadavku', ptString, false)]
|
|
procedure PotvrzeniPozadavku(id: string=''
|
|
);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[MVCPath('/sdserver/doklad')]
|
|
TGatemaSDDokladController = class(TBaseController)
|
|
strict private
|
|
FSelfSvc: TGatemaSDDokladService;
|
|
strict protected
|
|
function GetGatemaSDDokladService: TGatemaSDDokladService;
|
|
public
|
|
destructor Destroy; override;
|
|
|
|
[MVCPath]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_Doklad', 'Vrací hlavičku dokladů SD Serveru', 'GetAll')]
|
|
[MVCSwagParam(plQuery, 'od', 'Datum od ve formátu RRRRMMDD', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'seznam', '1=jen seznam se základními údaji', ptString, false)]
|
|
procedure GetAll([MVCFromQueryString('od', '')] odDatum: string='';
|
|
[MVCFromQueryString('seznam', '')] jenSeznam: string='0'
|
|
);
|
|
|
|
[MVCPath('/meta')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_Doklad', 'Vrací metadata', 'GetMeta')]
|
|
procedure GetMeta;
|
|
|
|
[MVCPath('/($id)')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_Doklad', 'Vrací data dokladu SD Serveru', 'GetByID')]
|
|
[MVCSwagParam(plPath, 'id', 'ID dokladu', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'typdokl', 'Typ dokladu', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'druhpohybu', 'Druh pohybu zboží', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'sklad', 'Sklad', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'format', 'Formát (1=dokladOZ)', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'od', 'Datum od ve formátu RRRRMMDD', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'do', 'Datum do ve formátu RRRRMMDD', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'seznam', '1=jen seznam se základními údaji', ptString, false)]
|
|
[MVCSwagResponses(200, 'Success', TGatemaSDDoklad, true)]
|
|
procedure GetByID(id: string='';
|
|
[MVCFromQueryString('typdokl', '')] typDokl: string='';
|
|
[MVCFromQueryString('druhpohybu', '')] druhPohybu: string='';
|
|
[MVCFromQueryString('sklad', '')] sklad: string='';
|
|
[MVCFromQueryString('format', '')] formatX: string='';
|
|
[MVCFromQueryString('od', '')] odDatum: string='';
|
|
[MVCFromQueryString('do', '')] doDatum: string='';
|
|
[MVCFromQueryString('seznam', '')] jenSeznam: string='0'
|
|
);
|
|
|
|
end;
|
|
|
|
|
|
|
|
[MVCPath('/sdserver/dokladoz')]
|
|
TGatemaSDDokladOZController = class(TBaseController)
|
|
strict private
|
|
FSelfSvc: TSDGDokladOZService;
|
|
strict protected
|
|
function GetSDGDokladOZService: TSDGDokladOZService;
|
|
public
|
|
destructor Destroy; override;
|
|
|
|
[MVCPath]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_DokladOZ', 'Vrací hlavičku dokladů OZ s vazbou na SD Server', 'GetAll')]
|
|
[MVCSwagParam(plQuery, 'od', 'Datum od ve formátu RRRRMMDD', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'seznam', '1=jen seznam se základními údaji', ptString, false)]
|
|
procedure GetAll([MVCFromQueryString('od', '')] odDatum: string='';
|
|
[MVCFromQueryString('seznam', '')] jenSeznam: string='0'
|
|
);
|
|
|
|
[MVCPath('/meta')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_DokladOZ', 'Vrací metadata', 'GetMeta')]
|
|
procedure GetMeta;
|
|
|
|
[MVCPath('/($id)')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_DokladOZ', 'Vrací data dokladu OZ s vazbou na SD Server', 'GetByID')]
|
|
[MVCSwagParam(plPath, 'id', 'ID dokladu', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'typdokl', 'Typ dokladu', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'druhpohybu', 'Druh pohybu zboží', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'sklad', 'Sklad', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'format', 'Formát (1=dokladOZ)', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'od', 'Datum od ve formátu RRRRMMDD', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'do', 'Datum do ve formátu RRRRMMDD', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'seznam', '1=jen seznam se základními údaji', ptString, false)]
|
|
[MVCSwagResponses(200, 'Success', TGatemaSDDoklad, true)]
|
|
procedure GetByID(id: string='';
|
|
[MVCFromQueryString('typdokl', '')] typDokl: string='';
|
|
[MVCFromQueryString('druhpohybu', '')] druhPohybu: string='';
|
|
[MVCFromQueryString('sklad', '')] sklad: string='';
|
|
[MVCFromQueryString('format', '')] formatX: string='';
|
|
[MVCFromQueryString('od', '')] odDatum: string='';
|
|
[MVCFromQueryString('do', '')] doDatum: string='';
|
|
[MVCFromQueryString('seznam', '')] jenSeznam: string='0'
|
|
);
|
|
|
|
end;
|
|
|
|
|
|
|
|
[MVCPath('/sdserver/scandata')]
|
|
TGatemaSDScanDataController = class(TBaseController)
|
|
strict private
|
|
FSelfSvc: TGatemaSDScanDataService;
|
|
strict protected
|
|
function GetGatemaSDScanDataService: TGatemaSDScanDataService;
|
|
public
|
|
destructor Destroy; override;
|
|
|
|
[MVCPath('/meta')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_ScanData', 'Vrací metadata', 'GetMeta')]
|
|
procedure GetMeta;
|
|
|
|
[MVCPath('/($id)')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('GatemaSD_ScanData', 'Vrací naskenovaná data', 'GetByID')]
|
|
[MVCSwagParam(plPath, 'id', 'ID scan data', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'iddoklad', 'ID dokladu SD', ptString, false)]
|
|
[MVCSwagResponses(200, 'Success', TGatemaSDScanData, true)]
|
|
procedure GetByID(id: string='';
|
|
[MVCFromQueryString('iddoklad', '')] iddoklad: string=''
|
|
);
|
|
end;
|
|
|
|
|
|
|
|
|
|
implementation
|
|
uses
|
|
FireDAC.Stan.Option,
|
|
FireDAC.Comp.Client,
|
|
FireDAC.Stan.Param,
|
|
MVCFramework.FireDAC.Utils,
|
|
MVCFramework.DataSet.Utils,
|
|
System.StrUtils,
|
|
System.SysUtils,
|
|
System.JSON,
|
|
JsonDataObjects,
|
|
Winapi.ActiveX,
|
|
uDataMod;
|
|
|
|
const
|
|
selSloupce = '';
|
|
|
|
|
|
|
|
{ TKRXVyrobaPilaController }
|
|
destructor TKRXVyrobaPilaController.Destroy;
|
|
begin
|
|
FSelfSvc.Free;
|
|
inherited;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{ TGatemaSDDokladOZController }
|
|
|
|
destructor TGatemaSDDokladOZController.Destroy;
|
|
begin
|
|
FSelfSvc.Free;
|
|
inherited;
|
|
end;
|
|
|
|
|
|
|
|
function TGatemaSDDokladOZController.GetSDGDokladOZService: TSDGDokladOZService;
|
|
begin
|
|
inherited;
|
|
if not Assigned(FSelfSvc) then
|
|
FSelfSvc:= TSDGDokladOZService.Create(datMod);
|
|
result:= FSelfSvc;
|
|
end;
|
|
|
|
|
|
|
|
procedure TGatemaSDDokladOZController.GetAll(odDatum: string=''; jenSeznam: string='0');
|
|
var params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
odDatum:= sanitizeSQLString(odDatum);
|
|
if (odDatum<>'') then
|
|
params.Add('odDatum', odDatum);
|
|
|
|
jenSeznam:= sanitizeSQLString(jenSeznam);
|
|
if (jenSeznam='1') then
|
|
params.Add('seznam', '1');
|
|
|
|
try
|
|
try
|
|
Render(ObjectDict().Add('data', GetSDGDokladOZService.GetByParams(params))); // viz uSvcCustom.pas
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
finally
|
|
params.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TGatemaSDDokladOZController.GetByID(id: string=''; typDokl: string=''; druhPohybu: string=''; sklad: string=''; formatX: string=''; odDatum: string=''; doDatum: string='';
|
|
jenSeznam: string='0');
|
|
var iId: integer;
|
|
params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
|
|
iId:= 0;
|
|
id:= sanitizeSQLString(id);
|
|
if (id<>'') then
|
|
if not(TryStrToInt(id, iId)) then
|
|
iId:= 0;
|
|
if (iId>0) then
|
|
params.Add('id', iId.ToString);
|
|
|
|
typDokl:= sanitizeSQLString(sklad);
|
|
if (typDokl<>'') then
|
|
params.Add('typDokladu', typDokl);
|
|
|
|
druhPohybu:= sanitizeSQLString(sklad);
|
|
if (druhPohybu<>'') then
|
|
params.Add('druhPohybu', druhPohybu);
|
|
|
|
formatX:= sanitizeSQLString(formatX); // pro zobrazeni jako DokladOZ
|
|
if (formatX<>'') then
|
|
if (formatX='1') then
|
|
params.Add('format', formatX);
|
|
|
|
sklad:= sanitizeSQLString(sklad);
|
|
if (sklad<>'') then
|
|
params.Add('sklad', sklad);
|
|
|
|
odDatum:= sanitizeSQLString(odDatum);
|
|
if (odDatum<>'') then
|
|
params.Add('odDatum', odDatum);
|
|
|
|
doDatum:= sanitizeSQLString(doDatum);
|
|
if (doDatum<>'') then
|
|
params.Add('doDatum', doDatum);
|
|
|
|
jenSeznam:= sanitizeSQLString(jenSeznam);
|
|
if (jenSeznam='1') then
|
|
params.Add('seznam', '1');
|
|
|
|
try
|
|
try
|
|
Render(ObjectDict().Add('data', GetSDGDokladOZService.GetByParams(params))); // viz uSvcCustom.pas
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
finally
|
|
params.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TGatemaSDDokladOZController.GetMeta;
|
|
begin
|
|
try
|
|
Render(ObjectDict().Add('data', GetSDGDokladOZService.GetMeta));
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ TGatemaSDDokladController }
|
|
|
|
destructor TGatemaSDDokladController.Destroy;
|
|
begin
|
|
FSelfSvc.Free;
|
|
inherited;
|
|
end;
|
|
|
|
|
|
function TGatemaSDDokladController.GetGatemaSDDokladService: TGatemaSDDokladService;
|
|
begin
|
|
inherited;
|
|
if not Assigned(FSelfSvc) then
|
|
FSelfSvc:= TGatemaSDDokladService.Create(datMod);
|
|
result:= FSelfSvc;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TGatemaSDDokladController.GetAll(odDatum: string=''; jenSeznam: string='0');
|
|
var params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
odDatum:= sanitizeSQLString(odDatum);
|
|
if (odDatum<>'') then
|
|
params.Add('odDatum', odDatum);
|
|
|
|
jenSeznam:= sanitizeSQLString(jenSeznam);
|
|
if (jenSeznam='1') then
|
|
params.Add('seznam', '1');
|
|
|
|
try
|
|
try
|
|
Render(ObjectDict().Add('data', GetGatemaSDDokladService.GetByParams(params))); // viz uSvcCustom.pas
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
finally
|
|
params.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TGatemaSDDokladController.GetByID(id: string=''; typDokl: string=''; druhPohybu: string=''; sklad: string=''; formatX: string=''; odDatum: string=''; doDatum: string='';
|
|
jenSeznam: string='0');
|
|
var iId: integer;
|
|
params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
|
|
iId:= 0;
|
|
id:= sanitizeSQLString(id);
|
|
if (id<>'') then
|
|
if not(TryStrToInt(id, iId)) then
|
|
iId:= 0;
|
|
if (iId>0) then
|
|
params.Add('id', iId.ToString);
|
|
|
|
typDokl:= sanitizeSQLString(sklad);
|
|
if (typDokl<>'') then
|
|
params.Add('typDokladu', typDokl);
|
|
|
|
druhPohybu:= sanitizeSQLString(sklad);
|
|
if (druhPohybu<>'') then
|
|
params.Add('druhPohybu', druhPohybu);
|
|
|
|
formatX:= sanitizeSQLString(formatX); // pro zobrazeni jako DokladOZ
|
|
if (formatX<>'') then
|
|
if (formatX='1') then
|
|
params.Add('format', formatX);
|
|
|
|
sklad:= sanitizeSQLString(sklad);
|
|
if (sklad<>'') then
|
|
params.Add('sklad', sklad);
|
|
|
|
odDatum:= sanitizeSQLString(odDatum);
|
|
if (odDatum<>'') then
|
|
params.Add('odDatum', odDatum);
|
|
|
|
doDatum:= sanitizeSQLString(doDatum);
|
|
if (doDatum<>'') then
|
|
params.Add('doDatum', doDatum);
|
|
|
|
jenSeznam:= sanitizeSQLString(jenSeznam);
|
|
if (jenSeznam='1') then
|
|
params.Add('seznam', '1');
|
|
|
|
try
|
|
try
|
|
Render(ObjectDict().Add('data', GetGatemaSDDokladService.GetByParams(params))); // viz uSvcCustom.pas
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
finally
|
|
params.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TGatemaSDDokladController.GetMeta;
|
|
begin
|
|
try
|
|
Render(ObjectDict().Add('data', GetGatemaSDDokladService.GetMeta));
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{ TGatemaSDScanDataController }
|
|
|
|
destructor TGatemaSDScanDataController.Destroy;
|
|
begin
|
|
FSelfSvc.Free;
|
|
end;
|
|
|
|
function TGatemaSDScanDataController.GetGatemaSDScanDataService: TGatemaSDScanDataService;
|
|
begin
|
|
inherited Create;
|
|
if not Assigned(FSelfSvc) then
|
|
FSelfSvc:= TGatemaSDScanDataService.Create(datMod);
|
|
result:= FSelfSvc;
|
|
end;
|
|
|
|
|
|
|
|
procedure TGatemaSDScanDataController.GetByID(id: string=''; iddoklad: string='');
|
|
var iId: integer;
|
|
params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
|
|
iId:= 0;
|
|
id:= sanitizeSQLString(id);
|
|
if (id<>'') then
|
|
if not(TryStrToInt(id, iId)) then
|
|
iId:= 0;
|
|
if (iId>0) then
|
|
params.Add('id', iId.ToString);
|
|
|
|
try
|
|
Render(ObjectDict().Add('data', GetGatemaSDScanDataService.GetByParams(params))); // viz uSvcCustom.pas
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TGatemaSDScanDataController.GetMeta;
|
|
begin
|
|
try
|
|
Render(ObjectDict().Add('data', GetGatemaSDScanDataService.GetMeta));
|
|
except
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
on E:Exception do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end.
|