IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CP_Persona_Temp_Aprobar]') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE [dbo].[CP_Persona_Temp_Aprobar] 
END
GO

CREATE PROCEDURE [dbo].[CP_Persona_Temp_Aprobar] @Id_Cliente_Temp INT
AS

IF EXISTS (SELECT 1 FROM sys.objects WHERE name = 'CP_Clientes_Temp_Aprobar_' AND type = 'P')
BEGIN
		EXEC CP_Persona_Temp_Aprobar_ @Id_Cliente_Temp
		RETURN
END

DECLARE @Id_Unid_Negocio	VARCHAR(10)
DECLARE @Id_Cliente			INT
DECLARE @Categoria			INT
DECLARE @Nota_Part1			VARCHAR(10)
DECLARE @Direccion			VARCHAR(100)
DECLARE @Nro				INT
DECLARE @Piso				VARCHAR(10)
DECLARE	@Depto				VARCHAR(10)
DECLARE @DireccionTotal		VARCHAR(100)
DECLARE @Observacion		VARCHAR(100)
DECLARE @Razon_Social		VARCHAR(100)
DECLARE @Id_Concepto		INT
DECLARE @Id_Alias_Cta_Cont_Venta	SMALLINT
DECLARE @Mensaje			VARCHAR(100)
DECLARE @Lote				VARCHAR(100)
DECLARE @Id_IVA				CHAR(3)
DECLARE @Tipo_Persona		CHAR(1)
DECLARE @Id_Cond_Pago		SMALLINT
DECLARE @Id_Lista_Precio	SMALLINT

