create procedure dbo.%PROC% @sid varchar(30) = null, @cur2deal_id_s varchar(30), @item_name varchar(255), @item_remark varchar(255), @in_date_d varchar(30) --, --@stock_id_s varchar(30) = null, --@portfolio_sub_id_s varchar(30) = null, --@sale_place_id_s varchar(30) = null, --@last_date_d varchar(30) as begin .TRANSACTION_SAVE declare @id numeric, @action_id numeric, @state_id numeric, @new_state_id numeric, @user_id numeric select @action_id=%ACTION_ID% select @user_id=(select id from t_users where login_name=.SUSER_NAME) select @id=convert(numeric,@sid) .GET_PROPS --.CHECK_USER --.CHECK_UPDATE /* Определение типа документа сделки */ declare @deal_type varchar(255) declare @cur2deal_id numeric declare @count_copy numeric declare @count numeric select @id = convert(numeric, @sid) select @cur2deal_id = convert(numeric, @cur2deal_id_s) select @deal_type = .ITEM_TYPE_CODE(@cur2deal_id) -- Фильтр сделок для определения общего количества сделок и количества уже скопированных сделок declare @owner_id_nn numeric(18,0) declare @owner_id_bb numeric(18,0) declare @owner_id_ee numeric(18,0) if @owner_id is NULL begin select @owner_id_bb = -999999999999999998 select @owner_id_ee = 999999999999999999 end else select @owner_id_nn = @owner_id declare @stock_id_nn numeric(18,0) declare @stock_id_bb numeric(18,0) declare @stock_id_ee numeric(18,0) if @stock_id is NULL begin select @stock_id_bb = -999999999999999998 select @stock_id_ee = 999999999999999999 end else select @stock_id_nn =@stock_id declare @portfolio_sub_id_nn numeric(18,0) declare @portfolio_sub_id_bb numeric(18,0) declare @portfolio_sub_id_ee numeric(18,0) if @portfolio_sub_id is NULL begin select @portfolio_sub_id_bb = -999999999999999998 select @portfolio_sub_id_ee = 999999999999999999 end else select @portfolio_sub_id_nn =@portfolio_sub_id declare @sale_place_id_nn numeric(18,0) declare @sale_place_id_bb numeric(18,0) declare @sale_place_id_ee numeric(18,0) if @sale_place_id is NULL begin select @sale_place_id_bb = -999999999999999998 select @sale_place_id_ee = 999999999999999999 end else select @sale_place_id_nn =@sale_place_id if upper(@deal_type)='DOG_DEALINGS_BAY_VBR' begin .EXEC_ACTION(@cur2deal_id_s,'DOG_DEALINGS_BAY_VBR','COPY_DEAL_BAY_VBR_MC') end if upper(@deal_type)='DEALINGS_VIA_BROKER' begin .EXEC_ACTION(@cur2deal_id_s,'DEALINGS_VIA_BROKER','COPY_DEAL_BAY_TS_MC') end if upper(@deal_type)='DOG_DEALINGS_SALE_VBR' begin .EXEC_ACTION(@cur2deal_id_s,'DOG_DEALINGS_SALE_VBR','COPY_DEAL_SALE_VBR_MC') end if upper(@deal_type)='DEALINGS_VIA_BROKER_SALE' begin .EXEC_ACTION(@cur2deal_id_s,'DEALINGS_VIA_BROKER_SALE','COPY_DEAL_SALE_TS_MC') end -- Количество набранных по условиям запроса сделок для копирования select @count=(select count(tb_baysale_docitems.id) from tb_baysale_docitems ,t_items,t_states,t_types,td_depo_docs .INDEX(td_depo_docs_date) where t_states.id=t_items.state_id and t_items.id = tb_baysale_docitems.id and t_items.id = td_depo_docs.id and t_types.id=t_items.type_id and t_states.id=t_items.state_id and td_depo_docs.in_date>dateadd(day,-1,@date_b) and td_depo_docs.in_datedateadd(day,-1,@date_b) and td_depo_docs.in_date