# Date: 19/07/06 # Version: 105 $PATTERN(.SD_BROK_CHECK) name=Проверка ввода документов SD_BROK_BUY, SD_BROK_SALE class=2 product=ALD_FUND pattern_text=$TEXT(18115924) declare @d_owner_id numeric, @d_initiator_id numeric, @tmp_date datetime, @r_date datetime, @r_sum money, @tmp_cur money, @base_sum money -- время select @transaction_time=.TIME_FROM_DATE(@transaction_time) -- брок.договор if @direction_id is not null begin select @d_owner_id=owner_id, @d_initiator_id=initiator_id from td_depo_docs where id=@direction_id if @d_owner_id<>@owner_id .EXIT_MESSAGE('Выберите брокерский договор для указанного фонда') if isnull(@d_initiator_id,0)<>isnull(@initiator_id,0) .EXIT_MESSAGE('Выберите брокерский договор для указанного УК или по самостоятельному размещению') end -- цена select @stock_price=round( (convert(double precision,@summ_doc_total) / convert(double precision,@stock_qty)),4) -- суммы в учет if @pay_cur_id<>@cur_id -- пересчет по курсу begin if @rate_date is null select @tmp_date = @transaction_date else select @tmp_date = @rate_date if isnull(@cur_price2pay_rate,0) = 0 begin .CONVERT_SUM(@cur_id,@pay_cur_id,@tmp_date,0,1.0,@r_sum,@tmp_cur,@r_date) if @rate_date is not null select @cur_price2pay_rate = @tmp_cur end else select @tmp_cur=@cur_price2pay_rate select @sum_in_paycur=round((@summ_doc_total * @tmp_cur),2) if isnull(@coupon_deal_sum,0)>0 select @coupon_account_sum=round((@coupon_deal_sum * @tmp_cur),2) end else begin select @sum_in_paycur=round(@summ_doc_total,2) if isnull(@coupon_deal_sum,0)>0 select @coupon_account_sum=round(@coupon_deal_sum,2) end -- Комиссия брокера if @direction_id is not null and isnull(@comm_brok,0)=0 begin select @base_sum = @sum_in_paycur if @is_coupon_in_sum = 1 select @base_sum = @base_sum - isnull(@coupon_account_sum,0) .CALC_AGENT_COMIS(@base_sum,@comm_brok,@direction_id,(.CUR_CODE(@pay_cur_id)),@transaction_date,@owner_id,4) select @comm_brok = round(@comm_brok,2) end $ENDTEXT(18115924) $ENDPATTERN