123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- $PBExportHeader$f_insert_0_mtrlware.srf
- global type f_insert_0_mtrlware from function_object
- end type
- forward prototypes
- global function integer f_insert_0_mtrlware (ref long arg_mtrlwareid, long arg_mtrlid, string arg_mtrlcode, long arg_storageid, long arg_sptid, string arg_status, string arg_woodcode, string arg_pcode, string arg_plancode, string arg_mtrlcuscode, string arg_location, decimal arg_cost, ref string arg_msg)
- end prototypes
- global function integer f_insert_0_mtrlware (ref long arg_mtrlwareid, long arg_mtrlid, string arg_mtrlcode, long arg_storageid, long arg_sptid, string arg_status, string arg_woodcode, string arg_pcode, string arg_plancode, string arg_mtrlcuscode, string arg_location, decimal arg_cost, ref string arg_msg);Int rslt = 1
- Long cnt
- Long ls_mtrlwareid,ls_scid
- int li_storMtrlprp
- SELECT count(*) INTO :cnt FROM u_mtrlware
- WHERE mtrlid = :arg_mtrlid
- AND storageid = :arg_storageid
- AND sptid = :arg_sptid
- AND dxflag = 0
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND status = :arg_status
- AND plancode = :arg_plancode
- AND mtrlcuscode = :arg_mtrlcuscode
- AND Location = :arg_location;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查'
- rslt = 0
- GOTO ext
- END IF
- IF cnt = 1 THEN
-
- SELECT mtrlwareid INTO :ls_mtrlwareid FROM u_mtrlware
- WHERE mtrlid = :arg_mtrlid
- AND storageid = :arg_storageid
- AND sptid = :arg_sptid
- AND dxflag = 0
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- AND status = :arg_status
- AND plancode = :arg_plancode
- AND mtrlcuscode = :arg_mtrlcuscode
- AND Location = :arg_location;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查'
- rslt = 0
- GOTO ext
- END IF
-
- arg_mtrlwareid = ls_mtrlwareid
-
- GOTO ext
- END IF
- SELECT scid,Mtrlprp INTO :ls_scid,:li_storMtrlprp
- FROM u_storage
- Where storageid = :arg_storageid;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询仓库分部失败,请检查'
- rslt = 0
- GOTO ext
- END IF
- IF arg_cost = 0 THEN
-
- SELECT planprice INTO :arg_cost
- FROM u_mtrldef_planprice
- Where mtrlid = :arg_mtrlid
- and status = :Arg_status
- and woodcode = :arg_woodcode
- and pcode = :arg_pcode;
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '查询计划价失败!!'
- rslt = 0
- GOTO ext
- elseif sqlca.sqlcode = 100 then
- arg_cost = 0
- END IF
-
- END IF
- ls_mtrlwareid = f_sys_scidentity(ls_scid,"u_mtrlware","mtrlwareid",arg_msg,TRUE,id_sqlca)
- INSERT INTO u_mtrlware(scid,
- mtrlwareid,
- mtrlid,
- storageid,
- noallocqty,
- woodcode,
- pcode,
- plancode,
- status,
- sptid,
- cost,
- mtrlcuscode,
- location,
- storMtrlprp)
- VALUES(:ls_scid,
- :ls_mtrlwareid,
- :arg_mtrlid,
- :arg_storageid,
- 0,
- :arg_woodcode,
- :arg_pcode,
- :arg_plancode,
- :arg_status,
- :arg_sptid,
- :arg_cost,
- :arg_mtrlcuscode,
- :arg_location,
- :li_storMtrlprp);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '物料:'+arg_mtrlcode+'加0库存失败或物料已经有库存,请检查'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- arg_mtrlwareid = ls_mtrlwareid
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSE
- COMMIT;
- END IF
- RETURN rslt
- end function
|