IF EXISTS ( SELECT * FROM SYS.OBJECTS WHERE TYPE = 'TR' 
              AND name = 'Tri_Clientes_Hist_Ins')
BEGIN
    DROP TRIGGER dbo.Tri_Clientes_Hist_Ins 
END
GO


IF EXISTS ( SELECT * FROM SYS.OBJECTS WHERE TYPE = 'TR' 
              AND name = 'CT_Clientes_Hist_Ins')
BEGIN
    DROP TRIGGER dbo.CT_Clientes_Hist_Ins 
END
GO



CREATE TRIGGER [dbo].CT_Clientes_Hist_Ins 
ON [dbo].[Clientes]
AFTER INSERT
AS 

SET NOCOUNT ON
DECLARE @Id_Cliente		INT
DECLARE @Id_Tipo_Cli	SMALLINT
DECLARE @Id_Cobrador	VARCHAR(10)
DECLARE @Fecha_Alta		DATETIME
DECLARE @Id_Motivo_Est	SMALLINT
DECLARE @Fecha_Baja		DATETIME
DECLARE @Id_Cliente_Externo VARCHAR(14)
DECLARE @Id_Tarjeta		VARCHAR(10)
DECLARE @Tar_Nro		VARCHAR(25)
DECLARE @Tar_Fecha_Alta DATETIME
DECLARE @Tar_Fecha_Baja DATETIME
DECLARE @Id_Cliente_Ref	INT
DECLARE @ProxItem		SMALLINT
DECLARE @Flag_Grabar	INT
DECLARE @Id_Usuario		SMALLINT


SET @Flag_Grabar =  dbo.CF_xParam('Cli_Hist')

	
IF(ISNULL(@Flag_Grabar,0) <> 0)
BEGIN

	IF ISNUMERIC(SYSTEM_USER) = 1
		SET @Id_Usuario =  SYSTEM_USER 
    ELSE
		SET @Id_Usuario =  0


	DECLARE [clientes_hist] CURSOR FOR
	SELECT	Id_Cliente,						ISNULL(Id_Tipo_Cli, 0),		ISNULL(Id_Cobrador, ''),
			Fecha_Alta,						ISNULL(Id_Motivo_Est, 0),	Fecha_Baja,
			ISNULL(Id_Cliente_Externo, ''),	ISNULL(Id_Tarjeta, ''),		ISNULL(Tar_Nro, ''),
			Tar_Fecha_Alta,					Tar_Fecha_Baja,				ISNULL(Id_Cliente_Ref, 0)
			FROM Inserted

	OPEN [clientes_hist]
	FETCH NEXT FROM [clientes_hist] INTO @Id_Cliente, @Id_Tipo_Cli, @Id_Cobrador, @Fecha_Alta, @Id_Motivo_Est, @Fecha_Baja, @Id_Cliente_Externo, @Id_Tarjeta, @Tar_Nro, @Tar_Fecha_Alta, @Tar_Fecha_Baja, @Id_Cliente_Ref
	WHILE (@@FETCH_STATUS = 0)
	BEGIN
		SET @ProxItem = (SELECT (ISNULL(MAX(Item), 0) + 1) FROM Clientes_Hist WHERE Id_Cliente = @Id_Cliente)
        
		INSERT INTO Clientes_Hist	(Id_Cliente,		Item,			Fecha,
									Id_Tipo_Cli,		Id_Cobrador,	Fecha_Alta,
									Id_Motivo_Est,		Fecha_Baja,		Id_Cliente_Externo,
									Id_Tarjeta,			Tar_Nro,		Tar_Fecha_Alta,
									Tar_Fecha_Baja,		Id_Cliente_Ref	,Id_Usuario)
		VALUES						(@Id_Cliente,		@ProxItem,		GETDATE(),
									@Id_Tipo_Cli,		@Id_Cobrador,	@Fecha_Alta,
									@Id_Motivo_Est,		@Fecha_Baja,	@Id_Cliente_Externo,
									@Id_Tarjeta,		@Tar_Nro,		@Tar_Fecha_Alta,
									@Tar_Fecha_Baja,	@Id_Cliente_Ref,@Id_Usuario)
		

		FETCH NEXT FROM [clientes_hist] INTO @Id_Cliente, @Id_Tipo_Cli, @Id_Cobrador, @Fecha_Alta, @Id_Motivo_Est, @Fecha_Baja, @Id_Cliente_Externo, @Id_Tarjeta, @Tar_Nro, @Tar_Fecha_Alta, @Tar_Fecha_Baja, @Id_Cliente_Ref   
	END
	CLOSE [clientes_hist]
	DEALLOCATE [clientes_hist]
END