$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