create procedure dbo.%PROC% @sid varchar(30) = null, @s_action_history_id numeric, @contract_id numeric, @from_place_class_id numeric, @from_object_id numeric, @to_place_class_id numeric, @to_object_id numeric, @doc_sum money, @doc_date datetime, @cur_id numeric, @from_bank_acc_id numeric, @to_bank_acc_id numeric as .BEGIN('N') .CHECK_USER begin tran .ASSIGN(@action_history_id,@s_action_history_id) /*-------Проводки ----------*/ .NAME_VAR(@from_subc_str) .NAME_VAR(@to_subc_str) .ID_VAR(@from_in_contr_id) .ID_VAR(@to_in_contr_id) declare @doc_date_s_57 datetime ----------- Внутренняя аналитика from if ((select upper(code) from t_move_directions where id = @from_place_class_id) in ('TS','EB','TM_E','OWN','OWN_NEW')) begin select @from_in_contr_id = (select c.client_id from tb_broker2exchange b, tb_contracts c where b.id = @from_object_id and b.ext_broker_deal = c.id ) if @from_in_contr_id is null .EXIT_MESSAGE('Не задан контрагент откуда по договору с торговой площадкой или внешним брокером') --if @from_in_contr_id is not null begin .SUBC_STR_ADD(@from_subc_str,'PARTNERS',@from_in_contr_id) --end end .SUBC_STR_ADD(@from_subc_str,'BANK_ACCOUNT',@from_bank_acc_id) ----------- Внутренняя аналитика to if ((select upper(code) from t_move_directions where id = @to_place_class_id) in ('TS','EB','TM_E','OWN','OWN_NEW')) begin select @to_in_contr_id = (select c.client_id from tb_broker2exchange b, tb_contracts c where b.id = @to_object_id and b.ext_broker_deal = c.id ) if @to_in_contr_id is null .EXIT_MESSAGE('Не задан контрагент куда по договору с торговой площадкой или внешним брокером') --if @to_in_contr_id is not null begin .SUBC_STR_ADD(@to_subc_str,'PARTNERS',@to_in_contr_id) --end end .SUBC_STR_ADD(@to_subc_str,'BANK_ACCOUNT',@to_bank_acc_id) select @doc_date_s_57 = (select t_paydocs.receiving_pay_date from t_paydocs where t_paydocs.id=@id) if rtrim(ltrim(.GET_CONST('CLIENT_CODE'))) = 'DEUTCHE' -- Для Дойчебанка в проводку с 57 счета попадают данные с учетом их алгоритма begin declare @kol_d int exec ap_calc_end_period @doc_date, 1, @doc_date_s_57 out, @kol_d out end .BACK_PIF_OPERS_BEGIN_MOVE(@contract_id,0,@from_place_class_id,@from_object_id,@to_place_class_id,@to_object_id) if .ITEMS_EXISTS_BY_TYPE_STATE(@id,'MONEY_MOVE_COMMISSION_2','ED') begin if rtrim(ltrim(.GET_CONST('CLIENT_CODE'))) = 'DEUTCHE' -- Для Дойчебанка в проводку с 57 счета попадают данные с учетом их алгоритма begin .BACK_MONEY_MOVE_FROM_57(@doc_sum, @doc_date, @doc_date, @cur_id, @from_subc_str, @to_subc_str, null, null, @doc_date_s_57) end else begin .BACK_MONEY_MOVE_TO_57(@doc_sum, @doc_date, @doc_date, @cur_id, @from_subc_str, @from_subc_str, NULL, NULL, @doc_date) end end if rtrim(ltrim(.GET_CONST('CLIENT_CODE'))) = 'DEUTCHE' begin .BACK_MONEY_MOVE_TO_57(@doc_sum,@doc_date,@doc_date, @cur_id, @from_subc_str, @from_subc_str, NULL, NULL, @doc_date_s_57) end else begin .BACK_MONEY_MOVE_FROM_57(@doc_sum,@doc_date_s_57,@doc_date_s_57,@cur_id,@from_subc_str,@to_subc_str,null,null, @doc_date_s_57) end commit tran .END