SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure [dbo].[p_claim_variables_update_recovery]
	@claim_id		int,
	@variable_id	int,
	@amount			ais_decimal2,		-- montant du règlement. Il faut considérer la valeur absolue.
	@action			smallint,			-- 0 = set to 0, 1 = update, 2 = do not update
	@repr			bit,				-- paramètre ajouté pour avoir la même séquence d'appel p_claim_variables_update_payment
	@injury			bit,					-- paramètre ajouté pour avoir la même séquence d'appel p_claim_variables_update_payment
	@disable_accounting BIT
as

	/*
	DGE : MAJ de la table claims_variables après l'enregistrement d'un encaissement de recours
	*/

	set nocount on;


	update	cv
	set		cv.clv_received_recovery	=	ISNULL(cv.clv_received_recovery, 0) +	CASE 
																					WHEN @disable_accounting = 0 THEN  ABS(@amount)
																					ELSE 0
																					END,
			clv_recovery				=	case		
											when @action = 0 then 0
											when @action = 1 and ISNULL(clv_recovery, 0) <= ABS(@amount) then 0
											when @action = 1 and ISNULL(clv_recovery, 0) > ABS(@amount) then ISNULL(clv_recovery, 0) - ABS(@amount)
											else clv_recovery
											end
	from	claim_variables cv
	where	cv.clv_claim_id = @claim_id
	and		cv.clv_variable_id = @variable_id

GO
