$PBExportHeader$uo_inware_skl.sru forward global type uo_inware_skl from uo_inware end type end forward global type uo_inware_skl from uo_inware end type global uo_inware_skl uo_inware_skl type variables end variables forward prototypes public function integer auditing (boolean arg_ifcommit, ref string arg_msg) public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg) end prototypes public function integer auditing (boolean arg_ifcommit, ref string arg_msg);Long rslt = 1,cnt = 0,i Dec new_noallocqty = 0 Long ls_newid uo_order_ml uo_order uo_order = CREATE uo_order_ml IF f_aps_mrp_cklock(scid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF inwareid = 0 THEN rslt = 0 arg_msg = "没有审核对象" GOTO ext END IF IF billtype <> 9 THEN IF uof_check_warepdb_audit(storageid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF IF it_newbegin OR it_updatebegin THEN rslt = 0 arg_msg = "编辑状态下不可以执行审核" GOTO ext END IF IF flag = 1 THEN rslt = 0 arg_msg = "单据已经审核" GOTO ext END IF UPDATE u_inware SET auditingrep = :publ_operator, auditingdate = getdate(), flag = 1 WHERE u_inware.inwareid = :inwareid AND flag = 0 AND scid = :scid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext ELSEIF commit_transaction.SQLNRows = 0 THEN rslt = 0 arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText GOTO ext END IF FOR i = 1 TO it_mxbt IF f_power_ind(2203,sys_msg_pow) AND NOT sys_power_issuper THEN IF inwaremx[i].uprice = 0 THEN rslt = 0 arg_msg = '行:'+String(i)+',没有单价,请检查' GOTO ext END IF END IF Long ll_sptid IF billtype = 1 OR billtype = 4 THEN ll_sptid = 0 ELSE ll_sptid = inwaremx[i].sptid END IF IF p_update_mtrlware(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,& storageid,inwaremx[i].plancode,inwaremx[i].status,& inwaremx[i].qty,inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,& ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,& inwaremx[i].pcode,inwaremx[i].mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,inwaremx[i].ifvqty,arg_msg) = 0 THEN arg_msg = '更新行:'+String(i)+','+arg_msg rslt = 0 GOTO ext END IF IF inwaremx[i].relid > 0 THEN IF uo_order.addmxskl(scid,inwaremx[i].relid,inwaremx[i].qty,inwaremx[i].price * inwaremx[i].qty,arg_msg,FALSE) = 0 THEN arg_msg = '第'+string(i)+'行,'+arg_msg rslt = 0 GOTO ext END IF END IF NEXT flag = 1 ext: IF rslt = 0 THEN ROLLBACK USING commit_transaction; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT USING commit_transaction; END IF DESTROY uo_order RETURN rslt end function public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Long rslt = 1,cnt = 0,i Dec new_noallocqty = 0 Long ls_newid DateTime null_dt IF f_aps_mrp_cklock(scid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF uo_order_ml uo_order uo_order = CREATE uo_order_ml SetNull(null_dt) IF inwareid = 0 THEN rslt = 0 arg_msg = "没有审核对象" GOTO ext END IF IF billtype <> 9 THEN IF uof_check_warepdb_audit(storageid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF IF it_newbegin OR it_updatebegin THEN rslt = 0 arg_msg = "编辑状态下不可以执行审核" GOTO ext END IF IF flag = 0 THEN rslt = 0 arg_msg = "单据还未审核" GOTO ext END IF IF balcflag = 1 THEN rslt = 0 arg_msg = "单据已经结存,不能撤审" GOTO ext END IF UPDATE u_inware SET auditingrep = '', auditingdate = :null_dt, flag = 0 WHERE u_inware.inwareid = :inwareid AND flag = 1 AND scid = :scid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext ELSEIF commit_transaction.SQLNRows = 0 THEN rslt = 0 arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText GOTO ext END IF FOR i = 1 TO it_mxbt Long ll_sptid IF billtype = 1 OR billtype = 4 THEN ll_sptid = 0 ELSE ll_sptid = inwaremx[i].sptid END IF IF p_update_mtrlware(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,& storageid,inwaremx[i].plancode,inwaremx[i].status,& 0 - inwaremx[i].qty,0 - inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,& ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,& inwaremx[i].pcode,inwaremx[i].mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,inwaremx[i].ifvqty,arg_msg) = 0 THEN arg_msg = '更新行:'+String(i)+','+arg_msg rslt = 0 GOTO ext END IF IF inwaremx[i].relid > 0 THEN IF uo_order.addmxskl(scid,inwaremx[i].relid,0 - inwaremx[i].qty, 0 - (inwaremx[i].qty * inwaremx[i].price) ,arg_msg,FALSE) = 0 THEN rslt = 0 GOTO ext END IF END IF NEXT flag = 0 ext: IF rslt = 0 THEN ROLLBACK USING commit_transaction; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT USING commit_transaction; END IF DESTROY uo_order RETURN rslt end function on uo_inware_skl.create call super::create end on on uo_inware_skl.destroy call super::destroy end on