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) .CHECK_USER .CHECK_UPDATE .GET_PROPS declare @fund_plan_id numeric, @acc96_id numeric, @sreg_acc_id numeric, @s_acc_id numeric, @new_acc_id numeric, @qty_saldo money, @bal_qty money, @summ_saldo money, @oper_sum money, @sreg_oper_date datetime, @alloc_date datetime, @stock_qty_bal .PIF_PAY_TYPE, @sum1 money, @sum2 money, @sum3 money, @dop_sum money, @loss_used_sum money, @income_sum money select @sreg_oper_date=@calc_date select @fund_plan_id = .ARG_PLAN('PIF_ACCOUNT') select @acc96_id = .SD_ACCID_FROM_EFFNO(@fund_plan_id,'96.1') .SALDO_FAST(@owner_id,'PIF_ACCOUNT',@sreg_oper_date,@acc96_id,K,Y,'partners',@pay_owner_id,N,N,@summ_saldo,@qty_saldo) select @qty_saldo=isnull(@qty_saldo,0) if isnull(@stock_qty,0)=0 select @stock_qty=.PAYS_QTY_CALC(@qty_saldo,@owner_id) select @bal_qty=.PAYS_QTY_BAL(@stock_qty,@owner_id) .UPDATE_STATE .ACTION_HISTORY exec ap_pifpay_out_parts @owner_id, null, @pay_owner_id, @id, @sreg_oper_date, @sreg_oper_date, @stock_qty, null, null, null, null, null, 1, -- с проводками @id, @action_id, @action_history_id, @sum1 out, @sum2 out, @sum3 out, @oper_sum out, -- бал.стоимость @dop_sum out, -- доп.расходы (пока не считаем!) @alloc_date out, -- дата посл.партии @stock_qty_bal out, -- все к-во с баланса @loss_used_sum out, -- использованный убыток @income_sum out -- прибыль if @@error != 0 begin if @@trancount<>0 rollback tran return end update tp_pif_queries set stock_qty=@stock_qty, total_sum=@oper_sum where id=@id commit tran