IF EXISTS (
    SELECT 1
    FROM sys.triggers
    WHERE parent_id = OBJECT_ID('Clientes')
      AND name = 'CT_Clientes_Hist_Ins'
)
BEGIN
    DROP TRIGGER CT_Clientes_Hist_Ins;
END

GO


CREATE TRIGGER CT_Clientes_Hist_Ins 
ON 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
DECLARE @Id_Cli_Relac	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),
			ISNULL(Id_Cli_Relac,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,@Id_Cli_Relac
	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,
									Id_Cli_Relac)
		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,
									@Id_Cli_Relac)
		

		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,@Id_Cli_Relac   
	END
	CLOSE clientes_hist
	DEALLOCATE clientes_hist
END
