123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- $PBExportHeader$f_add_mtrlware_inmx.srf
- global type f_add_mtrlware_inmx from function_object
- end type
- forward prototypes
- global function integer f_add_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, decimal arg_inprice_notax, long arg_if_outware, boolean arg_ifcommit, ref transaction commit_transaction, ref string arg_msg)
- end prototypes
- global function integer f_add_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, decimal arg_inprice_notax, long arg_if_outware, boolean arg_ifcommit, ref transaction commit_transaction, ref string arg_msg);Long rslt = 1
- Long ls_newid
- DateTime dt
- Decimal dec_temp = 0
- ls_newid = f_sys_scidentity(0,"u_mtrlware_inmx","mtrlwaremxid",arg_msg,False,commit_transaction)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
- dec_temp = arg_inqty
- arg_inqty = Abs(arg_inqty)
- dt = DateTime(Date(arg_inwaredate),Time(0))
- INSERT INTO u_mtrlware_inmx
- (mtrlwaremxid,
- scid,
- mtrlwareid,
- inwareid,
- printid,
- inwarecode,
- inwaredate,
- inqty,
- inprice,
- inprice_notax,
- if_outware)
- VALUES
- ( :ls_newid,
- :arg_scid,
- :arg_mtrlwareid,
- :arg_inwareid,
- :arg_printid,
- :arg_inwarecode,
- :dt,
- :arg_inqty,
- :arg_inprice,
- :arg_inprice_notax,
- :arg_if_outware) Using commit_transaction ;
-
- IF commit_transaction.SQLCode <> 0 or commit_transaction.SQLNRows=0 THEN
-
- rslt = 0
- arg_msg = "插入入库批明细失败"+"~n"
- GOTO ext
- END IF
- IF dec_temp > 0 THEN
- UPDATE u_inwaremx SET u_inwaremx.cost = :arg_inprice ,u_inwaremx.costamt = :arg_inprice * :arg_inqty,
- u_inwaremx.cost_notax = :arg_inprice_notax
- Where scid = :arg_scid And inwareid = :arg_inwareid And printid = :arg_printid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新进仓明细成本失败1"+"~n"
- GOTO ext
-
- END IF
-
-
- ELSE
- UPDATE u_outwaremx SET u_outwaremx.cost = :arg_inprice ,u_outwaremx.costamt = :arg_inprice * :arg_inqty * (-1),
- u_outwaremx.cost_notax = :arg_inprice_notax
- Where scid = :arg_scid And outwareid = :arg_inwareid And printid = :arg_printid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新负数出仓明细成本失败2"+"~n"
- GOTO ext
-
- END IF
-
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
-
-
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- RETURN rslt
- end function
|