$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