Prvni verze

This commit is contained in:
2025-05-21 21:14:32 +02:00
commit 03ff9ebc84
147 changed files with 40100 additions and 0 deletions

612
uCtrlObehZbozi.pas Normal file
View File

@ -0,0 +1,612 @@
unit uCtrlObehZbozi;
interface
{$I 'GlobalDefs.inc'}
uses
mvcframework,
mvcframework.Commons,
mvcframework.Serializer.Commons,
uCtrlBase,
uHeoObj_Base,
MVCFramework.Swagger.Commons;
const
{$I globalConsts.inc}
type
[MVCPath('/stavskladu')]
TStavSkladuController = class(TBaseController)
public
[MVCPath('/meta')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Stav skladu', 'Vraci metadata polo<6C>ky stavu skladu', 'StavSkladuGetMeta')]
procedure GetMeta;
[MVCPath('')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Stav skladu', 'Vraci polo<6C>ky stavu skladu', 'StavSkladuGetAll')]
[MVCSwagParam(plQuery, 'idsklad', '<27><>slo skladu', ptString, false)]
[MVCSwagParam(plQuery, 'archivni', '1=v<>etn<74> blokovan<61>ch', ptString, false)]
[MVCSwagResponses(200, 'Success', TStavSkladu, true)]
procedure GetAll ([MVCFromQueryString('idsklad', '')] idSklad: string='';
[MVCFromQueryString('archivni', '')] archivni: string=''
);
[MVCPath('/($id)')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Stav skladu', 'Vrac<61> data polo<6C>ky stavu skladu', 'StavSkladuGetByID')]
// [MVCSwagParam(plQuery, 'idsklad', '<27><>slo skladu', ptString, false)]
// [MVCSwagParam(plQuery, 'archivni', '1=v<>etn<74> blokovan<61>ch', ptString, false)]
[MVCSwagResponses(200, 'Success', TStavSkladu, true)]
[MVCSwagParam(plPath, 'id', 'ID stavu skladu', ptString, true)]
procedure GetByID (id: string='';
[MVCFromQueryString('idsklad', '')] idSklad: string='';
[MVCFromQueryString('archivni', '')] archivni: string=''
);
end;
[MVCPath('/dokladoz')]
TDokladOZController = class(TBaseController)
public
[MVCPath('/meta')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Doklady ob<6F>hu zbo<62><6F>', 'Vrac<61> metadata dokladu ob<6F>hu zbo<62><6F>', 'DokladOZGetMeta')]
procedure GetMeta;
[MVCPath('/radadokladu')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Doklady ob<6F>hu zbo<62><6F>', 'Vrac<61> seznam <20>ad doklad<61> ob<6F>hu zbo<62><6F>', 'DokladOZGetDruhyDok')]
[MVCSwagResponses(200, 'Success', TDruhDokZbo, true)]
[MVCSwagParam(plQuery, 'druhpohybu', 'Druh pohybu dokladu', ptString, false)]
procedure GetDruhyDokladu ([MVCFromQueryString('druhpohybu', '')] druhpohybu: string='');
[MVCPath('/($id)')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Doklady ob<6F>hu zbo<62><6F>', 'Vrac<61> doklad ob<6F>hu zbo<62><6F> dle ID', 'DokladOZGetByID')]
[MVCSwagResponses(200, 'Success', TDokladOZ, true)]
[MVCSwagParam(plPath, 'id', 'ID dokladu OZ', ptString, true)]
[MVCSwagParam(plQuery, 'polozky', '0=bez polozek / 1=polozkami', ptString, false)]
[MVCSwagParam(plQuery, 'sdserver', '1=vyrobni cisla/sarze z tabulky SDScanData', ptString, false)]
procedure GetByID (id: string='';
[MVCFromQueryString('sdserver', '')] sdServer: string='1';
[MVCFromQueryString('polozky', '')] polozky: string='0'
);
[MVCPath('')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Doklady ob<6F>hu zbo<62><6F>', 'Vrac<61> doklady ob<6F>hu zbo<62><6F>', 'DokladOZGetAll')]
[MVCSwagResponses(200, 'Success', TDokladOZ, true)]
[MVCSwagParam(plQuery, 'cisloorg', '<27><>slo organizace', ptString, false)]
[MVCSwagParam(plQuery, 'druhpohybu', 'Druh pohybu dokladu', ptString, false)]
[MVCSwagParam(plQuery, 'radadokladu', '<27>ada doklad<61> pohybov<6F>ho dokladu', ptString, false)]
[MVCSwagParam(plQuery, 'sklad', 'Sklad', ptString, false)]
[MVCSwagParam(plQuery, 'od', 'Datum od ve form<72>tu RRRRMMDD (pokud neni zadano, bere se jen vcera a dnes)', ptString, false)]
[MVCSwagParam(plQuery, 'do', 'Datum do ve form<72>tu RRRRMMDD', ptString, false)]
[MVCSwagParam(plQuery, 'realizovane', '1=jen realizovan<61> doklady', ptString, false)]
[MVCSwagParam(plQuery, 'seznam', '1=jen seznam se z<>kladn<64>mi <20>daji', ptString, false)]
[MVCSwagParam(plQuery, 'minimum', '0=vsechny sloupce / 1=jen zakladni udaje', ptString, false)]
[MVCSwagParam(plQuery, 'polozky', '0=bez polozek / 1=s polozkami (default)', ptString, false)]
[MVCSwagParam(plQuery, 'sdserver', '1=vyrobni cisla/sarze z tabulky SDScanData', ptString, false)]
procedure GetAll ([MVCFromQueryString('cisloorg', '')] cisloorg: string='';
[MVCFromQueryString('druhpohybu', '')] druhpohybu: string='';
[MVCFromQueryString('radadokladu', '')] radadokladu: string='';
[MVCFromQueryString('sklad', '')] sklad: string='';
[MVCFromQueryString('od', '')] odDatum: string='';
[MVCFromQueryString('do', '')] doDatum: string='';
[MVCFromQueryString('realizovane', '')] realizovane: string='';
[MVCFromQueryString('seznam', '0')] jenSeznam: string='';
[MVCFromQueryString('minimum', '')] minimumDat: string='';
[MVCFromQueryString('polozky', '1')] polozky: string='';
[MVCFromQueryString('sdserver', '')] sdServer: string=''
);
{$IFDEF POST_PUT}
[MVCPath('/($id)')]
[MVCHTTPMethod([httpPUT])]
[MVCSwagSummary('Doklady ob<6F>hu zbo<62><6F>', 'Uprav<61> doklad ob<6F>hu zbo<62><6F>', 'DokladOZZalozUpravOZ')]
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
procedure UpravDokladOZ (id: string; CTX: TWebContext);
[MVCPath('')]
[MVCHTTPMethod([httpPOST])]
[MVCSwagSummary('Doklady ob<6F>hu zbo<62><6F>', 'Zalo<6C><6F> doklad ob<6F>hu zbo<62><6F>', 'DokladOZZalozDokladOZ')]
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
procedure ZalozDokladOZ (CTX: TWebContext);
{$ENDIF}
end;
[MVCPath('/polozkaoz')]
TPolozkaOZController = class(TBaseController)
public
{
procedure GetByICODIC(const [MVCFromQueryString('ico', '')] ico: string;
const [MVCFromQueryString('dic', '')] dic: string
);
}
[MVCPath('/meta')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Polo<6C>ky ob<6F>hu zbo<62><6F>', 'Vrac<61> metadata polo<6C>ky dokladu ob<6F>hu zbo<62><6F>', 'PolozkaOZGetMeta')]
procedure GetMeta;
[MVCPath('')]
[MVCHTTPMethod([httpGET])]
{$IFDEF CUSTOM_CTRL_Rootvin}
[MVCSwagSummary('Polo<6C>ky ob<6F>hu zbo<62><6F>', 'Vrac<61> polo<6C>ky doklad<61> ob<6F>hu zbo<62><6F>.' + CRLF + CRLF + 'Pozor u v<>robn<62>ch <20><>sel (serialnums) polo<6C>ek materi<72>lov<6F> p<><70>jemky' + CRLF + '- atribut Nazev1 je <20>AR<41>E'
+ CRLF + '- atribut VyrCis je <20><>slo PALETOV<4F>HO LISTU' + CRLF + '!! Pokud je nastaven sloupec ZdrojSD=1 je potreba to pri komunikaci zminovat !!'
+ CRLF + '(je to p<><70>znak <20>e ID nen<65> ze standardn<64> tabulky Heliosu ale zdrojem jsou skenovan<61> data SD Serveru)', 'PolozkaOZGetAll')]
{$ELSE}
[MVCSwagSummary('Polo<6C>ky ob<6F>hu zbo<62><6F>', 'Vrac<61> polo<6C>ky doklad<61> ob<6F>hu zbo<62><6F>', 'PolozkaOZGetAll')]
{$ENDIF}
[MVCSwagResponses(200, 'Success', TPohybOZ, true)]
[MVCSwagParam(plQuery, 'iddoklad', 'ID dokladu ob<6F>hu zbo<62><6F>', ptString, false)]
procedure GetAll ([MVCFromQueryString('iddoklad', '')] iddoklad: string=''
);
[MVCPath('/($id)')]
[MVCHTTPMethod([httpGET])]
[MVCSwagSummary('Polo<6C>ky ob<6F>hu zbo<62><6F>', 'Vrac<61> data polo<6C>ky/polo<6C>ek ob<6F>hu zbo<62><6F>', 'PolozkaOZGetByID')]
[MVCSwagResponses(200, 'Success', TPohybOZ, true)]
[MVCSwagParam(plPath, 'id', 'ID polo<6C>ky OZ', ptString, true)]
procedure GetByID (id: string='';
[MVCFromQueryString('iddoklad', '')] iddoklad: string=''
);
{$IFDEF POST_PUT}
[MVCPath('/($id)')]
[MVCHTTPMethod([httpPUT])]
[MVCSwagSummary('Polo<6C>ky ob<6F>hu zbo<62><6F>', 'Uprav<61> polo<6C>ku na doklad ob<6F>hu zbo<62><6F>', 'PolozkaOZUpravPolozkuOZ')]
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
procedure UpravPolozkuOZ (id: string=''; CTX: TWebContext);
[MVCPath('')]
[MVCHTTPMethod([httpPOST])]
[MVCSwagSummary('Polo<6C>ky ob<6F>hu zbo<62><6F>', 'Zalo<6C><6F> polo<6C>ku na doklad ob<6F>hu zbo<62><6F>', 'PolozkaOZZalozPolozkuOZ')]
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
procedure ZalozPolozkuOZ (CTX: TWebContext);
{$ENDIF}
end;
implementation
uses
uSvc_Base,
uCommons,
mvcframework.Serializer.Intf,
System.Generics.Collections,
System.RegularExpressions,
System.StrUtils,
System.SysUtils;
{ TStavSkladuController }
procedure TStavSkladuController.GetMeta;
begin
try
Render(ObjectDict().Add('data', GetDokladOZService.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 TStavSkladuController.GetAll(idSklad: string=''; archivni: string='');
begin
idSklad:= sanitizeSQLString(idSklad);
archivni:= sanitizeSQLString(archivni);
GetByID('', idSklad, archivni);
end;
procedure TStavSkladuController.GetByID(id: string = ''; idSklad: string=''; archivni: 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);
idSklad:= sanitizeSQLString(idSklad);
if (idSklad<>'') then
params.Add('idsklad', idSklad);
archivni:= sanitizeSQLString(archivni);
if (archivni<>'') then
if (archivni='1') then
params.Add('blokovane', '1');
try
Render(ObjectDict().Add('data', GetStavSkladuService.GetByParams(params))); // viz uSvc_ObehZbozi.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;
{ TDokladOZController }
procedure TDokladOZController.GetAll (cisloorg: string=''; druhpohybu: string=''; radadokladu: string=''; sklad: string=''; odDatum: string='';
doDatum: string=''; realizovane: string=''; jenSeznam: string=''; minimumDat: string=''; polozky: string='';
sdServer: string='');
var iId, iCisOrg, dpz: integer;
params: TDictionary<string, string>;
begin
params:= TDictionary<string, string>.Create;
{
cisloorg:= sanitizeSQLString(cisloorg);
druhpohybu:= sanitizeSQLString(druhpohybu);
radadokladu:= sanitizeSQLString(radadokladu);
sklad:= sanitizeSQLString(sklad);
odDatum:= sanitizeSQLString(odDatum);
doDatum:= sanitizeSQLString(doDatum);
jenSeznam:= sanitizeSQLString(jenSeznam);
GetByID ('', cisloorg, druhpohybu, radadokladu, sklad, odDatum, doDatum, jenSeznam);
}
iCisOrg:= -1;
cisloorg:= sanitizeSQLString(cisloorg);
if not(TryStrToInt(cisloorg, iCisOrg)) then
iCisOrg:= -1;
if (iCisOrg>-1) then
params.Add('organizace', iCisOrg.ToString);
dpz:= -1;
druhpohybu:= sanitizeSQLString(druhpohybu);
if not(TryStrToInt(druhpohybu, dpz)) then
dpz:= -1;
if (dpz>-1) then
params.Add('druhpohybu', dpz.ToString);
radadokladu:= sanitizeSQLString(radadokladu);
if (radadokladu<>'') then
params.Add('radadokladu', radadokladu);
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');
minimumDat:= sanitizeSQLString(minimumDat);
if (minimumDat='1') then
params.Add('minimum', '1');
polozky:= sanitizeSQLString(polozky);
if (polozky='1') then
params.Add('polozky', '1');
realizovane:= sanitizeSQLString(realizovane);
if (realizovane='1') then
params.Add('jenReal', '1');
sdServer:= sanitizeSQLString(sdServer);
if (sdServer='1') then
params.Add('sdServer', '1');
try
Render(ObjectDict().Add('data', GetDokladOZService.GetByParams (params))); // viz uSvc_ObehZbozi.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 TDokladOZController.GetDruhyDokladu (druhpohybu: string = '');
begin
druhpohybu:= sanitizeSQLString(druhpohybu);
try
Render(ObjectDict().Add('data', GetDokladOZService.GetDruhyDokladu(druhpohybu))); // viz uSvc_ObehZbozi.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;
procedure TDokladOZController.GetByID (id: string=''; sdServer: string='1'; polozky: string='0');
var iId: integer;
params: TDictionary<string, string>;
begin
params:= TDictionary<string, string>.Create;
sdServer:= sanitizeSQLString(sdServer);
if (sdServer='1') then
params.Add('sdServer', '1');
if (polozky='1') then
params.Add('polozky', '1');
iId:= 0;
id:= sanitizeSQLString(id);
if not(TryStrToInt(id, iId)) then
iId:= 0;
if (iId>0) then
begin
params.Add('id', iId.ToString);
try
Render(ObjectDict().Add('data', GetDokladOZService.GetByParams (params))); // viz uSvc_ObehZbozi.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
RenderStatusMessage (200);
params.Free;
end;
procedure TDokladOZController.GetMeta;
begin
try
Render(ObjectDict().Add('data', GetDokladOZService.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;
{$IFDEF POST_PUT}
procedure TDokladOZController.UpravDokladOZ (id: string; CTX: TWebContext);
var iId: integer;
begin
try
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 TDokladOZController.ZalozDokladOZ (CTX: TWebContext);
begin
try
except
{$IFDEF NORENDER400}
RenderStatusMessage (200);
{$ELSE}
on E: EServiceException do
begin
raise EMVCException.Create(E.Message, '', 0, 200);
end
else
raise;
{$ENDIF}
end;
end;
{$ENDIF}
{ TPolozkaOZController }
procedure TPolozkaOZController.GetMeta;
begin
try
Render(ObjectDict().Add('data', GetPolozkaOZService.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 TPolozkaOZController.GetAll (iddoklad: string = '');
begin
iddoklad:= sanitizeSQLString(iddoklad);
GetByID('', iddoklad);
end;
procedure TPolozkaOZController.GetByID (id: string=''; iddoklad: string='');
var iId, iIdDoklad: 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);
iIdDoklad:= -1;
iddoklad:= sanitizeSQLString(iddoklad);
if not(TryStrToInt(iddoklad, iIdDoklad)) then
iIdDoklad:= -1;
if (iIdDoklad>-1) then
params.Add('iddoklad', iIdDoklad.ToString);
try
Render(ObjectDict().Add('data', GetPolozkaOZService.GetByParams(params))); // viz uSvc_ObehZbozi.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;
{$IFDEF POST_PUT}
procedure TPolozkaOZController.UpravPolozkuOZ (id: string=''; CTX: TWebContext);
var iId: integer;
begin
try
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 TPolozkaOZController.ZalozPolozkuOZ (CTX: TWebContext);
begin
try
except
{$IFDEF NORENDER400}
RenderStatusMessage (200);
{$ELSE}
on E: EServiceException do
begin
raise EMVCException.Create(E.Message, '', 0, 200);
end
else
raise;
{$ENDIF}
end;
end;
{$ENDIF}
end.