Dalsi zmeny
This commit is contained in:
1
_custom/EMPolar/sqlDefs.inc
Normal file
1
_custom/EMPolar/sqlDefs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
// arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
@ -76,6 +76,22 @@ type
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
[MVCPath('/emp/vytezeni')]
|
||||||
|
TEMPVytezeniDoklController = class(TBaseController)
|
||||||
|
private
|
||||||
|
FSelfSvc: TEMPVytezeniDoklService;
|
||||||
|
public
|
||||||
|
constructor Create; override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
|
||||||
|
[MVCPath('/fprij/post/($id)')]
|
||||||
|
[MVCHTTPMethod([httpGET])]
|
||||||
|
[MVCSwagSummary('EMP - vyt<79><74>en<65> dokument<6E> dokladu FaktPrij', 'Po<50>le dokument dokladu Faktury p<>ijat<61> na AiDOCU API', 'EMPVytezDokFPrijPostByID')]
|
||||||
|
[MVCSwagParam(plPath, 'id', 'ID dokladu Faktury p<>ijat<61>', ptString, true)]
|
||||||
|
[MVCProduces('application/json')]
|
||||||
|
procedure FPrij_PostByID (id: string);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses
|
uses
|
||||||
@ -195,22 +211,22 @@ uses
|
|||||||
|
|
||||||
|
|
||||||
procedure TEMPDokumentAtestController.GetMeta;
|
procedure TEMPDokumentAtestController.GetMeta;
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
Render(ObjectDict().Add('data', GetDokumentService.GetMeta));
|
Render(ObjectDict().Add('data', GetDokumentService.GetMeta));
|
||||||
except
|
except
|
||||||
{$IFDEF NORENDER400}
|
{$IFDEF NORENDER400}
|
||||||
RenderStatusMessage (200);
|
RenderStatusMessage (200);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
on E: EServiceException do
|
on E: EServiceException do
|
||||||
begin
|
begin
|
||||||
raise EMVCException.Create(E.Message, '', 0, 404);
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
raise;
|
raise;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -243,4 +259,48 @@ uses
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TEMPVytezeniDoklService }
|
||||||
|
|
||||||
|
constructor TEMPVytezeniDoklController.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
destructor TEMPVytezeniDoklController.Destroy;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TEMPVytezeniDoklController.FPrij_PostByID (id: string);
|
||||||
|
var iId: integer;
|
||||||
|
begin
|
||||||
|
id:= sanitizeSQLString (id);
|
||||||
|
if not(TryStrToInt(id, iId)) then
|
||||||
|
iId:= 0;
|
||||||
|
|
||||||
|
try
|
||||||
|
Render(ObjectDict().Add('data', GetEMPVytezeniDoklService.FPrij_PostByID (iId))); // viz uSvcCustom.pas
|
||||||
|
except
|
||||||
|
{$IFDEF NORENDER400}
|
||||||
|
RenderStatusMessage (200);
|
||||||
|
{$ELSE}
|
||||||
|
on E: EServiceException do
|
||||||
|
begin
|
||||||
|
raise EMVCException.Create(E.Message, '', 0, 404);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
@ -42,6 +42,11 @@ type
|
|||||||
function GetByParams (params: TDictionary<string, string>): TObjectList<TEMPNadoba>;
|
function GetByParams (params: TDictionary<string, string>): TObjectList<TEMPNadoba>;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TEMPVytezeniDoklService = class(TServiceBase)
|
||||||
|
public
|
||||||
|
function FPrij_PostByID (const AID: integer): TJSONObject; // vrati se identifikace od providera
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -50,6 +55,9 @@ uses
|
|||||||
FireDAC.Stan.Option,
|
FireDAC.Stan.Option,
|
||||||
FireDAC.Comp.Client,
|
FireDAC.Comp.Client,
|
||||||
FireDAC.Stan.Param,
|
FireDAC.Stan.Param,
|
||||||
|
System.JSON.Builders,
|
||||||
|
System.JSON.Writers,
|
||||||
|
System.JSON.Types,
|
||||||
MVCFramework.FireDAC.Utils,
|
MVCFramework.FireDAC.Utils,
|
||||||
MVCFramework.DataSet.Utils,
|
MVCFramework.DataSet.Utils,
|
||||||
MVCFramework.Serializer.Commons,
|
MVCFramework.Serializer.Commons,
|
||||||
@ -195,7 +203,7 @@ uses
|
|||||||
try
|
try
|
||||||
if not(lQry.EOF) then
|
if not(lQry.EOF) then
|
||||||
begin
|
begin
|
||||||
result:= FDM.sqlQry1.AsObject<TEMPNadoba>
|
result:= FDM.sqlQry1.AsObject<TEMPNadoba>;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
raise EServiceException.Create('N<>doba s <20><>slem ' + ACislo + ' nebyla nalezena.');
|
raise EServiceException.Create('N<>doba s <20><>slem ' + ACislo + ' nebyla nalezena.');
|
||||||
@ -239,4 +247,31 @@ uses
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TEMPVytezeniDoklService }
|
||||||
|
|
||||||
|
function TEMPVytezeniDoklService.FPrij_PostByID (const AID: integer): TJSONObject; // vrati se identifikace od providera
|
||||||
|
var lSQL, statusOut: string;
|
||||||
|
resVal: TJSONObject;
|
||||||
|
sB: TStringBuilder;
|
||||||
|
sW: TStringWriter;
|
||||||
|
w: TJsonTextWriter;
|
||||||
|
b: TJSONObjectBuilder;
|
||||||
|
p: TJSONCollectionBuilder.TPairs;
|
||||||
|
begin
|
||||||
|
result:= TJSONObject.Create;
|
||||||
|
statusOut:= 'Not OK';
|
||||||
|
|
||||||
|
sB:= TStringBuilder.Create;
|
||||||
|
sW:= TStringWriter.Create (sB);
|
||||||
|
w:= TJsonTextWriter (sW);
|
||||||
|
w.Formatting:= TJsonFormatting.Indented;
|
||||||
|
b:= TJsonObjectBuilder.Create (w);
|
||||||
|
p:= b.BeginObject.Add('status', statusOut);
|
||||||
|
p.EndObject;
|
||||||
|
result.FromJSON (sB.ToString);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
FEngine.AddController (TEMPNadobaController);
|
FEngine.AddController (TEMPNadobaController);
|
||||||
FEngine.AddController (TEMPDokumentAtestController);
|
FEngine.AddController (TEMPDokumentAtestController);
|
||||||
|
FEngine.AddController (TEMPVytezeniDoklController);
|
||||||
1
_custom/EMPolar/winSvc/consts.inc
Normal file
1
_custom/EMPolar/winSvc/consts.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
// tblAPIDigiSoubory = '[dbo].[Tabx_HDC_API_DigitalizaceSoubory]';
|
||||||
4
_custom/EMPolar/winSvc/empolar.xml
Normal file
4
_custom/EMPolar/winSvc/empolar.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<config_aidocu vytezovaniDokumentuSek="10" url="https://aidocu-test.amitia-ai.com/api/v1" auth="24A0F17F9ACD9E20821EEA7870BAB2754C19972CB12CF6DD62508800644C9F64121C218D8DBE627C6F01E467B00C80CC428CB28575475F9048A61C7C64DA08907F1F5316C81E429E184DCCAED7801D7D7A830181216F911DF4C33A899DA0E153C09246E17598055BBE227684724EB851FD5AE2AFDF889A09E20DCBDA8DDC91FC174BA3ABE36A8DF02C1B61CEABE9BFB1B6A97D384E506BB5ED3C5A45F2ED786F33F636D3F8900F7D2ED64BE6323E2AF7224049EA2061D72C837F7013226E7ACB8969E98372A1F0F5B7BF0C727088DF8A72D64A616B83B4A026F567CBE3B1209C0A1561AA327C8630DCC745D45B48F34A5646938093526F9C5AD3539753BE4F5AA40162A5D8091DACA425320ACC8CCB77E327B3786BC860AAF505CA0FB76755BB49D6179666ACA28DFBDF4E910B3A1AA38DDFC7EEDDE3EEBE23692ECA21D97CE85A075AD2F9E6A1432C8592088608E0C11A7A66117A95AE">
|
||||||
|
<config auth="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlbXBvbGFyIiwicmVsZWFzZV9pZCI6IjY4NGE4NDU4ZGUzNTcxNGFiNDdiZTUwMCIsImxpY2VuY2VfaWQiOiI2ODUxMmRmMzI2NjgwM2FjOGFhOWUwMDQiLCJzZWNyZXRfdG9rZW4iOiJjN0pUZ242V05TNlBiZ0hmWlo1Zk1uRjNXdjlrSk1IZm9zdnVwTkZrbERxaGJjdFBXYTllaTliVm5SMjVtd1VwIiwiZXhwIjoxNzU5MjY5NjAwfQ.rYWVHenSwmoM_5bpSsannmxFln5oZBAd-2jb_CP-WQ8"/>
|
||||||
|
</config_aidocu>
|
||||||
337
_custom/EMPolar/winSvc/impl.inc
Normal file
337
_custom/EMPolar/winSvc/impl.inc
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
constructor THeoEMPVytezovaniDokThread.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 THeoEMPVytezovaniDokThread.Destroy;
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
Write('Ukoncuji thread EMP vytezovani dokumentu...');
|
||||||
|
{$ENDIF}
|
||||||
|
if (FTimer<>0) then
|
||||||
|
CloseHandle (FTimer);
|
||||||
|
FTermEvent.Free;
|
||||||
|
FRunning:= false;
|
||||||
|
FMainService:= nil;
|
||||||
|
Terminate;
|
||||||
|
FLock.Free;
|
||||||
|
inherited;
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn('OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoEMPVytezovaniDokThread.TerminatedSet;
|
||||||
|
begin
|
||||||
|
FTermEvent.SetEvent;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoEMPVytezovaniDokThread.ThreadTerminate;
|
||||||
|
begin
|
||||||
|
Terminate;
|
||||||
|
WaitFor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoEMPVytezovaniDokThread.Execute;
|
||||||
|
const _Second = 10_000_000;
|
||||||
|
var lSQL, errMsg, url, authHash, outData, fName, loopCasTyp: string;
|
||||||
|
lLoop, idDZ, cnt, idx: Integer;
|
||||||
|
lLoopMax, koefProCas: integer;
|
||||||
|
logRunCnt: integer;
|
||||||
|
Msg: TMsg;
|
||||||
|
firstRun, inProg, inDL: boolean;
|
||||||
|
lQry, lQry2: TFDQuery;
|
||||||
|
sqlConnX, sqlConnX2: TFDConnection;
|
||||||
|
sqlTrans: IFDPhysTransaction;
|
||||||
|
f, lOpenSSLLib: string;
|
||||||
|
|
||||||
|
lBusy: LongInt;
|
||||||
|
liDueTime: LARGE_INTEGER;
|
||||||
|
|
||||||
|
mamSSLLibs: boolean;
|
||||||
|
sslLibPath, dataSouboru: 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;
|
||||||
|
idDZ:= 0;
|
||||||
|
logRunCnt:= 1;
|
||||||
|
url:= '';
|
||||||
|
authHash:= '';
|
||||||
|
lLoopMax:= 20; // v sekundach !!!!
|
||||||
|
|
||||||
|
try
|
||||||
|
try
|
||||||
|
CoInitialize(nil); // kvuli pouziti TXMLDocument
|
||||||
|
|
||||||
|
cfgFile:= ExtractFilePath(ParamStr(0)) + 'empolar.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_aidocu') then
|
||||||
|
begin
|
||||||
|
attribs:= n1.AttributeNodes;
|
||||||
|
attrIdx:= attribs.IndexOf('vytezovaniDokumentuSek');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
lLoopMax:= attribs.Get(attrIdx).NodeValue;
|
||||||
|
|
||||||
|
attrIdx:= attribs.IndexOf('url');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
url:= attribs.Get(attrIdx).NodeValue;
|
||||||
|
|
||||||
|
attrIdx:= attribs.IndexOf('auth');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
authHash:= attribs.Get(attrIdx).NodeValue;
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
if (Length(authHash)<350) then
|
||||||
|
begin
|
||||||
|
authHash:= (FMainService as THDCDZApiService).ReturnEncrypted (authHash);
|
||||||
|
WriteLn('API HASH: ' + authHash);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
if (authHash<>'') and (FMainService<>nil) then
|
||||||
|
authHash:= (FMainService as THDCDZApiService).ReturnDecrypted (authHash);
|
||||||
|
end; // n1 = config
|
||||||
|
end; // specCfgXML.DocumentElement<>nil
|
||||||
|
end; // not specCfgXML.IsEmptyDoc
|
||||||
|
end; // FileExists(cfgFile)
|
||||||
|
except
|
||||||
|
end; // try
|
||||||
|
|
||||||
|
finally
|
||||||
|
begin
|
||||||
|
if (specCfgXML<>nil) then
|
||||||
|
specCfgXML:= nil;
|
||||||
|
CoUninitialize;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Interval vytezovani dokumentu: ' + lLoopMax.ToString + ' sek');
|
||||||
|
|
||||||
|
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:= true;
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
FTimer:= CreateWaitableTimer (nil, true, 'EMPVytezDokumWaitableTimer');
|
||||||
|
liDueTime.QuadPart:= -1*_Second;
|
||||||
|
|
||||||
|
|
||||||
|
sqlConnX:= TFDConnection.Create (nil);
|
||||||
|
sqlConnX2:= TFDConnection.Create (nil);
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
lQry2:= TFDQuery.Create(nil);
|
||||||
|
try
|
||||||
|
try
|
||||||
|
sqlConnX.Params.SetStrings (datMod.sqlConnParams);
|
||||||
|
sqlConnX2.Params.SetStrings (datMod.sqlConnParams);
|
||||||
|
// sqlConnX.TxOptions.AutoCommit:= false;
|
||||||
|
sqlConnX.Open;
|
||||||
|
sqlConnX2.Open;
|
||||||
|
lQry.Connection:= sqlConnX;
|
||||||
|
lQry2.Connection:= sqlConnX2;
|
||||||
|
|
||||||
|
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 podle lLoopMax sek (prednastaveno 10 sek)
|
||||||
|
begin
|
||||||
|
idDZ:= 0;
|
||||||
|
firstRun:= false;
|
||||||
|
|
||||||
|
if (logRunCnt<4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim vytezovani ' + logRunCnt.toString + '...');
|
||||||
|
if (logRunCnt=4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim vytezovani - bezi ale dal neloguju');
|
||||||
|
|
||||||
|
try
|
||||||
|
if not(inProg) then // nebezi uz ?
|
||||||
|
begin
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
if (sqlConnX.Connected) then
|
||||||
|
begin
|
||||||
|
lSQL:= '/* hdcDZApiSvc-emp */ SELECT ID FROM ' + tblDZ
|
||||||
|
+ ' WHERE BlokovaniEditoru IS NULL AND DruhPohybuZbo=18 AND CisloOrg IS NULL ORDER BY ID';
|
||||||
|
|
||||||
|
try
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
if (lQry.RecordCount>0) then
|
||||||
|
begin
|
||||||
|
lQry.First;
|
||||||
|
inProg:= true;
|
||||||
|
while not(lQry.EOF) do
|
||||||
|
begin
|
||||||
|
idDZ:= lQry.FieldByName('ID').asInteger;
|
||||||
|
if (idDZ>0) then
|
||||||
|
begin
|
||||||
|
dataSouboru:= '';
|
||||||
|
lSQL:= 'SELECT 1 FROM ' + tblDokumVaz + ' v JOIN ' + tblDokum + ' d ON (d.ID=v.IDDok) WHERE v.IDTab=' + idDZ.ToString
|
||||||
|
+ ' AND v.IdentVazby=9 AND UPPER(d.JmenoACesta) LIKE N''%PDF'' AND d.VelikostSouboru>0';
|
||||||
|
lQry2.Open (lSQL);
|
||||||
|
if (lQry2.RecordCount=1) then // mam dokument PDF
|
||||||
|
begin
|
||||||
|
lQry2.Close;
|
||||||
|
lSQL:= lSQL.Replace(' 1 ', ' TOP(1) /*CONVERT(varchar(max), Dokument, 2)*/ BASE64_ENCODE(Dokument) AS DataSouboru ');
|
||||||
|
lQry2.Open (lSQL);
|
||||||
|
if (lQry2.Recordcount=1) then
|
||||||
|
begin
|
||||||
|
dataSouboru:= lQry2.FieldByName('DataSouboru').AsString;
|
||||||
|
lQry2.Close;
|
||||||
|
end;
|
||||||
|
end; // mam dokument PDF
|
||||||
|
if (dataSouboru<>'') then
|
||||||
|
begin
|
||||||
|
end; // dataSouboru<>''
|
||||||
|
end; // idDZ>0
|
||||||
|
lQry.Next;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lQry.Close;
|
||||||
|
FreeAndNil (lQry);
|
||||||
|
// lQry.Free;
|
||||||
|
// lQry:= nil;
|
||||||
|
end;
|
||||||
|
inProg:= false;
|
||||||
|
sqlConnX.Close;
|
||||||
|
end; // sqlConnX Connected
|
||||||
|
end; // 1=1 -- pro rychle vypnuti
|
||||||
|
|
||||||
|
end; // not(inProg)
|
||||||
|
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
inProg:= false;
|
||||||
|
if (lQry<>nil) then
|
||||||
|
begin
|
||||||
|
lQry.Close;
|
||||||
|
FreeAndNil (lQry);
|
||||||
|
end;
|
||||||
|
if (sqlConnX<>nil) then
|
||||||
|
sqlConnX.Close;
|
||||||
|
|
||||||
|
errMsg:= E.Message; // datMod.sqlQry11.FieldByName('ErrMsg').AsString;
|
||||||
|
if (mamTabPrijataData) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etError, 'Chyba zpracovani API souboru FaktPrij ID ' + idDZ.ToString + ' : ' + errMsg);
|
||||||
|
end;
|
||||||
|
end; // try
|
||||||
|
|
||||||
|
|
||||||
|
lLoop:= 0;
|
||||||
|
if (logRunCnt<5) then
|
||||||
|
Inc (logRunCnt);
|
||||||
|
end;
|
||||||
|
Inc (lLoop);
|
||||||
|
|
||||||
|
// sleep na vterinu
|
||||||
|
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;
|
||||||
|
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
sqlConnX.Close;
|
||||||
|
FreeAndNil (sqlConnX);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end; // 1=1 -- pro rychle vypnuti
|
||||||
|
|
||||||
|
if (sqlConnX2<>nil) then
|
||||||
|
begin
|
||||||
|
if (sqlConnX2.Connected) then
|
||||||
|
sqlConnX2.Close;
|
||||||
|
FreeAndNil (sqlConnX2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
1
_custom/EMPolar/winSvc/mainPrivs.inc
Normal file
1
_custom/EMPolar/winSvc/mainPrivs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
empVytezovaniDokThr: THeoEMPVytezovaniDokThread;
|
||||||
3
_custom/EMPolar/winSvc/mainSvcCont.inc
Normal file
3
_custom/EMPolar/winSvc/mainSvcCont.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (empVytezovaniDokThr<>nil) then
|
||||||
|
if (empVytezovaniDokThr.Suspended) then
|
||||||
|
empVytezovaniDokThr.Resume;
|
||||||
7
_custom/EMPolar/winSvc/mainSvcExec.inc
Normal file
7
_custom/EMPolar/winSvc/mainSvcExec.inc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
if (empVytezovaniDokThr<>nil) then
|
||||||
|
if not(empVytezovaniDokThr.Started) then
|
||||||
|
begin
|
||||||
|
empVytezovaniDokThr.Start;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby EMP vytezovani dokladu - pocet FaktPrij: ' + datMod.SQLGetString('SELECT COUNT(ID) FROM '
|
||||||
|
+ tblDZ + ' WHERE BlokovaniEditoru IS NULL AND DruhPohybuZbo=18 AND CislOrg IS NULL'));
|
||||||
|
end;
|
||||||
3
_custom/EMPolar/winSvc/mainSvcPause.inc
Normal file
3
_custom/EMPolar/winSvc/mainSvcPause.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (empVytezovaniDokThr<>nil) then
|
||||||
|
if not(empVytezovaniDokThr.Suspended) then
|
||||||
|
empVytezovaniDokThr.Suspend;
|
||||||
22
_custom/EMPolar/winSvc/mainSvcStart.inc
Normal file
22
_custom/EMPolar/winSvc/mainSvcStart.inc
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby EMP vytezovani dokumentu - inverval 10 sekund...');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Start sluzby EMP vytezovani dokumentu - inverval 10 sekund...');
|
||||||
|
{$ENDIF}
|
||||||
|
empVytezovaniDokThr:= THeoEMPVytezovaniDokThread.Create (ThreadTerminated, self);
|
||||||
|
if (empVytezovaniDokThr<>nil) then
|
||||||
|
begin
|
||||||
|
if (empVytezovaniDokThr.Started) then
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' OK');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' thread empVytezovaniDokThr neni vytvoren');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' thread empVytezovaniDokThr neni vytvoren');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
18
_custom/EMPolar/winSvc/mainSvcStop.inc
Normal file
18
_custom/EMPolar/winSvc/mainSvcStop.inc
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if Assigned(empVytezovaniDokThr) then
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Ukoncuji vlakno EMP vytezovani dokumentu...');
|
||||||
|
{$ENDIF}
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Ukoncuji vlakno EMP vytezovani dokumentu...');
|
||||||
|
try
|
||||||
|
empVytezovaniDokThr.ThreadTerminate;
|
||||||
|
FreeAndNil(empVytezovaniDokThr);
|
||||||
|
except on E:Exception do
|
||||||
|
// add event in eventlog with reason why the service couldn't stop
|
||||||
|
LogMessage('Cannot stop thread EMPVytezaniDok: ' + E.Message, EVENTLOG_ERROR_TYPE, 0, 1);
|
||||||
|
end;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' OK');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
3
_custom/EMPolar/winSvc/readCfg.inc
Normal file
3
_custom/EMPolar/winSvc/readCfg.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
intervalSecVytezovani
|
||||||
15
_custom/EMPolar/winSvc/types.inc
Normal file
15
_custom/EMPolar/winSvc/types.inc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
THeoEMPVytezovaniDokThread = 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;
|
||||||
1
_custom/EMPolar/winSvc/uses.inc
Normal file
1
_custom/EMPolar/winSvc/uses.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
System.JSON.Builders, System.JSON.Writers, System.JSON.Types,
|
||||||
1
_custom/EMPolar/winSvc/usesTop.inc
Normal file
1
_custom/EMPolar/winSvc/usesTop.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
System.Net.HttpClient, System.Threading,
|
||||||
1
_custom/EMPolar/winSvc/vars.inc
Normal file
1
_custom/EMPolar/winSvc/vars.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
intervalSecVytezovani: integer;
|
||||||
@ -146,7 +146,7 @@
|
|||||||
attrIdx:= attribs.IndexOf('downPDFintMins');
|
attrIdx:= attribs.IndexOf('downPDFintMins');
|
||||||
if (attrIdx>-1) then
|
if (attrIdx>-1) then
|
||||||
if (attribs.Get(attrIdx).NodeValue<>null) then
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
lLoopMax:= attribs.Get(i).NodeValue;
|
lLoopMax:= attribs.Get(attrIdx).NodeValue;
|
||||||
end; // n1 = config
|
end; // n1 = config
|
||||||
end; // specCfgXML.DocumentElement<>nil
|
end; // specCfgXML.DocumentElement<>nil
|
||||||
end; // not specCfgXML.IsEmptyDoc
|
end; // not specCfgXML.IsEmptyDoc
|
||||||
@ -249,6 +249,9 @@
|
|||||||
while not(lQry.EOF) do
|
while not(lQry.EOF) do
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
PeekMessage (&Msg, 0, 0, 0, PM_NOREMOVE); { Create message queue }
|
||||||
|
helUtils.ProcessPendingVCLMessages;
|
||||||
|
|
||||||
idDigiFile:= lQry.FieldByName('ID').asInteger;
|
idDigiFile:= lQry.FieldByName('ID').asInteger;
|
||||||
if (idDigiFile>0) then
|
if (idDigiFile>0) then
|
||||||
begin
|
begin
|
||||||
@ -276,21 +279,22 @@
|
|||||||
if (Assigned(http1)) then
|
if (Assigned(http1)) then
|
||||||
begin
|
begin
|
||||||
http1.AllowCookies:= false;
|
http1.AllowCookies:= false;
|
||||||
http1.UserAgent:= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0';
|
http1.UserAgent:= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/144.0';
|
||||||
http1.Accept:= 'application/pdf';
|
http1.Accept:= 'application/pdf';
|
||||||
|
|
||||||
datMod.LogInfo (Quick.Logger.etInfo, 'Nacitam data PDF pro downloadPDF id ' + idDigiFile.ToString);
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Nacitam data PDF pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
iResp:= http1.Get (url);
|
iResp:= http1.Get (url);
|
||||||
aResp:= (iResp.ContentStream as TMemoryStream);
|
aResp:= (iResp.ContentStream as TMemoryStream);
|
||||||
outData:= MemStreamToHex (aResp);
|
outData:= MemStreamToHex (aResp);
|
||||||
datMod.LogInfo (Quick.Logger.etInfo, 'Mam data PDF pro downloadPDF id ' + idDigiFile.ToString);
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Mam data PDF pro downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
|
||||||
end;
|
end;
|
||||||
except on E:Exception do
|
except on E:Exception do
|
||||||
begin
|
begin
|
||||||
datMod.LogInfo (Quick.Logger.etError, 'Chyba zpracovani downloadPDF id ' + idDigiFile.ToString + ' : ' + E.Message);
|
sqlConnX.ExecSQL ('UPDATE ' + tblAPIDigiSoubory + ' SET Blokovano=0 WHERE ID=' + idDigiFile.ToString);
|
||||||
|
datMod.LogInfo (Quick.Logger.etError, 'Chyba downloadPDF id ' + idDigiFile.ToString + ' : ' + E.Message);
|
||||||
{$IFDEF DEBUG}
|
{$IFDEF DEBUG}
|
||||||
WriteLn ('Chyba zpracovani downloadPDF id ' + idDigiFile.ToString + ' >> ' + E.Message);
|
WriteLn ('Chyba downloadPDF id ' + idDigiFile.ToString + ' >> ' + E.Message);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -307,18 +311,28 @@
|
|||||||
IdOpenSSLSetLibPath (sslLibPath);
|
IdOpenSSLSetLibPath (sslLibPath);
|
||||||
http2:= TIdHttp.Create (nil);
|
http2:= TIdHttp.Create (nil);
|
||||||
sslHndlr:= TIdSSLIOHandlerSocketOpenSSL.Create (http2);
|
sslHndlr:= TIdSSLIOHandlerSocketOpenSSL.Create (http2);
|
||||||
|
respHttp2:= TMemoryStream.Create;
|
||||||
try
|
try
|
||||||
sslHndlr.SSLOptions.Method:= sslvTLSv1_2;
|
try
|
||||||
sslHndlr.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1];
|
sslHndlr.SSLOptions.Method:= sslvTLSv1_2;
|
||||||
http2.IOHandler:= sslHndlr;
|
sslHndlr.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1];
|
||||||
|
http2.IOHandler:= sslHndlr;
|
||||||
|
|
||||||
http2.Request.Accept:= 'application/pdf';
|
http2.Request.Accept:= 'application/pdf';
|
||||||
http2.Request.BasicAuthentication := False;
|
http2.Request.BasicAuthentication := False;
|
||||||
http2.HTTPOptions:= http2.HTTPOptions + [hoKeepOrigProtocol] + [hoNoProtocolErrorException];
|
http2.HTTPOptions:= http2.HTTPOptions + [hoKeepOrigProtocol] + [hoNoProtocolErrorException];
|
||||||
http2.Request.ContentType:= 'application/pdf; charset=utf-8';
|
http2.Request.ContentType:= 'application/pdf; charset=utf-8';
|
||||||
respHttp2:= TMemoryStream.Create;
|
http2.Get (url, respHttp2);
|
||||||
http2.Get (url, respHttp2);
|
outData:= MemStreamToHex (respHttp2 as TMemoryStream);
|
||||||
outData:= MemStreamToHex (respHttp2 as TMemoryStream);
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
sqlConnX.ExecSQL ('UPDATE ' + tblAPIDigiSoubory + ' SET Blokovano=0 WHERE ID=' + idDigiFile.ToString);
|
||||||
|
datMod.LogInfo (Quick.Logger.etError, 'Chyba downloadPDF (SSL) id ' + idDigiFile.ToString + ' : ' + E.Message + CRLF + url);
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Chyba downloadPDF (SSL) id ' + idDigiFile.ToString + ' >> ' + E.Message + CRLF + url);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil (sslHndlr); // must be freed before IdHttp
|
FreeAndNil (sslHndlr); // must be freed before IdHttp
|
||||||
FreeAndNil (http2);
|
FreeAndNil (http2);
|
||||||
@ -374,6 +388,7 @@
|
|||||||
|
|
||||||
except on E:Exception do
|
except on E:Exception do
|
||||||
begin
|
begin
|
||||||
|
sqlConnX.ExecSQL ('UPDATE ' + tblAPIDigiSoubory + ' SET Blokovano=0 WHERE ID=' + idDigiFile.ToString);
|
||||||
errMsg:= E.Message; // datMod.sqlQry11.FieldByName('ErrMsg').AsString;
|
errMsg:= E.Message; // datMod.sqlQry11.FieldByName('ErrMsg').AsString;
|
||||||
{$IFDEF DEBUG}
|
{$IFDEF DEBUG}
|
||||||
WriteLn ('Chyba 2 zpracovani downloadPDF id ' + idDigiFile.ToString + ' >> ' + errMsg);
|
WriteLn ('Chyba 2 zpracovani downloadPDF id ' + idDigiFile.ToString + ' >> ' + errMsg);
|
||||||
@ -384,7 +399,7 @@
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
lQry.Next;
|
lQry.Next;
|
||||||
end;
|
end; // while
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
lQry.Close;
|
lQry.Close;
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
-- dbo.ef_Vyroba_EvidROpR_MamNeuzavrenouPredchozi
|
||||||
|
CREATE FUNCTION dbo.ef_Vyroba_EvidROpR_MamNeuzavrenouPredchozi (@IDPrikaz INT, @Doklad INT, @Alt NCHAR(1) )
|
||||||
|
RETURNS BIT
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE
|
||||||
|
@retVal BIT=0,
|
||||||
|
@sCisOper NVARCHAR(4),
|
||||||
|
@iCisOper INT
|
||||||
|
DECLARE @idPredOperaci TABLE (ID INT NOT NULL)
|
||||||
|
|
||||||
|
|
||||||
|
SET @sCisOper=(SELECT TOP(1) TRIM(Operace) FROM dbo.TabPrPostup WITH(NOLOCK) WHERE IDPrikaz=@IDPrikaz AND Doklad=@Doklad AND Alt=@Alt AND IDOdchylkyDo IS NULL)
|
||||||
|
SET @iCisOper=TRY_PARSE(@sCisOper AS INT)
|
||||||
|
IF (@iCisOper IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
-- zjisti IDcka operaci prede mnou (dle cisla operace)
|
||||||
|
INSERT @idPredOperaci (ID)
|
||||||
|
SELECT ID FROM dbo.TabPrPostup WITH(NOLOCK) WHERE IDPrikaz=@IDPrikaz AND IDOdchylkyDo IS NULL AND ISNULL(TRY_PARSE(TRIM(Operace) AS INT),0)<@iCisOper
|
||||||
|
|
||||||
|
-- jsou operace prede mnou ?
|
||||||
|
IF EXISTS(SELECT 1 FROM @idPredOperaci)
|
||||||
|
-- je nejaka co mam rozjetou v Evid.rozprac.operaci ?
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabEvidRozpracOperR r WITH(NOLOCK) JOIN dbo.TabEvidRozpracOper h WITH(NOLOCK) ON (h.ID=r.IDEvidRozpracOper)
|
||||||
|
JOIN dbo.TabPrPostup p WITH(NOLOCK) ON (p.IDPrikaz=@IDPrikaz AND p.IDOdchylkyDo IS NULL)
|
||||||
|
WHERE p.ID IN (SELECT ID FROM @idPredOperaci) AND h.Stav IN (10,20)
|
||||||
|
)
|
||||||
|
SET @retVal=1
|
||||||
|
END
|
||||||
|
RETURN @retVal
|
||||||
|
END
|
||||||
@ -204,11 +204,11 @@ IF (@idPrednaOpOdv IS NOT NULL)
|
|||||||
|
|
||||||
IF (@idJson IS NOT NULL)
|
IF (@idJson IS NOT NULL)
|
||||||
DECLARE j CURSOR LOCAL FOR
|
DECLARE j CURSOR LOCAL FOR
|
||||||
SELECT ID, JsonData, Objekt, Akce FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson
|
SELECT ID, JsonData, Objekt, Akce FROM dbo._hdc_ph_PrijataJsonData WITH(NOLOCK) WHERE ID=@idJson
|
||||||
ELSE
|
ELSE
|
||||||
DECLARE j CURSOR LOCAL FOR
|
DECLARE j CURSOR LOCAL FOR
|
||||||
SELECT ID, JsonData, Objekt, Akce
|
SELECT ID, JsonData, Objekt, Akce
|
||||||
FROM dbo._hdc_ph_PrijataJsonData
|
FROM dbo._hdc_ph_PrijataJsonData WITH(NOLOCK)
|
||||||
WHERE Blokovano=0
|
WHERE Blokovano=0
|
||||||
AND DatZpracovani IS NULL
|
AND DatZpracovani IS NULL
|
||||||
AND ISNULL(JSONData,N'')<>N''
|
AND ISNULL(JSONData,N'')<>N''
|
||||||
@ -273,6 +273,8 @@ WHILE (1=1)
|
|||||||
CROSS APPLY OPENJSON(d3.operace, N'$')
|
CROSS APPLY OPENJSON(d3.operace, N'$')
|
||||||
WITH ([prikazy] NVARCHAR(max) AS JSON) AS d4
|
WITH ([prikazy] NVARCHAR(max) AS JSON) AS d4
|
||||||
|
|
||||||
|
IF (@idVPr IS NOT NULL)
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET IDPrikaz=@idVPr WHERE ID=@idJson
|
||||||
IF (@idDatazoneOper IS NOT NULL)
|
IF (@idDatazoneOper IS NOT NULL)
|
||||||
UPDATE dbo._hdc_ph_PrijataJsonData SET IdPHIdent=@idDatazoneOper WHERE ID=@idJson
|
UPDATE dbo._hdc_ph_PrijataJsonData SET IdPHIdent=@idDatazoneOper WHERE ID=@idJson
|
||||||
|
|
||||||
@ -338,7 +340,7 @@ WHILE (1=1)
|
|||||||
IF (@@FETCH_STATUS<>0) BREAK
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
SELECT @idDilec=p.IDTabKmen, @sklProVydejRP=rp.VydejMatPol_SkladProGenHlavDZ
|
SELECT @idDilec=p.IDTabKmen, @sklProVydejRP=rp.VydejMatPol_SkladProGenHlavDZ
|
||||||
FROM dbo.TabPrikaz p INNER JOIN dbo.TabRadyPrikazu rp ON (rp.Rada=p.Rada) WHERE p.ID=@idVPr
|
FROM dbo.TabPrikaz p WITH(NOLOCK) JOIN dbo.TabRadyPrikazu rp WITH(NOLOCK) ON (rp.Rada=p.Rada) WHERE p.ID=@idVPr
|
||||||
|
|
||||||
-- SET @operPredna=dbo.hf_ZarovnejOperaciTechPos(@operPredna)
|
-- SET @operPredna=dbo.hf_ZarovnejOperaciTechPos(@operPredna)
|
||||||
/*
|
/*
|
||||||
@ -375,7 +377,7 @@ WHILE (1=1)
|
|||||||
IF (@idPrP IS NOT NULL)
|
IF (@idPrP IS NOT NULL)
|
||||||
BEGIN
|
BEGIN
|
||||||
-- korekce cisla dokladu, pred odvadeci opeaci
|
-- korekce cisla dokladu, pred odvadeci opeaci
|
||||||
SELECT @dokl=ISNULL(MAX(Doklad),0)+1 FROM dbo.TabPrPostup WITH (TABLOCKX) WHERE IDPrikaz=@idVPr AND Doklad<9990
|
SELECT @dokl=ISNULL(MAX(Doklad),0)+1 FROM dbo.TabPrPostup WHERE IDPrikaz=@idVPr AND Doklad<9990
|
||||||
UPDATE dbo.TabPrPostup SET Doklad=@dokl, Odvadeci=0 WHERE ID=@idPrP
|
UPDATE dbo.TabPrPostup SET Doklad=@dokl, Odvadeci=0 WHERE ID=@idPrP
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
@ -492,6 +494,8 @@ WHILE (1=1)
|
|||||||
IF (CHARINDEX('skupina', @materialJson)>0)
|
IF (CHARINDEX('skupina', @materialJson)>0)
|
||||||
UPDATE dbo._hdc_ph_PrijataJsonData SET MamMaterial=1 WHERE ID=@idJson
|
UPDATE dbo._hdc_ph_PrijataJsonData SET MamMaterial=1 WHERE ID=@idJson
|
||||||
|
|
||||||
|
IF (@idVPr IS NOT NULL)
|
||||||
|
UPDATE dbo._hdc_ph_PrijataJsonData SET IDPrikaz=@idVPr WHERE ID=@idJson
|
||||||
IF (@idDatazoneOper IS NOT NULL)
|
IF (@idDatazoneOper IS NOT NULL)
|
||||||
UPDATE dbo._hdc_ph_PrijataJsonData SET IdPHIdent=@idDatazoneOper WHERE ID=@idJson
|
UPDATE dbo._hdc_ph_PrijataJsonData SET IdPHIdent=@idDatazoneOper WHERE ID=@idJson
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
IF OBJECT_ID(N'dbo._hdc_ph_PrijataJsonData', N'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
/* 18.8.2025 */
|
||||||
|
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'IDPrikaz') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD IDPrikaz INT NULL
|
||||||
|
DROP INDEX IF EXISTS EI_hdc_ph_PrijataJsonData_IDPrikaz ON dbo._hdc_ph_PrijataJsonData
|
||||||
|
CREATE NONCLUSTERED INDEX EI_hdc_ph_PrijataJsonData_IDPrikaz ON dbo._hdc_ph_PrijataJsonData (IDPrikaz)
|
||||||
|
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||||
|
|
||||||
|
/* 21.8.2025 */
|
||||||
|
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'MamMaterial') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD MamMaterial BIT NOT NULL DEFAULT 0
|
||||||
|
|
||||||
|
END
|
||||||
Binary file not shown.
@ -1,9 +1,11 @@
|
|||||||
col_TabPredna_EXT RCDATA .\sql\col_TabPredna_EXT.sql
|
ef_Vyroba_EvidROpR_MamNeuzavrenouPredchozi RCDATA .\sql\ef_Vyroba_EvidROpR_MamNeuzavrenouPredchozi.sql
|
||||||
col_TabKmenZbozi_EXT RCDATA .\sql\col_TabKmenZbozi_EXT.sql
|
tbl_hdc_ph_PrijataJsonData_rozsireni RCDATA .\sql\tbl_hdc_ph_PrijataJsonData_rozsireni.sql
|
||||||
col_TabEvidRozpracOper_EXT RCDATA .\sql\col_TabEvidRozpracOper_EXT.sql
|
col_TabPredna_EXT RCDATA .\sql\col_TabPredna_EXT.sql
|
||||||
col_TabPrPostup_EXT RCDATA .\sql\col_TabPrPostup_EXT.sql
|
col_TabKmenZbozi_EXT RCDATA .\sql\col_TabKmenZbozi_EXT.sql
|
||||||
ep_Vyroba_GenVydejZeMzdy RCDATA .\sql\ep_Vyroba_GenVydejZeMzdy.sql
|
col_TabEvidRozpracOper_EXT RCDATA .\sql\col_TabEvidRozpracOper_EXT.sql
|
||||||
ep_Vyroba_GenOdvodZeMzdy RCDATA .\sql\ep_Vyroba_GenOdvodZeMzdy.sql
|
col_TabPrPostup_EXT RCDATA .\sql\col_TabPrPostup_EXT.sql
|
||||||
ep_Vyroba_InsertEvidRozpracOper RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOper.sql
|
ep_Vyroba_GenVydejZeMzdy RCDATA .\sql\ep_Vyroba_GenVydejZeMzdy.sql
|
||||||
ep_Vyroba_InsertEvidRozpracOperPol RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOperPol.sql
|
ep_Vyroba_GenOdvodZeMzdy RCDATA .\sql\ep_Vyroba_GenOdvodZeMzdy.sql
|
||||||
ep_HDCDZApi_ZpracujPrijataData RCDATA .\sql\ep_HDCDZApi_ZpracujPrijataData.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
|
||||||
|
|||||||
BIN
_custom/Rootvin/hdcDZAPIcfg.dat
Normal file
BIN
_custom/Rootvin/hdcDZAPIcfg.dat
Normal file
Binary file not shown.
47
_custom/Rootvin/sql/bp_Gatema_SDDecodeBarCode.sql
Normal file
47
_custom/Rootvin/sql/bp_Gatema_SDDecodeBarCode.sql
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
-- dbo.BP_Gatema_SDDecodeBarCode
|
||||||
|
CREATE PROCEDURE dbo.BP_Gatema_SDDecodeBarCode
|
||||||
|
@TypBC NVARCHAR(50), -- '', 'CODABAR', 'EAN 13', 'EAN 128', 'CODE 128', 'CODE 39', 'DATAMATRIX', 'QRCODE', 'I2OF5', 'EAN 8', 'PDF417'
|
||||||
|
@BarCode NVARCHAR(2000),
|
||||||
|
@Pozadavek INT, -- -1=um<75>st<73>n<EFBFBD>, 0=SSCC, 1=BC zbo<62><6F>, 10=<3D>ar<61>e, 15=dat.exp., 30=mno<6E>stv<74>, 90=ID p<><70>kaz
|
||||||
|
@IDOrg INT=NULL
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- Vol<6F> se p<>i pokusu z<>skat z <20><>rov<6F>ho k<>du konkr<6B>tn<74> informaci. Pokud procedura nechce prov<6F>d<EFBFBD>t dek<65>dov<6F>n<EFBFBD>, tak se jen ukon<6F><6E>,
|
||||||
|
-- v opa<70>n<EFBFBD>m p<><70>pad<61> vrac<61> jeden z<>znam s jedn<64>m po<70>adovan<61>m <20>dajem (typ text/datum/<2F><>slo)
|
||||||
|
-- Pokud vr<76>t<EFBFBD> z<>znam (text/<2F><>slo/datum), tak standardn<64> dek<65>dov<6F>n<EFBFBD> se ji<6A> nebude prov<6F>d<EFBFBD>t
|
||||||
|
|
||||||
|
-- IF (@Pozadavek=1) AND (@TypBC=N'PDF417')
|
||||||
|
-- SELECT LEFT(@BarCode,4)
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@fncCode INT,
|
||||||
|
@typ NVARCHAR(50)=N'???',
|
||||||
|
@vraceno NVARCHAR(50)=N'',
|
||||||
|
@l SMALLINT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@Pozadavek=-1)
|
||||||
|
SET @typ=N'um<EFBFBD>st<EFBFBD>n<EFBFBD>'
|
||||||
|
IF (@Pozadavek=1)
|
||||||
|
SET @typ=N'barcode'
|
||||||
|
IF (@Pozadavek=10)
|
||||||
|
SET @typ=N'<EFBFBD>ar<EFBFBD>e'
|
||||||
|
IF (@Pozadavek=15)
|
||||||
|
SET @typ=N'dat.exp.'
|
||||||
|
IF (@Pozadavek=30)
|
||||||
|
SET @typ=N'mno<EFBFBD>stv<EFBFBD>'
|
||||||
|
IF (@Pozadavek=90)
|
||||||
|
SET @typ=N'ID p<><70>kaz'
|
||||||
|
IF (@typ=N'???')
|
||||||
|
SET @typ=CONVERT(nvarchar, @Pozadavek)
|
||||||
|
|
||||||
|
|
||||||
|
SET @l = LEN(@BarCode)
|
||||||
|
|
||||||
|
|
||||||
|
INSERT dbo._hdc_ph_Log (LogText) SELECT @typ + N' >> ' + @Barcode
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
19
_custom/Rootvin/sql/col_TabPostup_EXT.sql
Normal file
19
_custom/Rootvin/sql/col_TabPostup_EXT.sql
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPostup_EXT', N'_PlanovanaOperace') IS NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPostup', @NazevAtrSys=N'_PlanovanaOperace', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Operace pro KapacPl',
|
||||||
|
@NazevAtrVerZkr=N'Pl<EFBFBD>novan<EFBFBD> operace', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=1,
|
||||||
|
@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=N'Operace pro kapacitn<74> pl<70>n', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @VazbaTypMoje=2
|
||||||
|
EXEC dbo.hp_ExterniTabulka @Tab=N'TabPostup', @Atr=N'_PlanovanaOperace', @Typ=N'BIT'
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPostup_EXT', N'_RychlostOperKsHod') IS NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPostup', @NazevAtrSys=N'_RychlostOperKsHod', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Rychlost operace (ks/hod)',
|
||||||
|
@NazevAtrVerZkr=N'Rychlost ks/hod', @TypAtr=N'NUMERIC', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=1,
|
||||||
|
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||||
|
@TypAtrSQL=N'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Rychlost operace v ks/hod pro kapacitn<74> pl<70>n', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @VazbaTypMoje=2
|
||||||
|
EXEC dbo.hp_ExterniTabulka @Tab=N'TabPostup', @Atr=N'_RychlostOperKsHod', @Typ=N'NUMERIC(19,6)'
|
||||||
|
END
|
||||||
|
|
||||||
@ -1,12 +1,36 @@
|
|||||||
DECLARE @currDat DATETIME=GETDATE()
|
DECLARE @currDat DATETIME=GETDATE()
|
||||||
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_PaletListProVydej') IS NULL)
|
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',
|
BEGIN
|
||||||
|
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,
|
@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,
|
@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
|
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @VazbaTypMoje=1
|
||||||
|
EXEC dbo.hp_ExterniTabulka @Tab=N'TabPrPostup', @Atr=N'_PaletListProVydej', @Typ=N'NVARCHAR(100)'
|
||||||
|
END
|
||||||
|
|
||||||
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_SarzeProVydej') IS NULL)
|
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',
|
BEGIN
|
||||||
|
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,
|
@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,
|
@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
|
@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, @VazbaTypMoje=1
|
||||||
|
EXEC dbo.hp_ExterniTabulka @Tab=N'TabPrPostup', @Atr=N'_SarzeProVydej', @Typ=N'NVARCHAR(100)'
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_PlanovanaOperace') IS NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_PlanovanaOperace', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Pl<EFBFBD>novan<EFBFBD> operace (do KapacPl)',
|
||||||
|
@NazevAtrVerZkr=N'Pl<EFBFBD>n.oper.', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=8, @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=N'Operace pro kapacitn<74> pl<70>n', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @VazbaTypMoje=2
|
||||||
|
EXEC dbo.hp_ExterniTabulka @Tab=N'TabPrPostup', @Atr=N'_PlanovanaOperace', @Typ=N'BIT'
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_RychlostOperKsHod') IS NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_RychlostOperKsHod', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Rychlost operace (ks/hod)',
|
||||||
|
@NazevAtrVerZkr=N'Rychlost ks/hod', @TypAtr=N'NUMERIC', @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'NUMERIC(19,6)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'Rychlost operace v ks/hod pro kapacitn<74> pl<70>n', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1, @VazbaTypMoje=2
|
||||||
|
EXEC dbo.hp_ExterniTabulka @Tab=N'TabPrPostup', @Atr=N'_RychlostOperKsHod', @Typ=N'NUMERIC(19,6)'
|
||||||
|
END
|
||||||
|
|||||||
67
_custom/Rootvin/sql/ep_GenerovaniDokladuOZ_HDC.sql
Normal file
67
_custom/Rootvin/sql/ep_GenerovaniDokladuOZ_HDC.sql
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
-- dbo.ep_GenerovaniDokladuOZ_HDC
|
||||||
|
CREATE PROCEDURE dbo.ep_GenerovaniDokladuOZ_HDC
|
||||||
|
@IDDoklad INT
|
||||||
|
AS
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@cnt INT,
|
||||||
|
@errMsg NVARCHAR(500)
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idDZOld INT,
|
||||||
|
@dpz TINYINT,
|
||||||
|
@radaDokl NVARCHAR(3),
|
||||||
|
@skl NVARCHAR(30),
|
||||||
|
@cOrg INT,
|
||||||
|
@idOrg INT,
|
||||||
|
@dzDatPorizeni DATETIME,
|
||||||
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzKurz NUMERIC(19,6),
|
||||||
|
@dzKurzE NUMERIC(19,6),
|
||||||
|
@vstC TINYINT,
|
||||||
|
@jednM INT
|
||||||
|
DECLARE
|
||||||
|
@sklMatHlavni NVARCHAR(30),
|
||||||
|
@sklTechnolog NVARCHAR(30), -- "technologicky" sklad, prijmy/vydeje z prikazu
|
||||||
|
@sklPekarna NVARCHAR(30)
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @dpz=DruhPohybuZbo, @skl=IDSklad, @radaDokl=RadaDokladu, @cOrg=CisloOrg, @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro,
|
||||||
|
@dzDatPorizeni=DatPorizeni, @vstC=VstupniCena, @jednM=JednotkaMeny
|
||||||
|
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklMatHlavni IS NULL)
|
||||||
|
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l' AND CisloStr LIKE N'3%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna' AND CisloStr LIKE N'2%'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@dpz=4) -- vydej v evid.cene
|
||||||
|
BEGIN
|
||||||
|
IF (@radaDokl=N'231') -- prevodka
|
||||||
|
BEGIN
|
||||||
|
IF (@skl=@sklMatHlavni) -- na hlavnim skladu materialu
|
||||||
|
BEGIN
|
||||||
|
-- mam nejakeho predka ?
|
||||||
|
SET @idDZOld = (SELECT TOP(1) IDOldDoklad FROM dbo.TabPohybyZbozi WHERE IDDoklad=@IDDoklad AND IdOldDoklad IS NOT NULL)
|
||||||
|
|
||||||
|
-- jsem vydejka ze skladu materialu, puvodem z expedaku pozadavku na material ? (rada 550)
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabDokladyZbozi WHERE ID=@idDZOld AND DruhPohybuZbo=9 AND RadaDokladu=N'550' AND IDSklad=@sklMatHlavni)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET DruhPohybuPrevod=0, TypPrevodky=N'281', IdSkladPrevodu=@sklPekarna, PrevodRealizovat=0 WHERE ID=@IDDoklad
|
||||||
|
END
|
||||||
|
END -- @skl=@sklMatHlavni
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
@ -6,7 +6,8 @@ AS
|
|||||||
-- HD Consulting Strakonice, T. Buzin
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
-- !! 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)
|
-- 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) )
|
-- nastaveni skladu lze ovlivnit pres #TabDefiniceProP01 (HlavniSkladMat NVARCHAR(30), TechnologickySklad NVARCHAR(30),
|
||||||
|
-- TechnologickySkladPolo NVARCHAR(30), SkladVyrobaPekarna NVARCHAR(30) )
|
||||||
|
|
||||||
|
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
@ -22,6 +23,7 @@ DECLARE
|
|||||||
DECLARE
|
DECLARE
|
||||||
@sklHlavni NVARCHAR(30),
|
@sklHlavni NVARCHAR(30),
|
||||||
@sklTechnolog NVARCHAR(30),
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklTechnologPolo NVARCHAR(30),
|
||||||
@sklPekarna NVARCHAR(30),
|
@sklPekarna NVARCHAR(30),
|
||||||
@sklPrijem NVARCHAR(30)
|
@sklPrijem NVARCHAR(30)
|
||||||
|
|
||||||
@ -105,19 +107,23 @@ IF (@radaDokl=N'281') AND (@sklDokl=@sklPekarna) // prijemka/prevodka na pekarnu
|
|||||||
-- na "zrcadlovy" technologicky sklad (neni uctovany), ktery slouzi jen pro vydejky z Vyrobnich prikazu
|
-- na "zrcadlovy" technologicky sklad (neni uctovany), ktery slouzi jen pro vydejky z Vyrobnich prikazu
|
||||||
-- z tech se denne generuje sumacni na hlavnim sklade
|
-- z tech se denne generuje sumacni na hlavnim sklade
|
||||||
IF OBJECT_ID(N'tempdb..#TabDefiniceProP01', N'U') IS NOT NULL
|
IF OBJECT_ID(N'tempdb..#TabDefiniceProP01', N'U') IS NOT NULL
|
||||||
SELECT TOP(1) @sklHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #TabDefiniceProP01
|
SELECT TOP(1) @sklHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad, @sklTechnologPolo=TechnologickySkladPolo
|
||||||
|
FROM #TabDefiniceProP01
|
||||||
IF (@sklHlavni IS NULL)
|
IF (@sklHlavni IS NULL)
|
||||||
SELECT @sklHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
|
SELECT @sklHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l' AND CisloStr LIKE N'3%'
|
||||||
IF (@sklTechnolog IS NULL)
|
IF (@sklTechnolog IS NULL)
|
||||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%'
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklTechnolog IS NULL)
|
IF (@sklTechnolog IS NULL)
|
||||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technologick<EFBFBD> sklad%v<>dej%'
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technologick<EFBFBD> sklad%v<>dej%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnologPolo IS NULL)
|
||||||
|
SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%pol%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklPekarna IS NULL)
|
IF (@sklPekarna IS NULL)
|
||||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna' AND CisloStr LIKE N'2%'
|
||||||
|
|
||||||
|
|
||||||
-- jen prijemka/prevodka na sklad Pekarna (211)
|
-- jen prijemka/prevodka na sklad Pekarna (211)
|
||||||
IF (@dpz=0) AND (@radaDokl IN (N'281')) AND (@sklDokl=@sklPekarna) AND (@sklTechnolog IS NOT NULL)
|
-- vypnuto - prijemka pro odpis z prikazu se dela pred vydejkou (viz dbo.ep_Vyroba_GenVydejZeMzdy:prijemka materialu pro vydejku )
|
||||||
|
IF (1=0) AND (@dpz=0) AND (@radaDokl IN (N'281')) AND (@sklDokl=@sklPekarna) AND (@sklTechnolog IS NOT NULL)
|
||||||
BEGIN
|
BEGIN
|
||||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklTechnolog, @DruhPohybu=@dpz, @RadaDokladu=@radaDokl,
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklTechnolog, @DruhPohybu=@dpz, @RadaDokladu=@radaDokl,
|
||||||
@Mena=@dzMena, @CisloOrg=@cOrg, @DatumPorizeni=@dzDatum
|
@Mena=@dzMena, @CisloOrg=@cOrg, @DatumPorizeni=@dzDatum
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
-- dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
-- dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
||||||
CREATE PROCEDURE dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
CREATE PROCEDURE dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
||||||
@IDDoklad INT,
|
@IDDoklad INT,
|
||||||
@errMsg NVARCHAR(500)=N'' OUT
|
@errMsg NVARCHAR(500)=N'' OUT,
|
||||||
|
@IDDokladPrijem INT=NULL OUT
|
||||||
AS
|
AS
|
||||||
|
|
||||||
-- HD Consulting Strakonice, T. Buzin
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
@ -10,7 +11,7 @@ AS
|
|||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
IF EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1)
|
IF EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad AND Realizovano=1)
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ DECLARE
|
|||||||
DECLARE
|
DECLARE
|
||||||
@sklMatHlavni NVARCHAR(30),
|
@sklMatHlavni NVARCHAR(30),
|
||||||
@sklTechnolog NVARCHAR(30),
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklTechnologPolo NVARCHAR(30),
|
||||||
@sklPekarna NVARCHAR(30),
|
@sklPekarna NVARCHAR(30),
|
||||||
@poslSarze NVARCHAR(100),
|
@poslSarze NVARCHAR(100),
|
||||||
@poslPalList NVARCHAR(100)
|
@poslPalList NVARCHAR(100)
|
||||||
@ -61,13 +63,15 @@ DELETE FROM @pol
|
|||||||
SET @uziv = 0
|
SET @uziv = 0
|
||||||
|
|
||||||
IF (@sklMatHlavni IS NULL)
|
IF (@sklMatHlavni IS NULL)
|
||||||
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál'
|
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<EFBFBD>l' AND CisloStr LIKE N'3%'
|
||||||
IF (@sklTechnolog IS NULL)
|
IF (@sklTechnolog IS NULL)
|
||||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NOVÝ% sklad%výdej%'
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<EFBFBD><EFBFBD>%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklTechnolog IS NULL)
|
IF (@sklTechnolog IS NULL)
|
||||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%výdej%'
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<EFBFBD>dej%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnologPolo IS NULL)
|
||||||
|
SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%pol%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklPekarna IS NULL)
|
IF (@sklPekarna IS NULL)
|
||||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna'
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<EFBFBD>rna' AND CisloStr LIKE N'2%'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -92,10 +96,10 @@ WHILE (1=1)
|
|||||||
AND p.Mnozstvi>0
|
AND p.Mnozstvi>0
|
||||||
AND d.DruhPohybuZbo IN (2,4)
|
AND d.DruhPohybuZbo IN (2,4)
|
||||||
AND d.Realizovano=0
|
AND d.Realizovano=0
|
||||||
AND d.DatPorizeni<@datPorizeni)
|
AND DATEDIFF(day, d.DatPorizeni, @datPorizeni)<2)
|
||||||
, 0)
|
, 0)
|
||||||
SET @mnozSkl = ISNULL( (SELECT Mnozstvi FROM dbo.TabStavSkladu WHERE ID=@idSS), 0)
|
SET @mnozSkl = ISNULL( (SELECT Mnozstvi FROM dbo.TabStavSkladu WHERE ID=@idSS), 0)
|
||||||
SET @mnozChybi = @mnozSkl - @mnozPZ - @mnozNevyd
|
SET @mnozChybi = -1.0 * (@mnozSkl - @mnozPZ - @mnozNevyd)
|
||||||
IF (@mnozChybi>0)
|
IF (@mnozChybi>0)
|
||||||
BEGIN
|
BEGIN
|
||||||
SET @idSSPek = NULL
|
SET @idSSPek = NULL
|
||||||
@ -159,7 +163,7 @@ IF EXISTS(SELECT 1 FROM @pol)
|
|||||||
DEALLOCATE c
|
DEALLOCATE c
|
||||||
|
|
||||||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZNew
|
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZNew
|
||||||
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=@idDZ, @AktualizaceSlev=0
|
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=@idDZNew, @AktualizaceSlev=0
|
||||||
-- realizace
|
-- realizace
|
||||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZNew, @DatumRealizace=@datNasklad, @Uzivatel=@uziv, @BylaChyba=@bChyba OUT
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZNew, @DatumRealizace=@datNasklad, @Uzivatel=@uziv, @BylaChyba=@bChyba OUT
|
||||||
|
|
||||||
@ -171,8 +175,12 @@ IF EXISTS(SELECT 1 FROM @pol)
|
|||||||
SET @errMsg = ERROR_MESSAGE()
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||||
ROLLBACK TRAN
|
ROLLBACK TRAN
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba (3) p<><70>jemky korekce (ID ' + CONVERT(nvarchar, @idDZNew) + N') naskladn<64>n<EFBFBD> pro v<>dejku: ' + @errMsg, @IDDoklad
|
||||||
|
|
||||||
END CATCH
|
END CATCH
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
SET @IDDokladPrijem=@idDZNew
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
140
_custom/Rootvin/sql/ep_Vyroba_GenDenniVydejka.sql
Normal file
140
_custom/Rootvin/sql/ep_Vyroba_GenDenniVydejka.sql
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenDenniVydejka
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenDenniVydejka
|
||||||
|
@proDen DATETIME=NULL
|
||||||
|
AS
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@errMsg NVARCHAR(500),
|
||||||
|
@cnt INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@sklPekarna NVARCHAR(30),
|
||||||
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklTechnologHV NVARCHAR(30),
|
||||||
|
@radaDoklVydej NVARCHAR(3),
|
||||||
|
@radaStorno NVARCHAR(3),
|
||||||
|
@idDZVydej INT,
|
||||||
|
@idPZOld INT,
|
||||||
|
@idZboSkladOld INT,
|
||||||
|
@idZboSkladNew INT,
|
||||||
|
@idKmen INT,
|
||||||
|
@idPZNew INT,
|
||||||
|
@idVCK INT,
|
||||||
|
@idVCS INT,
|
||||||
|
@paletList NVARCHAR(50),
|
||||||
|
@sarze NVARCHAR(50),
|
||||||
|
@mnoz NUMERIC(19,6)
|
||||||
|
DECLARE
|
||||||
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzKurz NUMERIC(19,6),
|
||||||
|
@dzKurzE NUMERIC(19,6),
|
||||||
|
@vstC TINYINT,
|
||||||
|
@jednM INT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT TOP(1) @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SET @sklTechnolog = N'261'
|
||||||
|
IF (@sklTechnologHV IS NULL)
|
||||||
|
SELECT @sklTechnologHV=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnologHV IS NULL)
|
||||||
|
SET @sklTechnologHV = N'262'
|
||||||
|
|
||||||
|
|
||||||
|
SET @radaDoklVydej=N'223'
|
||||||
|
SET @radaStorno = N'229'
|
||||||
|
|
||||||
|
|
||||||
|
IF (@proDen IS NULL)
|
||||||
|
SET @proDen=GETDATE()
|
||||||
|
SET @proDen = dbo.hf_TruncDate(@proDen)
|
||||||
|
SET @proDen = DATEADD(second, -1, @proDen)
|
||||||
|
|
||||||
|
|
||||||
|
-- ma vubec smysl to delat ?
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
WHERE d.IDSklad IN (@sklTechnolog) AND d.RadaDokladu IN (@radaDoklVydej, @radaStorno) AND d.Realizovano=1
|
||||||
|
AND dbo.hf_TruncDate(d.DatPorizeni)=dbo.hf_TruncDate(@proDen) AND d.CisloOrg=0
|
||||||
|
)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @cnt=ISNULL( (SELECT COUNT(ID) FROM dbo.TabDokladyZbozi WHERE IDSklad=@sklPekarna AND RadaDokladu=@radaDoklVydej AND DruhPohybuZbo=4
|
||||||
|
AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@proDen) AND CisloOrg=0 AND Realizovano=0), 0)
|
||||||
|
IF (@cnt=0)
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZVydej OUT, @Sklad=@sklPekarna, @DruhPohybu=4, @RadaDokladu=@radaDoklVydej, @CisloOrg=0, @DatumPorizeni=@proDen
|
||||||
|
ELSE
|
||||||
|
IF (@cnt=1)
|
||||||
|
SET @idDZVydej=(SELECT ID FROM dbo.TabDokladyZbozi WHERE IDSklad=@sklPekarna AND RadaDokladu=@radaDoklVydej AND DruhPohybuZbo=4
|
||||||
|
AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@proDen) AND CisloOrg=0 AND Realizovano=0)
|
||||||
|
ELSE
|
||||||
|
SET @idDZVydej=(SELECT TOP(1) ID FROM dbo.TabDokladyZbozi WHERE IDSklad=@sklPekarna AND RadaDokladu=@radaDoklVydej AND DruhPohybuZbo=4
|
||||||
|
AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@proDen) AND CisloOrg=0 AND Realizovano=0 ORDER BY DatPorizeni DESC)
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idDZVydej IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena FROM dbo.TabDokladyZbozi WHERE ID=@idDZVydej
|
||||||
|
|
||||||
|
|
||||||
|
-- begin: polozky materialu, tj. ze skladu 261
|
||||||
|
DECLARE p CURSOR LOCAL FOR
|
||||||
|
SELECT -1.0*SUM(p.MnozstviDruhove), p.IDZboSklad
|
||||||
|
FROM dbo.TabPohybyZbozi p WITH(NOLOCK)
|
||||||
|
JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||||
|
JOIN dbo.TabKmenZbozi k WITH(NOLOCK) ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE d.IDSklad=@sklTechnolog
|
||||||
|
AND d.RadaDokladu IN (@radaDoklVydej, @radaStorno)
|
||||||
|
AND d.DruhPohybuZbo IN (3,4)
|
||||||
|
AND d.Realizovano=1
|
||||||
|
AND p.Mnozstvi>0
|
||||||
|
AND k.Sluzba=0
|
||||||
|
AND dbo.hf_TruncDate(d.DatPorizeni)=dbo.hf_TruncDate(@proDen)
|
||||||
|
GROUP BY p.IDZboSklad, k.Nazev1
|
||||||
|
ORDER BY k.Nazev1
|
||||||
|
OPEN p
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM p INTO @mnoz, @idZboSkladOld
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SELECT @idKmen=IDKmenZbozi FROM dbo.TabStavSkladu WHERE ID=@idZboSkladOld
|
||||||
|
SELECT @idZboSkladNew=ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKmen AND IDSklad=@sklPekarna
|
||||||
|
|
||||||
|
SET @idPZNew=(SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZVydej AND IDZboSklad=@idZboSkladNew)
|
||||||
|
IF (@idPZNew IS NULL)
|
||||||
|
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZNew OUT, @IDDoklad=@idDZVydej, @DruhPohybu=4, @CisloOrg=0, @IDZboSklad=@idZboSkladNew, @Mena=@dzMena,
|
||||||
|
@Kurz=@dzKurz, @KurzEuro=@dzKurzE, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0,
|
||||||
|
@VstupniCena=@vstC, @PovolitDuplicitu=0, @PovolitBlokovane=1, @Mnozstvi=@mnoz
|
||||||
|
IF (@idPZNew IS NOT NULL)
|
||||||
|
INSERT dbo._TabVyroba_VydejMatSarze (IDPohybZbozi, IDPohybZboziNew, PaletovyList, Sarze, IDKmenZbozi, Mnozstvi)
|
||||||
|
SELECT p.ID, @idPZNew, ISNULL(pe._Vyroba_PaletList, N''), ISNULL(_Vyroba_Sarze, N''), s.IDKmenZbozi, -1.0*p.Mnozstvi
|
||||||
|
FROM dbo.TabPohybyZbozi p WITH(NOLOCK)
|
||||||
|
LEFT JOIN dbo.TabPohybyZbozi_EXT pe WITH(NOLOCK) ON (pe.ID=p.ID)
|
||||||
|
JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||||
|
JOIN dbo.TabKmenZbozi k WITH(NOLOCK) ON (k.ID=s.IDKmenZbozi)
|
||||||
|
WHERE d.IDSklad=@sklTechnolog
|
||||||
|
AND d.RadaDokladu IN (@radaDoklVydej, @radaStorno)
|
||||||
|
AND d.DruhPohybuZbo IN (3,4)
|
||||||
|
AND d.Realizovano=1
|
||||||
|
AND p.Mnozstvi>0
|
||||||
|
AND k.Sluzba=0
|
||||||
|
AND p.IDZboSklad=@idZboSkladOld
|
||||||
|
AND dbo.hf_TruncDate(d.DatPorizeni)=dbo.hf_TruncDate(@proDen)
|
||||||
|
ORDER BY k.Nazev1
|
||||||
|
END
|
||||||
|
CLOSE p
|
||||||
|
DEALLOCATE p
|
||||||
|
-- end: polozky materialu, tj. ze skladu 261
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
283
_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyroby.sql
Normal file
283
_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyroby.sql
Normal file
@ -0,0 +1,283 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenObjednavkuMatDoVyroby
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenObjednavkuMatDoVyroby
|
||||||
|
@cilovySklad NVARCHAR(30)=N'',
|
||||||
|
@radaDokl NVARCHAR(3)=N'',
|
||||||
|
@druhPohybuZbo TINYINT=4,
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri spusteni pluginu Pekarna nebo pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT,
|
||||||
|
@cnt INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idObj INT,
|
||||||
|
@radaPrijem NVARCHAR(3),
|
||||||
|
@druhPohybuZboPrijem TINYINT,
|
||||||
|
@idDoklad INT,
|
||||||
|
@datumDokladuMat DATETIME,
|
||||||
|
@datumDokladuFin DATETIME,
|
||||||
|
@genDokladMat BIT=0,
|
||||||
|
@idDokladMat INT,
|
||||||
|
@genDokladFin BIT=0,
|
||||||
|
@idDokladFin INT,
|
||||||
|
@cOrg INT=0,
|
||||||
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzKurz NUMERIC(19,6),
|
||||||
|
@dzKurzEur NUMERIC(19,6),
|
||||||
|
@jednM INT,
|
||||||
|
@vstC TINYINT,
|
||||||
|
@idPohyb INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@idZboSklad INT,
|
||||||
|
@idKmen INT,
|
||||||
|
@idKZ INT,
|
||||||
|
@sz NVARCHAR(3),
|
||||||
|
@rc NVARCHAR(30),
|
||||||
|
@sarze NVARCHAR(100),
|
||||||
|
@paletList NVARCHAR(100),
|
||||||
|
@skladMat NVARCHAR(30),
|
||||||
|
@skladFin NVARCHAR(30),
|
||||||
|
@mnoz NUMERIC(19,6),
|
||||||
|
@mnozVydano NUMERIC(19,6),
|
||||||
|
@material BIT
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#VyrobaGenObjednavkuMatDoVyroby', N'U') IS NOT NULL
|
||||||
|
SELECT TOP(1) @skladMat=SkladMaterial, @skladFin=SkladVyrobky
|
||||||
|
FROM #VyrobaGenObjednavkuMatDoVyroby
|
||||||
|
|
||||||
|
|
||||||
|
SET @radaDokl = ISNULL(@radaDokl, N'231')
|
||||||
|
SET @druhPohybuZbo = ISNULL(@druhPohybuZbo, 4)
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM dbo.TabDruhDokZbo WHERE RadaDokladu=@radaDokl AND DruhPohybuZbo=@druhPohybuZbo)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @cilovySklad=IDSkladPrevodu, @radaPrijem=TypPrevodky, @druhPohybuZboPrijem=TabDruhDZ_DruhPohybuZboPre
|
||||||
|
FROM dbo.TabDruhDokZbo WHERE RadaDokladu=@radaDokl AND DruhPohybuZbo=@druhPohybuZbo
|
||||||
|
SET @radaPrijem = ISNULL(@radaPrijem, N'281')
|
||||||
|
SET @druhPohybuZboPrijem = ISNULL(@druhPohybuZboPrijem, 0)
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDruhDokZbo WHERE RadaDokladu=@radaPrijem AND DruhPohybuZbo=@druhPohybuZboPrijem)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @cilovySklad = ISNULL(@cilovySklad, N'')
|
||||||
|
IF (@cilovySklad=N'')
|
||||||
|
SET @cilovySklad = N'211'
|
||||||
|
|
||||||
|
SET @skladMat = ISNULL(@skladMat, N'')
|
||||||
|
IF (@skladMat=N'')
|
||||||
|
SET @skladMat = N'311'
|
||||||
|
|
||||||
|
SET @skladFin = ISNULL(@skladFin, N'')
|
||||||
|
IF (@skladFin=N'')
|
||||||
|
SET @skladFin = N'312'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @genDokladMat=0
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=1 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SET @genDokladMat=1
|
||||||
|
SET @datumDokladuMat = (SELECT MIN(o.DatPorizeni) FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=1 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
END
|
||||||
|
SET @datumDokladuMat = ISNULL(@datumDokladuMat, GETDATE())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @genDokladFin=0
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=0 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SET @genDokladFin=1
|
||||||
|
SET @datumDokladuFin = (SELECT MIN(o.DatPorizeni) FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=0 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
END
|
||||||
|
SET @datumDokladuFin = ISNULL(@datumDokladuFin, GETDATE())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@genDokladMat=1) OR (@genDokladFin=1)
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE m CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT DISTINCT(JeMaterial)
|
||||||
|
FROM dbo._TabVyroba_Objednavky
|
||||||
|
WHERE Splneno=0
|
||||||
|
AND OdmitnutoSkladem=0
|
||||||
|
AND NocniObjednavka=0
|
||||||
|
AND Storno=0
|
||||||
|
AND Vratka=0
|
||||||
|
AND Blokovano=0
|
||||||
|
GROUP BY JeMaterial
|
||||||
|
OPEN m
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM m INTO @material
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @cnt = (SELECT COUNT(d.ID) FROM dbo.TabDokladyZbozi d JOIN dbo.TabDokladyZbozi_EXT de ON (de.ID=d.ID) WHERE d.IDSklad=@cilovySklad AND d.RadaDokladu=@radaDokl
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=IIF(@material=0, CAST(@datumDokladuMat AS DATE), CAST(@datumDokladuFin AS DATE)) AND s.BlokovaniEditoru IS NULL
|
||||||
|
AND d.DruhPohybuZbo=@druhPohybuZbo AND d.Realizovano=0 AND de._Vyroba_ObjednavkaMat_Typ=(@material+1)
|
||||||
|
)
|
||||||
|
IF (@cnt<=1)
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
IF (@material=0)
|
||||||
|
IF (@idDokladFin IS NULL)
|
||||||
|
SET @idDoklad = (SELECT d.ID FROM dbo.TabDokladyZbozi d JOIN dbo.TabDokladyZbozi_EXT de ON (de.ID=d.ID) WHERE d.IDSklad=@cilovySklad AND d.RadaDokladu=@radaDokl
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=CAST(@datumDokladuFin AS DATE) AND d.DruhPohybuZbo=@druhPohybuZbo AND d.Realizovano=0 AND de._Vyroba_ObjednavkaMat_Typ=2
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND de._Vydej_ObjednavkaMat=1
|
||||||
|
)
|
||||||
|
ELSE
|
||||||
|
SET @idDoklad = @idDokladFin
|
||||||
|
|
||||||
|
IF (@material=1)
|
||||||
|
IF (@idDokladMat IS NULL)
|
||||||
|
SET @idDoklad = (SELECT d.ID FROM dbo.TabDokladyZbozi d JOIN dbo.TabDokladyZbozi_EXT de ON (de.ID=d.ID) WHERE d.IDSklad=@cilovySklad AND d.RadaDokladu=@radaDokl
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=CAST(@datumDokladuMat AS DATE) AND d.DruhPohybuZbo=@druhPohybuZbo AND d.Realizovano=0 AND de._Vyroba_ObjednavkaMat_Typ=1
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND de._Vydej_ObjednavkaMat=1
|
||||||
|
)
|
||||||
|
ELSE
|
||||||
|
SET @idDoklad = @idDokladMat
|
||||||
|
|
||||||
|
|
||||||
|
IF (@idDoklad IS NULL)
|
||||||
|
BEGIN
|
||||||
|
IF (@material=0) AND (@genDokladFin=1)
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @Ident=@idDoklad OUT, @Sklad=@skladFin, @DruhPohybu=@druhPohybuZbo, @RadaDokladu=@radaDokl, @CisloOrg=@cOrg, @DatumPorizeni=@datumDokladuFin
|
||||||
|
IF (@material=1) AND (@genDokladMat=1)
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @Ident=@idDoklad OUT, @Sklad=@skladMat, @DruhPohybu=@druhPohybuZbo, @RadaDokladu=@radaDokl, @CisloOrg=@cOrg, @DatumPorizeni=@datumDokladuMat
|
||||||
|
IF (@idDoklad IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDOkladyZbozi_EXT WHERE ID=@idDoklad)
|
||||||
|
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDoklad)
|
||||||
|
UPDATE dbo.TabDokladyZbozi_EXT SET _Vydej_ObjednavkaMat=1 WHERE ID=@idDoklad
|
||||||
|
IF (@material=0)
|
||||||
|
SET @idDokladFin = @idDoklad
|
||||||
|
ELSE
|
||||||
|
SET @idDokladMat = @idDoklad
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @dzMena=Mena, @dzKurz=Kurz, @dzKurzEur=KurzEuro, @vstC=VstupniCena, @jednM=JednotkaMeny
|
||||||
|
FROM dbo.TabDokladyZbozi WHERE ID=@idDoklad
|
||||||
|
|
||||||
|
IF (@idDoklad IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
DECLARE c CURSOR LOCAL FOR
|
||||||
|
SELECT ID, SkupZbo, RegCis, IDKmenZbozi, Mnozstvi, PaletovyList, Sarze
|
||||||
|
FROM dbo._TabVyroba_Objednavky
|
||||||
|
WHERE Splneno=0
|
||||||
|
AND OdmitnutoSkladem=0
|
||||||
|
AND NocniObjednavka=0
|
||||||
|
AND Storno=0
|
||||||
|
AND Vratka=0
|
||||||
|
AND Blokovano=0
|
||||||
|
AND JeMaterial=@material
|
||||||
|
ORDER BY DatPorizeni
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @idObj, @sz, @rc, @idKmen, @mnoz, @paletList, @sarze
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @mnozVydano = ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObj), 0)
|
||||||
|
SET @mnoz = @mnoz - @mnozVydano
|
||||||
|
IF (@mnoz>0)
|
||||||
|
BEGIN
|
||||||
|
SET @idZboSklad = NULL
|
||||||
|
IF (@material=0)
|
||||||
|
SET @idZboSklad = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@skladFin)
|
||||||
|
ELSE
|
||||||
|
SET @idZboSklad = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@skladMat)
|
||||||
|
IF (@idZboSklad IS NULL)
|
||||||
|
IF (@material=0)
|
||||||
|
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@skladFin, @IDZboSklad=@idZboSklad OUT
|
||||||
|
ELSE
|
||||||
|
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@skladMat, @IDZboSklad=@idZboSklad OUT
|
||||||
|
IF (@idZboSklad IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDoklad, @DruhPohybu=@druhPohybuZbo, @CisloOrg=@cOrg, @IDZboSklad=@idZboSklad,
|
||||||
|
@Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzEur, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL,
|
||||||
|
@ZakazanoDPH=0, @VstupniCena=@vstC, @PovolitDuplicitu=1, @Mnozstvi@=mnoz
|
||||||
|
IF (@idPZ IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, Mnozstvi, Sarze, PaletovyList, SkupZbo, RegCis)
|
||||||
|
SELECT @idObj, @idDoklad, @idPZ, @mnoz, @sarze, @paletList, @sz, @rc
|
||||||
|
|
||||||
|
SET @paletList = ISNULL(@paletList, N'')
|
||||||
|
SET @sarze = ISNULL(@sarze, N'')
|
||||||
|
IF (@paletList<>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_PaletList=@paletList, _Vyroba_Sarze=@sarze WHERE ID=@idPZ
|
||||||
|
END
|
||||||
|
END -- @idPZ IS NOT NULL
|
||||||
|
|
||||||
|
END -- @idSS IS NOT NULL
|
||||||
|
|
||||||
|
END -- @mnoz>0
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
|
END -- @idDoklad IS NOT NULL
|
||||||
|
END -- @cnt<=1
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE m
|
||||||
|
DEALLOCATE m
|
||||||
|
|
||||||
|
END -- mam neco k zapsani ?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_GenObjednavkuMatDoVyroby2', 'P') IS NOT NULL
|
||||||
|
EXEC dbo.ep_Vyroba_GenObjednavkuMatDoVyroby2 @idDoklad
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- oznac splnene polozky
|
||||||
|
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT ID, Mnozstvi
|
||||||
|
FROM dbo._TabVyroba_Objednavky
|
||||||
|
WHERE Splneno=0
|
||||||
|
AND Vratka=0
|
||||||
|
AND Storno=0
|
||||||
|
AND OdmitnutoSkladem=0
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @idObj, @mnoz
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @mnozVydano = ISNULL( (SELECT SUM(op.Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol op JOIN dbo.TabPohybyZbozi p ON (p.ID=op.IDPohybOZ)
|
||||||
|
WHERE op.IDHlava=@idObj AND p.SkutecneDatReal IS NOT NULL), 0)
|
||||||
|
IF (@mnoz=@mnozVydano)
|
||||||
|
UPDATE dbo._TabVyroba_Objednavky SET Splneno=1 WHERE ID=@idObj
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
340
_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql
Normal file
340
_custom/Rootvin/sql/ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
-- dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew
|
||||||
|
CREATE PROCEDURE dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew
|
||||||
|
@errMsg NVARCHAR(500)=N'' OUT
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri spusteni pluginu Pekarna nebo pri startu Windows sluzby HDCDZApi !!
|
||||||
|
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@tranPred INT,
|
||||||
|
@cnt INT,
|
||||||
|
@iTemp INT
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@idObj INT,
|
||||||
|
@druhPohybuZbo TINYINT=9,
|
||||||
|
@radaExpPr NVARCHAR(3)=N'550',
|
||||||
|
@doklVydPrevod NVARCHAR(3)=N'281',
|
||||||
|
@idExpPrMat INT,
|
||||||
|
@idExpPrPolo INT,
|
||||||
|
|
||||||
|
@radaDokl NVARCHAR(3),
|
||||||
|
@cilovySklad NVARCHAR(30),
|
||||||
|
@radaPrijem NVARCHAR(3),
|
||||||
|
@druhPohybuZboPrijem TINYINT,
|
||||||
|
@idDoklad INT,
|
||||||
|
@datumDokladuMat DATETIME,
|
||||||
|
@datumDokladuFin DATETIME,
|
||||||
|
@genDokladMat BIT=0,
|
||||||
|
@idDokladMat INT,
|
||||||
|
@genDokladFin BIT=0,
|
||||||
|
@idDokladFin INT,
|
||||||
|
@cOrg INT=0,
|
||||||
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzKurz NUMERIC(19,6),
|
||||||
|
@dzKurzEur NUMERIC(19,6),
|
||||||
|
@jednM INT,
|
||||||
|
@vstC TINYINT,
|
||||||
|
@idPohyb INT,
|
||||||
|
@idPZ INT,
|
||||||
|
@idVCS INT,
|
||||||
|
@idVCP INT,
|
||||||
|
@idZboSklad INT,
|
||||||
|
@idKmen INT,
|
||||||
|
@sz NVARCHAR(3),
|
||||||
|
@rc NVARCHAR(30),
|
||||||
|
@sarze NVARCHAR(100),
|
||||||
|
@paletList NVARCHAR(100),
|
||||||
|
@sklMatHlavni NVARCHAR(30), -- 311
|
||||||
|
@sklPekarna NVARCHAR(30), -- 211
|
||||||
|
@sklTechnolog NVARCHAR(30), -- 261
|
||||||
|
@skladFin NVARCHAR(30), -- 312
|
||||||
|
@mnoz NUMERIC(19,6),
|
||||||
|
@mnozVydano NUMERIC(19,6),
|
||||||
|
@material BIT,
|
||||||
|
@idPHIdent BIGINT,
|
||||||
|
@idPHIdent2 BIGINT,
|
||||||
|
@textDoPoznamky NVARCHAR(max)=NULL
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'tempdb..#VyrobaGenObjednavkuMatDoVyrobyNew', N'U') IS NOT NULL
|
||||||
|
SELECT TOP(1) @sklMatHlavni=SkladMaterial, @skladFin=SkladVyrobky
|
||||||
|
FROM #VyrobaGenObjednavkuMatDoVyrobyNew
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklMatHlavni IS NULL)
|
||||||
|
SELECT TOP(1) @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l' AND CisloStr LIKE N'3%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT TOP(1) @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklPekarna IS NULL)
|
||||||
|
SELECT TOP(1) @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna' AND CisloStr LIKE N'2%'
|
||||||
|
|
||||||
|
SET @sklPekarna = ISNULL(@sklPekarna, N'')
|
||||||
|
IF (@sklPekarna=N'')
|
||||||
|
SET @sklPekarna = N'211'
|
||||||
|
|
||||||
|
SET @sklMatHlavni = ISNULL(@sklMatHlavni, N'')
|
||||||
|
IF (@sklMatHlavni=N'')
|
||||||
|
SET @sklMatHlavni = N'311'
|
||||||
|
|
||||||
|
SET @skladFin = ISNULL(@skladFin, N'')
|
||||||
|
IF (@skladFin=N'')
|
||||||
|
SET @skladFin = N'312'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
MERGE dbo._TabVyroba_Objednavky AS T
|
||||||
|
USING dbo.TabKmenZbozi AS S ON (S.ID=T.IDKmenZbozi)
|
||||||
|
WHEN MATCHED AND T.JeMaterial IS NULL THEN UPDATE SET T.JeMaterial=S.Material;
|
||||||
|
DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ NOT IN (SELECT ID FROM dbo.TabPohybyZbozi WITH(NOLOCK))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @genDokladMat=0
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=1 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SET @genDokladMat=1
|
||||||
|
SET @datumDokladuMat = (SELECT MIN(o.DatPorizeni) FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=1 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
END
|
||||||
|
SET @datumDokladuMat = ISNULL(@datumDokladuMat, GETDATE())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @genDokladFin=0
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=0 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SET @genDokladFin=1
|
||||||
|
SET @datumDokladuFin = (SELECT MIN(o.DatPorizeni) FROM dbo._TabVyroba_Objednavky o WHERE o.Splneno=0 AND o.OdmitnutoSkladem=0 AND o.NocniObjednavka=0 AND o.Storno=0 AND o.Vratka=0
|
||||||
|
AND o.JeMaterial=0 AND o.Blokovano=0 AND (o.Mnozstvi-ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=o.ID), 0))>0
|
||||||
|
)
|
||||||
|
END
|
||||||
|
SET @datumDokladuFin = ISNULL(@datumDokladuFin, GETDATE())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (@genDokladMat=1) OR (@genDokladFin=1)
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE m CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT DISTINCT(JeMaterial)
|
||||||
|
FROM dbo._TabVyroba_Objednavky
|
||||||
|
WHERE Splneno=0
|
||||||
|
AND OdmitnutoSkladem=0
|
||||||
|
AND NocniObjednavka=0
|
||||||
|
AND Storno=0
|
||||||
|
AND Vratka=0
|
||||||
|
AND Blokovano=0
|
||||||
|
AND IDPhIdent2 IS NOT NULL
|
||||||
|
GROUP BY JeMaterial
|
||||||
|
OPEN m
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM m INTO @material
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (@material=0)
|
||||||
|
BEGIN
|
||||||
|
SET @cilovySklad=@skladFin
|
||||||
|
SET @cnt = ISNULL( (SELECT COUNT(d.ID) FROM dbo.TabDokladyZbozi d WITH(NOLOCK) WHERE d.PoradoveCislo>0 AND d.DruhPohybuZbo=@druhPohybuZbo AND d.IDSklad=@cilovySklad
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND d.RadaDokladu=@radaExpPr AND d.Splneno=0 AND d.StavRezervace<>N'X'
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=CAST(@datumDokladuFin AS DATE)
|
||||||
|
), 0)
|
||||||
|
IF (@cnt=0)
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @Ident=@idExpPrPolo OUT, @Sklad=@cilovySklad, @DruhPohybu=@druhPohybuZbo, @RadaDokladu=@radaExpPr, @CisloOrg=@cOrg, @DatumPorizeni=@datumDokladuFin
|
||||||
|
IF (@cnt=1)
|
||||||
|
SET @idExpPrPolo = (SELECT d.ID FROM dbo.TabDokladyZbozi d WHERE d.PoradoveCislo>0 AND d.DruhPohybuZbo=@druhPohybuZbo AND d.IDSklad=@cilovySklad
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND d.RadaDokladu=@radaExpPr AND d.Splneno=0 AND d.StavRezervace<>N'X'
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=CAST(@datumDokladuFin AS DATE)
|
||||||
|
)
|
||||||
|
IF (@cnt>1)
|
||||||
|
SET @idExpPrPolo = (SELECT TOP(1) d.ID FROM dbo.TabDokladyZbozi d WHERE d.PoradoveCislo>0 AND d.DruhPohybuZbo=@druhPohybuZbo AND d.IDSklad=@cilovySklad
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND d.RadaDokladu=@radaExpPr AND d.Splneno=0 AND d.StavRezervace<>N'X' ORDER BY d.DatPorizeni DESC)
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idExpPrPolo)
|
||||||
|
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idExpPrPolo)
|
||||||
|
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_ObjednavkaMat_Typ=2, _Vydej_ObjednavkaMat=1 WHERE ID=@idExpPrPolo
|
||||||
|
SET @idDoklad = @idExpPrPolo
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (@material=1)
|
||||||
|
BEGIN
|
||||||
|
SET @cilovySklad=@sklMatHlavni
|
||||||
|
SET @cnt = ISNULL( (SELECT COUNT(d.ID) FROM dbo.TabDokladyZbozi d WHERE d.PoradoveCislo>0 AND d.DruhPohybuZbo=@druhPohybuZbo AND d.IDSklad=@cilovySklad
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND d.RadaDokladu=@radaExpPr AND d.Splneno=0 AND d.StavRezervace<>N'X'
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=CAST(@datumDokladuMat AS DATE)
|
||||||
|
), 0)
|
||||||
|
IF (@cnt=0)
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @Ident=@idExpPrMat OUT, @Sklad=@cilovySklad, @DruhPohybu=@druhPohybuZbo, @RadaDokladu=@radaExpPr, @CisloOrg=@cOrg, @DatumPorizeni=@datumDokladuMat
|
||||||
|
IF (@cnt=1)
|
||||||
|
SET @idExpPrMat = (SELECT d.ID FROM dbo.TabDokladyZbozi d WHERE d.PoradoveCislo>0 AND d.DruhPohybuZbo=@druhPohybuZbo AND d.IDSklad=@cilovySklad
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND d.RadaDokladu=@radaExpPr AND d.Splneno=0 AND d.StavRezervace<>N'X'
|
||||||
|
AND CAST(d.DatPorizeni AS DATE)=CAST(@datumDokladuMat AS DATE)
|
||||||
|
)
|
||||||
|
IF (@cnt>1)
|
||||||
|
SET @idExpPrMat = (SELECT TOP(1) d.ID FROM dbo.TabDokladyZbozi d WHERE d.PoradoveCislo>0 AND d.DruhPohybuZbo=@druhPohybuZbo AND d.IDSklad=@cilovySklad
|
||||||
|
AND d.BlokovaniEditoru IS NULL AND d.RadaDokladu=@radaExpPr AND d.Splneno=0 AND d.StavRezervace<>N'X' ORDER BY d.DatPorizeni DESC)
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idExpPrMat)
|
||||||
|
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idExpPrMat)
|
||||||
|
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_ObjednavkaMat_Typ=1, _Vydej_ObjednavkaMat=1 WHERE ID=@idExpPrMat
|
||||||
|
SET @idDoklad = @idExpPrMat
|
||||||
|
END
|
||||||
|
|
||||||
|
IF (@idDoklad IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET IDSkladPrevodu=@sklPekarna WHERE ID=@idDoklad AND IDSkladPrevodu IS NULL
|
||||||
|
UPDATE dbo.TabDokladyZbozi SET TypPrevodky=@doklVydPrevod WHERE ID=@idDoklad AND TypPrevodky IS NULL
|
||||||
|
|
||||||
|
SELECT @dzMena=Mena, @dzKurz=Kurz, @dzKurzEur=KurzEuro, @vstC=VstupniCena, @jednM=JednotkaMeny
|
||||||
|
FROM dbo.TabDokladyZbozi WHERE ID=@idDoklad
|
||||||
|
|
||||||
|
DECLARE c CURSOR LOCAL FOR
|
||||||
|
SELECT ID, SkupZbo, RegCis, IDKmenZbozi, Mnozstvi, PaletovyList, Sarze, IdPHIdent, IdPHIdent2
|
||||||
|
FROM dbo._TabVyroba_Objednavky
|
||||||
|
WHERE Splneno=0
|
||||||
|
AND OdmitnutoSkladem=0
|
||||||
|
AND NocniObjednavka=0
|
||||||
|
AND Storno=0
|
||||||
|
AND Vratka=0
|
||||||
|
AND Blokovano=0
|
||||||
|
AND IDPhIdent2 IS NOT NULL
|
||||||
|
AND JeMaterial=@material
|
||||||
|
ORDER BY DatPorizeni
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @idObj, @sz, @rc, @idKmen, @mnoz, @paletList, @sarze, @idPHIdent, @idPHIdent2
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
IF (@idKmen IS NULL)
|
||||||
|
SET @idKmen = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
|
||||||
|
|
||||||
|
SET @mnozVydano = ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idObj), 0)
|
||||||
|
SET @mnoz = @mnoz - @mnozVydano
|
||||||
|
|
||||||
|
IF (@mnoz>0)
|
||||||
|
BEGIN
|
||||||
|
SET @idZboSklad = NULL
|
||||||
|
IF (@material=0)
|
||||||
|
SET @idZboSklad = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKmen AND IDSklad=@skladFin)
|
||||||
|
ELSE
|
||||||
|
SET @idZboSklad = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKmen AND IDSklad=@sklMatHlavni)
|
||||||
|
IF (@idZboSklad IS NULL)
|
||||||
|
BEGIN
|
||||||
|
IF (@material=0)
|
||||||
|
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@skladFin, @IDZboSklad=@idZboSklad OUT
|
||||||
|
ELSE
|
||||||
|
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@sklMatHlavni, @IDZboSklad=@idZboSklad OUT
|
||||||
|
END -- @idZboSklad IS NULL
|
||||||
|
IF (@idZboSklad IS NOT NULL)
|
||||||
|
AND NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabPohybyZbozi_EXT pe WITH(NOLOCK) ON (pe.ID=p.ID)
|
||||||
|
WHERE p.IDDoklad=@idDoklad AND p.IDZboSklad=@idZboSklad AND pe._Vyroba_Sarze=@sarze AND pe._Vyroba_PaletList=@paletList AND pe._HDCAPI_PHident=@idPHIdent2)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDoklad, @DruhPohybu=@druhPohybuZbo, @CisloOrg=@cOrg, @IDZboSklad=@idZboSklad,
|
||||||
|
@Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzEur, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL,
|
||||||
|
@ZakazanoDPH=0, @VstupniCena=@vstC, @PovolitDuplicitu=1, @Mnozstvi=@mnoz
|
||||||
|
IF (@idPZ IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||||||
|
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||||||
|
|
||||||
|
SET @paletList = ISNULL(@paletList, N'')
|
||||||
|
SET @sarze = ISNULL(@sarze, N'')
|
||||||
|
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_PaletList=@paletList, _Vyroba_Sarze=@sarze, _Vyroba_IDObjednavkaMat=@idObj, _HDCAPI_PHident=@idPHIdent2
|
||||||
|
WHERE ID=@idPZ
|
||||||
|
|
||||||
|
SET @idVCS = NULL
|
||||||
|
IF (@material=0) -- prevadej realna VC jen u dilcu (finaly+polotovary)
|
||||||
|
BEGIN
|
||||||
|
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDStavSkladu=@idZboSklad AND Nazev1=@paletList)
|
||||||
|
IF (@idVCS IS NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCS), 0)
|
||||||
|
DBCC CHECKIDENT (TabVyrCS, RESEED, @iTemp)
|
||||||
|
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDZboSklad=@idZboSklad, @Nazev1=@paletList
|
||||||
|
END
|
||||||
|
|
||||||
|
SET @idVCP = NULL
|
||||||
|
IF (@idVCS IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
|
||||||
|
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
|
||||||
|
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
|
||||||
|
SET @idVCP = SCOPE_IDENTITY()
|
||||||
|
END
|
||||||
|
END -- @material=0
|
||||||
|
|
||||||
|
INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, Mnozstvi, Sarze, PaletovyList, SkupZbo, RegCis, IDVyrCP)
|
||||||
|
SELECT @idObj, @idDoklad, @idPZ, @mnoz, @sarze, @paletList, @sz, @rc, @idVCP
|
||||||
|
|
||||||
|
IF (@paletList<>'')
|
||||||
|
SET @textDoPoznamky = N'PL: ' + @paletList
|
||||||
|
IF (@sarze<>N'')
|
||||||
|
IF (ISNULL(@textDoPoznamky,N'')=N'')
|
||||||
|
SET @textDoPoznamky = N'<EFBFBD>arze: ' + @sarze
|
||||||
|
ELSE
|
||||||
|
SET @textDoPoznamky = @textDoPoznamky + N' / <20>arze: ' + @sarze
|
||||||
|
SET @textDoPoznamky = TRIM(@textDoPoznamky)
|
||||||
|
IF (@textDoPoznamky=N'')
|
||||||
|
SET @textDoPoznamky = NULL
|
||||||
|
UPDATE dbo.TabPohybyZbozi SET Poznamka=@textDoPoznamky WHERE ID=@idPZ
|
||||||
|
END -- @idPZ IS NOT NULL
|
||||||
|
END -- @idZboSklad IS NOT NULL
|
||||||
|
END -- @mnoz>0
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
|
END -- @idDoklad IS NOT NULL
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE m
|
||||||
|
DEALLOCATE m
|
||||||
|
|
||||||
|
END -- mam neco k zapsani ?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF OBJECT_ID(N'dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew2', 'P') IS NOT NULL
|
||||||
|
EXEC dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew2 @idDoklad
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- oznac splnene polozky
|
||||||
|
DECLARE c CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT ID, Mnozstvi
|
||||||
|
FROM dbo._TabVyroba_Objednavky
|
||||||
|
WHERE Splneno=0
|
||||||
|
AND Vratka=0
|
||||||
|
AND Storno=0
|
||||||
|
AND OdmitnutoSkladem=0
|
||||||
|
AND ID IN (SELECT 1 FROM dbo._TabVyroba_Objednavky_Pol p WITH(NOLOCK) WHERE p.IDHlava=ID)
|
||||||
|
OPEN c
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM c INTO @idObj, @mnoz
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @mnozVydano = ISNULL( (SELECT SUM(op.Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol op WITH(NOLOCK) JOIN dbo.TabPohybyZbozi p WITH(NOLOCK) ON (p.ID=op.IDPohybOZ)
|
||||||
|
WHERE op.IDHlava=@idObj AND p.SkutecneDatReal IS NOT NULL), 0)
|
||||||
|
IF (@mnoz=@mnozVydano)
|
||||||
|
UPDATE dbo._TabVyroba_Objednavky SET Splneno=1 WHERE ID=@idObj
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE c
|
||||||
|
DEALLOCATE c
|
||||||
|
|
||||||
@ -6,7 +6,7 @@ CREATE PROCEDURE dbo.ep_Vyroba_GenOdvodZeMzdy
|
|||||||
@skladOdvod NVARCHAR(30)=NULL,
|
@skladOdvod NVARCHAR(30)=NULL,
|
||||||
@realizujPrijem BIT=0,
|
@realizujPrijem BIT=0,
|
||||||
@prevodDoVyssiho BIT=0,
|
@prevodDoVyssiho BIT=0,
|
||||||
@kopiiNaTechSklad BIT=0,
|
@kopiiNaTechSklad BIT=1,
|
||||||
@errMsg NVARCHAR(500)=N'' OUT
|
@errMsg NVARCHAR(500)=N'' OUT
|
||||||
AS
|
AS
|
||||||
|
|
||||||
@ -18,37 +18,83 @@ AS
|
|||||||
|
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky WHERE GenerovanoOdvadeni=1 AND ID=@IDMzdy)
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
DECLARE
|
DECLARE
|
||||||
|
@iTemp INT,
|
||||||
@aktDatum DATETIME=GETDATE(),
|
@aktDatum DATETIME=GETDATE(),
|
||||||
|
@datPrijem DATETIME,
|
||||||
@bChyba BIT,
|
@bChyba BIT,
|
||||||
@ret INT,
|
@ret INT,
|
||||||
|
@cnt INT,
|
||||||
@jeOdvOper BIT=0,
|
@jeOdvOper BIT=0,
|
||||||
@idUziv INT,
|
@idUziv INT,
|
||||||
@IDPrikaz INT,
|
@IDPrikaz INT,
|
||||||
@IDZakazModif INT,
|
@IDZakazModif INT,
|
||||||
@IDPrikazVyssi INT,
|
@IDPrikazVyssi INT,
|
||||||
|
@doklPrPostup INT,
|
||||||
|
@altPrPostup NCHAR(1),
|
||||||
@doklKV INT,
|
@doklKV INT,
|
||||||
@IDKmen INT,
|
@IDKmen INT,
|
||||||
|
@mjEvid NVARCHAR(10),
|
||||||
|
@jeFinal BIT=0,
|
||||||
@idPZ INT,
|
@idPZ INT,
|
||||||
|
@idPZOld INT,
|
||||||
|
@idPZOld2 INT,
|
||||||
|
@idPZSberna INT,
|
||||||
|
@idSS INT,
|
||||||
|
@idVCS INT,
|
||||||
|
@idVCP INT,
|
||||||
|
@idVPrVC INT,
|
||||||
|
@vc NVARCHAR(100),
|
||||||
@NekontrolMnozOdvedFinal BIT=0,
|
@NekontrolMnozOdvedFinal BIT=0,
|
||||||
@mnozstvi NUMERIC(19,6)=0,
|
@mnozstvi NUMERIC(19,6)=0,
|
||||||
|
@mnozstviKA NUMERIC(19,6)=0,
|
||||||
@radaOdvNaSklad NVARCHAR(3)=N'273',
|
@radaOdvNaSklad NVARCHAR(3)=N'273',
|
||||||
@sklProOdvod NVARCHAR(30)=N'261',
|
@sklProOdvod NVARCHAR(30)=N'261',
|
||||||
|
@sklProOdvodHV NVARCHAR(30)=N'262',
|
||||||
|
@sklProPolo NVARCHAR(30)=N'311',
|
||||||
|
@sklProFinal NVARCHAR(30)=N'312',
|
||||||
|
@sklPrijem NVARCHAR(30),
|
||||||
@radaVPr NVARCHAR(10),
|
@radaVPr NVARCHAR(10),
|
||||||
@idPrij INT,
|
@idPrij INT,
|
||||||
|
@idPrijOld INT,
|
||||||
|
@idPrijSberna INT,
|
||||||
|
@uklidPomocTab BIT,
|
||||||
@idPrijKopie INT,
|
@idPrijKopie INT,
|
||||||
@sklTechnicky NVARCHAR(30),
|
@sklTechnicky NVARCHAR(30),
|
||||||
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklTechnologHV NVARCHAR(30),
|
||||||
@dpz TINYINT,
|
@dpz TINYINT,
|
||||||
|
@cOrg INT,
|
||||||
@dzDatum DATETIME,
|
@dzDatum DATETIME,
|
||||||
@dzMena NVARCHAR(3)
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzKurz NUMERIC(19,6),
|
||||||
|
@dzKurzE NUMERIC(19,6),
|
||||||
|
@vstC TINYINT,
|
||||||
|
@jednM INT
|
||||||
DECLARE
|
DECLARE
|
||||||
@idDZPomocPrijem INT,
|
@idDZPomocPrijem INT,
|
||||||
@idPZPomocPrijem INT,
|
@idPZPomocPrijem INT,
|
||||||
@idSSPomocPrijem INT,
|
@idSSPomocPrijem INT,
|
||||||
@mnozPrijem NUMERIC(19,6)
|
@mnozPrijem NUMERIC(19,6),
|
||||||
|
@idPalety INT,
|
||||||
|
@paletList NVARCHAR(100),
|
||||||
|
@sarze NVARCHAR(30)
|
||||||
|
DECLARE
|
||||||
|
@ksOdv NUMERIC(19,6),
|
||||||
|
@ksOdv_ks NUMERIC(19,6),
|
||||||
|
@idDavkaPomoc INT,
|
||||||
|
@mnozDavkaPomoc NUMERIC(19,6)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SET @uklidPomocTab = 0
|
||||||
|
|
||||||
SELECT @jeOdvOper=pp.Odvadeci
|
SELECT @jeOdvOper=pp.Odvadeci
|
||||||
FROM dbo.TabPrikazMzdyAZmetky pmz
|
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)
|
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)
|
||||||
@ -59,24 +105,37 @@ IF (@jeOdvOper=0)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
IF OBJECT_ID(N'dbo.TabUserCfg', 'U') IS NOT NULL
|
||||||
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||||
SET @idUziv = ISNULL(@idUziv, 0)
|
SET @idUziv = ISNULL(@idUziv, 0)
|
||||||
|
|
||||||
|
|
||||||
-- CREATE TABLE #HDCTabGenOdvodZeMzdyKonfig (RadaOdvodNaSklad NVARCHAR(3), SkladProOdvod NVARCHAR(30), BezVyrobnichCisel BIT=0, IDUziv INT)
|
-- 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
|
IF OBJECT_ID(N'tempdb..#HDCTabGenOdvodZeMzdyKonfig', 'U') IS NOT NULL
|
||||||
SELECT TOP(1) @radaOdvNaSklad=ISNULL(RadaOdvodNaSklad, @radaOdvNaSklad), @sklProOdvod=ISNULL(SkladProOdvod, @sklProOdvod),
|
SELECT TOP(1) @radaOdvNaSklad=ISNULL(RadaOdvodNaSklad, @radaOdvNaSklad), @sklProOdvod=ISNULL(SkladProOdvod, @sklProOdvod),
|
||||||
@bezVyrCis=ISNULL(BezVyrobnichCisel, @bezVyrCis), @idUziv=ISNULL(IDUziv, @idUziv)
|
@bezVyrCis=ISNULL(BezVyrobnichCisel, @bezVyrCis), @idUziv=ISNULL(IDUziv, @idUziv)
|
||||||
FROM #HDCTabGenOdvodZeMzdyKonfig
|
FROM #HDCTabGenOdvodZeMzdyKonfig
|
||||||
|
|
||||||
|
|
||||||
IF (@sklTechnicky IS NULL)
|
IF (@sklTechnicky IS NULL)
|
||||||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<EFBFBD><EFBFBD>%'
|
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklTechnicky IS NULL)
|
IF (@sklTechnicky IS NULL)
|
||||||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnolog IS NULL)
|
||||||
|
SET @sklTechnolog = N'261'
|
||||||
|
IF (@sklTechnologHV IS NULL)
|
||||||
|
SELECT @sklTechnologHV=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnologHV IS NULL)
|
||||||
|
SET @sklTechnologHV = N'262'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS #TabOdved
|
DROP TABLE IF EXISTS #TabOdved
|
||||||
CREATE TABLE #TabOdved (
|
CREATE TABLE #TabOdved (
|
||||||
@ -138,11 +197,9 @@ 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, @doklPrPostup=DokladPrPostup, @altPrPostup=AltPrPostup FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||||
SELECT @mnozstvi=kusy_odv FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
SET @mnozstviKA = 0
|
||||||
|
|
||||||
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanoOdvadeni=1 WHERE ID=@IDMzdy
|
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanoOdvadeni=1 WHERE ID=@IDMzdy
|
||||||
IF (@@ROWCOUNT=0) RETURN
|
IF (@@ROWCOUNT=0) RETURN
|
||||||
@ -155,6 +212,19 @@ SELECT @IDPrikaz=IDPrikaz FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
|||||||
SELECT @radaVPr=Rada, @IDKmen=IDTabKmen, @IDZakazModif=IDZakazModif, @IDPrikazVyssi=IDPrikazVyssi
|
SELECT @radaVPr=Rada, @IDKmen=IDTabKmen, @IDZakazModif=IDZakazModif, @IDPrikazVyssi=IDPrikazVyssi
|
||||||
FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||||
|
|
||||||
|
|
||||||
|
SELECT @mjEvid=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@IDKmen
|
||||||
|
IF (@mjEvid=N'KA')
|
||||||
|
SET @mnozstviKA = @mnozstvi
|
||||||
|
|
||||||
|
|
||||||
|
SET @jeFinal = 0
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen AND TypDilce=0)
|
||||||
|
SET @jeFinal = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- nastav sklad pro odvod podle karty
|
-- nastav sklad pro odvod podle karty
|
||||||
IF (@sklProOdvod IS NULL)
|
IF (@sklProOdvod IS NULL)
|
||||||
SELECT @sklProOdvod=VychoziSklad FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen
|
SELECT @sklProOdvod=VychoziSklad FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen
|
||||||
@ -167,8 +237,24 @@ SELECT @radaOdvNaSklad=CASE WHEN RadaDokl_OdvedeniPrikazu IS NULL THEN @radaOdvN
|
|||||||
|
|
||||||
IF (@radaOdvod IS NOT NULL)
|
IF (@radaOdvod IS NOT NULL)
|
||||||
SET @radaOdvNaSklad=@radaOdvod
|
SET @radaOdvNaSklad=@radaOdvod
|
||||||
IF (@skladOdvod IS NOT NULL)
|
|
||||||
SET @sklProOdvod = @skladOdvod
|
/*
|
||||||
|
IF (@skladOdvod IS NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @sklProOdvod = @sklProPolo
|
||||||
|
IF (@jeFinal=1)
|
||||||
|
SET @sklProOdvod = @sklProFinal
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
SET @sklProOdvod = @skladOdvod
|
||||||
|
*/
|
||||||
|
|
||||||
|
IF (@jeFinal=1)
|
||||||
|
SET @sklProOdvod = @sklTechnologHV
|
||||||
|
ELSE
|
||||||
|
SET @sklProOdvod = @sklTechnolog
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnozstvi>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnozstvi END WHERE IDPrikaz=@IDPrikaz
|
UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnozstvi>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnozstvi END WHERE IDPrikaz=@IDPrikaz
|
||||||
@ -203,6 +289,8 @@ DELETE #TabVyrCisProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2
|
|||||||
DELETE #TabPolotovProGenOdv 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
|
DELETE #tabOdved WHERE Mnozstvi<=0.0
|
||||||
|
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
|
||||||
|
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
|
||||||
|
|
||||||
IF (@sklProOdvod IS NOT NULL)
|
IF (@sklProOdvod IS NOT NULL)
|
||||||
UPDATE #tabOdved SET Sklad=@sklProOdvod
|
UPDATE #tabOdved SET Sklad=@sklProOdvod
|
||||||
@ -217,6 +305,7 @@ IF (@bezVyrCis=1)
|
|||||||
IF (@prevodDoVyssiho=0)
|
IF (@prevodDoVyssiho=0)
|
||||||
BEGIN
|
BEGIN
|
||||||
BEGIN TRY
|
BEGIN TRY
|
||||||
|
-- pozor, nelze predem zadat do jake prijemky polozky odvodu generovat, vzdy se generuje nova, o prevedeni polozek se postarame nize
|
||||||
EXEC @ret=dbo.hp_OdvedeniPrikazu @RadaDokladu=@radaOdvNaSklad, @IDObdobi=NULL, @KonecneOdvedeni=0, @DatPorizeni=NULL, @SekejZakazky=1, @SekejPrikazy=1
|
EXEC @ret=dbo.hp_OdvedeniPrikazu @RadaDokladu=@radaOdvNaSklad, @IDObdobi=NULL, @KonecneOdvedeni=0, @DatPorizeni=NULL, @SekejZakazky=1, @SekejPrikazy=1
|
||||||
END TRY
|
END TRY
|
||||||
BEGIN CATCH
|
BEGIN CATCH
|
||||||
@ -227,15 +316,16 @@ IF (@prevodDoVyssiho=0)
|
|||||||
BEGIN
|
BEGIN
|
||||||
IF (@IDPrikazVyssi IS NOT NULL)
|
IF (@IDPrikazVyssi IS NOT NULL)
|
||||||
BEGIN
|
BEGIN
|
||||||
IF OBJECT_ID(N'tempdb..#TabOdved_IDMzdy', N'U') IS NOT NULL
|
IF OBJECT_ID(N'tempdb..#TabOdved_IDMzdy', 'U') IS NOT NULL
|
||||||
DELETE FROM #TabOdved_IDMzdy
|
DELETE FROM #TabOdved_IDMzdy
|
||||||
INSERT #TabOdved_IDMzdy (IDPrikaz, IDMzdy) SELECT @idPrikaz, @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)
|
SET @doklKV = (SELECT ID FROM dbo.TabPrKVazby WHERE IDPrikaz=@IDPrikazVyssi AND nizsi=@IDKmen AND IDOdchylkyDo IS NULL)
|
||||||
|
|
||||||
|
-- @idPZ je TabPrikazPrevodPolotov.ID
|
||||||
EXEC @idPZ=dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDatum, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz, @IDPrikazCil=@IDPrikazVyssi,
|
EXEC @idPZ=dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDatum, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz, @IDPrikazCil=@IDPrikazVyssi,
|
||||||
@Doklad=@doklKV, @IDDilec=@IDKmen, @mnozstvi=@mnozstvi, @IDOdvedeniVC=0, @IDZakazModif=@IDZakazModif
|
@Doklad=@doklKV, @IDDilec=@IDKmen, @mnozstvi=@mnozstvi, @IDOdvedeniVC=0, @IDZakazModif=@IDZakazModif
|
||||||
IF OBJECT_ID(N'tempdb..#TabGenPrijem', N'U') IS NOT NULL
|
IF OBJECT_ID(N'tempdb..#TabGenPrijem', 'U') IS NOT NULL
|
||||||
DELETE FROM #TabGenPrijem
|
DELETE FROM #TabGenPrijem
|
||||||
END -- @IDPrikazVyssi IS NOT NULL
|
END -- @IDPrikazVyssi IS NOT NULL
|
||||||
END
|
END
|
||||||
@ -244,49 +334,189 @@ IF (@prevodDoVyssiho=0)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
DECLARE prij CURSOR LOCAL FOR
|
IF (@jeFinal=0)
|
||||||
SELECT ID FROM #TabGenPrijem
|
SET @sklPrijem=@sklProPolo
|
||||||
OPEN prij
|
ELSE
|
||||||
WHILE (1=1)
|
SET @sklPrijem=@sklProFinal
|
||||||
|
|
||||||
|
|
||||||
|
IF (@sklPrijem<>N'')
|
||||||
BEGIN
|
BEGIN
|
||||||
FETCH NEXT FROM prij INTO @idPrij
|
DECLARE prij CURSOR LOCAL FOR
|
||||||
IF (@@FETCH_STATUS<>0) BREAK
|
SELECT ID FROM #TabGenPrijem
|
||||||
|
OPEN prij
|
||||||
-- kopie na technologicky sklad, aby se mohly delat vydejky
|
WHILE (1=1)
|
||||||
SET @idPrijKopie = NULL
|
|
||||||
IF (@kopiiNaTechSklad=1) AND (@sklTechnicky IS NOT NULL)
|
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT @dpz=DruhPohybuZbo, @dzDatum=DatPorizeni, @dzMena=Mena FROM dbo.TabPohybyZbozi WHERE ID=@idPrij
|
FETCH NEXT FROM prij INTO @idPrij
|
||||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idPrijKopie OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaOdvNaSklad,
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
@Mena=@dzMena, @CisloOrg=0, @DatumPorizeni=@dzDatum
|
|
||||||
IF (@idPrijKopie IS NOT NULL)
|
SELECT @datPrijem=DatPorizeni FROM dbo.TabDokladyZbozi WHERE ID=@idPrij
|
||||||
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,
|
IF (@realizujPrijem=1)
|
||||||
@KopirovaniDokladu=0
|
BEGIN
|
||||||
END -- kopii na TechSklad
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
|
IF (@bChyba=1)
|
||||||
|
INSERT dbo.Tabx_Vyroba_Log (Kategorie, Typ, LogText, iHodnota) SELECT 1, 1, 'Chyba realizace neidentifikovan<61>', @idPrij
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
SET @idPrijOld = NULL
|
||||||
|
SET @idPrijSberna = NULL
|
||||||
|
|
||||||
|
-- zjisti jestli na cilovem skladu mame nejakou otevrenou prijemku z dnesniho dne
|
||||||
|
SET @cnt = ISNULL( (SELECT COUNT(ID) FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||||
|
AND CisloOrg=0 AND IDSklad=@sklPrijem AND Realizovano=0 AND BlokovaniEditoru IS NULL AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem))
|
||||||
|
, 0)
|
||||||
|
IF (@cnt=0) -- nemame, vygeneruj ji
|
||||||
|
BEGIN
|
||||||
|
SELECT @dpz=DruhPohybuZbo, @dzDatum=DatPorizeni, @dzMena=Mena FROM dbo.TabDokladyZbozi WHERE ID=@idPrij
|
||||||
|
SET @datPrijem = @dzDatum
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idPrijSberna OUT, @Sklad=@sklPrijem, @DruhPohybu=@dpz, @RadaDokladu=@radaOdvNaSklad,
|
||||||
|
@Mena=@dzMena, @CisloOrg=0, @DatumPorizeni=@datPrijem
|
||||||
|
END
|
||||||
|
IF (@cnt=1) -- ma jen jednu
|
||||||
|
BEGIN
|
||||||
|
SELECT TOP(1) @idPrijSberna=ID FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||||
|
AND CisloOrg=0 AND IDSklad=@sklPrijem AND Realizovano=0 AND BlokovaniEditoru IS NULL AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem)
|
||||||
|
END
|
||||||
|
IF (@cnt>1) -- mam jich vic, vezmi tu posledni (nejnovejsi)
|
||||||
|
BEGIN
|
||||||
|
SET @idPrijSberna = (SELECT TOP(1) ID FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||||
|
AND CisloOrg=0 AND IDSklad=@sklPrijem AND Realizovano=0 AND BlokovaniEditoru IS NULL
|
||||||
|
AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem)
|
||||||
|
ORDER BY DatPorizeni DESC)
|
||||||
|
END
|
||||||
|
|
||||||
|
-- pokud ji mam, nakopiruj do ni novou polozku
|
||||||
|
IF (@idPrijSberna IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idPrijSberna, @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
|
||||||
|
|
||||||
|
SET @vc = NULL
|
||||||
|
SET @idVPrVC = (SELECT IDVyrCis FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy)
|
||||||
|
IF (@idVPrVC IS NOT NULL)
|
||||||
|
SET @vc = (SELECT VyrCislo FROM dbo.TabVyrCisPrikaz WHERE ID=@idVPrVC)
|
||||||
|
IF (@vc IS NULL)
|
||||||
|
SELECT TOP(1) @idPalety=ID, @vc=CisloPalety FROM dbo._TabVyroba_Palety WHERE IDMzda=@IDMzdy AND IDPrikaz=@idPrikaz
|
||||||
|
|
||||||
|
SET @paletList = N''
|
||||||
|
IF (@vc IS NOT NULL)
|
||||||
|
SET @paletList = @vc
|
||||||
|
|
||||||
|
SET @idPZSberna = NULL
|
||||||
|
SET @idVCP = (SELECT TOP(1) vcp.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||||
|
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||||
|
WHERE d.ID=@idPrij AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||||
|
IF (@vc IS NOT NULL)
|
||||||
|
SET @idPZSberna = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||||
|
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||||
|
WHERE p.IDDoklad=@idPrijSberna AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||||
|
/*
|
||||||
|
ELSE -- tato situace nesmi nastat, na sklad se vzdy prijima polotovar nebo final vcetne VC/paletovelo listu
|
||||||
|
SET @idPZSberna = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||||
|
WHERE p.IDDoklad=@idPrijOld AND s.IDKmenZbozi=@IDKmen ORDER BY p.ID DESC)
|
||||||
|
*/
|
||||||
|
IF (@idPZSberna IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @idPalety = (SELECT ID FROM dbo._TabVyroba_Palety WHERE CisloPalety=@paletList AND IDPrikaz=@idPrikaz)
|
||||||
|
UPDATE dbo._TabVyroba_Palety SET IDPohybPrijem=@idPZSberna WHERE ID=@idPalety
|
||||||
|
SELECT @sarze=Sarze FROM dbo._TabVyroba_Palety WHERE ID=@idPalety
|
||||||
|
|
||||||
|
-- udelej pomocnou vazbu polozky prijmu na skladu 311/312 na polozku prijmu na technologickem sklade 261/262
|
||||||
|
SET @idPZOld = NULL -- id pohybu zbozi na prijemce 261/262
|
||||||
|
IF (@vc IS NOT NULL)
|
||||||
|
SET @idPZOld = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||||
|
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||||
|
WHERE p.IDDoklad=@idPrij AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||||
|
ELSE
|
||||||
|
SET @idPZOld = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||||
|
WHERE p.IDDoklad=@idPrij AND s.IDKmenZbozi=@IDKmen ORDER BY p.ID DESC)
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZSberna) AND (@idPZSberna IS NOT NULL)
|
||||||
|
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZSberna)
|
||||||
|
IF (@idPZOld IS NULL)
|
||||||
|
SET @idPZOld = (SELECT TOP(1) IDPohybOZPuvodni FROM dbo._TabVyroba_PaletyPohybOZ WHERE IDPalety=@idPalety)
|
||||||
|
IF (@idPZOld IS NULL)
|
||||||
|
SET @idPZOld = (SELECT TOP(1) ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrij) -- id pohybu zbozi na prijemce 261/262
|
||||||
|
IF (@idPZOld IS NOT NULL)
|
||||||
|
UPDATE dbo.TabPohybyZbozi_EXT SET _Prijem_IDPZPuvodni=@idPZOld WHERE ID=@idPZSberna
|
||||||
|
|
||||||
|
IF (@idPalety IS NOT NULL)
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM dbo._TabVyroba_PaletyPohybOZ WHERE IDPalety=@idPalety)
|
||||||
|
INSERT dbo._TabVyroba_PaletyPohybOZ (IDPalety, IDPohybOZ, Sarze, Mnozstvi, MnozstviKA, IDPohybOZPuvodni)
|
||||||
|
SELECT @idPalety, @idPZSberna, @sarze, @mnozstvi, @mnozstviKA, @idPZOld
|
||||||
|
|
||||||
|
|
||||||
|
-- smaz vazbu nove polozky (prijem na sklade 311/312) na vyrobni prikaz
|
||||||
|
UPDATE dbo.TabPohybyZbozi SET IDPrikaz=NULL, TypVyrobnihoDokladu=NULL, DokladPrikazu=NULL WHERE ID=@idPZSberna
|
||||||
|
DELETE FROM dbo.TabPrikazMzdyAZmetkyGenPZ WHERE IDMzdy=@IDMzdy AND TypGen=2 AND IDPohybu=@idPZSberna
|
||||||
|
|
||||||
|
END -- @idPZSberna IS NOT NULL
|
||||||
|
|
||||||
|
END -- @idPrijOld IS NOT NULL
|
||||||
|
END -- else @bChyba=1
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
INSERT dbo.Tabx_Vyroba_Log (Kategorie, Typ, LogText, iHodnota) SELECT 1, 1, 'Chyba realizace neidentifikovan<61>', @idPrij
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
-- vycisti seed
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabDokladyZbozi), 0)
|
||||||
|
DBCC CHECKIDENT (TabDokladyZbozi, RESEED, @iTemp)
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabPohybyZbozi), 0)
|
||||||
|
DBCC CHECKIDENT (TabPohybyZbozi, RESEED, @iTemp)
|
||||||
|
|
||||||
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
|
||||||
END
|
END
|
||||||
CLOSE prij
|
|
||||||
DEALLOCATE prij
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- napocti odvedeni davek Kapacitniho planu vedenych v pomocne Tabx_Vyroba_DavkyPlanu
|
||||||
|
IF OBJECT_ID(N'Tabx_Vyroba_DavkyPlanu', 'U') IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
SET @ksOdv = ISNULL( (SELECT SUM(kusy_odv) FROM dbo.TabPrikazMzdyAZmetky WHERE IDPrikaz=@IDPrikaz AND DokladPrPostup=@doklPrPostup), 0)
|
||||||
|
IF (@ksOdv>0)
|
||||||
|
BEGIN
|
||||||
|
SET @ksOdv_ks = @ksOdv
|
||||||
|
IF (@mjEvid=N'KA')
|
||||||
|
SET @ksOdv_ks = @ksOdv_ks * dbo.ef_Kmen_VratPocetKsVKartonu (@IDKmen)
|
||||||
|
|
||||||
|
DECLARE d CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT ID, Mnozstvi
|
||||||
|
FROM Tabx_Vyroba_DavkyPlanu
|
||||||
|
WHERE IDPrikaz=@IDPrikaz
|
||||||
|
AND DokladPrPostup=@doklPrPostup
|
||||||
|
AND Dilec=@IDKmen
|
||||||
|
OPEN d
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM d INTO @idDavkaPomoc, @mnozDavkaPomoc
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
END
|
||||||
|
CLOSE d
|
||||||
|
DEALLOCATE d
|
||||||
|
END -- @ksOdv_ks
|
||||||
|
END -- Tabx_Vyroba_DavkyPlanu IS NOT NULL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- cisteni
|
-- cisteni
|
||||||
|
|||||||
463
_custom/Rootvin/sql/ep_Vyroba_GenOdvodZeMzdyOld.sql
Normal file
463
_custom/Rootvin/sql/ep_Vyroba_GenOdvodZeMzdyOld.sql
Normal file
@ -0,0 +1,463 @@
|
|||||||
|
-- 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,
|
||||||
|
@aktualizujPolozkyExistPrij BIT=0
|
||||||
|
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
|
||||||
|
@iTemp INT,
|
||||||
|
@aktDatum DATETIME=GETDATE(),
|
||||||
|
@datPrijem DATETIME,
|
||||||
|
@bChyba BIT,
|
||||||
|
@ret INT,
|
||||||
|
@cnt INT,
|
||||||
|
@jeOdvOper BIT=0,
|
||||||
|
@idUziv INT,
|
||||||
|
@IDPrikaz INT,
|
||||||
|
@IDZakazModif INT,
|
||||||
|
@IDPrikazVyssi INT,
|
||||||
|
@doklKV INT,
|
||||||
|
@IDKmen INT,
|
||||||
|
@jeFinal BIT=0,
|
||||||
|
@idPZ INT,
|
||||||
|
@idPZNew INT,
|
||||||
|
@idPZOld INT,
|
||||||
|
@idSS INT,
|
||||||
|
@idVCS INT,
|
||||||
|
@idVCP INT,
|
||||||
|
@idVPrVC INT,
|
||||||
|
@vc NVARCHAR(100),
|
||||||
|
@NekontrolMnozOdvedFinal BIT=0,
|
||||||
|
@mnozstvi NUMERIC(19,6)=0,
|
||||||
|
@radaOdvNaSklad NVARCHAR(3)=N'273',
|
||||||
|
@sklProOdvod NVARCHAR(30)=N'261',
|
||||||
|
@sklProFinal NVARCHAR(30)=N'312',
|
||||||
|
@sklProPolo NVARCHAR(30)=N'311',
|
||||||
|
@radaVPr NVARCHAR(10),
|
||||||
|
@idPrij INT,
|
||||||
|
@idPrijOld INT,
|
||||||
|
@uklidPomocTab BIT,
|
||||||
|
@idPrijKopie INT,
|
||||||
|
@sklTechnicky NVARCHAR(30),
|
||||||
|
@dpz TINYINT,
|
||||||
|
@cOrg INT,
|
||||||
|
@dzDatum DATETIME,
|
||||||
|
@dzMena NVARCHAR(3),
|
||||||
|
@dzKurz NUMERIC(19,6),
|
||||||
|
@dzKurzE NUMERIC(19,6),
|
||||||
|
@vstC TINYINT,
|
||||||
|
@jednM INT
|
||||||
|
DECLARE
|
||||||
|
@idDZPomocPrijem INT,
|
||||||
|
@idPZPomocPrijem INT,
|
||||||
|
@idSSPomocPrijem INT,
|
||||||
|
@mnozPrijem NUMERIC(19,6)
|
||||||
|
|
||||||
|
DECLARE @idPZsOld TABLE (ID INT NOT NULL)
|
||||||
|
|
||||||
|
|
||||||
|
SET @uklidPomocTab = 0
|
||||||
|
|
||||||
|
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', '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', '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%NEZH%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
|
||||||
|
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
|
||||||
|
|
||||||
|
SET @jeFinal=0
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen AND TypDilce=0)
|
||||||
|
SET @jeFinal=1
|
||||||
|
|
||||||
|
|
||||||
|
-- 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 NULL)
|
||||||
|
BEGIN
|
||||||
|
SET @sklProOdvod = @sklProPolo
|
||||||
|
IF (@jeFinal=1)
|
||||||
|
SET @sklProOdvod = @sklProFinal
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
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
|
||||||
|
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
|
||||||
|
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
|
||||||
|
|
||||||
|
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
|
||||||
|
-- pozor, nelze predem zadat do jake prijemky polozky odvodu generovat, vzdy se generuje nova, o prevedeni polozek se postarame nize
|
||||||
|
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', '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', 'U') IS NOT NULL
|
||||||
|
DELETE FROM #TabGenPrijem
|
||||||
|
END -- @IDPrikazVyssi IS NOT NULL
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- ID polozek puvodnich dokladu
|
||||||
|
DELETE FROM @idPZsOld
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
INSERT @idPZsOld (ID) SELECT ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrij
|
||||||
|
|
||||||
|
SELECT @datPrijem=DatPorizeni FROM dbo.TabDokladyZbozi WHERE ID=@idPrij
|
||||||
|
|
||||||
|
SET @idPrijOld = NULL
|
||||||
|
|
||||||
|
-- zjisti jestli na cilovem skladu mame nejakou otevrenou prijemku z dnesniho dne
|
||||||
|
SET @cnt = ISNULL( (SELECT COUNT(ID) FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||||
|
AND CisloOrg=0 AND IDSklad=@sklProOdvod AND Realizovano=0 AND BlokovaniEditoru IS NULL AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem))
|
||||||
|
, 0)
|
||||||
|
IF (@cnt=0) -- nemame, vygeneruj ji
|
||||||
|
BEGIN
|
||||||
|
SELECT @dpz=DruhPohybuZbo, @dzDatum=DatPorizeni, @dzMena=Mena FROM dbo.TabDokladyZbozi WHERE ID=@idPrij
|
||||||
|
SET @datPrijem = @dzDatum
|
||||||
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idPrijOld OUT, @Sklad=@sklProOdvod, @DruhPohybu=@dpz, @RadaDokladu=@radaOdvNaSklad,
|
||||||
|
@Mena=@dzMena, @CisloOrg=0, @DatumPorizeni=@datPrijem
|
||||||
|
END
|
||||||
|
IF (@cnt=1) -- ma jen jednu
|
||||||
|
BEGIN
|
||||||
|
SELECT TOP(1) @idPrijOld=ID FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||||
|
AND CisloOrg=0 AND IDSklad=@sklProOdvod AND Realizovano=0 AND BlokovaniEditoru IS NULL AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem)
|
||||||
|
END
|
||||||
|
IF (@cnt>1) -- mam jich vic, vezmi tu posledni (nejnovejsi)
|
||||||
|
BEGIN
|
||||||
|
SET @idPrijOld = (SELECT TOP(1) ID FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||||
|
AND CisloOrg=0 AND IDSklad=@sklProOdvod AND Realizovano=0 AND BlokovaniEditoru IS NULL
|
||||||
|
AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem)
|
||||||
|
ORDER BY DatPorizeni DESC)
|
||||||
|
END
|
||||||
|
IF (@idPrijOld IS NOT NULL) -- nakopiruj do ni polozky nove prijemky
|
||||||
|
BEGIN
|
||||||
|
IF (@aktualizujPolozkyExistPrij=0) AND (@idPrijOld IS NOT NULL) -- nechci existujici prijemku aktualizovat, novou polozku pridam
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idPrijOld, @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
|
||||||
|
SET @idVPrVC = (SELECT IDVyrCis FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy)
|
||||||
|
SET @vc = NULL
|
||||||
|
IF (@idVPrVC IS NOT NULL)
|
||||||
|
SET @vc = (SELECT VyrCislo FROM dbo.TabVyrCisPrikaz WHERE ID=@idVPrVC)
|
||||||
|
SET @idPZNew = NULL
|
||||||
|
SET @idVCP = (SELECT TOP(1) vcp.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||||
|
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||||
|
WHERE d.ID=@idPrij AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||||
|
IF (@vc IS NOT NULL)
|
||||||
|
SET @idPZNew = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||||
|
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||||
|
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||||
|
WHERE p.IDDoklad=@idPrijOld AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||||
|
ELSE
|
||||||
|
SET @idPZNew = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||||
|
WHERE p.IDDoklad=@idPrijOld AND s.IDKmenZbozi=@IDKmen ORDER BY p.ID DESC)
|
||||||
|
IF (@idPZNew IS NOT NULL)
|
||||||
|
INSERT dbo.TabPrikazMzdyAZmetkyGenPZ (IDMzdy, TypGen, IDPohybu) SELECT @IDMzdy, 2, @idPZNew
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
IF (@aktualizujPolozkyExistPrij=1) AND (@idPrijOld IS NOT NULL) -- chci existujici prijemku aktualizovat (udaji nove polozky)
|
||||||
|
BEGIN
|
||||||
|
SELECT @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena, @cOrg=CisloOrg
|
||||||
|
FROM dbo.TabDokladyZbozi WHERE ID=@idPrijOld
|
||||||
|
|
||||||
|
DECLARE cPol CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT ID, IDZboSklad FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrij
|
||||||
|
OPEN cPol
|
||||||
|
WHILE (1=1)
|
||||||
|
BEGIN
|
||||||
|
FETCH NEXT FROM cPol INTO @idPZNew, @idSS
|
||||||
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
|
SET @cnt = ISNULL( (SELECT COUNT(ID) FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrijOld AND IDZboSklad=@idSS), 0)
|
||||||
|
IF (@cnt=0) -- nemam na starem dokladu polozku, zalozim
|
||||||
|
BEGIN
|
||||||
|
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZOld OUT, @IDDoklad=@idPrijOld, @DruhPohybu=0, @CisloOrg=@cOrg, @IDZboSklad=@idSS,
|
||||||
|
@Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzE, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL,
|
||||||
|
@ZakazanoDPH=0, @VstupniCena=@vstC
|
||||||
|
SET @cnt = ISNULL( (SELECT COUNT(ID) FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrijOld AND IDZboSklad=@idSS), 0)
|
||||||
|
END
|
||||||
|
IF (@cnt=1) -- polozka dohledana, aktualizuju
|
||||||
|
BEGIN
|
||||||
|
SELECT @idPZOld=ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrijOld AND IDZboSklad=@idSS
|
||||||
|
UPDATE o SET o.Mnozstvi=o.Mnozstvi + n.Mnozstvi
|
||||||
|
FROM dbo.TabPohybyZbozi n, dbo.TabPohybyZbozi o WHERE n.ID=@idPZNew AND o.ID=@idPZOld
|
||||||
|
-- pokud mam VC, prepis je
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabVyrCP WHERE IDPolozkaDokladu=@idPZNew)
|
||||||
|
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi, CCEvid, DatVstup, Autor, DatExpirace)
|
||||||
|
SELECT @idPZOld, IDVyrCis, Nazev, Mnozstvi, CCEvid, DatVstup, Autor, DatExpirace FROM dbo.TabVyrCP WHERE ID=@idPZNew
|
||||||
|
END
|
||||||
|
|
||||||
|
END
|
||||||
|
CLOSE cPol
|
||||||
|
DEALLOCATE cPol
|
||||||
|
END -- @idPrijOld IS NOT NULL
|
||||||
|
|
||||||
|
END -- @cnt=1, mam existujici prijemku
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- kopie na technologicky sklad, aby se mohly delat provozni 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
|
||||||
|
-- vypnuto, polozky se davaji do jedne denni prijemky, vygenerovana bude zrusena o krok dal
|
||||||
|
-- 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
|
||||||
|
|
||||||
|
|
||||||
|
-- smaz vygenerovanou prijemku, davame to na sbernou s ID = @idPrijOld, viz kopie polozek vyse pres hp_generuj_navazny_doklad nebo kurzor
|
||||||
|
IF OBJECT_ID(N'tempdb..#TabPomSeznamDZProDel', 'U') IS NULL
|
||||||
|
CREATE TABLE #TabPomSeznamDZProDel (ID INT NOT NULL)
|
||||||
|
INSERT #TabPomSeznamDZProDel (ID) VALUES (@idPrij)
|
||||||
|
EXEC dbo.hp_SmazSeznamDokZbozi -- postara se i o smazani #TabPomSeznamDZProDel
|
||||||
|
DELETE FROM dbo.TabPrikazMzdyAZmetkyGenPZ WHERE IDMzdy=@IDMzdy AND TypGen IN (2,3) AND IDPohybu IN (SELECT ID FROM @idPZsOld)
|
||||||
|
|
||||||
|
-- vycisti seed
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabDokladyZbozi), 0)
|
||||||
|
DBCC CHECKIDENT (TabDokladyZbozi, RESEED, @iTemp)
|
||||||
|
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabPohybyZbozi), 0)
|
||||||
|
DBCC CHECKIDENT (TabPohybyZbozi, RESEED, @iTemp)
|
||||||
|
|
||||||
|
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
|
||||||
@ -12,7 +12,8 @@ CREATE PROCEDURE dbo.ep_Vyroba_GenVydejZeMzdy
|
|||||||
@denSmena NVARCHAR(15)=NULL,
|
@denSmena NVARCHAR(15)=NULL,
|
||||||
@sklVydej NVARCHAR(30)=N'261',
|
@sklVydej NVARCHAR(30)=N'261',
|
||||||
@radaVydej NVARCHAR(3)=N'223',
|
@radaVydej NVARCHAR(3)=N'223',
|
||||||
@respExistDokl BIT=1
|
@respExistDokl BIT=1,
|
||||||
|
@genPrijemNaNeskladMnoz BIT=0
|
||||||
AS
|
AS
|
||||||
|
|
||||||
-- HD Consulting Strakonice, T. Buzin
|
-- HD Consulting Strakonice, T. Buzin
|
||||||
@ -26,6 +27,7 @@ AS
|
|||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
DECLARE
|
DECLARE
|
||||||
|
@tranCount INT,
|
||||||
@bChyba BIT,
|
@bChyba BIT,
|
||||||
@opakReal BIT,
|
@opakReal BIT,
|
||||||
@retVal INT=0,
|
@retVal INT=0,
|
||||||
@ -34,10 +36,12 @@ DECLARE
|
|||||||
@idUziv INT=0,
|
@idUziv INT=0,
|
||||||
@idZam INT,
|
@idZam INT,
|
||||||
@sklTechnolog NVARCHAR(30),
|
@sklTechnolog NVARCHAR(30),
|
||||||
|
@sklTechnologPolo NVARCHAR(30),
|
||||||
@sklMatHlavni NVARCHAR(30),
|
@sklMatHlavni NVARCHAR(30),
|
||||||
@sklPekarna NVARCHAR(30),
|
@sklPekarna NVARCHAR(30),
|
||||||
@szDilec NVARCHAR(3)
|
@szDilec NVARCHAR(3)
|
||||||
DECLARE
|
DECLARE
|
||||||
|
@idDZOut INT,
|
||||||
@idDZPomocPrij INT,
|
@idDZPomocPrij INT,
|
||||||
@radaPrijem NVARCHAR(3)='292',
|
@radaPrijem NVARCHAR(3)='292',
|
||||||
@menaPrij NVARCHAR(3),
|
@menaPrij NVARCHAR(3),
|
||||||
@ -47,9 +51,11 @@ DECLARE
|
|||||||
@jednMPrij INT,
|
@jednMPrij INT,
|
||||||
@idPZPomocPrij INT,
|
@idPZPomocPrij INT,
|
||||||
@idSSPomocPrij INT,
|
@idSSPomocPrij INT,
|
||||||
|
@idSSPomocPek INT,
|
||||||
@mnozSklad NUMERIC(19,6),
|
@mnozSklad NUMERIC(19,6),
|
||||||
@mnozVydej NUMERIC(19,6),
|
@mnozVydej NUMERIC(19,6),
|
||||||
@mnozPrij NUMERIC(19,6)
|
@mnozPrij NUMERIC(19,6),
|
||||||
|
@genDodatecnyPrijem BIT=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -62,13 +68,15 @@ SET @idUziv = ISNULL(@idUziv, 0)
|
|||||||
|
|
||||||
SET @denSmena = ISNULL(@denSmena, N'')
|
SET @denSmena = ISNULL(@denSmena, N'')
|
||||||
IF (@sklMatHlavni IS NULL)
|
IF (@sklMatHlavni IS NULL)
|
||||||
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
|
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l' AND CisloStr LIKE N'3%'
|
||||||
IF (@sklTechnolog IS NULL)
|
IF (@sklTechnolog IS NULL)
|
||||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%'
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnologPolo IS NULL)
|
||||||
|
SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<4E><45>%pol%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklTechnolog IS NULL)
|
IF (@sklTechnolog IS NULL)
|
||||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%' AND CisloStr LIKE N'2%'
|
||||||
IF (@sklPekarna IS NULL)
|
IF (@sklPekarna IS NULL)
|
||||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna' AND CisloStr LIKE N'2%'
|
||||||
|
|
||||||
|
|
||||||
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
||||||
@ -311,7 +319,9 @@ DECLARE
|
|||||||
@alt702 NCHAR(1),
|
@alt702 NCHAR(1),
|
||||||
@mnoz702 NUMERIC(19,6),
|
@mnoz702 NUMERIC(19,6),
|
||||||
@idMzda702 INT,
|
@idMzda702 INT,
|
||||||
@aktDat DATETIME
|
@aktDat DATETIME,
|
||||||
|
@idKZPomoc INT,
|
||||||
|
@jc NUMERIC(19,6)
|
||||||
|
|
||||||
SET @aktDat = GETDATE()
|
SET @aktDat = GETDATE()
|
||||||
|
|
||||||
@ -398,25 +408,25 @@ WHILE (1=1)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- begin: prijemka nedostatecneho materialu
|
|
||||||
|
-- begin: prijemka materialu pro vydejku (1:1)
|
||||||
SET @idDZPomocPrij=NULL
|
SET @idDZPomocPrij=NULL
|
||||||
DECLARE pomPrij CURSOR LOCAL FOR
|
DECLARE pomPrij CURSOR LOCAL FOR
|
||||||
SELECT p.IDZboSklad, p.Mnozstvi
|
SELECT p.IDZboSklad, p.Mnozstvi, s.IDKmenZbozi
|
||||||
FROM dbo.TabPohybyZbozi p
|
FROM dbo.TabPohybyZbozi p
|
||||||
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||||
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||||
WHERE p.IDDoklad=@idVyd
|
WHERE p.IDDoklad=@idVyd
|
||||||
AND k.Material=1 AND k.Sluzba=0
|
AND k.Material=1 AND k.Sluzba=0
|
||||||
OPEN pomPrij
|
OPEN pomPrij
|
||||||
WHILE (1=1)
|
WHILE (1=1) AND (1=0)
|
||||||
BEGIN
|
BEGIN
|
||||||
FETCH NEXT FROM pomPrij INTO @idSSPomocPrij, @mnozVydej
|
FETCH NEXT FROM pomPrij INTO @idSSPomocPrij, @mnozVydej, @idKZPomoc
|
||||||
IF (@@FETCH_STATUS<>0) BREAK
|
IF (@@FETCH_STATUS<>0) BREAK
|
||||||
|
|
||||||
SET @mnozSklad = ISNULL( (SELECT Mnozstvi+MnozstviKPrijmu-MnozstviKVydeji FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPrij), 0)
|
IF (@mnozVydej>0)
|
||||||
IF (@mnozVydej>@mnozSklad)
|
|
||||||
BEGIN
|
BEGIN
|
||||||
SET @mnozPrij = @mnozVydej - @mnozSklad
|
SET @mnozPrij = @mnozVydej
|
||||||
IF (@idDZPomocPrij IS NULL)
|
IF (@idDZPomocPrij IS NULL)
|
||||||
BEGIN
|
BEGIN
|
||||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZPomocPrij OUT, @Sklad=@sklTechnolog, @DruhPohybu=0, @RadaDokladu=@radaPrijem, @CisloOrg=0
|
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZPomocPrij OUT, @Sklad=@sklTechnolog, @DruhPohybu=0, @RadaDokladu=@radaPrijem, @CisloOrg=0
|
||||||
@ -428,50 +438,90 @@ WHILE (1=1)
|
|||||||
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZPomocPrij OUT, @IDDoklad=@idDZPomocPrij, @DruhPohybu=0, @CisloOrg=0, @IDZboSklad=@idSSPomocPrij,
|
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,
|
@Mena=@menaPrij, @Kurz=@kurzPrij, @KurzEuro=@kurzPrijE, @JednotkaMeny=@jednMPrij, @SazbaSD=NULL, @SazbaDPH=NULL,
|
||||||
@ZakazanoDPH=NULL, @VstupniCena=@vstCPrij, @Mnozstvi=@mnozPrij, @PovolitDuplicitu=1
|
@ZakazanoDPH=NULL, @VstupniCena=@vstCPrij, @Mnozstvi=@mnozPrij, @PovolitDuplicitu=1
|
||||||
END
|
IF (@idPZPomocPrij IS NOT NULL)
|
||||||
END
|
BEGIN
|
||||||
|
SET @jc = 0
|
||||||
|
SET @idSSPomocPek = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklPekarna AND IDKmenZbozi=@idKZPomoc)
|
||||||
|
IF (@idSSPomocPek IS NULL)
|
||||||
|
SET @idSSPomocPek = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklMatHlavni AND IDKmenZbozi=@idKZPomoc)
|
||||||
|
IF (@idSSPomocPek IS NOT NULL)
|
||||||
|
SET @jc = ISNULL( (SELECT CASE MnozFinReal WHEN 0 THEN 0 ELSE StavSkladuSouvis/MnozFinReal END FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPek), 0)
|
||||||
|
UPDATE dbo.TabPohybyZbozi SET JCbezDaniKc=ISNULL(@jc, 1) WHERE Id=@idPZPomocPrij
|
||||||
|
END -- @idPZPomocPrij
|
||||||
|
END -- @idDZPomocPrij
|
||||||
|
END -- @mnozVydej>0
|
||||||
END
|
END
|
||||||
CLOSE pomPrij
|
CLOSE pomPrij
|
||||||
DEALLOCATE pomPrij
|
DEALLOCATE pomPrij
|
||||||
IF (@idDZPomocPrij IS NOT NULL)
|
IF (@idDZPomocPrij IS NOT NULL)
|
||||||
BEGIN
|
BEGIN
|
||||||
BEGIN TRY
|
BEGIN TRY
|
||||||
|
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=@idDZPomocPrij, @AktualizaceSlev=0
|
||||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZPomocPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZPomocPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||||
END TRY
|
END TRY
|
||||||
BEGIN CATCH
|
BEGIN CATCH
|
||||||
SET @errMsg = ERROR_MESSAGE()
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba (1) p<><70>jemky korekce (ID prijemky ' + CONVERT(nvarchar, @idDZPomocPrij) + N') naskladn<64>n<EFBFBD> pro v<>dejku: ' + @errMsg, @idVyd
|
||||||
END CATCH
|
END CATCH
|
||||||
END
|
END -- @idDZPomocPrij IS NOT NULL
|
||||||
-- end: prijemka nedostatecneho materialu
|
-- end: prijemka materialu pro vydejku (1:1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- realizace vydejky
|
-- realizace vydejky
|
||||||
IF (@realizujVydej=1)
|
IF (@realizujVydej=1)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
SET @tranCount=@@TRANCOUNT
|
||||||
BEGIN TRY
|
BEGIN TRY
|
||||||
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||||
END TRY
|
END TRY
|
||||||
BEGIN CATCH
|
BEGIN CATCH
|
||||||
|
IF (@tranCount=0) AND (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK
|
||||||
SET @opakReal=0
|
SET @opakReal=0
|
||||||
SET @errMsg = ERROR_MESSAGE()
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
IF (CHARINDEX(N'71553', @errMsg)>0)
|
IF (CHARINDEX(N'71553', @errMsg)>0)
|
||||||
SET @opakReal=1
|
SET @opakReal=1
|
||||||
IF (@opakReal=0)
|
IF (@opakReal=0)
|
||||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba realizace v<>dejky p<><70>kazu: ' + @errMsg, @idVyd
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba realizace v<>dejky: ' + @errMsg, @idVyd
|
||||||
END CATCH
|
END CATCH
|
||||||
|
|
||||||
IF (@opakReal=1)
|
IF (@opakReal=1)
|
||||||
BEGIN
|
BEGIN
|
||||||
BEGIN TRY
|
BEGIN TRY
|
||||||
EXEC dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu @IDDoklad=@idVyd, @errMsg=@errMsg OUT
|
SET @tranCount=@@TRANCOUNT
|
||||||
|
SET @errMsg = N''
|
||||||
|
SET @genDodatecnyPrijem=1
|
||||||
|
EXEC dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu @IDDoklad=@idVyd, @errMsg=@errMsg OUT, @IDDokladPrijem=@idDZOut OUT
|
||||||
IF (@errMsg=N'')
|
IF (@errMsg=N'')
|
||||||
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||||
ELSE
|
ELSE
|
||||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba korekce naskladneni pro vydejku: ' + @errMsg, @idVyd
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba (2) p<><70>jemky korekce (ID ' + CONVERT(nvarchar, @idDZOut) + N') naskladn<EFBFBD>n<EFBFBD> pro v<EFBFBD>dejku: ' + @errMsg, @idVyd
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF (@tranCount=0) AND (@@TRANCOUNT>0)
|
||||||
|
ROLLBACK TRAN
|
||||||
|
SET @errMsg = ERROR_MESSAGE()
|
||||||
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba (2) opakovan<61> realizace v<>dejky: ' + @errMsg, @idVyd
|
||||||
|
END CATCH
|
||||||
|
END
|
||||||
|
|
||||||
|
-- znovu otestuj
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo.TabDokladyZbozi WHERE ID=@idVyd AND Realizovano=0) AND (@genDodatecnyPrijem=0)
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
SET @genDodatecnyPrijem=1
|
||||||
|
EXEC dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu @IDDoklad=@idVyd, @errMsg=@errMsg OUT, @IDDokladPrijem=@idDZOut 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 (3) p<><70>jemky korekce (ID ' + CONVERT(nvarchar, @idDZOut) + N') naskladn<64>n<EFBFBD> pro v<>dejku: ' + @errMsg, @idVyd
|
||||||
END TRY
|
END TRY
|
||||||
BEGIN CATCH
|
BEGIN CATCH
|
||||||
SET @errMsg = ERROR_MESSAGE()
|
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
|
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba (3) opakovan<EFBFBD> realizace v<>dejky: ' + @errMsg, @idVyd
|
||||||
END CATCH
|
END CATCH
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|||||||
506
_custom/Rootvin/sql/old/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
506
_custom/Rootvin/sql/old/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
@ -0,0 +1,506 @@
|
|||||||
|
-- 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),
|
||||||
|
@sklTechnologPolo 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<6E><65>%' AND CisloStr LIKE N'2%'
|
||||||
|
IF (@sklTechnologPolo IS NULL)
|
||||||
|
SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%pol%' AND CisloStr LIKE N'2%'
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
25
_custom/Rootvin/sql/trg__hdc_PZ_PuvodniVC_D.sql
Normal file
25
_custom/Rootvin/sql/trg__hdc_PZ_PuvodniVC_D.sql
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
-- dbo.ET__hdc_PZ_PuvodniVC_D
|
||||||
|
CREATE TRIGGER dbo.ET__hdc_PZ_PuvodniVC_D ON dbo._hdc_PZ_PuvodniVC
|
||||||
|
WITH EXECUTE AS CALLER
|
||||||
|
FOR DELETE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@id INT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- cisteni
|
||||||
|
IF EXISTS (SELECT 1 FROM dbo._hdc_PZ_PuvodniVC)
|
||||||
|
BEGIN
|
||||||
|
SELECT @id=MAX(ID) FROM dbo._hdc_PZ_PuvodniVC
|
||||||
|
DBCC CHECKIDENT (_hdc_PZ_PuvodniVC, RESEED, @id)
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
TRUNCATE TABLE dbo._hdc_PZ_PuvodniVC
|
||||||
|
|
||||||
|
END
|
||||||
@ -340,7 +340,7 @@ uses
|
|||||||
|
|
||||||
{ TSDGPolozkaOZService }
|
{ TSDGPolozkaOZService }
|
||||||
|
|
||||||
function TSDGPolozkaOZService.GetByID(const AID: Integer): TPohybOZ;
|
function TSDGPolozkaOZService.GetByID (const AID: Integer): TPohybOZ;
|
||||||
var lSQL: string;
|
var lSQL: string;
|
||||||
p: TDictionary<string, string>;
|
p: TDictionary<string, string>;
|
||||||
pds: TSDGSerioveCisloPohybOZService;
|
pds: TSDGSerioveCisloPohybOZService;
|
||||||
@ -377,7 +377,7 @@ uses
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
function TSDGPolozkaOZService.GetByParams(params: TDictionary<string, string>): TObjectList<TPohybOZ>;
|
function TSDGPolozkaOZService.GetByParams (params: TDictionary<string, string>): TObjectList<TPohybOZ>;
|
||||||
var lSQL, where, podmSDGPolozka: string;
|
var lSQL, where, podmSDGPolozka: string;
|
||||||
id,idPZ, cnt, rNo: integer;
|
id,idPZ, cnt, rNo: integer;
|
||||||
lQry: TFDQuery;
|
lQry: TFDQuery;
|
||||||
@ -1056,6 +1056,8 @@ uses
|
|||||||
|
|
||||||
// pro micharnu nejsou prikazy pozastavovany
|
// pro micharnu nejsou prikazy pozastavovany
|
||||||
where:= where + IfThen(where<>'', ' AND ', '') + 'main.StavPrikazu IN (30' + IfThen(typPrikazu<>1, ',40', '') + ')';
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.StavPrikazu IN (30' + IfThen(typPrikazu<>1, ',40', '') + ')';
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.Rada<>N''009''';
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'main.Rada LIKE N''0%''';
|
||||||
|
|
||||||
|
|
||||||
if (where<>'') then
|
if (where<>'') then
|
||||||
|
|||||||
0
_custom/Rootvin/winSvc/consts.inc
Normal file
0
_custom/Rootvin/winSvc/consts.inc
Normal file
2
_custom/Rootvin/winSvc/hdcDZApiCfg.xml
Normal file
2
_custom/Rootvin/winSvc/hdcDZApiCfg.xml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<config zapisObjMatExpPrIntMins="3"/>
|
||||||
234
_custom/Rootvin/winSvc/impl.inc
Normal file
234
_custom/Rootvin/winSvc/impl.inc
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
constructor THeoRTNZapisObjMatThread.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 THeoRTNZapisObjMatThread.Destroy;
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
Write('Ukoncuji thread RTN Zapis objednavka materialu do ExpPr...');
|
||||||
|
{$ENDIF}
|
||||||
|
if (FTimer<>0) then
|
||||||
|
CloseHandle (FTimer);
|
||||||
|
FTermEvent.Free;
|
||||||
|
FRunning:= false;
|
||||||
|
FMainService:= nil;
|
||||||
|
Terminate;
|
||||||
|
FLock.Free;
|
||||||
|
inherited;
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn('OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoRTNZapisObjMatThread.TerminatedSet;
|
||||||
|
begin
|
||||||
|
FTermEvent.SetEvent;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoRTNZapisObjMatThread.ThreadTerminate;
|
||||||
|
begin
|
||||||
|
Terminate;
|
||||||
|
WaitFor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoRTNZapisObjMatThread.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: TFDConnection;
|
||||||
|
|
||||||
|
lBusy: LongInt;
|
||||||
|
liDueTime: LARGE_INTEGER;
|
||||||
|
|
||||||
|
cfgFile: string;
|
||||||
|
specCfgXML: XML.XmlIntf.IXMLDocument;
|
||||||
|
n1: XML.XmlIntf.IXMLNode;
|
||||||
|
attribs: IXMLNodeList;
|
||||||
|
attrIdx: integer;
|
||||||
|
begin
|
||||||
|
lLoop:= 0;
|
||||||
|
idDigiFile:= 0;
|
||||||
|
logRunCnt:= 1;
|
||||||
|
|
||||||
|
lLoopMax:= 3; // v minutach !!!!
|
||||||
|
try
|
||||||
|
try
|
||||||
|
CoInitialize(nil);
|
||||||
|
cfgFile:= ExtractFilePath(ParamStr(0)) + 'hdcDZApiCfg.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('zapisObjMatExpPrIntMins');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
lLoopMax:= attribs.Get(attrIdx).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, 'Zapis Objednavek materialu do ExpPr - interval: ' + lLoopMax.ToString + ' min.');
|
||||||
|
lLoopMax:= lLoopMax * 60; // minuty na vteriny
|
||||||
|
|
||||||
|
|
||||||
|
firstRun:= true;
|
||||||
|
inProg:= false;
|
||||||
|
FRunning:= true;
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
FTimer:= CreateWaitableTimer (nil, true, 'RTNZapisObjMatExpPrWaitableTimer');
|
||||||
|
liDueTime.QuadPart:= -1*_Second;
|
||||||
|
|
||||||
|
|
||||||
|
sqlConnX:= TFDConnection.Create (nil);
|
||||||
|
sqlConnX.Params.SetStrings (datMod.sqlConnParams);
|
||||||
|
lSQL:= 'DECLARE @errMsg NVARCHAR(500)=N''''' + CRLF +'IF OBJECT_ID(N''dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew'', N''P'') IS NOT NULL' + CRLF
|
||||||
|
+ ' EXEC dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew @errMsg OUT' + CRLF + 'SELECT @errMsg AS ErrMsg';
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
|
||||||
|
try
|
||||||
|
lQry.Connection:= sqlConnX;
|
||||||
|
|
||||||
|
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 zapis Objednavky materialu do ExpPr c.' + logRunCnt.toString + '...');
|
||||||
|
if (logRunCnt=4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim zapis Objednavky - bezi, ale dal neloguju');
|
||||||
|
|
||||||
|
try
|
||||||
|
if not(inProg) then // nebezi uz ?
|
||||||
|
begin
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
sqlConnX.Open;
|
||||||
|
if (sqlConnX.Connected) then
|
||||||
|
begin
|
||||||
|
inProg:= true;
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
if (lQry.RecordCount>0) then
|
||||||
|
begin
|
||||||
|
lQry.First;
|
||||||
|
errMsg:= lQry.FieldByName('ErrMsg').AsString;
|
||||||
|
if (errMsg<>'') then
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Zapis Objednavky materialu do ExpPr - chyba: ' + errMsg);
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn('Zapis Objednavky materialu do ExpPr - chyba: ' + errMsg);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
lQry.Close;
|
||||||
|
inProg:= false;
|
||||||
|
end; // sql Connected
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
except on E:Exception do
|
||||||
|
begin
|
||||||
|
inProg:= false;
|
||||||
|
errMsg:= E.Message; // datMod.sqlQry11.FieldByName('ErrMsg').AsString;
|
||||||
|
if (mamTabPrijataData) then
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etError, 'Zapis Objednavky materialu do ExpPr - chyba: ' + errMsg);
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn('Zapis Objednavky materialu do ExpPr - chyba: ' + errMsg);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
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;
|
||||||
|
|
||||||
|
if (lQry<>nil) then
|
||||||
|
begin
|
||||||
|
lQry.Close;
|
||||||
|
FreeAndNil (lQry);
|
||||||
|
end;
|
||||||
|
if (sqlConnX<>nil) then
|
||||||
|
begin
|
||||||
|
sqlConnX.Close;
|
||||||
|
FreeAndNil (sqlConnX);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end; // 1=1
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
1
_custom/Rootvin/winSvc/mainPrivs.inc
Normal file
1
_custom/Rootvin/winSvc/mainPrivs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
rtnZapisObjMatThr: THeoRTNZapisObjMatThread;
|
||||||
3
_custom/Rootvin/winSvc/mainSvcCont.inc
Normal file
3
_custom/Rootvin/winSvc/mainSvcCont.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (rtnZapisObjMatThr<>nil) then
|
||||||
|
if (rtnZapisObjMatThr.Suspended) then
|
||||||
|
rtnZapisObjMatThr.Resume;
|
||||||
6
_custom/Rootvin/winSvc/mainSvcExec.inc
Normal file
6
_custom/Rootvin/winSvc/mainSvcExec.inc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if (rtnZapisObjMatThr<>nil) then
|
||||||
|
if not(rtnZapisObjMatThr.Started) then
|
||||||
|
begin
|
||||||
|
rtnZapisObjMatThr.Start;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby RTN Zapis objednavky materialu do ExpPr');
|
||||||
|
end;
|
||||||
3
_custom/Rootvin/winSvc/mainSvcPause.inc
Normal file
3
_custom/Rootvin/winSvc/mainSvcPause.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (rtnZapisObjMatThr<>nil) then
|
||||||
|
if not(rtnZapisObjMatThr.Suspended) then
|
||||||
|
rtnZapisObjMatThr.Suspend;
|
||||||
12
_custom/Rootvin/winSvc/mainSvcStart.inc
Normal file
12
_custom/Rootvin/winSvc/mainSvcStart.inc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby Zapis objednavek materialu do ExpPr...');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Start sluzby Zapis objednavek materialu do ExpPr - inverval 10 minut...');
|
||||||
|
{$ENDIF}
|
||||||
|
rtnZapisObjMatThr:= THeoRTNZapisObjMatThread.Create (ThreadTerminated, self);
|
||||||
|
if (rtnZapisObjMatThr.Started) then
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' OK');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
18
_custom/Rootvin/winSvc/mainSvcStop.inc
Normal file
18
_custom/Rootvin/winSvc/mainSvcStop.inc
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if Assigned(rtnZapisObjMatThr) then
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Ukoncuji sluzbu RTN Zapis objednavky materialu do ExpPr...');
|
||||||
|
{$ENDIF}
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Ukoncuji sluzbu RTN Zapis objednavky materialu do ExpPr...');
|
||||||
|
try
|
||||||
|
rtnZapisObjMatThr.ThreadTerminate;
|
||||||
|
FreeAndNil(rtnZapisObjMatThr);
|
||||||
|
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/Rootvin/winSvc/readCfg.inc
Normal file
3
_custom/Rootvin/winSvc/readCfg.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
intervalRTNZapisObjMat
|
||||||
15
_custom/Rootvin/winSvc/types.inc
Normal file
15
_custom/Rootvin/winSvc/types.inc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
THeoRTNZapisObjMatThread = 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/Rootvin/winSvc/uses.inc
Normal file
0
_custom/Rootvin/winSvc/uses.inc
Normal file
1
_custom/Rootvin/winSvc/usesTop.inc
Normal file
1
_custom/Rootvin/winSvc/usesTop.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
System.Threading,
|
||||||
1
_custom/Rootvin/winSvc/vars.inc
Normal file
1
_custom/Rootvin/winSvc/vars.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
intervalRTNZapisObjMat: integer;
|
||||||
62
_custom/Rootvin/winSvc_zdroje.inc
Normal file
62
_custom/Rootvin/winSvc_zdroje.inc
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
// arrDefs.Add('tbl_hdc_ph_Log');
|
||||||
|
|
||||||
|
arrDefs.Add('ep_hdcdzapi_GetKusovnik');
|
||||||
|
arrDefs.Add('col_TabDokladyZbozi_EXT');
|
||||||
|
arrDefs.Add('col_TabStavSkladu_EXT');
|
||||||
|
arrDefs.Add('col_TabVazbyPrikazu_EXT');
|
||||||
|
arrDefs.Add('col_TabPostup_EXT');
|
||||||
|
arrDefs.Add('col_TabPrPostup_EXT');
|
||||||
|
arrDefs.Add('col_TabPohybyZbozi_EXT');
|
||||||
|
arrDefs.Add('col_TabEvidRozpracOperR_EXT');
|
||||||
|
arrDefs.Add('col_TabKmenZbozi_EXT');
|
||||||
|
arrDefs.Add('ef_GetDatumASmenu');
|
||||||
|
arrDefs.Add('tbl_hdc_PZ_PuvodniVC');
|
||||||
|
arrDefs.Add('tbl_TabVyrobaTestoVyroba');
|
||||||
|
|
||||||
|
// tabulka objednavek je Uzivatelska tabulka v Heliosu
|
||||||
|
// arrDefs.Add('tbl_TabVyrobaObjednavky');
|
||||||
|
|
||||||
|
arrDefs.Add('tbl_TabVyrobaOperaceStartStop');
|
||||||
|
arrDefs.Add('tbl_TabVyrobaOperaceStartStopVydej');
|
||||||
|
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOper');
|
||||||
|
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOperPol');
|
||||||
|
arrDefs.Add('ep_Vyroba_DoplnSkladProVydejDleDokladu');
|
||||||
|
arrDefs.Add('ep_Vyroba_GenOdvodZeMzdy');
|
||||||
|
arrDefs.Add('ep_Vyroba_GenVydejZeMzdy');
|
||||||
|
arrDefs.Add('ep_Vyroba_Doklady_Micharna');
|
||||||
|
arrDefs.Add('ep_Vyroba_Doklady_PomocPrijemka');
|
||||||
|
|
||||||
|
arrDefs.Add('ep_Vyroba_GenDenniVydejka');
|
||||||
|
|
||||||
|
// arrDefs.Add('ep_Vyroba_GenObjednavkuMatDoVyroby');
|
||||||
|
arrDefs.Add('ep_Vyroba_GenObjednavkuMatDoVyrobyNew');
|
||||||
|
arrDefs.Add('ep_GenerovaniDokladuOZ_HDC');
|
||||||
|
|
||||||
|
arrDefs.Add('ef_Kmen_VratPocetKsVKartonu');
|
||||||
|
arrDefs.Add('ef_Kmen_VratPocetKANaPalete');
|
||||||
|
|
||||||
|
arrDefs.Add('ep_P03_HDC1');
|
||||||
|
arrDefs.Add('ep_P03');
|
||||||
|
arrDefs.Add('ep_P01_HDC1');
|
||||||
|
// arrDefs.Add('ep_P01_HDCDZApi1');
|
||||||
|
arrDefs.Add('ep_P01');
|
||||||
|
arrDefs.Add('ep_V03_HDC1');
|
||||||
|
arrDefs.Add('ep_V03');
|
||||||
|
// arrDefs.Add('');
|
||||||
|
|
||||||
|
|
||||||
|
// objednavky pres Gatema SDServer
|
||||||
|
// arrDefs.Add('bp_Gatema_SDGenDokZbo1');
|
||||||
|
arrDefs.Add('bp_Gatema_SDGenDokZbo1_HDC');
|
||||||
|
// arrDefs.Add('bp_Gatema_SDDecodeBarCode');
|
||||||
|
arrDefs.Add('bp_Gatema_SDDecodeBarCode_HDC');
|
||||||
|
|
||||||
|
|
||||||
|
arrDefs.Add('trg__TabPohybyZbozi_HDC_D');
|
||||||
|
arrDefs.Add('trg__TabPohybyZbozi_HDC_IU');
|
||||||
|
arrDefs.Add('trg__hdc_PZ_PuvodniVC_D');
|
||||||
|
arrDefs.Add('trg__TabVyrCisPrikaz_HDC_D');
|
||||||
|
arrDefs.Add('trg__TabVyrobaOperaceStartStop_D');
|
||||||
|
arrDefs.Add('trg__TabPrikazMzdyAZmetky_HDC_D');
|
||||||
|
arrDefs.Add('trg__TabPrikaz_HDC_D');
|
||||||
|
|
||||||
Binary file not shown.
@ -1,5 +1,6 @@
|
|||||||
col_TabDokumenty_DokladProAPI RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_TabDokumenty_DokladProAPI.sql
|
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_TabCisZam_EXT RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_CisZam_EXT.sql
|
||||||
|
col_TabPostup_EXT RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_TabPostup_EXT.sql
|
||||||
col_TabPrPostup_EXT RCDATA C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Rootvin\sql\col_TabPrPostup_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_TabStavSkladu_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_TabStavSkladu_EXT.sql
|
||||||
col_TabDokladyZbozi_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_DokladyZbozi_EXT.sql
|
col_TabDokladyZbozi_EXT RCDATA C:\_zakaznici\Rootvin\_sql\col_DokladyZbozi_EXT.sql
|
||||||
@ -16,6 +17,14 @@ ep_Vyroba_DoplnSkladProVydejDleDokladu RCDATA C:\_zakaznici\pluginy_obecne\HDCAp
|
|||||||
ep_Vyroba_InsertEvidRozpracOper RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOper.sql
|
ep_Vyroba_InsertEvidRozpracOper RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOper.sql
|
||||||
ep_Vyroba_InsertEvidRozpracOperPol RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOperPol.sql
|
ep_Vyroba_InsertEvidRozpracOperPol RCDATA .\sql\ep_Vyroba_InsertEvidRozpracOperPol.sql
|
||||||
|
|
||||||
|
ep_Vyroba_GenDenniVydejka RCDATA .\sql\ep_Vyroba_GenDenniVydejka.sql
|
||||||
|
|
||||||
|
ep_Vyroba_GenObjednavkuMatDoVyroby RCDATA .\sql\ep_Vyroba_GenObjednavkuMatDoVyroby.sql
|
||||||
|
ep_Vyroba_GenObjednavkuMatDoVyrobyNew RCDATA .\sql\ep_Vyroba_GenObjednavkuMatDoVyrobyNew.sql
|
||||||
|
|
||||||
|
ep_GenerovaniDokladuOZ_HDC RCDATA .\sql\ep_GenerovaniDokladuOZ_HDC.sql
|
||||||
|
|
||||||
|
|
||||||
ep_P01_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P01_HDC1.sql
|
ep_P01_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P01_HDC1.sql
|
||||||
ep_P01 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P01.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_HDC1 RCDATA C:\_zakaznici\Rootvin\_sql\ep_P03_HDC1.sql
|
||||||
@ -29,12 +38,19 @@ trg__TabPohybyZbozi_HDC_IU RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPo
|
|||||||
trg__TabPohybyZbozi_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPohybyZbozi_HDC_D.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
|
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
|
ep_Vyroba_Doklady_Micharna RCDATA C:\_zakaznici\Rootvin\_sql\ep_Vyroba_Doklady_Micharna.sql
|
||||||
|
ep_Vyroba_Doklady_PomocPrijemka RCDATA C:\_zakaznici\Rootvin\_sql\ep_Vyroba_Doklady_PomocPrijemka.sql
|
||||||
|
|
||||||
|
bp_Gatema_SDGenDokZbo1 RCDATA C:\_zakaznici\Rootvin\_sql\BP_Gatema_SDGenDokZbo1.sql
|
||||||
|
bp_Gatema_SDGenDokZbo1_HDC RCDATA C:\_zakaznici\Rootvin\_sql\BP_Gatema_SDGenDokZbo1_HDC.sql
|
||||||
|
bp_Gatema_SDDecodeBarCode RCDATA C:\_zakaznici\Rootvin\_sql\BP_Gatema_SDDecodeBarCode.sql
|
||||||
|
bp_Gatema_SDDecodeBarCode_HDC RCDATA C:\_zakaznici\Rootvin\_sql\BP_Gatema_SDDecodeBarCode_HDC.sql
|
||||||
|
|
||||||
|
|
||||||
ef_GetDatumASmenu RCDATA C:\_zakaznici\Rootvin\_sql\ef_GetDatumASmenu.sql
|
ef_GetDatumASmenu RCDATA C:\_zakaznici\Rootvin\_sql\ef_GetDatumASmenu.sql
|
||||||
ef_DilecGetStroj RCDATA C:\_zakaznici\Rootvin\_sql\ef_DilecGetStroj.sql
|
ef_DilecGetStroj RCDATA C:\_zakaznici\Rootvin\_sql\ef_DilecGetStroj.sql
|
||||||
ef_Kmen_VratPocetKsVKartonu RCDATA C:\_zakaznici\Rootvin\_sql\ef_Kmen_VratPocetKsVKartonu.sql
|
ef_Kmen_VratPocetKsVKartonu RCDATA C:\_zakaznici\Rootvin\_sql\ef_Kmen_VratPocetKsVKartonu.sql
|
||||||
tbl_TabVyrobaObjednavky RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaObjednavky.sql
|
ef_Kmen_VratPocetKANaPalete RCDATA C:\_zakaznici\Rootvin\_sql\ef_Kmen_VratPocetKANaPalete.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_TabVyrobaOperaceStartStop RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaOperaceStartStop.sql
|
||||||
tbl_TabVyrobaOperaceStartStopVydej RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaOperaceStartStopVydej.sql
|
tbl_TabVyrobaOperaceStartStopVydej RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyrobaOperaceStartStopVydej.sql
|
||||||
tbl_TabVyrobaTestoVyroba RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyroba_TestoVyroba.sql
|
tbl_TabVyrobaTestoVyroba RCDATA C:\_zakaznici\Rootvin\_sql\tbl__TabVyroba_TestoVyroba.sql
|
||||||
@ -42,3 +58,6 @@ trg__TabDokladyZbozi_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabDo
|
|||||||
trg__hdc_PZ_PuvodniVC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__hdc_PZ_PuvodniVC_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__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
|
trg__TabVyrobaOperaceStartStop_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabVyrobaOperaceStartStop_D.sql
|
||||||
|
trg__TabPrikazMzdyAZmetky_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPrikazMzdyAZmetky_HDC_D.sql
|
||||||
|
trg__TabPrikaz_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPrikaz_HDC_D.sql
|
||||||
|
|
||||||
|
|||||||
46
_custom/Rootvin/zdroje.rc.bak
Normal file
46
_custom/Rootvin/zdroje.rc.bak
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
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
|
||||||
|
ep_Vyroba_Doklady_PomocPrijemka RCDATA C:\_zakaznici\Rootvin\_sql\ep_Vyroba_Doklady_PomocPrijemka.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
|
||||||
|
trg__TabPrikazMzdyAZmetky_HDC_D RCDATA C:\_zakaznici\Rootvin\_sql\trg__TabPrikazMzdyAZmetky_HDC_D.sql
|
||||||
3
_custom/Westra/customDefs.inc
Normal file
3
_custom/Westra/customDefs.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
,uHeOObj_Custom in '_custom\Westra\uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in '_custom\Westra\uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in '_custom\Westra\uSvcCustom.pas'
|
||||||
1
_custom/Westra/sqlDefs.inc
Normal file
1
_custom/Westra/sqlDefs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
// arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
106
_custom/Westra/uCtrlCustom.pas
Normal file
106
_custom/Westra/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('/westra')]
|
||||||
|
TWestraController = class(TBaseController)
|
||||||
|
{
|
||||||
|
strict private
|
||||||
|
FSelfSvc: TWestraService;
|
||||||
|
strict protected
|
||||||
|
function GetWestraService: TWestraService;
|
||||||
|
}
|
||||||
|
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('MBM Westra', '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('MBM Westra', '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 = '';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TWestraController }
|
||||||
|
destructor TWestraController.Destroy;
|
||||||
|
begin
|
||||||
|
// FSelfSvc.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TWestraController.ZapisJSONDoHeliosu (CTX: TWebContext);
|
||||||
|
var respData, jsonData: string;
|
||||||
|
// o: System.JSON.TJSONObject;
|
||||||
|
begin
|
||||||
|
respData:= '';
|
||||||
|
try
|
||||||
|
jsonData:= CTX.Request.Body.Trim;
|
||||||
|
if (jsonData<>'') then
|
||||||
|
GetWestraService.ZapisJsonDoHeliosu (jsonData, respData);
|
||||||
|
ResponseStatus(HTTP_STATUS.OK, 'OK');
|
||||||
|
Render(respData);
|
||||||
|
except
|
||||||
|
RenderStatusMessage (200);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TWestraController.NactiDataZURL (sURL: string = '');
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
7
_custom/Westra/uHeOObj_Custom.pas
Normal file
7
_custom/Westra/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/Westra/uSvcCustom.pas
Normal file
140
_custom/Westra/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
|
||||||
|
TWestraService = 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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ TWestraService }
|
||||||
|
|
||||||
|
procedure TWestraService.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/Westra/uWebModCustom.inc
Normal file
2
_custom/Westra/uWebModCustom.inc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
FEngine.AddController (TWestraController);
|
||||||
|
|
||||||
2
_custom/Westra/westraDP.xml
Normal file
2
_custom/Westra/westraDP.xml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<config fileScanIntervalMin="10" pathToScan="C:\_zakaznici\pluginy_obecne\HDCApi2\_custom\Westra\test"/>
|
||||||
0
_custom/Westra/winSvc/consts.inc
Normal file
0
_custom/Westra/winSvc/consts.inc
Normal file
499
_custom/Westra/winSvc/impl.inc
Normal file
499
_custom/Westra/winSvc/impl.inc
Normal file
@ -0,0 +1,499 @@
|
|||||||
|
// ###########################################################
|
||||||
|
// TQTXNetworkPath
|
||||||
|
// ###########################################################
|
||||||
|
|
||||||
|
|
||||||
|
procedure TQTXNetworkPath.Disconnect (const aForce: Boolean);
|
||||||
|
var mRes: Integer;
|
||||||
|
mCount: Integer;
|
||||||
|
begin
|
||||||
|
// Close network connection if connected
|
||||||
|
if (FConnected=True) and (FOwned=True) then
|
||||||
|
begin
|
||||||
|
|
||||||
|
// Attempt to close the connection
|
||||||
|
mRes:= WNetCancelConnection (@FUNCData,aForce);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Since files can be open temporarily, we try to
|
||||||
|
wait a little before we re-try to close again.
|
||||||
|
A maximum of 100 attempts is set
|
||||||
|
*/
|
||||||
|
if (mRes=ERROR_OPEN_FILES) then
|
||||||
|
begin
|
||||||
|
mCount:=0;
|
||||||
|
while (mRes=ERROR_OPEN_FILES) do
|
||||||
|
begin
|
||||||
|
Inc (mCount);
|
||||||
|
if (mCount=100) then
|
||||||
|
Break;
|
||||||
|
Sleep(100);
|
||||||
|
mRes:= WNetCancelConnection (@FUNCData,aForce);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
FConnected:=False;
|
||||||
|
FOwned:=False;
|
||||||
|
SetLength (FHostName,0);
|
||||||
|
SetLength (FRemotePath,0);
|
||||||
|
SetLength (FUser,0);
|
||||||
|
SetLength (FPassword,0);
|
||||||
|
SetLength (FURI,0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TQTXNetworkPath.ClearLastError;
|
||||||
|
begin
|
||||||
|
FFailed:= false;
|
||||||
|
SetLength (FLastError,0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TQTXNetworkPath.setLastError (aValue:String);
|
||||||
|
begin
|
||||||
|
FLastError:= Trim (aValue);
|
||||||
|
FFailed:= Length(FLastError)>0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function TQTXNetworkPath.getRelativePath (aFilename:String):String;
|
||||||
|
begin
|
||||||
|
if (FConnected) then
|
||||||
|
result:= FURI + aFilename
|
||||||
|
else
|
||||||
|
result:= aFilename;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
destructor TQTXNetworkPath.Destroy;
|
||||||
|
begin
|
||||||
|
if (FConnected) then
|
||||||
|
Disconnect(True);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ###########################################################
|
||||||
|
// THeoWestraDataPumpFileThread
|
||||||
|
// ###########################################################
|
||||||
|
|
||||||
|
constructor THeoWestraDataPumpFileThread.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 THeoWestraDataPumpFileThread.Destroy;
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
Write('Ukoncuji thread WESTRA file...');
|
||||||
|
{$ENDIF}
|
||||||
|
if (FTimer<>0) then
|
||||||
|
CloseHandle (FTimer);
|
||||||
|
FTermEvent.Free;
|
||||||
|
FRunning:= false;
|
||||||
|
FMainService:= nil;
|
||||||
|
Terminate;
|
||||||
|
FLock.Free;
|
||||||
|
inherited;
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn('OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoWestraDataPumpFileThread.TerminatedSet;
|
||||||
|
begin
|
||||||
|
FTermEvent.SetEvent;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoWestraDataPumpFileThread.ThreadTerminate;
|
||||||
|
begin
|
||||||
|
Terminate;
|
||||||
|
WaitFor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure THeoWestraDataPumpFileThread.Execute;
|
||||||
|
const _Second = 10_000_000;
|
||||||
|
var lSQL, errMsg, url, outData, scanPath, fName, fNameP1, fNameP2, fNameP3, fNameP4, fNameP5, loopCasTyp: string;
|
||||||
|
cisloZak, skp, selFile, fileExt: string;
|
||||||
|
idKmen: integer;
|
||||||
|
seznamNazvu: TList<string>;
|
||||||
|
fNames, castiName: TStringDynArray;
|
||||||
|
srchPatterns: array[0..2] of string;
|
||||||
|
srchPattern: string;
|
||||||
|
|
||||||
|
lLoop, idDigiFile, i, cnt, idx, fCount: Integer;
|
||||||
|
lLoopMax, koefProCas: integer;
|
||||||
|
logRunCnt: integer;
|
||||||
|
Msg: TMsg;
|
||||||
|
firstRun, inProg, inDL: boolean;
|
||||||
|
lQry: TFDQuery;
|
||||||
|
sqlConnX, sqlConnX2: TFDConnection;
|
||||||
|
sqlTrans: IFDPhysTransaction;
|
||||||
|
|
||||||
|
lBusy: LongInt;
|
||||||
|
liDueTime: LARGE_INTEGER;
|
||||||
|
|
||||||
|
cfgFile: string;
|
||||||
|
specCfgXML: XML.XmlIntf.IXMLDocument;
|
||||||
|
n1: XML.XmlIntf.IXMLNode;
|
||||||
|
attribs: IXMLNodeList;
|
||||||
|
attrIdx: integer;
|
||||||
|
|
||||||
|
netPath: TQTXNetworkPath;
|
||||||
|
|
||||||
|
function RemoveAlphas (const S: string): string;
|
||||||
|
begin
|
||||||
|
SetLength(result, S.Length);
|
||||||
|
var ResChr:= PChar(result);
|
||||||
|
var LActualLength:= 0;
|
||||||
|
for var i:=1 to S.Length do
|
||||||
|
if (CharInSet(s[i], ['0'..'9'])) then
|
||||||
|
begin
|
||||||
|
Inc(LActualLength);
|
||||||
|
ResChr^:= s[i];
|
||||||
|
Inc(ResChr);
|
||||||
|
end;
|
||||||
|
SetLength(result, LActualLength);
|
||||||
|
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 !!!!
|
||||||
|
|
||||||
|
scanPath:= 'Z:\';
|
||||||
|
srchPatterns[0]:= '*.stp';
|
||||||
|
srchPatterns[1]:= '*.step';
|
||||||
|
srchPatterns[2]:= '*.dxf';
|
||||||
|
|
||||||
|
try
|
||||||
|
try
|
||||||
|
CoInitialize(nil);
|
||||||
|
cfgFile:= ExtractFilePath(ParamStr(0)) + 'westraDP.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('fileScanIntervalMin');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
lLoopMax:= attribs.Get(attrIdx).NodeValue;
|
||||||
|
|
||||||
|
attrIdx:= attribs.IndexOf('pathToScan');
|
||||||
|
if (attrIdx>-1) then
|
||||||
|
if (attribs.Get(attrIdx).NodeValue<>null) then
|
||||||
|
scanPath:= attribs.Get(attrIdx).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, 'Westra DataPumpFile interval: ' + lLoopMax.ToString + ' min');
|
||||||
|
lLoopMax:= lLoopMax * 60; // minuty na vteriny
|
||||||
|
|
||||||
|
|
||||||
|
firstRun:= true;
|
||||||
|
inProg:= false;
|
||||||
|
FRunning:= true;
|
||||||
|
|
||||||
|
try
|
||||||
|
// netPath:= TQTXNetworkPath.Create(nil);
|
||||||
|
// netPath.Connect();
|
||||||
|
except
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
FTimer:= CreateWaitableTimer (nil, true, 'WestraDataPumpFileWaitableTimer');
|
||||||
|
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
|
||||||
|
firstRun:= false;
|
||||||
|
|
||||||
|
if (logRunCnt<4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim scan ' + logRunCnt.toString + '...');
|
||||||
|
if (logRunCnt=4) then
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Spoustim Scan - bezi ale dal neloguju');
|
||||||
|
|
||||||
|
try
|
||||||
|
if not(inProg) then // nebezi uz ?
|
||||||
|
begin
|
||||||
|
|
||||||
|
if (1=1) then // pro rychle vypnuti
|
||||||
|
begin
|
||||||
|
seznamNazvu:= TList<string>.Create;
|
||||||
|
try
|
||||||
|
try
|
||||||
|
for srchPattern in srchPatterns do
|
||||||
|
begin
|
||||||
|
if not(Terminated) then
|
||||||
|
begin
|
||||||
|
fNames:= TDirectory.GetFiles (scanPath, srchPattern, TSearchOption.soAllDirectories);
|
||||||
|
seznamNazvu.AddRange (fNames);
|
||||||
|
end; // Terminated
|
||||||
|
end; // srchPattern
|
||||||
|
except // Ignorujeme chyby p<><70>stupu (nap<61>. Permission Denied) a pokra<72>ujeme
|
||||||
|
on E: EAccessViolation do ;
|
||||||
|
on E: EInOutError do ;
|
||||||
|
end;
|
||||||
|
fNames:= seznamNazvu.ToArray;
|
||||||
|
finally
|
||||||
|
seznamNazvu.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (fNames<>nil) then
|
||||||
|
if (Length(fNames)>0) then
|
||||||
|
begin
|
||||||
|
sqlConnX:= TFDConnection.Create (nil);
|
||||||
|
try
|
||||||
|
|
||||||
|
sqlConnX.Params.SetStrings (datMod.sqlConnParams);
|
||||||
|
// sqlConnX.TxOptions.AutoCommit:= false;
|
||||||
|
sqlConnX.Open;
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
lQry.Connection:= sqlConnX;
|
||||||
|
|
||||||
|
for fName in fNames do
|
||||||
|
begin
|
||||||
|
if (Terminated) then
|
||||||
|
Break;
|
||||||
|
fNameP1:= fName.Replace(scanPath,'');
|
||||||
|
if (LeftStr(fNameP1,1)='\') then
|
||||||
|
fNameP1:= MidStr(fNameP1, 2, Length(fNameP1));
|
||||||
|
|
||||||
|
SetLength(castiName,0);
|
||||||
|
if (fNameP1.IndexOf('\')>-1) then
|
||||||
|
castiName:= System.StrUtils.SplitString (fNameP1, '\');
|
||||||
|
|
||||||
|
fNameP2:= '';
|
||||||
|
cisloZak:= '';
|
||||||
|
fNameP3:= '';
|
||||||
|
idKmen:= 0;
|
||||||
|
selFile:= '';
|
||||||
|
fNameP4:= '';
|
||||||
|
fNameP5:= '';
|
||||||
|
|
||||||
|
if (Length(castiName)>0) then
|
||||||
|
begin
|
||||||
|
fNameP2:= castiName[0]; // zakazka W....
|
||||||
|
if (Length(castiName)>1) then
|
||||||
|
fNameP3:= castiName[1]; // dilec ??? (03.100.1546)
|
||||||
|
if (Length(castiName)>2) then
|
||||||
|
fNameP4:= castiName[2]; // adresar DFX ???
|
||||||
|
if (Length(castiName)>3) then
|
||||||
|
fNameP5:= castiName[3];
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
fNameP2:= ''; // zakazka W.....
|
||||||
|
if (fNameP1.IndexOf(' ')>-1) then
|
||||||
|
fNameP2:= LeftStr(fNameP1, fNameP1.IndexOf(' '))
|
||||||
|
else
|
||||||
|
if (fNameP1.IndexOf('\')>-1) then
|
||||||
|
fNameP2:= LeftStr(fNameP1, fNameP1.IndexOf('\'));
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (fNameP2<>'') then
|
||||||
|
begin
|
||||||
|
if (fNameP2.IndexOf(' ')>-1) then
|
||||||
|
fNameP2:= LeftStr(fNameP2, fNameP2.IndexOf(' '));
|
||||||
|
lQry.Open ('SELECT CisloZakazky FROM ' + tblZak + ' WHERE Nazev=N' + ('W'+fNameP2).QuotedString);
|
||||||
|
if (lQry.RecordCount=1) then
|
||||||
|
cisloZak:= lQry.FieldByName('CisloZakazky').AsString;
|
||||||
|
|
||||||
|
if (cisloZak<>'') and (fNameP3<>'') then
|
||||||
|
begin
|
||||||
|
if (Length(fNameP3)-Length(fNameP3.Replace('.',''))=2) then
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT ID FROM ' + tblKZ + ' WHERE SkupZbo LIKE N''V%'' AND ISNULL(SKP,N'''')=N' + fNameP3.QuotedString;
|
||||||
|
lQry.Open(lSQL);
|
||||||
|
if (lQry.RecordCount=1) then
|
||||||
|
idKmen:= lQry.FieldByName('ID').asInteger;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (idKmen>0) then
|
||||||
|
begin
|
||||||
|
if (fNameP4<>'') then
|
||||||
|
for srchPattern in srchPatterns do
|
||||||
|
if (fNameP4.IndexOf(srchPattern.Replace('*',''))>-1) then
|
||||||
|
selFile:= fNameP4;
|
||||||
|
if (selFile='') and (fNameP5<>'') then
|
||||||
|
for srchPattern in srchPatterns do
|
||||||
|
if (fNameP5.IndexOf(srchPattern.Replace('*',''))>-1) then
|
||||||
|
selFile:= fNameP5;
|
||||||
|
|
||||||
|
if (selFile<>'') then
|
||||||
|
begin
|
||||||
|
lSQL:= 'SELECT 1 FROM ' + tblDokumVaz + ' v WITH(NOLOCK) JOIN ' + tblDokum + ' d WITH(NOLOCK) ON (d.ID=v.IdDok) WHERE v.IdentVazby=8'
|
||||||
|
+ ' AND v.IdTab=' + idKmen.ToString + ' AND d.Popis=N' + selFile.QuotedString + ' AND d.JmenoACesta=N' + fName.QuotedString;
|
||||||
|
lQry.Open (lSQL);
|
||||||
|
if (lQry.RecordCount=0) then
|
||||||
|
begin
|
||||||
|
lSQL:= 'DECLARE @d INT' + CRLF + 'INSERT ' + tblDokum + ' (Popis, JmenoACesta) SELECT N' + selFile.QuotedString + ', N' + fName.QuotedString + CRLF
|
||||||
|
+ 'SET @d=SCOPE_IDENTITY()' + CRLF + 'INSERT ' + tblDokumVaz + ' (IdentVazby, IdTab, IdDok) SELECT 8, ' + idKmen.ToString + ', @d';
|
||||||
|
try
|
||||||
|
sqlConnX.ExecSQL (lSQL);
|
||||||
|
except
|
||||||
|
end;
|
||||||
|
end; // nemam vazbu, zaloz ji
|
||||||
|
end; // selFile<>''
|
||||||
|
end; // idKmen>0
|
||||||
|
end; // cisloZak<>''
|
||||||
|
|
||||||
|
end; // fNameP2<>''
|
||||||
|
|
||||||
|
end; // for fName in fNames
|
||||||
|
finally
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
if (sqlConnX.Connected) then
|
||||||
|
inProg:= false;
|
||||||
|
if (lQry<>nil) then
|
||||||
|
begin
|
||||||
|
lQry.Close;
|
||||||
|
FreeAndNil (lQry);
|
||||||
|
end;
|
||||||
|
sqlConnX.Close;
|
||||||
|
FreeAndNil (sqlConnX);
|
||||||
|
// sqlConnX.Free;
|
||||||
|
// sqlConnX:= nil;
|
||||||
|
|
||||||
|
// datMod.LogInfo (Quick.Logger.etInfo, 'Zrusena SQL connection - downloadPDF id ' + idDigiFile.ToString);
|
||||||
|
end;
|
||||||
|
end; // not(inProg)
|
||||||
|
|
||||||
|
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;
|
||||||
|
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/Westra/winSvc/mainPrivs.inc
Normal file
1
_custom/Westra/winSvc/mainPrivs.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
westraDataPumpFileThr: THeoWestraDataPumpFileThread;
|
||||||
3
_custom/Westra/winSvc/mainSvcCont.inc
Normal file
3
_custom/Westra/winSvc/mainSvcCont.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (westraDataPumpFileThr<>nil) then
|
||||||
|
if (westraDataPumpFileThr.Suspended) then
|
||||||
|
westraDataPumpFileThr.Resume;
|
||||||
6
_custom/Westra/winSvc/mainSvcExec.inc
Normal file
6
_custom/Westra/winSvc/mainSvcExec.inc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if (westraDataPumpFileThr<>nil) then
|
||||||
|
if not(westraDataPumpFileThr.Started) then
|
||||||
|
begin
|
||||||
|
westraDataPumpFileThr.Start;
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby WESTRA DataPump file');
|
||||||
|
end;
|
||||||
3
_custom/Westra/winSvc/mainSvcPause.inc
Normal file
3
_custom/Westra/winSvc/mainSvcPause.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (westraDataPumpFileThr<>nil) then
|
||||||
|
if not(westraDataPumpFileThr.Suspended) then
|
||||||
|
westraDataPumpFileThr.Suspend;
|
||||||
12
_custom/Westra/winSvc/mainSvcStart.inc
Normal file
12
_custom/Westra/winSvc/mainSvcStart.inc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby WESTRA DataPump File - interval 10 minut...');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Start sluzby WESTRA DataPump File - inverval 10 minut...');
|
||||||
|
{$ENDIF}
|
||||||
|
westraDataPumpFileThr:= THeoWestraDataPumpFileThread.Create (ThreadTerminated, self);
|
||||||
|
if (westraDataPumpFileThr.Started) then
|
||||||
|
begin
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, ' OK');
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn (' OK');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
18
_custom/Westra/winSvc/mainSvcStop.inc
Normal file
18
_custom/Westra/winSvc/mainSvcStop.inc
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if Assigned(westraDataPumpFileThr) then
|
||||||
|
begin
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
WriteLn ('Ukoncuji sluzbu WESTRA DataPump File...');
|
||||||
|
{$ENDIF}
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Ukoncuji sluzbu WESTRA DataPump File...');
|
||||||
|
try
|
||||||
|
westraDataPumpFileThr.ThreadTerminate;
|
||||||
|
FreeAndNil (westraDataPumpFileThr);
|
||||||
|
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/Westra/winSvc/readCfg.inc
Normal file
3
_custom/Westra/winSvc/readCfg.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
fileScanIntervalMin
|
||||||
48
_custom/Westra/winSvc/types.inc
Normal file
48
_custom/Westra/winSvc/types.inc
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
THeoWestraDataPumpFileThread = 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;
|
||||||
|
|
||||||
|
|
||||||
|
TQTXNetworkPath = class(TObject)
|
||||||
|
private
|
||||||
|
FHostName: String;
|
||||||
|
FRemotePath: String;
|
||||||
|
FUser: String;
|
||||||
|
FPassword: String;
|
||||||
|
FConnected: Boolean;
|
||||||
|
FOwned: Boolean;
|
||||||
|
FLastError: String;
|
||||||
|
FFailed: Boolean;
|
||||||
|
FUNCData: packed array[0..4096] of char;
|
||||||
|
FURI: String;
|
||||||
|
protected
|
||||||
|
procedure ClearLastError;
|
||||||
|
procedure setLastError (aValue:String);
|
||||||
|
public
|
||||||
|
property Active:Boolean read FConnected;
|
||||||
|
property HostName:String read FHostName;
|
||||||
|
property NetworkPath:String read FRemotePath;
|
||||||
|
property LastError:String read FLastError;
|
||||||
|
property Failed:Boolean read FFailed;
|
||||||
|
|
||||||
|
function getRelativePath (aFilename:String): string;
|
||||||
|
|
||||||
|
function Connect (aHostName:String;
|
||||||
|
aNetworkPath:String;
|
||||||
|
const aUsername:String='';
|
||||||
|
const aPassword:String=''): boolean;
|
||||||
|
procedure Disconnect (const aForce:Boolean=False);
|
||||||
|
destructor Destroy;override;
|
||||||
|
end;
|
||||||
0
_custom/Westra/winSvc/uses.inc
Normal file
0
_custom/Westra/winSvc/uses.inc
Normal file
1
_custom/Westra/winSvc/usesTop.inc
Normal file
1
_custom/Westra/winSvc/usesTop.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
System.Net.HttpClient, System.Threading, System.Types,
|
||||||
1
_custom/Westra/winSvc/vars.inc
Normal file
1
_custom/Westra/winSvc/vars.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
intervalFileScan: integer;
|
||||||
BIN
_custom/Westra/zdroje.RES
Normal file
BIN
_custom/Westra/zdroje.RES
Normal file
Binary file not shown.
0
_custom/Westra/zdroje.rc
Normal file
0
_custom/Westra/zdroje.rc
Normal file
@ -2,6 +2,7 @@
|
|||||||
rem copy NUL sqlZdroje.res
|
rem copy NUL sqlZdroje.res
|
||||||
"C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" sqlZdroje.rc
|
"C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" sqlZdroje.rc
|
||||||
"C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\Rootvin\zdroje.rc
|
"C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\Rootvin\zdroje.rc
|
||||||
|
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\Westra\zdroje.rc
|
||||||
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\INCOSystems\zdroje.rc
|
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\INCOSystems\zdroje.rc
|
||||||
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\Gornicky\zdroje.rc
|
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\Gornicky\zdroje.rc
|
||||||
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\EMPolar\zdroje.rc
|
rem "C:\Program files (x86)\Embarcadero\Studio\23.0\bin\brcc32.exe" .\_custom\EMPolar\zdroje.rc
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
//{$DEFINE CUSTOM_CTRL_INCOSystems}
|
//{$DEFINE CUSTOM_CTRL_INCOSystems}
|
||||||
//{$DEFINE CUSTOM_CTRL_Gornicky}
|
//{$DEFINE CUSTOM_CTRL_Gornicky}
|
||||||
//{$DEFINE CUSTOM_CTRL_EMPolar}
|
//{$DEFINE CUSTOM_CTRL_EMPolar}
|
||||||
|
//{$DEFINE CUSTOM_CTRL_Westra}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -39,5 +40,8 @@
|
|||||||
{$IFDEF CUSTOM_CTRL_EMPolar}
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
{$DEFINE CUSTOM_CTRL_FILES}
|
{$DEFINE CUSTOM_CTRL_FILES}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$DEFINE CUSTOM_CTRL_FILES}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
47
hdcDZApi.dpr
47
hdcDZApi.dpr
@ -1,4 +1,4 @@
|
|||||||
program hdcDZApi;
|
program hdcDZApi;
|
||||||
|
|
||||||
{$IFDEF DEBUG}
|
{$IFDEF DEBUG}
|
||||||
{$APPTYPE CONSOLE}
|
{$APPTYPE CONSOLE}
|
||||||
@ -11,6 +11,11 @@ uses
|
|||||||
Vcl.SvcMgr,
|
Vcl.SvcMgr,
|
||||||
System.SysUtils,
|
System.SysUtils,
|
||||||
Winapi.Windows,
|
Winapi.Windows,
|
||||||
|
System.Classes,
|
||||||
|
|
||||||
|
{$IFDEF DEBUG}
|
||||||
|
Web.WebReq,
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
MVCFramework.Middleware.Swagger,
|
MVCFramework.Middleware.Swagger,
|
||||||
MVCFramework.Swagger.Commons,
|
MVCFramework.Swagger.Commons,
|
||||||
@ -78,6 +83,7 @@ uses
|
|||||||
,uHeOObj_Custom in '_custom\INCOSystems\uHeOObj_Custom.pas'
|
,uHeOObj_Custom in '_custom\INCOSystems\uHeOObj_Custom.pas'
|
||||||
,uCtrlCustom in '_custom\INCOSystems\uCtrlCustom.pas'
|
,uCtrlCustom in '_custom\INCOSystems\uCtrlCustom.pas'
|
||||||
,uSvcCustom in '_custom\INCOSystems\uSvcCustom.pas'
|
,uSvcCustom in '_custom\INCOSystems\uSvcCustom.pas'
|
||||||
|
{$R .\_custom\INCOSystems\zdroje.RES}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
@ -93,6 +99,13 @@ uses
|
|||||||
,uSvcCustom in '_custom\EMPolar\uSvcCustom.pas'
|
,uSvcCustom in '_custom\EMPolar\uSvcCustom.pas'
|
||||||
{$R '_custom\EMPolar\zdroje.RES'}
|
{$R '_custom\EMPolar\zdroje.RES'}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
,uHeOObj_Custom in '_custom\Westra\uHeOObj_Custom.pas'
|
||||||
|
,uCtrlCustom in '_custom\Westra\uCtrlCustom.pas'
|
||||||
|
,uSvcCustom in '_custom\Westra\uSvcCustom.pas'
|
||||||
|
{$R '_custom\Westra\zdroje.RES'}
|
||||||
|
{$ENDIF}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@ -123,7 +136,10 @@ var Event : TInputrecord;
|
|||||||
var started: boolean;
|
var started: boolean;
|
||||||
var stopped: boolean;
|
var stopped: boolean;
|
||||||
|
|
||||||
|
Application.Initialize;
|
||||||
Application.CreateForm (TdatMod, datMod);
|
Application.CreateForm (TdatMod, datMod);
|
||||||
|
// Application.CreateForm(TWebModule1, WebModule1);
|
||||||
|
|
||||||
// In debug mode the server acts as a console application.
|
// In debug mode the server acts as a console application.
|
||||||
// Create the TService descendant manually.
|
// Create the TService descendant manually.
|
||||||
|
|
||||||
@ -134,6 +150,10 @@ var Event : TInputrecord;
|
|||||||
|
|
||||||
HDCDZApiService.ServiceAfterInstall (HDCDZApiService);
|
HDCDZApiService.ServiceAfterInstall (HDCDZApiService);
|
||||||
|
|
||||||
|
|
||||||
|
if (WebRequestHandler<>nil) then
|
||||||
|
WebRequestHandler.WebModuleClass := WebModuleClass;
|
||||||
|
|
||||||
// Simulate service start.
|
// Simulate service start.
|
||||||
HDCDZApiService.ServiceStart (HDCDZApiService, started);
|
HDCDZApiService.ServiceStart (HDCDZApiService, started);
|
||||||
// Keep the console box running (ServerContainer1 code runs in the background)
|
// Keep the console box running (ServerContainer1 code runs in the background)
|
||||||
@ -179,9 +199,32 @@ var Event : TInputrecord;
|
|||||||
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
ReportMemoryLeaksOnShutdown:= false;
|
ReportMemoryLeaksOnShutdown:= true;
|
||||||
|
|
||||||
{$IFDEF DEBUG}
|
{$IFDEF DEBUG}
|
||||||
|
{
|
||||||
|
if not Application.DelayInitialize or Application.Installing then
|
||||||
|
Application.Initialize;
|
||||||
|
|
||||||
|
Application.CreateForm(THDCDZApiService, HDCDZApiService);
|
||||||
|
Application.CreateForm(TdatMod, datMod);
|
||||||
|
// thread čekající na ENTER
|
||||||
|
TThread.CreateAnonymousThread(
|
||||||
|
procedure
|
||||||
|
var Stopped: Boolean;
|
||||||
|
begin
|
||||||
|
Writeln('Stiskem ENTER ukončete...');
|
||||||
|
Readln;
|
||||||
|
|
||||||
|
TThread.Queue(nil,
|
||||||
|
procedure
|
||||||
|
begin
|
||||||
|
HDCDZApiService.ServiceStop(HDCDZApiService, Stopped);
|
||||||
|
end);
|
||||||
|
end
|
||||||
|
).Start;
|
||||||
|
Application.Run;
|
||||||
|
}
|
||||||
SpustitJakoPrg;
|
SpustitJakoPrg;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
if (FindCmdLineSwitch('dbg', true)) then
|
if (FindCmdLineSwitch('dbg', true)) then
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<FrameworkType>VCL</FrameworkType>
|
<FrameworkType>VCL</FrameworkType>
|
||||||
<MainSource>hdcDZApi.dpr</MainSource>
|
<MainSource>hdcDZApi.dpr</MainSource>
|
||||||
<Base>True</Base>
|
<Base>True</Base>
|
||||||
<Config Condition="'$(Config)'==''">Release</Config>
|
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||||
<TargetedPlatforms>2</TargetedPlatforms>
|
<TargetedPlatforms>2</TargetedPlatforms>
|
||||||
<AppType>Application</AppType>
|
<AppType>Application</AppType>
|
||||||
@ -132,8 +132,8 @@
|
|||||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
<VerInfo_MajorVer>3</VerInfo_MajorVer>
|
<VerInfo_MajorVer>3</VerInfo_MajorVer>
|
||||||
<VerInfo_Release>2025</VerInfo_Release>
|
<VerInfo_Release>2025</VerInfo_Release>
|
||||||
<VerInfo_Build>521</VerInfo_Build>
|
<VerInfo_Build>1205</VerInfo_Build>
|
||||||
<VerInfo_Keys>CompanyName=HD Consulting s.r.o. Strakonice;FileDescription=HDC x Pro Holding DataZone komunikator (API);FileVersion=3.0.2025.521;InternalName=;LegalCopyright=(c) 2022-25 HD Consulting s.r.o. / Tomas Buzin;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;LastCompiledTime=2025.05.21 17:11:11</VerInfo_Keys>
|
<VerInfo_Keys>CompanyName=HD Consulting s.r.o. Strakonice;FileDescription=HDC x Pro Holding DataZone komunikator (API);FileVersion=3.0.2025.1205;InternalName=;LegalCopyright=(c) 2022-25 HD Consulting s.r.o. / Tomas Buzin;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE12.3.1;LastCompiledTime=2025.12.05 12:42:18</VerInfo_Keys>
|
||||||
<Icon_MainIcon>api2-5.ico</Icon_MainIcon>
|
<Icon_MainIcon>api2-5.ico</Icon_MainIcon>
|
||||||
<DCC_MapFile>3</DCC_MapFile>
|
<DCC_MapFile>3</DCC_MapFile>
|
||||||
<DCC_DebugInformation>2</DCC_DebugInformation>
|
<DCC_DebugInformation>2</DCC_DebugInformation>
|
||||||
@ -252,8 +252,6 @@
|
|||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\EssentialsDR290.bpl">TurboPack Essentials Delphi Runtime package</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\EssentialsDR290.bpl">TurboPack Essentials Delphi Runtime package</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\PngComponentsD290.bpl">Png Components for Delphi</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\PngComponentsD290.bpl">Png Components for Delphi</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dmvcframeworkRT120.bpl">DMVCFramework - CopyRight (2010-2024) Daniele Teti and the DMVCFramework Team</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dmvcframeworkRT120.bpl">DMVCFramework - CopyRight (2010-2024) Daniele Teti and the DMVCFramework Team</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclunidacfmx290.bpl">Devart Universal Data Access FMX Components</Excluded_Packages>
|
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclunidac290.bpl">Devart Universal Data Access Components</Excluded_Packages>
|
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvAppFrmDesign290.bpl">JVCL Application and Form Components</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvAppFrmDesign290.bpl">JVCL Application and Form Components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvBandsDesign290.bpl">JVCL Band Objects</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvBandsDesign290.bpl">JVCL Band Objects</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvCmpDesign290.bpl">JVCL Non-Visual Components</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvCmpDesign290.bpl">JVCL Non-Visual Components</Excluded_Packages>
|
||||||
@ -280,9 +278,12 @@
|
|||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvTimeFrameworkDesign290.bpl">JVCL Time Framework</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvTimeFrameworkDesign290.bpl">JVCL Time Framework</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvWizardsDesign290.bpl">JVCL Wizard</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvWizardsDesign290.bpl">JVCL Wizard</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvXPCtrlsDesign290.bpl">JVCL XP Controls</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\JvXPCtrlsDesign290.bpl">JVCL XP Controls</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclunidacfmx290.bpl">Devart Universal Data Access FMX Components</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclunidac290.bpl">Devart Universal Data Access Components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclSVGIconImageListFMX290.bpl">Ethea SVGIconImageList FMX components</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclSVGIconImageListFMX290.bpl">Ethea SVGIconImageList FMX components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\Vyvoj12_0.bpl">Helios Orange Components</Excluded_Packages>
|
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dcldxIconLibraryRS29.bpl">Express Cross Platform Library Icon Library by Developer Express Inc.</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dcldxIconLibraryRS29.bpl">Express Cross Platform Library Icon Library by Developer Express Inc.</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\VirtualTreesDD290.bpl">File C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\VirtualTreesDD290.bpl not found</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\Vyvoj12_0.bpl">Helios Orange Components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\LockBox3DR290.bpl">TurboPack LockBox 3 Delphi runtime package</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\LockBox3DR290.bpl">TurboPack LockBox 3 Delphi runtime package</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\dclstd280.bpl">Embarcadero Standard Components</Excluded_Packages>
|
<Excluded_Packages Name="C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\dclstd280.bpl">Embarcadero Standard Components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\OrpheusDBDD290.bpl">TurboPack Orpheus Delphi datataware designtime package</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\OrpheusDBDD290.bpl">TurboPack Orpheus Delphi datataware designtime package</Excluded_Packages>
|
||||||
@ -292,6 +293,8 @@
|
|||||||
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclIconFontsImageListFMX290.bpl">Ethea IconFontsImageList FMX components</Excluded_Packages>
|
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclIconFontsImageListFMX290.bpl">Ethea IconFontsImageList FMX components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLVCLTeeGrid29.bpl">File D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLVCLTeeGrid29.bpl not found</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLFMXTeeGrid29.bpl">File D:\Data\_komponenty\TeeGrid\Compiled\Delphi29.win32\Bin\DCLFMXTeeGrid29.bpl not found</Excluded_Packages>
|
||||||
</Excluded_Packages>
|
</Excluded_Packages>
|
||||||
</Delphi.Personality>
|
</Delphi.Personality>
|
||||||
<Deployment Version="5">
|
<Deployment Version="5">
|
||||||
|
|||||||
BIN
hdcDZApi.res
BIN
hdcDZApi.res
Binary file not shown.
@ -24,6 +24,7 @@ uses
|
|||||||
{$IF DEFINED(CUSTOM_CTRL_Rootvin)}, uSvcCustom {$ENDIF}
|
{$IF DEFINED(CUSTOM_CTRL_Rootvin)}, uSvcCustom {$ENDIF}
|
||||||
{$IF DEFINED(CUSTOM_CTRL_INCOSystems)}, uSvcCustom {$ENDIF}
|
{$IF DEFINED(CUSTOM_CTRL_INCOSystems)}, uSvcCustom {$ENDIF}
|
||||||
{$IF DEFINED(CUSTOM_CTRL_Gornicky)}, uSvcCustom {$ENDIF}
|
{$IF DEFINED(CUSTOM_CTRL_Gornicky)}, uSvcCustom {$ENDIF}
|
||||||
|
{$IF DEFINED(CUSTOM_CTRL_Westra)}, uSvcCustom {$ENDIF}
|
||||||
{$IF DEFINED(CUSTOM_CTRL_EMPolar)}, uSvcCustom {$ENDIF}
|
{$IF DEFINED(CUSTOM_CTRL_EMPolar)}, uSvcCustom {$ENDIF}
|
||||||
{$IF DEFINED(CUSTOM_CTRL_GatemaSD)}, uSvcCustomSDG {$ENDIF}
|
{$IF DEFINED(CUSTOM_CTRL_GatemaSD)}, uSvcCustomSDG {$ENDIF}
|
||||||
;
|
;
|
||||||
@ -87,8 +88,12 @@ type
|
|||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
FGornickyService: TGornickyService;
|
FGornickyService: TGornickyService;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
FWestraService: TWestraService;
|
||||||
|
{$ENDIF}
|
||||||
{$IFDEF CUSTOM_CTRL_EMPolar}
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
FEMPNadobaService: TEMPNadobaService;
|
FEMPNadobaService: TEMPNadobaService;
|
||||||
|
FEMPVytezeniDoklService: TEMPVytezeniDoklService;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
function GetDataModule: TdatMod;
|
function GetDataModule: TdatMod;
|
||||||
strict protected
|
strict protected
|
||||||
@ -148,8 +153,12 @@ type
|
|||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
function GetGornickyService: TGornickyService;
|
function GetGornickyService: TGornickyService;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
function GetWestraService: TWestraService;
|
||||||
|
{$ENDIF}
|
||||||
{$IFDEF CUSTOM_CTRL_EMPolar}
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
function GetEMPNadobaService: TEMPNadobaService;
|
function GetEMPNadobaService: TEMPNadobaService;
|
||||||
|
function GetEMPVytezeniDoklService: TEMPVytezeniDoklService;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
public
|
public
|
||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
@ -267,8 +276,13 @@ uses
|
|||||||
FGornickyService.Free;
|
FGornickyService.Free;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
FWestraService.Free;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_EMPolar}
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
FEMPNadobaService.Free;
|
FEMPNadobaService.Free;
|
||||||
|
FEMPVytezeniDoklService.Free;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
if Assigned(FDM) then
|
if Assigned(FDM) then
|
||||||
@ -630,6 +644,16 @@ uses
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
function TBaseController.GetWestraService: TWestraService;
|
||||||
|
begin
|
||||||
|
if not Assigned(FWestraService) then
|
||||||
|
FWestraService:= TWestraService.Create (GetDataModule);
|
||||||
|
result:= FWestraService;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_EMPolar}
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
function TBaseController.GetEMPNadobaService: TEMPNadobaService;
|
function TBaseController.GetEMPNadobaService: TEMPNadobaService;
|
||||||
begin
|
begin
|
||||||
@ -637,6 +661,13 @@ uses
|
|||||||
FEMPNadobaService:= TEMPNadobaService.Create (GetDataModule);
|
FEMPNadobaService:= TEMPNadobaService.Create (GetDataModule);
|
||||||
result:= FEMPNadobaService;
|
result:= FEMPNadobaService;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TBaseController.GetEMPVytezeniDoklService: TEMPVytezeniDoklService;
|
||||||
|
begin
|
||||||
|
if not Assigned(FEMPVytezeniDoklService) then
|
||||||
|
FEMPVytezeniDoklService:= TEMPVytezeniDoklService.Create (GetDataModule);
|
||||||
|
result:= FEMPVytezeniDoklService;
|
||||||
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -98,7 +98,7 @@ type
|
|||||||
[MVCFromQueryString('sklad', '')] sklad: string='';
|
[MVCFromQueryString('sklad', '')] sklad: string='';
|
||||||
[MVCFromQueryString('od', '')] odDatum: string='';
|
[MVCFromQueryString('od', '')] odDatum: string='';
|
||||||
[MVCFromQueryString('do', '')] doDatum: string='';
|
[MVCFromQueryString('do', '')] doDatum: string='';
|
||||||
[MVCFromQueryString('realizovane', '')] realizovane: string='';
|
[MVCFromQueryString('realizovane', '')] realizovane: string='0';
|
||||||
[MVCFromQueryString('seznam', '0')] jenSeznam: string='';
|
[MVCFromQueryString('seznam', '0')] jenSeznam: string='';
|
||||||
[MVCFromQueryString('minimum', '')] minimumDat: string='';
|
[MVCFromQueryString('minimum', '')] minimumDat: string='';
|
||||||
[MVCFromQueryString('polozky', '1')] polozky: string='';
|
[MVCFromQueryString('polozky', '1')] polozky: string='';
|
||||||
@ -272,7 +272,7 @@ uses
|
|||||||
{ TDokladOZController }
|
{ TDokladOZController }
|
||||||
|
|
||||||
procedure TDokladOZController.GetAll (cisloorg: string=''; druhpohybu: string=''; radadokladu: string=''; sklad: string=''; odDatum: string='';
|
procedure TDokladOZController.GetAll (cisloorg: string=''; druhpohybu: string=''; radadokladu: string=''; sklad: string=''; odDatum: string='';
|
||||||
doDatum: string=''; realizovane: string=''; jenSeznam: string=''; minimumDat: string=''; polozky: string='';
|
doDatum: string=''; realizovane: string='0'; jenSeznam: string=''; minimumDat: string=''; polozky: string='';
|
||||||
sdServer: string='');
|
sdServer: string='');
|
||||||
var iId, iCisOrg, dpz: integer;
|
var iId, iCisOrg, dpz: integer;
|
||||||
params: TDictionary<string, string>;
|
params: TDictionary<string, string>;
|
||||||
|
|||||||
@ -133,10 +133,12 @@ type
|
|||||||
[MVCSwagSummary('V<>roba - v<>robn<62> p<><70>kaz', 'Vr<56>t<EFBFBD> v<>robn<62> p<><70>kaz', 'VyrobniPrikazGetByID')]
|
[MVCSwagSummary('V<>roba - v<>robn<62> p<><70>kaz', 'Vr<56>t<EFBFBD> v<>robn<62> p<><70>kaz', 'VyrobniPrikazGetByID')]
|
||||||
[MVCSwagResponses(200, 'Success', TVyrobniPrikaz)]
|
[MVCSwagResponses(200, 'Success', TVyrobniPrikaz)]
|
||||||
[MVCSwagParam(plPath, 'id', 'ID p<><70>kazu', ptString, false)]
|
[MVCSwagParam(plPath, 'id', 'ID p<><70>kazu', ptString, false)]
|
||||||
|
[MVCSwagParam(plQuery, 'stav', 'P<><50>kazy jen v po<70>adovan<61>m stavu (<28><>seln<6C>, nap<61>. 30=zad<61>no)', ptString, false)]
|
||||||
[MVCSwagParam(plQuery, 'operace', '1=vr<76>t<EFBFBD> seznam v<>robn<62> operace', ptString, false, '0')]
|
[MVCSwagParam(plQuery, 'operace', '1=vr<76>t<EFBFBD> seznam v<>robn<62> operace', ptString, false, '0')]
|
||||||
[MVCSwagParam(plQuery, 'material', '1=vr<76>t<EFBFBD> seznam materi<72>lov<6F>ch po<70>adavk<76>', ptString, false, '0')]
|
[MVCSwagParam(plQuery, 'material', '1=vr<76>t<EFBFBD> seznam materi<72>lov<6F>ch po<70>adavk<76>', ptString, false, '0')]
|
||||||
[MVCSwagParam(plQuery, 'debug', '1=zapise SQL query do log souboru', ptString, false, '0')]
|
[MVCSwagParam(plQuery, 'debug', '1=zapise SQL query do log souboru', ptString, false, '0')]
|
||||||
procedure GetByID (id: string='0';
|
procedure GetByID (id: string='0';
|
||||||
|
[MVCFromQueryString('stav', '')] stav: string='';
|
||||||
[MVCFromQueryString('operace', '0')] operace: string='';
|
[MVCFromQueryString('operace', '0')] operace: string='';
|
||||||
[MVCFromQueryString('material', '0')] material: string='';
|
[MVCFromQueryString('material', '0')] material: string='';
|
||||||
[MVCFromQueryString('debug', '0')] debug: string=''
|
[MVCFromQueryString('debug', '0')] debug: string=''
|
||||||
@ -1074,6 +1076,9 @@ uses
|
|||||||
if (debug='1') then
|
if (debug='1') then
|
||||||
params.Add('debug', debug);
|
params.Add('debug', debug);
|
||||||
|
|
||||||
|
stav:= sanitizeSQLString(stav);
|
||||||
|
if (stav='10') or (stav='20') or (stav='30') or (stav='40') or (stav='50') or (stav='60') then
|
||||||
|
params.Add('stav', stav);
|
||||||
|
|
||||||
|
|
||||||
radaVPr:= sanitizeSQLString (radaVPr);
|
radaVPr:= sanitizeSQLString (radaVPr);
|
||||||
@ -1168,7 +1173,7 @@ uses
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure TVyrobniPrikazController.GetByID (id: string='0'; operace: string=''; material: string=''; debug: string='');
|
procedure TVyrobniPrikazController.GetByID (id: string='0'; stav: string=''; operace: string=''; material: string=''; debug: string='');
|
||||||
var iId: integer;
|
var iId: integer;
|
||||||
params: TDictionary<string,string>;
|
params: TDictionary<string,string>;
|
||||||
begin
|
begin
|
||||||
@ -1180,6 +1185,10 @@ uses
|
|||||||
if not(TryStrToInt(id, iId)) then
|
if not(TryStrToInt(id, iId)) then
|
||||||
iId:= 0;
|
iId:= 0;
|
||||||
|
|
||||||
|
stav:= sanitizeSQLString(stav);
|
||||||
|
if (stav='10') or (stav='20') or (stav='30') or (stav='40') or (stav='50') or (stav='60') then
|
||||||
|
params.Add('stav', stav);
|
||||||
|
|
||||||
operace:= sanitizeSQLString(operace);
|
operace:= sanitizeSQLString(operace);
|
||||||
if (operace='1') then
|
if (operace='1') then
|
||||||
params.Add('operace', '1');
|
params.Add('operace', '1');
|
||||||
|
|||||||
@ -503,6 +503,8 @@ type
|
|||||||
FMena, FMJ, FMJEvidence: NullableString;
|
FMena, FMJ, FMJEvidence: NullableString;
|
||||||
FMnozstvi: Extended;
|
FMnozstvi: Extended;
|
||||||
FKurz: Extended;
|
FKurz: Extended;
|
||||||
|
FIDOldPolozka: NullableInt32;
|
||||||
|
FIDOldDoklad: NullableInt32;
|
||||||
FIDPrikaz: NullableInt32;
|
FIDPrikaz: NullableInt32;
|
||||||
FTypVyrobnihoDokladu: NullableInt32;
|
FTypVyrobnihoDokladu: NullableInt32;
|
||||||
FUmisteni: TUmisteni;
|
FUmisteni: TUmisteni;
|
||||||
@ -614,6 +616,14 @@ type
|
|||||||
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID zdrojov<6F>ho v<>robn<62>ho p<><70>kazu', false, true)]
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'ID zdrojov<6F>ho v<>robn<62>ho p<><70>kazu', false, true)]
|
||||||
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
property IDPrikaz: NullableInt32 read FIDPrikaz write FIDPrikaz;
|
||||||
|
|
||||||
|
[MVCColumn('IDOldDoklad')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDOldDoklad', 'ID p<>vodn<64>ho dokladu', false, true)]
|
||||||
|
property IDOldDoklad: NullableInt32 read FIDOldDoklad write FIDOldDoklad;
|
||||||
|
|
||||||
|
[MVCColumn('IDOldPolozka')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDOldPolozka', 'ID p<>vodn<64> polo<6C>ky', false, true)]
|
||||||
|
property IDOldPolozka: NullableInt32 read FIDOldPolozka write FIDOldPolozka;
|
||||||
|
|
||||||
[MVCColumn('TypVyrobnihoDokladu')]
|
[MVCColumn('TypVyrobnihoDokladu')]
|
||||||
[MVCSwagJsonSchemaField(stInteger, 'TypVyrobnihoDokladu', 'Typ v<>robn<62>ho dokladu - 0=odv<64>d<EFBFBD>n<EFBFBD> v<>robku, 1=v<>dej materi<72>lu, ', false, true)]
|
[MVCSwagJsonSchemaField(stInteger, 'TypVyrobnihoDokladu', 'Typ v<>robn<62>ho dokladu - 0=odv<64>d<EFBFBD>n<EFBFBD> v<>robku, 1=v<>dej materi<72>lu, ', false, true)]
|
||||||
property TypVyrobnihoDokladu: NullableInt32 read FTypVyrobnihoDokladu write FTypVyrobnihoDokladu;
|
property TypVyrobnihoDokladu: NullableInt32 read FTypVyrobnihoDokladu write FTypVyrobnihoDokladu;
|
||||||
|
|||||||
@ -1364,7 +1364,7 @@ type
|
|||||||
[MVCTable('TabEvidRozpracOperR')]
|
[MVCTable('TabEvidRozpracOperR')]
|
||||||
TEvidRozpracOperaceOperace = class(THeliosObjekty)
|
TEvidRozpracOperaceOperace = class(THeliosObjekty)
|
||||||
private
|
private
|
||||||
FIDEvidRozpraceOper: integer;
|
FIDEvidRozpracOper: integer;
|
||||||
FIDPrikaz: integer;
|
FIDPrikaz: integer;
|
||||||
FNazevDilce: NullableString;
|
FNazevDilce: NullableString;
|
||||||
FSkupZboDilce: NullableString;
|
FSkupZboDilce: NullableString;
|
||||||
@ -1372,6 +1372,7 @@ type
|
|||||||
FDokladPrPostup: integer;
|
FDokladPrPostup: integer;
|
||||||
FAltPrPostup: char;
|
FAltPrPostup: char;
|
||||||
FNazevOperace: NullableString;
|
FNazevOperace: NullableString;
|
||||||
|
FOperace: string;
|
||||||
FIDSdruzVyrOperaceR: NullableInt32;
|
FIDSdruzVyrOperaceR: NullableInt32;
|
||||||
FIDVyrCis: NullableInt32;
|
FIDVyrCis: NullableInt32;
|
||||||
FTypEvidMnoz: NullableInt16;
|
FTypEvidMnoz: NullableInt16;
|
||||||
@ -1382,12 +1383,18 @@ type
|
|||||||
FSk_cas_Obsluhy_T: byte;
|
FSk_cas_Obsluhy_T: byte;
|
||||||
FPoznamka: NullableString;
|
FPoznamka: NullableString;
|
||||||
FJeSdruzenaOper: boolean;
|
FJeSdruzenaOper: boolean;
|
||||||
|
FOdvadeci: boolean;
|
||||||
|
{$IFDEF CUSTOM_CTRL_INCOSystems}
|
||||||
|
FMamNeuzavrenePredchozi: boolean;
|
||||||
|
{$ENDIF}
|
||||||
protected
|
protected
|
||||||
procedure OnAfterLoad; override;
|
procedure OnAfterLoad; override;
|
||||||
public
|
public
|
||||||
[MVCColumn('IDEvidRozpraceOper')]
|
constructor Create; virtual;
|
||||||
[MVCSwagJsonSchemaField(stInteger, 'IDEvidRozpraceOper', 'Intern<72> ID evidence rozpracovan<61>ch operac<61>', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
|
||||||
property IDEvidRozpraceOper: integer read FIDEvidRozpraceOper write FIDEvidRozpraceOper;
|
[MVCColumn('IDEvidRozpracOper')]
|
||||||
|
[MVCSwagJsonSchemaField(stInteger, 'IDEvidRozpracOper', 'Intern<72> ID evidence rozpracovan<61>ch operac<61>', true, false)] // typ, sysName, nazev, required, nullable, minLength, maxLength
|
||||||
|
property IDEvidRozpracOper: integer read FIDEvidRozpracOper write FIDEvidRozpracOper;
|
||||||
|
|
||||||
[MVCColumn('IDPrikaz')]
|
[MVCColumn('IDPrikaz')]
|
||||||
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'Intern<72> ID v<>robn<62>ho p<><70>kazu', true, false)]
|
[MVCSwagJsonSchemaField(stInteger, 'IDPrikaz', 'Intern<72> ID v<>robn<62>ho p<><70>kazu', true, false)]
|
||||||
@ -1448,6 +1455,20 @@ type
|
|||||||
[MVCColumn('RegCisDilce')]
|
[MVCColumn('RegCisDilce')]
|
||||||
[MVCSwagJsonSchemaField(stString, 'RegCisDilce', 'Registracni cislo vyr<79>b<EFBFBD>n<EFBFBD>ho d<>lce', false, true, 0, 30)]
|
[MVCSwagJsonSchemaField(stString, 'RegCisDilce', 'Registracni cislo vyr<79>b<EFBFBD>n<EFBFBD>ho d<>lce', false, true, 0, 30)]
|
||||||
property RegCisDilce: NullableString read FRegCisDilce write FRegCisDilce;
|
property RegCisDilce: NullableString read FRegCisDilce write FRegCisDilce;
|
||||||
|
|
||||||
|
[MVColumn('Odvadeci')]
|
||||||
|
[MVCSwagJsonSchemaField(stBoolean, 'Odvadeci', 'Odv<64>d<EFBFBD>c<EFBFBD> operace', true, false)]
|
||||||
|
property Odvadeci: boolean read FOdvadeci write FOdvadeci;
|
||||||
|
|
||||||
|
[MVColumn('Operace')]
|
||||||
|
[MVCSwagJsonSchemaField(stString, 'Operace', 'Operace', false, true, 0, 4)]
|
||||||
|
property Operace: string read FOperace write FOperace;
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_INCOSystems}
|
||||||
|
[MVCColumn('MamNeuzavrenePredchozi')]
|
||||||
|
[MVCSwagJsonSchemaField(stBoolean, 'MamNeuzavrenePredchozi', 'Existuj<75> neuzav<61>en<65> rozpracovan<61> evidence operace dan<61>ho p<><70>kazu s ni<6E><69><EFBFBD>m <20><>slem operace', true, false)]
|
||||||
|
property MamNeuzavrenePredchozi: boolean read FMamNeuzavrenePredchozi write FMamNeuzavrenePredchozi;
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -2325,6 +2346,17 @@ uses
|
|||||||
|
|
||||||
{ TEvidRozpracOperaceOperace }
|
{ TEvidRozpracOperaceOperace }
|
||||||
|
|
||||||
|
constructor TEvidRozpracOperaceOperace.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FOdvadeci:= false;
|
||||||
|
FOperace:= '';
|
||||||
|
{$IFDEF CUSTOM_CTRL_INCOSystems}
|
||||||
|
FMamNeuzavrenePredchozi:= false;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TEvidRozpracOperaceOperace.OnAfterLoad;
|
procedure TEvidRozpracOperaceOperace.OnAfterLoad;
|
||||||
begin
|
begin
|
||||||
FJeSdruzenaOper:= FIDSdruzVyrOperaceR.IsNull;
|
FJeSdruzenaOper:= FIDSdruzVyrOperaceR.IsNull;
|
||||||
|
|||||||
@ -254,7 +254,7 @@ uses
|
|||||||
lQry.Open (lSQL, [AID]);
|
lQry.Open (lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
begin
|
begin
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
{$IFDEF CUSTOM_CTRL_Rootvin}
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
if (SQLColumnExists('dbo', tblKZe, rtnASOLTrideni)) then
|
if (SQLColumnExists('dbo', tblKZe, rtnASOLTrideni)) then
|
||||||
if not(lQry.FieldByName(rtnASOLTrideni).IsNull) then
|
if not(lQry.FieldByName(rtnASOLTrideni).IsNull) then
|
||||||
|
|||||||
@ -358,7 +358,7 @@ uses
|
|||||||
try
|
try
|
||||||
lQry.Open(lSQL, [AID]);
|
lQry.Open(lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
@ -495,7 +495,7 @@ uses
|
|||||||
try
|
try
|
||||||
lQry.Open(lSQL, [idPlanKal]);
|
lQry.Open(lSQL, [idPlanKal]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -398,8 +398,11 @@ uses
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
if (params.ContainsKey('')) then
|
if (params.ContainsKey('jenRealizovane')) then
|
||||||
if (params.Items['jenRealizovane']<>'1') then
|
if (params.Items['jenRealizovane']='1') then
|
||||||
|
where:= where + IfThen(where<>'', ' AND ', '') + 'DatRealizace IS NOT NULL';
|
||||||
|
if (params.ContainsKey('jenReal')) then
|
||||||
|
if (params.Items['jenReal']='1') then
|
||||||
where:= where + IfThen(where<>'', ' AND ', '') + 'DatRealizace IS NOT NULL';
|
where:= where + IfThen(where<>'', ' AND ', '') + 'DatRealizace IS NOT NULL';
|
||||||
|
|
||||||
|
|
||||||
@ -487,7 +490,7 @@ uses
|
|||||||
try
|
try
|
||||||
lQry.Open(lSQL, [AID]);
|
lQry.Open(lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
@ -709,7 +712,7 @@ uses
|
|||||||
{$IFDEF CUSTOM_CTRL_Rootvin}
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
silo:= lQry.FieldByName('_Mouka_Silo').AsString;
|
silo:= lQry.FieldByName('_Mouka_Silo').AsString;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
end;
|
end;
|
||||||
@ -1084,15 +1087,15 @@ uses
|
|||||||
lSQL:= lSQL.Replace('main.', '');
|
lSQL:= lSQL.Replace('main.', '');
|
||||||
|
|
||||||
|
|
||||||
|
sqlConnX:= TFDConnection.Create(nil);
|
||||||
|
sqlConnX.ConnectionDefName:= sqlPoolName;
|
||||||
|
lQry:= TFDQuery.Create(nil);
|
||||||
|
|
||||||
|
|
||||||
{$IF DEFINED(CUSTOM_CTRL_Rootvin) or DEFINED(CUSTOM_CTRL_GatemaSD)}
|
{$IF DEFINED(CUSTOM_CTRL_Rootvin) or DEFINED(CUSTOM_CTRL_GatemaSD)}
|
||||||
// test zda polozky pochazi z SD serveru
|
// test zda polozky pochazi z SD serveru
|
||||||
if (idPZ>0) or (sdServer) then
|
if (idPZ>0) or (sdServer) then
|
||||||
begin
|
begin
|
||||||
sqlConnX:= TFDConnection.Create(nil);
|
|
||||||
sqlConnX.ConnectionDefName:= sqlPoolName;
|
|
||||||
|
|
||||||
lQry:= TFDQuery.Create(nil);
|
|
||||||
try
|
try
|
||||||
lQry.FetchOptions.Mode:= fmAll;
|
lQry.FetchOptions.Mode:= fmAll;
|
||||||
lQry.Connection:= sqlConnX;
|
lQry.Connection:= sqlConnX;
|
||||||
@ -1101,22 +1104,15 @@ uses
|
|||||||
lSQL2:= lSQL2 + ' ORDER BY p.ID';
|
lSQL2:= lSQL2 + ' ORDER BY p.ID';
|
||||||
lQry.Open(lSQL2);
|
lQry.Open(lSQL2);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
lSQL:= lSQL2.Replace(' 1 AS A ', ' p.ID, p.IDPohZbo_New AS IDPolozkaDokladu, 0 AS IDVyrCis, p.VyrCislo AS VyrCis, p.PopisSarze AS Nazev, p.Mnozstvi, p.MnozstviEvidence AS MnozstviEvid'
|
lSQL:= lSQL2.Replace(' 1 AS A ', ' 1000000000+p.ID AS ID, p.IDPohZbo_New AS IDPolozkaDokladu, 0 AS IDVyrCis, p.VyrCislo AS VyrCis, p.PopisSarze AS Nazev, p.Mnozstvi'
|
||||||
+ ', p.DatPorizeni AS DatVstup, p.DatumExpirace AS DatExpirace, 1 AS ZdrojSD, h.ID AS IDDokladGSD ');
|
+ ', p.MnozstviEvidence AS MnozstviEvid, p.DatPorizeni AS DatVstup, p.DatumExpirace AS DatExpirace, 1 AS ZdrojSD, h.ID AS IDDokladGSD ');
|
||||||
|
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
sqlConnX.Close;
|
|
||||||
sqlConnX.Free;
|
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
sqlConnX:= TFDConnection.Create(nil);
|
|
||||||
sqlConnX.ConnectionDefName:= sqlPoolName;
|
|
||||||
lQry:= TFDQuery.Create(nil);
|
|
||||||
try
|
try
|
||||||
lQry.FetchOptions.Mode:= fmAll;
|
lQry.FetchOptions.Mode:= fmAll;
|
||||||
lQry.Connection:= sqlConnX;
|
lQry.Connection:= sqlConnX;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
unit uSvc_Vyroba;
|
unit uSvc_Vyroba;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
{$I 'GlobalDefs.inc'}
|
{$I 'GlobalDefs.inc'}
|
||||||
@ -56,25 +56,33 @@ const
|
|||||||
+ '(SELECT TOP(1) pracoviste FROM ' + tblCPrac + ' WHERE ID=main.IDPracoviste) AS KodPracoviste,'
|
+ '(SELECT TOP(1) pracoviste FROM ' + tblCPrac + ' WHERE ID=main.IDPracoviste) AS KodPracoviste,'
|
||||||
+ '(SELECT TOP(1) Nazev FROM ' + tblCPrac + ' WHERE ID=main.IDPracoviste) AS NazevPracoviste';
|
+ '(SELECT TOP(1) Nazev FROM ' + tblCPrac + ' WHERE ID=main.IDPracoviste) AS NazevPracoviste';
|
||||||
|
|
||||||
selNazevOperaceEvidROpR = '(SELECT TOP(1) Nazev FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND Doklad=main.DokladPrPostup AND Alt=main.AltPrPostup'
|
selNazevOperaceEvidROpR = '(SELECT TOP(1) Nazev FROM ' + tblPrPost + ' WITH(NOLOCK) WHERE IDOdchylkyDo IS NULL AND Doklad=main.DokladPrPostup AND Alt=main.AltPrPostup'
|
||||||
+ ' AND IDPrikaz=main.IDPrikaz /*AND Priorita=0*/ ) AS NazevOperace, (SELECT TOP(1) k.Nazev1 FROM ' + tblPrikaz + ' p INNER JOIN '
|
+ ' AND IDPrikaz=main.IDPrikaz /*AND Priorita=0*/ ) AS NazevOperace, (SELECT TOP(1) k.Nazev1 FROM ' + tblPrikaz + ' p JOIN '
|
||||||
+ tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=main.IDPrikaz) AS Nazev1Dilce, (SELECT TOP(1) k.SkupZbo FROM ' + tblPrikaz + ' p INNER JOIN '
|
+ tblKZ + ' k WITH(NOLOCK) ON (k.ID=p.IDTabKmen) WHERE p.ID=main.IDPrikaz) AS Nazev1Dilce, (SELECT TOP(1) k.SkupZbo FROM ' + tblPrikaz + ' p JOIN '
|
||||||
+ tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=main.IDPrikaz) AS SkupZboDilce, (SELECT TOP(1) k.RegCis FROM ' + tblPrikaz + ' p INNER JOIN '
|
+ tblKZ + ' k WITH(NOLOCK) ON (k.ID=p.IDTabKmen) WHERE p.ID=main.IDPrikaz) AS SkupZboDilce, (SELECT TOP(1) k.RegCis FROM ' + tblPrikaz + ' p JOIN '
|
||||||
+ tblKZ + ' k ON (k.ID=p.IDTabKmen) WHERE p.ID=main.IDPrikaz) AS RegCisDilce';
|
+ tblKZ + ' k WITH(NOLOCK) ON (k.ID=p.IDTabKmen) WHERE p.ID=main.IDPrikaz) AS RegCisDilce'
|
||||||
|
+ ', CONVERT(bit, ISNULL( (SELECT Odvadeci FROM ' + tblPrPost + ' WITH(NOLOCK) WHERE IDOdchylkyDo IS NULL AND Doklad=main.DokladPrPostup'
|
||||||
|
+ ' AND Alt=main.AltPrPostup AND IDPrikaz=main.IDPrikaz), 0)) AS Odvadeci'
|
||||||
|
+ ', ISNULL( (SELECT Operace FROM ' + tblPrPost + ' WITH(NOLOCK) WHERE IDOdchylkyDo IS NULL AND Doklad=main.DokladPrPostup'
|
||||||
|
+ ' AND Alt=main.AltPrPostup AND IDPrikaz=main.IDPrikaz), N'''') AS Operace'
|
||||||
|
{$IFDEF CUSTOM_CTRL_INCOSystems}
|
||||||
|
+ ', dbo.ef_Vyroba_EvidROpR_MamNeuzavrenouPredchozi (main.IDPrikaz, main.DokladPrPostup, main.AltPrPostup) AS MamNeuzavrenePredchozi'
|
||||||
|
{$ENDIF}
|
||||||
|
;
|
||||||
|
|
||||||
selOperaceSpec = '(SELECT COUNT(ID) FROM ' + tblKPLHlav + ' WHERE DruhDokladu=5 AND IDOperace=TabPrPostup.ID) AS PocetKP'
|
selOperaceSpec = '(SELECT COUNT(ID) FROM ' + tblKPLHlav + ' WITH(NOLOCK) WHERE DruhDokladu=5 AND IDOperace=TabPrPostup.ID) AS PocetKP'
|
||||||
+ ', TabPrPostup.Kusy_zad AS _info_Kusy_zad, TabPrPostup.Kusy_nepotrebne AS _info_Kusy_nepotrebne, TabPrPostup.Kusy_pozadovane AS _info_Kusy_pozadovane'
|
+ ', TabPrPostup.Kusy_zad AS _info_Kusy_zad, TabPrPostup.Kusy_nepotrebne AS _info_Kusy_nepotrebne, TabPrPostup.Kusy_pozadovane AS _info_Kusy_pozadovane'
|
||||||
+ ', TabPrPostup.ProcSplneni AS _info_ProcSplneni, TabPrPostup.Kusy_zive AS _info_Kusy_zive, TabPrPostup.Kusy_odv AS _info_Kusy_odv'
|
+ ', TabPrPostup.ProcSplneni AS _info_ProcSplneni, TabPrPostup.Kusy_zive AS _info_Kusy_zive, TabPrPostup.Kusy_odv AS _info_Kusy_odv'
|
||||||
+ ', TabPrPostup.Kusy_zmet AS _info_Kusy_zmet, TabPrPostup.Kusy_zmet_opr_IO AS _info_Kusy_zmet_opr_IO, TabPrPostup.Kusy_zmet_neopr AS _info_Kusy_zmet_neopr'
|
+ ', TabPrPostup.Kusy_zmet AS _info_Kusy_zmet, TabPrPostup.Kusy_zmet_opr_IO AS _info_Kusy_zmet_opr_IO, TabPrPostup.Kusy_zmet_neopr AS _info_Kusy_zmet_neopr'
|
||||||
+ ', (SELECT s.Nazev FROM ' + tblCisStroj + ' s WHERE s.ID=main.IDStroje) AS StrojNazev, (SELECT s.Kod FROM ' + tblCisStroj + ' s WHERE s.ID=main.IDStroje) AS StrojKod';
|
+ ', (SELECT s.Nazev FROM ' + tblCisStroj + ' s WITH(NOLOCK) WHERE s.ID=main.IDStroje) AS StrojNazev, (SELECT s.Kod FROM ' + tblCisStroj + ' s WHERE s.ID=main.IDStroje) AS StrojKod';
|
||||||
|
|
||||||
|
|
||||||
selPolKoopObjSpec = '';
|
selPolKoopObjSpec = '';
|
||||||
|
|
||||||
selVyrCisPrikazSpec = '';
|
selVyrCisPrikazSpec = '';
|
||||||
|
|
||||||
selEvidOperace = '(SELECT IDEvidRozpracOper FROM ' + tblRozpracOperR + ' WHERE ID=main.IDEvidRozpracOperR) AS IDEvidRozpracOper'
|
selEvidOperace = '(SELECT IDEvidRozpracOper FROM ' + tblRozpracOperR + ' WITH(NOLOCK) WHERE ID=main.IDEvidRozpracOperR) AS IDEvidRozpracOper'
|
||||||
+ ', (SELECT nazev FROM ' + tblPrPost + ' WHERE IDPrikaz=main.IDPrikaz AND Doklad=main.DokladPrPostup AND Alt=main.AltPrPostup AND IDOdchylkyDo IS NULL) AS NazevOperace';
|
+ ', (SELECT nazev FROM ' + tblPrPost + ' WITH(NOLOCK) WHERE IDPrikaz=main.IDPrikaz AND Doklad=main.DokladPrPostup AND Alt=main.AltPrPostup AND IDOdchylkyDo IS NULL) AS NazevOperace';
|
||||||
|
|
||||||
selTPVStroj = 'p.pracoviste';
|
selTPVStroj = 'p.pracoviste';
|
||||||
|
|
||||||
@ -810,8 +818,8 @@ uses
|
|||||||
{ TVyrobniPrikazService }
|
{ TVyrobniPrikazService }
|
||||||
|
|
||||||
function TVyrobniPrikazService.GetByID (const AID: integer; params: TDictionary<string,string>=nil): TVyrobniPrikaz;
|
function TVyrobniPrikazService.GetByID (const AID: integer; params: TDictionary<string,string>=nil): TVyrobniPrikaz;
|
||||||
var lSQL, strTemp: string;
|
var lSQL, strTemp, stav: string;
|
||||||
id, rNum: integer;
|
id, rNum, iStav: integer;
|
||||||
p: TDictionary<string, string>;
|
p: TDictionary<string, string>;
|
||||||
debug, stopDebug, operace, material: boolean;
|
debug, stopDebug, operace, material: boolean;
|
||||||
lOper: TObjectList<TVyrobniOperace>;
|
lOper: TObjectList<TVyrobniOperace>;
|
||||||
@ -847,7 +855,7 @@ uses
|
|||||||
lQry.Connection:= sqlConnX;
|
lQry.Connection:= sqlConnX;
|
||||||
lQry.Open(lSQL, [AID]);
|
lQry.Open(lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
@ -858,8 +866,13 @@ uses
|
|||||||
material:= false;
|
material:= false;
|
||||||
debug:= false;
|
debug:= false;
|
||||||
stopDebug:= false;
|
stopDebug:= false;
|
||||||
|
stav:= '';
|
||||||
|
|
||||||
if (params<>nil) then
|
if (params<>nil) then
|
||||||
begin
|
begin
|
||||||
|
if (params.ContainsKey('stav')) then
|
||||||
|
if (params.Items['stav']<>'') then
|
||||||
|
stav:= params.Items['stav'];
|
||||||
if (params.ContainsKey('operace')) then
|
if (params.ContainsKey('operace')) then
|
||||||
if (params.Items['operace']='1') then
|
if (params.Items['operace']='1') then
|
||||||
operace:= true;
|
operace:= true;
|
||||||
@ -879,6 +892,13 @@ uses
|
|||||||
lSQL:= 'SELECT ' + GetTabCols('', tblVPr, 'main', false) + IfThen(selPrikazSpec<>'', ',' + selPrikazSpec, '') + ' FROM ' + tblVPr + ' main'
|
lSQL:= 'SELECT ' + GetTabCols('', tblVPr, 'main', false) + IfThen(selPrikazSpec<>'', ',' + selPrikazSpec, '') + ' FROM ' + tblVPr + ' main'
|
||||||
+ ' INNER JOIN ' + tblKZ + ' kz ON (kz.ID=main.IDTabKmen) LEFT JOIN ' + tblZak + ' zak ON (zak.ID=main.IDZakazka)'
|
+ ' INNER JOIN ' + tblKZ + ' kz ON (kz.ID=main.IDTabKmen) LEFT JOIN ' + tblZak + ' zak ON (zak.ID=main.IDZakazka)'
|
||||||
+ ' LEFT JOIN ' + tblZakazModif + ' zmod ON (zmod.ID=main.IDZakazModif) WHERE main.ID=:ID';
|
+ ' LEFT JOIN ' + tblZakazModif + ' zmod ON (zmod.ID=main.IDZakazModif) WHERE main.ID=:ID';
|
||||||
|
if (stav<>'') then
|
||||||
|
begin
|
||||||
|
if not(TryStrToInt(stav, iStav)) then
|
||||||
|
iStav:= 0;
|
||||||
|
if (iStav>0) then
|
||||||
|
lSQL:= lSQL + ' AND main.StavPrikazu=' + iStav.ToString;
|
||||||
|
end;
|
||||||
if (selPrikazSpec='') then
|
if (selPrikazSpec='') then
|
||||||
lSQL:= lSQL.Replace('TabPrikaz.', 'main.');
|
lSQL:= lSQL.Replace('TabPrikaz.', 'main.');
|
||||||
|
|
||||||
@ -1596,7 +1616,7 @@ uses
|
|||||||
lQry.Connection:= sqlConnX;
|
lQry.Connection:= sqlConnX;
|
||||||
lQry.Open(lSQL, [AID]);
|
lQry.Open(lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
@ -2262,7 +2282,7 @@ uses
|
|||||||
try
|
try
|
||||||
lQry.Open(lSQL, [AID]);
|
lQry.Open(lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -165,7 +165,7 @@ uses
|
|||||||
lQry.Connection:= sqlConnX;
|
lQry.Connection:= sqlConnX;
|
||||||
lQry.Open(lSQL, [AID]);
|
lQry.Open(lSQL, [AID]);
|
||||||
if (lQry.RecordCount>0) then
|
if (lQry.RecordCount>0) then
|
||||||
extInfoStr:= lQry.AsJSONObjectString;
|
extInfoStr:= lQry.AsJSONObject;
|
||||||
finally
|
finally
|
||||||
lQry.Free;
|
lQry.Free;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -18,6 +18,8 @@ uses
|
|||||||
{$IF DEFINED(CUSTOM_CTRL_Rootvin)
|
{$IF DEFINED(CUSTOM_CTRL_Rootvin)
|
||||||
OR DEFINED(CUSTOM_CTRL_INCOSystems)
|
OR DEFINED(CUSTOM_CTRL_INCOSystems)
|
||||||
OR DEFINED(CUSTOM_CTRL_EMPolar)
|
OR DEFINED(CUSTOM_CTRL_EMPolar)
|
||||||
|
OR DEFINED(CUSTOM_CTRL_Koramex)
|
||||||
|
OR DEFINED(CUSTOM_CTRL_Westra)
|
||||||
OR DEFINED(CUSTOM_CTRL_Gornicky)}
|
OR DEFINED(CUSTOM_CTRL_Gornicky)}
|
||||||
,uCtrlCustom
|
,uCtrlCustom
|
||||||
{$UNDEF CUSTOM_CTRL_GatemaSD}
|
{$UNDEF CUSTOM_CTRL_GatemaSD}
|
||||||
@ -303,6 +305,10 @@ procedure TWebModule1.WebModuleCreate (Sender: TObject);
|
|||||||
{$I '_custom/Gornicky/uWebModCustom.inc'}
|
{$I '_custom/Gornicky/uWebModCustom.inc'}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I '_custom/Westra/uWebModCustom.inc'}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_EMPolar}
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
{$I '_custom/EMPolar/uWebModCustom.inc'}
|
{$I '_custom/EMPolar/uWebModCustom.inc'}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|||||||
266
uWinService.pas
266
uWinService.pas
@ -7,7 +7,7 @@ uses
|
|||||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.SvcMgr,
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.SvcMgr,
|
||||||
Vcl.Dialogs, Winapi.ShellAPI, Winapi.ActiveX, IdHTTPWebBrokerBridge, Xml.XmlIntf, Xml.xmldom, Xml.XMLDoc, JsonDataObjects,
|
Vcl.Dialogs, Winapi.ShellAPI, Winapi.ActiveX, IdHTTPWebBrokerBridge, Xml.XmlIntf, Xml.xmldom, Xml.XMLDoc, JsonDataObjects,
|
||||||
System.IOUtils, System.SyncObjs, IdBaseComponent, IdComponent, IdServerIOHandler, IdSSL, IdHTTP, IdURI,
|
System.IOUtils, System.SyncObjs, IdBaseComponent, IdComponent, IdServerIOHandler, IdSSL, IdHTTP, IdURI,
|
||||||
IdSSLOpenSSL, IdSSLOpenSSLHeaders, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
|
IdSSLOpenSSL, IdSSLOpenSSLHeaders, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdException, IdStack,
|
||||||
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
|
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
|
||||||
FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
|
FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
|
||||||
FireDAC.Stan.Async, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
|
FireDAC.Stan.Async, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
|
||||||
@ -17,6 +17,12 @@ uses
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
{$I ./_custom/Gornicky/winSvc/usesTop.inc}
|
{$I ./_custom/Gornicky/winSvc/usesTop.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/usesTop.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/usesTop.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
flcCipher, Quick.Logger, Quick.Threads, Quick.Logger.Provider.Files;
|
flcCipher, Quick.Logger, Quick.Threads, Quick.Logger.Provider.Files;
|
||||||
|
|
||||||
@ -67,6 +73,10 @@ const
|
|||||||
{$I ./_custom/Gornicky/winSvc/consts.inc}
|
{$I ./_custom/Gornicky/winSvc/consts.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/consts.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
uqLicMutex = '{77567050-19D8-45EB-B32A-B431079E45AD}';
|
uqLicMutex = '{77567050-19D8-45EB-B32A-B431079E45AD}';
|
||||||
MY_MSG_SERVICE_CONTROL = 1;
|
MY_MSG_SERVICE_CONTROL = 1;
|
||||||
@ -93,8 +103,8 @@ const
|
|||||||
|
|
||||||
type
|
type
|
||||||
TSSLEventHandlers = class
|
TSSLEventHandlers = class
|
||||||
procedure OnGetSSLPassword(var APassword: {$IF CompilerVersion < 27}AnsiString{$ELSE}string{$ENDIF});
|
procedure OnGetSSLPassword (var APassword: {$IF CompilerVersion < 27}AnsiString{$ELSE}string{$ENDIF});
|
||||||
procedure OnQuerySSLPort(APort: Word; var VUseSSL: boolean);
|
procedure OnQuerySSLPort (APort: Word; var VUseSSL: boolean);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -102,6 +112,17 @@ const
|
|||||||
{$I ./_custom/Gornicky/winSvc/types.inc}
|
{$I ./_custom/Gornicky/winSvc/types.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/types.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/types.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/types.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
THeoZpracujJSONThread = class(TThread)
|
THeoZpracujJSONThread = class(TThread)
|
||||||
private
|
private
|
||||||
@ -188,6 +209,15 @@ const
|
|||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
{$I ./_custom/Gornicky/winSvc/mainPrivs.inc}
|
{$I ./_custom/Gornicky/winSvc/mainPrivs.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/mainPrivs.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/mainPrivs.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/mainPrivs.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF OMNIThreadLib}
|
{$IFDEF OMNIThreadLib}
|
||||||
tskLicKontrola: IOmniTaskControl;
|
tskLicKontrola: IOmniTaskControl;
|
||||||
@ -279,16 +309,36 @@ var
|
|||||||
{$I ./_custom/Gornicky/winSvc/vars.inc}
|
{$I ./_custom/Gornicky/winSvc/vars.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/vars.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/vars.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/vars.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses
|
uses
|
||||||
System.StrUtils, System.Win.Registry, System.Variants, IdContext, System.Generics.Collections, System.DateUtils,
|
System.StrUtils, System.Win.Registry, System.Variants, IdContext, System.Generics.Collections, System.DateUtils,
|
||||||
|
Winapi.WinSvc,
|
||||||
Web.WebReq, System.Hash, MVCFramework.Commons, MVCFramework.Logger,
|
Web.WebReq, System.Hash, MVCFramework.Commons, MVCFramework.Logger,
|
||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
{$I ./_custom/Gornicky/winSvc/uses.inc}
|
{$I ./_custom/Gornicky/winSvc/uses.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/uses.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/uses.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/uses.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
helTabsBIDs,
|
helTabsBIDs,
|
||||||
uWebMod, uDataMod;
|
uWebMod, uDataMod;
|
||||||
@ -344,6 +394,17 @@ uses
|
|||||||
{$I ./_custom/Gornicky/winSvc/impl.inc}
|
{$I ./_custom/Gornicky/winSvc/impl.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/impl.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/impl.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/impl.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -452,7 +513,7 @@ uses
|
|||||||
|
|
||||||
if (sqlConnX.Connected) then
|
if (sqlConnX.Connected) then
|
||||||
begin
|
begin
|
||||||
lSQL:= 'SELECT d.ID FROM ' + tblPrijataJsonData + ' d WHERE d.Blokovano=0 AND d.DatZpracovani IS NULL';
|
lSQL:= 'SELECT d.ID FROM ' + tblPrijataJsonData + ' d WITH(NOLOCK) WHERE d.Blokovano=0 AND d.DatZpracovani IS NULL';
|
||||||
lSQL:= lSQL + ' AND ISNULL(d.PosledniChyba,N'''')=N''''';
|
lSQL:= lSQL + ' AND ISNULL(d.PosledniChyba,N'''')=N''''';
|
||||||
lSQL:= lSQL + ' AND d.Blokovano=0 '; // AND ISNULL( (SELECT COUNT(ID) FROM dbo._hdc_ph_Log WHERE LogText=N''Zpracovani API json'' AND IntValue=d.ID), 0)<4';
|
lSQL:= lSQL + ' AND d.Blokovano=0 '; // AND ISNULL( (SELECT COUNT(ID) FROM dbo._hdc_ph_Log WHERE LogText=N''Zpracovani API json'' AND IntValue=d.ID), 0)<4';
|
||||||
lSQL:= lSQL + ' ORDER BY d.ID';
|
lSQL:= lSQL + ' ORDER BY d.ID';
|
||||||
@ -472,7 +533,7 @@ uses
|
|||||||
|
|
||||||
lQry2:= TFDQuery.Create(nil);
|
lQry2:= TFDQuery.Create(nil);
|
||||||
lQry2.Connection:= sqlConnX;
|
lQry2.Connection:= sqlConnX;
|
||||||
lQry2.Open('SELECT COUNT(ID) AS Pocet FROM dbo._hdc_ph_Log WHERE IntValue=' + idTask.ToString + ' AND LogText LIKE N''%Zpracova%''');
|
lQry2.Open('SELECT COUNT(ID) AS Pocet FROM dbo._hdc_ph_Log WITH(NOLOCK) WHERE IntValue=' + idTask.ToString + ' AND LogText LIKE N''%Zpracova%''');
|
||||||
lQry2.First;
|
lQry2.First;
|
||||||
cnt:= lQry2.FieldByName('Pocet').AsInteger;
|
cnt:= lQry2.FieldByName('Pocet').AsInteger;
|
||||||
FreeAndNil(lQry2);
|
FreeAndNil(lQry2);
|
||||||
@ -1364,6 +1425,18 @@ Logger.WriteLog(logItem);
|
|||||||
{$I ./_custom/Gornicky/winSvc/mainSvcCont.inc}
|
{$I ./_custom/Gornicky/winSvc/mainSvcCont.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/mainSvcCont.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/mainSvcCont.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/mainSvcCont.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
if (zapisDZTasksThr<>nil) then
|
if (zapisDZTasksThr<>nil) then
|
||||||
if (zapisDZTasksThr.Suspended) then
|
if (zapisDZTasksThr.Suspended) then
|
||||||
zapisDZTasksThr.Resume;
|
zapisDZTasksThr.Resume;
|
||||||
@ -1471,6 +1544,18 @@ Logger.WriteLog(logItem);
|
|||||||
{$I ./_custom/Gornicky/winSvc/mainSvcExec.inc}
|
{$I ./_custom/Gornicky/winSvc/mainSvcExec.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/mainSvcExec.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/mainSvcExec.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/mainSvcExec.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1506,6 +1591,18 @@ Logger.WriteLog(logItem);
|
|||||||
{$I ./_custom/Gornicky/winSvc/mainSvcPause.inc}
|
{$I ./_custom/Gornicky/winSvc/mainSvcPause.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/mainSvcPause.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/mainSvcPause.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/mainSvcPause.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
Paused:= True;
|
Paused:= True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1613,6 +1710,7 @@ Logger.WriteLog(logItem);
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
datMod.LogInfo (Quick.Logger.etCritical, 'Nespravny format konfiguracniho souboru (hdcDZAPIcfg.dat)');
|
datMod.LogInfo (Quick.Logger.etCritical, 'Nespravny format konfiguracniho souboru (hdcDZAPIcfg.dat)');
|
||||||
|
datMod.LogInfo (Quick.Logger.etCritical, s);
|
||||||
result:= false;
|
result:= false;
|
||||||
CoUninitialize;
|
CoUninitialize;
|
||||||
Exit;
|
Exit;
|
||||||
@ -1792,7 +1890,7 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
s:= 'Konfigurace - HTTP/S API port ' + apiPort.ToString + ' / SSL ' + IfThen(jeSSL, 'ano', 'ne') + ' / SQL server ' + datMod.dbServer + IfThen(datMod.dbPort<>1433, ':' + datMod.dbPort.ToString, '');
|
s:= 'Konfigurace - HTTP/S API port ' + apiPort.ToString + ' / SSL ' + IfThen(jeSSL, 'ano', 'ne') + ' / SQL server ' + datMod.dbServer + IfThen(datMod.dbPort<>1433, ':' + datMod.dbPort.ToString, '');
|
||||||
s:= s + ' / databaze ' + datMod.dbName + ' / SQL conn Encrypted ' + IfThen(datMod.dbEncConn, 'ano', 'ne');
|
s:= s + ' / databaze ' + datMod.dbName + ' / user ' + datMod.dbUser + ' / SQL conn Encrypted ' + IfThen(datMod.dbEncConn, 'ano', 'ne');
|
||||||
{$IFDEF CUSTOM_CTRL_Rootvin}
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
s:= s + ' / custom ROOTVIN';
|
s:= s + ' / custom ROOTVIN';
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -1807,6 +1905,12 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
s:= s + ' / custom Gornicky';
|
s:= s + ' / custom Gornicky';
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
s:= s + ' / custom MBM Westra';
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
s:= s + ' / custom EMPolar';
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
datMod.LogInfo (Quick.Logger.etInfo, s);
|
datMod.LogInfo (Quick.Logger.etInfo, s);
|
||||||
except on E:Exception do
|
except on E:Exception do
|
||||||
@ -1880,6 +1984,20 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
result:= false;
|
result:= false;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
if (datMod.dbName<>'Westra') then
|
||||||
|
begin
|
||||||
|
errMsg:= ' - Chybna DB: custom Westra x db ' + datMod.dbName;
|
||||||
|
result:= false;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
if (datMod.dbName<>'EMPolar') then
|
||||||
|
begin
|
||||||
|
errMsg:= ' - Chybna DB: custom EMPolar x db ' + datMod.dbName;
|
||||||
|
result:= false;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
if (datMod.dbServer<>'') then
|
if (datMod.dbServer<>'') then
|
||||||
begin
|
begin
|
||||||
@ -1923,6 +2041,20 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
errMsg:= ' - Chybna DB';
|
errMsg:= ' - Chybna DB';
|
||||||
result:= false;
|
result:= false;
|
||||||
end;
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_GornickyGrp}
|
||||||
|
if (sTemp<>'63887282') then
|
||||||
|
begin
|
||||||
|
errMsg:= ' - Chybna DB';
|
||||||
|
result:= false;
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
if (sTemp<>'60066130') then
|
||||||
|
begin
|
||||||
|
errMsg:= ' - Chybna DB';
|
||||||
|
result:= false;
|
||||||
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2034,7 +2166,7 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
ms: TMemoryStream;
|
ms: TMemoryStream;
|
||||||
arrDefs: TStringList;
|
arrDefs: TStringList;
|
||||||
i, iTemp: integer;
|
i, iTemp: integer;
|
||||||
canCont, canCont2: boolean;
|
canCont, canCont2, canCont3: boolean;
|
||||||
function LoadStringFromStream (const AStream: TStream): String;
|
function LoadStringFromStream (const AStream: TStream): String;
|
||||||
var lenX: Integer;
|
var lenX: Integer;
|
||||||
begin
|
begin
|
||||||
@ -2061,42 +2193,7 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_Rootvin}
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
// arrDefs.Add('tbl_hdc_ph_Log');
|
{$I ./_custom/Rootvin/winSvc_zdroje.inc}
|
||||||
arrDefs.Add('ep_hdcdzapi_GetKusovnik');
|
|
||||||
arrDefs.Add('col_TabDokladyZbozi_EXT');
|
|
||||||
arrDefs.Add('col_TabStavSkladu_EXT');
|
|
||||||
arrDefs.Add('col_TabVazbyPrikazu_EXT');
|
|
||||||
arrDefs.Add('col_TabPrPostup_EXT');
|
|
||||||
arrDefs.Add('col_TabPohybyZbozi_EXT');
|
|
||||||
arrDefs.Add('col_TabEvidRozpracOperR_EXT');
|
|
||||||
arrDefs.Add('col_TabKmenZbozi_EXT');
|
|
||||||
arrDefs.Add('ef_GetDatumASmenu');
|
|
||||||
arrDefs.Add('tbl_hdc_PZ_PuvodniVC');
|
|
||||||
arrDefs.Add('tbl_TabVyrobaTestoVyroba');
|
|
||||||
arrDefs.Add('tbl_TabVyrobaObjednavky');
|
|
||||||
arrDefs.Add('tbl_TabVyrobaOperaceStartStop');
|
|
||||||
arrDefs.Add('tbl_TabVyrobaOperaceStartStopVydej');
|
|
||||||
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOper');
|
|
||||||
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOperPol');
|
|
||||||
arrDefs.Add('ep_Vyroba_DoplnSkladProVydejDleDokladu');
|
|
||||||
arrDefs.Add('ep_Vyroba_GenOdvodZeMzdy');
|
|
||||||
arrDefs.Add('ep_Vyroba_GenVydejZeMzdy');
|
|
||||||
arrDefs.Add('ep_Vyroba_Doklady_Micharna');
|
|
||||||
|
|
||||||
arrDefs.Add('ep_P03_HDC1');
|
|
||||||
arrDefs.Add('ep_P03');
|
|
||||||
arrDefs.Add('ep_P01_HDC1');
|
|
||||||
// arrDefs.Add('ep_P01_HDCDZApi1');
|
|
||||||
arrDefs.Add('ep_P01');
|
|
||||||
arrDefs.Add('ep_V03_HDC1');
|
|
||||||
arrDefs.Add('ep_V03');
|
|
||||||
// arrDefs.Add('');
|
|
||||||
|
|
||||||
arrDefs.Add('trg__TabPohybyZbozi_HDC_D');
|
|
||||||
arrDefs.Add('trg__TabPohybyZbozi_HDC_IU');
|
|
||||||
arrDefs.Add('trg__hdc_PZ_PuvodniVC_D');
|
|
||||||
arrDefs.Add('trg__TabVyrCisPrikaz_HDC_D');
|
|
||||||
arrDefs.Add('trg__TabVyrobaOperaceStartStop_D');
|
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_INCOSystems}
|
{$IFDEF CUSTOM_CTRL_INCOSystems}
|
||||||
@ -2105,10 +2202,12 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
if (iTemp>-1) then
|
if (iTemp>-1) then
|
||||||
arrDefs.Delete(iTemp);
|
arrDefs.Delete(iTemp);
|
||||||
|
|
||||||
|
arrDefs.Add('tbl_hdc_ph_PrijataJsonData_rozsireni');
|
||||||
arrDefs.Add('col_TabPredna_EXT');
|
arrDefs.Add('col_TabPredna_EXT');
|
||||||
arrDefs.Add('col_TabKmenZbozi_EXT');
|
arrDefs.Add('col_TabKmenZbozi_EXT');
|
||||||
arrDefs.Add('col_TabPrPostup_EXT');
|
arrDefs.Add('col_TabPrPostup_EXT');
|
||||||
arrDefs.Add('col_TabEvidRozpracOper_EXT');
|
arrDefs.Add('col_TabEvidRozpracOper_EXT');
|
||||||
|
arrDefs.Add('ef_Vyroba_EvidROpR_MamNeuzavrenouPredchozi');
|
||||||
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOper');
|
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOper');
|
||||||
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOperPol');
|
arrDefs.Add('ep_Vyroba_InsertEvidRozpracOperPol');
|
||||||
arrDefs.Add('ep_Vyroba_GenOdvodZeMzdy');
|
arrDefs.Add('ep_Vyroba_GenOdvodZeMzdy');
|
||||||
@ -2116,6 +2215,7 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
|
arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_Gornicky}
|
{$IFDEF CUSTOM_CTRL_Gornicky}
|
||||||
iTemp:= arrDefs.IndexOf('ep_HDCDZApi_ZpracujPrijataData');
|
iTemp:= arrDefs.IndexOf('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
if (iTemp>-1) then
|
if (iTemp>-1) then
|
||||||
@ -2123,10 +2223,28 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
{$I '_custom/Gornicky/sqlDefs.inc'}
|
{$I '_custom/Gornicky/sqlDefs.inc'}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
iTemp:= arrDefs.IndexOf('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
|
if (iTemp>-1) then
|
||||||
|
arrDefs.Delete(iTemp);
|
||||||
|
{$I '_custom/Westra/sqlDefs.inc'}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
iTemp:= arrDefs.IndexOf('ep_HDCDZApi_ZpracujPrijataData');
|
||||||
|
if (iTemp>-1) then
|
||||||
|
arrDefs.Delete(iTemp);
|
||||||
|
{$I '_custom/EMPolar/sqlDefs.inc'}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
{$IFDEF CUSTOM_CTRL_Metalcasting}
|
{$IFDEF CUSTOM_CTRL_Metalcasting}
|
||||||
arrDefs.Add('col_TabDokumenty_DokladProAPI');
|
arrDefs.Add('col_TabDokumenty_DokladProAPI');
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
errMsg:= 'Nacitani SQL definici...';
|
errMsg:= 'Nacitani SQL definici...';
|
||||||
datMod.LogInfo (Quick.Logger.etInfo, errMsg);
|
datMod.LogInfo (Quick.Logger.etInfo, errMsg);
|
||||||
{$IFDEF DEBUG}
|
{$IFDEF DEBUG}
|
||||||
@ -2156,7 +2274,12 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
objectNazev:= LeftStr(lSQL, lSQL.IndexOf(Chr(13))).Replace('-- ', '');
|
objectNazev:= LeftStr(lSQL, lSQL.IndexOf(Chr(13))).Replace('-- ', '');
|
||||||
|
|
||||||
|
|
||||||
if (srcNazev.StartsWith('ep_', true)) or (srcNazev.StartsWith('ef_', true)) or (srcNazev.StartsWith('trg_')) then
|
if (srcNazev.StartsWith('ep_', true))
|
||||||
|
or (srcNazev.StartsWith('bp_', true))
|
||||||
|
or (srcNazev.StartsWith('ef_', true))
|
||||||
|
or (srcNazev.StartsWith('hpx_', true))
|
||||||
|
or (srcNazev.StartsWith('epx_', true))
|
||||||
|
or (srcNazev.StartsWith('trg_', true)) then
|
||||||
begin
|
begin
|
||||||
canCont:= false;
|
canCont:= false;
|
||||||
hash1:= '';
|
hash1:= '';
|
||||||
@ -2189,10 +2312,16 @@ Writeln('DB: ' + datMod.dbName);
|
|||||||
Continue;
|
Continue;
|
||||||
|
|
||||||
|
|
||||||
if (srcNazev.StartsWith('ep_')) then
|
if (srcNazev.StartsWith('ep_')) or (srcNazev.StartsWith('bp_')) then
|
||||||
begin
|
begin
|
||||||
datMod.sqlConn.ExecSQL('DROP PROCEDURE IF EXISTS dbo.' + srcNazev);
|
canCont3:= true;
|
||||||
datMod.LogInfo (Quick.Logger.etInfo, 'Pregenerovani procedury: ' + srcNazev);
|
if (srcNazev.StartsWith('bp_')) and not(srcNazev.ToUpper.Contains('HDC')) then
|
||||||
|
canCont3:= false;
|
||||||
|
if (canCont3) then
|
||||||
|
begin
|
||||||
|
datMod.sqlConn.ExecSQL('DROP PROCEDURE IF EXISTS dbo.' + srcNazev);
|
||||||
|
datMod.LogInfo (Quick.Logger.etInfo, 'Pregenerovani procedury: ' + srcNazev);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (srcNazev.StartsWith('ef_')) then
|
if (srcNazev.StartsWith('ef_')) then
|
||||||
@ -2564,7 +2693,24 @@ ShellExecute(0, 'open', PChar(url), nil, nil, SW_SHOWNORMAL);
|
|||||||
if (datMod.sqlConn.Connected) and (iCanStart) then
|
if (datMod.sqlConn.Connected) and (iCanStart) then
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
fServer.Active:= true;
|
try
|
||||||
|
fServer.Active:= true;
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
begin
|
||||||
|
OutputDebugString(PChar(E.ClassName + ' - ' + E.Message));
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
on E: EIdCouldNotBindSocket do
|
||||||
|
begin
|
||||||
|
if E.InnerException is EIdSocketError then
|
||||||
|
OutputDebugString(PChar(
|
||||||
|
'WSAError: ' +
|
||||||
|
IntToStr(EIdSocketError(E.InnerException).LastError)
|
||||||
|
));
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
SQLKontroly;
|
SQLKontroly;
|
||||||
|
|
||||||
mamTabPrijataData:= datMod.SQLTableExists(tblPrijataJsonData);
|
mamTabPrijataData:= datMod.SQLTableExists(tblPrijataJsonData);
|
||||||
@ -2592,6 +2738,17 @@ ShellExecute(0, 'open', PChar(url), nil, nil, SW_SHOWNORMAL);
|
|||||||
{$I ./_custom/Gornicky/winSvc/mainSvcStart.inc}
|
{$I ./_custom/Gornicky/winSvc/mainSvcStart.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/mainSvcStart.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/mainSvcStart.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/mainSvcStart.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby zpracovani prijatych JSON zprav (interval ' + intProcessDZTasksSec.ToString + ' ' + sTemp + ')');
|
datMod.LogInfo (Quick.Logger.etInfo, 'Start sluzby zpracovani prijatych JSON zprav (interval ' + intProcessDZTasksSec.ToString + ' ' + sTemp + ')');
|
||||||
zpracJsonThr:= THeoZpracujJSONThread.Create (ThreadTerminated);
|
zpracJsonThr:= THeoZpracujJSONThread.Create (ThreadTerminated);
|
||||||
@ -2647,6 +2804,8 @@ ShellExecute(0, 'open', PChar(url), nil, nil, SW_SHOWNORMAL);
|
|||||||
|
|
||||||
procedure THDCDZApiService.ThreadTerminated (Sender: TObject);
|
procedure THDCDZApiService.ThreadTerminated (Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
ServiceThread.Terminate;
|
||||||
|
Controller(SERVICE_CONTROL_STOP);
|
||||||
if (Sender is TThread) then
|
if (Sender is TThread) then
|
||||||
(Sender as TThread).ForceQueue(nil, Sender.Free);
|
(Sender as TThread).ForceQueue(nil, Sender.Free);
|
||||||
end;
|
end;
|
||||||
@ -2727,6 +2886,17 @@ ShellExecute(0, 'open', PChar(url), nil, nil, SW_SHOWNORMAL);
|
|||||||
{$I ./_custom/Gornicky/winSvc/mainSvcStop.inc}
|
{$I ./_custom/Gornicky/winSvc/mainSvcStop.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Westra}
|
||||||
|
{$I ./_custom/Westra/winSvc/mainSvcStop.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_EMPolar}
|
||||||
|
{$I ./_custom/EMPolar/winSvc/mainSvcStop.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF CUSTOM_CTRL_Rootvin}
|
||||||
|
{$I ./_custom/Rootvin/winSvc/mainSvcStop.inc}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
if Assigned(licThr) then
|
if Assigned(licThr) then
|
||||||
begin
|
begin
|
||||||
|
|||||||
Reference in New Issue
Block a user