# 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(16521079) declare @d_owner_id numeric, @d_initiator_id numeric, @tmp_date datetime, @r_date datetime, @r_sum money, @tmp_cur money, @base_sum money if upper(.ITEM_TYPE_CODE(@owner_id))='PIF_FUND' and @broker_acc_id is null .EXIT_MESSAGE('Не задан расчетный счет брокера') -- время 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 begin select @base_sum = @sum_in_paycur if @is_coupon_in_sum = 1 select @base_sum = @base_sum - isnull(@coupon_account_sum,0) -- брокера if isnull(@comm_brok,0)=0 begin .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 -- биржи if isnull(@comm_ts,0)=0 begin .CALC_AGENT_COMIS(@base_sum,@comm_ts,@direction_id,(.CUR_CODE(@pay_cur_id)),@transaction_date,@owner_id,5) select @comm_ts = round(@comm_ts,2) end -- депо if isnull(@comm_depo,0)=0 begin .CALC_AGENT_COMIS(@base_sum,@comm_depo,@direction_id,(.CUR_CODE(@pay_cur_id)),@transaction_date,@owner_id,6) select @comm_depo = round(@comm_depo,2) end end $ENDTEXT(16521079) $ENDPATTERN $PATTERN(.FUND_GEN_NO) name=Генератор номеров для документов по дате class=2 product=ALD_FUND pattern_text=$TEXT(16521079) if convert(varchar,%TO_VAR%) is null begin .CNT_INC(DEPO_TST) declare .CNT_VAR(@type_str,DEPO_TST) varchar(5), .CNT_VAR(@count,DEPO_TST) int, .CNT_VAR(@operday_id,DEPO_TST) numeric(18,0), .CNT_VAR(@mess,DEPO_TST) varchar(255) select %DAY%=.DATE_NORM(%DAY%,B) select .CNT_VAR(@operday_id,DEPO_TST)=max(t_operday.id) from t_operday where .DATE_NORM(t_operday.date_oper_day,B)=%DAY% and .ITEMS_EXISTS(t_operday.id) and upper(.ITEM_STATE_CODE(t_operday.id))='OPEN' if .CNT_VAR(@operday_id,DEPO_TST) is null begin select .CNT_VAR(@mess,DEPO_TST)='Не открыт операционный день на '+convert(varchar,%DAY%,3) .EXIT_MESSAGE((.CNT_VAR(@mess,DEPO_TST))) end if %DOC_TYPE%=1 select .CNT_VAR(@type_str,DEPO_TST)='VH' if %DOC_TYPE%=2 select .CNT_VAR(@type_str,DEPO_TST)='IS' if %DOC_TYPE%=0 select .CNT_VAR(@type_str,DEPO_TST)='VN' .FUND_OPERDAY_GETCOUNTER select %TO_VAR% = .CNT_VAR(@type_str,DEPO_TST) + (.FUND_OPERDAY_STR) + replicate('0',4 - .CHAR_LENGTH((convert(varchar,.CNT_VAR(@count,DEPO_TST))))) +convert(varchar,.CNT_VAR(@count,DEPO_TST)) .FUND_OPERDAY_SETCOUNTER end $ENDTEXT(16521079) $PATTERNARG(%TO_VAR%) name=Переменная-номер order=1 comment=null mandatory=1 default=@in_no choose_type=null choose_action=null choose_field=null $ENDPATTERNARG $PATTERNARG(%DOC_TYPE%) name=Тип документа order=2 comment=Id Типа документа mandatory=1 default=@doc_type_id choose_type=null choose_action=null choose_field=null $ENDPATTERNARG $PATTERNARG(%DAY%) name=Переменная - Дата формирования номера order=3 comment=null mandatory=1 default=null choose_type=null choose_action=null choose_field=null $ENDPATTERNARG $ENDPATTERN