f_insert_0_sptware.srf 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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);Int rslt = 1
  8. Long cnt
  9. Long ls_mtrlwareid,ls_scid
  10. SELECT count(*) INTO :cnt FROM ow_wfjgware
  11. WHERE mtrlid = :arg_mtrlid
  12. AND sptid = :arg_sptid
  13. AND woodcode = :arg_woodcode
  14. AND pcode = :arg_pcode
  15. AND status = :arg_status
  16. AND plancode = :arg_plancode
  17. and scid = :arg_scid;
  18. IF sqlca.SQLCode <> 0 THEN
  19. arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查'
  20. rslt = 0
  21. GOTO ext
  22. END IF
  23. IF cnt = 1 THEN
  24. SELECT mtrlwareid INTO :ls_mtrlwareid FROM ow_wfjgware
  25. WHERE mtrlid = :arg_mtrlid
  26. AND sptid = :arg_sptid
  27. AND woodcode = :arg_woodcode
  28. AND pcode = :arg_pcode
  29. AND status = :arg_status
  30. AND plancode = :arg_plancode
  31. and scid = :arg_scid;
  32. IF sqlca.SQLCode <> 0 THEN
  33. arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查'
  34. rslt = 0
  35. GOTO ext
  36. END IF
  37. arg_mtrlwareid = ls_mtrlwareid
  38. GOTO ext
  39. END IF
  40. IF arg_cost = 0 THEN
  41. SELECT planprice INTO :arg_cost
  42. FROM u_mtrldef
  43. Where mtrlid = :arg_mtrlid;
  44. IF sqlca.SQLCode <> 0 THEN
  45. arg_msg = '查询计划价失败!!'
  46. rslt = 0
  47. GOTO ext
  48. END IF
  49. END IF
  50. ls_mtrlwareid = f_sys_scidentity(0,"ow_wfjgware","mtrlwareid",arg_msg,false,sqlca)
  51. INSERT INTO ow_wfjgware(scid,mtrlwareid,mtrlid,sptid,noallocqty,woodcode,pcode,plancode,status,cost)
  52. Values(:arg_scid,:ls_mtrlwareid,:arg_mtrlid,:arg_sptid,0,:arg_woodcode,:arg_pcode,:arg_plancode,:arg_status,:arg_cost);
  53. IF sqlca.SQLCode <> 0 THEN
  54. arg_msg = '物料:'+arg_mtrlcode+'加0库存失败或物料已经有库存,请检查'+sqlca.SQLErrText
  55. rslt = 0
  56. GOTO ext
  57. END IF
  58. arg_mtrlwareid = ls_mtrlwareid
  59. ext:
  60. IF rslt = 0 THEN
  61. ROLLBACK;
  62. ELSE
  63. COMMIT;
  64. END IF
  65. RETURN rslt
  66. end function