create procedure dbo.%PROC% @sid numeric, @action_history_idd numeric as .BEGIN('N') .ASSIGN(@action_history_id,@action_history_idd) select @action_id = action_id, @id = doc_id from t_actions_history where id = @action_history_id --.EXIT_MESSAGE_PARM('@action_id',@action_id) select @new_state_id=(select state_id from t_actions where id=@action_id) begin tran /*------- Декларация ----------*/ declare @total_sum money .NAME_VAR(@type_code) .NAME_VAR(@investor_subc_str) .NAME_VAR(@ext_subc_str) .NAME_VAR(@home_subc_str) .NAME_VAR(@stock_ext_subc_str) .NAME_VAR(@stock_home_subc_str) .NAME_VAR(@client_subc_str) .NAME_VAR(@p2l_subc_str) select @p2l_subc_str='' .INT_VAR(@pay_perpose) .ID_VAR(@plan2partner_id) .ID_VAR(@home_place_class_id) .ID_VAR(@home_object_id) .ID_VAR(@home_depo_acc_id) .ID_VAR(@home_depo_subacc_id) .ID_VAR(@home_depo_acc_class_id) .ID_VAR(@ext_object_id) .ID_VAR(@contr_id) .ID_VAR(@investor_id) .ID_VAR(@organisation_id) .ID_VAR(@purpose_id) .ID_VAR(@partion_id) .ID_VAR(@usd) .ID_VAR(@plan_money_id) .ID_VAR(@plan_securs_id) .ID_VAR(@money_plan_cur_id) .MONEY_VAR(@exec_sum) .MONEY_VAR(@cred_acc_sum) .MONEY_VAR(@deb_acc_sum) .MONEY_VAR(@rate_value_cc) .MONEY_VAR(@nkd_sum) .MONEY_VAR(@out_sum) .MONEY_VAR(@out_qty) .MONEY_VAR(@out_sum_all) .MONEY_VAR(@nkd_sum_all) .MONEY_VAR(@rate2cur2rur) .DATE_VAR(@oper_date) .DATE_VAR(@rate_date_cc) .INT_VAR(@out_method_id) .INT_VAR(@is_realiz) .INT_VAR(@is_p2l_comis) .INT_VAR(@is_margin) .INT_VAR(@is_allow_short4client_money) .INT_VAR(@is_com_in) .INT_VAR(@proc_status) .INT_VAR(@is_allow_short4stocks) .INT_VAR(@is_allow_short4money) .ID_VAR(@asset4pereoc_type_id) declare @rate_date datetime, @rate_value decimal(18,8), @fin_result int, @character_id numeric, @bs1_in_date datetime /*Декларация переменных сделки*/ .BACK_BSPARMS_BEGIN /*Вытаскивание параметров приема*/ --.TYPE_GET('D_STOCK_IN_OTHER_DEPO',@id,'N') .TYPE_GET('D_STOCK_IN_OTHER_DEPO',@id,N,N,ALL,td_depo_docs) .TYPE_GET('D_STOCK_IN_OTHER_DEPO',@id,N,N,ALL,td_stock_moves) if @is_dogovor_id is not null begin if @owner_id is null select @owner_id=.ORGANIZATION .ASSIGN(@oper_date,@in_date) -- !!! Дата операции /*Выдача параметров организации учета*/ .BACK_GET_ORG_PARMS(@owner_id,@organisation_id,@plan_money_id,@plan_securs_id,@out_method_id,@is_realiz,@is_p2l_comis,@is_com_in,@is_allow_short4stocks,@is_allow_short4money,@asset4pereoc_type_id) select @out_method_id=.GET_METHOD_OUT(@portfolio_sub_id) /*Валюта плана ДС*/ select @money_plan_cur_id=(select cur_id from t_plans where id = @plan_money_id) /*Конвертация НКД и Суммы приема в валюту плана ДС(р)*/ ----- .TEST_RATE2CUR2DATE(@oper_date,@stock_price_cur_id) .CONVERT_SUM(@stock_price_cur_id,@money_plan_cur_id,@oper_date,0,@stock_price,@out_sum,@rate_value,@rate_date) if isnull(@coupon_deal_sum,0)<>0 begin .TEST_RATE2CUR2DATE(@oper_date,@coupon_cur_id) .CONVERT_SUM(@coupon_cur_id,@money_plan_cur_id,@oper_date,0,@coupon_deal_sum,@nkd_sum,@rate_value,@rate_date) end else begin .ASSIGN(@nkd_sum,0) end ----select @nkd_sum=@coupon_deal_sum ----- .ASSIGN(@out_qty,@stock_qty) .ASSIGN(@home_object_id,@to_object_id) if @home_object_id is null .EXIT_MESSAGE('Не задан объект') .ASSIGN(@home_depo_subacc_id,@t_subacc_id) if @home_depo_subacc_id is null .EXIT_MESSAGE('Не задан раздел') /*Выдача счета ДЕПО по разделу*/ .ASSIGN(@home_depo_acc_id,(.DEPO_ACC_FROM_SUBACC(@home_depo_subacc_id))) /*Выдача класса(направления) по объекту местонахождения активов (привязка)*/ ----- .BACK_PLASE_CLASS_FROM_OBJ(@home_object_id,@organisation_id,@home_place_class_id) ----- /*Выдача класса(направления) по счету депо для вычисления счетов места нахождения(P.A.1,...)*/ ----- select @home_depo_acc_class_id = (select move_direction_id from tb_move_dir2depoacc where id = @home_depo_acc_id) if @home_depo_acc_class_id is null .EXIT_MESSAGE('Не задана привязка места хранения в плане ЦБ к счету ДЕПО') ----- /*=================== Логика по целевым назначениям========================== */ .ASSIGN(@purpose_id,@is_dogovor_id) if @purpose_id is null .EXIT_MESSAGE('Не задано целевое назначение') .ASSIGN(@pay_perpose,((select code from t_purposes where id=@purpose_id))) .ASSIGN(@ext_subc_str,'') .ASSIGN(@cred_acc_sum,null) .ASSIGN(@deb_acc_sum,null) if @pay_perpose = 28 -- Зачисление по сделке в ТС begin -- Нет проводок commit tran return end if @pay_perpose=27------------------- Принятие ЦБ по сделке ВБР --------------------- begin if not exists(select 1 from t_items,t_types where t_items.id=@foundation_id and t_types.id=t_items.type_id and upper(t_types.type_code) in ('DOG_DEALINGS_BAY_VBR','DEALINGS_VIA_BROKER')) .EXIT_MESSAGE('Задайте сделку покупки ЦБ') /*Получение параметров сделки*/ ----- .BACK_BSPARMS_GET(@foundation_id) ----- select @bs1_in_date=in_date from td_depo_docs where id=@foundation_id .ASSIGN(@contr_id,@bs1_contragent_id) if @contr_id is null .EXIT_MESSAGE('Не найден контрагент по договору продажи ЦБ') if @bs1_dog_character_id is null .EXIT_MESSAGE('Не задан характер сделки в договоре') select @character_id=@bs1_dog_character_id if @bs1_dog_character_id = 2 begin .ASSIGN(@client_contract_id,@bs1_client_contract_id) .TYPE_GET('client_contracts',@client_contract_id,10) .ASSIGN(@fin_result,@fin_result10) .ASSIGN(@is_margin,@is_margin10) .ASSIGN(@is_allow_short4client_money,@is_allow_short4money10) .ASSIGN(@is_margin,@is_allow_short4client_money) if @is_margin=0 select @is_margin=1 else select @is_margin=0 end else begin .ASSIGN(@client_contract_id,null) .ASSIGN(@fin_result,1) -- .ASSIGN(@is_margin,1) end if @bs1_dog_character_id = 2 and @client_contract_id is null .EXIT_MESSAGE('Не задан клиентский договор') /*Проверка наличия курса*/ ----- .TEST_RATE2CUR2DATE(@oper_date,@bs1_cur_id) ----- declare @stock_qty_op money select @stock_qty_op=@stock_qty .ASSIGN(@stock_qty,@bs1_stock_qty) /*Конвертация КД и Суммы сделки в валюту плана ДС(р)*/ ------ .CONVERT_SUM(@bs1_cur_id,@money_plan_cur_id,@oper_date,0,@bs1_summ_doc_total,@out_sum_all,@rate_value,@rate_date) if isnull(@coupon_deal_sum,0)=0 begin .ASSIGN(@nkd_sum_all,0) end else begin .CONVERT_SUM(@bs1_coupon_cur_id,@money_plan_cur_id,@oper_date,0,@bs1_coupon_account_sum,@nkd_sum_all,@rate_value,@rate_date) ---select @nkd_sum_all=@bs1_coupon_account_sum end ----- end else if @pay_perpose in (29,108,93) ----------------------Зачисление ЦБ в фонд клиента------------- begin declare @dir_qty money, @all_qty money if @client_contract_id is null .EXIT_MESSAGE('Не задан клиентский договор') .TYPE_GET('client_contracts',@client_contract_id,11) select @fin_result=@fin_result11 .ASSIGN(@is_margin,@is_margin11) .ASSIGN(@is_allow_short4client_money,@is_allow_short4money11) .ASSIGN(@is_margin,@is_allow_short4client_money) if @is_margin=0 select @is_margin=1 else select @is_margin=0 select @character_id=2 if @foundation_id is not null and @pay_perpose not in (108,93) begin declare @oper_comment varchar(255), @subc_str_p varchar(255), @subc_str_s varchar(255), @deb_acc_id numeric, @kred_acc_id numeric, @res_mes varchar(255) select @oper_comment='Снятие резервирование ЦБ под поступление' select @subc_str_s='' .SUBC_STR_ADD(@subc_str_s,'investors',@client_contract_id) .SUBC_STR_ADD(@subc_str_s,'investor2portfolio',@portfolio_sub_id) .SUBC_STR_ADD(@subc_str_s,'portfolio',@portfolio_id) ---.SUBC_STR_ADD(@subc_str_s,'ASSET_PLACES',@to_object_id) .SUBC_STR_ADD(@subc_str_s,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@subc_str_s,'INSTRUCTION',@foundation_id) ---.SUBC_STR_ADD(@subc_str_s,'DEPO_SUBACC',@t_subacc_id) select @subc_str_p='' .SUBC_STR_ADD(@subc_str_p,'STOCK_EMIS',@stock_id) declare @to_dir_id numeric .BACK_PLASE_CLASS_FROM_OBJ(@to_object_id,@organisation_id,@to_dir_id) .ACCID_FROM_CONST2PLAN(@deb_acc_id,'BACK_ACC_STOCK_MOVE_INSTR',@plan_securs_id,2,1,'Счет ожидаемого прихода ЦБ по клиентскому поручению по плану ЦБ',@res_mes) ---.ACCID_FROM_OBJ2PLAN(@deb_acc_id,@to_dir_id,@plan_securs_id,2,1,'К приходу',@res_mes) .ACCID_FROM_OBJ2PLAN(@kred_acc_id,@is_dogovor_id,@plan_securs_id,2,3,'К приходу',@res_mes) .OPERATION_SBC(@owner_id,@plan_securs_id,@in_date,@kred_acc_id,@deb_acc_id,@stock_qty,null,null,0,0, @oper_comment,Y,@operation_id,@id,@action_id,@action_history_id,0,0,@subc_str_p,@subc_str_s) .SALDO(@owner_id,@plan_securs_id,@in_date,@deb_acc_id,@subc_str_s,Y,1,@all_qty,N,N) if @all_qty<0 .EXIT_MESSAGE('Превышено количество по поручению') if @all_qty=0 begin .ITEM_MOVE_STATE(@foundation_id,'COMPLIT') end end else if @instruction_on2off=1 and @pay_perpose not in (108,93) begin -------------- Создаем поручение автоматически-------- declare @client_id numeric select @client_id=client_id from tb_contracts where id=@client_contract_id .TYPE_INIT('INSTRUCTION_STOCK_INOUT',5) .TYPE_ASSIGN(type_poruch_id,1,5) .BACK_GEN_NO(@in_no5_1,1,@in_date) .TYPE_ASSIGN(in_no,@in_no5_1,5) .TYPE_ASSIGN(in_date,@in_date5_1,5) .TYPE_ASSIGN(depo_doc_type,1,5) .TYPE_ASSIGN(client_id,@client_id,5) .TYPE_ASSIGN(depo_subacc_id,@t_subacc_id,5) .TYPE_ASSIGN(asset_place_id,@to_object_id,5) .TYPE_ASSIGN(stock_id,@stock_id,5) .TYPE_ASSIGN(stock_qty,@stock_qty,5) .TYPE_ASSIGN(owner_id,@owner_id,5) .TYPE_ASSIGN(exec_end_date,@in_date,5) .TYPE_ASSIGN(client_contract_id,@client_contract_id,5) .TYPE_ASSIGN(portfolio_id,@portfolio_id,5) .TYPE_ASSIGN(investor2portfolio_id,@portfolio_sub_id,5) .TYPE_INSERT('INSTRUCTION_STOCK_INOUT','COMPLIT',5) update td_depo_docs set foundation_id=@id5_1 where id=@id update tb_directions set in_time = dateadd(minute, rand()*390, '09:30:00') where id=@id5_1 end .SUBC_STR_ADD(@ext_subc_str,'INVESTORS',@client_contract_id) end else if @pay_perpose in (35,109,94) ----------------------Зачисление ЦБ в фонд компании------------- begin .ASSIGN(@contr_id,null) select @fin_result=1 select @character_id=1 -- .ASSIGN(@is_margin,1) end else ------------------------------------------- Прочие случаи----------------------- begin select @contr_id=(select client_id from tb_contracts where id=@foundation_id) if @contr_id is null .EXIT_MESSAGE('Не задан контрагент') if (select upper(type_code) from t_types,t_items where t_items.id=@foundation_id and t_types.id=t_items.type_id)='CLIENT_CONTRACTS' begin select @character_id=2 select @client_contract_id=@foundation_id .TYPE_GET('client_contracts',@client_contract_id,12) select @fin_result=@fin_result12 .ASSIGN(@is_margin,@is_margin12) .ASSIGN(@is_allow_short4client_money,@is_allow_short4money12) .ASSIGN(@is_margin,@is_allow_short4client_money) if @is_margin=0 select @is_margin=1 else select @is_margin=0 end else begin select @character_id=1 select @fin_result=1 -- .ASSIGN(@is_margin,1) end end /*============================Вычисление инвестора===========================*/ if @client_contract_id is null select @investor_id=@organisation_id else begin select @investor_id=@client_contract_id end if @investor_id is null .EXIT_MESSAGE('Инвестор не найден') /*============================Вычисление строк субконто===========================*/ if @pay_perpose=27 /* По сделке ВБР */ begin .ASSIGN(@investor_subc_str,@bs1_investor_subc_str) end else begin .ASSIGN(@investor_subc_str,'') .SUBC_STR_ADD(@investor_subc_str,'investors',@investor_id) .SUBC_STR_ADD(@investor_subc_str,'investor2portfolio',@portfolio_sub_id) .SUBC_STR_ADD(@investor_subc_str,'portfolio',@portfolio_id) end /* Строки для плана ЦБ */ .ASSIGN(@stock_home_subc_str,@investor_subc_str) .SUBC_STR_ADD(@stock_home_subc_str,'ASSET_PLACES',@home_object_id) .SUBC_STR_ADD(@stock_home_subc_str,'DEPO_SUBACC',@home_depo_subacc_id) .SUBC_STR_ADD(@stock_home_subc_str,'STOCK_EMIS',@stock_id) .ASSIGN(@stock_ext_subc_str,'') .SUBC_STR_ADD(@stock_ext_subc_str,'DEPO_SUBACC',@home_depo_subacc_id) .SUBC_STR_ADD(@stock_ext_subc_str,'STOCK_EMIS',@stock_id) /* Строки для плана ДС */ -- С нашей стороны .ASSIGN(@home_subc_str,@investor_subc_str) .SUBC_STR_ADD(@home_subc_str,'STOCK_EMIS',@stock_id) .GET_IN_PARTION(@partion_id,@out_method_id,@id) .SUBC_STR_ADD(@home_subc_str,'DOC_SEC_IN',@partion_id) --- С противоположной стороны --------------------------------------------------------- if @pay_perpose in (35,109,94) -- Зачисление ЦБ в фонда компании begin .ASSIGN(@ext_subc_str,@investor_subc_str) .SUBC_STR_ADD(@ext_subc_str,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@ext_subc_str,'doc_sec',@id) .ASSIGN(@p2l_subc_str,@ext_subc_str) end else if @pay_perpose in (29,108,93) -- Зачисление ЦБ в фонд клиента begin .ASSIGN(@ext_subc_str,@investor_subc_str) ---.SUBC_STR_ADD(@ext_subc_str,'investors',@investor_id) .SUBC_STR_ADD(@ext_subc_str,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@ext_subc_str,'doc_sec',@id) .ASSIGN(@p2l_subc_str,@ext_subc_str) end else if @pay_perpose=27 begin .GET_IN_PARTION(@partion_id,@out_method_id,@id) .SUBC_STR_ADD(@home_subc_str,'DOC_SEC_IN',@partion_id) .ASSIGN(@ext_subc_str,@investor_subc_str) .SUBC_STR_ADD(@ext_subc_str,'contragents',@contr_id) .SUBC_STR_ADD(@ext_subc_str,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@ext_subc_str,'doc_sec',@foundation_id) .ASSIGN(@p2l_subc_str,@ext_subc_str) end else begin .GET_IN_PARTION(@partion_id,@out_method_id,@id) .SUBC_STR_ADD(@home_subc_str,'DOC_SEC_IN',@partion_id) .ASSIGN(@ext_subc_str,@investor_subc_str) .SUBC_STR_ADD(@ext_subc_str,'contragents',@contr_id) .SUBC_STR_ADD(@ext_subc_str,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@ext_subc_str,'doc_sec',@id) .ASSIGN(@p2l_subc_str,@ext_subc_str) end /* ================================ Операции ========================= */ .BACK_OPERS_BEGIN(@owner_id, (1),@purpose_id,@home_place_class_id,@home_object_id,@client_contract_id,@investor_subc_str,@portfolio_sub_id) if @pay_perpose = 27 ----- Перевод обязательства с фиктивной бумаги на учитываемую begin .BACK_STOCK_REPLACE_VBR(@foundation_id,@owner_id,1,@plan_money_id,@plan_securs_id,@stock_id,@out_qty,@ext_subc_str,@in_date,@bs1_in_date) end /* if @pay_perpose = 27 begin .BACK_GET_OBLIG_SEC_VBR(1,@ext_subc_str,@out_qty,@out_sum_all,@nkd_sum_all,@oper_date,@out_sum,@nkd_sum) end */ -- По плану ЦБ if @pay_perpose = 27 begin .BACK_SECURS_CLOSE_SEC_VBR(@out_qty,@oper_date,@ext_subc_str,1) end -- По плану ДС .MONEY_VAR(@sum_out_total) .MONEY_VAR(@qty_out_total) .MONEY_VAR(@sum_unkd_out_total) .MONEY_VAR(@sum_com_in_total) .MONEY_VAR(@acc_sum_all) select @acc_sum_all=isnull(@coupon_deal_sum,0)+@stock_price .BACK_SECURS_INOUT_MON(@out_qty,@out_sum,@nkd_sum,@oper_date,@oper_date,null,@home_subc_str,@ext_subc_str,@p2l_subc_str,@acc_sum_all,1,@is_allow_short4money, @is_margin, @sum_out_total,@qty_out_total, @sum_unkd_out_total,@fin_result,@character_id,@p2l_subc_str,@is_realiz,@is_p2l_comis,@is_com_in,@sum_com_in_total) .BACK_SECURS_INOUT_SEC(@out_qty,@oper_date,@stock_home_subc_str,@stock_ext_subc_str,@home_depo_acc_class_id,@bo1_short_qty) -- YYY if @pay_perpose in (50,51,65,66) begin select @stock_ext_subc_str='' .SUBC_STR_ADD(@stock_ext_subc_str,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@stock_ext_subc_str,'contragents',@contragent_id) .BACK_OPER_FOR_ZAEM_CB(@owner_id,@oper_date,@stock_qty,@purpose_id,@stock_home_subc_str,@stock_ext_subc_str,@plan_securs_id,@plan_money_id,@character_id,@bo1_long_sum,@money_plan_cur_id) end if @pay_perpose = 27 --- По сделке begin .ASSIGN(@plan2partner_id,(.PLAN2PARTNER_ID(@owner_id,@plan_money_id))) .CONTROL_PARTIONS(1,null,@owner_id,@plan2partner_id,@plan_money_id,@oper_date,@in_no,@investor_id,@portfolio_sub_id,@stock_id,'Данная операция нарушит последовательность операций по аналогичным партиям.') if @bs1_cur_id<>@money_plan_cur_id begin declare @ovr_sum money, @currencies_summ money select @currencies_summ=round((@stock_qty_op*@bs1_summ_doc_total/@bs1_stock_qty),2) ---.EXIT_MESSAGE_PARM('ss',@bs1_summ_doc_total) --select 'letsko_av_debug', 'ap_opers_securs_in', @character_id AS character_id, @fin_result AS fin_result, -- @bo1_long_sum AS bo1_long_sum, @currencies_summ AS currencies_summ, @oper_date AS oper_date, -- @in_date AS in_date, @money_plan_cur_id AS money_plan_cur_id, @bs1_cur_id AS bs1_cur_id, -- @home_subc_str AS home_subc_str, @p2l_subc_str AS p2l_subc_str, @ext_subc_str AS ext_subc_str, -- @ovr_sum AS ovr_sum, @bo1_long_qty AS bo1_long_qty, @stock_id AS stock_id .BACK_CUROVR_REG_VBR(@character_id,@fin_result,1,@bo1_long_sum,@currencies_summ,@oper_date,@in_date,@money_plan_cur_id,@bs1_cur_id,@home_subc_str,@p2l_subc_str,@ext_subc_str,@ovr_sum,@bo1_long_qty,@stock_id) --.NAME_VAR(@ext_subc_str_pif) --.ASSIGN(@ext_subc_str_pif, @ext_subc_str) --.SUBC_STR_DEL(@ext_subc_str_pif, 'CONTRAGENTS') --.SUBC_STR_DEL(@ext_subc_str_pif, 'STOCK_EMIS') --.SUBC_STR_DEL(@ext_subc_str_pif, 'DOC_SEC') --.SUBC_STR_ADD(@ext_subc_str_pif, 'PARTNERS', @owner_id) --.BACK_CUROVR_VBR_PIF(1, @bo1_long_sum, @currencies_summ, @oper_date, @in_date, @money_plan_cur_id, @home_subc_str, @ext_subc_str_pif, @fin_result, @character_id, @bs1_cur_id) --.BACK_CUROVR_VBR_PIF(1, @bo1_long_sum, @currencies_summ, @oper_date, @in_date, @money_plan_cur_id, @home_subc_str, @ext_subc_str, @fin_result, @character_id, @bs1_cur_id) -- YYY end declare @subc_str_stock varchar(255), @subc_str_money varchar(255) select @subc_str_money=@bs1_investor_subc_str .SUBC_STR_ADD(@subc_str_money,'contragents',@bs1_contragent_id,N) .SUBC_STR_ADD(@subc_str_money,'doc_sec',@foundation_id,N) select @subc_str_stock=@subc_str_money .SUBC_STR_ADD(@subc_str_stock,'stock_emis',@bs1_stock_id,N) .BACK_EXEC_OBLIGATION(@foundation_id,1,@subc_str_money,@subc_str_stock,@oper_date,@owner_id,2) .BACK_SETUP_PROFIT_OR_LOSS(@foundation_id,@oper_date,@owner_id) .BACK_SETUP_BAL_SUM(@foundation_id,@in_date,@owner_id,@bo1_unkd_long_sum,@bo1_pereoc_sum) ---.EXIT_MESSAGE_PARM('@coupon_deal_sum',@bo1_long_sum) end --- YYY end #ifdef ALD_BANK_SECS -------------------------------------------------------------------------------------------------------- --- СИНТЕТИЧЕСКИЙ УЧЕТ --- -------------------------------------------------------------------------------------------------------- .ID_VAR(@oper_id_nastr) .ID_VAR(@is_overdue) .INT_VAR(@cond_res) .NAME_VAR(@condition) --.NAME_VAR(@type_code) IF ((.TEST_SINT_ACCOUNTING(@organisation_id)) AND (@pay_perpose IN (27))) BEGIN SELECT @type_code = .ITEM_TYPE_CODE(@id) SELECT @foundation_id = (SELECT td_depo_docs.foundation_id FROM td_depo_docs WHERE td_depo_docs.id = @id) IF(@type_code = 'D_STOCK_IN') BEGIN --select 'Calc Aliases' .EXEC_PROC((ap_d_stock_in_aliases @id),'Прием ЦБ: формирование алиасов') END -- letsko_av -- Я закоментил, т.к. проца все равно не компилится /* ELSE IF(@type_code = 'D_STOCK_IN_OTHER_DEPO') BEGIN .EXEC_PROC((ap_d_stock_in_other_aliases @id),'Прием ЦБ во внешнем депозитарии: формирование алиасов') END */ IF(@pay_perpose = 27) BEGIN .ASSIGN(@oper_id_nastr,4) SELECT @is_overdue = tb_bind_deal2queries.stock_is_overdue FROM tb_bind_deal2queries WHERE tb_bind_deal2queries.deal_id = @foundation_id AND ISNULL(tb_bind_deal2queries.stock_is_overdue,-1) != -1 SELECT @is_overdue = ISNULL(@is_overdue,0) IF(@is_overdue = 0) BEGIN SELECT @condition = '(DEAL.STATE_CODE = POST_END OR DEAL.STATE_CODE = WAIT_EXEC) AND (DEAL.MOVEDAYS_COUNT < 0) AND (DEAL.SEQUENCE != 3 OR (DEAL.SEQUENCE = 3 AND DEAL.IS_FINE = 1))' -- letsko_av -- закоментированно временно, Кирилл обещал посмотреть -- .EXEC_PROC((ap_multi_condition_calc @type_id, @id, @condition, 'Сделка покупки ВБР: расчет условия о штрафных санкциях', @cond_res out),'Сделка покупки ВБР: расчет условия о штрафных санкциях') IF(@cond_res = 1) SELECT @is_overdue = 1 END -- IF(@is_overdue = 0) .ID_ALIAS_PUT('STOCK_IS_OVERDUE',@id,@is_overdue) END ELSE .ASSIGN(@oper_id_nastr,0) -- select 'до проводок по депооперации' .GENERATE_TYPED_OPERATIONS(@owner_id,1,@id,@type_id,@action_id,@oper_id_nastr,@bs1_dog_character_id,'Депозитарная операция зачисления ЦБ',@action_history_id,null,'Депозитарная операция зачисления ЦБ') -- select 'до проводок по комиссии' .EXEC_PROC((ap_generate_comissions @owner_id, 1, @id, @id, @type_id, @action_id, 8, @bs1_dog_character_id,'Депозитарная операция зачисления ЦБ: комиссии',@action_history_id),'Депозитарная операция зачисления ЦБ: формирование комиссий') --select 'после проводок по депооперации' .ITEM_ALIASES_CLEAR(@id) END ---------------------------------------------------------------------------------------------------- --- синтетический учет окончание --- ---------------------------------------------------------------------------------------------------- #endif if @pay_perpose in (108,109,35,50,29,66,110,111,32,36,51,65,93,94) begin declare @oper_id numeric .BACK_CURSOR_FOR_COMIS(@id,@in_date,@id,@oper_id,@action_id,@action_history_id,@owner_id,3,@plan_money_id,@fin_result,@character_id,@p2l_subc_str,@is_realiz,@is_p2l_comis) end ------------- По ПИФ --.EXIT_MESSAGE('!!!!') declare @deal_for_pif_id numeric if @pay_perpose in (27,30) select @deal_for_pif_id=@foundation_id else select @deal_for_pif_id=@id #ifdef ALD_UKPIF IF .TEST_PIF_CLIENT(@client_contract_id) BEGIN EXECUTE ap_pif_stock_inout @sid, @action_history_id, @client_contract_id, 1, -- IN @purpose_id, @stock_id, @out_qty, @out_sum, @nkd_sum, @ovr_sum, @oper_date, @oper_date, @contr_id, @partion_id, @deal_for_pif_id IF @@error != 0 BEGIN IF @@trancount <> 0 ROLLBACK TRAN RETURN END IF @pay_perpose IN (27, 30) BEGIN .BACK_PIF_CLOSE90(@foundation_id, @action_id, @action_history_id) END /* -- test_lav DECLARE @ext_subc_str_pif VARCHAR(2000) SELECT @ext_subc_str_pif = '' .SUBC_STR_ADD(@ext_subc_str_pif, 'PARTNERS', @contragent_id) .BACK_CUROVR_VBR_PIF(1, @ovr_sum, @oper_date, @in_date, @money_plan_cur_id, @home_subc_str, @ext_subc_str_pif, @fin_result, @character_id, @bs1_cur_id) */ END #endif -- Типовые операции, для НПФ #ifdef ALD_NPF #ifndef ALD_BANK_SECS .ID_VAR(@oper_id_nastr) .ID_VAR(@is_overdue) .INT_VAR(@cond_res) .NAME_VAR(@condition) --.NAME_VAR(@type_code) #endif select @client_id=client_id from tb_contracts where id=@client_contract_id IF (.TEST_CLIENT_ACCOUNTING(@client_contract_id)) -- and (.TEST_SINT_ACCOUNTING(@organisation_id)) BEGIN SELECT @type_code = .ITEM_TYPE_CODE(@id) SELECT @foundation_id = (SELECT td_depo_docs.foundation_id FROM td_depo_docs WHERE td_depo_docs.id = @id) IF(@type_code = 'D_STOCK_IN') BEGIN .EXEC_PROC((ap_d_stock_in_aliases @id),'Прием ЦБ: формирование алиасов') END -- letsko_av -- Я закоментил, т.к. проца все равно не компилится /* ELSE IF(@type_code = 'D_STOCK_IN_OTHER_DEPO') BEGIN .EXEC_PROC((ap_d_stock_in_other_aliases @id),'Прием ЦБ во внешнем депозитарии: формирование алиасов') END */ -- .GENERATE_OPERATIONS(@client_id,12,@id,@type_id,@action_id,@action_history_id,1,@bs1_dog_character_id,'Депозитарная операция зачисления ЦБ') .GENERATE_OPERATIONS(@client_id,12,@id,@type_id,@action_id,@action_history_id,0,3,'Депозитарная операция зачисления ЦБ') -- .GENERATE_OPERATIONS(@client_id, 12,@id,@type_id,@action_id,@action_history_id,0,3,'Входящий платеж') .EXEC_PROC((ap_generate_comissions @client_id, 12 , @id, @id, @type_id, @action_id, 8, 3,'Депозитарная операция зачисления ЦБ', @action_history_id),'Депозитарная операция зачисления ЦБ: формирование комиссий сделки') -- .EXEC_PROC((ap_generate_comissions @client_id, 12 , @id, @id, @type_id, @action_id, 8, @bs1_dog_character_id,'Депозитарная операция зачисления ЦБ', @action_history_id),'Депозитарная операция зачисления ЦБ: формирование комиссий сделки') -- .GENERATE_TYPED_OPERATIONS(@owner_id,1,@id,@type_id,@action_id,@oper_id_nastr,@bs1_dog_character_id,'Депозитарная операция зачисления ЦБ',@action_history_id,null,'Депозитарная операция зачисления ЦБ') -- .EXEC_PROC((ap_generate_comissions @owner_id, 1, @id, @id, @type_id, @action_id, 8, @bs1_dog_character_id,'Депозитарная операция зачисления ЦБ: комиссии',@action_history_id),'Депозитарная операция зачисления ЦБ: формирование комиссий') .ITEM_ALIASES_CLEAR(@id) END --- синтетический учет НПФ --- #endif commit tran .END