
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure [dbo].[p_acc_invoices_get_introducers]
	@invoice_id int
as

	/*
	Renvoyer la liste d'apporteurs d'une quittance et le total de rétrocession pour chaque apporteur.

	Cette procédure est utilisée pour l'encaissement rétrocession déduite

	DGE 26/04/2016
	0000395 Teste version 1954- 5.1.7 Encaissement rétrocession déduite

	On considère que l'encaissement rétrocession déduite vise 
	tous les apporteurs (car pour le moment on peut avoir un seul
	apporteur par quittance).

	Si on passe à N apporteurs par quittance il faut activer le code mis en commentaire

	*/

	set nocount on;

	-- cela sera converti en TYPE_TABLE_ID_AIS_DECIMAL2 (sur le serveur)
	select	act_actor_id = introducer_id, 
			a_amount = sum(value)
	from	(
			select	introducer_id = invrisvi_introducer_id,
					value = invrisvi_value
			from	acc_invoices_risks_variables_introducers
			where	invrisvi_commission_sharing_deduced = 0
			and		invrisvi_invoice_id = @invoice_id

			union 

			select	introducer_id = invpolvi_introducer_id,
					value = invpolvi_value
			from	acc_invoices_policies_variables_introducers
			where	invpolvi_commission_sharing_deduced = 0
			and		invpolvi_invoice_id = @invoice_id
			) as t
	group by t.introducer_id

	/*
	Code à activer si plusieurs apporteurs par quittance (la liste 
	s'affiche dans InvoiceSelectIntroducersForm


	select	vi.act_internal_reference, 
			vi.adr_complete_name, 
			s.a_amount,
			vir_bdr =	convert(bit, case 
						when b.bdr_bordereau_id is null then 0
						else 1
						end),
			b.bdr_bordereau_id,
			vi.act_actor_id
	from	vw_act_introducers vi
			inner join	(
							-- total rétrocession par apporteur pour @invoice_id
							select	t.introducer_id, a_amount = SUM(t.value)
							from	(
									-- variables contrat
									select	introducer_id = invpolvi_introducer_id, value = invpolvi_value
									from	acc_invoices_policies_variables_introducers
									where	invpolvi_invoice_id = @invoice_id

									union 
									-- variables risque
									select	introducer_id = invrisvi_introducer_id, value = invrisvi_value
									from	acc_invoices_risks_variables_introducers
									where	invrisvi_invoice_id = @invoice_id
									) as t
							group by t.introducer_id
						) as s	on s.introducer_id = vi.act_actor_id
			left join	(
						-- rechercher la quittance dans les bordereaux de l'acteur
						select	a.a_actor_id, bdr_bordereau_id = max(b.bdr_bordereau_id)
						from	acc_accounts a
								inner join acc_bordereaux b				on b.bdr_bordereau_id = a.a_account_id
								inner join acc_bordereaux_details bd	on bd.bdrd_bordereau_id = b.bdr_bordereau_id
						where	a.a_type_code = 'B'
						and		bd.bdrd_invoice_id = @invoice_id
						group by a.a_actor_id
						) as b	on b.a_actor_id = s.introducer_id

		*/



	


GO
