uf_warebalc_check_inoutflag.srf 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. $PBExportHeader$uf_warebalc_check_inoutflag.srf
  2. global type uf_warebalc_check_inoutflag from function_object
  3. end type
  4. forward prototypes
  5. global function integer uf_warebalc_check_inoutflag (long arg_storageid, datetime arg_balcdate, ref string arg_msg)
  6. end prototypes
  7. global function integer uf_warebalc_check_inoutflag (long arg_storageid, datetime arg_balcdate, ref string arg_msg);Long rslt = 1
  8. Long cnt = 0
  9. String ls_storagename
  10. SELECT storagename
  11. INTO :ls_storagename
  12. FROM u_storage
  13. Where storageid = :arg_storageid;
  14. IF sqlca.SQLCode <> 0 THEN
  15. rslt = 0
  16. arg_msg = '查询操作失败,仓库名称'
  17. GOTO ext
  18. END IF
  19. //检查日期前
  20. cnt = 0
  21. SELECT count(*)
  22. INTO :cnt
  23. FROM u_inware
  24. WHERE flag = 0 AND storageid = :arg_storageid
  25. AND indate <= :arg_balcdate ;
  26. IF sqlca.SQLCode <> 0 THEN
  27. rslt = 0
  28. arg_msg = '查询操作失败,结存日期前是否有进仓单未审'
  29. GOTO ext
  30. END IF
  31. IF cnt > 0 THEN
  32. rslt = 0
  33. arg_msg = '仓库['+ls_storagename+'],结存日期前有进仓单未审'
  34. GOTO ext
  35. END IF
  36. cnt = 0
  37. SELECT count(*)
  38. INTO :cnt
  39. FROM u_outware
  40. WHERE flag = 0 AND storageid = :arg_storageid
  41. AND outdate <= :arg_balcdate ;
  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_storagename+'],结存日期前有出仓单未审'
  50. GOTO ext
  51. END IF
  52. //检查日期后
  53. cnt = 0
  54. SELECT count(*)
  55. INTO :cnt
  56. FROM u_inware
  57. WHERE flag = 1 AND storageid = :arg_storageid
  58. AND indate > :arg_balcdate ;
  59. IF sqlca.SQLCode <> 0 THEN
  60. rslt = 0
  61. arg_msg = '查询操作失败,结存日期后是否有进仓单已审'
  62. GOTO ext
  63. END IF
  64. IF cnt > 0 THEN
  65. rslt = 0
  66. arg_msg = '仓库['+ls_storagename+'],结存日期后有进仓单已审'
  67. GOTO ext
  68. END IF
  69. cnt = 0
  70. SELECT count(*)
  71. INTO :cnt
  72. FROM u_outware
  73. WHERE flag = 1 AND storageid = :arg_storageid
  74. AND outdate > :arg_balcdate ;
  75. IF sqlca.SQLCode <> 0 THEN
  76. rslt = 0
  77. arg_msg = '查询操作失败,结存日期后是否有出仓单已审'
  78. GOTO ext
  79. END IF
  80. IF cnt > 0 THEN
  81. rslt = 0
  82. arg_msg = '仓库['+ls_storagename+'],结存日期后有出仓单已审'
  83. GOTO ext
  84. END IF
  85. //1.3检查调仓单
  86. cnt = 0
  87. SELECT count(*)
  88. INTO :cnt
  89. FROM u_outware_move
  90. WHERE ( flag = 0 OR d_auditflag = 0 )
  91. AND ( sstorageid = :arg_storageid OR dstorageid = :arg_storageid )
  92. And ( outdate <= :arg_balcdate );
  93. IF sqlca.SQLCode <> 0 THEN
  94. rslt = 0
  95. arg_msg = '查询操作失败,日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前是否有调仓单未审'
  96. GOTO ext
  97. END IF
  98. IF cnt > 0 THEN
  99. rslt = 0
  100. arg_msg = '仓库:'+ls_storagename+',日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前有('+String(cnt)+')调仓单未审'
  101. GOTO ext
  102. END IF
  103. //1.4 检查仓库外协进仓单(含返工单)
  104. cnt = 0
  105. SELECT count(*)
  106. INTO :cnt
  107. FROM ow_wfjg_in INNER JOIN
  108. ow_wfjgmx_in_aft ON ow_wfjg_in.scid = ow_wfjgmx_in_aft.scid AND
  109. ow_wfjg_in.inwareid = ow_wfjgmx_in_aft.inwareid
  110. WHERE (ow_wfjg_in.flag = 0 )
  111. AND (ow_wfjg_in.indate <= :arg_balcdate)
  112. AND (ow_wfjgmx_in_aft.storageid = :arg_storageid)
  113. And (ow_wfjg_in.billtype = 4);
  114. IF sqlca.SQLCode <> 0 THEN
  115. rslt = 0
  116. arg_msg = '查询操作失败,日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前是否有仓库外协进仓单或仓库外协返工单未审'
  117. GOTO ext
  118. END IF
  119. IF cnt > 0 THEN
  120. rslt = 0
  121. arg_msg = '仓库:'+ls_storagename+',日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前有('+String(cnt)+')仓库外协进仓单或仓库外协返工单未审'
  122. GOTO ext
  123. END IF
  124. //1.5 检查仓库外协发出单(含退回单)
  125. cnt = 0
  126. SELECT count(*)
  127. INTO :cnt
  128. FROM ow_wfjg_out INNER JOIN
  129. ow_wfjgmx_out ON ow_wfjg_out.scid = ow_wfjgmx_out.scid AND
  130. ow_wfjg_out.outwareid = ow_wfjgmx_out.outwareid
  131. WHERE (ow_wfjg_out.flag = 0 )
  132. AND (ow_wfjg_out.outdate <= :arg_balcdate)
  133. AND (ow_wfjgmx_out.storageid = :arg_storageid)
  134. And (ow_wfjg_out.billtype = 4);
  135. IF sqlca.SQLCode <> 0 THEN
  136. rslt = 0
  137. arg_msg = '查询操作失败,日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前是否有仓库外协发出单或仓库外协退回单未审'
  138. GOTO ext
  139. END IF
  140. IF cnt > 0 THEN
  141. rslt = 0
  142. arg_msg = '仓库:'+ls_storagename+',日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前有('+String(cnt)+')仓库外协发出单或仓库外协退回单未审'
  143. GOTO ext
  144. END IF
  145. ext:
  146. RETURN rslt
  147. end function