create procedure dbo.%PROC% @deal_id numeric, @com_id numeric, @date_b datetime, @oper_id numeric, @id numeric, @action_id numeric, @action_history_id numeric, @owner_id numeric as declare @user_id numeric, @state_id numeric, @new_state_id numeric, @type_id numeric, @type_code varchar(255), @com_id_s varchar(30) .INT_VAR(@make_use_of_me) begin --- tran select @com_id_s=convert(varchar(30),@com_id) .TYPE_GET('td_comis2oper',@com_id,100) declare @contr_own_id numeric, @pos_own_id numeric, @contr_ts_id numeric, @pos_ts_id numeric, @contr_kk_id numeric, @pos_kk_id numeric, @contr_br_id numeric, @pos_br_id numeric, @is_sint_accounting int, @flag_op int /*exec ap_get_contr_comis @deal_id_s,@contr_own_id out,@pos_own_id out,@contr_ts_id out,@pos_ts_id out, @contr_kk_id out,@pos_kk_id out,@contr_br_id out,@pos_br_id out */ select @type_code=(select t_types.type_code from t_types,t_items where t_items.id=@deal_id and t_types.id=t_items.type_id) if isnull(@comis100,0) <> 0 begin declare @acc_id numeric, @com_acc_id numeric, @type_deal_id numeric, @stock_id numeric, @stock_qty money, @cur_id numeric, @contract_id numeric, @sale_place_id numeric, @portfolio_id numeric, @portfolio_sub_id numeric, @props_id numeric, @external_broker_id numeric, @character_id numeric, @broker_id numeric, @profit_or_loss money, @comment varchar(255), @sum_min_fond money, @sum_min money, @deal_date datetime, @p_o_l money, @saldo money, @investor_id numeric, @contr_brok_id numeric, @sum_bal money, @cur_rur numeric, @contragent_id numeric, @price_position_id numeric, @asset_place_id numeric, @depo_subacc_id numeric, @bank_account_id numeric, @bal_sum_out money, @sum_in_paycur money, @contract_date datetime, @dog_date datetime, @reg_date datetime, @pay_date datetime, @oper_date datetime, @dealing_look int declare @purpose_code int declare @com_br_yes2no int --- флаг существования клиентской комиссии select @purpose_code=(select (.PURPOSE_CODE(is_dogovor_id)) from td_stock_moves where id=@deal_id) if exists (select 1 from td_comis2oper where service_id=6 and item_id=@deal_id and .ITEMS_EXISTS_BY_TYPE(td_comis2oper.id,'td_comis2oper')) select @com_br_yes2no=1 else select @com_br_yes2no=0 if @type_code in ('DOG_DEALINGS_BAY_VBR','DOG_DEALINGS_SALE_VBR','DEALINGS_VIA_BROKER','DEALINGS_VIA_BROKER_SALE') begin select @bal_sum_out = bal_sum_out, @sum_in_paycur = sum_in_paycur, @type_deal_id=ticket_type_id, @stock_id=stock_id, @stock_qty=stock_qty, @contract_id=client_contract_id, @sale_place_id=sale_place_id, @portfolio_id=portfolio_id, @portfolio_sub_id=portfolio_sub_id, @props_id=props_id, @external_broker_id=external_broker_id, @character_id=character_id, @profit_or_loss=profit_or_loss, @deal_date=in_date, @asset_place_id=asset_place_id, @depo_subacc_id=depo_subacc_id, @bank_account_id=bank_account_id, @dealing_look=dealing_look from tb_baysale_docitems,td_depo_docs where tb_baysale_docitems.id=@deal_id and tb_baysale_docitems.id=td_depo_docs.id if @investor_bank_acc_id100 is not null select @bank_account_id=@investor_bank_acc_id100 end else if @type_code in ('D_STOCK_IN_OTHER_DEPO','D_STOCK_IN','D_STOCK_IN_MOVE','D_STOCK_OUT_OTHER_DEPO','D_STOCK_OUT','D_STOCK_OUT_MOVE') begin select ---@bal_sum_out = bal_sum_out, ---@sum_in_paycur = sum_in_paycur, ---@type_deal_id=ticket_type_id, @stock_id=stock_id, @stock_qty=stock_qty, @contract_id=client_contract_id, ---@sale_place_id=sale_place_id, @portfolio_id=portfolio_id, @portfolio_sub_id=portfolio_sub_id, ---@props_id=props_id, ---@external_broker_id=external_broker_id, ---@character_id=character_id, ---@profit_or_loss=profit_or_loss, @deal_date=in_date, @asset_place_id=to_object_id ---@depo_subacc_id=depo_subacc_id, ---@bank_account_id=bank_account_id from td_stock_moves,td_depo_docs where td_stock_moves.id=@deal_id and td_stock_moves.id=td_depo_docs.id if @contract_id is null select @character_id=1 else select @character_id=2 if upper(@type_code) like '%'+'_IN'+'%' select @type_deal_id=1, @depo_subacc_id=t_subacc_id from td_stock_moves where td_stock_moves.id=@deal_id else if upper(@type_code) like '%'+'_OUT'+'%' select @type_deal_id=2, @depo_subacc_id=s_subacc_id from td_stock_moves where td_stock_moves.id=@deal_id select @bank_account_id=@investor_bank_acc_id100 end if @bank_account_id is null and @character_id=2 select @bank_account_id=money_acc_id from tb_contracts where id=@contract_id if @bank_account_id is null .EXIT_MESSAGE('Счет для списания комиссий не найден') .BACK_GET_DEAL_DATES(@deal_id,@contract_date,@dog_date,@reg_date,@pay_date) declare @back_sec_plan_id numeric, @out_method_id numeric, @plan_money numeric declare @is_realiz int, @is_p2l_comis int, @is_com_in int, @is_allow_short4stocks int, @is_allow_short4money int, @asset4pereoc_type_id numeric .BACK_GET_ORG_PARMS(@owner_id,@broker_id,@plan_money,@back_sec_plan_id,@out_method_id,@is_realiz,@is_p2l_comis,@is_com_in,@is_allow_short4stocks,@is_allow_short4money,@asset4pereoc_type_id) select @cur_rur=.CUR2PLAN(@plan_money) if @character_id=2 select @investor_id=@contract_id else select @investor_id=@broker_id .TEST_RATE2CUR2DATE(@date_b,@cur_rur) declare @method_id numeric, @method_date datetime, @partion_id numeric .TYPE_GET('CLIENT_CONTRACTS',@contract_id,10) if @comission_period_id10=1 select @oper_date=@contract_date else if @comission_period_id10=2 select @oper_date=@dog_date else if @comission_period_id10=3 select @oper_date=@reg_date else if @comission_period_id10=4 select @oper_date=@pay_date if @service_id100=12 and @character_id=1 select @oper_date=@date_b ---.EXIT_MESSAGE_PARM('!!!',@oper_date) if @character_id=1 select @fin_result10=1 declare @subc_str varchar(255) select @subc_str='' declare @portfolio_brok_id numeric, @portfolio_sub_brok_id numeric, @value_id numeric /*select @portfolio_brok_id=(select tb_portfolio.id from tb_portfolio where tb_portfolio.portfolio_code='NOT_DIVIDED' and .ITEMS_EXISTS_BY_TYPE(tb_portfolio.id,'portfolio'))*/ select @portfolio_brok_id = min(tb_portfolio.id) from tb_portfolio, tb_portfolio2investor where tb_portfolio2investor.investor_id = @broker_id and tb_portfolio2investor.portfolio_id = tb_portfolio.id and tb_portfolio.charge_flag = 1 and .ITEMS_EXISTS_BY_TYPE(tb_portfolio.id,'portfolio') if @portfolio_brok_id is null begin select @value_id=t_classvalues.id from t_classvalues, t_classes where t_classes.code='COMMON' and t_classvalues.class_id=t_classes.id and t_classvalues.code='YES' select @portfolio_brok_id = min(tb_portfolio.id) from tb_portfolio where tb_portfolio.charge_flag = 1 and .ITEMS_EXISTS_BY_TYPE(tb_portfolio.id,'portfolio') and .ITEMS_EXISTS_BY_CLASS_VALUE(tb_portfolio.id,@value_id) end if @service_id100 in (6,12) begin if @portfolio_brok_id is null .EXIT_MESSAGE('Портфель, используемый для начисления комиссий, не найден') /*if @portfolio_brok_id is null begin .TYPE_INIT('portfolio') .TYPE_ASSIGN(portfolio_code,'NOT_DIVIDED') .TYPE_ASSIGN(portfolio_name,'Ia?ani?aaaeaiiua n?aanoaa') .TYPE_ASSIGN(strategy_id,1) .TYPE_INSERT('portfolio','CRT') .TYPE_INIT('item2classvalues',2) .TYPE_ASSIGN(item_id,@id1_1,2) .TYPE_ASSIGN(value_id,((select t_classvalues.id from t_classvalues,t_classes where t_classes.code='COMMON' and t_classvalues.class_id=t_classes.id)),2) .TYPE_INSERT('item2classvalues','CRT',2) end*/ /*select @portfolio_sub_brok_id=(select tb_portfolio_section.id from tb_portfolio_section where tb_portfolio_section.section_code='NOT_DIVIDED' and .ITEMS_EXISTS_BY_TYPE(tb_portfolio_section.id,'portfolio_section') and tb_portfolio_section.investor_id=@broker_id)*/ select @portfolio_sub_brok_id=min(tb_portfolio_section.id) from tb_portfolio_section where tb_portfolio_section.investor_id = @broker_id and tb_portfolio_section.charge_flag = 1 and .ITEMS_EXISTS_BY_TYPE(tb_portfolio_section.id,'portfolio_section') if @portfolio_sub_brok_id is null .EXIT_MESSAGE('Раздел учета, используемый для начисления комиссий, не найден') /*if @portfolio_sub_brok_id is null begin .TYPE_INIT('portfolio_section',3) .TYPE_ASSIGN(section_code,'NOT_DIVIDED',3) .TYPE_ASSIGN(section_name,'Ia?ani?aaaeaiiua n?aanoaa',3) .TYPE_ASSIGN(investor_id,@broker_id,3) .TYPE_INSERT('portfolio_section','ACT',3) select @portfolio_sub_brok_id=@id3_1 end*/ end .NAME_VAR(@res_mess) .ACCID_FROM_CONST2PLAN(@com_acc_id,'BACK_ACC_COMISSIONS',@plan_money,1,1,'Счет комиссии',@res_mess) ----Aianoi -select @com_acc_id=.ACCID_FROM_EFFNO(@plan_money,"4.1") /* -- letsko_av -- 18.02.2005 -- отфильтровывание записей по условиям групповой операции SELECT @method_id = .GET_METHOD_OUT(@portfolio_sub_id); IF @method_id = 3 BEGIN SELECT @partion_id = ( SELECT td_depo_docs.id FROM td_depo_docs WHERE in_no = 'COMMON_ASSET_INPUT' AND .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id, 'LETTER_IN') ) END ELSE SELECT @partion_id = @deal_id -- letsko_av (end) */ -- letsko_av -- 19.12.2005 -- новый метод подсчета партий --FIFO = 1 --LIFO = 2 --Sredne = 3 SELECT @method_id = method_id FROM tb_baysale_docitems, tb_portfolio_section WHERE tb_baysale_docitems.id = @deal_id AND tb_baysale_docitems.portfolio_sub_id = tb_portfolio_section.id IF @method_id = 3 BEGIN SELECT @partion_id = ( SELECT td_depo_docs.id FROM td_depo_docs WHERE in_no = 'COMMON_ASSET_INPUT' AND .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id, 'LETTER_IN') ) END ELSE SELECT @partion_id = @deal_id -- letsko_av (end) declare @dir_id numeric, @res_1 varchar(255), @obj_id numeric, @type_deal_code varchar(150), @a_place_id numeric select @type_deal_code=type_code from t_types,t_items where t_items.id=@deal_id and t_types.id=t_items.type_id if upper(ltrim(rtrim(@type_deal_code))) in ('DOG_DEALINGS_BAY_VBR','DOG_DEALINGS_SALE_VBR') -- letsko_av -- 07.04.2005 -- попытка убыстрить -- select @a_place_id=(select min(to_object_id) from t_paydocs where foundation_id=@deal_id and .ITEMS_EXISTS(t_paydocs.id)) SELECT @a_place_id = MIN(to_object_id) FROM t_paydocs WHERE foundation_id = @deal_id AND .ITEMS_EXISTS(t_paydocs.id) if @a_place_id is not null select @asset_place_id=@a_place_id .BACK_GET_OBJ2BROK2TS(@asset_place_id,@owner_id,@dir_id,@obj_id) select @comment=.SIMPLE_NAME(5500,@service_id100) select @price_position_id=@price_position_id100 select @contragent_id=@recipient_id100 ---.ACCID_FROM_CONST2PLAN(@acc_id,'BACK_ACC_REALIZ',@plan_money,1,1,'Cчет реализации',@res_1) -------------------- --Oei eeeaioneiai aiaiai?a .ID_VAR(@contr_type_id) if @character_id=2 begin select @contr_type_id = ct.contract_class_id from tb_contracts c, tb_contract_types ct where c.id = @contract_id and c.dog_type_id = ct.id .TEST_NULL(@contr_type_id,'@contr_type_id',0) end /* if not exists(select 1 from t_oper_list .INDEX(t_oper_list_head_FK),t_oper_subconto,t_operations .INDEX(t_operations_item) where t_operations.item_id=@deal_id and upper(t_operations.op_name)=upper(@comment) and t_operations.id=t_oper_list.head_id and t_oper_list.deb_or_cred=1 and t_oper_list.acc_id=@com_acc_id and t_oper_list.id=t_oper_subconto.id and t_oper_subconto.item_id=@price_position_id) */ select @flag_op=1 ------------------- if exists(select 1 from t_items,t_types where t_items.id=@deal_id and t_types.id=t_items.type_id and upper(t_types.type_code) in ('DEALINGS_VIA_BROKER','DEALINGS_VIA_BROKER_SALE', 'D_STOCK_IN_OTHER_DEPO','D_STOCK_IN','D_STOCK_IN_MOVE', 'D_STOCK_OUT_OTHER_DEPO','D_STOCK_OUT','D_STOCK_OUT_MOVE')) select @oper_date=@date_b --------------------------------- if @type_deal_id=1 begin .ACCID_FROM_OBJ2PLAN(@acc_id,@dir_id,@plan_money,1,1,'N?ao aey nienaiey eiiennee',@res_1) if @purpose_code=93 and @type_code in ('D_STOCK_IN_OTHER_DEPO','D_STOCK_IN','D_STOCK_IN_MOVE') begin .ACCID_FROM_CONST2PLAN(@acc_id,'BACK_ACC_FUND_SECUR',@plan_money,1,3,'Фонд клиента',@res_1) end else if @purpose_code=94 and @type_code in ('D_STOCK_IN_OTHER_DEPO','D_STOCK_IN','D_STOCK_IN_MOVE') begin .ACCID_FROM_CONST2PLAN(@acc_id,'BACK_ACC_FUND_SECUR',@plan_money,1,2,'Фонд компании',@res_1) end if @character_id=2 and @service_id100=3 and @com_br_yes2no=1 -----and @contr_type_id in (2,3) -- комиссия внешнего брокера begin -- при покупке по договору комиссии if not exists(select 1 from t_oper_list .INDEX(t_oper_list_head_FK), t_oper_subconto, t_operations .INDEX(t_operations_item) where t_oper_list.acc_id=@com_acc_id and t_oper_list.deb_or_cred=1 and t_oper_list.id=t_oper_subconto.id and t_oper_subconto.item_id=@price_position_id and t_operations.id=t_oper_list.head_id and t_operations.item_id=@deal_id and upper(t_operations.op_name)=upper(@comment)) begin .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@com_acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'price_position',@price_position_id) .UPDATE_SUBC(K,'contragents',@owner_id) .UPDATE_SUBC(K,'doc_sec',@deal_id) .SUBC_CHECK end end else -------------------------------------------------------------- if @character_id=2 and @service_id100 in (6,12) and @oper_date=@date_b begin if @flag_op=1 begin select @make_use_of_me = 1 .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'bank_account',@bank_account_id) .UPDATE_SUBC(K,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'STOCK_EMIS',@stock_id) .SUBC_CHECK end end else if @character_id=1 and @service_id100 not in (6,12) begin if @flag_op=1 begin select @make_use_of_me = 1 .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'bank_account',@bank_account_id) .UPDATE_SUBC(K,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'STOCK_EMIS',@stock_id) ---.UPDATE_SUBC(K,'doc_sec',@deal_id) .SUBC_CHECK end end else if @oper_date=@date_b begin if @flag_op=1 begin ---.EXIT_MESSAGE_PARM('@comiss100',@comis100) select @make_use_of_me = 1 if not (@character_id=2 and @service_id100=3 and @com_br_yes2no=1) begin .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'bank_account',@bank_account_id) .UPDATE_SUBC(K,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'STOCK_EMIS',@stock_id) .SUBC_CHECK end end end end else begin if @character_id=2 begin .ACCID_FROM_OBJ2PLAN(@acc_id,@dir_id,@plan_money,1,3,'Счет для списания комиссий',@res_1) end else begin .ACCID_FROM_OBJ2PLAN(@acc_id,@dir_id,@plan_money,1,2,'Счет для списания комиссий',@res_1) end ---.EXIT_MESSAGE_PARM('@dir_id',@plan_money) if @character_id=2 and @service_id100=3 and @com_br_yes2no=1 ---and @contr_type_id in (2,3) -- комиссия внешнего брокера begin -- при продаже по договору комиссии if @flag_op=1 begin select @make_use_of_me = 1 .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@com_acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'price_position',@price_position_id) .UPDATE_SUBC(K,'contragents',@owner_id) .UPDATE_SUBC(K,'doc_sec',@deal_id) .SUBC_CHECK end end else if @character_id=2 and @service_id100 in (6,12) and @oper_date=@date_b begin if @flag_op=1 begin select @make_use_of_me = 1 .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'bank_account',@bank_account_id) .UPDATE_SUBC(K,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'STOCK_EMIS',@stock_id) ---.UPDATE_SUBC(K,'doc_sec',@deal_id) .SUBC_CHECK end end else if @character_id=1 and @service_id100 not in (6,12) begin if @flag_op=1 begin select @make_use_of_me = 1 .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'bank_account',@bank_account_id) .UPDATE_SUBC(K,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'STOCK_EMIS',@stock_id) ---.UPDATE_SUBC(K,'doc_sec',@deal_id) .SUBC_CHECK end end else if @oper_date=@date_b begin if @flag_op=1 begin select @make_use_of_me = 1 if not (@character_id=2 and @service_id100=3 and @com_br_yes2no=1) begin .OPERATION(@owner_id,@plan_money,@date_b,@com_acc_id,@acc_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'portfolio',@portfolio_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(D,'price_position',@price_position_id) .UPDATE_SUBC(D,'contragents',@contragent_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(K,'portfolio',@portfolio_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'bank_account',@bank_account_id) .UPDATE_SUBC(K,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'STOCK_EMIS',@stock_id) ---.UPDATE_SUBC(K,'doc_sec',@deal_id) .SUBC_CHECK end end end end --------------------------- ------------- Комиссия По ПИФ #ifdef ALD_UKPIF if .TEST_PIF_CLIENT(@contract_id) and isnull(@comis100,0) <> 0 and @make_use_of_me = 1 begin exec ap_pif_comis_exec_part1 @id, @action_id, @action_history_id, @contract_id, @deal_id, @stock_id, @comis100, @date_b, @contragent_id, @partion_id, @dir_id, @bank_account_id if @@error != 0 begin if @@trancount<>0 rollback tran return end end #endif if @purpose_code not in (93,94) begin if @character_id=2 and @service_id100 in (6,12) and @oper_date=@date_b begin --- Зачисление комиссии брокеру (на счет, указанный в прайс листе) .ID_VAR(@acc_comission_in_id) .ID_VAR(@acc_company_fund_id) .ID_VAR(@dog_type_id) .INT_VAR(@owner_flag) select @dog_type_id =contract_class_id from tb_contracts,tb_contract_types where tb_contracts.id = @investor_id and tb_contracts.dog_type_id=tb_contract_types.id if @dog_type_id = 1 -- AO .ASSIGN(@owner_flag,4) else -- A?iea?neea aiaiai?a .ASSIGN(@owner_flag,3) .ACCID_FROM_CONST2PLAN(@acc_comission_in_id,'BACK_ACC_BROK_COMISS_IN',@plan_money,1,@owner_flag,'Счет полученной брокером комиссии',@res_mess) .ACCID_FROM_CONST2PLAN(@acc_company_fund_id,'BACK_ACC_FUND_MONEY',@plan_money,1,2,'Счет Фонды ДС компании',@res_mess) if @service_id100=6 begin select @comis100=@comis100-isnull((select sum(isnull(comis,0)) from td_comis2oper where service_id=3 and item_id=@deal_id and .ITEMS_EXISTS_BY_TYPE(td_comis2oper.id,'td_comis2oper')),0) if not exists(select 1 from t_oper_list .INDEX(t_oper_list_head_FK), t_oper_subconto, t_operations .INDEX(t_operations_item) where t_oper_list.acc_id=@acc_comission_in_id and t_oper_list.deb_or_cred=-1 and t_oper_list.id=t_oper_subconto.id and t_oper_subconto.item_id=@investor_id and t_operations.id=t_oper_list.head_id and t_operations.item_id=@deal_id and upper(t_operations.op_name)=upper(@comment)) begin .OPERATION(@owner_id,@plan_money,@date_b,@acc_id,@acc_comission_in_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@broker_id) .UPDATE_SUBC(D,'bank_account',@bank_account_id) .UPDATE_SUBC(D,'portfolio',@portfolio_brok_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_brok_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) ---.UPDATE_SUBC(D,'stock_emis',@stock_id) .UPDATE_SUBC(D,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'investors',@investor_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_id) .SUBC_CHECK .OPERATION(@owner_id,@plan_money,@date_b,@acc_comission_in_id,@acc_company_fund_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(K,'portfolio',@portfolio_brok_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_brok_id) .UPDATE_SUBC(K,'investors',@broker_id) .UPDATE_SUBC(D,'investors',@investor_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_id) .SUBC_CHECK end end else if @service_id100=12 and @dealing_look<>2 begin if not exists(select 1 from t_oper_list .INDEX(t_oper_list_head_FK),t_oper_subconto,t_operations .INDEX(t_operations_item) where t_operations.item_id=@deal_id and upper(t_operations.op_name)=upper(@comment) and t_operations.id=t_oper_list.head_id and t_oper_list.acc_id=@acc_company_fund_id and t_oper_list.deb_or_cred=-1 and t_oper_list.id=t_oper_subconto.id and t_oper_subconto.item_id=@broker_id) begin .OPERATION(@owner_id,@plan_money,@date_b,@acc_id,@acc_company_fund_id,@comis100,@cur_rur,@date_b,null,null,@comment,N,@oper_id,@id,@action_id,@action_history_id) .UPDATE_SUBC(D,'investors',@broker_id) .UPDATE_SUBC(D,'bank_account',@bank_account_id) .UPDATE_SUBC(D,'portfolio',@portfolio_brok_id) .UPDATE_SUBC(D,'investor2portfolio',@portfolio_sub_brok_id) .UPDATE_SUBC(D,'doc_sec',@deal_id) .UPDATE_SUBC(D,'ASSET_PLACES',@obj_id) .UPDATE_SUBC(K,'portfolio',@portfolio_brok_id) .UPDATE_SUBC(K,'investor2portfolio',@portfolio_sub_brok_id) .UPDATE_SUBC(K,'investors',@broker_id) .SUBC_CHECK end end end end end end ---commit tran