1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120 |
- $PBExportHeader$uo_buytask_adjust.sru
- forward
- global type uo_buytask_adjust from nonvisualobject
- end type
- type s_buytaskmx from structure within uo_buytask_adjust
- end type
- end forward
- type s_buytaskmx from structure
- long requestbuyid
- string ordercode
- long mtrlid
- decimal { 5 } qty
- decimal { 4 } plprice
- decimal { 4 } acprice
- string dscrp
- string mtrlcode
- long printid
- decimal { 4 } fprice
- decimal { 4 } rebate
- decimal { 4 } price
- datetime requiredate
- datetime accomplishdate
- long storageid
- integer iforder
- string sptmtrlname
- string unit
- decimal { 5 } rate
- decimal { 5 } uqty
- decimal { 5 } uprice
- string papery
- long admtrlid
- long relprintid
- decimal { 5 } rebuyqty
- long orderid
- long buybargainid
- long buybargainprintid
- string buybargaincode
- decimal { 5 } consignedqty
- decimal { 5 } newadmtrlid
- end type
- global type uo_buytask_adjust from nonvisualobject
- end type
- global uo_buytask_adjust uo_buytask_adjust
- type variables
- PUBLIC PROTECTEDWRITE Long scid = 0
- PUBLIC PROTECTEDWRITE Long billid = 0
- PUBLIC PROTECTEDWRITE String billcode = ''
- PUBLIC PROTECTEDWRITE DateTime opdate
- PUBLIC PROTECTEDWRITE String operator = ''
- PUBLIC PROTECTEDWRITE Int status = 0
- PUBLIC PROTECTEDWRITE DateTime Accomplishdate
- PUBLIC PROTECTEDWRITE String Permit_emp = ''
- int billtype
- datetime billdate
- int flag,secflag
- Long relid = 0
- Int Kind = 0
- Long sptID = 0
- String dscrp
- string relcode
- Transaction commit_transaction
- PRIVATE:
- s_buytaskmx buytaskmx[] //明细结构数组
- s_buytask_mx_ch s_mx
- Long it_MXBT = 0 //明细结构数组末指针
- Boolean IT_NEWBEGIN = TRUE //新建标志
- Boolean IT_UPDATEBEGIN = FALSE//修改标志
- end variables
- forward prototypes
- public function integer p_reset ()
- public function integer p_clearmx ()
- public function integer savesubmit (string arg_operator, ref string arg_msg, boolean arg_ifcommit)
- public function integer getinfo (long arg_taskid, ref string arg_msg)
- public function integer newbegin (long arg_scid, ref string arg_msg)
- public function integer p_getinfo (long arg_billid, ref string arg_msg)
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
- public function integer cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer updatebegin (long arg_billid, ref string arg_msg)
- public function integer cancelpermit (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer acceptmx (s_buytask_mx_ch arg_mx, 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)
- end prototypes
- public function integer p_reset ();//INT p_RESET()
- //清除对象及其明细
- scid = 0
- billid = 0
- billcode = ''
- operator = ''
- relcode = ''
- status = 0
- SETNULL(opdate)
- SETNULL(Accomplishdate)
- Permit_emp = ''
- flag=0
- secflag=0
- 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 savesubmit (string arg_operator, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1,cnt = 0,i
- Long LS_NEWbillid
- DateTime server_datetime
- String ls_sccode
- Long ll_billid
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(arg_operator) THEN arg_operator = ''
- //====================================================================
- // Script - save ( ref string arg_msg, boolean arg_ifcommit )
- // Reason:
- //--------------------------------------------------------------------
- // Modified By: yyx Date: 2004.02.20
- //--------------------------------------------------------------------
- IF Len(dscrp) > 0 THEN dscrp = ' ' + dscrp
- //====================================================================
- operator = arg_operator
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以提交"
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_spt
- Where sptID = :sptID USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,客户资料"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "供应商未定义或错误"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- arg_msg = '结算方式不存在'
- rslt = 0
- GOTO ext
- END IF
- SELECT Top 1 getdate() INTO :server_datetime 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
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_user
- Where username = :operator USING commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,操作员!"
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = "操作员姓名未登记或已取消!"
- GOTO ext
- END IF
- opdate = server_datetime //填写单据建立时间(最近修改时间)
- ////////////////////////////////////////////////开始区分:新建/更新 处理
- IF billid = 0 THEN //新建
-
- ll_billid = f_sys_scidentity(0,"u_buytaskmx_adjust","billid",arg_msg,FALSE, commit_transaction) //数据commit事务)
- IF ll_billid <= 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
-
- billcode = getid(0,ls_sccode + 'CDT',Date(server_datetime),FALSE,commit_transaction)
- IF billcode = "err" THEN
- billcode = ''
- rslt = 0
- arg_msg = "无法获取采购订单编号"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- INSERT INTO u_buytaskmx_adjust
- (scid,
- billid,
- billcode,
- sptID,
- Status,
- Opemp,
- Dscrp,
- opdate,
- relcode,
- relid,
- billdate,
- billtype)
- VALUES (:scid,
- :ll_billid,
- :billcode,
- :sptID,
- :Status,
- :Operator,
- :Dscrp,
- :opdate,
- :relcode,
- :relid,
- :billdate,
- :billtype) 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
-
- //读取新billid
- billid = ll_billid
-
-
-
- ELSE //////////////////////////////////////////////////更新
- UPDATE u_buyTaskMx_adjust
- SET Opemp = :publ_operator ,
- Dscrp = :Dscrp,
- opdate = getdate(),
- relid=:relid,
- relcode = :relcode,
- billdate=:billdate,
- billtype=:billtype
- WHERE u_buyTaskMx_adjust.scid = :scid
- AND u_buyTaskMx_adjust.billid = :billid
- AND Status = 0 USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "更新采购订单单价变更单操作失败"+"~n"+commit_transaction.SQLErrText
- //ROLLBACK USING commit_transaction;
- GOTO ext
- END IF
-
- //删除原有明细
- DELETE FROM u_buyTaskMx_adjustmx
- Where u_buyTaskMx_adjustmx.scid = :scid
- and u_buyTaskMx_adjustmx.billid = :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
-
- END IF
- FOR i = 1 TO it_mxbt
- INSERT INTO u_buyTaskMx_adjustmx
- (scid,
- billid,
- printid,
- TaskID,
- taskprintid,
- MtrlID,
- iforder,
- Qty,
- fprice,
- rebate,
- Price,
- AssignQty,
- dscrp,
- consignedqty,
- Requiredate,
- storageid,
- orderid,
- sptmtrlname,
- unit,
- rate,
- uqty,
- uprice,
- stopflag,
- stopemp,
- stopdate,
- stopreason,
- accomplishdate,
- jgdscrp,
- stopqty,
- requestbuyid,
- relprintid,
- rebuyqty,
- buybargainid,
- buybargainprintid,
- buybargaincode,
- newbuybargainid,
- newbuybargainprintid,
- newbuybargaincode,
- newprice,
- newjgdscrp)
- VALUES (:scid,
- :billid,
- :s_mx.printid[i],
- :s_mx.TaskID[i],
- :s_mx.taskprintid[i],
- :s_mx.MtrlID[i],
- :s_mx.iforder[i],
- :s_mx.Qty[i],
- :s_mx.fprice[i],
- :s_mx.rebate[i],
- :s_mx.Price[i],
- :s_mx.AssignQty[i],
- :s_mx.dscrp[i],
- :s_mx.consignedqty[i],
- :s_mx.Requiredate[i],
- :s_mx.storageid[i],
- :s_mx.orderid[i],
- :s_mx.sptmtrlname[i],
- :s_mx.unit[i],
- :s_mx.rate[i],
- :s_mx.uqty[i],
- :s_mx.uprice[i],
- :s_mx.stopflag[i],
- :s_mx.stopemp[i],
- :s_mx.stopdate[i],
- :s_mx.stopreason[i],
- :s_mx.accomplishdate[i],
- :s_mx.jgdscrp[i],
- :s_mx.stopqty[i],
- :s_mx.requestbuyid[i],
- :s_mx.relprintid[i],
- :s_mx.rebuyqty[i],
- :s_mx.buybargainid[i],
- :s_mx.buybargainprintid[i],
- :s_mx.buybargaincode[i],
- :s_mx.newbuybargainid[i],
- :s_mx.newbuybargainprintid[i],
- :s_mx.newbuybargaincode[i],
- :s_mx.newprice[i],
- :s_mx.newjgdscrp[i]) USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- if it_newbegin then billid = 0 //还原billid
- rslt = 0
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+commit_transaction.SQLErrText
- //ROLLBACK USING commit_transaction;
- GOTO ext
- END IF
- NEXT
-
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN
- p_clearmx()
- ROLLBACK USING commit_transaction;
- ELSEIF arg_ifcommit AND rslt = 1 THEN
- COMMIT USING commit_transaction;
- END IF
- Return(rslt)
- end function
- public function integer getinfo (long arg_taskid, ref string arg_msg);//getinfo(long arg_taskid,string arg_msg)
- //0 失败 1成功
- Int rslt = 1,I = 1,NO_MXCHECK = 0
- IF arg_taskid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误采购订单唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_taskid,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //用游标读取明细
- DECLARE CUR_INWAERMX CURSOR FOR
- SELECT u_buyTaskMx_adjustmx.mtrlid,
- u_buyTaskMx_adjustmx.qty,
- u_buyTaskMx_adjustmx.price,
- u_buyTaskMx_adjustmx.dscrp,
- u_mtrldef.mtrlcode,
- u_buyTaskMx_adjustmx.printid,
- u_buyTaskMx_adjustmx.fprice,
- u_buyTaskMx_adjustmx.rebate,
- u_buyTaskMx_adjustmx.requestbuyid,
- u_buyTaskMx_adjustmx.storageid,
- u_buyTaskMx_adjustmx.sptmtrlname,
- u_buyTaskMx_adjustmx.unit,
- u_buyTaskMx_adjustmx.rate,
- u_buyTaskMx_adjustmx.uqty,
- u_buyTaskMx_adjustmx.uprice,
- u_buyTaskMx_adjustmx.jgdscrp,
- u_buyTaskMx_adjustmx.relprintid,
- u_buyTaskMx_adjustmx.buybargainid,
- u_buyTaskMx_adjustmx.buybargainprintid,
- u_buyTaskMx_adjustmx.buybargaincode,
- u_buyTaskMx_adjustmx.consignedqty,
- u_buyTaskMx_adjustmx.newbuybargainid,
- u_buyTaskMx_adjustmx.newbuybargainprintid,
- u_buyTaskMx_adjustmx.newbuybargaincode,
- u_buyTaskMx_adjustmx.newprice,
- u_buyTaskMx_adjustmx.newjgdscrp,
- u_buyTaskMx_adjustmx.taskid,
- u_buyTaskMx_adjustmx.taskprintid
- FROM u_buyTaskMx_adjustmx,u_mtrldef
- WHERE u_buyTaskMx_adjustmx.billid = :arg_taskid AND
- u_buyTaskMx_adjustmx.mtrlid = u_mtrldef.mtrlid USING commit_transaction;
-
- OPEN CUR_INWAERMX;
- FETCH CUR_INWAERMX INTO :s_mx.mtrlid[i],:s_mx.qty[i],:s_mx.price[i],
- :s_mx.dscrp[i],:s_mx.mtrlcode[i],
- :s_mx.printid[i],:s_mx.fprice[i],:s_mx.rebate[i],
- :s_mx.requestbuyid[i],:s_mx.storageid[i],
- :s_mx.sptmtrlname[i],:s_mx.unit[i],:s_mx.rate[i],
- :s_mx.uqty[i],:s_mx.uprice[i],:s_mx.jgdscrp[i],:s_mx.relprintid[i],
- :s_mx.buybargainid[i],
- :s_mx.buybargainprintid[i],
- :s_mx.buybargaincode[i],
- :s_mx.consignedqty[i],
- :s_mx.newbuybargainid[i],
- :s_mx.newbuybargainprintid[i],
- :s_mx.newbuybargaincode[i],
- :s_mx.newprice[i],
- :s_mx.newjgdscrp[i],
- :s_mx.taskid[i],
- :s_mx.taskprintid[i];
- DO WHILE commit_transaction.SQLCode = 0
- I++
- FETCH CUR_INWAERMX INTO :s_mx.mtrlid[i],:s_mx.qty[i],:s_mx.price[i],
- :s_mx.dscrp[i],:s_mx.mtrlcode[i],
- :s_mx.printid[i],:s_mx.fprice[i],:s_mx.rebate[i],
- :s_mx.requestbuyid[i],:s_mx.storageid[i],
- :s_mx.sptmtrlname[i],:s_mx.unit[i],:s_mx.rate[i],
- :s_mx.uqty[i],:s_mx.uprice[i],:s_mx.jgdscrp[i],:s_mx.relprintid[i],
- :s_mx.buybargainid[i],
- :s_mx.buybargainprintid[i],
- :s_mx.buybargaincode[i],
- :s_mx.consignedqty[i],
- :s_mx.newbuybargainid[i],
- :s_mx.newbuybargainprintid[i],
- :s_mx.newbuybargaincode[i],
- :s_mx.newprice[i],
- :s_mx.newjgdscrp[i],
- :s_mx.taskid[i],
- :s_mx.taskprintid[i];
- LOOP
- CLOSE CUR_INWAERMX;
- //检验明细是否读入完整
- SELECT COUNT(*) INTO :NO_MXCHECK
- FROM u_buyTaskMx_adjustmx
- Where u_buyTaskMx_adjustmx.billid = :arg_taskid 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
- it_mxbt = I - 1
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer newbegin (long arg_scid, ref string arg_msg);//重置对象,设定业务类型与关联ID,准备建立新单
- //0 fail 1 success
- Long rslt = 1,CNT = 0
- IF arg_scid < 0 THEN
- arg_msg = '请选择分部'
- rslt = 0
- GOTO ext
- END IF
- p_reset()
- it_newbegin = TRUE
- it_updatebegin = FALSE
- scid = arg_scid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- SELECT scid,
- billid,
- billCode,
- sptID,
- Status,
- Dscrp,
- relcode,
- flag,
- secflag
- INTO :scid,
- :billid,
- :billCode,
- :sptID,
- :Status,
- :Dscrp,
- :relcode,
- :flag,
- :secflag
- FROM u_buyTaskMx_adjust
- Where u_buyTaskMx_adjust.billid = :arg_billid USING commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = '查询订单内容失败(错误订单唯一码)'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit);//add_dscrp(string arg_newdescppart)
- //0 fail 1 SUCCESS
- Int rslt = 1
- arg_newdescppart = Trim(arg_newdescppart)
- IF it_updatebegin Or it_newbegin THEN
- rslt = 0
- arG_MSG = "编辑状态下不可用"
- GOTO ext
- END IF
- IF arg_newdescppart = '' 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 status = 0 THEN
- rslt = 0
- arG_MSG = "待采购审核状态下不可用"
- GOTO ext
- END IF
- UPDATE u_buyTaskMx_adjust
- SET DSCRP = DSCRP+' '+:arg_newdescppart
- Where u_buyTaskMx_adjust.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
- DSCRP = DSCRP+' '+arg_newdescppart
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF arg_ifcommit And rslt = 1 THEN
- COMMIT Using commit_transaction;
- END IF
- 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 Status <> 0 THEN
- rslt = 0
- ARG_MSG = "订单已经审核,不可以删除"
- GOTO ext
- END IF
- Long cnt
- cnt = 0
- DELETE FROM u_buyTaskMx_adjust
- Where u_buyTaskMx_adjust.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_buyTaskMx_adjustmx
- Where u_buyTaskMx_adjustmx.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 updatebegin (long arg_billid, ref string arg_msg);//UPDATEbegin(long arg_billid,ref string arg_msg)
- //从置对象,设定业务类型与关联ID,准备更新进仓单
- //0 fail 1 success
- Long rslt = 1,CNT = 0
- 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
- it_newbegin = False
- it_updatebegin = True
- p_clearmx() //清除明细
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer cancelpermit (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,cnt = 0
- DateTime NULLDT
- SetNull(NULLDT)
- //uo_requestbuy uo_task
- //uo_task = CREATE uo_requestbuy
- //uo_task.commit_transaction = commit_transaction
- 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 Status <> 1 THEN
- rslt = 0
- ARG_MSG = "订单只有在已审核状态才可以执行撤消审核,请核对"
- GOTO ext
- END IF
- UPDATE u_buyTaskMx_adjust
- SET Status = 0,Permit_date = :NULLDT,
- Permit_Emp = ''
- Where billid = :arg_billid AND Status = 1 USING commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "因网络或其它原因导致采购订单撤消审核操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF arg_ifcommit AND rslt = 1 THEN
- COMMIT USING commit_transaction;
- END IF
- //DESTROY uo_task
- p_reset()
- Return (rslt)
- end function
- public function integer acceptmx (s_buytask_mx_ch arg_mx, ref string arg_msg);
- Long rslt = 1,cnt = 0,LS_i
- //写入内容
- FOR LS_i = 1 TO UpperBound(arg_mx.taskid)
- IF arg_mx.mtrlid[LS_i]=0 THEN CONTINUE
-
- it_mxbt++
- s_mx.taskid[it_mxbt] = arg_mx.taskid[LS_i]
- s_mx.taskcode[it_mxbt] = arg_mx.taskcode[LS_i]
- s_mx.requiredate[it_mxbt] = arg_mx.requiredate[LS_i]
- s_mx.dscrp[it_mxbt] = arg_mx.dscrp[LS_i]
- s_mx.mtrlid[it_mxbt] = arg_mx.mtrlid[LS_i]
- s_mx.fprice[it_mxbt] = arg_mx.fprice[LS_i]
- s_mx.rebate[it_mxbt] = arg_mx.rebate[LS_i]
- s_mx.qty[it_mxbt] = arg_mx.qty[LS_i]
- s_mx.jgdscrp[it_mxbt] = arg_mx.jgdscrp[LS_i]
- s_mx.relprintid[it_mxbt] = arg_mx.relprintid[LS_i]
- s_mx.uprice[it_mxbt] = arg_mx.uprice[LS_i]
-
- s_mx.mx_unit[it_mxbt] = arg_mx.unit[LS_i]
-
- s_mx.requestbuyid[it_mxbt] = arg_mx.requestbuyid[LS_i]
-
- s_mx.taskprintid[it_mxbt] = arg_mx.taskprintid[LS_i]
- s_mx.printid[it_mxbt] = it_mxbt
- s_mx.price[it_mxbt] = arg_mx.price[LS_i]
- s_mx.accomplishdate[it_mxbt] = arg_mx.accomplishdate[LS_i]
- s_mx.storageid[it_mxbt] = arg_mx.storageid[LS_i]
- s_mx.iforder[it_mxbt] = arg_mx.iforder[LS_i]
- s_mx.sptmtrlname[it_mxbt] = arg_mx.sptmtrlname[LS_i]
- s_mx.unit[it_mxbt] = arg_mx.unit[LS_i]
- s_mx.uqty[it_mxbt] = arg_mx.uqty[LS_i]
- s_mx.rebuyqty[it_mxbt] = arg_mx.rebuyqty[LS_i]
- s_mx.orderid[it_mxbt] = arg_mx.orderid[LS_i]
- s_mx.buybargainid[it_mxbt] = arg_mx.buybargainid[LS_i]
- s_mx.buybargainprintid[it_mxbt] = arg_mx.buybargainprintid[LS_i]
- s_mx.buybargaincode[it_mxbt] = arg_mx.buybargaincode[LS_i]
-
- s_mx.newbuybargainid[it_mxbt] = arg_mx.newbuybargainid[LS_i]
- s_mx.newbuybargainprintid[it_mxbt] = arg_mx.newbuybargainprintid[LS_i]
- s_mx.newbuybargaincode[it_mxbt] = arg_mx.newbuybargaincode[LS_i]
- s_mx.newjgdscrp[it_mxbt] = arg_mx.newjgdscrp[LS_i]
-
- s_mx.newprice[it_mxbt] = arg_mx.newprice[LS_i]
- s_mx.consignedqty[it_mxbt] = arg_mx.consignedqty[LS_i]
-
- NEXT
- //ext:
- IF rslt = 0 THEN p_clearmx()
- 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_buyTaskMx_adjust
- 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
- FOR i = 1 To it_mxbt
-
- UPDATE u_buytaskmx SET
- rebate = :s_mx.rebate[i],
- enprice = :s_mx.newprice[i],
- uprice = :s_mx.newprice[i] * u_buytask.mrate,
- fprice = Round((:s_mx.newprice[i] * u_buytaskmx.uqty * u_buytask.mrate)/(Round(u_buytaskmx.uqty * rate,:sys_option_unit_dec)),10),
- price = (Round((:s_mx.newprice[i] * u_buytaskmx.uqty * u_buytask.mrate)/(Round(u_buytaskmx.uqty * rate,:sys_option_unit_dec)),5)) * :s_mx.rebate[i],
- buybargaincode = :s_mx.newbuybargaincode[i],
- buybargainid = :s_mx.newbuybargainid[i],
- buybargainprintid = :s_mx.newbuybargainprintid[i],
- jgdscrp = :s_mx.newjgdscrp[i]
- FROM u_buyTaskMx INNER JOIN
- u_buyTask ON u_buyTaskMx.scid = u_buyTask.scid AND
- u_buyTaskMx.TaskID = u_buyTask.TaskID
- WHERE u_buyTaskMx.scid = :scid
- AND u_buyTaskMx.taskid = :s_mx.taskid[i]
- AND u_buyTaskMx.printid = :s_mx.taskprintid[i]
- And u_buyTaskMx.mtrlid = :s_mx.mtrlid[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 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_buyTaskMx_adjust
- 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
- //FOR i = 1 TO it_mxbt
- //
- // UPDATE u_buytaskmx SET
- // uprice = s_mx.newprice[i],
- // fprice = Round((:s_mx.newprice[i] * uqty)/(Round(uqty * rate,:sys_option_unit_dec)),5),
- // acprice = (Round((:s_mx.newprice[i] * uqty)/(Round(uqty * rate,:sys_option_unit_dec)),5)) * arg_rebate
- // Where taskid = :s_mx.taskid[i] AND printid = :s_mx.taskprintid[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 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_buyTaskMx_adjust
- 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
- 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_buyTaskMx_adjust
- 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
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- on uo_buytask_adjust.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_buytask_adjust.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|