f_find_cust.srf 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. $PBExportHeader$f_find_cust.srf
  2. global type f_find_cust from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_find_cust (string arg_cuscode, ref s_custom arg_s_cust)
  6. end prototypes
  7. global function integer f_find_cust (string arg_cuscode, ref s_custom arg_s_cust);Int rslt
  8. String ls_like_custcode
  9. Long ll_cusid,ll_memberid,ll_lsflag
  10. String ls_cuscode,ls_cusname
  11. Decimal ld_score
  12. long ll_pricelistid
  13. Boolean if_find = FALSE
  14. Long ll_count
  15. ll_count = 0
  16. rslt = 1
  17. IF Pos(Trim(arg_cuscode),'%') = 0 THEN
  18. ls_like_custcode = '%'+ Trim(arg_cuscode) + '%'
  19. ELSE
  20. ls_like_custcode = Trim(arg_cuscode)
  21. END IF
  22. SELECT u_cust.cusid,
  23. u_cust.cuscode,
  24. u_cust.name,
  25. u_cust.score,
  26. u_cust.memberid,
  27. u_cust.lsflag,
  28. u_cust.pricelistid
  29. INTO :ll_cusid,
  30. :ls_cuscode,
  31. :ls_cusname,
  32. :ld_score,
  33. :ll_memberid,
  34. :ll_lsflag,
  35. :ll_pricelistid
  36. FROM u_cust
  37. Where ( u_cust.cuscode = :arg_cuscode OR u_cust.Name = :arg_cuscode);
  38. IF sqlca.SQLCode <> 0 THEN
  39. SELECT count(*)
  40. INTO :ll_count
  41. FROM u_cust
  42. Where ( u_cust.cuscode Like :ls_like_custcode OR u_cust.Name Like :ls_like_custcode);
  43. IF ll_count = 1 THEN
  44. SELECT u_cust.cusid,
  45. u_cust.cuscode,
  46. u_cust.name,
  47. u_cust.score,
  48. u_cust.memberid,
  49. u_cust.lsflag,
  50. u_cust.pricelistid
  51. INTO :ll_cusid,
  52. :ls_cuscode,
  53. :ls_cusname,
  54. :ld_score,
  55. :ll_memberid,
  56. :ll_lsflag,
  57. :ll_pricelistid
  58. FROM u_cust
  59. Where ( u_cust.cuscode Like :ls_like_custcode OR u_cust.Name Like :ls_like_custcode);
  60. if_find = TRUE
  61. GOTO ext
  62. ELSE
  63. if_find = FALSE
  64. rslt = 0
  65. GOTO ext
  66. END IF
  67. ELSE
  68. if_find = TRUE
  69. END IF
  70. ext:
  71. IF if_find THEN
  72. arg_s_cust.cusid = ll_cusid
  73. arg_s_cust.cuscode = ls_cuscode
  74. arg_s_cust.Name = ls_cusname
  75. arg_s_cust.score = ld_score
  76. arg_s_cust.memberid = ll_memberid
  77. arg_s_cust.lsflag = ll_lsflag
  78. arg_s_cust.pricelistid = ll_pricelistid
  79. ELSE
  80. arg_s_cust.cusid = 0
  81. END IF
  82. RETURN rslt
  83. end function