Prvni verze
This commit is contained in:
3
_custom/EMPolar/customDefs.inc
Normal file
3
_custom/EMPolar/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in '_custom\EMPolar\uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in '_custom\EMPolar\uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in '_custom\EMPolar\uSvcCustom.pas'
|
||||||
246
_custom/EMPolar/uCtrlCustom.pas
Normal file
246
_custom/EMPolar/uCtrlCustom.pas
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
unit uCtrlCustom;
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
MVCframework,
|
||||||
|
MVCframework.Commons,
|
||||||
|
MVCframework.Serializer.Commons,
|
||||||
|
// MVCframework.Serializer.Intf,
|
||||||
|
System.Generics.Collections, // kvuli TDictionary
|
||||||
|
System.RegularExpressions,
|
||||||
|
// JsonDataObjects,
|
||||||
|
uCommons, // kvuli EServiceException
|
||||||
|
uCtrlBase,
|
||||||
|
// uSvc_Base,
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base,
|
||||||
|
uHeOObj_Custom,
|
||||||
|
uSvcCustom,
|
||||||
|
uSvc_Obecne,
|
||||||
|
MVCFramework.Swagger.Commons; // kvuli dokumentaci
|
||||||
|
|
||||||
|
const
|
||||||
|
{$I .\..\..\globalConsts.inc}
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
[MVCPath('/emp/nadoba')]
|
||||||
|
TEMPNadobaController = class(TBaseController)
|
||||||
|
public
|
||||||
|
|
||||||
|
[MVCPath('')]
|
||||||
|
[MVCSwagSummary('EMP - vyr<79>b<EFBFBD>n<EFBFBD> n<>doby', 'Vr<56>t<EFBFBD> seznam n<>dob', 'EMPNadobaGetByCislo')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagParam(plQuery, 'cislo', '<27><>slo n<>doby', ptString, false, '1')]
|
||||||
|
procedure GetByCislo ([MVCFromQueryString('cislo', '')] cislo: string
|
||||||
|
);
|
||||||
|
|
||||||
|
[MVCPath('/meta')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('EMP - vyr<79>b<EFBFBD>n<EFBFBD> n<>doby', 'Meta informace seznamu n<>dob', 'EMPNadobaGetMeta')]
|
||||||
|
procedure GetMeta;
|
||||||
|
|
||||||
|
[MVCPath('/($id)')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('EMP - vyr<79>b<EFBFBD>n<EFBFBD> n<>doby', 'Vr<56>t<EFBFBD> <20>daje n<>doby dle jej<65>ho ID', 'EMPNadobaGetByID')]
|
||||||
|
[MVCSwagParam(plPath, 'id', 'ID n<>doby', ptString, true)]
|
||||||
|
[MVCProduces('application/json')]
|
||||||
|
procedure GetByID (id: string);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCPath('/emp/atest')]
|
||||||
|
TEMPDokumentAtestController = class(TBaseController)
|
||||||
|
private
|
||||||
|
FDokumService: TDokumentService;
|
||||||
|
public
|
||||||
|
constructor Create; override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
|
||||||
|
[MVCPath('/meta')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('EMP - dokumenty atest<73>', 'Meta informace dokumentu atestu', 'EMPDokumAtestGetMeta')]
|
||||||
|
procedure GetMeta;
|
||||||
|
|
||||||
|
[MVCPath('/($id)')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('EMP - dokumenty atest<73>', 'Vr<56>t<EFBFBD> <20>daje dokumentu atestu dle jeho ID', 'EMPDokumAtestGetByID')]
|
||||||
|
[MVCSwagParam(plPath, 'id', 'ID dokumentu atestu', ptString, true)]
|
||||||
|
[MVCProduces('application/json')]
|
||||||
|
procedure GetByID (id: string);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
uDataMod;
|
||||||
|
|
||||||
|
|
||||||
|
{ TEMPNadobaController }
|
||||||
|
|
||||||
|
procedure TEMPNadobaController.GetByCislo (cislo: string);
|
||||||
|
begin
|
||||||
|
cislo:= sanitizeSQLString (cislo);
|
||||||
|
|
||||||
|
try
|
||||||
|
if (cislo<>'') then
|
||||||
|
Render(ObjectDict().Add('data', GetEMPNadobaService.GetByCislo (cislo)))
|
||||||
|
else
|
||||||
|
Render(ObjectDict().Add('data', GetEMPNadobaService.GetAll));
|
||||||
|
except
|
||||||
|
// RenderStatusMessage (200);
|
||||||
|
{
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end
|
||||||
|
}
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
Writeln(E.Message);
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end;
|
||||||
|
// RenderStatusMessage (200); // raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TEMPNadobaController.GetByID (id: string);
|
||||||
|
var iId: integer;
|
||||||
|
begin
|
||||||
|
id:= sanitizeSQLString (id);
|
||||||
|
if not(TryStrToInt(id, iId)) then
|
||||||
|
iId:= 0;
|
||||||
|
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetEMPNadobaService.GetByID (iId))); // viz uSvc_Custom1.pas
|
||||||
|
except
|
||||||
|
// RenderStatusMessage (200);
|
||||||
|
{
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end
|
||||||
|
}
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
Writeln(E.Message);
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end;
|
||||||
|
// RenderStatusMessage (200); // raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TEMPNadobaController.GetMeta;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetEMPNadobaService.GetMeta));
|
||||||
|
except
|
||||||
|
// RenderStatusMessage (200);
|
||||||
|
{
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end
|
||||||
|
}
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
Writeln(E.Message);
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end;
|
||||||
|
// RenderStatusMessage (200); // raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TEMPDokumentAtestController }
|
||||||
|
|
||||||
|
constructor TEMPDokumentAtestController.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FDokumService:= GetDokumentService;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
destructor TEMPDokumentAtestController.Destroy;
|
||||||
|
begin
|
||||||
|
if (FDokumService<>nil) then
|
||||||
|
FreeAndNil (FDokumService);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TEMPDokumentAtestController.GetMeta;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetDokumentService.GetMeta));
|
||||||
|
except
|
||||||
|
{$IFDEF NORENDER400}
|
||||||
|
RenderStatusMessage (200);
|
||||||
|
{$ELSE}
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TEMPDokumentAtestController.GetByID (id: string);
|
||||||
|
var iId: integer;
|
||||||
|
p: TDictionary<string, string>;
|
||||||
|
begin
|
||||||
|
id:= sanitizeSQLString (id);
|
||||||
|
if not(TryStrToInt(id, iId)) then
|
||||||
|
iId:= 0;
|
||||||
|
|
||||||
|
p:= TDictionary<string, string>.Create;
|
||||||
|
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetDokumentService.GetByID (iId, true))) // viz uSvc_Custom1.pas
|
||||||
|
except
|
||||||
|
{$IFDEF NORENDER400}
|
||||||
|
RenderStatusMessage (200);
|
||||||
|
{$ELSE}
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
p.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
112
_custom/EMPolar/uHeOObj_Custom.pas
Normal file
112
_custom/EMPolar/uHeOObj_Custom.pas
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
unit uHeOObj_Custom;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
MVCFramework.ActiveRecord,
|
||||||
|
MVCFramework.Nullables,
|
||||||
|
{$IFDEF SWAGGER}
|
||||||
|
MVCFramework.Swagger.Commons,
|
||||||
|
{$ENDIF}
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TEMPAtestDokument = class(TDokument)
|
||||||
|
private
|
||||||
|
FDokument: TDokument;
|
||||||
|
public
|
||||||
|
property Dokument: TDokument read FDokument write FDokument;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TEMPNadoba = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FCisloZakazky: string;
|
||||||
|
FVyrobniCislo: string;
|
||||||
|
FNazev: string;
|
||||||
|
FDruhyNazev: string;
|
||||||
|
FTypZakazky: string;
|
||||||
|
FVykres: NullableString;
|
||||||
|
FIDZakazky: integer;
|
||||||
|
FPotvrzTermDod: NullableTDateTime;
|
||||||
|
FCisloOrg: NullableInt32; // TabZakazka.Prijemce
|
||||||
|
FNazevOrg: NullableString;
|
||||||
|
public
|
||||||
|
[MVCColumn('CisloZakazky', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'CisloZakazky', '<27><>slo zak<61>zky', true, false)] // required, nullable, minLength, maxLength, FieldSerializationType
|
||||||
|
property CisloZakazky: string read FCisloZakazky write FCisloZakazky;
|
||||||
|
|
||||||
|
[MVCColumn('VyrobniCislo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'VyrobniCislo', 'V<>robn<62> <20><>slo', false, false, 0, 100)] // required, nullable, minLength, maxLength, FieldSerializationType
|
||||||
|
property VyrobniCislo: string read FVyrobniCislo write FVyrobniCislo;
|
||||||
|
|
||||||
|
[MVCColumn('IDZakazky', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDZakazky', 'ID zak<61>zky n<>doby', true, false)]
|
||||||
|
property IDZakazky: integer read FIDZakazky write FIDZakazky;
|
||||||
|
|
||||||
|
[MVCColumn('TypZakazky', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'TypZakazky', 'Typ zak<61>zky (100-Objedn<64>vka, 101-n<>doba, 200-nev<65>robn<62>)', false, false)]
|
||||||
|
property TypZakazky: string read FTypZakazky write FTypZakazky;
|
||||||
|
|
||||||
|
[MVCColumn('Vykres', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'Vykres', '<27><>slo v<>kresu', false, true, 0, 35)]
|
||||||
|
property Vykres: NullableString read FVykres write FVykres;
|
||||||
|
|
||||||
|
[MVCColumn('Nazev', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'Nazev', 'N<>zev zak<61>zky', false, false, 0, 100)]
|
||||||
|
property Nazev: string read FNazev write FNazev;
|
||||||
|
|
||||||
|
[MVCColumn('DruhyNazev', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'DruhyNazev', 'Druh<75> n<>zev zak<61>zky', false, false, 0, 100)]
|
||||||
|
property DruhyNazev: string read FDruhyNazev write FDruhyNazev;
|
||||||
|
|
||||||
|
[MVCColumn('PotvrzTermDod', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stDateTime, 'PotvrzTermDod', 'Potvrzen<65> term<72>n dod<6F>vky', false, false, 0, 100)]
|
||||||
|
property PotvrzTermDod: NullableTDateTime read FPotvrzTermDod write FPotvrzTermDod;
|
||||||
|
|
||||||
|
[MVCColumn('CisloOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'CisloOrg', '<27><>slo organizace p<><70>jemce (ze zak<61>zky)', false, true)]
|
||||||
|
property CisloOrg: NullableInt32 read FCisloOrg write FCisloOrg;
|
||||||
|
|
||||||
|
[MVCColumn('NazevOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'NazevOrg', 'N<>zev organizace p<><70>jemce (ze zak<61>zky)', false, true, 0, 100)]
|
||||||
|
property NazevOrg: NullableString read FNazevOrg write FNazevOrg;
|
||||||
|
|
||||||
|
{
|
||||||
|
[MVCColumn('GUIDDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stGuid, 'GUIDDokladu', 'GUID dokladu', false, true)]
|
||||||
|
property GUIDDokladu: NullableTGUID read FGUIDDokladu write FGUIDDokladu;
|
||||||
|
|
||||||
|
[MapperListOf(TGatemaSDScanData)]
|
||||||
|
property ScanData: TObjectList<TGatemaSDScanData> read FScanData write SetSDScanData;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
System.StrUtils,
|
||||||
|
System.RegularExpressions,
|
||||||
|
uSvc_Obecne,
|
||||||
|
uCtrlBase
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
242
_custom/EMPolar/uSvcCustom.pas
Normal file
242
_custom/EMPolar/uSvcCustom.pas
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
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.
|
||||||
3
_custom/EMPolar/uWebModCustom.inc
Normal file
3
_custom/EMPolar/uWebModCustom.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
FEngine.AddController (TEMPNadobaController);
|
||||||
|
FEngine.AddController (TEMPDokumentAtestController);
|
||||||
BIN
_custom/EMPolar/zdroje.RES
Normal file
BIN
_custom/EMPolar/zdroje.RES
Normal file
Binary file not shown.
1
_custom/EMPolar/zdroje.rc
Normal file
1
_custom/EMPolar/zdroje.rc
Normal file
@ -0,0 +1 @@
|
|||||||
|
//ep_HDCDZApi_ZpracujPrijataData RCDATA .\sql\ep_HDCDZApi_ZpracujPrijataData.sql
|
||||||
15
_custom/GatemaSD/info.txt
Normal file
15
_custom/GatemaSD/info.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Gatema_SDDoklady
|
||||||
|
***********************
|
||||||
|
TypDokladu - 510 - kontrola prijmu / 540 - prijem
|
||||||
|
IDDokZbo - zdrojovy doklad (napr. pri kontrole prijmu)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Gatema_SDScanData
|
||||||
|
***********************
|
||||||
|
IDPohZbo - ID zdrojoveho pohybu OZ (napr. pri kontrole prijmu)
|
||||||
|
|
||||||
313
_custom/GatemaSD/uCtrlCustomSDG.pas
Normal file
313
_custom/GatemaSD/uCtrlCustomSDG.pas
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
unit uCtrlCustomSDG;
|
||||||
|
|
||||||
|
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,
|
||||||
|
uSvcCustomSDG,
|
||||||
|
uHeOObj_CustomSDG,
|
||||||
|
MVCFramework.Swagger.Commons; // kvuli dokumentaci
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
[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', 'GatemaSDDokladyGetAll')]
|
||||||
|
[MVCSwagParam(plQuery, 'od', 'Datum od ve formátu RRRRMMDD', ptString, false)]
|
||||||
|
procedure GetAll([MVCFromQueryString('od', '')] odDatum: string=''
|
||||||
|
);
|
||||||
|
|
||||||
|
[MVCPath('/meta')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('GatemaSD_Doklad', 'Vrací metadata', 'GatemaSDDokladyGetMeta')]
|
||||||
|
procedure GetMeta;
|
||||||
|
|
||||||
|
[MVCPath('/($id)')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('GatemaSD_Doklad', 'Vrací data dokladu SD Serveru', 'GatemaSDDokladyGetByID')]
|
||||||
|
[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', 'GatemaSDScanDataGetMeta')]
|
||||||
|
procedure GetMeta;
|
||||||
|
|
||||||
|
[MVCPath('/($id)')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('GatemaSD_ScanData', 'Vrací naskenovaná data', 'GatemaSDScanDataGetByID')]
|
||||||
|
[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,
|
||||||
|
uDataMod;
|
||||||
|
|
||||||
|
const
|
||||||
|
selSloupce = '';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ 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='');
|
||||||
|
var params: TDictionary<string, string>;
|
||||||
|
// odDatum: string;
|
||||||
|
begin
|
||||||
|
params:= TDictionary<string, string>.Create;
|
||||||
|
odDatum:= sanitizeSQLString(odDatum);
|
||||||
|
if (odDatum<>'') then
|
||||||
|
params.Add('odDatum', odDatum);
|
||||||
|
|
||||||
|
try
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetGatemaSDDokladService.GetByParams(params))); // viz uSvcCustom.pas
|
||||||
|
except
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end;
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
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, 404);
|
||||||
|
end;
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
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, 404);
|
||||||
|
end;
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
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, 404);
|
||||||
|
end;
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
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, 404);
|
||||||
|
end;
|
||||||
|
on E:Exception do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
267
_custom/GatemaSD/uHeOObj_CustomSDG.pas
Normal file
267
_custom/GatemaSD/uHeOObj_CustomSDG.pas
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
unit uHeOObj_CustomSDG;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
MVCFramework.ActiveRecord,
|
||||||
|
MVCFramework.Nullables,
|
||||||
|
{$IFDEF SWAGGER}
|
||||||
|
MVCFramework.Swagger.Commons,
|
||||||
|
{$ENDIF}
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base;
|
||||||
|
|
||||||
|
const
|
||||||
|
tblGSDDoklady = '[dbo].[Gatema_SDDoklady]';
|
||||||
|
tblGSDScanData = '[dbo].[Gatema_SDScanData]';
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDScanData = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDokladSD: integer;
|
||||||
|
FIDZdrojSD: NullableInt32;
|
||||||
|
FIDPolozky: NullableInt32;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FDokladPrKV: NullableInt32;
|
||||||
|
FDokladPrVPV: NullableInt32;
|
||||||
|
FIDPohZbo: NullableInt32;
|
||||||
|
FIDVyrCS_Obj: NullableInt32;
|
||||||
|
FIDInvItem: NullableInt32;
|
||||||
|
FIDPohZbo_New: NullableInt32;
|
||||||
|
FIDKmenZbozi: NullableInt32;
|
||||||
|
FIDStavSkladu: NullableInt32;
|
||||||
|
FVyrCislo: NullableString;
|
||||||
|
FPopisSarze: NullableString;
|
||||||
|
FMnozstvi: Single;
|
||||||
|
FMnozstviEvidence: Single;
|
||||||
|
FMJ: NullableString;
|
||||||
|
FMJEvidence: NullableString;
|
||||||
|
FBarCode: NullableString;
|
||||||
|
FDatumExpirace: NullableTDateTime;
|
||||||
|
FKodBaleni: NullableString;
|
||||||
|
FDatPorizeni: TDateTime;
|
||||||
|
FGenerovat: NullableBoolean;
|
||||||
|
FJedinecneCislo: NullableString;
|
||||||
|
public
|
||||||
|
{
|
||||||
|
[MVCTableField('ID', [foPrimaryKey, foReadOnly])]
|
||||||
|
[MVCColumn('ID')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'ID', 'ID výrobní operace', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property ID: integer read FID write FID;
|
||||||
|
}
|
||||||
|
[MVCColumn('IDDokladSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokladSD', 'ID dokladu SD', true, false)]
|
||||||
|
property IDDokladSD: integer read FIDDokladSD write FIDDokladSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDZdrojSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDZdrojSD', 'ID zdorj SD', false, true)]
|
||||||
|
property IDZdrojSD: NullableInt32 read FIDZdrojSD write FIDZdrojSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDPolozky', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPolozky', 'ID položky', false, true)]
|
||||||
|
property IDPolozky: NullableInt32 read FIDPolozky write FIDPolozky;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('VyrCislo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'VyrCislo', 'Výrobní číslo', true, false, 1, 100)]
|
||||||
|
property VyrCislo: NullableString read FVyrCislo write FVyrCislo;
|
||||||
|
|
||||||
|
[MVCColumn('PopisSarze', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'PopisSarze', 'Popis šarže', true, false, 1, 100)]
|
||||||
|
property PopisSarze: NullableString read FPopisSarze write FPopisSarze;
|
||||||
|
|
||||||
|
[MVCColumn('Mnozstvi')]
|
||||||
|
[MVCSwagJsonSchemaField('Mnozstvi', 'Množství', true, false)]
|
||||||
|
property Mnozstvi: Single read FMnozstvi write FMnozstvi;
|
||||||
|
|
||||||
|
[MVCColumn('MnozstviEvidence')]
|
||||||
|
[MVCSwagJsonSchemaField('MnozstviEvidence', 'Množství v evidenční jednotce', true, false)]
|
||||||
|
property MnozstviEvidence: Single read FMnozstviEvidence write FMnozstviEvidence;
|
||||||
|
|
||||||
|
[MVCColumn('DatumExpirace')]
|
||||||
|
[MVCSwagJsonSchemaField('DatumExpirace', 'Datum expirace', false, true)]
|
||||||
|
property DatumExpirace: NullableTDatetime read FDatumExpirace write FDatumExpirace;
|
||||||
|
|
||||||
|
[MVCColumn('DatPorizeni')]
|
||||||
|
[MVCSwagJsonSchemaField('DatPorizeni', 'Datum pořízení', true, false)]
|
||||||
|
property DatPorizeni: TDatetime read FDatPorizeni write FDatPorizeni;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDZdrojData = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDokladSD: integer;
|
||||||
|
FIDDokZbo: NullableInt32;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FGUIDDokladu: NullableTGUID;
|
||||||
|
public
|
||||||
|
[MVCColumn('IDDokladSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokladSD', 'ID dokladu SD', true, false)]
|
||||||
|
property IDDokladSD: integer read FIDDokladSD write FIDDokladSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'FIDDokZbo', 'ID dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo: NullableInt32 read FIDDokZbo write FIDDokZbo;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('GUIDDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stGuid, 'GUIDDokladu', 'GUID dokladu', false, true)]
|
||||||
|
property GUIDDokladu: NullableTGUID read FGUIDDokladu write FGUIDDokladu;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDDoklad = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FTypDokladu: integer;
|
||||||
|
FPodtypDokladu: NullableInt32;
|
||||||
|
FRadaDokladu: NullableString;
|
||||||
|
FDruhPohybuZbo: NullableInt32;
|
||||||
|
FSklad: NullableString;
|
||||||
|
FSkladCil: NullableString;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FIDDokZbo: NullableInt32;
|
||||||
|
FIDDokZbo_New: NullableInt32;
|
||||||
|
FGUIDDokZbo: NullableTGUID;
|
||||||
|
FGUIDDokZbo_New: NullableTGUID;
|
||||||
|
FIDInvHead: NullableInt32;
|
||||||
|
FIDOrg: NullableInt32;
|
||||||
|
FCisloOrg: NullableInt32;
|
||||||
|
FDatumPripadu: NullableTDateTime;
|
||||||
|
FDatPorizeni: TDateTime;
|
||||||
|
FDatGenerovani: NullableTDateTime;
|
||||||
|
FScanData: TObjectList<TGatemaSDScanData>;
|
||||||
|
procedure SetSDScanData (const Value: TObjectList<TGatemaSDScanData>);
|
||||||
|
public
|
||||||
|
constructor Create; virtual;
|
||||||
|
destructor Destroy; override;
|
||||||
|
{
|
||||||
|
[MVCTableField('ID', [foPrimaryKey, foReadOnly])]
|
||||||
|
[MVCColumn('ID')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'ID', 'ID výrobní operace', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property ID: integer read FID write FID;
|
||||||
|
}
|
||||||
|
[MVCColumn('TypDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'TypDokladu', 'Typ dokladu', true, false)]
|
||||||
|
property TypDokladu: integer read FTypDokladu write FTypDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('PodtypDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'PodtypDokladu', 'Podtyp dokladu', false, true)]
|
||||||
|
property PodtypDokladu: NullableInt32 read FPodtypDokladu write FPodtypDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('RadaDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'RadaDokladu', 'Řada dokladu', false, true)]
|
||||||
|
property RadaDokladu: NullableString read FRadaDokladu write FRadaDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('DruhPohybuZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'DruhPohybuZbo', 'Druh pohybu zboží', false, true)]
|
||||||
|
property DruhPohybuZbo: NullableInt32 read FDruhPohybuZbo write FDruhPohybuZbo;
|
||||||
|
|
||||||
|
[MVCColumn('Sklad', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'Sklad', 'Sklad', false, true)]
|
||||||
|
property Sklad: NullableString read FSklad write FSklad;
|
||||||
|
|
||||||
|
[MVCColumn('SkladCil', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'SkladCil', 'Cílový sklad', false, true)]
|
||||||
|
property SkladCil: NullableString read FSkladCil write FSkladCil;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokZbo', 'ID dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo: NullableInt32 read FIDDokZbo write FIDDokZbo;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo_New', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokZbo_New', 'ID nového dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo_New: NullableInt32 read FIDDokZbo_New write FIDDokZbo_New;
|
||||||
|
|
||||||
|
[MVCColumn('IDInvHead', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDInvHead', 'ID dokladu inventury', false, true)]
|
||||||
|
property IDInvHead: NullableInt32 read FIDInvHead write FIDInvHead;
|
||||||
|
|
||||||
|
[MVCColumn('IDOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDOrg', 'ID organizace', false, true)]
|
||||||
|
property IDOrg: NullableInt32 read FIDOrg write FIDOrg;
|
||||||
|
|
||||||
|
[MVCColumn('CisloOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'CisloOrg', 'Číslo organizace', false, true)]
|
||||||
|
property CisloOrg: NullableInt32 read FCisloOrg write FCisloOrg;
|
||||||
|
|
||||||
|
[MVCColumn('DatumPripadu')]
|
||||||
|
[MVCSwagJsonSchemaField('DatumPripadu', 'Datum případu', false, true)]
|
||||||
|
property DatumPripadu: NullableTDatetime read FDatumPripadu write FDatumPripadu;
|
||||||
|
|
||||||
|
[MVCColumn('DatPorizeni')]
|
||||||
|
[MVCSwagJsonSchemaField('DatPorizeni', 'Datum pořízení', true, false)]
|
||||||
|
property DatPorizeni: TDatetime read FDatPorizeni write FDatPorizeni;
|
||||||
|
|
||||||
|
[MVCColumn('DatGenerovani')]
|
||||||
|
[MVCSwagJsonSchemaField('DatGenerovani', 'Datum generování dokladu OZ', false, true)]
|
||||||
|
property DatGenerovani: NullableTDatetime read FDatGenerovani write FDatGenerovani;
|
||||||
|
|
||||||
|
[MVCListOfAttribute(TGatemaSDScanData)]
|
||||||
|
property ScanData: TObjectList<TGatemaSDScanData> read FScanData write SetSDScanData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
System.StrUtils,
|
||||||
|
System.RegularExpressions;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TGatemaSDDoklad }
|
||||||
|
|
||||||
|
constructor TGatemaSDDoklad.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FScanData:= TObjectList<TGatemaSDScanData>.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
destructor TGatemaSDDoklad.Destroy;
|
||||||
|
begin
|
||||||
|
// if (FPohybyOZ<>nil) then
|
||||||
|
// FPohybyOZ.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGatemaSDDoklad.SetSDScanData(const Value: TObjectList<TGatemaSDScanData>);
|
||||||
|
begin
|
||||||
|
if (Value<>FScanData) then
|
||||||
|
begin
|
||||||
|
FScanData.Free;
|
||||||
|
FScanData:= Value;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
404
_custom/GatemaSD/uSvcCustomSDG.pas
Normal file
404
_custom/GatemaSD/uSvcCustomSDG.pas
Normal file
@ -0,0 +1,404 @@
|
|||||||
|
unit uSvcCustomSDG;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
System.DateUtils,
|
||||||
|
System.SysUtils,
|
||||||
|
JsonDataObjects,
|
||||||
|
uSvc_Base,
|
||||||
|
uSvc_ObehZbozi,
|
||||||
|
uCommons, // kvuli EServiceException
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeOObj_Base,
|
||||||
|
uHeOObj_CustomSDG;
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
{$I globalConsts.inc}
|
||||||
|
selSpecDoklSD = '(SELECT CisloOrg FROM ' + tblCOrg + ' WHERE ID=main.IDOrg) AS CisloOrg';
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
TGatemaSDDokladService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
function GetAll: TObjectList<TGatemaSDDoklad>;
|
||||||
|
function GetByParams (params: TDictionary<string, string>): TObjectList<TGatemaSDDoklad>;
|
||||||
|
function GetByID (const AID: integer; const bezPolozek: boolean=false): TGatemaSDDoklad;
|
||||||
|
function GetMeta: TJSONObject;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
TGatemaSDScanDataService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
function GetByParams (params: TDictionary<string, string>): TObjectList<TGatemaSDScanData>;
|
||||||
|
function GetByID (const AID: integer): TGatemaSDScanData;
|
||||||
|
function GetMeta: TJSONObject;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TSDGPolozkaOZService = class(TPolozkaOZService)
|
||||||
|
function GetByID (const AID: integer): TPohybOZ;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.StrUtils,
|
||||||
|
FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
MVCFramework.Serializer.Commons;
|
||||||
|
|
||||||
|
|
||||||
|
{ TGatemaSDDokladService }
|
||||||
|
|
||||||
|
function TGatemaSDDokladService.GetAll:TObjectList<TGatemaSDDoklad>;
|
||||||
|
var lSQL: string;
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDDoklady) + ' FROM ' + tblGSDDoklady + ' ORDER BY ID';
|
||||||
|
FDM.sqlQry1.Open(lSQL, []);
|
||||||
|
result:= FDM.sqlQry1.AsObjectList<TGatemaSDDoklad>;
|
||||||
|
FDM.sqlQry1.Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TGatemaSDDokladService.GetByParams(params: TDictionary<string, string>): TObjectList<TGatemaSDDoklad>;
|
||||||
|
var lSQL, where, odDatum, doDatum, sklad, formatX, druhPohybuZbo, strTemp: string;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
datOd, datDo: TDateTime;
|
||||||
|
id, iDZ, cnt, rNo: integer;
|
||||||
|
jenSeznam: Boolean;
|
||||||
|
d: TGatemaSDDoklad;
|
||||||
|
dList: TObjectList<TGatemaSDDoklad>;
|
||||||
|
begin
|
||||||
|
jenSeznam:= false;
|
||||||
|
if (params.ContainsKey('seznam')) then
|
||||||
|
jenSeznam:= true;
|
||||||
|
|
||||||
|
formatX:= '';
|
||||||
|
if (params.ContainsKey('format')) then
|
||||||
|
formatX:= params.Items['format'];
|
||||||
|
if (formatX<>'') then
|
||||||
|
begin
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if not(jenSeznam) then
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDDoklady, 'main', false) + IfThen(selSpecDoklSD<>'', ',' + selSpecDoklSD, '') + ' FROM ' + tblGSDDoklady + ' main'
|
||||||
|
else
|
||||||
|
lSQL:= 'SELECT main.ID, main.TypDokladu, main.PodtypDokladu, main.RadaDokladu, main.Sklad, main.RadaDokladuCil, main.SkladCil, main.IDDokZbo, main.IDDokZbo_New'
|
||||||
|
+ ', main.IDOrg' + IfThen(selSpecDoklSD<>'', ',' + selSpecDoklSD, '') + ', main.DatPorizeni, main.DatGenerovani, main.DatumPripadu, main.PopisDodavky'
|
||||||
|
+ ' FROM ' + tblGSDDoklady + ' main';
|
||||||
|
end;
|
||||||
|
|
||||||
|
where:= '';
|
||||||
|
|
||||||
|
id:= 0;
|
||||||
|
if (params.ContainsKey('id')) then
|
||||||
|
if (params.Items['id']<>'') then
|
||||||
|
if (params.Items['id']<>'0') then
|
||||||
|
begin
|
||||||
|
id:= params.Items['id'].ToInteger;
|
||||||
|
where:= where + 'main.ID=' + id.ToString;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (params.ContainsKey('typDokladu')) then
|
||||||
|
if (params.Items['typDokladu']<>'') then
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.TypDokladu=N' + params.Items['typDokladu'];
|
||||||
|
|
||||||
|
if (params.ContainsKey('druhPohybu')) then
|
||||||
|
if (params.Items['druhPohybu']<>'') then
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.DruhPohybuZbo=N' + params.Items['druhPohybu'];
|
||||||
|
|
||||||
|
if (params.ContainsKey('sklad')) then
|
||||||
|
if (params.Items['sklad']<>'') then
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.Sklad=N' + params.Items['sklad'].QuotedString;
|
||||||
|
|
||||||
|
|
||||||
|
if (params.ContainsKey('odDatum')) then
|
||||||
|
if (params.Items['odDatum']<>'') then
|
||||||
|
odDatum:= params.Items['odDatum'];
|
||||||
|
if (odDatum<>'') then
|
||||||
|
begin
|
||||||
|
if (Length(odDatum)=8) then
|
||||||
|
odDatum:= odDatum + '000000';
|
||||||
|
if (Length(odDatum)=10) then
|
||||||
|
odDatum:= odDatum + '00';
|
||||||
|
odDatum:= MidStr(odDatum, 7, 2) + '.' + MidStr(odDatum, 5, 2) + '.' + LeftStr(odDatum, 4) + ' ' + MidStr(odDatum, 9, 2) + ':' + MidStr(odDatum, 11, 2) + ':' + MidStr(odDatum, 13, 2);
|
||||||
|
if not(TryStrToDateTime(odDatum, datOd)) then
|
||||||
|
datOd:= IncDay(Now, -180)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
datOd:= IncDay(Now, -180);
|
||||||
|
|
||||||
|
if (params.ContainsKey('doDatum')) then
|
||||||
|
if (params.Items['doDatum']<>'') then
|
||||||
|
odDatum:= params.Items['doDatum'];
|
||||||
|
if (doDatum<>'') then
|
||||||
|
begin
|
||||||
|
if (Length(doDatum)=8) then
|
||||||
|
doDatum:= doDatum + '235959';
|
||||||
|
if (Length(doDatum)=10) then
|
||||||
|
doDatum:= doDatum + '59';
|
||||||
|
doDatum:= MidStr(doDatum, 7, 2) + '.' + MidStr(doDatum, 5, 2) + '.' + LeftStr(doDatum, 4) + ' ' + MidStr(doDatum, 9, 2) + ':' + MidStr(doDatum, 11, 2) + ':' + MidStr(doDatum, 13, 2);
|
||||||
|
if not(TryStrToDateTime(doDatum, datDo)) then
|
||||||
|
datDo:= Now
|
||||||
|
end
|
||||||
|
else
|
||||||
|
datDo:= Now;
|
||||||
|
|
||||||
|
|
||||||
|
strTemp:= '';
|
||||||
|
if (odDatum<>'') then
|
||||||
|
strTemp:= 'CONVERT(datetime, N' + FormatDateTime('dd.mm.yyyy', datOd).QuotedString + ',104)'
|
||||||
|
else
|
||||||
|
strTemp:= 'DATEADD(day, -1, GETDATE())';
|
||||||
|
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.DatPorizeni>=' + strTemp;
|
||||||
|
|
||||||
|
if (doDatum<>'') then
|
||||||
|
begin
|
||||||
|
strTemp:= 'CONVERT(datetime, N' + FormatDateTime('dd.mm.yyyy', datDo).QuotedString + ',104)';
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.DatPorizeni<=' + strTemp;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
if (where<>'') then
|
||||||
|
lSQL:= lSQL + ' WHERE ' + IfThen(id>0, 'main.ID=' + id.ToString, where);
|
||||||
|
lSQL:= lSQL + ' ORDER BY main.ID';
|
||||||
|
|
||||||
|
lSQL:= lSQL.Replace('Gatema_SDDoklady.', 'main.');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
lQry.FetchOptions.AutoClose:= false;
|
||||||
|
lQry.FetchOptions.Mode:= fmAll;
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
|
||||||
|
cnt:= lQry.RecordCount;
|
||||||
|
if (cnt>0) then
|
||||||
|
begin
|
||||||
|
d:= TGatemaSDDoklad.Create;
|
||||||
|
dList:= TObjectList<TGatemaSDDoklad>.Create;
|
||||||
|
try
|
||||||
|
rNo:= 1;
|
||||||
|
lQry.First;
|
||||||
|
while (rNo<=cnt) do // nouzove reseni, lQry se po nacteni GetbyID sama uzavre !!
|
||||||
|
begin
|
||||||
|
lQry.RecNo:= rNo;
|
||||||
|
iDZ:= lQry.FieldByName('ID').AsInteger;
|
||||||
|
d:= self.GetByID(iDZ, jenSeznam);
|
||||||
|
dList.Add(d);
|
||||||
|
if not(lQry.Active) then
|
||||||
|
lQry.Open;
|
||||||
|
Inc(rNo);
|
||||||
|
end;
|
||||||
|
result:= dList;
|
||||||
|
except on E:Exception do
|
||||||
|
raise EServiceException.Create('Chyba načítání dokladu: ' + E.Message);
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise EServiceException.Create('Vybraným podmínkám neodpovídá žádný naskenovaný doklad');
|
||||||
|
finally
|
||||||
|
FreeAndNil(lQry);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TGatemaSDDokladService.GetByID (const AID: integer; const bezPolozek: boolean=false): TGatemaSDDoklad;
|
||||||
|
var lSQL: string;
|
||||||
|
p: TDictionary<string, string>;
|
||||||
|
ps: TGatemaSDScanDataService;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
sqlConnX: TFDConnection;
|
||||||
|
begin
|
||||||
|
|
||||||
|
ps:= TGatemaSDScanDataService.Create(self.FDM);
|
||||||
|
p:= TDictionary<string, string>.Create;
|
||||||
|
p.Add('iddoklad', AID.ToString);
|
||||||
|
|
||||||
|
sqlConnX:= TFDConnection.Create(nil);
|
||||||
|
sqlConnX.ConnectionDefName:= sqlPoolName;
|
||||||
|
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDDoklady, 'main', false) + IfThen(selSpecDoklSD<>'', ',' + selSpecDoklSD, '') + ' FROM ' + tblGSDDoklady + ' main WHERE main.ID=:ID';
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
lQry.Connection:= sqlConnX;
|
||||||
|
lQry.Open (lSQL, [AID]);
|
||||||
|
lQry.First;
|
||||||
|
if not(lQry.EOF) then
|
||||||
|
begin
|
||||||
|
result:= lQry.AsObject<TGatemaSDDoklad>;
|
||||||
|
if not(bezPolozek) then
|
||||||
|
result.ScanData:= ps.GetByParams(p);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise EServiceException.Create('Naskenovaný doklad s ID ' + AID.ToString + ' nebyl nalezen.');
|
||||||
|
finally
|
||||||
|
p.Free;
|
||||||
|
ps.Free;
|
||||||
|
FreeAndNil(lQry);
|
||||||
|
end;
|
||||||
|
|
||||||
|
sqlConnX.Close;
|
||||||
|
sqlConnX.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TGatemaSDDokladService.GetMeta: TJSONObject;
|
||||||
|
var lSQL: string;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDDoklady, 'main', false) + IfThen(selSpecDoklSD<>'', ',' + selSpecDoklSD, '') + ' FROM ' + tblGSDDoklady + ' main WHERE 1=0';
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
// lQry.FetchOptions.AutoClose:= false;
|
||||||
|
// lQry.FetchOptions.Mode:= fmAll;
|
||||||
|
try
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
Result:= lQry.MetadataAsJSONObject();
|
||||||
|
finally
|
||||||
|
lQry.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TGatemaSDScanDataService }
|
||||||
|
|
||||||
|
function TGatemaSDScanDataService.GetByID (const AID: integer): TGatemaSDScanData;
|
||||||
|
var lSQL: string;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDScanData) + ' FROM ' + tblGSDScanData + ' WHERE ID=:ID';
|
||||||
|
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
lQry.Open(lSQL, [AID]);
|
||||||
|
lQry.First;
|
||||||
|
if not(lQry.EOF) then
|
||||||
|
result:= lQry.AsObject<TGatemaSDScanData>
|
||||||
|
else
|
||||||
|
raise EServiceException.Create('Naskenovaná položka s ID ' + AID.ToString + ' nebyla nalezena.');
|
||||||
|
finally
|
||||||
|
lQry.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TGatemaSDScanDataService.GetMeta: TJSONObject;
|
||||||
|
var lSQL: string;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDScanData) + ' FROM ' + tblGSDScanData + ' WHERE 1=0';
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
lQry.FetchOptions.AutoClose:= false;
|
||||||
|
lQry.FetchOptions.Mode:= fmAll;
|
||||||
|
try
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
Result:= lQry.MetadataAsJSONObject();
|
||||||
|
finally
|
||||||
|
lQry.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TGatemaSDScanDataService.GetByParams(params: TDictionary<string, string>): TObjectList<TGatemaSDScanData>;
|
||||||
|
var lSQL, where: string;
|
||||||
|
id,idPZ, cnt, rNo: integer;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
pList: TObjectList<TGatemaSDScanData>;
|
||||||
|
p: TGatemaSDScanData;
|
||||||
|
begin
|
||||||
|
p:= TGatemaSDScanData.Create;
|
||||||
|
pList:= TObjectList<TGatemaSDScanData>.Create;
|
||||||
|
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblGSDScanData, '', false) + ' FROM ' + tblGSDScanData;
|
||||||
|
|
||||||
|
where:= '';
|
||||||
|
|
||||||
|
id:= 0;
|
||||||
|
if (params.ContainsKey('id')) then
|
||||||
|
if (params.Items['id']<>'') then
|
||||||
|
if (params.Items['id']<>'0') then
|
||||||
|
begin
|
||||||
|
id:= params.Items['id'].ToInteger;
|
||||||
|
where:= where + 'ID=' + id.ToString;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (params.ContainsKey('iddoklad')) then
|
||||||
|
if (params.Items['iddoklad']<>'') then
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'IDDokladSD=' + params.Items['iddoklad'];
|
||||||
|
|
||||||
|
if (where<>'') then
|
||||||
|
lSQL:= lSQL + ' WHERE ' + IfThen(id>0, 'ID=' + id.ToString, where);
|
||||||
|
lSQL:= lSQL + ' ORDER BY IDDokladSD, ID';
|
||||||
|
|
||||||
|
// lSQL:= lSQL.Replace('TabPohybyZbozi.', 'main.');
|
||||||
|
|
||||||
|
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
lQry.FetchOptions.AutoClose:= false;
|
||||||
|
lQry.FetchOptions.Mode:= fmAll;
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
try
|
||||||
|
cnt:= lQry.RecordCount;
|
||||||
|
pList:= TObjectList<TGatemaSDScanData>.Create;
|
||||||
|
try
|
||||||
|
lQry.First;
|
||||||
|
rNo:= 1;
|
||||||
|
while (rNo<=cnt) do
|
||||||
|
begin
|
||||||
|
lQry.RecNo:= rNo;
|
||||||
|
idPZ:= lQry.FieldByName('ID').AsInteger;
|
||||||
|
p:= self.GetByID (idPZ);
|
||||||
|
pList.Add(p);
|
||||||
|
if not(lQry.Active) then
|
||||||
|
lQry.Open;
|
||||||
|
Inc(rNo);
|
||||||
|
end;
|
||||||
|
result:= pList;
|
||||||
|
except on E:Exception do
|
||||||
|
raise EServiceException.Create('Chyba načítání naskenované položky/položek dokladu: ' + E.Message);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FreeAndNil(lQry);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TSDGPolozkaOZService }
|
||||||
|
|
||||||
|
function TSDGPolozkaOZService.GetByID (const AID: Integer): TPohybOZ;
|
||||||
|
begin
|
||||||
|
result:= nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
2
_custom/GatemaSD/uWebModCustomSDG.inc
Normal file
2
_custom/GatemaSD/uWebModCustomSDG.inc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
FEngine.AddController (TGatemaSDDokladController);
|
||||||
|
FEngine.AddController (TGatemaSDScanDataController);
|
||||||
3
_custom/Gornicky/customDefs.inc
Normal file
3
_custom/Gornicky/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in '_custom\Gornicky\uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in '_custom\Gornicky\uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in '_custom\Gornicky\uSvcCustom.pas'
|
||||||
BIN
_custom/Gornicky/openssl-1.0.2u-i386-win32.zip
Normal file
BIN
_custom/Gornicky/openssl-1.0.2u-i386-win32.zip
Normal file
Binary file not shown.
BIN
_custom/Gornicky/openssl-1.0.2u-x64_86-win64.zip
Normal file
BIN
_custom/Gornicky/openssl-1.0.2u-x64_86-win64.zip
Normal file
Binary file not shown.
164
_custom/Gornicky/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
164
_custom/Gornicky/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
-- dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||||
|
CREATE PROCEDURE dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||||
|
@idJson INT=NULL
|
||||||
|
AS
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
-- ! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.Tabx_HDC_API_DigitalizaceSoubory', N'U') IS NULL
|
||||||
|
BEGIN
|
||||||
|
IF OBJECT_ID(N'dbo._hdc_ph_Log', N'U') IS NOT NULL
|
||||||
|
INSERT dbo._hdc_ph_Log (LogText) SELECT N'Neexistuje tabulka Tabx_HDC_API_DigitalizaceSoubory'
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@errMsg NVARCHAR(500)=N'',
|
||||||
|
@errProc NVARCHAR(100),
|
||||||
|
@tranPred INT,
|
||||||
|
@iChyba INT,
|
||||||
|
@bChyba BIT,
|
||||||
|
@iTemp INT,
|
||||||
|
@debugXML XML,
|
||||||
|
@idUziv INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@jsonString NVARCHAR(max),
|
||||||
|
@docsJson NVARCHAR(max),
|
||||||
|
@soubor NVARCHAR(100),
|
||||||
|
@dataZoneId INT,
|
||||||
|
@docNum INT,
|
||||||
|
@ordNum NVARCHAR(15), -- zakazka,
|
||||||
|
@docUrl NVARCHAR(255),
|
||||||
|
@jeNacteno BIT,
|
||||||
|
@jeKpl BIT,
|
||||||
|
@pgTotal INT,
|
||||||
|
@pgRead INT,
|
||||||
|
@cisZam INT
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabJSONData
|
||||||
|
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max) )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idJson IS NOT NULL)
|
||||||
|
DECLARE j CURSOR LOCAL FOR
|
||||||
|
SELECT ID, JsonData FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson
|
||||||
|
ELSE
|
||||||
|
DECLARE j CURSOR LOCAL FOR
|
||||||
|
SELECT ID, JsonData
|
||||||
|
FROM dbo._hdc_ph_PrijataJsonData
|
||||||
|
WHERE Blokovano=0
|
||||||
|
AND DatZpracovani IS NULL
|
||||||
|
AND ISNULL(JSONData,N'')<>N''
|
||||||
|
ORDER BY DatPorizeni
|
||||||
|
OPEN j
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM j INTO @idJson, @jsonString
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (ISJSON(@jsonString)=0)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'Neplatna JSON data' WHERE ID=@idJson
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred=@@TRANCOUNT
|
||||||
|
IF (@tranPred=0)
|
||||||
|
BEGIN TRAN
|
||||||
|
|
||||||
|
-- smaz pomocnou tabulku
|
||||||
|
DELETE FROM #TabJSONData
|
||||||
|
INSERT #TabJSONData (doc) SELECT @jsonString
|
||||||
|
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=NULL, CisloZam=@cisZam, Blokovano=1 WHERE ID=@idJson
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @dataZoneId=JSON_VALUE(d.doc, '$.datazoneId'),
|
||||||
|
@soubor=JSON_VALUE(d.doc, '$.file'),
|
||||||
|
@docsJson = d2.documents
|
||||||
|
FROM #TabJSONData d
|
||||||
|
CROSS APPLY OPENJSON(d.doc, N'$')
|
||||||
|
WITH ([documents] NVARCHAR(max) AS JSON) AS d2
|
||||||
|
|
||||||
|
SET @soubor=ISNULL(@soubor, N'')
|
||||||
|
IF (@soubor<>N'')
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET UzivIdent=@soubor WHERE ID=@idJson
|
||||||
|
|
||||||
|
IF (@docsJson<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF (ISJSON(@docsJson)=1)
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM #TabJSONData
|
||||||
|
INSERT #TabJSONData (doc) SELECT @docsJson
|
||||||
|
|
||||||
|
DECLARE docs CURSOR LOCAL FOR
|
||||||
|
SELECT detail.idDoklad, detail.cisloZakazky, ISNULL(detail.jeNacteno,0), ISNULL(detail.jeKpl,0),
|
||||||
|
ISNULL(detail.pgCount,0), ISNULL(detail.pgRead,0), detail.docUrl
|
||||||
|
FROM #TabJSONData d
|
||||||
|
CROSS APPLY OPENJSON (d.doc, N'$')
|
||||||
|
WITH (idDoklad INT '$.documentNumber',
|
||||||
|
cisloZakazky NVARCHAR(15) '$.orderNumber',
|
||||||
|
jeNacteno BIT '$.isNotFound',
|
||||||
|
jeKpl BIT '$.isComplete',
|
||||||
|
pgCount INT '$.pageCountTotal',
|
||||||
|
pgRead INT '$.pageCountRead',
|
||||||
|
docURL NVARCHAR(255) '$.documentUrl') AS detail
|
||||||
|
OPEN docs
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM docs INTO @docNum, @ordNum, @jeNacteno, @jeKpl, @pgTotal, @pgRead, @docUrl
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (CHARINDEX(N'NotFound', @docUrl)=0)
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.Tabx_HDC_API_DigitalizaceSoubory WHERE DocNumber=@docNum AND OrderNumber=@ordNum AND DocURL=@docUrl)
|
||||||
|
INSERT dbo.Tabx_HDC_API_DigitalizaceSoubory (IDJsonData, IDDZDoc, DocNumber, OrderNumber, IsComplete, IsNotFound, PagesTotal, PagesRead, DocURL, IDDokladOZ)
|
||||||
|
SELECT @idJson, @dataZoneId, @docNum, @ordNum, @jeKpl, @jeNacteno, @pgTotal, @pgRead, @docUrl, @docNum
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.Tabx_HDC_API_DigitalizaceSoubory WHERE DocURL=@docUrl)
|
||||||
|
INSERT dbo.Tabx_HDC_API_DigitalizaceSoubory (IDJsonData, IDDZDoc, IsComplete, IsNotFound, PagesTotal, PagesRead, DocURL, IDDokladOZ)
|
||||||
|
SELECT @idJson, @dataZoneId, @jeKpl, @jeNacteno, @pgTotal, @pgRead, @docUrl, @docNum
|
||||||
|
END
|
||||||
|
END
|
||||||
|
CLOSE docs
|
||||||
|
DEALLOCATE docs
|
||||||
|
|
||||||
|
END -- ISJSON(@jsonString)=1
|
||||||
|
END -- @docsJson<>''
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET Blokovano=0, DatZpracovani=GETDATE() WHERE ID=@idJson
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
SET @errProc = ERROR_PROCEDURE()
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'CHYBA: ' + @errMsg WHERE ID=@idJson
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE j
|
||||||
|
DEALLOCATE j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni
|
||||||
|
DROP TABLE IF EXISTS #TabJSONData
|
||||||
45
_custom/Gornicky/sql/tbl_HDC_API_DigitalizaceSoubory.sql
Normal file
45
_custom/Gornicky/sql/tbl_HDC_API_DigitalizaceSoubory.sql
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
IF OBJECT_ID(N'dbo.Tabx_HDC_API_DigitalizaceSoubory', N'U') IS NULL
|
||||||
|
CREATE TABLE dbo.Tabx_HDC_API_DigitalizaceSoubory (
|
||||||
|
ID INT IDENTITY(1, 1) NOT NULL,
|
||||||
|
IDJsonData INT,
|
||||||
|
IDDZDoc INT, -- datazone id davky
|
||||||
|
DocNumber INT,
|
||||||
|
OrderNumber NVARCHAR(15),
|
||||||
|
IsComplete BIT NOT NULL DEFAULT 0,
|
||||||
|
IsNotFound BIT NOT NULL DEFAULT 0,
|
||||||
|
PagesTotal INT,
|
||||||
|
PagesRead INT,
|
||||||
|
DocURL NVARCHAR(255),
|
||||||
|
IDDokument INT,
|
||||||
|
Blokovano BIT NOT NULL DEFAULT 0,
|
||||||
|
Zpracovat BIT NOT NULL DEFAULT 1,
|
||||||
|
DatZpracovani DATETIME,
|
||||||
|
Zpracovano AS CONVERT(bit, CASE WHEN DatZpracovani IS NULL THEN 0 ELSE 1 END),
|
||||||
|
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),
|
||||||
|
CONSTRAINT PK_Tabx_HDC_API_DigitalizaceSoubory_ID PRIMARY KEY CLUSTERED (ID DESC)
|
||||||
|
WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DROP INDEX IF EXISTS EI_Tabx_HDC_API_DigitalizaceSoubory_IDDZDoc ON dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
CREATE NONCLUSTERED INDEX EI_Tabx_HDC_API_DigitalizaceSoubory_IDDZDoc ON dbo.Tabx_HDC_API_DigitalizaceSoubory (IDDZDoc)
|
||||||
|
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
|
||||||
|
|
||||||
|
DROP INDEX IF EXISTS EI_Tabx_HDC_API_DigitalizaceSoubory_DocNumber ON dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
CREATE NONCLUSTERED INDEX EI_Tabx_HDC_API_DigitalizaceSoubory_DocNumber ON dbo.Tabx_HDC_API_DigitalizaceSoubory (DocNumber)
|
||||||
|
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
|
||||||
|
|
||||||
|
DROP INDEX IF EXISTS EI_Tabx_HDC_API_DigitalizaceSoubory_IDDokument ON dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
CREATE NONCLUSTERED INDEX EI_Tabx_HDC_API_DigitalizaceSoubory_IDDokument ON dbo.Tabx_HDC_API_DigitalizaceSoubory (IDDokument)
|
||||||
|
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* 16.1.2025 */
|
||||||
|
IF COL_LENGTH(N'dbo.Tabx_HDC_API_DigitalizaceSoubory', N'Blokovano') IS NULL ALTER TABLE dbo.Tabx_HDC_API_DigitalizaceSoubory ADD Blokovano BIT NOT NULL DEFAULT 0
|
||||||
|
IF COL_LENGTH(N'dbo.Tabx_HDC_API_DigitalizaceSoubory', N'Zpracovat') IS NULL ALTER TABLE dbo.Tabx_HDC_API_DigitalizaceSoubory ADD Zpracovat BIT NOT NULL DEFAULT 1
|
||||||
|
|
||||||
|
/* 236.1.2025 */
|
||||||
|
IF COL_LENGTH(N'dbo.Tabx_HDC_API_DigitalizaceSoubory', N'IDJsonData') IS NULL ALTER TABLE dbo.Tabx_HDC_API_DigitalizaceSoubory ADD IDJsonData INT
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
-- dbo.ET_Tabx_HDC_API_DigitalizaceSoubory_D
|
||||||
|
CREATE TRIGGER dbo.ET_Tabx_HDC_API_DigitalizaceSoubory_D ON dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
WITH EXECUTE AS CALLER
|
||||||
|
FOR DELETE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
-- ! trigger neupravujte, bude stejne pregenerovan pri startu Win sluzby HDCDZApi
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@id INT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni seedu
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.Tabx_HDC_API_DigitalizaceSoubory)
|
||||||
|
BEGIN
|
||||||
|
SELECT @id=MAX(ID) FROM dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
DBCC CHECKIDENT(Tabx_HDC_API_DigitalizaceSoubory, RESEED, @id)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
TRUNCATE TABLE dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
|
||||||
|
END
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
-- dbo.ET_Tabx_HDC_API_DigitalizaceSoubory_IU
|
||||||
|
CREATE TRIGGER dbo.ET_Tabx_HDC_API_DigitalizaceSoubory_IU ON dbo.Tabx_HDC_API_DigitalizaceSoubory
|
||||||
|
WITH EXECUTE AS CALLER
|
||||||
|
FOR INSERT, UPDATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
-- ! trigger neupravujte, bude stejne pregenerovan pri startu Win sluzby HDCDZApi
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@id INT,
|
||||||
|
@idDokl INT,
|
||||||
|
@idDokum INT,
|
||||||
|
@idZak INT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT i.ID, i.DocNumber, i.IDDokument
|
||||||
|
FROM inserted i
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @id, @idDokl, @idDokum
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (@idDokum IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF (@idDokl IS NOT NULL)
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE ID=@idDokl)
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokumVazba WHERE IdentVazby=9 AND IdTab=@idDokl AND IdDok=@idDokum)
|
||||||
|
INSERT dbo.TabDokumVazba (IdentVazby, IdTab, IdDok) SELECT 9, @idDokl, @idDokum
|
||||||
|
|
||||||
|
SET @idZak = (SELECT z.ID FROM dbo.TabDokladyZbozi d INNER JOIN dbo.TabZakazka z ON (z.CisloZakazky=d.CisloZakazky) WHERE d.ID=@idDokl)
|
||||||
|
IF (@idZak IS NOT NULL)
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokumVazba WHERE IdentVazby=2 AND IdTab=@idZak AND IdDok=@idDokum)
|
||||||
|
INSERT dbo.TabDokumVazba (IdentVazby, IdTab, IdDok) SELECT 2, @idZak, @idDokum
|
||||||
|
END -- doklad existuje
|
||||||
|
END -- dokument neni null
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
1
_custom/Gornicky/sqlDefs.inc
Normal file
1
_custom/Gornicky/sqlDefs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
106
_custom/Gornicky/uCtrlCustom.pas
Normal file
106
_custom/Gornicky/uCtrlCustom.pas
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
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,
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeOObj_Base,
|
||||||
|
uHeOObj_Custom,
|
||||||
|
uSvcCustom,
|
||||||
|
MVCFramework.Swagger.Commons; // kvuli dokumentaci
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
[MVCPath('/gor')]
|
||||||
|
TGornickyController = class(TBaseController)
|
||||||
|
{
|
||||||
|
strict private
|
||||||
|
FSelfSvc: TGornickyService;
|
||||||
|
strict protected
|
||||||
|
function GetGornickyService: TGornickyService;
|
||||||
|
}
|
||||||
|
public
|
||||||
|
destructor Destroy; override;
|
||||||
|
|
||||||
|
// [MVCDoc('Pomoc<6F> POST zap<61><70>e obecn<63> json data do Heliosu')]
|
||||||
|
[MVCPath('/zapisjson')] // zapis obecnych json data do Heliosu
|
||||||
|
[MVCHTTPMethod([httpPOST])]
|
||||||
|
[MVCSwagSummary('Gornicky', 'Z<>pis JSON dat do db Heliosu', 'GORZapisJSONDoHeliosu')]
|
||||||
|
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
|
||||||
|
procedure ZapisJSONDoHeliosu (CTX: TWebContext);
|
||||||
|
|
||||||
|
[MVCPath('/nactiurl')] // zapis obecnych json data do Heliosu
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('Gornicky', 'Na<4E>te data ze zadan<61> URL adresy', 'GORNacteniDatURL')]
|
||||||
|
[MVCSwagParam(plQuery, 'url', 'URL adresa', ptString, true)]
|
||||||
|
procedure NactiDataZURL ([MVCFromQueryString('url', '')] sURL: 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,
|
||||||
|
Quick.Logger;
|
||||||
|
|
||||||
|
const
|
||||||
|
selSloupce = '';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TGornickyController }
|
||||||
|
destructor TGornickyController.Destroy;
|
||||||
|
begin
|
||||||
|
// FSelfSvc.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGornickyController.ZapisJSONDoHeliosu (CTX: TWebContext);
|
||||||
|
var respData, jsonData: string;
|
||||||
|
// o: System.JSON.TJSONObject;
|
||||||
|
begin
|
||||||
|
respData:= '';
|
||||||
|
try
|
||||||
|
jsonData:= CTX.Request.Body.Trim;
|
||||||
|
if (jsonData<>'') then
|
||||||
|
GetGornickyService.ZapisJsonDoHeliosu (jsonData, respData);
|
||||||
|
ResponseStatus(HTTP_STATUS.OK, 'OK');
|
||||||
|
Render(respData);
|
||||||
|
except
|
||||||
|
RenderStatusMessage (200);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGornickyController.NactiDataZURL (sURL: string = '');
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
7
_custom/Gornicky/uHeOObj_Custom.pas
Normal file
7
_custom/Gornicky/uHeOObj_Custom.pas
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
unit uHeOObj_Custom;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
implementation
|
||||||
|
end.
|
||||||
140
_custom/Gornicky/uSvcCustom.pas
Normal file
140
_custom/Gornicky/uSvcCustom.pas
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
unit uSvcCustom;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
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_ObehZbozi,
|
||||||
|
uSvc_Vyroba;
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CRLF = #13#10;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
TGornickyService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
procedure ZapisJsonDoHeliosu (jsonData: string; var respString: string);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses
|
||||||
|
System.StrUtils,
|
||||||
|
FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
MVCFramework.Serializer.Commons;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TGornickyService }
|
||||||
|
|
||||||
|
procedure TGornickyService.ZapisJsonDoHeliosu (jsonData: string; var respString: string);
|
||||||
|
var lSQL, taskStr, strTmp, strTmp2, code, rs, guidIdent: string;
|
||||||
|
guid: TGuid;
|
||||||
|
akce: string;
|
||||||
|
j, t, a, v: JsonDataObjects.TJSONObject;
|
||||||
|
i, ii, taskDZId, taskId, intTemp, idJSON: integer;
|
||||||
|
jeOld: boolean;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
w: TStreamWriter;
|
||||||
|
jo: System.JSON.TJsonObject;
|
||||||
|
begin
|
||||||
|
idJSON:= 0;
|
||||||
|
respString:= '[';
|
||||||
|
|
||||||
|
jo:= System.JSON.TJsonObject.Create;
|
||||||
|
|
||||||
|
jsonData:= jsonData.Trim;
|
||||||
|
if (jsonData<>'') then
|
||||||
|
begin
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
try
|
||||||
|
CoCreateGuid(guid);
|
||||||
|
if (System.SysUtils.CreateGUID(guid)=S_OK) then
|
||||||
|
guidIdent:= System.SysUtils.GUIDToString(guid)
|
||||||
|
else
|
||||||
|
guidIdent:= self.NewUUID32;
|
||||||
|
lSQL:= 'INSERT ' + tblPrijataJsonData + ' (IdPHIdent, GUIDIdent, JSONData) SELECT 0, CONVERT(uniqueidentifier, N' + guidIdent.QuotedString + '), N' + jsonData.QuotedString;
|
||||||
|
FDM.sqlConn.ExecSQL(lSQL);
|
||||||
|
lSQL:= 'SELECT ID FROM ' + tblPrijataJsonData + ' WHERE GUIDIdent=CONVERT(uniqueidentifier, N' + guidIdent.QuotedString + ')';
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
if (lQry.RecordCount=1) then
|
||||||
|
begin
|
||||||
|
idJSON:= lQry.FieldByName('ID').AsInteger;
|
||||||
|
respString:= 'OK';
|
||||||
|
jo.AddPair('heliosid', idJSON.ToString);
|
||||||
|
end;
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
respString:= 'NOT OK';
|
||||||
|
raise EServiceException.Create('Chyba zápisu JSON dat: ' + E.Message);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FreeAndNil(lQry);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
CoInitialize(nil);
|
||||||
|
j:= TJsonObject.Parse(jsonData) as JsonDataObjects.TJsonObject;
|
||||||
|
try
|
||||||
|
if (j<>nil) then
|
||||||
|
if (j.Contains('akce')) then
|
||||||
|
begin
|
||||||
|
akce:= j.S['akce'].Trim;
|
||||||
|
if (idJSON>0) and (akce<>'') then
|
||||||
|
FDM.sqlConn.ExecSQL('UPDATE ' + tblPrijataJsonData + ' SET Akce=N' + akce.QuotedString + ' WHERE ID=' + idJSON.ToString);
|
||||||
|
{
|
||||||
|
for i:=0 to j['tasks'].Count-1 do
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
t:= j['tasks'].Items[i];
|
||||||
|
taskDZId:= t.I['id']; // j['tasks'].Items[i].I['id'];
|
||||||
|
taskStr:= j['tasks'].Items[i].ObjectValue.ToString;
|
||||||
|
except on E:Exception do
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
j.Free;
|
||||||
|
end;
|
||||||
|
CoUninitialize;
|
||||||
|
|
||||||
|
end
|
||||||
|
else
|
||||||
|
respString:= 'NO input data';
|
||||||
|
|
||||||
|
jo.AddPair('status', respString);
|
||||||
|
respString:= '[' +respString + ']';
|
||||||
|
|
||||||
|
respString:= jo.ToString;
|
||||||
|
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
2
_custom/Gornicky/uWebModCustom.inc
Normal file
2
_custom/Gornicky/uWebModCustom.inc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
FEngine.AddController (TGornickyController);
|
||||||
|
|
||||||
1
_custom/Gornicky/winSvc/consts.inc
Normal file
1
_custom/Gornicky/winSvc/consts.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
tblAPIDigiSoubory = '[dbo].[Tabx_HDC_API_DigitalizaceSoubory]';
|
||||||
2
_custom/Gornicky/winSvc/gornicky.xml
Normal file
2
_custom/Gornicky/winSvc/gornicky.xml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<config downPDFintMins="10"/>
|
||||||
462
_custom/Gornicky/winSvc/impl.inc
Normal file
462
_custom/Gornicky/winSvc/impl.inc
Normal file
@ -0,0 +1,462 @@
|
|||||||
|
constructor THeoGorDownPDFThread.Create (AOnTerminate: TNotifyEvent; AService: TService);
|
||||||
|
begin
|
||||||
|
inherited Create (false); // Create thread in NOT suspended mode
|
||||||
|
FMainService:= AService;
|
||||||
|
FLock:= TCriticalSection.Create;
|
||||||
|
FRunning:= false;
|
||||||
|
FTermEvent:= TEvent.Create (nil, False, False, '');
|
||||||
|
|
||||||
|
|
||||||
|
// OnTerminate:= AOnTerminate;
|
||||||
|
// FreeOnTerminate:= true;
|
||||||
|
FreeOnTerminate:= false; // Ensure manual freeing of thread resources
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
destructor THeoGorDownPDFThread.Destroy;
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
Write('Ukoncuji thread GOR Download PDF...');
|
||||||
|
{$ENDIF}
|
||||||
|
if (FTimer<>0) then
|
||||||
|
CloseHandle (FTimer);
|
||||||
|
FTermEvent.Free;
|
||||||
|
FRunning:= false;
|
||||||
|
FMainService:= nil;
|
||||||
|
Terminate;
|
||||||
|
FLock.Free;
|
||||||
|
inherited;
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn('OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoGorDownPDFThread.TerminatedSet;
|
||||||
|
begin
|
||||||
|
FTermEvent.SetEvent;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoGorDownPDFThread.ThreadTerminate;
|
||||||
|
begin
|
||||||
|
Terminate;
|
||||||
|
WaitFor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoGorDownPDFThread.Execute;
|
||||||
|
const _Second = 10_000_000;
|
||||||
|
var lSQL, errMsg, url, outData, fName, loopCasTyp: string;
|
||||||
|
lLoop, idDigiFile, cnt, idx: Integer;
|
||||||
|
lLoopMax, koefProCas: integer;
|
||||||
|
logRunCnt: integer;
|
||||||
|
Msg: TMsg;
|
||||||
|
firstRun, inProg, inDL: boolean;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
sqlConnX, sqlConnX2: TFDConnection;
|
||||||
|
sqlTrans: IFDPhysTransaction;
|
||||||
|
f, lOpenSSLLib: string;
|
||||||
|
|
||||||
|
lBusy: LongInt;
|
||||||
|
liDueTime: LARGE_INTEGER;
|
||||||
|
|
||||||
|
mamSSLLibs: boolean;
|
||||||
|
sslLibPath: string;
|
||||||
|
http1: System.Net.HTTPClient.THTTPClient;
|
||||||
|
iResp: System.Net.HTTPClient.IHTTPResponse;
|
||||||
|
aResp: TMemoryStream;
|
||||||
|
http2: TIdHttp;
|
||||||
|
sslHndlr: TIdSSLIOHandlerSocketOpenSSL;
|
||||||
|
respHttp2: TStream;
|
||||||
|
i: integer;
|
||||||
|
sTemp, outData2: string;
|
||||||
|
|
||||||
|
cfgFile: string;
|
||||||
|
specCfgXML: XML.XmlIntf.IXMLDocument;
|
||||||
|
n1: XML.XmlIntf.IXMLNode;
|
||||||
|
attribs: IXMLNodeList;
|
||||||
|
attrIdx: integer;
|
||||||
|
|
||||||
|
function StringToHex (const inStr: string): string;
|
||||||
|
var i: integer;
|
||||||
|
begin
|
||||||
|
result:= '';
|
||||||
|
for i:=1 to Length(inStr) do
|
||||||
|
result:= result + IntToHex(Ord(inStr[i]), 2); // 2 means two hex digits per character
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MemStreamToHex (aStream: TMemoryStream): string;
|
||||||
|
var i: integer;
|
||||||
|
b: byte;
|
||||||
|
begin
|
||||||
|
result:= '';
|
||||||
|
for i:=0 to aStream.Size-1 do
|
||||||
|
begin
|
||||||
|
b:= PByte(TMemoryStream(aStream).Memory)[i];
|
||||||
|
result:= result + IntToHex(b,2);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
lLoop:= 0;
|
||||||
|
idDigiFile:= 0;
|
||||||
|
logRunCnt:= 1;
|
||||||
|
|
||||||
|
{
|
||||||
|
koefProCas:= 0; // default vteriny
|
||||||
|
loopCasTyp:= '???';
|
||||||
|
case DZTaksZapisTypCas of
|
||||||
|
0: koefProCas:= 1;
|
||||||
|
1: koefProCas:= 60;
|
||||||
|
2: koefProCas:= 3600;
|
||||||
|
end;
|
||||||
|
lLoopMax:= koefProCas * intProcessDZTasksSec;
|
||||||
|
case DZTaksZapisTypCas of
|
||||||
|
0: loopCasTyp:= 'sek';
|
||||||
|
1: loopCasTyp:= 'min';
|
||||||
|
2: loopCasTyp:= 'hod';
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
|
lLoopMax:= 10; // v minutach !!!!
|
||||||
|
try
|
||||||
|
try
|
||||||
|
CoInitialize(nil);
|
||||||
|
cfgFile:= ExtractFilePath(ParamStr(0)) + 'gornicky.xml';
|
||||||
|
if (FileExists(cfgFile)) then
|
||||||
|
begin
|
||||||
|
specCfgXML:= Xml.XMLDoc.TXMLDocument.Create(nil);
|
||||||
|
specCfgXML.LoadFromFile (cfgFile);
|
||||||
|
specCfgXML.Active:= true;
|
||||||
|
if not(specCfgXML.IsEmptyDoc) then
|
||||||
|
begin
|
||||||
|
if (specCfgXML.DocumentElement<>nil) then
|
||||||
|
begin
|
||||||
|
n1:= specCfgXML.DocumentElement;
|
||||||
|
if (n1.NodeName='config') then
|
||||||
|
begin
|
||||||
|
attribs:= n1.AttributeNodes;
|
||||||
|
|
||||||
|
attrIdx:= attribs.IndexOf('downPDFintMins');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
lLoopMax:= attribs.Get(i).NodeValue;
|
||||||
|
end; // n1 = config
|
||||||
|
end; // specCfgXML.DocumentElement<>nil
|
||||||
|
end; // not specCfgXML.IsEmptyDoc
|
||||||
|
end; // FileExists(cfgFile)
|
||||||
|
except
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
begin
|
||||||
|
if (specCfgXML<>nil) then
|
||||||
|
specCfgXML:= nil;
|
||||||
|
CoUninitialize;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Download PDF interval: ' + lLoopMax.ToString + ' min.');
|
||||||
|
lLoopMax:= lLoopMax * 60; // minuty na vteriny
|
||||||
|
|
||||||
|
|
||||||
|
firstRun:= true;
|
||||||
|
inProg:= false;
|
||||||
|
|
||||||
|
sslLibPath:= '';
|
||||||
|
f:= ExtractFilePath (ParamStr(0));
|
||||||
|
mamSSLLibs:= false;
|
||||||
|
for lOpenSSLLib in OPENSSL_LIBS do
|
||||||
|
begin
|
||||||
|
if (FileExists(TPath.Combine(f, lOpenSSLLib))) then
|
||||||
|
begin
|
||||||
|
mamSSLLibs:= true;
|
||||||
|
sslLibPath:= ExcludeTrailingPathDelimiter (f);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
FRunning:= false;
|
||||||
|
if not(datMod.SQLTableExists(tblAPIDigiSoubory)) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
FRunning:= true;
|
||||||
|
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
FTimer:= CreateWaitableTimer (nil, true, 'GorDownloadPDFWaitableTimer');
|
||||||
|
liDueTime.QuadPart:= -1*_Second;
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
while not(Terminated) or not(FRunning) do
|
||||||
|
begin
|
||||||
|
if (HDCDZApiService<>nil) then
|
||||||
|
if (HDCDZApiService.Terminated) then
|
||||||
|
begin
|
||||||
|
Terminate;
|
||||||
|
FRunning:= false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
PeekMessage (&Msg, 0, 0, 0, PM_NOREMOVE); { Create message queue }
|
||||||
|
|
||||||
|
if (lLoop=lLoopMax) or (firstRun) then // pri startu a pak kazdou minutu
|
||||||
|
begin
|
||||||
|
idDigiFile:= 0;
|
||||||
|
firstRun:= false;
|
||||||
|
|
||||||
|
if (logRunCnt<4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim download ' + logRunCnt.toString + '...');
|
||||||
|
if (logRunCnt=4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim download - bezi ale dal neloguju');
|
||||||
|
|
||||||
|
try
|
||||||
|
if not(inProg) then // nebezi uz ?
|
||||||
|
begin
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
|
||||||
|
sqlConnX:= TFDConnection.Create (nil);
|
||||||
|
sqlConnX.Params.SetStrings (datMod.sqlConnParams);
|
||||||
|
// sqlConnX.TxOptions.AutoCommit:= false;
|
||||||
|
sqlConnX.Open;
|
||||||
|
|
||||||
|
if (sqlConnX.Connected) then
|
||||||
|
begin
|
||||||
|
// sqlConnX.ExecSQL('DECLARE @i INT; SET @i=ISNULL( (SELECT MAX(ID) FROM dbo.TabDokumenty), 1); DBCC CHECKIDENT (TabDokumenty, RESEED, @i)');
|
||||||
|
|
||||||
|
lSQL:= '/* hdcDZApiSvc */ SELECT ID FROM ' + tblAPIDigiSoubory + ' WHERE Blokovano=0 AND Zpracovano=0 AND Zpracovat=1'
|
||||||
|
+ ' AND IDDokument IS NULL ORDER BY ID';
|
||||||
|
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
lQry.Connection:= sqlConnX;
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
if (lQry.RecordCount>0) then
|
||||||
|
begin
|
||||||
|
lQry.First;
|
||||||
|
if (sqlConnX.TxOptions.AutoCommit=false) then
|
||||||
|
sqlConnX.StartTransaction;
|
||||||
|
inProg:= true;
|
||||||
|
|
||||||
|
while not(lQry.EOF) do
|
||||||
|
begin
|
||||||
|
|
||||||
|
idDigiFile:= lQry.FieldByName('ID').asInteger;
|
||||||
|
if (idDigiFile>0) then
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
// musim to zablokovat uz tady aby se to nezpracovavalo znovu
|
||||||
|
sqlConnX.ExecSQL('UPDATE ' + tblAPIDigiSoubory + ' SET Blokovano=1 WHERE ID=' + idDigiFile.ToString);
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Zablokovani downloadPDF id ' + idDigiFile.ToString + ' pred zpracovanim');
|
||||||
|
|
||||||
|
|
||||||
|
url:= datMod.SQLGetString ('SELECT DocURL FROM ' + tblAPIDigiSoubory + ' WHERE ID=' + idDigiFile.ToString);
|
||||||
|
if (url<>'') then
|
||||||
|
begin
|
||||||
|
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Mam URL downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
outData:= '';
|
||||||
|
|
||||||
|
if (sslLibPath='') then
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
http1:= System.Net.HTTPClient.THTTPClient.Create;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'HTTP klient NET vytvoren downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
aResp:= TMemoryStream.Create;
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Vytvoren memStream downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
try
|
||||||
|
if (Assigned(http1)) then
|
||||||
|
begin
|
||||||
|
http1.AllowCookies:= false;
|
||||||
|
http1.UserAgent:= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0';
|
||||||
|
http1.Accept:= 'application/pdf';
|
||||||
|
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Nacitam data PDF pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
iResp:= http1.Get (url);
|
||||||
|
aResp:= (iResp.ContentStream as TMemoryStream);
|
||||||
|
outData:= MemStreamToHex (aResp);
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Mam data PDF pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
|
||||||
|
end;
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etError, 'Chyba zpracovani downloadPDF id ' + idDigiFile.ToString + ' : ' + E.Message);
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Chyba zpracovani downloadPDF id ' + idDigiFile.ToString + ' >> ' + E.Message);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
http1.Free;
|
||||||
|
http1:= nil;
|
||||||
|
aResp.Free;
|
||||||
|
aResp:= nil;
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Uvolnen Net HTTP klient a memStream pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
IdOpenSSLSetLibPath (sslLibPath);
|
||||||
|
http2:= TIdHttp.Create (nil);
|
||||||
|
sslHndlr:= TIdSSLIOHandlerSocketOpenSSL.Create (http2);
|
||||||
|
try
|
||||||
|
sslHndlr.SSLOptions.Method:= sslvTLSv1_2;
|
||||||
|
sslHndlr.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1];
|
||||||
|
http2.IOHandler:= sslHndlr;
|
||||||
|
|
||||||
|
http2.Request.Accept:= 'application/pdf';
|
||||||
|
http2.Request.BasicAuthentication := False;
|
||||||
|
http2.HTTPOptions:= http2.HTTPOptions + [hoKeepOrigProtocol] + [hoNoProtocolErrorException];
|
||||||
|
http2.Request.ContentType:= 'application/pdf; charset=utf-8';
|
||||||
|
respHttp2:= TMemoryStream.Create;
|
||||||
|
http2.Get (url, respHttp2);
|
||||||
|
outData:= MemStreamToHex (respHttp2 as TMemoryStream);
|
||||||
|
finally
|
||||||
|
FreeAndNil (sslHndlr); // must be freed before IdHttp
|
||||||
|
FreeAndNil (http2);
|
||||||
|
FreeAndNil (respHttp2);
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Uvolnen Indy HTTP klient a memStream pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
if (outData<>'') then
|
||||||
|
begin
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Mam data 2 PDF pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
fName:= '';
|
||||||
|
i:= LastDelimiter ('/\', url);
|
||||||
|
if (i>0) then
|
||||||
|
fName:= Copy (url, i+1, Length(url)-i);
|
||||||
|
|
||||||
|
if (LeftStr(outData,4)='5025') then
|
||||||
|
begin
|
||||||
|
outData2:= '';
|
||||||
|
for i:=1 to Length(outData) div 2 do
|
||||||
|
outData2:= outData2 + MidStr(outData, (4*i)-1, 2) + MidStr(outData, (4*i)-3, 2);
|
||||||
|
if (outData2<>'') then
|
||||||
|
outData:= outData2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
lSQL:= 'DECLARE @i INT' + CRLF + 'SET @i=(SELECT ID FROM dbo.TabDokumenty WHERE JmenoACesta=N' + url.QuotedString
|
||||||
|
+ ')' + CRLF + 'IF (@i IS NULL)' + CRLF
|
||||||
|
+ ' BEGIN' + CRLF + ' INSERT dbo.TabDokumenty (Popis, JmenoACesta, Poznamka, Autor, Dokument) SELECT N' + fName.QuotedString
|
||||||
|
+ ', N' + fName.QuotedString + ', N' + url.QuotedString + ', N''apiImport'''
|
||||||
|
+ ', CONVERT(varbinary(max), 0x' + outData +', 1)' + CRLF + ' SET @i=SCOPE_IDENTITY()' + CRLF + ' END'
|
||||||
|
+ CRLF + 'SELECT @i';
|
||||||
|
sTemp:= datMod.SQLGetString (lSQL);
|
||||||
|
if (sTemp<>'') then
|
||||||
|
begin
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Update zapisu downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
lSQL:= 'UPDATE ' + tblAPIDigiSoubory + ' SET IDDokument=' + sTemp + ', DatZpracovani=GETDATE(), Blokovano=0 WHERE ID=' + idDigiFile.ToString;
|
||||||
|
sqlConnX.ExecSQL(lSQL);
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Update zapisu/odblokovani downloadPDF id ' + idDigiFile.ToString + ' - OK');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end; // url<>''
|
||||||
|
|
||||||
|
|
||||||
|
if (url='') then
|
||||||
|
begin
|
||||||
|
lSQL:= 'UPDATE ' + tblAPIDigiSoubory + ' SET DatZpracovani=GETDATE(), Blokovano=0 WHERE ID=' + idDigiFile.ToString;
|
||||||
|
sqlConnX.ExecSQL (lSQL);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
errMsg:= E.Message; // datMod.sqlQry11.FieldByName('ErrMsg').AsString;
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Chyba 2 zpracovani downloadPDF id ' + idDigiFile.ToString + ' >> ' + errMsg);
|
||||||
|
{$ENDIF}
|
||||||
|
// sqlConnX.ExecSQL('UPDATE ' + tblAPIDigiSoubory + ' SET PosledniChyba=N' + errMsg.QuotedString + ' WHERE ID=' + idDigiFile.ToString);
|
||||||
|
datMod.LogInfo(Quick.Logger.etError, 'Chyba 2 zpracovani downloadPDF ID ' + idDigiFile.ToString + ' : ' + errMsg);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
lQry.Next;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lQry.Close;
|
||||||
|
FreeAndNil (lQry);
|
||||||
|
// lQry.Free;
|
||||||
|
// lQry:= nil;
|
||||||
|
end;
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Uzavrena SQL query - downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
|
||||||
|
if (sqlConnX.InTransaction) then
|
||||||
|
sqlConnX.Commit;
|
||||||
|
inProg:= false;
|
||||||
|
end; // sql Connected
|
||||||
|
sqlConnX.Close;
|
||||||
|
FreeAndNil (sqlConnX);
|
||||||
|
// sqlConnX.Free;
|
||||||
|
// sqlConnX:= nil;
|
||||||
|
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Zrusena SQL connection - downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
inProg:= false;
|
||||||
|
if (lQry<>nil) then
|
||||||
|
begin
|
||||||
|
lQry.Close;
|
||||||
|
FreeAndNil (lQry);
|
||||||
|
end;
|
||||||
|
if (sqlConnX<>nil) then
|
||||||
|
begin
|
||||||
|
if (sqlConnX.InTransaction) then
|
||||||
|
sqlConnX.Rollback;
|
||||||
|
sqlConnX.Close;
|
||||||
|
FreeAndNil (sqlConnX);
|
||||||
|
// sqlConnX.Free;
|
||||||
|
// sqlConnX:= nil;
|
||||||
|
end;
|
||||||
|
errMsg:= E.Message; // datMod.sqlQry11.FieldByName('ErrMsg').AsString;
|
||||||
|
if (mamTabPrijataData) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etError, 'Chyba zpracovani API souboru ID ' + idDigiFile.ToString + ' : ' + errMsg);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
lLoop:= 0;
|
||||||
|
if (logRunCnt<5) then
|
||||||
|
Inc (logRunCnt);
|
||||||
|
end;
|
||||||
|
Inc (lLoop);
|
||||||
|
|
||||||
|
if (FTimer<>0) then
|
||||||
|
SetWaitableTimer (FTimer, TLargeInteger(liDueTime), 0, nil, nil, false);
|
||||||
|
repeat
|
||||||
|
lBusy:= MsgWaitForMultipleObjects (1, FTimer, false, INFINITE, QS_ALLINPUT);
|
||||||
|
until lBusy = WAIT_OBJECT_0;
|
||||||
|
// Sleep (998);
|
||||||
|
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (sqlConnX2<>nil) then
|
||||||
|
begin
|
||||||
|
if (sqlConnX2.Connected) then
|
||||||
|
sqlConnX2.Close;
|
||||||
|
FreeAndNil (sqlConnX2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
1
_custom/Gornicky/winSvc/mainPrivs.inc
Normal file
1
_custom/Gornicky/winSvc/mainPrivs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
gorDownPDFThr: THeoGorDownPDFThread;
|
||||||
3
_custom/Gornicky/winSvc/mainSvcCont.inc
Normal file
3
_custom/Gornicky/winSvc/mainSvcCont.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (gorDownPDFThr<>nil) then
|
||||||
|
if (gorDownPDFThr.Suspended) then
|
||||||
|
gorDownPDFThr.Resume;
|
||||||
6
_custom/Gornicky/winSvc/mainSvcExec.inc
Normal file
6
_custom/Gornicky/winSvc/mainSvcExec.inc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if (gorDownPDFThr<>nil) then
|
||||||
|
if not(gorDownPDFThr.Started) then
|
||||||
|
begin
|
||||||
|
gorDownPDFThr.Start;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby GOR downloadPDF - pocet ' + datMod.SQLGetString('SELECT COUNT(ID) FROM ' + tblAPIDigiSoubory + ' WHERE Zpracovat=1 AND DatZpracovani IS NULL'));
|
||||||
|
end;
|
||||||
3
_custom/Gornicky/winSvc/mainSvcPause.inc
Normal file
3
_custom/Gornicky/winSvc/mainSvcPause.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (gorDownPDFThr<>nil) then
|
||||||
|
if not(gorDownPDFThr.Suspended) then
|
||||||
|
gorDownPDFThr.Suspend;
|
||||||
12
_custom/Gornicky/winSvc/mainSvcStart.inc
Normal file
12
_custom/Gornicky/winSvc/mainSvcStart.inc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby GOR downloadPDF - inverval 10 minut...');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Start sluzby GOR downloadPDF - inverval 10 minut...');
|
||||||
|
{$ENDIF}
|
||||||
|
gorDownPDFThr:= THeoGorDownPDFThread.Create (ThreadTerminated, self);
|
||||||
|
if (gorDownPDFThr.Started) then
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' OK');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
18
_custom/Gornicky/winSvc/mainSvcStop.inc
Normal file
18
_custom/Gornicky/winSvc/mainSvcStop.inc
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if Assigned(gorDownPDFThr) then
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Ukoncuji sluzbu GOR downloadPDF...');
|
||||||
|
{$ENDIF}
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Ukoncuji sluzbu GOR downloadPDF...');
|
||||||
|
try
|
||||||
|
gorDownPDFThr.ThreadTerminate;
|
||||||
|
FreeAndNil(gorDownPDFThr);
|
||||||
|
except on E:Exception do
|
||||||
|
// add event in eventlog with reason why the service couldn't stop
|
||||||
|
LogMessage('Cannot stop service: ' + E.Message, EVENTLOG_ERROR_TYPE, 0, 1);
|
||||||
|
end;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' OK');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
3
_custom/Gornicky/winSvc/readCfg.inc
Normal file
3
_custom/Gornicky/winSvc/readCfg.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
intervalSecDownPDF
|
||||||
15
_custom/Gornicky/winSvc/types.inc
Normal file
15
_custom/Gornicky/winSvc/types.inc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
THeoGorDownPDFThread = class(TThread)
|
||||||
|
private
|
||||||
|
FMainService: TService;
|
||||||
|
FLock: TCriticalSection;
|
||||||
|
FTermEvent: TEvent;
|
||||||
|
FRunning: boolean;
|
||||||
|
FTimer: THandle;
|
||||||
|
protected
|
||||||
|
procedure Execute; override;
|
||||||
|
procedure TerminatedSet; override; // XE2+ only *
|
||||||
|
public
|
||||||
|
constructor Create (AOnTerminate: TNotifyEvent; AService: TService);
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure ThreadTerminate;
|
||||||
|
end;
|
||||||
0
_custom/Gornicky/winSvc/uses.inc
Normal file
0
_custom/Gornicky/winSvc/uses.inc
Normal file
1
_custom/Gornicky/winSvc/usesTop.inc
Normal file
1
_custom/Gornicky/winSvc/usesTop.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
System.Net.HttpClient, System.Threading,
|
||||||
1
_custom/Gornicky/winSvc/vars.inc
Normal file
1
_custom/Gornicky/winSvc/vars.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
intervalSecDownPDF: integer;
|
||||||
BIN
_custom/Gornicky/zdroje.RES
Normal file
BIN
_custom/Gornicky/zdroje.RES
Normal file
Binary file not shown.
1
_custom/Gornicky/zdroje.rc
Normal file
1
_custom/Gornicky/zdroje.rc
Normal file
@ -0,0 +1 @@
|
|||||||
|
ep_HDCDZApi_ZpracujPrijataData RCDATA .\sql\ep_HDCDZApi_ZpracujPrijataData.sql
|
||||||
3
_custom/INCOSystems/customDefs.inc
Normal file
3
_custom/INCOSystems/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in '_custom\INCOSystems\uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in '_custom\INCOSystems\uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in 'uSvcCustom.pas'
|
||||||
6
_custom/INCOSystems/sql/col_TabEvidRozpracOper_EXT.sql
Normal file
6
_custom/INCOSystems/sql/col_TabEvidRozpracOper_EXT.sql
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabEvidRozpracOper_EXT', N'_PHIdent') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabEvidRozpracOper', @NazevAtrSys=N'_PHIdent', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Datazone ID',
|
||||||
|
@NazevAtrVerZkr=N'', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'N', @SirkaSloupceAtr=12, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=0, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||||
8
_custom/INCOSystems/sql/col_TabKmenZbozi_EXT.sql
Normal file
8
_custom/INCOSystems/sql/col_TabKmenZbozi_EXT.sql
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabKmenZbozi_EXT', N'_SkladProVydejMat') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabKmenZbozi', @NazevAtrSys=N'_SkladProVydejMat', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Sklad pro v<>dej pod<6F><64>zen<65>ho materi<72>lu',
|
||||||
|
@NazevAtrVerZkr=N'Sklad mat.', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=4, @ExtEd_Atr=N'Cislo', @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'NVARCHAR(30)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1,
|
||||||
|
@BublinaAtr=N'Sklad, ze kter<65>ho bude vyd<79>v<EFBFBD>n v<>echen materi<72>l v po<70>adavc<76>ch p<><70>kazu tohoto d<>lce'
|
||||||
|
|
||||||
6
_custom/INCOSystems/sql/col_TabPrPostup_EXT.sql
Normal file
6
_custom/INCOSystems/sql/col_TabPrPostup_EXT.sql
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_IDPrednaOper') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_IDPrednaOper', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Vazba na P<>ednastaven<65> operac<61>',
|
||||||
|
@NazevAtrVerZkr=N'', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @BublinaAtr=N''
|
||||||
20
_custom/INCOSystems/sql/col_TabPredna_EXT.sql
Normal file
20
_custom/INCOSystems/sql/col_TabPredna_EXT.sql
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_CisloOperace') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPredna', @NazevAtrSys=N'_CisloOperace', @Skupina=N'HDCDZApi', @NazevAtrVer=N'<EFBFBD><EFBFBD>slo operace',
|
||||||
|
@NazevAtrVerZkr=N'Operace', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'NVARCHAR(4)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @BublinaAtr=N'<EFBFBD><EFBFBD>slo operace jedine<6E>n<EFBFBD> p<>es v<>echny p<><70>kazy'
|
||||||
|
|
||||||
|
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_OdvadeciOperace') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPredna', @NazevAtrSys=N'_OdvadeciOperace', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Odv<EFBFBD>d<EFBFBD>c<EFBFBD> operace',
|
||||||
|
@NazevAtrVerZkr=N'Odv.operace', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'BIT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @BublinaAtr=N'P<EFBFBD><EFBFBD>znak Odv<64>d<EFBFBD>c<EFBFBD> operace'
|
||||||
|
|
||||||
|
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_IDNasledujiciOperaceAutomat') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPredna', @NazevAtrSys=N'_IDNasledujiciOperaceAutomat', @Skupina=N'HDCDZApi', @NazevAtrVer=N'N<EFBFBD>sledn<EFBFBD> operace',
|
||||||
|
@NazevAtrVerZkr=N'N<EFBFBD>sledn<EFBFBD> operace', @TypAtr=N'INT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=14, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'INT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @BublinaAtr=N'N<EFBFBD>sledn<EFBFBD> operace'
|
||||||
1076
_custom/INCOSystems/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
1076
_custom/INCOSystems/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
File diff suppressed because it is too large
Load Diff
611
_custom/INCOSystems/sql/ep_HDCDZApi_ZpracujPrijataData.sql.bak
Normal file
611
_custom/INCOSystems/sql/ep_HDCDZApi_ZpracujPrijataData.sql.bak
Normal file
@ -0,0 +1,611 @@
|
|||||||
|
-- dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||||
|
CREATE PROCEDURE dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||||
|
@idJson INT=NULL
|
||||||
|
AS
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
-- ! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@errMsg NVARCHAR(500)=N'',
|
||||||
|
@errProc NVARCHAR(100),
|
||||||
|
@tranPred INT,
|
||||||
|
@iChyba INT,
|
||||||
|
@debugXML XML
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@operJson NVARCHAR(max),
|
||||||
|
@prikJson NVARCHAR(max),
|
||||||
|
@objekt NVARCHAR(50),
|
||||||
|
@akce NVARCHAR(50),
|
||||||
|
@trida NVARCHAR(50),
|
||||||
|
@statusOp NVARCHAR(50),
|
||||||
|
@typOperJson NVARCHAR(50),
|
||||||
|
@jsonString NVARCHAR(max),
|
||||||
|
@cisZam INT,
|
||||||
|
@idZam INT,
|
||||||
|
@idVPr INT,
|
||||||
|
@idVCPrik INT,
|
||||||
|
@vc NVARCHAR(100),
|
||||||
|
@dokl INT,
|
||||||
|
@alt NCHAR(1),
|
||||||
|
@idPrP INT,
|
||||||
|
@idPrPOdv INT,
|
||||||
|
@doklOdv INT,
|
||||||
|
@doklNew INT,
|
||||||
|
@doklAutomat INT,
|
||||||
|
@altAutomat NCHAR(1),
|
||||||
|
@jeOdvadeci BIT=0,
|
||||||
|
@datStart DATETIME,
|
||||||
|
@datKonec DATETIME,
|
||||||
|
@skCasSek INT,
|
||||||
|
@mnoz NUMERIC(19,6),
|
||||||
|
@idPrednaOp INT,
|
||||||
|
@idPrednaOpOdv INT,
|
||||||
|
@operPrednaOdv NVARCHAR(4),
|
||||||
|
@operPrednaPrac INT,
|
||||||
|
@typOper TINYINT,
|
||||||
|
@idPrac INT,
|
||||||
|
@idPracOld INT,
|
||||||
|
@idStroj INT,
|
||||||
|
@nazevOp NVARCHAR(100),
|
||||||
|
@operPredna NVARCHAR(4),
|
||||||
|
@odvadeciPredna BIT=0,
|
||||||
|
@cisOper INT,
|
||||||
|
@cisOperMax INT,
|
||||||
|
@operMax NVARCHAR(4),
|
||||||
|
@nazevOpMax NVARCHAR(100),
|
||||||
|
@idKoop INT,
|
||||||
|
@idEvidROp INT,
|
||||||
|
@idEvidROpPol INT,
|
||||||
|
@idMzdy INT,
|
||||||
|
@idPrednaOpAutomat INT,
|
||||||
|
@operPrednaOpAutomat NVARCHAR(4),
|
||||||
|
@casSekOperPredaAutomat INT,
|
||||||
|
@idMzdyAutomat INT,
|
||||||
|
@datKonecOp DATETIME,
|
||||||
|
@ksZive NUMERIC(19,6),
|
||||||
|
@ksEvid NUMERIC(19,6)
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idDZ INT,
|
||||||
|
@sz NVARCHAR(3),
|
||||||
|
@rc NVARCHAR(30),
|
||||||
|
@idKZ INT,
|
||||||
|
@idPrKVazby INT,
|
||||||
|
@idDilec INT,
|
||||||
|
@mnozstviPomer_A NUMERIC(19,6),
|
||||||
|
@mnozstviPomer_B NUMERIC(19,6),
|
||||||
|
@idGenVydejPrednaPol INT,
|
||||||
|
@sklProVydej NVARCHAR(30)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabJSONData
|
||||||
|
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max) )
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||||
|
CREATE TABLE #HDCTabPrKVazbyGen_IDMzdyPredna (IDPrikaz int, Doklad int, IDMzdy int)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #HDCTabPrKVazbyGenPredna
|
||||||
|
CREATE TABLE #HDCTabPrKVazbyGenPredna (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
Generuj BIT NOT NULL DEFAULT 1,
|
||||||
|
PoKorekciDat BIT NOT NULL DEFAULT 0,
|
||||||
|
IDPrKV INT NOT NULL,
|
||||||
|
Doklad INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
Prednastaveno BIT NOT NULL DEFAULT 1,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
VyrStredisko NVARCHAR(30) NULL,
|
||||||
|
IDPracoviste INT NULL,
|
||||||
|
mnoz_zad NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_nepotrebne NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_skut_realizovane NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_real NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
MnozstviMax NUMERIC(19,6) NULL,
|
||||||
|
PuvodniMnozstviPoz NUMERIC(19,6) NULL,
|
||||||
|
MnozstviPoz NUMERIC(19,6) NOT NULL,
|
||||||
|
PomMnozPoz NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
IDPohZbo INT NULL,
|
||||||
|
PoznamkaNaDoklad NTEXT NULL,
|
||||||
|
priorita INT NOT NULL DEFAULT 0,
|
||||||
|
vyssi INT NOT NULL,
|
||||||
|
nizsi INT NOT NULL,
|
||||||
|
DavkaTPV NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
pozice NVARCHAR(100) NULL DEFAULT N'',
|
||||||
|
Operace NCHAR(4) NULL,
|
||||||
|
FixniMnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
ProcZtrat NUMERIC(5,2) NOT NULL DEFAULT 0,
|
||||||
|
mnozstviSeZtratou NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Prirez NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
Poznamka NTEXT NULL,
|
||||||
|
pom_pomer_A NUMERIC(19,6) NULL,
|
||||||
|
pom_pomer_B NUMERIC(19,6) NULL,
|
||||||
|
Dodavatel INT NULL,
|
||||||
|
mnoz_pozadovane AS (CONVERT(numeric(19,6),(CASE WHEN [mnoz_nepotrebne]>[mnoz_zad] THEN 0.0 ELSE [mnoz_zad] - [mnoz_nepotrebne] END))),
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
SET @operPrednaOdv = N''
|
||||||
|
SET @idPrednaOpOdv = (SELECT TOP(1) ID FROM dbo.TabPredna_EXT WHERE _OdvadeciOperace=1)
|
||||||
|
IF (@idPrednaOpOdv IS NOT NULL)
|
||||||
|
SET @operPrednaOdv = (SELECT _CIsloOperace FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOpOdv)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idJson IS NOT NULL)
|
||||||
|
DECLARE j CURSOR LOCAL FOR
|
||||||
|
SELECT ID, JsonData, Objekt, Akce FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson
|
||||||
|
ELSE
|
||||||
|
DECLARE j CURSOR LOCAL FOR
|
||||||
|
SELECT ID, JsonData, Objekt, Akce
|
||||||
|
FROM dbo._hdc_ph_PrijataJsonData
|
||||||
|
WHERE Blokovano=0
|
||||||
|
AND DatZpracovani IS NULL
|
||||||
|
AND ISNULL(JSONData,N'')<>N''
|
||||||
|
ORDER BY DatPorizeni
|
||||||
|
OPEN j
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM j INTO @idJson, @jsonString, @objekt, @akce
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (ISJSON(@jsonString)=0)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'Neplatna JSON data' WHERE ID=@idJson
|
||||||
|
END
|
||||||
|
|
||||||
|
SET @objekt = TRIM(ISNULL(@objekt, N''))
|
||||||
|
SET @akce = TRIM(ISNULL(@akce, N''))
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred=@@TRANCOUNT
|
||||||
|
IF (@tranPred=0)
|
||||||
|
BEGIN TRAN
|
||||||
|
|
||||||
|
|
||||||
|
DELETE FROM #TabJSONData
|
||||||
|
INSERT #TabJSONData (doc) VALUES (@jsonString)
|
||||||
|
IF (@objekt=N'')
|
||||||
|
SELECT TOP(1) @objekt = JSON_VALUE(doc, '$.object') FROM #TabJSONData
|
||||||
|
IF (@akce=N'')
|
||||||
|
SELECT TOP(1) @akce = JSON_VALUE(doc, '$.action') FROM #TabJSONData
|
||||||
|
|
||||||
|
SELECT TOP(1) @cisZam = JSON_VALUE(doc, '$.operace.worker.code') FROM #TabJSONData
|
||||||
|
SET @idZam = (SELECT ID FROM dbo.TabCisZam WHERE Cislo=@cisZam)
|
||||||
|
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=NULL, CisloZam=@cisZam WHERE ID=@idJson
|
||||||
|
|
||||||
|
|
||||||
|
IF (@objekt=N'operace') AND (@idZam IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF (@akce=N'start')
|
||||||
|
BEGIN
|
||||||
|
SET @idEvidROp = NULL
|
||||||
|
SET @errMsg = N''
|
||||||
|
SET @operPredna = N''
|
||||||
|
SET @odvadeciPredna = 0
|
||||||
|
SET @nazevOp = N''
|
||||||
|
SET @operMax = N''
|
||||||
|
|
||||||
|
SELECT @idVPr = JSON_VALUE(d2.prikaz, '$.id'), @trida = JSON_VALUE(d2.prikaz, '$.class'),
|
||||||
|
@idPrednaOp = JSON_VALUE(d3.operace, '$.id'), @datStart = JSON_VALUE(d3.operace, '$.startAt'),
|
||||||
|
@statusOp = JSON_VALUE(d3.operace, '$.status'), @typOperJson=JSON_VALUE(d3.operace, '$.typ')
|
||||||
|
FROM #TabJSONData d
|
||||||
|
CROSS APPLY OPENJSON(d.doc, N'$')
|
||||||
|
WITH ([prikaz] NVARCHAR(max) AS JSON) AS d2
|
||||||
|
CROSS APPLY OPENJSON(d.doc, N'$')
|
||||||
|
WITH ([operace] NVARCHAR(max) AS JSON) AS d3
|
||||||
|
|
||||||
|
IF (@idVPr IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idDilec=p.IDTabKmen, @sklProVydej=rp.VydejMatPol_SkladProGenHlavDZ
|
||||||
|
FROM dbo.TabPrikaz p INNER JOIN dbo.TabRadyPrikazu rp ON (rp.Rada=p.Rada) WHERE p.ID=@idVPr
|
||||||
|
|
||||||
|
SET @idPrP = NULL
|
||||||
|
|
||||||
|
IF (@typOperJson=N'prikaz')
|
||||||
|
BEGIN
|
||||||
|
SET @operPredna = CONVERT(nvarchar, @idPrednaOp)
|
||||||
|
SET @idPrednaOp = (SELECT TOP(1) ID FROM dbo.TabPredna_EXT WHERE _CIsloOperace=@operPredna)
|
||||||
|
SET @typOperJson=N'prednastavena'
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (@typOperJson=N'prednastavena')
|
||||||
|
BEGIN
|
||||||
|
IF (@idPrednaOp IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @operPrednaPrac=IDpracoviste FROM dbo.TabPredna WHERE ID=@idPrednaOp
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikaz WHERE ID=@idVPr AND StavPrikazu IN (20,30,40) AND BlokovaniEditoru IS NULL)
|
||||||
|
AND EXISTS(SELECT 1 FROM dbo.TabPredna WHERE ID=@idPrednaOp AND BlokovaniEditoru IS NULL)
|
||||||
|
SELECT @typOper=Typ, @nazevOp=nazev, @idPrac=IDpracoviste, @idStroj=IDStroje, @idKoop=IDkooperace
|
||||||
|
FROM dbo.TabPredna WHERE ID=@idPrednaOp
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_CisloOperace') IS NOT NULL)
|
||||||
|
SET @operPredna = (SELECT _CisloOperace FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOp)
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_OdvadeciOperace') IS NOT NULL)
|
||||||
|
SET @odvadeciPredna = (SELECT _OdvadeciOperace FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOp)
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
SET @operPredna = ISNULL(@operPredna,N'')
|
||||||
|
IF (@operPredna=N'')
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=N'CHYBA: přednastavení ID ' + CONVERT(nvarchar, @idPrednaOp) + N' nemá zadané číslo operace.' WHERE ID=@idJson
|
||||||
|
CONTINUE
|
||||||
|
END
|
||||||
|
-- SET @operPredna=dbo.hf_ZarovnejOperaciTechPos(@operPredna)
|
||||||
|
|
||||||
|
/*
|
||||||
|
SET @idPrP = (SELECT TOP(1) ID FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND typ=@typOper AND nazev=@nazevOp
|
||||||
|
AND ISNULL(pracoviste,0)=ISNULL(@idPrac,0) AND ISNULL(IDkooperace,0)=ISNULL(@idKoop,0) AND ISNULL(IDStroje,0)=ISNULL(@idStroj,0))
|
||||||
|
*/
|
||||||
|
SET @idPrP = (SELECT TOP(1) ID FROM dbo.TabPrPostup WHERE priorita=0 AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND typ=@typOper AND operace=@operPredna)
|
||||||
|
|
||||||
|
-- existuje odvadeci operace v Prednastaveni pro operace a v prikazu ? pokud neni v prikazu, pridej ji do prikazu
|
||||||
|
SET @doklOdv = NULL
|
||||||
|
SET @idPrPOdv = (SELECT ID FROM dbo.TabPrPostup WHERE priorita=0 AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND Operace=@operPrednaOdv)
|
||||||
|
|
||||||
|
-- pokud prednastavena Odvadeci jeste neni v prikazu, pridej ji tam
|
||||||
|
IF (@idPrPOdv IS NULL) AND (@idPrednaOpOdv IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC @idPrPOdv = dbo.hp_NewPozadavek_TabPrPostup @IDPrikaz=@idVPr, @IDPrednastaveni=@idPrednaOpOdv, @Operace=@operPrednaOdv
|
||||||
|
IF (@idPrPOdv IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
-- korekce cisla dokladu odvadeci operace, posun na konec seznamu operaci
|
||||||
|
SET @doklOdv=9990
|
||||||
|
UPDATE dbo.TabPrPostup SET Odvadeci=0 WHERE ID<>@idPrPOdv AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL
|
||||||
|
UPDATE dbo.TabPrPostup SET Doklad=@doklOdv, Odvadeci=1 WHERE ID=@idPrPOdv
|
||||||
|
END
|
||||||
|
END
|
||||||
|
IF (@doklOdv IS NULL) AND (@idPrPOdv IS NOT NULL)
|
||||||
|
SELECT @doklOdv=Doklad FROM dbo.TabPrPostup WHERE ID=@idPrPOdv
|
||||||
|
|
||||||
|
|
||||||
|
-- prednastavena operace v prikazu jeste neni, pridej ji
|
||||||
|
IF (@idPrP IS NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC @idPrP = dbo.hp_NewPozadavek_TabPrPostup @IDPrikaz=@idVPr, @IDPrednastaveni=@idPrednaOp, @Operace=@operPredna
|
||||||
|
IF (@idPrP IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
-- korekce cisla dokladu, pred odvadeci opeaci
|
||||||
|
SELECT @dokl=ISNULL(MAX(Doklad),0)+1 FROM dbo.TabPrPostup WITH (TABLOCKX) WHERE IDPrikaz=@idVPr AND Doklad<9990
|
||||||
|
UPDATE dbo.TabPrPostup SET Doklad=@dokl, Odvadeci=0, VyraditZKontrolyPosloupOper=1 WHERE ID=@idPrP
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
SET @idPrednaOpAutomat = NULL
|
||||||
|
SET @operPrednaOpAutomat = N''
|
||||||
|
|
||||||
|
IF (@idPrP IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @dokl=Doklad, @alt=Alt FROM dbo.TabPrPostup WHERE ID=@idPrP
|
||||||
|
UPDATE dbo.TabPrPostup SET VyraditZKontrolyPosloupOper=1 WHERE ID=@idPrP AND Odvadeci=0
|
||||||
|
|
||||||
|
-- korekce cisla dokladu aby bylo pred odvadeci operaci
|
||||||
|
IF (@doklOdv IS NOT NULL)
|
||||||
|
IF (@dokl>@doklOdv)
|
||||||
|
BEGIN
|
||||||
|
SET @doklNew = 1 + ISNULL( (SELECT MAX(Doklad) FROM dbo.TabPrPostup
|
||||||
|
WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND Doklad<@doklOdv AND ID<>@idPrP), 0)
|
||||||
|
IF (@doklNew IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo.TabPrPostup SET Doklad=@doklNew WHERE ID=@idPrP
|
||||||
|
SET @dokl = @doklNew
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
EXEC @idEvidROp = dbo.ep_Vyroba_InsertEvidRozpracOper @IDZamestnance=@idZam, @IDPracoviste=@idPrac, @IDStroje=@idStroj, @CasZahajeni=@datStart, @errMsg = @errMsg OUT
|
||||||
|
IF (@idEvidROp IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @idVCPrik = NULL
|
||||||
|
IF 1=ISNULL( (SELECT COUNT(ID) FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@idVPr), 0)
|
||||||
|
SET @idVCPrik = (SELECT TOP(1) ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@idVPr)
|
||||||
|
EXEC @idEvidROpPol = dbo.ep_Vyroba_InsertEvidRozpracOperPol @IDEvidRozpOper=@idEvidROp, @IdPrikaz=@idVPr, @doklPrPost=@dokl,
|
||||||
|
@altPrPost=@alt, @IdVyrCis=@idVCPrik, @errMsg = @errMsg OUT
|
||||||
|
END -- idEvidROp IS NOT NULL
|
||||||
|
END -- idPrP IS NOT NULL
|
||||||
|
|
||||||
|
-- pokud mam naslednou automatickou operaci, zkontrolu a pripadne ji pridej na prikaz
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_IDNasledujiciOperaceAutomat') IS NOT NULL)
|
||||||
|
SET @idPrednaOpAutomat = (SELECT _IDNasledujiciOperaceAutomat FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOp)
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_CisloOperace') IS NOT NULL) AND (@idPrednaOpAutomat IS NOT NULL)
|
||||||
|
SELECT @operPrednaOpAutomat = _CisloOperace FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOpAutomat
|
||||||
|
SET @operPrednaOpAutomat = ISNULL(@operPrednaOpAutomat, N'')
|
||||||
|
IF (@operPrednaOpAutomat<>N'')
|
||||||
|
BEGIN
|
||||||
|
SET @idPrP = (SELECT ID FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND Operace=@operPrednaOpAutomat)
|
||||||
|
IF (@idPrP IS NULL)
|
||||||
|
EXEC @idPrP = dbo.hp_NewPozadavek_TabPrPostup @IDPrikaz=@idVPr, @IDPrednastaveni=@idPrednaOpAutomat, @Operace=@operPrednaOpAutomat
|
||||||
|
|
||||||
|
IF (@idPrP IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
-- korekce cisla dokladu
|
||||||
|
SELECT @dokl=Doklad FROM dbo.TabPrPostup WHERE ID=@idPrP
|
||||||
|
IF (@dokl>@doklOdv)
|
||||||
|
BEGIN
|
||||||
|
SET @doklNew = 1 + ISNULL( (SELECT MAX(Doklad) FROM dbo.TabPrPostup
|
||||||
|
WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND Doklad<@doklOdv AND ID<>@idPrP), 0)
|
||||||
|
IF (@doklNew IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo.TabPrPostup SET Doklad=@doklNew WHERE ID=@idPrP AND Operace=@operPrednaOpAutomat
|
||||||
|
SET @dokl = @doklNew
|
||||||
|
END
|
||||||
|
END -- @dokl>@doklOdv
|
||||||
|
END -- @idPrP IS NOT NULL
|
||||||
|
END -- @operPrednaOpAutomat<>N''
|
||||||
|
|
||||||
|
|
||||||
|
END -- idVPr IS NOT NULL
|
||||||
|
|
||||||
|
IF (@errMsg<>N'')
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=N'CHYBA: ' + @errMsg WHERE ID=@idJson
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), IDEvidRozpOp=@idEvidROp WHERE ID=@idJson
|
||||||
|
END -- akce Start
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@akce=N'stop')
|
||||||
|
BEGIN
|
||||||
|
SET @errMsg = N''
|
||||||
|
|
||||||
|
SELECT @idVPr = JSON_VALUE(d2.prikaz, '$.id'), @trida = JSON_VALUE(d2.prikaz, '$.class'),
|
||||||
|
@idPrednaOp = JSON_VALUE(d3.operace, '$.id'), @statusOp = JSON_VALUE(d3.operace, '$.status'),
|
||||||
|
@datStart = JSON_VALUE(d3.operace, '$.startAt'), @datKonec = JSON_VALUE(d3.operace, '$.stopAt'),
|
||||||
|
@operJson=d3.operace, @typOperJson=JSON_VALUE(d3.operace, '$.typ')
|
||||||
|
FROM #TabJSONData d
|
||||||
|
CROSS APPLY OPENJSON(d.doc, '$')
|
||||||
|
WITH ([prikaz] NVARCHAR(max) AS JSON) AS d2
|
||||||
|
CROSS APPLY OPENJSON(d.doc, '$')
|
||||||
|
WITH ([operace] NVARCHAR(max) AS JSON) AS d3
|
||||||
|
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabPrikaz WHERE ID=@idVPr AND StavPrikazu<>30)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'Vyrobni prikaz neni ve stavu Zadano' WHERE ID=@idJson
|
||||||
|
CONTINUE
|
||||||
|
END
|
||||||
|
|
||||||
|
SELECT @ksZive=p.kusy_zive, @sklProVydej=rp.VydejMatPol_SkladProGenHlavDZ
|
||||||
|
FROM dbo.TabPrikaz p INNER JOIN dbo.TabRadyPrikazu rp ON (rp.Rada=p.Rada) WHERE p.ID=@idVPr
|
||||||
|
|
||||||
|
IF (@datKonec<=@datStart)
|
||||||
|
SET @datKonec = DATEADD(s, 1, @datStart)
|
||||||
|
|
||||||
|
IF (@idVPr IS NOT NULL) AND (@operJson IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idDilec = IDTabKmen FROM dbo.TabPrikaz WHERE ID=@idVPr
|
||||||
|
SET @idPrP = NULL
|
||||||
|
SET @operPredna = N''
|
||||||
|
SET @idPrednaOpAutomat = NULL
|
||||||
|
SET @operPrednaOpAutomat = N''
|
||||||
|
|
||||||
|
IF (@typOperJson=N'prikaz')
|
||||||
|
BEGIN
|
||||||
|
SET @operPredna = CONVERT(nvarchar, @idPrednaOp)
|
||||||
|
SET @idPrednaOp = (SELECT TOP(1) ID FROM dbo.TabPredna_EXT WHERE _CIsloOperace=@operPredna)
|
||||||
|
SET @typOperJson=N'prednastavena'
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (@idPrednaOp IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_CisloOperace') IS NOT NULL) AND (@idPrednaOp IS NOT NULL)
|
||||||
|
SET @operPredna = (SELECT _CisloOperace FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOp)
|
||||||
|
SET @operPredna = ISNULL(@operPredna, N'')
|
||||||
|
IF (@operPredna=N'')
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'Nebylo nalezeno cislo operace Prednastaveni' WHERE ID=@idJson
|
||||||
|
CONTINUE
|
||||||
|
END
|
||||||
|
|
||||||
|
-- zjisti vyrobni cislo
|
||||||
|
SET @idVCPrik = NULL
|
||||||
|
IF 1=ISNULL( (SELECT COUNT(ID) FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@idVPr), 0)
|
||||||
|
SET @idVCPrik = (SELECT TOP(1) ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@idVPr)
|
||||||
|
|
||||||
|
-- zjisti operaci automatu
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_IDNasledujiciOperaceAutomat') IS NOT NULL)
|
||||||
|
SET @idPrednaOpAutomat = (SELECT _IDNasledujiciOperaceAutomat FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOp)
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPredna_EXT', N'_CisloOperace') IS NOT NULL) AND (@idPrednaOpAutomat IS NOT NULL)
|
||||||
|
SELECT @operPrednaOpAutomat = _CisloOperace FROM dbo.TabPredna_EXT WHERE ID=@idPrednaOpAutomat
|
||||||
|
SET @operPrednaOpAutomat = ISNULL(@operPrednaOpAutomat, N'')
|
||||||
|
SET @casSekOperPredaAutomat = ISNULL( (SELECT TAC_Obsluhy_J_S FROM dbo.TabPredna WHERE ID=@idPrednaOpAutomat), 0)
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikaz WHERE ID=@idVPr AND StavPrikazu IN (20,30,40) AND BlokovaniEditoru IS NULL)
|
||||||
|
AND EXISTS(SELECT 1 FROM dbo.TabPredna WHERE ID=@idPrednaOp AND BlokovaniEditoru IS NULL)
|
||||||
|
SELECT @typOper=Typ, @nazevOp=nazev, @idPrac=IDpracoviste, @idStroj=IDStroje, @idKoop=IDkooperace
|
||||||
|
FROM dbo.TabPredna WHERE ID=@idPrednaOp
|
||||||
|
END
|
||||||
|
|
||||||
|
SET @idPrP = (SELECT TOP(1) ID FROM dbo.TabPrPostup WHERE priorita=0 AND IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND typ=@typOper AND operace=@operPredna)
|
||||||
|
/*
|
||||||
|
SET @idPrP = (SELECT TOP(1) ID FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND typ=@typOper AND nazev=@nazevOp
|
||||||
|
AND ISNULL(pracoviste,0)=ISNULL(@idPrac,0) AND ISNULL(IDkooperace,0)=ISNULL(@idKoop,0) AND ISNULL(IDStroje,0)=ISNULL(@idStroj,0))
|
||||||
|
*/
|
||||||
|
SELECT @jeOdvadeci=Odvadeci, @dokl=Doklad, @alt=Alt FROM dbo.TabPrPostup WHERE ID=@idPrP
|
||||||
|
SET @ksEvid = ISNULL( (SELECT SUM(kusy_odv+kusy_zmet_opr+kusy_zmet_neopr) FROM dbo.TabPrikazMzdyAZmetky
|
||||||
|
WHERE IDPrikaz=@idVPr AND DokladPrPostup=@dokl AND AltPrPostup=@alt), 0)
|
||||||
|
-- muzu jeste odvest kusy ?
|
||||||
|
IF (@jeOdvadeci=1) AND (@ksEvid>=@ksZive)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'Nelze evidovat, uz je vse odvedeno' WHERE ID=@idJson
|
||||||
|
CONTINUE
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
SET @idMzdy = NULL
|
||||||
|
SET @iChyba = -1
|
||||||
|
SET @idEvidROp = (SELECT TOP(1) h.ID FROM dbo.TabEvidRozpracOperR r INNER JOIN dbo.TabEvidRozpracOper h ON (h.ID=r.IDEvidRozpracOper)
|
||||||
|
WHERE h.IDZamestnance=@idZam AND h.CasUkonceni IS NULL AND r.DokladPrPostup=@dokl AND r.AltPrPostup=@alt AND r.IDPrikaz=@idVPr)
|
||||||
|
IF (@idEvidROp IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idPracOld=IDPracoviste FROM dbo.TabEvidRozpracOper WHERE ID=@idEvidROp
|
||||||
|
SET @skCasSek = DATEDIFF(s, @datStart, @datKonec)
|
||||||
|
UPDATE dbo.TabEvidRozpracOperR SET Mnoz_odv=CASE WHEN (@jeOdvadeci=1) THEN 1 ELSE 0 END,
|
||||||
|
Sk_cas=CASE Sk_Cas_T WHEN 0 THEN @skCasSek WHEN 1 THEN (@skCasSek/60.0) WHEN 2 THEN (@skCasSek/3600.0) END,
|
||||||
|
Sk_cas_Obsluhy=CASE Sk_Cas_Obsluhy_T WHEN 0 THEN @skCasSek WHEN 1 THEN (@skCasSek/60.0) WHEN 2 THEN (@skCasSek/3600.0) END
|
||||||
|
WHERE IDEvidRozpracOper=@idEvidROp
|
||||||
|
UPDATE dbo.TabEvidRozpracOper SET CasUkonceni=@datKonec, CelkovyCas_T=0, CelkovyCas=DATEDIFF(s, @datStart, @datKonec) WHERE ID=@idEvidROp
|
||||||
|
EXEC dbo.hp_EvidRozpracOper_AktualizaceCasuOper @IDEvidRozpracOper=@idEvidROp, @CelkovyCas_S=@skCasSek, @KVO=1
|
||||||
|
|
||||||
|
SET @idEvidROpPol = (SELECT TOP(1) ID FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@idEvidROp AND IDPrikaz=@idVPr AND DokladPrPostup=@dokl AND AltPrPostup=@alt)
|
||||||
|
EXEC @idMzdy = dbo.hp_EvidenceOperace @IDEvidRozpracOperR=@idEvidROpPol, @Stav=0
|
||||||
|
UPDATE dbo.TabEvidRozpracOper SET DatumUzavreni=GETDATE(), AutorUzavreni=SUSER_SNAME() WHERE ID=@idEvidROp
|
||||||
|
|
||||||
|
IF (@idMzdy IS NOT NULL) AND (@idPracOld IS NOT NULL)
|
||||||
|
EXEC dbo.hp_ZmenaStavuMezdAZmetku @ID=@idMzdy, @Stav=1, @ZapisZmenu=0
|
||||||
|
END -- @idEvidROp IS NOT NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idMzdy IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo.TabPrikazMzdyAZmetky SET Datum=CONVERT(datetime, CONVERT(int, CONVERT(float, @datStart))) WHERE ID=@idMZdy
|
||||||
|
|
||||||
|
SELECT @datKonecOp = DatumUkonceniOp FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@idMzdy
|
||||||
|
|
||||||
|
-- zkus zaevidovat operaci automatu
|
||||||
|
IF (@operPrednaOpAutomat<>N'')
|
||||||
|
BEGIN
|
||||||
|
-- pouzij cas ukonceni predchozi operace
|
||||||
|
SET @datStart = DATEADD(second, 1, @datKonecOp)
|
||||||
|
SET @datKonec = DATEADD(second, @casSekOperPredaAutomat, @datStart)
|
||||||
|
|
||||||
|
SELECT @doklAutomat=Doklad, @altAutomat=Alt FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND IDOdchylkyDo IS NULL AND Operace=@operPrednaOpAutomat
|
||||||
|
IF (@doklAutomat IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @idMzdyAutomat = NULL
|
||||||
|
EXEC @idMzdyAutomat = dbo.hp_EvidenceOperace @IDPrikaz=@idVPr, @Doklad=@doklAutomat, @Alt=@altAutomat, @Datum=@datStart, @IDVyrCis=@idVCPrik,
|
||||||
|
@Sk_Cas_S=@casSekOperPredaAutomat, @Sk_Cas_Obsluhy_S=0, @IDZam=@idZam,
|
||||||
|
@DatumZahajeniOp=@datStart, @DatumUkonceniOp=@datKonec
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
-- generuj vydejku materialu
|
||||||
|
SET @sz = NULL
|
||||||
|
DELETE FROM #TabJSONData
|
||||||
|
INSERT #TabJSONData (doc) SELECT @operJson
|
||||||
|
DECLARE m CURSOR LOCAL FOR
|
||||||
|
SELECT m.skupina, m.regcis, m.quantity
|
||||||
|
FROM #TabJSONData d
|
||||||
|
CROSS APPLY OPENJSON(d.doc, N'$.material')
|
||||||
|
WITH (skupina NVARCHAR(3), regcis NVARCHAR(30), quantity NUMERIC(19,6)) AS m
|
||||||
|
OPEN m
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM m INTO @sz, @rc, @mnoz
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
|
||||||
|
IF (@idKZ IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo.TabKmenZbozi SET Material=1 WHERE ID=@idKZ AND Dilec=0 AND Material=0
|
||||||
|
SET @idPrKVazby=(SELECT TOP(1) ID FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idVPr
|
||||||
|
AND vyssi=@idDilec AND nizsi=@idKZ ORDER BY Prednastaveno DESC)
|
||||||
|
IF (@idPrKVazby IS NULL)
|
||||||
|
EXEC @idPrKVazby = dbo.hp_NewPozadavek_TabPrKVazby @IDPrikaz=@idVPr, @IDKmenZbozi=@idKZ, @Mnozstvi=@mnoz
|
||||||
|
SET @dokl = NULL
|
||||||
|
IF (@idPrKVazby IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @dokl=Doklad FROM dbo.TabPrKVazby WHERE ID=@idPrKVazby
|
||||||
|
SELECT @mnozstviPomer_A=(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr), @mnozstviPomer_B=PrP.kusy_zad
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ
|
||||||
|
INNER JOIN dbo.TabPrPostup PrP ON (PrP.IDPrikaz=MZ.IDPrikaz AND PrP.Doklad=MZ.DokladPrPostup AND PrP.Alt=MZ.AltPrPostup AND PrP.IDOdchylkyDo IS NULL)
|
||||||
|
WHERE MZ.ID=@idMzdy
|
||||||
|
INSERT INTO #HDCTabPrKVazbyGenPredna (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko,
|
||||||
|
IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi,
|
||||||
|
DavkaTPV, pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka)
|
||||||
|
SELECT PrKV.ID, @mnoz, @mnozstviPomer_A, @mnozstviPomer_B, PrKV.Doklad, PrKV.IDPrikaz,
|
||||||
|
PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne, PrKV.Mnoz_skut_realizovane,
|
||||||
|
PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace,
|
||||||
|
PrKV.FixniMnozstvi, PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
WHERE PrKV.ID=@idPrKVazby AND PrKV.uzavreno=0
|
||||||
|
SET @idGenVydejPrednaPol = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
-- pokud neni prednastaveny sklad pro vydej, zkus to z rady prikazu
|
||||||
|
UPDATE #HDCTabPrKVazbyGenPredna SET Sklad=@sklProVydej WHERE ID=@idGenVydejPrednaPol AND Sklad IS NULL AND @sklProVydej IS NOT NULL
|
||||||
|
|
||||||
|
IF (@dokl IS NOT NULL)
|
||||||
|
INSERT INTO #HDCTabPrKVazbyGen_IDMzdyPredna (IDPrikaz, Doklad, IDMzdy) SELECT @idVPr, @dokl, @idMzdy
|
||||||
|
END -- idPrKVazby IS NOT NULL
|
||||||
|
END -- idKZ
|
||||||
|
END
|
||||||
|
CLOSE m
|
||||||
|
DEALLOCATE m
|
||||||
|
|
||||||
|
SET @debugXML = (SELECT * FROM #HDCTabPrKVazbyGenPredna FOR XML AUTO)
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idMzdy IS NOT NULL) AND (@sz IS NOT NULL) -- pokud prosel loopem na materialy, sz nemuze byt null
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_GenVydejZeMzdy', N'P') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
SET @idDZ = NULL
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @iChyba = dbo.ep_Vyroba_GenVydejZeMzdy @IDMzdy=@idMzdy, @IDDoklad=@idDZ OUT, @errMsg=@errMsg OUT, @realizujVydej=1
|
||||||
|
IF (@errMsg<>N'')
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET BLokovaniEditoru=NULL WHERE ID=@idDZ
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
-- pokud je odvadeci, generuj odvod na sklad
|
||||||
|
IF (@idMzdy IS NOT NULL) AND (@jeOdvadeci=1)
|
||||||
|
BEGIN
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_GenOdvodZeMzdy', N'P') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
SET @idDZ = NULL
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @iChyba = dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzdy, @bezVyrCis=0, @errMsg=@errMsg OUT, @realizujPrijem=1, @IDDoklad=@idDZ OUT
|
||||||
|
IF (@errMsg<>N'')
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET BLokovaniEditoru=NULL WHERE ID=@idDZ
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
END -- idMzdy IS NOT NULL
|
||||||
|
END -- idVPr IS NOT NULL AND operJson IS NOT NULL
|
||||||
|
|
||||||
|
SET @errMsg = ISNULL(@errMsg,N'')
|
||||||
|
IF (@errMsg<>N'')
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=N'CHYBA: ' + @errMsg WHERE ID=@idJson
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), IDMzda=@idMzdy WHERE ID=@idJson
|
||||||
|
END -- akce Stop
|
||||||
|
|
||||||
|
END -- objekt Operace AND idZam IS NOT NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
SET @errProc = ERROR_PROCEDURE()
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), PosledniChyba=N'CHYBA: ' + @errMsg WHERE ID=@idJson
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE j
|
||||||
|
DEALLOCATE j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni
|
||||||
|
DROP TABLE IF EXISTS #HDCTabPrKVazbyGenPredna
|
||||||
|
DROP TABLE IF EXISTS #TabJSONData
|
||||||
223
_custom/INCOSystems/sql/ep_Vyroba_GenOdvodZeMzdy.sql
Normal file
223
_custom/INCOSystems/sql/ep_Vyroba_GenOdvodZeMzdy.sql
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||||
|
@IDMzdy INT,
|
||||||
|
@bezVyrCis BIT=1,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT,
|
||||||
|
@realizujPrijem BIT=0,
|
||||||
|
@IDDoklad INT=NULL OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu sluzby HDCAPI !!
|
||||||
|
-- konfiguraci lze ovlivnit pres tabulku #HDCTabGenOdvodZeMzdyKonfig
|
||||||
|
-- pozor, v tom pripade musi byt na rade prikazu sklad pro generovani odvodu roven NULL
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@ret integer,
|
||||||
|
@bChyba BIT,
|
||||||
|
@idUziv INT,
|
||||||
|
@idDZ INT,
|
||||||
|
@IDPrikaz INT,
|
||||||
|
@IDKmen INT,
|
||||||
|
@NekontrolMnozOdvedFinal bit=0,
|
||||||
|
@mnozstvi numeric(19,6)=0,
|
||||||
|
@radaOdvNaSklad NVARCHAR(3)=NULL,
|
||||||
|
@sklProOdvod NVARCHAR(30)=NULL,
|
||||||
|
@radaVPr NVARCHAR(10)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||||
|
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||||
|
SET @idUziv = ISNULL(@idUziv, 0)
|
||||||
|
|
||||||
|
|
||||||
|
-- CREATE TABLE #HDCTabGenOdvodZeMzdyKonfig (RadaOdvodNaSklad NVARCHAR(3), SkladProOdvod NVARCHAR(30), BezVyrobnichCisel BIT=0, IDUziv INT)
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabGenOdvodZeMzdyKonfig', N'U') IS NOT NULL
|
||||||
|
SELECT TOP(1) @radaOdvNaSklad=RadaOdvodNaSklad, @sklProOdvod=SkladProOdvod, @bezVyrCis=ISNULL(BezVyrobnichCisel,@bezVyrCis),
|
||||||
|
@idUziv=ISNULL(IDUziv, @idUziv)
|
||||||
|
FROM #HDCTabGenOdvodZeMzdyKonfig
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabOdved
|
||||||
|
CREATE TABLE #TabOdved (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
IDDilec INT NOT NULL,
|
||||||
|
IDZakazModif INT NULL,
|
||||||
|
IDZakazka INT NULL,
|
||||||
|
maxMnozstvi NUMERIC(19,6) NULL,
|
||||||
|
mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
EvidJednotka NUMERIC(19,6) NOT NULL,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
KodUmisteni NVARCHAR(15) NULL,
|
||||||
|
IDPohZbo INT NULL,
|
||||||
|
PomVnoreni INT NULL,
|
||||||
|
StavPrikazu TINYINT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabOdved_IDMzdy
|
||||||
|
CREATE TABLE #TabOdved_IDMzdy (IDPrikaz int, IDMzdy int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabVyrCisProGenOdv
|
||||||
|
CREATE TABLE #TabVyrCisProGenOdv (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDOdvedeni INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
VyrCislo NVARCHAR(100) NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
MaxMnozstvi NUMERIC(19,6) NULL,
|
||||||
|
IDVyrCP INT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPolotovProGenOdv
|
||||||
|
CREATE TABLE #TabPolotovProGenOdv (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDOdvedeni INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
Doklad INT NOT NULL,
|
||||||
|
IDDilec INT NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
MaxMnozstvi NUMERIC(19,6) NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabGenPrijem
|
||||||
|
CREATE TABLE #TabGenPrijem (ID INT NOT NULL, PRIMARY KEY(ID))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabPrikazMzdyAZmetky WHERE GenerovanoOdvadeni=1 AND ID=@IDMzdy)
|
||||||
|
RETURN 0
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @mnozstvi=kusy_odv FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
|
|
||||||
|
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanoOdvadeni=1 WHERE ID=@IDMzdy
|
||||||
|
IF (@@ROWCOUNT=0) RETURN 0
|
||||||
|
IF @mnozstvi<=0.0 RETURN 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @IDPrikaz=IDPrikaz FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
|
SELECT @radaVPr=Rada, @IDKmen=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||||
|
|
||||||
|
-- nastav sklad pro odvod podle karty
|
||||||
|
IF (@sklProOdvod IS NULL)
|
||||||
|
SELECT @sklProOdvod=VychoziSklad FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen
|
||||||
|
|
||||||
|
-- pripadne zkus podle rady prikazu
|
||||||
|
SELECT @radaOdvNaSklad=CASE WHEN RadaDokl_OdvedeniPrikazu IS NULL THEN @radaOdvNaSklad ELSE RadaDokl_OdvedeniPrikazu END,
|
||||||
|
@sklProOdvod=CASE WHEN PrijemVyrDil_SkladProGenHlavDZ IS NULL THEN @sklProOdvod ELSE PrijemVyrDil_SkladProGenHlavDZ END
|
||||||
|
FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnozstvi>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnozstvi END WHERE IDPrikaz=@IDPrikaz
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
INSERT INTO #tabOdved (IDPrikaz, IDDilec, IDZakazModif, IDZakazka, maxMnozstvi, EvidJednotka, mnozstvi, sklad, StavPrikazu)
|
||||||
|
SELECT P.ID,
|
||||||
|
CASE WHEN ISNULL(ParKZ.OdvadetNaZaklVari,0)=0 THEN P.IDTabKmen ELSE KZ.IDKusovnik END,
|
||||||
|
ZMD.IDZakazModif,
|
||||||
|
P.IDZakazka,
|
||||||
|
CASE WHEN @NekontrolMnozOdvedFinal=1 THEN NULL ELSE P.kusy_zive END,
|
||||||
|
P.EvidJednotka,
|
||||||
|
CASE WHEN @NekontrolMnozOdvedFinal=0 AND @mnozstvi>P.kusy_zive THEN P.kusy_zive ELSE @mnozstvi END,
|
||||||
|
P.sklad,
|
||||||
|
P.StavPrikazu
|
||||||
|
FROM dbo.TabPrikaz P
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=P.IDTabKmen)
|
||||||
|
LEFT OUTER JOIN dbo.TabZakazModifDilce ZMD ON (ZMD.IDZakazModif=P.IDZakazModif AND ZMD.IDKmenZbozi=KZ.ID)
|
||||||
|
LEFT OUTER JOIN dbo.TabParKmZ ParKZ ON (ParKZ.IDKmenZbozi=P.IDTabKmen)
|
||||||
|
WHERE P.ID=@IDPrikaz AND
|
||||||
|
(CASE WHEN @NekontrolMnozOdvedFinal=0 AND @mnozstvi>P.kusy_zive THEN P.kusy_zive ELSE @mnozstvi END)>0
|
||||||
|
INSERT INTO #TabOdved_IDMzdy (IDPrikaz, IDMzdy) VALUES (@IDPrikaz, @IDMzdy)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE O SET maxMnozstvi=CASE WHEN RP.NekontrolMnozOdvedFinal=1 THEN NULL ELSE P.kusy_zive END
|
||||||
|
FROM #tabOdved O
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=O.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
|
||||||
|
UPDATE #tabOdved SET mnozstvi=maxMnozstvi WHERE maxMnozstvi IS NOT NULL AND mnozstvi>maxMnozstvi
|
||||||
|
DELETE #TabVyrCisProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||||
|
DELETE #TabPolotovProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||||
|
DELETE #tabOdved WHERE Mnozstvi<=0.0
|
||||||
|
|
||||||
|
|
||||||
|
EXEC dbo.hp_PrednabidniTabVyrCisProGenOdv @ProIDPrikaz=NULL
|
||||||
|
IF (@bezVyrCis=1)
|
||||||
|
DELETE #TabVyrCisProGenOdv
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @ret=dbo.hp_OdvedeniPrikazu @RadaDokladu=@radaOdvNaSklad, @IDObdobi=NULL, @KonecneOdvedeni=0, @DatPorizeni=NULL, @SekejZakazky=1, @SekejPrikazy=1
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = 'Chyba pri odvadeni: ' + ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@realizujPrijem=1)
|
||||||
|
BEGIN
|
||||||
|
DECLARE
|
||||||
|
@idPrij INT
|
||||||
|
|
||||||
|
DECLARE prij CURSOR LOCAL FOR
|
||||||
|
SELECT ID FROM #TabGenPrijem
|
||||||
|
OPEN prij
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM prij INTO @idPrij
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE prij
|
||||||
|
DEALLOCATE prij
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @IDDoklad = NULL
|
||||||
|
IF (1=(SELECT COUNT(*) FROM #TabGenPrijem))
|
||||||
|
SET @IDDoklad=(SELECT TOP(1) ID FROM #TabGenPrijem)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni
|
||||||
|
DROP TABLE IF EXISTS #TabGenPrijem
|
||||||
|
DROP TABLE IF EXISTS #TabPolotovProGenOdv
|
||||||
|
DROP TABLE IF EXISTS #TabVyrCisProGenOdv
|
||||||
|
DROP TABLE IF EXISTS #TabOdved_IDMzdy
|
||||||
|
DROP TABLE IF EXISTS #TabOdved
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #HDCTabGenOdvodZeMzdyKonfig
|
||||||
309
_custom/INCOSystems/sql/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
309
_custom/INCOSystems/sql/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
@ -0,0 +1,309 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenVydejZeMzdy
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenVydejZeMzdy
|
||||||
|
@IDMzdy INT,
|
||||||
|
@IDDoklad INT=NULL OUT,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT,
|
||||||
|
@extTab NVARCHAR(50)=NULL,
|
||||||
|
@vydejAll BIT=0,
|
||||||
|
@realizujVydej BIT=0
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri Windows sluzby HDCDZApi !!
|
||||||
|
-- @extTab - tabulka, do ktere budou vraceny pohyby vydejky @extTab (ID INT NOT NULL, IDPohZbo INT NOT NULL)
|
||||||
|
-- @vydejAll - bude vydano vse, nejen kde jde splnena podminka TabPrKVazby - dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad
|
||||||
|
-- pokud existuje objekt #HDCTabPrKVazbyGenPredna, jedu vydej podle nej
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@bChyba BIT,
|
||||||
|
@retVal INT=0,
|
||||||
|
@errID int,
|
||||||
|
@sql NVARCHAR(1000),
|
||||||
|
@idUziv INT=0
|
||||||
|
|
||||||
|
DECLARE @vydejky TABLE (ID INT NOT NULL)
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||||
|
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||||
|
SET @idUziv = ISNULL(@idUziv, 0)
|
||||||
|
|
||||||
|
|
||||||
|
DELETE FROM @vydejky
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
||||||
|
BEGIN
|
||||||
|
SELECT @retVal=MAX(ID) FROM dbo.TabPrikazMzdyAZmetky
|
||||||
|
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, @retVal)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, 1)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||||
|
CREATE TABLE #TabPrKVazbyGen (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
Generuj BIT NOT NULL DEFAULT 1,
|
||||||
|
PoKorekciDat BIT NOT NULL DEFAULT 0,
|
||||||
|
IDPrKV INT NOT NULL,
|
||||||
|
Doklad INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
Prednastaveno BIT NOT NULL DEFAULT 1,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
VyrStredisko NVARCHAR(30) NULL,
|
||||||
|
IDPracoviste INT NULL,
|
||||||
|
mnoz_zad NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_nepotrebne NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_skut_realizovane NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_real NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
MnozstviMax NUMERIC(19,6) NULL,
|
||||||
|
PuvodniMnozstviPoz NUMERIC(19,6) NULL,
|
||||||
|
MnozstviPoz NUMERIC(19,6) NOT NULL,
|
||||||
|
PomMnozPoz NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
IDPohZbo INT NULL,
|
||||||
|
PoznamkaNaDoklad NTEXT NULL,
|
||||||
|
priorita INT NOT NULL DEFAULT 0,
|
||||||
|
vyssi INT NOT NULL,
|
||||||
|
nizsi INT NOT NULL,
|
||||||
|
DavkaTPV NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
pozice NVARCHAR(100) NULL DEFAULT N'',
|
||||||
|
Operace NCHAR(4) NULL,
|
||||||
|
FixniMnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
ProcZtrat NUMERIC(5,2) NOT NULL DEFAULT 0,
|
||||||
|
mnozstviSeZtratou NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Prirez NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
Poznamka NTEXT NULL,
|
||||||
|
pom_pomer_A NUMERIC(19,6) NULL,
|
||||||
|
pom_pomer_B NUMERIC(19,6) NULL,
|
||||||
|
Dodavatel INT NULL,
|
||||||
|
mnoz_pozadovane AS (CONVERT(numeric(19,6),(CASE WHEN [mnoz_nepotrebne]>[mnoz_zad] THEN 0.0 ELSE [mnoz_zad] - [mnoz_nepotrebne] END))),
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||||
|
CREATE TABLE #TabPrKVazbyGen_IDMzdy (IDPrikaz int, Doklad int, IDMzdy int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||||
|
CREATE TABLE #TabPrKVazbyGenVC(
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDPolozky INT NOT NULL,
|
||||||
|
VyrCislo NVARCHAR(100) NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
IDKmenZbozi INT NULL,
|
||||||
|
IDVyrCP INT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@RespektovatExistEvid bit=0,
|
||||||
|
@IDPrikaz int=NULL,
|
||||||
|
@dilec INT,
|
||||||
|
@IDPrPostup INT=NULL,
|
||||||
|
@mnozstviPomer_A numeric(19,6),
|
||||||
|
@mnozstviPomer_B numeric(19,6),
|
||||||
|
@IDPrKV int,
|
||||||
|
@mnoz_zad numeric(19,6),
|
||||||
|
@PrKVDoklad int,
|
||||||
|
@PocetVazeb int,
|
||||||
|
@PrP_Doklad int,
|
||||||
|
@skladProVydejKZ NVARCHAR(30)
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @errID=NULL, @errMsg='', @PocetVazeb=0
|
||||||
|
SELECT @IDPrikaz=MZ.IDPrikaz, @mnozstviPomer_A=(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr), @mnozstviPomer_B=PrP.kusy_zad, @PrP_Doklad=PrP.Doklad,
|
||||||
|
@IDPrPostup=PrP.ID
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ
|
||||||
|
INNER JOIN dbo.TabPrPostup PrP ON (PrP.IDPrikaz=MZ.IDPrikaz AND PrP.Doklad=MZ.DokladPrPostup AND PrP.Alt=MZ.AltPrPostup AND PrP.IDOdchylkyDo IS NULL)
|
||||||
|
WHERE MZ.ID=@IDMzdy
|
||||||
|
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanaMatVydejka=1 WHERE ID=@IDMzdy
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
RETURN 0
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @dilec=IDTabKmen FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||||
|
IF OBJECT_ID('dbo.TabKmenZbozi_EXT', 'U') IS NOT NULL
|
||||||
|
IF COL_LENGTH('dbo.TabKmenZbozi_EXT', '_SkladProVydejMat') IS NOT NULL
|
||||||
|
SET @skladProVydejKZ = (SELECT _SkladProVydejMat FROM dbo.TabKmenZbozi_EXT WHERE ID=@dilec)
|
||||||
|
SET @skladProVydejKZ = ISNULL(@skladProVydejKZ, N'')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGenPredna', N'U') IS NULL
|
||||||
|
BEGIN
|
||||||
|
IF (@mnozstviPomer_A<=0.0)
|
||||||
|
RETURN -1
|
||||||
|
|
||||||
|
IF (@vydejAll=1)
|
||||||
|
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||||
|
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||||
|
PrKV.IDPrikaz=@IDPrikaz AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||||
|
ELSE
|
||||||
|
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||||
|
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||||
|
PrKV.IDPrikaz=@IDPrikaz AND dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||||
|
OPEN crPom1334
|
||||||
|
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||||
|
WHILE @@fetch_status=0
|
||||||
|
BEGIN
|
||||||
|
UPDATE #TabPrKVazbyGen SET MnozstviPoz=@mnoz_zad * (pom_pomer_A+@mnozstviPomer_A)/pom_pomer_B, pom_pomer_A=pom_pomer_A+@mnozstviPomer_A
|
||||||
|
WHERE IDPrKV=@IDPrKV
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
BEGIN
|
||||||
|
IF @RespektovatExistEvid=1
|
||||||
|
SELECT @mnozstviPomer_A=SUM(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr)
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ WHERE MZ.IDPrikaz=@IDPrikaz AND MZ.DokladPrPostup=@PrP_Doklad AND MZ.GenerovanaMatVydejka=1
|
||||||
|
INSERT INTO #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad,
|
||||||
|
Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,
|
||||||
|
mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka)
|
||||||
|
SELECT PrKV.ID,
|
||||||
|
PrKV.mnoz_zad * @mnozstviPomer_A/@mnozstviPomer_B,
|
||||||
|
@mnozstviPomer_A, @mnozstviPomer_B,
|
||||||
|
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne,
|
||||||
|
PrKV.Mnoz_skut_realizovane, PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||||
|
PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
WHERE PrKV.ID=@IDPrKV
|
||||||
|
END
|
||||||
|
INSERT INTO #TabPrKVazbyGen_IDMzdy (IDPrikaz, Doklad, IDMzdy) VALUES (@IDPrikaz, @PrKVDoklad, @IDMzdy)
|
||||||
|
SET @PocetVazeb=@PocetVazeb + 1
|
||||||
|
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||||
|
END
|
||||||
|
CLOSE crPom1334
|
||||||
|
DEALLOCATE crPom1334
|
||||||
|
|
||||||
|
IF (@PocetVazeb<=0)
|
||||||
|
RETURN -2
|
||||||
|
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN -- pokud mam seznam na co vygenerovat vydejku, jedu podle nej
|
||||||
|
DELETE FROM #TabPrKVazbyGen
|
||||||
|
INSERT INTO #TabPrKVazbyGen
|
||||||
|
SELECT Generuj, PoKorekciDat, IDPrKV, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,
|
||||||
|
Cena_real, Mnoz_odv, Cena_odv, MnozstviMax, PuvodniMnozstviPoz, MnozstviPoz, PomMnozPoz, IDPohZbo, PoznamkaNaDoklad, priorita, vyssi, nizsi, DavkaTPV,
|
||||||
|
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, pom_pomer_A, pom_pomer_B, Dodavatel
|
||||||
|
FROM #HDCTabPrKVazbyGenPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
-- preddefinovana mzda pro provazani
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGen_IDMzdyPredna', N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM #TabPrKVazbyGen_IDMzdy
|
||||||
|
INSERT INTO #TabPrKVazbyGen_IDMzdy
|
||||||
|
SELECT IDPrikaz, Doklad, IDMzdy FROM #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
-- preddefinvana tabulka vyrobnich cisel
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGenVCPredna', N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM #TabPrKVazbyGenVC
|
||||||
|
INSERT INTO #TabPrKVazbyGenVC
|
||||||
|
SELECT IDPolozky, VyrCislo, Mnozstvi, Sklad, IDKmenZbozi, IDVyrCP FROM #HDCTabPrKVazbyGenVCPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
-- ext info k dilci, sklad, ze kterho se ma vydavat material
|
||||||
|
IF (@skladProVydejKZ<>N'')
|
||||||
|
UPDATE #TabPrKVazbyGen SET Sklad=@skladProVydejKZ
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EXEC dbo.hp_AktualizaceTabPrKVazbyGenVC @Vratka=0
|
||||||
|
UPDATE #TabPrKVazbyGen SET Generuj=1
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||||
|
CREATE TABLE #TabGenRezVyd (ID int NOT NULL, PRIMARY KEY (ID))
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @retVal=dbo.hp_generujRezVyd @RadaDokladu=NULL, @DruhPohybuZbo=NULL, @IDObdobi=0, @DatPorizeni=NULL, @SekejZakazky=0, @SekejPrikazy=0,
|
||||||
|
@IDExistDoklad=@IDDoklad, @SekejOperace=0
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = 'Chyba generovani vydeje: ' + ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT @vydejky (ID) SELECT ID FROM #TabGenRezVyd
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idVyd INT,
|
||||||
|
@idKZ INT,
|
||||||
|
@idPZ INT
|
||||||
|
|
||||||
|
IF (@realizujVydej=1)
|
||||||
|
BEGIN
|
||||||
|
DECLARE vyd CURSOR LOCAL FOR
|
||||||
|
SELECT ID FROM #TabGenRezVyd
|
||||||
|
OPEN vyd
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM vyd INTO @idVyd
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
CLOSE vyd
|
||||||
|
DEALLOCATE vyd
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (1=(SELECT COUNT(*) FROM @vydejky))
|
||||||
|
SET @IDDoklad=(SELECT TOP(1) ID FROM @vydejky)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@extTab IS NOT NULL) AND EXISTS(SELECT 1 FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL)
|
||||||
|
IF OBJECT_ID(@extTab, N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
SET @sql = N'DELETE FROM ' + @extTab
|
||||||
|
EXECUTE sp_executesql @sql
|
||||||
|
SET @sql = N'INSERT ' + @extTab + N' (ID, IDPohZbo) SELECT ID, IDPohZbo FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL'
|
||||||
|
EXECUTE sp_executesql @sql
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
-- uklid
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||||
|
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||||
|
|
||||||
|
|
||||||
75
_custom/INCOSystems/sql/ep_Vyroba_InsertEvidRozpracOper.sql
Normal file
75
_custom/INCOSystems/sql/ep_Vyroba_InsertEvidRozpracOper.sql
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
-- dbo.ep_Vyroba_InsertEvidRozpracOper
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOper
|
||||||
|
@IDZamestnance INT=NULL,
|
||||||
|
@IDPracoviste INT=NULL,
|
||||||
|
@IDStroje INT=NULL,
|
||||||
|
@CasZahajeni DATETIME=NULL,
|
||||||
|
@ErrMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idEROp INT=NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabEvidRozpracOper)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idEROp=MAX(ID) FROM dbo.TabEvidRozpracOper
|
||||||
|
DBCC CHECKIDENT(TabEvidRozpracOper, RESEED, @idEROp)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT(TabEvidRozpracOper, RESEED, 1)
|
||||||
|
SET @idEROp=NULL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@IDPracoviste IS NULL) AND (@IDStroje IS NOT NULL)
|
||||||
|
SELECT @IDPracoviste=IDPrac FROM dbo.TabCisStroju WHERE ID=@IDStroje
|
||||||
|
|
||||||
|
IF (@IDZamestnance IS NULL) OR (@IDPracoviste IS NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @ErrMsg = N'Neni zadan zamestnanec nebo pracoviste'
|
||||||
|
RETURN NULL
|
||||||
|
END
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
|
||||||
|
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @CasZahajeni = ISNULL(@CasZahajeni, GETDATE())
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred = @@TRANCOUNT
|
||||||
|
IF (@tranPred=0) BEGIN TRAN
|
||||||
|
|
||||||
|
INSERT dbo.TabEvidRozpracOper (IDZamestnance, CasZahajeni, IDPracoviste, IDStroje)
|
||||||
|
SELECT @IDZamestnance, @CasZahajeni, @IDPracoviste, @IDStroje
|
||||||
|
SET @idEROp = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
-- slepice
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_InsertEvidRozpracOper_Po', N'P') IS NOT NULL
|
||||||
|
EXEC dbo.ep_Vyroba_InsertEvidRozpracOper_Po @idEROp
|
||||||
|
|
||||||
|
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
SET @ErrMsg = ERROR_MESSAGE()
|
||||||
|
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, @ErrMsg
|
||||||
|
SET @idEROp = NULL
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
RETURN @idEROp
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
-- dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
||||||
|
@IdEvidRozpOper INT,
|
||||||
|
@IdPrikaz INT,
|
||||||
|
@doklPrPost INT,
|
||||||
|
@altPrPost NCHAR(1),
|
||||||
|
@IdVyrCis INT=NULL,
|
||||||
|
@mnozOdv NUMERIC(19,6)=0,
|
||||||
|
@skCas NUMERIC(19,6)=0,
|
||||||
|
@skCasT TINYINT=1,
|
||||||
|
@skCasObsl NUMERIC(19,6)=0,
|
||||||
|
@skCasObslT TINYINT=1,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT,
|
||||||
|
@idEROpPol INT=NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
|
||||||
|
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni identity
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabEvidRozpracOperR)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idEROpPol=MAX(ID) FROM dbo.TabEvidRozpracOperR
|
||||||
|
DBCC CHECKIDENT (TabEvidRozpracOperR, RESEED, @idEROpPol)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT (TabEvidRozpracOperR, RESEED, 1)
|
||||||
|
SET @idEROpPol=NULL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred = @@TRANCOUNT
|
||||||
|
IF (@tranPred=0) BEGIN TRAN
|
||||||
|
|
||||||
|
INSERT dbo.TabEvidRozpracOperR (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, IDVyrCis, Mnoz_odv, Sk_cas, Sk_cas_T, Sk_cas_Obsluhy, Sk_cas_Obsluhy_T)
|
||||||
|
SELECT @IdEvidRozpOper, @IdPrikaz, @doklPrPost, @altPrPost, @IdVyrCis, @mnozOdv, @skCas, @skCasT, @skCasObsl, @skCasObslT
|
||||||
|
SET @idEROpPol = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_InsertEvidRozpracOperPol_Po', N'P') IS NOT NULL
|
||||||
|
EXEC dbo.ep_Vyroba_InsertEvidRozpracOperPol_Po @idEROpPol
|
||||||
|
|
||||||
|
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, LEFT(@errMsg,255)
|
||||||
|
SET @idEROpPol = NULL
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
RETURN @idEROpPol
|
||||||
160
_custom/INCOSystems/uCtrlCustom.pas
Normal file
160
_custom/INCOSystems/uCtrlCustom.pas
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
unit uCtrlCustom;
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
MVCframework,
|
||||||
|
MVCframework.Commons,
|
||||||
|
MVCframework.Serializer.Commons,
|
||||||
|
// MVCframework.Serializer.Intf,
|
||||||
|
System.Generics.Collections, // kvuli TDictionary
|
||||||
|
System.RegularExpressions,
|
||||||
|
// JsonDataObjects,
|
||||||
|
uCommons, // kvuli EServiceException
|
||||||
|
uCtrlBase,
|
||||||
|
// uSvc_Base,
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeOObj_Base,
|
||||||
|
uHeOObj_Custom,
|
||||||
|
uSvcCustom,
|
||||||
|
MVCFramework.Swagger.Commons; // kvuli dokumentaci
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
[MVCPath('/inco')]
|
||||||
|
TINCOsysController = class(TBaseController)
|
||||||
|
{
|
||||||
|
strict private
|
||||||
|
FSelfSvc: TINCOSysService;
|
||||||
|
strict protected
|
||||||
|
function GetINCOSysService: TINCOSysService;
|
||||||
|
}
|
||||||
|
public
|
||||||
|
destructor Destroy; override;
|
||||||
|
|
||||||
|
[MVCPath('/zapisjson')] // zapis obecnych json data do Heliosu
|
||||||
|
[MVCHTTPMethod([httpPOST])]
|
||||||
|
[MVCSwagSummary('INCOSystems', 'Z<>pis JSON dat do db Heliosu', 'INCOZapisJSONDoHeliosu')]
|
||||||
|
[MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
|
||||||
|
procedure ZapisJSONDoHeliosu (CTX: TWebContext);
|
||||||
|
|
||||||
|
[MVCPath('/poslednievidence')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('Skupina karet', 'Vrac<61> data skupiny karet dle jej<65>ho k<>du')]
|
||||||
|
[MVCSwagParam(plQuery, 'idprikaz', 'ID vyrobniho prikazu', ptString, false, '1')]
|
||||||
|
procedure PosledniEvidOperacePrikazu ([MVCFromQueryString('idprikaz', '')] sIdPrikaz: 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,
|
||||||
|
Quick.Logger;
|
||||||
|
|
||||||
|
const
|
||||||
|
selSloupce = '';
|
||||||
|
{$I globalConsts.inc}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TINCOSysController }
|
||||||
|
destructor TINCOSysController.Destroy;
|
||||||
|
begin
|
||||||
|
// FSelfSvc.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
function TINCOSysController.GetINCOSysService: TINCOSysService;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if not Assigned(FSelfSvc) then
|
||||||
|
FSelfSvc:= TINCOSysService.Create (datMod);
|
||||||
|
result:= FSelfSvc;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TINCOSysController.ZapisJSONDoHeliosu (CTX: TWebContext);
|
||||||
|
var respData, jsonData: string;
|
||||||
|
// o: System.JSON.TJSONObject;
|
||||||
|
begin
|
||||||
|
respData:= '';
|
||||||
|
try
|
||||||
|
jsonData:= CTX.Request.Body.Trim;
|
||||||
|
if (jsonData<>'') then
|
||||||
|
GetINCOSysService.ZapisJsonDoHeliosu (jsonData, respData);
|
||||||
|
ResponseStatus(HTTP_STATUS.OK, 'OK');
|
||||||
|
Render(respData);
|
||||||
|
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 TINCOSysController.PosledniEvidOperacePrikazu (sIdPrikaz: string='');
|
||||||
|
var idPrikaz: integer;
|
||||||
|
params: TDictionary<string, string>;
|
||||||
|
begin
|
||||||
|
params:= TDictionary<string, string>.Create;
|
||||||
|
|
||||||
|
idPrikaz:= 0;
|
||||||
|
sIdPrikaz:= sanitizeSQLString(sIdPrikaz);
|
||||||
|
if not(TryStrToInt(sIdPrikaz, idPrikaz)) then
|
||||||
|
idPrikaz:= 0;
|
||||||
|
|
||||||
|
if (idPrikaz>0) then
|
||||||
|
params.Add('idPrikaz', idPrikaz.ToString);
|
||||||
|
|
||||||
|
params.Add('jenPosledni', '1');
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetVyrobaEvidenceOperaciService.GetByParams (params)));
|
||||||
|
except
|
||||||
|
{$IFDEF NORENDER400}
|
||||||
|
RenderStatusMessage (200);
|
||||||
|
{$ELSE}
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 200);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
264
_custom/INCOSystems/uHeOObj_Custom.pas
Normal file
264
_custom/INCOSystems/uHeOObj_Custom.pas
Normal file
@ -0,0 +1,264 @@
|
|||||||
|
unit uHeOObj_Custom;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
MVCFramework.ActiveRecord,
|
||||||
|
MVCFramework.Nullables,
|
||||||
|
{$IFDEF SWAGGER}
|
||||||
|
MVCFramework.Swagger.Commons,
|
||||||
|
{$ENDIF}
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDScanData = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDokladSD: integer;
|
||||||
|
FIDZdrojSD: NullableInt32;
|
||||||
|
FIDPolozky: NullableInt32;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FDokladPrKV: NullableInt32;
|
||||||
|
FDokladPrVPV: NullableInt32;
|
||||||
|
FIDPohZbo: NullableInt32;
|
||||||
|
FIDVyrCS_Obj: NullableInt32;
|
||||||
|
FIDInvItem: NullableInt32;
|
||||||
|
FIDPohZbo_New: NullableInt32;
|
||||||
|
FIDKmenZbozi: NullableInt32;
|
||||||
|
FIDStavSkladu: NullableInt32;
|
||||||
|
FVyrCislo: NullableString;
|
||||||
|
FPopisSarze: NullableString;
|
||||||
|
FMnozstvi: Single;
|
||||||
|
FMnozstviEvidence: Single;
|
||||||
|
FMJ: NullableString;
|
||||||
|
FMJEvidence: NullableString;
|
||||||
|
FBarCode: NullableString;
|
||||||
|
FDatumExpirace: NullableTDateTime;
|
||||||
|
FKodBaleni: NullableString;
|
||||||
|
FDatPorizeni: TDateTime;
|
||||||
|
FGenerovat: NullableBoolean;
|
||||||
|
FJedinecneCislo: NullableString;
|
||||||
|
public
|
||||||
|
{
|
||||||
|
[MVCTableField('ID', [foPrimaryKey, foReadOnly])]
|
||||||
|
[MVCColumn('ID')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'ID', 'ID výrobní operace', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property ID: integer read FID write FID;
|
||||||
|
}
|
||||||
|
[MVCColumn('IDDokladSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokladSD', 'ID dokladu SD', true, false)]
|
||||||
|
property IDDokladSD: integer read FIDDokladSD write FIDDokladSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDZdrojSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDZdrojSD', 'ID zdorj SD', false, true)]
|
||||||
|
property IDZdrojSD: NullableInt32 read FIDZdrojSD write FIDZdrojSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDPolozky', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPolozky', 'ID položky', false, true)]
|
||||||
|
property IDPolozky: NullableInt32 read FIDPolozky write FIDPolozky;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('VyrCislo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'VyrCislo', 'Výrobní číslo', true, false, 1, 100)]
|
||||||
|
property VyrCislo: NullableString read FVyrCislo write FVyrCislo;
|
||||||
|
|
||||||
|
[MVCColumn('PopisSarze', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'PopisSarze', 'Popis šarže', true, false, 1, 100)]
|
||||||
|
property PopisSarze: NullableString read FPopisSarze write FPopisSarze;
|
||||||
|
|
||||||
|
[MVCColumn('Mnozstvi')]
|
||||||
|
[MVCSwagJsonSchemaField('Mnozstvi', 'Množství', true, false)]
|
||||||
|
property Mnozstvi: Single read FMnozstvi write FMnozstvi;
|
||||||
|
|
||||||
|
[MVCColumn('MnozstviEvidence')]
|
||||||
|
[MVCSwagJsonSchemaField('MnozstviEvidence', 'Množství v evidenční jednotce', true, false)]
|
||||||
|
property MnozstviEvidence: Single read FMnozstviEvidence write FMnozstviEvidence;
|
||||||
|
|
||||||
|
[MVCColumn('DatumExpirace')]
|
||||||
|
[MVCSwagJsonSchemaField('DatumExpirace', 'Datum expirace', false, true)]
|
||||||
|
property DatumExpirace: NullableTDatetime read FDatumExpirace write FDatumExpirace;
|
||||||
|
|
||||||
|
[MVCColumn('DatPorizeni')]
|
||||||
|
[MVCSwagJsonSchemaField('DatPorizeni', 'Datum pořízení', true, false)]
|
||||||
|
property DatPorizeni: TDatetime read FDatPorizeni write FDatPorizeni;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDZdrojData = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDokladSD: integer;
|
||||||
|
FIDDokZbo: NullableInt32;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FGUIDDokladu: NullableTGUID;
|
||||||
|
public
|
||||||
|
[MVCColumn('IDDokladSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokladSD', 'ID dokladu SD', true, false)]
|
||||||
|
property IDDokladSD: integer read FIDDokladSD write FIDDokladSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'FIDDokZbo', 'ID dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo: NullableInt32 read FIDDokZbo write FIDDokZbo;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('GUIDDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stGuid, 'GUIDDokladu', 'GUID dokladu', false, true)]
|
||||||
|
property GUIDDokladu: NullableTGUID read FGUIDDokladu write FGUIDDokladu;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDDoklad = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FTypDokladu: integer;
|
||||||
|
FPodtypDokladu: NullableInt32;
|
||||||
|
FRadaDokladu: NullableString;
|
||||||
|
FDruhPohybuZbo: NullableInt32;
|
||||||
|
FSklad: NullableString;
|
||||||
|
FSkladCil: NullableString;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FIDDokZbo: NullableInt32;
|
||||||
|
FIDDokZbo_New: NullableInt32;
|
||||||
|
FGUIDDokZbo: NullableTGUID;
|
||||||
|
FGUIDDokZbo_New: NullableTGUID;
|
||||||
|
FIDInvHead: NullableInt32;
|
||||||
|
FIDOrg: NullableInt32;
|
||||||
|
FCisloOrg: NullableInt32;
|
||||||
|
FDatumPripadu: NullableTDateTime;
|
||||||
|
FDatPorizeni: TDateTime;
|
||||||
|
FDatGenerovani: NullableTDateTime;
|
||||||
|
FScanData: TObjectList<TGatemaSDScanData>;
|
||||||
|
procedure SetSDScanData (const Value: TObjectList<TGatemaSDScanData>);
|
||||||
|
public
|
||||||
|
constructor Create; virtual;
|
||||||
|
destructor Destroy; override;
|
||||||
|
{
|
||||||
|
[MVCTableField('ID', [foPrimaryKey, foReadOnly])]
|
||||||
|
[MVCColumn('ID')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'ID', 'ID výrobní operace', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property ID: integer read FID write FID;
|
||||||
|
}
|
||||||
|
[MVCColumn('TypDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'TypDokladu', 'Typ dokladu', true, false)]
|
||||||
|
property TypDokladu: integer read FTypDokladu write FTypDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('PodtypDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'PodtypDokladu', 'Podtyp dokladu', false, true)]
|
||||||
|
property PodtypDokladu: NullableInt32 read FPodtypDokladu write FPodtypDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('RadaDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'RadaDokladu', 'Řada dokladu', false, true)]
|
||||||
|
property RadaDokladu: NullableString read FRadaDokladu write FRadaDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('DruhPohybuZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'DruhPohybuZbo', 'Druh pohybu zboží', false, true)]
|
||||||
|
property DruhPohybuZbo: NullableInt32 read FDruhPohybuZbo write FDruhPohybuZbo;
|
||||||
|
|
||||||
|
[MVCColumn('Sklad', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'Sklad', 'Sklad', false, true)]
|
||||||
|
property Sklad: NullableString read FSklad write FSklad;
|
||||||
|
|
||||||
|
[MVCColumn('SkladCil', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'SkladCil', 'Cílový sklad', false, true)]
|
||||||
|
property SkladCil: NullableString read FSkladCil write FSkladCil;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokZbo', 'ID dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo: NullableInt32 read FIDDokZbo write FIDDokZbo;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo_New', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokZbo_New', 'ID nového dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo_New: NullableInt32 read FIDDokZbo_New write FIDDokZbo_New;
|
||||||
|
|
||||||
|
[MVCColumn('IDInvHead', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDInvHead', 'ID dokladu inventury', false, true)]
|
||||||
|
property IDInvHead: NullableInt32 read FIDInvHead write FIDInvHead;
|
||||||
|
|
||||||
|
[MVCColumn('IDOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDOrg', 'ID organizace', false, true)]
|
||||||
|
property IDOrg: NullableInt32 read FIDOrg write FIDOrg;
|
||||||
|
|
||||||
|
[MVCColumn('CisloOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'CisloOrg', 'Číslo organizace', false, true)]
|
||||||
|
property CisloOrg: NullableInt32 read FCisloOrg write FCisloOrg;
|
||||||
|
|
||||||
|
[MVCColumn('DatumPripadu')]
|
||||||
|
[MVCSwagJsonSchemaField('DatumPripadu', 'Datum případu', false, true)]
|
||||||
|
property DatumPripadu: NullableTDatetime read FDatumPripadu write FDatumPripadu;
|
||||||
|
|
||||||
|
[MVCColumn('DatPorizeni')]
|
||||||
|
[MVCSwagJsonSchemaField('DatPorizeni', 'Datum pořízení', true, false)]
|
||||||
|
property DatPorizeni: TDatetime read FDatPorizeni write FDatPorizeni;
|
||||||
|
|
||||||
|
[MVCColumn('DatGenerovani')]
|
||||||
|
[MVCSwagJsonSchemaField('DatGenerovani', 'Datum generování dokladu OZ', false, true)]
|
||||||
|
property DatGenerovani: NullableTDatetime read FDatGenerovani write FDatGenerovani;
|
||||||
|
|
||||||
|
[MapperListOf(TGatemaSDScanData)]
|
||||||
|
property ScanData: TObjectList<TGatemaSDScanData> read FScanData write SetSDScanData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
System.StrUtils,
|
||||||
|
System.RegularExpressions;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TGatemaSDDoklad }
|
||||||
|
|
||||||
|
constructor TGatemaSDDoklad.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FScanData:= TObjectList<TGatemaSDScanData>.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
destructor TGatemaSDDoklad.Destroy;
|
||||||
|
begin
|
||||||
|
// if (FPohybyOZ<>nil) then
|
||||||
|
// FPohybyOZ.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGatemaSDDoklad.SetSDScanData(const Value: TObjectList<TGatemaSDScanData>);
|
||||||
|
begin
|
||||||
|
if (Value<>FScanData) then
|
||||||
|
begin
|
||||||
|
FScanData.Free;
|
||||||
|
FScanData:= Value;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
140
_custom/INCOSystems/uSvcCustom.pas
Normal file
140
_custom/INCOSystems/uSvcCustom.pas
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
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_ObehZbozi,
|
||||||
|
uSvc_Vyroba;
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
{$I C:\_zakaznici\pluginy_obecne\HDCApi2\globalConsts.inc}
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
TINCOSysService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
procedure ZapisJsonDoHeliosu (jsonData: string; var respString: string);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses
|
||||||
|
System.StrUtils,
|
||||||
|
FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
MVCFramework.Serializer.Commons;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TINCOSysService }
|
||||||
|
|
||||||
|
procedure TINCOSysService.ZapisJsonDoHeliosu (jsonData: string; var respString: string);
|
||||||
|
var lSQL, taskStr, strTmp, strTmp2, code, rs, guidIdent: string;
|
||||||
|
guid: TGuid;
|
||||||
|
akce: string;
|
||||||
|
j, t, a, v: JsonDataObjects.TJSONObject;
|
||||||
|
i, ii, taskDZId, taskId, intTemp, idJSON: integer;
|
||||||
|
jeOld: boolean;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
w: TStreamWriter;
|
||||||
|
jo: System.JSON.TJsonObject;
|
||||||
|
begin
|
||||||
|
idJSON:= 0;
|
||||||
|
respString:= '[';
|
||||||
|
|
||||||
|
jo:= System.JSON.TJsonObject.Create;
|
||||||
|
|
||||||
|
jsonData:= jsonData.Trim;
|
||||||
|
if (jsonData<>'') then
|
||||||
|
begin
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
lQry.Connection:= FDM.sqlConn;
|
||||||
|
try
|
||||||
|
CoCreateGuid(guid);
|
||||||
|
if (System.SysUtils.CreateGUID(guid)=S_OK) then
|
||||||
|
guidIdent:= System.SysUtils.GUIDToString(guid)
|
||||||
|
else
|
||||||
|
guidIdent:= self.NewUUID32;
|
||||||
|
lSQL:= 'INSERT ' + tblPrijataJsonData + ' (IdPHIdent, GUIDIdent, JSONData) SELECT 0, CONVERT(uniqueidentifier, N' + guidIdent.QuotedString + '), N' + jsonData.QuotedString;
|
||||||
|
FDM.sqlConn.ExecSQL(lSQL);
|
||||||
|
lSQL:= 'SELECT ID FROM ' + tblPrijataJsonData + ' WHERE GUIDIdent=CONVERT(uniqueidentifier, N' + guidIdent.QuotedString + ')';
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
if (lQry.RecordCount=1) then
|
||||||
|
begin
|
||||||
|
idJSON:= lQry.FieldByName('ID').AsInteger;
|
||||||
|
respString:= 'OK';
|
||||||
|
jo.AddPair('heliosid', idJSON.ToString);
|
||||||
|
end;
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
respString:= 'NOT OK';
|
||||||
|
raise EServiceException.Create('Chyba zápisu JSON dat: ' + E.Message);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FreeAndNil(lQry);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
CoInitialize(nil);
|
||||||
|
j:= TJsonObject.Parse(jsonData) as JsonDataObjects.TJsonObject;
|
||||||
|
try
|
||||||
|
if (j<>nil) then
|
||||||
|
if (j.Contains('akce')) then
|
||||||
|
begin
|
||||||
|
akce:= j.S['akce'].Trim;
|
||||||
|
if (idJSON>0) and (akce<>'') then
|
||||||
|
FDM.sqlConn.ExecSQL('UPDATE ' + tblPrijataJsonData + ' SET Akce=N' + akce.QuotedString + ' WHERE ID=' + idJSON.ToString);
|
||||||
|
{
|
||||||
|
for i:=0 to j['tasks'].Count-1 do
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
t:= j['tasks'].Items[i];
|
||||||
|
taskDZId:= t.I['id']; // j['tasks'].Items[i].I['id'];
|
||||||
|
taskStr:= j['tasks'].Items[i].ObjectValue.ToString;
|
||||||
|
except on E:Exception do
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
j.Free;
|
||||||
|
end;
|
||||||
|
CoUninitialize;
|
||||||
|
|
||||||
|
end
|
||||||
|
else
|
||||||
|
respString:= 'NO input data';
|
||||||
|
|
||||||
|
jo.AddPair('status', respString);
|
||||||
|
respString:= '[' +respString + ']';
|
||||||
|
|
||||||
|
respString:= jo.ToString;
|
||||||
|
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
5
_custom/INCOSystems/uTabs.inc
Normal file
5
_custom/INCOSystems/uTabs.inc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
const
|
||||||
|
tblMichPozadavek = '[dbo].[_hdc_DataZone_MicharnaPozadavek]';
|
||||||
|
tblMichSpotreba = '[dbo].[_hdc_DataZone_MicharnaSpotreba]';
|
||||||
|
tblPrijataJsonData = '[dbo].[_hdc_ph_PrijataJsonData]'; // data z Pro Holdingu
|
||||||
|
tblVyrobaObjednavky = '[dbo].[_TabVyroba_Objednavky]'; // data objednavek z Pro Holdingu
|
||||||
2
_custom/INCOSystems/uWebModCustom.inc
Normal file
2
_custom/INCOSystems/uWebModCustom.inc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
FEngine.AddController (TINCOsysController);
|
||||||
|
|
||||||
BIN
_custom/INCOSystems/zdroje.RES
Normal file
BIN
_custom/INCOSystems/zdroje.RES
Normal file
Binary file not shown.
9
_custom/INCOSystems/zdroje.rc
Normal file
9
_custom/INCOSystems/zdroje.rc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
col_TabPredna_EXT RCDATA .\sql\col_TabPredna_EXT.sql
|
||||||
|
col_TabKmenZbozi_EXT RCDATA .\sql\col_TabKmenZbozi_EXT.sql
|
||||||
|
col_TabEvidRozpracOper_EXT RCDATA .\sql\col_TabEvidRozpracOper_EXT.sql
|
||||||
|
col_TabPrPostup_EXT RCDATA .\sql\col_TabPrPostup_EXT.sql
|
||||||
|
ep_Vyroba_GenVydejZeMzdy RCDATA .\sql\ep_Vyroba_GenVydejZeMzdy.sql
|
||||||
|
ep_Vyroba_GenOdvodZeMzdy RCDATA .\sql\ep_Vyroba_GenOdvodZeMzdy.sql
|
||||||
|
ep_Vyroba_InsertEvidRozpracOper RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOper.sql
|
||||||
|
ep_Vyroba_InsertEvidRozpracOperPol RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOperPol.sql
|
||||||
|
ep_HDCDZApi_ZpracujPrijataData RCDATA .\sql\ep_HDCDZApi_ZpracujPrijataData.sql
|
||||||
3
_custom/Kdynium/customDefs.inc
Normal file
3
_custom/Kdynium/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in 'uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in 'uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in 'uSvcCustom.pas'
|
||||||
121
_custom/Kdynium/uCtrlCustom.pas
Normal file
121
_custom/Kdynium/uCtrlCustom.pas
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
unit uCtrlCustom;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
mvcframework,
|
||||||
|
mvcframework.Commons,
|
||||||
|
mvcframework.Serializer.Commons,
|
||||||
|
mvcframework.Serializer.Intf,
|
||||||
|
System.Generics.Collections,
|
||||||
|
System.RegularExpressions,
|
||||||
|
System.StrUtils,
|
||||||
|
System.SysUtils,
|
||||||
|
JsonDataObjects,
|
||||||
|
uCommons,
|
||||||
|
uCtrlBase,
|
||||||
|
uSvc_Base,
|
||||||
|
uHeoObj_Base,
|
||||||
|
uHeOObj_Custom,
|
||||||
|
uSvcCustom;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
[MVCDoc('Zdroj Nadoba')]
|
||||||
|
[MVCPath('/planlisu')]
|
||||||
|
TKDYPlanLisuController = class(TBaseController)
|
||||||
|
private
|
||||||
|
FSelfSvc: TKDYPlanLisuService;
|
||||||
|
public
|
||||||
|
procedure InitController;
|
||||||
|
|
||||||
|
[MVCDoc('Vrati metadata')]
|
||||||
|
[MVCPath('/meta')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
procedure GetMeta;
|
||||||
|
|
||||||
|
[MVCPath('/($id)')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('KDYPlanNasazeniLisu', 'Vrací data plánu nasazení lisů', 'GetByID')]
|
||||||
|
[MVCSwagParam(plPath, 'id', 'ID plánu', ptString, true)]
|
||||||
|
[MVCSwagParam(plPath, 'barcode', 'Barcode plánu', ptString, true)]
|
||||||
|
[MVCSwagResponses(200, 'Success', TStavSkladu, true)]
|
||||||
|
procedure GetByID(id: string='';
|
||||||
|
[MVCFromQueryString('barcode', '')] barcode: string=''
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
uDataMod;
|
||||||
|
|
||||||
|
const
|
||||||
|
selSloupce = '';
|
||||||
|
|
||||||
|
{ TKDYPlanLisuController }
|
||||||
|
|
||||||
|
procedure TKDYPlanLisuController.InitController;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if (FSelfSvc=nil) then
|
||||||
|
FSelfSvc:= TKDYPlanLisuService.Create(datMod);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TKDYPlanLisuController.GetByID(id: string=''; barcode: 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);
|
||||||
|
|
||||||
|
try
|
||||||
|
InitController;
|
||||||
|
|
||||||
|
Render(ObjectDict().Add('data', FSelfSvc.GetByParams(params))); // viz uSvcCustom.pas
|
||||||
|
except
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TKDYPlanLisuController.GetMeta;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
InitController;
|
||||||
|
|
||||||
|
Render(ObjectDict().Add('data', FSelfSvc.GetMeta));
|
||||||
|
except
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
40
_custom/Kdynium/uHeOObj_Custom.pas
Normal file
40
_custom/Kdynium/uHeOObj_Custom.pas
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
unit uHeOObj_Custom;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
MVCFramework.ActiveRecord,
|
||||||
|
MVCFramework.Nullables,
|
||||||
|
{$IFDEF SWAGGER}
|
||||||
|
MVCFramework.Swagger.Commons,
|
||||||
|
{$ENDIF}
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base;
|
||||||
|
|
||||||
|
const
|
||||||
|
tblPlanNasazLisu = '[dbo].[_hdc_TabPlanNasazeniLisu]';
|
||||||
|
tblPlanNasazLisuR = '[dbo].[_hdc_TabPlanNasazeniLisuR]';
|
||||||
|
tblPlanNasazLisuVstr = '[dbo].[_hdc_TabPlanNasazeniLisuVstr]';
|
||||||
|
tblPlanNasazLisuZm = '[dbo].[_hdc_TabPlanNasazeniLisuZmetky]';
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TKDYPlanLisu = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIndexZmeny: NullableInt32;
|
||||||
|
public
|
||||||
|
[MVCColumn('Cislo', true)] // is PrimaryKey
|
||||||
|
property IndexZmeny: NullableInt32 read FIndexZmeny write FIndexZmeny;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
87
_custom/Kdynium/uSvcCustom.pas
Normal file
87
_custom/Kdynium/uSvcCustom.pas
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
unit uSvcCustom;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
System.SysUtils,
|
||||||
|
JsonDataObjects,
|
||||||
|
uSvc_Base,
|
||||||
|
uCommons,
|
||||||
|
uHeoObj_Base,
|
||||||
|
uHeOObj_Custom;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
TKDYPlanLisuService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
function GetAll: TObjectList<TKDYPlanLisu>;
|
||||||
|
function GetByParams(params: TDictionary<string, string>): TObjectList<TKDYPlanLisu>;
|
||||||
|
function GetByID (const AID: integer): TKDYPlanLisu;
|
||||||
|
function GetMeta: TJSONObject;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.StrUtils,
|
||||||
|
FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
helTabsBIDs;
|
||||||
|
|
||||||
|
|
||||||
|
{ TKDYPlanLisuService }
|
||||||
|
|
||||||
|
function TKDYPlanLisuService.GetAll:TObjectList<TKDYPlanLisu>;
|
||||||
|
var lSQL: string;
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblPlanNasazLisu) + ' FROM ' + tblPlanNasazLisu + ' ORDER BY ID';
|
||||||
|
FDM.sqlQry1.Open(lSQL, []);
|
||||||
|
result:= FDM.sqlQry1.AsObjectList<TKDYPlanLisu>;
|
||||||
|
FDM.sqlQry1.Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TKDYPlanLisuService.GetByParams(params: TDictionary<string, string>): TObjectList<TKDYPlanLisu>;
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TKDYPlanLisuService.GetByID (const AID: integer): TKDYPlanLisu;
|
||||||
|
var lSQL: string;
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblPlanNasazLisu) + ' FROM ' + tblPlanNasazLisu + ' WHERE ID=:ID';
|
||||||
|
FDM.sqlQry1.Open(lSQL, [AID]);
|
||||||
|
try
|
||||||
|
if not(FDM.sqlQry1.EOF) then
|
||||||
|
result:= FDM.sqlQry1.AsObject<TKDYPlanLisu>
|
||||||
|
else
|
||||||
|
raise EServiceException.Create('Plán s ID ' + AID.ToString + ' nebyl nalezen.');
|
||||||
|
finally
|
||||||
|
FDM.sqlQry1.Close;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TKDYPlanLisuService.GetMeta: TJSONObject;
|
||||||
|
var lSQL: string;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
lSQL:= 'SELECT ' + GetTabCols('dbo', tblPlanNasazLisu) + ' FROM ' + tblPlanNasazLisu + ' WHERE 1=0';
|
||||||
|
FDM.sqlQry1.Open(lSQL);
|
||||||
|
Result := FDM.sqlQry1.MetadataAsJSONObject();
|
||||||
|
finally
|
||||||
|
FDM.sqlQry1.Close;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
1
_custom/Kdynium/uWebModCustom.inc
Normal file
1
_custom/Kdynium/uWebModCustom.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
FEngine.AddController(TKDYPlanLisuController);
|
||||||
3
_custom/Koramex/customDefs.inc
Normal file
3
_custom/Koramex/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in 'uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in 'uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in 'uSvcCustom.pas'
|
||||||
586
_custom/Koramex/uCtrlCustom.pas
Normal file
586
_custom/Koramex/uCtrlCustom.pas
Normal file
@ -0,0 +1,586 @@
|
|||||||
|
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.
|
||||||
29
_custom/Koramex/uHeOObj_Custom.pas
Normal file
29
_custom/Koramex/uHeOObj_Custom.pas
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
unit uHeOObj_Custom;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
MVCFramework.ActiveRecord,
|
||||||
|
MVCFramework.Nullables,
|
||||||
|
{$IFDEF SWAGGER}
|
||||||
|
MVCFramework.Swagger.Commons,
|
||||||
|
{$ENDIF}
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
System.StrUtils,
|
||||||
|
System.RegularExpressions;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
40
_custom/Koramex/uSvcCustom.pas
Normal file
40
_custom/Koramex/uSvcCustom.pas
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
unit uSvcCustom;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
Winapi.ActiveX,
|
||||||
|
System.DateUtils,
|
||||||
|
System.SysUtils,
|
||||||
|
JsonDataObjects,
|
||||||
|
uSvc_Base,
|
||||||
|
uCommons, // kvuli EServiceException
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base,
|
||||||
|
uHeOObj_Custom;
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
TKoramexService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.StrUtils,
|
||||||
|
FireDAC.Stan.Option,
|
||||||
|
FireDAC.Comp.Client,
|
||||||
|
FireDAC.Stan.Param,
|
||||||
|
MVCFramework.FireDAC.Utils,
|
||||||
|
MVCFramework.DataSet.Utils,
|
||||||
|
MVCFramework.Serializer.Commons;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
1
_custom/Koramex/uWebModCustom.inc
Normal file
1
_custom/Koramex/uWebModCustom.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
FEngine.AddController(TKRXVyrobaCisKooperaceController);
|
||||||
3
_custom/Rootvin/customDefs.inc
Normal file
3
_custom/Rootvin/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in 'uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in 'uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in 'uSvcCustom.pas'
|
||||||
594
_custom/Rootvin/hdcDZAPIdefs.def
Normal file
594
_custom/Rootvin/hdcDZAPIdefs.def
Normal file
@ -0,0 +1,594 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<defs>
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="TAB" nazev="_hdc_DataZone_konfig" verze="20230209">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
IF OBJECT_ID(N'dbo._hdc_DataZone_konfig', N'U') IS NULL~
|
||||||
|
CREATE TABLE dbo._hdc_DataZone_konfig (~
|
||||||
|
ID int IDENTITY(1, 1) NOT NULL,~
|
||||||
|
Typ NCHAR(3) NOT NULL,~
|
||||||
|
Nazev NVARCHAR(100) NOT NULL,~
|
||||||
|
Verze NCHAR(8) NOT NULL,~
|
||||||
|
Obsah nvarchar(max) COLLATE Czech_CI_AS NULL,~
|
||||||
|
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),~
|
||||||
|
DatZmeny DATETIME,~
|
||||||
|
CONSTRAINT PK_hdc_DataZone_konfig PRIMARY KEY CLUSTERED (ID)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
)
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="PRO" nazev="ep_hdcdzapi_GetKusovnik" verze="20230601">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
CREATE PROCEDURE dbo.ep_hdcdzapi_GetKusovnik AS~
|
||||||
|
BEGIN~
|
||||||
|
SET NOCOUNT ON~
|
||||||
|
DECLARE @RespekExistDoklady bit=0~
|
||||||
|
~
|
||||||
|
IF OBJECT_ID(N'tempdb..#apiKusovnik', N'U') IS NULL~
|
||||||
|
CREATE TABLE #apiKusovnik (ID INT IDENTITY(1,1) NOT NULL, IDPrKV INT, MnozstviPoz NUMERIC(19,6), pom_pomer_A NUMERIC(19,6), pom_pomer_B NUMERIC(19,6), Doklad INT, IDPrikaz INT,~
|
||||||
|
Prednastaveno BIT, Sklad NVARCHAR(30), VyrStredisko NVARCHAR(30), IDPracoviste INT, mnoz_zad NUMERIC(19,6), Mnoz_nepotrebne NUMERIC(19,6), Mnoz_skut_realizovane NUMERIC(19,6),~
|
||||||
|
Cena_real NUMERIC(19,6), Mnoz_odv NUMERIC(19,6), Cena_odv NUMERIC(19,6), priorita INT, vyssi INT, nizsi INT, DavkaTPV NUMERIC(19,6), pozice INT, Operace NVARCHAR(4),~
|
||||||
|
FixniMnozstvi NUMERIC(19,6), mnozstvi NUMERIC(19,6), ProcZtrat NUMERIC(19,6), mnozstviSeZtratou NUMERIC(19,6), Prirez NUMERIC(19,6), Poznamka NVARCHAR(500), SZVyssi NVARCHAR(3),~
|
||||||
|
RCVyssi NVARCHAR(30), Nazev1Vyssi NVARCHAR(100), SZNizsi NVARCHAR(3), RCNizsi NVARCHAR(30), Nazev1Nizsi NVARCHAR(100))~
|
||||||
|
IF OBJECT_ID(N'tempdb..#apiOdved', N'U') IS NULL~
|
||||||
|
CREATE TABLE #apiOdved (ID INT, IDPrikaz INT, Mnozstvi NUMERIC(19,6) DEFAULT 0.0)~
|
||||||
|
~
|
||||||
|
INSERT #apiKusovnik (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV,~
|
||||||
|
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, SZVyssi, RCVyssi, Nazev1Vyssi, SZNizsi, RCNizsi, Nazev1Nizsi)~
|
||||||
|
SELECT PrKV.ID, PrKV.mnoz_zad*O.mnozstvi/P.kusy_zad - CASE WHEN @RespekExistDoklady=1 THEN PrKV.VydanoRefMnoz + (SELECT ISNULL(SUM(PZ2.prepmnozstvi*(PZ2.mnozstvi-PZ2.MnOdebrane) * PrKV2.RefMnoz / PrKV2.mnoz_zad), 0.0) FROM [dbo].[TabPohybyZbozi] PZ2~
|
||||||
|
INNER JOIN [dbo].[TabDokladyZbozi] DZ2 ON (DZ2.ID=PZ2.IDDoklad AND DZ2.splneno=0)~
|
||||||
|
INNER JOIN [dbo].[TabStavSkladu] SS2 ON (SS2.ID=PZ2.IDZboSklad)~
|
||||||
|
INNER JOIN [dbo].[TabPrKVazby] PrKV2 ON (PrKV2.IDPrikaz=PZ2.IDPrikaz AND PrKV2.Doklad=PZ2.DokladPrikazu AND PrKV2.nizsi=SS2.IDKmenZbozi AND PrKV2.IDOdchylkyDo IS NULL)~
|
||||||
|
WHERE PZ2.TypVyrobnihoDokladu=1 AND PZ2.IDPrikaz=PrKV.IDPrikaz AND PZ2.DokladPrikazu=PrKV.Doklad AND PZ2.Splneno=0 AND PZ2.druhPohybuZbo IN (2,4,9,10) AND PZ2.SkutecneDatReal IS NULL) ELSE 0.0 END, CASE WHEN @RespekExistDoklady=0 THEN O.mnozstvi END, CASE WHEN @RespekExistDoklady=0 THEN P.kusy_zad END,~
|
||||||
|
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne, PrKV.Mnoz_skut_realizovane , PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,~
|
||||||
|
PrKV.mnozstvi , PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka, KZV.SkupZbo, KZV.RegCis, KZV.Nazev1, KZ.SkupZbo, KZ.RegCis, KZ.Nazev1~
|
||||||
|
FROM (SELECT IDPrikaz=O1.IDPrikaz, Mnozstvi=SUM(O1.mnozstvi) + CASE WHEN @RespekExistDoklady=1 THEN MAX(P1.kusy_odved+P1.kusy_ztrac+P1.kusy_zmet) + (SELECT ISNULL(SUM(PZ1.prepmnozstvi*PZ1.mnozstvi), 0.0)~
|
||||||
|
FROM [dbo].[TabPohybyZbozi] PZ1 WHERE PZ1.TypVyrobnihoDokladu=0 AND PZ1.IDPrikaz=O1.IDPrikaz AND PZ1.druhPohybuZbo=0 AND PZ1.SkutecneDatReal IS NULL) ELSE 0.0 END~
|
||||||
|
FROM #apiOdved O1~
|
||||||
|
INNER JOIN [dbo].[TabPrikaz] P1 ON (P1.ID=O1.IDPrikaz)~
|
||||||
|
GROUP BY O1.IDPrikaz) O~
|
||||||
|
INNER JOIN [dbo].[TabPrikaz] P ON (P.ID=O.IDPrikaz AND P.StavPrikazu IN (20,30,50))~
|
||||||
|
INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)~
|
||||||
|
INNER JOIN [dbo].[TabPrKVazby] PrKV ON (PrKV.IDPrikaz=O.IDPrikaz AND /*PrKV.predzpracovano=0 AND*/ PrKV.prednastaveno=1 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND PrKV.IDOdchylkyDo IS NULL)~
|
||||||
|
INNER JOIN [dbo].[TabKmenZbozi] KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)~
|
||||||
|
LEFT JOIN [dbo].[TabKmenZbozi] KZV ON (KZV.ID=PrKV.vyssi AND KZV.sluzba=0)~
|
||||||
|
WHERE (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0)~
|
||||||
|
~
|
||||||
|
SELECT * FROM #apiKusovnik~
|
||||||
|
END~
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="TAB" nazev="_hdc_DataZone_Tasky" verze="20230209">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
IF OBJECT_ID(N'dbo._hdc_DataZone_Tasky', N'U') IS NULL~
|
||||||
|
CREATE TABLE dbo._hdc_DataZone_Tasky (~
|
||||||
|
ID int IDENTITY(1, 1) NOT NULL,~
|
||||||
|
NovyZaznam bit DEFAULT 1 NOT NULL,~
|
||||||
|
DeviceID nvarchar(30) COLLATE Czech_CI_AS NULL,~
|
||||||
|
Stredisko nvarchar(30) COLLATE Czech_CI_AS NULL,~
|
||||||
|
IdDataZoneTaskID int NOT NULL,~
|
||||||
|
Obsah varchar(max) COLLATE Czech_CI_AS NULL,~
|
||||||
|
Typ tinyint NULL,~
|
||||||
|
DatZpracovani datetime NULL,~
|
||||||
|
IDDoklad int NULL,~
|
||||||
|
IDKoopObj int NULL,~
|
||||||
|
CisloKoopObj nvarchar(30) COLLATE Czech_CI_AS NULL,~
|
||||||
|
Kooperace bit DEFAULT 0 NOT NULL,~
|
||||||
|
StatusText nvarchar(30) COLLATE Czech_CI_AS NULL,~
|
||||||
|
DatumStart datetime NULL,~
|
||||||
|
DatumKonec datetime NULL,~
|
||||||
|
KodPracoviste nvarchar(5) COLLATE Czech_CI_AS NULL,~
|
||||||
|
ZamestnanecID int NULL,~
|
||||||
|
Zamestnanec int NULL,~
|
||||||
|
Nezpracovavat bit DEFAULT 0 NOT NULL,~
|
||||||
|
DatPorizeni datetime DEFAULT getdate() NOT NULL,~
|
||||||
|
PosledniChyba nvarchar(255) COLLATE Czech_CI_AS DEFAULT N'' NOT NULL,~
|
||||||
|
Autor nvarchar(80) COLLATE Czech_CI_AS DEFAULT suser_sname() NULL,~
|
||||||
|
Blokovano bit DEFAULT 0 NOT NULL,~
|
||||||
|
Barcode nvarchar(30) COLLATE Czech_CI_AS NULL,~
|
||||||
|
CONSTRAINT PK_hdc_DataZone_Tasky PRIMARY KEY CLUSTERED (ID DESC)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
)~
|
||||||
|
ON [PRIMARY]~
|
||||||
|
~
|
||||||
|
IF EXISTS(SELECT 1 FROM sys.extended_properties WHERE [name]=N'MS_Description' AND major_id=OBJECT_ID(N'_hdc_DataZone_Tasky') AND CONVERT(nvarchar, [value]) LIKE N'1=%')~
|
||||||
|
EXEC sp_dropextendedproperty @name='MS_Description', @level0type='schema', @level0name='dbo', @level1type='table', @level1name='_hdc_DataZone_Tasky', @level2type='column', @level2name='Typ'~
|
||||||
|
EXEC sp_addextendedproperty @name='MS_Description', @value='1=Kooperace, 2=Potvrzeni polKoopObj', @level0type='schema', @level0name='dbo', @level1type='table', @level1name='_hdc_DataZone_Tasky',~
|
||||||
|
@level2type='column', @level2name='Typ'~
|
||||||
|
~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE OBJECT_ID=OBJECT_ID(N'dbo._hdc_DataZone_Tasky') AND [name]=N'ei_hdc_DataZone_Tasky_KoopObj')~
|
||||||
|
CREATE NONCLUSTERED INDEX ei_hdc_DataZone_Tasky_KoopObj ON dbo._hdc_DataZone_Tasky (IDKoopObj)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF,~
|
||||||
|
DROP_EXISTING = OFF,~
|
||||||
|
STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
SORT_IN_TEMPDB = OFF,~
|
||||||
|
ONLINE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON,~
|
||||||
|
ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
ON [PRIMARY]~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
DECLARE @sql NVARCHAR(max)~
|
||||||
|
SET @sql=N'~
|
||||||
|
CREATE TRIGGER dbo.et_hdc_DataZone_Tasky_IU ON dbo._hdc_DataZone_Tasky~
|
||||||
|
WITH EXECUTE AS CALLER~
|
||||||
|
FOR INSERT, UPDATE~
|
||||||
|
AS~
|
||||||
|
BEGIN~
|
||||||
|
SET NOCOUNT ON~
|
||||||
|
~
|
||||||
|
DECLARE~
|
||||||
|
@id INT,~
|
||||||
|
@cZam INT,~
|
||||||
|
@idZam INT~
|
||||||
|
~
|
||||||
|
DECLARE c CURSOR LOCAL FAST_FORWARD FOR~
|
||||||
|
SELECT i.ID, i.Zamestnanec, i.ZamestnanecID FROM inserted i~
|
||||||
|
OPEN c~
|
||||||
|
WHILE (1=1)~
|
||||||
|
BEGIN~
|
||||||
|
FETCH NEXT FROM c INTO @id, @cZam, @idZam~
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK~
|
||||||
|
~
|
||||||
|
IF (@cZam IS NOT NULL) AND (@idZam IS NULL)~
|
||||||
|
UPDATE dbo._hdc_DataZone_Tasky SET ZamestnanecID=(SELECT ID FROM dbo.TabCisZam WHERE Cislo=@cZam) WHERE ID=@id~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
CLOSE c~
|
||||||
|
DEALLOCATE c~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
'~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.triggers WHERE [name]=N'et_hdc_DataZone_Tasky_IU')~
|
||||||
|
EXEC sp_executesql @sql~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
--DECLARE @sql NVARCHAR(max)~
|
||||||
|
SET @sql=N'~
|
||||||
|
CREATE TRIGGER dbo.et_hdc_DataZone_Tasky_D ON dbo._hdc_DataZone_Tasky~
|
||||||
|
WITH EXECUTE AS CALLER~
|
||||||
|
FOR DELETE~
|
||||||
|
AS~
|
||||||
|
BEGIN~
|
||||||
|
SET NOCOUNT ON~
|
||||||
|
~
|
||||||
|
DECLARE~
|
||||||
|
@iTemp INT,~
|
||||||
|
@id INT~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
DECLARE c CURSOR LOCAL FAST_FORWARD FOR~
|
||||||
|
SELECT d.ID FROM deleted d~
|
||||||
|
OPEN c~
|
||||||
|
WHILE (1=1)~
|
||||||
|
BEGIN~
|
||||||
|
FETCH NEXT FROM c INTO @id~
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK~
|
||||||
|
~
|
||||||
|
DELETE FROM dbo._hdc_DataZone_Subtasky WHERE IdTask=@id~
|
||||||
|
IF NOT EXISTS(SELECT ID FROM dbo._hdc_DataZone_Subtasky)~
|
||||||
|
TRUNCATE TABLE dbo._hdc_DataZone_Subtasky~
|
||||||
|
ELSE~
|
||||||
|
BEGIN~
|
||||||
|
SELECT @iTemp=MAX(ID) FROM dbo._hdc_DataZone_Subtasky~
|
||||||
|
DBCC CHECKIDENT(_hdc_DataZone_Subtasky, RESEED, @iTemp)~
|
||||||
|
END~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
CLOSE c~
|
||||||
|
DEALLOCATE c~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
IF NOT EXISTS(SELECT ID FROM dbo._hdc_DataZone_Tasky)~
|
||||||
|
TRUNCATE TABLE dbo._hdc_DataZone_Tasky~
|
||||||
|
ELSE~
|
||||||
|
BEGIN~
|
||||||
|
SELECT @iTemp=MAX(ID) FROM dbo._hdc_DataZone_Tasky~
|
||||||
|
DBCC CHECKIDENT(_hdc_DataZone_Tasky, RESEED, @iTemp)~
|
||||||
|
END~
|
||||||
|
~
|
||||||
|
END'~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.triggers WHERE [name]=N'et_hdc_DataZone_Tasky_D')~
|
||||||
|
EXEC sp_executesql @sql~
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="TAB" nazev="_hdc_DataZone_Subtasky" verze="20230209">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
IF OBJECT_ID(N'dbo._hdc_DataZone_Subtasky', N'U') IS NULL~
|
||||||
|
CREATE TABLE dbo._hdc_DataZone_Subtasky (~
|
||||||
|
ID int IDENTITY(1, 1) NOT NULL,~
|
||||||
|
IDTask int NOT NULL,~
|
||||||
|
IdDataZoneTaskID int NULL,~
|
||||||
|
Pozice tinyint DEFAULT 1 NOT NULL,~
|
||||||
|
DatumStart datetime NULL,~
|
||||||
|
DatumKonec datetime NULL,~
|
||||||
|
Kusy_odv numeric(15, 2) DEFAULT 0.0 NULL,~
|
||||||
|
BarcodeOperace nvarchar(20) COLLATE Czech_CI_AS NULL,~
|
||||||
|
IDPrPostup int NULL,~
|
||||||
|
StatusText nvarchar(30) COLLATE Czech_CI_AS NULL,~
|
||||||
|
IDPolKoopObj int NULL,~
|
||||||
|
IDPrikaz int NULL,~
|
||||||
|
Doklad int NULL,~
|
||||||
|
Alt nchar(1) COLLATE Czech_CI_AS NULL,~
|
||||||
|
PosledniChyba nvarchar(255) COLLATE Czech_CI_AS DEFAULT N'' NULL,~
|
||||||
|
CONSTRAINT PK_hdc_DataZone_Subtasky PRIMARY KEY CLUSTERED (ID DESC)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
)~
|
||||||
|
ON [PRIMARY]~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE OBJECT_ID=OBJECT_ID(N'dbo._hdc_DataZone_Subtasky') AND [name]=N'ei_hdc_DataZone_Subtasky_Task')~
|
||||||
|
CREATE NONCLUSTERED INDEX ei_hdc_DataZone_Subtasky_Task ON dbo._hdc_DataZone_Subtasky (IDTask)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF,~
|
||||||
|
DROP_EXISTING = OFF,~
|
||||||
|
STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
SORT_IN_TEMPDB = OFF,~
|
||||||
|
ONLINE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON,~
|
||||||
|
ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
ON [PRIMARY]~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
DECLARE @sql NVARCHAR(max)~
|
||||||
|
SET @sql=N'~
|
||||||
|
CREATE TRIGGER dbo.et_hdc_DataZone_Subtasky_IU ON dbo._hdc_DataZone_Subtasky~
|
||||||
|
WITH EXECUTE AS CALLER~
|
||||||
|
FOR INSERT, UPDATE~
|
||||||
|
AS~
|
||||||
|
BEGIN~
|
||||||
|
SET NOCOUNT ON~
|
||||||
|
~
|
||||||
|
DECLARE~
|
||||||
|
@id INT,~
|
||||||
|
@idTask INT,~
|
||||||
|
@idDZTask INT,~
|
||||||
|
@bc NVARCHAR(20),~
|
||||||
|
@idPrPost INT,~
|
||||||
|
@idVPr INT,~
|
||||||
|
@dokl INT,~
|
||||||
|
@alt NCHAR(1)~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
DECLARE c CURSOR LOCAL FAST_FORWARD FOR~
|
||||||
|
SELECT i.ID, i.IdDataZoneTaskID, i.BarcodeOperace, i.IDPrPostup FROM inserted i~
|
||||||
|
OPEN c~
|
||||||
|
WHILE (1=1)~
|
||||||
|
BEGIN~
|
||||||
|
FETCH NEXT FROM c INTO @id, @idDZTask, @bc, @idPrPost~
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK~
|
||||||
|
~
|
||||||
|
IF (@idPrPost IS NULL) AND (@bc<>N'''')~
|
||||||
|
BEGIN~
|
||||||
|
SET @idPrPost=(SELECT ID FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND BarCode=@bc)~
|
||||||
|
IF (@idPrPost IS NOT NULL)~
|
||||||
|
BEGIN~
|
||||||
|
SELECT @idVPr=IDPrikaz, @dokl=Doklad, @alt=Alt FROM dbo.TabPrPostup WHERE ID=@idPrPost~
|
||||||
|
UPDATE dbo._hdc_DataZone_Subtasky SET IdPrPostup=@idPrPost, IDPrikaz=@idVPr, Doklad=@dokl, Alt=@alt WHERE ID=@id AND IDPrPostup IS NULL~
|
||||||
|
END~
|
||||||
|
END~
|
||||||
|
~
|
||||||
|
SET @idTask=(SELECT ID FROM dbo._hdc_DataZone_Tasky WHERE IdDataZoneTaskID=@idDZTask)~
|
||||||
|
UPDATE dbo._hdc_DataZone_Subtasky SET IDTask=@idTask WHERE ID=@id AND IDTask<>@idTask~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
CLOSE c~
|
||||||
|
DEALLOCATE c~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
'~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.triggers WHERE [name]=N'et_hdc_DataZone_Subtasky_IU')~
|
||||||
|
EXEC sp_executesql @sql~
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="TAB" nazev="_hdc_DataZone_MicharnaPozadavek" verze="20230516">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
IF OBJECT_ID(N'dbo._hdc_DataZone_MicharnaPozadavek', N'U') IS NULL~
|
||||||
|
CREATE TABLE dbo._hdc_DataZone_MicharnaPozadavek (~
|
||||||
|
ID int IDENTITY(1, 1) NOT NULL,~
|
||||||
|
IDDZReq INT NOT NULL,~
|
||||||
|
DeviceID NVARCHAR(40) NULL,~
|
||||||
|
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),~
|
||||||
|
DatPotvrzeni DATETIME NULL,~
|
||||||
|
DatZpracovani DATETIME NULL,~
|
||||||
|
IDDoklad INT,~
|
||||||
|
Pozadavek nvarchar(max) NOT NULL,~
|
||||||
|
JeJSON AS (CONVERT(bit, IIF(IsJson(Pozadavek)=1, 1, 0))),~
|
||||||
|
CONSTRAINT PK_hdc_DataZone_MicharnaPozadavek PRIMARY KEY CLUSTERED (ID)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
)~
|
||||||
|
ON [PRIMARY]~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE OBJECT_ID=OBJECT_ID(N'dbo._hdc_DataZone_MicharnaPozadavek') AND [name]=N'ei_hdc_DataZone_MicharnaPozadavek_DZReq')~
|
||||||
|
CREATE NONCLUSTERED INDEX ei_hdc_DataZone_MicharnaPozadavek_DZReq ON dbo._hdc_DataZone_MicharnaPozadavek~
|
||||||
|
(IDDZReq)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF,~
|
||||||
|
DROP_EXISTING = OFF,~
|
||||||
|
STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
SORT_IN_TEMPDB = OFF,~
|
||||||
|
ONLINE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON,~
|
||||||
|
ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
ON [PRIMARY]~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE OBJECT_ID=OBJECT_ID(N'dbo._hdc_DataZone_MicharnaPozadavek') AND [name]=N'ei_hdc_DataZone_MicharnaPozadavek_Doklad')~
|
||||||
|
CREATE NONCLUSTERED INDEX ei_hdc_DataZone_MicharnaPozadavek_Doklad ON dbo._hdc_DataZone_MicharnaPozadavek~
|
||||||
|
(IDDoklad)~
|
||||||
|
WITH (~
|
||||||
|
PAD_INDEX = OFF,~
|
||||||
|
DROP_EXISTING = OFF,~
|
||||||
|
STATISTICS_NORECOMPUTE = OFF,~
|
||||||
|
SORT_IN_TEMPDB = OFF,~
|
||||||
|
ONLINE = OFF,~
|
||||||
|
ALLOW_ROW_LOCKS = ON,~
|
||||||
|
ALLOW_PAGE_LOCKS = ON)~
|
||||||
|
ON [PRIMARY]
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
<def typ="PRO" nazev="ep_HDC_DataZone_Vyroba_VytvorKoopObjednavku" verze="20230525">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
CREATE PROCEDURE dbo.ep_HDC_DataZone_Vyroba_VytvorKoopObjednavku~
|
||||||
|
@idTask INT=NULL,~
|
||||||
|
@opakovane BIT=0,~
|
||||||
|
@radaKObj NVARCHAR(10)=NULL~
|
||||||
|
AS~
|
||||||
|
~
|
||||||
|
SET NOCOUNT ON~
|
||||||
|
~
|
||||||
|
DECLARE~
|
||||||
|
@aktDate DATETIME=GETDATE(),~
|
||||||
|
@errMsg NVARCHAR(500),~
|
||||||
|
@iTemp INT,~
|
||||||
|
@idSubtask INT,~
|
||||||
|
@idDZTask INT,~
|
||||||
|
@idKoopObj INT,~
|
||||||
|
@cisKoopObj NVARCHAR(20),~
|
||||||
|
@bc NVARCHAR(20),~
|
||||||
|
@idOrgKoop INT,~
|
||||||
|
@idPolKoopObj INT,~
|
||||||
|
@idTypKoop INT,~
|
||||||
|
@idKoop INT,~
|
||||||
|
@idVPr INT,~
|
||||||
|
@dokl INT,~
|
||||||
|
@alt NCHAR(1),~
|
||||||
|
@idPrPost INT,~
|
||||||
|
@mnoz NUMERIC(19,6),~
|
||||||
|
@idZam INT,~
|
||||||
|
@cZam INT,~
|
||||||
|
@loginName NVARCHAR(50),~
|
||||||
|
@tranPred INT,~
|
||||||
|
@idOrg INT,~
|
||||||
|
@dicOrg NVARCHAR(15),~
|
||||||
|
@jsonStr NVARCHAR(MAX)~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
DECLARE @idKooperace TABLE (ID INT NOT NULL)~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
SET @iTemp=ISNULL( (SELECT MAX(ID) FROM dbo.TabKoopObj), 1)~
|
||||||
|
DBCC CHECKIDENT(TabKoopObj, RESEED, @iTemp)~
|
||||||
|
~
|
||||||
|
SET @iTemp=ISNULL( (SELECT MAX(ID) FROM dbo.TabPolKoopObj), 1)~
|
||||||
|
DBCC CHECKIDENT(TabPolKoopObj, RESEED, @iTemp)~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
IF (@idTask IS NULL)~
|
||||||
|
DECLARE d CURSOR LOCAL FOR~
|
||||||
|
SELECT ID, IdDataZoneTaskID, ZamestnanecID, Zamestnanec FROM dbo._hdc_DataZone_Tasky~
|
||||||
|
WHERE Kooperace=1 AND DatZpracovani IS NULL AND IDKoopObj IS NULL AND Nezpracovavat=0 -- AND Blokovano=0~
|
||||||
|
AND DATEDIFF(d, DatPorizeni, GETDATE())<2~
|
||||||
|
ELSE~
|
||||||
|
IF (@opakovane=0)~
|
||||||
|
DECLARE d CURSOR LOCAL FOR~
|
||||||
|
SELECT ID, IdDataZoneTaskID, ZamestnanecID, Zamestnanec FROM dbo._hdc_DataZone_Tasky~
|
||||||
|
WHERE Kooperace=1 AND DatZpracovani IS NULL AND IDKoopObj IS NULL AND Nezpracovavat=0 AND ID=@idTask -- AND Blokovano=0~
|
||||||
|
ELSE~
|
||||||
|
DECLARE d CURSOR LOCAL FOR~
|
||||||
|
SELECT ID, IdDataZoneTaskID, ZamestnanecID, Zamestnanec FROM dbo._hdc_DataZone_Tasky~
|
||||||
|
WHERE Kooperace=1 AND ID=@idTask -- AND Blokovano=0~
|
||||||
|
OPEN d~
|
||||||
|
WHILE (1=1)~
|
||||||
|
BEGIN~
|
||||||
|
FETCH NEXT FROM d INTO @idTask, @idDZTask, @idZam, @cZam~
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK~
|
||||||
|
~
|
||||||
|
UPDATE dbo._hdc_DataZone_Tasky SET Blokovano=1 WHERE ID=@idTask~
|
||||||
|
~
|
||||||
|
SET @loginName=(SELECT LoginId FROM dbo.TabCisZam WHERE Cislo=@cZam)~
|
||||||
|
IF (ISNULL(@loginName,N'')=N'')~
|
||||||
|
SET @loginName=(SELECT PrijmeniJmeno FROM dbo.TabCisZam WHERE ID=@idZam)~
|
||||||
|
IF (ISNULL(@loginName,N'')=N'')~
|
||||||
|
SET @loginName=ISNULL( (SELECT PrijmeniJmeno FROM dbo.TabCisZam WHERE Cislo=@cZam), SUSER_SNAME())~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
-- mam zapsane subtasky ?~
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo._hdc_DataZone_Subtasky WHERE IDTask=@idTask)~
|
||||||
|
BEGIN~
|
||||||
|
SET @jsonStr=(SELECT Obsah FROM dbo._hdc_DataZone_Tasky WHERE ID=@idTask)~
|
||||||
|
IF (@jsonStr IS NOT NULL)~
|
||||||
|
IF (CHARINDEX(N'subtask', @jsonStr)>0) AND (ISJSON(@jsonStr)=1)~
|
||||||
|
BEGIN~
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL~
|
||||||
|
DROP TABLE #TabJSONData~
|
||||||
|
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))~
|
||||||
|
INSERT #TabJSONData (doc) SELECT @jsonStr~
|
||||||
|
~
|
||||||
|
INSERT dbo._hdc_DataZone_Subtasky (IDTask, IdDataZoneTaskID, Pozice, DatumStart, DatumKonec, Kusy_odv, BarcodeOperace, StatusText)~
|
||||||
|
SELECT @idTask, @idDZTask, ROW_NUMBER() OVER (ORDER BY(SELECT NULL)), CONVERT(datetime2(0), startedAt), CONVERT(datetime2(0), finishedAt),~
|
||||||
|
CONVERT(NUMERIC(19,6), v.kusy_odv), code, [status] -- JSON_VALUE(d.doc, '$.worker.code') AS CisloZam~
|
||||||
|
FROM #TabJSONData d~
|
||||||
|
CROSS APPLY OPENJSON(d.doc, '$.subtask')~
|
||||||
|
WITH(code nvarchar(20), [status] NVARCHAR(30), startedAt NVARCHAR(25), finishedAt NVARCHAR(25), [values] nvarchar(max) AS JSON)~
|
||||||
|
CROSS APPLY OPENJSON([values])~
|
||||||
|
WITH (kusy_odv nvarchar(100)) as v~
|
||||||
|
~
|
||||||
|
UPDATE st SET st.IDPrikaz=pp.IDPrikaz, st.Doklad=pp.Doklad, st.Alt=pp.Alt, st.IdPrPostup=pp.ID~
|
||||||
|
FROM dbo._hdc_DataZone_Subtasky st~
|
||||||
|
INNER JOIN dbo.TabPrPostup pp ON (pp.Barcode=st.BarcodeOperace AND pp.IDOdchylkyDo IS NULL)~
|
||||||
|
WHERE st.IDTask=@idTask~
|
||||||
|
~
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL~
|
||||||
|
DROP TABLE #TabJSONData~
|
||||||
|
END~
|
||||||
|
END~
|
||||||
|
~
|
||||||
|
~
|
||||||
|
-- zapis nezpracovane subtasky~
|
||||||
|
IF EXISTS(SELECT ID FROM dbo._hdc_DataZone_Subtasky WHERE IDTask=@idTask AND IDPolKoopObj IS NULL)~
|
||||||
|
BEGIN~
|
||||||
|
IF (@radaKObj IS NULL)~
|
||||||
|
SET @radaKObj = (SELECT TOP(1) Rada FROM dbo.TabRadyKoopObj ORDER BY ID)~
|
||||||
|
INSERT @idKooperace (ID) SELECT DISTINCT(IDkooperace) FROM dbo.TabPrPostup~
|
||||||
|
WHERE BarCode IN (SELECT BarcodeOperace FROM dbo._hdc_DataZone_Subtasky WHERE IDTask=@idTask)~
|
||||||
|
AND IDOdchylkyDo IS NULL AND Typ=2 GROUP BY IDkooperace~
|
||||||
|
IF (1=(SELECT COUNT(*) FROM (SELECT DISTINCT(ID) FROM @idKooperace GROUP BY ID) x))~
|
||||||
|
BEGIN~
|
||||||
|
SET @idTypKoop=(SELECT TOP(1) ID FROM @idKooperace)~
|
||||||
|
SELECT @radaKObj=cke._RadaKoopObj FROM dbo.TabCKoop ck INNER JOIN dbo.TabRadyCKoop rck ON (rck.Rada=ck.Rada)~
|
||||||
|
INNER JOIN dbo.TabRadyCKoop_EXT cke ON (cke.ID=ck.ID) WHERE ck.ID=@idTypKoop~
|
||||||
|
~
|
||||||
|
IF (@radaKObj IS NOT NULL)~
|
||||||
|
BEGIN~
|
||||||
|
BEGIN TRY~
|
||||||
|
SET @tranPred=@@TRANCOUNT~
|
||||||
|
IF (@tranPred=0)~
|
||||||
|
BEGIN TRAN~
|
||||||
|
SET @aktDate = CONVERT(datetime, CONVERT(int, CONVERT(float, @aktDate)))~
|
||||||
|
EXEC dbo.hp_InsertHlavickyKoopObj @IDObjednavky=@idKoopObj OUT, @Rada=@radaKObj, @TerminOdeslani=@aktDate~
|
||||||
|
IF (@idKoopObj IS NOT NULL)~
|
||||||
|
BEGIN~
|
||||||
|
UPDATE dbo.TabKoopObj SET Autor=@loginName WHERE ID=@idKoopObj~
|
||||||
|
SELECT @cisKoopObj=Objednavka FROM dbo.TabKoopObj WHERE ID=@idKoopObj~
|
||||||
|
~
|
||||||
|
DECLARE p CURSOR LOCAL FOR~
|
||||||
|
SELECT ID, IDPrikaz, Doklad, Alt, Kusy_odv, BarcodeOperace, IDPrPostup FROM dbo._hdc_DataZone_Subtasky~
|
||||||
|
WHERE IDTask=@idTask AND IDPolKoopObj IS NULL~
|
||||||
|
OPEN p~
|
||||||
|
WHILE (1=1)~
|
||||||
|
BEGIN~
|
||||||
|
FETCH NEXT FROM p INTO @idSubtask, @idVPr, @dokl, @alt, @mnoz, @bc, @idPrPost~
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK~
|
||||||
|
~
|
||||||
|
IF (@idPrPost IS NULL)~
|
||||||
|
SET @idPrPost=(SELECT ID FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND BarCode=@bc)~
|
||||||
|
IF NOT EXISTS(SELECT ID FROM dbo.TabPrPostup WHERE ID=@idPrPost)~
|
||||||
|
SET @idPrPost = (SELECT ID FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND BarCode=@bc)~
|
||||||
|
SELECT @idVPr=IDPrikaz, @dokl=Doklad, @alt=Alt, @idKoop=IDKooperace FROM dbo.TabPrPostup WHERE ID=@idPrPost~
|
||||||
|
IF EXISTS(SELECT pp.ID FROM dbo.TabPrPostup pp INNER JOIN dbo.TabPrikaz p ON (p.ID=pp.IDPrikaz) WHERE pp.ID=@idPrPost AND pp.predzpracovano=1 AND p.StavPrikazu=30)~
|
||||||
|
UPDATE dbo.TabPrPostup SET predzpracovano=0 WHERE ID=@idPrPost~
|
||||||
|
~
|
||||||
|
EXEC dbo.hp_InsertPolozkyKoopObj @IDPolozky=@idPolKoopObj OUT, @IDObjednavky=@idKoopObj, @IDPrikaz=@idVPr, @Doklad=@dokl, @Alt=@alt, @Kusy=@mnoz, @IDKooperace=@idKoop~
|
||||||
|
IF (@idPolKoopObj IS NOT NULL)~
|
||||||
|
BEGIN~
|
||||||
|
UPDATE dbo._hdc_DataZone_Subtasky SET IDPolKoopObj=@idPolKoopObj WHERE ID=@idSubtask~
|
||||||
|
UPDATE dbo.TabPolKoopObj SET Autor=@loginName WHERE ID=@idPolKoopObj~
|
||||||
|
END~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
CLOSE p~
|
||||||
|
DEALLOCATE p~
|
||||||
|
~
|
||||||
|
SET @idOrg=(SELECT dodavatel FROM dbo.TabCKoop WHERE ID=@idKoop)~
|
||||||
|
SET @dicOrg=(SELECT DIC FROM dbo.TabCisOrg WHERE ID=@idOrg)~
|
||||||
|
UPDATE dbo.TabKoopObj SET IDOrganizace=@idOrg, DIC=@dicOrg WHERE ID=@idKoopObj~
|
||||||
|
~
|
||||||
|
UPDATE dbo._hdc_DataZone_Tasky SET IDKoopObj=@idKoopObj, DatZpracovani=GETDATE(), Nezpracovavat=0, CisloKoopObj=@cisKoopObj, Blokovano=0~
|
||||||
|
WHERE ID=@idTask~
|
||||||
|
~
|
||||||
|
END -- @IDObjednavky IS NOT NULL~
|
||||||
|
IF (@@TRANCOUNT>0) AND (@tranPred=0)~
|
||||||
|
COMMIT TRAN~
|
||||||
|
END TRY~
|
||||||
|
BEGIN CATCH~
|
||||||
|
IF (@@TRANCOUNT>0) AND (@tranPred=0)~
|
||||||
|
ROLLBACK TRAN~
|
||||||
|
SET @errMsg = ERROR_MESSAGE()~
|
||||||
|
~
|
||||||
|
IF (CHARINDEX(N'2001434', @errMsg)>0) -- vyrobni operace jiz neexistuje~
|
||||||
|
UPDATE dbo._hdc_DataZone_Tasky SET DatZpracovani=GETDATE(), Nezpracovavat=1, PosledniChyba=N'V<>robn<62> operace ji<6A> neexistuje' WHERE ID=@idTask~
|
||||||
|
ELSE~
|
||||||
|
INSERT dbo._hdc_Log (Typ, LogText, intVal) SELECT 11, N'Import kooperace - chyba: ' + @errMsg, @idTask~
|
||||||
|
~
|
||||||
|
END CATCH~
|
||||||
|
END -- @radaKObj IS NOT NULL~
|
||||||
|
~
|
||||||
|
END -- jen jeden druh kooperace~
|
||||||
|
ELSE~
|
||||||
|
BEGIN~
|
||||||
|
UPDATE dbo._hdc_DataZone_Tasky SET PosledniChyba=N'Naskenov<6F>no v<>c typ<79> kooperace', Blokovano=0 WHERE ID=@idTask~
|
||||||
|
END~
|
||||||
|
~
|
||||||
|
END -- existuji subtasky ? ano, vytvor kooperacni objednavku~
|
||||||
|
~
|
||||||
|
END~
|
||||||
|
CLOSE d~
|
||||||
|
DEALLOCATE d
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="COL">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
DECLARE @currDat DATETIME=GETDATE()~
|
||||||
|
IF (COL_LENGTH(N'dbo.TabRadyCKoop_EXT', N'_RadaKoopObj') IS NULL)~
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabRadyCKoop_EXT', @NazevAtrSys=N'_RadaKoopObj', @Skupina=N'HDC API', @NazevAtrVer=N'<27>ada koopera<72>n<EFBFBD>ch objedn<64>vek',~
|
||||||
|
@NazevAtrVerZkr=N'<27>ada koopObj', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0,~
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=11142, @ExtEd_Atr=N'Rada', @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,~
|
||||||
|
@TypAtrSQL=N'NVARCHAR', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
<def typ="COL">
|
||||||
|
<sql_text><![CDATA[
|
||||||
|
DECLARE @currDat DATETIME=GETDATE()~
|
||||||
|
IF (COL_LENGTH(N'dbo.TabDokumenty_EXT', N'_DokladProAPI') IS NULL)~
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokumenty', @NazevAtrSys=N'_DokladProAPI', @Skupina=N'HDC API', @NazevAtrVer=N'P<>ednastaveno pro HDC API',~
|
||||||
|
@NazevAtrVerZkr=N'Pro HDCAPI', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=12, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0,~
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,~
|
||||||
|
@TypAtrSQL=N'BIT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1~
|
||||||
|
EXEC dbo.hp_ExterniTabulka N'TabDokumenty',N'_DokladProAPI',N'BIT'
|
||||||
|
]]>
|
||||||
|
</sql_text>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
|
||||||
|
</defs>
|
||||||
15
_custom/Rootvin/info.txt
Normal file
15
_custom/Rootvin/info.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Gatema_SDDoklady
|
||||||
|
***********************
|
||||||
|
TypDokladu - 510 - kontrola prijmu / 540 - prijem
|
||||||
|
IDDokZbo - zdrojovy doklad (napr. pri kontrole prijmu)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Gatema_SDScanData
|
||||||
|
***********************
|
||||||
|
IDPohZbo - ID zdrojoveho pohybu OZ (napr. pri kontrole prijmu)
|
||||||
|
|
||||||
6
_custom/Rootvin/sql/col_CisZam_EXT.sql
Normal file
6
_custom/Rootvin/sql/col_CisZam_EXT.sql
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabCisZam_EXT', N'_DataZone_KodCipu') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabCisZam', @NazevAtrSys=N'_DataZone_KodCipu', @Skupina=N'HDCDZApi', @NazevAtrVer=N'K<EFBFBD>d zam<61>stnaneck<63>ho <20>ipu',
|
||||||
|
@NazevAtrVerZkr=N'K<EFBFBD>d <20>ipu', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'NVARCHAR(36)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||||
6
_custom/Rootvin/sql/col_TabDokumenty_DokladProAPI.sql
Normal file
6
_custom/Rootvin/sql/col_TabDokumenty_DokladProAPI.sql
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabDokumenty_EXT', N'_DokladProAPI') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokumenty_EXT', @NazevAtrSys=N'_DokladProAPI', @Skupina=NULL, @NazevAtrVer=N'Přednastaveno pro zobrazení přes HDC API',
|
||||||
|
@NazevAtrVerZkr=N'Pro HDCAPI', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'BIT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
|
||||||
12
_custom/Rootvin/sql/col_TabPrPostup_EXT.sql
Normal file
12
_custom/Rootvin/sql/col_TabPrPostup_EXT.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_PaletListProVydej') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_PaletListProVydej', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Paletov<EFBFBD> list pro v<>dej',
|
||||||
|
@NazevAtrVerZkr=N'Pal.list.v<>dej', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||||
|
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_SarzeProVydej') IS NULL)
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_SarzeProVydej', @Skupina=N'HDCDZApi', @NazevAtrVer=N'<EFBFBD>arze pro v<>dej',
|
||||||
|
@NazevAtrVerZkr=N'<EFBFBD>ar<EFBFBD>e v<>dej', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'<EFBFBD>ar<EFBFBD>e pl<70>novan<61> pro v<>dej (naskenovan<61>)', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||||
34
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik.sql
Normal file
34
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik.sql
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
-- dbo.ep_hdcdzapi_GetKusovnik
|
||||||
|
CREATE PROCEDURE dbo.ep_hdcdzapi_GetKusovnik
|
||||||
|
@idDilce INT,
|
||||||
|
@mnf NUMERIC(19,6)=0,
|
||||||
|
@datum DATETIME=NULL,
|
||||||
|
@IDZakazModif int=NULL,
|
||||||
|
@MnozstviSeZtratou bit=1,
|
||||||
|
@VcetneNulovychKV bit=0,
|
||||||
|
@RespekDodatecneProcZtratKV bit=0,
|
||||||
|
@ErrMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #apiKusovnik
|
||||||
|
CREATE TABLE #apiKusovnik (ID int IDENTITY (1, 1) NOT NULL, IDRodic int NULL, vyssi integer NULL, IDKmenZbozi integer NOT NULL, uroven integer NOT NULL, poradi integer NOT NULL,
|
||||||
|
IDKVazby integer NULL, mnozstvi numeric(20,6) NOT NULL, prirez numeric(20,6) NULL,
|
||||||
|
Prime bit NOT NULL, RezijniMat bit NOT NULL, VyraditZKalkulace bit NOT NULL, Strom nvarchar(400) COLLATE database_default NULL,
|
||||||
|
Davka numeric(19,6) NULL)
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_generujKusovnik @IDFinal=@idDilce, @MNF=@mnf, @datum=@datum, @Can_raise=0, @getStrom=1, @GetRodic=1, @IDZakazModif=@IDZakazModif, @VcetneNulovychKV=@VcetneNulovychKV,
|
||||||
|
@MnozstviSeZtratou=@MnozstviSeZtratou, @RespekDodatecneProcZtratKV=@RespekDodatecneProcZtratKV
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @ErrMsg = ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
SELECT * FROM #apiKusovnik
|
||||||
|
|
||||||
38
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik_2.sql
Normal file
38
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik_2.sql
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
-- dbo.ep_hdcdzapi_GetKusovnik
|
||||||
|
CREATE PROCEDURE dbo.ep_hdcdzapi_GetKusovnik
|
||||||
|
AS
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
DECLARE @RespekExistDoklady bit=0
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#apiKusovnik', N'U') IS NULL
|
||||||
|
CREATE TABLE #apiKusovnik (ID INT IDENTITY(1,1) NOT NULL, IDPrKV INT, MnozstviPoz NUMERIC(19,6), pom_pomer_A NUMERIC(19,6), pom_pomer_B NUMERIC(19,6), Doklad INT, IDPrikaz INT,
|
||||||
|
Prednastaveno BIT, Sklad NVARCHAR(30), VyrStredisko NVARCHAR(30), IDPracoviste INT, mnoz_zad NUMERIC(19,6), Mnoz_nepotrebne NUMERIC(19,6), Mnoz_skut_realizovane NUMERIC(19,6),
|
||||||
|
Cena_real NUMERIC(19,6), Mnoz_odv NUMERIC(19,6), Cena_odv NUMERIC(19,6), priorita INT, vyssi INT, nizsi INT, DavkaTPV NUMERIC(19,6), pozice INT, Operace NVARCHAR(4),
|
||||||
|
FixniMnozstvi NUMERIC(19,6), mnozstvi NUMERIC(19,6), ProcZtrat NUMERIC(19,6), mnozstviSeZtratou NUMERIC(19,6), Prirez NUMERIC(19,6), Poznamka NVARCHAR(500), SZVyssi NVARCHAR(3),
|
||||||
|
RCVyssi NVARCHAR(30), Nazev1Vyssi NVARCHAR(100), SZNizsi NVARCHAR(3), RCNizsi NVARCHAR(30), Nazev1Nizsi NVARCHAR(100))
|
||||||
|
IF OBJECT_ID(N'tempdb..#apiOdved', N'U') IS NULL
|
||||||
|
CREATE TABLE #apiOdved (ID INT, IDPrikaz INT, Mnozstvi NUMERIC(19,6) DEFAULT 0.0)
|
||||||
|
|
||||||
|
INSERT #apiKusovnik (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV,
|
||||||
|
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, SZVyssi, RCVyssi, Nazev1Vyssi, SZNizsi, RCNizsi, Nazev1Nizsi)
|
||||||
|
SELECT PrKV.ID, PrKV.mnoz_zad*O.mnozstvi/P.kusy_zad - CASE WHEN @RespekExistDoklady=1 THEN PrKV.VydanoRefMnoz + (SELECT ISNULL(SUM(PZ2.prepmnozstvi*(PZ2.mnozstvi-PZ2.MnOdebrane) * PrKV2.RefMnoz / PrKV2.mnoz_zad), 0.0) FROM [dbo].[TabPohybyZbozi] PZ2
|
||||||
|
INNER JOIN [dbo].[TabDokladyZbozi] DZ2 ON (DZ2.ID=PZ2.IDDoklad AND DZ2.splneno=0)
|
||||||
|
INNER JOIN [dbo].[TabStavSkladu] SS2 ON (SS2.ID=PZ2.IDZboSklad)
|
||||||
|
INNER JOIN [dbo].[TabPrKVazby] PrKV2 ON (PrKV2.IDPrikaz=PZ2.IDPrikaz AND PrKV2.Doklad=PZ2.DokladPrikazu AND PrKV2.nizsi=SS2.IDKmenZbozi AND PrKV2.IDOdchylkyDo IS NULL)
|
||||||
|
WHERE PZ2.TypVyrobnihoDokladu=1 AND PZ2.IDPrikaz=PrKV.IDPrikaz AND PZ2.DokladPrikazu=PrKV.Doklad AND PZ2.Splneno=0 AND PZ2.druhPohybuZbo IN (2,4,9,10) AND PZ2.SkutecneDatReal IS NULL) ELSE 0.0 END, CASE WHEN @RespekExistDoklady=0 THEN O.mnozstvi END, CASE WHEN @RespekExistDoklady=0 THEN P.kusy_zad END,
|
||||||
|
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne, PrKV.Mnoz_skut_realizovane , PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||||
|
PrKV.mnozstvi , PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka, KZV.SkupZbo, KZV.RegCis, KZV.Nazev1, KZ.SkupZbo, KZ.RegCis, KZ.Nazev1
|
||||||
|
FROM (SELECT IDPrikaz=O1.IDPrikaz, Mnozstvi=SUM(O1.mnozstvi) + CASE WHEN @RespekExistDoklady=1 THEN MAX(P1.kusy_odved+P1.kusy_ztrac+P1.kusy_zmet) + (SELECT ISNULL(SUM(PZ1.prepmnozstvi*PZ1.mnozstvi), 0.0)
|
||||||
|
FROM [dbo].[TabPohybyZbozi] PZ1 WHERE PZ1.TypVyrobnihoDokladu=0 AND PZ1.IDPrikaz=O1.IDPrikaz AND PZ1.druhPohybuZbo=0 AND PZ1.SkutecneDatReal IS NULL) ELSE 0.0 END
|
||||||
|
FROM #apiOdved O1
|
||||||
|
INNER JOIN [dbo].[TabPrikaz] P1 ON (P1.ID=O1.IDPrikaz)
|
||||||
|
GROUP BY O1.IDPrikaz) O
|
||||||
|
INNER JOIN [dbo].[TabPrikaz] P ON (P.ID=O.IDPrikaz AND P.StavPrikazu IN (20,30,50))
|
||||||
|
INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN [dbo].[TabPrKVazby] PrKV ON (PrKV.IDPrikaz=O.IDPrikaz AND /*PrKV.predzpracovano=0 AND*/ PrKV.prednastaveno=1 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND PrKV.IDOdchylkyDo IS NULL)
|
||||||
|
INNER JOIN [dbo].[TabKmenZbozi] KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
LEFT JOIN [dbo].[TabKmenZbozi] KZV ON (KZV.ID=PrKV.vyssi AND KZV.sluzba=0)
|
||||||
|
WHERE (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0)
|
||||||
|
|
||||||
|
SELECT * FROM #apiKusovnik
|
||||||
153
_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
153
_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
-- dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||||
|
CREATE PROCEDURE dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||||
|
@idJson INT=NULL
|
||||||
|
AS
|
||||||
|
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT,
|
||||||
|
@cnt INT,
|
||||||
|
@datPorizeni DATETIME,
|
||||||
|
@errMsg NVARCHAR(500),
|
||||||
|
@bChyba BIT,
|
||||||
|
@iChyba INT,
|
||||||
|
@debugXml XML,
|
||||||
|
@aktDatum DATETIME,
|
||||||
|
@logTyp TINYINT,
|
||||||
|
@logText NVARCHAR(500),
|
||||||
|
@logInt INT,
|
||||||
|
@logStr NVARCHAR(255),
|
||||||
|
@log4Mail BIT=0
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@jsonString NVARCHAR(MAX),
|
||||||
|
@jsonString2 NVARCHAR(MAX),
|
||||||
|
@typDokum NVARCHAR(50),
|
||||||
|
@subtypDokum NVARCHAR(50),
|
||||||
|
@akce NVARCHAR(50),
|
||||||
|
@akceSource NVARCHAR(50),
|
||||||
|
@datumText NVARCHAR(25)
|
||||||
|
|
||||||
|
DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent INT)
|
||||||
|
|
||||||
|
|
||||||
|
-- vytvor pomocnou tabulku
|
||||||
|
/*
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||||||
|
DROP TABLE #TabJSONData
|
||||||
|
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
|
||||||
|
*/
|
||||||
|
DROP TABLE IF EXISTS #TabJSONData
|
||||||
|
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idJson IS NULL)
|
||||||
|
DECLARE j CURSOR LOCAL FOR
|
||||||
|
SELECT ID, JSONData, DatPorizeni
|
||||||
|
FROM dbo._hdc_ph_PrijataJsonData
|
||||||
|
WHERE DatZpracovani IS NULL
|
||||||
|
AND ISNULL(JSONData, N'')<>N''
|
||||||
|
ORDER BY DatPorizeni ASC
|
||||||
|
ELSE
|
||||||
|
DECLARE j CURSOR LOCAL FOR
|
||||||
|
SELECT ID, JSONData, DatPorizeni
|
||||||
|
FROM dbo._hdc_ph_PrijataJsonData
|
||||||
|
WHERE ID=@idJson
|
||||||
|
OPEN j
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM j INTO @idJson, @jsonString, @datPorizeni
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (ISJSON(@jsonString)=0)
|
||||||
|
CONTINUE
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred = @@TRANCOUNT
|
||||||
|
IF (@tranPred=0)
|
||||||
|
BEGIN TRAN
|
||||||
|
|
||||||
|
|
||||||
|
SET @datumText = NULL
|
||||||
|
-- smaz pomocnou tabulku
|
||||||
|
DELETE FROM #TabJSONData
|
||||||
|
INSERT #TabJSONData (doc) SELECT @jsonString
|
||||||
|
SELECT TOP(1) @akce = JSON_VALUE(doc, '$.action'), @akceSource = JSON_VALUE(doc, '$.source'), @datumText = JSON_VALUE(doc, '$.actionAt') FROM #TabJSONData
|
||||||
|
|
||||||
|
SET @akce = ISNULL(@akce, N'')
|
||||||
|
SET @akceSource = ISNULL(@akceSource, N'')
|
||||||
|
SET @datumText = ISNULL(@datumText, N'')
|
||||||
|
IF (@datumText<>N'')
|
||||||
|
SET @datPorizeni = CONVERT(datetime, @datumText, 120)
|
||||||
|
|
||||||
|
IF (@akce<>N'')
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET Akce=@akce WHERE ID=@idJson AND Akce IS NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF ISNULL( (SELECT COUNT(ID) FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson), 0)>=3
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson AND ISNULL(PosledniChyba,N'')=N'')
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=(SELECT TOP(1) LogText FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson ORDER BY DatPorizeni DESC) WHERE ID=@idJson
|
||||||
|
CONTINUE
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
SET @logTyp = 0
|
||||||
|
SET @logInt = NULL
|
||||||
|
SET @logStr = N''
|
||||||
|
SET @log4Mail = 0
|
||||||
|
SET @logText = N''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- BEGIN: TLACITKO
|
||||||
|
IF (@akce=N'click' AND @akceSource='button')
|
||||||
|
BEGIN
|
||||||
|
SET @akce = N''
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE() WHERE ID=@idJson
|
||||||
|
END -- akce: vyroba_zacatek
|
||||||
|
-- END: TLACITKO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=@errMsg WHERE ID=@idJson
|
||||||
|
|
||||||
|
IF (@logTyp>0)
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue, StrValue, IdJsonData, ForMail)
|
||||||
|
SELECT @logTyp, ISNULL(@logText, N'') + NCHAR(13)+NCHAR(10) + @errMsg, @logInt, @logStr, @idJson, @log4Mail
|
||||||
|
ELSE
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IdJsonData, ForMail) SELECT 1, N'Chyba zpracovani PrijataJsonData: ' + @errMsg, @idJson, 1
|
||||||
|
END CATCH
|
||||||
|
SET @logTyp=0
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE j
|
||||||
|
DEALLOCATE j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- pro jistotu
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||||||
|
DROP TABLE #TabJSONData
|
||||||
137
_custom/Rootvin/sql/ep_P01_HDCDZApi1.sql
Normal file
137
_custom/Rootvin/sql/ep_P01_HDCDZApi1.sql
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
-- dbo.ep_P01_HDCDZApi1
|
||||||
|
CREATE PROCEDURE dbo.ep_P01_HDCDZApi1
|
||||||
|
@IDDoklad INT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
-- vola se na konci procesu realizace prijemky (po uskutecneni prijmu ale pred konecnym COMMIT TRAN)
|
||||||
|
-- nastaveni skladu lze ovlivnit pres #TabDefiniceProP01 (HlavniSkladMat NVARCHAR(30), TechnologickySklad NVARCHAR(30), SkladVyrobaPekarna NVARCHAR(30) )
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT,
|
||||||
|
@cnt INT,
|
||||||
|
@errMsg NVARCHAR(500),
|
||||||
|
@bChyba BIT,
|
||||||
|
@iChyba INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@sklHlavni NVARCHAR(30),
|
||||||
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklPekarna NVARCHAR(30),
|
||||||
|
@sklPrijem NVARCHAR(30)
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@sklDokl NVARCHAR(30),
|
||||||
|
@radaDokl NVARCHAR(3),
|
||||||
|
@cOrg INT,
|
||||||
|
@idDZDst INT,
|
||||||
|
@dpz TINYINT,
|
||||||
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzDatum DATETIME,
|
||||||
|
@datReal DATETIME,
|
||||||
|
@vyrCis NVARCHAR(100),
|
||||||
|
@nazevVyrCis NVARCHAR(100),
|
||||||
|
@poslVyrCis NVARCHAR(100),
|
||||||
|
@idVCK INT,
|
||||||
|
@idVCS INT,
|
||||||
|
@idVCP INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@idZboSklad INT,
|
||||||
|
@idKZ INT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @radaDokl=RadaDokladu, @cOrg=CisloOrg, @sklDokl=IDSklad, @dpz=DruhPohybuZbo, @dzMena=Mena, @dzDatum=DatPorizeni
|
||||||
|
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- zapis posledni prevedene sarze
|
||||||
|
IF (@radaDokl=N'281') AND (@sklDokl=@sklPekarna) // prijemka/prevodka na pekarnu
|
||||||
|
BEGIN
|
||||||
|
DECLARE p CURSOR LOCAL FOR
|
||||||
|
SELECT p.ID, p.IDZboSklad
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE p.IDDoklad=@IDDoklad
|
||||||
|
AND k.Sluzba=0
|
||||||
|
ORDER BY p.Poradi
|
||||||
|
OPEN p
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM p INTO @idPZ, @idZboSklad
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @poslVyrCis = N''
|
||||||
|
DECLARE v CURSOR LOCAL FOR
|
||||||
|
SELECT ID, Nazev
|
||||||
|
FROM dbo.TabVyrCP
|
||||||
|
WHERE IDPolozkaDokladu=@idPZ
|
||||||
|
AND TRIM(ISNULL(Nazev,N''))<>N''
|
||||||
|
ORDER BY ID
|
||||||
|
OPEN v
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM v INTO @idVCP, @vyrCis
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
SET @poslVyrCis = @vyrCis
|
||||||
|
END
|
||||||
|
CLOSE v
|
||||||
|
DEALLOCATE v
|
||||||
|
|
||||||
|
IF (@poslVyrCis<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabStavSkladu_EXT WHERE ID=@idZboSklad)
|
||||||
|
INSERT dbo.TabStavSkladu_EXT (ID) VALUES (@idZboSklad)
|
||||||
|
UPDATE dbo.TabStavSkladu_EXT SET _Prevod_PosledniSarze=@poslVyrCis WHERE ID=@idZboSklad
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE p
|
||||||
|
DEALLOCATE p
|
||||||
|
END -- @radaDokl 281
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- kopie prevodkove prijemky ze skladu materialu na sklad Vyroba/Pekarna
|
||||||
|
-- na "zrcadlovy" technologicky sklad (neni uctovany), ktery slouzi jen pro vydejky z Vyrobnich prikazu
|
||||||
|
-- z tech se denne generuje sumacni na hlavnim sklade
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabDefiniceProP01', N'U') IS NOT NULL
|
||||||
|
SELECT TOP(1) @sklHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #TabDefiniceProP01
|
||||||
|
IF (@sklHlavni IS NULL)
|
||||||
|
SELECT @sklHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technologick<EFBFBD> sklad%v<>dej%'
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
||||||
|
|
||||||
|
|
||||||
|
-- jen prijemka/prevodka na sklad Pekarna (211)
|
||||||
|
IF (@dpz=0) AND (@radaDokl IN (N'281')) AND (@sklDokl=@sklPekarna) AND (@sklTechnolog IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklTechnolog, @DruhPohybu=@dpz, @RadaDokladu=@radaDokl,
|
||||||
|
@Mena=@dzMena, @CisloOrg=@cOrg, @DatumPorizeni=@dzDatum
|
||||||
|
IF (@idDZDst IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @datReal=DatRealizace FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
|
||||||
|
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idDZDst, @IDDokladSrc=@IDDoklad, @CisloOrgCil=@cOrg, @MUCil=NULL, @MenaCil=@dzMena,
|
||||||
|
@KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL,
|
||||||
|
@StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL,
|
||||||
|
@PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1,
|
||||||
|
@SlevaCil=NULL, @VytvaretDokladovouVazbu=0, @VytvaretPolozkovouVazbu=0, @ChybaSkladana=@errMsg OUT,
|
||||||
|
@KopirovaniDokladu=1
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZDst)
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZDst, @DatumRealizace=@datReal, @Uzivatel=0, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
|
END
|
||||||
|
|
||||||
|
END -- prijmka radaDokl 281, prijemkovy sklad Vyroba pekarna ci podobny, technologicky sklad vyplneny
|
||||||
178
_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
Normal file
178
_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
-- dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
||||||
|
@IDDoklad INT,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi nebo pluginu Pekerna !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT,
|
||||||
|
@uziv INT,
|
||||||
|
@bChyba BIT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@sklad NVARCHAR(30),
|
||||||
|
@datPorizeni DATETIME,
|
||||||
|
@datNasklad DATETIME,
|
||||||
|
@idDZ INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@idKZ INT,
|
||||||
|
@idSS INT,
|
||||||
|
@idSSPek INT,
|
||||||
|
@prepKoef NUMERIC(19,6),
|
||||||
|
@mnozPZ NUMERIC(19,6),
|
||||||
|
@mnozSkl NUMERIC(19,6),
|
||||||
|
@mnozNevyd NUMERIC(19,6),
|
||||||
|
@mnozChybi NUMERIC(19,6)
|
||||||
|
DECLARE
|
||||||
|
@sklMatHlavni NVARCHAR(30),
|
||||||
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklPekarna NVARCHAR(30),
|
||||||
|
@poslSarze NVARCHAR(100),
|
||||||
|
@poslPalList NVARCHAR(100)
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idDZNew INT,
|
||||||
|
@idPZNew INT,
|
||||||
|
@rDokl NVARCHAR(3)=N'292', -- rada dokladu pro prijem "nedostatecneho materialu" -> "Příjemka - vyrovnání do normy"
|
||||||
|
@dpz TINYINT,
|
||||||
|
@mnoz NUMERIC(19,6),
|
||||||
|
@vstC TINYINT,
|
||||||
|
@menaDZ NVARCHAR(3),
|
||||||
|
@kurzDZ NUMERIC(19,6),
|
||||||
|
@kurzE NUMERIC(19,6),
|
||||||
|
@jednM INT
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE @pol TABLE (IDZboSklad INT NOT NULL, Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0, Sarze NVARCHAR(100), PaletList NVARCHAR(100) )
|
||||||
|
DELETE FROM @pol
|
||||||
|
|
||||||
|
|
||||||
|
SET @uziv = 0
|
||||||
|
|
||||||
|
IF (@sklMatHlavni IS NULL)
|
||||||
|
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NOVÝ% sklad%výdej%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%výdej%'
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE c CURSOR LOCAL FOR
|
||||||
|
SELECT p.ID, p.IDDoklad, p.IDZboSklad, p.Mnozstvi, p.PrepMnozstvi, s.IDKmenZbozi, d.IDSklad, d.DatPorizeni
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
WHERE d.ID=@IDDoklad
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @idPZ, @idDZ, @idSS, @mnozPZ, @prepKoef, @idKZ, @sklad, @datPorizeni
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @mnozPZ = @mnozPZ * @prepKoef
|
||||||
|
SET @mnozNevyd = ISNULL( (SELECT SUM(p.Mnozstvi*p.PrepMnozstvi) FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
|
||||||
|
WHERE p.IDZboSklad=@idSS
|
||||||
|
AND p.IDDoklad<>@idDZ
|
||||||
|
AND p.Mnozstvi>0
|
||||||
|
AND d.DruhPohybuZbo IN (2,4)
|
||||||
|
AND d.Realizovano=0
|
||||||
|
AND d.DatPorizeni<@datPorizeni)
|
||||||
|
, 0)
|
||||||
|
SET @mnozSkl = ISNULL( (SELECT Mnozstvi FROM dbo.TabStavSkladu WHERE ID=@idSS), 0)
|
||||||
|
SET @mnozChybi = @mnozSkl - @mnozPZ - @mnozNevyd
|
||||||
|
IF (@mnozChybi>0)
|
||||||
|
BEGIN
|
||||||
|
SET @idSSPek = NULL
|
||||||
|
IF (@sklPekarna IS NOT NULL)
|
||||||
|
SELECT @idSSPek=ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklPekarna AND IDKmenZbozi=@idKZ
|
||||||
|
SELECT @poslSarze=_Prevod_PosledniSarze, @poslPalList=_Prevod_PosledniPaletList
|
||||||
|
FROM dbo.TabStavSkladu_EXT WHERE ID=@idSSPek
|
||||||
|
|
||||||
|
UPDATE @pol SET Mnozstvi = Mnozstvi + @mnozChybi WHERE IDZboSklad=@idSS
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
INSERT @pol (IDZboSklad, Mnozstvi, Sarze, PaletList) SELECT @idSS, @mnozChybi, @poslSarze, @poslPalList
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
|
|
||||||
|
-- pokud mam polozky na doplneni, udelej doklad a realizuj ho
|
||||||
|
IF EXISTS(SELECT 1 FROM @pol)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred=@@TRANCOUNT
|
||||||
|
IF (@tranPred=0)
|
||||||
|
BEGIN TRAN
|
||||||
|
|
||||||
|
SET @datNasklad = (SELECT MIN(d.DatPorizeni) FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
|
||||||
|
WHERE p.Mnozstvi>0 AND d.DruhPohybuZbo IN (2,4) AND d.Realizovano=0 AND p.IDZboSklad IN (SELECT IDZboSklad FROM @pol))
|
||||||
|
IF (@datNasklad IS NULL)
|
||||||
|
SET @datNasklad = DATEADD(second, -5, @datPorizeni)
|
||||||
|
|
||||||
|
SET @dpz=0
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZNew OUT, @Sklad=@sklad, @DruhPohybu=@dpz, @RadaDokladu=@rDokl, @CisloOrg=0, @DatumPorizeni=@datNasklad
|
||||||
|
IF (@idDZNew IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @menaDZ=Mena, @vstC=VstupniCena, @kurzDZ=Kurz, @kurzE=KurzEuro, @jednM=JednotkaMeny FROM dbo.TabDokladyZbozi WHERE ID=@idDZNew
|
||||||
|
|
||||||
|
DECLARE c CURSOR LOCAL FOR
|
||||||
|
SELECT IDZboSklad, Mnozstvi, ISNULL(Sarze,N''), ISNULL(PaletList,N'') FROM @pol
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @idSS, @mnoz, @poslSarze, @poslPalList
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZNew OUT, @IDDoklad=@idDZNew, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ,
|
||||||
|
@Kurz=@kurzDZ, @KurzEuro=@kurzE, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0,
|
||||||
|
@VstupniCena=@vstC, @Mnozstvi=@mnoz
|
||||||
|
IF (@idPZNew IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF (@poslSarze<>N'') OR (@poslPalList<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZNew)
|
||||||
|
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZNew)
|
||||||
|
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@poslSarze, _Vyroba_PaletList=@poslPalList WHERE ID=@idPZNew
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZNew
|
||||||
|
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=@idDZ, @AktualizaceSlev=0
|
||||||
|
-- realizace
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZNew, @DatumRealizace=@datNasklad, @Uzivatel=@uziv, @BylaChyba=@bChyba OUT
|
||||||
|
|
||||||
|
END
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
299
_custom/Rootvin/sql/ep_Vyroba_GenOdvodZeMzdy.sql
Normal file
299
_custom/Rootvin/sql/ep_Vyroba_GenOdvodZeMzdy.sql
Normal file
@ -0,0 +1,299 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||||
|
@IDMzdy INT=NULL,
|
||||||
|
@bezVyrCis BIT=1,
|
||||||
|
@radaOdvod NVARCHAR(3)=NULL,
|
||||||
|
@skladOdvod NVARCHAR(30)=NULL,
|
||||||
|
@realizujPrijem BIT=0,
|
||||||
|
@prevodDoVyssiho BIT=0,
|
||||||
|
@kopiiNaTechSklad BIT=0,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
-- konfiguraci lze ovlivnit pres tabulku #HDCTabGenOdvodZeMzdyKonfig
|
||||||
|
-- pozor, v tom pripade musi byt na rade prikazu sklad pro generovani odvodu roven NULL
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@aktDatum DATETIME=GETDATE(),
|
||||||
|
@bChyba BIT,
|
||||||
|
@ret INT,
|
||||||
|
@jeOdvOper BIT=0,
|
||||||
|
@idUziv INT,
|
||||||
|
@IDPrikaz INT,
|
||||||
|
@IDZakazModif INT,
|
||||||
|
@IDPrikazVyssi INT,
|
||||||
|
@doklKV INT,
|
||||||
|
@IDKmen INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@NekontrolMnozOdvedFinal BIT=0,
|
||||||
|
@mnozstvi NUMERIC(19,6)=0,
|
||||||
|
@radaOdvNaSklad NVARCHAR(3)=N'273',
|
||||||
|
@sklProOdvod NVARCHAR(30)=N'261',
|
||||||
|
@radaVPr NVARCHAR(10),
|
||||||
|
@idPrij INT,
|
||||||
|
@idPrijKopie INT,
|
||||||
|
@sklTechnicky NVARCHAR(30),
|
||||||
|
@dpz TINYINT,
|
||||||
|
@dzDatum DATETIME,
|
||||||
|
@dzMena NVARCHAR(3)
|
||||||
|
DECLARE
|
||||||
|
@idDZPomocPrijem INT,
|
||||||
|
@idPZPomocPrijem INT,
|
||||||
|
@idSSPomocPrijem INT,
|
||||||
|
@mnozPrijem NUMERIC(19,6)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @jeOdvOper=pp.Odvadeci
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky pmz
|
||||||
|
INNER JOIN dbo.TabPrPostup pp ON (pp.IDPrikaz=pmz.IDPrikaz AND pp.Doklad=pmz.DokladPrPostup AND pp.Alt=pmz.AltPrPostup AND pp.IDOdchylkyDo IS NULL)
|
||||||
|
WHERE pmz.ID=@IDMzdy
|
||||||
|
IF (@jeOdvOper=0)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||||
|
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||||
|
SET @idUziv = ISNULL(@idUziv, 0)
|
||||||
|
|
||||||
|
|
||||||
|
-- CREATE TABLE #HDCTabGenOdvodZeMzdyKonfig (RadaOdvodNaSklad NVARCHAR(3), SkladProOdvod NVARCHAR(30), BezVyrobnichCisel BIT=0, IDUziv INT)
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabGenOdvodZeMzdyKonfig', N'U') IS NOT NULL
|
||||||
|
SELECT TOP(1) @radaOdvNaSklad=ISNULL(RadaOdvodNaSklad, @radaOdvNaSklad), @sklProOdvod=ISNULL(SkladProOdvod, @sklProOdvod),
|
||||||
|
@bezVyrCis=ISNULL(BezVyrobnichCisel, @bezVyrCis), @idUziv=ISNULL(IDUziv, @idUziv)
|
||||||
|
FROM #HDCTabGenOdvodZeMzdyKonfig
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklTechnicky IS NULL)
|
||||||
|
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%'
|
||||||
|
IF (@sklTechnicky IS NULL)
|
||||||
|
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabOdved
|
||||||
|
CREATE TABLE #TabOdved (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
IDDilec INT NOT NULL,
|
||||||
|
IDZakazModif INT NULL,
|
||||||
|
IDZakazka INT NULL,
|
||||||
|
maxMnozstvi NUMERIC(19,6) NULL,
|
||||||
|
mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
EvidJednotka NUMERIC(19,6) NOT NULL,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
KodUmisteni NVARCHAR(15) NULL,
|
||||||
|
IDPohZbo INT NULL,
|
||||||
|
PomVnoreni INT NULL,
|
||||||
|
StavPrikazu TINYINT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabOdved_IDMzdy
|
||||||
|
CREATE TABLE #TabOdved_IDMzdy (IDPrikaz int, IDMzdy int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabVyrCisProGenOdv
|
||||||
|
CREATE TABLE #TabVyrCisProGenOdv (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDOdvedeni INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
VyrCislo NVARCHAR(100) NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
MaxMnozstvi NUMERIC(19,6) NULL,
|
||||||
|
IDVyrCP INT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPolotovProGenOdv
|
||||||
|
CREATE TABLE #TabPolotovProGenOdv (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDOdvedeni INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
Doklad INT NOT NULL,
|
||||||
|
IDDilec INT NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
MaxMnozstvi NUMERIC(19,6) NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabGenPrijem
|
||||||
|
CREATE TABLE #TabGenPrijem (ID INT NOT NULL, PRIMARY KEY(ID))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky WHERE GenerovanoOdvadeni=1 AND ID=@IDMzdy)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @mnozstvi=kusy_odv FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
|
|
||||||
|
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanoOdvadeni=1 WHERE ID=@IDMzdy
|
||||||
|
IF (@@ROWCOUNT=0) RETURN
|
||||||
|
IF @mnozstvi<=0.0 RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @IDPrikaz=IDPrikaz FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
|
SELECT @radaVPr=Rada, @IDKmen=IDTabKmen, @IDZakazModif=IDZakazModif, @IDPrikazVyssi=IDPrikazVyssi
|
||||||
|
FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||||
|
|
||||||
|
-- nastav sklad pro odvod podle karty
|
||||||
|
IF (@sklProOdvod IS NULL)
|
||||||
|
SELECT @sklProOdvod=VychoziSklad FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen
|
||||||
|
|
||||||
|
-- pripadne zkus podle rady prikazu
|
||||||
|
SELECT @radaOdvNaSklad=CASE WHEN RadaDokl_OdvedeniPrikazu IS NULL THEN @radaOdvNaSklad ELSE RadaDokl_OdvedeniPrikazu END,
|
||||||
|
@sklProOdvod=CASE WHEN PrijemVyrDil_SkladProGenHlavDZ IS NULL THEN @sklProOdvod ELSE PrijemVyrDil_SkladProGenHlavDZ END
|
||||||
|
FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr
|
||||||
|
|
||||||
|
|
||||||
|
IF (@radaOdvod IS NOT NULL)
|
||||||
|
SET @radaOdvNaSklad=@radaOdvod
|
||||||
|
IF (@skladOdvod IS NOT NULL)
|
||||||
|
SET @sklProOdvod = @skladOdvod
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnozstvi>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnozstvi END WHERE IDPrikaz=@IDPrikaz
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
INSERT INTO #tabOdved (IDPrikaz, IDDilec, IDZakazModif, IDZakazka, maxMnozstvi, EvidJednotka, mnozstvi, sklad, StavPrikazu)
|
||||||
|
SELECT P.ID,
|
||||||
|
CASE WHEN ISNULL(ParKZ.OdvadetNaZaklVari,0)=0 THEN P.IDTabKmen ELSE KZ.IDKusovnik END,
|
||||||
|
ZMD.IDZakazModif,
|
||||||
|
P.IDZakazka,
|
||||||
|
CASE WHEN @NekontrolMnozOdvedFinal=1 THEN NULL ELSE P.kusy_zive END,
|
||||||
|
P.EvidJednotka,
|
||||||
|
CASE WHEN @NekontrolMnozOdvedFinal=0 AND @mnozstvi>P.kusy_zive THEN P.kusy_zive ELSE @mnozstvi END,
|
||||||
|
P.sklad,
|
||||||
|
P.StavPrikazu
|
||||||
|
FROM dbo.TabPrikaz P
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=P.IDTabKmen)
|
||||||
|
LEFT OUTER JOIN dbo.TabZakazModifDilce ZMD ON (ZMD.IDZakazModif=P.IDZakazModif AND ZMD.IDKmenZbozi=KZ.ID)
|
||||||
|
LEFT OUTER JOIN dbo.TabParKmZ ParKZ ON (ParKZ.IDKmenZbozi=P.IDTabKmen)
|
||||||
|
WHERE P.ID=@IDPrikaz AND
|
||||||
|
(CASE WHEN @NekontrolMnozOdvedFinal=0 AND @mnozstvi>P.kusy_zive THEN P.kusy_zive ELSE @mnozstvi END)>0
|
||||||
|
INSERT INTO #TabOdved_IDMzdy (IDPrikaz, IDMzdy) VALUES (@IDPrikaz, @IDMzdy)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE O SET maxMnozstvi=CASE WHEN RP.NekontrolMnozOdvedFinal=1 THEN NULL ELSE P.kusy_zive END
|
||||||
|
FROM #tabOdved O
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=O.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
|
||||||
|
UPDATE #tabOdved SET mnozstvi=maxMnozstvi WHERE maxMnozstvi IS NOT NULL AND mnozstvi>maxMnozstvi
|
||||||
|
DELETE #TabVyrCisProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||||
|
DELETE #TabPolotovProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||||
|
DELETE #tabOdved WHERE Mnozstvi<=0.0
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklProOdvod IS NOT NULL)
|
||||||
|
UPDATE #tabOdved SET Sklad=@sklProOdvod
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EXEC dbo.hp_PrednabidniTabVyrCisProGenOdv @ProIDPrikaz=NULL
|
||||||
|
IF (@bezVyrCis=1)
|
||||||
|
DELETE #TabVyrCisProGenOdv
|
||||||
|
|
||||||
|
|
||||||
|
IF (@prevodDoVyssiho=0)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @ret=dbo.hp_OdvedeniPrikazu @RadaDokladu=@radaOdvNaSklad, @IDObdobi=NULL, @KonecneOdvedeni=0, @DatPorizeni=NULL, @SekejZakazky=1, @SekejPrikazy=1
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = 'Chyba pri odvadeni: ' + ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
IF (@IDPrikazVyssi IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabOdved_IDMzdy', N'U') IS NOT NULL
|
||||||
|
DELETE FROM #TabOdved_IDMzdy
|
||||||
|
INSERT #TabOdved_IDMzdy (IDPrikaz, IDMzdy) SELECT @idPrikaz, @idMzdy
|
||||||
|
|
||||||
|
SET @doklKV = (SELECT ID FROM dbo.TabPrKVazby WHERE IDPrikaz=@IDPrikazVyssi AND nizsi=@IDKmen AND IDOdchylkyDo IS NULL)
|
||||||
|
|
||||||
|
EXEC @idPZ=dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDatum, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz, @IDPrikazCil=@IDPrikazVyssi,
|
||||||
|
@Doklad=@doklKV, @IDDilec=@IDKmen, @mnozstvi=@mnozstvi, @IDOdvedeniVC=0, @IDZakazModif=@IDZakazModif
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabGenPrijem', N'U') IS NOT NULL
|
||||||
|
DELETE FROM #TabGenPrijem
|
||||||
|
END -- @IDPrikazVyssi IS NOT NULL
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE prij CURSOR LOCAL FOR
|
||||||
|
SELECT ID FROM #TabGenPrijem
|
||||||
|
OPEN prij
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM prij INTO @idPrij
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
-- kopie na technologicky sklad, aby se mohly delat vydejky
|
||||||
|
SET @idPrijKopie = NULL
|
||||||
|
IF (@kopiiNaTechSklad=1) AND (@sklTechnicky IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @dpz=DruhPohybuZbo, @dzDatum=DatPorizeni, @dzMena=Mena FROM dbo.TabPohybyZbozi WHERE ID=@idPrij
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idPrijKopie OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaOdvNaSklad,
|
||||||
|
@Mena=@dzMena, @CisloOrg=0, @DatumPorizeni=@dzDatum
|
||||||
|
IF (@idPrijKopie IS NOT NULL)
|
||||||
|
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idPrijKopie, @IDDokladSrc=@idPrij, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=NULL,
|
||||||
|
@KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL,
|
||||||
|
@StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL,
|
||||||
|
@PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1,
|
||||||
|
@SlevaCil=NULL, @VytvaretDokladovouVazbu=0, @VytvaretPolozkovouVazbu=0, @ChybaSkladana=@errMsg OUT,
|
||||||
|
@KopirovaniDokladu=0
|
||||||
|
END -- kopii na TechSklad
|
||||||
|
|
||||||
|
IF (@realizujPrijem=1)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
|
IF (@idPrijKopie IS NOT NULL)
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrijKopie, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE prij
|
||||||
|
DEALLOCATE prij
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni
|
||||||
|
DROP TABLE IF EXISTS #TabGenPrijem
|
||||||
|
DROP TABLE IF EXISTS #TabPolotovProGenOdv
|
||||||
|
DROP TABLE IF EXISTS #TabVyrCisProGenOdv
|
||||||
|
DROP TABLE IF EXISTS #TabOdved_IDMzdy
|
||||||
|
DROP TABLE IF EXISTS #TabOdved
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #HDCTabGenOdvodZeMzdyKonfig
|
||||||
503
_custom/Rootvin/sql/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
503
_custom/Rootvin/sql/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
@ -0,0 +1,503 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenVydejZeMzdy
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenVydejZeMzdy
|
||||||
|
@IDMzdy INT=NULL,
|
||||||
|
@IDDoklad INT=NULL,
|
||||||
|
@spotrebaTesto BIT=0,
|
||||||
|
@spotreba702 BIT=0,
|
||||||
|
@smazVydejTesto BIT=0,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT,
|
||||||
|
@extTab NVARCHAR(50)=NULL,
|
||||||
|
@vydejAll BIT=0,
|
||||||
|
@realizujVydej BIT=0,
|
||||||
|
@denSmena NVARCHAR(15)=NULL,
|
||||||
|
@sklVydej NVARCHAR(30)=N'261',
|
||||||
|
@radaVydej NVARCHAR(3)=N'223',
|
||||||
|
@respExistDokl BIT=1
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
-- @extTab - tabulka, do ktere budou vraceny pohyby vydejky @extTab (ID INT NOT NULL, IDPohZbo INT NOT NULL)
|
||||||
|
-- @vydejAll - bude vydano vse, nejen kde jde splnena podminka TabPrKVazby - dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad
|
||||||
|
-- pokud existuje objekt #HDCTabPrKVazbyGenPredna, jedu vydej podle nej
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@bChyba BIT,
|
||||||
|
@opakReal BIT,
|
||||||
|
@retVal INT=0,
|
||||||
|
@errID int,
|
||||||
|
@sql NVARCHAR(1000),
|
||||||
|
@idUziv INT=0,
|
||||||
|
@idZam INT,
|
||||||
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklMatHlavni NVARCHAR(30),
|
||||||
|
@sklPekarna NVARCHAR(30),
|
||||||
|
@szDilec NVARCHAR(3)
|
||||||
|
DECLARE
|
||||||
|
@idDZPomocPrij INT,
|
||||||
|
@radaPrijem NVARCHAR(3)='292',
|
||||||
|
@menaPrij NVARCHAR(3),
|
||||||
|
@kurzPrij NUMERIC(19,6),
|
||||||
|
@kurzPrijE NUMERIC(19,6),
|
||||||
|
@vstCPrij TINYINT,
|
||||||
|
@jednMPrij INT,
|
||||||
|
@idPZPomocPrij INT,
|
||||||
|
@idSSPomocPrij INT,
|
||||||
|
@mnozSklad NUMERIC(19,6),
|
||||||
|
@mnozVydej NUMERIC(19,6),
|
||||||
|
@mnozPrij NUMERIC(19,6)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||||
|
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||||
|
SET @idUziv = ISNULL(@idUziv, 0)
|
||||||
|
|
||||||
|
|
||||||
|
SET @denSmena = ISNULL(@denSmena, N'')
|
||||||
|
IF (@sklMatHlavni IS NULL)
|
||||||
|
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
||||||
|
BEGIN
|
||||||
|
SELECT @retVal=MAX(ID) FROM dbo.TabPrikazMzdyAZmetky
|
||||||
|
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, @retVal)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, 1)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||||
|
CREATE TABLE #TabPrKVazbyGen (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
Generuj BIT NOT NULL DEFAULT 1,
|
||||||
|
PoKorekciDat BIT NOT NULL DEFAULT 0,
|
||||||
|
IDPrKV INT NOT NULL,
|
||||||
|
Doklad INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
Prednastaveno BIT NOT NULL DEFAULT 1,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
VyrStredisko NVARCHAR(30) NULL,
|
||||||
|
IDPracoviste INT NULL,
|
||||||
|
mnoz_zad NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_nepotrebne NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_skut_realizovane NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_real NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
MnozstviMax NUMERIC(19,6) NULL,
|
||||||
|
PuvodniMnozstviPoz NUMERIC(19,6) NULL,
|
||||||
|
MnozstviPoz NUMERIC(19,6) NOT NULL,
|
||||||
|
PomMnozPoz NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
IDPohZbo INT NULL,
|
||||||
|
PoznamkaNaDoklad NVARCHAR(max) NULL,
|
||||||
|
priorita INT NOT NULL DEFAULT 0,
|
||||||
|
vyssi INT NOT NULL,
|
||||||
|
nizsi INT NOT NULL,
|
||||||
|
DavkaTPV NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
pozice NVARCHAR(100) NULL DEFAULT N'',
|
||||||
|
Operace NCHAR(4) NULL,
|
||||||
|
FixniMnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
ProcZtrat NUMERIC(5,2) NOT NULL DEFAULT 0,
|
||||||
|
mnozstviSeZtratou NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Prirez NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
Poznamka NTEXT NULL,
|
||||||
|
pom_pomer_A NUMERIC(19,6) NULL,
|
||||||
|
pom_pomer_B NUMERIC(19,6) NULL,
|
||||||
|
Dodavatel INT NULL,
|
||||||
|
MJ NVARCHAR(10) NULL,
|
||||||
|
mnoz_pozadovane AS (CONVERT(numeric(19,6),(CASE WHEN [mnoz_nepotrebne]>[mnoz_zad] THEN 0.0 ELSE [mnoz_zad] - [mnoz_nepotrebne] END))),
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||||
|
CREATE TABLE #TabPrKVazbyGen_IDMzdy (IDPrikaz int, Doklad int, IDMzdy int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||||
|
CREATE TABLE #TabPrKVazbyGenVC (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDPolozky INT NOT NULL,
|
||||||
|
VyrCislo NVARCHAR(100) NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
IDKmenZbozi INT NULL,
|
||||||
|
IDVyrCP INT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@RespektovatExistEvid bit,
|
||||||
|
@idDilec INT,
|
||||||
|
@IDPrikaz int=NULL,
|
||||||
|
@IDPrPostup INT=NULL,
|
||||||
|
@mnozstviPomer_A numeric(19,6),
|
||||||
|
@mnozstviPomer_B numeric(19,6),
|
||||||
|
@IDPrKV int,
|
||||||
|
@mnoz_zad numeric(19,6),
|
||||||
|
@PrKVDoklad int,
|
||||||
|
@PocetVazeb int,
|
||||||
|
@PrP_Doklad int
|
||||||
|
|
||||||
|
|
||||||
|
SET @RespektovatExistEvid = @respExistDokl
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @errID=NULL, @errMsg='', @PocetVazeb=0
|
||||||
|
SELECT @IDPrikaz=MZ.IDPrikaz, @mnozstviPomer_A=(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr), @mnozstviPomer_B=PrP.kusy_zad, @PrP_Doklad=PrP.Doklad,
|
||||||
|
@IDPrPostup=PrP.ID, @szDilec=k.SkupZbo
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ
|
||||||
|
INNER JOIN dbo.TabPrPostup PrP ON (PrP.IDPrikaz=MZ.IDPrikaz AND PrP.Doklad=MZ.DokladPrPostup AND PrP.Alt=MZ.AltPrPostup AND PrP.IDOdchylkyDo IS NULL)
|
||||||
|
INNER JOIN dbo.TabPrikaz vp ON (vp.ID=MZ.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=vp.IDTabKmen)
|
||||||
|
WHERE MZ.ID=@IDMzdy
|
||||||
|
|
||||||
|
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanaMatVydejka=1 WHERE ID=@IDMzdy
|
||||||
|
-- pokud uz byla generovana vydejka, skonci
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
RETURN 0
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @idZam=Zamestnanec FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
|
SELECT @idDilec = IDTabKmen FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGenPredna', N'U') IS NULL
|
||||||
|
BEGIN
|
||||||
|
IF (@mnozstviPomer_A<=0.0)
|
||||||
|
RETURN -1
|
||||||
|
|
||||||
|
IF (@vydejAll=1)
|
||||||
|
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||||
|
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||||
|
PrKV.IDPrikaz=@IDPrikaz AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||||
|
ELSE
|
||||||
|
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||||
|
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||||
|
PrKV.IDPrikaz=@IDPrikaz AND dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||||
|
OPEN crPom1334
|
||||||
|
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||||
|
WHILE @@fetch_status=0
|
||||||
|
BEGIN
|
||||||
|
UPDATE #TabPrKVazbyGen SET MnozstviPoz=@mnoz_zad * (pom_pomer_A+@mnozstviPomer_A)/pom_pomer_B, pom_pomer_A=pom_pomer_A+@mnozstviPomer_A
|
||||||
|
WHERE IDPrKV=@IDPrKV
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
BEGIN
|
||||||
|
IF @RespektovatExistEvid=1
|
||||||
|
SELECT @mnozstviPomer_A=SUM(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr)
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ WHERE MZ.IDPrikaz=@IDPrikaz AND MZ.DokladPrPostup=@PrP_Doklad AND MZ.GenerovanaMatVydejka=1
|
||||||
|
INSERT INTO #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad,
|
||||||
|
Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,
|
||||||
|
mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka)
|
||||||
|
SELECT PrKV.ID,
|
||||||
|
PrKV.mnoz_zad * @mnozstviPomer_A/@mnozstviPomer_B,
|
||||||
|
@mnozstviPomer_A, @mnozstviPomer_B,
|
||||||
|
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne,
|
||||||
|
PrKV.Mnoz_skut_realizovane, PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||||
|
PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
WHERE PrKV.ID=@IDPrKV AND PrKV.uzavreno=0
|
||||||
|
END
|
||||||
|
INSERT INTO #TabPrKVazbyGen_IDMzdy (IDPrikaz, Doklad, IDMzdy) VALUES (@IDPrikaz, @PrKVDoklad, @IDMzdy)
|
||||||
|
SET @PocetVazeb=@PocetVazeb + 1
|
||||||
|
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||||
|
END
|
||||||
|
CLOSE crPom1334
|
||||||
|
DEALLOCATE crPom1334
|
||||||
|
|
||||||
|
IF (@PocetVazeb<=0)
|
||||||
|
RETURN -2
|
||||||
|
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN -- pokud mam seznam na co vygenerovat vydejku, jedu podle nej
|
||||||
|
DELETE FROM #TabPrKVazbyGen
|
||||||
|
INSERT INTO #TabPrKVazbyGen
|
||||||
|
SELECT Generuj, PoKorekciDat, IDPrKV, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,
|
||||||
|
Cena_real, Mnoz_odv, Cena_odv, MnozstviMax, PuvodniMnozstviPoz, MnozstviPoz, PomMnozPoz, IDPohZbo, PoznamkaNaDoklad, priorita, vyssi, nizsi, DavkaTPV,
|
||||||
|
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, pom_pomer_A, pom_pomer_B, Dodavatel
|
||||||
|
FROM #HDCTabPrKVazbyGenPredna
|
||||||
|
DROP TABLE #HDCTabPrKVazbyGenPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
-- preddefinovana mzda pro provazani
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGen_IDMzdyPredna', N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM #TabPrKVazbyGen_IDMzdy
|
||||||
|
INSERT INTO #TabPrKVazbyGen_IDMzdy
|
||||||
|
SELECT IDPrikaz, Doklad, IDMzdy FROM #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||||
|
DROP TABLE #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EXEC dbo.hp_AktualizaceTabPrKVazbyGenVC @Vratka=0
|
||||||
|
UPDATE #TabPrKVazbyGen SET Generuj=1, Sklad=@sklVydej
|
||||||
|
|
||||||
|
|
||||||
|
IF (@smazVydejTesto=1)
|
||||||
|
BEGIN
|
||||||
|
-- vazba je primo na kartu testa
|
||||||
|
IF (@szDilec<>N'701') AND EXISTS (SELECT 1 FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701'))
|
||||||
|
DELETE FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701')
|
||||||
|
|
||||||
|
-- vazba je pres montaz SK702
|
||||||
|
IF (@szDilec<>N'701') AND EXISTS (SELECT 1 FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'702'))
|
||||||
|
DELETE FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701')
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||||
|
CREATE TABLE #TabGenRezVyd (ID int NOT NULL, PRIMARY KEY (ID))
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @retVal=dbo.hp_generujRezVyd @RadaDokladu=@radaVydej, @DruhPohybuZbo=NULL, @IDObdobi=0, @DatPorizeni=NULL, @SekejZakazky=0, @SekejPrikazy=0,
|
||||||
|
@IDExistDoklad=@IDDoklad, @SekejOperace=0
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = 'Chyba generovani vydeje: ' + ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idVyd INT,
|
||||||
|
@idKZ INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@idSS INT,
|
||||||
|
@poslSarze NVARCHAR(100),
|
||||||
|
@errMsg702 NVARCHAR(500),
|
||||||
|
@idKZ702 INT,
|
||||||
|
@idPrikaz702 INT,
|
||||||
|
@doklKV702 INT,
|
||||||
|
@doklOp702 INT,
|
||||||
|
@alt702 NCHAR(1),
|
||||||
|
@mnoz702 NUMERIC(19,6),
|
||||||
|
@idMzda702 INT,
|
||||||
|
@aktDat DATETIME
|
||||||
|
|
||||||
|
SET @aktDat = GETDATE()
|
||||||
|
|
||||||
|
|
||||||
|
-- potrebuju si vyrobit tisicikus ? musim pred realizaci vydejky na vyssi prikaz, udelam odvedenim prikazu na vyssi
|
||||||
|
/*
|
||||||
|
IF (@spotreba702=1)
|
||||||
|
BEGIN
|
||||||
|
DECLARE t CURSOR LOCAL FOR
|
||||||
|
SELECT k.ID, p.Mnozstvi
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE k.SkupZbo=N'702' AND k.Blokovano=0
|
||||||
|
OPEN t
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM t INTO @idKZ702, @mnoz702
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @idPrikaz702 = (SELECT ID FROM dbo.TabPrikaz WHERE IDPrikazVyssi=@IDPrikaz AND IDTabKmen=@idKZ702 AND StavPrikazu=30)
|
||||||
|
IF (@idPrikaz702 IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
-- evidence operace peceni
|
||||||
|
SELECT TOP(1) @doklOp702=Doklad, @alt702=Alt FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idPrikaz702
|
||||||
|
EXEC @idMzda702=dbo.hp_ZaevidujOperaci @IDPrikaz=@idPrikaz702, @Doklad=@doklOp702, @Alt=@alt702, @Datum=NULL, @Stav=1, @IDZam=@idZam, @Kusy_odv=@mnoz702
|
||||||
|
SET @idMzda702 = ISNULL(@idMzda702, 0)
|
||||||
|
IF (@idMzda702>0)
|
||||||
|
BEGIN
|
||||||
|
-- vydejku materialu nedelej, testo bylo uz odepsano svym prevedenim na vyssi
|
||||||
|
-- EXEC dbo.ep_Vyroba_GenVydejZeMzdy @IDMzdy=@idMzda702, @spotrebaTesto=1, @realizujVydej=1, @errMsg=@errMsg702 OUT
|
||||||
|
|
||||||
|
EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzda702, @realizujPrijem=1, @errMsg=@errMsg702 OUT
|
||||||
|
END
|
||||||
|
-- odvedeni na vyssi prikaz
|
||||||
|
SELECT TOP(1) @doklKV702=Doklad FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDPrikaz AND nizsi=@idKZ702
|
||||||
|
EXEC dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDat, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz702, @IDPrikazCil=@IDPrikaz,
|
||||||
|
@Doklad=@doklKV702, @IDDilec=@idKZ702, @mnozstvi=@mnoz702, @IDOdvedeniVC=0
|
||||||
|
END
|
||||||
|
END
|
||||||
|
CLOSE t
|
||||||
|
DEALLOCATE t
|
||||||
|
END
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE vyd CURSOR LOCAL FOR
|
||||||
|
SELECT ID FROM #TabGenRezVyd
|
||||||
|
OPEN vyd
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM vyd INTO @idVyd
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (@denSmena<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idVyd)
|
||||||
|
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idVyd)
|
||||||
|
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_DenSmena=@denSmena WHERE ID=@idVyd
|
||||||
|
END
|
||||||
|
|
||||||
|
DECLARE pV CURSOR LOCAL FOR
|
||||||
|
SELECT p.ID, k.ID
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE p.IDDoklad=@idVyd AND k.Sluzba=0
|
||||||
|
OPEN pV
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM pV INTO @idPZ, @idKZ
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklPekarna)
|
||||||
|
SET @poslSarze = ISNULL( (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS), N'')
|
||||||
|
IF (@poslSarze<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||||||
|
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||||||
|
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@poslSarze WHERE ID=@idPZ
|
||||||
|
END
|
||||||
|
END
|
||||||
|
CLOSE pV
|
||||||
|
DEALLOCATE pV
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- begin: prijemka nedostatecneho materialu
|
||||||
|
SET @idDZPomocPrij=NULL
|
||||||
|
DECLARE pomPrij CURSOR LOCAL FOR
|
||||||
|
SELECT p.IDZboSklad, p.Mnozstvi
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE p.IDDoklad=@idVyd
|
||||||
|
AND k.Material=1 AND k.Sluzba=0
|
||||||
|
OPEN pomPrij
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM pomPrij INTO @idSSPomocPrij, @mnozVydej
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @mnozSklad = ISNULL( (SELECT Mnozstvi+MnozstviKPrijmu-MnozstviKVydeji FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPrij), 0)
|
||||||
|
IF (@mnozVydej>@mnozSklad)
|
||||||
|
BEGIN
|
||||||
|
SET @mnozPrij = @mnozVydej - @mnozSklad
|
||||||
|
IF (@idDZPomocPrij IS NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZPomocPrij OUT, @Sklad=@sklTechnolog, @DruhPohybu=0, @RadaDokladu=@radaPrijem, @CisloOrg=0
|
||||||
|
SELECT @menaPrij=Mena, @kurzPrij=Kurz, @kurzPrijE=KurzEuro, @jednMPrij=JednotkaMeny, @vstCPrij=VstupniCena
|
||||||
|
FROM dbo.TabDokladyZbozi WHERE ID=@idDZPomocPrij
|
||||||
|
END
|
||||||
|
IF (@idDZPomocPrij IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZPomocPrij OUT, @IDDoklad=@idDZPomocPrij, @DruhPohybu=0, @CisloOrg=0, @IDZboSklad=@idSSPomocPrij,
|
||||||
|
@Mena=@menaPrij, @Kurz=@kurzPrij, @KurzEuro=@kurzPrijE, @JednotkaMeny=@jednMPrij, @SazbaSD=NULL, @SazbaDPH=NULL,
|
||||||
|
@ZakazanoDPH=NULL, @VstupniCena=@vstCPrij, @Mnozstvi=@mnozPrij, @PovolitDuplicitu=1
|
||||||
|
END
|
||||||
|
END
|
||||||
|
END
|
||||||
|
CLOSE pomPrij
|
||||||
|
DEALLOCATE pomPrij
|
||||||
|
IF (@idDZPomocPrij IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZPomocPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
-- end: prijemka nedostatecneho materialu
|
||||||
|
|
||||||
|
|
||||||
|
-- realizace vydejky
|
||||||
|
IF (@realizujVydej=1)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @opakReal=0
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
IF (CHARINDEX(N'71553', @errMsg)>0)
|
||||||
|
SET @opakReal=1
|
||||||
|
IF (@opakReal=0)
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba realizace v<>dejky p<><70>kazu: ' + @errMsg, @idVyd
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
IF (@opakReal=1)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu @IDDoklad=@idVyd, @errMsg=@errMsg OUT
|
||||||
|
IF (@errMsg=N'')
|
||||||
|
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||||
|
ELSE
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba korekce naskladneni pro vydejku: ' + @errMsg, @idVyd
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba opakovane realizace v<>dejky p<><70>kazu: ' + @errMsg, @idVyd
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE vyd
|
||||||
|
DEALLOCATE vyd
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@extTab IS NOT NULL) AND EXISTS(SELECT 1 FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL)
|
||||||
|
IF OBJECT_ID(@extTab, N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
SET @sql = N'DELETE FROM ' + @extTab
|
||||||
|
EXECUTE sp_executesql @sql
|
||||||
|
SET @sql = N'INSERT ' + @extTab + N' (ID, IDPohZbo) SELECT ID, IDPohZbo FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL'
|
||||||
|
EXECUTE sp_executesql @sql
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
-- uklid
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||||
|
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||||
|
|
||||||
|
|
||||||
75
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOper.sql
Normal file
75
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOper.sql
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
-- dbo.ep_Vyroba_InsertEvidRozpracOper
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOper
|
||||||
|
@IDZamestnance INT=NULL,
|
||||||
|
@IDPracoviste INT=NULL,
|
||||||
|
@IDStroje INT=NULL,
|
||||||
|
@CasZahajeni DATETIME=NULL,
|
||||||
|
@ErrMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idEROp INT=NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabEvidRozpracOper)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idEROp=MAX(ID) FROM dbo.TabEvidRozpracOper
|
||||||
|
DBCC CHECKIDENT(TabEvidRozpracOper, RESEED, @idEROp)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT(TabEvidRozpracOper, RESEED, 1)
|
||||||
|
SET @idEROp=NULL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@IDPracoviste IS NULL) AND (@IDStroje IS NOT NULL)
|
||||||
|
SELECT @IDPracoviste=IDPrac FROM dbo.TabCisStroju WHERE ID=@IDStroje
|
||||||
|
|
||||||
|
IF (@IDZamestnance IS NULL) OR (@IDPracoviste IS NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @ErrMsg = N'Neni zadan zamestnanec nebo pracoviste'
|
||||||
|
RETURN NULL
|
||||||
|
END
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
|
||||||
|
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @CasZahajeni = ISNULL(@CasZahajeni, GETDATE())
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred = @@TRANCOUNT
|
||||||
|
IF (@tranPred=0) BEGIN TRAN
|
||||||
|
|
||||||
|
INSERT dbo.TabEvidRozpracOper (IDZamestnance, CasZahajeni, IDPracoviste, IDStroje)
|
||||||
|
SELECT @IDZamestnance, @CasZahajeni, @IDPracoviste, @IDStroje
|
||||||
|
SET @idEROp = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
-- slepice
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_InsertEvidRozpracOper_Po', N'P') IS NOT NULL
|
||||||
|
EXEC dbo.ep_Vyroba_InsertEvidRozpracOper_Po @idEROp
|
||||||
|
|
||||||
|
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
SET @ErrMsg = ERROR_MESSAGE()
|
||||||
|
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, @ErrMsg
|
||||||
|
SET @idEROp = NULL
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
RETURN @idEROp
|
||||||
108
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOperPol.sql
Normal file
108
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOperPol.sql
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
-- dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
||||||
|
@IdEvidRozpOper INT,
|
||||||
|
@IdPrikaz INT,
|
||||||
|
@doklPrPost INT,
|
||||||
|
@altPrPost NCHAR(1),
|
||||||
|
@IDPaleta INT=NULL,
|
||||||
|
@IdVyrCis INT=NULL,
|
||||||
|
@cisloPL NVARCHAR(50),
|
||||||
|
@sarze NVARCHAR(30),
|
||||||
|
@mnozOdv NUMERIC(19,6)=0,
|
||||||
|
@skCas NUMERIC(19,6)=0,
|
||||||
|
@skCasT TINYINT=1,
|
||||||
|
@skCasObsl NUMERIC(19,6)=0,
|
||||||
|
@skCasObslT TINYINT=1
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@errMsg NVARCHAR(500),
|
||||||
|
@tranPred INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idEROpPol INT=NULL,
|
||||||
|
@idTemp INT=NULL,
|
||||||
|
@mnEROp NUMERIC(19,6),
|
||||||
|
@sumMnEROp NUMERIC(19,6)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'#TabExtKom', N'U') IS NULL
|
||||||
|
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabEvidRozpracOperR)
|
||||||
|
BEGIN
|
||||||
|
SELECT @idEROpPol=MAX(ID) FROM dbo.TabEvidRozpracOperR
|
||||||
|
DBCC CHECKIDENT(TabEvidRozpracOperR, RESEED, @idEROpPol)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT(TabEvidRozpracOperR, RESEED, 1)
|
||||||
|
SET @idEROpPol=NULL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @sarze = TRIM(ISNULL(@sarze, N''))
|
||||||
|
SET @cisloPL = TRIM(ISNULL(@cisloPL, N''))
|
||||||
|
|
||||||
|
IF (@IDPaleta IS NOT NULL) AND (@IDVyrCis IS NULL)
|
||||||
|
SELECT @idVyrCis=IDVyrCisPrikaz FROM dbo._TabVyroba_Palety WHERE ID=@IDPaleta
|
||||||
|
IF (@IDVyrCis IS NULL) AND (@cisloPL<>N'') AND (@IdPrikaz IS NOT NULL) AND (@sarze<>N'')
|
||||||
|
SET @IDVyrCis = (SELECT ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@IdPrikaz AND VyrCislo=@cisloPL AND Popis=@sarze)
|
||||||
|
IF (@IDVyrCis IS NULL) AND (@cisloPL<>N'') AND (@IdPrikaz IS NOT NULL)
|
||||||
|
SET @IDVyrCis = (SELECT ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@IdPrikaz AND VyrCislo=@cisloPL)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
SET @tranPred = @@TRANCOUNT
|
||||||
|
IF (@tranPred=0) BEGIN TRAN
|
||||||
|
|
||||||
|
INSERT dbo.TabEvidRozpracOperR (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, IDVyrCis, Mnoz_odv, Sk_cas, Sk_cas_T, Sk_cas_Obsluhy, Sk_cas_Obsluhy_T)
|
||||||
|
SELECT @IdEvidRozpOper, @IdPrikaz, @doklPrPost, @altPrPost, @IdVyrCis, @mnozOdv, @skCas, @skCasT, @skCasObsl, @skCasObslT
|
||||||
|
SET @idEROpPol = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
IF (@idEROpPol IS NOT NULL)
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabEvidRozpracOperR_EXT WHERE ID=@idEROpPol)
|
||||||
|
INSERT dbo.TabEvidRozpracOperR_EXT (ID) VALUES (@idEROpPol)
|
||||||
|
UPDATE dbo.TabEvidRozpracOperR_EXT SET _Sarze=@sarze WHERE ID=@idEROpPol
|
||||||
|
|
||||||
|
|
||||||
|
-- zapis koeficient
|
||||||
|
SET @sumMnEROp = ISNULL( (SELECT SUM(Mnoz_odv) FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@IdEvidRozpOper), 0)
|
||||||
|
DECLARE crLoc CURSOR LOCAL FOR
|
||||||
|
SELECT ID, Mnoz_odv FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@IdEvidRozpOper
|
||||||
|
OPEN crLoc
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM crLoc INTO @idTemp, @mnEROp
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
UPDATE dbo.TabEvidRozpracOperR_EXT SET _KoefMnoz=ROUND(@mnEROp/@sumMnEROp, 5) WHERE ID=@idTemp
|
||||||
|
END
|
||||||
|
CLOSE crLoc
|
||||||
|
DEALLOCATE crLoc
|
||||||
|
|
||||||
|
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
COMMIT TRAN
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF CURSOR_STATUS('local','crLoc')>=-1
|
||||||
|
BEGIN
|
||||||
|
CLOSE crLoc;
|
||||||
|
DEALLOCATE crLoc
|
||||||
|
END
|
||||||
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, ERROR_MESSAGE()
|
||||||
|
SET @idEROpPol = NULL
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
RETURN @idEROpPol
|
||||||
407
_custom/Rootvin/sql/szDilce
Normal file
407
_custom/Rootvin/sql/szDilce
Normal file
@ -0,0 +1,407 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenVydejZeMzdy
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenVydejZeMzdy
|
||||||
|
@IDMzdy INT=NULL,
|
||||||
|
@IDDoklad INT=NULL,
|
||||||
|
@spotrebaTesto BIT=0,
|
||||||
|
@spotreba702 BIT=0,
|
||||||
|
@smazVydejTesto BIT=0,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT,
|
||||||
|
@extTab NVARCHAR(50)=NULL,
|
||||||
|
@vydejAll BIT=0,
|
||||||
|
@realizujVydej BIT=0,
|
||||||
|
@denSmena NVARCHAR(15)=NULL,
|
||||||
|
@sklVydej NVARCHAR(30)=N'321',
|
||||||
|
@radaVydej NVARCHAR(3)=N'223'
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
-- @extTab - tabulka, do ktere budou vraceny pohyby vydejky @extTab (ID INT NOT NULL, IDPohZbo INT NOT NULL)
|
||||||
|
-- @vydejAll - bude vydano vse, nejen kde jde splnena podminka TabPrKVazby - dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad
|
||||||
|
-- pokud existuje objekt #HDCTabPrKVazbyGenPredna, jedu vydej podle nej
|
||||||
|
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@bChyba BIT,
|
||||||
|
@retVal INT=0,
|
||||||
|
@errID int,
|
||||||
|
@sql NVARCHAR(1000),
|
||||||
|
@idUziv INT=0,
|
||||||
|
@idZam INT,
|
||||||
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklMatHlavni NVARCHAR(30),
|
||||||
|
@sklPekarna NVARCHAR(30),
|
||||||
|
@szDilec NVARCHAR(3)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||||
|
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||||
|
SET @idUziv = ISNULL(@idUziv, 0)
|
||||||
|
|
||||||
|
|
||||||
|
SET @denSmena = ISNULL(@denSmena, N'')
|
||||||
|
IF (@sklMatHlavni IS NULL)
|
||||||
|
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<76> sklad - Materi<72>l'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technologick<63> sklad%v<>dej%'
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<>roba - Pek<65>rna'
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
||||||
|
BEGIN
|
||||||
|
SELECT @retVal=MAX(ID) FROM dbo.TabPrikazMzdyAZmetky
|
||||||
|
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, @retVal)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, 1)
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||||
|
CREATE TABLE #TabPrKVazbyGen (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
Generuj BIT NOT NULL DEFAULT 1,
|
||||||
|
PoKorekciDat BIT NOT NULL DEFAULT 0,
|
||||||
|
IDPrKV INT NOT NULL,
|
||||||
|
Doklad INT NOT NULL,
|
||||||
|
IDPrikaz INT NOT NULL,
|
||||||
|
Prednastaveno BIT NOT NULL DEFAULT 1,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
VyrStredisko NVARCHAR(30) NULL,
|
||||||
|
IDPracoviste INT NULL,
|
||||||
|
mnoz_zad NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_nepotrebne NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_skut_realizovane NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_real NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Mnoz_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Cena_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
MnozstviMax NUMERIC(19,6) NULL,
|
||||||
|
PuvodniMnozstviPoz NUMERIC(19,6) NULL,
|
||||||
|
MnozstviPoz NUMERIC(19,6) NOT NULL,
|
||||||
|
PomMnozPoz NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
IDPohZbo INT NULL,
|
||||||
|
PoznamkaNaDoklad NVARCHAR(max) NULL,
|
||||||
|
priorita INT NOT NULL DEFAULT 0,
|
||||||
|
vyssi INT NOT NULL,
|
||||||
|
nizsi INT NOT NULL,
|
||||||
|
DavkaTPV NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
pozice NVARCHAR(100) NULL DEFAULT N'',
|
||||||
|
Operace NCHAR(4) NULL,
|
||||||
|
FixniMnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
ProcZtrat NUMERIC(5,2) NOT NULL DEFAULT 0,
|
||||||
|
mnozstviSeZtratou NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||||
|
Prirez NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||||
|
Poznamka NTEXT NULL,
|
||||||
|
pom_pomer_A NUMERIC(19,6) NULL,
|
||||||
|
pom_pomer_B NUMERIC(19,6) NULL,
|
||||||
|
Dodavatel INT NULL,
|
||||||
|
MJ NVARCHAR(10) NULL,
|
||||||
|
mnoz_pozadovane AS (CONVERT(numeric(19,6),(CASE WHEN [mnoz_nepotrebne]>[mnoz_zad] THEN 0.0 ELSE [mnoz_zad] - [mnoz_nepotrebne] END))),
|
||||||
|
PRIMARY KEY (ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||||
|
CREATE TABLE #TabPrKVazbyGen_IDMzdy (IDPrikaz int, Doklad int, IDMzdy int)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||||
|
CREATE TABLE #TabPrKVazbyGenVC (
|
||||||
|
ID INT IDENTITY NOT NULL,
|
||||||
|
IDPolozky INT NOT NULL,
|
||||||
|
VyrCislo NVARCHAR(100) NOT NULL,
|
||||||
|
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||||
|
Sklad NVARCHAR(30) NULL,
|
||||||
|
IDKmenZbozi INT NULL,
|
||||||
|
IDVyrCP INT NULL,
|
||||||
|
PRIMARY KEY(ID)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@RespektovatExistEvid bit=0,
|
||||||
|
@idDilec INT,
|
||||||
|
@IDPrikaz int=NULL,
|
||||||
|
@IDPrPostup INT=NULL,
|
||||||
|
@mnozstviPomer_A numeric(19,6),
|
||||||
|
@mnozstviPomer_B numeric(19,6),
|
||||||
|
@IDPrKV int,
|
||||||
|
@mnoz_zad numeric(19,6),
|
||||||
|
@PrKVDoklad int,
|
||||||
|
@PocetVazeb int,
|
||||||
|
@PrP_Doklad int
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @errID=NULL, @errMsg='', @PocetVazeb=0
|
||||||
|
SELECT @IDPrikaz=MZ.IDPrikaz, @mnozstviPomer_A=(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr), @mnozstviPomer_B=PrP.kusy_zad, @PrP_Doklad=PrP.Doklad,
|
||||||
|
@IDPrPostup=PrP.ID, @szDilec=k.SkupZbo
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ
|
||||||
|
INNER JOIN dbo.TabPrPostup PrP ON (PrP.IDPrikaz=MZ.IDPrikaz AND PrP.Doklad=MZ.DokladPrPostup AND PrP.Alt=MZ.AltPrPostup AND PrP.IDOdchylkyDo IS NULL)
|
||||||
|
INNER JOIN dbo.TabPrikaz vp ON (vp.ID=MZ.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=vp.IDTabKmen)
|
||||||
|
WHERE MZ.ID=@IDMzdy
|
||||||
|
|
||||||
|
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanaMatVydejka=1 WHERE ID=@IDMzdy
|
||||||
|
-- pokud uz byla generovana vydejka, skonci
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
RETURN 0
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @idZam=Zamestnanec FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
|
SELECT @idDilec = IDTabKmen FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGenPredna', N'U') IS NULL
|
||||||
|
BEGIN
|
||||||
|
IF (@mnozstviPomer_A<=0.0)
|
||||||
|
RETURN -1
|
||||||
|
|
||||||
|
IF (@vydejAll=1)
|
||||||
|
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||||
|
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||||
|
PrKV.IDPrikaz=@IDPrikaz AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||||
|
ELSE
|
||||||
|
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||||
|
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||||
|
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||||
|
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||||
|
PrKV.IDPrikaz=@IDPrikaz AND dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||||
|
OPEN crPom1334
|
||||||
|
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||||
|
WHILE @@fetch_status=0
|
||||||
|
BEGIN
|
||||||
|
UPDATE #TabPrKVazbyGen SET MnozstviPoz=@mnoz_zad * (pom_pomer_A+@mnozstviPomer_A)/pom_pomer_B, pom_pomer_A=pom_pomer_A+@mnozstviPomer_A
|
||||||
|
WHERE IDPrKV=@IDPrKV
|
||||||
|
IF (@@ROWCOUNT=0)
|
||||||
|
BEGIN
|
||||||
|
IF @RespektovatExistEvid=1
|
||||||
|
SELECT @mnozstviPomer_A=SUM(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr)
|
||||||
|
FROM dbo.TabPrikazMzdyAZmetky MZ WHERE MZ.IDPrikaz=@IDPrikaz AND MZ.DokladPrPostup=@PrP_Doklad AND MZ.GenerovanaMatVydejka=1
|
||||||
|
INSERT INTO #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad,
|
||||||
|
Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,
|
||||||
|
mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka)
|
||||||
|
SELECT PrKV.ID,
|
||||||
|
PrKV.mnoz_zad * @mnozstviPomer_A/@mnozstviPomer_B,
|
||||||
|
@mnozstviPomer_A, @mnozstviPomer_B,
|
||||||
|
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne,
|
||||||
|
PrKV.Mnoz_skut_realizovane, PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||||
|
PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka
|
||||||
|
FROM dbo.TabPrKVazby PrKV
|
||||||
|
WHERE PrKV.ID=@IDPrKV AND PrKV.uzavreno=0
|
||||||
|
END
|
||||||
|
INSERT INTO #TabPrKVazbyGen_IDMzdy (IDPrikaz, Doklad, IDMzdy) VALUES (@IDPrikaz, @PrKVDoklad, @IDMzdy)
|
||||||
|
SET @PocetVazeb=@PocetVazeb + 1
|
||||||
|
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||||
|
END
|
||||||
|
CLOSE crPom1334
|
||||||
|
DEALLOCATE crPom1334
|
||||||
|
|
||||||
|
IF (@PocetVazeb<=0)
|
||||||
|
RETURN -2
|
||||||
|
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN -- pokud mam seznam na co vygenerovat vydejku, jedu podle nej
|
||||||
|
DELETE FROM #TabPrKVazbyGen
|
||||||
|
INSERT INTO #TabPrKVazbyGen
|
||||||
|
SELECT Generuj, PoKorekciDat, IDPrKV, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,
|
||||||
|
Cena_real, Mnoz_odv, Cena_odv, MnozstviMax, PuvodniMnozstviPoz, MnozstviPoz, PomMnozPoz, IDPohZbo, PoznamkaNaDoklad, priorita, vyssi, nizsi, DavkaTPV,
|
||||||
|
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, pom_pomer_A, pom_pomer_B, Dodavatel
|
||||||
|
FROM #HDCTabPrKVazbyGenPredna
|
||||||
|
DROP TABLE #HDCTabPrKVazbyGenPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
-- preddefinovana mzda pro provazani
|
||||||
|
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGen_IDMzdyPredna', N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM #TabPrKVazbyGen_IDMzdy
|
||||||
|
INSERT INTO #TabPrKVazbyGen_IDMzdy
|
||||||
|
SELECT IDPrikaz, Doklad, IDMzdy FROM #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||||
|
DROP TABLE #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EXEC dbo.hp_AktualizaceTabPrKVazbyGenVC @Vratka=0
|
||||||
|
UPDATE #TabPrKVazbyGen SET Generuj=1, Sklad=@sklVydej
|
||||||
|
|
||||||
|
|
||||||
|
IF (@smazVydejTesto=1)
|
||||||
|
IF (@szDilec<>N'701') AND EXISTS (SELECT 1 FROM dbo.TabPrikaz p INNER JOIN dbo.TabKmenZbozi k ON (k.ID=p.IDTabKmen) WHERE p.IDPrikazVyssi=@IDPrikaz AND k.SkupZbo=N'701')
|
||||||
|
DELETE FROM #TabPrKVazbyGen WHERE vyssi=@idDilec AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701')
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||||
|
CREATE TABLE #TabGenRezVyd (ID int NOT NULL, PRIMARY KEY (ID))
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC @retVal=dbo.hp_generujRezVyd @RadaDokladu=@radaVydej, @DruhPohybuZbo=NULL, @IDObdobi=0, @DatPorizeni=NULL, @SekejZakazky=0, @SekejPrikazy=0,
|
||||||
|
@IDExistDoklad=@IDDoklad, @SekejOperace=0
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = 'Chyba generovani vydeje: ' + ERROR_MESSAGE()
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idVyd INT,
|
||||||
|
@idKZ INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@idSS INT,
|
||||||
|
@poslSarze NVARCHAR(100),
|
||||||
|
@errMsg702 NVARCHAR(500),
|
||||||
|
@idKZ702 INT,
|
||||||
|
@idPrikaz702 INT,
|
||||||
|
@doklKV702 INT,
|
||||||
|
@doklOp702 INT,
|
||||||
|
@alt702 NCHAR(1),
|
||||||
|
@mnoz702 NUMERIC(19,6),
|
||||||
|
@idMzda702 INT,
|
||||||
|
@aktDat DATETIME
|
||||||
|
|
||||||
|
SET @aktDat = GETDATE()
|
||||||
|
|
||||||
|
|
||||||
|
-- potrebuju si vyrobit tisicikus ? musim pred realizaci vydejky na vyssi prikaz, udelam odvedenim prikazu na vyssi
|
||||||
|
/*
|
||||||
|
IF (@spotreba702=1)
|
||||||
|
BEGIN
|
||||||
|
DECLARE t CURSOR LOCAL FOR
|
||||||
|
SELECT k.ID, p.Mnozstvi
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE k.SkupZbo=N'702' AND k.Blokovano=0
|
||||||
|
OPEN t
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM t INTO @idKZ702, @mnoz702
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @idPrikaz702 = (SELECT ID FROM dbo.TabPrikaz WHERE IDPrikazVyssi=@IDPrikaz AND IDTabKmen=@idKZ702 AND StavPrikazu=30)
|
||||||
|
IF (@idPrikaz702 IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
-- evidence operace peceni
|
||||||
|
SELECT TOP(1) @doklOp702=Doklad, @alt702=Alt FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idPrikaz702
|
||||||
|
EXEC @idMzda702=dbo.hp_ZaevidujOperaci @IDPrikaz=@idPrikaz702, @Doklad=@doklOp702, @Alt=@alt702, @Datum=NULL, @Stav=1, @IDZam=@idZam, @Kusy_odv=@mnoz702
|
||||||
|
SET @idMzda702 = ISNULL(@idMzda702, 0)
|
||||||
|
IF (@idMzda702>0)
|
||||||
|
BEGIN
|
||||||
|
-- vydejku materialu nedelej, testo bylo uz odepsano svym prevedenim na vyssi
|
||||||
|
-- EXEC dbo.ep_Vyroba_GenVydejZeMzdy @IDMzdy=@idMzda702, @spotrebaTesto=1, @realizujVydej=1, @errMsg=@errMsg702 OUT
|
||||||
|
|
||||||
|
EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzda702, @realizujPrijem=1, @errMsg=@errMsg702 OUT
|
||||||
|
END
|
||||||
|
-- odvedeni na vyssi prikaz
|
||||||
|
SELECT TOP(1) @doklKV702=Doklad FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDPrikaz AND nizsi=@idKZ702
|
||||||
|
EXEC dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDat, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz702, @IDPrikazCil=@IDPrikaz,
|
||||||
|
@Doklad=@doklKV702, @IDDilec=@idKZ702, @mnozstvi=@mnoz702, @IDOdvedeniVC=0
|
||||||
|
END
|
||||||
|
END
|
||||||
|
CLOSE t
|
||||||
|
DEALLOCATE t
|
||||||
|
END
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE vyd CURSOR LOCAL FOR
|
||||||
|
SELECT ID FROM #TabGenRezVyd
|
||||||
|
OPEN vyd
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM vyd INTO @idVyd
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (@denSmena<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idVyd)
|
||||||
|
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idVyd)
|
||||||
|
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_DenSmena=@denSmena WHERE ID=@idVyd
|
||||||
|
END
|
||||||
|
|
||||||
|
DECLARE pV CURSOR LOCAL FOR
|
||||||
|
SELECT p.ID, k.ID
|
||||||
|
FROM dbo.TabPohybyZbozi p
|
||||||
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE p.IDDoklad=@idVyd AND k.Sluzba=0
|
||||||
|
OPEN pV
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM pV INTO @idPZ, @idKZ
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklPekarna)
|
||||||
|
SET @poslSarze = ISNULL( (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS), N'')
|
||||||
|
IF (@poslSarze<>N'')
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||||||
|
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||||||
|
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@poslSarze WHERE ID=@idPZ
|
||||||
|
END
|
||||||
|
END
|
||||||
|
CLOSE pV
|
||||||
|
DEALLOCATE pV
|
||||||
|
|
||||||
|
IF (@realizujVydej=1)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba realizace v<>dejky p<><70>kazu', @idVyd
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE vyd
|
||||||
|
DEALLOCATE vyd
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@extTab IS NOT NULL) AND EXISTS(SELECT 1 FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL)
|
||||||
|
IF OBJECT_ID(@extTab, N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
SET @sql = N'DELETE FROM ' + @extTab
|
||||||
|
EXECUTE sp_executesql @sql
|
||||||
|
SET @sql = N'INSERT ' + @extTab + N' (ID, IDPohZbo) SELECT ID, IDPohZbo FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL'
|
||||||
|
EXECUTE sp_executesql @sql
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
-- uklid
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||||
|
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||||
|
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||||
|
|
||||||
|
|
||||||
12
_custom/Rootvin/sql/tbl_hdc_DataZone_konfig.sql
Normal file
12
_custom/Rootvin/sql/tbl_hdc_DataZone_konfig.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
IF OBJECT_ID(N'dbo._hdc_DataZone_konfig', N'U') IS NULL
|
||||||
|
CREATE TABLE dbo._hdc_DataZone_konfig (
|
||||||
|
ID int IDENTITY(1, 1) NOT NULL,
|
||||||
|
Typ NCHAR(3) NOT NULL,
|
||||||
|
Nazev NVARCHAR(100) NOT NULL,
|
||||||
|
Verze NCHAR(8) NOT NULL,
|
||||||
|
Obsah nvarchar(max) COLLATE Czech_CI_AS NULL,
|
||||||
|
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),
|
||||||
|
DatZmeny DATETIME,
|
||||||
|
CONSTRAINT PK_hdc_DataZone_konfig PRIMARY KEY CLUSTERED (ID)
|
||||||
|
WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
)
|
||||||
1088
_custom/Rootvin/uCtrlCustom.pas
Normal file
1088
_custom/Rootvin/uCtrlCustom.pas
Normal file
File diff suppressed because it is too large
Load Diff
319
_custom/Rootvin/uHeOObj_Custom.pas
Normal file
319
_custom/Rootvin/uHeOObj_Custom.pas
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
unit uHeOObj_Custom;
|
||||||
|
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}
|
||||||
|
|
||||||
|
|
||||||
|
interface
|
||||||
|
{$I 'GlobalDefs.inc'}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.Generics.Collections,
|
||||||
|
MVCFramework.Serializer.Commons,
|
||||||
|
MVCFramework.ActiveRecord,
|
||||||
|
MVCFramework.Nullables,
|
||||||
|
{$IFDEF SWAGGER}
|
||||||
|
MVCFramework.Swagger.Commons,
|
||||||
|
{$ENDIF}
|
||||||
|
helTabsBIDs,
|
||||||
|
uHeoObj_Base;
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
{$I C:\_zakaznici\pluginy_obecne\HDCApi2\globalConsts.inc}
|
||||||
|
|
||||||
|
tblGSDDoklady = '[dbo].[Gatema_SDDoklady]';
|
||||||
|
tblGSDScanData = '[dbo].[Gatema_SDScanData]';
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TRTNMicharnaPozadavekPotvrzeni = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDataZoneTask: integer;
|
||||||
|
FDatZpracovani: NullableTDateTime;
|
||||||
|
FJSONData: string;
|
||||||
|
public
|
||||||
|
[MVCColumn('IDDataZoneTask', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDataZoneTask', 'ID DataZone tasku', true, false)]
|
||||||
|
property IDDataZoneTask: integer read FIDDataZoneTask write FIDDataZoneTask;
|
||||||
|
|
||||||
|
[MVCColumn('DatZpracovani', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stDateTime, 'DatZpracovani', 'ID požadavku u DataZone', false, true)]
|
||||||
|
property DatZpracovani: NullableTDateTime read FDatZpracovani write FDatZpracovani;
|
||||||
|
|
||||||
|
[MVCColumn('JSONData', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'JSONData', 'JSONData', true, false)]
|
||||||
|
property JSONData: string read FJSONData write FJSONData;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TRTNMicharnaSpotreba = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDataZoneTask: integer;
|
||||||
|
FDatZpracovani: NullableTDateTime;
|
||||||
|
FJSONText: string;
|
||||||
|
public
|
||||||
|
[MVCColumn('IDDataZoneTask', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDataZoneTask', 'ID DataZone tasku', true, false)]
|
||||||
|
property IDDataZoneTask: integer read FIDDataZoneTask write FIDDataZoneTask;
|
||||||
|
|
||||||
|
[MVCColumn('DatZpracovani', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stDateTime, 'DatZpracovani', 'ID požadavku u DataZone', false, true)]
|
||||||
|
property DatZpracovani: NullableTDateTime read FDatZpracovani write FDatZpracovani;
|
||||||
|
|
||||||
|
[MVCColumn('JSONText', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'JSONText', 'ID požadavku u DataZone', true, false)]
|
||||||
|
property JSONText: string read FJSONText write FJSONText;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDScanData = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDokladSD: integer;
|
||||||
|
FIDZdrojSD: NullableInt32;
|
||||||
|
FIDPolozky: NullableInt32;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FDokladPrKV: NullableInt32;
|
||||||
|
FDokladPrVPV: NullableInt32;
|
||||||
|
FIDPohZbo: NullableInt32;
|
||||||
|
FIDVyrCS_Obj: NullableInt32;
|
||||||
|
FIDInvItem: NullableInt32;
|
||||||
|
FIDPohZbo_New: NullableInt32;
|
||||||
|
FIDKmenZbozi: NullableInt32;
|
||||||
|
FIDStavSkladu: NullableInt32;
|
||||||
|
FVyrCislo: NullableString;
|
||||||
|
FPopisSarze: NullableString;
|
||||||
|
FMnozstvi: Single;
|
||||||
|
FMnozstviEvidence: Single;
|
||||||
|
FMJ: NullableString;
|
||||||
|
FMJEvidence: NullableString;
|
||||||
|
FBarCode: NullableString;
|
||||||
|
FDatumExpirace: NullableTDateTime;
|
||||||
|
FKodBaleni: NullableString;
|
||||||
|
FDatPorizeni: TDateTime;
|
||||||
|
FGenerovat: NullableBoolean;
|
||||||
|
FJedinecneCislo: NullableString;
|
||||||
|
public
|
||||||
|
{
|
||||||
|
[MVCTableField('ID', [foPrimaryKey, foReadOnly])]
|
||||||
|
[MVCColumn('ID')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'ID', 'ID výrobní operace', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property ID: integer read FID write FID;
|
||||||
|
}
|
||||||
|
[MVCColumn('IDDokladSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokladSD', 'ID dokladu SD', true, false)]
|
||||||
|
property IDDokladSD: integer read FIDDokladSD write FIDDokladSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDZdrojSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDZdrojSD', 'ID zdorj SD', false, true)]
|
||||||
|
property IDZdrojSD: NullableInt32 read FIDZdrojSD write FIDZdrojSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDPolozky', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPolozky', 'ID položky', false, true)]
|
||||||
|
property IDPolozky: NullableInt32 read FIDPolozky write FIDPolozky;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('VyrCislo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'VyrCislo', 'Výrobní číslo', true, false, 1, 100)]
|
||||||
|
property VyrCislo: NullableString read FVyrCislo write FVyrCislo;
|
||||||
|
|
||||||
|
[MVCColumn('PopisSarze', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'PopisSarze', 'Popis šarže', true, false, 1, 100)]
|
||||||
|
property PopisSarze: NullableString read FPopisSarze write FPopisSarze;
|
||||||
|
|
||||||
|
[MVCColumn('Mnozstvi')]
|
||||||
|
[MVCSwagJsonSchemaField('Mnozstvi', 'Množství', true, false)]
|
||||||
|
property Mnozstvi: Single read FMnozstvi write FMnozstvi;
|
||||||
|
|
||||||
|
[MVCColumn('MnozstviEvidence')]
|
||||||
|
[MVCSwagJsonSchemaField('MnozstviEvidence', 'Množství v evidenční jednotce', true, false)]
|
||||||
|
property MnozstviEvidence: Single read FMnozstviEvidence write FMnozstviEvidence;
|
||||||
|
|
||||||
|
[MVCColumn('DatumExpirace')]
|
||||||
|
[MVCSwagJsonSchemaField('DatumExpirace', 'Datum expirace', false, true)]
|
||||||
|
property DatumExpirace: NullableTDatetime read FDatumExpirace write FDatumExpirace;
|
||||||
|
|
||||||
|
[MVCColumn('DatPorizeni')]
|
||||||
|
[MVCSwagJsonSchemaField('DatPorizeni', 'Datum pořízení', true, false)]
|
||||||
|
property DatPorizeni: TDatetime read FDatPorizeni write FDatPorizeni;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDZdrojData = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FIDDokladSD: integer;
|
||||||
|
FIDDokZbo: NullableInt32;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FGUIDDokladu: NullableTGUID;
|
||||||
|
public
|
||||||
|
[MVCColumn('IDDokladSD', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokladSD', 'ID dokladu SD', true, false)]
|
||||||
|
property IDDokladSD: integer read FIDDokladSD write FIDDokladSD;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'FIDDokZbo', 'ID dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo: NullableInt32 read FIDDokZbo write FIDDokZbo;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('GUIDDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stGuid, 'GUIDDokladu', 'GUID dokladu', false, true)]
|
||||||
|
property GUIDDokladu: NullableTGUID read FGUIDDokladu write FGUIDDokladu;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[MVCNameCase(ncLowerCase)]
|
||||||
|
TGatemaSDDoklad = class(THeliosObjekty)
|
||||||
|
private
|
||||||
|
FTypDokladu: integer;
|
||||||
|
FPodtypDokladu: NullableInt32;
|
||||||
|
FRadaDokladu: NullableString;
|
||||||
|
FDruhPohybuZbo: NullableInt32;
|
||||||
|
FSklad: NullableString;
|
||||||
|
FSkladCil: NullableString;
|
||||||
|
FIDPrikaz: NullableInt32;
|
||||||
|
FIDDokZbo: NullableInt32;
|
||||||
|
FIDDokZbo_New: NullableInt32;
|
||||||
|
FGUIDDokZbo: NullableTGUID;
|
||||||
|
FGUIDDokZbo_New: NullableTGUID;
|
||||||
|
FIDInvHead: NullableInt32;
|
||||||
|
FIDOrg: NullableInt32;
|
||||||
|
FCisloOrg: NullableInt32;
|
||||||
|
FDatumPripadu: NullableTDateTime;
|
||||||
|
FDatPorizeni: TDateTime;
|
||||||
|
FDatGenerovani: NullableTDateTime;
|
||||||
|
FScanData: TObjectList<TGatemaSDScanData>;
|
||||||
|
procedure SetSDScanData (const Value: TObjectList<TGatemaSDScanData>);
|
||||||
|
public
|
||||||
|
constructor Create; virtual;
|
||||||
|
destructor Destroy; override;
|
||||||
|
{
|
||||||
|
[MVCTableField('ID', [foPrimaryKey, foReadOnly])]
|
||||||
|
[MVCColumn('ID')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'ID', 'ID výrobní operace', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property ID: integer read FID write FID;
|
||||||
|
}
|
||||||
|
[MVCColumn('TypDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'TypDokladu', 'Typ dokladu', true, false)]
|
||||||
|
property TypDokladu: integer read FTypDokladu write FTypDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('PodtypDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'PodtypDokladu', 'Podtyp dokladu', false, true)]
|
||||||
|
property PodtypDokladu: NullableInt32 read FPodtypDokladu write FPodtypDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('RadaDokladu', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'RadaDokladu', 'Řada dokladu', false, true)]
|
||||||
|
property RadaDokladu: NullableString read FRadaDokladu write FRadaDokladu;
|
||||||
|
|
||||||
|
[MVCColumn('DruhPohybuZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'DruhPohybuZbo', 'Druh pohybu zboží', false, true)]
|
||||||
|
property DruhPohybuZbo: NullableInt32 read FDruhPohybuZbo write FDruhPohybuZbo;
|
||||||
|
|
||||||
|
[MVCColumn('Sklad', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'Sklad', 'Sklad', false, true)]
|
||||||
|
property Sklad: NullableString read FSklad write FSklad;
|
||||||
|
|
||||||
|
[MVCColumn('SkladCil', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'SkladCil', 'Cílový sklad', false, true)]
|
||||||
|
property SkladCil: NullableString read FSkladCil write FSkladCil;
|
||||||
|
|
||||||
|
[MVCColumn('IDPrikaz', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID výrobního příkazu', false, true)]
|
||||||
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokZbo', 'ID dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo: NullableInt32 read FIDDokZbo write FIDDokZbo;
|
||||||
|
|
||||||
|
[MVCColumn('IDDokZbo_New', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDDokZbo_New', 'ID nového dokladu OZ', false, true)]
|
||||||
|
property IDDokZbo_New: NullableInt32 read FIDDokZbo_New write FIDDokZbo_New;
|
||||||
|
|
||||||
|
[MVCColumn('IDInvHead', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDInvHead', 'ID dokladu inventury', false, true)]
|
||||||
|
property IDInvHead: NullableInt32 read FIDInvHead write FIDInvHead;
|
||||||
|
|
||||||
|
[MVCColumn('IDOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDOrg', 'ID organizace', false, true)]
|
||||||
|
property IDOrg: NullableInt32 read FIDOrg write FIDOrg;
|
||||||
|
|
||||||
|
[MVCColumn('CisloOrg', false)]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'CisloOrg', 'Číslo organizace', false, true)]
|
||||||
|
property CisloOrg: NullableInt32 read FCisloOrg write FCisloOrg;
|
||||||
|
|
||||||
|
[MVCColumn('DatumPripadu')]
|
||||||
|
[MVCSwagJsonSchemaField('DatumPripadu', 'Datum případu', false, true)]
|
||||||
|
property DatumPripadu: NullableTDatetime read FDatumPripadu write FDatumPripadu;
|
||||||
|
|
||||||
|
[MVCColumn('DatPorizeni')]
|
||||||
|
[MVCSwagJsonSchemaField('DatPorizeni', 'Datum pořízení', true, false)]
|
||||||
|
property DatPorizeni: TDatetime read FDatPorizeni write FDatPorizeni;
|
||||||
|
|
||||||
|
[MVCColumn('DatGenerovani')]
|
||||||
|
[MVCSwagJsonSchemaField('DatGenerovani', 'Datum generování dokladu OZ', false, true)]
|
||||||
|
property DatGenerovani: NullableTDatetime read FDatGenerovani write FDatGenerovani;
|
||||||
|
|
||||||
|
[MapperListOf(TGatemaSDScanData)]
|
||||||
|
property ScanData: TObjectList<TGatemaSDScanData> read FScanData write SetSDScanData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
System.StrUtils,
|
||||||
|
System.RegularExpressions;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TGatemaSDDoklad }
|
||||||
|
|
||||||
|
constructor TGatemaSDDoklad.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FScanData:= TObjectList<TGatemaSDScanData>.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
destructor TGatemaSDDoklad.Destroy;
|
||||||
|
begin
|
||||||
|
// if (FPohybyOZ<>nil) then
|
||||||
|
// FPohybyOZ.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TGatemaSDDoklad.SetSDScanData(const Value: TObjectList<TGatemaSDScanData>);
|
||||||
|
begin
|
||||||
|
if (Value<>FScanData) then
|
||||||
|
begin
|
||||||
|
FScanData.Free;
|
||||||
|
FScanData:= Value;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
1222
_custom/Rootvin/uSvcCustom.pas
Normal file
1222
_custom/Rootvin/uSvcCustom.pas
Normal file
File diff suppressed because it is too large
Load Diff
6
_custom/Rootvin/uTabs.inc
Normal file
6
_custom/Rootvin/uTabs.inc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
const
|
||||||
|
tblMichPozadavek = '[dbo].[_hdc_DataZone_MicharnaPozadavek]';
|
||||||
|
tblMichSpotreba = '[dbo].[_hdc_DataZone_MicharnaSpotreba]';
|
||||||
|
tblPrijataJsonData = '[dbo].[_hdc_ph_PrijataJsonData]'; // data z Pro Holdingu
|
||||||
|
tblVyrobaObjednavky = '[dbo].[_TabVyroba_Objednavky]'; // data objednavek z Pro Holdingu
|
||||||
|
tblPuvodniVC = '[dbo].[_hdc_PZ_PuvodniVC]';
|
||||||
8
_custom/Rootvin/uWebModCustom.inc
Normal file
8
_custom/Rootvin/uWebModCustom.inc
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{$IFDEF CUSTOM_CTRL_RootvinX}
|
||||||
|
FEngine.AddController (TGatemaSDDokladController);
|
||||||
|
FEngine.AddController (TGatemaSDDokladOZController);
|
||||||
|
FEngine.AddController (TGatemaSDScanDataController);
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
FEngine.AddController (TRTNController);
|
||||||
|
|
||||||
BIN
_custom/Rootvin/zdroje.RES
Normal file
BIN
_custom/Rootvin/zdroje.RES
Normal file
Binary file not shown.
44
_custom/Rootvin/zdroje.rc
Normal file
44
_custom/Rootvin/zdroje.rc
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
col_TabDokumenty_DokladProAPI RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_TabDokumenty_DokladProAPI.sql
|
||||||
|
col_TabCisZam_EXT RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_CisZam_EXT.sql
|
||||||
|
col_TabPrPostup_EXT RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_TabPrPostup_EXT.sql
|
||||||
|
col_TabStavSkladu_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_TabStavSkladu_EXT.sql
|
||||||
|
col_TabDokladyZbozi_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_DokladyZbozi_EXT.sql
|
||||||
|
col_TabPohybyZbozi_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_PohybyZbozi_EXT.sql
|
||||||
|
col_TabEvidRozpracOperR_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_EvidRozpracOperR_EXT.sql
|
||||||
|
col_TabKmenZbozi_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_KmenZbozi_EXT.sql
|
||||||
|
col_TabVazbyPrikazu_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_VazbyPrikazu_EXT.sql
|
||||||
|
|
||||||
|
ep_hdcdzapi_ZpracujPrijataData RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\ep_HDCDZApi_ZpracujPrijataData.sql
|
||||||
|
ep_hdcdzapi_GetKusovnik RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\ep_HDCDZApi_GetKusovnik.sql
|
||||||
|
ep_Vyroba_GenVydejZeMzdy RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\ep_Vyroba_GenVydejZeMzdy.sql
|
||||||
|
ep_Vyroba_GenOdvodZeMzdy RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\ep_Vyroba_GenOdvodZeMzdy.sql
|
||||||
|
ep_Vyroba_DoplnSkladProVydejDleDokladu RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
|
||||||
|
ep_Vyroba_InsertEvidRozpracOper RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOper.sql
|
||||||
|
ep_Vyroba_InsertEvidRozpracOperPol RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOperPol.sql
|
||||||
|
|
||||||
|
ep_P01_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P01_HDC1.sql
|
||||||
|
ep_P01 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P01.sql
|
||||||
|
ep_P03_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P03_HDC1.sql
|
||||||
|
ep_P03 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P03.sql
|
||||||
|
ep_V03_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_V03_HDC1.sql
|
||||||
|
ep_V03 RCDATA C:\_zakaznici\Rootvin\_sql\ep_V03.sql
|
||||||
|
ep_V01_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_V01_HDC1.sql
|
||||||
|
ep_V01 RCDATA C:\_zakaznici\Rootvin\_sql\ep_V01.sql
|
||||||
|
|
||||||
|
trg__TabPohybyZbozi_HDC_IU RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPohybyZbozi_HDC_IU.sql
|
||||||
|
trg__TabPohybyZbozi_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPohybyZbozi_HDC_D.sql
|
||||||
|
tbl_hdc_PZ_PuvodniVC RCDATA C:\_zakaznici\Rootvin\_sql\tbl__hdc_PZ_PuvodniVC.sql
|
||||||
|
ep_Vyroba_Doklady_Micharna RCDATA C:\_zakaznici\Rootvin\_sql\ep_Vyroba_Doklady_Micharna.sql
|
||||||
|
ef_GetDatumASmenu RCDATA C:\_zakaznici\Rootvin\_sql\ef_GetDatumASmenu.sql
|
||||||
|
ef_DilecGetStroj RCDATA C:\_zakaznici\Rootvin\_sql\ef_DilecGetStroj.sql
|
||||||
|
ef_Kmen_VratPocetKsVKartonu RCDATA C:\_zakaznici\Rootvin\_sql\ef_Kmen_VratPocetKsVKartonu.sql
|
||||||
|
tbl_TabVyrobaObjednavky RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaObjednavky.sql
|
||||||
|
trg__TabVyrobaObjednavky_IU RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabVyrobaObjednavky_IU.sql
|
||||||
|
trg__TabVyrobaObjednavky_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabVyrobaObjednavky_D.sql
|
||||||
|
tbl_TabVyrobaOperaceStartStop RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaOperaceStartStop.sql
|
||||||
|
tbl_TabVyrobaOperaceStartStopVydej RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaOperaceStartStopVydej.sql
|
||||||
|
tbl_TabVyrobaTestoVyroba RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyroba_TestoVyroba.sql
|
||||||
|
trg__TabDokladyZbozi_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabDokladyZbozi_HDC_D.sql
|
||||||
|
trg__hdc_PZ_PuvodniVC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__hdc_PZ_PuvodniVC_D.sql
|
||||||
|
trg__TabVyrCisPrikaz_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabVyrCisPrikaz_HDC_D.sql
|
||||||
|
trg__TabVyrobaOperaceStartStop_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabVyrobaOperaceStartStop_D.sql
|
||||||
BIN
api2-5.ico
Normal file
BIN
api2-5.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
1149
cfgGUI/hdcDZAPIcfg.dproj
Normal file
1149
cfgGUI/hdcDZAPIcfg.dproj
Normal file
File diff suppressed because it is too large
Load Diff
14
cfgGUI/hdcDZApiCfg.dpr
Normal file
14
cfgGUI/hdcDZApiCfg.dpr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
program hdcDZApiCfg;
|
||||||
|
|
||||||
|
uses
|
||||||
|
Vcl.Forms,
|
||||||
|
uMain in 'uMain.pas' {frmMain};
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Initialize;
|
||||||
|
Application.MainFormOnTaskbar := True;
|
||||||
|
Application.CreateForm(TfrmMain, frmMain);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
BIN
cfgGUI/hdcDZApiCfg.res
Normal file
BIN
cfgGUI/hdcDZApiCfg.res
Normal file
Binary file not shown.
BIN
cfgGUI/hdcDZApiCfg_Icon1.ico
Normal file
BIN
cfgGUI/hdcDZApiCfg_Icon1.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user