430 lines
12 KiB
ObjectPascal
430 lines
12 KiB
ObjectPascal
unit uCtrlKmenZbozi;
|
|
|
|
interface
|
|
{$I 'GlobalDefs.inc'}
|
|
|
|
uses
|
|
mvcframework,
|
|
mvcframework.Commons,
|
|
mvcframework.Serializer.Commons,
|
|
MVCFramework.Controllers.Register,
|
|
MVCFramework.Logger,
|
|
uCtrlBase,
|
|
uHeoObj_Base,
|
|
MVCFramework.Swagger.Commons
|
|
;
|
|
|
|
const
|
|
{$I globalConsts.inc}
|
|
|
|
type
|
|
[MVCPath('/skupinakaret')]
|
|
TSkupinaZboziController = class(TBaseController)
|
|
public
|
|
[MVCPath('/meta')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Skupina karet', 'Vraci metadata skupiny karet', 'SkupZboGetMeta')]
|
|
procedure GetMeta;
|
|
|
|
[MVCPath('/($id)')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Skupina karet', 'Vrací data skupiny karet dle jejího kódu')]
|
|
[MVCSwagParam(plPath, 'id', 'ID skupiny karet', ptString, true)]
|
|
procedure GetByID (id: string='';
|
|
[MVCFromQueryString('sk', '')] sk: string='';
|
|
[MVCFromQueryString('nazev', '')] nazev: string=''
|
|
);
|
|
|
|
[MVCPath('')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Skupina karet', 'Vraci všechny skupiny karet', 'SkupZboGetAll')]
|
|
[MVCSwagParam(plQuery, 'sk', 'Skupina karet', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'nazev', 'Název skupiny karet (použit operátor "obsahuje")', ptString, false)]
|
|
procedure GetAll ( [MVCFromQueryString('sk', '')] sk: string='';
|
|
[MVCFromQueryString('nazev', '')] nazev: string=''
|
|
);
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
[MVCPath('/kmenzbozi')]
|
|
TKmenZboziController = class(TBaseController)
|
|
public
|
|
[MVCPath('/meta')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Kmen zboží', 'Vraci metadata kmenové karty', 'KmenZboziGetMeta')]
|
|
procedure GetMeta;
|
|
|
|
[MVCPath('/($id)/prepocetmj')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Kmen zboží', 'Vrati tabulku prepoctu MJ dane kmenove karty dle ID', 'KmenZboziGetPrepocetMJ')]
|
|
[MVCSwagParam(plPath, 'id', 'ID kmenové karty', ptString, false)]
|
|
[MVCSwagResponses(200, 'Success', TPrepocetMJ, true)]
|
|
procedure GetPrepocetMJ(id: string='0');
|
|
|
|
[MVCPath('/($id)/dokumenty')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Kmen zboží', 'Vrátí seznam dokumentů k dané kmenové kartě', 'KmenZboziGetDokumenty')]
|
|
[MVCSwagParam(plPath, 'id', 'ID kmenové karty', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'jenseznam', '1 = jen seznam (bez obsahu dokumentu)', ptString, false, '1')]
|
|
[MVCSwagParam(plQuery, 'pripona', 'Připona souboru dokumentu', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'prednastaveny', 'Pokud má parametr hodnotu 1, zobrazí se jen dokumenty přednastavené pro API (TabDokumenty_EXT._DokladProAPI=1)', ptString, false, '')]
|
|
[MVCSwagParam(plQuery, 'base64', 'Obsah dokumentu vrátit v kódování BASE64', ptString, false, '0')]
|
|
[MVCSwagParam(plQuery, 'iddokstrom', 'ID stromové struktury dokumetu', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'iddoktyp', 'ID typu dokumetu', ptString, false)]
|
|
procedure GetDokumenty (id: string='0';
|
|
[MVCFromQueryString('jenseznam', '')] jenSeznam: string='1';
|
|
[MVCFromQueryString('pripona', '')] pripona: string='';
|
|
[MVCFromQueryString('prednastaveny', '')] prednastaveny: string='';
|
|
[MVCFromQueryString('base64', '')] base64: string='0';
|
|
[MVCFromQueryString('iddokstrom', '')] idDokStrom: string='';
|
|
[MVCFromQueryString('iddoktyp', '')] idDokTyp: string=''
|
|
);
|
|
|
|
[MVCPath('/($id)')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Kmen zboží', 'Vrací data kmenové karty dle jejího ID'), 'KmenZboziGetByID']
|
|
[MVCSwagParam(plPath, 'id', 'ID kmenové karty', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'sk', 'Skupina karet (použit operátor "začíná na")', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'rc', 'Registrační číslo (operátor "začíná na")', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'barcode', 'Čárový kod', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'nazev1', 'Název 1 (operátor "obsahuje")', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'cislozbozi', 'Číslo zboží (tj. skupina + registrační číslo) (operátor "začíná na")', ptString, false)]
|
|
[MVCSwagResponses(200, 'Success', TKmenZbozi, false)]
|
|
procedure GetByID (id: string='0';
|
|
[MVCFromQueryString('sk', '')] sk: string='';
|
|
[MVCFromQueryString('rc', '')] rc: string='';
|
|
[MVCFromQueryString('barcode', '')] barcode: string='';
|
|
[MVCFromQueryString('cislozbozi', '')] cisZbo: string='';
|
|
[MVCFromQueryString('nazev1', '')] nazev1: string=''
|
|
);
|
|
|
|
[MVCPath('')]
|
|
[MVCHTTPMethod([httpGET])]
|
|
[MVCSwagSummary('Kmen zboží', 'Vraci všechny kmenové karty', 'KmenZboziGetAll')]
|
|
[MVCSwagParam(plQuery, 'sk', 'Skupina karet (použit operátor "začíná na")', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'rc', 'Registrační číslo (operátor "začíná na")', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'barcode', 'Čárový kod', ptString, false)]
|
|
[MVCSwagParam(plQuery, 'nazev1', 'Název 1 (operátor "obsahuje")', ptString, false)]
|
|
[MVCSwagResponses(200, 'Success', TKmenZbozi, true)]
|
|
procedure GetAll ( [MVCFromQueryString('sk', '')] sk: string='';
|
|
[MVCFromQueryString('rc', '')] rc: string='';
|
|
[MVCFromQueryString('barcode', '')] barcode: string='';
|
|
[MVCFromQueryString('nazev1', '')] nazev1: string=''
|
|
);
|
|
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uSvc_Base,
|
|
uCommons,
|
|
QUick.Logger,
|
|
mvcframework.Serializer.Intf,
|
|
System.Generics.Collections,
|
|
System.RegularExpressions,
|
|
System.StrUtils,
|
|
System.SysUtils;
|
|
|
|
|
|
|
|
|
|
|
|
{ TSkupinaZboziController }
|
|
|
|
procedure TSkupinaZboziController.GetMeta;
|
|
begin
|
|
try
|
|
Render(ObjectDict().Add('data', GetSkupinaZboziService.GetMeta));
|
|
except
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200);
|
|
{$ELSE}
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end
|
|
else
|
|
raise;
|
|
{$ENDIF}
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TSkupinaZboziController.GetAll (sk: string=''; nazev: string='');
|
|
begin
|
|
sk:= sanitizeSQLString(sk);
|
|
nazev:= sanitizeSQLString(nazev);
|
|
GetByID ('', sk, nazev);
|
|
end;
|
|
|
|
|
|
|
|
procedure TSkupinaZboziController.GetByID (id: string = ''; sk: string=''; nazev: string = '');
|
|
var iId: integer;
|
|
params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
|
|
iId:= 0;
|
|
id:= sanitizeSQLString(id);
|
|
if not(TryStrToInt(id, iId)) then
|
|
iId:= 0;
|
|
if (iId>0) then
|
|
params.Add('id', iId.ToString);
|
|
|
|
sk:= sanitizeSQLString(sk);
|
|
if (sk<>'') then
|
|
params.Add('sz', sk);
|
|
|
|
nazev:= sanitizeSQLString(nazev);
|
|
if (nazev<>'') then
|
|
params.Add('nazev', nazev);
|
|
|
|
|
|
if (params.Count>0) then
|
|
try
|
|
Render(ObjectDict().Add('data', GetSkupinaZboziService.GetByParams(params))); // viz uSvc_KmenZbozi.pas
|
|
except
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200);
|
|
{$ELSE}
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create('Chyba hledání SK', E.Message, 0, 200);
|
|
end
|
|
else
|
|
raise;
|
|
{$ENDIF}
|
|
end
|
|
else
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200, 'Chyba hledání SK');
|
|
{$ELSE}
|
|
raise EMVCException.Create('Chyba hledání SK', 'Pro hledání skupiny karet nebyl zadán žádný atribut', 0, 200);
|
|
{$ENDIF}
|
|
|
|
params.Free;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ TKmenZboziController }
|
|
|
|
{
|
|
procedure TKmenZboziController.GetAll;
|
|
begin
|
|
Render(
|
|
ObjectDict().Add('data', GetKmenZboziService.GetAll) // viz uSvc_KmenZbozi.pas
|
|
);
|
|
end;
|
|
}
|
|
|
|
|
|
procedure TKmenZboziController.GetPrepocetMJ (id: string = '0');
|
|
var iId: integer;
|
|
begin
|
|
id:= sanitizeSQLString(id);
|
|
if not(TryStrToInt(id, iId)) then
|
|
iId:= 0;
|
|
|
|
if (iId>0) then
|
|
begin
|
|
try
|
|
Render(ObjectDict().Add('data', GetKmenZboziService.GetPrepocetMJ(iId))); // viz uSvc_KmenZbozi.pas
|
|
except
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200);
|
|
{$ELSE}
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end
|
|
else
|
|
raise;
|
|
{$ENDIF}
|
|
end;
|
|
end
|
|
else
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200, 'Nemám ID kmenové karty');
|
|
{$ELSE}
|
|
raise EMVCException.Create('Nemám ID kmenové karty', '', 0, 200);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TKmenZboziController.GetDokumenty (id: string = '0'; jenSeznam: string='1'; pripona: string=''; prednastaveny: string=''; base64: string='0';
|
|
idDokStrom: string=''; idDokTyp: string='');
|
|
var iId: integer;
|
|
i1, i2: 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;
|
|
|
|
params.Add('vazba_ident', '8');
|
|
if (iId>0) then
|
|
params.Add('vazba_idtab', iId.ToString);
|
|
|
|
pripona:= sanitizeSQLString(pripona);
|
|
if (pripona<>'') then
|
|
params.Add('pripona', pripona);
|
|
|
|
jenSeznam:= sanitizeSQLString(jenSeznam);
|
|
if (jenSeznam='1') or (jenSeznam='0') then
|
|
params.Add('jenHlavicka', jenSeznam);
|
|
|
|
prednastaveny:= sanitizeSQLString(prednastaveny);
|
|
if (prednastaveny='0') or (prednastaveny='1') then
|
|
params.Add('prednastaveny', prednastaveny);
|
|
|
|
base64:= sanitizeSQLString(base64);
|
|
if (base64='1') then
|
|
params.Add('base64', '1');
|
|
|
|
i1:= 0;
|
|
idDokStrom:= sanitizeSQLString(idDokStrom);
|
|
if not(TryStrToInt(idDokStrom, i1)) then
|
|
i1:= 0;
|
|
if (i1>0) then
|
|
params.Add('iddokstrom', i1.ToString);
|
|
|
|
i2:= 0;
|
|
idDokTyp:= sanitizeSQLString(idDokTyp);
|
|
if not(TryStrToInt(idDokTyp, i2)) then
|
|
i2:= 0;
|
|
if (i2>0) then
|
|
params.Add('iddoktyp', i2.ToString);
|
|
|
|
|
|
try
|
|
// Log.Debug('GetDokumenty start', 'uCtrlKmen_GetDokumenty');
|
|
Render(ObjectDict().Add('data', GetDokumentService.GetByParams (params)));
|
|
// Log.Debug('GetDokumenty konec', 'uCtrlKmen_GetDokumenty');
|
|
except
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200);
|
|
{$ELSE}
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end
|
|
else
|
|
raise;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
params.Free;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TKmenZboziController.GetByID (id: string='0'; sk: string=''; rc: string=''; barcode: string=''; cisZbo: string=''; nazev1: string='');
|
|
var iId: integer;
|
|
typ: byte;
|
|
params: TDictionary<string, string>;
|
|
begin
|
|
params:= TDictionary<string, string>.Create;
|
|
|
|
id:= sanitizeSQLString(id);
|
|
if not(TryStrToInt(id, iId)) then
|
|
iId:= 0;
|
|
if (iId>0) then
|
|
params.Add('id', iId.ToString);
|
|
|
|
sk:= sanitizeSQLString(sk);
|
|
if (sk<>'') then
|
|
params.Add('sz', sk);
|
|
|
|
rc:= sanitizeSQLString(rc);
|
|
if (rc<>'') then
|
|
params.Add('rc', rc);
|
|
|
|
barcode:= sanitizeSQLString(barcode);
|
|
if (barcode<>'') then
|
|
params.Add('barcode', barcode);
|
|
|
|
cisZbo:= sanitizeSQLString(cisZbo);
|
|
if (cisZbo<>'') then
|
|
params.Add('cisloZbozi', cisZbo);
|
|
|
|
nazev1:= sanitizeSQLString(nazev1);
|
|
if (nazev1<>'') then
|
|
params.Add('nazev1', nazev1);
|
|
|
|
|
|
try
|
|
Render(ObjectDict().Add('data', GetKmenZboziService.GetByParams (params))); // viz uSvc_KmenZbozi.pas
|
|
except
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200);
|
|
{$ELSE}
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end
|
|
else
|
|
raise;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
params.Free;
|
|
end;
|
|
|
|
|
|
|
|
procedure TKmenZboziController.GetAll (sk: string=''; rc: string=''; barcode: string=''; nazev1: string='');
|
|
begin
|
|
sk:= sanitizeSQLString(sk);
|
|
rc:= sanitizeSQLString(rc);
|
|
barcode:= sanitizeSQLString(barcode);
|
|
nazev1:= sanitizeSQLString(nazev1);
|
|
GetByID ('', sk, rc, barcode, nazev1);
|
|
end;
|
|
|
|
|
|
|
|
procedure TKmenZboziController.GetMeta;
|
|
begin
|
|
try
|
|
Render(ObjectDict().Add('data', GetKmenZboziService.GetMeta));
|
|
except
|
|
{$IFDEF NORENDER400}
|
|
RenderStatusMessage (200);
|
|
{$ELSE}
|
|
on E: EServiceException do
|
|
begin
|
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
|
end
|
|
else
|
|
raise;
|
|
{$ENDIF}
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
//initialization
|
|
// TControllersRegister.Instance.RegisterController(TKmenZboziController, 'HDCApiService');
|
|
|
|
|
|
end.
|