$PBExportHeader$uo_mt.sru forward global type uo_mt from nonvisualobject end type end forward global type uo_mt from nonvisualobject end type global uo_mt uo_mt type variables public protectedwrite datetime opdate //建立时间,自动 public protectedwrite string opemp //建立操作员 public protectedwrite datetime moddate //修改时间,自动 public protectedwrite string modemp //修改操作员 public protectedwrite int flag=0 //仓库审核标志 public protectedwrite datetime auditingdate //审核时间 public protectedwrite string auditingrep //审核操作员 PUBLIC PROTECTEDWRITE Int secflag = 0 //财务审核标志 PUBLIC PROTECTEDWRITE DateTime secauditingdate //二审核时间 PUBLIC PROTECTEDWRITE String secauditingrep //二审核操作员 datetime billdate string relcode LONG billid string billcode string ftxt string ttxt string dscrp string dscrp1 string dscrp2 string dscrp3 string modelname string descriptionname string colorname string nwname string gwname string packingname string measname string enamename string pmodename string barcodename string qtyname string dscrpname blob fpic blob tpic long billtype=0 long cusid=0 string packsizename string packbulkname string descriptionsizename string glidename string prdcodename boolean if_getid_ture=false transaction commit_transaction //数据commit事务 s_mtmx mtmx //明细结构数组 long it_mxbt=0 //明细结构数组末指针 boolean it_newbegin=false //新建标志 boolean it_updatebegin=false //修改标志 end variables forward prototypes public function integer p_reset () public function integer p_clearmx () public function integer newbegin (integer arg_billtype, ref string arg_msg) public function integer p_getinfo (long arg_billid, ref string arg_msg) public function integer getinfo (long arg_billid, ref string arg_msg) public function integer save (boolean arg_ifcommit, ref string arg_msg) public function integer auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer c_auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer secauditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer c_secauditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer acceptmx (s_mtmx arg_mx, ref string arg_msg) public function integer updatebegin (long arg_billid, ref string arg_msg) public function integer cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit) public function integer savepic (string arg_msg) end prototypes public function integer p_reset ();//int p_reset() //清除对象及其明细 billid = 0 billcode = '' ftxt = '' ttxt = '' dscrp = '' dscrp1 = '' dscrp2 = '' dscrp3 = '' modelname = '' descriptionname = '' colorname = '' nwname = '' gwname = '' packingname = '' measname = '' enamename = '' pmodename = '' barcodename = '' qtyname = '' dscrpname = '' cusid=0 relcode = '' billtype = 0 setnull(fpic) setnull(tpic) it_newbegin = FALSE it_updatebegin = FALSE //清除明细 p_clearmx() RETURN 1 end function public function integer p_clearmx ();//int p_clearmx() //清除明细 it_mxbt=0 return 1 end function public function integer newbegin (integer arg_billtype, ref string arg_msg);//==================================================================== // Function: newbegin(long arg_scid,int arg_billtype,ref string arg_msg) //-------------------------------------------------------------------- // Description: 从置对象,设定业务类型,准备建立新进仓单 //-------------------------------------------------------------------- // Arguments: // value long arg_scid // value integer arg_billtype // reference string arg_msg //-------------------------------------------------------------------- // Returns: integer //-------------------------------------------------------------------- // Author: yyx Date: 2003.11.12 //-------------------------------------------------------------------- // Modify History: // //==================================================================== int rslt=1 p_reset() it_newbegin=true it_updatebegin=false if rslt=0 then p_reset() return rslt end function public function integer p_getinfo (long arg_billid, ref string arg_msg);//p_getinfo(arg_scid,arg_billid,arg_msg) //0 失败 1成功 Int rslt = 1 IF arg_billid <= 0 THEN rslt = 0 arG_MSG = "非法进仓单唯一码" GOTO ext END IF SELECT billid, billcode, ftxt, ttxt, dscrp, modelname, descriptionname, colorname, nwname, gwname, packingname, measname, enamename, pmodename, barcodename, qtyname, dscrpname, flag, relcode, billtype, cusid, packsizename , packbulkname , descriptionsizename , glidename , prdcodename INTO :billid, :billcode, :ftxt, :ttxt, :dscrp, :modelname, :descriptionname, :colorname, :nwname, :gwname, :packingname, :measname, :enamename, :pmodename, :barcodename, :qtyname, :dscrpname, :flag, :relcode, :billtype, :cusid, :packsizename , :packbulkname , :descriptionsizename , :glidename , :prdcodename FROM u_mt WHERE u_mt.billid = :arg_billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arG_MSG = "查询操作失败(错误进仓单唯一码),进仓单"+commit_transaction.SQLErrText GOTO ext END IF billid = arg_billid ext: IF rslt = 0 THEN p_reset() end if RETURN rslt end function public function integer getinfo (long arg_billid, ref string arg_msg);//getinfo(arg_scid,arg_billid,arg_msg) //0 失败 1成功 Int rslt = 1,i = 1,no_mxcheck = 0 IF arg_billid <= 0 THEN rslt = 0 arg_msg = "非法进仓单唯一码" GOTO ext END IF rslt = p_getinfo(arg_billid,arg_msg) //读主表 IF rslt = 0 THEN GOTO ext //用游标读取明细 DECLARE cur_inwaermx CURSOR FOR SELECT u_mtmx.billid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtmx.dscrp, u_mtmx.model, u_mtmx.description, u_mtmx.color, u_mtmx.nw, u_mtmx.gw, u_mtmx.packing, u_mtmx.meas, u_mtmx.pmode, u_mtmx.barcode, u_mtmx.qty, u_mtmx.ename, u_mtmx.mtrlid, u_mtmx.reltaskid, u_mtmx.relprintid, u_mtmx.sptid, u_mtmx.reltaskcode, u_mtmx.relbillcode, u_mtmx.relid, u_mtmx.zxmtrlmode, u_mtmx.packsize , u_mtmx.packbulk , u_mtmx.descriptionsize , u_mtmx.glide , u_mtmx.prdcode FROM u_mtmx,u_mtrldef WHERE u_mtmx.billid = :arg_billid AND u_mtmx.mtrlid = u_mtrldef.mtrlid USING commit_transaction; OPEN cur_inwaermx; FETCH cur_inwaermx INTO :mtmx.billid[i], :mtmx.mtrlcode[i], :mtmx.mtrlname[i], :mtmx.dscrp[i], :mtmx.model[i], :mtmx.description[i], :mtmx.color[i], :mtmx.nw[i], :mtmx.gw[i], :mtmx.packing[i], :mtmx.meas[i], :mtmx.pmode[i], :mtmx.barcode[i], :mtmx.qty[i], :mtmx.ename[i], :mtmx.mtrlid[i], :mtmx.reltaskid[i], :mtmx.relprintid[i], :mtmx.sptid[i], :mtmx.reltaskcode[i], :mtmx.relbillcode[i], :mtmx.relid[i], :mtmx.zxmtrlmode[i], :mtmx.packsize[i] , :mtmx.packbulk[i] , :mtmx.descriptionsize[i] , :mtmx.glide[i] , :mtmx.prdcode[i]; DO WHILE commit_transaction.SQLCode = 0 i++ FETCH cur_inwaermx INTO :mtmx.billid[i], :mtmx.mtrlcode[i], :mtmx.mtrlname[i], :mtmx.dscrp[i], :mtmx.model[i], :mtmx.description[i], :mtmx.color[i], :mtmx.nw[i], :mtmx.gw[i], :mtmx.packing[i], :mtmx.meas[i], :mtmx.pmode[i], :mtmx.barcode[i], :mtmx.qty[i], :mtmx.ename[i], :mtmx.mtrlid[i], :mtmx.reltaskid[i], :mtmx.relprintid[i], :mtmx.sptid[i], :mtmx.reltaskcode[i], :mtmx.relbillcode[i], :mtmx.relid[i], :mtmx.zxmtrlmode[i], :mtmx.packsize[i] , :mtmx.packbulk[i] , :mtmx.descriptionsize[i] , :mtmx.glide[i] , :mtmx.prdcode[i]; LOOP CLOSE cur_inwaermx; //检验明细是否读入完整 SELECT count(*) INTO :no_mxcheck FROM u_mtmx Where u_mtmx.billid = :arg_billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,进仓单明细数量" GOTO ext END IF IF i <> (no_mxcheck+1) THEN rslt = 0 arg_msg = "查询操作失败,进仓单明细" GOTO ext END IF billid = arg_billid it_mxbt = i - 1 it_newbegin = FALSE it_updatebegin = FALSE ext: IF rslt = 0 THEN p_reset() RETURN rslt end function public function integer save (boolean arg_ifcommit, ref string arg_msg);Integer rslt = 1,cnt = 0,i DateTime server_dt Long ls_newid String ls_sccode IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN rslt = 0 arg_msg = "非编辑状态不可以提交" GOTO ext END IF SELECT Top 1 getdate() INTO :server_dt FROM u_user USING commit_transaction ; //取得系统时间,借用操作员表 IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,日期 " GOTO ext END IF IF it_mxbt = 0 THEN //如果输入物料资料错则已经清空 rslt = 0 arg_msg = "没有正确进仓内容" GOTO ext END IF IF Year(Date(billdate)) < 2000 OR IsNull(billdate) THEN rslt = 0 arg_msg = "缺少进仓发生时间或不合理" GOTO ext END IF //==================================================================== // Script - save ( boolean arg_ifcommit, ref string arg_msg ) // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2004.01.02 //-------------------------------------------------------------------- ////////////////////////////////////////////// //开始区分:新建/更新 处理 IF billid = 0 THEN //新建 ls_newid = f_sys_scidentity(0,"u_mt","billid",arg_msg,if_getid_ture,commit_transaction) IF ls_newid <= 0 THEN rslt = 0 GOTO ext END IF //取分部代号 IF f_get_sccode(0,commit_transaction,ls_sccode,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF billtype = 0 THEN billcode = getid(0,ls_sccode + 'MD',Date(server_dt),FALSE,commit_transaction) ELSE billcode = getid(0,ls_sccode + 'MT',Date(server_dt),FALSE,commit_transaction) END IF IF billcode = "err" THEN billcode = '' rslt = 0 arg_msg = "无法获取进仓单编号"+"~n"+commit_transaction.SQLErrText GOTO ext END IF INSERT INTO u_mt ( billid, billcode, billdate, ftxt, ttxt, dscrp, modelname, descriptionname, colorname, nwname, gwname, packingname, measname, enamename, pmodename, barcodename, qtyname, dscrpname, billtype, relcode, cusid, packsizename , packbulkname , descriptionsizename , glidename , prdcodename, opdate, opemp, dscrp1, dscrp2, dscrp3) VALUES ( :ls_newid, :billcode, :billdate, :ftxt, :ttxt, :dscrp, :modelname, :descriptionname, :colorname, :nwname, :gwname, :packingname, :measname, :enamename, :pmodename, :barcodename, :qtyname, :dscrpname, :billtype, :relcode, :cusid, :packsizename , :packbulkname , :descriptionsizename , :glidename , :prdcodename, getdate(), :publ_operator, :dscrp1, :dscrp2, :dscrp3 ) USING commit_transaction ; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF //读取新billid billid = ls_newid FOR i = 1 TO it_mxbt INSERT INTO u_mtmx ( billid, dscrp, model, description, color, nw, gw, packing, meas, pmode, barcode, qty, ename, mtrlid, reltaskid, relprintid, sptid, reltaskcode, relbillcode, relid, zxmtrlmode, packsize , packbulk , descriptionsize , glide , prdcode, printid, dscrp1, dscrp2, dscrp3 ) VALUES ( :ls_newid, :mtmx.dscrp[i], :mtmx.model[i], :mtmx.description[i], :mtmx.color[i], :mtmx.nw[i], :mtmx.gw[i], :mtmx.packing[i], :mtmx.meas[i], :mtmx.pmode[i], :mtmx.barcode[i], :mtmx.qty[i], :mtmx.ename[i], :mtmx.mtrlid[i], :mtmx.reltaskid[i], :mtmx.relprintid[i], :mtmx.sptid[i], :mtmx.reltaskcode[i], :mtmx.relbillcode[i], :mtmx.relid[i], :mtmx.zxmtrlmode[i], :mtmx.packsize[i] , :mtmx.packbulk[i] , :mtmx.descriptionsize[i] , :mtmx.glide[i], :mtmx.prdcode[i], :mtmx.printid[i], :mtmx.dscrp1[i], :mtmx.dscrp2[i], :mtmx.dscrp3[i] ) USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN billid = 0 //还原billid rslt = 0 arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF NEXT ELSE //////////////////////////////////////////////// //更新 UPDATE u_mt SET ftxt = :ftxt, ttxt = :ttxt, dscrp = :dscrp, modelname = :modelname, descriptionname = :descriptionname, colorname = :colorname, nwname = :nwname, gwname = :gwname, packingname = :packingname, measname = :measname, enamename = :enamename, pmodename = :pmodename, barcodename = :barcodename, qtyname = :qtyname, dscrpname = :dscrpname, relcode = :relcode, billdate = :billdate, cusid = :cusid, packsizename = :packsizename , packbulkname = :packbulkname , descriptionsizename = :descriptionsizename , glidename = :glidename , prdcodename = :prdcodename, moddate=getdate(), modemp=:publ_operator, dscrp1 = :dscrp1, dscrp2 = :dscrp2, dscrp3 = :dscrp3 WHERE u_mt.billid = :billid AND flag = 0 USING commit_transaction; IF commit_transaction.SQLCode <> 0 OR commit_transaction.SQLNRows <= 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF //删除原有明细 DELETE FROM u_mtmx Where u_mtmx.billid = :billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "删除旧有明细操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF FOR i = 1 TO it_mxbt INSERT INTO u_mtmx (billid, dscrp, model, description, color, nw, gw, packing, meas, pmode, barcode, qty, ename, mtrlid, reltaskid, relprintid, sptid, reltaskcode, relbillcode, relid, zxmtrlmode, packsize, packbulk , descriptionsize , glide , prdcode, printid, dscrp1, dscrp2, dscrp3) VALUES ( :billid, :mtmx.dscrp[i], :mtmx.model[i], :mtmx.description[i], :mtmx.color[i], :mtmx.nw[i], :mtmx.gw[i], :mtmx.packing[i], :mtmx.meas[i], :mtmx.pmode[i], :mtmx.barcode[i], :mtmx.qty[i], :mtmx.ename[i], :mtmx.mtrlid[i], :mtmx.reltaskid[i], :mtmx.relprintid[i], :mtmx.sptid[i], :mtmx.reltaskcode[i], :mtmx.relbillcode[i], :mtmx.relid[i], :mtmx.zxmtrlmode[i], :mtmx.packsize[i] , :mtmx.packbulk[i] , :mtmx.descriptionsize[i] , :mtmx.glide[i], :mtmx.prdcode[i], :mtmx.printid[i], :mtmx.dscrp1[i], :mtmx.dscrp2[i], :mtmx.dscrp3[i]) USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF NEXT END IF it_newbegin = FALSE it_updatebegin = FALSE ext: IF rslt = 0 THEN ROLLBACK USING commit_transaction; p_clearmx() ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT USING commit_transaction; savepic(arg_msg) END IF RETURN rslt end function public function integer auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit); Int rslt = 1,i IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF getinfo( arg_billid, arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 1 THEN rslt = 0 arg_msg = "计件工价计算还没有审核,请核对" GOTO ext END IF //更新审核标记 UPDATE u_mt SET auditingrep = :publ_operator , Auditingdate = getdate(), flag = 1 WHERE billid = :arg_billid AND flag = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer c_auditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit); Int rslt = 1,i DateTime ls_null SetNull(ls_null) IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF getinfo( arg_billid, arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 0 THEN rslt = 0 arg_msg = "计件工价计算还没有审核,请核对" GOTO ext END IF //更新审核标记 UPDATE u_mt SET auditingrep = '' , Auditingdate = :ls_null, flag = 0 WHERE billid = :arg_billid AND flag = 1; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致单据撤审操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer secauditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit); Int rslt = 1,i IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF getinfo( arg_billid, arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 2 THEN rslt = 0 arg_msg = "单据已高审,请核对" GOTO ext END IF //更新审核标记 UPDATE u_mt SET secauditingrep = :publ_operator , secauditingdate = getdate(), flag = 2 WHERE billid = :arg_billid AND flag = 1; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF //FOR i = 1 TO it_mxbt // // UPDATE u_workprice SET // workprice = :s_mx.wrkprice[i], // dscrp = :s_mx.dscrp[i], // jgname=:s_mx.jgname[i], // wrkgrpid = :billid, // relcode = :billcode // WHERE mtrlid = :s_mx.mtrlid[i] // AND proid = :s_mx.proid[i] // and jgname = :s_mx.jgname[i]; // // IF sqlca.SQLCode = 0 THEN // IF sqlca.SQLNRows = 0 THEN // // INSERT INTO u_workprice // (proid,mtrlid,workprice,dscrp,wrkgrpid,relcode,jgname) // VALUES // (:s_mx.proid[i],:s_mx.mtrlid[i],:s_mx.wrkprice[i],:s_mx.dscrp[i],:billid,:billcode, :s_mx.jgname[i]); // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // ARG_MSG = '更新单据失败'+sqlca.SQLErrText // GOTO ext // END IF // // END IF // ELSE // rslt = 0 // ARG_MSG = '更新单据失败'+sqlca.SQLErrText // GOTO ext // END IF // // //NEXT // ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer c_secauditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit); Int rslt = 1,i DateTime ls_null SetNull(ls_null) IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误单据唯一码' GOTO ext END IF IF getinfo( arg_billid, arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag <> 2 THEN rslt = 0 arg_msg = "计件工价计算未高审,不能撤审,请核对" GOTO ext END IF //更新审核标记 UPDATE u_mt SET secauditingrep = '' , secauditingdate = :ls_null, flag = 1 WHERE billid = :arg_billid AND flag = 2; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致单据撤审操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF //FOR i = 1 TO it_mxbt // // // UPDATE u_workprice SET // workprice = :s_mx.oldprice[i], // dscrp = :s_mx.olddscrp[i], // wrkgrpid = :s_mx.wrkgrpid[i], // relcode = :s_mx.relcode[i] // WHERE mtrlid = :s_mx.mtrlid[i] // AND proid = :s_mx.proid[i] // and jgname=:s_mx.jgname[i]; // // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // ARG_MSG = '更新产品工价失败'+sqlca.SQLErrText // GOTO ext // END IF // //NEXT ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer acceptmx (s_mtmx arg_mx, ref string arg_msg);Long rslt = 1,cnt = 0,LS_i Long ll_sptid //写入内容 FOR LS_i = 1 TO UpperBound(arg_mx.mtrlid) IF arg_mx.mtrlid[LS_i] = 0 THEN CONTINUE it_MXBT++ mtmx.mtrlid[it_MXBT] = arg_mx.mtrlid[LS_i] mtmx.qty[it_MXBT] = arg_mx.qty[LS_i] mtmx.model[it_MXBT] = arg_mx.model[LS_i] mtmx.description[it_MXBT] = arg_mx.description[LS_i] mtmx.Color[it_MXBT] = arg_mx.Color[LS_i] mtmx.nw[it_MXBT] = arg_mx.nw[LS_i] mtmx.gw[it_MXBT] = arg_mx.gw[LS_i] mtmx.packing[it_MXBT] = arg_mx.packing[LS_i] mtmx.meas[it_MXBT] = arg_mx.meas[LS_i] mtmx.ename[it_MXBT] = arg_mx.ename[LS_i] mtmx.pmode[it_MXBT] = arg_mx.pmode[LS_i] mtmx.barcode[it_MXBT] = arg_mx.barcode[LS_i] mtmx.dscrp[it_MXBT] = arg_mx.dscrp[LS_i] mtmx.reltaskid[it_MXBT] = arg_mx.reltaskid[LS_i] mtmx.relprintid[it_MXBT] = arg_mx.relprintid[LS_i] mtmx.printid[it_MXBT] = it_MXBT mtmx.sptid[it_MXBT] = arg_mx.sptid[LS_i] mtmx.zxmtrlmode[it_MXBT] = '' //arg_mx.zxmtrlmode[LS_i] mtmx.reltaskcode[it_MXBT] = arg_mx.reltaskcode[LS_i] mtmx.relbillcode[it_MXBT] = arg_mx.relbillcode[LS_i] mtmx.relid[it_MXBT] = arg_mx.relid[LS_i] mtmx.packsize[it_MXBT] = arg_mx.packsize[LS_i] mtmx.packbulk[it_MXBT] = arg_mx.packbulk[LS_i] mtmx.descriptionsize[it_MXBT] = arg_mx.descriptionsize[LS_i] mtmx.glide[it_MXBT] = arg_mx.glide[LS_i] mtmx.prdcode[it_MXBT] = arg_mx.prdcode[LS_i] mtmx.dscrp1[it_MXBT] = arg_mx.dscrp1[LS_i] mtmx.dscrp2[it_MXBT] = arg_mx.dscrp2[LS_i] mtmx.dscrp3[it_MXBT] = arg_mx.dscrp3[LS_i] NEXT //ext: IF rslt = 0 THEN p_clearmx() Return(rslt) end function public function integer updatebegin (long arg_billid, ref string arg_msg);//==================================================================== // Function: updatebegin(arg_scid,arg_billid,arg_billtype,arg_msg) //-------------------------------------------------------------------- // Description: 从置对象,设定业务类型与关联ID,准备更新进仓单 //-------------------------------------------------------------------- // Arguments: // value long arg_scid // value long arg_billid // value integer arg_billtype // reference string arg_msg //-------------------------------------------------------------------- // Returns: integer //-------------------------------------------------------------------- // Author: yyx Date: 2003.11.12 //-------------------------------------------------------------------- // Modify History: // //==================================================================== long rslt=1 if arg_billid<=0 then rslt=0 goto ext end if rslt=p_getinfo(arg_billid,arg_msg) if rslt=0 then goto ext if flag>0 then rslt=0 arg_msg='单据已经审核,不可以修改' goto ext end if billid=arg_billid it_newbegin=false it_updatebegin=true p_clearmx() //清除明细 ext: if rslt=0 then p_reset() return rslt end function public function integer cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit); //删除未审核的订单 //0 FAIL, 1 SUCCESS Int rslt = 1 IF arg_billid <= 0 THEN rslt = 0 arg_msg = '错误唛头单唯一码' GOTO ext END IF IF p_getinfo(arg_billid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag <> 0 THEN rslt = 0 arg_msg = "唛头单已经审核,不可以删除" GOTO ext END IF Long cnt cnt = 0 DELETE FROM u_mt Where u_mt.billid = :arg_billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "删除唛头单操作失败"+"~n"+commit_transaction.SQLErrText ROLLBACK USING commit_transaction; GOTO ext END IF DELETE FROM u_mtmx Where u_mtmx.billid = :arg_billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "删除唛头单明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK USING commit_transaction; GOTO ext END IF IT_NEWBEGIN = FALSE IT_UPDATEBEGIN = FALSE IF arg_ifcommit AND rslt = 1 THEN COMMIT USING commit_transaction; END IF ext: p_reset() Return (rslt) end function public function integer savepic (string arg_msg);int rslt=1 UPDATEBLOB u_mt Set fpic = :fpic Where billid = :billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入图片操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF UPDATEBLOB u_mt Set tpic = :tpic Where billid = :billid USING commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入图片操作失败"+"~n"+commit_transaction.SQLErrText GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK USING commit_transaction; ELSEIF rslt = 1 THEN COMMIT USING commit_transaction; END IF RETURN rslt end function on uo_mt.create call super::create TriggerEvent( this, "constructor" ) end on on uo_mt.destroy TriggerEvent( this, "destructor" ) call super::destroy end on