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