$PBExportHeader$f_insert_0_sptware.srf global type f_insert_0_sptware from function_object end type forward prototypes 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) end prototypes 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 Long cnt Long ls_mtrlwareid,ls_scid SELECT count(*) INTO :cnt FROM ow_wfjgware WHERE mtrlid = :arg_mtrlid AND sptid = :arg_sptid AND woodcode = :arg_woodcode AND pcode = :arg_pcode AND status = :arg_status AND plancode = :arg_plancode and scid = :arg_scid; 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 ow_wfjgware WHERE mtrlid = :arg_mtrlid AND sptid = :arg_sptid AND woodcode = :arg_woodcode AND pcode = :arg_pcode AND status = :arg_status AND plancode = :arg_plancode and scid = :arg_scid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询物料:'+arg_mtrlcode+'是否有库存失败,请检查' rslt = 0 GOTO ext END IF arg_mtrlwareid = ls_mtrlwareid GOTO ext END IF IF arg_cost = 0 THEN SELECT planprice INTO :arg_cost FROM u_mtrldef Where mtrlid = :arg_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询计划价失败!!' rslt = 0 GOTO ext END IF END IF ls_mtrlwareid = f_sys_scidentity(0,"ow_wfjgware","mtrlwareid",arg_msg,false,sqlca) INSERT INTO ow_wfjgware(scid,mtrlwareid,mtrlid,sptid,noallocqty,woodcode,pcode,plancode,status,cost) Values(:arg_scid,:ls_mtrlwareid,:arg_mtrlid,:arg_sptid,0,:arg_woodcode,:arg_pcode,:arg_plancode,:arg_status,:arg_cost); 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