uf_spt_warebalc_check_inoutflag.srf 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. $PBExportHeader$uf_spt_warebalc_check_inoutflag.srf
  2. global type uf_spt_warebalc_check_inoutflag from function_object
  3. end type
  4. forward prototypes
  5. global function integer uf_spt_warebalc_check_inoutflag (long arg_scid, long arg_sptid, datetime arg_balcdate, ref string arg_msg)
  6. end prototypes
  7. global function integer uf_spt_warebalc_check_inoutflag (long arg_scid, long arg_sptid, datetime arg_balcdate, ref string arg_msg);Long rslt = 1
  8. Long cnt = 0
  9. String ls_sptname
  10. string ls_scname
  11. if arg_scid < 0 then
  12. rslt = 0
  13. arg_msg = '请选择分部'
  14. goto ext
  15. end if
  16. select scname into :ls_scname
  17. from u_scdef
  18. where scid = :arg_scid;
  19. IF sqlca.SQLCode <> 0 THEN
  20. rslt = 0
  21. arg_msg = '查询操作失败,分部名称'
  22. GOTO ext
  23. END IF
  24. SELECT name
  25. INTO :ls_sptname
  26. FROM u_spt
  27. Where sptid = :arg_sptid;
  28. IF sqlca.SQLCode <> 0 THEN
  29. rslt = 0
  30. arg_msg = '查询操作失败,外协商名称'
  31. GOTO ext
  32. END IF
  33. //检查日期前
  34. cnt = 0
  35. SELECT count(*)
  36. INTO :cnt
  37. FROM ow_wfjg_in
  38. WHERE flag = 0
  39. AND indate <= :arg_balcdate
  40. and sptid = :arg_sptid
  41. and scid = :arg_scid ;
  42. IF sqlca.SQLCode <> 0 THEN
  43. rslt = 0
  44. arg_msg = '查询操作失败,结存日期前是否有进仓单未审'
  45. GOTO ext
  46. END IF
  47. IF cnt > 0 THEN
  48. rslt = 0
  49. arg_msg = '外协商['+ls_sptname+'],分部['+ls_scname+'],结存日期前有进仓单未审'
  50. GOTO ext
  51. END IF
  52. cnt = 0
  53. SELECT count(*)
  54. INTO :cnt
  55. FROM ow_wfjg_out
  56. WHERE flag = 0
  57. AND outdate <= :arg_balcdate
  58. and sptid = :arg_sptid
  59. and scid = :arg_scid;
  60. IF sqlca.SQLCode <> 0 THEN
  61. rslt = 0
  62. arg_msg = '查询操作失败,结存日期前是否有出仓单未审'
  63. GOTO ext
  64. END IF
  65. IF cnt > 0 THEN
  66. rslt = 0
  67. arg_msg = '外协商['+ls_sptname+'],分部['+ls_scname+'],结存日期前有出仓单未审'
  68. GOTO ext
  69. END IF
  70. //检查日期后
  71. cnt = 0
  72. SELECT count(*)
  73. INTO :cnt
  74. FROM ow_wfjg_in
  75. WHERE flag = 1
  76. AND indate > :arg_balcdate
  77. and sptid = :arg_sptid
  78. and scid = :arg_scid;
  79. IF sqlca.SQLCode <> 0 THEN
  80. rslt = 0
  81. arg_msg = '查询操作失败,结存日期后是否有进仓单已审'
  82. GOTO ext
  83. END IF
  84. IF cnt > 0 THEN
  85. rslt = 0
  86. arg_msg = '外协商['+ls_sptname+'],分部['+ls_scname+'],结存日期后有进仓单已审'
  87. GOTO ext
  88. END IF
  89. cnt = 0
  90. SELECT count(*)
  91. INTO :cnt
  92. FROM ow_wfjg_out
  93. WHERE flag = 1
  94. AND outdate > :arg_balcdate
  95. and sptid = :arg_sptid
  96. and scid = :arg_scid;
  97. IF sqlca.SQLCode <> 0 THEN
  98. rslt = 0
  99. arg_msg = '查询操作失败,结存日期后是否有出仓单已审'
  100. GOTO ext
  101. END IF
  102. IF cnt > 0 THEN
  103. rslt = 0
  104. arg_msg = '外协商['+ls_sptname+'],分部['+ls_scname+'],结存日期后有出仓单已审'
  105. GOTO ext
  106. END IF
  107. ext:
  108. RETURN rslt
  109. end function