f_trigger_fifo_procedure.srf 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. $PBExportHeader$f_trigger_fifo_procedure.srf
  2. global type f_trigger_fifo_procedure from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_del_mtrlware_inmx (long arg_scid, long arg_mtrlwareid, long arg_inwareid, long arg_printid, string arg_inwarecode, datetime arg_inwaredate, decimal arg_inqty, decimal arg_inprice, long arg_if_outware, boolean arg_ifcommit, ref transaction commit_transaction, ref string arg_msg)
  6. global function long f_trigger_fifo_procedure (long arg_scid, long arg_mtrlwareid, datetime arg_date, integer arg_mod, long arg_outwareid, long arg_mtrlwaremxid, boolean arg_ifcommit, ref transaction commit_transaction, ref string arg_msg)
  7. end prototypes
  8. global function integer f_del_mtrlware_inmx (long arg_scid, long arg_mtrlwareid, long arg_inwareid, long arg_printid, string arg_inwarecode, datetime arg_inwaredate, decimal arg_inqty, decimal arg_inprice, long arg_if_outware, boolean arg_ifcommit, ref transaction commit_transaction, ref string arg_msg);Long rslt = 1
  9. long ls_newid
  10. ls_newid = f_sys_scidentity(0,"u_mtrlware_inmx","mtrlwaremxid",arg_msg,false,commit_transaction)
  11. IF ls_newid <= 0 THEN
  12. rslt = 0
  13. GOTO ext
  14. END IF
  15. INSERT INTO u_mtrlware_inmx
  16. (mtrlwaremxid,
  17. scid,
  18. mtrlwareid,
  19. inwareid,
  20. printid,
  21. inwarecode,
  22. inwaredate,
  23. inqty,
  24. inprice,
  25. if_outware)
  26. VALUES
  27. ( :ls_newid,
  28. :arg_scid,
  29. :arg_mtrlwareid,
  30. :arg_inwareid,
  31. :arg_printid,
  32. :arg_inwarecode,
  33. :arg_inwaredate,
  34. :arg_inqty,
  35. :arg_inprice,
  36. :arg_if_outware) ;
  37. IF commit_transaction.SQLCode <> 0 THEN
  38. rslt = 0
  39. arg_msg = "插入入库批明细失败"+"~n"
  40. GOTO ext
  41. END IF
  42. ext:
  43. IF rslt = 0 THEN
  44. ROLLBACK Using commit_transaction;
  45. ELSEIF rslt = 1 And arg_ifcommit THEN
  46. COMMIT Using commit_transaction;
  47. END IF
  48. RETURN rslt
  49. end function
  50. global function long f_trigger_fifo_procedure (long arg_scid, long arg_mtrlwareid, datetime arg_date, integer arg_mod, long arg_outwareid, long arg_mtrlwaremxid, boolean arg_ifcommit, ref transaction commit_transaction, ref string arg_msg);// arg_mod=1 正数进仓审
  51. Long rslt = 1
  52. DateTime dt
  53. dt = DateTime(Date(arg_date),Time(0))
  54. DECLARE pro1 PROCEDURE FOR p_outware_cost_fifo_procedure
  55. @arg_scid = :arg_scid,
  56. @arg_mtrlwareid = :arg_mtrlwareid,
  57. @arg_date = :dt,
  58. @arg_mod = :arg_mod,
  59. @arg_outwareid = :arg_outwareid,
  60. @arg_mtrlwaremxid = :arg_mtrlwaremxid,
  61. @arg_rslt = :rslt OUTPUT,
  62. @arg_msg = :arg_msg OUTPUT Using commit_transaction;
  63. EXECUTE pro1;
  64. IF commit_transaction.SQLCode <> 0 THEN
  65. arg_msg = commit_transaction.SQLErrText
  66. rslt = 0
  67. //ELSE
  68. // FETCH pro1 INTO :rslt,:arg_msg;
  69. END IF
  70. CLOSE pro1;
  71. decimal aa,bb,cc,dd
  72. SELECT cost, wareamt,cost_notax,wareamt_notax INTO :aa,:bb,:cc,:dd
  73. FROM u_mtrlware
  74. WHERE mtrlwareid = :arg_mtrlwareid;
  75. IF commit_transaction.SQLCode <> 0 THEN
  76. arg_msg = commit_transaction.SQLErrText
  77. rslt = 0
  78. END IF
  79. aa=aa
  80. bb=bb
  81. cc=cc
  82. dd=dd
  83. RETURN rslt
  84. end function