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
@@ -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