f_insert_0_sptware.srf 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. $PBExportHeader$f_insert_0_sptware.srf
  2. global type f_insert_0_sptware from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_insert_0_sptware (long arg_scid, ref long arg_mtrlwareid, long arg_mtrlid, string arg_mtrlcode, long arg_sptid, string arg_status, string arg_woodcode, string arg_pcode, string arg_plancode, decimal arg_cost, ref string arg_msg)
  6. end prototypes
  7. global function integer f_insert_0_sptware (long arg_scid, ref long arg_mtrlwareid, long arg_mtrlid, string arg_mtrlcode, long arg_sptid, string arg_status, string arg_woodcode, string arg_pcode, string arg_plancode, decimal arg_cost, ref string arg_msg);//====================================================================
  8. // 事件: f_insert_0_sptware.f_insert_0_sptware()
  9. //--------------------------------------------------------------------
  10. // 描述:
  11. //--------------------------------------------------------------------
  12. // 参数:
  13. // value long arg_scid
  14. // reference long arg_mtrlwareid
  15. // value long arg_mtrlid
  16. // value string arg_mtrlcode
  17. // value long arg_sptid
  18. // value string arg_status
  19. // value string arg_woodcode
  20. // value string arg_pcode
  21. // value string arg_plancode
  22. // value decimal arg_cost
  23. // reference string arg_msg
  24. //--------------------------------------------------------------------
  25. // 返回: inte
  26. //--------------------------------------------------------------------
  27. // 作者: LHD 日期: 2013年09月28日
  28. //--------------------------------------------------------------------
  29. // Copyright (c) 2002-2018 RICHTA(TM), All rights reserved.
  30. //--------------------------------------------------------------------
  31. // 修改历史:
  32. //
  33. //====================================================================
  34. Int rslt = 1
  35. Long cnt
  36. Long ls_mtrlwareid,ls_scid
  37. SELECT count(*) INTO :cnt FROM ow_wfjgware
  38. WHERE mtrlid = :arg_mtrlid
  39. AND sptid = :arg_sptid
  40. AND woodcode = :arg_woodcode
  41. AND pcode = :arg_pcode
  42. AND status = :arg_status
  43. AND plancode = :arg_plancode
  44. and scid = :arg_scid;
  45. IF sqlca.SQLCode <> 0 THEN
  46. arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查'
  47. rslt = 0
  48. GOTO ext
  49. END IF
  50. IF cnt = 1 THEN
  51. SELECT mtrlwareid INTO :ls_mtrlwareid FROM ow_wfjgware
  52. WHERE mtrlid = :arg_mtrlid
  53. AND sptid = :arg_sptid
  54. AND woodcode = :arg_woodcode
  55. AND pcode = :arg_pcode
  56. AND status = :arg_status
  57. AND plancode = :arg_plancode
  58. and scid = :arg_scid;
  59. IF sqlca.SQLCode <> 0 THEN
  60. arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查'
  61. rslt = 0
  62. GOTO ext
  63. END IF
  64. arg_mtrlwareid = ls_mtrlwareid
  65. GOTO ext
  66. END IF
  67. IF arg_cost = 0 THEN
  68. SELECT planprice INTO :arg_cost
  69. FROM u_mtrldef
  70. Where mtrlid = :arg_mtrlid;
  71. IF sqlca.SQLCode <> 0 THEN
  72. arg_msg = '查询计划价失败!!'
  73. rslt = 0
  74. GOTO ext
  75. END IF
  76. END IF
  77. ls_mtrlwareid = f_sys_scidentity(0,"ow_wfjgware","mtrlwareid",arg_msg,TRUE,id_sqlca)
  78. INSERT INTO ow_wfjgware(scid,mtrlwareid,mtrlid,sptid,noallocqty,woodcode,pcode,plancode,status,cost)
  79. Values(:arg_scid,:ls_mtrlwareid,:arg_mtrlid,:arg_sptid,0,:arg_woodcode,:arg_pcode,:arg_plancode,:arg_status,:arg_cost);
  80. IF sqlca.SQLCode <> 0 THEN
  81. arg_msg = '物料:'+arg_mtrlcode+'加0库存失败或物料已经有库存,请检查'+sqlca.SQLErrText
  82. rslt = 0
  83. GOTO ext
  84. END IF
  85. arg_mtrlwareid = ls_mtrlwareid
  86. ext:
  87. IF rslt = 0 THEN
  88. ROLLBACK;
  89. ELSE
  90. COMMIT;
  91. END IF
  92. RETURN rslt
  93. end function