# Date: 07/07/06 # Version: 105 $DOC(PIF_PAY_REPORT) name=Отчет регистратора о принятых заявках class=1 product=ALD_PIF name_formula=.TYPE_NAME(@type_id)+' №: '+@in_no+' от '+.DATE_TO_STR(@in_date) remark_formula='ПИФ: '+.ITEM_NAME(@owner_id)+' Регистратор: '+.ITEM_NAME(@correspondent_id) $STATE(BAD) name=Отказано class=0 $ENDSTATE $STATE(BEG) name=Начальный class=1 $ENDSTATE $STATE(DEL) name=Удален class=2 $ENDSTATE $STATE(ED) name=Редактируется class=0 $ENDSTATE $STATE(ED_CLAIM) name=Ввод заявок class=0 $ENDSTATE $STATE(END_CHECK) name=Сквитован class=0 $ENDSTATE $STATE(NOT_CHECK) name=Квитовка не прошла class=0 $ENDSTATE $STATE(OP_END) name=Подтвержден class=0 $ENDSTATE $STATE(WAIT_CHECK) name=Ожидает квитовку class=0 $ENDSTATE $PROP(OUT_DATE) name=Внешняя дата корреспондента field_name=out_date table_name=td_depo_docs field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=1 init_class=null 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(IN_DATE) name=Дата документа field_name=in_date table_name=td_depo_docs field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=2 init_class=1 init_formula=.OPERDAY unique_index=1 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(WHO_GET) name=Кто принял field_name=who_get table_name=td_depo_docs field_type=varchar field_length=100 field_scale=null field_prec=100 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(WHO_PUT) name=Кто отправил field_name=who_put table_name=td_depo_docs field_type=varchar field_length=100 field_scale=null field_prec=100 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(OUT_NO) name=Внешний номер field_name=out_no table_name=td_depo_docs field_type=varchar field_length=50 field_scale=null field_prec=50 page=1 order=5 init_class=null 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(IN_NO) name=Номер документа field_name=in_no table_name=td_depo_docs field_type=varchar field_length=50 field_scale=null field_prec=50 page=1 order=6 init_class=0 init_formula=.GET_CONST('DEPODOC_NO_PREFIX')+ .FILL(%N%,'0',6) unique_index=1 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(CORRESPONDENT_ID) name=Корреспондент field_name=correspondent_id table_name=td_depo_docs field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=7 init_class=1 init_formula=(select td_pay_fond.spec_reg_id from td_pay_fond where id=@owner_id) 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(PAYER_ID) name=Плательщик field_name=payer_id table_name=td_depo_docs field_type=numeric field_length=9 field_scale=0 field_prec=18 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(PAY_SUM) name=Сумма field_name=pay_sum table_name=td_depo_docs field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=9 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(INITIATOR_ID) name=Инициатор field_name=initiator_id table_name=td_depo_docs 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(DOCUMENT_FORM_ID) name=Форма документа field_name=document_form_id table_name=td_depo_docs field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=11 init_class=1 init_formula=1 unique_index=null numerator=null import_type=null import_table=null import_field= import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(DEPO_DOC_TYPE) name=Входящий исходящий или внутр field_name=depo_doc_type table_name=td_depo_docs field_type=int field_length=4 field_scale=0 field_prec=10 page=1 order=12 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(FOLDER_ID) name=Депозитарная папка field_name=folder_id table_name=td_depo_docs field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=13 init_class=2 init_formula=.DEPO_FOLDER_DEFAULT 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(SUM_CUR_ID) name=Валюта суммы field_name=sum_cur_id table_name=td_depo_docs field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=14 init_class=1 init_formula=.CUR("RUR") 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_COMMENT) name=Коментарии field_name=doc_comment table_name=td_depo_docs field_type=varchar field_length=255 field_scale=null field_prec=255 page=1 order=15 init_class=null 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(OWNER_ID) name=Фонд field_name=owner_id table_name=td_depo_docs field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=16 init_class=1 init_formula=.ORGANIZATION_PIF 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(REG_DATE) name=Дата проведения в реестре field_name=reg_date table_name=ts_reg_report field_type=datetime field_length=8 field_scale=3 field_prec=23 page=2 order=17 init_class=1 init_formula=.OPERDAY 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(PAY_PRICE) name=Цена пая field_name=pay_price table_name=ts_reg_report field_type=money field_length=8 field_scale=4 field_prec=19 page=2 order=18 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(REP_NO) name=Номер отчета field_name=rep_no table_name=ts_reg_report field_type=varchar field_length=50 field_scale=null field_prec=50 page=2 order=19 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(PAY_DATE) name=Дата ценообразования field_name=pay_date table_name=ts_reg_report field_type=datetime field_length=8 field_scale=3 field_prec=23 page=2 order=20 init_class=1 init_formula=dateadd(dd,-1,(.OPERDAY)) 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(REL7) class=1 type=T_OPERATIONS form=ITEM_OPERS_LIST prop=null idname=item_id_s order=600 $ENDRELATION $RELATION(REL2) class=4 type=D_DEPO_FOLDERS form=null prop=FOLDER_ID idname=null order=null $ENDRELATION $RELATION(REL3) class=0 type=PARTNERS form=null prop=CORRESPONDENT_ID idname=null order=null $ENDRELATION $RELATION(REL4) class=0 type=PARTNERS form=null prop=PAYER_ID idname=null order=null $ENDRELATION $RELATION(REL5) class=0 type=PARTNERS form=null prop=INITIATOR_ID idname=null order=null $ENDRELATION $RELATION(REL6) class=0 type=PIF_FUND form=null prop=OWNER_ID idname=null order=null $ENDRELATION $RELATION(REL1) class=1 type=ACTIONS_HISTORY form=UO_ACTIONS_HISTORY_LIST prop=null idname=sid order=500 $ENDRELATION $RELATION(REL8) class=1 type=SR_REPORTS form=UO_SR_REPORTS_PAGE_LIST prop=null idname=foundation_id_s order=700 $ENDRELATION $FORM(D_PIF_PAY_REP_EDIT) name=Просмотр class=5 filter=null target_state= uo=uo_depooper_edit dw=d_pif_pay_rep_edit procedure=ap_10000000000089126 patterns=GENERIC_VIEW_ITEM_P1 user_define=0 isvisible=0 istab=1 posx=0 posy=0 width=2441 height=1332 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_VIEW_ITEM if @id = -1 begin begin tran .GET_PROPS .CHECK_INSERT .INIT_VARS(B) .INSERT_ITEMS .INSERT commit tran end .INSERT_INFO4SR_OPER(@id) .VIEW_ITEM(ALL,1) .END $ENDTEXT(09140485) $ACTION2RELATION(REL5.PARTNER_CODE) relation=REL5 where=null prop=PARTNER_CODE order=null alias=initiator_code $ENDACTION2RELATION $ACTION2RELATION(REL5.PARTNER_SHORT_NAME) relation=REL5 where=null prop=PARTNER_SHORT_NAME order=null alias=initiator_short_name $ENDACTION2RELATION $ACTION2RELATION(REL4.PARTNER_CODE) relation=REL4 where=null prop=PARTNER_CODE order=null alias=payer_code $ENDACTION2RELATION $ACTION2RELATION(REL4.PARTNER_SHORT_NAME) relation=REL4 where=null prop=PARTNER_SHORT_NAME order=null alias=payer_short_name $ENDACTION2RELATION $ACTION2RELATION(REL3.PARTNER_NAME) relation=REL3 where=null prop=PARTNER_NAME order=null alias=corr_name $ENDACTION2RELATION $ACTION2RELATION(REL6.PARTNER_CODE) relation=REL6 where=null prop=PARTNER_CODE order=null alias=partner_code $ENDACTION2RELATION $ACTION2RELATION(REL6.PARTNER_SHORT_NAME) relation=REL6 where=null prop=PARTNER_SHORT_NAME order=null alias=partner_short_name $ENDACTION2RELATION $BIND(BIND2) type=PIF_PAY2REP_IMP action=FORM1 class=1 order=3 idname=extract_id_s $ENDBIND $BIND(BIND1) type=PIF_PAYS2REPORT action=FORM1 class=1 order=2 idname=extract_id_s $ENDBIND $BIND(BIND3) type=PIF_PAY_REPORT action=FORM2 class=1 order=1 idname=null $ENDBIND $BIND(BIND4) type=SR_INFO4OPER action=D_SR_INFO4OPER_EDIT class=1 order=4 idname=sid $ENDBIND $ENDFORM $FORM(FORM1) name=Список для текущего фонда class=4 filter=null target_state= uo=uo_list dw=d_pif_pay_rep_list procedure=ap_10000000000089199 patterns=GENERIC_VIEW_LIST user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) 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 and td_depo_docs.owner_id=.ORGANIZATION end $ENDTEXT(09140485) $ACTION2RELATION(REL5.PARTNER_CODE) relation=REL5 where=null prop=PARTNER_CODE order=null alias=initiator_code $ENDACTION2RELATION $ACTION2RELATION(REL5.PARTNER_SHORT_NAME) relation=REL5 where=null prop=PARTNER_SHORT_NAME order=null alias=initiator_short_name $ENDACTION2RELATION $ACTION2RELATION(REL3.PARTNER_CODE) relation=REL3 where=null prop=PARTNER_CODE order=null alias=corr_code $ENDACTION2RELATION $ACTION2RELATION(REL3.PARTNER_SHORT_NAME) relation=REL3 where=null prop=PARTNER_SHORT_NAME order=null alias=corr_short_name $ENDACTION2RELATION $ACTION2RELATION(REL4.PARTNER_CODE) relation=REL4 where=null prop=PARTNER_CODE order=null alias=payer_code $ENDACTION2RELATION $ACTION2RELATION(REL4.PARTNER_SHORT_NAME) relation=REL4 where=null prop=PARTNER_SHORT_NAME order=null alias=payer_short_name $ENDACTION2RELATION $ACTION2RELATION(REL6.PARTNER_CODE) relation=REL6 where=null prop=PARTNER_CODE order=null alias=partner_code $ENDACTION2RELATION $ENDFORM $FORM(FORM2) name=Данные class=5 filter=null target_state= uo=uo_edit dw=d_pif_pay_rep_p2 procedure=ap_10000000000089197 patterns=GENERIC_VIEW_ITEM_P2 user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_VIEW_ITEM .VIEW_ITEM(ALL,2) .END $ENDTEXT(09140485) $ENDFORM $ACTION(#AP_INSERT_COMMON_PART4PAYS) name=#Вставка общей партии class=9 form=null target_state=null procedure=ap_insert_common_part4pays patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) create proc dbo.ap_insert_common_part4pays as declare @type_id numeric, @state_id numeric, @id numeric select @type_id=id from t_types where upper(type_code)='PIF_PAY_REPORT' select @state_id=id from t_states where upper(state_code)='OP_END' and type_id=@type_id begin tran if not exists(select 1 from td_depo_docs d, ts_reg_report r, t_items i where d.id=r.id and d.id=i.id and i.type_id=@type_id and d.in_no='000000000000' and r.rep_no='COMMON_PART4PAYS') begin exec ap_getid @id out insert t_items (id, type_id, state_id, item_name, item_remark) values (@id, @type_id, @state_id, 'Общая партия для учета паев', 'Общая партия для учета паев') insert td_depo_docs (id, in_no, in_date) values (@id, '000000000000', convert(datetime,'01/01/80',3)) insert ts_reg_report (id, rep_no) values (@id, 'COMMON_PART4PAYS') end commit tran $ENDTEXT(09140485) $ENDACTION $ACTION(ACTION_DELETE) name=Удалить class=3 form=D_PIF_PAY_REP_EDIT target_state=DEL procedure=ap_10000000000089209 patterns=GENERIC_MOVE user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @new_state_id numeric, @type_id numeric begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE .UPDATE_STATE .ACTION_HISTORY -- удаление платежей, привязанных к заявкам в отчете delete t_items from tp_paymt2pays, tp_extract2claim where t_items.id=tp_paymt2pays.id and tp_paymt2pays.pif_pay_id=tp_extract2claim.id and tp_extract2claim.extract_id=@id delete tp_paymt2pays from tp_extract2claim where tp_paymt2pays.pif_pay_id=tp_extract2claim.id and tp_extract2claim.extract_id=@id -- удаление заявок в отчете delete t_items from tp_extract2claim where t_items.id=tp_extract2claim.id and tp_extract2claim.extract_id=@id delete tp_extract2claim where tp_extract2claim.extract_id=@id commit tran $ENDTEXT(09140485) $ENDACTION $ACTION(ACTION_INSERT) name=Добавить class=1 form=D_PIF_PAY_REP_EDIT target_state=ED procedure=ap_10000000000089210 patterns=GENERIC_INSERT user_define=0 isvisible=0 istab=1 posx=0 posy=0 width=2290 height=1436 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null, .ARGLIST(ALL,1) 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(ALL,1) .INIT_VARS(AFTER,ALL,1) .DEPO_GEN_NO(@in_no,@depo_doc_type) .TEST_UNIQUE(ALL,1) .TEST_ORGANIZATION_PIF(@owner_id) .UPDATE_ITEMS .UPDATE(ALL,1) .RELGEN .UPDATE_STATE .ACTION_HISTORY commit tran select sid = convert(varchar, @id) end $ENDTEXT(09140485) $BIND(BIND1) type=PIF_PAY_REPORT action=ACTION_UPDATE_P2 class=1 order=1 idname=null $ENDBIND $BIND(BIND2) type=SR_INFO4OPER action=ACTION_UPDATE class=1 order=4 idname=sid $ENDBIND $ENDACTION $ACTION(ACTION_MOVE) name=Отменить подтверждение class=9 form=null target_state=ED_CLAIM procedure=ap_10000000000089213 patterns=GENERIC_MOVE user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @new_state_id numeric, @type_id numeric begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE .SR_OUTDOC_EXISTS_CHECK(@id) if @id=.SD_COMMON_PART4PAYS .EXIT_MESSAGE('Действие невозможно для системного документа') .UPDATE_STATE .ACTION_HISTORY .GET_PROPS ----------------------------- -- SREG ----------------------------- if .SR_FOR_PIF(@owner_id)=1 begin .ID_VAR(@sreg_id) .ID_VAR(@stock_id) .ID_VAR(@p_subacc_id) .ID_VAR(@pay_owner_id) .ID_VAR(@pifpay_id) .ID_VAR(@subacc_id) .INT_VAR(@ret) .NAME_VAR(@reg_code) .NAME_VAR(@mess) .MONEY_VAR(@share_qty) select @sreg_id=.SREG_ID select @reg_code=(select upper(partner_code) from t_partners where id=@sreg_id) select @stock_id=.SREG_PIF_STOCK_ID(@owner_id) .SREG_OPER_DATE(@id,@reg_date) declare for_sreg cursor for select x.share_qty, p.pay_owner_id, p.subacc_id, p.id from tp_extract2claim x, tp_pif_queries p where x.extract_id=@id and x.claim_id = p.id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_PAY_ALLOCATE') for read only open for_sreg fetch for_sreg into @share_qty, @pay_owner_id, @subacc_id, @pifpay_id while .CURSOR_STATE=0 begin if @subacc_id is null begin /* select @mess='В заявке № ' + isnull((select agent_regs_no from tp_pif_queries where id=@pifpay_id),'') + ' не указан раздел счета' .EXIT_MESSAGE(@mess) */ fetch for_sreg into @share_qty, @pay_owner_id, @subacc_id, @pifpay_id end else begin .SREG_CHECK_SUBACC_OWNER(@subacc_id,@pay_owner_id) select @p_subacc_id=@subacc_id exec @ret = ap_sreg_subacc_check_qty @plan_owner_code=@reg_code, @plan_code='SREG', @subacc_id=@p_subacc_id, @stock_id=@stock_id, @check_date=@reg_date, @check_qty=@share_qty, @check_deb_or_cred=1 if @ret!=0 begin select @mess='Операция приводит к отрицательным остаткам на лицевом счете пайщика, раздел № '+ isnull((select depo_subacc_no from td_depo_subacc where id=@p_subacc_id),'') + ', заявка № ' + isnull((select agent_regs_no from tp_pif_queries where id=@pifpay_id),'') .EXIT_MESSAGE(@mess) end fetch for_sreg into @share_qty, @pay_owner_id, @subacc_id, @pifpay_id end end close for_sreg .DEALLOCATE for_sreg .SR_REPORTS_DESTROY(@id) .SR_REG_JOURNAL_DEL(@id) end ----------------------------------------------------------------------------------------------- if exists(select 1 from tp_pif_queries, tp_extract2claim where tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id and upper(.ITEM_STATE_CODE(tp_pif_queries.id)) in ('CRT','CRT_NEXT','CRT_RET') and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_BUY') .EXIT_MESSAGE('Для данного документа существуют заявки на погашение с уже исполненной оплатой') update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAYS2REPORT')),'CRT') from tp_extract2claim where t_items.id=tp_extract2claim.id and tp_extract2claim.extract_id=@id update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAY_BUY')),'PROV') from tp_pif_queries, tp_extract2claim where t_items.id=tp_pif_queries.id and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_BUY' and tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAY_ALLOCATE')),'PROV') from tp_pif_queries, tp_extract2claim where t_items.id=tp_pif_queries.id and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_ALLOCATE' and tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id .OPERS_ROLL commit tran $ENDTEXT(09140485) $ENDACTION $ACTION(ACTION_MOVE1) name=Подтверждение (без партий) class=9 form=null target_state=OP_END procedure=ap_10000000000089214 patterns=GENERIC_MOVE user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @new_state_id numeric, @type_id numeric declare @outdoc_id numeric begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE ----------- -- Проверки ----------- if not exists(select 1 from tp_extract2claim where extract_id=@id) .EXIT_MESSAGE('Не указаны заявки') if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and upper(.ITEM_STATE_CODE(tp_extract2claim.claim_id))!='PROV') .EXIT_MESSAGE('Все заявки должны быть На исполнении') if exists(select 1 from tp_extract2claim where extract_id=@id and (isnull(share_qty,0)=0 or isnull(sum_for_transfer,0)=0)) .EXIT_MESSAGE('В заявках не указаны суммы или количество паев') if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and not exists (select 1 from tp_paymt2pays s where s.pif_pay_id=tp_extract2claim.id)) .EXIT_MESSAGE('Для заявки на размещение не указаны платежи') if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and tp_extract2claim.sum_for_transfer != (select round(sum(isnull(p.doc_sum,0)),2) from t_paydocs p, tp_paymt2pays s where s.pif_pay_id=tp_extract2claim.id and s.paymt_id=p.id)) .EXIT_MESSAGE('Сумма в заявке не равна сумме связанных платежей') if exists(select 1 from t_paydocs, tp_extract2claim, tp_pif_queries where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and tp_extract2claim.claim_id=tp_pif_queries.id and tp_pif_queries.pif_pay_type_id=1 and t_paydocs.pif_pay_id=tp_pif_queries.id and upper(.ITEM_STATE_CODE(t_paydocs.id))='PERF' and t_paydocs.id not in (select tp_paymt2pays.paymt_id from tp_paymt2pays)) .EXIT_MESSAGE('Существует исполненный платеж, не сквитованный с отчетом регистратора по одноразовой заявке на размещение') ----------- -- Проводки ----------- .GET_PROPS declare @sreg_oper_date datetime select @sreg_oper_date = @reg_date .SREG_OPER_DATE(@id,@sreg_oper_date) select @reg_date = @sreg_oper_date .NAME_VAR(@comment1) .NAME_VAR(@comment2) declare @sum_for_transfer money declare @sum_for_transfer_c money declare @agent_sum money declare @agent_sum_c money declare @op_agent_sum money declare @op_agent_sum_s money declare @total_sum money declare @op_pay_sum money declare @paydoc_sum money declare @paydoc_sum_s money declare @tax money declare @agent_proc money declare @tax_percent money declare @tax_percent_c money declare @tax_sum money declare @alloc_sum money declare @stock_price money declare @bal_qty money declare @share_qty .PIF_PAY_TYPE declare @share_qty_c .PIF_PAY_TYPE declare @op_share_qty .PIF_PAY_TYPE declare @op_share_qty_s .PIF_PAY_TYPE .ID_VAR(@agent_id) .ID_VAR(@agent_dog_id) .ID_VAR(@pay_owner_id) .ID_VAR(@pifdoc_id) .ID_VAR(@paymt_id) .ID_VAR(@pay2rep_id) .ID_VAR(@tax_category_id) .ID_VAR(@subacc_id) .INT_VAR(@bad) .INT_VAR(@is_new_tax) .INT_VAR(@is_manual_tax) .ID_VAR(@pif_stock_id) declare @fund_plan_id numeric declare @acc96_id numeric declare @acc7642_id numeric declare @acc7641_id numeric declare @acc_agent_id numeric declare @acc_tax_id numeric .NAME_VAR(@reg_code) declare @trancount int select @trancount=.TRAN_COUNT(0) .TRANSACTION_SAVE .DEPO_QUERY_DECLARE(#query) .DEPO_QUERY_CREATE(#query,@trancount) begin tran select @pay_price = .PIF_PAY_PRICE(@owner_id,@pay_date) if @pay_price is null .EXIT_MESSAGE('Для данного фонда не задана цена пая') update ts_reg_report set pay_price=@pay_price where id=@id select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @acc96_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.1') select @acc7642_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.4.2') select @acc7641_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.4.1') select @acc_agent_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.11') select @acc_tax_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'68.8') -------------------- --Расчеты по заявкам -------------------- select @bad=0 declare pifpays cursor for select x.id, x.sum_for_transfer, x.agent_sum, x.share_qty, x.share_qty_c, x.is_manual_tax, x.tax_sum, x.alloc_sum, x.tax_percent, x.is_new_tax, x.agent_dog_id, p.pay_owner_id, p.id from tp_extract2claim x, tp_pif_queries p where x.extract_id=@id and x.claim_id = p.id for read only open pifpays fetch pifpays into @pay2rep_id, @sum_for_transfer, @agent_sum, @share_qty, @share_qty_c, @is_manual_tax, @tax_sum, @alloc_sum, @tax_percent, @is_new_tax, @agent_dog_id, @pay_owner_id, @pifdoc_id while .CURSOR_STATE=0 begin if upper(.ITEM_TYPE_CODE(@pifdoc_id))='PIF_PAY_BUY' begin if @is_new_tax=0 select @tax_percent_c=null else select @tax_percent_c=@tax_percent exec ap_pifpay_out @share_qty_c, @is_manual_tax, @tax_sum, @alloc_sum, @tax_percent_c, @pay_owner_id, @agent_dog_id, @owner_id, @reg_date, @pay_date, @stock_price out, @sum_for_transfer_c out, -- @total_sum out, @agent_sum_c out, @agent_proc out, @tax out if @@error != 0 begin if @@trancount<>0 rollback tran return end end if upper(.ITEM_TYPE_CODE(@pifdoc_id))='PIF_PAY_ALLOCATE' begin select @tax=0 select @sum_for_transfer_c=round(sum(isnull(p.doc_sum,0)),2) from t_paydocs p, tp_paymt2pays s where s.pif_pay_id=@pay2rep_id and s.paymt_id=p.id exec ap_pifpay_in @sum_for_transfer_c, @agent_dog_id, @owner_id, @reg_date, @pay_date, @stock_price out, @share_qty_c out, @total_sum out, @agent_sum_c out, @agent_proc out if @@error != 0 begin if @@trancount<>0 rollback tran return end end select @sum_for_transfer_c=isnull(@sum_for_transfer_c,0) select @share_qty_c=isnull(@share_qty_c,0) select @agent_sum_c=isnull(@agent_sum_c,0) select @agent_proc=isnull(@agent_proc,0) select @tax=isnull(@tax,0) .PIF_ROUND_PAYS(@owner_id,@share_qty_c,@share_qty_c) .PIF_ROUND_PAYS(@owner_id,@share_qty,@share_qty) update tp_extract2claim set sum_for_transfer_c=@sum_for_transfer_c, share_qty_c=@share_qty_c, agent_sum_c=@agent_sum_c, agent_proc=@agent_proc, tax_sum=@tax where id=@pay2rep_id if isnull((select is_reg_control from td_pay_fond pif where pif.id=@owner_id),0)=0 begin select @sum_for_transfer = @sum_for_transfer_c select @share_qty = @share_qty_c select @agent_sum = @agent_sum_c update tp_extract2claim set sum_for_transfer=@sum_for_transfer, share_qty=@share_qty, agent_sum=@agent_sum where id=@pay2rep_id end if (@sum_for_transfer != @sum_for_transfer_c) or (@share_qty != @share_qty_c) or (@agent_sum != @agent_sum_c) select @bad=1 fetch pifpays into @pay2rep_id, @sum_for_transfer, @agent_sum, @share_qty, @share_qty_c, @is_manual_tax, @tax_sum, @alloc_sum, @tax_percent, @is_new_tax, @agent_dog_id, @pay_owner_id, @pifdoc_id end close pifpays .DEALLOCATE pifpays if @bad=1 begin .ITEM_MOVE_STATE(@id,'BAD') .ACTION_HISTORY update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAYS2REPORT')),'FIX') from tp_extract2claim where t_items.id=tp_extract2claim.id and tp_extract2claim.extract_id=@id commit tran return end ----------------------------- -- SREG - Проводки по реестру ----------------------------- if (select acc_in_reg from td_pay_fond where id=@owner_id)=1 begin -- остатки select @pif_stock_id=.SREG_PIF_STOCK_ID(@owner_id) select @reg_code=upper(.SREG_CODE) insert #query_stocks(id) values (@pif_stock_id) insert #query_subs(id,acc_id) select distinct td_depo_subacc.id,td_depo_subacc.depo_acc_id from td_depo_subacc, tp_extract2claim ec, tp_pif_queries pq where td_depo_subacc.act_or_pass=2 and td_depo_subacc.id=pq.subacc_id and pq.id=ec.claim_id and ec.extract_id=@id set forceplan on .DEPO_QUERY_EXEC(#query,@trancount,@reg_code,'SREG',@reg_date,@reg_date) set forceplan off update tp_extract2claim set in_acc_qty=(select abs(isnull(sum(ops.qty*ops.deb_or_cred),0)) from #query_ops ops, #query_subs subs where ops.day0 rollback transaction return end fetch for_sreg into @share_qty, @pay_owner_id, @pifdoc_id, @subacc_id end close for_sreg .DEALLOCATE for_sreg end ---------- -- Спецдеп ---------- .UPDATE_STATE .ACTION_HISTORY ------------------------- -- Проводки по размещению ------------------------- select @op_agent_sum_s = 0 select @op_share_qty_s = 0 select @paydoc_sum_s = 0 declare pifpays1 cursor for select x.sum_for_transfer, x.agent_sum, x.share_qty, x.pay_agent_id, p.pay_owner_id, p.id, d.id, d.doc_sum from tp_extract2claim x, tp_pif_queries p, tp_paymt2pays y, t_paydocs d where x.extract_id=@id and x.claim_id = p.id and y.pif_pay_id = x.id and y.paymt_id = d.id order by p.id for read only open pifpays1 fetch pifpays1 into @sum_for_transfer, @agent_sum, @share_qty, @agent_id, @pay_owner_id, @pifdoc_id, @paymt_id, @paydoc_sum while .CURSOR_STATE=0 begin if upper(.ITEM_TYPE_CODE(@pifdoc_id))='PIF_PAY_ALLOCATE' begin .PIF_ROUND_PAYS(@owner_id, @share_qty, @share_qty) select @paydoc_sum = .ROUND_MONEY(@paydoc_sum,2) if @sum_for_transfer = (@paydoc_sum_s + @paydoc_sum) begin select @op_agent_sum = @agent_sum - @op_agent_sum_s select @op_share_qty = @share_qty - @op_share_qty_s select @op_agent_sum_s = 0 select @op_share_qty_s = 0 select @paydoc_sum_s = 0 end else begin select @op_agent_sum = convert(money, (@agent_sum * @paydoc_sum / @sum_for_transfer)) select @op_agent_sum = .ROUND_MONEY(@op_agent_sum, 2) select @op_agent_sum_s = @op_agent_sum_s + @op_agent_sum select @op_share_qty = convert(.PIF_PAY_TYPE, (@share_qty * @paydoc_sum / @sum_for_transfer)) .PIF_ROUND_PAYS(@owner_id, @op_share_qty, @op_share_qty) select @op_share_qty_s = @op_share_qty_s + @op_share_qty select @paydoc_sum_s = @paydoc_sum_s + @paydoc_sum end select @op_pay_sum = @paydoc_sum - @op_agent_sum select @comment1=.ITEM_NAME(@pifdoc_id) select @bal_qty=.PAYS_QTY_BAL(@op_share_qty,@owner_id) select @comment2=@comment1 + ':зачисление паев' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7641_id,@acc96_id,@op_pay_sum,'RUR',@reg_date,0,@bal_qty,@comment2,0) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(D,'paydocs',@paymt_id) .UPDATE_SUBC(K,'partners',@pay_owner_id) .SUBC_CHECK select @comment2=@comment1 + ':начисление вознаграждения агенту' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7641_id,@acc_agent_id,@op_agent_sum,'RUR',@reg_date,0,0,@comment2,0) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(D,'paydocs',@paymt_id) .UPDATE_SUBC(K,'partners',@agent_id) .SUBC_CHECK end fetch pifpays1 into @sum_for_transfer, @agent_sum, @share_qty, @agent_id, @pay_owner_id, @pifdoc_id, @paymt_id, @paydoc_sum end close pifpays1 .DEALLOCATE pifpays1 --------------------- -- Проводки по выкупу --------------------- declare pifpays2 cursor for select x.sum_for_transfer, x.agent_sum, x.share_qty, x.tax_sum, x.pay_agent_id, p.pay_owner_id, p.id from tp_extract2claim x, tp_pif_queries p where x.extract_id=@id and x.claim_id = p.id for read only open pifpays2 fetch pifpays2 into @sum_for_transfer, @agent_sum, @share_qty, @tax_sum, @agent_id, @pay_owner_id, @pifdoc_id while .CURSOR_STATE=0 begin if upper(.ITEM_TYPE_CODE(@pifdoc_id))='PIF_PAY_BUY' begin .PIF_ROUND_PAYS(@owner_id, @share_qty, @share_qty) select @total_sum = @sum_for_transfer + isnull(@tax_sum,0) + isnull(@agent_sum,0) select @comment1=.ITEM_NAME(@pifdoc_id) select @bal_qty=.PAYS_QTY_BAL(@share_qty,@owner_id) .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc96_id,@acc7642_id,@total_sum,'RUR',@reg_date,@bal_qty,0,@comment1,0) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(K,'pifdocs',@pifdoc_id) .UPDATE_SUBC(K,'partners',@pay_owner_id) .SUBC_CHECK if isnull(@agent_sum,0)<>0 begin select @comment2 = @comment1 + ':начисление вознаграждения агенту' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7642_id,@acc_agent_id,@agent_sum,'RUR',@reg_date,0,0,@comment2,0) .UPDATE_SUBC(D,'pifdocs',@pifdoc_id) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(K,'partners',@agent_id) .SUBC_CHECK end if isnull(@tax_sum,0)<>0 begin select @comment2 = @comment1 + ':уплата налога' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7642_id,@acc_tax_id,@tax_sum,'RUR',@reg_date,0,0,@comment2,0) .UPDATE_SUBC(D,'pifdocs',@pifdoc_id) .UPDATE_SUBC(D,'partners',@pay_owner_id) .SUBC_CHECK end end fetch pifpays2 into @sum_for_transfer, @agent_sum, @share_qty, @tax_sum, @agent_id, @pay_owner_id, @pifdoc_id end close pifpays2 .DEALLOCATE pifpays2 ---------- -- Статусы ---------- update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAYS2REPORT')),'FIX') from tp_extract2claim where t_items.id=tp_extract2claim.id and tp_extract2claim.extract_id=@id update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAY_BUY')),'WAIT_CRT') from tp_pif_queries, tp_extract2claim where t_items.id=tp_pif_queries.id and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_BUY' and tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAY_ALLOCATE')),'CRT') from tp_pif_queries, tp_extract2claim where t_items.id=tp_pif_queries.id and tp_pif_queries.pif_pay_type_id=1 and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_ALLOCATE' and tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id ---------------- -- SREG - Отчеты ---------------- declare @rep4outdoc_id numeric -- для генерации исх. док-та if (select acc_in_reg from td_pay_fond where id=@owner_id)=1 begin -- расчетные счета update tp_extract2claim set bank_acc_id=(select dacc.acc_id from td_depo_accounts dacc where dacc.id = (select max(d.id) from td_depo_docs d, td_depo_subacc ds, tp_pif_queries pq where d.changed_item_id=ds.depo_acc_id and ds.id=pq.subacc_id and pq.id=tp_extract2claim.claim_id and upper(.ITEM_STATE_CODE(d.id))='OP_END' and d.arch_date = (select max(dd.arch_date) from td_depo_docs dd where dd.changed_item_id=d.changed_item_id and upper(.ITEM_STATE_CODE(dd.id))='OP_END' and dd.arch_date < dateadd(day, 1, convert(datetime,convert(varchar,@reg_date,3),3))) and d.arch_no = (select max(ddd.arch_no) from td_depo_docs ddd where ddd.changed_item_id=d.changed_item_id and upper(.ITEM_STATE_CODE(ddd.id))='OP_END' and ddd.arch_date = d.arch_date))) -- and .ITEMS_EXISTS_BY_TYPE(dacc.acc_id,'bank_accounts')) where tp_extract2claim.extract_id=@id -- отчеты .NAME_VAR(@reg_rep_no) if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_extract2claim.claim_id,'PIF_PAY_ALLOCATE')) begin select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,0,@reg_date) .TYPE_INIT('SR_REPORT_ALLOCATE',10) .TYPE_ASSIGN(in_date,@reg_date,10) .TYPE_ASSIGN(in_no,@reg_rep_no,10) .TYPE_ASSIGN(owner_id,@owner_id,10) .TYPE_ASSIGN(folder_id,@folder_id,10) .TYPE_ASSIGN(depo_doc_type,2,10) .TYPE_ASSIGN(foundation_id,@id,10) .TYPE_INSERT('SR_REPORT_ALLOCATE','CRT',10) --исходящий документ select @rep4outdoc_id=.TYPE_FIELD(id,10) .SR_CREATE_OUTDOC(@rep4outdoc_id,@id,@owner_id,null,null,null,@outdoc_id) ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4outdoc_id ----------------------------------------- end if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_extract2claim.claim_id,'PIF_PAY_BUY')) begin select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,0,@reg_date) .TYPE_INIT('SR_REPORT_BUY',11) .TYPE_ASSIGN(in_date,@reg_date,11) .TYPE_ASSIGN(in_no,@reg_rep_no,11) .TYPE_ASSIGN(owner_id,@owner_id,11) .TYPE_ASSIGN(folder_id,@folder_id,11) .TYPE_ASSIGN(depo_doc_type,2,11) .TYPE_ASSIGN(foundation_id,@id,11) .TYPE_INSERT('SR_REPORT_BUY','CRT',11) --исходящий документ select @rep4outdoc_id=.TYPE_FIELD(id,11) .SR_CREATE_OUTDOC(@rep4outdoc_id,@id,@owner_id,null,null,null,@outdoc_id) ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4outdoc_id ----------------------------------------- select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,0,@reg_date) .TYPE_INIT('SR_REPORT_TIME_BUY',12) .TYPE_ASSIGN(in_date,@reg_date,12) .TYPE_ASSIGN(in_no,@reg_rep_no,12) .TYPE_ASSIGN(owner_id,@owner_id,12) .TYPE_ASSIGN(folder_id,@folder_id,12) .TYPE_ASSIGN(depo_doc_type,2,12) .TYPE_ASSIGN(foundation_id,@id,12) .TYPE_INSERT('SR_REPORT_TIME_BUY','CRT',12) --исходящий документ select @rep4outdoc_id=.TYPE_FIELD(id,12) .SR_CREATE_OUTDOC(@rep4outdoc_id,@id,@owner_id,null,null,null,@outdoc_id) ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4outdoc_id ----------------------------------------- if exists(select 1 from tp_extract2claim, tp_pif_queries where tp_extract2claim.extract_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_extract2claim.claim_id,'PIF_PAY_BUY') and tp_extract2claim.claim_id=tp_pif_queries.id and tp_extract2claim.share_qty3 -- не закрытый фонд begin select @doc_name='Зачисление паев на эмиссионный счет '+@claim_name .OPERATION(@sreg_id,@reg_plan_id,@oper_date,'1','2',@pays_qty,null,@oper_date,0,0,@doc_name,0) .UPDATE_SUBC(D,'stock_emis',@stock_id) .UPDATE_SUBC(D,'reg_subacc',@reg_subacc_id) .UPDATE_SUBC(K,'stock_emis',@stock_id) .UPDATE_SUBC(K,'reg_subacc',@em_subacc_id) .SUBC_CHECK end else begin exec @ret = ap_sreg_subacc_check_qty @plan_owner_code=@reg_code, @plan_code='SREG', @subacc_id=@em_subacc_id, @stock_id=@stock_id, @check_date=@oper_date, @check_qty=@pays_qty, @check_deb_or_cred=1 if @ret!=0 begin select @mess='Операция приводит к отрицательным остаткам на эмиссмонном счете УК ПИФ' .EXIT_MESSAGE(@mess) end end select @doc_name='Зачисление паев '+@claim_name .OPERATION(@sreg_id,@reg_plan_id,@oper_date,'2','2',@pays_qty,null,@oper_date,0,0,@doc_name,0) .UPDATE_SUBC(D,'stock_emis',@stock_id) .UPDATE_SUBC(D,'reg_subacc',@em_subacc_id) .UPDATE_SUBC(K,'stock_emis',@stock_id) .UPDATE_SUBC(K,'reg_subacc',@p_subacc_id) .SUBC_CHECK end if upper(.ITEM_TYPE_CODE(@pifpay_id))='PIF_PAY_BUY' begin .SREG_BLTEST_SUBACC(@p_subacc_id,'D',@oper_date,1,@sreg_id) exec @ret = ap_sreg_subacc_check_qty @plan_owner_code=@reg_code, @plan_code='SREG', @subacc_id=@p_subacc_id, @stock_id=@stock_id, @check_date=@oper_date, @check_qty=@pays_qty, @check_deb_or_cred=1 if @ret!=0 begin select @mess='Операция приводит к отрицательным остаткам на лицевом счете пайщика, раздел № '+ isnull((select depo_subacc_no from td_depo_subacc where id=@p_subacc_id),'') + ', заявка № ' + isnull((select agent_regs_no from tp_pif_queries where id=@pifpay_id),'') .EXIT_MESSAGE(@mess) end -- последнее размещение ------------------------------------------------------------- .ID_VAR(@acc2_id) .ID_VAR(@plan2part_id) .ID_VAR(@subc_stock_id) .ID_VAR(@subc_subacc_id) declare @last_op_date datetime select @acc2_id=.ACCID_FROM_EFFNO(@reg_plan_id,'2') select @plan2part_id=t_plans2partner.id from t_plans2partner where t_plans2partner.plan_id=@reg_plan_id and t_plans2partner.partner_id=@sreg_id and .ITEMS_EXISTS(t_plans2partner.id) select @subc_stock_id = .SUBCTYPE_FROM_CODE('stock_emis') select @subc_subacc_id = .SUBCTYPE_FROM_CODE('reg_subacc') select @last_op_date=(select max(t_oper_list.op_date) from t_oper_list, t_oper_subconto s1, t_oper_subconto s2, t_accounts, t_operations where t_oper_list.partner2plan_id = @plan2part_id and t_oper_list.deb_or_cred = -1 and t_oper_list.op_date < dateadd(day, 1, @oper_date) and t_oper_list.acc_id=t_accounts.id and t_accounts.id=@acc2_id and t_oper_list.id = s1.id and s1.subconto_type_id=@subc_stock_id and s1.item_id=@stock_id and t_oper_list.id = s2.id and s2.subconto_type_id=@subc_subacc_id and s2.item_id=@p_subacc_id and t_oper_list.head_id = t_operations.id and upper(.ITEM_TYPE_CODE(t_operations.item_id)) in ('PIF_PAY_REPORT','TP_PIF_PAYS_MOVES')) update tp_extract2claim set alloc_date=convert(datetime,convert(varchar,@last_op_date,3),3) where extract_id=@id and claim_id=@pifpay_id --------------------------------------------------------------------------------------- if (select fond_type from td_pay_fond where id=@owner_id)<>3 -- не закрытый фонд begin select @doc_name='Списание паев с эмиссионного счета '+@claim_name .OPERATION(@sreg_id,@reg_plan_id,@oper_date,'2','1',@pays_qty,null,@oper_date,0,0,@doc_name,0) .UPDATE_SUBC(D,'stock_emis',@stock_id) .UPDATE_SUBC(D,'reg_subacc',@em_subacc_id) .UPDATE_SUBC(K,'stock_emis',@stock_id) .UPDATE_SUBC(K,'reg_subacc',@reg_subacc_id) .SUBC_CHECK end select @doc_name='Списание паев '+@claim_name .OPERATION(@sreg_id,@reg_plan_id,@oper_date,'2','2',@pays_qty,null,@oper_date,0,0,@doc_name,0) .UPDATE_SUBC(D,'stock_emis',@stock_id) .UPDATE_SUBC(D,'reg_subacc',@p_subacc_id) .UPDATE_SUBC(K,'stock_emis',@stock_id) .UPDATE_SUBC(K,'reg_subacc',@em_subacc_id) .SUBC_CHECK end .END $ENDTEXT(09140485) $ENDACTION $ACTION(PAYS_PART_OPS) name=Подтверждение class=9 form=null target_state=OP_END procedure=ap_30000000003451727 patterns=GENERIC_MOVE user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(09140485) create procedure dbo.%PROC% @sid varchar(30) = null as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @new_state_id numeric, @type_id numeric begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE .GET_PROPS ----------- -- Проверки ----------- /* commented DmChe 05.05.2005 on letter Balakirev D. ---Добавлено 31.03.05 Демихов Т.Е. if (select t_types.type_code from t_items, t_types, tp_extract2claim where t_items.id= tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id and t_types.id=t_items.type_id) = 'PIF_PAY_BUY' begin .CHECK_START_END_DATE(@reg_date,@owner_id) end --Конец добавлений 31.03.05. */ declare @check_code varchar(30) select @check_code = t_types.type_code from t_items, t_types, tp_extract2claim where t_items.id= tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id and t_types.id=t_items.type_id and t_types.type_code = 'PIF_PAY_BUY' if @check_code is not null begin .CHECK_START_END_DATE(@reg_date,@owner_id) end -- end DmChe 05.05.2005 if not exists(select 1 from tp_extract2claim where extract_id=@id) .EXIT_MESSAGE('Не указаны заявки') if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and upper(.ITEM_STATE_CODE(tp_extract2claim.claim_id))!='PROV') .EXIT_MESSAGE('Все заявки должны быть На исполнении') if exists(select 1 from tp_extract2claim where extract_id=@id and isnull(share_qty,0)=0) -- and isnull(sum_for_transfer,0)=0)) .EXIT_MESSAGE('В заявках не указаны суммы или количество паев') if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and not exists (select 1 from tp_paymt2pays s where s.pif_pay_id=tp_extract2claim.id)) .EXIT_MESSAGE('Для заявки на выдачу не указаны платежи') ----Проверка равенства суммы в одноразовой заявке на выдачу сумме платежей по ней----------------- if .GET_CLASS_VALUE_CODE_FOR_ITEM(@owner_id,'CHECK_CLAIM_SUM','OFF')='ON' --если делать проверку для фонда and exists(select 1 from tp_extract2claim, tp_pif_queries tpq where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and tpq.id=tp_extract2claim.claim_id and tpq.pif_pay_type_id=1 --одноразовая and isnull(tpq.payment_sum,0)!=0 --сумма по заявке задана and isnull(tpq.payment_sum,0) != (select round(sum(isnull(p.doc_sum,0)),2) from t_paydocs p, tp_paymt2pays s where s.pif_pay_id=tp_extract2claim.id and s.paymt_id=p.id)) .EXIT_MESSAGE('Сумма в заявке не равна сумме связанных платежей') ------------------------------------------------------------------------------------------ if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and tp_extract2claim.sum_for_transfer != (select round(sum(isnull(p.doc_sum,0)),2) from t_paydocs p, tp_paymt2pays s where s.pif_pay_id=tp_extract2claim.id and s.paymt_id=p.id)) .EXIT_MESSAGE('Сумма в заявке не равна сумме связанных платежей') if exists(select 1 from t_paydocs, tp_extract2claim, tp_pif_queries where tp_extract2claim.extract_id=@id and upper(.ITEM_TYPE_CODE(tp_extract2claim.claim_id))='PIF_PAY_ALLOCATE' and tp_extract2claim.claim_id=tp_pif_queries.id and tp_pif_queries.pif_pay_type_id=1 and t_paydocs.pif_pay_id=tp_pif_queries.id and upper(.ITEM_STATE_CODE(t_paydocs.id))='PERF' and t_paydocs.id not in (select tp_paymt2pays.paymt_id from tp_paymt2pays)) .EXIT_MESSAGE('Существует исполненный платеж, не сквитованный с отчетом регистратора по одноразовой заявке на выдачу') ---------- -- declare ---------- declare @sreg_oper_date datetime, @alloc_date datetime, @reg_time datetime declare @sum_for_transfer money, @sum_for_transfer_c money, @agent_sum money, @agent_sum_c money, @op_agent_sum money, @op_agent_sum_s money, @total_sum money, @op_pay_sum money, @paydoc_sum money, @paydoc_sum_s money, @tax money, @agent_proc money, @tax_percent money, @tax_percent_c money, @tax_sum money, @alloc_sum money, @stock_price money, @bal_qty money, @bal_out_sum money, @dop_sum money, @dop_sum_ed money, @dop_sum_type numeric declare @op_pay_owner_id numeric, @d_pay_owner_id numeric, @c_pay_owner_id numeric declare @share_qty .PIF_PAY_TYPE, @share_qty_c .PIF_PAY_TYPE, @op_share_qty .PIF_PAY_TYPE, @op_share_qty_s .PIF_PAY_TYPE, @share_qty_bal .PIF_PAY_TYPE declare @agent_id numeric, @agent_dog_id numeric, @pay_owner_id numeric, @pifdoc_id numeric, @paymt_id numeric, @pay2rep_id numeric, @tax_category_id numeric, @subacc_id numeric, @pif_stock_id numeric, @fund_plan_id numeric, @acc96_id numeric, @acc865_id numeric, @acc7642_id numeric, @acc7641_id numeric, @acc_agent_id numeric, @acc_tax_id numeric, @j_query_id numeric, @rep4query_id numeric, @part_id numeric, @deb_id numeric, @cred_id numeric, @default_acctype_id numeric, @acc_rel_id numeric, @indoc_id numeric, @query_no varchar(255), @query_date datetime declare @bad int, @is_new_tax int, @is_manual_tax int, @is_reg_control int declare @j_name varchar(255), @reg_code varchar(255), @reg_rep_no varchar(255), @comment1 varchar(255), @comment2 varchar(255), @new_acc_name varchar(255), @new_acc_ops_id_s varchar(30) declare @outdoc_id numeric --- ID Исходящего документа ------------------ -- ------------------ -- дата проводок if .SR_FOR_PIF(@owner_id)=1 begin select @sreg_oper_date = @reg_date .SREG_OPER_DATE(@id,@sreg_oper_date) select @reg_date = @sreg_oper_date select @reg_time=op_time from t_sd_info4oper where id=@id end else select @sreg_oper_date=isnull(@reg_date,(.OPERDAY)) -- партия if (select isnull(pays_acc_mode,1) from td_pay_fond where id=@owner_id)=1 begin select @part_id= .SD_COMMON_PART4PAYS if @part_id is null exec ap_insert_common_part4pays select @part_id= .SD_COMMON_PART4PAYS end else select @part_id=@id -- контроль регистратора select @is_reg_control=isnull(is_reg_control,0) from td_pay_fond where id=@owner_id -- цена пая select @pay_price = .PIF_PAY_PRICE(@owner_id,@pay_date) if @pay_price is null .EXIT_MESSAGE('Для данного фонда не задана цена пая') update ts_reg_report set pay_price=@pay_price where id=@id -- счета select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @acc96_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.1') select @acc865_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.5') select @acc7642_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.4.2') select @acc7641_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.4.1') select @acc_agent_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.11') select @acc_tax_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'68.8') ------------------ ---- Проводки ---- ------------------ .UPDATE_STATE .ACTION_HISTORY -------------------------- -- SD - Проводки по выдаче -------------------------- -- Расчет выдачи declare sales_calc cursor for select x.id, x.agent_dog_id, x.claim_id from tp_extract2claim x, tp_pif_queries p where x.extract_id=@id and x.claim_id=p.id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_PAY_ALLOCATE') order by p.agent_regs_date, p.agent_regs_no, p.id for read only open sales_calc fetch sales_calc into @pay2rep_id, @agent_dog_id, @pifdoc_id while .CURSOR_STATE=0 begin select @tax=0, @sum_for_transfer_c=0 -- сумма привязанных платежей select @sum_for_transfer_c=round(sum(isnull(p.doc_sum,0)),2) from t_paydocs p, tp_paymt2pays s where s.pif_pay_id=@pay2rep_id and s.paymt_id=p.id exec ap_pifpay_in @sum_for_transfer_c, -- внесенная сумма @agent_dog_id, @owner_id, @reg_date, @pay_date, @stock_price out, -- цена пая @share_qty_c out, -- кол-во паев к выдаче @total_sum out, -- сумма без надбавки (т.е.на баланс за паи) @agent_sum_c out, -- надбавка @agent_proc out -- % надбавки if @@error != 0 begin if @@trancount<>0 rollback tran return end -- расчитанные значения select @sum_for_transfer_c=isnull(@sum_for_transfer_c,0) select @share_qty_c=isnull(@share_qty_c,0) select @agent_sum_c=isnull(@agent_sum_c,0) select @agent_proc=isnull(@agent_proc,0) .PIF_ROUND_PAYS(@owner_id,@share_qty_c,@share_qty_c) update tp_extract2claim set sum_for_transfer_c=@sum_for_transfer_c, share_qty_c=@share_qty_c, agent_sum_c=@agent_sum_c, agent_proc=@agent_proc, tax_sum=@tax where id=@pay2rep_id -- если нет контроля регистратора if @is_reg_control=0 update tp_extract2claim set sum_for_transfer=@sum_for_transfer_c, share_qty=@share_qty_c, agent_sum=@agent_sum_c where id=@pay2rep_id fetch sales_calc into @pay2rep_id, @agent_dog_id, @pifdoc_id end close sales_calc .DEALLOCATE sales_calc -- Проведение выдачи select @op_agent_sum_s = 0 select @op_share_qty_s = 0 select @paydoc_sum_s = 0 declare sales_ops cursor for select x.sum_for_transfer, x.agent_sum, x.share_qty, x.pay_agent_id, p.pay_owner_id, p.id, d.id, d.doc_sum from tp_extract2claim x, tp_pif_queries p, tp_paymt2pays y, t_paydocs d where x.extract_id=@id and x.claim_id = p.id and y.pif_pay_id = x.id and y.paymt_id = d.id and upper(.ITEM_TYPE_CODE(p.id))='PIF_PAY_ALLOCATE' order by p.agent_regs_date, p.agent_regs_no, p.id for read only open sales_ops fetch sales_ops into @sum_for_transfer, @agent_sum, @share_qty, @agent_id, @pay_owner_id, @pifdoc_id, @paymt_id, @paydoc_sum while .CURSOR_STATE=0 begin .PIF_ROUND_PAYS(@owner_id, @share_qty, @share_qty) select @paydoc_sum = .ROUND_MONEY(@paydoc_sum,2) if @sum_for_transfer = (@paydoc_sum_s + @paydoc_sum) begin -- единственный или последний платеж по заявке select @op_agent_sum = @agent_sum - @op_agent_sum_s select @op_share_qty = @share_qty - @op_share_qty_s select @op_agent_sum_s = 0 select @op_share_qty_s = 0 select @paydoc_sum_s = 0 end else -- есть еще платежи begin select @op_agent_sum = convert(money, (@agent_sum * @paydoc_sum / @sum_for_transfer)) select @op_agent_sum = .ROUND_MONEY(@op_agent_sum, 2) select @op_agent_sum_s = @op_agent_sum_s + @op_agent_sum select @op_share_qty = convert(.PIF_PAY_TYPE, (@share_qty * @paydoc_sum / @sum_for_transfer)) .PIF_ROUND_PAYS(@owner_id, @op_share_qty, @op_share_qty) select @op_share_qty_s = @op_share_qty_s + @op_share_qty select @paydoc_sum_s = @paydoc_sum_s + @paydoc_sum end select @op_pay_sum = @paydoc_sum - @op_agent_sum select @bal_qty=.PAYS_QTY_BAL(@op_share_qty,@owner_id) select @comment1=.ITEM_NAME(@pifdoc_id) select @comment2=@comment1 + ':зачисление паев' .CHECK_DEFAULT_PIF_PARTNER(@owner_id,@pay_owner_id,@op_pay_owner_id) .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7641_id,@acc96_id,@op_pay_sum,'RUR',@reg_date,0,@bal_qty,@comment2,0) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(D,'paydocs',@paymt_id) .UPDATE_SUBC(K,'doc_item',@part_id) .UPDATE_SUBC(K,'partners',@op_pay_owner_id) .SUBC_CHECK if @agent_id is not null and @op_agent_sum>0 begin select @comment2=@comment1 + ':начисление вознаграждения агенту' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7641_id,@acc_agent_id,@op_agent_sum,'RUR',@reg_date,0,0,@comment2,0) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(D,'paydocs',@paymt_id) .UPDATE_SUBC(K,'partners',@agent_id) .SUBC_CHECK end fetch sales_ops into @sum_for_transfer, @agent_sum, @share_qty, @agent_id, @pay_owner_id, @pifdoc_id, @paymt_id, @paydoc_sum end close sales_ops .DEALLOCATE sales_ops ----------------------------- -- SD - Проводки по погашению ----------------------------- declare buys cursor for select x.id, x.share_qty_c, x.is_manual_tax, x.tax_sum, x.tax_percent, x.is_new_tax, x.agent_dog_id, p.pay_owner_id, x.pay_agent_id, p.id, x.dop_sum_type, x.dop_sum_ed from tp_extract2claim x, tp_pif_queries p where x.extract_id=@id and x.claim_id = p.id and upper(.ITEM_TYPE_CODE(p.id))='PIF_PAY_BUY' order by p.agent_regs_date, p.agent_regs_no, p.id -- было до 11.11.04: order by p.pay_owner_id, p.agent_dog_id, p.agent_regs_date, p.agent_regs_no, p.id for read only open buys fetch buys into @pay2rep_id, @share_qty, @is_manual_tax, @tax_sum, @tax_percent, @is_new_tax, @agent_dog_id, @pay_owner_id, @agent_id, @pifdoc_id, @dop_sum_type, @dop_sum_ed while .CURSOR_STATE=0 begin if @is_new_tax=0 -- если 1 - % налога введен вручную select @tax_percent_c=null else select @tax_percent_c=@tax_percent exec ap_pifpay_out_parts @owner_id, @agent_dog_id, @pay_owner_id, @pifdoc_id, @reg_date, @pay_date, @share_qty, @is_manual_tax, @tax_percent_c, @tax_sum, @dop_sum_ed, @dop_sum_type, 1, -- с проводками @id, @action_id, @action_history_id, @sum_for_transfer_c out, -- сумма выплаты (без скидки и налога) @agent_sum_c out, -- скидка @tax out, -- налог @bal_out_sum out, -- бал.стоимость @dop_sum out, -- доп.расходы @alloc_date out, -- дата посл.партии @share_qty_bal out -- все к-во с баланса if @@error != 0 begin if @@trancount<>0 rollback tran return end select @total_sum = @sum_for_transfer_c + isnull(@tax,0) + isnull(@agent_sum_c,0) - isnull(@bal_out_sum,0) select @comment1=.ITEM_NAME(@pifdoc_id) if @total_sum<>0 begin .CHECK_DEFAULT_PIF_PARTNER(@owner_id,@pay_owner_id,@op_pay_owner_id) select @deb_id=@acc865_id, @cred_id=@acc7642_id, @d_pay_owner_id=@op_pay_owner_id, @c_pay_owner_id=@pay_owner_id if @total_sum<0 select @cred_id=@acc865_id, @deb_id=@acc7642_id, @total_sum=abs(@total_sum), @d_pay_owner_id=@pay_owner_id, @c_pay_owner_id=@op_pay_owner_id .OPERATION(@owner_id,@fund_plan_id,@reg_date,@deb_id,@cred_id,@total_sum,'RUR',@reg_date,0,0,@comment1,0) .UPDATE_SUBC(D,'partners',@d_pay_owner_id) .UPDATE_SUBC(K,'partners',@c_pay_owner_id) if @deb_id=@acc7642_id begin .UPDATE_SUBC(D,'pifdocs',@pifdoc_id) end else begin .UPDATE_SUBC(K,'pifdocs',@pifdoc_id) end .SUBC_CHECK end if isnull(@agent_sum_c,0)<>0 begin select @comment2 = @comment1 + ':начисление вознаграждения агенту' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7642_id,@acc_agent_id,@agent_sum_c,'RUR',@reg_date,0,0,@comment2,0) .UPDATE_SUBC(D,'pifdocs',@pifdoc_id) .UPDATE_SUBC(D,'partners',@pay_owner_id) .UPDATE_SUBC(K,'partners',@agent_id) .SUBC_CHECK end if isnull(@tax,0)<>0 begin select @comment2 = @comment1 + ':уплата налога' .OPERATION(@owner_id,@fund_plan_id,@reg_date,@acc7642_id,@acc_tax_id,@tax,'RUR',@reg_date,0,0,@comment2,0) .UPDATE_SUBC(D,'pifdocs',@pifdoc_id) .UPDATE_SUBC(D,'partners',@pay_owner_id) .SUBC_CHECK end -- расчетные значения в привязку update tp_extract2claim set sum_for_transfer_c=@sum_for_transfer_c, agent_sum_c=@agent_sum_c, tax_sum=@tax, alloc_sum=@bal_out_sum + isnull(@dop_sum,0), alloc_date=@alloc_date, share_qty_c=@share_qty, agent_proc=null where id=@pay2rep_id fetch buys into @pay2rep_id, @share_qty, @is_manual_tax, @tax_sum, @tax_percent, @is_new_tax, @agent_dog_id, @pay_owner_id, @agent_id, @pifdoc_id, @dop_sum_type, @dop_sum_ed end close buys .DEALLOCATE buys ------------------------ -- Контроль регистратора ------------------------ if @is_reg_control=0 update tp_extract2claim set sum_for_transfer=sum_for_transfer_c, share_qty=share_qty_c, agent_sum=agent_sum_c where extract_id=@id if @is_reg_control=1 and exists(select 1 from tp_extract2claim e where e.extract_id=@id and .ITEMS_EXISTS(e.id) and (e.sum_for_transfer <> e.sum_for_transfer_c or e.share_qty <> e.share_qty_c or e.agent_sum <> e.agent_sum_c)) begin .ITEM_MOVE_STATE(@id,'BAD') update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAYS2REPORT')),'FIX') from tp_extract2claim where t_items.id=tp_extract2claim.id and tp_extract2claim.extract_id=@id select @action_history_id=0 .OPERS_ROLL commit tran return end ----------------------------- -- SREG - Проводки по реестру ----------------------------- if .SR_FOR_PIF(@owner_id)=1 begin select @default_acctype_id=.SREG_ACCTYPE_FROM_CODE('LP') declare for_sreg cursor for select x.share_qty, p.pay_owner_id, p.id, p.subacc_id, p.agent_regs_no, p.agent_regs_date from tp_extract2claim x, tp_pif_queries p where x.extract_id=@id and x.claim_id = p.id order by p.agent_regs_date, p.agent_regs_no, p.id for read only open for_sreg fetch for_sreg into @share_qty, @pay_owner_id, @pifdoc_id, @subacc_id, @query_no, @query_date while .CURSOR_STATE=0 begin -- начальное размещение if (@subacc_id is null or not .ITEMS_EXISTS(@subacc_id)) and upper(.ITEM_TYPE_CODE(@pifdoc_id))='PIF_PAY_ALLOCATE' begin select @new_acc_name=partner_short_name from t_partners where id=@pay_owner_id select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,2,@reg_date) .TYPE_INIT('SREG_ACC_OPS',14) .TYPE_ASSIGN(query_no,@query_no,14) .TYPE_ASSIGN(query_date,@query_date,14) .TYPE_ASSIGN(in_date,@reg_date,14) .TYPE_ASSIGN(in_no,@reg_rep_no,14) .TYPE_ASSIGN(folder_id,@folder_id,14) .TYPE_ASSIGN(depo_doc_type,0,14) .TYPE_ASSIGN(class_id,1,14) .TYPE_ASSIGN(partner_id,@pay_owner_id,14) .TYPE_ASSIGN(fund_id,@owner_id,14) .TYPE_ASSIGN(depo_acc_state_id,1,14) .TYPE_ASSIGN(act_or_pass,2,14) .TYPE_ASSIGN(divid_pay_form_id,2,14) .TYPE_ASSIGN(property_id,1,14) .TYPE_ASSIGN(depo_acctypes_id,@default_acctype_id,14) .TYPE_ASSIGN(depo_acc_name,@new_acc_name,14) .TYPE_INSERT('SREG_ACC_OPS','ED',14) .TYPE_INIT('SREG_ACC',15) .TYPE_ASSIGN(query_no,@query_no,15) .TYPE_ASSIGN(query_date,@query_date,15) .TYPE_ASSIGN(partner_id,@pay_owner_id,15) .TYPE_ASSIGN(fund_id,@owner_id,15) .TYPE_ASSIGN(depo_acc_state_id,1,15) .TYPE_ASSIGN(act_or_pass,2,15) .TYPE_ASSIGN(divid_pay_form_id,2,15) .TYPE_ASSIGN(property_id,1,15) .TYPE_ASSIGN(depo_acctypes_id,@default_acctype_id,15) .TYPE_ASSIGN(depo_acc_name,@new_acc_name,15) .TYPE_INSERT('SREG_ACC','BLK',15) update td_depo_docs set changed_item_id=.TYPE_FIELD(id,15) where id=.TYPE_FIELD(id,14) insert t_sd_info4oper (id,op_date,op_time,is_fixed) values ((.TYPE_FIELD(id,14)),@reg_date,@reg_time,1) select @acc_rel_id=id from t_relation where s_type_id=.TYPE_ID('SREG_ACC_OPS') and t_type_id=.TYPE_ID('SREG_ACC') and class_id=2 insert t_item2relation(rel_id,s_item_id,t_item_id) values(@acc_rel_id,(.TYPE_FIELD(id,14)),(.TYPE_FIELD(id,15))) -- вх.документ select @indoc_id=(select min(indoc_id) from t_sd_indoc2doc where doc_id=@pifdoc_id) if @indoc_id is not null begin .TYPE_GET('SD_INDOC',@indoc_id,14_1) update td_depo_docs set out_no=@out_no14_1, out_date=@out_date14_1, correspondent_id=@corr_id14_1 where id=(.TYPE_FIELD(id,14)) update t_sd_info4oper set indoc_type_id=@indoc_type_id14_1, indoc_date=@in_date14_1 where id=(.TYPE_FIELD(id,14)) end select @new_acc_ops_id_s=convert(varchar(30),(.TYPE_FIELD(id,14))) ---***********************----- exec ap_sreg_acc_ops @new_acc_ops_id_s if @@error != 0 begin if @@trancount<>0 rollback transaction return end -----******************--------- select @subacc_id=(select max(id) from td_depo_subacc where depo_acc_id=.TYPE_FIELD(id,15)) update tp_pif_queries set subacc_id=@subacc_id where id=@pifdoc_id end select @bal_qty=.PAYS_QTY_BAL(@share_qty,@owner_id) EXECUTE dbo.ap_op_sreg @sid = @sid, @oper_date=@reg_date, @pays_qty=@bal_qty, @pay_owner_id=@pay_owner_id, @subacc_id=@subacc_id, @owner_id=@owner_id, @pifpay_id=@pifdoc_id, @a_history_id=@action_history_id if @@error != 0 begin if @@trancount<>0 rollback transaction return end fetch for_sreg into @share_qty, @pay_owner_id, @pifdoc_id, @subacc_id, @query_no, @query_date end close for_sreg .DEALLOCATE for_sreg end ---------- -- Статусы ---------- -- привязки заявок update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAYS2REPORT')),'FIX') from tp_extract2claim where t_items.id=tp_extract2claim.id and tp_extract2claim.extract_id=@id -- заявки на погашение update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAY_BUY')),'WAIT_CRT') from tp_pif_queries, tp_extract2claim where t_items.id=tp_pif_queries.id and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_BUY' and tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id -- заявки на выдачу (одноразовые) update t_items set state_id=.STATE_ID_FROM_CODE((.TYPE_ID('PIF_PAY_ALLOCATE')),'CRT') from tp_pif_queries, tp_extract2claim where t_items.id=tp_pif_queries.id and tp_pif_queries.pif_pay_type_id=1 and upper(.ITEM_TYPE_CODE(tp_pif_queries.id)) = 'PIF_PAY_ALLOCATE' and tp_pif_queries.id = tp_extract2claim.claim_id and tp_extract2claim.extract_id=@id ---------------- -- SREG - Отчеты ---------------- declare @rep4outdoc_id numeric --для генерации исх. док-тов if .SR_FOR_PIF(@owner_id)=1 begin -- расчетные счета update tp_extract2claim set bank_acc_id=(select dacc.acc_id from td_depo_accounts dacc where dacc.id = (select max(d.id) from td_depo_docs d, td_depo_subacc ds, tp_pif_queries pq where d.changed_item_id=ds.depo_acc_id and ds.id=pq.subacc_id and pq.id=tp_extract2claim.claim_id and upper(.ITEM_STATE_CODE(d.id))='OP_END' and d.arch_date = (select max(dd.arch_date) from td_depo_docs dd where dd.changed_item_id=d.changed_item_id and upper(.ITEM_STATE_CODE(dd.id))='OP_END' and dd.arch_date < dateadd(day, 1, convert(datetime,convert(varchar,@reg_date,3),3))) and d.arch_no = (select max(ddd.arch_no) from td_depo_docs ddd where ddd.changed_item_id=d.changed_item_id and upper(.ITEM_STATE_CODE(ddd.id))='OP_END' and ddd.arch_date = d.arch_date))) where tp_extract2claim.extract_id=@id -- в случае наличия выдач if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_extract2claim.claim_id,'PIF_PAY_ALLOCATE')) begin -- по проведению выдач select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,0,@reg_date) .TYPE_INIT('SR_REPORT_ALLOCATE',10) .TYPE_ASSIGN(in_date,@reg_date,10) .TYPE_ASSIGN(in_no,@reg_rep_no,10) .TYPE_ASSIGN(owner_id,@owner_id,10) .TYPE_ASSIGN(folder_id,@folder_id,10) .TYPE_ASSIGN(depo_doc_type,2,10) .TYPE_ASSIGN(foundation_id,@id,10) .TYPE_INSERT('SR_REPORT_ALLOCATE','CRT',10) -- исх. документ select @rep4outdoc_id=.TYPE_FIELD(id,10) .SR_CREATE_OUTDOC(@rep4outdoc_id,@id,@owner_id,null,null,null,@outdoc_id) ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4outdoc_id ----------------------------------------- --- end -- в случае наличия погашений if exists(select 1 from tp_extract2claim where tp_extract2claim.extract_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_extract2claim.claim_id,'PIF_PAY_BUY')) begin -- по проведению погашений select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,0,@reg_date) .TYPE_INIT('SR_REPORT_BUY',11) .TYPE_ASSIGN(in_date,@reg_date,11) .TYPE_ASSIGN(in_no,@reg_rep_no,11) .TYPE_ASSIGN(owner_id,@owner_id,11) .TYPE_ASSIGN(folder_id,@folder_id,11) .TYPE_ASSIGN(depo_doc_type,2,11) .TYPE_ASSIGN(foundation_id,@id,11) .TYPE_INSERT('SR_REPORT_BUY','CRT',11) -- исх. документ select @rep4outdoc_id=.TYPE_FIELD(id,11) .SR_CREATE_OUTDOC(@rep4outdoc_id,@id,@owner_id,null,null,null,@outdoc_id) ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4outdoc_id ----------------------------------------- --- -- по времени владения select @reg_rep_no=null .FUND_GEN_NO(@reg_rep_no,0,@reg_date) .TYPE_INIT('SR_REPORT_TIME_BUY',12) .TYPE_ASSIGN(in_date,@reg_date,12) .TYPE_ASSIGN(in_no,@reg_rep_no,12) .TYPE_ASSIGN(owner_id,@owner_id,12) .TYPE_ASSIGN(folder_id,@folder_id,12) .TYPE_ASSIGN(depo_doc_type,2,12) .TYPE_ASSIGN(foundation_id,@id,12) .TYPE_INSERT('SR_REPORT_TIME_BUY','CRT',12) -- исх. документ select @rep4outdoc_id=.TYPE_FIELD(id,12) .SR_CREATE_OUTDOC(@rep4outdoc_id,@id,@owner_id,null,null,null,@outdoc_id) --- ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4outdoc_id ----------------------------------------- -- по частично исполненным заявкам if exists(select 1 from tp_extract2claim, tp_pif_queries where tp_extract2claim.extract_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_extract2claim.claim_id,'PIF_PAY_BUY') and tp_extract2claim.claim_id=tp_pif_queries.id and tp_extract2claim.share_qty@share_qty4part and .ITEM_TYPE_CODE(@j_query_id)='PIF_PAY_BUY' begin select @j_name = (case (select type_queries from tp_pif_queries where id=@j_query_id) when 1 then 'Внесение приходной записи в реестр' when 2 then 'Внесение расходной записи в реестр' when 3 then 'Зачисление инвестиционных паев по обмену' when 4 then 'Списание инвестиционных паев по обмену' end) .SR_REG_JOURNAL_ADD(@id,null,null,@owner_id,@j_name,@j_query_id,1,null) --Генерация отчета по конкретной заявке --Справка: foundation_id = @id .SR_CREATE_REPORT('SR_REPORT_REFUS','CRT',91,@reg_date,@owner_id) select @rep4query_id = .TYPE_FIELD(id,91) --исходящий документ .SR_CREATE_OUTDOC(@rep4query_id,@id,@owner_id,@j_query_id,null,null,@outdoc_id) -- id заявки в changed_item_id для данного отчета update td_depo_docs set changed_item_id = @j_query_id, doc_comment = (select comment_cancel from tp_extract2claim where claim_id=@j_query_id and extract_id=@id) where id = @rep4query_id ----- id исходящего документа в outdocs_id сформированного уведомления/отчета --- update td_depo_docs set outdocs_id = @outdoc_id where id = @rep4query_id ----------------------------------------- end --****************************************************************************** fetch queries into @j_query_id end close queries .DEALLOCATE queries end -- SREG - отчеты ----------------- -- ----------------- commit tran $ENDTEXT(09140485) $ENDACTION $STATE2ACTION(BAD.ACTION1) state=BAD action=ACTION1 $ENDSTATE2ACTION $STATE2ACTION(BAD.D_PIF_PAY_REP_EDIT) state=BAD action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(BAD.FORM1) state=BAD action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(BAD.FORM2) state=BAD action=FORM2 $ENDSTATE2ACTION $STATE2ACTION(BEG.ACTION_INSERT) state=BEG action=ACTION_INSERT $ENDSTATE2ACTION $STATE2ACTION(ED.ACTION_DELETE) state=ED action=ACTION_DELETE $ENDSTATE2ACTION $STATE2ACTION(ED.ACTION_UPDATE) state=ED action=ACTION_UPDATE $ENDSTATE2ACTION $STATE2ACTION(ED.ACTION_UPDATE_P2) state=ED action=ACTION_UPDATE_P2 $ENDSTATE2ACTION $STATE2ACTION(ED.ACTION4) state=ED action=ACTION4 $ENDSTATE2ACTION $STATE2ACTION(ED.D_PIF_PAY_REP_EDIT) state=ED action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(ED.FORM1) state=ED action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(ED.FORM2) state=ED action=FORM2 $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.ACTION_MOVE1) state=ED_CLAIM action=ACTION_MOVE1 $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.ACTION5) state=ED_CLAIM action=ACTION5 $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.D_PIF_PAY_REP_EDIT) state=ED_CLAIM action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.FORM1) state=ED_CLAIM action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.FORM2) state=ED_CLAIM action=FORM2 $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.OP_SREG) state=ED_CLAIM action=OP_SREG $ENDSTATE2ACTION $STATE2ACTION(ED_CLAIM.PAYS_PART_OPS) state=ED_CLAIM action=PAYS_PART_OPS $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.ACTION_MOVE1) state=END_CHECK action=ACTION_MOVE1 $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.ACTION2) state=END_CHECK action=ACTION2 $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.D_PIF_PAY_REP_EDIT) state=END_CHECK action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.FORM1) state=END_CHECK action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.FORM2) state=END_CHECK action=FORM2 $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.OP_SREG) state=END_CHECK action=OP_SREG $ENDSTATE2ACTION $STATE2ACTION(END_CHECK.PAYS_PART_OPS) state=END_CHECK action=PAYS_PART_OPS $ENDSTATE2ACTION $STATE2ACTION(NOT_CHECK.ACTION2) state=NOT_CHECK action=ACTION2 $ENDSTATE2ACTION $STATE2ACTION(NOT_CHECK.ACTION3) state=NOT_CHECK action=ACTION3 $ENDSTATE2ACTION $STATE2ACTION(NOT_CHECK.D_PIF_PAY_REP_EDIT) state=NOT_CHECK action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(NOT_CHECK.FORM1) state=NOT_CHECK action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(NOT_CHECK.FORM2) state=NOT_CHECK action=FORM2 $ENDSTATE2ACTION $STATE2ACTION(OP_END.ACTION_MOVE) state=OP_END action=ACTION_MOVE $ENDSTATE2ACTION $STATE2ACTION(OP_END.D_PIF_PAY_REP_EDIT) state=OP_END action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(OP_END.FORM1) state=OP_END action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(OP_END.FORM2) state=OP_END action=FORM2 $ENDSTATE2ACTION $STATE2ACTION(WAIT_CHECK.ACTION1) state=WAIT_CHECK action=ACTION1 $ENDSTATE2ACTION $STATE2ACTION(WAIT_CHECK.ACTION3) state=WAIT_CHECK action=ACTION3 $ENDSTATE2ACTION $STATE2ACTION(WAIT_CHECK.D_PIF_PAY_REP_EDIT) state=WAIT_CHECK action=D_PIF_PAY_REP_EDIT $ENDSTATE2ACTION $STATE2ACTION(WAIT_CHECK.FORM1) state=WAIT_CHECK action=FORM1 $ENDSTATE2ACTION $STATE2ACTION(WAIT_CHECK.FORM2) state=WAIT_CHECK action=FORM2 $ENDSTATE2ACTION $STATE2PROP(BEG.CORRESPONDENT_ID) state=BEG prop=CORRESPONDENT_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.DEPO_DOC_TYPE) state=BEG prop=DEPO_DOC_TYPE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.DOC_COMMENT) state=BEG prop=DOC_COMMENT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.DOCUMENT_FORM_ID) state=BEG prop=DOCUMENT_FORM_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.FOLDER_ID) state=BEG prop=FOLDER_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.IN_DATE) state=BEG prop=IN_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.IN_NO) state=BEG prop=IN_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.INITIATOR_ID) state=BEG prop=INITIATOR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.OUT_DATE) state=BEG prop=OUT_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.OUT_NO) state=BEG prop=OUT_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.PAY_DATE) state=BEG prop=PAY_DATE enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.PAY_SUM) state=BEG prop=PAY_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.PAYER_ID) state=BEG prop=PAYER_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.REG_DATE) state=BEG prop=REG_DATE enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.REP_NO) state=BEG prop=REP_NO enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.SUM_CUR_ID) state=BEG prop=SUM_CUR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.WHO_GET) state=BEG prop=WHO_GET enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(BEG.WHO_PUT) state=BEG prop=WHO_PUT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.CORRESPONDENT_ID) state=ED prop=CORRESPONDENT_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.DOC_COMMENT) state=ED prop=DOC_COMMENT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.DOCUMENT_FORM_ID) state=ED prop=DOCUMENT_FORM_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.IN_NO) state=ED prop=IN_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.INITIATOR_ID) state=ED prop=INITIATOR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.OUT_DATE) state=ED prop=OUT_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.OUT_NO) state=ED prop=OUT_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.PAY_DATE) state=ED prop=PAY_DATE enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.PAY_SUM) state=ED prop=PAY_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.PAYER_ID) state=ED prop=PAYER_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.REG_DATE) state=ED prop=REG_DATE enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.REP_NO) state=ED prop=REP_NO enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.SUM_CUR_ID) state=ED prop=SUM_CUR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.WHO_GET) state=ED prop=WHO_GET enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(ED.WHO_PUT) state=ED prop=WHO_PUT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.CORRESPONDENT_ID) state=END_CHECK prop=CORRESPONDENT_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.DOC_COMMENT) state=END_CHECK prop=DOC_COMMENT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.DOCUMENT_FORM_ID) state=END_CHECK prop=DOCUMENT_FORM_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.IN_NO) state=END_CHECK prop=IN_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.INITIATOR_ID) state=END_CHECK prop=INITIATOR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.OUT_DATE) state=END_CHECK prop=OUT_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.OUT_NO) state=END_CHECK prop=OUT_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.PAY_SUM) state=END_CHECK prop=PAY_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.PAYER_ID) state=END_CHECK prop=PAYER_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.SUM_CUR_ID) state=END_CHECK prop=SUM_CUR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.WHO_GET) state=END_CHECK prop=WHO_GET enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(END_CHECK.WHO_PUT) state=END_CHECK prop=WHO_PUT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.CORRESPONDENT_ID) state=NOT_CHECK prop=CORRESPONDENT_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.DOC_COMMENT) state=NOT_CHECK prop=DOC_COMMENT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.DOCUMENT_FORM_ID) state=NOT_CHECK prop=DOCUMENT_FORM_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.IN_NO) state=NOT_CHECK prop=IN_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.INITIATOR_ID) state=NOT_CHECK prop=INITIATOR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.OUT_DATE) state=NOT_CHECK prop=OUT_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.OUT_NO) state=NOT_CHECK prop=OUT_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.PAY_SUM) state=NOT_CHECK prop=PAY_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.PAYER_ID) state=NOT_CHECK prop=PAYER_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.SUM_CUR_ID) state=NOT_CHECK prop=SUM_CUR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.WHO_GET) state=NOT_CHECK prop=WHO_GET enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(NOT_CHECK.WHO_PUT) state=NOT_CHECK prop=WHO_PUT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(OP_END.DOC_COMMENT) state=OP_END prop=DOC_COMMENT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.CORRESPONDENT_ID) state=WAIT_CHECK prop=CORRESPONDENT_ID enable=1 mandatory=1 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.DOC_COMMENT) state=WAIT_CHECK prop=DOC_COMMENT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.DOCUMENT_FORM_ID) state=WAIT_CHECK prop=DOCUMENT_FORM_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.IN_NO) state=WAIT_CHECK prop=IN_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.INITIATOR_ID) state=WAIT_CHECK prop=INITIATOR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.OUT_DATE) state=WAIT_CHECK prop=OUT_DATE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.OUT_NO) state=WAIT_CHECK prop=OUT_NO enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.PAY_SUM) state=WAIT_CHECK prop=PAY_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.PAYER_ID) state=WAIT_CHECK prop=PAYER_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.SUM_CUR_ID) state=WAIT_CHECK prop=SUM_CUR_ID enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.WHO_GET) state=WAIT_CHECK prop=WHO_GET enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(WAIT_CHECK.WHO_PUT) state=WAIT_CHECK prop=WHO_PUT enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $ENDDOC