# Date: 20/06/06 # Version: 105 $DOC(PIF_REVARD_ITEM) name=Вознаграждение за ведение фонда class=1 product=ALD_PIF name_formula=$TEXT(13431585) (select partner_short_name from t_partners where id=@fund_id) + ', начислено: ' + convert(varchar(8),@oper_date,3) $ENDTEXT(13431585) remark_formula=null $STATE(CRT) name=Создан class=0 $ENDSTATE $STATE(END) name=Проведен class=0 $ENDSTATE $STATE(NEW) name=Начальный class=1 $ENDSTATE $PROP(FUND_ID) name=Фонд field_name=fund_id table_name=t_pif_revard_item field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=1 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(DOC_ID) name=Документ field_name=doc_id table_name=t_pif_revard_item field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=2 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(OPER_SUM) name=Сумма для проведения field_name=oper_sum table_name=t_pif_revard_item field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=4 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(OPER_DATE) name=Дата проведения field_name=oper_date table_name=t_pif_revard_item field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=3 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(CALC_SUM) name=Рассчитанная сумма field_name=calc_sum table_name=t_pif_revard_item field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=5 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(CALC_RATE_DATE) name=Дата курса для расчета field_name=calc_rate_date table_name=t_pif_revard_item field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=6 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(OPER_RATE_DATE) name=Дата курса для проведения field_name=oper_rate_date table_name=t_pif_revard_item field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=7 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(SET_SUM) name=Сумма для счета field_name=set_sum table_name=t_pif_revard_item field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=8 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(IS_MIN_SUM) name=Признак проведения по мин.ставке field_name=is_min_sum table_name=t_pif_revard_item field_type=int field_length=4 field_scale=0 field_prec=10 page=1 order=9 init_class=1 init_formula=0 unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(RATE_ID) name=Ставка field_name=rate_id table_name=t_pif_revard_item field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=10 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(CALC_SUM_COMPARE) name=Рассчитанная сумма для сравнения с мин.ставкой field_name=calc_sum_compare table_name=t_pif_revard_item field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=11 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(SET_SUM_NDS) name=НДС для суммы счета field_name=set_sum_nds table_name=t_pif_revard_item field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=12 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $RELATION(REL1) class=1 type=T_OPERATIONS form=ITEM_OPERS_LIST prop=null idname=item_id_s order=100 $ENDRELATION $RELATION(REL2) class=0 type=PIF_FUND form=null prop=FUND_ID idname=null order=10 $ENDRELATION $RELATION(REL3) class=0 type=PIF_REVARD_RATES form=null prop=RATE_ID idname=null order=20 $ENDRELATION $FORM(FORM1) name=Вознаграждения class=4 filter=null target_state= uo=uo_list dw=d_pif_revard_item_list procedure=ap_30000000000067038 patterns=GENERIC_VIEW_LIST user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431589) create procedure dbo.%PROC% @sid varchar(30) = null .ARGLIST_FILTER as declare @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric begin set nocount on select @action_id = %ACTION_ID% .CHECK_USER .CHECK_VIEW .ARGCONVERT_FILTER .VIEW_LIST end $ENDTEXT(13431589) $ACTION2RELATION(REL2.PARTNER_CODE) relation=REL2 where=null prop=PARTNER_CODE order=42 alias=fund_code $ENDACTION2RELATION $ACTION2RELATION(REL3.MIN_RATE) relation=REL3 where=null prop=MIN_RATE order=6 alias=min_rate $ENDACTION2RELATION $ACTION2RELATION(REL3.SET_DATE) relation=REL3 where=null prop=SET_DATE order=12 alias=rate_set_date $ENDACTION2RELATION $FILTER(DOC_ID) type=11 label=Документ prop=DOC_ID arg_code=null arg_type=null arg_length=null arg_prec=null arg_scale=null $ENDFILTER $CALC(ACC_CUR_CODE) class=1 type=varchar calc_lenght=50 calc_prec=null calc_scale=null formula=(select c.cur_code from t_currencies c, t_pif_revard_rates r where r.id=t_pif_revard_item.rate_id and r.acc_cur_id=c.id) label=null order=10 $ENDCALC $CALC(MIN_CUR_CODE) class=1 type=varchar calc_lenght=50 calc_prec=null calc_scale=null formula=(select c.cur_code from t_currencies c, t_pif_revard_rates r where r.id=t_pif_revard_item.rate_id and r.min_cur_id=c.id) label=null order=20 $ENDCALC $ENDFORM $FORM(FORM2) name=Просмотр class=5 filter=null target_state= uo=uo_edit dw=d_pif_revard_item_edit procedure=ap_30000000000067115 patterns=GENERIC_VIEW_ITEM user_define=0 isvisible=0 istab=1 posx=0 posy=0 width=2217 height=1124 proc_text=$TEXT(13431590) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric, @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric begin select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_VIEW_ITEM if @id = -1 begin begin tran .GET_PROPS .CHECK_INSERT .INIT_VARS(B) .INSERT_ITEMS .INSERT commit tran end .VIEW_ITEM end $ENDTEXT(13431590) $ACTION2RELATION(REL2.PARTNER_CODE) relation=REL2 where=null prop=PARTNER_CODE order=42 alias=partner_code $ENDACTION2RELATION $ACTION2RELATION(REL3.MIN_RATE) relation=REL3 where=null prop=MIN_RATE order=6 alias=min_rate $ENDACTION2RELATION $ACTION2RELATION(REL3.MIN_CUR_ID) relation=REL3 where=null prop=MIN_CUR_ID order=1 alias=min_cur_id $ENDACTION2RELATION $ACTION2RELATION(REL3.ACC_CUR_ID) relation=REL3 where=null prop=ACC_CUR_ID order=2 alias=acc_cur_id $ENDACTION2RELATION $ACTION2RELATION(REL3.IS_INCLUDE_NDS) relation=REL3 where=null prop=IS_INCLUDE_NDS order=3 alias=is_include_nds $ENDACTION2RELATION $ACTION2RELATION(REL3.SET_DATE) relation=REL3 where=null prop=SET_DATE order=12 alias=rate_set_date $ENDACTION2RELATION $ENDFORM $FORM(REVARD_CALC_REPORT) name=Отчет по расчету class=5 filter=null target_state= uo=uo_print dw=d_pif_revard_calc_report procedure=ap_revard_calc_report patterns=GENERIC_VIEW_ITEM user_define=1 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431590) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS declare @sum_scha money, @cur_scha money, @days int, @mess varchar(255), @rur_id numeric, @sd_rec_id numeric, @convert_value decimal(18,8), @convert_date datetime, @date_calc_b datetime, @date_calc_e datetime, @date_sha datetime --- дата СЧА в фонде declare @id_valut numeric, @massage varchar(100), @dog_no2 varchar(100), @dog_date2 datetime, @revard_rate2 decimal(19,4) .TYPE_GET('PIF_REVARDS',@doc_id,1) /* if not (.ITEMS_EXISTS(@rate_id) and .ITEM_STATE_CODE(@rate_id)='FIX') select @mess='Не подтверждена или не существует ставка' else begin .TYPE_GET('PIF_REVARD_RATES',@rate_id,2) end */ if @set_sum is null select @mess='Не определена сумма вознаграждения - необходимо провести расчет' select @sd_rec_id=max(ts_sdeps.id) from ts_sdeps where .ITEMS_EXISTS(ts_sdeps.id) -- средняя СЧА select @date_calc_b=@date_b1, @date_calc_e=@date_e1 select @days=datediff(dd,@date_calc_b, @date_calc_e)+1 if @days<0 or @days is null select @days=0 if @calc_type_id1 = 1 and @days>0 begin while @date_calc_b<=@date_calc_e begin select @cur_scha=isnull((select scha_sum from tp_pif_price_change where fond_id=@fund_id and change_date=@date_calc_b),@cur_scha) select @sum_scha=isnull(@sum_scha,0) + isnull(@cur_scha,0) select @date_calc_b=dateadd(dd,1,@date_calc_b) end select @sum_scha=round((convert(float,1.0)*convert(decimal(36,16),@sum_scha)/convert(decimal(36,16),@days)),2) end ---select @dog_no2 = select @revard_rate2 = isnull((select top 1 r.revard_rate from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' and @sum_scha BETWEEN isnull(r.level_from,0) and isnull(r.level_to,@sum_scha) order by revard_rate desc),0) ---.EXIT_MESSAGE_PARM('fgfgfg',@calc_sum) select @sid as sid, @doc_date1 as rep_date, (select partner_name from t_partners where id=@fund_id) as fond_name, (select partner_name from t_partners where id=@partner_id1) as partner_name, (select s.j_head_last_name from t_partners_jur s, ts_sdeps where s.id=ts_sdeps.partner_id and ts_sdeps.id=@sd_rec_id) as sd_name, @dog_no2 as dog_no, @dog_date2 as dog_date, @date_b1 as date_b, @date_e1 as date_e, @calc_rate_date as calc_rate_date, .SIMPLE_NAME(5600,@revard_type_id1) as revard_name, .SIMPLE_NAME(5601,@calc_type_id1) as calc_type_name, convert(decimal(18,4),@min_rate1) as min_sum, .CUR_CODE(@min_cur_id1) as min_sum_cur, convert(decimal(18,4),@calc_sum) as calc_sum, convert(decimal(18,4),@calc_sum_compare) as calc_sum_compare, convert(decimal(18,4),(case @is_include_nds1 when 0 then @set_sum else @set_sum - @set_sum_nds end)) as set_sum, .CUR_CODE(@acc_cur_id1) as acc_sum_cur, convert(decimal(18,4),@set_sum_nds) as set_nds, convert(decimal(18,4),(case @is_include_nds1 when 0 then @set_sum + @set_sum_nds else @set_sum end)) as set_sum_plus_nds, @is_include_nds1 as include_nds, -- convert(decimal(18,4),@revard_rate2) as revard_rate, @revard_rate2 as revard_rate, convert(decimal(18,4),@sum_scha) as sum_scha, @mess as mess, (case when @mess is not null then 0 else convert(int,@calc_type_id1) end) as rep_type .END $ENDTEXT(13431590) $ENDFORM $FORM(REVARD_CALC_REP_DET) name=Перечень отчета по расчету class=4 filter=null target_state= uo=null dw=d_pif_revard_calc_rep_det procedure=ap_revard_calc_rep_det patterns=null user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431590) create procedure dbo.%PROC% @sid varchar(30) = null as .TRANSACTION_SAVE declare @id numeric, @prop_id numeric, @cur_scha money, @cur_sum money, @base int, @days int, @proc money, @date_sha datetime, --- дата СЧА в фонде @sum_scha money declare @id_valut numeric, @massage varchar(100) create table #rep( calc_date datetime null, scha_date datetime null, sum_scha money null, sum_calc money null, procent money null ) if @sid='' select @sid=null select @id=convert(numeric,@sid) .GET_PROPS .TYPE_GET('PIF_REVARDS',@doc_id,1) /* if .ITEMS_EXISTS(@rate_id) and .ITEM_STATE_CODE(@rate_id)='FIX' begin .TYPE_GET('PIF_REVARD_RATES',@rate_id,2) */ select @days=datediff(dd,@date_b1,@date_e1)+1 if @days<0 or @days is null select @days=0 ---- Проверяем валюту ставок на соответствие во всех ставках и находим ее if (select count(distinct level_cur_id) from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' ) > 1 .EXIT_MESSAGE('Существуют ставки с разными валютами') ---- 'ошибка если есть ставки с разными валютами' else select @id_valut = level_cur_id from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' ----------------------------------- if @calc_type_id1 in (2,3) and @days>0 -- ежедневная СЧА begin select @base=365 if @calc_type_id1 = 3 select @date_b1=dateadd(dd,-1,@date_b1), @date_e1=dateadd(dd,-1,@date_e1) ---- Проверка задания курса на дату ------ if (not exists(select 1 from t_rates where .ITEMS_EXISTS(t_rates.id) and convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_b1,104) and cur_id = @id_valut )) and (.CUR_CODE(@id_valut) <> 'RUR') begin select @massage = 'Не дату '+convert(varchar(10),@date_b1,104)+' не задан курс валюты ' + (.CUR_CODE(@id_valut)) .EXIT_MESSAGE(@massage) end ---------------------------------- select @cur_scha=isnull((select scha_sum from tp_pif_price_change where fond_id=@fund_id and change_date=@date_b1),@cur_scha) select @proc = isnull((select top 1 r.revard_rate from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' and @cur_scha BETWEEN isnull(r.level_from * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_b1,104) and cur_id = r.level_cur_id),1),0) and isnull(r.level_to * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_b1,104) and cur_id = r.level_cur_id),1),@sum_scha) order by revard_rate desc),0) if @proc = 0 .EXIT_MESSAGE_PARM('Не задана ставка для порога СЧА = ',@cur_scha) select @cur_sum=@cur_scha*@proc/100.0 select @cur_sum=round((convert(float,1.0)*convert(decimal(36,16),@cur_sum)/convert(decimal(36,16),@base)),2) if @calc_type_id1 = 2 insert #rep (calc_date,scha_date,sum_scha,sum_calc,procent) values (@date_b1,@date_b1,@cur_scha,@cur_sum,@proc) if @calc_type_id1 = 3 insert #rep (calc_date,scha_date,sum_scha,sum_calc,procent) values (dateadd(dd,1,@date_b1),@date_b1,@cur_scha,@cur_sum,@proc) end if @calc_type_id1 in (1) begin ---- создаем курсор СЧА за период declare #sha cursor for select scha_sum,change_date from tp_pif_price_change where fond_id=@fund_id and change_date BETWEEN isnull(@date_b1,0) and isnull(@date_e1,0) open #sha fetch #sha into @sum_scha,@date_sha while .CURSOR_STATE=0 begin ---- Проверка задания курса ------ if (not exists(select 1 from t_rates where .ITEMS_EXISTS(t_rates.id) and convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_sha,104) and cur_id = @id_valut )) and (.CUR_CODE(@id_valut) <> 'RUR') begin select @massage = 'Не дату '+convert(varchar(10),@date_sha,104)+' не задан курс валюты ' + (.CUR_CODE(@id_valut)) .EXIT_MESSAGE(@massage) end ---------------------------------- select @proc = isnull((select top 1 r.revard_rate from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_sha) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' and @sum_scha BETWEEN isnull(r.level_from * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_sha,104) and cur_id = r.level_cur_id),1),0) and isnull(r.level_to * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_sha,104) and cur_id = r.level_cur_id),1),@sum_scha) order by revard_rate desc),0) if @proc = 0 .EXIT_MESSAGE_PARM('Не задана ставка для порога СЧА = ',@sum_scha) select @cur_sum = @sum_scha* @proc/100.0 ---select @calc_sum = @calc_sum /365 select @cur_sum=round((convert(float,1.0)*convert(decimal(36,16),@cur_sum)/convert(decimal(36,16),365)),3) insert #rep (calc_date,scha_date,sum_scha,sum_calc,procent) values (@doc_date1,@date_sha,@sum_scha,@cur_sum,@proc) fetch #sha into @sum_scha,@date_sha --- select @date_b1=dateadd(dd,1,@date_b1) end close #sha .DEALLOCATE #sha end select calc_date, scha_date, convert(decimal(18,4),sum_scha) as sum_scha, convert(decimal(18,4),sum_calc) as sum_calc, convert(decimal(18,4),procent) as procent from #rep .TRANSACTION_RESTORE $ENDTEXT(13431590) $ENDFORM $ACTION(ACTION1) name=Добавить class=1 form=FORM2 target_state=CRT procedure=ap_30000000000067120 patterns=GENERIC_INSERT user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=2149 height=528 proc_text=$TEXT(13431592) create procedure dbo.%PROC% @sid varchar(30) = null, .ARGLIST as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @item_name varchar(100), @new_state_id numeric begin begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE .ARGCONVERT .INIT_VARS .UPDATE_ITEMS .UPDATE .UPDATE_STATE .ACTION_HISTORY commit tran select sid = convert(varchar, @id) end $ENDTEXT(13431592) $ENDACTION $ACTION(ACTION2) name=Изменить class=2 form=FORM2 target_state=null procedure=ap_30000000000067121 patterns=GENERIC_UPDATE user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=2158 height=1004 proc_text=$TEXT(13431592) create procedure dbo.%PROC% @sid varchar(30) = null, .ARGLIST as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @item_name varchar(100), @new_state_id numeric begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE .ARGCONVERT .UPDATE_ITEMS .UPDATE .UPDATE_STATE .ACTION_HISTORY commit tran $ENDTEXT(13431592) $ENDACTION $ACTION(ACTION3) name=Удалить class=9 form=null target_state=null procedure=ap_30000000000067122 patterns=GENERIC_MOVE user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431592) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_UPDATE begin tran .UPDATE_STATE .ACTION_HISTORY .TYPE_DELETE /*-------Проводки ----------*/ commit tran .END $ENDTEXT(13431592) $ENDACTION $ACTION(REVARD_CALC) name=Пересчет class=9 form=null target_state=null procedure=ap_pif_revard_item_calc patterns=GENERIC_MOVE user_define=1 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431592) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_UPDATE .GET_PROPS .TYPE_GET('PIF_REVARDS',@doc_id,1) declare @fund_plan_id numeric, @pp_id numeric, @acc_id numeric, @rur_id numeric, @cur_scha money, @sum_scha money, @cur_sum money, @days int, @base int, @convert_value decimal(18,8), @calc_sum_convert decimal(18,8), @set_sum_convert decimal(18,8), @convert_date datetime, @fund_name varchar(255), @revard_name varchar(255), @mess varchar(255), @date_sha datetime --- дата СЧА в фонде declare @id_valut numeric, @massage varchar(100), @proc money begin tran select @revard_name=.SIMPLE_NAME(5600,@revard_type_id1), @fund_name=(select partner_short_name from t_partners where id=@fund_id) /* if not (.ITEMS_EXISTS(@rate_id) and .ITEM_STATE_CODE(@rate_id)='FIX') begin select @mess='Не подтверждена или не существует ставка для '+@revard_name+', Фонд: '+@fund_name .EXIT_MESSAGE(@mess) end */ ---.TYPE_GET('PIF_REVARD_RATES',@rate_id,2) --- .EXIT_MESSAGE_PARM('gffg',@calc_type_id1) if @calc_rate_date is null select @calc_rate_date=@date_e1 if @oper_rate_date is null select @oper_rate_date=@calc_rate_date select @rur_id=.CUR('RUR') select @calc_sum=null select @days=datediff(dd,@date_b1,@date_e1)+1 if @days<0 or @days is null select @days=0 ---- Проверяем валюту ставок на соответствие во всех ставках и находим ее if (select count(distinct level_cur_id) from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' ) > 1 .EXIT_MESSAGE('Существуют ставки с разными валютами') ---- 'ошибка если есть ставки с разными валютами' else select @id_valut = level_cur_id from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' ----------------------------------- if @days>0 begin -- Расчеты --- в @calc_sum - расч.сумма if @calc_type_id1 = 1 -- средняя СЧА begin select @base=12 ---- создаем курсор СЧА за период declare #sha cursor for select scha_sum,change_date from tp_pif_price_change where fond_id=@fund_id and change_date BETWEEN isnull(@date_b1,0) and isnull(@date_e1,0) open #sha fetch #sha into @sum_scha,@date_sha while .CURSOR_STATE=0 begin ---- Проверка задания курса ------ if (not exists(select 1 from t_rates where .ITEMS_EXISTS(t_rates.id) and convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_sha,104) and cur_id = @id_valut )) and (.CUR_CODE(@id_valut) <> 'RUR') begin select @massage = 'Не дату '+convert(varchar(10),@date_sha,104)+' не задан курс валюты ' + (.CUR_CODE(@id_valut)) .EXIT_MESSAGE(@massage) end ---------------------------------- select top 1 @proc = isnull(r.revard_rate,0), @rate_id = id from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_sha) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' and @sum_scha BETWEEN isnull(r.level_from * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_sha,104) and cur_id = r.level_cur_id),1),0) and isnull(r.level_to * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_sha,104) and cur_id = r.level_cur_id),1),@sum_scha) order by revard_rate desc if @proc = 0 .EXIT_MESSAGE_PARM('Не задана ставка для порога СЧА = ',@sum_scha) select @calc_sum= round(isnull(@calc_sum,0),3) + round(@sum_scha* @proc/100.0,3) fetch #sha into @sum_scha,@date_sha --- select @date_b1=dateadd(dd,1,@date_b1) end -- select @calc_sum= @calc_sum /365 select @calc_sum=round((convert(float,1.0)*convert(decimal(36,16),@calc_sum)/convert(decimal(36,16),365)),3) close #sha .DEALLOCATE #sha end /* if @calc_type_id1 in (2,3) -- ежедневная СЧА begin select @base=365 if @calc_type_id1 = 3 select @date_b1=dateadd(dd,-1,@date_b1), @date_e1=dateadd(dd,-1,@date_e1) while @date_b1<=@date_e1 begin select @cur_scha=isnull((select scha_sum from tp_pif_price_change where fond_id=@fund_id and change_date=@date_b1),@cur_scha) --- select @cur_sum=@cur_scha*@revard_rate2/100.0 select @cur_sum=round((convert(float,1.0)*convert(decimal(36,16),@cur_sum)/convert(decimal(36,16),@base)),2) select @calc_sum=isnull(@calc_sum,0) + isnull(@cur_sum,0) select @date_b1=dateadd(dd,1,@date_b1) end end */ if @calc_type_id1 in (2,3) -- ежедневная СЧА begin select @base=365 if @calc_type_id1 = 3 select @date_b1=dateadd(dd,-1,@date_b1) ---- Проверка задания курса на дату ------ if (not exists(select 1 from t_rates where .ITEMS_EXISTS(t_rates.id) and convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_b1,104) and cur_id = @id_valut )) and (.CUR_CODE(@id_valut) <> 'RUR') begin select @massage = 'Не дату '+convert(varchar(10),@date_b1,104)+' не задан курс валюты ' + (.CUR_CODE(@id_valut)) .EXIT_MESSAGE(@massage) end ---------------------------------- select @sum_scha = isnull((select scha_sum from tp_pif_price_change where fond_id=@fund_id and change_date=@date_b1),0) select top 1 @proc = isnull(r.revard_rate,0), @rate_id = id from t_pif_revard_rates r where r.fund_id=@fund_id and r.revard_type_id=@revard_type_id1 and r.set_date = (select max(set_date) from t_pif_revard_rates a where fund_id=@fund_id and revard_type_id=@revard_type_id1 and .ITEM_STATE_CODE(a.id)='FIX' and a.set_date <= @date_b1) and .ITEMS_EXISTS(r.id) and .ITEM_STATE_CODE(r.id)='FIX' and @sum_scha BETWEEN isnull(r.level_from * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_b1,104) and cur_id = r.level_cur_id),1),0) and isnull(r.level_to * isnull((select max(rate_value) from t_rates where convert(varchar(10),t_rates.rate_date,104) = convert(varchar(10),@date_b1,104) and cur_id = r.level_cur_id),1),@sum_scha) order by revard_rate desc if @proc = 0 .EXIT_MESSAGE_PARM('Не задана ставка для порога СЧА = ',@sum_scha) select @cur_sum=@sum_scha * @proc/100.0 select @cur_sum=round((convert(float,1.0)*convert(decimal(36,16),@cur_sum)/convert(decimal(36,16),@base)),2) select @calc_sum=isnull(@cur_sum,0) end if @calc_type_id1 = 4 and @revard_type_id1 = 3 -- обороты (только для УК) begin select @min_rate1=null, @min_cur_id1=null select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @pp_id = (select pp.id from t_plans2partner pp where pp.plan_id=@fund_plan_id and pp.partner_id=@fund_id and .ITEMS_EXISTS(pp.id)) select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @calc_sum=sum(isnull(ol.sum_bal,0)) from t_operations o, t_oper_list ol where o.id=ol.head_id and o.partner2plan_id=@pp_id and ol.acc_id=@acc_id and ol.deb_or_cred=-1 and o.op_date >= @date_b1 and o.op_date < dateadd(dd,1,@date_e1) select @calc_sum=round((@calc_sum*convert(float,1.0)/1.18),2) end select @is_min_sum=0 -- проверка мин.ставки if isnull(@min_rate1,0) > 0 begin select @min_cur_id1=isnull(@min_cur_id1,@rur_id) if @min_cur_id1<>@rur_id begin -- переводим расч.сумму в валюту мин.ставки .CONVERT_SUM_DEC(@rur_id, @min_cur_id1, @calc_rate_date, 0, @calc_sum, @calc_sum_convert, @convert_value, @convert_date) end else select @calc_sum_convert = @calc_sum -- расч.сумма для сравнения с мин.ставкой select @calc_sum_compare = round(@calc_sum_convert,2) if isnull(@calc_sum_compare,0) < @min_rate1 select @is_min_sum=1 end -- приведение суммы счета к валюте счета if @is_min_sum=0 begin if @acc_cur_id1<>@rur_id begin .CONVERT_SUM_DEC(@rur_id, @acc_cur_id1, @calc_rate_date, 0, @calc_sum, @set_sum_convert, @convert_value, @convert_date) end else select @set_sum_convert=@calc_sum end if @is_min_sum=1 begin if @acc_cur_id1<>@min_cur_id1 begin .CONVERT_SUM_DEC(@min_cur_id1, @acc_cur_id1, @calc_rate_date, 0, @min_rate1, @set_sum_convert, @convert_value, @convert_date) end else select @set_sum_convert=@min_rate1 end -- сумма счета select @set_sum = round(@set_sum_convert,2) -- НДС if @is_include_nds1=0 select @set_sum_nds = (select round((@set_sum*1.18*convert(float,1.0) - @set_sum),2)) else select @set_sum_nds = (select round((@set_sum - @set_sum*convert(float,1.0)/1.18),2)) select @oper_sum=null, @oper_date=null end .UPDATE commit tran .END $ENDTEXT(13431592) $ENDACTION $ACTION(REVARD_CANCEL) name=Отменить проведение class=9 form=null target_state=CRT procedure=ap_30000000000067124 patterns=GENERIC_MOVE user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431592) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_UPDATE begin tran .UPDATE_STATE .ACTION_HISTORY .OPERS_ROLL update t_pif_revard_item set oper_sum=null where id=@id commit tran .END $ENDTEXT(13431592) $ENDACTION $ACTION(REVARD_OP) name=Провести class=9 form=null target_state=END procedure=ap_30000000000067125 patterns=GENERIC_MOVE user_define=1 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(13431592) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_UPDATE .GET_PROPS .TYPE_GET('PIF_REVARDS',@doc_id,1) declare @deb_acc_id numeric, @cred_acc_id numeric, @fund_plan_id numeric, @remark varchar(255), @info varchar(255), @convert_value decimal(18,8), @convert_date datetime, @oper_sum_rur decimal(18,8), @rur_id numeric, @mess varchar(255) select @info=' '+.SIMPLE_NAME(5600,@revard_type_id1)+', Фонд: ' +(select partner_short_name from t_partners where id=@fund_id) begin tran select @oper_date=isnull(@oper_date,(.OPERDAY)) if @oper_date is null begin .EXIT_MESSAGE_PARM('Не задана дата проводок',@info) end /* if not (.ITEMS_EXISTS(@rate_id) and .ITEM_STATE_CODE(@rate_id)='FIX') begin select @mess='Не подтверждена или не существует ставка для' + @info .EXIT_MESSAGE(@mess) end .TYPE_GET('PIF_REVARD_RATES',@rate_id,2) */ if not .ITEMS_EXISTS(@partner_id1) .EXIT_MESSAGE_PARM('Не задана организация',@info) -- Сумма select @rur_id=.CUR('RUR') select @oper_sum=@set_sum if @is_include_nds1=0 select @oper_sum = @oper_sum + @set_sum_nds if @oper_rate_date is null select @oper_rate_date=@calc_rate_date if @acc_cur_id1<>@rur_id begin .CONVERT_SUM_DEC(@acc_cur_id1, @rur_id, @oper_rate_date, 0, @oper_sum, @oper_sum_rur, @convert_value, @convert_date) select @oper_sum=round(@oper_sum_rur,2) end if isnull(@oper_sum,0)<=0 begin select @mess='Неверно рассчитана сумма для проведения:' + @info .EXIT_MESSAGE(@mess) end update t_pif_revard_item set oper_sum=@oper_sum, oper_date=@oper_date, oper_rate_date=@oper_rate_date where id=@id -- Счета select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') if @revard_type_id1 = 3 -- УК begin select @deb_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.1') end else begin select @deb_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') if @revard_type_id1 = 1 -- СД select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.2') else if @revard_type_id1 = 2 -- СР select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.3') else if @revard_type_id1 = 4 -- Аудитор select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.18') else if @revard_type_id1 = 5 -- Прочие расходы begin select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.8') select @deb_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') end else select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.8') end -- Проведение select @remark=@info if isnull(@oper_sum,0)>0 begin .UPDATE_STATE .ACTION_HISTORY .OPERATION(@fund_id,@fund_plan_id,@oper_date,@deb_acc_id,@cred_acc_id,@oper_sum,'RUR',@oper_date,null,null,@remark,N) .UPDATE_SUBC(K,'partners',@partner_id1) .SUBC_CHECK end commit tran .END $ENDTEXT(13431592) $ENDACTION $STATE2ACTION(CRT.ACTION1) state=CRT action=ACTION1 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(CRT.ACTION2) state=CRT action=ACTION2 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(CRT.ACTION3) state=CRT action=ACTION3 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(CRT.FORM1) state=CRT action=FORM1 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(CRT.FORM2) state=CRT action=FORM2 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(CRT.REVARD_CALC) state=CRT action=REVARD_CALC is_available=1 $ENDSTATE2ACTION $STATE2ACTION(CRT.REVARD_CALC_REPORT) state=CRT action=REVARD_CALC_REPORT is_available=1 $ENDSTATE2ACTION $STATE2ACTION(CRT.REVARD_CALC_REP_DET) state=CRT action=REVARD_CALC_REP_DET is_available=0 $ENDSTATE2ACTION $STATE2ACTION(CRT.REVARD_CANCEL) state=CRT action=REVARD_CANCEL is_available=0 $ENDSTATE2ACTION $STATE2ACTION(CRT.REVARD_OP) state=CRT action=REVARD_OP is_available=1 $ENDSTATE2ACTION $STATE2ACTION(END.ACTION1) state=END action=ACTION1 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(END.ACTION2) state=END action=ACTION2 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(END.ACTION3) state=END action=ACTION3 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(END.FORM1) state=END action=FORM1 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(END.FORM2) state=END action=FORM2 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(END.REVARD_CALC) state=END action=REVARD_CALC is_available=0 $ENDSTATE2ACTION $STATE2ACTION(END.REVARD_CALC_REPORT) state=END action=REVARD_CALC_REPORT is_available=1 $ENDSTATE2ACTION $STATE2ACTION(END.REVARD_CALC_REP_DET) state=END action=REVARD_CALC_REP_DET is_available=0 $ENDSTATE2ACTION $STATE2ACTION(END.REVARD_CANCEL) state=END action=REVARD_CANCEL is_available=1 $ENDSTATE2ACTION $STATE2ACTION(END.REVARD_OP) state=END action=REVARD_OP is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.ACTION1) state=NEW action=ACTION1 is_available=1 $ENDSTATE2ACTION $STATE2ACTION(NEW.ACTION2) state=NEW action=ACTION2 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.ACTION3) state=NEW action=ACTION3 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.FORM1) state=NEW action=FORM1 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.FORM2) state=NEW action=FORM2 is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.REVARD_CALC) state=NEW action=REVARD_CALC is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.REVARD_CALC_REPORT) state=NEW action=REVARD_CALC_REPORT is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.REVARD_CALC_REP_DET) state=NEW action=REVARD_CALC_REP_DET is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.REVARD_CANCEL) state=NEW action=REVARD_CANCEL is_available=0 $ENDSTATE2ACTION $STATE2ACTION(NEW.REVARD_OP) state=NEW action=REVARD_OP is_available=0 $ENDSTATE2ACTION $STATE2PROP(CRT.CALC_RATE_DATE) state=CRT prop=CALC_RATE_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.CALC_SUM) state=CRT prop=CALC_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.CALC_SUM_COMPARE) state=CRT prop=CALC_SUM_COMPARE enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(CRT.DOC_ID) state=CRT prop=DOC_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.FUND_ID) state=CRT prop=FUND_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(CRT.IS_MIN_SUM) state=CRT prop=IS_MIN_SUM enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(CRT.OPER_DATE) state=CRT prop=OPER_DATE enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.OPER_RATE_DATE) state=CRT prop=OPER_RATE_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.OPER_SUM) state=CRT prop=OPER_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.RATE_ID) state=CRT prop=RATE_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(CRT.SET_SUM) state=CRT prop=SET_SUM enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.SET_SUM_NDS) state=CRT prop=SET_SUM_NDS enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.CALC_RATE_DATE) state=END prop=CALC_RATE_DATE enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.CALC_SUM) state=END prop=CALC_SUM enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.CALC_SUM_COMPARE) state=END prop=CALC_SUM_COMPARE enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.DOC_ID) state=END prop=DOC_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.FUND_ID) state=END prop=FUND_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.IS_MIN_SUM) state=END prop=IS_MIN_SUM enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.OPER_DATE) state=END prop=OPER_DATE enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.OPER_RATE_DATE) state=END prop=OPER_RATE_DATE enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.OPER_SUM) state=END prop=OPER_SUM enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.RATE_ID) state=END prop=RATE_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.SET_SUM) state=END prop=SET_SUM enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(END.SET_SUM_NDS) state=END prop=SET_SUM_NDS enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(NEW.CALC_RATE_DATE) state=NEW prop=CALC_RATE_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.CALC_SUM) state=NEW prop=CALC_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.CALC_SUM_COMPARE) state=NEW prop=CALC_SUM_COMPARE enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(NEW.DOC_ID) state=NEW prop=DOC_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.FUND_ID) state=NEW prop=FUND_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(NEW.IS_MIN_SUM) state=NEW prop=IS_MIN_SUM enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(NEW.OPER_DATE) state=NEW prop=OPER_DATE enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.OPER_RATE_DATE) state=NEW prop=OPER_RATE_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.OPER_SUM) state=NEW prop=OPER_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.RATE_ID) state=NEW prop=RATE_ID enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $STATE2PROP(NEW.SET_SUM) state=NEW prop=SET_SUM enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(NEW.SET_SUM_NDS) state=NEW prop=SET_SUM_NDS enable=0 mandatory=0 visible=0 $ENDSTATE2PROP $ENDDOC