109 lines
3.1 KiB
Transact-SQL
109 lines
3.1 KiB
Transact-SQL
-- dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
|
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
|
@IdEvidRozpOper INT,
|
|
@IdPrikaz INT,
|
|
@doklPrPost INT,
|
|
@altPrPost NCHAR(1),
|
|
@IDPaleta INT=NULL,
|
|
@IdVyrCis INT=NULL,
|
|
@cisloPL NVARCHAR(50),
|
|
@sarze NVARCHAR(30),
|
|
@mnozOdv NUMERIC(19,6)=0,
|
|
@skCas NUMERIC(19,6)=0,
|
|
@skCasT TINYINT=1,
|
|
@skCasObsl NUMERIC(19,6)=0,
|
|
@skCasObslT TINYINT=1
|
|
AS
|
|
|
|
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
|
|
|
|
SET NOCOUNT ON
|
|
|
|
DECLARE
|
|
@errMsg NVARCHAR(500),
|
|
@tranPred INT
|
|
|
|
DECLARE
|
|
@idEROpPol INT=NULL,
|
|
@idTemp INT=NULL,
|
|
@mnEROp NUMERIC(19,6),
|
|
@sumMnEROp NUMERIC(19,6)
|
|
|
|
|
|
|
|
IF OBJECT_ID(N'#TabExtKom', N'U') IS NULL
|
|
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
|
|
|
|
|
|
|
|
|
IF EXISTS(SELECT 1 FROM dbo.TabEvidRozpracOperR)
|
|
BEGIN
|
|
SELECT @idEROpPol=MAX(ID) FROM dbo.TabEvidRozpracOperR
|
|
DBCC CHECKIDENT(TabEvidRozpracOperR, RESEED, @idEROpPol)
|
|
END
|
|
ELSE
|
|
DBCC CHECKIDENT(TabEvidRozpracOperR, RESEED, 1)
|
|
SET @idEROpPol=NULL
|
|
|
|
|
|
|
|
|
|
SET @sarze = TRIM(ISNULL(@sarze, N''))
|
|
SET @cisloPL = TRIM(ISNULL(@cisloPL, N''))
|
|
|
|
IF (@IDPaleta IS NOT NULL) AND (@IDVyrCis IS NULL)
|
|
SELECT @idVyrCis=IDVyrCisPrikaz FROM dbo._TabVyroba_Palety WHERE ID=@IDPaleta
|
|
IF (@IDVyrCis IS NULL) AND (@cisloPL<>N'') AND (@IdPrikaz IS NOT NULL) AND (@sarze<>N'')
|
|
SET @IDVyrCis = (SELECT ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@IdPrikaz AND VyrCislo=@cisloPL AND Popis=@sarze)
|
|
IF (@IDVyrCis IS NULL) AND (@cisloPL<>N'') AND (@IdPrikaz IS NOT NULL)
|
|
SET @IDVyrCis = (SELECT ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@IdPrikaz AND VyrCislo=@cisloPL)
|
|
|
|
|
|
|
|
BEGIN TRY
|
|
SET @tranPred = @@TRANCOUNT
|
|
IF (@tranPred=0) BEGIN TRAN
|
|
|
|
INSERT dbo.TabEvidRozpracOperR (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, IDVyrCis, Mnoz_odv, Sk_cas, Sk_cas_T, Sk_cas_Obsluhy, Sk_cas_Obsluhy_T)
|
|
SELECT @IdEvidRozpOper, @IdPrikaz, @doklPrPost, @altPrPost, @IdVyrCis, @mnozOdv, @skCas, @skCasT, @skCasObsl, @skCasObslT
|
|
SET @idEROpPol = SCOPE_IDENTITY()
|
|
|
|
IF (@idEROpPol IS NOT NULL)
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabEvidRozpracOperR_EXT WHERE ID=@idEROpPol)
|
|
INSERT dbo.TabEvidRozpracOperR_EXT (ID) VALUES (@idEROpPol)
|
|
UPDATE dbo.TabEvidRozpracOperR_EXT SET _Sarze=@sarze WHERE ID=@idEROpPol
|
|
|
|
|
|
-- zapis koeficient
|
|
SET @sumMnEROp = ISNULL( (SELECT SUM(Mnoz_odv) FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@IdEvidRozpOper), 0)
|
|
DECLARE crLoc CURSOR LOCAL FOR
|
|
SELECT ID, Mnoz_odv FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@IdEvidRozpOper
|
|
OPEN crLoc
|
|
WHILE (1=1)
|
|
BEGIN
|
|
FETCH NEXT FROM crLoc INTO @idTemp, @mnEROp
|
|
IF (@@FETCH_STATUS<>0) BREAK
|
|
UPDATE dbo.TabEvidRozpracOperR_EXT SET _KoefMnoz=ROUND(@mnEROp/@sumMnEROp, 5) WHERE ID=@idTemp
|
|
END
|
|
CLOSE crLoc
|
|
DEALLOCATE crLoc
|
|
|
|
|
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
|
COMMIT TRAN
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF CURSOR_STATUS('local','crLoc')>=-1
|
|
BEGIN
|
|
CLOSE crLoc;
|
|
DEALLOCATE crLoc
|
|
END
|
|
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
|
ROLLBACK TRAN
|
|
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, ERROR_MESSAGE()
|
|
SET @idEROpPol = NULL
|
|
END CATCH
|
|
|
|
RETURN @idEROpPol
|