Prvni verze
This commit is contained in:
108
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOperPol.sql
Normal file
108
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOperPol.sql
Normal file
@ -0,0 +1,108 @@
|
||||
-- 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
|
||||
Reference in New Issue
Block a user