create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .CHECK_UPDATE .GET_PROPS .TYPE_GET('PIF_REVARDS',@doc_id,1) declare @deb_acc_id numeric, @cred_acc_id numeric, @fund_plan_id numeric, @remark varchar(255), @info varchar(255), @convert_value decimal(18,8), @convert_date datetime, @oper_sum_rur decimal(18,8), @rur_id numeric, @mess varchar(255) select @info=' '+.SIMPLE_NAME(8010,@revard_type_id1)+', Фонд: ' +(select partner_short_name from t_partners where id=@fund_id) begin tran select @oper_date=isnull(@oper_date,(.OPERDAY)) if @oper_date is null begin .EXIT_MESSAGE_PARM('Не задана дата проводок',@info) end if not (.ITEMS_EXISTS(@rate_id) and .ITEM_STATE_CODE(@rate_id)='FIX') begin select @mess='Не подтверждена или не существует ставка для' + @info .EXIT_MESSAGE(@mess) end .TYPE_GET('PIF_REVARD_RATES',@rate_id,2) if not .ITEMS_EXISTS(@partner_id2) .EXIT_MESSAGE_PARM('Не задана организация',@info) -- Сумма select @rur_id=.CUR('RUR') select @oper_sum=@set_sum if @is_include_nds2=0 select @oper_sum = @oper_sum + @set_sum_nds if @oper_rate_date is null select @oper_rate_date=@calc_rate_date if @acc_cur_id2<>@rur_id begin .CONVERT_SUM_DEC(@acc_cur_id2, @rur_id, @oper_rate_date, 0, @oper_sum, @oper_sum_rur, @convert_value, @convert_date) select @oper_sum=round(@oper_sum_rur,2) end if isnull(@oper_sum,0)<=0 begin select @mess='Неверно рассчитана сумма для проведения:' + @info .EXIT_MESSAGE(@mess) end update t_pif_revard_item set oper_sum=@oper_sum, oper_date=@oper_date, oper_rate_date=@oper_rate_date where id=@id -- Счета select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') if @revard_type_id1 = 3 -- УК begin select @deb_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.1') end else begin select @deb_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') if @revard_type_id1 = 1 -- СД select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.2') else if @revard_type_id1 = 2 -- СР select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.3') else if @revard_type_id1 = 4 -- Аудитор select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.18') else if @revard_type_id1 = 5 -- Прочие расходы begin select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.8') select @deb_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') end else select @cred_acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.8') end -- Проведение SELECT @remark = @info IF ISNULL(@oper_sum, 0) > 0 BEGIN -- проводки по ПИФ-аккаунту .UPDATE_STATE .ACTION_HISTORY .OPERATION(@fund_id, @fund_plan_id, @oper_date, @deb_acc_id, @cred_acc_id, @oper_sum, 'RUR', @oper_date, NULL, NULL, @remark, N) .UPDATE_SUBC(K, 'PARTNERS', @partner_id2) .SUBC_CHECK -- проводки по бэку .ID_VAR(@back_owner_id) .ID_VAR(@organisation_id) .ID_VAR(@plan_money_id) .ID_VAR(@plan_securs_id) .INT_VAR(@out_method_id) .ID_VAR(@client_contract_id) .ID_VAR(@portfolio_sub_id) .ID_VAR(@portfolio_id) .ID_VAR(@cur_id) .ID_VAR(@acc211_id) .ID_VAR(@acc360_id) .ID_VAR(@acc42_id) .ID_VAR(@acc309_id) .ID_VAR(@acc252_id) .NAME_VAR(@opmess) .NAME_VAR(@subc211_str) .NAME_VAR(@subc360_str) .NAME_VAR(@subc42_str) .NAME_VAR(@subc309_str) .NAME_VAR(@subc252_str) .MONEY_VAR(@rez_sum) SELECT @cur_id = .CUR('RUR') SELECT @back_owner_id = .ORGANIZATION 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(@back_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) .BACK_GET_PIF_CONTRACT(@fund_id, @back_owner_id, @client_contract_id) .BACK_GET_PIF_SECTION(@client_contract_id, @portfolio_sub_id) .BACK_GET_PIF_PORTFOLIO(@client_contract_id, @portfolio_id) .ACCID_FROM_CONST2PLAN(@acc211_id, 'BACK_ACC_FUND_MONEY_OUT', @plan_money_id, 3, 1, 'ожид.расход ДС', @opmess) .ACCID_FROM_CONST2PLAN(@acc360_id, 'BACK_ACC_FUND_MONEY_CHNG', @plan_money_id, 3, 1, 'ожид.списание из фонда', @opmess) .SUBC_STR_ADD(@subc360_str, 'INVESTORS', @client_contract_id) .SUBC_STR_ADD(@subc211_str, 'INVESTORS', @client_contract_id) .SUBC_STR_ADD(@subc211_str, 'INVESTOR2PORTFOLIO', @portfolio_sub_id) .SUBC_STR_ADD(@subc211_str, 'PORTFOLIO', @portfolio_id) .SUBC_STR_ADD(@subc211_str, 'DOCS4OUT_FUND', @id) select @opmess = 'Вознаграждение за ведение фонда' .OPERATION_SBC(@back_owner_id, @plan_money_id, @oper_date, @acc360_id, @acc211_id, @oper_sum, @cur_id, @oper_date, NULL, NULL, @opmess, Y, @operation_id, NULL, NULL, @action_history_id, @oper_sum, @oper_sum, @subc360_str, @subc211_str) .ACCID_FROM_CONST2PLAN(@acc309_id, 'BACK_ACC_FUND_MONEY', @plan_money_id, 1, 3, 'фонд ДС клиента', @opmess) .ACCID_FROM_CONST2PLAN(@acc42_id, 'BACK_ACC_FUND_COMIS', @plan_money_id, 1, 1, 'комиссии за услуги фонду', @opmess) .ACCID_FROM_CONST2PLAN(@acc252_id, 'BACK_ACC_OBLIG_BONUS', @plan_money_id, 1, 1, 'обязательства по вознаграждениям', @opmess) .SUBC_STR_ADD(@subc309_str, 'INVESTORS', @client_contract_id) .SUBC_STR_ADD(@subc252_str, 'INVESTORS', @client_contract_id) .SUBC_STR_ADD(@subc252_str, 'INVESTOR2PORTFOLIO', @portfolio_sub_id) .SUBC_STR_ADD(@subc252_str, 'PORTFOLIO', @portfolio_id) .SUBC_STR_ADD(@subc252_str, 'CONTRAGENTS', @partner_id2) .SUBC_STR_ADD(@subc42_str, 'INVESTORS', @client_contract_id) .SUBC_STR_ADD(@subc42_str, 'INVESTOR2PORTFOLIO', @portfolio_sub_id) .SUBC_STR_ADD(@subc42_str, 'PORTFOLIO', @portfolio_id) .SUBC_STR_ADD(@subc42_str, 'CONTRAGENTS', @partner_id2) select @opmess = 'Задолженность из резервов ПИФ' .OPERATION_SBC(@back_owner_id, @plan_money_id, @oper_date, @acc42_id, @acc252_id, @oper_sum, @cur_id, @oper_date, NULL, NULL, @opmess, Y, @operation_id, NULL, NULL, @action_history_id, @oper_sum, @oper_sum, @subc42_str, @subc252_str) select @opmess = 'Уменьшение фонда клиентапри начислении задолженности из резервов ПИФ' .OPERATION_SBC(@back_owner_id, @plan_money_id, @oper_date, @acc309_id, @acc42_id, @oper_sum, @cur_id, @oper_date, NULL, NULL, @opmess, Y, @operation_id, NULL, NULL, @action_history_id, @oper_sum, @oper_sum, @subc309_str, @subc42_str) END COMMIT TRAN .END