create procedure dbo.%PROC% @sid varchar(30) = null, @s_action_history_id numeric, @contract_id numeric, @in_out int, @perpose_id numeric, @stock_id numeric, @stock_qty money, @doc_sum money, @nkd_sum money, @pereoc_sum money, @doc_date datetime, @rate_date datetime, @contragent_id numeric, @partion_id numeric, @deal_id numeric as .BEGIN('N') .CHECK_USER begin tran .ASSIGN(@action_history_id,@s_action_history_id) /*-------Проводки ----------*/ .BACK_PIF_OPERS_BEGIN(@contract_id,@in_out,@perpose_id,null) .NAME_VAR(@home_subc_str) .NAME_VAR(@ext_subc_str) .NAME_VAR(@p2l_subc_str) .NAME_VAR(@type_doc_code) .ID_VAR(@in_contr_id) .ID_VAR(@asset_place_id) select @type_doc_code=.ITEM_TYPE_CODE(@id) ----------- Внутренняя аналитика if upper(@type_doc_code) in ('DEALINGS_VIA_BROKER','DEALINGS_VIA_BROKER_SALE') begin select @asset_place_id=asset_place_id from tb_baysale_docitems where id=@id end else if upper(@type_doc_code) in ('D_STOCK_IN_OTHER_DEPO','D_STOCK_IN') begin select @asset_place_id=to_object_id from td_stock_moves where id=@id end else if upper(@type_doc_code) in ('D_STOCK_OUT_OTHER_DEPO','D_STOCK_OUT') begin select @asset_place_id=from_object_id from td_stock_moves where id=@id end .ID_VAR(@is_realiz666) .ID_VAR(@OwnerId666) .ID_VAR(@OrgId666) .ID_VAR(@PlanMoney666) .ID_VAR(@PlanSecur666) .ID_VAR(@OutMethod666) .ID_VAR(@IsP2L666) .ID_VAR(@IsComIn666) .ID_VAR(@IsAllowMoney666) .ID_VAR(@IsAllowStock666) .ID_VAR(@Asset4Pereoc666) SELECT @OwnerId666 = (SELECT owner_id FROM td_depo_docs WHERE id = CONVERT(NUMERIC, @sid)) .BACK_GET_ORG_PARMS(@OwnerId666, @OrgId666, @PlanMoney666, @PlanSecur666, @OutMethod666, @is_realiz666, @IsP2L666, @IsComIn666, @IsAllowMoney666, @IsAllowStock666, @Asset4Pereoc666) .GET_IN_PARTION(@partion_id,@bo1_out_method_id,@id) --SELECT 'letsko_av_debug', 'ap_pif_stock_inout', @partion_id AS partion_id, @bo1_out_method_id AS bo1_out_method_id, -- @id AS id -- letsko_av -- 19.12.2005 -- новый метод подсчета партий --FIFO = 1 --LIFO = 2 --Sredne = 3 SELECT @bo1_out_method_id = method_id FROM tb_baysale_docitems, tb_portfolio_section WHERE tb_baysale_docitems.id = @id AND tb_baysale_docitems.portfolio_sub_id = tb_portfolio_section.id IF @bo1_out_method_id = 3 BEGIN SELECT @partion_id = ( SELECT td_depo_docs.id FROM td_depo_docs WHERE in_no = 'COMMON_ASSET_INPUT' AND .ITEMS_EXISTS_BY_TYPE(td_depo_docs.id, 'LETTER_IN') ) END ELSE IF (SELECT registr_mode_id FROM td_pay_fond WHERE id = @bo1_owner_id) = 2 SELECT @partion_id = @deal_id -- letsko_av (end) .SUBC_STR_ADD(@home_subc_str,'STOCK_EMIS',@stock_id) .SUBC_STR_ADD(@home_subc_str,'DOC_SEC_IN',@partion_id) select @ext_subc_str = @home_subc_str .SUBC_STR_ADD(@home_subc_str,'INVESTORS',@contract_id) .SUBC_STR_ADD(@home_subc_str,'DOC_SEC',@deal_id) .SUBC_STR_ADD(@home_subc_str,'ASSET_PLACES',@asset_place_id) .SUBC_STR_ADD(@ext_subc_str,'INVESTORS',@contract_id) .SUBC_STR_ADD(@ext_subc_str,'DOC_SEC',@deal_id) .SUBC_STR_ADD(@ext_subc_str,'ASSET_PLACES',@asset_place_id) ----------- Внешняя аналитика IF .PURPOSE_CODE(@perpose_id) NOT IN (29, 93) BEGIN .SUBC_STR_ADD(@ext_subc_str, 'PARTNERS', @contragent_id) END ---- Прибыль .ASSIGN(@p2l_subc_str,'') select @p2l_subc_str=@ext_subc_str .MONEY_VAR(@sum_out_total) .MONEY_VAR(@qty_out_total) .MONEY_VAR(@sum_unkd_out_total) .MONEY_VAR(@sum_com_in_total) ---select @bo1_owner_id=(select owner_id from td_depo_docs where id=convert(numeric,@sid)) --.BACK_SECURS_INOUT_PIF(@stock_qty,@doc_sum,@nkd_sum,@doc_date,@doc_date,null,@home_subc_str,@ext_subc_str,@ext_subc_str,null,0,0,0,@sum_out_total, --@qty_out_total,@sum_unkd_out_total,1,1,@p2l_subc_str,1,1,0,@sum_com_in_total) SELECT @doc_sum = ISNULL(@doc_sum, 0) + ISNULL(@pereoc_sum, 0); /* SELECT 'letsko_av_debug', 'ap_pif_stock_inout', @pereoc_sum AS pereoc_sum, @stock_qty AS stock_qty, @doc_sum AS doc_sum, @nkd_sum AS nkd_sum, @doc_date AS doc_date, @doc_date AS doc_date, @home_subc_str AS home_subc_str, @ext_subc_str AS ext_subc_str, @sum_out_total AS sum_out_total, @qty_out_total AS qty_out_total, @sum_unkd_out_total AS sum_unkd_out_total, @p2l_subc_str AS p2l_subc_str, @is_realiz666 AS is_realiz666, @sum_com_in_total AS sum_com_in_total */ .BACK_SECURS_INOUT_PIF(@stock_qty,@doc_sum,@nkd_sum,@doc_date,@doc_date,NULL,@home_subc_str,@ext_subc_str,@ext_subc_str,NULL,0,0,0,@sum_out_total, @qty_out_total,@sum_unkd_out_total,1,1,@p2l_subc_str,@is_realiz666,1,@IsComIn666,@sum_com_in_total) .INT_VAR(@is_realiz) .INT_VAR(@is_profit) select @is_realiz=@in_out*-1 select @is_profit=@is_realiz ---.EXIT_MESSAGE_PARM('!!!',) ---.ID_VAR(@bo1_owner_id) /* Суммовая разница */ --if @perpose_id in (27,30) --begin --end commit tran .END