123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- $PBExportHeader$f_find_cust.srf
- global type f_find_cust from function_object
- end type
- forward prototypes
- global function integer f_find_cust (string arg_cuscode, ref s_custom arg_s_cus)
- end prototypes
- global function integer f_find_cust (string arg_cuscode, ref s_custom arg_s_cus);Int rslt = 1
- Long cnt = 0
- String ls_code,ls_name,ls_custype,ls_find_code
- String ls_freight,ls_freight_tele
- String ls_rel_rep, ls_cus_address, ls_cus_tele, ls_cus_tele1, ls_cus_fax
- Int li_banktypeid
- Long ll_cusid
- Boolean if_find
- Long li_option_outrep
- string ls_freight_address
- IF sys_power_issuper THEN
- li_option_outrep = 0
- ELSE
- li_option_outrep = sys_option_outrep
- END IF
- SELECT u_cust.cusid
- INTO :ll_cusid
- FROM u_cust
- WHERE (cuscode = :arg_cuscode OR Name = :arg_cuscode) AND (inuse = 1) AND
- ( :li_option_outrep = 0 Or (u_cust.custype In (:sys_user_outrepstr) Or :sys_user_outrepstr = '0')) and
- ( :sys_option_cusarea = 0 or ( :sys_areastr like '%,' + rtrim(cast(u_cust.cusareaid as varchar(10))) + ',%' OR u_cust.cusareaid = 0 OR :sys_areastr='0' )) ;
- IF sqlca.SQLCode <> 0 THEN
-
- IF Pos(Trim(ls_code),'%') = 0 THEN
- ls_find_code = '%'+ Trim(arg_cuscode) + '%'
- ELSE
- ls_find_code = Trim(arg_cuscode)
- END IF
-
- SELECT count(*) INTO :cnt
- FROM u_cust
- WHERE ( cuscode LIKE :ls_find_code OR Name LIKE :ls_find_code ) AND (inuse = 1) AND
- ( :li_option_outrep = 0 Or (u_cust.custype In (:sys_user_outrepstr) Or :sys_user_outrepstr = '0')) and
- ( :sys_option_cusarea = 0 or ( :sys_areastr like '%,' + rtrim(cast(u_cust.cusareaid as varchar(10))) + ',%' OR u_cust.cusareaid = 0 OR :sys_areastr='0' )) ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF cnt <> 1 THEN
- rslt = 0
- GOTO ext
- END IF
- SELECT u_cust.cusid
- INTO :ll_cusid
- FROM u_cust
- WHERE ( cuscode LIKE :ls_find_code OR Name LIKE :ls_find_code ) AND (inuse = 1) AND
- ( :li_option_outrep = 0 Or (u_cust.custype In (:sys_user_outrepstr) Or :sys_user_outrepstr = '0')) and
- ( :sys_option_cusarea = 0 or ( :sys_areastr like '%,' + rtrim(cast(u_cust.cusareaid as varchar(10))) + ',%' OR u_cust.cusareaid = 0 OR :sys_areastr='0' )) ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
- if_find = True
- ELSE
- if_find = True
- END IF
- IF if_find = True THEN
- SELECT u_cust.cusid,
- u_cust.name,
- u_cust.custype,
- u_cust.cuscode,
- u_cust.freight,
- u_cust.freight_tele,
- u_cust.address,
- u_cust.tele,
- u_cust.tele1,
- u_cust.faxno,
- u_cust.banktypeid,
- u_cust.rep,
- u_cust.freight_address
- INTO :ll_cusid,:ls_name,:ls_custype,:ls_code,
- :ls_freight,:ls_freight_tele,
- :ls_cus_address,:ls_cus_tele,:ls_cus_tele1,:ls_cus_fax,:li_banktypeid,:ls_rel_rep,:ls_freight_address
- FROM u_cust
- Where (cusid = :ll_cusid) ;
-
- arg_s_cus.cusid = ll_cusid
- arg_s_cus.Name = ls_name
- arg_s_cus.custype = ls_custype
- arg_s_cus.cuscode = ls_code
- arg_s_cus.freight = ls_freight
- arg_s_cus.freight_tele = ls_freight_tele
- arg_s_cus.Address = ls_cus_address
- arg_s_cus.tele = ls_cus_tele
- arg_s_cus.tele1 = ls_cus_tele1
- arg_s_cus.faxno = ls_cus_fax
- arg_s_cus.banktypeid = li_banktypeid
- arg_s_cus.rep = ls_rel_rep
- arg_s_cus.freight_address = ls_freight_address
- END IF
- ext:
- RETURN rslt
- end function
|