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.