#ifndef #close_profit_or_loss #define #close_profit_or_loss declare @saldo_bal_close money, @saldo_bal_close_k money, @saldo_bal_close_d money, @profit_acc_close_id numeric, @realiz_acc_close_id numeric, @mess_res_close varchar(255), @plan_cur_close_id numeric, @fond_own_close_id numeric, @debet_acc_close_id numeric, @credit_acc_close_id numeric, @oper_sum_close money #endif select @saldo_bal_close=0 select @saldo_bal_close_k=0 select @saldo_bal_close_d=0 select @oper_sum_close=0 select @plan_cur_close_id=(select cur_id from t_plans where id=%PLAN_MONEY_ID%) .ACCID_FROM_CONST2PLAN(@realiz_acc_close_id,'BACK_ACC_REALIZ', %PLAN_MONEY_ID%,1,1,'Cчет реализации',@mess_res_close) if convert(numeric,%ACC_ID%) is not null select @realiz_acc_close_id=%ACC_ID% if %TYPE_CLOSE%=1 begin .ACCID_FROM_CONST2PLAN(@profit_acc_close_id,'BACK_ACC_PROFIT_BAYSALE_MAIN',%PLAN_MONEY_ID%,1,1,'Счет прибыли или убытки по сделке (основной)',@mess_res_close) end else if %TYPE_CLOSE%=2 begin .ACCID_FROM_CONST2PLAN(@profit_acc_close_id,'BACK_ACC_PROFIT_BAYSALE_COMIS',%PLAN_MONEY_ID%,1,1,'Счет прибыли или убытки по сделке (по комиссиям)',@mess_res_close) end else if %TYPE_CLOSE%=3 begin .ACCID_FROM_CONST2PLAN(@profit_acc_close_id,'BACK_ACC_PROFIT_BAYSALE_FUTUR',%PLAN_MONEY_ID%,1,1,'Счет прибыли или убытки по сделке (буд. периодов)',@mess_res_close) end else if %TYPE_CLOSE%=4 begin .ACCID_FROM_CONST2PLAN(@profit_acc_close_id,'BACK_ACC_PROFIT_DIVIDEND',%PLAN_MONEY_ID%,1,1,'Счет прибыли для дивидендов',@mess_res_close) end else if %TYPE_CLOSE%=5 begin .ACCID_FROM_CONST2PLAN(@profit_acc_close_id,'BACK_ACC_PROFIT_OTHER',%PLAN_MONEY_ID%,1,1,'Счет прочей прибыли убытка',@mess_res_close) end .SALDO(%OWNER_ID%,%PLAN_MONEY_ID%,%OP_DATE%,@realiz_acc_close_id,%REALIZ_SUBC%,N,K,@saldo_bal_close_k) .SALDO(%OWNER_ID%,%PLAN_MONEY_ID%,%OP_DATE%,@realiz_acc_close_id,%REALIZ_SUBC%,N,D,@saldo_bal_close_d) if isnull(%SUM%,0)>0 select @saldo_bal_close=%SUM%*(-1.0) else begin if @saldo_bal_close_d<>0 select @saldo_bal_close=@saldo_bal_close_d else if @saldo_bal_close_k<>0 select @saldo_bal_close=@saldo_bal_close_k*(-1.0) end if %CHARACTER_ID% = 1 begin .ACCID_FROM_CONST2PLAN(@fond_own_close_id,'BACK_ACC_FUND_MONEY',%PLAN_MONEY_ID%,1,2,'Счет фонда компании',@mess_res_close) end else begin .ACCID_FROM_CONST2PLAN(@fond_own_close_id,'BACK_ACC_FUND_MONEY',%PLAN_MONEY_ID%,1,3,'Счет фонда ДС клиента',@mess_res_close) end if %IS_CALC_PROFIT%=1 begin if @saldo_bal_close>0 --- Убыток begin select @oper_sum_close=@saldo_bal_close --select @mess_res_close='Убыток' select @mess_res_close='Расходы при продаже' select @debet_acc_close_id=@profit_acc_close_id select @credit_acc_close_id=@realiz_acc_close_id end else if @saldo_bal_close<0 --- Прибыль begin select @mess_res_close='Прибыль' select @oper_sum_close=@saldo_bal_close*(-1.0) select @debet_acc_close_id=@realiz_acc_close_id select @credit_acc_close_id=@profit_acc_close_id end IF((ISNULL(@saldo_bal_close,0)) <> 0) BEGIN .OPERATION_SBC(%OWNER_ID%,%PLAN_MONEY_ID%,%OP_DATE%,@debet_acc_close_id,@credit_acc_close_id,@oper_sum_close,@plan_cur_close_id,%OP_DATE%,0,0,@mess_res_close,Y,@operation_id,@id,@action_id,@action_history_id,null,null,%REALIZ_SUBC%,%REALIZ_SUBC%) END if @saldo_bal_close>0 --- Убыток begin --select @mess_res_close='Списание убытка на фонды' select @mess_res_close='Списание расходов при продаже на фонды' select @debet_acc_close_id=@fond_own_close_id select @credit_acc_close_id=@profit_acc_close_id end else if @saldo_bal_close<0 --- Прибыль begin select @mess_res_close='Списание прибыли на фонды' select @debet_acc_close_id=@profit_acc_close_id select @credit_acc_close_id=@fond_own_close_id end IF((ISNULL(@saldo_bal_close,0)) <> 0) BEGIN .OPERATION_SBC(%OWNER_ID%,%PLAN_MONEY_ID%,%OP_DATE%,@debet_acc_close_id,@credit_acc_close_id,@oper_sum_close,@plan_cur_close_id,%OP_DATE%,0,0,@mess_res_close,Y,@operation_id,@id,@action_id,@action_history_id,null,null,%REALIZ_SUBC%,%REALIZ_SUBC%) END end else begin if @saldo_bal_close>0 --- Убыток begin select @mess_res_close='Списание убытка на фонды' select @debet_acc_close_id=@fond_own_close_id select @credit_acc_close_id=@realiz_acc_close_id end else if @saldo_bal_close<0 --- Прибыль begin select @mess_res_close='Списание прибыли на фонды' select @debet_acc_close_id=@realiz_acc_close_id select @credit_acc_close_id=@fond_own_close_id end IF((ISNULL(@saldo_bal_close,0)) <> 0) BEGIN .OPERATION_SBC(%OWNER_ID%,%PLAN_MONEY_ID%,%OP_DATE%,@debet_acc_close_id,@credit_acc_close_id,@oper_sum_close,@plan_cur_close_id,%OP_DATE%,0,0,@mess_res_close,Y,@operation_id,@id,@action_id,@action_history_id,null,null,%REALIZ_SUBC%,%REALIZ_SUBC%) END end