f_getcusrepamt_info.srf 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. $PBExportHeader$f_getcusrepamt_info.srf
  2. global type f_getcusrepamt_info from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_getcusrepamt_info (long arg_cusid, long arg_scid, long arg_moneyid, ref decimal arg_cusbalcamt, ref decimal arg_cusmaxamt, ref decimal arg_outrep_balcamt, ref decimal arg_outrep_maxamt)
  6. end prototypes
  7. global function integer f_getcusrepamt_info (long arg_cusid, long arg_scid, long arg_moneyid, ref decimal arg_cusbalcamt, ref decimal arg_cusmaxamt, ref decimal arg_outrep_balcamt, ref decimal arg_outrep_maxamt);//f_getcusrepamt_info(arg_cusid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt)
  8. //
  9. Long rslt = 1
  10. Decimal cusamt,cusmaxamt,outrep_amt,outrep_maxamt,rep_cus_count
  11. String custype
  12. IF sys_option_scid_msttake_mstpay = 1 THEN
  13. SELECT u_cust.custype,
  14. u_cust.maxmtnum,
  15. v_cus_balcamt.cus_balcamt
  16. INTO :custype,
  17. :cusmaxamt,
  18. :cusamt
  19. FROM u_cust,
  20. v_cus_balcamt
  21. WHERE ( u_cust.cusid = v_cus_balcamt.cusid ) AND
  22. ( u_cust.cusid = :arg_cusid ) AND
  23. ( v_cus_balcamt.scid = :arg_scid) AND
  24. ( v_cus_balcamt.moneyid = :arg_moneyid);
  25. IF sqlca.SQLCode <> 0 THEN
  26. rslt = 0
  27. GOTO ext
  28. END IF
  29. SELECT u_outrepdef.maxamt,
  30. count(v_cus_balcamt.cus_balcamt) as rep_cus_count,
  31. sum(v_cus_balcamt.cus_balcamt) as outrep_balcamt
  32. INTO :outrep_maxamt,
  33. :rep_cus_count,
  34. :outrep_amt
  35. FROM u_cust,
  36. v_cus_balcamt,
  37. u_outrepdef
  38. WHERE ( u_cust.cusid = v_cus_balcamt.cusid ) AND
  39. ( u_cust.custype = u_outrepdef.outrepname) AND
  40. ( u_cust.custype = :custype ) AND
  41. ( v_cus_balcamt.scid = :arg_scid) AND
  42. ( v_cus_balcamt.moneyid = :arg_moneyid)
  43. Group By u_cust.custype ,u_outrepdef.maxamt;
  44. IF sqlca.SQLCode <> 0 THEN
  45. rslt = 0
  46. GOTO ext
  47. END IF
  48. ELSE
  49. SELECT u_cust.custype,u_cust.maxmtnum,
  50. sum(v_cus_balcamt.cus_balcamt)
  51. INTO :custype,:cusmaxamt,:cusamt
  52. FROM u_cust,
  53. v_cus_balcamt
  54. WHERE ( u_cust.cusid = v_cus_balcamt.cusid ) AND
  55. ( u_cust.cusid = :arg_cusid ) AND
  56. ( v_cus_balcamt.moneyid = :arg_moneyid)
  57. Group By u_cust.custype,u_cust.maxmtnum;
  58. IF sqlca.SQLCode <> 0 THEN
  59. rslt = 0
  60. GOTO ext
  61. END IF
  62. SELECT u_outrepdef.maxamt,count(v_cus_balcamt.cus_balcamt) as rep_cus_count,
  63. sum(v_cus_balcamt.cus_balcamt) as outrep_balcamt
  64. INTO :outrep_maxamt,
  65. :rep_cus_count,
  66. :outrep_amt
  67. FROM u_cust,
  68. v_cus_balcamt,u_outrepdef
  69. WHERE ( u_cust.cusid = v_cus_balcamt.cusid ) AND
  70. ( u_cust.custype = u_outrepdef.outrepname) AND
  71. ( u_cust.custype = :custype ) AND
  72. ( v_cus_balcamt.moneyid = :arg_moneyid)
  73. Group By u_cust.custype ,u_outrepdef.maxamt;
  74. IF sqlca.SQLCode <> 0 THEN
  75. rslt = 0
  76. GOTO ext
  77. END IF
  78. END IF
  79. arg_cusbalcamt = cusamt
  80. arg_cusmaxamt = cusmaxamt
  81. arg_outrep_balcamt = outrep_amt
  82. arg_outrep_maxamt = outrep_maxamt
  83. rslt = rep_cus_count
  84. ext:
  85. RETURN rslt
  86. end function