BEGIN TRY
	BEGIN TRAN

	SET @Id_Concepto				= dbo.CF_Preset_Valor(0,'Clientes:Ficha','?Cli:Id_Concepto','A')
	SET @Id_Unid_Negocio			= dbo.CF_Preset_Valor(0,'Clientes:Ficha','?Cli:Id_Unid_Negocio','A')
	SET @Id_IVA						= dbo.CF_Preset_Valor(0,'Clientes:Ficha','?Cli:Id_IVA','A')
	SET @Id_Cond_Pago				= dbo.CF_Preset_Valor(0,'Clientes:Ficha','?Cli:Id_Cond_Pago','A')
	SET @Id_Lista_Precio			= dbo.CF_Preset_Valor(0,'Clientes:Ficha','?Cli:Id_Lista_Precio','A')


    SET @Id_Cliente = ISNULL((SELECT Id_Cliente FROM Clientes_Temp WHERE Id_Cliente_Temp=@Id_Cliente_Temp),0)

	IF @Id_Cliente = 0
	BEGIN
		SET @Observacion	= CONVERT(VARCHAR (10), @Id_Cliente_Temp)
		SET @Id_Cliente		= ISNULL((SELECT (MAX(ID_CLIENTE)+1) FROM Clientes),2)
		SET @Razon_Social	= (Select Razon_Social	from Clientes_Temp where Id_Cliente_Temp=@Id_Cliente_Temp)
		SET @Observacion	= CONVERT(VARCHAR (10), @Id_Cliente_Temp)
		
	

		INSERT INTO Clientes	(Id_Cliente,	Activo,		Razon_Social,		Apellido,		
								Nombre,			Sexo,		Estado_Civil,		Fecha_Nac,		Id_Tipo_Doc, 
								Doc_Nro,		Direccion, 	Cp,					Id_Pais,		Id_Provincia,
								Provincia_Descrip, Id_Localidad, Localidad_Descrip,	Id_Nacionalidad, Email,  Email_Web,
								telefono,		Tel_Movil,	Id_estado_cliente,	Id_Lista_Precio,Id_Cond_Pago, 
								Id_Iva,			Id_Concepto, Id_Cond_vta,				Mercado,		Id_Tipo_Cli, 
								Id_Pais_Cob,	Fecha_Alta, Tipo_Persona,		Id_Unid_Negocio, Observacion,
								Id_Cli_Relac)
					select		@Id_Cliente,		1,		UPPER(Razon_Social),		UPPER(Apellido),		
								UPPER(Nombre),		Sexo,		Estado_Civil,		Fecha_Nac,		Id_Tipo_Doc, 
								Doc_Nro,		@DireccionTotal, Cp,			Id_Pais,		Id_Provincia,
								Provincia_Descrip, Id_Localidad, Localidad_Descrip, Id_Nacionalidad, Email,  Email, 
								telefono,		Tel_Movil,	0,					@Id_Lista_Precio,		@Id_Cond_Pago,				
								@Id_IVA,		@Id_Concepto, Id_Cond_vta,				'A',			Id_Tipo_Cli,	
								Id_Pais,		GETDATE(),	'F',		@Id_Unid_Negocio, @Observacion,
								Id_Cli_Relac
								from  Clientes_Temp WHERE id_cliente_temp=@Id_Cliente_Temp
	
		UPDATE Clientes_Temp SET Id_Cliente = @Id_Cliente WHERE id_cliente_temp=@Id_Cliente_Temp
		
		DELETE FROM Clientes_Fotos WHERE Id_Cliente=@Id_Cliente
		
		INSERT INTO Clientes_Fotos (Id_Cliente, Nro, Foto,Fecha) 
			SELECT TOP 1 @Id_Cliente, 1, Documento,GETDATE() From Clientes_Temp_Doc 
				WHERE Id_Cliente_Temp=@Id_Cliente_Temp AND Descripcion='FotoP'
		
		
	END
	ELSE
	BEGIN
		UPDATE Clientes 
				SET Razon_Social		= ct.Razon_Social, 
					Apellido			= ct.Apellido ,
					Nombre				= ct.Nombre ,
					Sexo				= ct.Sexo ,
					Estado_Civil		= ct.Estado_Civil ,
					Fecha_Nac			= ct.Fecha_Nac ,
					Id_Tipo_Doc			= ct.Id_Tipo_Doc, 
					Doc_Nro				= ct.Doc_Nro ,
					Direccion			= ct.Direccion, 
					Cp					= ct.Cp ,
					Id_Pais				= ct.Id_Pais, 
					Id_Provincia		= ct.Id_Provincia, 
					Provincia_Descrip	= ct.Provincia_Descrip, 
					Id_Localidad		= ct.Id_Localidad,
					Localidad_Descrip	= ct.Localidad_Descrip, 
					Id_Nacionalidad		= ct.Id_Nacionalidad, 
					Email				= ct.Email ,
					telefono			= ct.telefono ,
					Tel_Movil			= ct.Tel_Movil ,
					Id_Cli_Relac		= ct.Id_Cli_Relac,
					Id_Facebook			= ct.Id_Facebook, 
					Id_Instagram		= ct.Id_Instagram, 
					Id_Twitter			= ct.Id_Twitter ,
					Id_Linkedin			= ct.Id_Linkedin ,
					Id_Google			= ct.Id_Google ,
					Id_Microsoft		= ct.Id_Microsoft
				FROM 
					Clientes cl, Clientes_Temp ct
				WHERE 
					cl.Id_Cliente=@Id_Cliente
					and ct.id_cliente_temp=@Id_Cliente_Temp
	END

	UPDATE Clientes_Temp SET Id_Estado_Solicitud = 'A' WHERE id_cliente_temp=@Id_Cliente_Temp
	SET @Lote = (SELECT ISNULL(Nro_Trans_Pago,0) FROM Clientes_Temp WHERE id_cliente_temp=@Id_Cliente_Temp)
	
	COMMIT
	IF @Lote<>0
	BEGIN
	EXEC CP_Clientes_Temp_Actualizar_Cbte @Lote, @Id_Cliente

	IF EXISTS (SELECT 1 FROM sys.objects WHERE name = 'CP_Clientes_Temp_Aprobar_After' AND type = 'P')
		EXEC CP_Clientes_Temp_Aprobar_After @Id_Cliente_Temp

	SELECT	 0			AS ErrorNumber 
			,0			AS ErrorSeverity  
			,0			AS ErrorState 
			,0			AS ErrorProcedure  
			,0			AS ErrorLine		
			,@Mensaje	AS ErrorMessage	
	END 

END TRY  
	

BEGIN CATCH  
    EXECUTE usp_GetErrorInfo;  
	ROLLBACK
END CATCH;   
