# Date: 08/06/06 # Version: 105 $DOC(PIF_SREZ) name=Срез для ПИФ class=1 product=ALD_PIF name_formula=@remark remark_formula=@remark $STATE(CRT) name=Создан class=0 $ENDSTATE $STATE(NEW) name=Начальный class=1 $ENDSTATE $PROP(SREZ_DATE) name=Конечная дата field_name=srez_date table_name=tp_pif_srez field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=1 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(FOND_ID) name=Фонд field_name=fond_id table_name=tp_pif_srez field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=4 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(REMARK) name=Комментарий field_name=remark table_name=tp_pif_srez field_type=varchar field_length=255 field_scale=null field_prec=255 page=1 order=5 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(STOCK_PRICE) name=Цена пая field_name=stock_price table_name=tp_pif_srez field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=6 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(STOCK_QTY) name=Количество паев field_name=stock_qty table_name=tp_pif_srez field_type=decimal field_length=9 field_scale=8 field_prec=18 page=1 order=7 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(ACTIV_SUM) name=Стоимость активов field_name=activ_sum table_name=tp_pif_srez field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=8 init_class=0 init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(SCHA_SUM) name=Стоимость чистых активов field_name=scha_sum table_name=tp_pif_srez field_type=money field_length=8 field_scale=4 field_prec=19 page=1 order=9 init_class=null init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(QUERY_ID) name=Запрос на срез field_name=query_id table_name=tp_pif_srez field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=10 init_class=null init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(SREZ_DATE_B) name=Дата начальная для оборотов field_name=srez_date_b table_name=tp_pif_srez field_type=datetime field_length=8 field_scale=3 field_prec=23 page=1 order=3 init_class=null init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $PROP(STARTSREZ_ID) name=Начальный срез field_name=startsrez_id table_name=tp_pif_srez field_type=numeric field_length=9 field_scale=0 field_prec=18 page=1 order=2 init_class=null init_formula=null unique_index=null numerator=null import_type=null import_table=null import_field=null import_where=null ref_table=null ref_key=null ref_display=null ref_alias=null ref_where=null $ENDPROP $RELATION(REL11) class=1 type=ITEM2CLASSVALUES form=D_ITEM2VALUE_LIST prop=null idname=item_id_s order=2000 $ENDRELATION $RELATION(REL2) class=0 type=PIF_FUND form=null prop=FOND_ID idname=null order=null $ENDRELATION $RELATION(REL8) class=1 type=ASSET_STRUCTURE_DIV_LIST form=D_ASSET_STRUCTURE_DIV_LIST prop=null idname=report_id_s order=1010 $ENDRELATION $RELATION(REL7) class=0 type=PIF_SREZ form=null prop=STARTSREZ_ID idname=null order=null $ENDRELATION $RELATION(REL3) class=1 type=PIF_SREZ_PORTFOLIO form=D_PIF_SRES_PORTFOLIO prop=null idname=srez_id_s order=2 $ENDRELATION $RELATION(REL1) class=1 type=PIF_SREZ_PARTNERS form=D_PIF_SREZ_PARTNERS_LIST prop=null idname=null order=4 $ENDRELATION $RELATION(REL4) class=1 type=PIF_SREZ_BALANCE form=D_PIF_SREZ_BALANCE_LIST prop=null idname=srez_id_s order=3 $ENDRELATION $RELATION(REL6) class=1 type=PIF_SREZ_ACCOUNTS form=D_PIF_SRES_ACCOUNTS prop=null idname=srez_id_s order=5 $ENDRELATION $RELATION(REL5) class=1 type=SD_REPORTS form=FORM2 prop=null idname=foundation_id_s order=1000 $ENDRELATION $RELATION(REL9) class=1 type=PIF_SREZ_ADD_INFO form=PIF_SREZ_ADD_INFO_LIST prop=null idname=srez_id_s order=10 $ENDRELATION $RELATION(REL10) class=1 type=PIF_SREZ_PAY_OWNERS form=PIF_SREZ_PAY_OWNERS_LIST prop=null idname=srez_id_s order=20 $ENDRELATION $FORM(ASSET_VALUE_LIST) name=УК - Справка о стоимости активов - перечень class=4 filter=null target_state= uo=uo_list dw=d_asset_value_list procedure=ap_asset_value_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130923) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric if @sid='' select @sid=null select @id=convert(numeric,@sid) create table #lines ( row int not null, row_name varchar(255) not null, row_code varchar(10) null, asset_sum money null, asset_part decimal(18,4) null, stock_part decimal(18,4) null ) insert into #lines (row,row_name,row_code) select 1000,'Денежные средства на банковских счетах, всего','100' union select 1005,'в том числе:',null union select 1100,'- в рублях','110' union select 1200,'- в иностранной валюте','120' union select 2000,'Денежные средства в банковских вкладах, всего','200' union select 2005,'в том числе:',null union select 2100,'- в рублях','210' union select 2200,'- в иностранной валюте','220' union select 3000,'Ценные бумаги, имеющие признаваемую котировку, всего','300' union select 3005,'в том числе:',null union select 3100,'ценные бумаги российских эмитентов, включенные в котировальные списки организаторов торговли на рынке ценных бумаг:','310' union select 3105,'включая',null union select 3110,'- государственные ценные бумаги Российской Федерации','311' union select 3120,'- государственные ценные бумаги субъектов Российской Федерации','312' union select 3130,'- муниципальные ценные бумаги','313' union select 3140,'- облигации российских хозяйственных обществ','314' union select 3150,'- обыкновенные акции открытых акционерных обществ, за исключением акций акционерных инвестиционных фондов','315' union select 3160,'- обыкновенные акции акционерных инвестиционных фондов','316' union select 3170,'- привилегированные акции открытых акционерных обществ','317' union select 3180,'- инвестиционные паи паевых инвестиционных фондов','318' union select 3200,'- ценные бумаги российских эмитентов, не включенные в котировальные списки организаторов торговли на рынке ценных бумаг:','320' union select 3205,'включая',null union select 3210,'- государственные ценные бумаги Российской Федерации','321' union select 3220,'- государственные ценные бумаги субъектов Российской Федерации','322' union select 3230,'- муниципальные ценные бумаги','323' union select 3240,'- облигации российских хозяйственных обществ','324' union select 3250,'- обыкновенные акции открытых акционерных обществ, за исключением акций акционерных инвестиционных фондов','325' union select 3260,'- обыкновенные акции акционерных инвестиционных фондов','326' union select 3270,'- привилегированные акции открытых акционерных обществ','327' union select 3280,'- обыкновенные акции закрытых акционерных обществ','328' union select 3290,'- инвестиционные паи паевых инвестиционных фондов','329' union select 4000,'Ценные бумаги российских эмитентов, не имеющие признаваемую котировку, всего','400' union select 4005,'в том числе:',null union select 4100,'- государственные ценные бумаги Российской Федерации','410' union select 4200,'- государственные ценные бумаги субъектов Российской Федерации','420' union select 4300,'- муниципальные ценные бумаги','430' union select 4400,'- облигации российских хозяйственных обществ','440' union select 4500,'- обыкновенные акции открытых акционерных обществ, за исключением акций акционерных инвестиционных фондов','450' union select 4600,'- обыкновенные акции акционерных инвестиционных фондов','460' union select 4700,'- привилегированные акции открытых акционерных обществ','470' union select 4800,'- обыкновенные акции закрытых акционерных обществ','480' union select 4900,'- инвестиционные паи паевых инвестиционных фондов','490' union select 4910,'- векселя','491' union select 5000,'Ценные бумаги иностранных эмитентов, всего','500' union select 5005,'в том числе:',null union select 5100,'- ценные бумаги иностранных государств','510' union select 5200,'- ценные бумаги международных финансовых организаций','520' union select 5300,'- облигации иностранных коммерческих организаций','530' union select 5400,'- акции иностранных акционерных обществ','540' union select 6000,'Доли в уставных капиталах российских обществ с ограниченной ответственностью','600' union select 7000,'Недвижимое имущество','700' union select 8000,'Имущественные права на недвижимое имущество','800' union select 9000,'Строящиеся и реконструируемые объекты недвижимого имущества','900' union select 10000,'Проектно-сметная документация','1000' union select 11000,'Иные доходные вложения в материальные ценности','1100' union select 12000,'Дебиторская задолженность, в том числе:','1200' union select 12100,'- средства, переданные профессиональным участникам рынка ценных бумаг','1210' union select 12200,'- дебиторская задолженность по сделкам купли-продажи имущества',1220 union select 12300,'- дебиторская задолженность по процентному (купонному) доходу по банковским вкладам и ценным бумагам','1230' union select 12400,'- прочая дебиторская задолженность','1240' union select 13000,'Итого активов (строки 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 900 + 1000 + 1100 + 1200)','1300' -------------------------------------------------------------------------------------------- declare @plan_id numeric, @fund_id numeric, @acc011_id numeric, @acc081_id numeric, @acc51_id numeric, @acc581_id numeric, @acc582_id numeric, @acc583_id numeric, @acc551_id numeric, --sys=76.5.4 @acc7651_id numeric, @acc7652_id numeric, @acc7653_id numeric, @acc7655_id numeric, @acc7610_id numeric, @acc7612_id numeric, @acc7613_id numeric, @acc7615_id numeric, @acc7616_id numeric select @plan_id=.ARG_PLAN('PIF_ACCOUNT') select @acc011_id = .SD_ACCID_FROM_EFFNO(@plan_id,'01.1') select @acc081_id = .SD_ACCID_FROM_EFFNO(@plan_id,'08.1') select @acc51_id = .SD_ACCID_FROM_EFFNO(@plan_id,'51') 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 @acc551_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.4') 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 @acc7655_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.5') 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') -------------------------------------------------------------------------------- declare @class_stock_type_id numeric, @class_share_type_id numeric, @class_share_rus_ao_type_id numeric, @class_emitent_type_id numeric, @class_tender_type_id numeric, @class_asset_type_id numeric, @value_in_list_id numeric, @value_not_in_list_id numeric, @value_aoi_share_id numeric, @value_api_share_id numeric, @value_share_oao_id numeric, @value_share_zao_id numeric, @value_share_aif_id numeric, @value_gos_owner_id numeric, @value_notgos_owner_id numeric, @value_fed_owner_id numeric, @value_municipal_owner_id numeric, @value_foreign_owner_id numeric, @value_pifpay_stock_id numeric, @value_oblig_stock_id numeric, @value_stock_stock_id numeric, @value_veks_stock_id numeric, @value_building_id numeric, @value_other_id numeric select @class_stock_type_id=max(id) from t_nclass_types where upper(class_code)='STOCK_TYPE' select @class_share_type_id=max(id) from t_nclass_types where upper(class_code)='SHARE_TYPE' select @class_share_rus_ao_type_id=max(id) from t_nclass_types where upper(class_code)='SHARE_RUS_AO' select @class_emitent_type_id=max(id) from t_nclass_types where upper(class_code)='STOCK_EMITENT_TYPE' select @class_tender_type_id=max(id) from t_nclass_types where upper(class_code)='STOCK_ON_TENDER' select @class_asset_type_id=max(id) from t_nclass_types where upper(class_code)='ASSET_TYPE_OTHER' select @value_in_list_id=max(id) from t_nclass_values where class_type_id=@class_tender_type_id and upper(value_code)='IN_LIST' select @value_not_in_list_id=max(id) from t_nclass_values where class_type_id=@class_tender_type_id and upper(value_code)='NOT_IN_LIST' select @value_aoi_share_id=max(id) from t_nclass_values where class_type_id=@class_share_type_id and upper(value_code)='AOI_SHARE' select @value_api_share_id=max(id) from t_nclass_values where class_type_id=@class_share_type_id and upper(value_code)='API_SHARE' select @value_share_oao_id=max(id) from t_nclass_values where class_type_id=@class_share_rus_ao_type_id and upper(value_code)='SHARE_OAO' select @value_share_zao_id=max(id) from t_nclass_values where class_type_id=@class_share_rus_ao_type_id and upper(value_code)='SHARE_ZAO' select @value_share_aif_id=max(id) from t_nclass_values where class_type_id=@class_share_rus_ao_type_id and upper(value_code)='SHARE_AIF' 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_notgos_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_fed_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_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_pifpay_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='PIFPAY' select @value_oblig_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='OBLIG' select @value_stock_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='STOCK' select @value_veks_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='VEKS' select @value_building_id=max(id) from t_nclass_values where class_type_id=@class_asset_type_id and upper(value_code)='BUILDING' select @value_other_id=max(id) from t_nclass_values where class_type_id=@class_asset_type_id and upper(value_code)='OTHER' ------------------------------------------------------------------------------------- declare @srez_date datetime, @startsrez_id numeric select @srez_date=srez_date, @fund_id=fond_id, @startsrez_id=startsrez_id from tp_pif_srez where tp_pif_srez.id = @id /* if @startsrez_id is null .EXIT_MESSAGE('Не задан начальный срез!!!') */ create table #assets ( acc_id numeric not null, asset_id numeric not null, asset_sum money null, stock_qty money null, --? decimal(18,8) is_rate int null, asset_type_id numeric null, -- значение класс., определяющего тип актива owner_type_id numeric null, -- значение класс., определяющего принадлежность актива tender_type_id numeric null, -- including in rate lists ('IN_LIST','NOT_IN_LIST') share_type_id numeric null, -- stock type (common,privilege) share_rus_type_id numeric null, -- rus ao stocks (oao,zao,aif) row int null, stock_emiss_no varchar(100) null, -- detailed info = stock_emis_no qty_in_emission decimal(18,0) null, -- detailed info = emission stock qty emitent varchar(255) null, -- detailed info = emitent ) create table #details( row int not null, detail varchar(255) null, asset_sum money null, asset_part decimal(18,4) null, stock_part decimal(18,4) null ) --************************************** Information ********************************** ---------------------------------- -- stocks and others ---------------------------------- -- stock insert into #assets ( acc_id, asset_id, asset_sum, stock_qty, is_rate, asset_type_id, owner_type_id, tender_type_id, share_type_id, share_rus_type_id ) select p.acc_id, p.stock_id, p.stock_sum, p.stock_qty, (case when isnull(p.is_rate,0)=1 and isnull(p.stock_rate,0)<>0 and p.rate_date is not null and p.rate_date=@srez_date then 1 else 0 end), 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), 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_tender_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_share_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_share_rus_ao_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') -- other assets insert into #assets ( acc_id, asset_id, asset_sum, stock_qty, is_rate, asset_type_id ) select p.acc_id, p.stock_id, p.stock_sum, p.stock_qty, 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_asset_type_id),0) 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') ------------update row --- may be its not correct to use CASE update #assets set row=case -- ЦБ котируемые - rated stocks -- in list when is_rate=1 and owner_type_id=@value_gos_owner_id and tender_type_id=@value_in_list_id then 3110 when is_rate=1 and owner_type_id=@value_fed_owner_id and tender_type_id=@value_in_list_id then 3120 when is_rate=1 and owner_type_id=@value_municipal_owner_id and tender_type_id=@value_in_list_id then 3130 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_oblig_stock_id and tender_type_id=@value_in_list_id then 3140 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_in_list_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_oao_id then 3150 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_in_list_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_aif_id then 3160 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_in_list_id and share_type_id=@value_api_share_id and share_rus_type_id=@value_share_oao_id then 3170 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_pifpay_stock_id and tender_type_id=@value_in_list_id then 3180 -- not in list when is_rate=1 and owner_type_id=@value_gos_owner_id and tender_type_id=@value_not_in_list_id then 3210 when is_rate=1 and owner_type_id=@value_fed_owner_id and tender_type_id=@value_not_in_list_id then 3220 when is_rate=1 and owner_type_id=@value_municipal_owner_id and tender_type_id=@value_not_in_list_id then 3230 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_oblig_stock_id and tender_type_id=@value_not_in_list_id then 3240 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_not_in_list_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_oao_id then 3250 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_not_in_list_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_aif_id then 3260 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_not_in_list_id and share_type_id=@value_api_share_id and share_rus_type_id=@value_share_oao_id then 3270 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and tender_type_id=@value_not_in_list_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_zao_id then 3280 when is_rate=1 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_pifpay_stock_id and tender_type_id=@value_not_in_list_id then 3290 -- ЦБ некотируемые -- not rated stocks when is_rate=0 and owner_type_id=@value_gos_owner_id then 4100 when is_rate=0 and owner_type_id=@value_fed_owner_id then 4200 when is_rate=0 and owner_type_id=@value_municipal_owner_id then 4300 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_oblig_stock_id then 4400 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_oao_id then 4500 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_aif_id then 4600 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and share_type_id=@value_api_share_id and share_rus_type_id=@value_share_oao_id then 4700 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_stock_stock_id and share_type_id=@value_aoi_share_id and share_rus_type_id=@value_share_zao_id then 4800 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_pifpay_stock_id then 4900 when is_rate=0 and owner_type_id=@value_notgos_owner_id and asset_type_id=@value_veks_stock_id then 4910 -- Foreign stocks (!!! 510,520 - can't find, additional classification is needed) when owner_type_id=@value_foreign_owner_id and asset_type_id=@value_oblig_stock_id then 5300 when owner_type_id=@value_foreign_owner_id and asset_type_id=@value_stock_stock_id then 5400 when acc_id=@acc011_id and asset_type_id=@value_building_id then 7000 when acc_id=@acc081_id and asset_type_id=@value_building_id then 8000 when acc_id=@acc583_id and asset_type_id=@value_other_id then 11000 end /* update #assets set row=6000 where acc_id=@acc583_id and asset_type_id=@value...? new value?!! */ -- realty (900 and 1000 - can't get) --getting detail information---------------------------------- update #assets set stock_emiss_no=isnull(e.stock_emiss_no,'?'), qty_in_emission=e.qty_in_emission, emitent=(select isnull(ei.emi_name,'?') from td_emitent_info ei where ei.id=e.emmitent_id) from td_stock_emis e where e.id=#assets.asset_id and .ITEMS_EXISTS_BY_TYPE(#assets.asset_id,'TD_STOCK_EMIS') update #assets set stock_emiss_no=isnull(r.realty_other_assets_name,'?')+', '+ isnull(r.realty_other_assets_code,'?')+', '+isnull(r.reg_no,'?'), emitent=(select tp.partner_name from t_partners tp where tp.id=r.owner_id) from t_realty_other_assets r where r.id=#assets.asset_id and .ITEMS_EXISTS_BY_TYPE(#assets.asset_id,'REALTY_OTHER_ASSETS') insert #details(row,detail,asset_sum,stock_part) select a.row, case when a.row in (3110,3210,4100) then isnull(a.stock_emiss_no,'X') when a.row in (3120,3130,3140,3220,3230,3240,4200,4300,4400,5100,5200,5300) then isnull(a.stock_emiss_no,'X') + ' ' + isnull(a.emitent,'X') when a.row in (3150,3160,3170,3250,3260,3270,3280,4500,4600,4700,4800,4910,5400) then isnull(a.emitent,'X') when a.row in (3180,3290,4900) then isnull(a.emitent,'X') + isnull((select comment from t_nclass_value2item where item_id=a.asset_id and class_value_id=@value_pifpay_stock_id),'X') when a.row in (6000) then isnull(a.emitent,'X') when a.row in (7000,8000) then isnull(a.stock_emiss_no,'X') end, isnull(a.asset_sum,0), case when (a.row in (3110,3120,3130,3150,3160,3180,3210,3220,3230,3250,3260,3280,3290) or a.row in (4100,4200,4300,4500,4600,4800,4900,5100,5200,5300,5400)) and isnull(a.qty_in_emission,0)>0 then isnull(a.stock_qty,0)*100/a.qty_in_emission else 0 end from #assets a where a.row in (3110,3120,3130,3140,3150,3160,3170,3180,3210,3220,3230,3240,3250,3260,3270,3280,3290) or a.row in (4100,4200,4300,4400,4500,4600,4700,4800,4900,4910,5100,5200,5300,5400,6000,7000,8000) ------------------------------------------------------------- -- to report update #lines set asset_sum=(select sum(isnull(#assets.asset_sum,0)) from #assets where #assets.row=#lines.row and #assets.row is not null) --310 update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (3110,3120,3130,3140,3150,3160,3170,3180)) where row=3100 --320 update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (3210,3220,3230,3240,3250,3260,3270,3280,3290)) where row=3200 --300 update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (3100,3200)) where row=3000 --400 update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (4100,4200,4300,4400,4500,4600,4700,4800,4900,4910)) where row=4000 --500 update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (5100,5200,5300,5400)) where row=5000 ---------------- -- Money ---------------- -- 100 - at bank accounts insert #details(row,detail,asset_sum) select 1100,tb.bank_name,p.stock_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@id and p.acc_id=@acc51_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)='RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') insert #details(row,detail,asset_sum) select 1200,tb.bank_name,p.stock_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@id and p.acc_id=@acc51_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)<>'RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') update #lines set asset_sum=(select sum(isnull(d.asset_sum,0)) from #details d where d.row=#lines.row) where row in (1100,1200) update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (1100,1200)) where row=1000 -- 200 - deposit insert #details(row,detail,asset_sum) select 2100,tb.bank_name,p.bal_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@id and p.acc_id=@acc582_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)='RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') insert #details(row,detail,asset_sum) select 2200,tb.bank_name,p.bal_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@id and p.acc_id=@acc582_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)<>'RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') update #lines set asset_sum=(select sum(isnull(d.asset_sum,0)) from #details d where d.row=#lines.row) where row in (2100,2200) update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (2100,2200)) where row=2000 ---------------- -- Задолженность-debts ---------------- -- 1200 - деб.задолженность update #lines set asset_sum=(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')) -----из-за 1230------- +(select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')) ---------- where row=12000 -- 1210 - проф.участники - profi update #lines set asset_sum=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc551_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row=12100 -- 1220 - покупка имущества - asset buying update #lines set asset_sum=(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=12200 -- 1230 - купоны и % по депозитам - coupon and deposit percents -------------- update #lines set asset_sum=(select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO'))+ (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_BALANCE')) where row=12300 -------------- -- 1240 - проч. деб. задолженность - other debts update #lines set asset_sum=(select isnull(asset_sum,0) from #lines where row=12000)- (select sum(isnull(asset_sum,0)) from #lines where row in (12100,12200,12300)) where row=12400 -- 1300 - Itogo update #lines set asset_sum=(select sum(isnull(asset_sum,0)) from #lines where row in (1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000)) where row=13000 declare @itogo money select @itogo=isnull(asset_sum,0) from #lines where row=13000 update #lines set asset_sum=0 where asset_sum is null and row_code is not null insert #lines(row,row_name,asset_sum,stock_part) select d.row,d.detail,isnull(d.asset_sum,0),isnull(d.stock_part,0) from #details d --calculating of asset_part update #lines set asset_part=case when @itogo!=0 then isnull(asset_sum,0)*100/@itogo else 0 end where asset_sum is not null --assets that don't have needed classification-------------------------------------------- if exists(select 1 from #assets where row is null) insert #lines (row,row_name,row_code,asset_sum) select 30000, 'Актив: '+isnull(ti.item_name,'-')+ ', эмитент/владелец: '+isnull(a.emitent,'-')+ ', № выпуска/код: '+isnull(a.stock_emiss_no,'-'), null, a.asset_sum from #assets a, t_items ti where a.row is null and ti.id=a.asset_id -------------------------------------------------------------------------------------------- select row as row, row_name as row_name, row_code as row_code, asset_sum as asset_sum, asset_part as asset_part, stock_part= case when row in (1000,1100,1200,2000,2100,2200,3000,3100,3140,3170,3200,3240,3270,4000,4400,4700,4910,5000) or row in (7000,8000,9000,10000,11000,12000,12100,12200,12300,12400,13000) then 'X' else convert(varchar,stock_part) end from #lines order by row asc, row_code desc drop table #lines drop table #details drop table #assets $ENDTEXT(14130923) $ENDFORM $FORM(ASSET_VALUE_REP) name=УК - Справка о стоимости активов class=5 filter=null target_state= uo=uo_print dw=d_asset_value_rep procedure=ap_30000000003500608 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS select @sid as sid, .DATE_TO_REP(@srez_date,'"') as rep_date, (case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"' as fond_name, uk.partner_name as control_name, uk_jur.j_head_last_name as head_name, uk_jur.j_head_staff as head_staff, t_partners_jur.j_bookkeeper_name as buch_name from t_partners uk, t_partners_jur uk_jur, td_pay_fond, t_partners, t_partners_jur where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners_jur.id = t_partners.id and td_pay_fond.ctrl_comp_id = uk.id and uk_jur.id=uk.id .END $ENDTEXT(14130925) $ENDFORM $FORM(D_PIF_PARTNER2DEAL_REP) name=х_Отчет о задолженностях по сделкам class=5 filter=null target_state= uo=uo_print dw=d_pif_partner2deal_rep procedure=ap_10000000000088887 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric, @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @type_id_s varchar(30), @new_state_id numeric, @state_name_id_s varchar(30) begin select @id = convert(numeric, @sid) select @action_id = %ACTION_ID% select @type_id_s = NULL select @state_name_id_s = NULL .CHECK_USER .CHECK_VIEW select sid = convert(varchar, tp_pif_srez.id), ctrl.partner_name as depo_name, tp_pif_srez.srez_date as srez_date_d, fond.partner_name as fond_name from tp_pif_srez, t_partners fond, td_pay_fond, t_partners ctrl where tp_pif_srez.id = @id and tp_pif_srez.fond_id = fond.id and tp_pif_srez.fond_id = td_pay_fond.id and ctrl.id = td_pay_fond.ctrl_comp_id end $ENDTEXT(14130925) $ENDFORM $FORM(D_PIF_PARTNERS_REPORT) name=Отчет о дебиторских и кредиторских задолженностях class=5 filter=null target_state= uo=uo_print dw=d_pif_partners_report procedure=ap_10000000000088855 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric, @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @type_id_s varchar(30), @new_state_id numeric, @state_name_id_s varchar(30) begin select @id = convert(numeric, @sid) select @action_id = %ACTION_ID% select @type_id_s = NULL select @state_name_id_s = NULL .CHECK_USER .CHECK_VIEW select sid = convert(varchar, tp_pif_srez.id), ctrl.partner_name as depo_name, tp_pif_srez.srez_date as srez_date_d, fond.partner_name as fond_name from tp_pif_srez, t_partners fond, td_pay_fond, t_partners ctrl where tp_pif_srez.id = @id and tp_pif_srez.fond_id = fond.id and tp_pif_srez.fond_id = td_pay_fond.id and ctrl.id = td_pay_fond.ctrl_comp_id end $ENDTEXT(14130925) $ENDFORM $FORM(D_PIF_PORTFOLIO_BROK) name=х_Отчет по портфелю краткий class=5 filter=null target_state= uo=uo_print dw=d_pif_portfolio_brok procedure=ap_10000000000088856 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric, @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @type_id_s varchar(30), @new_state_id numeric, @state_name_id_s varchar(30) begin select @id = convert(numeric, @sid) select @action_id = %ACTION_ID% select @type_id_s = NULL select @state_name_id_s = NULL .CHECK_USER .CHECK_VIEW select sid = convert(varchar, tp_pif_srez.id), ctrl.partner_name as depo_name, tp_pif_srez.srez_date as srez_date_d, fond.partner_name as fond_name from tp_pif_srez, t_partners fond, td_pay_fond, t_partners ctrl where tp_pif_srez.id = @id and tp_pif_srez.fond_id = fond.id and tp_pif_srez.fond_id = td_pay_fond.id and ctrl.id = td_pay_fond.ctrl_comp_id end $ENDTEXT(14130925) $ENDFORM $FORM(D_PIF_PORTFOLIO_REPORT) name=Отчет по портфелю class=5 filter=null target_state= uo=uo_print dw=d_pif_portfolio_report procedure=ap_10000000000088857 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric, @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @type_id_s varchar(30), @new_state_id numeric, @state_name_id_s varchar(30) begin select @id = convert(numeric, @sid) select @action_id = %ACTION_ID% select @type_id_s = NULL select @state_name_id_s = NULL .CHECK_USER .CHECK_VIEW select sid = convert(varchar, tp_pif_srez.id), ctrl.partner_name as depo_name, tp_pif_srez.srez_date as srez_date_d, fond.partner_name as fond_name, tp_pif_srez.activ_sum from tp_pif_srez, t_partners fond, td_pay_fond, t_partners ctrl where tp_pif_srez.id = @id and tp_pif_srez.fond_id = fond.id and tp_pif_srez.fond_id = td_pay_fond.id and ctrl.id = td_pay_fond.ctrl_comp_id end $ENDTEXT(14130925) $ENDFORM $FORM(D_PIF_SREZ_EDIT) name=Просмотр class=5 filter=null target_state= uo=uo_edit dw=d_pif_srez_edit procedure=ap_10000000000088858 patterns=GENERIC_VIEW_ITEM user_define=0 isvisible=0 istab=1 posx=0 posy=0 width=4562 height=1676 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric, @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric begin select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_VIEW_ITEM if @id = -1 begin begin tran .GET_PROPS .CHECK_INSERT .INIT_VARS(B) .INSERT_ITEMS .INSERT commit tran end .VIEW_ITEM end $ENDTEXT(14130925) $ACTION2RELATION(REL2.PARTNER_CODE) relation=REL2 where=null prop=PARTNER_CODE order=1 alias=partner_code $ENDACTION2RELATION $ACTION2RELATION(REL2.PARTNER_SHORT_NAME) relation=REL2 where=null prop=PARTNER_SHORT_NAME order=3 alias=partner_short_name $ENDACTION2RELATION $ACTION2RELATION(REL7.REMARK) relation=REL7 where=null prop=REMARK order=10 alias=srez_b_remark $ENDACTION2RELATION $ENDFORM $FORM(PIF_BALANCE_41PS_LIST) name=УК - Баланс имущества, составляющего ПИФ - перечень class=4 filter=null target_state= uo=uo_list dw=d_pif_balance_41ps_list procedure=ap_pif_balance_41ps_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130925) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric if @sid='' select @sid=null select @id=convert(numeric,@sid) create table #lines ( row int not null, row_name varchar(255) not null, detail_id numeric null, row_code varchar(10) null, sum_beg money null, sum_end money null, asset_part decimal(18,8) null ) insert into #lines (row,row_name,row_code) select 50,'Имущество, составляющее паевой инвестиционный фонд',null union select 100,'Денежные средства на банковских счетах, всего','010' union select 105,'в том числе:',null union select 110,'- в рублях','011' union select 120,'- в иностранной валюте','012' union select 200,'Денежные средства в банковских вкладах, всего','020' union select 205,'в том числе:',null union select 210,'- в рублях','021' union select 220,'- в иностранной валюте','022' union select 300,'Ценные бумаги российских эмитентов, имеющие признаваемую котировку, всего','030' union select 305,'в том числе:',null union select 310,'- акции','031' union select 320,'- облигации','032' union select 400,'Ценные бумаги российских эмитентов, не имеющие признаваемую котировку, всего','040' union select 405,'в том числе:',null union select 410,'- акции','041' union select 420,'- облигации','042' union select 430,'- векселя','043' union select 440,'- иные ценные бумаги','044' union select 500,'Дебиторская задолженность, в том числе:','050' union select 510,'- средства, переданные профессиональным участникам рынка ценных бумаг','051' union select 520,'- дебиторская задолженность по сделкам купли-продажи имущества','052' union select 530,'- дебиторская задолженность по процентному (купонному) доходу по банковским вкладам и ценным бумагам','053' union select 540,'- прочая дебиторская задолженность','054' union select 600,'Инвестиционные паи паевых инвестиционных фондов','060' union select 700,'Ценные бумаги иностранных эмитентов, всего, в том числе','070' union select 710,'- ценные бумаги иностранных государств','071' union select 720,'- ценные бумаги международных финансовых организаций','072' union select 730,'- акции иностранных акционерных обществ','073' union select 740,'- облигации иностранных коммерческих организаций','074' union select 800,'Доли в российских обществах с ограниченной ответственностью','080' union select 900,'Доходные вложения в материальные ценности, всего, в том числе','090' union select 910,'- объекты недвижимого имущества, кромя строящихся и реконструируемых объектов','091' union select 920,'- строящиеся и реконструируемые объекты недвижимого имущества','092' union select 930,'- имущественные права на недвижимое имущество','093' union select 940,'- проектно-сметная документация','094' union select 1000,'Итого имущество: (строки 010 + 020 + 030 + 040 + 050 + 060 + 070 + 080 + 090)','100' union select 1050,'Обязательства, исполнение которых осуществляется за счет имущества, составляющего паевой инвестиционный фонд',null union select 1100,'Кредиторская задолженность','110' union select 1200,'Резервы на выплату вознаграждений','120' union select 1300,'Инвестиционные паи',130 union select 1400,'Итого обязательства: (строки 110 + 120 + 130)','140' -------------------------------------------------------------------------------------------- declare @plan_id numeric, @fund_id numeric, @acc011_id numeric, @acc081_id numeric, @acc51_id numeric, @acc581_id numeric, @acc582_id numeric, @acc583_id numeric, @acc551_id numeric, --sys=76.5.4 @acc7651_id numeric, @acc7652_id numeric, @acc7653_id numeric, @acc7655_id numeric, @acc7610_id numeric, @acc7612_id numeric, @acc7613_id numeric, @acc7615_id numeric, @acc7616_id numeric, @acc861_id numeric,--sys=96.1 @acc961_id numeric,--sys=89.1 @acc963_id numeric--sys=89.3 select @plan_id=.ARG_PLAN('PIF_ACCOUNT') select @acc011_id = .SD_ACCID_FROM_EFFNO(@plan_id,'01.1') select @acc081_id = .SD_ACCID_FROM_EFFNO(@plan_id,'08.1') select @acc51_id = .SD_ACCID_FROM_EFFNO(@plan_id,'51') 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 @acc551_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.4') 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 @acc7655_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.5') 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 @acc861_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.1') select @acc961_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.1') select @acc963_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.3') declare @class_stock_type_id numeric, @class_emitent_type_id numeric, @class_asset_type_id numeric, @value_notgos_owner_id numeric, @value_foreign_owner_id numeric, @value_pifpay_stock_id numeric, @value_oblig_stock_id numeric, @value_stock_stock_id numeric, @value_veks_stock_id numeric, @value_building_id numeric, @value_other_id numeric 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_notgos_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_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_pifpay_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='PIFPAY' select @value_oblig_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='OBLIG' select @value_stock_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='STOCK' select @value_veks_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='VEKS' select @value_building_id=max(id) from t_nclass_values where class_type_id=@class_asset_type_id and upper(value_code)='BUILDING' select @value_other_id=max(id) from t_nclass_values where class_type_id=@class_asset_type_id and upper(value_code)='OTHER' --*********************************** INFORMATION ******************************************** declare @is_end int, --if end_of_year then 1, if begin_of_year then 0 @srez_e_id numeric, --end_of_year_srez @srez_b_id numeric, --begin_of_year_srez @srez_e_date datetime, --end_of_year_srez_date @srez_b_date datetime, -- begin_of_year_srez_date @srez_id numeric, -- for cycle only @srez_date datetime -- for cycle only select @srez_e_id=@id select @srez_b_id=startsrez_id, @srez_e_date=srez_date, @fund_id=fond_id from tp_pif_srez where tp_pif_srez.id = @srez_e_id if @srez_b_id is null .EXIT_MESSAGE('Не задан срез на начало года') select @srez_b_date=srez_date from tp_pif_srez where tp_pif_srez.id = @srez_b_id create table #assets ( acc_id numeric not null, asset_id numeric not null, asset_sum money null, stock_qty decimal(18,8) null, is_rate int null, asset_type_id numeric null, -- значение класс.,определяющего тип актива owner_type_id numeric null, -- значение класс.,определяющего принадлежность актива, stock_emiss_no varchar(255) null, -- detailed info = stock_emis_no qty_in_emission decimal(18,0) null, -- detailed info = emission stock qty emitent varchar(255) null, -- detailed info = emitent row int null ) create table #details( row int not null, detail_id numeric null, detail varchar(255) null, sum_beg money null, sum_end money null ) ------------------------------------------------------------------------------------- select @srez_id=@srez_e_id, @srez_date=@srez_e_date select @is_end=1 --------------------------------------------- CYCLE ----------------------------- while @is_end>=0 -- is evaluating 2 times: =1 (end_of_year) and =0 (begin_of_year) begin --------------------------------- -- stocks and others ---------------------------------- -- stock insert into #assets ( acc_id, asset_id, asset_sum, stock_qty, is_rate, asset_type_id, owner_type_id ) select p.acc_id, p.stock_id, p.stock_sum, p.stock_qty, (case when isnull(p.is_rate,0)=1 and isnull(p.stock_rate,0)<>0 and p.rate_date is not null --and p.rate_date=@srez_date then 1 else 0 end), 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=@srez_id and p.acc_id=@acc581_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') -- other assets insert into #assets ( acc_id, asset_id, asset_sum, stock_qty, is_rate, asset_type_id ) select p.acc_id, p.stock_id, p.stock_sum, p.stock_qty, 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_asset_type_id),0) from tp_pif_srez_portfolio p where p.srez_id=@srez_id and p.acc_id in (@acc011_id,@acc081_id,@acc583_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') update #assets set row=case -- ЦБ котируемые - rated stocks when is_rate=1 and asset_type_id=@value_stock_stock_id and owner_type_id<>@value_foreign_owner_id then 310 when is_rate=1 and owner_type_id<>@value_foreign_owner_id and asset_type_id=@value_oblig_stock_id then 320 -- ЦБ некотируемые -- not rated stocks when is_rate=0 and owner_type_id<>@value_foreign_owner_id and asset_type_id=@value_stock_stock_id then 410 when is_rate=0 and owner_type_id<>@value_foreign_owner_id and asset_type_id=@value_oblig_stock_id then 420 when is_rate=0 and owner_type_id<>@value_foreign_owner_id and asset_type_id=@value_veks_stock_id then 430 when is_rate=0 and owner_type_id<>@value_foreign_owner_id and asset_type_id not in (@value_stock_stock_id,@value_oblig_stock_id,@value_veks_stock_id) and isnull(asset_type_id,0)!=0 then 440 -- Pays when owner_type_id=@value_notgos_owner_id and asset_type_id=@value_pifpay_stock_id then 600 -- Foreign stocks, realty and parts (!!! 710,720,920,940 - can't find, additional classification is needed) when owner_type_id=@value_foreign_owner_id and asset_type_id=@value_oblig_stock_id then 740 when owner_type_id=@value_foreign_owner_id and asset_type_id=@value_stock_stock_id then 730 when acc_id=@acc011_id and asset_type_id=@value_building_id then 910 when acc_id=@acc081_id and asset_type_id=@value_building_id then 930 /* when acc_id=@acc583_id and asset_type_id=@value_other_id-----??????????????? then 800*/ end -- getting detail information ---------------------------------- update #assets set stock_emiss_no=e.stock_emiss_no, qty_in_emission=e.qty_in_emission, emitent=(select ei.emi_name from td_emitent_info ei where ei.id=e.emmitent_id) from td_stock_emis e where e.id=#assets.asset_id and .ITEMS_EXISTS_BY_TYPE(#assets.asset_id,'TD_STOCK_EMIS') update #assets set stock_emiss_no=isnull(r.realty_other_assets_name,'?')+', '+ isnull(r.realty_other_assets_code,'?')+', '+isnull(r.reg_no,'?'), emitent=(select tp.partner_name from t_partners tp where tp.id=r.owner_id) from t_realty_other_assets r where r.id=#assets.asset_id and .ITEMS_EXISTS_BY_TYPE(#assets.asset_id,'REALTY_OTHER_ASSETS') insert #details(row,detail_id,detail,sum_beg) select a.row,a.asset_id, case when a.row in (320,420,710,740) then isnull(a.stock_emiss_no,'X') + ' ' + isnull(a.emitent,'X') when a.row in (310,410,430,440,730) then isnull(a.emitent,'X') when a.row in (910,930) then isnull(a.stock_emiss_no,'X') end, isnull(a.asset_sum,0) from #assets a where a.row in (310,320,410,420,430,440,710,730,740,910,930) ------------------------------------------------------------- -- to report update #lines set sum_beg=(select sum(isnull(#assets.asset_sum,0)) from #assets where #assets.row=#lines.row and #assets.row is not null) --030 update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (310,320)) where row=300 --040 update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (410,420,430,440)) where row=400 --070 update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (710,720,730,740)) where row=700 --090 update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (910,920,930,940)) where row=900 ---------------- -- Money ---------------- -- 010 - at bank accounts insert #details(row,detail_id,detail,sum_beg) select 110,tb.id,tb.bank_name,p.stock_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@srez_id and p.acc_id=@acc51_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)='RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') insert #details(row,detail_id,detail,sum_beg) select 120,tb.id,tb.bank_name,p.stock_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@srez_id and p.acc_id=@acc51_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)<>'RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') update #lines set sum_beg=(select sum(isnull(d.sum_beg,0)) from #details d where d.row=#lines.row) where row in (110,120) update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (110,120)) where row=100 -- 020 - deposit insert #details(row,detail_id,detail,sum_beg) select 210,tb.id,tb.bank_name,p.bal_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@srez_id and p.acc_id=@acc582_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)='RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') insert #details(row,detail_id,detail,sum_beg) select 220,tb.id,tb.bank_name,p.bal_sum from tp_pif_srez_portfolio p, t_bank_accounts tb where p.srez_id=@srez_id and p.acc_id=@acc582_id and p.stock_id=tb.id and .CUR_CODE(tb.bank_acc_cur_id)<>'RUR' and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') update #lines set sum_beg=(select sum(isnull(d.sum_beg,0)) from #details d where d.row=#lines.row) where row in (210,220) update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (210,220)) where row=200 ---------------- -- Задолженность-debts ---------------- -- 050 - деб.задолженность update #lines set sum_beg=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id=@srez_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) -----из-за 053------- +(select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@srez_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')) ---------- where row=500 -- 051 - проф.участники - profi update #lines set sum_beg=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id=@acc551_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row=510 -- 052 - покупка имущества - asset buying update #lines set sum_beg=(select sum(isnull(b.saldo_deb,0)) from tp_pif_srez_balance b where b.srez_id=@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=520 -- 053 - купоны и % по депозитам - coupon and deposit percents update #lines set sum_beg=(select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@srez_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')) where row=530 -- 054 - проч.деб.задолженность - other debts update #lines set sum_beg=(select isnull(sum_beg,0) from #lines where row=500)- (select sum(isnull(sum_beg,0)) from #lines where row in (510,520,530)) where row=540 -- 100 - Итого имущество update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (100,200,300,400,500,600,700,800,900)) where row=1000 declare @itogo money select @itogo=isnull(sum_beg,0) from #lines where row=1000 /* -----------------------5 процентов!!!--------------- --calculating of asset_part if @is_end=1 update #lines set asset_part=case when @itogo!=0 then isnull(sum_beg,0)*100/@itogo else 0 end -------------------------------------------------------- */ -- Обязательства -- 110 - кред. задолженность update #lines set sum_beg=(select sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b where b.srez_id=@srez_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row=1100 --06/12/04 - ВТБ - добавляем счета 68.* update #lines set sum_beg=isnull(#lines.sum_beg,0)+ isnull((select sum(isnull(b.saldo_cred,0)) from tp_pif_srez_balance b, t_accounts where b.srez_id=@srez_id and b.acc_id = t_accounts.id and t_accounts.acc_num_eff_rep like '.68.%' and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row=1100 -- 120 - резервы на выплату вознагр. update #lines set sum_beg=(select isnull(sum(isnull(b.saldo_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1200 -- 130 - инв. паи update #lines set sum_beg=(select isnull(scha_sum,0) from tp_pif_srez where id=@srez_id) where row=1300 -- 140 - Итого обязательства update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (1100,1200,1300)) where row=1400 --assets that don't have needed classification-------------------------------------------- if exists(select 1 from #assets where row is null) insert #lines (row,row_name,row_code,sum_beg) select 30000, 'Asset: '+isnull(ti.item_name,'-')+ ', emitent/owner: '+isnull(a.emitent,'-')+ ', ? number: '+isnull(a.stock_emiss_no,'-'), null, a.asset_sum from #assets a, t_items ti where a.row is null and ti.id=a.asset_id -------------------------------------------------------------------------------------------- -- finish of while cycle--------------------------------------------------------- if @is_end=1 begin update #lines set sum_end=sum_beg update #lines set sum_beg=0 truncate table #assets update #details set sum_end=sum_beg update #details set sum_beg=null select @srez_id=@srez_b_id, @srez_date=@srez_b_date end --if------------------------------------------------------ select @is_end=@is_end-1 end --end_of while @is_end...------------------------------------------------ declare @itogo_sum_beg money, @itogo_sum_end money select @itogo_sum_beg=sum_beg, @itogo_sum_end=sum_end from #lines where row=1000 -- adding details--------------- insert #lines(row,row_name,detail_id,sum_beg) select d.row,d.detail,d.detail_id,d.sum_beg from #details d where d.sum_beg is not null and d.sum_beg/@itogo_sum_beg>=0.05 update #lines set sum_end=d.sum_end from #details d where d.detail_id=#lines.detail_id and d.row=#lines.row and d.sum_end/@itogo_sum_end>=0.05 insert #lines(row,row_name,detail_id,sum_end) select d.row,d.detail,d.detail_id,d.sum_end from #details d where d.sum_end is not null and d.sum_end/@itogo_sum_end>=0.05 and not exists(select 1 from #lines where #lines.detail_id=d.detail_id) -------------------------------- --Final Output!!!------------- select row as row, row_name as row_name, row_code as row_code, isnull(sum_beg,0) as sum_beg, isnull(sum_end,0) as sum_end from #lines order by row asc, row_code desc drop table #lines drop table #assets drop table #details $ENDTEXT(14130925) $ENDFORM $FORM(PIF_BALANCE_41PS_REP) name=УК - Баланс имущества, составляющего ПИФ class=5 filter=null target_state= uo=uo_print dw=d_pif_balance_41ps_rep procedure=ap_30000000003502529 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130926) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS select @sid as sid, .DATE_TO_REP(@srez_date,'"') as rep_date, (case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"' as fond_name, uk.partner_name as control_name, uk_jur.j_head_last_name as head_name, uk_jur.j_head_staff as head_staff, t_partners_jur.j_bookkeeper_name as buch_name from t_partners uk, t_partners_jur uk_jur, td_pay_fond, t_partners, t_partners_jur where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners_jur.id = t_partners.id and td_pay_fond.ctrl_comp_id = uk.id and uk_jur.id=uk.id .END $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_2004) name=Отчет Справка СЧА (2004) class=5 filter=null target_state= uo=uo_print dw=d_pif_scha_2004_rep procedure=ap_30000000003478474 patterns=GENERIC_VIEW_ITEM user_define=1 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130926) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS select @sid as sid, .DATE_TO_REP(@srez_date,'"') as rep_date, (case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"' as fond_name, uk.partner_name as control_name, uk_jur.j_head_last_name as head_name, uk_jur.j_head_staff as head_staff, t_partners_jur.j_bookkeeper_name as buch_name from t_partners uk, t_partners_jur uk_jur, td_pay_fond, t_partners, t_partners_jur where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners_jur.id = t_partners.id and td_pay_fond.ctrl_comp_id = uk.id and uk_jur.id=uk.id .END $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_2004_LIST) name=Отчет Справка СЧА (2004) - перечень class=4 filter=null target_state= uo=null dw=d_pif_scha_2004_list procedure=ap_pif_scha_2004_list patterns=GENERIC_MOVE user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130926) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric if @sid='' select @sid=null select @id=convert(numeric,@sid) create table #assets ( acc_id numeric not null, asset_id numeric not null, sum_bal money null, sum_calc money null, is_rate int null, asset_type_id numeric null, -- значение класс.,определяющего тип актива owner_type_id numeric null, -- значение класс.,определяющего принадлежность актива, row int null ) create table #lines ( row int not null, row_name varchar(255) not null, row_code varchar(10) null, sum_bal .PIF_PAY_TYPE null, sum_calc .PIF_PAY_TYPE null ) insert into #lines (row,row_name,row_code) select 9,'Активы:',null union select 10,'Денежные средства','010' union select 20,'Депозиты','020' union select 30,'Ценные бумаги, имеющие признаваемую котировку, в том числе:','030' union select 31,'- акции','031' union select 32,'- облигации','032' union select 33,'- прочие','033' union select 40,'Ценные бумаги, не имеющие признаваемую котировку, в том числе:','040' union select 41,'- акции','041' union select 42,'- облигации','042' union select 43,'- векселя',null union select 44,'- прочие','043' union select 50,'Дебиторская задолженность, в том числе:','050' union select 51,'- средства, переданные профессиональным участникам рынка ценных бумаг','051' union select 52,'- дебиторская задолженность по сделкам купли-продажи имущества','052' union select 53,'- дебиторская задолженность по процентному (купонному) доходу по банковским вкладам и ценным бумагам','053' union select 54,'- прочая дебиторская задолженность','054' union select 60,'Инвестиционные паи паевых инвестиционных фондов','060' union select 70,'Ценные бумаги иностранных эмитентов, в том числе:','070' union select 71,'- ценные бумаги иностранных государств','071' union select 72,'- акции иностранных акционерных обществ','072' union select 73,'- облигации иностранных коммерческих организаций','073' union select 74,'- ценные бумаги международных финансовых организаций','074' union select 79,'Доли в российских обществах с ограниченной ответственностью',null union select 80,'Недвижимое имущество и права на недвижимое имущество, в том числе:','080' union select 81,'- объекты недвижимого имущества',null union select 82,'- имущественные права на недвижимое имущество',null union select 83,'- строящиеся объекты недвижимости',null union select 90,'Проектно-сметная документация','090' union select 100,'Итого имущества: (строки 010 + 020 + 030 + 040 + 050 + 060 + 070 + 080 + 090)','100' union select 199,'Обязательства:',null union select 200,'Кредиторская задолженность','200' union select 210,'Резервы предстоящих расходов и платежей','210' union select 220,'Итого сумма обязательств (строки 200 + 210)','220' union select 230,'Итого стоимость чистых активов: (строки 100 - 220)','230' union select 240,'Количество паев в обращении','240' union select 250,'Расчетная стоимость пая (строки 230/240)','250' -------------------------------------------------------------------------------------------- declare @srez_date datetime, @scha_sum money, @pay_price money, @pay_price_srez money, @d_pay_price decimal(36,16), @pays_qty .PIF_PAY_TYPE, @scha_sum_bal money, @pay_price_bal money declare @plan_id numeric, @fund_id numeric, @acc51_id numeric, @acc50_id numeric, @acc57_id numeric, @acc581_id numeric, @acc582_id numeric, @acc583_id numeric, @acc766_id numeric, @acc767_id numeric, @acc7610_id numeric, @acc7612_id numeric, @acc7613_id numeric, @acc7615_id numeric, @acc7616_id numeric, @acc7651_id numeric, @acc7652_id numeric, @acc7653_id numeric, @acc551_id numeric, @acc7655_id numeric, @acc011_id numeric, @acc081_id numeric, @acc961_id numeric, @acc962_id numeric, @acc963_id numeric, @acc68_id numeric declare @class_stock_type_id numeric, @class_emitent_type_id numeric, @class_asset_type_id numeric, @value_foreign_owner_id numeric, @value_pifpay_stock_id numeric select @srez_date=srez_date, @pays_qty=isnull(stock_qty,0), @pay_price_srez=isnull(stock_price,0), @fund_id=fond_id from tp_pif_srez where tp_pif_srez.id = @id 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 @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 @acc962_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') select @acc963_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.3') select @acc68_id = .SD_ACCID_FROM_EFFNO(@plan_id,'68') 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_pifpay_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='PIFPAY' ---------------------------------- -- ЦБ, недвижимость и проч.активы ---------------------------------- -- ЦБ insert into #assets ( acc_id, asset_id, sum_bal, sum_calc, is_rate, asset_type_id, owner_type_id ) select p.acc_id, p.stock_id, p.bal_sum, p.stock_sum, (case when isnull(p.is_rate,0)=1 and isnull(p.stock_rate,0)<>0 and p.rate_date is not null and p.rate_date=@srez_date then 1 else 0 end), 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') -- ЦБ котируемые update #assets set row=31 where is_rate=1 and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='STOCK' and owner_type_id<>@value_foreign_owner_id update #assets set row=32 where is_rate=1 and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='OBLIG' and owner_type_id<>@value_foreign_owner_id update #assets set row=33 where is_rate=1 and asset_type_id<>@value_pifpay_stock_id and owner_type_id<>@value_foreign_owner_id and row is null -- ЦБ некотируемые update #assets set row=41 where is_rate=0 and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='STOCK' and owner_type_id<>@value_foreign_owner_id update #assets set row=42 where is_rate=0 and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='OBLIG' and owner_type_id<>@value_foreign_owner_id update #assets set row=43 where is_rate=0 and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='VEKS' and owner_type_id<>@value_foreign_owner_id update #assets set row=44 where is_rate=0 and asset_type_id<>@value_pifpay_stock_id and owner_type_id<>@value_foreign_owner_id and row is null -- Паи update #assets set row=60 where asset_type_id=@value_pifpay_stock_id and owner_type_id<>@value_foreign_owner_id -- Иностранные ЦБ (!!! 071 и 074 пока не собираем) update #assets set row=72 where (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='STOCK' and owner_type_id=@value_foreign_owner_id update #assets set row=73 where (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='OBLIG' and owner_type_id=@value_foreign_owner_id -- Пр.активы insert into #assets ( acc_id, asset_id, sum_bal, sum_calc, is_rate, asset_type_id, owner_type_id ) select p.acc_id, p.stock_id, p.bal_sum, p.stock_sum, 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_asset_type_id),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') -- !!! доли (п.75) пока не собираем /* update #assets set row=75 where acc_id=@acc583_id and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='???' */ -- недвижимость update #assets set row=81 where acc_id=@acc011_id update #assets set row=82 where acc_id=@acc081_id -- and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='BUILDING' -- !!! стороящееся (п.83) пока не собираем - все с 08.1 на п.82 /* update #assets set row=82 where acc_id=@acc081_id and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='???' */ -- !!! 090 (проектно-сметная док.) пока не собираем /* update #assets set row=90 where acc_id=@acc583_id and (select upper(value_code) from t_nclass_values where id=#assets.asset_type_id)='???' */ -- в отчет update #lines set sum_bal=(select sum(isnull(#assets.sum_bal,0)) from #assets where #assets.row=#lines.row and #assets.row is not null), sum_calc=(select sum(isnull(#assets.sum_calc,0)) from #assets where #assets.row=#lines.row and #assets.row is not null) update #lines set sum_calc=sum_bal where isnull(sum_calc,0)=0 update #lines set sum_bal=(select sum(isnull(sum_bal,0)) from #lines where row in (31,32,33)), sum_calc=(select sum(isnull(sum_calc,0)) from #lines where row in (31,32,33)) where row=30 update #lines set sum_bal=(select sum(isnull(sum_bal,0)) from #lines where row in (41,42,43,44)), sum_calc=(select sum(isnull(sum_calc,0)) from #lines where row in (41,42,43,44)) where row=40 update #lines set sum_bal=(select sum(isnull(sum_bal,0)) from #lines where row in (71,72,73,74)), sum_calc=(select sum(isnull(sum_calc,0)) from #lines where row in (71,72,73,74)) where row=70 update #lines set sum_bal=(select sum(isnull(sum_bal,0)) from #lines where row in (81,82,83)), sum_calc=(select sum(isnull(sum_calc,0)) from #lines where row in (81,82,83)) where row=80 ---------------- -- Ден.средства ---------------- -- 010 - ДС update #lines set sum_bal=(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=10 -- 020 - депозиты update #lines set sum_bal=(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=20 ---------------- -- Задолженность ---------------- -- 050 - деб.задолженность update #lines set sum_bal=(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=50 -- 051 - проф.участники update #lines set sum_bal=(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) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_PARTNERS')) where row=51 -- 052 - покупка имущества update #lines set sum_bal=(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=52 -- 053 - купоны и % по депозитам update #lines set sum_bal=(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=53 -- НКД по котировкам (в оценку по 053) update #lines set sum_calc=isnull(#lines.sum_bal,0) + isnull((select sum(isnull(b.coupon_sum,0)) 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 (50,53) -- УНКД по балансу (в бал.ст-ть по 053) if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'SELECT_UNKD_IN_SCHA_REP','OFF')='ON' update #lines set sum_bal=isnull(#lines.sum_bal,0) + isnull((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 (@acc766_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row in (50,53) -- 054 - проч.деб.задолженность update #lines set sum_calc=sum_bal where row in (51,52) update #lines set sum_bal=(select isnull(sum_bal,0) from #lines where row=50) - (select sum(isnull(sum_bal,0)) from #lines where row in (51,52,53)), sum_calc=(select isnull(sum_calc,0) from #lines where row=50) - (select sum(isnull(sum_calc,0)) from #lines where row in (51,52,53)) where row=54 -- 200 - кред.задолженность update #lines set sum_bal=(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=200 -- (налог) update #lines set sum_bal=isnull(#lines.sum_bal,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=200 -- 210 - резервы update #lines set sum_bal=(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 (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=210 -- Оценочная стоимость = балансовой update #lines set sum_calc=null where sum_calc=0 update #lines set sum_bal=null where sum_bal=0 update #lines set sum_calc=sum_bal where sum_calc is null ----------------- -- Сводные пункты ----------------- -- 100 - все имущество update #lines set sum_bal=(select sum(isnull(sum_bal,0)) from #lines where row in (10,20,30,40,50,60,70,80,90)), sum_calc=(select sum(isnull(sum_calc,0)) from #lines where row in (10,20,30,40,50,60,70,80,90)) where row=100 -- 220 - все обязательства update #lines set sum_bal=(select sum(isnull(sum_bal,0)) from #lines where row in (200,210)), sum_calc=(select sum(isnull(sum_calc,0)) from #lines where row in (200,210)) where row=220 -- 230 - СЧА select @scha_sum=(select isnull(sum_calc,0) from #lines where row=100) - (select isnull(sum_calc,0) from #lines where row=220) select @scha_sum_bal=(select isnull(sum_bal,0) from #lines where row=100) - (select isnull(sum_bal,0) from #lines where row=220) update #lines set sum_calc=@scha_sum, sum_bal=@scha_sum_bal where row=230 -- 240,250 - кол-во паев и цена пая update #lines set sum_calc=@pays_qty, sum_bal=@pays_qty where row=240 if @pays_qty = 0 select @d_pay_price = 0 else select @d_pay_price = convert(decimal(36,16),convert(decimal(36,16),@scha_sum) / convert(decimal(36,16),@pays_qty)) .PIF_ROUND_MONEY(@fund_id,@d_pay_price,@d_pay_price) select @pay_price = convert(money,@d_pay_price) --if @pay_price<>@pay_price_srez and isnull(@pay_price_srez,0)>0 -- select @pay_price=@pay_price_srez if @pays_qty = 0 select @d_pay_price = 0 else select @d_pay_price = convert(decimal(36,16),convert(decimal(36,16),@scha_sum_bal) / convert(decimal(36,16),@pays_qty)) .PIF_ROUND_MONEY(@fund_id,@d_pay_price,@d_pay_price) select @pay_price_bal = convert(money,@d_pay_price) update #lines set sum_calc=@pay_price, sum_bal=@pay_price_bal where row=250 -------------------------------------------------------------------------------------------- select row as row, row_name as row_name, row_code as row_code, sum_bal as sum_bal, sum_calc as sum_calc from #lines order by row drop table #lines drop table #assets $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_2005) name=Отчет Справка СЧА (2005) class=5 filter=null target_state= uo=uo_print dw=d_pif_scha_2005_rep procedure=ap_pif_scha_2005_rep patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130926) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS declare @srez_date_now varchar(10), -- дата справки @srez_date_last varchar(10), -- дата предыдущей справки @rep_out_date varchar(30), -- дата определения стоимости @fond_name varchar(255), -- название фонда @control_name varchar(255), -- название УК @head_name varchar(255), -- ФИО уполномоченного лица УК @head_staff varchar(255), -- должность уполномоченного лица УК @buch_name varchar(255), -- ФИО бухгалтера @sd_name varchar(255), -- ФИО уполномоченного лица СД @fond_info varchar(255), -- дата и номер правил фонда @control_info varchar(255), -- местонахождение и тел. УК @lic_no varchar(255), -- лицензия УК @lic_autor varchar(255) -- лицензирующий орган select @srez_date_now=convert(varchar(10),@srez_date,104) select @rep_out_date='20:00 '+.DATE_TO_REP(@srez_date,'"') select @fond_name=/*(case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' +*/ t_partners.partner_name /*+ '"'*/, @fond_info=isnull(.DATE_TO_REP(t_partners.regist_sertificate_date,'"'),'')+' №'+isnull(t_partners.regist_sertificate_no,''), @buch_name=t_partners_jur.j_bookkeeper_name, @control_name=uk.partner_name, @head_name=uk_jur.j_head_last_name, @head_staff=uk_jur.j_head_staff, @control_info=isnull(uk.jur_code,'')+', '+isnull(uk.juraddress,'')+'. Тел. '+isnull(uk.partner_phone,'-') from t_partners, t_partners_jur, td_pay_fond, t_partners_jur uk_jur, t_partners uk where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners.id = t_partners_jur.id and td_pay_fond.ctrl_comp_id = uk_jur.id and uk.id = uk_jur.id select @sd_name=t_item2class.code from t_item2class, t_classes, t_classvalues, tb_contracts, td_depo_docs where upper(t_classes.code) = 'AUTHORIZED_PERSON' and t_classes.id = t_classvalues.class_id and upper(t_classvalues.code) = 'SD_AUTHORIZED_PERSON' and t_item2class.value_id = t_classvalues.id and t_item2class.item_id = tb_contracts.id and td_depo_docs.owner_id = @fond_id and td_depo_docs.id = tb_contracts.id and tb_contracts.dog_type_id = 4 -- договор со спецдепом (5010) and .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id,'FUND_CONTRACTS') and @srez_date between tb_contracts.dogexec_begin_date and isnull(tb_contracts.dogexec_end_date,dateadd(dd,1,@srez_date)) if isnull(@sd_name,'') = '' select @sd_name=max(t_partners_jur.j_head_last_name) from t_partners_jur, tb_contracts, td_depo_docs where td_depo_docs.owner_id = @fond_id and td_depo_docs.id = tb_contracts.id and tb_contracts.dog_type_id = 4 -- договор со спецдепом (5010) and tb_contracts.client_id = t_partners_jur.id and .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id,'FUND_CONTRACTS') and @srez_date between tb_contracts.dogexec_begin_date and isnull(tb_contracts.dogexec_end_date,dateadd(dd,1,@srez_date)) select @lic_no=max('№'+isnull(t_licence.lic_no,'')+ ', выдана '+ isnull(.DATE_TO_REP(t_licence.lic_date,'"'),'')), @lic_autor=isnull(max(t_licence.lic_autor),'Лицензирующий орган') from td_pay_fond, t_licence where td_pay_fond.id = @fond_id and td_pay_fond.ctrl_comp_id = t_licence.partner_id and t_licence.activity_id = 4 -- лицензия на упр. ПИФ (4500) and .ITEMS_EXISTS_BY_TYPE(t_licence.id,'ACTIVITY_LICENCE') if @lic_autor <> 'Лицензирующий орган' select @lic_autor='Лицензия выдана - '+@lic_autor select @lic_autor='('+@lic_autor+')' select @srez_date_last=convert(varchar(10),tp_pif_srez.srez_date,104) from tp_pif_srez where .ITEMS_EXISTS_BY_TYPE(tp_pif_srez.id,'PIF_SREZ') and tp_pif_srez.fond_id = @fond_id and tp_pif_srez.id = @startsrez_id if isnull(@srez_date_last,'') = '' select @srez_date_last='01.01.1980' select @sid as sid, @srez_date_now as srez_date_now, @srez_date_last as srez_date_last, @rep_out_date as rep_out_date, @fond_name as fond_name, @control_name as control_name, @head_name as head_name, @head_staff as head_staff, @buch_name as buch_name, @sd_name as sd_name, @fond_info as fond_info, @control_info as control_info, @lic_no as lic_no, @lic_autor as lic_autor .END $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_2005_LIST) name=Отчет Справка СЧА (2005) - перечень class=4 filter=null target_state= uo=null dw=d_pif_scha_2005_list procedure=ap_pif_scha_2005_list patterns=null user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130926) create procedure dbo.%PROC% @sid varchar(30) = null as 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 121,' - удостоверенные закладными','121' union select 130,'Денежные требования по обязательствам из кредитных договоров, по которым кредиты предоставлены для '+ 'уплаты цены по договорам участия в долевом строительстве объектов недвижимого имущества','130' union select 140,'Доли в российских обществах с ограниченной ответственностью','140' union select 150,'Недвижимое имущество, находящееся на территории Российской Федерации - всего, в том числе:','150' union select 151,' - объекты незавершенного строительства','151' 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 200,'Имущественные права по обязательствам из инвестиционных договоров','200' union select 210,'Проектно-сметная документация','210' union select 220,'Иное имущество','220' union select 230,'Дебиторская задолженность - всего, в том числе:','230' union select 231,' - средства, находящиеся у профессиональных участников рынка ценных бумаг','231' union select 232,' - дебиторская задолженность по сделкам купли-продажи имущества','232' union select 233,' - дебиторская задолженность по процентному (купонному) доходу по денежным средствам на счетах, во вкладах и по ценным бумагам','233' union select 234,' - прочая дебиторская задолженность','234' union select 240,'Итого сумма активов: (строки 010 + 020 + 030 + 040 + 050 + 060 + 070 + 080 + 090 + 100 + 110 +'+ ' 120 + 130 + 140 + 150 + 160 + 170 + 180 + 190 + 200 + 210 + 220 + 230)','240' 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,'Стоимость чистых активов: (строка 240 - строка 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') /* if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'PIF_OTHER_RESERVE','IN_SCHA')='IN_SCHA' select @acc962_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') -- счет 96.2 по новому плану else select @acc962_id = -1 */ .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_PORTFOLIO') 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 (Денежные требования по обеспеченным ипотекой обязательствам) update #assets set row=120 where acc_id = @acc583_id and #assets.asset_type_id = @value_money_claims_mort_liab_id -- 121 (Денежные требования по обеспеченным ипотекой обязательствам (удостоверенные закладными) update #assets set row=121 where acc_id = @acc583_id and #assets.asset_type_id = @value_money_claims_mort_liab_mort_id -- 130 (Денежные требования по Обязательствам их кредитных договоров) update #assets set row=130 where acc_id = @acc583_id and #assets.asset_type_id = @value_money_claims_cred_contract_id -- 140 (Доли в российских ООО) update #assets set row=140 where acc_id = @acc583_id and #assets.asset_type_id = @value_part_of_ooo_id -- 150 (Недвижимое имущество на терр. РФ) update #assets set row=150 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_rf_id -- 151 (Объекты незавершенного строительства на терр. РФ) update #assets set row=151 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_under_constr_rf_id -- 160 (Недвижимое имущество на терр. РФ) update #assets set row=160 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_foreign_id -- 161 (Объекты незавершенного строительства на терр. РФ) update #assets set row=161 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_under_constr_foreign_id -- 170 (Имущественные права на имущество на терр. РФ) update #assets set row=170 where acc_id = @acc583_id and #assets.asset_type_id = @value_vested_interests_rf_id -- 171 (Право аренды недвижимого имущества на терр. РФ) update #assets set row=171 where acc_id = @acc583_id and #assets.asset_type_id = @value_tenant_right_immovables_rf_id -- 180 (Имущественные права на имущество на терр. РФ) update #assets set row=180 where acc_id = @acc583_id and #assets.asset_type_id = @value_vested_interests_foreign_id -- 181 (Право аренды недвижимого имущества на терр. РФ) update #assets set row=181 where acc_id = @acc583_id and #assets.asset_type_id = @value_tenant_right_immovables_foreign_id -- 190 (Имущественные права по договорам участия) update #assets set row=190 where acc_id = @acc583_id and #assets.asset_type_id = @value_interest_contract_id -- 200 (Имущественные права по инвестиционным договорам) update #assets set row=200 where acc_id = @acc583_id and #assets.asset_type_id = @value_interest_contract_investment_id -- 210 (Проектно-сметная док-ция) update #assets set row=210 where acc_id in (@acc011_id, @acc081_id, @acc583_id) and #assets.asset_type_id = @value_building_docs_id -- 220 (Иное имущество) update #assets set row=220 where acc_id = @acc583_id and #assets.asset_type_id = @value_other_id -- 230 (Деб.задолженность (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 = 230 -- 230 (Деб.задолженность (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 = 230 -- 231 (Проф.участники (now) update #lines set sum_now=isnull(#lines.sum_now,0)+isnull((select sum(b.saldo_deb) 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 (/*230,*/ 231) -- 231 (Проф.участники (last) update #lines set sum_last=isnull(#lines.sum_last,0)+isnull((select sum(b.saldo_deb) 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 (/*230,*/ 231) -- 232 (Сделки по купли-продаже имущества (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 = 232 -- 232 (Сделки по купли-продаже имущества (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 = 232 -- 233-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 = 233 -- 233-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 = 233 -- 233-2 (НКД по котировкам (в оценку по 233 (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 (230, 233) -- 233-2 (НКД по котировкам (в оценку по 233 (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 (230, 233) -- 234-1 (Прочая деб. задолженность (now, last) update #lines set sum_now=(select isnull(sum_now,0) from #lines where row = 230) - (select sum(isnull(sum_now,0)) from #lines where row in (231, 232, 233)), sum_last=(select isnull(sum_last,0) from #lines where row = 230) - (select sum(isnull(sum_last,0)) from #lines where row in (231, 232, 233)) where row = 234 -- -- Итого -- -- Итого в отчет (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 -- 120 (Итого 120 + 121 (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum_now from #lines where row = 121),0), sum_last=isnull(sum_last,0)+isnull((select sum_last from #lines where row = 121),0) where row = 120 -- 150 (Итого 150 + 151 (now, last) update #lines set sum_now=isnull(sum_now,0)+isnull((select sum_now from #lines where row = 151),0), sum_last=isnull(sum_last,0)+isnull((select sum_last from #lines where row = 151),0) where row = 150 -- 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 -- 240 (Итого сумма активов (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)),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)),0) where row = 240 -- 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 (Итого 240 - 300 (now, last) update #lines set sum_now=isnull(((select isnull(sum_now,0) from #lines where row = 240) - (select isnull(sum_now,0) from #lines where row = 330)),0), sum_last=isnull(((select isnull(sum_last,0) from #lines where row = 240) - (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 $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_2006) name=Отчет Справка СЧА (2006) class=5 filter=null target_state= uo=uo_print dw=d_pif_scha_2006_rep procedure=ap_pif_scha_2006_rep patterns=null user_define=1 isvisible=0 istab=0 posx=null posy=null width=null height=null proc_text=$TEXT(14130926) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS declare @srez_date_now varchar(10), -- дата справки @srez_date_last varchar(10), -- дата предыдущей справки @rep_out_date varchar(30), -- дата определения стоимости @fond_name varchar(255), -- название фонда @control_name varchar(255), -- название УК @head_name varchar(255), -- ФИО уполномоченного лица УК @head_staff varchar(255), -- должность уполномоченного лица УК @buch_name varchar(255), -- ФИО бухгалтера @sd_name varchar(255), -- ФИО уполномоченного лица СД @fond_info varchar(255), -- дата и номер правил фонда @control_info varchar(255), -- местонахождение и тел. УК @lic_no varchar(255), -- лицензия УК @lic_autor varchar(255) -- лицензирующий орган select @srez_date_now=convert(varchar(10),@srez_date,104) select @rep_out_date='20:00 '+.DATE_TO_REP(@srez_date,'"') select @fond_name=/*(case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' +*/ t_partners.partner_name /*+ '"'*/, @fond_info=isnull(.DATE_TO_REP(t_partners.regist_sertificate_date,'"'),'')+' №'+isnull(t_partners.regist_sertificate_no,''), @buch_name=t_partners_jur.j_bookkeeper_name, @control_name=uk.partner_name, @head_name=uk_jur.j_head_last_name, @head_staff=uk_jur.j_head_staff, @control_info=isnull(uk.jur_code,'')+', '+isnull(uk.juraddress,'')+'. Тел. '+isnull(uk.partner_phone,'-') from t_partners, t_partners_jur, td_pay_fond, t_partners_jur uk_jur, t_partners uk where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners.id = t_partners_jur.id and td_pay_fond.ctrl_comp_id = uk_jur.id and uk.id = uk_jur.id select @sd_name=t_item2class.code from t_item2class, t_classes, t_classvalues, tb_contracts, td_depo_docs where upper(t_classes.code) = 'AUTHORIZED_PERSON' and t_classes.id = t_classvalues.class_id and upper(t_classvalues.code) = 'SD_AUTHORIZED_PERSON' and t_item2class.value_id = t_classvalues.id and t_item2class.item_id = tb_contracts.id and td_depo_docs.owner_id = @fond_id and td_depo_docs.id = tb_contracts.id and tb_contracts.dog_type_id = 4 -- договор со спецдепом (5010) and .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id,'FUND_CONTRACTS') and @srez_date between tb_contracts.dogexec_begin_date and isnull(tb_contracts.dogexec_end_date,dateadd(dd,1,@srez_date)) if isnull(@sd_name,'') = '' select @sd_name=max(t_partners_jur.j_head_last_name) from t_partners_jur, tb_contracts, td_depo_docs where td_depo_docs.owner_id = @fond_id and td_depo_docs.id = tb_contracts.id and tb_contracts.dog_type_id = 4 -- договор со спецдепом (5010) and tb_contracts.client_id = t_partners_jur.id and .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id,'FUND_CONTRACTS') and @srez_date between tb_contracts.dogexec_begin_date and isnull(tb_contracts.dogexec_end_date,dateadd(dd,1,@srez_date)) select @lic_no=max('№'+isnull(t_licence.lic_no,'')+ ', выдана '+ isnull(.DATE_TO_REP(t_licence.lic_date,'"'),'')), @lic_autor=isnull(max(t_licence.lic_autor),'Лицензирующий орган') from td_pay_fond, t_licence where td_pay_fond.id = @fond_id and td_pay_fond.ctrl_comp_id = t_licence.partner_id and t_licence.activity_id = 4 -- лицензия на упр. ПИФ (4500) and .ITEMS_EXISTS_BY_TYPE(t_licence.id,'ACTIVITY_LICENCE') if @lic_autor <> 'Лицензирующий орган' select @lic_autor='Лицензия выдана - '+@lic_autor select @lic_autor='('+@lic_autor+')' select @srez_date_last=convert(varchar(10),tp_pif_srez.srez_date,104) from tp_pif_srez where .ITEMS_EXISTS_BY_TYPE(tp_pif_srez.id,'PIF_SREZ') and tp_pif_srez.fond_id = @fond_id and tp_pif_srez.id = @startsrez_id if isnull(@srez_date_last,'') = '' select @srez_date_last='01.01.1980' select @sid as sid, @srez_date_now as srez_date_now, @srez_date_last as srez_date_last, @rep_out_date as rep_out_date, @fond_name as fond_name, @control_name as control_name, @head_name as head_name, @head_staff as head_staff, @buch_name as buch_name, @sd_name as sd_name, @fond_info as fond_info, @control_info as control_info, @lic_no as lic_no, @lic_autor as lic_autor .END $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_2006_LIST) name=Отчет Справка СЧА (2006) - перечень class=4 filter=null target_state= uo=null dw=d_pif_scha_2006_list procedure=ap_pif_scha_2006_list patterns=null user_define=1 isvisible=1 istab=0 posx=null posy=null width=null height=null proc_text=$TEXT(14130926) 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=1 where acc_id in (@acc011_id,@acc081_id) and #assets.asset_type_id = @value_building_rf_id -- 161 (Объекты незавершенного строительства на терр. РФ) update #assets set row=151 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 $ENDTEXT(14130926) $ENDFORM $FORM(PIF_SCHA_CH_2005) name=Отчет об изменении СЧА (2005) class=5 filter=null target_state= uo=uo_print dw=d_pif_scha_ch_2005 procedure=ap_pif_scha_ch_2005_rep patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS declare @srez_date_now varchar(10), -- дата справки @srez_date_last varchar(10), -- дата предыдущей справки @rep_out_date varchar(30), -- дата определения стоимости @fond_name varchar(255), -- название фонда @control_name varchar(255), -- название УК @head_name varchar(255), -- ФИО уполномоченного лица УК @head_staff varchar(255), -- должность уполномоченного лица УК @buch_name varchar(255), -- ФИО бухгалтера @sd_name varchar(255), -- ФИО уполномоченного лица СД @fond_info varchar(255), -- дата и номер правил фонда @control_info varchar(255), -- местонахождение и тел. УК @lic_no varchar(255) -- лицензия УК select @srez_date_now=convert(varchar(10),@srez_date,104) select @rep_out_date='20:00 '+.DATE_TO_REP(@srez_date,'"') select @fond_name=(case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"', @fond_info=isnull(.DATE_TO_REP(t_partners.regist_sertificate_date,'"'),'')+' №'+isnull(t_partners.regist_sertificate_no,''), @buch_name=t_partners_jur.j_bookkeeper_name, @control_name=uk.partner_name, @head_name=uk_jur.j_head_last_name, @head_staff=uk_jur.j_head_staff, @control_info=isnull(uk.jur_code,'')+', '+isnull(uk.juraddress,'')+'. Тел. '+isnull(uk.partner_phone,'-') from t_partners, t_partners_jur, td_pay_fond, t_partners_jur uk_jur, t_partners uk where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners.id = t_partners_jur.id and td_pay_fond.ctrl_comp_id = uk_jur.id and uk.id = uk_jur.id select @sd_name=t_item2class.code from t_item2class, t_classes, t_classvalues, tb_contracts, td_depo_docs where upper(t_classes.code) = 'AUTHORIZED_PERSON' and t_classes.id = t_classvalues.class_id and upper(t_classvalues.code) = 'SD_AUTHORIZED_PERSON' and t_item2class.value_id = t_classvalues.id and t_item2class.item_id = tb_contracts.id and td_depo_docs.owner_id = @fond_id and td_depo_docs.id = tb_contracts.id and tb_contracts.dog_type_id = 4 -- договор со спецдепом (5010) and .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id,'FUND_CONTRACTS') and @srez_date between tb_contracts.dogexec_begin_date and isnull(tb_contracts.dogexec_end_date,dateadd(dd,1,@srez_date)) if isnull(@sd_name,'') = '' select @sd_name=max(t_partners_jur.j_head_last_name) from t_partners_jur, tb_contracts, td_depo_docs where td_depo_docs.owner_id = @fond_id and td_depo_docs.id = tb_contracts.id and tb_contracts.dog_type_id = 4 -- договор со спецдепом (5010) and tb_contracts.client_id = t_partners_jur.id and .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id,'FUND_CONTRACTS') and @srez_date between tb_contracts.dogexec_begin_date and isnull(tb_contracts.dogexec_end_date,dateadd(dd,1,@srez_date)) select @lic_no=max('№'+isnull(t_licence.lic_no,'')+ ', выдана '+ isnull(.DATE_TO_REP(t_licence.lic_date,'"'),'')) from td_pay_fond, t_licence where td_pay_fond.id = @fond_id and td_pay_fond.ctrl_comp_id = t_licence.partner_id and t_licence.activity_id = 4 -- лицензия на упр. ПИФ (4500) and .ITEMS_EXISTS_BY_TYPE(t_licence.id,'ACTIVITY_LICENCE') select @srez_date_last=convert(varchar(10),tp_pif_srez.srez_date,104) from tp_pif_srez where .ITEMS_EXISTS_BY_TYPE(tp_pif_srez.id,'PIF_SREZ') and tp_pif_srez.fond_id = @fond_id and tp_pif_srez.id = @startsrez_id if isnull(@srez_date_last,'') = '' select @srez_date_last='01.01.1980' select @sid as sid, @srez_date_now as srez_date_now, @srez_date_last as srez_date_last, @rep_out_date as rep_out_date, @fond_name as fond_name, @control_name as control_name, @head_name as head_name, @head_staff as head_staff, @buch_name as buch_name, @sd_name as sd_name, @fond_info as fond_info, @control_info as control_info, @lic_no as lic_no .END $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SCHA_CH_2005_DET) name=Отчет об изменении СЧА (2005) - перечень class=4 filter=null target_state= uo=null dw=d_pif_scha_ch_2005_det procedure=ap_pif_scha_ch_2005_det patterns=null user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) create procedure dbo.%PROC% @sid varchar(30) = null as declare @action_id numeric(18,0), @id numeric(18,0), @user_id numeric(18,0), @state_id numeric(18,0), @new_state_id numeric(18,0), @type_id numeric(18,0) select @action_id=%ACTION_ID% select @id=convert(numeric(18,0),@sid) .CHECK_USER .GET_PROPS create table #report( rorder int not null, rname varchar(255) null, rcode varchar(50) null, rsum decimal(18,4) null ) declare @fund_plan_id numeric(18,0), @acc861_id numeric(18,0), @acc863_id numeric(18,0), @acc864_id numeric(18,0), @acc865_id numeric(18,0), @acc961_id numeric(18,0), @acc962_id numeric(18,0), @acc963_id numeric(18,0), @acc911_id numeric(18,0), @acc912_id numeric(18,0), @acc913_id numeric(18,0), @acc914_id numeric(18,0), @acc915_id numeric(18,0), @acc916_id numeric(18,0), @acc917_id numeric(18,0), @acc766_id numeric(18,0), @acc862_id numeric(18,0), @acc7642_id numeric(18,0), @acc7641_id numeric(18,0), @acc5810_id numeric(18,0) declare @cur_plan_id numeric(18,0), @rsum money, @last_srez_date datetime, @cur_partner2plan numeric(18,0), @cur_partners_subconto numeric(18,0), @cur_paydocs_subconto numeric(18,0), @cur_pifdocs_subconto numeric(18,0), @expenses_calc96 money, @expenses_calc86 money select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @acc861_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.1') select @acc863_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.3') select @acc864_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.4') select @acc865_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.5') select @acc911_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.1') select @acc912_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.2') select @acc913_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.3') select @acc914_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.4') select @acc915_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.5') select @acc916_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.6') select @acc917_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.7') select @acc961_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @acc963_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @acc766_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.6') select @acc862_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.2') -- это 86.2 по-новому select @acc861_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.1') select @acc7642_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.4.2') select @acc7641_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.4.1') select @acc5810_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'58.10') --.GET_CLASS_VALUE_CODE_FOR_ITEM_D(@fond_id,'PIF_OTHER_RESERVE','NOT_IN_SCHA',@srez_date) --if @class_value_ok = 1 select @acc962_id=.SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') -- сие счет 96.2 по новому плану --else -- select @acc962_id=-1 select @cur_plan_id=.ARG_PLAN('PIF_ACCOUNT') select @cur_partner2plan=(select t_plans2partner.id from t_plans2partner, t_items,t_states where t_plans2partner.plan_id = @cur_plan_id and t_plans2partner.partner_id = @fond_id and t_plans2partner.id = t_items.id and t_items.state_id = t_states.id and t_states.class_id = 0) if @cur_partner2plan is null .EXIT_MESSAGE('Для заданного фонда не найден план счетов PIF_ACCOUNT') 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 @last_srez_date=(select srez_date from tp_pif_srez where tp_pif_srez.id = @startsrez_id) -- insert #report (rorder,rname,rcode) select 10, 'Стоимость чистых активов на начало отчетного периода', '010' union select 20, 'Размещение акций акционерного инвестиционного фонда '+ '(выдача инвестиционных паев паевого инвестиционного фонда)', '020' union select 30, 'Выкуп или приобретение акций акционерного инвестиционного фонда'+ '(погашение инвестиционных паев паевого инвестиционного фонда)', '030' union select 40, 'Обмен инвестиционных паев данного паевого инвестиционного фонда '+ 'на инвестиционные паи других паевых фондов', '040' union select 50, 'Обмен инвестиционных паев других паевых инвестиционных фондов '+ 'на инвестиционные паи данного паевого фонда', '050' union select 60, 'Выплата дохода от доверительного управления закрытым паевым инвестиционным фондом', '060' union select 70, 'Изменение стоимости чистых активов в результате операций с активами акционерного инвестиционного фонда '+ '(активами паевого инвестиционного фонда) и изменения стоимости активов фонда', '070' union select 80, 'Стоимость чистых активов на конец отчетного периода (строки 010 + 020 - 030 - 040 + 050 - 060 +(-) 070)', '080' -- 010 (СЧА на начало периода) update #report set rsum=(select scha_sum from tp_pif_srez where tp_pif_srez.id = @startsrez_id) where rorder = 10 -- 020 (Выдача паев) update #report set rsum=isnull((select sum(obor_cred) from tp_pif_srez_balance where srez_id = @id and tp_pif_srez_balance.acc_id = @acc861_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')), 0) where rorder = 20 -- 020 (Уменьшаем сумму на размер оборотов по передаче паев) update #report set rsum=isnull(rsum,0)-isnull((select sum(ai.row_sum) from tp_pif_srez_add_info ai where ai.srez_id = @id and ai.row_code in ('PAYS_EXCHANGE_OUT','PAYS_MOVES_SUM') and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where rorder = 20 -- 030 (Погашение паев) update #report set rsum=isnull((select sum(obor_deb) from tp_pif_srez_balance where srez_id = @id and tp_pif_srez_balance.acc_id = @acc861_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')), 0) where rorder = 30 -- 30 (Уменьшаем сумму на размер оборотов по передаче паев) update #report set rsum=rsum-isnull((select sum(ai.row_sum) from tp_pif_srez_add_info ai where ai.srez_id = @id and ai.row_code in ('PAYS_EXCHANGE','PAYS_MOVES_SUM') and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where rorder = 30 if @acc865_id is not null update #report set rsum=isnull(rsum,0) + isnull((select sum(obor_deb) - sum(obor_cred) from tp_pif_srez_balance where srez_id = @id and tp_pif_srez_balance.acc_id = @acc865_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')), 0) where rorder = 30 -- 040 (Обмен паев фонда, на паи других фондов) update #report set rsum=isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id = @id and ai.row_code = 'PAYS_EXCHANGE' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where rorder = 40 select @rsum=0 -- 050 (Обмен паев других фондов, на паи данного фонда) update #report set rsum=isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id = @id and ai.row_code = 'PAYS_EXCHANGE_OUT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where rorder = 50 select @rsum=isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_SALE_PROCEEDS' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) select @rsum=isnull(@rsum,0) - isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_SALE_EXPENSES' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) select @rsum=isnull(@rsum,0) + isnull( (select sum(b.obor_cred) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc912_id,@acc913_id,@acc914_id,@acc911_id,@acc915_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) -(select sum(b.obor_deb) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc912_id,@acc913_id,@acc914_id,@acc911_id,@acc915_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) ,0) select @rsum=isnull(@rsum,0) + isnull((select sum(p.coupon_sum) from tp_pif_srez_portfolio p where p.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')),0) - isnull((select sum(p.coupon_sum) from tp_pif_srez_portfolio p where p.srez_id=@startsrez_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')),0) select @expenses_calc96=isnull((select sum(b.obor_cred) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) +isnull((select sum(b.obor_deb) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc962_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) -isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='OTHER_RESERVE_FROM_76.8' and isnull(ai.row_sum,0)>0 and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) select @expenses_calc86=isnull((select sum(b.obor_deb) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc862_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) if isnull(@expenses_calc96,0) <= isnull(@expenses_calc86,0) select @rsum=@rsum - isnull(@expenses_calc96,0) else select @rsum=isnull(@expenses_calc86,0) select @rsum=isnull(@rsum,0) + isnull((select sum(b.obor_cred) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc864_id,@acc916_id,@acc917_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) select @rsum=isnull(@rsum,0) - isnull((select sum(b.obor_deb) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc864_id,@acc916_id,@acc917_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) select @rsum=isnull(@rsum,0) + isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_SALES_PNKD_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) select @rsum=isnull(@rsum,0) + isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_OVERVALUE_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) select @rsum=isnull(@rsum,0)+isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='OTHER_RESERVE_OVER_76.8' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) -isnull((select b.obor_deb-b.obor_cred from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc766_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) select @rsum=isnull(@rsum,0)+ isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) select @rsum=isnull(@rsum,0)-isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @startsrez_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) update #report set rsum=isnull(@rsum,0) where rorder=70 -- update #report set rsum=(-1)*rsum where rorder in (30,40) -- 080 update #report set rsum=(select sum(isnull(rsum,0)) from #report where rorder <> 80) where rorder = 80 update #report set rsum=(-1)*rsum where rorder in (30,40,60) -- Итого в отчет select rorder as rorder, rname as rname, rcode as rcode, rsum as rsum from #report order by rorder $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SCHA_CH_42) name=Отчет об изменении СЧА class=5 filter=null target_state= uo=uo_print dw=d_pif_scha_ch_42 procedure=ap_30000000003494592 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) 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 .GET_PROPS if @startsrez_id is null .EXIT_MESSAGE('Не задан начальный срез') declare @avg_scha money select @avg_scha = ((select scha_sum from tp_pif_srez where id=@startsrez_id) + @scha_sum)/2.0 declare @fond_name varchar(255) select @fond_name = partner_name from t_partners where t_partners.id = @fond_id declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @sid, @srez_date, @fond_name, @srez_date_b, @avg_scha, @head_name, @buch_name End $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SCHA_CH_42_DET) name=Отчет об изменении СЧА - перечень class=4 filter=null target_state= uo=null dw=d_pif_scha_ch_42_det procedure=ap_pif_scha_ch_42_det patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) 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 select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .GET_PROPS create table #report( rorder int not null, rname varchar(255) null, rcode varchar(50) null, rsum decimal(18,4) null) declare @fund_plan_id numeric, @srez_e_id numeric, --end_of_period_srez @acc861_id numeric, @acc862_id numeric, @acc863_id numeric, @acc864_id numeric, @acc865_id numeric, @acc961_id numeric, @acc962_id numeric, @acc963_id numeric, @acc911_id numeric, @acc912_id numeric, @acc913_id numeric, @acc914_id numeric, @acc915_id numeric, @acc916_id numeric, @acc917_id numeric, @acc766_id numeric, @acc768_id numeric declare @rsum money select @srez_e_id=@id select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @acc861_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.1') select @acc862_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.2') select @acc863_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.3') select @acc864_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.4') select @acc865_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'86.5') select @acc911_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.1') select @acc912_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.2') select @acc913_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.3') select @acc914_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.4') select @acc915_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.5') select @acc916_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.6') select @acc917_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.7') select @acc961_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @acc962_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') select @acc963_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @acc766_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.6') select @acc768_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.8') -- insert #report (rorder,rname,rcode) select 10, 'Стоимость чистых активов на начало отчетного периода', '010' union select 20, 'Выдача инвестиционных паев', '020' union select 30, 'Погашение инвестиционных паев', '030' union select 40, 'Обмен инвестиционных паев', '040' union select 50, 'Изменение стоимости чистых активов в результате операций с имуществом фонда', '050' union select 60, 'Изменение стоимости чистых активов в результате изменения стоимости имущества фонда', '060' union select 70, 'Стоимость чистых активов на конец отчетного периода (строки 010 + 020 - 030 - 040 +(-) 050 +(-) 060)', '070' -- 010 update #report set rsum=(select scha_sum from tp_pif_srez where tp_pif_srez.id = @startsrez_id) where rorder=10 -- 020 update #report set rsum=isnull((select sum(obor_cred) from tp_pif_srez_balance where srez_id = @id and tp_pif_srez_balance.acc_id = @acc861_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')), 0) where rorder=20 -- -Передача паев update #report set rsum=rsum - (select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='PAYS_MOVES_SUM' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where rorder=20 -- *** 040 - погашения по обмену select @rsum=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='PAYS_EXCHANGE' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) update #report set rsum=@rsum where rorder=40 -- 030 update #report set rsum=isnull((select sum(obor_deb) from tp_pif_srez_balance where srez_id = @id and tp_pif_srez_balance.acc_id = @acc861_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')), 0) where rorder=30 -- -Передача паев update #report set rsum=rsum - (select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='PAYS_MOVES_SUM' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where rorder=30 if @acc865_id is not null update #report set rsum=rsum + isnull((select sum(obor_deb) - sum(obor_cred) from tp_pif_srez_balance where srez_id = @id and tp_pif_srez_balance.acc_id = @acc865_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')), 0) where rorder=30 update #report set rsum=rsum - (select rsum from #report where rorder=40) where rorder=30 -- 050 -- собираем по отчету о приросте -- отчет о приросте 010 - 020 update #report set rsum=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_SALE_PROCEEDS' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where rorder=50 update #report set rsum=rsum - (select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_SALE_EXPENSES' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where rorder=50 -- отчет о приросте +100 +110 +120 update #report set rsum=rsum + (select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc912_id,@acc913_id,@acc914_id,@acc911_id,@acc915_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where rorder=50 --04/02/05 update #report set rsum=rsum + (select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO'))- (select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@startsrez_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')) where rorder=50 -- end of 04/02/05 -- отчет о приросте -170 -------------------------------- declare @expenses_calc96 money, @expenses_calc86 money --select @expenses_calc=.GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'PIF_CTRL_EXPENSES_CALC','OBOR_CRED_96_1_3+OBOR_DEB_96_2') --'OBOR_CRED_96_1_3+OBOR_DEB_96_2' select @expenses_calc96 = (select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE'))+ (select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc962_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE'))- isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='OTHER_RESERVE_FROM_76.8' and isnull(ai.row_sum,0)>0 and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) --'OBOR_DEB_86_2' select @expenses_calc86= (select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc862_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) if isnull(@expenses_calc96,0)<=isnull(@expenses_calc86,0) update #report set rsum=rsum - isnull(@expenses_calc96,0) where rorder=50 else update #report set rsum=isnull(@expenses_calc86,0) where rorder=50 -------------------------------------------- ---------------------------------------------------- -- отчет о приросте +180 update #report set rsum=rsum + (select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc864_id,@acc916_id,@acc917_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where rorder=50 -- отчет о приросте -190 update #report set rsum=rsum - (select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id in (@acc864_id,@acc916_id,@acc917_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where rorder=50 --Результат от ПНКД при продаже ЦБ update #report set rsum=rsum + (select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_SALES_PNKD_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where rorder=50 -- 050 - переоценка -- добавлено 12.01.05 update #report set rsum=rsum + isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='STOCK_OVERVALUE_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where rorder=50 --???? 04/02/05 - подгонка стр. 50 update #report set rsum=rsum +isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@id and ai.row_code='OTHER_RESERVE_OVER_76.8' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0)- isnull((select isnull(b.obor_deb,0)-isnull(b.obor_cred,0) from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id=@acc766_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where rorder=50 --end of ???? 04/02/05 - подгонка стр. 50 -- 060 select @rsum=0 select @rsum = isnull((select sum(isnull(stock_sum,0)) - sum(isnull(bal_sum,0)) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) select @rsum = @rsum - isnull((select sum(isnull(stock_sum,0)) - sum(isnull(bal_sum,0)) from tp_pif_srez_portfolio where srez_id = @startsrez_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) update #report set rsum=@rsum where rorder=60 -- update #report set rsum=(-1)*rsum where rorder in (30,40) -- 070 update #report set rsum=(select sum(isnull(rsum,0)) from #report where rorder between 10 and 60) where rorder=70 update #report set rsum=(-1)*rsum where rorder in (30,40) -- select rorder, rname, rcode, rsum from #report order by rorder $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SREZ_CHANGE4PAY) name=х_Отчет о приросте (уменьшении) СЧА на один пай class=5 filter=null target_state= uo=uo_print dw=d_pif_srez_change4pay procedure=ap_10000000000088861 patterns=GENERIC_VIEW_ITEM user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) 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 .GET_PROPS if @startsrez_id is null .EXIT_MESSAGE('Не задан начальный срез') declare @fond_name varchar(255) declare @stock_price_beg money declare @price_change money declare @change_persent money declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @stock_price_beg = stock_price from tp_pif_srez where id = @startsrez_id if @stock_price_beg is null .EXIT_MESSAGE('Не указан начальный срез') if (@stock_price_beg = 0) .EXIT_MESSAGE('Не расчитана стоимость пая на начало периода') /* Прирост стоимости */ select @price_change = @stock_price - @stock_price_beg /* Процент прироста */ select @change_persent = (@stock_price/@stock_price_beg - 1) * 100 select @fond_name = partner_name from t_partners where t_partners.id = @fond_id select @sid, @srez_date, @fond_name, convert(decimal(18,4), @stock_price_beg) as stock_price_beg, convert(decimal(18,4), @stock_price) as stock_price, convert(decimal(18,4), @price_change) as price_change, convert(decimal(18,4), @change_persent) as change_persent, @srez_date_b, @head_name, @buch_name End $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SREZ_CHANGE_LIST) name=х_Перечень к отчету об изменении ЧА - старый class=4 filter=null target_state= uo=null dw=d_pif_srez_change_list procedure=ap_pif_srez_change_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) 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 .GET_PROPS create table #report( rorder int null, rname varchar(255) null, rcode varchar(50) null, rsum decimal(18,4) null) declare @fund_plan_id numeric declare @acc_id numeric select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') declare @dox money declare @ras money declare @act money declare @sum_total money declare @sum_pay money declare @pay_b money declare @pay_e money select @pay_b = (select scha_sum from tp_pif_srez where tp_pif_srez.id = @startsrez_id) insert into #report values(1, 'ЧИСТЫЕ АКТИВЫ НА НАЧАЛО ПЕРИОДА:', '010', @pay_b) insert into #report values(2, '', null, null) insert into #report values(3, 'ИЗМЕНЕНИЕ АКТИВОВ В РЕЗУЛЬТАТЕ ОПЕРАЦИЙ', null, null) insert into #report values(4, '', null, null) /* Прирост или уменьшение стоимости имущества Фонда от реализации активов */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.1') select @dox = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) -- and t_accounts.acc_num_eff_rep like '.96.3.1.%'), 0) /* Проценты по депозитам */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.2') select @dox = @dox + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Проценты по облигациям */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.5') select @dox = @dox + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Накопленный купонный доход */ select @dox = @dox + isnull((select sum(coupon_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) /* Уплаченный накопленный купонный доход */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.6') select @dox = @dox - 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Дивиденды */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.3') select @dox = @dox + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочий прирост (уменьшение) имущества */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.6') select @dox = @dox + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Проценты по остаткам на расчетном счете */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.7') select @dox = @dox + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Курсовые (суммовые) разницы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.4') select @dox = @dox + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочие доходы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.6') select @dox = @dox + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв */ /* Резерв на оплату услуг управляющей компании */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @ras = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв на прочие резервы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') select @ras = @ras + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв на SD,SR */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @ras = @ras + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Курсовые (суммовые) разницы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.4') select @ras = @ras + isnull((select sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочие расходы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.7') select @ras = @ras + isnull((select sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) insert into #report values(3, 'прирост (уменьшение) стоимости имущества фонда от', '020', (@dox - @ras)) insert into #report values(4, 'реализации активов и инвестиционного дохода за', null, null) insert into #report values(5, 'вычетом резерва и прочих расходов (потерь) за', null, null) insert into #report values(6, 'счет имущества фонда', null, null) insert into #report values(7, '', null, null) /* Разница отклонений оценочной стоимости от балансовой */ select @act = isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) select @act = @act - isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @startsrez_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) insert into #report values(10, 'прирост (уменьшение) стоимости имущества фонда от', '021', @act) insert into #report values(11, 'переоценки активов', null, null) insert into #report values(12, '', null, null) select @sum_total = @dox - @ras + @act insert into #report values(13, 'Итого прирост (уменьшение) стоимости имущества фонда от', '030', @sum_total) insert into #report values(14, 'операционной деятельности', null, null) insert into #report values(15, '(строки 020 + 021)', null, null) select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.1') select @sum_pay = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) insert into #report values(19, '', null, null) insert into #report values(20, 'ИЗМЕНЕНИЕ АКТИВОВ В РЕЗУЛЬТАТЕ ОПЕРАЦИЙ С ПАЯМИ', '040', @sum_pay) insert into #report values(29, '', null, null) insert into #report values(30, 'ИЗМЕНЕНИЕ АКТИВОВ ЗА ПЕРИОД', '050', (@sum_total + @sum_pay)) insert into #report values(31, '(строки 030 + 040))', null, null) select @pay_e = @pay_b + @sum_total + @sum_pay insert into #report values(39, '', null, null) insert into #report values(40, 'ЧИСТЫЕ АКТИВЫ НА КОНЕЦ ПЕРИОДА:', '060', @pay_e) insert into #report values(41, '(строки 010 + 050))', null, null) select * from #report End $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SREZ_CHANGE_REPORT) name=х_Отчет об изменении чистых активов - старый class=5 filter=null target_state= uo=uo_print dw=d_pif_srez_change_report procedure=ap_10000000000088863 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130928) 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 .GET_PROPS if @startsrez_id is null .EXIT_MESSAGE('Не задан начальный срез') declare @avg_scha money select @avg_scha = ((select scha_sum from tp_pif_srez where id=@startsrez_id) + @scha_sum)/2.0 declare @fond_name varchar(255) select @fond_name = partner_name from t_partners where t_partners.id = @fond_id declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @sid, @srez_date, @fond_name, @srez_date_b, @avg_scha, @head_name, @buch_name End $ENDTEXT(14130928) $ENDFORM $FORM(PIF_SREZ_CONFORM_INT_LIST1) name=таблица 1, фонд интервальный, справка к отчету о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_int_list1 procedure=ap_pif_srez_conform_int_list1 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) create table #report ( emmitent_id numeric null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) create table #result ( group_id int null, emmitent_id_s varchar(30) null, emi_name varchar(255) null, rsum money null, rpersent decimal(18,8) null, rdate datetime null, rlevel decimal(18,8) null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') insert into #report( emmitent_id, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and not exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='STOCK_EMITENT_TYPE' and v.value_code in ('STOCK_GOS_PARTNER','STOCK_SUB_FED') and v.class_type_id=t.id) /* not exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_GOV') */ group by td_stock_emis.emmitent_id select @level=0.15 if exists(select 1 from #report where rpersent>=@level) insert #result select 1, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id and rpersent>=@level else insert #result select 1, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(decimal(18,8), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel delete #report insert into #report( emmitent_id, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and not (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) group by td_stock_emis.emmitent_id select @level=0.2 if exists(select 1 from #report where rpersent>=@level) insert #result select 2, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id and rpersent>=@level else insert #result select 2, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(decimal(18,8), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel drop table #report select * from #result drop table #result end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_INT_LIST2) name=таблица 2, фонд интервальный, справка к отчету о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_int_list2 procedure=ap_pif_srez_conform_int_list2 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) select @level = 0.2 create table #report ( emmitent_id numeric null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') insert into #report( emmitent_id, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='STOCK_EMITENT_TYPE' and v.value_code='STOCK_FOREIGN_PARTNER' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_FRGN') */ group by td_stock_emis.emmitent_id if (select sum(rpersent) from #report)>=@level select convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info where #report.emmitent_id = td_emitent_info.id else select convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(decimal(18,4), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_INT_LIST3) name=таблица 3, фонд интервальный, справка о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_int_list3 procedure=ap_pif_srez_conform_int_list3 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) select @level = 0.65 create table #report ( emmitent_id numeric null, stock_id numeric null, stock_rate decimal(18,8) null, rate_place_id numeric null, stock_calc decimal(18,8) null, calc_place_id numeric null, stock_qty money null, bal_sum money null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) create table #result ( group_id int null, emmitent_id_s varchar(30) null, emi_name varchar(255) null, stock_rate decimal(18,8) null, rate_place_name varchar(255) null, stock_calc decimal(18,8) null, calc_place_name varchar(255) null, stock_qty money null, bal_sum money null, rsum money null, rpersent decimal(18,8) null, rdate datetime null, rlevel decimal(18,8) null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') insert into #report( emmitent_id, stock_id, stock_qty, bal_sum, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, td_stock_emis.id, sum(tp_pif_srez_portfolio.stock_qty), sum(tp_pif_srez_portfolio.bal_sum), sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and not (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) group by td_stock_emis.emmitent_id, td_stock_emis.id if (select sum(rpersent) from #report)>=@level begin declare @cur_stock_id numeric declare @rate_cur_id numeric declare @cur_rate_place_id numeric declare @cur_stock_rate decimal(18,8) declare @cur_stock_rur decimal(36,12) declare @rur_cur_id numeric declare @cur_rate_date datetime declare @class_value_code varchar(255) declare @class_comment varchar(255) declare @rate_value decimal(18,8) declare @rate_date datetime select @rur_cur_id = .CUR('RUR') declare rep_cur cursor for select stock_id from #report for update open rep_cur fetch rep_cur into @cur_stock_id while .CURSOR_STATE=0 begin exec ap_getclassvalue_code @cur_stock_id, 'STOCK_RATE_PLACE', null, @fond_id, @class_value_code out, @class_comment out if @class_value_code is not null select @cur_rate_place_id = max(td_rate_places.id) from td_rate_places where upper(td_rate_places.place_code) = upper(@class_value_code) and .ITEMS_EXISTS(td_rate_places.id) if @cur_rate_place_id is null .EXIT_MESSAGE('Не задана площадка котировок') select @cur_stock_rate=null, @cur_rate_date=null, @rate_cur_id=null select @cur_stock_rate=tb_stock_rates.stock_rate, @cur_rate_date=tb_stock_rates.rate_date, @rate_cur_id=tb_stock_rates.rate_cur_id from tb_stock_rates where tb_stock_rates.rate_place_id=@cur_rate_place_id and tb_stock_rates.stock_rate<>0 and tb_stock_rates.rate_type=1 and tb_stock_rates.stock_id=@cur_stock_id and .ITEMS_EXISTS(tb_stock_rates.id) and tb_stock_rates.rate_date=(select max(tb_stock_rates.rate_date) from tb_stock_rates where tb_stock_rates.rate_place_id=@cur_rate_place_id and tb_stock_rates.rate_date<=@srez_date and tb_stock_rates.stock_rate<>0 and tb_stock_rates.rate_type=1 and tb_stock_rates.stock_id=@cur_stock_id and .ITEMS_EXISTS(tb_stock_rates.id)) if @rate_cur_id is null select @rate_cur_id=(select td_rate_places.cur_id from td_rate_places where id=@cur_rate_place_id) if @cur_stock_rate is not null begin if @rur_cur_id=@rate_cur_id select @cur_stock_rur=@cur_stock_rate else begin .CONVERT_SUM_DEC(@rate_cur_id, @rur_cur_id, @srez_date, 0, @cur_stock_rate, @cur_stock_rur, @rate_value, @rate_date) end .PIF_ROUND_RATE(@fond_id, @cur_stock_rur, @cur_stock_rur) end else select @cur_stock_rur = null update #report set stock_rate=convert(decimal(18,8),@cur_stock_rur), rate_place_id=@cur_rate_place_id where current of rep_cur fetch rep_cur into @cur_stock_id end close rep_cur .DEALLOCATE rep_cur insert #result select 1, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.stock_rate, td_rate_places.place_name, convert(decimal(18,8),null), convert(varchar(255),null), #report.stock_qty, #report.bal_sum, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info, td_rate_places where #report.emmitent_id=td_emitent_info.id and td_rate_places.id=#report.rate_place_id end else insert #result select 1, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(decimal(18,8), null) as stock_rate, convert(varchar(255), null) as rate_place_name, convert(decimal(18,8),null) as calc_rate, convert(varchar(255),null) as calc_place_name, convert(money, null) as stock_qty, convert(money, null) as bal_sum, convert(money, null) as rsum, convert(decimal(18,8), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel insert #result select 2, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(decimal(18,8), null) as stock_rate, convert(varchar(255), null) as rate_place_name, convert(decimal(18,8),null) as calc_rate, convert(varchar(255),null) as calc_place_name, convert(money, null) as stock_qty, convert(money, null) as bal_sum, convert(money, null) as rsum, convert(decimal(18,8), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel drop table #report select * from #result drop table #result end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_INT_LIST4) name=таблица 4, фонд интервальный, справка о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_int_list4 procedure=ap_pif_srez_conform_int_list4 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) create table #report ( emmitent_id numeric null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) create table #result ( group_id int null, emmitent_id_s varchar(30) null, emi_name varchar(255) null, rsum money null, rdate datetime null, rlevel decimal(18,8) null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') if exists(select 1 from #report) insert #result select 1, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, @level*100 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 1, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 2, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 2, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 3, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 3, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 4, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 4, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 5, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 5, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 6, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 6, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 7, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 7, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 8, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 8, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 9, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 9, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 10, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 10, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel drop table #report select * from #result drop table #result end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_OPEN_LIST1) name=таблица 1, фонд открытый, справка об инвес. вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_open_list1 procedure=ap_pif_srez_conform_open_list1 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) select @level = 0.15 create table #report ( emmitent_id numeric null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') insert into #report( emmitent_id, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and not exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='STOCK_EMITENT_TYPE' and v.value_code in ('STOCK_GOS_PARTNER','STOCK_SUB_FED') and v.class_type_id=t.id) /* not exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_GOV') */ group by td_stock_emis.emmitent_id if exists(select 1 from #report where rpersent>=@level) select convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info where rpersent>=@level and #report.emmitent_id = td_emitent_info.id else select convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(decimal(18,4), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_OPEN_LIST2) name=таблица 2, фонд открытый, справка о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_open_list2 procedure=ap_pif_srez_conform_open_list2 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) select @level = 0.2 create table #report ( emmitent_id numeric null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') insert into #report( emmitent_id, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='STOCK_EMITENT_TYPE' and v.value_code='STOCK_FOREIGN_PARTNER' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_FRGN') */ group by td_stock_emis.emmitent_id if (select sum(rpersent) from #report)>=@level select convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info where #report.emmitent_id = td_emitent_info.id else select convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(decimal(18,4), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_OPEN_LIST3) name=таблица 3, фонд открытый, справка о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_open_list3 procedure=ap_pif_srez_conform_open_list3 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130929) 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 .GET_PROPS declare @level decimal(18,8) select @level = 0.1 create table #report ( emmitent_id numeric null, stock_id numeric null, stock_rate decimal(18,8) null, rate_place_id numeric null, rate_date datetime null, stock_qty money null, stock_sum money null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) /* if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') */ insert into #report( emmitent_id, stock_id, stock_qty, rsum, rpersent, rdate) select td_stock_emis.emmitent_id, td_stock_emis.id, sum(tp_pif_srez_portfolio.stock_qty), sum(tp_pif_srez_portfolio.stock_sum), sum(round(tp_pif_srez_portfolio.stock_sum/convert(decimal(18,8),@activ_sum),8)), @srez_date from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS(tp_pif_srez_portfolio.id) and td_stock_emis.id=tp_pif_srez_portfolio.stock_id and not (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) group by td_stock_emis.emmitent_id, td_stock_emis.id if (select sum(rpersent) from #report)>=@level begin declare @cur_stock_id numeric declare @rate_cur_id numeric declare @cur_rate_place_id numeric declare @cur_stock_rate decimal(18,8) declare @cur_stock_rur decimal(36,12) declare @rur_cur_id numeric declare @cur_rate_date datetime declare @class_value_code varchar(255) declare @class_comment varchar(255) declare @rate_value decimal(18,8) declare @rate_date datetime select @rur_cur_id = .CUR('RUR') declare rep_cur cursor for select stock_id from #report for update open rep_cur fetch rep_cur into @cur_stock_id while .CURSOR_STATE=0 begin exec ap_getclassvalue_code @cur_stock_id, 'STOCK_RATE_PLACE', null, @fond_id, @class_value_code out, @class_comment out if @class_value_code is not null select @cur_rate_place_id = max(td_rate_places.id) from td_rate_places where upper(td_rate_places.place_code) = upper(@class_value_code) and .ITEMS_EXISTS(td_rate_places.id) if @cur_rate_place_id is null .EXIT_MESSAGE('Не задана площадка котировок') select @cur_stock_rate=null, @cur_rate_date=null, @rate_cur_id=null select @cur_stock_rate=tb_stock_rates.stock_rate, @cur_rate_date=tb_stock_rates.rate_date, @rate_cur_id=tb_stock_rates.rate_cur_id from tb_stock_rates where tb_stock_rates.rate_place_id=@cur_rate_place_id and tb_stock_rates.stock_rate<>0 and tb_stock_rates.rate_type=1 and tb_stock_rates.stock_id=@cur_stock_id and .ITEMS_EXISTS(tb_stock_rates.id) and tb_stock_rates.rate_date=(select max(tb_stock_rates.rate_date) from tb_stock_rates where tb_stock_rates.rate_place_id=@cur_rate_place_id and tb_stock_rates.rate_date<=@srez_date and tb_stock_rates.stock_rate<>0 and tb_stock_rates.rate_type=1 and tb_stock_rates.stock_id=@cur_stock_id and .ITEMS_EXISTS(tb_stock_rates.id)) if @rate_cur_id is null select @rate_cur_id=(select td_rate_places.cur_id from td_rate_places where id=@cur_rate_place_id) if @cur_stock_rate is not null begin if @rur_cur_id=@rate_cur_id select @cur_stock_rur=@cur_stock_rate else begin .CONVERT_SUM_DEC(@rate_cur_id, @rur_cur_id, @srez_date, 0, @cur_stock_rate, @cur_stock_rur, @rate_value, @rate_date) end if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fond_id,'TYPE_ROUND_RATES_IN_CALC','BEFORE')='BEFORE' begin .PIF_ROUND_RATE(@fond_id, @cur_stock_rur, @cur_stock_rur) end end else select @cur_stock_rur = null update #report set stock_rate=@cur_stock_rur, rate_place_id=@cur_rate_place_id, rate_date=@cur_rate_date, stock_sum=round((convert(decimal(36,12),stock_qty)*@cur_stock_rur),2) where current of rep_cur fetch rep_cur into @cur_stock_id end close rep_cur .DEALLOCATE rep_cur select convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.stock_rate, td_rate_places.place_name, #report.rate_date, #report.stock_qty, #report.stock_sum, #report.rsum, #report.rpersent, #report.rdate, @level*100 from #report, td_emitent_info, td_rate_places where #report.emmitent_id=td_emitent_info.id and td_rate_places.id=#report.rate_place_id end else select convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(decimal(18,8), null) as stock_rate, convert(varchar(255), null) as rate_place_name, convert(datetime, null) as rate_date, convert(money, null) as stock_qty, convert(money, null) as stock_sum, convert(money, null) as rsum, convert(decimal(18,4), null) as rpersent, convert(datetime,null) as rdate, @level*100 as rlevel end $ENDTEXT(14130929) $ENDFORM $FORM(PIF_SREZ_CONFORM_OPEN_LIST4) name=таблица 4, фонд открытый, справка о вложениях class=4 filter=null target_state= uo=null dw=d_pif_srez_conform_open_list4 procedure=ap_pif_srez_conform_open_list4 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130931) 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 .GET_PROPS declare @level decimal(18,8) create table #report ( emmitent_id numeric null, rsum money null, rpersent decimal(18,8) null, rdate datetime null ) create table #result ( group_id int null, emmitent_id_s varchar(30) null, emi_name varchar(255) null, rsum money null, rdate datetime null, rlevel decimal(18,8) null ) if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') select @level=0.25 if exists(select 1 from #report where rpersent>=@level) insert #result select 1, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, @level*100 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id and rpersent>=@level else insert #result select 1, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, @level*100 as rlevel delete #report if exists(select 1 from #report) insert #result select 2, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 2, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 3, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 3, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 4, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 4, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 5, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 5, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 6, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 6, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 7, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 7, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel delete #report if exists(select 1 from #report) insert #result select 8, convert(varchar(30), #report.emmitent_id) as emmitent_id_s, td_emitent_info.emi_name, #report.rsum, #report.rdate, 0 from #report, td_emitent_info where #report.emmitent_id=td_emitent_info.id else insert #result select 8, convert(varchar(30), null) as emmitent_id_s, convert(varchar(255), null) as emi_name, convert(money, null) as rsum, convert(datetime,null) as rdate, 0 as rlevel drop table #report select * from #result drop table #result end $ENDTEXT(14130931) $ENDFORM $FORM(PIF_SREZ_CONFORM_REPORT) name=Отчет об инвестиционных вложениях - Справка к отчету class=5 filter=null target_state= uo=uo_print dw=d_pif_srez_conform_report procedure=ap_10000000000088886 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130931) 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 .GET_PROPS declare @fond_name varchar(255), @fond_type int declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @fond_name = partner_name, @fond_type = (case when fond_type in (1,2) then fond_type else 2 end) from t_partners, td_pay_fond where t_partners.id = @fond_id and td_pay_fond.id = @fond_id select @sid, @srez_date, @fond_name, @fond_type, @head_name, @buch_name End $ENDTEXT(14130931) $ENDFORM $FORM(PIF_SREZ_FILTER) name=Фильтр class=6 filter=null target_state= uo=uo_filter dw=d_pif_sres_filter procedure=ap_10000000000088872 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=2039 height=552 proc_text=$TEXT(14130931) create procedure dbo.%PROC% as begin declare @srez_date_db datetime declare @srez_date_de datetime declare @fond_id numeric declare @remark varchar(255) select @fond_id = .ORGANIZATION select @srez_date_db as srez_date_db, @srez_date_de as srez_date_de, convert(varchar(30), @fond_id) as fond_id_s, @remark as remark, t_partners.partner_short_name as owner_name from t_partners where t_partners.id = @fond_id end $ENDTEXT(14130931) $FILTER(SREZ_DATE) type=2 label=Дата среза prop=SREZ_DATE arg_code=null arg_type=null arg_length=null arg_prec=null arg_scale=null $ENDFILTER $FILTER(REMARK) type=3 label=Комментарий prop=REMARK arg_code=null arg_type=null arg_length=null arg_prec=null arg_scale=null $ENDFILTER $FILTER(FOND_ID) type=1 label=Фонд prop=FOND_ID arg_code=null arg_type=null arg_length=null arg_prec=null arg_scale=null $ENDFILTER $ENDFORM $FORM(PIF_SREZ_INVEST_LIST) name=Отчет об инвестиционных вложениях - перечень class=4 filter=null target_state= uo=null dw=d_pif_fcs_invest_report_list procedure=apt_pif_fcs_invest_report_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130931) 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 .GET_PROPS declare @fund_type numeric select @fund_type = td_pay_fond.fond_type from td_pay_fond where td_pay_fond.id = @fond_id if (@activ_sum is null) or (@activ_sum = 0) .EXIT_MESSAGE('В данном срезе не расчитана стоимость активов') create table #report( rorder int null, rname varchar(255) null, rcode varchar(50) null, rqty money null, rbal money null, rsum money null, rpersent decimal(18,8) null) declare @count integer select @count = 0 declare @sum money declare @sum1 money declare @total money select @total = 0 declare @total_pas money select @total_pas = 0 declare @pay money select @pay = 0 declare @total2pay money select @total2pay = 0 declare @stock_sum money declare @bal_sum money declare @persent decimal(18,8) declare @stock_name varchar(255) declare @s_stock_qty money declare @s_bal_sum money declare @s_stock_sum money declare @s_persent decimal(18,8) declare @ts_stock_qty money declare @ts_bal_sum money declare @ts_stock_sum money declare @ts_persent decimal(18,8) declare @nts_stock_qty money declare @nts_bal_sum money declare @nts_stock_sum money declare @nts_persent decimal(18,8) declare @a_stock_qty money declare @a_bal_sum money declare @a_stock_sum money declare @a_persent decimal(18,8) select @count = @count + 1 insert into #report values(@count, 'КОТИРУЕМЫЕ ЦЕННЫЕ БУМАГИ', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'Акции в том числе', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'привилегированные', null, null, null, null, null) /* Привелегированные акции */ select @s_stock_qty = 0 select @s_bal_sum = 0 select @s_stock_sum = 0 select @s_persent = 0 declare portfolio cursor for select stock_qty, tp_pif_srez_portfolio.stock_sum, bal_sum, round((convert(decimal(18,8),tp_pif_srez_portfolio.stock_sum)/@activ_sum),8) as persent, td_stock_emis.stock_name from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio') and tp_pif_srez_portfolio.stock_id=td_stock_emis.id and (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='SHARE_TYPE' and v.value_code='API_SHARE' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_PRIV') */ order by td_stock_emis.stock_name open portfolio fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name while .CURSOR_STATE=0 begin select @s_stock_qty = @s_stock_qty + @stock_qty select @s_bal_sum = @s_bal_sum + @bal_sum select @s_stock_sum = @s_stock_sum + @stock_sum select @s_persent = @s_persent + @persent select @count = @count + 1 insert into #report values(@count, @stock_name, null, @stock_qty, @bal_sum, @stock_sum, @persent) fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name end close portfolio .DEALLOCATE portfolio /* End Привелегированные акции*/ select @count = @count + 1 insert into #report values(@count, 'обыкновенные', null, null, null, null, null) /* Обыкновенные акции */ declare portfolio cursor for select stock_qty, tp_pif_srez_portfolio.stock_sum, bal_sum, round((convert(decimal(18,8),tp_pif_srez_portfolio.stock_sum)/@activ_sum),8) as persent, td_stock_emis.stock_name from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio') and tp_pif_srez_portfolio.stock_id=td_stock_emis.id and (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='SHARE_TYPE' and v.value_code='AOI_SHARE' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_NORM') */ order by td_stock_emis.stock_name open portfolio fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name while .CURSOR_STATE=0 begin select @s_stock_qty = @s_stock_qty + @stock_qty select @s_bal_sum = @s_bal_sum + @bal_sum select @s_stock_sum = @s_stock_sum + @stock_sum select @s_persent = @s_persent + @persent select @count = @count + 1 insert into #report values(@count, @stock_name, null, @stock_qty, @bal_sum, @stock_sum, @persent) fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name end close portfolio .DEALLOCATE portfolio /* End Обыкновенные акции*/ select @count = @count + 1 insert into #report values(@count, 'Итого:', '010', @s_stock_qty, @s_bal_sum, @s_stock_sum, @s_persent) select @ts_stock_qty = @s_stock_qty select @ts_bal_sum = @s_bal_sum select @ts_stock_sum = @s_stock_sum select @ts_persent = @s_persent select @s_stock_qty = 0 select @s_bal_sum = 0 select @s_stock_sum = 0 select @s_persent = 0 select @count = @count + 1 insert into #report values(@count, 'Облигации', null, null, null, null, null) /* Облигации */ declare portfolio cursor for select stock_qty, tp_pif_srez_portfolio.stock_sum, bal_sum, round((convert(decimal(18,8),tp_pif_srez_portfolio.stock_sum)/@activ_sum),8) as persent, td_stock_emis.stock_name from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio') and tp_pif_srez_portfolio.stock_id=td_stock_emis.id and (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='STOCK_TYPE' and v.value_code='OBLIG' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_OBL') */ order by td_stock_emis.stock_name open portfolio fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name while .CURSOR_STATE=0 begin select @s_stock_qty = @s_stock_qty + @stock_qty select @s_bal_sum = @s_bal_sum + @bal_sum select @s_stock_sum = @s_stock_sum + @stock_sum select @s_persent = @s_persent + @persent select @count = @count + 1 insert into #report values(@count, @stock_name, null, @stock_qty, @bal_sum, @stock_sum, @persent) fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name end close portfolio .DEALLOCATE portfolio /* End Облигации*/ select @count = @count + 1 insert into #report values(@count, 'Итого:', '020', @s_stock_qty, @s_bal_sum, @s_stock_sum, @s_persent) select @ts_stock_qty = @ts_stock_qty + @s_stock_qty select @ts_bal_sum = @ts_bal_sum + @s_bal_sum select @ts_stock_sum = @ts_stock_sum + @s_stock_sum select @ts_persent = @ts_persent + @s_persent select @count = @count + 1 insert into #report values(@count, 'ИТОГО КОТИРУЕМЫХ', '030', @ts_stock_qty, @ts_bal_sum, @ts_stock_sum, @ts_persent) select @count = @count + 1 insert into #report values(@count, 'ЦЕННЫХ БУМАГ (строки 010 + 020)', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, null, null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'НЕКОТИРУЕМЫЕ ЦЕННЫЕ БУМАГИ', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'Акции в том числе', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'привилегированные', null, null, null, null, null) /* Привелегированные акции */ select @s_stock_qty = 0 select @s_bal_sum = 0 select @s_stock_sum = 0 select @s_persent = 0 declare portfolio cursor for select stock_qty, tp_pif_srez_portfolio.stock_sum, bal_sum, round((convert(decimal(18,8),tp_pif_srez_portfolio.stock_sum)/@activ_sum),8) as persent, td_stock_emis.stock_name from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio') and tp_pif_srez_portfolio.stock_id=td_stock_emis.id and not (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='SHARE_TYPE' and v.value_code='API_SHARE' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_PRIV') */ order by td_stock_emis.stock_name open portfolio fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name while .CURSOR_STATE=0 begin select @s_stock_qty = @s_stock_qty + @stock_qty select @s_bal_sum = @s_bal_sum + @bal_sum select @s_stock_sum = @s_stock_sum + @stock_sum select @s_persent = @s_persent + @persent select @count = @count + 1 insert into #report values(@count, @stock_name, null, @stock_qty, @bal_sum, @stock_sum, @persent) fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name end close portfolio .DEALLOCATE portfolio /* End Привелегированные акции*/ select @count = @count + 1 insert into #report values(@count, 'обыкновенные', null, null, null, null, null) /* Обыкновенные акции */ declare portfolio cursor for select stock_qty, tp_pif_srez_portfolio.stock_sum, bal_sum, round((convert(decimal(18,8),tp_pif_srez_portfolio.stock_sum)/@activ_sum),8) as persent, td_stock_emis.stock_name from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio') and tp_pif_srez_portfolio.stock_id=td_stock_emis.id and not (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='SHARE_TYPE' and v.value_code='AOI_SHARE' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_NORM') */ order by td_stock_emis.stock_name open portfolio fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name while .CURSOR_STATE=0 begin select @s_stock_qty = @s_stock_qty + @stock_qty select @s_bal_sum = @s_bal_sum + @bal_sum select @s_stock_sum = @s_stock_sum + @stock_sum select @s_persent = @s_persent + @persent select @count = @count + 1 insert into #report values(@count, @stock_name, null, @stock_qty, @bal_sum, @stock_sum, @persent) fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name end close portfolio .DEALLOCATE portfolio /* End Обыкновенные акции*/ select @count = @count + 1 insert into #report values(@count, 'Итого:', '040', @s_stock_qty, @s_bal_sum, @s_stock_sum, @s_persent) select @nts_stock_qty = @s_stock_qty select @nts_bal_sum = @s_bal_sum select @nts_stock_sum = @s_stock_sum select @nts_persent = @s_persent select @s_stock_qty = 0 select @s_bal_sum = 0 select @s_stock_sum = 0 select @s_persent = 0 select @count = @count + 1 insert into #report values(@count, 'Облигации', null, null, null, null, null) /* Облигации */ declare portfolio cursor for select stock_qty, tp_pif_srez_portfolio.stock_sum, bal_sum, round((convert(decimal(18,8),tp_pif_srez_portfolio.stock_sum)/@activ_sum),8) as persent, td_stock_emis.stock_name from tp_pif_srez_portfolio, td_stock_emis where tp_pif_srez_portfolio.srez_id=@id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio') and tp_pif_srez_portfolio.stock_id=td_stock_emis.id and not (tp_pif_srez_portfolio.rate_date=@srez_date and tp_pif_srez_portfolio.rate_date is not null and tp_pif_srez_portfolio.stock_rate<>0 and tp_pif_srez_portfolio.is_rate=1) and exists(select 1 from t_nclass_value2item vi, t_nclass_types t, t_nclass_values v where vi.item_id=td_stock_emis.id and v.id=vi.class_value_id and t.id=vi.class_type_id and t.class_code='STOCK_TYPE' and v.value_code='OBLIG' and v.class_type_id=t.id) /* and exists(select 1 from t_item2class, t_classvalues, t_classes where t_item2class.item_id=td_stock_emis.id and t_classvalues.id=t_item2class.value_id and t_classes.id=t_classvalues.class_id and t_classes.code='STOCK_TYPES_PIF' and t_classvalues.code='STOCK_OBL') */ order by td_stock_emis.stock_name open portfolio fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name while .CURSOR_STATE=0 begin select @s_stock_qty = @s_stock_qty + @stock_qty select @s_bal_sum = @s_bal_sum + @bal_sum select @s_stock_sum = @s_stock_sum + @stock_sum select @s_persent = @s_persent + @persent select @count = @count + 1 insert into #report values(@count, @stock_name, null, @stock_qty, @bal_sum, @stock_sum, @persent) fetch portfolio into @stock_qty, @stock_sum, @bal_sum, @persent, @stock_name end close portfolio .DEALLOCATE portfolio /* End Облигации*/ select @count = @count + 1 insert into #report values(@count, 'Итого:', '050', @s_stock_qty, @s_bal_sum, @s_stock_sum, @s_persent) select @nts_stock_qty = @nts_stock_qty + @s_stock_qty select @nts_bal_sum = @nts_bal_sum + @s_bal_sum select @nts_stock_sum = @nts_stock_sum + @s_stock_sum select @nts_persent = @nts_persent + @s_persent select @count = @count + 1 insert into #report values(@count, 'ИТОГО НЕКОТИРУЕМЫХ', '060', @nts_stock_qty, @nts_bal_sum, @nts_stock_sum, @nts_persent) select @count = @count + 1 insert into #report values(@count, 'ЦЕННЫХ БУМАГ (строки 040 + 050)', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, null, null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'ПРОЧИЕ ФИНАНСОВЫЕ ВЛОЖЕНИЯ', '070', null, null, null, null) select @a_stock_qty = @ts_stock_qty + @nts_stock_qty select @a_bal_sum = @ts_bal_sum + @nts_bal_sum select @a_stock_sum = @ts_stock_sum + @nts_stock_sum select @a_persent = @ts_persent + @nts_persent select @count = @count + 1 insert into #report values(@count, 'ИТОГО ФИНАНСОВЫХ ВЛОЖЕНИЙ', '080', @a_stock_qty, @a_bal_sum, @a_stock_sum, @a_persent) select @count = @count + 1 insert into #report values(@count, '(строки 030 + 060 + 070)', null, null, null, null, null) if @fund_type in (2,3) begin /* Интервальный фонд*/ select @count = @count + 1 insert into #report values(@count, 'ОБЪЕКТЫ НЕДВИЖИМОСТИ', null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'ИТОГО ОБЪЕКТОВ НЕДВИЖИМОСТИ', '090', null, null, null, null) select @count = @count + 1 insert into #report values(@count, null, null, null, null, null, null) select @count = @count + 1 insert into #report values(@count, 'ИТОГО ВСЕХ ИНВЕСТИЦИЙ', '100', @a_stock_qty, @a_bal_sum, @a_stock_sum, @a_persent) select @count = @count + 1 insert into #report values(@count, '(строки 080 + 090)', null, null, null, null, null) end select * from #report End $ENDTEXT(14130931) $ENDFORM $FORM(PIF_SREZ_INVEST_REPORT) name=Отчет об инвестиционных вложениях class=5 filter=null target_state= uo=uo_print dw=d_pif_fcs_invest_report_edit procedure=ap_10000000000088877 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130931) 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 .GET_PROPS declare @fond_name varchar(255) select @fond_name = partner_name from t_partners where t_partners.id = @fond_id declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @sid, @srez_date, @fond_name, @head_name, @buch_name End $ENDTEXT(14130931) $ENDFORM $FORM(PIF_SREZ_LIST) name=Список class=4 filter=PIF_SREZ_FILTER target_state= uo=uo_list dw=d_pif_sres_list procedure=ap_10000000000088878 patterns=GENERIC_VIEW_LIST user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=2834 height=1428 proc_text=$TEXT(14130931) create procedure dbo.%PROC% @sid varchar(30) = null .ARGLIST_FILTER as declare @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric begin set nocount on select @action_id = %ACTION_ID% .CHECK_USER .CHECK_VIEW .ARGCONVERT_FILTER .VIEW_LIST end $ENDTEXT(14130931) $ACTION2RELATION(REL2.PARTNER_CODE) relation=REL2 where=null prop=PARTNER_CODE order=1 alias=partner_code $ENDACTION2RELATION $ACTION2RELATION(REL2.PARTNER_SHORT_NAME) relation=REL2 where=null prop=PARTNER_SHORT_NAME order=3 alias=partner_short_name $ENDACTION2RELATION $ENDFORM $FORM(PIF_SREZ_LIST4QUERY) name=Список срезов class=4 filter=null target_state= uo=uo_list dw=d_pif_sres_list procedure=ap_10000000000088720 patterns=GENERIC_VIEW_LIST user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130932) create procedure dbo.%PROC% @sid varchar(30) = null .ARGLIST_FILTER as declare @action_id numeric, @user_id numeric, @state_id numeric, @type_id numeric begin set nocount on select @action_id = %ACTION_ID% .CHECK_USER .CHECK_VIEW .ARGCONVERT_FILTER .VIEW_LIST end $ENDTEXT(14130932) $ACTION2RELATION(REL2.PARTNER_CODE) relation=REL2 where=null prop=PARTNER_CODE order=null alias=partner_code $ENDACTION2RELATION $ACTION2RELATION(REL2.PARTNER_SHORT_NAME) relation=REL2 where=null prop=PARTNER_SHORT_NAME order=null alias=partner_short_name $ENDACTION2RELATION $FILTER(QUERY_ID) type=11 label=Запрос на срез prop=QUERY_ID arg_code=null arg_type=null arg_length=null arg_prec=null arg_scale=null $ENDFILTER $ENDFORM $FORM(PIF_SREZ_OPER_LIST) name=х_Перечень к отчету об операциях class=4 filter=null target_state= uo=null dw=d_pif_srez_oper_list procedure=ap_pif_srez_oper_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130932) 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 .GET_PROPS create table #report( rorder int null, rname varchar(255) null, rcode varchar(50) null, rsum money null) declare @fund_plan_id numeric declare @acc_id numeric select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') declare @sum money declare @dox money declare @ras money declare @rez money declare @act money declare @total money select @dox = 0 select @ras = 0 select @rez = 0 select @act = 0 select @total = 0 declare @fund_type numeric select @fund_type = td_pay_fond.fond_type from td_pay_fond where td_pay_fond.id = @fond_id if @fund_type in (2,3) begin /* Обработка интервального фонда */ insert into #report values(1, 'Прирост (уменьшение) стомости имущества фонда от реализации активов', null, null) insert into #report values(2, 'в том числе:', null, null) /* Прирост или уменьшение стоимости имущества Фонда от реализации активов */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.1') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) -- and t_accounts.acc_num_eff_rep like '.96.3.1.%'), 0) select @dox = @dox + @sum insert into #report values(3, 'Прирост (уменьшение) стомости имущества фонда от реализации ценных бумаг', '010', @sum) select @sum = 0 /* select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.??') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) */ select @dox = @dox + @sum insert into #report values(4, 'Прирост (уменьшение) стомости имущества фонда от реализации объектов недвижимости', '011', @sum) insert into #report values(5, '', null, null) insert into #report values(10, 'Инвестиционный доход', null, null) insert into #report values(11, 'в том числе:', null, null) /* Проценты по депозитам */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.2') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Проценты по облигациям */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.5') select @sum = @sum + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Накопленный купонный доход */ select @sum = @sum + isnull((select sum(coupon_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) /* Уплаченный накопленный купонный доход */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.6') select @sum = @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @dox + @sum insert into #report values(12, 'проценты (доходы) по облигациям и прочим финансовым вложениям', '020', @sum) /* Дивиденды */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.3') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @dox + @sum insert into #report values(14, 'дивиденды', '021', @sum) insert into #report values(15, '', null, null) /* Прочий прирост (уменьшение) имущества */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.6') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Проценты по остаткам на расчетном счете */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.7') select @sum = @sum + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Курсовые (суммовые) разницы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.4') select @sum = @sum + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочие доходы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.6') select @sum = @sum + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @dox + @sum insert into #report values(16, 'Прочие доходы', '030', @sum) insert into #report values(17, 'Итого (сумма строк 010 - 030)', '040', @dox) insert into #report values(18, '', null, null) insert into #report values(20, 'РАСХОДЫ:', null, null) insert into #report values(21, 'в том числе:', null, null) /* Расчеты с управляющей компанией */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.1.%'), 0) select @ras = @sum insert into #report values(22, 'вознаграждение управляющей компании', '050', @sum) /* Расчеты со специализированным депозитарием */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.2.%'), 0) select @ras = @ras + @sum insert into #report values(23, 'услуги специализированного депозитария', '051', @sum) /* Расчеты со специализированным регистратором */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.3.%'), 0) select @ras = @ras + @sum insert into #report values(24, 'услуги специализированного регистратора', '052', @sum) /* Расчеты с независимым оценщиком */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.17.%'), 0) select @ras = @ras + @sum insert into #report values(25, 'услуги независимого оценщика', '053', @sum) /* Расчеты с аудитором */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.18.%'), 0) select @ras = @ras + @sum insert into #report values(26, 'услуги аудитора', '054', @sum) /* Расчеты по прочим расходам */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.8.%'), 0) select @ras = @ras + @sum insert into #report values(27, '', null, null) insert into #report values(28, 'Прочие расходы', '055', @sum) insert into #report values(29, '', null, null) insert into #report values(30, 'Итого всех расходов связанных с деятельностью фонда (сумма строк 050-055)', '060', @ras) /* Резерв на оплату услуг управляющей компании */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @rez = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв на прочие резервы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') select @rez = @rez + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв на SD,SR... */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @rez = @rez + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) insert into #report values(31, '', null, null) insert into #report values(32, 'Резерв на оплату услуг управляющей компании и иных лиц', '070', @rez) insert into #report values(31, '', null, null) if @ras > @rez begin insert into #report values(32, 'Расходы, связанные с деятельностью фонда,', '080', (@ras - @rez)) insert into #report values(33, 'сверх начисленного резерва на оплату услуг управляющей компании и иных лиц', null, null) end else begin insert into #report values(32, 'Расходы, связанные с деятельностью фонда,', '080', null) insert into #report values(33, 'сверх начисленного резерва на оплату услуг управляющей компании и иных лиц', null, null) end insert into #report values(40, '', null, null) /* Курсовые (суммовые) разницы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.4') select @sum = isnull((select sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочие доходы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.7') select @sum = @sum + isnull((select sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @ras = @ras + @sum insert into #report values(40, 'Прочие расходы (потери) за счет имущества фонда', '090', @sum) insert into #report values(50, '', null, null) select @sum = @dox - @rez - @sum insert into #report values(51, 'Итого прирост (уменьшение) стоимости имущества фонда от', '100', @sum) insert into #report values(52, 'реализации активов и инвестиционного дохода за вычетом резерва и прочих', null, null) insert into #report values(53, 'расходов за счет имущества фонда (стр.040 - стр.070 - стр.090)', null, null) --insert into #report values(54, '', null, null) /* Разница отклонений оценочной стоимости от балансовой */ select @act = isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) select @act = @act - isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @startsrez_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) insert into #report values(61, 'Прирост (уменьшение) стоимости имущества фонда от переоценки активов', '110', @act) insert into #report values(62, '', null, null) insert into #report values(71, 'Итого прирост (уменьшение) стоимости имущества фонда от операционной деятельности', '120', (@sum + @act)) insert into #report values(72, '(стр.100 + стр.110)', null, null) end /* Обработка интервального фонда */ /*************************************************************************************/ else if @fund_type = 1 begin /* Обработка открытого фонда */ /* Прирост или уменьшение стоимости имущества Фонда от реализации активов */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.1') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @sum insert into #report values(1, 'Прирост (уменьшение) стомости имущества фонда от реализации активов', '010', @sum) insert into #report values(5, '', null, null) insert into #report values(10, 'Инвестиционный доход', null, null) insert into #report values(11, 'в том числе:', null, null) /* Проценты по депозитам */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.2') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Проценты по облигациям */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.5') select @sum = @sum + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Накопленный купонный доход */ select @sum = @sum + isnull((select sum(coupon_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) /* Уплаченный накопленный купонный доход */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.6') select @sum = @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @dox + @sum insert into #report values(12, 'проценты (доходы) по облигациям и прочим финансовым вложениям', '020', @sum) /* Дивиденды */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.3') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @dox + @sum insert into #report values(14, 'дивиденды', '021', @sum) insert into #report values(15, '', null, null) /* Прочий прирост (уменьшение) имущества */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.6') select @sum = isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Проценты по остаткам на расчетном счете */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.7') select @sum = @sum + isnull((select sum(obor_cred) - sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Курсовые (суммовые) разницы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.4') select @sum = @sum + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочие доходы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.6') select @sum = @sum + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @dox = @dox + @sum insert into #report values(16, 'Прочие доходы', '030', @sum) insert into #report values(17, 'Итого (сумма строк 010 - 030)', '040', @dox) insert into #report values(18, '', null, null) insert into #report values(20, 'РАСХОДЫ:', null, null) insert into #report values(21, 'в том числе:', null, null) /* Расчеты с управляющей компанией */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.1.%'), 0) select @ras = @sum insert into #report values(22, 'вознаграждение управляющей компании', '050', @sum) /* Расчеты со специализированным депозитарием */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.2.%'), 0) select @ras = @ras + @sum insert into #report values(23, 'услуги специализированного депозитария', '051', @sum) /* Расчеты со специализированным регистратором */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.3.%'), 0) select @ras = @ras + @sum insert into #report values(24, 'услуги специализированного регистратора', '052', @sum) /* Расчеты с аудитором */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.18.%'), 0) select @ras = @ras + @sum insert into #report values(26, 'услуги аудитора', '053', @sum) /* Расчеты по прочим расходам */ select @sum = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.8.%'), 0) /* Расчеты с независимым оценщиком */ select @sum = @sum + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.76.17.%'), 0) select @ras = @ras + @sum insert into #report values(27, '', null, null) insert into #report values(28, 'Прочие расходы', '054', @sum) insert into #report values(29, '', null, null) insert into #report values(30, 'Итого всех расходов связанных с деятельностью фонда (сумма строк 050-054)', '060', @ras) /* Резерв на оплату услуг управляющей компании */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @rez = isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв на прочие резервы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') select @rez = @rez + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Резерв на SD,SR... */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @rez = @rez + isnull((select sum(obor_cred) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) insert into #report values(31, '', null, null) insert into #report values(32, 'Резерв на оплату услуг управляющей компании и иных лиц', '070', @rez) insert into #report values(31, '', null, null) if @ras > @rez begin insert into #report values(32, 'Расходы, связанные с деятельностью фонда,', '080', (@ras - @rez)) insert into #report values(33, 'сверх начисленного резерва на оплату услуг управляющей компании и иных лиц', null, null) end else begin insert into #report values(32, 'Расходы, связанные с деятельностью фонда,', '080', null) insert into #report values(33, 'сверх начисленного резерва на оплату услуг управляющей компании и иных лиц', null, null) end insert into #report values(40, '', null, null) /* Курсовые (суммовые) разницы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.3.4') select @sum = isnull((select sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) /* Прочие доходы */ select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'91.7') select @sum = @sum + isnull((select sum(obor_deb) from tp_pif_srez_balance, t_accounts where srez_id = @id and tp_pif_srez_balance.acc_id = t_accounts.id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) select @ras = @ras + @sum insert into #report values(40, 'Прочие расходы (потери) за счет имущества фонда', '090', @sum) insert into #report values(50, '', null, null) select @sum = @dox - @rez - @sum insert into #report values(51, 'Итого прирост (уменьшение) стоимости имущества фонда от', '100', @sum) insert into #report values(52, 'реализации активов и инвестиционного дохода за вычетом резерва и прочих', null, null) insert into #report values(53, 'расходов за счет имущества фонда (стр.040 - стр.070 - стр.090)', null, null) --insert into #report values(54, '', null, null) /* Разница отклонений оценочной стоимости от балансовой */ select @act = isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) select @act = @act - isnull((select sum(stock_sum) - sum(bal_sum) from tp_pif_srez_portfolio where srez_id = @startsrez_id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')),0) insert into #report values(61, 'Прирост (уменьшение) стоимости имущества фонда от переоценки активов', '110', @act) insert into #report values(62, '', null, null) insert into #report values(71, 'Итого прирост (уменьшение) стоимости имущества фонда от операционной деятельности', '120', (@sum + @act)) insert into #report values(72, '(стр.100 + стр.110)', null, null) end /* Открытый фонд */ select * from #report End $ENDTEXT(14130932) $ENDFORM $FORM(PIF_SREZ_OPER_REPORT) name=х_Отчет об операциях class=5 filter=null target_state= uo=uo_print dw=d_pif_srez_oper_report procedure=ap_10000000000088883 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130932) 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 .GET_PROPS if @startsrez_id is null .EXIT_MESSAGE('Не задан начальный срез') declare @fond_name varchar(255) select @fond_name = partner_name from t_partners where t_partners.id = @fond_id declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @sid, @srez_date, @fond_name, @srez_date_b, @head_name, @buch_name End $ENDTEXT(14130932) $ENDFORM $FORM(PIF_SREZ_PARTNER2DEAL_REP) name=х_Перечень к отчету о задолженностях по сделкам class=4 filter=null target_state= uo=null dw=null procedure=apt_srez_partner2deal_rep patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130932) 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 .GET_PROPS select @srez_date=convert(datetime,convert(varchar,@srez_date,3),3) create table #report( acc_id numeric(18,0) null, partner_id numeric(18,0) null, doc_state int null, -- 1 - все, 2 - с задолженностью doc_type int null, -- 1 - сделка, 2 - платеж doc_id numeric(18,0) null, doc_name varchar(255) null, sum_all money null, sum_yes money null, sum_no money null, sum_d money null, sum_c money null, obl_id numeric(18,0) null, -- id обяз-ва для сквит.с платежем или 1 для взаимозач. date_op datetime null -- дата возникновения задолженности ) create table #opers ( partner_id numeric(18,0) null, doc_id numeric(18,0) null, sum_oper money null, date_oper datetime null) .ID_VAR(@acc_sale_id) .ID_VAR(@acc_buy_id) .ID_VAR(@acc_bs_id) .ID_VAR(@acc_stock_id) .ID_VAR(@acc_unkd_id) .ID_VAR(@acc_pnkd_id) .ID_VAR(@acc_51_id) .ID_VAR(@acc_48_id) .ID_VAR(@pif_plan_id) .ID_VAR(@partner_id) .ID_VAR(@partner_subc_id) .ID_VAR(@partner2plan_id) .MONEY_VAR(@op_saldo_d) .MONEY_VAR(@op_saldo_c) select @pif_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @partner_subc_id=.SUBCTYPE_FROM_CODE('partners') select @partner2plan_id=(select pp.id from t_plans2partner pp where pp.plan_id=@pif_plan_id and pp.partner_id=@fond_id and .ITEMS_EXISTS(pp.id)) if @partner2plan_id is null .EXIT_MESSAGE('Для фонда не найден план счетов PIF_ACCOUNT') select @acc_sale_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'76.5.1') select @acc_buy_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'76.5.2') select @acc_bs_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'76.5.4') select @acc_stock_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'58.1') select @acc_unkd_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'76.6') select @acc_pnkd_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'76.7') select @acc_51_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'51') select @acc_48_id = .SD_ACCID_FROM_EFFNO(@pif_plan_id,'48') -- 76.5.1 -- по продажам -- по поручению 76.5.1 - 48 -- по платежке 51 - 76.5.1 declare cur1 cursor for select b.partner_id from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id = @acc_sale_id and .ITEMS_EXISTS_BY_TYPE(b.id,'pif_srez_partners') for read only open cur1 fetch cur1 into @partner_id while (.CURSOR_STATE=0) begin truncate table #opers -- платежи по продаже insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_all, date_op) select @acc_sale_id, @partner_id, 1, 2, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_sale_id and ol.deb_or_cred=-1 and upper(.ITEM_TYPE_CODE(op.item_id))='SD_PAYBANK_IN' -->> корр c 51 по деб. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id=@acc_51_id and ol2.deb_or_cred=1 and ol2.head_id=ol.head_id) -- поручения на продажу insert into #opers ( partner_id, doc_id, sum_oper, date_oper) select @partner_id, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_sale_id and ol.deb_or_cred=1 -->> корр c 48 по кред. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id in (@acc_48_id, @acc_pnkd_id) and ol2.deb_or_cred=-1 and ol2.head_id=ol.head_id) -- сделки продажи (перерег.сумма) insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_yes, date_op) select @acc_sale_id, @partner_id, 1, 1, d.foundation_id, sum(#opers.sum_oper), max(#opers.date_oper) from #opers, td_depo_docs d where #opers.doc_id=d.id and upper(.ITEM_TYPE_CODE(#opers.doc_id)) in ('D_STOCK_OUT_OTHER_DEPO','D_STOCK_OUT') and #opers.partner_id=@partner_id group by d.foundation_id -- сделки продажи без перерегистрации, но с исполненным обязательством insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_yes) select @acc_sale_id, @partner_id, 1, 1, dd.id, 0 from td_depo_docs dd, tb_baysale_docitems b where dd.id not in (select d.foundation_id from #opers, td_depo_docs d where #opers.doc_id=d.id) and dd.owner_id=@fond_id and dd.id=b.id and b.mode_id in (1,2) and upper(.ITEM_TYPE_CODE(dd.id))='DOG_DEALINGS_SALE' and ((b.organisation_id=@partner_id and b.character_id=2) or (b.contragent_id=@partner_id and b.character_id=1)) and exists (select 1 from tb_plans p, tb_plan_pays pp where p.id=pp.id and p.item_id=dd.id and pp.pay_perpose_id=1 and .ITEMS_EXISTS(p.id) and exists (select 1 from t_operations op where op.item_id=p.id and op.op_date < dateadd(day,1,@srez_date))) fetch cur1 into @partner_id end close cur1 .DEALLOCATE cur1 -- 76.5.2 -- по покупкам -- по поручению 58.1(76.6) - 76.5.2 -- по платежке 76.5.2 - 51 declare cur2 cursor for select b.partner_id from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id = @acc_buy_id and .ITEMS_EXISTS_BY_TYPE(b.id,'pif_srez_partners') for read only open cur2 fetch cur2 into @partner_id while (.CURSOR_STATE=0) begin truncate table #opers -- платежи по покупкам insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_all, date_op) select @acc_buy_id, @partner_id, 1, 2, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_buy_id and ol.deb_or_cred=1 and upper(.ITEM_TYPE_CODE(op.item_id))='SD_PAYBANK_OUT' -->> корр c 51 по кред. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id=@acc_51_id and ol2.deb_or_cred=-1 and ol2.head_id=ol.head_id) -- поручения на покупку insert into #opers ( partner_id, doc_id, sum_oper, date_oper) select @partner_id, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_buy_id and ol.deb_or_cred=-1 -->> корр c 58 по деб. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id in (@acc_stock_id, @acc_unkd_id) and ol2.deb_or_cred=1 and ol2.head_id=ol.head_id) -- сделки покупки (перерег.сумма) insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_yes, date_op) select @acc_buy_id, @partner_id, 1, 1, d.foundation_id, sum(#opers.sum_oper), max(#opers.date_oper) from #opers, td_depo_docs d where #opers.doc_id=d.id and upper(.ITEM_TYPE_CODE(#opers.doc_id)) in ('D_STOCK_IN_OTHER_DEPO_SD','D_STOCK_IN') and #opers.partner_id=@partner_id group by d.foundation_id -- сделки покупки без перерегистрации, но с исполненным обязательством insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_yes) select @acc_buy_id, @partner_id, 1, 1, dd.id, 0 from td_depo_docs dd, tb_baysale_docitems b where dd.id not in (select d.foundation_id from #opers, td_depo_docs d where #opers.doc_id=d.id) and dd.owner_id=@fond_id and dd.id=b.id and b.mode_id in (1,2) and upper(.ITEM_TYPE_CODE(dd.id))='DOG_DEALINGS_BAY' and ((b.organisation_id=@partner_id and b.character_id=2) or (b.contragent_id=@partner_id and b.character_id=1)) and exists (select 1 from tb_plans p, tb_plan_pays pp where p.id=pp.id and p.item_id=dd.id and pp.pay_perpose_id=1 and .ITEMS_EXISTS(p.id) and exists (select 1 from t_operations op where op.item_id=p.id and op.op_date < dateadd(day,1,@srez_date))) fetch cur2 into @partner_id end close cur2 .DEALLOCATE cur2 -- 76.5.4 -- по бирже -- по поручению 76.5.4 - 48 -- по платежке 51 - 76.5.4 declare cur3 cursor for select b.partner_id from tp_pif_srez_balance b where b.srez_id=@id and b.acc_id = @acc_bs_id and .ITEMS_EXISTS_BY_TYPE(b.id,'pif_srez_partners') for read only open cur3 fetch cur3 into @partner_id while (.CURSOR_STATE=0) begin truncate table #opers -- платежи по продаже на биржу insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_all, date_op) select @acc_bs_id, @partner_id, 1, 2, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_bs_id and ol.deb_or_cred=-1 and upper(.ITEM_TYPE_CODE(op.item_id))='SD_PAYBANK_IN' -->> корр c 51 по деб. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id=@acc_51_id and ol2.deb_or_cred=1 and ol2.head_id=ol.head_id) -- платежи по покупкам на бирже insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_all, date_op) select @acc_bs_id, @partner_id, 1, 2, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_bs_id and ol.deb_or_cred=1 and upper(.ITEM_TYPE_CODE(op.item_id))='SD_PAYBANK_OUT' -->> корр c 51 по кред. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id=@acc_51_id and ol2.deb_or_cred=-1 and ol2.head_id=ol.head_id) -- поручения на продажу на бирже insert into #opers ( partner_id, doc_id, sum_oper, date_oper) select @partner_id, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_bs_id and ol.deb_or_cred=1 -->> корр c 48 по кред. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id in (@acc_48_id, @acc_pnkd_id) and ol2.deb_or_cred=-1 and ol2.head_id=ol.head_id) -- поручения на покупку на бирже insert into #opers ( partner_id, doc_id, sum_oper, date_oper) select @partner_id, op.item_id, ol.sum_bal, ol.op_date from t_operations op, t_oper_list ol, t_oper_subconto su where ol.head_id = op.id and ol.id=su.id and su.subconto_type_id=@partner_subc_id and su.item_id=@partner_id and ol.partner2plan_id= @partner2plan_id and ol.op_date < dateadd(day,1,@srez_date) and ol.acc_id = @acc_bs_id and ol.deb_or_cred=-1 -->> корр c 58 по деб. and exists (select 1 from t_oper_list ol2 where ol2.partner2plan_id= @partner2plan_id and ol2.op_date < dateadd(day,1,@srez_date) and ol2.acc_id in (@acc_stock_id, @acc_unkd_id) and ol2.deb_or_cred=1 and ol2.head_id=ol.head_id) -- сделки на бирже (перерег.сумма) insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_yes, date_op) select @acc_bs_id, @partner_id, 1, 1, d.foundation_id, sum(#opers.sum_oper), max(#opers.date_oper) from #opers, td_depo_docs d where #opers.doc_id=d.id and upper(.ITEM_TYPE_CODE(#opers.doc_id)) in ('D_STOCK_OUT_OTHER_DEPO','D_STOCK_OUT','D_STOCK_IN_OTHER_DEPO_SD','D_STOCK_IN') and #opers.partner_id=@partner_id group by d.foundation_id -- сделки на бирже без перерегистрации, но с исполненным обязательством insert into #report ( acc_id, partner_id, doc_state, doc_type, doc_id, sum_yes) select @acc_bs_id, @partner_id, 1, 1, dd.id, 0 from td_depo_docs dd, tb_baysale_docitems b where dd.id not in (select d.foundation_id from #opers, td_depo_docs d where #opers.doc_id=d.id) and dd.owner_id=@fond_id and dd.id=b.id and b.mode_id=3 and upper(.ITEM_TYPE_CODE(dd.id)) in ('DOG_DEALINGS_SALE','DOG_DEALINGS_BUY') and ((b.organisation_id=@partner_id and b.character_id=2) or (b.contragent_id=@partner_id and b.character_id=1)) and exists (select 1 from tb_plans p, tb_plan_pays pp where p.id=pp.id and p.item_id=dd.id and pp.pay_perpose_id=1 and .ITEMS_EXISTS(p.id) and exists (select 1 from t_operations op where op.item_id=p.id and op.op_date < dateadd(day,1,@srez_date))) fetch cur3 into @partner_id end close cur3 .DEALLOCATE cur3 update #report set doc_name=t.type_name+' №'+b.transaction_no+' от '+convert(varchar,b.transaction_date,3) from t_items i, t_types t, tb_baysale_docitems b where #report.doc_id=i.id and i.type_id=t.id and #report.doc_id=b.id and #report.doc_type=1 update #report set doc_name=t.type_name+' №'+p.doc_number+' от '+convert(varchar,p.doc_date,3) from t_items i, t_types t, t_paydocs p where #report.doc_id=i.id and i.type_id=t.id and #report.doc_id=p.id and #report.doc_type=2 -- сумма сделок в валюте платежа (кроме неперерег.предпоставки) update #report set sum_all=b.sum_in_paycur+isnull(b.coupon_account_sum,0)*(1-isnull(b.is_coupon_in_sum,0)) from tb_baysale_docitems b where #report.doc_id=b.id and #report.doc_type=1 and b.sum_in_paycur is not null -- исполненные обязательства по связи с платежами update #report set obl_id=p.id from tb_baysale_docitems b, tb_plans p, tb_plan_pays pp where #report.doc_id=b.id and #report.doc_type=1 and p.id=pp.id and p.item_id=b.id and pp.pay_perpose_id=1 and .ITEMS_EXISTS(p.id) and upper(.ITEM_STATE_CODE(p.id))='EXEC' and (exists (select 1 from t_operations op where op.item_id=p.id and op.op_date < dateadd(day,1,@srez_date)) or not exists (select 1 from t_operations op2 where op2.item_id=p.id)) -- сумма покрытий из исполненных обязательств отобранных сделок, связанных с платежем update #report set sum_yes=(select sum(isnull(pi.covered_sum,0)) from t_pays2items pi, #report r2 where r2.doc_type=1 and r2.partner_id=#report.partner_id and pi.docitem_id=r2.obl_id and pi.paydoc_id=#report.doc_id and .ITEMS_EXISTS(pi.id)) where #report.doc_type=2 -- исполненные обязательства по связи со взаимозачетом update #report set obl_id=1 from tb_baysale_docitems b where #report.doc_id=b.id and #report.doc_type=1 and exists (select 1 from t_operations op where op.item_id=(select max(dp.act_id) from t_dealings2pay dp where dp.dog_id=#report.doc_id and .ITEMS_EXISTS(dp.id)) and op.op_date < dateadd(day,1,@srez_date)) -- update #report set sum_no=sum_all-isnull(sum_yes,0) where sum_all is not null -- для платежей update #report set sum_d=sum_no where #report.doc_type=2 and .ITEM_TYPE_CODE(#report.doc_id)='SD_PAYBANK_OUT' update #report set sum_c=sum_no where #report.doc_type=2 and .ITEM_TYPE_CODE(#report.doc_id)='SD_PAYBANK_IN' -- для исполненных сделок update #report set sum_d=sum_no where #report.doc_type=1 and #report.obl_id is not null and .ITEM_TYPE_CODE(#report.doc_id) = 'DOG_DEALINGS_BAY' update #report set sum_c=sum_no where #report.doc_type=1 and #report.obl_id is not null and .ITEM_TYPE_CODE(#report.doc_id) = 'DOG_DEALINGS_SALE' -- дата возникновения задолженности по оплаченным сделкам, по к-рым еще не было перерегистрации update #report set date_op=op.op_date from t_operations op where #report.doc_type=1 and #report.obl_id is not null and #report.obl_id != 1 and #report.sum_yes=0 and #report.date_op is null and .ITEM_TYPE_CODE(#report.doc_id) in ('DOG_DEALINGS_BAY','DOG_DEALINGS_SALE') and op.item_id=#report.obl_id -- для неисполненных сделок update #report set sum_c=sum_yes where #report.doc_type=1 and #report.obl_id is null and .ITEM_TYPE_CODE(#report.doc_id) = 'DOG_DEALINGS_BAY' update #report set sum_d=sum_yes where #report.doc_type=1 and #report.obl_id is null and .ITEM_TYPE_CODE(#report.doc_id) = 'DOG_DEALINGS_SALE' /* -- test select * from #report select acc_id,partner_id,sum(isnull(sum_d,0))-sum(isnull(sum_c,0)) from #report group by acc_id,partner_id */ select convert(varchar(30),#report.acc_id) as acc_id_s, convert(varchar(30),#report.partner_id) as partner_id_s, t_accounts.acc_name, t_partners.partner_name, #report.doc_type, #report.doc_name, convert(varchar(30),#report.doc_id) as doc_id_s, convert(decimal(18,4),#report.sum_all) as sum_all, convert(decimal(18,4),#report.sum_yes) as sum_yes, convert(decimal(18,4),#report.sum_no) as sum_no, convert(decimal(18,4),#report.sum_c) as sum_c, convert(decimal(18,4),#report.sum_d) as sum_d, #report.date_op as date_op from #report, t_accounts, t_partners where #report.acc_id *= t_accounts.id and #report.partner_id *= t_partners.id and (#report.sum_d>0 or #report.sum_c>0) end $ENDTEXT(14130932) $ENDFORM $FORM(PIF_SREZ_SCHA_LIST) name=х_Перечень Справки СЧА (старый) class=4 filter=null target_state= uo=null dw=null procedure=apt_pif_fcs_scha_report_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130932) 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 .GET_PROPS declare @fund_type numeric select @fund_type = td_pay_fond.fond_type from td_pay_fond where td_pay_fond.id = @fond_id create table #report( rorder int null, rname varchar(255) null, rcode varchar(50) null, rsum .PIF_PAY_TYPE null) declare @fund_plan_id numeric declare @acc_id numeric declare @acc1_id numeric declare @acc2_id numeric declare @acc3_id numeric declare @acc_ts_id numeric declare @acc_proc_id numeric select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') declare @sum money declare @sum1 money declare @total money select @total = 0 declare @total_pas money select @total_pas = 0 declare @pay .PIF_PAY_TYPE declare @total2pay money declare @d_total2pay double precision declare @scha money select @total2pay = 0 select @acc_ts_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.5.4') select @acc_proc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'76.16') if @fund_type in (2,3) begin /* Обработка интервального и закрытого фонда */ select @pay = (select stock_qty from tp_pif_srez where tp_pif_srez.id = @id) insert into #report values(1, 'АКТИВЫ:', null, null) insert into #report values(2, 'Финансовые вложения', null, null) insert into #report values(3, 'в том числе:', null, null) select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.58.1.%'), 0) insert into #report values(4, 'финансовые вложения по балансовой стоимости', '110', @sum) select @sum1 = isnull((select sum(stock_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')), 0) insert into #report values(5, 'отклонение оценочной стоимости от балансовой стоимости', '111', (@sum1 - @sum)) insert into #report values(6, 'Итого (строки 110 + 111)', '112', @sum1) select @total = @total + @sum1 insert into #report values(7, null, null, null) insert into #report values(8, 'Недвижимость', null, null) insert into #report values(9, 'в том числе:', null, null) select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.01.%'), 0) select @sum = @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.08.%'), 0) insert into #report values(9, 'недвижимость по балансовой стоимости', '120', @sum) select @sum1 = @sum insert into #report values(10, 'отклонение оценочной стоимости от балансовой стоимости', '121', (@sum1 - @sum)) insert into #report values(11, 'Итого (строки 120 + 121)', '122', @sum1) select @total = @total + @sum1 insert into #report values(12, null, null, null) select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'58.2') select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id = @acc_id), 0) insert into #report values(13, 'Депозиты', '130', @sum) select @total = @total + @sum select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and (t_accounts.acc_num_eff_rep like '.51.%' or t_accounts.acc_num_eff_rep like '.57.%' or t_accounts.acc_num_eff_rep like '.50.%') ), 0) insert into #report values(14, 'Денежные средства:', '140', @sum) select @total = @total + @sum insert into #report values(15, 'Дебиторская задолженность', null, null) insert into #report values(16, 'в том числе:', null, null) select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.5.%' or t_accounts.id in (@acc_ts_id,@acc_proc_id))) , 0) insert into #report values(17, 'по ценным бумагам', '150', @sum) select @sum1 = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and t_accounts.acc_num_eff_rep like '.76.9.%'), 0) insert into #report values(18, 'проценты и дивиденды (к получению)', '151', @sum1) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.%' or t_accounts.id=@acc_ts_id)), 0) insert into #report values(19, 'с прочими дебиторами', '152', @sum - @sum1) insert into #report values(20, 'Итого (строки 150 + 151 + 152)', '153', @sum) select @total = @total + @sum /* Начисленный купонный доход */ select @sum = isnull((select sum(coupon_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')), 0) insert into #report values(21, 'иные активы', '160', @sum) select @total = @total + @sum insert into #report values(22, 'ИТОГО АКТИВОВ', '170', @total) insert into #report values(29, null, null, null) insert into #report values(30, 'ПАССИВЫ:', null, null) insert into #report values(31, 'Кредиторская задолженность', null, null) insert into #report values(32, 'в том числе:', null, null) select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.5.%' or t_accounts.id in (@acc_ts_id, @acc_proc_id))), 0) insert into #report values(33, 'по ценным бумагам', '180', @sum) select @sum1 = @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and t_accounts.acc_num_eff_rep like '.76.13.'), 0) insert into #report values(34, 'по объектам недвижимости', '181', @sum) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and t_accounts.acc_num_eff_rep like '.76.4.1.%'), 0) insert into #report values(35, 'по размещению паев', '182', @sum) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.4.2.%')), 0) insert into #report values(36, 'по выкупу паев', '183', @sum) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.%' or t_accounts.id=@acc_ts_id)), 0) /* Расчеты с бюджетом 68 счет */ select @sum = @sum + isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.68.%'), 0) insert into #report values(37, 'с прочими ', '184', @sum - @sum1) select @total_pas = @total_pas + @sum insert into #report values(39, 'Итого: (строки 180 + 181 + 182 + 183 + 184)', '185', @sum) insert into #report values(40, null, null, null) select @acc1_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @acc2_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') select @acc3_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id in (@acc1_id,@acc2_id,@acc3_id)), 0) insert into #report values(41, 'Резервы предстоящих расходов и платежей ', '190', @sum) select @total_pas = @total_pas + @sum insert into #report values(42, 'ИТОГО ПАССИВОВ (строки 185 + 190)', '200', @total_pas) select @scha = @total - @total_pas insert into #report values(50, null, null, null) insert into #report values(51, 'ЧИСТЫЕ АКТИВЫ (строки 170 - 200)', '210', @scha) insert into #report values(52, 'КОЛИЧЕСТВО ПАЕВ', '220', @pay) if (@pay = 0) select @d_total2pay = 0 else begin select @d_total2pay = convert(double precision,@scha) / convert(double precision,@pay) end .PIF_ROUND_MONEY(@fond_id,@d_total2pay,@d_total2pay) select @total2pay = convert(money,@d_total2pay) if @total2pay<>@stock_price select @total2pay=@stock_price insert into #report values(53, 'СТОИМОСТЬ ЧИСТЫХ АКТИВОВ НА ОДИН ПАЙ', '230', @total2pay) insert into #report values(55, '(строка 200 / 210)', null, null) end /* Интервальный фонд */ /************************************************************************************/ else if @fund_type = 1 begin /* Обработка открытого фонда */ select @pay = (select stock_qty from tp_pif_srez where tp_pif_srez.id = @id) insert into #report values(1, 'АКТИВЫ:', null, null) insert into #report values(2, 'Финансовые вложения', null, null) insert into #report values(3, 'в том числе:', null, null) select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.58.1.%'), 0) insert into #report values(4, 'финансовые вложения по балансовой стоимости', '110', @sum) select @sum1 = isnull((select sum(stock_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')), 0) insert into #report values(5, 'отклонение оценочной стоимости от балансовой стоимости', '111', (@sum1 - @sum)) insert into #report values(6, 'Итого (строки 110 + 111)', '112', @sum1) select @total = @total + @sum1 insert into #report values(7, null, null, null) select @acc_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'58.2') select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id=@acc_id), 0) insert into #report values(13, 'Депозиты', '120', @sum) select @total = @total + @sum select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and (t_accounts.acc_num_eff_rep like '.51.%' or t_accounts.acc_num_eff_rep like '.57.%' or t_accounts.acc_num_eff_rep like '.50.%') ), 0) insert into #report values(14, 'Денежные средства:', '130', @sum) select @total = @total + @sum insert into #report values(15, 'Дебиторская задолженность', null, null) insert into #report values(16, 'в том числе:', null, null) select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.5.%' or t_accounts.id in (@acc_ts_id,@acc_proc_id))), 0) insert into #report values(17, 'по ценным бумагам', '140', @sum) select @sum1 = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and t_accounts.acc_num_eff_rep like '.76.9.%'), 0) insert into #report values(18, 'по процентам и дивидендам', '141', @sum1) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.%' or t_accounts.id=@acc_ts_id)), 0) insert into #report values(19, 'с прочими дебиторами', '142', @sum - @sum1) insert into #report values(20, 'Итого (строки 140 + 141 + 142)', '143', @sum) select @total = @total + @sum /* Начисленный купонный доход */ select @sum = isnull((select sum(coupon_sum) from tp_pif_srez_portfolio where srez_id = @id and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_portfolio.id,'pif_srez_portfolio')), 0) insert into #report values(21, 'иные активы', '150', @sum) select @total = @total + @sum insert into #report values(22, 'ИТОГО АКТИВОВ', '160', @total) insert into #report values(29, null, null, null) insert into #report values(30, 'ПАССИВЫ:', null, null) insert into #report values(31, 'Кредиторская задолженность', null, null) insert into #report values(32, 'в том числе:', null, null) select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.5.%' or t_accounts.id in (@acc_ts_id, @acc_proc_id))), 0) insert into #report values(33, 'по ценным бумагам', '170', @sum) select @sum1 = @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and t_accounts.acc_num_eff_rep like '.76.4.1.%'), 0) insert into #report values(35, 'по размещению паев', '171', @sum) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.4.2.%')), 0) insert into #report values(36, 'по выкупу паев', '172', @sum) select @sum1 = @sum1 + @sum select @sum = isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_partners') and (t_accounts.acc_num_eff_rep like '.76.%' or t_accounts.id=@acc_ts_id)), 0) /* Расчеты с бюджетом 68 счет */ select @sum = @sum + isnull((select 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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.acc_num_eff_rep like '.68.%'), 0) insert into #report values(37, 'с прочими ', '173', @sum - @sum1) select @total_pas = @total_pas + @sum insert into #report values(39, 'Итого: (строки 170 + 171 + 172 + 173)', '174', @sum) insert into #report values(40, null, null, null) select @acc1_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.1') select @acc2_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.2') select @acc3_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'89.3') select @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 .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance') and t_accounts.id in (@acc1_id,@acc2_id,@acc3_id)), 0) insert into #report values(41, 'Резервы предстоящих расходов и платежей ', '180', @sum) select @total_pas = @total_pas + @sum insert into #report values(42, 'ИТОГО ПАССИВОВ (строки 174 + 180)', '190', @total_pas) select @scha = @total - @total_pas insert into #report values(50, null, null, null) insert into #report values(51, 'ЧИСТЫЕ АКТИВЫ (строки 160 - 190)', '200', @scha) insert into #report values(52, 'КОЛИЧЕСТВО ПАЕВ', '210', @pay) if (@pay = 0) select @d_total2pay = 0 else begin select @d_total2pay = convert(double precision,@scha) / convert(double precision,@pay) end .PIF_ROUND_MONEY(@fond_id,@d_total2pay,@d_total2pay) select @total2pay = convert(money,@d_total2pay) --if @total2pay<>@stock_price select @total2pay=@stock_price insert into #report values(53, 'СТОИМОСТЬ ЧИСТЫХ АКТИВОВ НА ОДИН ПАЙ', '220', @total2pay) insert into #report values(55, '(строка 200 / 210)', null, null) end /* Открытый фонд */ select * from #report End $ENDTEXT(14130932) $ENDFORM $FORM(PIF_SREZ_SCHA_REPORT) name=х_Отчет Справка о СЧА (старый) class=5 filter=null target_state= uo=uo_print dw=d_pif_fcs_scha_report_edit procedure=ap_10000000000088885 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) 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 .GET_PROPS declare @owner_id numeric declare @fond_name varchar(255) declare @regist_emis varchar(255) declare @control_name varchar(255) declare @control_lic varchar(255) declare @control_addres varchar(255) declare @fund_type numeric declare @type_string varchar(255) declare @head_name varchar(255) declare @buch_name varchar(255) select @head_name=j_head_last_name, @buch_name=j_bookkeeper_name from t_partners_jur where id=@fond_id select @fond_name = partner_name, @regist_emis = isnull(t_partners.regist_organisation + ' ', '') + ' № ' + isnull(t_partners.regist_sertificate_no + ' ', '') + ' от ' + isnull(convert(varchar, t_partners.regist_sertificate_date, 104) + ' ', '') from t_partners where t_partners.id = @fond_id select @fund_type = td_pay_fond.fond_type from td_pay_fond where td_pay_fond.id = @fond_id select @control_name = t_partners.partner_name, -- @control_lic = isnull(t_partners.regist_sertificate_no + ' ', '') + isnull(convert(varchar, t_partners.regist_sertificate_date, 104) + ' ', '') + isnull(t_partners.regist_organisation + ' ', ''), @control_addres = isnull(t_partners.real_code + ' ', '') + isnull(t_partners.partner_address + ' ', '') + + isnull(t_partners.partner_phone, ''), @fund_type = td_pay_fond.fond_type from t_partners, td_pay_fond where td_pay_fond.id = @fond_id and td_pay_fond.ctrl_comp_id = t_partners.id select @control_lic = (select lic_autor + ' № ' + lic_no + ' от ' + convert(varchar,lic_date,104) from t_licence, td_pay_fond where td_pay_fond.id=@fond_id and .ITEMS_EXISTS(t_licence.id) and t_licence.partner_id=td_pay_fond.ctrl_comp_id and t_licence.activity_id=4) if @fund_type = 1 select @type_string = 'открытого' else select @type_string = 'интервального' select @sid, @srez_date, @fond_name, @regist_emis, @control_name, @control_lic, @control_addres, @type_string, @head_name, @buch_name End $ENDTEXT(14130934) $ENDFORM $FORM(STOCK_PAY_OWNERS_LIST) name=УК - Отчет о владельцах паев ПИФ - перечень class=4 filter=null target_state= uo=uo_list dw=d_stock_pay_owners_list procedure=ap_stock_pay_owners_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric if @sid='' select @sid=null select @id=convert(numeric,@sid) create table #lines ( row int not null, row_name varchar(255) not null, row_code varchar(10) null, sum_beg decimal(18,8) null, sum_date decimal(18,8) null ) insert into #lines (row,row_name,row_code) select 1000,'Количество размещенных акций акционерного инвестиционного фонда, по которым зарегистрированы отчеты об итогах выпуска'+ ' (количество выданных инвестиционных паев паевого инвестиционного фонда), всего','100' union select 1005,'из них:',null union select 1100,'принадлежащих физическим лицам, место жительства (регистрации) которых находится в Российской Федерации','110' union select 1200,'принадлежащих юридическим лицам, место нахождения постоянно действующего исполнительного органа'+ ' (юридического лица, которому переданы функции единоличного исполнительного органа) которых находится в Российской Федерации','120' union select 1300,'принадлежащих физическим лицам, место жительства (регистрации) которых находится за пределами территории Российской Федерации','130' union select 1400,'принадлежащих юридическим лицам, место нахождения постоянно действующего исполнительного органа'+ ' (юридического лица, которому переданы функции единоличного исполнительного органа) которых находится за пределами территории Российской Федерации','140' union select 1500,'находящихся у номинальных держателей','150' union select 2000,'Количество лицевых счетов в реестре акционеров акционерного инвестиционного фонда (реестре владельцев инвестиционных паев паевого инвестиционного фонда), всего','200' union select 2005,'из них',null union select 2100,'лицевых счетов физических лиц, место жительства (регистрации) которых находится в Российской Федерации','210' union select 2200,'лицевых счетов юридических лиц, место нахождения постоянно действующего исполнительного органа (юридического лица, которому переданы функции единоличного исполнительного органа)'+ ' которых находится в Российской Федерации','220' union select 2300,'лицевых счетов физических лиц, место жительства (регистрации) которых находится за пределами территории Российской Федерации','210' union select 2400,'лицевых счетов юридических лиц, место нахождения постоянно действующего исполнительного органа (юридического лица, которому переданы функции единоличного исполнительного органа)'+ ' которых находится за пределами территории Российской Федерации','240' union select 2500,'лицевых счетов номинальных держателей','250' -------------------------------------------------------------------------------------------- --*********************************** INFORMATION ******************************************** declare @is_end int, --if end_of_year then 1, if begin_of_year then 0 @srez_e_id numeric, --end_of_year_srez @srez_b_id numeric, --begin_of_year_srez @srez_e_date datetime, --end_of_year_srez_date @srez_b_date datetime, -- begin_of_year_srez_date @srez_id numeric, -- for cycle only @srez_date datetime -- for cycle only select @srez_e_id=@id select @srez_b_id=startsrez_id, @srez_e_date=srez_date from tp_pif_srez where tp_pif_srez.id = @srez_e_id if @srez_b_id is null .EXIT_MESSAGE('Не задан срез на начало года') select @srez_b_date=srez_date from tp_pif_srez where tp_pif_srez.id = @srez_b_id ------------------------------------------------------------------------------------- select @srez_id=@srez_e_id, @srez_date=@srez_e_date select @is_end=1 --------------------------------------------- CYCLE ----------------------------- while @is_end>=0 -- is evaluating 2 times: =1 (end_of_year) and =0 (begin_of_year) begin -- to report --------Количество паев на счетах--------------------------- --110 update #lines set sum_beg=(select isnull(sum(pay_qty_acc),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='FIS_RF' and acc_type='LP') where row=1100 --120 update #lines set sum_beg=(select isnull(sum(pay_qty_acc),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='JUR_RF' and acc_type='LP') where row=1200 --130 update #lines set sum_beg=(select isnull(sum(pay_qty_acc),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='FIS_NOT_RF' and acc_type='LP') where row=1300 --140 update #lines set sum_beg=(select isnull(sum(pay_qty_acc),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='JUR_NOT_RF' and acc_type='LP') where row=1400 --150 update #lines set sum_beg=(select isnull(sum(pay_qty_acc),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and acc_type='ND') where row=1500 --100 update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (1100,1200,1300,1400,1500)) where row=1000 --------Количество лицевых счетов--------------------------- --210 update #lines set sum_beg=(select isnull(count(distinct partner_id),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='FIS_RF' and acc_type='LP') where row=2100 --220 update #lines set sum_beg=(select isnull(count(distinct partner_id),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='JUR_RF' and acc_type='LP') where row=2200 --230 update #lines set sum_beg=(select isnull(count(distinct partner_id),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='FIS_NOT_RF' and acc_type='LP') where row=2300 --240 update #lines set sum_beg=(select isnull(count(distinct partner_id),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and partner_type='JUR_NOT_RF' and acc_type='LP') where row=2400 --250 update #lines set sum_beg=(select isnull(count(distinct partner_id),0) from tp_pif_srez_pay_owners where srez_id=@srez_id and acc_type='ND') where row=2500 --200 update #lines set sum_beg=(select sum(isnull(sum_beg,0)) from #lines where row in (2100,2200,2300,2400,2500)) where row=2000 -- finish of while cycle--------------------------------------------------------- if @is_end=1 begin update #lines set sum_date=sum_beg update #lines set sum_beg=null select @srez_id=@srez_b_id, @srez_date=@srez_b_date end --if------------------------------------------------------ select @is_end=@is_end-1 end --end_of while @is_end...------------------------------------------------ --Final Output!!!------------- select row as row, row_name as row_name, row_code as row_code, sum_beg as sum_beg, sum_date as sum_date from #lines order by row asc drop table #lines $ENDTEXT(14130934) $ENDFORM $FORM(STOCK_PAY_OWNERS_REP) name=УК - Отчет о владельцах паев ПИФ class=5 filter=null target_state= uo=uo_print dw=d_stock_pay_owners_rep procedure=ap_30000000003504075 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS select @sid as sid, .DATE_TO_REP(@srez_date,'"') as rep_date, (case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"' as fond_name, uk.partner_name as control_name, uk_jur.j_head_last_name as head_name, uk_jur.j_head_staff as head_staff, t_partners_jur.j_bookkeeper_name as buch_name from t_partners uk, t_partners_jur uk_jur, td_pay_fond, t_partners, t_partners_jur where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners_jur.id = t_partners.id and td_pay_fond.ctrl_comp_id = uk.id and uk_jur.id=uk.id .END $ENDTEXT(14130934) $ENDFORM $FORM(UK_REWARD_LIST) name=УК - Отчет о вознаграждении УК - перечень class=4 filter=null target_state= uo=uo_list dw=d_uk_reward_list procedure=ap_uk_reward_list patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric if @sid='' select @sid=null select @id=convert(numeric,@sid) create table #lines ( row int not null, row_name varchar(255) not null, row_code varchar(10) null, asset_sum money null, asset_part decimal(18,4) null ) insert into #lines (row,row_name,row_code) select 100,'Сумма начисленного вознаграждения, всего','010' union select 105,'в том числе',null union select 110,'- в управляющей компании','011' union select 120,'- специализированному депозитарию','012' union select 130,'- лицу, осуществляющему ведение реестра владельцев инвестиционных паев паевого инвестиционного фонда','013' union select 140,'- оценщику','014' union select 150,'- аудитору','015' union select 200,'Расходы, связанные с управлением акционерным инвестиционным фондом (доверительным управлением паевым инвестиционным фондом), всего','020' union select 205,'в том числе (по видам расходов)',null union select 210,' ... ','021' union select 220,' ... ','022' union select 230,' ... ','023' union select 300,'Сформированный резерв на выплату вознаграждений','030' union select 400,'Превышение (+) или недостаток (-) резерва на выплату вознаграждений','040' union select 500,'Итого расходов','050' union select 600,'Превышение нормируемых расходов','060' -------------------------------------------------------------------------------------------- declare @plan_id numeric, @fund_id numeric, @acc761_id numeric, @acc762_id numeric, @acc763_id numeric, @acc7617_id numeric, @acc7618_id numeric, @acc961_id numeric, @acc963_id numeric select @plan_id=.ARG_PLAN('PIF_ACCOUNT') select @acc761_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.1') select @acc762_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.2') select @acc763_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.3') select @acc7617_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.17') select @acc7618_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.18') select @acc961_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.1') --sys=89.1 select @acc963_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.3') --sys=89.3 -------------------------------------------------------------------------------- ------------------------------------------------------------------------------------- declare @start_srez numeric, @start_date datetime, @srez_date datetime, @srez_id numeric select @srez_id=@id select @start_srez=startsrez_id, @start_date=srez_date_b, @srez_date=srez_date, @fund_id=fond_id from tp_pif_srez where tp_pif_srez.id = @srez_id if @start_srez is null .EXIT_MESSAGE('Не задан срез на начало года!!!') --------Average SCHA calculation--- declare @scha_aver money select @scha_aver= (select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@srez_id and ai.row_code='SCHA_AVERAGE' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) if isnull(@scha_aver,0)=0 .EXIT_MESSAGE('Для фонда не задана среднегодовая СЧА!!!') ----------------------------------- --************************************** Information ********************************** --Сумма начисленного вознаграждения... --УК update #lines set asset_sum=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id=@acc761_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=110 --СД update #lines set asset_sum=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id=@acc762_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=120 --СР update #lines set asset_sum=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id=@acc763_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=130 --оценщику update #lines set asset_sum=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id=@acc7617_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=140 --аудитору update #lines set asset_sum=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id=@acc7618_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=150 -- всего update #lines set asset_sum=(select isnull(sum(asset_sum),0) from #lines where row in (110,120,130,140,150)) where row=100 -- 020 - Расходы, связанные с ДУ ПИФ update #lines set row_name=ai.row_name, asset_sum=isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_id and ai.row_code='CTRL_EXPENSES_ACC' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO') and #lines.row=210 update #lines set row_name=ai.row_name, asset_sum=isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_id and ai.row_code='CTRL_EXPENSES_PUBL' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO') and #lines.row=220 update #lines set row_name=ai.row_name, asset_sum=isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_id and ai.row_code='CTRL_EXPENSES_COMPENS' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO') and #lines.row=230 update #lines set asset_sum=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_id and ai.row_code='CTRL_EXPENSES' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=200 --------------------------------------- ----Сформированный резерв на выплату вознаграждений update #lines set asset_sum=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=300 -- 040 - Превышение или недостаток update #lines set asset_sum=(select isnull(sum(asset_sum),0) from #lines where row=300)- (select isnull(sum(asset_sum),0) from #lines where row=100) where row=400 -- Итого расходов update #lines set asset_sum=(select isnull(sum(asset_sum),0) from #lines where row in (100,200)) where row=500 --для расчета 060 declare @expenses money, @norm_sum money, @norm_percent decimal(18,8) -- процент расходов (уст. прав. Фонда) select @norm_percent=1.5 --надо где-то определять (пока Метрополь!!!) select @norm_sum=@scha_aver*@norm_percent/100 select @expenses=asset_sum from #lines where row=200 -- 060 - Превышение нормируемых расходов if @expenses>@norm_sum update #lines set asset_sum=@expenses-@norm_sum where row=600 else update #lines set asset_sum=0 where row=600 ------------------ -------ДОЛИ------------ update #lines set asset_part=abs(isnull(asset_sum,0)/@scha_aver*100) where row_code is not null -------------------------------------------------------------------------------------------- select row as row, row_name as row_name, row_code as row_code, asset_sum as reward_sum, asset_part as reward_part from #lines order by row asc, row_code desc drop table #lines $ENDTEXT(14130934) $ENDFORM $FORM(UK_REWARD_REP) name=УК - Отчет о вознаграждении УК class=5 filter=null target_state= uo=uo_print dw=d_uk_reward_rep procedure=ap_30000000003504073 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS select @sid as sid, .DATE_TO_REP(@srez_date,'"') as rep_date, (case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"' as fond_name, uk.partner_name as control_name, uk_jur.j_head_last_name as head_name, uk_jur.j_head_staff as head_staff, t_partners_jur.j_bookkeeper_name as buch_name from t_partners uk, t_partners_jur uk_jur, td_pay_fond, t_partners, t_partners_jur where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners_jur.id = t_partners.id and td_pay_fond.ctrl_comp_id = uk.id and uk_jur.id=uk.id .END $ENDTEXT(14130934) $ENDFORM $FORM(VALUE_CHANGE_LIST) name=УК - Отчет о приросте (уменьшении) ст-ти имущ-ва - перечень class=4 filter=null target_state= uo=uo_list dw=d_value_change_list procedure=ap_value_change_list patterns=null user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) create procedure dbo.%PROC% @sid varchar(30) = null as declare @id numeric if @sid='' select @sid=null select @id=convert(numeric,@sid) create table #lines ( row int not null, row_name varchar(255) not null, row_code varchar(10) null, sum_now money null, sum_last money null ) insert into #lines (row,row_name,row_code) select 100,'Выручка от продажи ценных бумаг','010' union select 200,'Расходы, связанные с продажей ценных бумаг','020' union select 300,'Результат от продажи ценных бумаг (010-020)','030' union select 400,'Выручка от продажи недвижимого имущества или передачи имущественных прав на недвижимое имущество','040' union select 500,'Расходы, связанные с продажей недвижимого имущества или передачей имущественных прав на недвижимое имущество','050' union select 600,'Результат от продажи недвижимого имущества или передачи имущественных прав на недвижимое имущество (040-050)','060' union select 700,'Выручка от продажи иного имущества','070' union select 800,'Расходы, связанные с продажей иного имущества','080' union select 900,'Результат от продажи иного имущества (070-080)','090' union select 1000,'Процентный доход по банковским вкладам и ценным бумагам','100' union select 1100,'Дивиденды по акциям','110' union select 1200,'Прирост (уменьшение) средств в иностранной валюте','120' union select 1300,'Выручка от сдачи недвижимого имущества в аренду','130' union select 1400,'Прирост (+) или уменьшение (-) стоимости ценных бумаг, имеющих признаваемую котировку, всего','140' union select 1405,'в том числе',null union select 1410,'- акции','141' union select 1420,'- облигации','142' union select 1430,'- инвестиционные паи','143' union select 1500,'Прирост (+) или уменьшение (-) стоимости ценных бумаг, не имеющих признаваемой котировки, всего','150' union select 1505,'в том числе',null union select 1510,'- акции','151' union select 1520,'- облигации','152' union select 1530,'- векселя','153' union select 1540,'- иные ценные бумаги','154' union select 1600,'Прирост (+) или уменьшение (-) стоимости недвижимого имущества или имущественных прав на недвижимое имущество','160' union select 1700,'Вознаграждение и расходы, связанные с управлением акционерным инвестиционным фондом или доверительным управлением паевым инвестиционным фондом','170' union select 1710,'в том числе резерв на выплату вознаграждений','171' union select 1800,'Прочие доходы',180 union select 1900,'Прочие расходы','190' union select 2000,'Прирост имущества, составляющего паевой инвестиционный фонд, в результате выдачи инвестиционных паев','200' union select 2100,'Уменьшение имущества, составляющего паевой инвестиционный фонд, в результате погашения или обмена инвестиционных паев','210' union select 2200,'Итого: прирост (+) или уменьшение (-) стоимости имущества, принадлежащего '+ 'акционерному инвестиционному фонду, или имущества, составляющего паевой инвестиционный фонд '+ '(030 + 060 + 090 + 100 + 110 + 120 + 130 + 140 + 150 + 160 + 180 + 200 - 170 - 210)','220' -------------------------------------------------------------------------------------------- declare @plan_id numeric, @fund_id numeric, @acc011_id numeric, @acc081_id numeric, @acc581_id numeric, @acc583_id numeric, @acc7610_id numeric, @acc7616_id numeric, @acc766_id numeric, @acc861_id numeric, @acc862_id numeric, @acc864_id numeric, @acc865_id numeric, @acc911_id numeric, @acc912_id numeric, @acc913_id numeric, @acc914_id numeric, @acc915_id numeric, @acc916_id numeric, @acc917_id numeric, @acc961_id numeric, @acc962_id numeric, @acc963_id numeric, @acc768_id numeric select @plan_id=.ARG_PLAN('PIF_ACCOUNT') select @acc011_id = .SD_ACCID_FROM_EFFNO(@plan_id,'01.1') select @acc081_id = .SD_ACCID_FROM_EFFNO(@plan_id,'08.1') select @acc581_id = .SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @acc583_id = .SD_ACCID_FROM_EFFNO(@plan_id,'58.3') select @acc7610_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.10') select @acc7616_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.16') select @acc766_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.6') select @acc861_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.1') select @acc862_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.2') select @acc864_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.6') select @acc865_id = .SD_ACCID_FROM_EFFNO(@plan_id,'86.5') select @acc911_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.3') select @acc912_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.5') select @acc913_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.2') select @acc914_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.7') select @acc915_id = .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.4') select @acc916_id = .SD_ACCID_FROM_EFFNO(@plan_id,'91.6') select @acc917_id = .SD_ACCID_FROM_EFFNO(@plan_id,'91.7') select @acc961_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.1') select @acc962_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') select @acc963_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.3') select @acc768_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.8') declare @class_stock_type_id numeric, @class_asset_type_id numeric, @value_pifpay_stock_id numeric, @value_stock_stock_id numeric, @value_veks_stock_id numeric, @value_oblig_stock_id numeric declare @nrow int select @class_stock_type_id=max(id) from t_nclass_types where upper(class_code)='STOCK_TYPE' select @class_asset_type_id=max(id) from t_nclass_types where upper(class_code)='ASSET_TYPE_OTHER' 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_stock_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='STOCK' select @value_veks_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='VEKS' select @value_oblig_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='OBLIG' --*********************************** INFORMATION ******************************************** declare @is_rep_period int, --if this period then 1, if last period then 0 @srez_e_id numeric, --end_of_period_srez @srez_b_id numeric, --begin_of_period_srez @srez_e_date datetime, --end_of_period_srez_date @srez_b_date datetime -- begin_of_period_srez_date declare @activs_sum money select @is_rep_period=1 select @srez_e_id=@id select @srez_b_id=startsrez_id, @srez_e_date=srez_date, @fund_id=fond_id, @activs_sum=isnull(activ_sum,0) --сумма активов для расчета 5% from tp_pif_srez where tp_pif_srez.id = @srez_e_id if @srez_b_id is null .EXIT_MESSAGE('Для отчетного периода не задан начальный срез') select @srez_b_date=srez_date from tp_pif_srez where tp_pif_srez.id = @srez_b_id /* .GET_CLASS_VALUE_CODE_FOR_ITEM_D(@fund_id,'PIF_OTHER_RESERVE','NOT_IN_SCHA',@srez_e_date) if @class_value_ok = 1 */ select @acc962_id = .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') -- сие счет 96.2 по новому плану /* else select @acc962_id = -1 */ create table #assets ( acc_id numeric not null, asset_id numeric not null, sum_bal_e money null, sum_stock_e money null, sum_bal_clr_e money null, sum_bal_b money null, sum_stock_b money null, sum_bal_clr_b money null, is_rate_e int null, is_rate_b int null, asset_type_id numeric null, row_e int null, row_b int null ) --------for 2004 year only---------- declare @is2004year int if year(@srez_e_date)<=2004 select @is2004year=1 else select @is2004year=0 ----------------------------------- --------------------------------------------- CYCLE ----------------------------- while (@is_rep_period>=0 and @is2004year=0) or (@is_rep_period>=1 and @is2004year=1) -- было @is_rep_period>=1 --1-й столбец, 2 столбца => =0 -- is evaluating 2 times: =1 (now) and =0 (last) begin -- ЦБ, недвижимость и проч. активы --end of period -- ЦБ insert into #assets (acc_id, asset_id, sum_bal_e, sum_stock_e, sum_bal_clr_e, is_rate_e, asset_type_id) select p.acc_id, p.stock_id, p.bal_sum , p.stock_sum, p.bal_sum_clr, (case when isnull(p.is_rate,0)=1 and isnull(p.stock_rate,0)<>0 and p.rate_date is not null --and p.rate_date=@srez_e_date --??? не факт then 1 else 0 end), 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) from tp_pif_srez_portfolio p where p.srez_id=@srez_e_id and p.acc_id=@acc581_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') -- Проч. активы union select p.acc_id, p.stock_id, p.bal_sum, p.stock_sum, 0, 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_asset_type_id),0) from tp_pif_srez_portfolio p where p.srez_id=@srez_e_id and p.acc_id in (@acc011_id,@acc081_id,@acc583_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') --begin of period --those were, but are not now --ЦБ insert into #assets (acc_id, asset_id, sum_bal_b, sum_stock_b, sum_bal_clr_b, is_rate_b, asset_type_id) select p.acc_id, p.stock_id, p.bal_sum, p.stock_sum, p.bal_sum_clr, (case when isnull(p.is_rate,0)=1 and isnull(p.stock_rate,0)<>0 and p.rate_date is not null --and p.rate_date=@srez_b_date --??? не факт then 1 else 0 end), 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) from tp_pif_srez_portfolio p where p.srez_id=@srez_b_id and p.acc_id=@acc581_id and not exists (select 1 from #assets where asset_id=p.stock_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') -- Проч. активы union select p.acc_id, p.stock_id, p.bal_sum, p.stock_sum, 0, 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_asset_type_id),0) from tp_pif_srez_portfolio p where p.srez_id=@srez_b_id and p.acc_id in (@acc011_id,@acc081_id,@acc583_id) and not exists (select 1 from #assets where asset_id=p.stock_id) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') --those were, and are now --ЦБ update #assets set sum_bal_b=p.bal_sum, sum_stock_b=p.stock_sum, sum_bal_clr_b=p.bal_sum_clr, is_rate_b=case when isnull(p.is_rate,0)=1 and isnull(p.stock_rate,0)<>0 and p.rate_date is not null --and p.rate_date=@srez_b_date --??? не факт then 1 else 0 end from tp_pif_srez_portfolio p where p.srez_id=@srez_b_id and p.stock_id=#assets.asset_id and #assets.sum_bal_b is null and #assets.sum_stock_b is null and #assets.is_rate_b is null and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO') -- Проч. активы update #assets set sum_bal_b=p.bal_sum, sum_stock_b=p.stock_sum, is_rate_b=0 from tp_pif_srez_portfolio p where p.srez_id=@srez_b_id and p.stock_id=#assets.asset_id and #assets.sum_bal_b is null and #assets.sum_stock_b is null and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_ACCOUNTS') ------------update row_e and row_b --- may be its not correct to use CASE update #assets set row_e=case when is_rate_e=1 and asset_type_id=@value_stock_stock_id -- stocks that have a rate then 1410 when is_rate_e=1 and asset_type_id=@value_oblig_stock_id then 1420 when is_rate_e=1 and asset_type_id=@value_pifpay_stock_id then 1430 when is_rate_e=0 and asset_type_id=@value_stock_stock_id -- stocks that don't have a rate then 1510 when is_rate_e=0 and asset_type_id=@value_oblig_stock_id then 1520 when is_rate_e=0 and asset_type_id=@value_veks_stock_id then 1530 when is_rate_e=0 and asset_type_id not in (@value_stock_stock_id,@value_oblig_stock_id,@value_veks_stock_id) and row_e is null then 1540 when is_rate_e=0 and acc_id in (@acc011_id,@acc081_id) -- Проч. активы -- недвижимость then 1600 end, row_b=case when is_rate_b=1 and asset_type_id=@value_stock_stock_id -- stocks that have a rate then 1410 when is_rate_b=1 and asset_type_id=@value_oblig_stock_id then 1420 when is_rate_b=1 and asset_type_id=@value_pifpay_stock_id then 1430 when is_rate_b=0 and asset_type_id=@value_stock_stock_id -- stocks that don't have a rate then 1510 when is_rate_b=0 and asset_type_id=@value_oblig_stock_id then 1520 when is_rate_b=0 and asset_type_id=@value_veks_stock_id then 1530 when is_rate_b=0 and asset_type_id not in (@value_stock_stock_id,@value_oblig_stock_id,@value_veks_stock_id) and row_b is null then 1540 when is_rate_b=0 and acc_id in (@acc011_id,@acc081_id) -- Проч. активы -- недвижимость then 1600 end -- to report update #lines set sum_last=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='STOCK_SALE_PROCEEDS' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=100 --------------------------------------------------------------------------------- --ВТБ 24/01/05 - Результат от погашения векселя -> в строку 100, а не в 030 update #lines set sum_last=sum_last-isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='BILLS_PAYMENT_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where row=100 --конец ВТБ 24/01/05 --------------------------------------------------------------------------------- update #lines set sum_last=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='STOCK_SALE_EXPENSES' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=200 --------------------------------------------------------------------------------- update #lines set sum_last=(select sum_last from #lines where row=100)-(select sum_last from #lines where row=200) where row=300 --------------------------------------------------------------------------------- update #lines set sum_last=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='REALTY_SALE_PROCEEDS' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=400 --------------------------------------------------------------------------------- update #lines set sum_last=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='REALTY_SALE_EXPENSES' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=500 --------------------------------------------------------------------------------- update #lines set sum_last=(select sum_last from #lines where row=400)-(select sum_last from #lines where row=500) where row=600 --------------------------------------------------------------------------------- update #lines set sum_last=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='OTHER_SALE_PROCEEDS' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=700 --------------------------------------------------------------------------------- update #lines set sum_last=(select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='OTHER_SALE_EXPENSES' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=800 --------------------------------------------------------------------------------- update #lines set sum_last=(select sum_last from #lines where row=700)-(select sum_last from #lines where row=800) where row=900 --------------------------------------------------------------------------------- -- -- строчка 100 (начало) -- --оборот кред. 91.2, 91.3 --04/02/05 update #lines set sum_last=isnull((select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc912_id,@acc913_id,@acc914_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row=1000 --+(НКД-(saldo_deb76.6-saldo_cred76.6)) на конец периода минус на начало периода update #lines set sum_last=isnull(sum_last,0)+isnull((select isnull(sum(isnull(p.coupon_sum,0)),0) -- НКД кон. from tp_pif_srez_portfolio p where p.srez_id=@srez_e_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')),0) -isnull((select isnull(b.saldo_deb,0)-isnull(b.saldo_cred,0) -- saldo_deb76.6-saldo_cred76.6 кон. from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc766_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) -isnull((select isnull(sum(isnull(p.coupon_sum,0)),0) from tp_pif_srez_portfolio p where p.srez_id=@srez_b_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_PORTFOLIO')),0) -isnull((select isnull(b.saldo_deb,0)-isnull(b.saldo_cred,0) -- вот этот кусок все портит (начало) from tp_pif_srez_balance b where b.srez_id=@srez_b_id and b.acc_id=@acc766_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) -- конец where row=1000 --+Результат от ПНКД при продаже ЦБ update #lines set sum_last=isnull(sum_last,0) + isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='STOCK_SALES_PNKD_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where row=1000 ----------------------------------------------------- --ВТБ 24/01/05 - Результат от погашения векселя -> в строку 100, а не в 030 update #lines set sum_last=isnull(sum_last,0)+isnull((select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='BILLS_PAYMENT_RESULT' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where row=1000 --конец ВТБ 24/01/05 -- -- строчка 100 (конец) -- ----------------------------------------------------- update #lines set sum_last=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc911_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1100 -------------------------------------------------- update #lines set sum_last=(select isnull(sum(isnull(b.obor_cred,0))-sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc915_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1200 ----------------------------------------------------- update #lines set sum_last=0 where row=1300 -- не собираем! ----------------------------------------------------- /* update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1410)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1410) where row=1410 update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1420)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1420) where row=1420 update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1430)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1430) where row=1430 update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1510)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b in (1510,1410)) where row=1510 update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1520)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1520) where row=1520 update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1530)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1530) where row=1530 update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1540)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1540) where row=1540 */ /* select #assets.* from #assets,t_accounts, t_plans where upper(t_plans.plan_code) = 'PIF_ACCOUNT' and t_plans.id = t_accounts.plan_id and t_accounts.acc_num_eff_rep like '%58.1.' and t_accounts.id = #assets.acc_id */ select @nrow=1410 while @nrow <= 1540 begin update #lines set sum_last=isnull((select sum(isnull(a_end.sum_stock_e,0) - isnull(a_end.sum_bal_clr_e,0)) from #assets a_end where a_end.row_e = @nrow),0) -isnull((select sum(isnull(a_beg.sum_stock_b,0) - isnull(a_beg.sum_bal_clr_b,0)) from #assets a_beg where a_beg.row_b = @nrow),0) where row = @nrow if @nrow = 1430 select @nrow=1510 else select @nrow=@nrow+10 end update #lines set sum_last=(select isnull(sum(isnull(sum_last,0)),0) from #lines where row in (1410,1420,1430)) where row = 1400 update #lines set sum_last=(select isnull(sum(isnull(sum_last,0)),0) from #lines where row in (1510,1520,1530,1540)) where row = 1500 -------------------------------- update #lines set sum_last=(select isnull(sum(isnull(sum_stock_e,0)),0)-isnull(sum(isnull(sum_bal_e,0)),0) from #assets where row_e=1600)- (select isnull(sum(isnull(sum_stock_b,0)),0)-isnull(sum(isnull(sum_bal_b,0)),0) from #assets where row_b=1600) where row=1600 -------------------------------- declare @expenses_calc96 money, @expenses_calc86 money --select @expenses_calc=.GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'PIF_CTRL_EXPENSES_CALC','OBOR_CRED_96_1_3+OBOR_DEB_96_2') declare @reserve_calc varchar(255) select @reserve_calc=.GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'OTHER_RESERVE_CALC','SALDO_CRED-DEB_96_1_3') --'OBOR_CRED_96_1_3+OBOR_DEB_96_2-оборот по проводкам Д76.8-К96.2 (OTHER_RESERVE_FROM_76.8)' select @expenses_calc96=isnull((select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) +isnull((select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc962_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) +isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='OTHER_RESERVE_FROM_76.8' and isnull(ai.row_sum,0)>0 and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) --'OBOR_DEB_86_2' select @expenses_calc86= (select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc862_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) -- если фонд тратит на про. расх. много --if isnull(@expenses_calc96,0)<=isnull(@expenses_calc86,0) update #lines set sum_last=isnull(@expenses_calc96,0) where row=1700 -- else -- update #lines set -- sum_last=isnull(@expenses_calc86,0) -- where row=1700 -------------------------------------------- if @reserve_calc='OBOR_CRED_96_1_3' update #lines set sum_last=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1710 else if @reserve_calc='SALDO_CRED_96_3' update #lines set sum_last=(select isnull(sum(isnull(b.saldo_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id =@acc963_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1710 else if @reserve_calc='OBOR_DEB_96_1_3' update #lines set sum_last=(select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1710 else if @reserve_calc='SALDO_CRED_96_1_3' update #lines set sum_last=(select isnull(sum(isnull(b.saldo_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1710 else if @reserve_calc='OBOR_CRED_96_1_3+OBOR_DEB_96_2' update #lines set sum_last=isnull((select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) +isnull((select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id = @acc962_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')),0) where row=1710 else if @reserve_calc='SALDO_CRED-DEB_96_1_3' 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=@srez_e_id and b.acc_id in (@acc961_id,@acc963_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1710 --------------------------------- update #lines set sum_last=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc864_id,@acc916_id,@acc917_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1800 -- добавлено 12.01.05 update #lines set sum_last=sum_last + isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='STOCK_OVERVALUE_RESULT' and isnull(ai.row_sum,0)>0 and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where row=1800 ------------------------------- update #lines set sum_last=(select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id in (@acc864_id,@acc916_id,@acc917_id) and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=1900 -- добавлено 12.01.05 update #lines set sum_last=sum_last + isnull((select ai.row_sum from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='STOCK_OVERVALUE_RESULT' and isnull(ai.row_sum,0)<0 and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')),0) where row=1900 ---------------------------------- update #lines set sum_last=(select isnull(sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc861_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=2000 -- -Передача паев update #lines set sum_last=sum_last - (select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='PAYS_MOVES_SUM' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=2000 ---------------------------------- update #lines set sum_last=(select isnull(sum(isnull(b.obor_deb,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc861_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE'))+ (select isnull(sum(isnull(b.obor_deb,0))-sum(isnull(b.obor_cred,0)),0) from tp_pif_srez_balance b where b.srez_id=@srez_e_id and b.acc_id=@acc865_id and .ITEMS_EXISTS_BY_TYPE(b.id,'PIF_SREZ_BALANCE')) where row=2100 -- -Передача паев update #lines set sum_last=sum_last - (select isnull(ai.row_sum,0) from tp_pif_srez_add_info ai where ai.srez_id=@srez_e_id and ai.row_code='PAYS_MOVES_SUM' and .ITEMS_EXISTS_BY_TYPE(ai.id,'PIF_SREZ_ADD_INFO')) where row=2100 -------------------------------- update #lines set sum_last=(select isnull(sum(sum_last),0) from #lines where row in (300,600,900,1000,1100,1200,1300,1400,1500,1600,1800,2000))- (select isnull(sum(sum_last),0) from #lines where row in (1700,1900,2100)) where row=2200 ------------details----------------------------- -- finish of while cycle--------------------------------------------------------- if @is_rep_period=1 begin update #lines set sum_now=sum_last update #lines set sum_last=null --было =0 truncate table #assets if @is2004year=0 -- в 2004 году считаем 1 столбец begin --ищем срез на соответствующие даты (нач. и конеч.) прошлого года select @srez_e_date=dateadd(yy,-1,@srez_e_date), @srez_b_date=dateadd(yy,-1,@srez_b_date) select @srez_e_id=(select max(e.id) from tp_pif_srez e, tp_pif_srez b where e.srez_date = @srez_e_date and b.id=e.startsrez_id and b.srez_date=@srez_b_date) select @srez_b_id=(select startsrez_id from tp_pif_srez where id=@srez_e_id) end end --if------------------------------------------------------ select @is_rep_period=@is_rep_period-1 end --end_of while @is_rep...------------------------------------------------ --Final Output!!!------------- select row as row, row_name as row_name, row_code as row_code, sum_now as sum_now, sum_last as sum_last_year from #lines order by row drop table #lines drop table #assets $ENDTEXT(14130934) $ENDFORM $FORM(VALUE_CHANGE_REP) name=УК - Отчет о приросте (уменьшении) стоимости имущества class=5 filter=null target_state= uo=uo_print dw=d_value_change_rep procedure=ap_30000000003499986 patterns=null user_define=0 isvisible=0 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130934) create procedure dbo.%PROC% @sid varchar(30) = null as .BEGIN('N') .CHECK_USER .GET_PROPS select @sid as sid, .DATE_TO_REP(@srez_date,'"') as rep_date, (case td_pay_fond.fond_type when 1 then 'Открытый' when 2 then 'Интервальный' when 3 then 'Закрытый' else '' end) + ' ПИФ "' + t_partners.partner_name + '"' as fond_name, uk.partner_name as control_name, uk_jur.j_head_last_name as head_name, uk_jur.j_head_staff as head_staff, t_partners_jur.j_bookkeeper_name as buch_name from t_partners uk, t_partners_jur uk_jur, td_pay_fond, t_partners, t_partners_jur where td_pay_fond.id = @fond_id and t_partners.id = td_pay_fond.id and t_partners_jur.id = t_partners.id and td_pay_fond.ctrl_comp_id = uk.id and uk_jur.id=uk.id .END $ENDTEXT(14130934) $ENDFORM $ACTION(#AP_PIF_RATE_CHECK) name=#Определение котировки для ПИФ class=9 form=null target_state=null procedure=ap_pif_rate_check patterns=GENERIC_MOVE user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130935) create procedure dbo.%PROC% @stock_id numeric, @fund_id numeric, @place_id numeric, @check_date datetime, @check_type int, @stock_qty money, @rate_date datetime out, @is_rate int out, @stock_rate decimal(18,8) out, @coupon_rate decimal(18,8) out, @stock_sum money out, @coupon_sum money out, @out_cur_id numeric out as set datefirst 1 declare @class_value_code varchar(255), @class_comment varchar(255), @stock_rate_cur decimal(18,8), @coupon_rate_cur decimal(18,8), @stock_rate_rur decimal(36,12), @coupon_rate_rur decimal(36,12), @rur_cur_id numeric, @rate_cur_id numeric, @place_cur_id numeric, @convert_value decimal(18,8), @convert_date datetime, @class_round int declare @d int, @trades_qty money, @trades_qty_all money, @rates_qty int, @stock_rate_rur_all decimal(36,12), @find_date datetime declare @rate_date1 datetime, @is_rate1 int, @stock_rate1 decimal(18,8), @stock_sum1 money, @out_cur_id1 numeric declare @stock_place_id numeric, @place_code varchar(50), @mmvb_code varchar(50), @not_mmvb_code varchar(50), @places tinyint, @max_places tinyint declare @money_volume decimal(36,12), @volume decimal(36,12), @volume_cur_id numeric, @stock_rate_cur_avg decimal(36,12) select @rur_cur_id=.CUR('RUR') if @place_id is null begin exec ap_getclassvalue_code @stock_id, 'STOCK_RATE_PLACE', null, @fund_id, @class_value_code out, @class_comment out if @class_value_code is not null begin select @place_id = max(td_rate_places.id) from td_rate_places where upper(td_rate_places.place_code) = upper(@class_value_code) and .ITEMS_EXISTS(td_rate_places.id) if isnull(@class_comment,'')<>'' select @class_round=convert(int,@class_comment) end end else select @class_value_code=place_code from td_rate_places where id=@place_id if @place_id is null return select @stock_place_id=@place_id, @mmvb_code='MICEX', @not_mmvb_code='RTS', -- код площадки, с которой берем, если не нашли на ММВБ @place_cur_id=(select td_rate_places.cur_id from td_rate_places where id=@place_id), @place_code=(select td_rate_places.place_code from td_rate_places where id=@place_id), @places=0, @max_places=1 if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'PLACES_IN_RATE_CHECK','ONE')='TWO' select @max_places=2 -- КОТИРОВКА while @places < @max_places -- по площадкам begin select @stock_rate_cur=null, @is_rate=null, @rate_date=null, @rate_cur_id=null, @trades_qty=null if @check_type=0 -- ближайшая котировка select @stock_rate_cur=tb_stock_rates.stock_rate, @is_rate=tb_stock_rates.rate_type, @rate_date=tb_stock_rates.rate_date, @rate_cur_id=tb_stock_rates.rate_cur_id from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = (select max(tb_stock_rates.rate_date) from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.rate_date <= @check_date and tb_stock_rates.stock_rate<>0 and tb_stock_rates.stock_id = @stock_id and .ITEMS_EXISTS(tb_stock_rates.id)) and .ITEMS_EXISTS(tb_stock_rates.id) if @check_type=1 -- котировка на дату оценки select @stock_rate_cur=tb_stock_rates.acknowledged_price, @is_rate=tb_stock_rates.rate_type, @rate_date=tb_stock_rates.rate_date, @rate_cur_id=tb_stock_rates.rate_cur_id, @trades_qty=tb_stock_rates.trades_qty from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @check_date and .ITEMS_EXISTS(tb_stock_rates.id) -- если есть признаваемая if @stock_rate_cur is not null begin if @class_round is not null select @stock_rate_cur = round(@stock_rate_cur,@class_round) select @rate_cur_id=isnull(@rate_cur_id,@place_cur_id) select @rate_cur_id=isnull(@rate_cur_id,@rur_cur_id) if @rur_cur_id=@rate_cur_id select @stock_rate_rur=@stock_rate_cur else begin .CONVERT_SUM_DEC(@rate_cur_id, @rur_cur_id, @check_date, 0, @stock_rate_cur, @stock_rate_rur, @convert_value, @convert_date) end if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'TYPE_ROUND_RATES_IN_CALC','BEFORE')='BEFORE' begin .PIF_ROUND_RATE(@fund_id, @stock_rate_rur, @stock_rate_rur) end select @stock_sum=convert(money,round((convert(decimal(36,12),@stock_qty) * @stock_rate_rur),2)) .PIF_ROUND_RATE(@fund_id, @stock_rate_rur, @stock_rate_rur) if isnull(@is_rate,0) not in (0,1) select @is_rate=1 select @stock_rate=convert(decimal(18,8),@stock_rate_rur), @out_cur_id=@rate_cur_id end else select @stock_rate=null, @stock_sum=null, @is_rate=0, @rate_date=null, @out_cur_id=null -- 422ps (если нет признаваемой) - по оборотам за 10 дней, включая день оценки, в RUR переводится результат деления оборотов. select @find_date=dateadd(dd,1,@check_date) if @stock_rate is null and @check_type=1 and .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'CALC_PIF_RATE','NO_CALC')='ALADDIN' begin select @d=0, @trades_qty_all=0, @money_volume=0, @volume=0 while @d<10 begin -- дни select @find_date=dateadd(dd,-1,@find_date) if not exists(select 1 from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date <= @find_date and .ITEMS_EXISTS(tb_stock_rates.id)) break -- рабочие дни if (datepart(dw,@find_date) not in (6,7)) and not exists(select 1 from tp_pif_calendar where dmy=@find_date and isnull(include,0)<>1) -- на ММВБ 31.12.03 - выходной and ((@find_date<>convert(datetime,'31/12/03',3) and (upper(@class_value_code) like '%'+@mmvb_code+'%')) or not(upper(@class_value_code) like '%'+@mmvb_code+'%')) begin select @d=@d+1 select @money_volume=@money_volume+isnull(tb_stock_rates.money_volume,0), @volume=@volume+isnull(tb_stock_rates.volume,0), @volume_cur_id=(case when @volume_cur_id is null then tb_stock_rates.volume_cur_id else @volume_cur_id end), @trades_qty_all=@trades_qty_all+isnull(tb_stock_rates.trades_qty,0) from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @find_date and .ITEMS_EXISTS(tb_stock_rates.id) end end -- end дни select @volume_cur_id=isnull(@volume_cur_id,@place_cur_id) select @volume_cur_id=isnull(@volume_cur_id,@rur_cur_id) if @trades_qty_all>=10 begin -- средняя за 10 дней if isnull(@volume,0)=0 select @stock_rate_cur_avg=0 else select @stock_rate_cur_avg=convert(decimal(36,12),@money_volume/@volume) -- округление расчета по правилам площадок if upper(@class_value_code) like '%'+@not_mmvb_code+'%' select @stock_rate_cur_avg=round(@stock_rate_cur_avg,5) if upper(@class_value_code) like '%'+@mmvb_code+'%' select @stock_rate_cur_avg=round(@stock_rate_cur_avg,5) -- рублевая за 10 дней if @rur_cur_id=@volume_cur_id select @stock_rate_rur=@stock_rate_cur_avg else begin -- по курсу на дату оценки .CONVERT_SUM_DEC(@volume_cur_id, @rur_cur_id, @check_date, 0, @stock_rate_cur_avg, @stock_rate_rur, @convert_value, @convert_date) end if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'TYPE_ROUND_RATES_IN_CALC','BEFORE')='BEFORE' begin .PIF_ROUND_RATE(@fund_id, @stock_rate_rur, @stock_rate_rur) end select @stock_sum=convert(money,round((convert(decimal(36,12),@stock_qty) * @stock_rate_rur),2)) .PIF_ROUND_RATE(@fund_id, @stock_rate_rur, @stock_rate_rur) select @stock_rate=convert(decimal(18,8),@stock_rate_rur), @rate_date=@check_date, @is_rate=1, @out_cur_id=@volume_cur_id end else select @stock_rate=null, @stock_sum=null, @is_rate=0, @rate_date=null, @out_cur_id=null end -- end расчет по дням -- след.площадка if @stock_rate is null begin select @place_id = (select max(td_rate_places.id) from td_rate_places where upper(td_rate_places.place_code) = (case @place_code when @mmvb_code then @not_mmvb_code else @mmvb_code end) and .ITEMS_EXISTS(td_rate_places.id)) select @place_cur_id=(select td_rate_places.cur_id from td_rate_places where id=@stock_place_id) if @place_id is null select @places=@max_places else select @places=@places+1 end else select @places=@max_places, @stock_place_id=@place_id end -- end по площадкам -- НКД select @rate_cur_id=null select @coupon_rate_cur=tb_stock_rates.coupon_rate, @rate_cur_id=tb_stock_rates.rate_cur_id from tb_stock_rates where tb_stock_rates.rate_place_id = @stock_place_id -- id 1-й площадки или той, на которой нашли котировку and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @check_date and .ITEMS_EXISTS(tb_stock_rates.id) if @coupon_rate_cur is not null begin select @rate_cur_id=isnull(@rate_cur_id,@place_cur_id) select @rate_cur_id=isnull(@rate_cur_id,@rur_cur_id) if @rur_cur_id=@rate_cur_id select @coupon_rate_rur=@coupon_rate_cur else begin .CONVERT_SUM_DEC(@rate_cur_id, @rur_cur_id, @check_date, 0, @coupon_rate_cur, @coupon_rate_rur, @convert_value, @convert_date) end if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'TYPE_ROUND_RATES_IN_CALC','BEFORE')='BEFORE' begin .PIF_ROUND_RATE(@fund_id, @coupon_rate_rur, @coupon_rate_rur) end select @coupon_sum=convert(money,round((convert(decimal(36,12),@stock_qty) * @coupon_rate_rur),2)) .PIF_ROUND_RATE(@fund_id, @coupon_rate_rur, @coupon_rate_rur) select @coupon_rate=convert(decimal(18,8),@coupon_rate_rur) if @out_cur_id is null select @out_cur_id=@rate_cur_id end select @coupon_sum=isnull(@coupon_sum,0) $ENDTEXT(14130935) $ENDACTION $ACTION(ACTION1) name=Изменить class=2 form=D_PIF_SREZ_EDIT target_state=null procedure=ap_10000000000088889 patterns=GENERIC_UPDATE user_define=0 isvisible=0 istab=1 posx=0 posy=0 width=2537 height=1516 proc_text=$TEXT(14130935) create procedure dbo.%PROC% @sid varchar(30) = null, .ARGLIST as declare @action_id numeric, @id numeric, @user_id numeric, @state_id numeric, @type_id numeric, @item_name varchar(100), @new_state_id numeric begin tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .CHECK_USER .CHECK_UPDATE .ARGCONVERT .TEST_UNIQUE .UPDATE_ITEMS .UPDATE .RELGEN .UPDATE_STATE .ACTION_HISTORY commit tran $ENDTEXT(14130935) $ENDACTION $ACTION(AP_PIF_CALC_STOCK_PRICE) name=# Определение оценочной стоимости ЦБ class=9 form=null target_state=null procedure=ap_pif_calc_stock_price patterns=null user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130935) -- -- Расчет оценочной стоимости ЦБ -- /* Оценочная стоимостью ЦБ признается равным (кол-во ЦБ * котировку). Если котировка до первой покупки не найдена, то оценочной стоимостью считается сальдо по 58.1 счету по этой ЦБ на 58.1 счету, хранятся покупки ЦБ, без учета комиссий и переоценки Поиск котировки возможен тремя способами: 1. Если в срезе не задана площадка и у фонда значение классификатора "Выбор площадки при определении котировки" равно "MAX" то ищется максимальная котировка по всем площадкам указанным вручную в процедуре, либо заданным через справочник "Площадки для фонда" 2. Если в срезе не задана площадка, у фонда значение классификатора "Выбор площадки при определении котировки" равно "ONE" то котировка ищется на площадке указанной в расширенном классификаторе ЦБ "STOCK_RATE_PLACE" и если в площадке классификатор не указан, то ищется по площадке указанной в срезе. 3. Если в срезе задана площадка и у фонда значение классификатора "Выбор площадки при определении котировки" равно "TWO", то котировка ищется на площадках указанных вручню в процедуре, в порядке определенном в процедуре, либо по справочнику "Площадки для фонда", в случае отсутствия котировки на первой площадке поиск идет по второй площадке и т.д. Первой площадкой является та, что выбрана в срезе, если же в срезе площадка не задана, то первой считается та, что указана в расширенном классификаторе ЦБ "STOCK_RATE_PLACE" Если значение классификатора "Выбор площадки при определении котировки" не указано, то считается что фонду присвоено значение "TWO" - значение по умолчанию. Поиск НКД (только для облигаций) ведется по всем отобранным площадкам, пока не найден будет первый НКД. Поиск ведется только на дату определения @check_date. Если НКД не найден, то предпринимается попытка рассчитать НКД на дату, на основе введенных купонов в закладке "Список купонов" справочника ЦБ. При поиске НКД, классификатор "Выбор площадки при определении котировки" не обрабатывается. Поиск котировок ведется за период с первой покупки ЦБ в фонде до даты построения среза. Код классификатора "Выбор площадки при определении котировки" - PLACES_IN_RATE_CHECK Если документ "FUND_RATE_PLACES" в базе отсутствует и соответсвенно используются площадки (коды площадок) введенные в процедуре вручную, то в Sybase процедура не будет компилироваться, ссылаясь на отсутствие таблицы tp_fund_rate_places. В этом случае, требуется создать эту таблицу, приведенным ниже скриптом. create table tp_fund_rate_places ( id numeric(18, 0) not null, fund_id numeric(18,0) null, place_id numeric(18,0) null, rorder int null ) go create unique index tp_fund_rate_places_pk on tp_fund_rate_places (id) */ create procedure dbo.%PROC% @stock_id numeric(18,0), -- Ценная бумага @fund_id numeric(18,0), -- Фонд @place_id numeric(18,0), -- Площадка котировок @check_date datetime, -- Дата определения стоимости ЦБ @stock_qty money, -- Кол-во ЦБ @rate_date datetime out, -- Фактическая дата котировки @is_rate int out, -- Тип котировки (0 - прочая, 1 - признаваемая) @stock_rate decimal(18,8) out, -- Котировка ЦБ @coupon_rate decimal(18,8) out, -- Купон ЦБ @stock_sum money out, -- Оценочная стоимость ЦБ @coupon_sum money out, -- Оценочная стоимость купона @sale_place_id numeric(18,0) out -- Торговая площадка as declare @first_date_rate datetime, -- Дата первой покупки ЦБ @subconto_stock_id numeric(18,0), -- Тип субконто "STOCK_EMIS" @acc581_id numeric(18,0), -- Счет 58.1 @plan_id numeric(18,0), -- План счетов "PIF_ACCOUNT" @plan2partner_id numeric(18,0), -- Владелец плана счетов @rate_cur_id numeric(18,0), -- Валюта котировки @stock_rate_cur decimal(18,8), -- Котировка ЦБ @coupon_rate_cur decimal(18,8), -- Купон ЦБ @subconto_str varchar(255), -- Эффективная строка субконто (для SALDO) @saldo_sum decimal(18,4), -- Остаток ЦБ (сумма по балансу) @saldo_qty decimal(18,8), -- Остаток ЦБ (кол-во) @rur_cur_id numeric(18,0), -- Валюта "Российский рубль" @place_cur_id numeric(18,0), -- Валюта площадки котировок @convert_value decimal(18,8), -- Курс целевой валюты к исходной (для CONVERT_SUM_DEC) @convert_date datetime, -- Дата курса (для CONVERT_SUM_DEC) @stock_rate_rur decimal(36,12), -- Котировка ЦБ в рублях (используется при конвертации котировки в Рубли) @coupon_rate_rur decimal(36,12), -- Котировка купона в рублях (используется при конвертации котировки в Рубли) @stock_type_id numeric(18,0), -- Тип ЦБ @class_value_code varchar(255), -- Код площадки из расширенного классификатора в ЦБ @class_comment varchar(255), -- Кол-во знаков округления из комментария в расширенном классификаторе ЦБ (varchar) @place_in_rate_check varchar(10), -- Способ поиска котировки @oper_date datetime, -- Текущая дата поиска котировки, используется как переменная цикла @class_round int, -- Кол-во знаков округления из комментария в расширенном классификаторе ЦБ (int) @is_settings int, -- Признак наличия настроек площадок для фонда (1 - есть, 0 - нет) @addon int -- Переменная, для увеличиния порядка сортировки, для пропуска приоритетной площадки select @subconto_stock_id=.SUBCTYPE_FROM_CODE('STOCK_EMIS') select @plan_id=.PLAN('PIF_ACCOUNT') select @acc581_id=.SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @rur_cur_id=.CUR('RUR') select @stock_type_id=t_stock_types.stock_type_id from td_stock_emis, t_stock_types where td_stock_emis.id = @stock_id and td_stock_emis.stock_type_id = t_stock_types.id -- Владелец плана счетов select @plan2partner_id=t_plans2partner.id from t_plans2partner, t_items, t_states where t_plans2partner.plan_id = @plan_id and t_plans2partner.partner_id = @fund_id and t_plans2partner.id = t_items.id and t_items.state_id = t_states.id and t_states.class_id = 0 -- Первая покупка ЦБ в фонде select @first_date_rate=min(t_oper_list.op_date) from t_oper_list, t_oper_subconto where t_oper_subconto.subconto_type_id = @subconto_stock_id and t_oper_subconto.item_id = @stock_id and t_oper_subconto.id = t_oper_list.id and t_oper_list.deb_or_cred = 1 and t_oper_list.acc_id = @acc581_id and t_oper_list.partner2plan_id = @plan2partner_id and t_oper_list.op_date < dateadd(dd,1,@check_date) -- Нормализация даты (срезаем время) select @first_date_rate=.DATE_NORM(@first_date_rate,B) if @first_date_rate is null select @first_date_rate=convert(datetime,'01/01/1980',103) -- Тип поиска котировок (Максимальная, По одной, По всем выбранным) select @place_in_rate_check=.GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'PLACES_IN_RATE_CHECK','TWO') -- Если тип поиска не задан, то по всем if @place_in_rate_check is null select @place_in_rate_check='TWO' select @place_in_rate_check=upper(@place_in_rate_check) -- Таблица для площадок, по которым идет поиск create table #rate_places ( rorder int not null, place_code varchar(255) null, place_id numeric(18,0) null ) -- Если документа настроек нет в принципе, то и искать настройки не будем if exists(select 1 from sysobjects where name = 'tp_fund_rate_places' and type = 'U') begin -- Если настройки для площадок заданы, то будем использовать их select @is_settings=isnull((select max(1) from tp_fund_rate_places where tp_fund_rate_places.fund_id = @fund_id and .ITEMS_EXISTS_BY_TYPE(tp_fund_rate_places.id,'FUND_RATE_PLACES')),0) end else begin select @is_settings=0 end -- Если в срезе задана площадка, сделаем ее первой для поиска if @place_id is not null begin select @class_value_code=upper(td_rate_places.place_code) from td_rate_places where td_rate_places.id = @place_id and .ITEMS_EXISTS_BY_TYPE(td_rate_places.id,'RATE_PLACES') insert into #rate_places (rorder, place_code, place_id) values(1, @class_value_code, @place_id) end -- площадка из классификатора для ЦБ if @place_id is null and @place_in_rate_check <> 'MAX' begin exec ap_getclassvalue_code @stock_id, 'STOCK_RATE_PLACE', null, @fund_id, @class_value_code out, @class_comment out select @class_value_code=upper(@class_value_code) select @place_id=td_rate_places.id from td_rate_places where upper(td_rate_places.place_code) = @class_value_code and .ITEMS_EXISTS_BY_TYPE(td_rate_places.id,'RATE_PLACES') if @place_id is not null insert into #rate_places (rorder, place_code, place_id) values(1, @class_value_code, @place_id) if isnull(@class_comment,'') <> '' select @class_round=convert(int,@class_comment) end if exists(select 1 from #rate_places where rorder = 1) select @addon=1 else select @addon=0 if @is_settings = 1 begin insert #rate_places (rorder, place_id) select tp_fund_rate_places.rorder+@addon, -- Увеличиваем на единицу, что бы пропустить первую, приоритетную площадку, если она есть tp_fund_rate_places.place_id from tp_fund_rate_places where tp_fund_rate_places.fund_id = @fund_id and .ITEMS_EXISTS_BY_TYPE(tp_fund_rate_places.id,'FUND_RATE_PLACES') and not exists(select 1 from td_rate_places, #rate_places where td_rate_places.id = tp_fund_rate_places.place_id and tp_fund_rate_places.fund_id = @fund_id and upper(td_rate_places.place_code) = upper(#rate_places.place_code) and .ITEMS_EXISTS_BY_TYPE(td_rate_places.id,'RATE_PLACES')) -- Не добавляем уже добавленную, приоритетную площадку order by tp_fund_rate_places.rorder asc -- Устанавливаем коды площадок по ID-ам update #rate_places set place_code=upper(td_rate_places.place_code) from td_rate_places where td_rate_places.id = #rate_places.place_id and .ITEMS_EXISTS_BY_TYPE(td_rate_places.id,'RATE_PLACES') and isnull(#rate_places.place_code,'') = '' end select @oper_date=@check_date -- Если настройки не заданы, то кол-во и порядок площадок назначаем вручную. -- Нумерация порядка площадок должна начинаться с двойки!!! (иначе приоритетную затрем). if @is_settings = 0 begin if not exists(select 1 from #rate_places where place_code = 'MICEX') insert into #rate_places (rorder, place_code) values(2,'MICEX') if not exists(select 1 from #rate_places where place_code = 'RTS') insert into #rate_places (rorder, place_code) values(3,'RTS') if not exists(select 1 from #rate_places where place_code = 'MICEX_MP') insert into #rate_places (rorder, place_code) values(4,'MICEX_MP') if not exists(select 1 from #rate_places where place_code = 'RTS_MP') insert into #rate_places (rorder, place_code) values(5,'RTS_MP') end -- Устанавливаем ID-ы площадок по кодам update #rate_places set place_id=td_rate_places.id from td_rate_places where upper(td_rate_places.place_code) = upper(#rate_places.place_code) and .ITEMS_EXISTS_BY_TYPE(td_rate_places.id,'RATE_PLACES') and #rate_places.place_id is null -- -- Поиск котировки ЦБ -- -- Макисмальная if @place_in_rate_check = 'MAX' begin while @oper_date >= @first_date_rate begin if isnull(@stock_rate_cur,0) = 0 select @stock_rate_cur=max(tb_stock_rates.acknowledged_price), @is_rate=max(tb_stock_rates.rate_type), @rate_date=max(tb_stock_rates.rate_date), @rate_cur_id=max(tb_stock_rates.rate_cur_id), /*@place_id*/ @sale_place_id=max(tb_stock_rates.rate_place_id) from tb_stock_rates, #rate_places where tb_stock_rates.rate_place_id = #rate_places.place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @oper_date and .ITEMS_EXISTS(tb_stock_rates.id) -- Если котировка найдена, завершаем цикл if isnull(@stock_rate_cur,0) > 0 break select @oper_date=dateadd(dd,-1,@oper_date) end end -- По выбранной площадке else if @place_in_rate_check = 'ONE' begin if @place_id is null select @place_id=#rate_places.place_id from #rate_places where #rate_places.rorder = 1 while @oper_date >= @first_date_rate begin if isnull(@stock_rate_cur,0) = 0 select @stock_rate_cur=tb_stock_rates.acknowledged_price, @is_rate=tb_stock_rates.rate_type, @rate_date=tb_stock_rates.rate_date, @rate_cur_id=tb_stock_rates.rate_cur_id, /*@place_id*/ @sale_place_id=tb_stock_rates.rate_place_id from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @oper_date and .ITEMS_EXISTS(tb_stock_rates.id) -- Если котировка найдена, завершаем цикл if isnull(@stock_rate_cur,0) > 0 break select @oper_date=dateadd(dd,-1,@oper_date) end end -- По всем (выбранным) площадкам else if @place_in_rate_check = 'TWO' begin while @oper_date >= @first_date_rate begin -- Перебор площадок за каждый день (начало цикла) declare rate_places_cur cursor for select place_id from #rate_places order by rorder asc open rate_places_cur fetch rate_places_cur into @place_id while .CURSOR_STATE = 0 begin if isnull(@stock_rate_cur,0) = 0 select @stock_rate_cur=tb_stock_rates.acknowledged_price, @is_rate=tb_stock_rates.rate_type, @rate_date=tb_stock_rates.rate_date, @rate_cur_id=tb_stock_rates.rate_cur_id, /*@place_id*/ @sale_place_id=tb_stock_rates.rate_place_id from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @oper_date and .ITEMS_EXISTS(tb_stock_rates.id) -- Если котировка найдена, завершаем цикл (вложенный) if isnull(@stock_rate_cur,0) > 0 break fetch rate_places_cur into @place_id end -- Перебор площадок за каждый день (конец цикла) close rate_places_cur .DEALLOCATE rate_places_cur -- Если котировка найдена, завершаем цикл (внешний) if isnull(@stock_rate_cur,0) > 0 break select @oper_date=dateadd(dd,-1,@oper_date) end end select @place_cur_id=(select td_rate_places.cur_id from td_rate_places where id=@place_id) -- Оценочная стоимость по остатку if isnull(@stock_rate_cur,0) = 0 begin select @subconto_str=null .SUBC_STR_ADD(@subconto_str, 'STOCK_EMIS', @stock_id) -- Дебетовое сальдо по 58.1 счету и заданной ЦБ .SALDO(@fund_id, 'PIF_ACCOUNT', @check_date, '58.1', @subconto_str, N, 'D', @saldo_sum, @saldo_qty) -- Нормализация сумм для предотвращения деления на ноль if isnull(@saldo_sum,0) = 0 select @saldo_sum=0 if isnull(@saldo_qty,0) = 0 select @saldo_qty=1 -- Округление оценочной стоимости select @stock_sum=convert(money,@saldo_sum,2) select @is_rate=0 end -- -- Поиск НКД -- if @stock_type_id = 2 -- Только по облигациям begin declare rate_places_cur cursor for select place_id from #rate_places order by rorder asc open rate_places_cur fetch rate_places_cur into @place_id while .CURSOR_STATE = 0 begin if isnull(@coupon_rate_cur,0) = 0 select @coupon_rate_cur=tb_stock_rates.coupon_rate, @place_cur_id=tb_stock_rates.rate_cur_id from tb_stock_rates where tb_stock_rates.rate_place_id = @place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.rate_date = @check_date and .ITEMS_EXISTS(tb_stock_rates.id) -- Если НКД найден, завершаем цикл if isnull(@coupon_rate_cur,0) > 0 break fetch rate_places_cur into @place_id end end -- Округление котировки if isnull(@stock_rate_cur,0) <> 0 begin -- Если в классификаторе ЦБ задано кол-во знаков округления котировки, то сначал округлим ее if @class_round is not null select @stock_rate_cur=round(@stock_rate_cur,@class_round) select @rate_cur_id=isnull(@rate_cur_id,@place_cur_id) select @rate_cur_id=isnull(@rate_cur_id,@rur_cur_id) -- Конвертация котировки в Российский рубль if @rur_cur_id = @rate_cur_id select @stock_rate_rur=@stock_rate_cur else begin .CONVERT_SUM_DEC(@rate_cur_id, @rur_cur_id, @check_date, 0, @stock_rate_cur, @stock_rate_rur, @convert_value, @convert_date) end -- Округление котировки (только при установленном классификаторе "TYPE_ROUND_RATES_IN_CALC") -- в противном случае, округлять следует после вычислений с использованием данной котировки if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'TYPE_ROUND_RATES_IN_CALC','BEFORE') = 'BEFORE' begin .PIF_ROUND_RATE(@fund_id, @stock_rate_rur, @stock_rate_rur) end -- Оценочная сумма (кол-во * котировку) select @stock_sum=convert(money,round((convert(decimal(36,12),@stock_qty) * @stock_rate_rur),2)) -- Округление котировки до кол-ва знаков указанных в фонде .PIF_ROUND_RATE(@fund_id, @stock_rate_rur, @stock_rate_rur) -- Определение типа котировки if isnull(@is_rate,0) not in (0,1) select @is_rate=0 -- Передача значения в out-переменную select @stock_rate=convert(decimal(18,8),@stock_rate_rur) end else select @stock_rate=0 -- Расчет купона, если котировка купона не найдена (@stock_type_id = 2 <- базовый тип ЦБ "Облигация") if isnull(@coupon_rate_cur,0) = 0 and @stock_type_id = 2 begin .PIF_CALC_COUPON(@stock_id, @check_date, @coupon_rate_cur, @rate_cur_id) end -- Округление купона if @coupon_rate_cur is not null begin select @rate_cur_id=isnull(@rate_cur_id,@place_cur_id) select @rate_cur_id=isnull(@rate_cur_id,@rur_cur_id) -- Конвертация купона в Российский рубль if @rur_cur_id = @rate_cur_id select @coupon_rate_rur=@coupon_rate_cur else begin .CONVERT_SUM_DEC(@rate_cur_id, @rur_cur_id, @check_date, 0, @coupon_rate_cur, @coupon_rate_rur, @convert_value, @convert_date) end -- Округление купона (только при установленном классификаторе "TYPE_ROUND_RATES_IN_CALC") -- в противном случае, округлять следует после вычислений с использованием данного купона if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fund_id,'TYPE_ROUND_RATES_IN_CALC','BEFORE') = 'BEFORE' begin .PIF_ROUND_RATE(@fund_id, @coupon_rate_rur, @coupon_rate_rur) end -- Оценочная сумма (кол-во * купон) select @coupon_sum=isnull(convert(money,round((convert(decimal(36,12),@stock_qty) * @coupon_rate_rur),2)),0) -- Округление купона до кол-ва знаков указанных в фонде .PIF_ROUND_RATE(@fund_id, @coupon_rate_rur, @coupon_rate_rur) -- Передача значения в out-переменную select @coupon_rate=convert(decimal(18,8),@coupon_rate_rur) end if @rate_date <> @check_date or @is_rate=-1 select @is_rate=0 else select @is_rate=1 /* ------ Добавлено lzk ПЕКИ if (@stock_rate is not null and @stock_rate <> 0) and (@rate_date is not null) select @is_rate = 1 -------------------------------- */ drop table #rate_places $ENDTEXT(14130935) $ENDACTION $ACTION(AP_PIF_CORRECT_COMIS) name=# Корректировка остатков по комиссиям class=9 form=null target_state=null procedure=ap_pif_correct_comis patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130935) create procedure dbo.%PROC% @date_sb varchar(30) = '01/01/80', -- Дата начала отбора партий @date_se varchar(30) = '01/01/06', -- Дата окончания отбора партий @operday_ds varchar(30) = null, -- Проведения корректировки @fund_id_s varchar(30) = null -- Фонд as set nocount on declare @date_b datetime -- Дата начала отбора партий declare @date_e datetime -- Дата окончания отбора партий declare @operday datetime -- Дата проведения коррекции declare @fund_id numeric(18,0) -- Фонд declare @fund_b_id numeric(18,0) -- Фонд (начало диапазона для выборки) declare @fund_e_id numeric(18,0) -- Фонд (конец диапазона для выборки) declare @plan_id numeric(18,0) -- План счетов (PIF_ACCOUNT, NPF_ACCOUNT) declare @fund_type_code varchar(10) -- Тип фонда (PIF_FUND, NPF_FUND) declare @subc_stock_type_id numeric(18,0) -- Тип субконто STOCK_EMIS (ЦБ) declare @subc_stock_item_id numeric(18,0) -- Значение субконто STOCK_EMIS (ЦБ) declare @subc_doc_type_id numeric(18,0) -- Тип субконто DOC_ITEM (Партия) declare @subc_doc_item_id numeric(18,0) -- Значение субконто DOC_ITEM (Партия) declare @subc_assman_type_id numeric(18,0) -- Тип субконто ASSET_MANAGER (Управляющий) (только для NPF) declare @subc_assman_item_id numeric(18,0) -- Значение субконто ASSET_MANAGER (Управляющий) (только для NPF) declare @acc581_id numeric(18,0) -- Счет 58.1 (ЦБ) declare @acc5810_id numeric(18,0) -- Счет 58.10 (Комиссии) declare @subc_str varchar(255) -- Строка субконто declare @out_method_id int -- Метод поиска партий (1 - ФИФО, 2 - ЛИФО, 3 - Выбранная партия) declare @out_sum_method_id int -- Метод учета (1 - средневзвешенная, 2 - по партиям) declare @mode int -- Метод отбора партий (1,2) declare @doc_type_code varchar(50) -- Код документа-партии (D_STOCK_IN_OTHER_DEPO_SD, SD_BROK_BUY) declare @comm_all money -- Все комиссии declare @comm_cur money -- Остаток комиссии declare @price double precision -- Комиссия на 1 ЦБ declare @stock_qty money -- Кол-во ЦБ в сделке declare @stock_qty_cur money -- Кол-во ЦБ в партии declare @doc_name varchar(255) -- Комментарий в проводке declare @partner2plan_id numeric(18,0) -- Владелец плана счетов declare @saldo_sum money -- Остаток на счете суммовой (не используется) declare @partion_id numeric(18,0) -- Общая партия (COMMON_ASSET_INPUT) declare @jour_id numeric(18,0) -- Журнал ручных проводок declare @jour_no varchar(100) -- Номер журнала проводок declare @doc_comment varchar(255) -- Коментарий к журналу проводок declare @debet_subc_name varchar(255) -- Строка субконто для журнала проводок (дебет) declare @credit_subc_name varchar(255) -- Строка субконто для журнала проводок (кредит) declare @op_list_id numeric(18,0) -- Перечень журнала проводок declare @sub_list_id numeric(18,0) -- Перечень аналитики журнала проводок -- Таблица для сбора остатков create table #query_ops ( mode int null, id numeric(18,0) null, day datetime null, sum_bal money null, sum_qty money null, deb_or_cred int null, part_id numeric(18,0) null ) -- Таблица для отбора партий create table #query_grp ( saldo_bal money null, saldo_qty money null, part_id numeric(18,0) null ) if isnull(@operday_ds,'') = '' select @operday=.OPERDAY else select @operday=convert(datetime,@operday_ds,3) select @date_b=convert(datetime,@date_sb,3) select @date_e=convert(datetime,@date_se,3) select @fund_id=convert(numeric(18,0),@fund_id_s) -- Общая партия 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')) -- Получение типов аналитики select @subc_stock_type_id=.SUBCTYPE_FROM_CODE('STOCK_EMIS') select @subc_doc_type_id=.SUBCTYPE_FROM_CODE('DOC_ITEM') select @subc_assman_type_id=.SUBCTYPE_FROM_CODE('ASSET_MANAGER') if @fund_id is null begin select @fund_b_id=-999999999999999998 select @fund_e_id=999999999999999999 end else begin select @fund_b_id=@fund_id select @fund_e_id=@fund_id end -- Отбор фондов для коррекции комиссий declare fund_cur cursor for select td_pay_fond.id, td_pay_fond.out_method_id, td_pay_fond.out_sum_method_id, t_types.type_code from td_pay_fond, t_items, t_types, t_states where td_pay_fond.id = t_items.id and t_items.type_id = t_types.id and upper(t_types.type_code) in ('PIF_FUND','NPF_FUND') and t_items.state_id = t_states.id and t_states.class_id = 0 and td_pay_fond.id between @fund_b_id and @fund_e_id open fund_cur fetch fund_cur into @fund_id, @out_method_id, @out_sum_method_id, @fund_type_code while .CURSOR_STATE = 0 begin if @fund_type_code = 'PIF_FUND' begin select @plan_id=.PLAN('PIF_ACCOUNT') end else if @fund_type_code = 'NPF_FUND' begin select @plan_id=.PLAN('NPF_ACCOUNT') end select @acc581_id=.SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @acc5810_id=.SD_ACCID_FROM_EFFNO(@plan_id,'58.10') -- Ищем журнал ручных проводок select @jour_id=isnull((select j.id from t_man_jours j, t_items i, t_types t, t_states s where j.doc_date = @operday and j.owner_id = @fund_id and j.id = i.id and i.type_id = t.id and upper(t.type_code) = 'MANOPER' and lower(j.doc_comment) like ('%расходов%') and i.state_id = s.id and upper(s.state_code) = 'ED' and s.class_id = 0),-1) -- Если журнал не найден, то создаем новый if isnull(@jour_id,-1) = -1 begin select @doc_comment='#Коррекция: Перевод расходов на приобретение ЦБ по фонду - ' select @doc_comment=@doc_comment+isnull((select partner_name from t_partners where id = @fund_id),'Не задано наименование фонда') .TYPE_INIT('MANOPER',1) .TYPE_ASSIGN(doc_date,@operday,1) .TYPE_ASSIGN(owner_id,@fund_id,1) .TYPE_ASSIGN(doc_comment,@doc_comment,1) .TYPE_INSERT('MANOPER','ED',1) select @jour_id=.TYPE_FIELD(id,1) end else begin -- Очищаем содержимое существующего журнала delete t_items where id in (select id from t_manual_opers where jour_id = @jour_id) delete t_man_op_subc where head_id in (select id from t_manual_opers where jour_id = @jour_id) delete t_manual_opers where jour_id = @jour_id end -- Отбор всех ЦБ declare stock_cur cursor for select td_stock_emis.id from td_stock_emis where .ITEMS_EXISTS_BY_TYPE(td_stock_emis.id,'TD_STOCK_EMIS') open stock_cur fetch stock_cur into @subc_stock_item_id while .CURSOR_STATE = 0 begin select @subc_str='' -- Формируем строку субконто для отбора партий по выбранной в курсоре ЦБ .SUBC_STR_ADD(@subc_str,'STOCK_EMIS',@subc_stock_item_id,Y) -- Очищаем таблицы truncate table #query_ops truncate table #query_grp -- Поиск владельца плана счетов select @partner2plan_id=(select t_plans2partner.id from t_plans2partner where t_plans2partner.plan_id = @plan_id and t_plans2partner.partner_id = @fund_id and .ITEMS_EXISTS(t_plans2partner.id)) -- Отбор остатков insert #query_ops (mode,id,day,sum_bal,sum_qty,deb_or_cred,part_id) select 2, t_oper_list.id, t_oper_list.op_date, isnull(t_oper_list.sum_bal,0), isnull(t_oper_list.qty_sum,0), t_oper_list.deb_or_cred, subs.item_id from t_oper_list, t_oper_subconto subs where t_oper_list.partner2plan_id = @partner2plan_id and t_oper_list.acc_id = @acc581_id and t_oper_list.op_date >= @date_b and t_oper_list.op_date < dateadd(dd,1,@date_e) and t_oper_list.id = subs.id and subs.subconto_type_id= @subc_doc_type_id and isnull(upper(ltrim(t_oper_list.subc_eff_num)),'') like '%'+upper(ltrim(@subc_str))+'%' -- Формирование партий insert into #query_grp (part_id, saldo_bal, saldo_qty) select part_id, sum(sum_bal * deb_or_cred), sum(sum_qty * deb_or_cred) from #query_ops where sum_qty <> 0 group by part_id -- Удаляем "нулевые" партии delete #query_grp where isnull(saldo_bal,0) = 0 and isnull(saldo_qty,0) = 0 if @out_sum_method_id = 1 or (@out_sum_method_id = 2 and @out_method_id in (1,3)) select @mode=1 else if @out_sum_method_id = 2 and @out_method_id = 3 select @mode=2 else select @mode=-1 if @mode = 1 declare tmp_cur_fifo cursor for select o.part_id, o.saldo_bal, o.saldo_qty from #query_grp o, td_depo_docs d where o.part_id = d.id order by d.in_date, d.in_no for read only else if @mode = 2 declare tmp_cur_lifo cursor for select o.part_id, o.saldo_bal, o.saldo_qty from #query_grp o, td_depo_docs d where o.part_id = d.id order by d.in_date desc, d.in_no desc for read only else if @mode = -1 begin select 'Неизвестный методо списания!!!' select @out_sum_method_id as out_sum_method_id, @out_method_id as out_method_id, @fund_id as fund_id return end if @mode = 1 begin open tmp_cur_fifo fetch tmp_cur_fifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end else begin open tmp_cur_lifo fetch tmp_cur_lifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end while .CURSOR_STATE = 0 begin select @subc_doc_item_id=@subc_doc_item_id select @stock_qty_cur=@stock_qty_cur select @comm_all=0 select @stock_qty=0 -- Для общей партии, суммируем комиссии всех сделок по выбранной ЦБ if @subc_doc_item_id = @partion_id begin -- Из биржевых сделок select @comm_all=isnull(sum(isnull(tb_baysale_docitems.comm_ts,0) +isnull(tb_baysale_docitems.comm_brok,0) +isnull(tb_baysale_docitems.comm_depo,0) +isnull(tb_baysale_docitems.comm_other,0)),0), @stock_qty=isnull(sum(tb_baysale_docitems.stock_qty),0) from tb_baysale_docitems, t_sd_info4oper, td_depo_docs where tb_baysale_docitems.stock_id = @subc_stock_item_id -- and tb_baysale_docitems.is_comm_in_sum = 0 -- Комиссия не входит в сумму сделки and td_depo_docs.id = tb_baysale_docitems.id and td_depo_docs.owner_id = @fund_id and .ITEMS_EXISTS_BY_TYPE_STATE(tb_baysale_docitems.id,'SD_BROK_BUY','CRT') and t_sd_info4oper.id = tb_baysale_docitems.id and t_sd_info4oper.op_date between @date_b and @date_e -- Из вне биржевых сделок select @comm_all=isnull(@comm_all,0)+isnull(sum(tb_plan_pays.plan_sum),0), @stock_qty=isnull(@stock_qty,0)+isnull(sum(ts_sd_stock_moves.stock_qty),0) from tb_plans, tb_plan_pays, td_depo_docs, ts_sd_stock_moves, t_relation2purposes, t_purposes where td_depo_docs.arch_date between @date_b and @date_e and td_depo_docs.id = ts_sd_stock_moves.id and ts_sd_stock_moves.stock_id = @subc_stock_item_id and td_depo_docs.owner_id = @fund_id and ts_sd_stock_moves.foundation_id = tb_plans.item_id and tb_plans.id = tb_plan_pays.id and tb_plan_pays.pay_perpose_id <> 1 -- Основной платеж по сделке (simple_type = 4041) and .ITEMS_EXISTS_BY_TYPE_STATE(td_depo_docs.id,'D_STOCK_IN_OTHER_DEPO_SD','OP_END_SD') and t_relation2purposes.doc_id = td_depo_docs.id and t_purposes.id = t_relation2purposes.purpose_id and t_purposes.code = '6002' -- Покупка ЦБ на бирже end else begin -- Для ФИФО/ЛИФО получаем комиссии конкрентной партии select @doc_type_code=upper(t_types.type_code) from t_items, t_types where t_items.id = @subc_doc_item_id and t_items.type_id = t_types.id -- Из биржевых сделок if @doc_type_code = 'SD_BROK_BUY' select @comm_all=isnull(tb_baysale_docitems.comm_ts,0) +isnull(tb_baysale_docitems.comm_brok,0) +isnull(tb_baysale_docitems.comm_depo,0) +isnull(tb_baysale_docitems.comm_other,0), @stock_qty=isnull(tb_baysale_docitems.stock_qty,0) from tb_baysale_docitems where tb_baysale_docitems.id = @subc_doc_item_id and tb_baysale_docitems.is_comm_in_sum = 0 else if @doc_type_code = 'D_STOCK_IN_OTHER_DEPO_SD' -- Из вне биржевых сделок select @comm_all=isnull(sum(tb_plan_pays.plan_sum),0), @stock_qty=isnull(sum(ts_sd_stock_moves.stock_qty),0) from tb_plans, tb_plan_pays, td_depo_docs, ts_sd_stock_moves, t_relation2purposes, t_purposes where td_depo_docs.id = @subc_doc_item_id and td_depo_docs.id = ts_sd_stock_moves.id and td_depo_docs.owner_id = @fund_id and ts_sd_stock_moves.foundation_id = tb_plans.item_id and tb_plans.id = tb_plan_pays.id and tb_plan_pays.pay_perpose_id <> 1 -- Основной платеж по сделке (simple_type = 4041) and .ITEMS_EXISTS_BY_TYPE_STATE(td_depo_docs.id,'D_STOCK_IN_OTHER_DEPO_SD','OP_END_SD') and t_relation2purposes.doc_id = td_depo_docs.id and t_purposes.id = t_relation2purposes.purpose_id and t_purposes.code = '6002' -- Покупка ЦБ на бирже end -- Если комиссий нет, новая итерация цикла, по следующей партии if isnull(@comm_all,0) <= 0 begin if @mode = 1 fetch tmp_cur_fifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur else fetch tmp_cur_lifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur continue end -- Для НПФ необходимо получить значение аналитики Управляющий (ASSET_MANAGER) if @fund_type_code = 'NPF_FUND' begin select @subc_assman_item_id=isnull(td_depo_docs.initiator_id,@fund_id) from td_depo_docs where td_depo_docs.id = @subc_doc_item_id end select @doc_name='#Коррекция: Перевод расходов на приобретение ЦБ по партии: '+.ITEM_NAME(@subc_doc_item_id) -- Вычисляем остаток комиссий (Комиссия сделки(-ок) / кол-во ЦБ в сделке * остаток ЦБ) select @comm_cur=convert(money,(convert(double precision,@comm_all) / convert(double precision,@stock_qty) * convert(double precision,@stock_qty_cur)),2) -- Если комиссии биржи+депо+брокера > 0 if @comm_cur > 0 begin select @debet_subc_name='' select @credit_subc_name='' select @debet_subc_name=.ITEM_NAME(@subc_stock_item_id)+' : ' select @debet_subc_name=@debet_subc_name+.ITEM_NAME(@subc_doc_item_id) select @credit_subc_name=.ITEM_NAME(@subc_stock_item_id)+' : ' select @credit_subc_name=@credit_subc_name+.ITEM_NAME(@subc_doc_item_id) -- Вставка перечня журнала проводок по основным комиссиям (вставка проводок) .TYPE_INIT('MANOPERLIST',2) .TYPE_ASSIGN(jour_id,@jour_id,2) .TYPE_ASSIGN(plan_id,@plan_id,2) .TYPE_ASSIGN(op_date,@operday,2) .TYPE_ASSIGN(rate_date,@operday,2) .TYPE_ASSIGN(op_sum,@comm_cur,2) .TYPE_ASSIGN(op_name,@doc_name,2) .TYPE_ASSIGN(op_comment,@doc_name,2) .TYPE_ASSIGN(debet_id,@acc5810_id,2) .TYPE_ASSIGN(credit_id,@acc581_id,2) .TYPE_ASSIGN(deb_qty,0,2) .TYPE_ASSIGN(cred_qty,0,2) .TYPE_ASSIGN(debet_subc_name,@debet_subc_name,2) .TYPE_ASSIGN(credit_subc_name,@credit_subc_name,2) .TYPE_INSERT('MANOPERLIST','CRT',2) select @op_list_id=.TYPE_FIELD(id,2) -- Вставка перечня аналитики для каждой проводки exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, 1, @subc_stock_type_id, @subc_stock_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, 1, @subc_doc_type_id, @subc_doc_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, -1, @subc_stock_type_id, @subc_stock_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, -1, @subc_doc_type_id, @subc_doc_item_id) -- Вставка аналитики Управляющий для НПФ if @fund_type_code = 'NPF_FUND' begin exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, 1, @subc_assman_type_id, @subc_assman_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, -1, @subc_assman_type_id, @subc_assman_item_id) end end if @mode = 1 begin fetch tmp_cur_fifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end else begin fetch tmp_cur_lifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end end if @mode = 1 begin close tmp_cur_fifo .DEALLOCATE tmp_cur_fifo end else begin close tmp_cur_lifo .DEALLOCATE tmp_cur_lifo end fetch stock_cur into @subc_stock_item_id end close stock_cur .DEALLOCATE stock_cur -- Если журнал заполнен - проставляем номер журнала, иначе удаляем журнал if exists(select 1 from t_manual_opers where jour_id = @jour_id) begin select @jour_no=null .FUND_GEN_NO(@jour_no,0,@operday) update t_man_jours set jour_no=@jour_no where id = @jour_id end else begin delete t_items where id = @jour_id delete t_man_jours where id = @jour_id end fetch fund_cur into @fund_id, @out_method_id, @out_sum_method_id, @fund_type_code end close fund_cur .DEALLOCATE fund_cur $ENDTEXT(14130935) $ENDACTION $ACTION(AP_PIF_CORRECT_OVERV) name=# Корректировка остатков по переоценке ЦБ class=9 form=null target_state=null procedure=ap_pif_correct_overv patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130935) create procedure dbo.%PROC% @date_sb varchar(30) = '01/01/80', -- Дата начала отбора партий @date_se varchar(30) = '01/01/06', -- Дата окончания отбора партий @operday_ds varchar(30) = null, -- Проведения корректировки @fund_id_s varchar(30) = null -- Фонд as set nocount on declare @date_b datetime -- Дата начала отбора партий declare @date_e datetime -- Дата окончания отбора партий declare @operday datetime -- Дата проведения коррекции declare @fund_id numeric(18,0) -- Фонд declare @fund_b_id numeric(18,0) -- Фонд (начало диапазона для выборки) declare @fund_e_id numeric(18,0) -- Фонд (конец диапазона для выборки) declare @plan_id numeric(18,0) -- План счетов (PIF_ACCOUNT, NPF_ACCOUNT) declare @fund_type_code varchar(10) -- Тип фонда (PIF_FUND, NPF_FUND) declare @subc_stock_type_id numeric(18,0) -- Тип субконто STOCK_EMIS (ЦБ) declare @subc_stock_item_id numeric(18,0) -- Значение субконто STOCK_EMIS (ЦБ) declare @subc_doc_type_id numeric(18,0) -- Тип субконто DOC_ITEM (Партия) declare @subc_doc_item_id numeric(18,0) -- Значение субконто DOC_ITEM (Партия) declare @subc_assman_type_id numeric(18,0) -- Тип субконто ASSET_MANAGER (Управляющий) (только для NPF) declare @subc_assman_item_id numeric(18,0) -- Значение субконто ASSET_MANAGER (Управляющий) (только для NPF) declare @acc581_id numeric(18,0) -- Счет 58.1 (ЦБ) declare @acc5811_id numeric(18,0) -- Счет 58.11 (Переоценка) declare @acc863_id numeric(18,0) -- Счет 86.3 (Прирост или уменьшение стоимости имущества Фонда от реализации активов) declare @subc_str varchar(255) -- Строка субконто declare @out_method_id int -- Метод поиска партий (1 - ФИФО, 2 - ЛИФО, 3 - Выбранная партия) declare @out_sum_method_id int -- Метод учета (1 - средневзвешенная, 2 - по партиям) declare @mode int -- Метод отбора партий (1,2) declare @doc_type_code varchar(50) -- Код документа-партии (D_STOCK_IN_OTHER_DEPO_SD, SD_BROK_BUY) declare @comm_all money -- Все комиссии declare @comm_cur money -- Остаток комиссии declare @price double precision -- Комиссия на 1 ЦБ declare @stock_qty money -- Кол-во ЦБ в сделке declare @stock_qty_cur money -- Кол-во ЦБ в партии declare @doc_name varchar(255) -- Комментарий в проводке declare @partner2plan_id numeric(18,0) -- Владелец плана счетов declare @saldo_sum money -- Остаток на счете суммовой (не используется) declare @partion_id numeric(18,0) -- Общая партия (COMMON_ASSET_INPUT) declare @jour_id numeric(18,0) -- Журнал ручных проводок declare @jour_no varchar(100) -- Номер журнала проводок declare @doc_comment varchar(255) -- Коментарий к журналу проводок declare @debet_subc_name varchar(255) -- Строка субконто для журнала проводок (дебет) declare @credit_subc_name varchar(255) -- Строка субконто для журнала проводок (кредит) declare @op_list_id numeric(18,0) -- Перечень журнала проводок declare @sub_list_id numeric(18,0) -- Перечень аналитики журнала проводок declare @del_acc_id numeric(18,0) -- Счет 86.3 для "отрицательной переоценки" declare @diff int -- Прибыль или Убыток (1 или -1) -- Таблица для сбора остатков create table #query_ops ( mode int null, id numeric(18,0) null, day datetime null, sum_bal money null, sum_qty money null, deb_or_cred int null, part_id numeric(18,0) null ) -- Таблица для отбора партий create table #query_grp ( saldo_bal money null, saldo_qty money null, part_id numeric(18,0) null ) if isnull(@operday_ds,'') = '' select @operday=.OPERDAY else select @operday=convert(datetime,@operday_ds,3) select @date_b=convert(datetime,@date_sb,3) select @date_e=convert(datetime,@date_se,3) select @fund_id=convert(numeric(18,0),@fund_id_s) -- Счет для "отрицательной" переоценки select @del_acc_id=.SD_ACCID_FROM_EFFNO(@plan_id,'96.3.1') -- Общая партия 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')) -- Получение типов аналитики select @subc_stock_type_id=.SUBCTYPE_FROM_CODE('STOCK_EMIS') select @subc_doc_type_id=.SUBCTYPE_FROM_CODE('DOC_ITEM') select @subc_assman_type_id=.SUBCTYPE_FROM_CODE('ASSET_MANAGER') if @fund_id is null begin select @fund_b_id=-999999999999999998 select @fund_e_id=999999999999999999 end else begin select @fund_b_id=@fund_id select @fund_e_id=@fund_id end -- Отбор фондов для коррекции комиссий declare fund_cur cursor for select td_pay_fond.id, td_pay_fond.out_method_id, td_pay_fond.out_sum_method_id, t_types.type_code from td_pay_fond, t_items, t_types, t_states where td_pay_fond.id = t_items.id and t_items.type_id = t_types.id and upper(t_types.type_code) in ('PIF_FUND','NPF_FUND') and t_items.state_id = t_states.id and t_states.class_id = 0 and td_pay_fond.id between @fund_b_id and @fund_e_id open fund_cur fetch fund_cur into @fund_id, @out_method_id, @out_sum_method_id, @fund_type_code while .CURSOR_STATE = 0 begin if @fund_type_code = 'PIF_FUND' begin select @plan_id=.PLAN('PIF_ACCOUNT') end else if @fund_type_code = 'NPF_FUND' begin select @plan_id=.PLAN('NPF_ACCOUNT') end select @acc581_id=.SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @acc5811_id=.SD_ACCID_FROM_EFFNO(@plan_id,'58.11') select @acc863_id=.SD_ACCID_FROM_EFFNO(@plan_id,'86.3') -- Ищем журнал ручных проводок select @jour_id=isnull((select j.id from t_man_jours j, t_items i, t_types t, t_states s where j.doc_date = @operday and j.owner_id = @fund_id and j.id = i.id and i.type_id = t.id and upper(t.type_code) = 'MANOPER' and lower(j.doc_comment) like ('%переоценки%') and i.state_id = s.id and upper(s.state_code) = 'ED' and s.class_id = 0),-1) -- Если журнал не найден, то создаем новый if isnull(@jour_id,-1) = -1 begin select @doc_comment='#Коррекция: Перевод переоценки ЦБ по фонду - ' select @doc_comment=@doc_comment+isnull((select partner_name from t_partners where id = @fund_id),'Не задано наименование фонда') .TYPE_INIT('MANOPER',1) .TYPE_ASSIGN(doc_date,@operday,1) .TYPE_ASSIGN(owner_id,@fund_id,1) .TYPE_ASSIGN(doc_comment,@doc_comment,1) .TYPE_INSERT('MANOPER','ED',1) select @jour_id=.TYPE_FIELD(id,1) end else begin -- Очищаем содержимое существующего журнала delete t_items where id in (select id from t_manual_opers where jour_id = @jour_id) delete t_man_op_subc where head_id in (select id from t_manual_opers where jour_id = @jour_id) delete t_manual_opers where jour_id = @jour_id end -- Отбор всех ЦБ declare stock_cur cursor for select td_stock_emis.id from td_stock_emis where .ITEMS_EXISTS_BY_TYPE(td_stock_emis.id,'TD_STOCK_EMIS') open stock_cur fetch stock_cur into @subc_stock_item_id while .CURSOR_STATE = 0 begin select @subc_str='' -- Формируем строку субконто для отбора партий по выбранной в курсоре ЦБ .SUBC_STR_ADD(@subc_str,'STOCK_EMIS',@subc_stock_item_id,Y) -- Очищаем таблицы truncate table #query_ops truncate table #query_grp -- Поиск владельца плана счетов select @partner2plan_id=(select t_plans2partner.id from t_plans2partner where t_plans2partner.plan_id = @plan_id and t_plans2partner.partner_id = @fund_id and .ITEMS_EXISTS(t_plans2partner.id)) -- Отбор остатков insert #query_ops (mode,id,day,sum_bal,sum_qty,deb_or_cred,part_id) select 2, t_oper_list.id, t_oper_list.op_date, isnull(t_oper_list.sum_bal,0), isnull(t_oper_list.qty_sum,0), t_oper_list.deb_or_cred, subs.item_id from t_oper_list, t_oper_subconto subs, t_oper_list oper_list where t_oper_list.partner2plan_id = @partner2plan_id and t_oper_list.acc_id = @acc581_id and t_oper_list.op_date >= @date_b and t_oper_list.op_date < dateadd(dd,1,@date_e) and t_oper_list.id = subs.id and subs.subconto_type_id= @subc_doc_type_id and isnull(upper(ltrim(t_oper_list.subc_eff_num)),'') like '%'+upper(ltrim(@subc_str))+'%' and t_oper_list.head_id = oper_list.head_id and oper_list.acc_id = @acc863_id -- Формирование партий insert into #query_grp (part_id, saldo_bal, saldo_qty) select part_id, sum(sum_bal * deb_or_cred), sum(sum_qty * deb_or_cred) from #query_ops where sum_bal <> 0 group by part_id -- Удаляем "нулевые" партии delete #query_grp where isnull(saldo_bal,0) = 0 and isnull(saldo_qty,0) = 0 if @out_sum_method_id = 1 or (@out_sum_method_id = 2 and @out_method_id in (1,3)) select @mode=1 else if @out_sum_method_id = 2 and @out_method_id = 2 select @mode=2 else select @mode=-1 if @mode = 1 declare tmp_cur_fifo cursor for select o.part_id, o.saldo_bal, o.saldo_qty from #query_grp o, td_depo_docs d where o.part_id = d.id order by d.in_date, d.in_no for read only else if @mode = 2 declare tmp_cur_lifo cursor for select o.part_id, o.saldo_bal, o.saldo_qty from #query_grp o, td_depo_docs d where o.part_id = d.id order by d.in_date desc, d.in_no desc for read only else if @mode = -1 begin select 'Неизвестный методо списания!!!' select @out_sum_method_id as out_sum_method_id, @out_method_id as out_method_id, @fund_id as fund_id return end if @mode = 1 begin open tmp_cur_fifo fetch tmp_cur_fifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end else begin open tmp_cur_lifo fetch tmp_cur_lifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end while .CURSOR_STATE = 0 begin select @subc_doc_item_id=@subc_doc_item_id -- Если переоценки нет, новая итерация цикла, по следующей партии if isnull(@saldo_sum,0) = 0 begin if @mode = 1 fetch tmp_cur_fifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur else fetch tmp_cur_lifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur continue end if @saldo_sum > 0 select @diff=1 -- Прибыль else select @diff=-1 -- Убыток -- Для НПФ необходимо получить значение аналитики Управляющий (ASSET_MANAGER) if @fund_type_code = 'NPF_FUND' begin select @subc_assman_item_id=isnull(td_depo_docs.initiator_id,@fund_id) from td_depo_docs where td_depo_docs.id = @subc_doc_item_id end select @doc_name='#Коррекция: Перевод расходов на приобретение ЦБ по партии: '+.ITEM_NAME(@subc_doc_item_id) select @debet_subc_name='' select @credit_subc_name='' select @debet_subc_name=.ITEM_NAME(@subc_stock_item_id)+' : ' select @debet_subc_name=@debet_subc_name+.ITEM_NAME(@subc_doc_item_id) select @credit_subc_name=.ITEM_NAME(@subc_stock_item_id)+' : ' select @credit_subc_name=@credit_subc_name+.ITEM_NAME(@subc_doc_item_id) -- Вставка перечня журнала проводок (вставка проводок) .TYPE_INIT('MANOPERLIST',2) .TYPE_ASSIGN(jour_id,@jour_id,2) .TYPE_ASSIGN(plan_id,@plan_id,2) .TYPE_ASSIGN(op_date,@operday,2) .TYPE_ASSIGN(rate_date,@operday,2) .TYPE_ASSIGN(op_name,@doc_name,2) .TYPE_ASSIGN(op_comment,@doc_name,2) if @diff = 1 begin .TYPE_ASSIGN(debet_id,@acc5811_id,2) .TYPE_ASSIGN(credit_id,@acc581_id,2) .TYPE_ASSIGN(op_sum,@saldo_sum,2) end else begin .TYPE_ASSIGN(debet_id,@acc581_id,2) .TYPE_ASSIGN(credit_id,@acc5811_id,2) .TYPE_ASSIGN(op_sum,(@saldo_sum*-1),2) end .TYPE_ASSIGN(deb_qty,0,2) .TYPE_ASSIGN(cred_qty,0,2) .TYPE_ASSIGN(debet_subc_name,@debet_subc_name,2) .TYPE_ASSIGN(credit_subc_name,@credit_subc_name,2) .TYPE_INSERT('MANOPERLIST','CRT',2) select @op_list_id=.TYPE_FIELD(id,2) -- Вставка перечня аналитики для каждой проводки exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, @diff, @subc_stock_type_id, @subc_stock_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, @diff, @subc_doc_type_id, @subc_doc_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, @diff*-1, @subc_stock_type_id, @subc_stock_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, @diff*-1, @subc_doc_type_id, @subc_doc_item_id) -- Вставка аналитики Управляющий для НПФ if @fund_type_code = 'NPF_FUND' begin exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, @diff, @subc_assman_type_id, @subc_assman_item_id) exec ap_getid @sub_list_id out insert t_man_op_subc (id, head_id, deb_or_cred, subconto_type_id, item_id) values (@sub_list_id, @op_list_id, @diff*-1, @subc_assman_type_id, @subc_assman_item_id) end if @mode = 1 begin fetch tmp_cur_fifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end else begin fetch tmp_cur_lifo into @subc_doc_item_id, @saldo_sum, @stock_qty_cur end end if @mode = 1 begin close tmp_cur_fifo .DEALLOCATE tmp_cur_fifo end else begin close tmp_cur_lifo .DEALLOCATE tmp_cur_lifo end fetch stock_cur into @subc_stock_item_id end close stock_cur .DEALLOCATE stock_cur -- Если журнал заполнен - проставляем номер журнала, иначе удаляем журнал if exists(select 1 from t_manual_opers where jour_id = @jour_id) begin select @jour_no=null .FUND_GEN_NO(@jour_no,0,@operday) update t_man_jours set jour_no=@jour_no where id = @jour_id end else begin delete t_items where id = @jour_id delete t_man_jours where id = @jour_id end fetch fund_cur into @fund_id, @out_method_id, @out_sum_method_id, @fund_type_code end close fund_cur .DEALLOCATE fund_cur $ENDTEXT(14130935) $ENDACTION $ACTION(PIF_SREZ_ACCOUNTS_CALCULATE) name=Пересчет остатков по активам class=9 form=null target_state=null procedure=ap_10000000000088890 patterns=GENERIC_MOVE user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130935) 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 tran select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .GET_PROPS .TRANSACTION_SAVE declare @plan_id numeric select @plan_id=.ARG_PLAN('PIF_ACCOUNT') if @plan_id is null .EXIT_MESSAGE('Не найден план PIF_ACCOUNT') declare @plan2partner numeric select @plan2partner=(select t_plans2partner.id from t_plans2partner,.ACTUAL_TABLES where t_plans2partner.plan_id=@plan_id and t_plans2partner.partner_id=@fond_id .ACTUAL_WHERE(t_plans2partner.id)) if @plan2partner is null .EXIT_MESSAGE('У фонда нет плана счетов PIF_ACCOUNT') declare @acc_51 numeric declare @acc_57 numeric declare @acc_58_1 numeric declare @acc_58_2 numeric declare @acc_58_3 numeric declare @acc_08_1 numeric declare @acc_01_1 numeric declare @acc_76_10_id numeric declare @acc551_id numeric select @acc_51 = .SD_ACCID_FROM_EFFNO(@plan_id,'51') select @acc_57 = .SD_ACCID_FROM_EFFNO(@plan_id,'57') select @acc_01_1 = .SD_ACCID_FROM_EFFNO(@plan_id,'01.1') select @acc_58_1 = .SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @acc_58_3 = .SD_ACCID_FROM_EFFNO(@plan_id,'58.3') select @acc_58_2 = .SD_ACCID_FROM_EFFNO(@plan_id,'58.2') select @acc_08_1 = .SD_ACCID_FROM_EFFNO(@plan_id,'08.1') select @acc_76_10_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.10') -- Определение ДС для фонда на брокерских счетах -- ACTIV - как денежные ср-ва иначе как задолжность if .GET_CLASS_VALUE_CODE_FOR_ITEM(@fond_id,'PIF_BROKER_MONEY','ACTIV')='ACTIV' select @acc551_id = .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.4') else select @acc551_id = -1 create table #oper_list( oper_list_id numeric null, object_qty money null, bal_sum money null, deb_or_cred int, acc_id numeric) create table #report( object_id numeric null, object_qty money null, bal_sum money null, acc_id numeric) declare @cur_period_id numeric, @cur_period_date datetime /* Ищем закрытый период */ select @cur_period_id = (select id from t_periods where partner2plan_id = @plan2partner and period_date = (select max(period_date) from t_periods where partner2plan_id=@plan2partner and period_date < @srez_date)) select @cur_period_date = (select period_date from t_periods where id = @cur_period_id) declare @cur_stock_subconto numeric, @cur_other_subconto numeric, @cur_bank_subconto numeric, @cur_doc_subconto numeric, @cur_partners_subconto numeric, @cur_exchange_subconto numeric select @cur_stock_subconto = .SUBCTYPE_FROM_CODE('stock_emis') select @cur_other_subconto = .SUBCTYPE_FROM_CODE('other_assets') select @cur_bank_subconto = .SUBCTYPE_FROM_CODE('bank_account') select @cur_doc_subconto = .SUBCTYPE_FROM_CODE('doc_item') select @cur_partners_subconto = .SUBCTYPE_FROM_CODE('partners') select @cur_exchange_subconto = .SUBCTYPE_FROM_CODE('exchange') 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,object_qty,bal_sum,deb_or_cred,acc_id) select t_account_history.id, t_account_history.saldo_qty, t_account_history.saldo, t_account_history.deb_or_cred, t_account_history.acc_id from t_account_history, t_acchistory_subconto subc1 where t_account_history.period_id = @cur_period_id and t_account_history.id = subc1.id and t_account_history.acc_id in (@acc_58_2,@acc_58_3,@acc_08_1,@acc_01_1,@acc_51,@acc_57,@acc_76_10_id,@acc551_id) and subc1.subconto_type_id not in (@cur_doc_subconto,@cur_partners_subconto,@cur_exchange_subconto) insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_58_3, subc2.item_id, sum(isnull(#oper_list.object_qty*#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_other_subconto and #oper_list.acc_id=@acc_58_3 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_58_2, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_58_2 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_51, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_51 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc551_id, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc551_id group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_76_10_id, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_76_10_id group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_57, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_57 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_08_1, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_other_subconto and #oper_list.acc_id=@acc_08_1 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_01_1, subc2.item_id, sum(isnull(#oper_list.object_qty *#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum *#oper_list.deb_or_cred,0)) from #oper_list,t_acchistory_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_other_subconto and #oper_list.acc_id=@acc_01_1 group by subc2.item_id end truncate table #oper_list insert into #oper_list(oper_list_id,object_qty,bal_sum,deb_or_cred,acc_id) select t_oper_list.id, t_oper_list.qty_sum, t_oper_list.sum_bal, t_oper_list.deb_or_cred, t_oper_list.acc_id from t_oper_list, t_oper_subconto subc1 where t_oper_list.partner2plan_id = @plan2partner and t_oper_list.op_date >= @cur_period_date and t_oper_list.op_date < dateadd(day, 1, @srez_date) and t_oper_list.id = subc1.id and t_oper_list.acc_id in (@acc_58_2,@acc_58_3,@acc_08_1,@acc_01_1,@acc_51,@acc_57,@acc_76_10_id,@acc551_id) and subc1.subconto_type_id not in (@cur_doc_subconto,@cur_partners_subconto,@cur_exchange_subconto) insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_58_3, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_other_subconto and #oper_list.acc_id=@acc_58_3 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_58_2, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_58_2 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_51, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_51 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc551_id, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc551_id group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_76_10_id, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_76_10_id group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_57, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_bank_subconto and #oper_list.acc_id=@acc_57 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_08_1, subc2.item_id, sum(isnull(#oper_list.object_qty*#oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_other_subconto and #oper_list.acc_id=@acc_08_1 group by subc2.item_id insert into #report(acc_id, object_id, object_qty,bal_sum) select @acc_01_1, subc2.item_id, sum(isnull(#oper_list.object_qty * #oper_list.deb_or_cred,0)), sum(isnull(#oper_list.bal_sum * #oper_list.deb_or_cred,0)) from #oper_list, t_oper_subconto subc2 where #oper_list.oper_list_id = subc2.id and subc2.subconto_type_id=@cur_other_subconto and #oper_list.acc_id=@acc_01_1 group by subc2.item_id truncate table #oper_list 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_types.id=t_items.type_id and upper(t_types.type_code)='PIF_SREZ_ACCOUNTS' 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 @c_object_id numeric, @c_object_qty money, @c_bal_sum money, @c_acc_id numeric, @c_ocen_sum money declare cur1 cursor for select object_id, object_qty, bal_sum, acc_id from #report where bal_sum<>0 and acc_id<>@acc_76_10_id open cur1 fetch cur1 into @c_object_id, @c_object_qty, @c_bal_sum, @c_acc_id while .CURSOR_STATE = 0 begin select @c_ocen_sum=null -- оценка депозита ----------- if @c_acc_id = @acc_58_2 select @c_ocen_sum = @c_bal_sum + (select sum(bal_sum) from #report where object_id=@c_object_id and acc_id=@acc_76_10_id) -- оценка недв. и пр.активов ----------- if @c_acc_id in (@acc_58_3, @acc_08_1, @acc_01_1) begin exec ap_get_asset_valuation @stock_id = @c_object_id, @fund_id = @fond_id, @check_date = @srez_date, @stock_qty = @c_object_qty, @stock_sum = @c_ocen_sum out if @@error <> 0 begin if @@trancount <> 0 rollback tran return end end ------------------------------ if isnull(@c_ocen_sum,0)=0 select @c_ocen_sum=@c_bal_sum if not (@c_object_qty=0 and @c_acc_id in (@acc_58_3,@acc_08_1,@acc_01_1)) and isnull(@c_bal_sum,0)<>0 begin .TYPE_INIT('PIF_SREZ_ACCOUNTS') .TYPE_ASSIGN(srez_id,@id) .TYPE_ASSIGN(stock_sum,@c_ocen_sum) .TYPE_ASSIGN(stock_id,@c_object_id) .TYPE_ASSIGN(stock_qty,@c_object_qty) .TYPE_ASSIGN(bal_sum,@c_bal_sum) .TYPE_ASSIGN(acc_id,@c_acc_id) .TYPE_INSERT('PIF_SREZ_ACCOUNTS','CRT') end fetch cur1 into @c_object_id, @c_object_qty,@c_bal_sum,@c_acc_id end close cur1 .DEALLOCATE cur1 drop table #oper_list drop table #report .TRANSACTION_RESTORE commit tran $ENDTEXT(14130935) $ENDACTION $ACTION(PIF_SREZ_ADD_INFO_CALC) name=Пересчет пунктов (Доп. информация) class=9 form=null target_state=null procedure=ap_30000000003502585 patterns=GENERIC_MOVE user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130935) 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 select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .GET_PROPS declare @start_date datetime, --начальная дата @start_srez numeric select @start_srez=@startsrez_id if @srez_date_b is null select @start_date=convert(datetime,'01/01/1800') else select @start_date=@srez_date_b select @start_date=dateadd(dd,1,@start_date) .TRANSACTION_SAVE create table #report( row_code varchar(50) not null, row_name varchar(255) not null, row_sum money null, row_qty decimal(18,8) null ) begin tran declare @plan_id numeric select @plan_id=.ARG_PLAN('PIF_ACCOUNT') if @plan_id is null .EXIT_MESSAGE('Не найден план PIF_ACCOUNT') declare @plan2partner numeric select @plan2partner=(select t_plans2partner.id from t_plans2partner,.ACTUAL_TABLES where t_plans2partner.plan_id=@plan_id and t_plans2partner.partner_id=@fond_id .ACTUAL_WHERE(t_plans2partner.id)) if @plan2partner is null .EXIT_MESSAGE('У фонда нет плана счетов PIF_ACCOUNT') declare @acc_011 numeric, @acc_551 numeric, @acc_581 numeric, @acc_5810 numeric, @acc_5811 numeric, @acc_583 numeric, @acc_761 numeric, @acc_7610 numeric, @acc_7611 numeric, @acc_7612 numeric, @acc_7613 numeric, @acc_7614 numeric, @acc_7615 numeric, @acc_7616 numeric, @acc_7617 numeric, @acc_7618 numeric, @acc_762 numeric, @acc_763 numeric, @acc_7641 numeric, @acc_7642 numeric, @acc_7651 numeric, @acc_7652 numeric, @acc_7653 numeric, @acc_7654 numeric, @acc_7655 numeric, @acc_766 numeric, @acc_767 numeric, @acc_768 numeric, @acc_769 numeric, @acc_861 numeric, @acc_862 numeric, @acc_863 numeric, @acc_865 numeric, @acc_901 numeric, @acc_902 numeric, @acc_962 numeric select @acc_011= .SD_ACCID_FROM_EFFNO(@plan_id,'01.1') select @acc_551= .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.4') select @acc_581= .SD_ACCID_FROM_EFFNO(@plan_id,'58.1') select @acc_583= .SD_ACCID_FROM_EFFNO(@plan_id,'58.3') select @acc_761= .SD_ACCID_FROM_EFFNO(@plan_id,'76.1') select @acc_7610= .SD_ACCID_FROM_EFFNO(@plan_id,'76.10') select @acc_7611= .SD_ACCID_FROM_EFFNO(@plan_id,'76.11') select @acc_7612= .SD_ACCID_FROM_EFFNO(@plan_id,'76.12') select @acc_7613= .SD_ACCID_FROM_EFFNO(@plan_id,'76.13') select @acc_7614= .SD_ACCID_FROM_EFFNO(@plan_id,'76.14') select @acc_7615= .SD_ACCID_FROM_EFFNO(@plan_id,'76.15') select @acc_7616= .SD_ACCID_FROM_EFFNO(@plan_id,'76.16') select @acc_7617= .SD_ACCID_FROM_EFFNO(@plan_id,'76.17') select @acc_7618= .SD_ACCID_FROM_EFFNO(@plan_id,'76.18') select @acc_762= .SD_ACCID_FROM_EFFNO(@plan_id,'76.2') select @acc_763= .SD_ACCID_FROM_EFFNO(@plan_id,'76.3') select @acc_7641= .SD_ACCID_FROM_EFFNO(@plan_id,'76.4.1') select @acc_7642= .SD_ACCID_FROM_EFFNO(@plan_id,'76.4.2') select @acc_7651= .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.1') select @acc_7652= .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.2') select @acc_7653= .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.3') select @acc_7654= .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.4') select @acc_7655= .SD_ACCID_FROM_EFFNO(@plan_id,'76.5.5') select @acc_766= .SD_ACCID_FROM_EFFNO(@plan_id,'76.6') select @acc_767= .SD_ACCID_FROM_EFFNO(@plan_id,'76.7') select @acc_768= .SD_ACCID_FROM_EFFNO(@plan_id,'76.8') select @acc_769= .SD_ACCID_FROM_EFFNO(@plan_id,'76.9') select @acc_861= .SD_ACCID_FROM_EFFNO(@plan_id,'96.1') select @acc_862= .SD_ACCID_FROM_EFFNO(@plan_id,'96.2') select @acc_863= .SD_ACCID_FROM_EFFNO(@plan_id,'96.3.1') --10/09/04 select @acc_865= .SD_ACCID_FROM_EFFNO(@plan_id,'86.5') select @acc_901= .SD_ACCID_FROM_EFFNO(@plan_id,'48.1') select @acc_902= .SD_ACCID_FROM_EFFNO(@plan_id,'48.2') --select @acc_962= .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') --.GET_CLASS_VALUE_CODE_FOR_ITEM_D(@fond_id,'PIF_OTHER_RESERVE','NOT_IN_SCHA',@srez_date) --if @class_value_ok = 1 select @acc_962 = .SD_ACCID_FROM_EFFNO(@plan_id,'89.2') -- сие счет 96.2 по новому плану --else -- select @acc_962 = -1 declare @sd_scha_2005_d datetime select @sd_scha_2005_d=convert(datetime,(.GET_CONST('SD_SCHA_2005')),3) if @sd_scha_2005_d <= @srez_date begin select @acc_5810=.SD_ACCID_FROM_EFFNO(@plan_id,'58.10') select @acc_5811=.SD_ACCID_FROM_EFFNO(@plan_id,'58.11') end else begin select @acc_5810=-1 select @acc_5811=-1 end /* -- ДЛЯ СТАРОЙ ВЕРСИИ ------------------------------------------- declare @acc_90 numeric, @acc_962 numeric select @acc_90=.SD_ACCID_FROM_EFFNO(@plan_id,'90') select @acc_962=.SD_ACCID_FROM_EFFNO(@plan_id,'89.2') select @acc_901=@acc_90, @acc_902=@acc_90, @acc_862=@acc_962 ------------------------------------------------------------- */ declare @sum_bal money, @qty_sum decimal(18,8) ----------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_768 and ol1.deb_or_cred=-1 and ol2.acc_id=@acc_962 and ol2.deb_or_cred=1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code,row_name,row_sum,row_qty) select 'OTHER_RESERVE_FROM_76.8:', 'Резерв на прочие расходы:', isnull(@sum_bal,0),0 --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 ------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_901 and ol1.deb_or_cred=-1 and ol2.acc_id in (@acc_551,@acc_7610,@acc_7611,@acc_7612,@acc_7614,@acc_7615,@acc_7616, @acc_7617,@acc_7618,@acc_762,@acc_763,@acc_7641,@acc_7642,@acc_7651, @acc_7652,@acc_7653,@acc_7654,@acc_7655,@acc_766,@acc_767,@acc_768,@acc_769) and ol2.deb_or_cred=1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'STOCK_SALE_PROCEEDS', 'Выручка от продажи ценных бумаг', isnull(@sum_bal,0),isnull(@qty_sum,0) --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 ------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal*ol1.deb_or_cred,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_902 -- and ol1.deb_or_cred=1 and ol2.acc_id in (@acc_581,@acc_5810,@acc_5811,@acc_7612,@acc_551) -- and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'STOCK_SALE_EXPENSES', 'Расходы, связанные с продажей ценных бумаг', isnull(@sum_bal,0), isnull(@qty_sum,0) --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2, t_operations op where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_901 and ol1.deb_or_cred=-1 and ol2.acc_id=@acc_7613 and ol2.deb_or_cred=1 and ol1.head_id=ol2.head_id and op.id=ol1.head_id and exists (select 1 from t_operations op1, t_oper_list ol902, t_oper_list ol011 where op1.item_id=op.item_id and ol902.head_id=op1.id and ol011.head_id=op1.id and ol011.partner2plan_id = @plan2partner and ol902.partner2plan_id = @plan2partner and ol011.op_date >= @start_date and ol902.op_date >= @start_date and ol011.op_date < dateadd(day, 1, @srez_date) and ol902.op_date < dateadd(day, 1, @srez_date) and ol011.acc_id=@acc_011 and ol011.deb_or_cred=-1 and ol902.acc_id=@acc_902 and ol902.deb_or_cred=1 and ol011.id!=ol902.id) and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'REALTY_SALE_PROCEEDS', 'Выручка от продажи недвижимого имущества или передачи имущественных прав на недвижимое имущество', isnull(@sum_bal,0),isnull(@qty_sum,0) --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2, t_operations op where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_902 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_7615 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and op.id=ol1.head_id and exists (select 1 from t_operations op1, t_oper_list ol902, t_oper_list ol011 where op1.item_id=op.item_id and ol902.head_id=op1.id and ol011.head_id=op1.id and ol011.partner2plan_id = @plan2partner and ol902.partner2plan_id = @plan2partner and ol011.op_date >= @start_date and ol902.op_date >= @start_date and ol011.op_date < dateadd(day, 1, @srez_date) and ol902.op_date < dateadd(day, 1, @srez_date) and ol011.acc_id=@acc_011 and ol011.deb_or_cred=-1 and ol902.acc_id=@acc_902 and ol902.deb_or_cred=1 and ol011.id!=ol902.id) and ol1.id!=ol2.id group by ol1.acc_id select @sum_bal=@sum_bal+isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=@qty_sum+isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_902 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_011 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'REALTY_SALE_EXPENSES', 'Расходы, связанные с продажей недвижимого имущества или передачей имущественных прав на недвижимое имущество', @sum_bal,@qty_sum --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2, t_operations op where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_901 and ol1.deb_or_cred=-1 and ol2.acc_id=@acc_7613 and ol2.deb_or_cred=1 and ol1.head_id=ol2.head_id and op.id=ol1.head_id and exists (select 1 from t_operations op1, t_oper_list ol902, t_oper_list ol583 where op1.item_id=op.item_id and ol902.head_id=op1.id and ol583.head_id=op1.id and ol583.partner2plan_id = @plan2partner and ol902.partner2plan_id = @plan2partner and ol583.op_date >= @start_date and ol902.op_date >= @start_date and ol583.op_date < dateadd(day, 1, @srez_date) and ol902.op_date < dateadd(day, 1, @srez_date) and ol583.acc_id=@acc_583 and ol583.deb_or_cred=-1 and ol902.acc_id=@acc_902 and ol902.deb_or_cred=1 and ol583.id!=ol902.id) and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'OTHER_SALE_PROCEEDS', 'Выручка от продажи иного имущества', isnull(@sum_bal,0),isnull(@qty_sum,0) --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2, t_operations op where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_902 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_7615 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and op.id=ol1.head_id and exists (select 1 from t_operations op1, t_oper_list ol902, t_oper_list ol583 where op1.item_id=op.item_id and ol902.head_id=op1.id and ol583.head_id=op1.id and ol583.partner2plan_id = @plan2partner and ol902.partner2plan_id = @plan2partner and ol583.op_date >= @start_date and ol902.op_date >= @start_date and ol583.op_date < dateadd(day, 1, @srez_date) and ol902.op_date < dateadd(day, 1, @srez_date) and ol583.acc_id=@acc_583 and ol583.deb_or_cred=-1 and ol902.acc_id=@acc_902 and ol902.deb_or_cred=1 and ol583.id!=ol902.id) and ol1.id!=ol2.id group by ol1.acc_id select @sum_bal=@sum_bal+isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=@qty_sum+isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_902 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_583 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'OTHER_SALE_EXPENSES', 'Расходы, связанные с продажей иного имущества', @sum_bal,@qty_sum --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- declare @subc_type_id numeric select @subc_type_id=.SUBCTYPE_FROM_CODE('pifdocs') select @sum_bal=isnull(sum(isnull(ol.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol.qty_sum,0)),0) from t_oper_list ol, t_operations o where o.partner2plan_id=@plan2partner and ol.head_id=o.id and ol.acc_id in (@acc_861,@acc_865) and (o.op_date=@start_date) and ol.deb_or_cred=1 and exists(select 1 from t_oper_list ol2, t_oper_subconto os, tp_pif_queries d where ol2.head_id=o.id and ol2.acc_id = @acc_7642 and ol2.deb_or_cred=-1 and os.id=ol2.id and os.subconto_type_id=@subc_type_id and os.item_id=d.id and isnull(d.type_queries,0)=4) select @sum_bal=@sum_bal-isnull(sum(isnull(ol.sum_bal,0)),0), @qty_sum=@qty_sum-isnull(sum(isnull(ol.qty_sum,0)),0) from t_oper_list ol, t_operations o where o.partner2plan_id=@plan2partner and ol.head_id=o.id and ol.acc_id=@acc_865 and (o.op_date=@start_date) and ol.deb_or_cred=-1 and exists(select 1 from t_oper_list ol2, t_oper_subconto os, tp_pif_queries d where ol2.head_id=o.id and ol2.acc_id = @acc_7642 and ol2.deb_or_cred=1 and os.id=ol2.id and os.subconto_type_id=@subc_type_id and os.item_id=d.id and isnull(d.type_queries,0)=4) select @qty_sum=.PAYS_QTY_CALC(@qty_sum,@fond_id) insert into #report(row_code, row_name, row_sum, row_qty) select 'PAYS_EXCHANGE', 'Погашение инвестиционных паев по обмену', @sum_bal, @qty_sum --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol.qty_sum,0)),0) from t_oper_list ol, t_operations o where o.partner2plan_id=@plan2partner and ol.head_id=o.id and ol.acc_id in (@acc_861,@acc_865) and (o.op_date=@start_date) and ol.deb_or_cred=-1 and exists(select 1 from t_oper_list ol2, t_oper_subconto os, tp_pif_queries d, t_paydocs where ol2.head_id=o.id and ol2.acc_id = @acc_7641 and ol2.deb_or_cred=1 and os.id=ol2.id and os.item_id=t_paydocs.id and t_paydocs.pif_pay_id = d.id and isnull(d.type_queries,0)=3) select @qty_sum=.PAYS_QTY_CALC(@qty_sum,@fond_id) insert into #report(row_code, row_name, row_sum, row_qty) select 'PAYS_EXCHANGE_OUT', 'Выдача инвестиционных паев по обмену', @sum_bal, @qty_sum --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --------------------------------------------------------- insert into #report(row_code, row_name, row_sum, row_qty) select 'PAYMENT_PROFIT_MANAGEMENT_ZPIF', 'Выплата дохода от ДУ ЗПИФ', @sum_bal, @qty_sum --------------------------------------------------------- --------------------------------------------------------- ---Среднегодовая СЧА------------ declare @scha_aver money, @scha_count int, @scha_sums money if @start_date is not null begin select @scha_count=count(p.scha_sum), @scha_sums=sum(isnull(p.scha_sum,0)) from tp_pif_price_change p where p.fond_id=@fond_id and p.change_date>=@start_date and .ITEMS_EXISTS(p.id) and p.change_date= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol2.acc_id=@acc_862 and ol2.deb_or_cred=1 and ol1.acc_id=@acc_768 and ol1.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'CTRL_EXPENSES', 'Расходы, связанные с доверительным управлением ПИФ', isnull(@sum_bal,0),isnull(@qty_sum,0) --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 ------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_767 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_863 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id select @sum_bal=@sum_bal-isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=@qty_sum-isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_863 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_767 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'STOCK_SALES_PNKD_RESULT', 'Результат от ПНКД при продаже ценных бумаг', isnull(@sum_bal,0),0 --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 ------------------------------------------------------- -- испр.07.02.05 -- Прибыль select @sum_bal = isnull(sum(o.op_sum),0) from t_oper_list ol1, t_oper_list ol2, t_operations o where o.partner2plan_id = @plan2partner and o.id=ol1.head_id and o.id=ol2.head_id and o.op_date >= @start_date and o.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id in (@acc_581,@acc_766) and ol1.deb_or_cred=1 and ol2.acc_id=@acc_863 and ol2.deb_or_cred=-1 -- Прибыль - Убыток select @sum_bal = @sum_bal - (select isnull(sum(o.op_sum),0) from t_oper_list ol1, t_oper_list ol2, t_operations o where o.partner2plan_id = @plan2partner and o.id=ol1.head_id and o.id=ol2.head_id and o.op_date >= @start_date and o.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id in (@acc_581,@acc_766) and ol1.deb_or_cred=-1 and ol2.acc_id=@acc_863 and ol2.deb_or_cred=1) -- end испр.07.02.05 insert into #report(row_code, row_name, row_sum,row_qty) select 'STOCK_OVERVALUE_RESULT', 'Результат от переоценки ценных бумаг', isnull(@sum_bal,0),isnull(@qty_sum,0) --------------------------------------------------------- select @sum_bal=0, @qty_sum=0 --******************* 24/01/05 - ВТБ ************************* -- Результат от погашения векселя - в 100 строку отчета -- о приросте-уменьшении, а не в 030! ------------------------------------------------------- declare @stock_subconto numeric, @class_stock_type_id numeric, @value_veks_stock_id numeric select @stock_subconto=.SUBCTYPE_FROM_CODE('stock_emis') select @class_stock_type_id=max(id) from t_nclass_types where upper(class_code)='STOCK_TYPE' select @value_veks_stock_id=max(id) from t_nclass_values where class_type_id=@class_stock_type_id and upper(value_code)='VEKS' select @sum_bal=isnull(sum(isnull(o34.op_sum,0)),0)-isnull(sum(isnull(o12.op_sum,0)),0) from t_oper_list ol1, t_oper_list ol2, t_oper_list ol3, t_oper_list ol4, t_operations o12, t_operations o34, t_oper_subconto os where o12.partner2plan_id=@plan2partner and o12.op_date >= @start_date and o12.op_date < dateadd(day, 1, @srez_date) and o34.partner2plan_id=@plan2partner and o34.op_date >= @start_date and o34.op_date < dateadd(day, 1, @srez_date) and o12.item_id=o34.item_id and .ITEMS_EXISTS_BY_TYPE(o12.item_id,'STOCK_REDEMPTION') and o12.id=ol1.head_id and ol1.head_id=ol2.head_id and ol1.acc_id=@acc_902 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_581 and ol2.deb_or_cred=-1 and os.id=ol2.id and os.subconto_type_id=@stock_subconto and (select max(class_value_id) from t_nclass_value2item where item_id=os.item_id and class_value_id is not null and class_type_id=@class_stock_type_id)=@value_veks_stock_id and o34.id=ol3.head_id and ol3.head_id=ol4.head_id and ol3.acc_id=@acc_7653 and ol3.deb_or_cred=1 and ol4.acc_id=@acc_901 and ol4.deb_or_cred=-1 insert into #report(row_code, row_name, row_sum,row_qty) select 'BILLS_PAYMENT_RESULT', 'Результат от погашения векселей', isnull(@sum_bal,0),isnull(@qty_sum,0) --------------------------------------------------------- --******************* конец - 24/01/05 - ВТБ ********************* select @sum_bal=0, @qty_sum=0 ------------------------------------------------------- select @sum_bal=isnull(sum(isnull(ol1.sum_bal,0)),0), @qty_sum=isnull(sum(isnull(ol1.qty_sum,0)),0) from t_oper_list ol1, t_oper_list ol2 where ol1.partner2plan_id = @plan2partner and ol2.partner2plan_id = @plan2partner and ol1.op_date >= @start_date and ol2.op_date >= @start_date and ol1.op_date < dateadd(day, 1, @srez_date) and ol2.op_date < dateadd(day, 1, @srez_date) and ol1.acc_id=@acc_861 and ol1.deb_or_cred=1 and ol2.acc_id=@acc_861 and ol2.deb_or_cred=-1 and ol1.head_id=ol2.head_id and ol1.id!=ol2.id group by ol1.acc_id insert into #report(row_code, row_name, row_sum,row_qty) select 'PAYS_MOVES_SUM', 'Оборот по передаче паев', isnull(@sum_bal,0),isnull((.PAYS_QTY_CALC(@qty_sum,@fond_id)),0) --------------------------------------------------------- ------------Пункты для ввода информации, не собираемой в срезе!!! --отчет о вознаграждении, строки 021-... insert into #report(row_code, row_name, row_sum,row_qty) select 'CTRL_EXPENSES_ACC', 'Ведение расчетного счета', 0,0 insert into #report(row_code, row_name, row_sum,row_qty) select 'CTRL_EXPENSES_PUBL', 'Публикации', 0,0 insert into #report(row_code, row_name, row_sum,row_qty) select 'CTRL_EXPENSES_COMPENS', 'Возмещение расходов', 0,0 --------------------------------------------------------- delete t_items from tp_pif_srez_add_info, t_types where t_items.id = tp_pif_srez_add_info.id and tp_pif_srez_add_info.srez_id = @id and t_types.id=t_items.type_id and upper(t_types.type_code)='PIF_SREZ_ADD_INFO' delete tp_pif_srez_add_info where tp_pif_srez_add_info.srez_id = @id and not exists(select 1 from t_items where id=tp_pif_srez_add_info.id) declare @row_code9_1 varchar(50), @row_name9_1 varchar(255), @row_sum9_1 money, @row_qty9_1 decimal(18,8) declare info_cur cursor for select row_code,row_name,row_sum,row_qty from #report open info_cur fetch info_cur into @row_code9_1,@row_name9_1,@row_sum9_1,@row_qty9_1 while .CURSOR_STATE=0 begin .TYPE_INIT('PIF_SREZ_ADD_INFO',9) .TYPE_ASSIGN(srez_id,@id,9) .TYPE_INSERT('PIF_SREZ_ADD_INFO','CRT',9) fetch info_cur into @row_code9_1,@row_name9_1,@row_sum9_1,@row_qty9_1 end close info_cur .DEALLOCATE info_cur -- срез с нач.остатками ------------------------------------------------------------------------------------- declare @start_id numeric if @srez_date_b is not null begin select @start_id=(select max(s.id) from tp_pif_srez s where .ITEMS_EXISTS(s.id) and s.srez_date>=@srez_date_b and s.srez_date<=@srez_date and s.fond_id=@fond_id and .GET_CLASS_VALUE_CODE_FOR_ITEM(s.id,'PIF_SREZ_TYPE','DEFAULT')='START') if @start_id is not null update tp_pif_srez_add_info set row_sum=isnull(tp_pif_srez_add_info.row_sum,0)+isnull(p.row_sum,0), row_qty=isnull(tp_pif_srez_add_info.row_qty,0)+isnull(p.row_qty,0) from tp_pif_srez_add_info, tp_pif_srez_add_info p where tp_pif_srez_add_info.srez_id=@id and p.srez_id=@start_id and tp_pif_srez_add_info.row_code=p.row_code and .ITEMS_EXISTS(tp_pif_srez_add_info.id) and .ITEMS_EXISTS(p.id) and tp_pif_srez_add_info.row_code in ( 'STOCK_SALE_PROCEEDS', 'STOCK_SALE_EXPENSES', 'CTRL_EXPENSES', 'PAYS_EXCHANGE') end -------------------------------------------------------------------------------------------------------- if @startsrez_id is null update tp_pif_srez_add_info set row_sum=0, row_qty=0 where srez_id=@id commit tran drop table #report .TRANSACTION_RESTORE $ENDTEXT(14130935) $ENDACTION $ACTION(PIF_SREZ_BALANCE_CALCULATE) name=Пересчет остатков по счетам class=9 form=null target_state=null procedure=ap_10000000000088891 patterns=GENERIC_MOVE user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130937) 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) declare @begin_date datetime .GET_PROPS delete t_items from tp_pif_srez_balance where t_items.id = tp_pif_srez_balance.id and tp_pif_srez_balance.srez_id = @id delete tp_pif_srez_balance where tp_pif_srez_balance.srez_id = @id .TRANSACTION_SAVE if @srez_date_b is null select @begin_date = @srez_date else select @begin_date = dateadd(day, 1, @srez_date_b) declare @plan_id numeric select @plan_id=.ARG_PLAN('PIF_ACCOUNT') .TOTALS_QUERY_SUB(@fond_id,@plan_id,@begin_date,@srez_date,ALL,N,N,N,N,N,N,L,N,Y,N,N,D,P) -- для нач.остатков create table #start (acc_id numeric not null, ob_d money not null, ob_c money not null, saldo_d money not null, saldo_c money not null) begin tran declare @cur_acc_id numeric declare @cur_saldo_deb money declare @cur_saldo_cred money declare @cur_obor_deb money declare @cur_obor_cred money declare bal_cur cursor for select acc_id, saldo_de, saldo_ce, obor_d, obor_c from #tmp_oss for read only .TYPE_INIT('pif_srez_balance', 3) open bal_cur fetch bal_cur into @cur_acc_id, @cur_saldo_deb, @cur_saldo_cred, @cur_obor_deb, @cur_obor_cred while (.CURSOR_STATE=0) begin .TYPE_ASSIGN(srez_id,@id,3) .TYPE_ASSIGN(acc_id,@cur_acc_id,3) .TYPE_ASSIGN(saldo_deb, @cur_saldo_deb, 3) .TYPE_ASSIGN(saldo_cred, @cur_saldo_cred, 3) if @srez_date_b is null begin select @cur_obor_deb = 0 select @cur_obor_cred = 0 end .TYPE_ASSIGN(obor_deb, @cur_obor_deb, 3) .TYPE_ASSIGN(obor_cred, @cur_obor_cred, 3) .TYPE_INSERT('pif_srez_balance','CRT',3) fetch bal_cur into @cur_acc_id, @cur_saldo_deb, @cur_saldo_cred, @cur_obor_deb, @cur_obor_cred end close bal_cur .DEALLOCATE bal_cur -- срез с нач.остатками --------------------------------------------------------------------------------- declare @start_id numeric,@s_acc_id numeric,@s_ob_d money,@s_ob_c money, @cur_id numeric,@s_saldo_d money,@s_saldo_c money,@acc861_id numeric if @srez_date_b is not null begin select @start_id=(select max(s.id) from tp_pif_srez s where .ITEMS_EXISTS(s.id) and s.srez_date>=@srez_date_b and s.srez_date<=@srez_date and s.fond_id=@fond_id and s.id<>@id and .GET_CLASS_VALUE_CODE_FOR_ITEM(s.id,'PIF_SREZ_TYPE','DEFAULT')='START') if @start_id is not null begin select @acc861_id=.SD_ACCID_FROM_EFFNO(@plan_id,'96.1') .TYPE_INIT('PIF_SREZ_BALANCE', 4) insert into #start (acc_id, ob_d, ob_c, saldo_d, saldo_c) select p.acc_id, isnull(p.obor_deb,0), isnull(p.obor_cred,0), isnull(p.saldo_deb,0), isnull(p.saldo_cred,0) from tp_pif_srez_balance p where p.srez_id=@start_id -- and (isnull(p.obor_deb,0)<>0 or isnull(p.obor_cred,0)<>0) and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_BALANCE') declare start cursor for select acc_id, ob_d, ob_c, saldo_d, saldo_c from #start for read only open start fetch start into @s_acc_id, @s_ob_d, @s_ob_c, @s_saldo_d, @s_saldo_c while .CURSOR_STATE=0 begin select @cur_id=(select id from tp_pif_srez_balance p where p.srez_id=@id and p.acc_id=@s_acc_id and .ITEMS_EXISTS_BY_TYPE(p.id,'PIF_SREZ_BALANCE')) select @cur_obor_deb=(select obor_deb from tp_pif_srez_balance where id=@cur_id) select @cur_obor_cred=(select obor_cred from tp_pif_srez_balance where id=@cur_id) if @s_acc_id=@acc861_id select @s_saldo_c=isnull((select sum(o.op_sum) from t_operations o, t_oper_list ol, t_plans2partner p where o.id=ol.head_id and o.partner2plan_id=p.id and p.partner_id=@fond_id and p.plan_id=@plan_id and ol.deb_or_cred=-1 and ol.acc_id=@acc861_id and .DATE_NORM(o.op_date,B)>@srez_date_b and .DATE_NORM(o.op_date,B)<=(select srez_date from tp_pif_srez where id=@start_id) ),0) select @cur_obor_deb=isnull(@cur_obor_deb,0) + @s_ob_d - @s_saldo_d select @cur_obor_cred=isnull(@cur_obor_cred,0) + @s_ob_c - @s_saldo_c if @cur_id is not null update tp_pif_srez_balance set obor_deb=@cur_obor_deb, obor_cred=@cur_obor_cred where id=@cur_id else begin .TYPE_ASSIGN(srez_id,@id,4) .TYPE_ASSIGN(acc_id,@s_acc_id,4) .TYPE_ASSIGN(saldo_deb, 0, 4) .TYPE_ASSIGN(saldo_cred, 0, 4) .TYPE_ASSIGN(obor_deb, @cur_obor_deb, 4) .TYPE_ASSIGN(obor_cred, @cur_obor_cred, 4) .TYPE_INSERT('PIF_SREZ_BALANCE','CRT',4) end fetch start into @s_acc_id, @s_ob_d, @s_ob_c, @s_saldo_d, @s_saldo_c end close start .DEALLOCATE start end end ----------------------------------------------------------------------------------------------------------- commit tran drop table #tmp_oss drop table #tmp_oss_t drop table #tmp_oss_a drop table #start .TRANSACTION_RESTORE end $ENDTEXT(14130937) $ENDACTION $ACTION(PIF_SREZ_CALCULATE) name=Пересчет среза class=9 form=null target_state=CRT procedure=ap_10000000000088892 patterns=GENERIC_MOVE user_define=1 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130937) 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, saldo_bal_clr 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 @acc_ts_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') 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_893_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'89.3') select @acc_ts_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'76.5.4') .GET_CLASS_VALUE_CODE_FOR_ITEM_D(@fond_id,'PIF_OTHER_RESERVE','NOT_IN_SCHA',@srez_date) if @class_value_ok = 1 select @acc_892_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'89.2') -- сие счет 96.2 по новому плану else select @acc_892_id = -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 else begin select @acc_5810 = -1 select @acc_5811 = -1 end 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 insert into #oper_list( oper_list_id, sum_bal) select t_account_history.id, 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) insert into #report(stock_id, saldo_bal_clr) select subc1.item_id, 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 insert into #oper_list( oper_list_id, sum_bal) select t_oper_list.id, 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) insert into #report(stock_id, saldo_bal_clr) select subc1.item_id, 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.%' or t_accounts.id=@acc_ts_id) 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.%' or t_accounts.id=@acc_ts_id) 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), sum(saldo_bal_clr) 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_bal_clr money declare @cur_stock_rate decimal(18,8) declare @cur_coupon_rate decimal(18,8) declare @cur_stock_rur decimal(36,12) declare @cur_coupon_rur decimal(18,8) declare @cur_is_rate smallint declare @rur_cur_id numeric declare @rate_cur_id numeric declare @cur_rate_place_id numeric declare @cur_sale_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 select @cur_sale_rate_place_id=@cur_rate_place_id -- обновления по 42пс declare @cur_stock_sum money, @cur_coupon_sum money, @type_rate_check int, @sd42_date_str varchar(255), @cur_stock_ocen money, @rate_sum_ocen decimal(18,8), @rate_date_ocen datetime, @is_rate_ocen int select @sd42_date_str=.GET_CONST('PIF_42') if @srez_date0 begin if @@trancount<>0 rollback tran return end -- Определение оценочной стоимости ЦБ (котировки) if @sd_scha_2005_d <= @srez_date begin .PIF_CALC_STOCK_PRICE(@cur_stock_id,@fond_id,@cur_rate_place_id,@srez_date,@cur_stock_qty, @cur_rate_date,@cur_is_rate,@cur_stock_rur,@cur_coupon_rur,@cur_stock_sum,@cur_coupon_sum,@cur_sale_rate_place_id) end else begin .PIF_RATE_CHECK(@cur_stock_id,@fond_id,@cur_rate_place_id,@srez_date,@type_rate_check,@cur_stock_qty @cur_rate_date,@cur_is_rate,@cur_stock_rur,@cur_coupon_rur,@cur_stock_sum,@cur_coupon_sum,@rate_cur_id,@cur_sale_rate_place_id) end ------------------------- .TYPE_ASSIGN(srez_id,@id,2) .TYPE_ASSIGN(stock_id,@cur_stock_id,2) .TYPE_ASSIGN(stock_qty, @cur_stock_qty, 2) .TYPE_ASSIGN(bal_sum, @cur_stock_bal, 2) .TYPE_ASSIGN(bal_sum_clr, @cur_stock_bal_clr, 2) -- Котировка и оцен.стоимость if @cur_stock_ocen is not null begin .TYPE_ASSIGN(stock_sum, (round(@cur_stock_ocen,2)), 2) .TYPE_ASSIGN(stock_rate, @rate_sum_ocen, 2) .TYPE_ASSIGN(rate_date, @rate_date_ocen, 2) .TYPE_ASSIGN(is_rate, @is_rate_ocen, 2) end else begin .TYPE_ASSIGN(stock_rate, @cur_stock_rur, 2) select @cur_stock_ocen=isnull(@cur_stock_sum,@cur_stock_bal) .TYPE_ASSIGN(stock_sum, @cur_stock_ocen, 2) .TYPE_ASSIGN(rate_date, @cur_rate_date, 2) .TYPE_ASSIGN(is_rate, @cur_is_rate, 2) end -- НКД .TYPE_ASSIGN(coupon_rate, @cur_coupon_rur, 2) .TYPE_ASSIGN(coupon_sum, @cur_coupon_sum, 2) .TYPE_ASSIGN(sale_place_id, @cur_sale_rate_place_id, 2) .TYPE_INSERT('pif_srez_portfolio','CRT',2) update tp_pif_srez_portfolio set acc_id=@acc_58 where id=@id2_1 fetch srez_cur into @cur_stock_id, @cur_stock_qty, @cur_stock_bal, @cur_stock_bal_clr end close srez_cur .DEALLOCATE srez_cur /* Insert Balance */ declare @cur_acc_id numeric declare @cur_saldo_deb money declare @cur_saldo_cred money declare @cur_foundation_id numeric declare @cur_foundation_date datetime declare @cur_foundation_no varchar(100) /* Insert partners */ declare partners_cur cursor for select acc_id, partner_id, sum(saldo_deb), sum(saldo_cred), foundation_id from #partners group by acc_id, partner_id, foundation_id for read only declare @cur_partner_id numeric .TYPE_INIT('pif_srez_partners', 4) open partners_cur fetch partners_cur into @cur_acc_id, @cur_partner_id, @cur_saldo_deb, @cur_saldo_cred, @cur_foundation_id while (.CURSOR_STATE=0) begin if (@cur_saldo_deb <> @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 '.50.%' 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) /* Buildings */ 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 '.01.1.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) /* Buildings неперерегистрированная */ 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 '.08.1.%' and .ITEMS_EXISTS_BY_TYPE(tp_pif_srez_balance.id,'pif_srez_balance')),0) /* 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) .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) 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(date_b,(dateadd(hh,datepart(hh,getdate()),dateadd(mi,datepart(mi,getdate()),dateadd(ss,datepart(ss,getdate()),(@srez_date))))),7) .TYPE_ASSIGN(doc_date,@srez_date,7) .TYPE_INSERT('SD_ASSET_ENUM','CRT',7) commit tran end $ENDTEXT(14130937) $ENDACTION $ACTION(PIF_SREZ_PAY_OWNERS_CALC) name=Пересчет владельцев инв. паев class=9 form=null target_state=null procedure=ap_30000000003509532 patterns=null user_define=0 isvisible=1 istab=0 posx=0 posy=0 width=0 height=0 proc_text=$TEXT(14130937) 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 select @action_id = %ACTION_ID% select @id = convert(numeric, @sid) .GET_PROPS .TRANSACTION_SAVE -- Таблица для хранения остатков create table #oper_list( partner_id numeric null, acc_id numeric null, deb_or_cred int null, sum_qty decimal(18,8) null, oper_type int null, foundation_id numeric null, sr_acc_id numeric null, acc_type varchar(20) null ) -- Таблица для итоговых данных create table #pay_owners ( partner_id numeric not null, sr_acc_id numeric null, partner_type varchar(20) null, acc_type varchar(20) null, pay_qty_before decimal(18,8) null, pay_qty_acc decimal(18,8) null, pay_qty_alloc decimal(18,8) null, pay_qty_buy decimal(18,8) null, pay_qty_ch_in decimal(18,8) null, pay_qty_ch_out decimal(18,8) null, pay_qty_move_in decimal(18,8) null, pay_qty_move_out decimal(18,8) null ) declare @cur_plan numeric, @cur_partner2plan numeric declare @acc00_id numeric, @acc7641_id numeric, @acc7642_id numeric, @acc861_id numeric declare @cur_period_id numeric, @cur_period_date datetime declare @cur_partners_subconto numeric, @cur_pifdocs_subconto numeric, @cur_doc_item_subconto numeric, @cur_paydocs_subconto numeric select @cur_plan = .ARG_PLAN('PIF_ACCOUNT') select @acc00_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'00') select @acc7641_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'76.4.1') select @acc7642_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'76.4.2') select @acc861_id = .SD_ACCID_FROM_EFFNO(@cur_plan,'96.1') select @cur_partner2plan=(select t_plans2partner.id from t_plans2partner, t_items,t_states where t_plans2partner.plan_id=@cur_plan and t_plans2partner.partner_id=@fond_id and t_plans2partner.id = t_items.id and t_items.state_id = t_states.id and t_states.class_id = 0) if @cur_partner2plan is null .EXIT_MESSAGE('Для заданного фонда не найден план счетов PIF_ACCOUNT') 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_doc_item_subconto = .SUBCTYPE_FROM_CODE('doc_item') -- Даты /* -- GUTA ONLY !!! select @srez_date_b = null */ if @srez_date_b is null select @cur_period_date=convert(datetime, '1/1/1800', 103) else select @cur_period_date=@srez_date_b -- -- Расчет паев по пайщикам -- -- Выдача и зачисление паев по обмену (76.4.1-86.1) insert into #oper_list( partner_id, acc_id, deb_or_cred, sum_qty, oper_type, foundation_id, sr_acc_id) select subc1.item_id, ol1.acc_id, ol1.deb_or_cred, .PAYS_QTY_CALC((sum(ol1.qty_sum)),@fond_id), tpq.type_queries, tpq.id, tpq.subacc_id from t_operations o, t_oper_list ol1, t_oper_list ol2, t_oper_subconto subc1, t_oper_subconto subc2, tp_paymt2pays tpp, tp_pif_queries tpq, tp_extract2claim tpe where o.partner2plan_id = @cur_partner2plan and ol1.head_id = o.id and ol2.head_id=o.id and o.op_date >= dateadd(day, 1, @cur_period_date) and o.op_date < dateadd(day, 1, @srez_date) and ol1.deb_or_cred=-1 and ol1.acc_id = @acc861_id -- кред. and ol2.deb_or_cred=1 and ol2.acc_id = @acc7641_id -- деб. and ol1.id=subc1.id and subc1.subconto_type_id = @cur_partners_subconto and ol2.id=subc2.id and subc2.subconto_type_id = @cur_paydocs_subconto and tpp.paymt_id=subc2.item_id and tpe.id=tpp.pif_pay_id and tpe.claim_id=tpq.id group by tpq.id, tpq.type_queries, subc1.item_id, ol1.acc_id, ol1.deb_or_cred, tpq.subacc_id order by subc1.item_id, tpq.id -- Погашение и списание по обмену (86.1-76.4.2) insert into #oper_list( partner_id, acc_id, deb_or_cred, sum_qty, oper_type, foundation_id, sr_acc_id) select subc1.item_id, ol1.acc_id, ol1.deb_or_cred, .PAYS_QTY_CALC((sum(ol1.qty_sum)),@fond_id), tpq.type_queries, tpq.id, tpq.subacc_id from t_operations o, t_oper_list ol1, t_oper_list ol2, t_oper_subconto subc1, t_oper_subconto subc2, tp_pif_queries tpq where o.partner2plan_id = @cur_partner2plan and ol1.head_id = o.id and ol2.head_id=o.id and o.op_date >= dateadd(day, 1, @cur_period_date) and o.op_date < dateadd(day, 1, @srez_date) and ol1.deb_or_cred=1 and ol1.acc_id = @acc861_id -- деб. and ol2.deb_or_cred=-1 and ol2.acc_id = @acc7642_id -- кред. and ol1.id=subc1.id and subc1.subconto_type_id = @cur_partners_subconto and ol2.id=subc2.id and subc2.subconto_type_id = @cur_pifdocs_subconto and tpq.id=subc2.item_id group by tpq.id, tpq.type_queries, subc1.item_id, ol1.acc_id, ol1.deb_or_cred, tpq.subacc_id order by subc1.item_id, tpq.id -- Передача паев (86.1-86.1) insert into #oper_list( partner_id, acc_id, deb_or_cred, sum_qty, oper_type, foundation_id, sr_acc_id) select subc.item_id, ol.acc_id, ol.deb_or_cred, .PAYS_QTY_CALC(ol.qty_sum,@fond_id), 0, --передача паев o.item_id, (case ol.deb_or_cred when 1 then tpq.subacc_id -- поставщик паев when -1 then tpq.new_subacc_id -- получатель паев end) from t_operations o, t_oper_list ol, t_oper_subconto subc, tp_pif_queries tpq where o.partner2plan_id = @cur_partner2plan and ol.head_id = o.id and o.op_date >= dateadd(day, 1, @cur_period_date) and o.op_date < dateadd(day, 1, @srez_date) and ol.acc_id = @acc861_id and ol.id=subc.id and tpq.id = o.item_id and subc.subconto_type_id = @cur_partners_subconto and exists (select t_types.type_code from t_items, t_types where t_items.id = o.item_id and t_items.type_id = t_types.id and upper(t_types.type_code) = 'TP_PIF_PAYS_MOVES') -- Начальное зачисление паев (00-86.1) insert into #oper_list( partner_id, acc_id, deb_or_cred, sum_qty, oper_type, foundation_id, sr_acc_id) select subc1.item_id, ol1.acc_id, ol1.deb_or_cred, .PAYS_QTY_CALC(ol1.qty_sum,@fond_id), null, null, tps.debet_id from t_operations o, t_oper_list ol1, t_oper_list ol2, t_oper_subconto subc1, t_pif_start_parts tps where o.partner2plan_id = @cur_partner2plan and ol1.head_id = o.id and ol2.head_id=o.id and o.op_date >= dateadd(day, 1, @cur_period_date) and o.op_date < dateadd(day, 1, @srez_date) and ol1.deb_or_cred=-1 and ol1.acc_id = @acc861_id -- кред. and ol2.deb_or_cred=1 and ol2.acc_id = @acc00_id -- деб. and ol1.id=subc1.id and subc1.subconto_type_id = @cur_partners_subconto and tps.id = o.item_id -- Определяем типы счетов update #oper_list set acc_type=upper(tp.depo_acctype_code) from td_depo_accounts ac, td_depo_acctypes tp, td_depo_subacc sb where #oper_list.sr_acc_id = sb.id and ac.id = sb.depo_acc_id and ac.depo_acctypes_id = tp.id -- Суммируем в таблицу по владельцам если задан нач. срез -- то, что было на дату начального среза if @srez_date_b is not null insert #pay_owners (partner_id, pay_qty_before, partner_type, acc_type) select ps.partner_id, sum(isnull(ps.pay_qty_acc,0)), ps.partner_type, ps.acc_type from tp_pif_srez_pay_owners ps where ps.srez_id=@startsrez_id group by ps.partner_id, ps.partner_type, ps.acc_type insert #pay_owners (partner_id, pay_qty_before, acc_type, sr_acc_id) select distinct o.partner_id, 0, acc_type, sr_acc_id from #oper_list o where not exists(select 1 from #pay_owners where #pay_owners.partner_id = o.partner_id and #pay_owners.acc_type = o.acc_type) update #pay_owners set partner_type=case when (tp.is_company=0 and (upper(tc.country_code) like '%RU%' or tc.country_code='1' or tp.country_id is null or upper(tc.country_name) like '%РОС%')) then 'FIS_RF' when (tp.is_company=1 and (upper(tc.country_code) like '%RU%' or tc.country_code='1' or tp.country_id is null or upper(tc.country_name) like '%РОС%')) then 'JUR_RF' when (tp.is_company=0 and not ((upper(tc.country_code) like '%RU%' or tc.country_code='1' or tp.country_id is null or upper(tc.country_name) like '%РОС%') and tp.country_id is null)) then 'FIS_NOT_RF' when (tp.is_company=1 and not ((upper(tc.country_code) like '%RU%' or tc.country_code='1' or tp.country_id is null or upper(tc.country_name) like '%РОС%') and tp.country_id is null)) then 'JUR_NOT_RF' end from t_partners tp, t_countries tc where #pay_owners.partner_id=tp.id and tc.id=*tp.country_id update #pay_owners set pay_qty_before=pay_qty_before +isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type is null),0) --начальное зачисление update #pay_owners set pay_qty_before=pay_qty_before +isnull((select sum(ol.sum_qty*ol.deb_or_cred*(-1)) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=-1),0) update #pay_owners set pay_qty_alloc=isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=1),0) update #pay_owners set pay_qty_buy=isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=2),0) update #pay_owners set pay_qty_ch_in=isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=3),0) update #pay_owners set pay_qty_ch_out=isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=4),0) update #pay_owners set pay_qty_move_in=isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=0 and ol.deb_or_cred=-1),0) update #pay_owners set pay_qty_move_out=isnull((select sum(ol.sum_qty) from #oper_list ol where ol.partner_id=#pay_owners.partner_id and ol.acc_type = #pay_owners.acc_type and ol.oper_type=0 and ol.deb_or_cred=1),0) update #pay_owners set pay_qty_acc=pay_qty_before+pay_qty_alloc+pay_qty_ch_in+pay_qty_move_in -(pay_qty_buy+pay_qty_ch_out+pay_qty_move_out) -- Сохранение результата begin tran delete t_items from tp_pif_srez_pay_owners, t_types where t_items.id = tp_pif_srez_pay_owners.id and tp_pif_srez_pay_owners.srez_id = @id and t_types.id=t_items.type_id and upper(t_types.type_code)='PIF_SREZ_PAY_OWNERS' delete tp_pif_srez_pay_owners where tp_pif_srez_pay_owners.srez_id = @id and not exists(select 1 from t_items where id=tp_pif_srez_pay_owners.id) declare info_cur cursor for select partner_id, partner_type, acc_type, pay_qty_before, pay_qty_acc, pay_qty_alloc, pay_qty_buy, pay_qty_ch_in, pay_qty_ch_out, pay_qty_move_in, pay_qty_move_out from #pay_owners open info_cur .TYPE_INIT('PIF_SREZ_PAY_OWNERS',10) fetch info_cur into @partner_id10_1, @partner_type10_1, @acc_type10_1, @pay_qty_before10_1, @pay_qty_acc10_1,@pay_qty_alloc10_1, @pay_qty_buy10_1, @pay_qty_ch_in10_1, @pay_qty_ch_out10_1, @pay_qty_move_in10_1, @pay_qty_move_out10_1 while .CURSOR_STATE = 0 begin .TYPE_ASSIGN(srez_id,@id,10) .TYPE_INSERT('PIF_SREZ_PAY_OWNERS','CRT',10) fetch info_cur into @partner_id10_1, @partner_type10_1, @acc_type10_1, @pay_qty_before10_1, @pay_qty_acc10_1,@pay_qty_alloc10_1, @pay_qty_buy10_1, @pay_qty_ch_in10_1, @pay_qty_ch_out10_1, @pay_qty_move_in10_1, @pay_qty_move_out10_1 end close info_cur .DEALLOCATE info_cur commit tran drop table #oper_list drop table #pay_owners .TRANSACTION_RESTORE $ENDTEXT(14130937) $ENDACTION $STATE2ACTION(CRT.ACTION1) state=CRT action=ACTION1 $ENDSTATE2ACTION $STATE2ACTION(CRT.ASSET_VALUE_REP) state=CRT action=ASSET_VALUE_REP $ENDSTATE2ACTION $STATE2ACTION(CRT.D_PIF_PARTNER2DEAL_REP) state=CRT action=D_PIF_PARTNER2DEAL_REP $ENDSTATE2ACTION $STATE2ACTION(CRT.D_PIF_PARTNERS_REPORT) state=CRT action=D_PIF_PARTNERS_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.D_PIF_PORTFOLIO_REPORT) state=CRT action=D_PIF_PORTFOLIO_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.D_PIF_SREZ_EDIT) state=CRT action=D_PIF_SREZ_EDIT $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_BALANCE_41PS_LIST) state=CRT action=PIF_BALANCE_41PS_LIST $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_BALANCE_41PS_REP) state=CRT action=PIF_BALANCE_41PS_REP $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SCHA_2004) state=CRT action=PIF_SCHA_2004 $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SCHA_2005) state=CRT action=PIF_SCHA_2005 $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SCHA_2006) state=CRT action=PIF_SCHA_2006 $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SCHA_CH_2005) state=CRT action=PIF_SCHA_CH_2005 $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SCHA_CH_42) state=CRT action=PIF_SCHA_CH_42 $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_CHANGE4PAY) state=CRT action=PIF_SREZ_CHANGE4PAY $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_CHANGE_REPORT) state=CRT action=PIF_SREZ_CHANGE_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_CONFORM_REPORT) state=CRT action=PIF_SREZ_CONFORM_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_INVEST_LIST) state=CRT action=PIF_SREZ_INVEST_LIST $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_INVEST_REPORT) state=CRT action=PIF_SREZ_INVEST_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_LIST) state=CRT action=PIF_SREZ_LIST $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_LIST4QUERY) state=CRT action=PIF_SREZ_LIST4QUERY $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_OPER_REPORT) state=CRT action=PIF_SREZ_OPER_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_SCHA_LIST) state=CRT action=PIF_SREZ_SCHA_LIST $ENDSTATE2ACTION $STATE2ACTION(CRT.PIF_SREZ_SCHA_REPORT) state=CRT action=PIF_SREZ_SCHA_REPORT $ENDSTATE2ACTION $STATE2ACTION(CRT.STOCK_PAY_OWNERS_LIST) state=CRT action=STOCK_PAY_OWNERS_LIST $ENDSTATE2ACTION $STATE2ACTION(CRT.STOCK_PAY_OWNERS_REP) state=CRT action=STOCK_PAY_OWNERS_REP $ENDSTATE2ACTION $STATE2ACTION(CRT.UK_REWARD_LIST) state=CRT action=UK_REWARD_LIST $ENDSTATE2ACTION $STATE2ACTION(CRT.UK_REWARD_REP) state=CRT action=UK_REWARD_REP $ENDSTATE2ACTION $STATE2ACTION(CRT.VALUE_CHANGE_REP) state=CRT action=VALUE_CHANGE_REP $ENDSTATE2ACTION $STATE2ACTION(NEW.PIF_SREZ_ACCOUNTS_CALCULATE) state=NEW action=PIF_SREZ_ACCOUNTS_CALCULATE $ENDSTATE2ACTION $STATE2ACTION(NEW.PIF_SREZ_ADD_INFO_CALC) state=NEW action=PIF_SREZ_ADD_INFO_CALC $ENDSTATE2ACTION $STATE2ACTION(NEW.PIF_SREZ_CALCULATE) state=NEW action=PIF_SREZ_CALCULATE $ENDSTATE2ACTION $STATE2ACTION(NEW.PIF_SREZ_PAY_OWNERS_CALC) state=NEW action=PIF_SREZ_PAY_OWNERS_CALC $ENDSTATE2ACTION $STATE2PROP(CRT.ACTIV_SUM) state=CRT prop=ACTIV_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.SCHA_SUM) state=CRT prop=SCHA_SUM enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.STOCK_PRICE) state=CRT prop=STOCK_PRICE enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $STATE2PROP(CRT.STOCK_QTY) state=CRT prop=STOCK_QTY enable=1 mandatory=0 visible=1 $ENDSTATE2PROP $ENDDOC