f_check_inoutdate.srf 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. $PBExportHeader$f_check_inoutdate.srf
  2. global type f_check_inoutdate from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_check_inoutdate (long arg_storageid, ref datetime arg_date, boolean arg_ifcheck_balc, ref string arg_msg)
  6. end prototypes
  7. global function integer f_check_inoutdate (long arg_storageid, ref datetime arg_date, boolean arg_ifcheck_balc, ref string arg_msg);Int rslt = 1
  8. DateTime server_dt
  9. DateTime ld_ctdate,ld_balcdate
  10. //IF sys_power_issuper THEN
  11. // rslt = 1
  12. // GOTO ext
  13. //END IF
  14. //
  15. SELECT Top 1 getdate() INTO :server_dt FROM u_user;
  16. IF sqlca.SQLCode <> 0 THEN
  17. rslt = 0
  18. arg_msg = "查询操作失败,日期"
  19. GOTO ext
  20. END IF
  21. IF DaysAfter(Date(String(server_dt,'yyyy-mm-dd')),Date(String(arg_date,'yyyy-mm-dd'))) > sys_option_input_days THEN
  22. rslt = 0
  23. arg_msg = '发生日期错误,日期不能超前系统日期'
  24. GOTO ext
  25. END IF
  26. IF DaysAfter(Date(String(arg_date,'yyyy-mm-dd')),Date(String(server_dt,'yyyy-mm-dd'))) > sys_option_input_days THEN
  27. rslt = 0
  28. arg_msg = '发生日期错误,日期不能落后系统日期'
  29. GOTO ext
  30. END IF
  31. SELECT max(ct_datetime)
  32. INTO :ld_ctdate
  33. FROM sys_ct_data;
  34. IF sqlca.SQLCode = -1 THEN
  35. rslt = 0
  36. arg_msg = '查询最后截数日期出错'
  37. GOTO ext
  38. ELSEIF sqlca.SQLCode = 100 THEN
  39. GOTO balc
  40. END IF
  41. IF arg_storageid = -100 THEN
  42. IF arg_date <= ld_ctdate THEN
  43. arg_msg = '非法发生日期,日期:'+String(arg_date,'yyyy-mm-dd')+'小于最后截数日期:'+String(ld_ctdate,'yyyy-mm-dd')
  44. rslt = 0
  45. GOTO ext
  46. END IF
  47. END IF
  48. balc:
  49. IF arg_ifcheck_balc THEN
  50. SELECT max(balcdate)
  51. INTO :ld_balcdate
  52. FROM u_warebalc
  53. WHERE balcdateint > 0
  54. AND storageid = :arg_storageid;
  55. IF sqlca.SQLCode = -1 THEN
  56. rslt = 0
  57. arg_msg = '查询最后结存日期出错'
  58. GOTO ext
  59. ELSEIF sqlca.SQLCode = 100 THEN
  60. rslt = 1
  61. GOTO ext
  62. END IF
  63. IF arg_date <= ld_balcdate THEN
  64. arg_msg = '非法发生日期,日期:'+String(arg_date,'yyyy-mm-dd')+'小于最后结存日期:'+String(ld_balcdate,'yyyy-mm-dd')
  65. rslt = 0
  66. GOTO ext
  67. END IF
  68. END IF
  69. ext:
  70. RETURN rslt
  71. end function