1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- $PBExportHeader$f_get_defsaleprice.srf
- global type f_get_defsaleprice from function_object
- end type
- forward prototypes
- global subroutine f_get_defsaleprice (long arg_cusid, long arg_mtrlid, string arg_unit, string arg_status, string arg_pcode, string arg_woodcode, long arg_moneyid, ref decimal arg_def_dftsaleprice, decimal arg_qty)
- end prototypes
- global subroutine f_get_defsaleprice (long arg_cusid, long arg_mtrlid, string arg_unit, string arg_status, string arg_pcode, string arg_woodcode, long arg_moneyid, ref decimal arg_def_dftsaleprice, decimal arg_qty);Int rslt = 1
- String ls_status,ls_pcode,ls_woodcode
- Long ll_pricelistid,li_flag
- IF sys_option_price_if_status = 0 THEN
- ls_status = ''
- ls_pcode = ''
- ls_woodcode = ''
- ELSE
- ls_status = arg_status
- ls_pcode = arg_pcode
- ls_woodcode = arg_woodcode
- END IF
- SELECT pricelistid INTO :ll_pricelistid
- FROM u_cust
- Where cusid = :arg_cusid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
- arg_qty = Abs(arg_qty)//取绝对值进行查询
- IF ll_pricelistid = 0 THEN
- SELECT top 1 u_sale_price_list.pricelistid INTO :ll_pricelistid
- FROM u_sale_price_list,u_sale_price_mx
- WHERE u_sale_price_mx.pricelistid = u_sale_price_list.pricelistid
- AND u_sale_price_mx.mtrlid = :arg_mtrlid
- AND u_sale_price_mx.status = :arg_status
- AND u_sale_price_mx.pcode = :arg_pcode
- AND u_sale_price_mx.woodcode = :arg_woodcode
- AND u_sale_price_mx.unit = :arg_unit
- AND u_sale_price_list.dftflag = 1
- AND u_sale_price_list.flag = 1
- AND u_sale_price_list.moneyid = :arg_moneyid
- AND (u_sale_price_mx.saleqty <= :arg_qty and u_sale_price_mx.saleqty1 >= :arg_qty);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- SELECT price,flag
- INTO :arg_def_dftsaleprice,:li_flag
- FROM u_sale_price_list,u_sale_price_mx
- WHERE u_sale_price_mx.pricelistid = u_sale_price_list.pricelistid
- AND u_sale_price_mx.mtrlid = :arg_mtrlid
- AND u_sale_price_mx.status = :arg_status
- AND u_sale_price_mx.pcode = :arg_pcode
- AND u_sale_price_mx.woodcode = :arg_woodcode
- AND u_sale_price_mx.unit = :arg_unit
- AND u_sale_price_mx.pricelistid = :ll_pricelistid
- AND (u_sale_price_mx.saleqty <= :arg_qty and u_sale_price_mx.saleqty1 >= :arg_qty);
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF li_flag = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- arg_def_dftsaleprice = 0
- END IF
- end subroutine
|