Uprava CreateWaitableTimer pri uzavreni timeru (Rootvin)

This commit is contained in:
2026-05-14 12:04:41 +02:00
parent 18081c6bf8
commit 6b7c48fa20
12 changed files with 74 additions and 53 deletions
@@ -83,7 +83,7 @@ WHILE (1=1)
-- smaz pomocnou tabulku
DELETE FROM #TabJSONData
INSERT #TabJSONData (doc) SELECT @jsonString
SELECT TOP(1) @akce = JSON_VALUE(doc, '$.action'), @akceSource = JSON_VALUE(doc, '$.source'), @datumText = JSON_VALUE(doc, '$.actionAt') FROM #TabJSONData
SELECT TOP(1) @akce = JSON_VALUE(doc, '$.akce'), @akceSource = JSON_VALUE(doc, '$.source'), @datumText = JSON_VALUE(doc, '$.data.created') FROM #TabJSONData
SET @akce = ISNULL(@akce, N'')
SET @akceSource = ISNULL(@akceSource, N'')
@@ -65,11 +65,9 @@ SET @uziv = 0
IF (@sklMatHlavni IS NULL)
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál' AND CisloStr LIKE N'3%'
IF (@sklTechnolog IS NULL)
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚÈ%' 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%'
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 (@sklTechnologPolo IS NULL)
SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚÈ%pol%' AND CisloStr LIKE N'2%'
SELECT @sklTechnologPolo=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚÈ%' AND (Nazev LIKE N'%polotov%' OR Nazev LIKE N'%HV%') AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna' AND CisloStr LIKE N'2%'
@@ -1,5 +1,6 @@
-- dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew
CREATE PROCEDURE dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew
@zaPocetDnu SMALLINT=5,
@errMsg NVARCHAR(500)=N'' OUT
AS
@@ -52,6 +53,7 @@ DECLARE
@sklMatHlavni NVARCHAR(30), -- 311
@sklPekarna NVARCHAR(30), -- 211
@sklTechnolog NVARCHAR(30), -- 261
@sklTechnologHV NVARCHAR(30), -- 262
@skladFin NVARCHAR(30), -- 312
@mnoz NUMERIC(19,6),
@mnozVydano NUMERIC(19,6),
@@ -69,7 +71,9 @@ IF OBJECT_ID(N'tempdb..#VyrobaGenObjednavkuMatDoVyrobyNew', N'U') IS NOT NULL
IF (@sklMatHlavni IS NULL)
SELECT TOP(1) @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál' AND CisloStr LIKE N'3%'
IF (@sklTechnolog IS NULL)
SELECT TOP(1) @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚÈ%' AND Nazev NOT LIKE N'%polotov%' AND CisloStr LIKE N'2%'
SELECT TOP(1) @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 (@sklTechnologHV IS NULL)
SELECT TOP(1) @sklTechnologHV=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NEÚÈ%' AND (Nazev LIKE N'%polotov%' OR Nazev LIKE N'%HV%') AND CisloStr LIKE N'2%'
IF (@sklPekarna IS NULL)
SELECT TOP(1) @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna' AND CisloStr LIKE N'2%'
@@ -98,13 +102,13 @@ DELETE FROM dbo._TabVyroba_Objednavky_Pol WHERE IDPohybOZ NOT IN (SELECT ID FROM
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
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
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
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
END
SET @datumDokladuMat = ISNULL(@datumDokladuMat, GETDATE())
@@ -114,13 +118,13 @@ 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
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
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
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<6
AND DATEDIFF(day, o.DatPorizeni, GETDATE())<=@zaPocetDnu
)
END
SET @datumDokladuFin = ISNULL(@datumDokladuFin, GETDATE())
@@ -142,7 +146,7 @@ IF (@genDokladMat=1) OR (@genDokladFin=1)
AND Vratka=0
AND Blokovano=0
AND IDPhIdent2 IS NOT NULL
AND DATEDIFF(day, DatPorizeni, GETDATE())<6
AND DATEDIFF(day, DatPorizeni, GETDATE())<=@zaPocetDnu
GROUP BY JeMaterial
OPEN m
WHILE (1=1)
@@ -216,7 +220,7 @@ IF (@genDokladMat=1) OR (@genDokladFin=1)
AND Blokovano=0
AND IDPhIdent2 IS NOT NULL
AND JeMaterial=@material
AND DATEDIFF(day, DatPorizeni, GETDATE())<6
AND DATEDIFF(day, DatPorizeni, GETDATE())<=@zaPocetDnu
ORDER BY DatPorizeni
OPEN c
WHILE (1=1)
@@ -300,6 +304,10 @@ IF (@genDokladMat=1) OR (@genDokladFin=1)
END -- @idZboSklad IS NOT NULL
END -- @mnoz>0
UPDATE dbo._TabVyroba_Objednavky SET DatZpracovani=GETDATE() WHERE ID=@idObj
UPDATE dbo._TabVyroba_Objednavky SET PocetPohybuOZ=ISNULL( (SELECT COUNT(ID) FROM dbo.TabPohybyZbozi_EXT WHERE _Vyroba_IDObjednavkaMat=@idObj), 0)
WHERE ID=@idObj
END
CLOSE c
DEALLOCATE c
@@ -339,7 +347,7 @@ WHILE (1=1)
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
UPDATE dbo._TabVyroba_Objednavky SET Splneno=1, DatZpracovani=GETDATE() WHERE ID=@idObj
END
CLOSE c
+15 -14
View File
@@ -19,23 +19,24 @@
destructor THeoRTNZapisObjMatThread.Destroy;
begin
{$IFDEF DEBUG}
Write('Ukoncuji thread RTN Zapis objednavka materialu do ExpPr...');
Write ('Ukoncuji thread RTN Zapis objednavka materialu do ExpPr...');
{$ENDIF}
try
if (FTimer<>0) then
CloseHandle (FTimer);
FTermEvent.Free;
if (FTimer<>0) then
if WaitForSingleObject(FTimer, 0) <> WAIT_FAILED then
CloseHandle (FTimer);
FTermEvent.Free;
finally
end;
FRunning := false;
FMainService := nil;
FDataMod := nil;
Terminate;
FLock.Free;
inherited;
FRunning := false;
FMainService := nil;
FDataMod := nil;
Terminate;
FLock.Free;
inherited;
{$IFDEF DEBUG}
WriteLn('OK');
WriteLn ('OK');
{$ENDIF}
end;
end;
@@ -182,8 +183,8 @@
begin
inProg:= true;
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';
lSQL:= 'DECLARE @eMsg NVARCHAR(500)=N''''' + CRLF +'IF OBJECT_ID(N''dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew'', N''P'') IS NOT NULL' + CRLF
+ ' EXEC dbo.ep_Vyroba_GenObjednavkuMatDoVyrobyNew @zaPocetDnu=5, @errMsg=@eMsg OUT' + CRLF + 'SELECT @eMsg AS ErrMsg';
lQry.Open(lSQL);
if (lQry.RecordCount>0) then
+1
View File
@@ -44,6 +44,7 @@
arrDefs.Add('ep_V03');
// arrDefs.Add('');
// arrDefs.Add('ep_HDCDZApi_ZpracujPrijataData');
// objednavky pres Gatema SDServer
// arrDefs.Add('bp_Gatema_SDGenDokZbo1');
Binary file not shown.
+2 -2
View File
@@ -132,8 +132,8 @@
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_MajorVer>3</VerInfo_MajorVer>
<VerInfo_Release>2026</VerInfo_Release>
<VerInfo_Build>412</VerInfo_Build>
<VerInfo_Keys>CompanyName=HD Consulting s.r.o. Strakonice;FileDescription=HDC x Pro Holding DataZone komunikator (API);FileVersion=3.0.2026.412;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=2026.04.12 16:03:18</VerInfo_Keys>
<VerInfo_Build>507</VerInfo_Build>
<VerInfo_Keys>CompanyName=HD Consulting s.r.o. Strakonice;FileDescription=HDC x Pro Holding DataZone komunikator (API);FileVersion=3.0.2026.507;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=2026.05.07 09:48:18</VerInfo_Keys>
<Icon_MainIcon>api2-5.ico</Icon_MainIcon>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DebugInformation>2</DCC_DebugInformation>
+1 -10
View File
@@ -41,9 +41,8 @@ const
type
TBaseController = class abstract(TMVCController)
private
FConn: TFDConnection;
strict private
FConn: TFDConnection;
FObecnyService: TObecnyService;
FAktivitaService: TAktivitaService;
@@ -198,14 +197,6 @@ type
end;
[MVCPatch]
[MVCSwagIgnorePath]
[MVCPath]
TRedirectController = class(TMVCController)
+28 -10
View File
@@ -3,6 +3,12 @@
interface
uses
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.VCLUI.Wait,
Data.DB, FireDAC.Comp.Client, FireDAC.Comp.UI, FireDAC.Phys.MSSQLDef,
FireDAC.Phys.ODBCBase, FireDAC.Phys.MSSQL, FireDAC.DatS,
FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Stan.Consts,
System.Generics.Collections,
System.SysUtils,
WinApi.ActiveX,
@@ -23,6 +29,7 @@ type
TServiceBase = class abstract
strict protected
FConn: TFDConnection;
FDM: TdatMod;
public
constructor Create (AdmMain: TdatMod); virtual;
@@ -65,13 +72,9 @@ uses
System.StrUtils,
System.Classes,
System.RegularExpressions,
FireDAC.Stan.Option,
FireDAC.Comp.Client,
FireDAC.Stan.Param,
MVCFramework.FireDAC.Utils,
MVCFramework.DataSet.Utils,
MVCFramework.Serializer.Commons,
FireDAC.Stan.Consts,
System.JSON.Builders,
System.JSON.Writers,
System.JSON.Types,
@@ -117,8 +120,16 @@ uses
destructor TServiceBase.Destroy;
begin
try
if Assigned(FConn) then
FConn.Close;
finally
FConn.Free;
end;
if (FDM<>nil) then
FreeAndNil (FDM);
inherited;
end;
@@ -128,6 +139,13 @@ uses
// var s: string;
begin
inherited Create;
if not Assigned(FConn) then
begin
FConn := TFDConnection.Create (nil);
FConn.ConnectionDefName := sqlPoolName;
end;
FDM:= AdmMain;
{
@@ -157,8 +175,8 @@ uses
function TServiceBase.NewUUID32: string;
var GUID: TGUID;
begin
CoCreateGuid(GUID);
SetLength(Result, 32);
CoCreateGuid (GUID);
SetLength (Result, 32);
StrLFmt(PChar(Result), 32,'%.8x%.4x%.4x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x',
[Guid.D1, Guid.D2, Guid.D3, Guid.D4[0], Guid.D4[1], Guid.D4[2], Guid.D4[3],
Guid.D4[4], Guid.D4[5], Guid.D4[6], Guid.D4[7]]);
@@ -167,13 +185,13 @@ uses
procedure TServiceBase.DeepCopyList<T>(SourceList, DestList: TObjectList<T>; CopyFunc: TCopyFunction<T>);
procedure TServiceBase.DeepCopyList<T> (SourceList, DestList: TObjectList<T>; CopyFunc: TCopyFunction<T>);
var i: Integer;
begin
for i := 0 to SourceList.Count - 1 do
begin
// Pro každý objekt v seznamu zavoláme funkci, která vrátí jeho kopii
DestList.Add(CopyFunc(SourceList[i]));
DestList.Add (CopyFunc(SourceList[i]));
end;
end;
@@ -181,7 +199,7 @@ uses
function TServiceBase.sanitizeSQLString (s: string): string;
begin
result:= s.Replace(' ', '').Replace(';', '').Replace('--', '').Replace(' OR', '').Trim;
result := s.Replace(' ', '').Replace(';', '').Replace('--', '').Replace(' OR', '').Trim;
end;
@@ -192,7 +210,7 @@ uses
lQry: TFDQuery;
sqlConnX: TFDConnection;
begin
result:= false;
result := false;
sqlConnX:= TFDConnection.Create(nil);
sqlConnX.ConnectionDefName:= sqlPoolName;
+1 -1
View File
@@ -288,7 +288,7 @@ procedure TWebModule1.WebModuleCreate (Sender: TObject);
// pokud mam povoleno SD Gatema, nesmim mit povoleno Rootvin !!!
{$IFDEF CUSTOM_CTRL_Rootvin}
FEngine.AddController(TRTNController);
FEngine.AddController (TRTNController);
// {$I '_custom/Rootvin/uWebModCustom.inc'}
{$UNDEF CUSTOM_CTRL_GatemaSD}
{$ENDIF}
+5 -3
View File
@@ -9,7 +9,7 @@ uses
System.IOUtils, System.SyncObjs, IdBaseComponent, IdComponent, IdServerIOHandler, IdSSL, IdHTTP, IdURI,
IdSSLOpenSSL, IdSSLOpenSSLHeaders, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdException, IdStack,
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.Consts,
FireDAC.Stan.Async, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
Neslib.Xml, Neslib.Xml.IO, Neslib.Xml.Types,
{$IFDEF OMNIThreadLib}
@@ -1707,10 +1707,12 @@ Logger.WriteLog(logItem);
end;
finally
oPars.Free;
end;
if (FDManager.State = dmsInactive) then
FDManager.Open;
end;
if (FDManager.State = dmsInactive) then
FDManager.Open;
end;
+2
View File
@@ -1,2 +1,4 @@
@echo off
netsh interface ipv4 show excludedportrange protocol=tcp
pause >nul