
/*------ ATD 342975 ------*/
-- Arthur - Ficha 342975  - 29/10/18 - Tremacal - Verificar Data Prevista Vazia em Itens Pedido 
IF NOT EXISTS (SELECT 1 FROM SYSOBJECTS WHERE NAME = 'LOG_DATA_PREVISTA_VAZIA_TEMP')
 BEGIN
	CREATE TABLE LOG_DATA_PREVISTA_VAZIA_TEMP (
		Data DATETIME, 
		Comando VARCHAR(4000), 
		Alteracao VARCHAR(4000), 
		Sistema VARCHAR(100), 
		Estacao VARCHAR(100), 
		Usuario VARCHAR(100),
 )
 END
go

IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE NAME = 'Data_Prevista_Vazia_Item_Pedido_U')
	DROP TRIGGER Data_Prevista_Vazia_Item_Pedido_U
go
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE NAME = 'Data_Prevista_Vazia_Item_Pedido_I')
	DROP TRIGGER Data_Prevista_Vazia_Item_Pedido_I
go

CREATE TRIGGER Data_Prevista_Vazia_Item_Pedido_U ON ItemCliCad FOR UPDATE AS 
BEGIN
	SET NOCOUNT ON
	DECLARE @Comando varchar(4000), @msg varchar(4000), @Antigo SmallDateTime, @Novo SmallDateTime, @Pedido INT, @Produto CHAR(5), @TipoEntrega CHAR(1) 
	 	IF UPDATE(DtPrevEnt) 
	BEGIN
		SELECT @Antigo = DtPrevEnt FROM Deleted 
		SELECT @Novo = DtPrevEnt, @Pedido = NumPed, @Produto = CodPro, @TipoEntrega = TipoEntr FROM Inserted
		IF (@Novo is NULL OR year(@Novo) = 1900) and @TipoEntrega = 'F'
		BEGIN
		    Declare @script varchar(4000), @ExecStr varchar(50)
			CREATE TABLE #inputbuffer (  EventType varchar(30), Paramet int, EventInfo varchar(4000) ) 
			SET @ExecStr = 'DBCC INPUTBUFFER(' + STR(@@SPID) + ')' 
			INSERT INTO #inputbuffer 
			EXEC (@ExecStr) 
			SET @Comando = (SELECT EventInfo FROM #inputbuffer)
			SET @script = 'Pedido = ' + rtrim(ltrim(cast(@Pedido as char(20)))) + ' Produto = ' + @Produto + ' Data Anterior = ' + 
			case when @Antigo is null then 'NULA' else convert(nvarchar(MAX), @Antigo, 103) end 
			DROP TABLE #inputbuffer
			INSERT INTO LOG_DATA_PREVISTA_VAZIA_TEMP (DATA, COMANDO, ALTERACAO, ESTACAO, SISTEMA, USUARIO) VALUES 
				(GETDATE(), @Comando, @script, (SELECT host_name FROM sys.dm_exec_sessions where session_id = @@spid), 
				(SELECT program_name FROM sys.dm_exec_sessions where session_id = @@spid), 
				(SELECT login_name FROM sys.dm_exec_sessions where session_id = @@spid))
		END
	END
	SET NOCOUNT OFF
END
go

CREATE TRIGGER Data_Prevista_Vazia_Item_Pedido_I ON ItemCliCad FOR INSERT AS 
BEGIN
	SET NOCOUNT ON
	DECLARE @Comando varchar(4000), @msg varchar(4000), @Novo SmallDateTime, @Pedido INT, @Produto CHAR(5), @TipoEntrega CHAR(1)
	SELECT @Novo = DtPrevEnt, @Pedido = NumPed, @Produto = CodPro, @TipoEntrega = TipoEntr FROM Inserted
	IF (@Novo is NULL OR year(@Novo) = 1900) and @TipoEntrega = 'F'
	BEGIN
		Declare @script varchar(4000), @ExecStr varchar(50)
		CREATE TABLE #inputbuffer (  EventType varchar(30), Paramet int, EventInfo varchar(4000) ) 
		SET @ExecStr = 'DBCC INPUTBUFFER(' + STR(@@SPID) + ')' 
		INSERT INTO #inputbuffer 
		EXEC (@ExecStr) 
		SET @Comando = (SELECT EventInfo FROM #inputbuffer)
		SET @script = 'Pedido = ' + rtrim(ltrim(cast(@Pedido as char(20)))) + ' Produto = ' + @Produto + ' Data Prevista = ' + 
		case when @Novo is null then 'NULA' else convert(nvarchar(MAX), @Novo, 103) end 
		DROP TABLE #inputbuffer
		INSERT INTO LOG_DATA_PREVISTA_VAZIA_TEMP (DATA, COMANDO, ALTERACAO, ESTACAO, SISTEMA, USUARIO) VALUES 
			(GETDATE(), @Comando, @script, (SELECT host_name FROM sys.dm_exec_sessions where session_id = @@spid), 
			(SELECT program_name FROM sys.dm_exec_sessions where session_id = @@spid), 
			(SELECT login_name FROM sys.dm_exec_sessions where session_id = @@spid))
	END
	SET NOCOUNT OFF
END
go
-- Fim - Ficha 342975

