123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614 |
- $PBExportHeader$uo_dismantle_install.sru
- forward
- global type uo_dismantle_install from nonvisualobject
- end type
- type s_dismantle_install from structure within uo_dismantle_install
- end type
- end forward
- type s_dismantle_install from structure
- long printid
- long storageid
- long mtrlwareid
- long mtrlid
- decimal { 5 } qty
- decimal { 10 } price
- string status
- string plancode
- string woodcode
- string mxdscrp
- string mtrlcode
- string pcode
- integer dxflag
- long sptid
- long standardqty
- decimal { 5 } addqty
- string unit
- end type
- global type uo_dismantle_install from nonvisualobject
- end type
- global uo_dismantle_install uo_dismantle_install
- type variables
- PUBLIC PROTECTEDWRITE Long billid
- PUBLIC PROTECTEDWRITE String billcode
- PUBLIC PROTECTEDWRITE DateTime opdate
- PUBLIC PROTECTEDWRITE String opemp
- PUBLIC PROTECTEDWRITE DateTime moddate
- PUBLIC PROTECTEDWRITE String modemp
- PUBLIC PROTECTEDWRITE Int flag
- PUBLIC PROTECTEDWRITE DateTime auditingdate
- PUBLIC PROTECTEDWRITE String auditingrep
- PUBLIC PROTECTEDWRITE Int billtype
- DateTime billdate
- Long relid
- String reason
- Long storageid
- Long mtrlid
- Long mtrlwareid
- String status
- String pcode
- String plancode
- String woodcode
- String dscrp
- Decimal qty
- Decimal addqty
- Int buildtype
- String rep
- Decimal price
- String mtrlcode
- int dxflag
- long sptid
- string unit
- //long printid
- //string mxdscrp
- //decimal standardqty
- Boolean sysautobuild = FALSE //自动操作标记
- Boolean if_getid_ture = TRUE
- PRIVATE:
- s_dismantle_install d_i[] //明细结构数组
- Long it_mxbt = 0 //明细结构数组末指针
- Boolean it_newbegin = FALSE //新建标志
- Boolean it_updatebegin = FALSE//修改标志
- end variables
- forward prototypes
- public function integer p_clearmx ()
- public function integer p_reset ()
- public function integer updatebegin (long arg_billid, ref string arg_msg)
- public function integer save (ref string arg_msg, boolean arg_ifcommit)
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, 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 auditing (string arg_auditingrep, boolean arg_ifcommit, ref string arg_msg)
- public function integer newbegin (integer arg_billtype, ref string arg_msg)
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
- public function integer acceptmx (long arg_printid, long arg_storageid, long arg_mtrlwareid, long arg_mtrlid, decimal arg_qty, decimal arg_addqty, decimal arg_price, string arg_status, string arg_plancode, string arg_woodcode, string arg_mxdscrp, string arg_mtrlcode, string arg_pcode, integer arg_dxflag, integer arg_sptid, ref string arg_msg, decimal arg_standardqty)
- public function integer del (long arg_billid, boolean arg_ifcommit, ref string arg_msg)
- end prototypes
- public function integer p_clearmx ();//INT p_clearmx()
- //清除明细
- it_mxbt=0
- RETURN 1
- end function
- public function integer p_reset ();//INT p_RESET()
- //清除对象及其明细
- billid = 0
- billcode = ''
- opemp = ''
- auditingrep = ''
- flag = 0
- relid = 0
- reason = ''
- storageid = 0
- mtrlid = 0
- mtrlwareid = 0
- status = ''
- plancode = ''
- woodcode = ''
- dscrp = ''
- qty = 0
- addqty=0
- it_newbegin = FALSE
- it_updatebegin = FALSE
- //清除明细
- P_CLEARMX()
- RETURN 1
- end function
- public function integer updatebegin (long arg_billid, ref string arg_msg);int rslt = 1
- if arg_billid <= 0 then
- billid = 0
- goto ext
- end if
- if p_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
- if buildtype = 1 then
- rslt = 0
- arg_msg = '单据为自动建立单据,不可以修改'
- goto ext
- end if
- billid = arg_billid
- p_clearmx()
- it_newbegin = false
- it_updatebegin = true
- ext:
- if rslt = 0 then p_reset()
- return rslt
- end function
- public function integer save (ref string arg_msg, boolean arg_ifcommit);//====================================================================
- // Function: save(arg_msg,arg_ifcommit)
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // reference string arg_msg
- // value boolean arg_ifcommit
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2003.11.21
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- Integer rslt = 1,i,cnt = 0
- DateTime server_dt
- Long ls_newid
- IF IsNull(reason) THEN reason = ''
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(plancode) THEN plancode = ''
- IF IsNull(relid) THEN relid = 0
- IF IsNull(woodcode) THEN woodcode = ''
- IF mtrlid = 0 THEN
- rslt = 0
- arg_msg = '非法物料!'
- GOTO ext
- END IF
- IF qty = 0 THEN
- rslt = 0
- arg_msg = '装或拆的物料数量不能为零!'
- GOTO ext
- END IF
- 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;
- //取得系统时间,借用操作员表
- IF sqlca.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 billid = 0 THEN //新建
- ls_newid = f_sys_scidentity(0,"u_dismantle_install","billid",arg_msg,if_getid_ture,sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
-
- billcode = getid(0,"CZ",Date(server_dt),if_getid_ture,sqlca) //取得新单据编号
- IF billcode = "err" THEN
- billcode = ''
- rslt = 0
- arg_msg = "无法获取拆装单编号"
- GOTO ext
- END IF
- //
- INSERT INTO u_dismantle_install
- (billid,
- billtype,
- billcode,
- reason,
- billdate,
- relid,
- storageid,
- mtrlid,
- mtrlwareid,
- status,
- plancode,
- woodcode,
- qty,
- dscrp,
- buildtype,
- price,
- rep,
- opemp,
- pcode,
- dxflag,
- sptid,
- addqty)
- VALUES(
- :ls_newid,
- :billtype,
- :billcode,
- :reason,
- :billdate,
- :relid,
- :storageid,
- :mtrlid,
- :mtrlwareid,
- :status,
- :plancode,
- :woodcode,
- :qty,
- :dscrp,
- :buildtype,
- :price,
- :rep,
- :publ_operator,
- :pcode,
- :dxflag,
- :sptid,
- :addqty);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
-
- IF Pos(Lower(sqlca.SQLErrText),'PK_u_dismantle_install') > 0 THEN
- arg_msg = '插入操作失败,关键字单据ID重复'
- ELSEIF Pos(Lower(sqlca.SQLErrText),'IX_u_dismantle_install') > 0 THEN
- arg_msg = '插入操作失败,单据编号重复'
- ELSE
- arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+sqlca.SQLErrText
- END IF
-
- GOTO ext
- END IF
-
- billid = ls_newid
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_dismantle_installmx
- ( billid ,
- printid,
- storageid ,
- mtrlwareid ,
- mtrlid ,
- qty ,
- price,
- status ,
- plancode,
- woodcode ,
- mxdscrp,
- pcode,
- dxflag,
- sptid,
- standardqty,
- addqty)
- VALUES (:ls_newid,
- :d_i[i].printid,
- :d_i[i].storageid,
- :d_i[i].mtrlwareid,
- :d_i[i].mtrlid,
- :d_i[i].qty,
- :d_i[i].price,
- :d_i[i].status,
- :d_i[i].plancode,
- :d_i[i].woodcode,
- :d_i[i].mxdscrp,
- :d_i[i].pcode,
- :d_i[i].dxflag,
- :d_i[i].sptid,
- :d_i[i].standardqty,
- :d_i[i].addqty);
- IF sqlca.SQLCode <> 0 THEN
- billid = 0 //还原billid
- rslt = 0
-
- IF Pos(Lower(sqlca.SQLErrText),'PK_u_dismantle_installmx') > 0 THEN
- arg_msg = '插入明细操作失败,关键字单据ID,序号重复'
- ELSE
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- END IF
-
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
- //
- ELSE //////////////////////////////////////////////////更新
- UPDATE u_dismantle_install
- SET billtype = :billtype,
- reason = :reason,
- billdate = :billdate,
- relid = :relid,
- storageid = :storageid,
- mtrlid = :mtrlid,
- mtrlwareid = :mtrlwareid,
- status = :status,
- plancode = :plancode,
- woodcode = :woodcode,
- qty = :qty,
- dscrp = :dscrp,
- buildtype = :buildtype,
- moddate = getdate(),
- modemp = :publ_operator,
- price = :price,
- rep = :rep,
- pcode = :pcode,
- dxflag = :dxflag,
- sptid = :sptid,
- addqty = :addqty
- WHERE u_dismantle_install.billid = :billid
- AND Auditingflag = 0;
- IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- //删除原有明细
- DELETE FROM u_dismantle_installmx
- Where u_dismantle_installmx.billid = :billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_dismantle_installmx
- ( billid ,
- printid,
- storageid ,
- mtrlwareid ,
- mtrlid ,
- qty ,
- price,
- status ,
- plancode,
- woodcode ,
- mxdscrp,
- pcode,
- dxflag,
- sptid ,
- standardqty,
- addqty)
- VALUES (:billid,
- :d_i[i].printid,
- :d_i[i].storageid,
- :d_i[i].mtrlwareid,
- :d_i[i].mtrlid,
- :d_i[i].qty,
- :d_i[i].price,
- :d_i[i].status,
- :d_i[i].plancode,
- :d_i[i].woodcode,
- :d_i[i].mxdscrp,
- :d_i[i].pcode,
- :d_i[i].dxflag,
- :d_i[i].sptid,
- :d_i[i].standardqty,
- :d_i[i].addqty);
- IF sqlca.SQLCode <> 0 THEN
- billid = 0 //还原billid
- rslt = 0
- IF Pos(Lower(sqlca.SQLErrText),'PK_u_dismantle_installmx') > 0 THEN
- arg_msg = '插入明细操作失败,关键字单据ID,序号重复'
- ELSE
- arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText
- END IF
- ROLLBACK ;
- GOTO ext
- END IF
- NEXT
-
- END IF
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- p_clearmx()
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- Return(rslt)
- end function
- public function integer add_dscrp (long arg_billid, string arg_newdescppart, ref string arg_msg);//====================================================================
- // Function: add_dscrp(arg_billid,arg_newdescppart,arg_msg)
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // value long arg_billid
- // value string arg_newdescppart
- // reference string arg_msg
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2003.11.21
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- int rslt = 1
- arg_newdescppart = trim(arg_newdescppart)
- if arg_billid <= 0 then
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- goto ext
- end if
- if it_newbegin or it_updatebegin then
- rslt=0
- arg_msg="编辑状态下不可以执行,操作取消"
- goto ext
- end if
- select u_dismantle_install.auditingflag
- into :flag
- from u_dismantle_install
- where u_dismantle_install.billid = :arg_billid;
- if sqlca.sqlcode <> 0 then
- rslt = 0
- arg_msg = '查询拆装件单操作失败'
- goto ext
- end if
- if flag = 0 then
- rslt = 0
- arg_msg = "非审核状态下不可用"
- goto ext
- end if
- update u_dismantle_install
- set dscrp = dscrp+' '+:arg_newdescppart
- where u_dismantle_install.billid = :billid;
- if sqlca.sqlcode <> 0 then
- rollback ;
- rslt = 0
- arg_msg = "因网络或其它原因导致添加单据备注操作失败"+"~n"+sqlca.sqlerrtext
- goto ext
- end if
- commit;
- dscrp = dscrp+' '+arg_newdescppart
- ext:
- return (rslt)
- end function
- public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- arG_MSG = "非法单据唯一码"
- GOTO ext
- END IF
- SELECT
- u_dismantle_install.billtype,
- u_dismantle_install.Billcode,
- u_dismantle_install.reason,
- u_dismantle_install.relid,
- u_dismantle_install.storageid,
- u_dismantle_install.mtrlid,
- u_dismantle_install.mtrlwareid,
- u_dismantle_install.status,
- u_dismantle_install.plancode,
- u_dismantle_install.woodcode,
- u_dismantle_install.qty,
- u_dismantle_install.addqty,
- u_dismantle_install.Dscrp,
- u_dismantle_install.Auditingflag,
- u_dismantle_install.buildtype,
- u_dismantle_install.price,
- u_dismantle_install.billdate,
- u_dismantle_install.rep,
- u_mtrldef.mtrlcode,
- u_mtrldef.unit,
- u_dismantle_install.pcode,
- u_dismantle_install.dxflag,
- u_dismantle_install.sptid
- INTO :billtype,
- :Billcode,
- :reason,
- :relid,
- :storageid,
- :mtrlid,
- :mtrlwareid,
- :status,
- :plancode,
- :woodcode,
- :qty,
- :addqty,
- :Dscrp,
- :flag,
- :buildtype,
- :price,
- :billdate,
- :rep,
- :mtrlcode,
- :unit,
- :pcode,
- :dxflag,
- :sptid
- FROM u_dismantle_install,u_mtrldef
- Where u_mtrldef.mtrlid = u_dismantle_install.mtrlid and billid = :arg_billid;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "查询操作失败(错误单据唯一码)"+sqlca.SQLErrText
- GOTO ext
- END IF
- billid = arg_billid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer getinfo (long arg_billid, ref string arg_msg);Int rslt = 1,i = 1,no_mxcheck = 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
- //用游标读取明细
- DECLARE cur_d_i_mx CURSOR FOR
- SELECT u_dismantle_installmx.printid,
- u_dismantle_installmx.storageid,
- u_dismantle_installmx.mtrlwareid,
- u_dismantle_installmx.mtrlid,
- u_dismantle_installmx.qty,
- u_dismantle_installmx.addqty,
- u_dismantle_installmx.price,
- u_dismantle_installmx.status,
- u_dismantle_installmx.plancode,
- u_dismantle_installmx.woodcode,
- u_dismantle_installmx.mxdscrp,
- u_mtrldef.mtrlcode,
- u_mtrldef.unit,
- u_dismantle_installmx.pcode,
- u_dismantle_installmx.dxflag,
- u_dismantle_installmx.sptid,
- u_dismantle_installmx.standardqty
- FROM u_dismantle_installmx left join u_mtrldef on u_dismantle_installmx.mtrlid = u_mtrldef.mtrlid
- WHERE u_dismantle_installmx.billid = :arg_billid;
-
- OPEN cur_d_i_mx;
- FETCH cur_d_i_mx INTO :d_i[i].printid,:d_i[i].storageid,
- :d_i[i].mtrlwareid,:d_i[i].mtrlid,:d_i[i].qty,:d_i[i].addqty,
- :d_i[i].price,:d_i[i].status,:d_i[i].plancode,
- :d_i[i].woodcode,:d_i[i].mxdscrp,:d_i[i].mtrlcode,:d_i[i].unit,
- :d_i[i].pcode,:d_i[i].dxflag,:d_i[i].sptid,
- :d_i[i].standardqty;
-
- DO WHILE sqlca.SQLCode = 0
- i++
- FETCH cur_d_i_mx INTO :d_i[i].printid,:d_i[i].storageid,
- :d_i[i].mtrlwareid,:d_i[i].mtrlid,:d_i[i].qty,:d_i[i].addqty,
- :d_i[i].price,:d_i[i].status,:d_i[i].plancode,
- :d_i[i].woodcode,:d_i[i].mxdscrp,:d_i[i].mtrlcode,:d_i[i].unit,
- :d_i[i].pcode,:d_i[i].dxflag,:d_i[i].sptid,
- :d_i[i].standardqty;
- LOOP
- CLOSE cur_d_i_mx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM u_dismantle_installmx
- Where u_dismantle_installmx.billid = :arg_billid;
- IF sqlca.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 auditing (string arg_auditingrep, boolean arg_ifcommit, ref string arg_msg);Long cnt = 0,i
- Int rslt = 1
- Long chc
- Long rst_outwareid //拆装出仓id
- Long rst_inwareid //拆装进仓id
- Long s_scid
- Long o_scid
- Long lay_storageid[],ll_storageid
- s_dismantle_install s_di[]
- datetime ld_inworkdate
- setnull(ld_inworkdate)
- uo_inware uo_in
- uo_outware uo_out
- uo_in = CREATE uo_inware
- uo_in.commit_transaction = sqlca
- uo_in.if_getid_ture = FALSE
- uo_out = CREATE uo_outware
- uo_out.commit_transaction = sqlca
- uo_out.if_getid_ture = FALSE
- IF billid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- 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_dismantle_install
- SET Auditingemp = :arg_auditingrep,
- auditingdate = getdate(),
- Auditingflag = 1
- Where u_dismantle_install.billid = :billid AND Auditingflag = 0;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- ELSEIF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "拆装单据正在审核,请稍后查询。"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- Boolean lb_f = FALSE
- Long j,k,ch
- //统计仓库数量,确定进或出仓单数
- FOR i = 1 TO it_mxbt
- FOR j = 1 TO UpperBound(lay_storageid)
- IF lay_storageid[j] = d_i[i].storageid THEN lb_f = TRUE
- NEXT
- IF lb_f = FALSE THEN
- ch++
- lay_storageid[ch] = d_i[i].storageid
- END IF
- lb_f = FALSE
- NEXT
- IF billtype = 0 THEN //装单 //多张出仓单 //一进多出
-
- //1.原事务生成出仓单
- FOR k = 1 TO UpperBound(lay_storageid)
- ll_storageid = lay_storageid[k]
-
- SELECT scid INTO :s_scid
- FROM u_storage
- Where storageid = :ll_storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调出仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.newbegin(s_scid,15,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- uo_out.relid = billid
- uo_out.outdate = billdate
- uo_out.outrep = rep
- uo_out.part = billcode
- uo_out.dscrp = dscrp
- uo_out.cusname = '拆装出仓'
- uo_out.storageid = ll_storageid
-
- chc = 0
- // d_i[i].printid
- FOR i = 1 TO it_mxbt
- IF d_i[i].storageid <> ll_storageid THEN CONTINUE
- chc++
- IF uo_out.acceptmx(d_i[i].mtrlwareid,&
- d_i[i].qty,d_i[i].addqty,d_i[i].price,1,&
- d_i[i].mxdscrp,chc,arg_msg,0,0,0,0,0,0,0,d_i[i].unit,1,'','') = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
-
- IF uo_out.Save(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- rst_outwareid = uo_out.outwareid
-
- //2.原事务审核出仓单
- IF uo_out.getinfo(s_scid,rst_outwareid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.auditing(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
-
- //3.目标事务建立进仓单
- DateTime server_datetime
- SELECT Top 1 getdate() INTO :server_datetime FROM u_user;
- //取得系统时间,借用操作员表
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询目标仓库日期失败"
- GOTO ext
- END IF
-
- SELECT scid INTO :o_scid
- FROM u_storage
- Where storageid = :storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调进仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
-
- IF uo_in.newbegin(o_scid,15,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- uo_in.relid = billid
- uo_in.indate = billdate
- uo_in.inrep = rep
- uo_in.part = billcode
- uo_in.dscrp = dscrp
- uo_in.storageid = storageid
- uo_in.sptname = '拆装进仓'
-
-
- IF uo_in.acceptmx(1,&
- mtrlid,&
- mtrlcode,&
- plancode,&
- status,&
- qty,addqty,&
- price,&
- 1,&
- dscrp,&
- arg_msg,&
- 0,0,0,0,woodcode,pcode,'',sptid,unit,1,'','',ld_inworkdate,0) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
-
- IF uo_in.Save(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- rst_inwareid = uo_in.inwareid
-
- //4.原事务审核进仓单
- IF uo_in.getinfo(o_scid,rst_inwareid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.auditing(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
-
- ELSEIF billtype = 1 THEN //拆单 //多张进仓单 //一出多进
- //1.原事务生成出仓单
- SELECT scid INTO :s_scid
- FROM u_storage
- Where storageid = :storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调出仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
-
- IF uo_out.newbegin(s_scid,15,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- uo_out.relid = billid
- uo_out.outdate = billdate
- uo_out.outrep = rep
- uo_out.part = billcode
- uo_out.dscrp = dscrp
- uo_out.cusname = '拆装出仓'
- uo_out.storageid = storageid
-
-
- IF uo_out.acceptmx(mtrlwareid,&
- qty,addqty,price,1,&
- dscrp,1,arg_msg,0,0,0,0,0,0,0,unit,1,'','') = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.Save(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- rst_outwareid = uo_out.outwareid
-
- //2.原事务审核出仓单
- IF uo_out.getinfo(s_scid,rst_outwareid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.auditing(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- FOR k = 1 TO UpperBound(lay_storageid)
- ll_storageid = lay_storageid[k]
- SELECT scid INTO :o_scid
- FROM u_storage
- Where storageid = :ll_storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调进仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.newbegin(o_scid,15,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- uo_in.relid = billid
- uo_in.indate = billdate
- uo_in.inrep = rep
- uo_in.part = billcode
- uo_in.dscrp = dscrp
- uo_in.storageid = ll_storageid//storageid
- uo_in.sptname = '拆装进仓'
-
- chc = 0
- // d_i[i].printid
- FOR i = 1 TO it_mxbt
- IF d_i[i].storageid <> ll_storageid THEN CONTINUE
- chc++
- IF uo_in.acceptmx(chc,&
- d_i[i].mtrlid,&
- d_i[i].mtrlcode,&
- d_i[i].plancode,&
- d_i[i].status,&
- d_i[i].qty,&
- d_i[i].addqty,&
- d_i[i].price,&
- 1,&
- d_i[i].mxdscrp,&
- arg_msg,&
- 0,0,0,0,d_i[i].woodcode,d_i[i].pcode,'',d_i[i].sptid,d_i[i].unit,1,'','',ld_inworkdate,0) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
-
- IF uo_in.Save(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- rst_inwareid = uo_in.inwareid
-
- //4.原事务审核进仓单
- IF uo_in.getinfo(o_scid,rst_inwareid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.auditing(FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
- END IF
- flag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit AND rslt = 1 THEN
- COMMIT;
- END IF
- DESTROY uo_in
- DESTROY uo_out
- RETURN rslt
- end function
- public function integer newbegin (integer arg_billtype, ref string arg_msg);Int rslt = 1
- IF Not (arg_billtype = 0 OR arg_billtype = 1) THEN
- rslt = 0
- arg_msg = '此单据类型必须为:0-装仓,1-拆仓'
- GOTO ext
- END IF
- p_reset()
- billtype = arg_billtype
- it_newbegin = TRUE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Long cnt = 0,i
- Int rslt = 1
- Long chc
- Long in_out
- Long rst_outwareid[],out_i = 1 //拆装出仓id
- Long rst_inwareid[],in_i = 1 //拆装进仓id
- Long s_scid
- Long o_scid
- Long lay_storageid[],ll_storageid
- s_dismantle_install s_di[]
- DateTime null_dt
- SetNull(null_dt)
- uo_inware uo_in
- uo_outware uo_out
- uo_in = Create uo_inware
- uo_in.commit_transaction = sqlca
- uo_in.if_getid_ture = False
- uo_out = Create uo_outware
- uo_out.commit_transaction = sqlca
- uo_out.if_getid_ture = False
- IF billid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- 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 Not sysautobuild THEN
- IF sys_option_outware_if_di <> 0 THEN
- IF Pos(reason, '自动组装') > 0 and Pos(reason, '销售发货单') > 0 THEN
- rslt = 0
- arg_msg = "系统选项[084]限制,销售发货单自动组装单据不能手动撤审"
- GOTO ext
- END IF
- END IF
- END IF
- UPDATE u_dismantle_install
- SET Auditingemp = '',
- auditingdate = :null_dt,
- Auditingflag = 0
- Where u_dismantle_install.billid = :billid And Auditingflag = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致撤审单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- ELSEIF sqlca.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在撤审,请稍后查询。"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- Boolean lb_f = False
- Long j,k,ch
- //统计仓库数量,确定进或出仓单数
- FOR i = 1 To it_mxbt
- FOR j = 1 To UpperBound(lay_storageid)
- IF lay_storageid[j] = d_i[i].storageid THEN lb_f = True
- NEXT
- IF lb_f = False THEN
- ch++
- lay_storageid[ch] = d_i[i].storageid
- END IF
- lb_f = False
- NEXT
- IF billtype = 0 THEN //装单 //多张出仓单
-
- //1.查询拆装单相关的出仓单,撤审,删除
- FOR k = 1 To UpperBound(lay_storageid)
- ll_storageid = lay_storageid[k]
-
- SELECT scid INTO :s_scid
- FROM u_storage
- Where storageid = :ll_storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调出仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- DECLARE cur_out_1 CURSOR FOR
- SELECT outwareid
- FROM u_outware
- WHERE scid = :s_scid
- AND relid = :billid
- AND storageid = :ll_storageid
- And billtype = 15;
-
- OPEN cur_out_1;
- FETCH cur_out_1 Into :rst_outwareid[out_i];
- DO WHILE sqlca.SQLCode = 0
- out_i++
- FETCH cur_out_1 Into :rst_outwareid[out_i];
- LOOP
- out_i = out_i - 1
- CLOSE cur_out_1;
-
- IF out_i = 0 THEN
- arg_msg = '查询该拆装单相关出仓单失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- FOR in_out = 1 To out_i
- //撤审出仓单,再删除
- IF uo_out.getinfo(s_scid,rst_outwareid[in_out],arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.c_auditing(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.del(s_scid,rst_outwareid[in_out],arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- NEXT
-
-
- //2.查询拆装单相关的入仓单,撤审,删除
- SELECT scid INTO :o_scid
- FROM u_storage
- Where storageid = :storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调进仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- DECLARE cur_in_1 CURSOR FOR
- SELECT inwareid
- FROM u_inware
- WHERE scid = :o_scid
- AND relid = :billid
- AND storageid = :storageid
- And billtype = 15;
-
- OPEN cur_in_1;
- FETCH cur_in_1 Into :rst_inwareid[in_i];
- DO WHILE sqlca.SQLCode = 0
- in_i++
- FETCH cur_in_1 Into :rst_inwareid[in_i];
- LOOP
- in_i = in_i - 1
- CLOSE cur_in_1;
-
- IF in_i = 0 THEN
- arg_msg = '查询该拆装单相关入仓单失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- FOR in_out = 1 To in_i
- //撤审出仓单,再删除
- IF uo_in.getinfo(o_scid,rst_inwareid[in_out],arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.c_auditing(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.del(o_scid,rst_inwareid[in_out],arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
-
- ELSEIF billtype = 1 THEN //拆单 //多张进仓单
-
- //1.查询拆装单相关的出仓单,撤审,删除
- SELECT scid INTO :s_scid
- FROM u_storage
- Where storageid = :storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调出仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- DECLARE cur_out_2 CURSOR FOR
- SELECT outwareid
- FROM u_outware
- WHERE scid = :s_scid
- AND relid = :billid
- AND storageid = :storageid
- And billtype = 15;
-
- OPEN cur_out_2;
- FETCH cur_out_2 Into :rst_outwareid[out_i];
- DO WHILE sqlca.SQLCode = 0
- out_i++
- FETCH cur_out_2 Into :rst_outwareid[out_i];
- LOOP
- out_i = out_i - 1
- CLOSE cur_out_2;
-
- IF out_i = 0 THEN
- arg_msg = '查询该拆装单相关出仓单失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- FOR in_out = 1 To out_i
- //撤审出仓单,再删除
- IF uo_out.getinfo(s_scid,rst_outwareid[in_out],arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.c_auditing(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_out.del(s_scid,rst_outwareid[in_out],arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
-
-
- //2.查询拆装单相关的入仓单,撤审,删除
- FOR k = 1 To UpperBound(lay_storageid)
- ll_storageid = lay_storageid[k]
-
- SELECT scid INTO :o_scid
- FROM u_storage
- Where storageid = :ll_storageid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询调出仓库所属分部资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- DECLARE cur_in_2 CURSOR FOR
- SELECT inwareid
- FROM u_inware
- WHERE scid = :o_scid
- AND relid = :billid
- AND storageid = :ll_storageid
- And billtype = 15;
-
- OPEN cur_in_2;
- FETCH cur_in_2 Into :rst_inwareid[in_i];
- DO WHILE sqlca.SQLCode = 0
- in_i++
- FETCH cur_in_2 Into :rst_inwareid[in_i];
- LOOP
- in_i = in_i - 1
- CLOSE cur_in_2;
-
- IF in_i = 0 THEN
- arg_msg = '查询该拆装单相关入仓单失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- FOR in_out = 1 To in_i
- //撤审入仓单,再删除
- IF uo_in.getinfo(o_scid,rst_inwareid[in_out],arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.c_auditing(False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_in.del(o_scid,rst_inwareid[in_out],arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- NEXT
-
- END IF
- flag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT;
- END IF
- Destroy uo_in
- Destroy uo_out
- RETURN rslt
- end function
- public function integer acceptmx (long arg_printid, long arg_storageid, long arg_mtrlwareid, long arg_mtrlid, decimal arg_qty, decimal arg_addqty, decimal arg_price, string arg_status, string arg_plancode, string arg_woodcode, string arg_mxdscrp, string arg_mtrlcode, string arg_pcode, integer arg_dxflag, integer arg_sptid, ref string arg_msg, decimal arg_standardqty);//arg_printid,arg_storageid,arg_mtrlwareid,arg_mtrlid,arg_qty,arg_price,arg_status,arg_plancode,arg_woodcode,arg_mxdscrp,arg_mtrlcode,arg_msg
- Long rslt = 1,cnt = 0,ls_i
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- IF IsNull(arg_printid) THEN arg_printid = 0
- IF IsNull(arg_storageid) THEN arg_storageid = 0
- IF IsNull(arg_mtrlwareid) THEN arg_mtrlwareid = 0
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_qty) THEN arg_qty = 0
- IF IsNull(arg_addqty) THEN arg_qty = 0
- IF IsNull(arg_standardqty) THEN arg_standardqty = 0
- IF IsNull(arg_price) THEN arg_price = 0
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_mtrlcode) THEN arg_mtrlcode = ''
- IF IsNull(arg_plancode) THEN arg_plancode = ''
- IF IsNull(arg_woodcode) THEN arg_woodcode = ''
- IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
- IF IsNull(arg_mtrlcode) THEN arg_mtrlcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_dxflag) THEN arg_dxflag = 0
- IF IsNull(arg_sptid) THEN arg_sptid = 0
- IF arg_qty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF arg_mtrlwareid > 0 AND billtype = 0 THEN
- SELECT plancode,
- woodcode,
- status,
- pcode,
- dxflag,
- sptid,
- cost
- // cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END
- INTO :arg_plancode,
- :arg_woodcode,
- :arG_status,
- :arg_pcode,
- :arg_dxflag,
- :arg_sptid,
- :arg_price
- FROM u_mtrlware Where u_mtrlware.mtrlwareid = :arg_mtrlwareid;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "第" + String(arg_printid) + '行,查询物料 '+arg_mtrlcode+' 库存失败!>>'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- //检查成本价调整单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_updatecost,u_updatecostmx
- WHERE u_updatecost.wareid = u_updatecostmx.wareid AND
- u_updatecost.flag = 0 AND
- u_updatecostmx.mtrlwareid = :arg_mtrlwareid USING sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "第" + String(arg_printid) + "行,查询成本价调整单操作失败"
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = "第" + String(arg_printid) + "行," + arg_mtrlcode + "已开成本价调整单,请先审核"
- GOTO ext
- END IF
-
-
-
- END IF
- //写入内容
- it_mxbt++
- d_i[it_mxbt].printid = arg_printid
- d_i[it_mxbt].storageid = arg_storageid
- d_i[it_mxbt].mtrlwareid = arg_mtrlwareid
- d_i[it_mxbt].mtrlid = arg_mtrlid
- d_i[it_mxbt].qty = arg_qty
- d_i[it_mxbt].addqty = arg_addqty
- d_i[it_mxbt].price = arg_price
- d_i[it_mxbt].status = arg_status
- d_i[it_mxbt].plancode = arg_plancode
- d_i[it_mxbt].woodcode = arg_woodcode
- d_i[it_mxbt].mxdscrp = arg_mxdscrp
- d_i[it_mxbt].mtrlcode = arg_mtrlcode
- d_i[it_mxbt].pcode = arg_pcode
- d_i[it_mxbt].dxflag = arg_dxflag
- d_i[it_mxbt].sptid = arg_sptid
- d_i[it_mxbt].standardqty = arg_standardqty
- ext:
- IF rslt = 0 THEN p_clearmx()
- Return(rslt)
- end function
- public function integer del (long arg_billid, boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // Function: del(arg_billid,arg_msg)
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // value long arg_billid
- // reference string arg_msg
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2003.11.21
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- Int rslt = 1
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = "没有删除对象,操作取消"
- GOTO ext
- END IF
- IF it_newbegin Or it_updatebegin THEN
- rslt = 0
- arg_msg = "编辑状态下不可以执行,操作取消"
- GOTO ext
- END IF
- SELECT u_dismantle_install.auditingflag
- INTO :flag
- FROM u_dismantle_install
- Where u_dismantle_install.billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询拆装单操作失败'
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = "单据已经审核,不可以删除"
- GOTO ext
- END IF
- DELETE From u_dismantle_install Where u_dismantle_install.billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除拆装单操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE From u_dismantle_installmx Where u_dismantle_installmx.billid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除拆装单明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- IF rslt = 0 THEN
- ROLLBACK;
- p_reset()
- ELSEIF arg_ifcommit THEN
- COMMIT;
- END IF
- ext:
- Return (rslt)
- end function
- on uo_dismantle_install.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_dismantle_install.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|