f_aps_mrp_cklock.srf 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. $PBExportHeader$f_aps_mrp_cklock.srf
  2. global type f_aps_mrp_cklock from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_aps_mrp_cklock (long arg_scid, ref string arg_msg)
  6. end prototypes
  7. global function integer f_aps_mrp_cklock (long arg_scid, ref string arg_msg);Int rslt = 1
  8. Int li_iflock
  9. DateTime ldt_lastlocktime,ldt_locktime
  10. Long ll_h,ll_m
  11. IF sys_option_mrp_locktype = 0 THEN
  12. rslt = 1
  13. GOTO ext
  14. END IF
  15. SELECT iflock,
  16. lastlocktime,
  17. locktime,
  18. DATEDIFF(hh,lastlocktime,getdate()),
  19. DATEDIFF(mi,locktime,getdate())
  20. INTO :li_iflock,
  21. :ldt_lastlocktime,
  22. :ldt_locktime,
  23. :ll_h,
  24. :ll_m
  25. FROM aps_mrp_lock
  26. Where scid = :arg_scid;
  27. IF sqlca.SQLCode = -1 THEN
  28. arg_msg = '查询MRP运算锁定标记失败,'+sqlca.SQLErrText
  29. rslt = 0
  30. GOTO ext
  31. ELSEIF sqlca.SQLCode = 100 THEN
  32. rslt = 1
  33. GOTO ext
  34. END IF
  35. IF li_iflock = 0 THEN
  36. rslt = 1
  37. GOTO ext
  38. ELSE
  39. IF ll_h >= 12 THEN
  40. rslt = 1
  41. GOTO ext
  42. ELSE
  43. IF ll_m <= 20 THEN
  44. rslt = 0
  45. arg_msg = 'MRP运算当中,请稍后操作'
  46. GOTO ext
  47. ELSE
  48. rslt = 1
  49. GOTO ext
  50. END IF
  51. END IF
  52. END IF
  53. ext:
  54. RETURN rslt
  55. end function