117 lines
3.8 KiB
Transact-SQL
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
|