create procedure dbo.%PROC% @sid varchar(30) = null as set nocount on declare @id numeric(18,0) if @sid='' select @sid=null select @id=convert(numeric(18,0),@sid) create table #assets ( acc_id numeric(18,0) not null, asset_id numeric(18,0) not null, sum_now money null, sum_last money null, is_rate int null, asset_type_id numeric(18,0) null, -- значение класс.,определяющего тип актива owner_type_id numeric(18,0) null, -- значение класс.,определяющего принадлежность актива, row int null ) create table #lines ( row int not null, row_name varchar(255) not null, row_code varchar(10) null, sum_now .PIF_PAY_TYPE null, sum_last .PIF_PAY_TYPE null ) -- Определение структуры отчета insert into #lines (row,row_name,row_code) select 9,'Активы:',null union select 10,'Денежные средства на счетах - всего, в том числе:','010' union select 11,' - в рублях','011' union select 12,' - в иностранной валюте','012' union select 20,'Денежные средства во вкладах - всего, в том числе:','020' union select 21,' - в рублях','021' union select 22,' - в иностранной валюте','022' union select 30,'Государственные ценные бумаги Российской Федерации','030' union select 40,'Государственные ценные бумаги субъектов Российской Федерации','040' union select 50,'Муниципальные ценные бумаги','050' union select 60,'Облигации российских хозяйственных обществ (кроме облигаций с ипотечным покрытием)','060' union select 70,'Акции российских акционерных обществ','070' union select 80,'Инвестиционные паи паевых инвестиционных фондов','080' union select 90,'Ипотечные ценные бумаги - всего, в том числе:','090' union select 91,' - облигации с ипотечным покрытием','091' union select 92,' - ипотечные сертификаты участия','092' union select 100,'Векселя, выданные российскими хозяйственными обществами','100' union select 110,'Ценные бумаги иностранных эмитентов - всего, в том числе:','110' union select 111,' - ценные бумаги иностранных государств','111' union select 112,' - ценные бумаги международных финансовых организаций','112' union select 113,' - акции иностранных акционерных обществ','113' union select 114,' - облигации иностранных коммерческих организаций','114' union select 120,'Закладные','120' union select 130,'Денежные требования по обеспеченным ипотекой обязательствам из кредитных договоров или договоров займа'+ 'и права залогодержателя по договорам об ипотеке (за исключением удостоверенных закладными)','130' union select 140,'Денежные требования по обязательствам из кредитных договоров, по которым кредиты предоставлены для '+ 'уплаты цены по договорам участия в долевом строительстве объектов недвижимого имущества '+ 'и права залогодержателя по договорам залога имущественных прав','140' union select 150,'Доли в российских обществах с ограниченной ответственностью','150' union select 160,'Недвижимое имущество, находящееся на территории Российской Федерации - всего, в том числе:','160' union select 161,' - объекты незавершенного строительства','161' union select 170,'Недвижимое имущество, находящееся на территории иностранных государств - всего, в том числе:','170' union select 171,' - объекты незавершенного строительства','171' union select 180,'Имущественные права на недвижимое имущество, находящееся на территории Российской Федерации - всего, в том числе:','180' union select 181,' - право аренды недвижимого имущества','181' union select 190,'Имущественные права на недвижимое имущество, находящееся на территории иностранных государств - всего, в том числе:','190' union select 191,' - право аренды недвижимого имущества','191' union select 200,'Имущественные права по обязательствам из договоров участия в долевом строительстве объектов недвижимого имущества','200' union select 210,'Имущественные права по обязательствам из инвестиционных договоров','210' union select 220,'Имущественные права по обязательствам из договоров, на основании которых осуществляется строительство '+ '(создание) объектов недвижимости на земельном участке, составляющих активы акционерного инвестиционного '+ 'фонда или активы паевого инвестиционного фонда','220' union select 230,'Имущественные права по обязательствам из договоров, на основании которых осуществляется реконструкция '+ 'объектов недвижимости, составляющих активы акционерного инвестиционного '+ 'фонда или активы паевого инвестиционного фонда','230' union select 240,'Проектно-сметная документация','240' union select 250,'Иное имущество','250' union select 260,'Дебиторская задолженность - всего, в том числе:','260' union select 261,' - средства, находящиеся у профессиональных участников рынка ценных бумаг','261' union select 262,' - дебиторская задолженность по сделкам купли-продажи имущества','262' union select 263,' - дебиторская задолженность по процентному (купонному) доходу по денежным средствам на счетах, во вкладах и по ценным бумагам','263' union select 264,' - прочая дебиторская задолженность','264' union select 270,'Итого сумма активов: (строки 010 + 020 + 030 + 040 + 050 + 060 + 070 + 080 + 090 + 100 + 110 +'+ ' 120 + 130 + 140 + 150 + 160 + 170 + 180 + 190 + 200 + 210 + 220 + 230 + 240 + 250 + 260)','270' union select 299,'Обязательства:',null union select 300,'Кредиторская задолженность','300' union select 310,'Резерв предстоящих расходов на выплату вознаграждения','310' union select 320,'Резерв для возмещения предстоящих расходов, связанных с доверительным управлением открытым паевым инвестиционным фондом','320' union select 330,'Итого сумма обязательств: (строки 300 + 310 + 320)','330' union select 400,'Стоимость чистых активов: (строка 270 - строка 330)','400' union select 500,'Количество размещенных акций акционерного инвестиционного фонда '+ '(количество выданных инвестиционных паев паевого инвестиционного фонда) - штук','500' union select 600,'Стоимость чистых активов акционерного инвестиционного фонда в расчете на одну акцию '+ '(расчетная стоимость инвестиционного пая паевого инвестиционного фонда (строка 400 / строка 500)','600' -- Переменные declare @srez_date datetime, @scha_sum_now decimal(18,8), @scha_sum_last decimal(18,8), @pay_price_calc decimal(36,16), @pay_price_now decimal(36,16), @pay_price_last decimal(36,16), @pay_price decimal(18,8), @pay_price_srez decimal(18,8), @pays_qty .PIF_PAY_TYPE, @pays_qty_last .PIF_PAY_TYPE, @last_srez_id numeric(18,0) declare @plan_id numeric(18,0), @fund_id numeric(18,0), @acc51_id numeric(18,0), @acc50_id numeric(18,0), @acc57_id numeric(18,0), @acc581_id numeric(18,0), @acc582_id numeric(18,0), @acc583_id numeric(18,0), @acc766_id numeric(18,0), @acc767_id numeric(18,0), @acc7610_id numeric(18,0), @acc7612_id numeric(18,0), @acc7613_id numeric(18,0), @acc7615_id numeric(18,0), @acc7616_id numeric(18,0), @acc7651_id numeric(18,0), @acc7652_id numeric(18,0), @acc7653_id numeric(18,0), @acc551_id numeric(18,0), @acc7655_id numeric(18,0), @acc011_id numeric(18,0), @acc081_id numeric(18,0), @acc961_id numeric(18,0), @acc962_id numeric(18,0), @acc963_id numeric(18,0), @acc969_id numeric(18,0), @acc68_id numeric(18,0), @acc7659_id numeric(18,0) declare @class_stock_type_id numeric(18,0), @class_emitent_type_id numeric(18,0), @class_asset_type_id numeric(18,0), @value_foreign_owner_id numeric(18,0), @value_foreign_state_owner_id numeric(18,0), @value_foreign_fin_org_owner_id numeric(18,0), @value_nogos_owner_id numeric(18,0), @value_pifpay_stock_id numeric(18,0), @value_bill_stock_id numeric(18,0), @value_share_stock_id numeric(18,0), @value_bond_stock_id numeric(18,0), @value_sert_m_stock_id numeric(18,0), @value_bond_m_stock_id numeric(18,0), @value_gos_owner_id numeric(18,0), @value_gos_sub_owner_id numeric(18,0), @value_municipal_owner_id numeric(18,0), @value_rus_econom_comp_owner_id numeric(18,0), @value_part_of_ooo_id numeric(18,0), @value_building_docs_id numeric(18,0), @value_money_claims_mort_liab_id numeric(18,0), @value_money_claims_mort_liab_mort_id numeric(18,0), @value_money_claims_cred_contract_id numeric(18,0), @value_building_rf_id numeric(18,0), @value_building_foreign_id numeric(18,0), @value_building_under_constr_rf_id numeric(18,0), @value_building_under_constr_foreign_id numeric(18,0), @value_vested_interests_rf_id numeric(18,0), @value_vested_interests_foreign_id numeric(18,0), @value_tenant_right_immovables_rf_id numeric(18,0), @value_tenant_right_immovables_foreign_id numeric(18,0), @value_interest_contract_id numeric(18,0), @value_interest_contract_investment_id numeric(18,0), @value_other_id numeric(18,0) select @srez_date=srez_date, @pays_qty=isnull(stock_qty,0), @pay_price_calc=isnull(stock_price,0), @fund_id=fond_id, @last_srez_id=startsrez_id from tp_pif_srez where tp_pif_srez.id = @id /* -- Предыдущий срез - last select @last_srez_id=tp_pif_srez.id from tp_pif_srez where tp_pif_srez.fond_id = @fund_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez.id,'PIF_SREZ') and tp_pif_srez.srez_date = (select max(srez_pif.srez_date) from tp_pif_srez srez_pif where srez_pif.fond_id = tp_pif_srez.fond_id and .ITEMS_EXISTS_BY_TYPE(srez_pif.id,'PIF_SREZ') and srez_pif.srez_date < @srez_date) */ -- Иницилизация переменных select @plan_id=.ARG_PLAN('PIF_ACCOUNT') select @acc51_id = .SD_ACCID_FROM_EFFNO(@plan_id,'51') select @acc50_id = .SD_ACCID_FROM_EFFNO(@plan_id,'50') select @acc57_id = .SD_ACCID_FROM_EFFNO(@plan_id,'57') select @acc581_id = .SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @acc582_id = .SD_ACCID_FROM_EFFNO(@plan_id,'58.2') select @acc583_id = .SD_ACCID_FROM_EFFNO(@plan_id,'58.3') select @acc766_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.6') select @acc767_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.7') select @acc7610_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.10') select @acc7612_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.12') select @acc7613_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.13') select @acc7615_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.15') select @acc7616_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.16') select @acc7651_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.1') select @acc7652_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.2') select @acc7653_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.3') select @acc551_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.4') select @acc7655_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.5') select @acc7659_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.9') select @acc011_id = .SD_ACCID_FROM_EFFNO(@plan_id,'01.1') select @acc081_id = .SD_ACCID_FROM_EFFNO(@plan_id,'08.1') select @acc961_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.1') select @acc963_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.3') select @acc969_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.9') select @acc68_id = .SD_ACCID_FROM_EFFNO(@plan_id,'68') .GET_CLASS_VALUE_CODE_FOR_ITEM_D(@fund_id,'PIF_OTHER_RESERVE','NOT_IN_SCHA',@srez_date) if @class_value_ok = 1 select @acc962_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') -- счет 96.2 по новому плану else select @acc962_id = -1 -- Тип класс-ра "Виды ЦБ" select @class_stock_type_id=max(id) from t_nclass_types where upper(class_code) = 'STOCK_TYPE' -- Тип класс-ра "Принадлежность ЦБ" select @class_emitent_type_id=max(id) from t_nclass_types where upper(class_code) = 'STOCK_EMITENT_TYPE' -- Тип класс-ра "Виды прочих активов" select @class_asset_type_id=max(id) from t_nclass_types where upper(class_code) = 'ASSET_TYPE_OTHER' -- Значение "Иностранные ЦБ" класс-ра "Принадлежность ЦБ" select @value_foreign_owner_id=max(id) from t_nclass_values where class_type_id=@class_emitent_type_id and upper(value_code) = 'STOCK_FOREIGN_PARTNER' -- Значение "Иностранные ЦБ" класс-ра "Принадлежность ЦБ" select @value_nogos_owner_id=max(id) from t_nclass_values where class_type_id=@class_emitent_type_id and upper(value_code) = 'STOCK_NOTGOS_PARTNER' -- Значение "ЦБ иностранных государств" класс-ра "Принадлежность ЦБ" select @value_foreign_state_owner_id=max(id) from t_nclass_values where class_type_id=@class_emitent_type_id and upper(value_code) = 'STOCK_FOREIGN_STATE' -- Значение "ЦБ иностранных государств" класс-ра "Принадлежность ЦБ" select @value_foreign_fin_org_owner_id=max(id) from t_nclass_values where class_type_id=@class_emitent_type_id and upper(value_code) = 'STOCK_FOREIGN_FIN_ORG' -- Значение "Государственные ЦБ" класс-ра "Принадлежность ЦБ" select @value_gos_owner_id=max(id) from t_nclass_values where class_type_id = @class_emitent_type_id and upper(value_code) = 'STOCK_GOS_PARTNER' -- Значение "Государственные ЦБ субъектов РФ" класс-ра "Принадлежность ЦБ" select @value_gos_sub_owner_id=max(id) from t_nclass_values where class_type_id = @class_emitent_type_id and upper(value_code) = 'STOCK_SUB_FED' -- Значение "Муниципальные ЦБ" класс-ра "Принадлежность ЦБ" select @value_municipal_owner_id=max(id) from t_nclass_values where class_type_id = @class_emitent_type_id and upper(value_code) = 'STOCK_MUNICIPAL' -- Значение "ЦБ российских хоз. обществ" класс-ра "Принадлежность ЦБ" select @value_rus_econom_comp_owner_id=max(id) from t_nclass_values where class_type_id = @class_emitent_type_id and upper(value_code) = 'STOCK_RUS_ECONOM_COMP' -- Значение "Вексель" класс-ра "Виды ЦБ" select @value_bill_stock_id=max(id) from t_nclass_values where class_type_id = @class_stock_type_id and upper(value_code) = 'VEKS' -- Значение "Акция" класс-ра "Виды ЦБ" select @value_share_stock_id=max(id) from t_nclass_values where class_type_id = @class_stock_type_id and upper(value_code) = 'STOCK' -- Значение "Облигация" класс-ра "Виды ЦБ" select @value_bond_stock_id=max(id) from t_nclass_values where class_type_id = @class_stock_type_id and upper(value_code) = 'OBLIG' -- Значение "Пай паевого фонда" класс-ра "Виды ЦБ" select @value_pifpay_stock_id=max(id) from t_nclass_values where class_type_id = @class_stock_type_id and upper(value_code) = 'PIFPAY' -- Значение "Ипотечный сертификат" класс-ра "Виды ЦБ" select @value_sert_m_stock_id=max(id) from t_nclass_values where class_type_id = @class_stock_type_id and upper(value_code) = 'SERT_MORTGAGE' -- Значение "Облигации с ипотечным покрытием" класс-ра "Виды ЦБ" select @value_bond_m_stock_id=max(id) from t_nclass_values where class_type_id = @class_stock_type_id and upper(value_code) = 'BOND_MORTGAGE' -- Значение "Доля в уставном капитале ООО" класс-ра "Виды прочих активов" select @value_part_of_ooo_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'PART_OF_OOO' -- Значение "Проектно-сметная док-ция" класс-ра "Виды прочих активов" select @value_building_docs_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'BUILDING_DOCS' -- Значение "Ден. требования по обеспеченным ипотекой обязательствам" класс-ра "Виды прочих активов" select @value_money_claims_mort_liab_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'MONEY_CLAIMS_MORT_LIAB' -- Значение "Ден. требования по обеспеченным ипотекой обязательствам (удост. закладными)" класс-ра "Виды прочих активов" select @value_money_claims_mort_liab_mort_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'MONEY_CLAIMS_MORT_LIAB_MORT' -- Значение "Ден. требования по обязательствам из кредитных договоров" класс-ра "Виды прочих активов" select @value_money_claims_cred_contract_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'MONEY_CLAIMS_CRED_CONTRACT' -- Значение "Недвижимое имущество на территории РФ" класс-ра "Виды прочих активов" select @value_building_rf_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'BUILDING_RF' -- Значение "Недвижимое имущество на территории иностранных государств" класс-ра "Виды прочих активов" select @value_building_foreign_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'BUILDING_FOREIGN' -- Значение "Объекты незавершенного строительства на тер-ии РФ" класс-ра "Виды прочих активов" select @value_building_under_constr_rf_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'BUILDING_UNDER_CONSTR_RF' -- Значение "Объекты незавершенного строительства на территории иностранных государств" класс-ра "Виды прочих активов" select @value_building_under_constr_foreign_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'BUILDING_UNDER_CONSTR_FOREIGN' -- Значение "Имущественные права на имущество на территории РФ" класс-ра "Виды прочих активов" select @value_vested_interests_rf_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'VESTED_INTERESTS_RF' -- Значение "Имущественные права на имущественные права на терр. иностарнных государств" класс-ра "Виды прочих активов" select @value_vested_interests_foreign_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'VESTED_INTERESTS_FOREIGN' -- Значение "Право аренды недвижимого имущества на территории РФ" класс-ра "Виды прочих активов" select @value_tenant_right_immovables_rf_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'TENANT_RIGHT_IMMOVABL_RF' -- Значение "Право аренды недвижимого имущества на территории иностранных государств" класс-ра "Виды прочих активов" select @value_tenant_right_immovables_foreign_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'TENANT_RIGHT_IMMOVABL_FOREIGN' -- Значение "Имущественные права по договорам участия" класс-ра "Виды прочих активов" select @value_interest_contract_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'INTEREST_CONTRACT' -- Значение "Имущественные права по инвестиционным договорам" класс-ра "Виды прочих активов" select @value_interest_contract_investment_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'INTEREST_CONTRACT_INVESTMENT' -- Значение "Прочие активы" класс-ра "Виды прочих активов" select @value_other_id=max(id) from t_nclass_values where class_type_id = @class_asset_type_id and upper(value_code) = 'OTHER' -- -- Расчет денежных средств -- -- 011 (Денежные средства в рублях (now) update #lines set sum_now=(select sum(isnull(b.saldo_deb,0))-sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (@acc50_id, @acc51_id, @acc57_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 11 -- 011 (Денежные средства в рублях (last) update #lines set sum_last=(select sum(isnull(b.saldo_deb,0))-sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (@acc50_id, @acc51_id, @acc57_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 11 /* -- Валютные счета пока не считаем -- 012 (Денежные средства в валюте (now) update #lines set sum_now=(select sum(isnull(b.saldo_deb,0))-sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (@acc50_id, @acc51_id, @acc57_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 12 -- 012 (Денежные средства в валюте (last) update #lines set sum_last=(select sum(isnull(b.saldo_deb,0))-sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (@acc50_id, @acc51_id, @acc57_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 12 */ -- 021 (Депозиты в рублях (now) update #lines set sum_now=(select sum(isnull(b.bal_sum,0)) from tp_pif_srez_portfolio b where b.srez_id = @id and b.acc_id in (@acc582_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_ACCOUNTS')) where row = 21 -- 021 (Депозиты в рублях (last) update #lines set sum_last=(select sum(isnull(b.bal_sum,0)) from tp_pif_srez_portfolio b where b.srez_id = @last_srez_id and b.acc_id in (@acc582_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_ACCOUNTS')) where row = 21 /* -- Валютные депозиты пока не считаем -- 022 (Депозиты в валюте (now) update #lines set sum_now=(select sum(isnull(b.bal_sum,0)) from tp_pif_srez_portfolio b where b.srez_id = @id and b.acc_id in (@acc582_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_ACCOUNTS')) where row = 22 -- 022 (Депозиты в валюте (last) update #lines set sum_last=(select sum(isnull(b.bal_sum,0)) from tp_pif_srez_portfolio b where b.srez_id = @last_srez_id and b.acc_id in (@acc582_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_ACCOUNTS')) where row = 22 */ -- Отбор ЦБ (now) insert into #assets (acc_id, asset_id, sum_now, asset_type_id, owner_type_id) select p.acc_id, p.stock_id, p.stock_sum, isnull((select max(class_value_id) from t_nclass_value2item where item_id = p.stock_id and class_value_id is not null and class_type_id = @class_stock_type_id),0), isnull((select max(class_value_id) from t_nclass_value2item where item_id = p.stock_id and class_value_id is not null and class_type_id = @class_emitent_type_id),0) from tp_pif_srez_portfolio p where p.srez_id = @id and p.acc_id = @acc581_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') -- Отбор ЦБ (last) insert into #assets (acc_id, asset_id, sum_last, asset_type_id, owner_type_id) select p.acc_id, p.stock_id, p.stock_sum, isnull((select max(class_value_id) from t_nclass_value2item where item_id = p.stock_id and class_value_id is not null and class_type_id = @class_stock_type_id),0), isnull((select max(class_value_id) from t_nclass_value2item where item_id = p.stock_id and class_value_id is not null and class_type_id = @class_emitent_type_id),0) from tp_pif_srez_portfolio p where p.srez_id = @last_srez_id and p.acc_id = @acc581_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') and not exists(select 1 from #assets where #assets.asset_id = p.stock_id) -- Отбор ЦБ (last) update #assets set sum_last=p.stock_sum from tp_pif_srez_portfolio p where p.srez_id = @last_srez_id and p.acc_id = @acc581_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') and #assets.asset_id = p.stock_id -- Отбор недвижимости и прочих активов (now) insert into #assets (acc_id, asset_id, sum_now, asset_type_id, owner_type_id) select p.acc_id, p.stock_id, p.stock_sum, isnull((select max(n.class_value_id) from t_nclass_value2item n where n.item_id = p.stock_id and n.class_value_id is not null and n.class_type_id = @class_asset_type_id and n.set_date is not null and n.set_date = (select max(nn.set_date) from t_nclass_value2item nn where nn.item_id = p.stock_id and nn.class_value_id is not null and nn.class_type_id = @class_asset_type_id and nn.set_date is not null and nn.set_date < dateadd(dd,1,@srez_date))),0), null from tp_pif_srez_portfolio p where p.srez_id = @id and p.acc_id in (@acc011_id,@acc081_id,@acc583_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') -- Отбор недвижимости и прочих активов (last) insert into #assets (acc_id, asset_id, sum_last, asset_type_id, owner_type_id) select p.acc_id, p.stock_id, p.stock_sum, isnull((select max(n.class_value_id) from t_nclass_value2item n where n.item_id = p.stock_id and n.class_value_id is not null and n.class_type_id = @class_asset_type_id and n.set_date is not null and n.set_date = (select max(nn.set_date) from t_nclass_value2item nn where nn.item_id = p.stock_id and nn.class_value_id is not null and nn.class_type_id = @class_asset_type_id and nn.set_date is not null and nn.set_date < dateadd(dd,1,@srez_date))),0), null from tp_pif_srez_portfolio p where p.srez_id = @last_srez_id and p.acc_id in (@acc011_id,@acc081_id,@acc583_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') and not exists(select 1 from #assets where #assets.asset_id = p.stock_id) -- Отбор недвижимости и прочих активов (last) update #assets set sum_last=p.stock_sum from tp_pif_srez_portfolio p where p.srez_id = @last_srez_id and p.acc_id in (@acc011_id,@acc081_id,@acc583_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') and #assets.asset_id = p.stock_id -- -- Расчет ЦБ -- -- 030 (Государственные ЦБ РФ) update #assets set row=30 where #assets.owner_type_id = @value_gos_owner_id and #assets.asset_type_id = @value_bond_stock_id -- 040 (Государственные ЦБ субъектов РФ) update #assets set row=40 where #assets.owner_type_id = @value_gos_sub_owner_id and #assets.asset_type_id = @value_bond_stock_id -- 050 (Муниципальные ЦБ) update #assets set row=50 where #assets.owner_type_id = @value_municipal_owner_id and #assets.asset_type_id = @value_bond_stock_id -- 060 (Облигации российских хоз. обществ) update #assets set row=60 where #assets.owner_type_id = @value_nogos_owner_id and #assets.asset_type_id = @value_bond_stock_id -- 070 (Акции российских АО) update #assets set row=70 where #assets.owner_type_id = @value_nogos_owner_id and #assets.asset_type_id = @value_share_stock_id -- 080 (Инвестиционные паи) update #assets set row=80 where #assets.owner_type_id not in (@value_foreign_owner_id, @value_foreign_state_owner_id, @value_foreign_fin_org_owner_id) and #assets.asset_type_id = @value_pifpay_stock_id -- 091 (Ипотечные ЦБ, облигации с ипотечным покрытием) update #assets set row=91 where #assets.owner_type_id not in (@value_foreign_owner_id, @value_foreign_state_owner_id, @value_foreign_fin_org_owner_id) and #assets.asset_type_id = @value_bond_m_stock_id -- 092 (Ипотечные ЦБ, ипотечные сертификаты участия) update #assets set row=92 where #assets.owner_type_id not in (@value_foreign_owner_id, @value_foreign_state_owner_id, @value_foreign_fin_org_owner_id) and #assets.asset_type_id = @value_sert_m_stock_id -- 100 (Векселя выданные российскими хоз. обществами) update #assets set row=100 where #assets.owner_type_id not in (@value_foreign_owner_id, @value_foreign_state_owner_id, @value_foreign_fin_org_owner_id) and #assets.asset_type_id = @value_bill_stock_id -- 111 (ЦБ иностранных государств) update #assets set row=111 where #assets.owner_type_id = @value_foreign_state_owner_id and #assets.asset_type_id = @value_bond_stock_id -- 112 (ЦБ международных финансовых орг-ий) update #assets set row=112 where #assets.owner_type_id = @value_foreign_fin_org_owner_id and #assets.asset_type_id in (@value_bill_stock_id, @value_share_stock_id, @value_bond_stock_id, @value_share_stock_id, @value_sert_m_stock_id, @value_bond_m_stock_id) -- 113 (Акции иностранных АО) update #assets set row=113 where #assets.owner_type_id = @value_foreign_owner_id and #assets.asset_type_id = @value_share_stock_id -- 114 (Облигации иностранных коммерческих организаций) update #assets set row=114 where #assets.owner_type_id = @value_foreign_owner_id and #assets.asset_type_id = @value_bond_stock_id -- 120 (Закладные) /* Закладные пока не считаем, ввиду их отсутствия в системе */ -- 130 (Денежные требования по обеспеченным ипотекой обязательствам) update #assets set row=130 where acc_id = @acc583_id and #assets.asset_type_id = @value_money_claims_mort_liab_id -- 140 (Денежные требования по обеспеченным ипотекой обязательствам update #assets set row=140 where acc_id = @acc583_id and #assets.asset_type_id in (@value_money_claims_mort_liab_mort_id, @value_money_claims_cred_contract_id) -- 150 (Доли в российских ООО) update #assets set row=150 where acc_id = @acc583_id and #assets.asset_type_id = @value_part_of_ooo_id -- 160 (Недвижимое имущество на терр. РФ) update #assets set row=160 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_rf_id -- 161 (Объекты незавершенного строительства на терр. РФ) update #assets set row=161 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_under_constr_rf_id -- 170 (Недвижимое имущество на терр. ин. гос-в) update #assets set row=170 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_foreign_id -- 171 (Объекты незавершенного строительства на терр. ин. гос-в) update #assets set row=171 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_under_constr_foreign_id -- 180 (Имущественные права на имущество на терр. РФ) update #assets set row=180 where acc_id = @acc583_id and #assets.asset_type_id = @value_vested_interests_rf_id -- 181 (Право аренды недвижимого имущества на терр. РФ) update #assets set row=181 where acc_id = @acc583_id and #assets.asset_type_id = @value_tenant_right_immovables_rf_id -- 190 (Имущественные права на имущество на терр. ин. гос-в) update #assets set row=190 where acc_id = @acc583_id and #assets.asset_type_id = @value_vested_interests_foreign_id -- 191 (Право аренды недвижимого имущества на терр. ин. гос-в) update #assets set row=191 where acc_id = @acc583_id and #assets.asset_type_id = @value_tenant_right_immovables_foreign_id -- 200 (Имущественные права по договорам участия) update #assets set row=200 where acc_id = @acc583_id and #assets.asset_type_id = @value_interest_contract_id -- 210 (Имущественные права по инвестиционным договорам) update #assets set row=210 where acc_id = @acc583_id and #assets.asset_type_id = @value_interest_contract_investment_id -- 220 (Имущественные права по обязательствам из договоров строительства) -- 230 (Имущественные права по обязательствам из договоров реконструкции) -- 240 (Проектно-сметная док-ция) update #assets set row=240 where acc_id in (@acc011_id, @acc081_id, @acc583_id) and #assets.asset_type_id = @value_building_docs_id -- 250 (Иное имущество) update #assets set row=250 where acc_id = @acc583_id and #assets.asset_type_id = @value_other_id -- 260 (Деб.задолженность (now) update #lines set sum_now=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 260 -- 260 (Деб.задолженность (last) update #lines set sum_last=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 260 -- 261 (Проф.участники (now) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (@acc551_id, @acc7659_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row in (/*260,*/ 261) -- 261 (Проф.участники (last) update #lines set sum_last=isnull(sum_last,0)+isnull((select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (@acc551_id, @acc7659_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row in (/*260,*/ 261) -- 262 (Сделки по купли-продаже имущества (now) update #lines set sum_now=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (@acc7651_id, @acc7652_id, @acc7653_id, @acc7655_id, @acc7612_id, @acc7613_id, @acc7615_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 262 -- 262 (Сделки по купли-продаже имущества (last) update #lines set sum_last=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (@acc7651_id, @acc7652_id, @acc7653_id, @acc7655_id, @acc7612_id, @acc7613_id, @acc7615_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 262 -- 263-1 (Купоны и % по депозитам (now) update #lines set sum_now=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (@acc7610_id, @acc7616_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 263 -- 263-1 (Купоны и % по депозитам (last) update #lines set sum_last=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (@acc7610_id, @acc7616_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 263 -- 263-2 (НКД по котировкам (в оценку по 263 (now) update #lines set sum_now=isnull(#lines.sum_now,0) + isnull((select sum(b.coupon_sum) from tp_pif_srez_portfolio b where b.srez_id = @id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PORTFOLIO')),0) where row in (260, 263) -- 263-2 (НКД по котировкам (в оценку по 263 (last) update #lines set sum_last=isnull(#lines.sum_last,0) + isnull((select sum(b.coupon_sum) from tp_pif_srez_portfolio b where b.srez_id = @last_srez_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PORTFOLIO')),0) where row in (260, 263) -- 264-1 (Прочая деб. задолженность (now, last) update #lines set sum_now=(select isnull(sum_now,0) from #lines where row = 260) - (select sum(isnull(sum_now,0)) from #lines where row in (261, 262, 263)), sum_last=(select isnull(sum_last,0) from #lines where row = 260) - (select sum(isnull(sum_last,0)) from #lines where row in (261, 262, 263)) where row = 264 -- -- Итого -- -- Итого в отчет (now, last) update #lines set sum_now=isnull((select sum(#assets.sum_now) from #assets where #assets.row = #lines.row and #assets.row is not null),0), sum_last=isnull((select sum(#assets.sum_last) from #assets where #assets.row = #lines.row and #assets.row is not null),0) from #assets where #assets.row = #lines.row -- -- Сводные пункты в отчете -- -- 010 (Итого денежных средств (now, last) update #lines set sum_now=(select sum(sum_now) from #lines where row in (11,12)), sum_last=(select sum(sum_last) from #lines where row in (11,12)) where row = 10 -- 020 (Итого депозитов (now, last) update #lines set sum_now=(select sum(sum_now) from #lines where row in (21,22)), sum_last=(select sum(sum_last) from #lines where row in (21,22)) where row = 20 -- 90 (Итого по 91, 92 в отчет (now, last) update #lines set sum_now=isnull((select sum(#assets.sum_now) from #assets where #assets.row in (91, 92)),0), sum_last=isnull((select sum(#assets.sum_last) from #assets where #assets.row in (91, 92)),0) where #lines.row = 90 -- 110 (Итого по 111, 112, 113, 114 в отчет (now, last) update #lines set sum_now=isnull((select sum(#assets.sum_now) from #assets where #assets.row in (111, 112, 113, 114)),0), sum_last=isnull((select sum(#assets.sum_last) from #assets where #assets.row in (111, 112, 113, 114)),0) where #lines.row = 110 -- 160 (Итого 160 + 161 (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum_now from #lines where row = 161),0), sum_last=isnull(sum_last,0)+isnull((select sum_last from #lines where row = 161),0) where row = 160 -- 170 (Итого 170 + 171 (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum_now from #lines where row = 171),0), sum_last=isnull(sum_last,0)+isnull((select sum_last from #lines where row = 171),0) where row = 170 -- 180 (Итого 180 + 181 (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum_now from #lines where row = 181),0), sum_last=isnull(sum_last,0)+isnull((select sum_last from #lines where row = 181),0) where row = 180 -- 190 (Итого 190 + 191 (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum_now from #lines where row = 191),0), sum_last=isnull(sum_last,0)+isnull((select sum_last from #lines where row = 191),0) where row = 190 -- 270 (Итого сумма активов (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum(sum_now) from #lines where row in (10,20,30,40,50,60,70,80,90,100,110,120,130, 140,150,160,170,180,190,200,210,220,230,240,250,260)),0), sum_last=isnull(sum_last,0)+isnull((select sum(sum_last) from #lines where row in (10,20,30,40,50,60,70,80,90,100,110,120,130, 140,150,160,170,180,190,200,210,220,230,240,250,260)),0) where row = 270 -- 300 (Кред. задолженность (now) update #lines set sum_now=(select sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id = @id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 300 -- 300 (Кред. задолженность (last) update #lines set sum_last=(select sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row = 300 -- 300 (Налог (now) update #lines set sum_now=isnull(#lines.sum_now,0)+ isnull((select sum(isnull(b.saldo_cred,0))-sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (select id from t_accounts where parent_id = @acc68_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row = 300 -- 300 (Налог (last) update #lines set sum_last=isnull(#lines.sum_last,0)+ isnull((select sum(isnull(b.saldo_cred,0))-sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (select id from t_accounts where parent_id = @acc68_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row = 300 -- 310 (Резервы предстоящих расходов (now) update #lines set sum_now=(select sum(isnull(b.saldo_cred,0))-sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id -- and b.acc_id in (@acc962_id, @acc963_id) -- @acc961_id and b.acc_id in (@acc961_id, @acc963_id, @acc969_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 310 -- 310 (Резервы предстоящих расходов (last) update #lines set sum_last=(select sum(isnull(b.saldo_cred,0))-sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id -- and b.acc_id in (@acc962_id, @acc963_id) -- @acc961_id and b.acc_id in (@acc961_id, @acc963_id, @acc969_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 310 -- 320 (Резервы ДУ (now) update #lines set sum_now=(select sum(isnull(b.saldo_cred,0))-sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @id and b.acc_id in (@acc962_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 320 -- 320 (Резервы ДУ (last) update #lines set sum_last=(select sum(isnull(b.saldo_cred,0))-sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id = @last_srez_id and b.acc_id in (@acc962_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row = 320 -- 330 (Итого 300 + 310 + 320 (now, last) update #lines set sum_now=isnull((select sum(sum_now) from #lines where row in (300, 310, 320)),0), sum_last=isnull((select sum(sum_last) from #lines where row in (300, 310, 320)),0) where row = 330 -- 400 (Итого 270 - 300 (now, last) update #lines set sum_now=isnull(((select isnull(sum_now,0) from #lines where row = 270) - (select isnull(sum_now,0) from #lines where row = 330)),0), sum_last=isnull(((select isnull(sum_last,0) from #lines where row = 270) - (select isnull(sum_last,0) from #lines where row = 330)),0) where row = 400 select @pays_qty_last=isnull((select stock_qty from tp_pif_srez where id = @last_srez_id),0) .PIF_ROUND_PAYS(@fund_id,@pays_qty,@pays_qty) .PIF_ROUND_PAYS(@fund_id,@pays_qty_last,@pays_qty_last) -- 500 (Кол-во паев (now, last) update #lines set sum_now=isnull(@pays_qty,0), sum_last=isnull(@pays_qty_last,0) where row = 500 -- СЧА select @scha_sum_now=isnull((select isnull(sum_now,0) from #lines where row = 400),0) select @scha_sum_last=isnull((select isnull(sum_last,0) from #lines where row = 400),0) -- Стоимость пая select @pay_price_now=convert(double precision,@scha_sum_now) / convert(double precision,@pays_qty) select @pay_price_last=convert(double precision,@scha_sum_last) / convert(double precision,@pays_qty_last) -- Округление стоимости пая .PIF_ROUND_MONEY(@fund_id,@pay_price_now,@pay_price_now) .PIF_ROUND_MONEY(@fund_id,@pay_price_last,@pay_price_last) if @pay_price_calc <> @pay_price_now select @pay_price_now=@pay_price_calc -- 600 (Итого 400 / 500 (now, last) update #lines set sum_now=@pay_price_now, sum_last=@pay_price_last where row = 600 -- select * from #assets -- Установка нулей update #lines set sum_now=0 where sum_now is null and row not in (9,299) update #lines set sum_last=0 where sum_last is null and row not in (9,299) select row as row, row_name as row_name, row_code as row_code, convert(decimal(18,8),sum_now) as sum_now, convert(decimal(18,8),sum_last) as sum_last from #lines order by row drop table #lines drop table #assets