SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure [dbo].[p_dyn_scenario_fields]
	@scen_code	ais_code_short					-- code du scénario

as
	/*
	DGE 
	Cette procédure renvoie la liste des champs utilisés dans un scénario.
	Elle sert à sélectionner les champs pour configurer les valeurs par défaut 
	et d'autres paramètres (obligatoire, tarifaire etc).
	*/

	set nocount on;
	
	select	f.fld_table_name, f.fld_field_name, 
			f.fld_l1, f.fld_l2, f.fld_l3, 
			f.fld_type, f.fld_size
	from	md_fields_cpl f
			inner join	(
						select	distinct fld.frmuf_table_name, fld.frmuf_field_name
						from	dyn_scenarios_forms frm
								inner join dyn_forms_used_fields fld on fld.frmuf_form_code = frm.sf_form_code
						where	frm.sf_scen_code = @scen_code
						-- les champs qui ne sont pas déjà configurés au niveau du scénario
						and		not exists	(
											select	1
											from	dyn_scenarios_fields sf
											where	sf.scf_scen_code = frm.sf_scen_code
											and		sf.scf_table_name = fld.frmuf_table_name
											and		sf.scf_field_name = fld.frmuf_field_name
											)
						) as t	on	t.frmuf_table_name = f.fld_table_name
								and	t.frmuf_field_name = f.fld_field_name
GO
