SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure [dbo].[p_acc_default_bank_account_by_table_id]
	@table_id type_table_id READONLY
as 
	set nocount on;
	
	/*
	[DGE]
	Lors d'un encaissement, on peut sélectionner une ou plusieurs quittances. Si toutes les quittances visent le même produit, 
	on récupère le compte bancaire par défaut qui est renseigné dans le paramétrage (table pr_products_branches).

	Si on a plusieurs produits et plusieurs comptes bancaires, le résultat est vide.
	*/

	select	pb.prdb_account_number
	from	acc_invoices i
			inner join @table_id t					on	t.id = i.inv_invoice_id
			inner join pol_policies_situations ps	on	ps.pols_policy_situation_id = i.inv_policy_situation_id
			inner join pol_policies p				on	p.pol_policy_id = ps.pols_policy_id
			inner join pr_products_branches	pb		on	pb.prdb_product_code = p.pol_product_code
													and	pb.prdb_branch_id = p.pol_branch_id
	where	pb.prdb_account_number is not null
	group by pb.prdb_account_number having count(distinct pb.prdb_account_number) = 1


GO
