$PBExportHeader$uo_inware_ll.sru forward global type uo_inware_ll from uo_inware end type end forward global type uo_inware_ll from uo_inware end type global uo_inware_ll uo_inware_ll 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);Int rslt = 1 Long cnt = 0,i uo_saletask_ll uo_task uo_task = Create uo_saletask_ll uo_task.commit_transaction = commit_transaction uo_sqlpro uo_pro uo_pro = Create uo_sqlpro uo_pro.commit_transaction = commit_transaction IF storageid = 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 String ls_storagename SELECT storagename INTO :ls_storagename FROM u_storage Where storageid = :storageid Using commit_transaction ; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,仓库" GOTO ext END IF //检查是否有该仓库的建立权限 IF sys_user_storagestr_audit <> '0' THEN IF Pos(sys_user_storagestr_audit,','+String(storageid)+',') <= 0 THEN rslt = 0 arg_msg = '没有仓库: '+ls_storagename+' 的审核权限,不允许审核该仓库的单据' GOTO ext END IF END IF // IF inwareid = 0 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].cost = 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 sys_option_inout_procedure = 0 THEN 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 ELSE IF p_update_mtrlware_ws(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,arg_msg) = 0 THEN arg_msg = '更新行:'+String(i)+','+arg_msg rslt = 0 GOTO ext END IF END IF IF billtype = 5 And inwaremx[i].relid > 0 THEN IF uo_task.addmxcmpl_in(inwaremx[i].relid,inwaremx[i].relprintid,& inwaremx[i].uqty,arg_msg,False) <> 1 THEN 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_task Destroy uo_pro RETURN rslt end function public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1 Long cnt = 0,i uo_sqlpro uo_pro uo_pro = Create uo_sqlpro uo_pro.commit_transaction = commit_transaction uo_saletask_ll uo_task uo_task = Create uo_saletask_ll uo_task.commit_transaction = commit_transaction DateTime null_dt SetNull(null_dt) IF storageid = 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 String ls_storagename SELECT storagename INTO :ls_storagename FROM u_storage Where storageid = :storageid Using commit_transaction ; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,仓库" GOTO ext END IF //检查是否有该仓库的建立权限 IF sys_user_storagestr_audit <> '0' THEN IF Pos(sys_user_storagestr_audit,','+String(storageid)+',') <= 0 THEN rslt = 0 arg_msg = '没有仓库: '+ls_storagename+' 的审核权限,不允许撤审该仓库的单据' GOTO ext END IF END IF // IF inwareid = 0 THEN rslt = 0 arg_msg = "没有出仓撤审对象" GOTO ext END IF IF ctmint > 0 THEN arg_msg = '单据已截数,不能操作' rslt = 0 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 sys_option_inout_procedure = 0 THEN 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 ELSE IF uo_pro.p_inware_update_mtrlware(scid,inwareid,inwaremx[i].printid,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,arg_msg) = 0 THEN arg_msg = '更新行:'+String(i)+','+arg_msg rslt = 0 GOTO ext END IF END IF IF billtype = 5 And inwaremx[i].relid > 0 THEN IF uo_task.addmxcmpl_in(inwaremx[i].relid,inwaremx[i].relprintid,& 0 - inwaremx[i].uqty,arg_msg,False) <> 1 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_task Destroy uo_pro RETURN rslt end function on uo_inware_ll.create call super::create end on on uo_inware_ll.destroy call super::destroy end on