Files
Rootvin-pluginHDCRTN/_sql/ep_Vyroba_VyrobaMimoPlan.sql
2025-05-21 21:06:33 +02:00

117 lines
3.8 KiB
Transact-SQL

-- dbo.ep_Vyroba_VyrobaMimoPlan
CREATE PROCEDURE dbo.ep_Vyroba_VyrobaMimoPlan
@IDKmen INT=NULL,
@IDStroj INT=NULL,
@IDZamest INT=NULL
AS
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
SET NOCOUNT ON
IF ((@IDKmen IS NULL) OR (@IDStroj IS NULL)) AND OBJECT_ID(N'tempdb..#TabVyrobaMimoPlan', N'U') IS NULL
RETURN
DECLARE
@errMsg NVARCHAR(500),
@tranPred INT
DECLARE
@idEvROp INT,
@uroven INT,
@maxUroven INT,
@iChyba INT,
@mamPolotovar BIT,
@idPlan INT,
@IDPracoviste INT,
@idVPr INT,
@prpD INT,
@szKmen NVARCHAR(3),
@prpA NCHAR(1)=N'A',
@mn NUMERIC(19,6),
@mj NVARCHAR(10),
@szVyr NVARCHAR(3),
@rcVyr NVARCHAR(30)
IF (@IDKmen IS NULL)
DECLARE v CURSOR LOCAL FOR
SELECT IDKmen, IDStroj, IDZamest FROM #TabVyrobaMimoPlan ORDER BY ID
ELSE
DECLARE v CURSOR LOCAL FOR
SELECT @IDKmen, @IDStroj, @IDZamest
OPEN v
WHILE (1=1)
BEGIN
FETCH NEXT FROM v INTO @IDKmen, @IDStroj, @IDZamest
IF (@@FETCH_STATUS<>0) BREAK
IF (@IDZamest IS NULL)
SELECT TOP(1) ID FROM dbo.TabCisZam
SELECT @szVyr=SkupZbo, @rcVyr=RegCis, @mj=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@IDKmen
SET @mn = ISNULL( (SELECT PocetHlavni FROM dbo.TabMJZbozi WHERE IDKmenZbozi=@IDKmen AND KodMJ1=N'KA' AND KodMJ2='Pal'), 1)
IF (@mn=0)
SET @mn = 1
SELECT @IDPracoviste=IDPrac FROM dbo.TabCisStroju WHERE ID=@IDStroj
EXEC @idPlan=dbo.hp_NewVyrobniPlan @IDDilce=@IDKmen, @mnozstvi=@mn, @Poznamka=N'Výroba mimo plán', @ZdrojPozadavku=0
IF (@idPlan>0)
BEGIN
UPDATE dbo.TabPlan SET Datum=dbo.hf_TruncDate(GETDATE()) WHERE ID=@idPlan
IF OBJECT_ID(N'tempdb..#TabPomSeznamVyrPlanuProZaplanovani', N'U') IS NULL
CREATE TABLE #TabPomSeznamVyrPlanuProZaplanovani (ID INT NOT NULL)
IF OBJECT_ID(N'tempdb..#TabGenVyrPrikazy', N'U') IS NULL
CREATE TABLE #TabGenVyrPrikazy (ID INT NOT NULL, UrovenVnoreni INT NULL)
INSERT #TabPomSeznamVyrPlanuProZaplanovani (ID) SELECT @idPlan
EXEC dbo.hp_VyrPlan_ZaplanujSeznam @GenPlanovaneVyroby=0
IF EXISTS (SELECT 1 FROM #TabGenVyrPrikazy)
BEGIN
UPDATE t SET t.UrovenVnoreni=s.UrovenVnoreni FROM #TabGenVyrPrikazy t, dbo.TabPrikaz s WHERE s.ID=t.ID
SET @maxUroven=(SELECT MAX(UrovenVnoreni) FROM #TabGenVyrPrikazy)
DECLARE c CURSOR LOCAL FOR
SELECT ID, UrovenVnoreni FROM #TabGenVyrPrikazy
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idVPr, @uroven
IF (@@FETCH_STATUS<>0) BREAK
SELECT @idKmen=p.IDTabKmen, @szKmen=k.SkupZbo FROM dbo.TabPrikaz p INNER JOIN dbo.TabKmenZbozi k ON (k.ID=p.IDTabKmen) WHERE p.ID=@idVPr
SET @mamPolotovar=0
IF EXISTS (SELECT 1 FROM dbo.TabPrKVazby v INNER JOIN dbo.TabKmenZbozi n ON (v.nizsi=n.ID)
WHERE v.IDOdchylkyDo IS NULL AND v.IDPrikaz=@idVPr AND n.SkupZbo LIKE N'7%' AND n.SkupZbo<>N'701')
SET @mamPolotovar=1
IF (@szKmen NOT IN (N'701')) AND (@mamPolotovar=0)
UPDATE dbo.TabPrPostup SET pracoviste=@IDPracoviste, IDStroje=@IDStroj WHERE IDOdchylkyDo IS NULL AND Nazev LIKE N'Peèe%' AND IDPrikaz=@idVPr
EXEC @iChyba=dbo.hp_ZadaniPrikazuDoVyroby @IDPrikaz=@idVPr, @OnlyPredzpracovani=0
/*
IF (@iChyba=0) AND (@szKmen NOT IN (N'701'))
BEGIN
EXEC @idEvROp=dbo.ep_Vyroba_InsertEvidRozpracOper @IDZamestnance=@idZamest, @IDPracoviste=@IDPracoviste, @IDStroje=@IDStroj
IF (@idEvROp>0)
BEGIN
SELECT TOP(1) @prpD=Doklad, @prpA=Alt FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idVPr
EXEC dbo.ep_Vyroba_InsertEvidRozpracOperPol @IdEvidRozpOper=@idEvROp, @IdPrikaz=@idVPr, @doklPrPost=@prpD, @altPrPost=@prpA
END
END
*/
END
CLOSE c
DEALLOCATE c
END
END
END
CLOSE v
DEALLOCATE v