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 select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER /*.CHECK_UPDATE*/ .GET_PROPS .TRANSACTION_SAVE create table #report( stock_id numeric null, saldo_qty money null, saldo_bal money null ) create table #oper_list( oper_list_id numeric null, acc_id numeric null, deb_or_cred int null, sum_qty money null, sum_bal money null ) create table #partners( acc_id numeric null, partner_id numeric null, saldo_deb money null, saldo_cred money null, foundation_id numeric null) /*------- Расчет портфеля ----------*/ declare @cur_plan numeric declare @cur_partner2plan numeric declare @acc_58 numeric declare @acc_5810 numeric declare @acc_5811 numeric declare @acc_96_1_1 numeric declare @acc_dep_id numeric declare @acc_891_id numeric declare @acc_892_id numeric declare @acc_893_id numeric declare @cur_period_id numeric declare @cur_period_date datetime declare @cur_subacc_subconto numeric declare @cur_actsubacc_subconto numeric declare @cur_stock_subconto numeric declare @cur_partners_subconto numeric declare @cur_paydocs_subconto numeric declare @cur_pifdocs_subconto numeric declare @sd_scha_2005_d datetime select @sd_scha_2005_d=convert(datetime,(.GET_CONST('SD_SCHA_2005')),3) select @cur_plan = .ARG_PLAN('PIF_ACCOUNT') select @acc_58 = .SD_ACCID_FROM_EFFNO(@cur_plan,'58.1') if @sd_scha_2005_d <= @srez_date begin select @acc_5810 = .SD_ACCID_FROM_EFFNO(@cur_plan,'58.10') select @acc_5811 = .SD_ACCID_FROM_EFFNO(@cur_plan,'58.11') end select @acc_96_1_1 = .SD_ACCID_FROM_EFFNO(@cur_plan,'96.1') select @acc_dep_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'58.2') select @acc_891_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'89.1') select @acc_892_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'89.2') select @acc_893_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'89.3') select @cur_partner2plan = ( select t_plans2partner.id from t_plans2partner where t_plans2partner.plan_id=@cur_plan and t_plans2partner.partner_id=@fond_id and .ITEMS_EXISTS(t_plans2partner.id)) if @cur_partner2plan is null .EXIT_MESSAGE('Для заданного фонда не найден план счетов PIF_ACCOUNT') select @cur_stock_subconto = .SUBCTYPE_FROM_CODE('stock_emis') select @cur_partners_subconto = .SUBCTYPE_FROM_CODE('partners') select @cur_paydocs_subconto = .SUBCTYPE_FROM_CODE('paydocs') select @cur_pifdocs_subconto = .SUBCTYPE_FROM_CODE('pifdocs') select @cur_period_id = (select id from t_periods where partner2plan_id = @cur_partner2plan and period_date = (select max(period_date) from t_periods where partner2plan_id=@cur_partner2plan and period_date < @srez_date)) select @cur_period_date = (select period_date from t_periods where id = @cur_period_id) /*------- Расчет портфеля ----------*/ truncate table #oper_list truncate table #report if @cur_period_date is null begin select @cur_period_id = null select @cur_period_date=convert(datetime, '1/1/1800', 103) end else begin /* Closed Period */ insert into #oper_list( oper_list_id, sum_qty, sum_bal) select t_account_history.id, t_account_history.saldo_qty * t_account_history.deb_or_cred, t_account_history.saldo * t_account_history.deb_or_cred from t_account_history where t_account_history.period_id = @cur_period_id and t_account_history.acc_id in (@acc_58, @acc_5810, @acc_5811) insert into #report(stock_id, saldo_qty, saldo_bal) select subc1.item_id, sum(#oper_list.sum_qty), sum(#oper_list.sum_bal) from #oper_list, t_acchistory_subconto subc1 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_stock_subconto group by subc1.item_id truncate table #oper_list /* End Closed Period */ end insert into #oper_list( oper_list_id, sum_qty, sum_bal) select t_oper_list.id, t_oper_list.qty_sum * t_oper_list.deb_or_cred, t_oper_list.sum_bal * t_oper_list.deb_or_cred from t_oper_list where t_oper_list.partner2plan_id = @cur_partner2plan and t_oper_list.op_date >= @cur_period_date and t_oper_list.op_date < dateadd(day, 1, @srez_date) and t_oper_list.acc_id in (@acc_58, @acc_5810, @acc_5811) insert into #report(stock_id, saldo_qty, saldo_bal) select subc1.item_id, sum(#oper_list.sum_qty), sum(#oper_list.sum_bal) from #oper_list, t_oper_subconto subc1 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_stock_subconto group by subc1.item_id /*------- Конец расчета портфеля ----------*/ /*------- Расчет деб-кредиторов ----------*/ truncate table #oper_list truncate table #partners if @cur_period_id is not null begin /* Closed Period */ insert into #oper_list( oper_list_id, acc_id, deb_or_cred, sum_bal) select t_account_history.id, t_account_history.acc_id, t_account_history.deb_or_cred, t_account_history.saldo from t_account_history, t_accounts where t_account_history.period_id = @cur_period_id and t_account_history.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep LIKE '.76.%' and not (t_accounts.acc_num_eff_rep LIKE '.76.4.1.%') and not (t_accounts.acc_num_eff_rep LIKE '.76.4.2.%') -- and not (t_accounts.acc_num_eff_rep LIKE '.76.4.%') insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred) select #oper_list.acc_id, subc1.item_id, sum(#oper_list.sum_bal), 0 from #oper_list, t_acchistory_subconto subc1 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.deb_or_cred = 1 group by #oper_list.acc_id, subc1.item_id insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred) select #oper_list.acc_id, subc1.item_id, 0, sum(#oper_list.sum_bal) from #oper_list, t_acchistory_subconto subc1 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.deb_or_cred = -1 group by #oper_list.acc_id, subc1.item_id truncate table #oper_list /* End Closed Period */ end insert into #oper_list( oper_list_id, acc_id, deb_or_cred, sum_bal) select t_oper_list.id, t_oper_list.acc_id, t_oper_list.deb_or_cred, t_oper_list.sum_bal from t_oper_list, t_accounts where t_oper_list.partner2plan_id = @cur_partner2plan and t_oper_list.op_date >= @cur_period_date and t_oper_list.op_date < dateadd(day, 1, @srez_date) and t_oper_list.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep LIKE '.76.%' and not (t_accounts.acc_num_eff_rep LIKE '.76.4.1.%') and not (t_accounts.acc_num_eff_rep LIKE '.76.4.2.%') -- and not (t_accounts.acc_num_eff_rep LIKE '.76.4.%') insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred) select #oper_list.acc_id, subc1.item_id, sum(#oper_list.sum_bal), 0 from #oper_list, t_oper_subconto subc1 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.deb_or_cred = 1 group by #oper_list.acc_id, subc1.item_id insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred) select #oper_list.acc_id, subc1.item_id, 0, sum(#oper_list.sum_bal) from #oper_list, t_oper_subconto subc1 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.deb_or_cred = -1 group by #oper_list.acc_id, subc1.item_id /* 76.4.1 - Расчеты по размещению */ truncate table #oper_list if @cur_period_id is not null begin /* Closed Period */ insert into #oper_list( oper_list_id, acc_id, deb_or_cred, sum_bal) select t_account_history.id, t_account_history.acc_id, t_account_history.deb_or_cred, t_account_history.saldo from t_account_history, t_accounts where t_account_history.period_id = @cur_period_id and t_account_history.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep LIKE '.76.4.1.%' insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, sum(#oper_list.sum_bal), 0, subc2.item_id from #oper_list, t_acchistory_subconto subc1, t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_paydocs_subconto and #oper_list.deb_or_cred = 1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, 0, sum(#oper_list.sum_bal), subc2.item_id from #oper_list, t_acchistory_subconto subc1, t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_paydocs_subconto and #oper_list.deb_or_cred = -1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id truncate table #oper_list /* End Closed Period */ end insert into #oper_list( oper_list_id, acc_id, deb_or_cred, sum_bal) select t_oper_list.id, t_oper_list.acc_id, t_oper_list.deb_or_cred, t_oper_list.sum_bal from t_oper_list, t_accounts where t_oper_list.partner2plan_id = @cur_partner2plan and t_oper_list.op_date >= @cur_period_date and t_oper_list.op_date < dateadd(day, 1, @srez_date) and t_oper_list.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep LIKE '.76.4.1.%' insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, sum(#oper_list.sum_bal), 0, subc2.item_id from #oper_list, t_oper_subconto subc1, t_oper_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_paydocs_subconto and #oper_list.deb_or_cred = 1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, 0, sum(#oper_list.sum_bal), subc2.item_id from #oper_list, t_oper_subconto subc1, t_oper_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_paydocs_subconto and #oper_list.deb_or_cred = -1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id /* 76.4.2 - Расчеты по выкупу */ truncate table #oper_list if @cur_period_id is not null begin /* Closed Period */ insert into #oper_list( oper_list_id, acc_id, deb_or_cred, sum_bal) select t_account_history.id, t_account_history.acc_id, t_account_history.deb_or_cred, t_account_history.saldo from t_account_history, t_accounts where t_account_history.period_id = @cur_period_id and t_account_history.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep LIKE '.76.4.2.%' insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, sum(#oper_list.sum_bal), 0, subc2.item_id from #oper_list, t_acchistory_subconto subc1, t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_pifdocs_subconto and #oper_list.deb_or_cred = 1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, 0, sum(#oper_list.sum_bal), subc2.item_id from #oper_list, t_acchistory_subconto subc1, t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_pifdocs_subconto and #oper_list.deb_or_cred = -1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id truncate table #oper_list /* End Closed Period */ end insert into #oper_list( oper_list_id, acc_id, deb_or_cred, sum_bal) select t_oper_list.id, t_oper_list.acc_id, t_oper_list.deb_or_cred, t_oper_list.sum_bal from t_oper_list, t_accounts where t_oper_list.partner2plan_id = @cur_partner2plan and t_oper_list.op_date >= @cur_period_date and t_oper_list.op_date < dateadd(day, 1, @srez_date) and t_oper_list.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep LIKE '.76.4.2.%' insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, sum(#oper_list.sum_bal), 0, subc2.item_id from #oper_list, t_oper_subconto subc1, t_oper_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_pifdocs_subconto and #oper_list.deb_or_cred = 1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id insert into #partners( acc_id, partner_id, saldo_deb, saldo_cred, foundation_id) select #oper_list.acc_id, subc1.item_id, 0, sum(#oper_list.sum_bal), subc2.item_id from #oper_list, t_oper_subconto subc1, t_oper_subconto subc2 where #oper_list.oper_list_id = subc1.id and subc1.subconto_type_id = @cur_partners_subconto and #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id = @cur_pifdocs_subconto and #oper_list.deb_or_cred = -1 group by #oper_list.acc_id, subc1.item_id, subc2.item_id /*------- Конец расчета деб-кредиторов ----------*/ /*------- Расчет паев ----------*/ declare @bal_stock_qty money select @bal_stock_qty = 0 if @cur_period_id is not null select @bal_stock_qty = isnull((select sum(t_account_history.saldo_qty * t_account_history.deb_or_cred * -1) from t_account_history where t_account_history.period_id = @cur_period_id and t_account_history.acc_id = @acc_96_1_1), 0) select @bal_stock_qty = @bal_stock_qty + isnull((select sum(t_oper_list.qty_sum * t_oper_list.deb_or_cred * -1) from t_oper_list where t_oper_list.partner2plan_id = @cur_partner2plan and t_oper_list.op_date >= @cur_period_date and t_oper_list.op_date < dateadd(day, 1, @srez_date) and t_oper_list.acc_id = @acc_96_1_1), 0) select @stock_qty=.PAYS_QTY_CALC(@bal_stock_qty,@fond_id) /*------- Конец расчета паев ----------*/ begin tran delete t_items from tp_pif_srez_portfolio, t_types where t_items.id = tp_pif_srez_portfolio.id and tp_pif_srez_portfolio.srez_id = @id and t_items.type_id=t_types.id and upper(t_types.type_code)='PIF_SREZ_PORTFOLIO' delete tp_pif_srez_portfolio where tp_pif_srez_portfolio.srez_id = @id and not exists(select 1 from t_items where id=tp_pif_srez_portfolio.id) declare srez_cur cursor for select stock_id, sum(saldo_qty), sum(saldo_bal)*.STOCK_QTY_MULT(#report.stock_id) from #report group by stock_id for read only declare @cur_stock_id numeric declare @cur_stock_qty money declare @cur_stock_bal money declare @cur_stock_rate decimal(36, 16) declare @cur_coupon_rate decimal(36, 16) declare @cur_stock_rur decimal(36, 16) declare @cur_coupon_rur decimal(36, 16) declare @cur_is_rate int declare @rur_cur_id numeric declare @rate_cur_id numeric declare @cur_rate_place_id numeric declare @cur_rate_date datetime declare @rate_value decimal(18,8) declare @rate_date datetime declare @class_value_code varchar(255) declare @class_comment varchar(255) select @rur_cur_id=.CUR('RUR') select @cur_rate_place_id=rate_place_id from td_queries where td_queries.srezdoc_id=@id -- обновления по 42пс declare @cur_stock_sum money, @cur_coupon_sum money, @type_rate_check int, @sd42_date_str varchar(255) select @sd42_date_str=.GET_CONST('PIF_42') if @srez_date @cur_saldo_cred) begin if @cur_saldo_deb > @cur_saldo_cred begin select @cur_saldo_deb = @cur_saldo_deb - @cur_saldo_cred select @cur_saldo_cred = 0 end else begin select @cur_saldo_cred = @cur_saldo_cred - @cur_saldo_deb select @cur_saldo_deb = 0 end .TYPE_ASSIGN(srez_id,@id,4) .TYPE_ASSIGN(acc_id,@cur_acc_id,4) .TYPE_ASSIGN(partner_id,@cur_partner_id,4) .TYPE_ASSIGN(saldo_deb, @cur_saldo_deb, 4) .TYPE_ASSIGN(saldo_cred, @cur_saldo_cred, 4) .TYPE_ASSIGN(foundation_id, @cur_foundation_id, 4) select @cur_foundation_date = null, @cur_foundation_no = null if @cur_foundation_id is not null begin select @cur_foundation_date = tp_pif_queries.agent_regs_date, @cur_foundation_no = tp_pif_queries.agent_regs_no from tp_pif_queries where tp_pif_queries.id = @cur_foundation_id if @cur_foundation_date is null select @cur_foundation_date = td_depo_docs.in_date, @cur_foundation_no = td_depo_docs.in_no from td_depo_docs where td_depo_docs.id = @cur_foundation_id if @cur_foundation_date is null begin select @cur_foundation_date = t_paydocs.doc_date, @cur_foundation_no = t_paydocs.doc_number from t_paydocs where t_paydocs.id = @cur_foundation_id end end .TYPE_ASSIGN(foundation_no, @cur_foundation_no, 4) .TYPE_ASSIGN(foundation_date, @cur_foundation_date, 4) .TYPE_INSERT('pif_srez_partners','CRT',4) end fetch partners_cur into @cur_acc_id, @cur_partner_id, @cur_saldo_deb, @cur_saldo_cred, @cur_foundation_id end close partners_cur .DEALLOCATE partners_cur /* End Insert partners */ select @activ_sum = 0 /* Stock */ select @activ_sum = @activ_sum + isnull( (select sum(tp_pif_srez_portfolio.stock_sum) from tp_pif_srez_portfolio where tp_pif_srez_portfolio.srez_id = @id and tp_pif_srez_portfolio.stock_sum > 0 and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) /* Debitors */ select @activ_sum = @activ_sum + isnull( (select sum(tp_pif_srez_balance.saldo_deb) from tp_pif_srez_balance where tp_pif_srez_balance.srez_id = @id and tp_pif_srez_balance.saldo_deb > 0 and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners')),0) /* Money */ select @activ_sum = @activ_sum + isnull( (select sum(saldo_deb) - sum(saldo_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.51.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) select @activ_sum = @activ_sum + isnull( (select sum(saldo_deb) - sum(saldo_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.57.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) select @activ_sum = @activ_sum + isnull( (select sum(saldo_deb) - sum(saldo_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.50.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) -- 25.01.05 - изменения в связи с оценкой недвижимости и пр.активов -- Buildings select @activ_sum = @activ_sum + isnull( (select sum(tp_pif_srez_portfolio.stock_sum) from tp_pif_srez_portfolio, t_accounts where tp_pif_srez_portfolio.srez_id = @id and tp_pif_srez_portfolio.stock_sum > 0 and tp_pif_srez_portfolio.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.01.1.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'PIF_SREZ_ACCOUNTS')),0) -- Buildings неперерегистрированная select @activ_sum = @activ_sum + isnull( (select sum(tp_pif_srez_portfolio.stock_sum) from tp_pif_srez_portfolio, t_accounts where tp_pif_srez_portfolio.srez_id = @id and tp_pif_srez_portfolio.stock_sum > 0 and tp_pif_srez_portfolio.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.08.1.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'PIF_SREZ_ACCOUNTS')),0) -- Проч.активы select @activ_sum = @activ_sum + isnull( (select sum(tp_pif_srez_portfolio.stock_sum) from tp_pif_srez_portfolio, t_accounts where tp_pif_srez_portfolio.srez_id = @id and tp_pif_srez_portfolio.stock_sum > 0 and tp_pif_srez_portfolio.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.58.3.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'PIF_SREZ_ACCOUNTS')),0) -- end 25.01.05 - изменения в связи с оценкой недвижимости и пр.активов /* Depozit */ select @activ_sum = @activ_sum + isnull( (select sum(saldo_deb) - sum(saldo_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and t_accounts.id=@acc_dep_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) /* Coupon */ select @activ_sum = @activ_sum + isnull( (select sum(tp_pif_srez_portfolio.coupon_sum) from tp_pif_srez_portfolio where tp_pif_srez_portfolio.srez_id = @id and tp_pif_srez_portfolio.stock_sum > 0 and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) select @scha_sum = @activ_sum /* Creditors */ select @scha_sum = @scha_sum - isnull( (select sum(tp_pif_srez_balance.saldo_cred) from tp_pif_srez_balance where tp_pif_srez_balance.srez_id = @id and tp_pif_srez_balance.saldo_cred > 0 and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners')),0) /* Резервы */ select @scha_sum = @scha_sum - isnull( (select sum(saldo_cred) - sum(saldo_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and t_accounts.id in (@acc_891_id,@acc_892_id,@acc_893_id) and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) /* Налоги */ select @scha_sum = @scha_sum - isnull( (select sum(saldo_cred) - sum(saldo_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.68.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) -- цена пая declare @d_stock_price double precision if @stock_qty <> 0 select @d_stock_price = convert(double precision,@scha_sum) / convert(double precision,@stock_qty) else select @d_stock_price = 0 .PIF_ROUND_MONEY(@fond_id,@d_stock_price,@d_stock_price) select @stock_price = convert(money,@d_stock_price) update tp_pif_srez set activ_sum = @activ_sum, scha_sum = @scha_sum, stock_qty = @stock_qty, stock_price = @stock_price where id = @id /*.EXEC_ACTION(@sid,'PIF_SREZ','PIF_SREZ_ACCOUNTS_CALCULATE')*/ commit tran drop table #report drop table #oper_list drop table #partners .TRANSACTION_RESTORE begin tran declare @is_no varchar(50), @rep_sid varchar(30), @is_no2 varchar(50) .TYPE_INIT('REPORT_FOR_INVESTMENT_ACT_PIF',6) .TYPE_ASSIGN(depo_doc_type,2,6) .DEPO_GEN_NO(@is_no,@depo_doc_type6_1) .TYPE_ASSIGN(foundation_id,@id,6) .TYPE_ASSIGN(in_date,(.OPERDAY),6) .TYPE_ASSIGN(owner_id,@fond_id,6) .TYPE_ASSIGN(in_no,@is_no,6) .TYPE_ASSIGN(date_b,@srez_date,6) .TYPE_INSERT('REPORT_FOR_INVESTMENT_ACT_PIF','CRT',6) .TYPE_INIT('REPORT_FOR_COST_ACT_PIF',8) .TYPE_ASSIGN(depo_doc_type,2,8) .DEPO_GEN_NO(@is_no2,@depo_doc_type6_1) .TYPE_ASSIGN(foundation_id,@id,8) .TYPE_ASSIGN(in_date,(.OPERDAY),8) .TYPE_ASSIGN(owner_id,@fond_id,8) .TYPE_ASSIGN(in_no,@is_no2,8) .TYPE_ASSIGN(date_b,@srez_date,8) .TYPE_INSERT('REPORT_FOR_COST_ACT_PIF','CRT',8) update t_items set item_remark='Срез для ПИФ от'+.DATE_TO_STR(@srez_date)+' , Описание: '+@remark where id=@id6_1 select @rep_sid=convert(varchar(30),@id6_1) .EXEC_ACTION(@rep_sid,'REPORT_FOR_INVESTMENT_ACT_PIF','INVESTMENT_ACT_PIF_RECALC') .UPDATE_STATE .ACTION_HISTORY select @is_no=null .TYPE_INIT('SD_ASSET_ENUM',7) .TYPE_ASSIGN(depo_doc_type,2,7) .DEPO_GEN_NO(@is_no,@depo_doc_type7_1) .TYPE_ASSIGN(foundation_id,@id,7) .TYPE_ASSIGN(srezdoc_id,@id,7) .TYPE_ASSIGN(in_date,(.OPERDAY),7) .TYPE_ASSIGN(owner_id,@fond_id,7) .TYPE_ASSIGN(in_no,@is_no,7) --.TYPE_ASSIGN(date_b,(getdate()),7) .TYPE_ASSIGN(doc_date,@srez_date,7) .TYPE_INSERT('SD_ASSET_ENUM','CRT',7) commit tran end