12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544 |
- $PBExportHeader$uo_wfjg_py.sru
- forward
- global type uo_wfjg_py from nonvisualobject
- end type
- end forward
- global type uo_wfjg_py from nonvisualobject
- end type
- global uo_wfjg_py uo_wfjg_py
- type variables
- PUBLIC PROTECTEDWRITE Long scid = 0 //分部id
- PUBLIC PROTECTEDWRITE Long outwareid //进仓单表自动增量id
- PUBLIC PROTECTEDWRITE String outwarecode //单据的唯一编号
- PUBLIC PROTECTEDWRITE Int billtype = 0 //业务类型
- //billtype = 4 正常出仓
- //billtype =16 加工商盘盈
- PUBLIC PROTECTEDWRITE DateTime opdate //建立时间,自动
- PUBLIC PROTECTEDWRITE String opemp //建立操作员
- PUBLIC PROTECTEDWRITE DateTime moddate //修改时间,自动
- PUBLIC PROTECTEDWRITE String modemp //修改操作员
- PUBLIC PROTECTEDWRITE Int balcflag = 0 //仓库日结标志
- PUBLIC PROTECTEDWRITE Int flag = 0 //仓库审核标志
- PUBLIC PROTECTEDWRITE DateTime auditingdate //审核时间
- PUBLIC PROTECTEDWRITE String auditingrep //审核操作员
- PUBLIC PROTECTEDWRITE Long ctmint
- Long relid = 0 //关联id
- DateTime outdate //进仓发生时间
- String outrep = '' //经手人
- String part = '' //相关号码
- String dscrp = '' //备注
- Long sptid = 0 //供应户id
- String sptname = '' //供应商名称
- Int thflag = 0 //退货标记
- Boolean if_getid_ture = TRUE
- Transaction commit_transaction //数据commit事务
- s_outwaremx_wfjg outwaremx[] //明细结构数组
- s_outwaremx_wfjg_aft outwaremx_aft[] //明细结构数组
- Long it_mxbt = 0 //明细结构数组末指针
- Long it_mxbt_aft = 0 //明细结构数组末指针
- Boolean it_newbegin = FALSE //新建标志
- Boolean it_updatebegin = FALSE //修改标志
- Int uo_option_2unit
- String uo_option_change_status
- String uo_option_change_woodcode
- String uo_option_change_pcode
- end variables
- forward prototypes
- public function integer newbegin (long arg_scid, integer arg_billtype, ref string arg_msg)
- public function integer save (boolean arg_ifcommit, ref string arg_msg)
- public function integer auditing (boolean arg_ifcommit, ref string arg_msg)
- public function integer updatebegin (long arg_scid, long arg_outwareid, integer arg_billtype, ref string arg_msg)
- public function integer getinfo (long arg_scid, long arg_outwareid, ref string arg_msg)
- public function integer del (long arg_scid, long arg_outwareid, ref string arg_msg, boolean arg_ifcommit)
- public function integer add_dscrp (long arg_scid, long arg_outwareid, string arg_newdescppart, ref string arg_msg)
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
- public function integer p_clearmx ()
- public function integer p_getinfo (long arg_scid, long arg_outwareid, ref string arg_msg)
- public function integer p_reset ()
- public function integer acceptmx (long arg_mtrlwareid, decimal arg_qty, string arg_mxdscrp, long arg_printid, ref string arg_msg, integer arg_ifrel, long arg_relid, long arg_mtrlid, long arg_storageid, integer arg_dxflag, string arg_plancode, string arg_mtrlcode, string arg_status, string arg_woodcode, string arg_pcode, decimal arg_fprice, decimal arg_rebate, long arg_olmtrlid, decimal arg_uqty, string arg_uunit, decimal arg_rate)
- public function integer p_create_wfjgorder (string arg_opemp, boolean arg_ifcommit, ref string arg_msg)
- public function integer p_destroy_wfjgorder (boolean arg_ifcommit, ref string arg_msg)
- public function integer acceptmx_aft (s_outwaremx_wfjg_aft s_mx, string arg_msg)
- end prototypes
- public function integer newbegin (long arg_scid, integer arg_billtype, ref string arg_msg);int rslt=1
- if arg_scid < 0 then
- arg_msg = '请选择分部'
- rslt = 0
- goto ext
- end if
- IF Not (arg_billtype = 5 OR &
- arg_billtype = 9 or &
- arg_billtype = 10) THEN
- rslt = 0
- arg_msg = '此单据类型必须为:'
- arg_msg = arg_msg+'5-车间外协发出单,'
- arg_msg = arg_msg+'9-外协商盘盈单,'
- arg_msg = arg_msg+'10-外协商库存成本价调整'
- GOTO ext
- END IF
- p_reset()
- billtype=arg_billtype
- scid=arg_scid
- it_newbegin=true
- 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 IsNull(relid) THEN relid = 0
- IF IsNull(outrep) THEN outrep = ''
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(part) THEN part = ''
- IF IsNull(sptid) THEN sptid = 0
- IF IsNull(sptname) THEN sptname = ''
- IF IsNull(thflag) THEN thflag = 0
- 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 f_check_inoutdate(0,outdate,False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF f_check_inoutdate_wfjg(scid,sptid,outdate,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- SELECT name INTO :sptname
- FROM u_spt
- Where sptid = :sptid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,加工商资料"
- GOTO ext
- END IF
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF outwareid = 0 THEN //新建
- ls_newid = f_sys_scidentity(scid,"ow_wfjg_out","outwareid",arg_msg,True,id_sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- //取分部代号
- IF f_get_sccode(scid,commit_transaction,ls_sccode,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- //取得新单据编号
- IF billtype = 5 THEN
- IF thflag = 0 THEN
- outwarecode = getid(scid,ls_sccode + 'WF',Date(server_dt),if_getid_ture,commit_transaction)
- ELSE
- outwarecode = getid(scid,ls_sccode + 'OF',Date(server_dt),if_getid_ture,commit_transaction)
- END IF
- ELSEIF billtype = 9 THEN
- outwarecode = getid(scid,ls_sccode + 'WY',Date(server_dt),if_getid_ture,commit_transaction)
- ELSEIF billtype = 10 THEN
- outwarecode = getid(scid,ls_sccode + 'FI',Date(server_dt),if_getid_ture,commit_transaction)
-
- END IF
-
- IF outwarecode = "err" THEN
- outwarecode = ''
- rslt = 0
- arg_msg = "无法获取出仓单编号"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
-
- INSERT INTO ow_wfjg_out (
- scid,
- outwareid,
- outwarecode,
- billtype,
- relid,
- outdate,
- outrep,
- part,
- dscrp,
- sptid,
- sptname,
- thflag,
- opdate,
- opemp)
- VALUES (
- :scid,
- :ls_newid,
- :outwarecode,
- :billtype,
- :relid,
- :outdate,
- :outrep,
- :part,
- :dscrp,
- :sptid,
- :sptname,
- :thflag,
- :server_dt,
- :publ_operator
- ) Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致插入操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- //读取新outwareid
- outwareid = ls_newid
-
-
- ELSE //////////////////////////////////////////////// //更新
-
- UPDATE ow_wfjg_out
- SET billtype = :billtype,
- relid = :relid,
- outdate = :outdate,
- outrep = :outrep,
- part = :part,
- dscrp = :dscrp,
- sptid = :sptid,
- sptname = :sptname,
- thflag = :thflag,
- moddate = :server_dt,
- modemp = :publ_operator
- WHERE ow_wfjg_out.outwareid = :outwareid
- AND ow_wfjg_out.scid = :scid
- And flag = 0 Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 Or commit_transaction.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败(1)"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- //删除原有明细
- DELETE FROM ow_wfjgmx_out
- WHERE ow_wfjgmx_out.outwareid = :outwareid
- And ow_wfjgmx_out.scid = :scid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有明细操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- //删除原有明细
- DELETE FROM ow_wfjgmx_out_aft
- WHERE ow_wfjgmx_out_aft.outwareid = :outwareid
- And ow_wfjgmx_out_aft.scid = :scid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有收货明细操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- END IF
- FOR i = 1 To it_mxbt
- INSERT INTO ow_wfjgmx_out
- (scid,
- storageid,
- outwareid,
- mtrlwareid,
- printid,
- mtrlid,
- plancode,
- status,
- qty,
- fprice,
- rebate,
- price,
- mxdscrp,
- costamt,
- ifrel,
- relid,
- woodcode,
- relcode,
- pcode,
- cost,
- olmtrlid,
- uqty,
- uprice,
- uunit,
- rate)
- VALUES (
- :scid,
- :outwaremx[i].storageid,
- :outwareid,
- :outwaremx[i].mtrlwareid,
- :outwaremx[i].printid,
- :outwaremx[i].mtrlid,
- :outwaremx[i].plancode,
- :outwaremx[i].status,
- :outwaremx[i].qty,
- :outwaremx[i].fprice,
- :outwaremx[i].rebate,
- :outwaremx[i].price,
- :outwaremx[i].mxdscrp,
- :outwaremx[i].costamt,
- :outwaremx[i].ifrel,
- :outwaremx[i].relid,
- :outwaremx[i].woodcode,
- :outwaremx[i].relcode,
- :outwaremx[i].pcode,
- :outwaremx[i].cost,
- :outwaremx[i].olmtrlid,
- :outwaremx[i].uqty,
- :outwaremx[i].uprice,
- :outwaremx[i].uunit,
- :outwaremx[i].rate) Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- IF it_newbegin THEN outwareid = 0 //重置outwareid
- rslt = 0
- arg_msg = "插入发出明细操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- NEXT
- //收货明细
- FOR i = 1 To it_mxbt_aft
- INSERT INTO ow_wfjgmx_out_aft
- (scid,
- outwareid,
- printid,
- outmxprintid,
- mtrlid,
- status,
- woodcode,
- pcode,
- qty,
- uqty,
- unit,
- rate,
- price,
- jgprice,
- rebate,
- jgdscrp,
- ifrel,
- relid,
- relprintid,
- relcode,
- plancode,
- mtrlcuscode,
- location,
- mxdscrp)
- VALUES (
- :scid,
- :outwareid,
- :outwaremx_aft[i].printid,
- :outwaremx_aft[i].outmxprintid,
- :outwaremx_aft[i].mtrlid,
- :outwaremx_aft[i].status,
- :outwaremx_aft[i].woodcode,
- :outwaremx_aft[i].pcode,
- :outwaremx_aft[i].qty,
- :outwaremx_aft[i].uqty,
- :outwaremx_aft[i].unit,
- :outwaremx_aft[i].rate,
- :outwaremx_aft[i].price,
- :outwaremx_aft[i].jgprice,
- :outwaremx_aft[i].rebate,
- :outwaremx_aft[i].jgdscrp,
- :outwaremx_aft[i].ifrel,
- :outwaremx_aft[i].relid,
- :outwaremx_aft[i].relprintid,
- :outwaremx_aft[i].relcode,
- :outwaremx_aft[i].plancode,
- :outwaremx_aft[i].mtrlcuscode,
- :outwaremx_aft[i].location,
- :outwaremx_aft[i].mxdscrp) Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- IF it_newbegin THEN outwareid = 0 //重置outwareid
- rslt = 0
- arg_msg = "插入收货明细操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- NEXT
- 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;
- END IF
- RETURN rslt
- end function
- public function integer auditing (boolean arg_ifcommit, ref string arg_msg);Long rslt = 1,cnt = 0,i
- uo_order_wfjg uo_wfjg
- uo_wfjg = Create uo_order_wfjg
- uo_wfjg.commit_transaction = commit_transaction
- IF outwareid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = "单据已经审核"
- GOTO ext
- END IF
- UPDATE ow_wfjg_out
- SET Auditingemp = :publ_operator,
- Auditingdate = getdate(),
- flag = 1
- WHERE ow_wfjg_out.outwareid = :outwareid
- 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_update_mtrlware_spt_out (billtype,thflag,scid,outwaremx[i].mtrlid, &
- outwaremx[i].mtrlcode, outwaremx[i].plancode,&
- outwaremx[i].status, outwaremx[i].qty, outwaremx[i].costamt,&
- outwaremx[i].planprice, sptid, &
- outwaremx[i].woodcode, outwaremx[i].pcode,arg_msg,&
- False,commit_transaction) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF outwaremx[i].relid > 0 THEN
- IF uo_wfjg.addmxcmpl_out(scid,outwaremx[i].relid,outwaremx[i].mtrlid,outwaremx[i].olmtrlid,outwaremx[i].status,outwaremx[i].woodcode,outwaremx[i].pcode,outwaremx[i].qty,arg_msg,False) <> 1 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- // //外协商盘盈,自动生成外协订单
- IF it_mxbt_aft > 0 THEN
- IF p_create_wfjgorder(publ_operator,False,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- flag = 1
- ext:
- Destroy uo_wfjg
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer updatebegin (long arg_scid, long arg_outwareid, integer arg_billtype, ref string arg_msg);Long rslt = 1
- IF arg_scid < 0 THEN
- arg_msg = '请选择分部'
- rslt = 0
- GOTO ext
- END IF
- IF arg_outwareid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF Not (arg_billtype = 5 OR &
- arg_billtype = 9 or &
- arg_billtype = 10) THEN
- rslt = 0
- arg_msg = '此单据类型必须为:'
- arg_msg = arg_msg+'5-车间外协发出单,'
- arg_msg = arg_msg+'9-外协商盘盈单,'
- arg_msg = arg_msg+'10-外协商库存成本价调整'
- GOTO ext
- END IF
- rslt = p_getinfo(arg_scid,arg_outwareid,arg_msg)
- IF rslt = 0 THEN GOTO ext
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,不可以修改'
- GOTO ext
- END IF
- outwareid = arg_outwareid
- billtype = arg_billtype
- scid = arg_scid
- it_newbegin = FALSE
- it_updatebegin = TRUE
- p_clearmx() //清除明细
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer getinfo (long arg_scid, long arg_outwareid, ref string arg_msg);//getinfo(arg_scid,arg_outwareid,arg_msg)
- //0 失败 1成功
- Int rslt = 1,i = 1,no_mxcheck = 0
-
- IF arg_outwareid <= 0 THEN
- rslt = 0
- arg_msg = "非法出仓单唯一码"
- GOTO ext
- END IF
- rslt = p_getinfo(arg_scid,arg_outwareid,arg_msg)
- IF rslt = 0 THEN GOTO ext
- //用游标读取明细
- DECLARE cur_inwaermx CURSOR FOR
- SELECT ow_wfjgmx_out.printid,
- ow_wfjgmx_out.mtrlid,
- ow_wfjgmx_out.plancode,
- ow_wfjgmx_out.status,
- ow_wfjgmx_out.qty,
- ow_wfjgmx_out.fprice,
- ow_wfjgmx_out.rebate,
- ow_wfjgmx_out.price,
- ow_wfjgmx_out.mxdscrp,
- u_mtrldef.mtrlcode,
- ow_wfjgmx_out.mtrlwareid,
- ow_wfjgmx_out.storageid,
- ow_wfjgmx_out.costamt,
- ow_wfjgmx_out.ifrel,
- ow_wfjgmx_out.relid,
- ow_wfjgmx_out.woodcode,
- ow_wfjgmx_out.pcode,
- ow_wfjgmx_out.cost,
- ow_wfjgmx_out.olmtrlid,
- ow_wfjgmx_out.rate,
- u_mtrldef.unit
- FROM ow_wfjgmx_out,u_mtrldef,ow_wfjg_out
- WHERE ow_wfjg_out.outwareid = :arg_outwareid AND
- ow_wfjgmx_out.mtrlid = u_mtrldef.mtrlid AND
- ow_wfjg_out.scid = :arg_scid AND
- ow_wfjg_out.outwareid = ow_wfjgmx_out.outwareid AND
- ow_wfjg_out.scid = ow_wfjgmx_out.scid USING commit_transaction;
-
- OPEN cur_inwaermx;
- FETCH cur_inwaermx INTO
- :outwaremx[i].printid,:outwaremx[i].mtrlid,:outwaremx[i].plancode,
- :outwaremx[i].status,:outwaremx[i].qty,:outwaremx[i].fprice,
- :outwaremx[i].rebate,:outwaremx[i].price,
- :outwaremx[i].mxdscrp,:outwaremx[i].mtrlcode,
- :outwaremx[i].mtrlwareid,:outwaremx[i].storageid,
- :outwaremx[i].costamt,:outwaremx[i].ifrel,
- :outwaremx[i].relid,
- :outwaremx[i].woodcode,:outwaremx[i].pcode,
- :outwaremx[i].cost,:outwaremx[i].olmtrlid,
- :outwaremx[i].rate,
- :outwaremx[i].unit;
- DO WHILE commit_transaction.SQLCode = 0
-
- i++
- FETCH cur_inwaermx INTO
- :outwaremx[i].printid,:outwaremx[i].mtrlid,:outwaremx[i].plancode,
- :outwaremx[i].status,:outwaremx[i].qty,:outwaremx[i].fprice,
- :outwaremx[i].rebate,:outwaremx[i].price,
- :outwaremx[i].mxdscrp,:outwaremx[i].mtrlcode,
- :outwaremx[i].mtrlwareid,:outwaremx[i].storageid,
- :outwaremx[i].costamt,:outwaremx[i].ifrel,
- :outwaremx[i].relid,
- :outwaremx[i].woodcode,:outwaremx[i].pcode,
- :outwaremx[i].cost,:outwaremx[i].olmtrlid,
- :outwaremx[i].rate,
- :outwaremx[i].unit;
- LOOP
- CLOSE cur_inwaermx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM ow_wfjgmx_out
- WHERE ow_wfjgmx_out.outwareid = :arg_outwareid
- AND scid = :arg_scid 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
- ////收货明细 游标读取
- i = 1
- DECLARE cur_aftmx CURSOR FOR
- SELECT ow_wfjgmx_out_aft.printid,
- ow_wfjgmx_out_aft.outmxprintid,
- ow_wfjgmx_out_aft.mtrlid,
- ow_wfjgmx_out_aft.status,
- ow_wfjgmx_out_aft.woodcode,
- ow_wfjgmx_out_aft.pcode,
- ow_wfjgmx_out_aft.qty,
- ow_wfjgmx_out_aft.uqty,
- ow_wfjgmx_out_aft.unit,
- ow_wfjgmx_out_aft.rate,
- ow_wfjgmx_out_aft.price,
- ow_wfjgmx_out_aft.jgprice,
- ow_wfjgmx_out_aft.rebate,
- ow_wfjgmx_out_aft.jgdscrp,
- ow_wfjgmx_out_aft.ifrel,
- ow_wfjgmx_out_aft.relid,
- ow_wfjgmx_out_aft.relprintid,
- ow_wfjgmx_out_aft.relcode,
- ow_wfjgmx_out_aft.plancode,
- ow_wfjgmx_out_aft.mtrlcuscode,
- ow_wfjgmx_out_aft.location,
- ow_wfjgmx_out_aft.mxdscrp,
- u_mtrldef.mtrlcode
- FROM ow_wfjgmx_out_aft,u_mtrldef
- WHERE ow_wfjgmx_out_aft.scid = :arg_scid AND
- ow_wfjgmx_out_aft.outwareid = :arg_outwareid AND
- ow_wfjgmx_out_aft.mtrlid = u_mtrldef.mtrlid
- USING commit_transaction;
-
- OPEN cur_aftmx;
- FETCH cur_aftmx INTO
- :outwaremx_aft[i].printid,
- :outwaremx_aft[i].outmxprintid,
- :outwaremx_aft[i].mtrlid,
- :outwaremx_aft[i].status,
- :outwaremx_aft[i].woodcode,
- :outwaremx_aft[i].pcode,
- :outwaremx_aft[i].qty,
- :outwaremx_aft[i].uqty,
- :outwaremx_aft[i].unit,
- :outwaremx_aft[i].rate,
- :outwaremx_aft[i].price,
- :outwaremx_aft[i].jgprice,
- :outwaremx_aft[i].rebate,
- :outwaremx_aft[i].jgdscrp,
- :outwaremx_aft[i].ifrel,
- :outwaremx_aft[i].relid,
- :outwaremx_aft[i].relprintid,
- :outwaremx_aft[i].relcode,
- :outwaremx_aft[i].plancode,
- :outwaremx_aft[i].mtrlcuscode,
- :outwaremx_aft[i].location,
- :outwaremx_aft[i].mxdscrp,
- :outwaremx_aft[i].mtrlcode;
- DO WHILE commit_transaction.SQLCode = 0
-
- i++
- FETCH cur_aftmx INTO
- :outwaremx_aft[i].printid,
- :outwaremx_aft[i].outmxprintid,
- :outwaremx_aft[i].mtrlid,
- :outwaremx_aft[i].status,
- :outwaremx_aft[i].woodcode,
- :outwaremx_aft[i].pcode,
- :outwaremx_aft[i].qty,
- :outwaremx_aft[i].uqty,
- :outwaremx_aft[i].unit,
- :outwaremx_aft[i].rate,
- :outwaremx_aft[i].price,
- :outwaremx_aft[i].jgprice,
- :outwaremx_aft[i].rebate,
- :outwaremx_aft[i].jgdscrp,
- :outwaremx_aft[i].ifrel,
- :outwaremx_aft[i].relid,
- :outwaremx_aft[i].relprintid,
- :outwaremx_aft[i].relcode,
- :outwaremx_aft[i].plancode,
- :outwaremx_aft[i].mtrlcuscode,
- :outwaremx_aft[i].location,
- :outwaremx_aft[i].mxdscrp,
- :outwaremx_aft[i].mtrlcode;
- LOOP
- CLOSE cur_aftmx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM ow_wfjgmx_out_aft
- WHERE outwareid = :arg_outwareid
- AND scid = :arg_scid 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_aft = i - 1
- outwareid = arg_outwareid
- scid = arg_scid
- it_newbegin = FALSE
- it_updatebegin = FALSE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer del (long arg_scid, long arg_outwareid, ref string arg_msg, boolean arg_ifcommit);//如果单据还没有审核删除单据极其明细
- //0 FAIL, 1 SUCCESS
-
- Int rslt = 1
- IF arg_outwareid <= 0 THEN
- rslt = 0
- arG_MSG = "没有删除对象,操作取消"
- GOTO ext
- END IF
- p_getinfo(arg_scid,arg_outwareid,arg_msg)
- IF flag = 1 THEN
- rslt = 0
- arG_MSG = "单据已经审核,不可以删除"
- GOTO ext
- END IF
- DELETE FROM ow_wfjg_out
- WHERE ow_wfjg_out.outwareid = :arg_outwareid
- AND ow_wfjg_out.scid = :arg_scid USING commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "删除进仓单操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- DELETE FROM ow_wfjgmx_out
- WHERE ow_wfjgmx_out.outwareid = :arg_outwareid
- AND ow_wfjgmx_out.scid = :arg_scid 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;
- p_reset()
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN (rslt)
- end function
- public function integer add_dscrp (long arg_scid, long arg_outwareid, string arg_newdescppart, ref string arg_msg);//add_dscrp(string arg_newdescppart)
- //0 fail 1 success
- int rslt=1
- arg_newdescppart=trim(arg_newdescppart)
- if arg_newdescppart='' then
- rslt=0
- arg_msg="要添加内容为空,操作取消"
- goto ext
- end if
- rslt=p_getinfo(arg_scid,arg_outwareid,arg_msg)
- if rslt=0 then goto ext
- if flag=0 then
- rslt=0
- arg_msg="非审核状态下不可用"
- goto ext
- end if
- update ow_wfjg_out
- set dscrp = ltrim(rtrim(dscrp))+' '+:arg_newdescppart
- where ow_wfjg_out.outwareid = :outwareid
- and scid=:scid using commit_transaction;
- if commit_transaction.sqlcode<>0 then
- rollback ;
- rslt=0
- arg_msg="因网络或其它原因导致添加单据备注操作失败"+"~n"+commit_transaction.sqlerrtext
- goto ext
- end if
- commit using commit_transaction;
- dscrp = dscrp+' '+arg_newdescppart
- ext: return (rslt)
- end function
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);
- Long rslt = 1,cnt = 0,i
- DateTime null_dt
- SetNull(null_dt)
- uo_order_wfjg uo_wfjg
- uo_wfjg=create uo_order_wfjg
- uo_wfjg.commit_transaction=commit_transaction
- IF outwareid = 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
- UPDATE ow_wfjg_out
- SET Auditingemp = '',
- Auditingdate = :null_dt,
- flag = 0
- WHERE ow_wfjg_out.outwareid = :outwareid
- 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
- IF f_update_mtrlware_spt_out(billtype,thflag,scid,outwaremx[i].mtrlid, &
- outwaremx[i].mtrlcode, outwaremx[i].plancode,&
- outwaremx[i].status, 0 - outwaremx[i].qty, 0 - outwaremx[i].costamt,&
- outwaremx[i].planprice, sptid, &
- outwaremx[i].woodcode, outwaremx[i].pcode,arg_msg,false,commit_transaction) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF outwaremx[i].relid > 0 THEN
- IF uo_wfjg.addmxcmpl_out(scid,outwaremx[i].relid,outwaremx[i].mtrlid,outwaremx[i].sptid,outwaremx[i].status,outwaremx[i].woodcode,outwaremx[i].pcode,0 - outwaremx[i].qty,arg_msg,FALSE) <> 1 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ////外协商盘盈,自动删除外协订单
- IF it_mxbt_aft > 0 And relid > 0 THEN
- IF p_destroy_wfjgorder( False, arg_msg ) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- flag = 0
- ext:
- destroy uo_wfjg
- IF rslt = 0 THEN
- ROLLBACK USING commit_transaction;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT USING commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer p_clearmx ();//int p_clearmx()
- //清除明细
- it_mxbt=0
- it_mxbt_aft=0
- return 1
- end function
- public function integer p_getinfo (long arg_scid, long arg_outwareid, ref string arg_msg);//p_getinfo(arg_scid,arg_outwareid,arg_msg)
- //0 失败 1成功
- Int rslt = 1
- IF arg_outwareid <= 0 THEN
- rslt = 0
- arG_MSG = "非法出仓单唯一码"
- GOTO ext
- END IF
- SELECT ow_wfjg_out.outwarecode,
- ow_wfjg_out.billtype,
- ow_wfjg_out.relid,
- ow_wfjg_out.outdate,
- ow_wfjg_out.outrep,
- ow_wfjg_out.part,
- ow_wfjg_out.sptid,
- ow_wfjg_out.sptname,
- ow_wfjg_out.dscrp,
- ow_wfjg_out.thflag,
- ow_wfjg_out.flag,
- ow_wfjg_out.balcflag ,
- ow_wfjg_out.ctmint
- INTO :outwarecode,
- :billtype,
- :relid,
- :outdate,
- :outrep,
- :part,
- :sptid,
- :sptname,
- :dscrp,
- :thflag,
- :flag,
- :balcflag,
- :ctmint
- FROM ow_wfjg_out
- WHERE ow_wfjg_out.outwareid = :arg_outwareid
- AND scid = :arg_scid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "查询操作失败(错误出仓单唯一码),出仓单"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- outwareid = arg_outwareid
- scid = arg_scid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer p_reset ();//int p_reset()
- //清除对象及其明细
- scid = 0
- outwareid = 0
- outwarecode = ''
- billtype = 0
- opemp = ''
- modemp = ''
- auditingrep = ''
-
- flag = 0
-
- relid = 0
- //storageid = 0
- outrep = ''
- part = ''
- dscrp = ''
- sptid = 0
- sptname = ''
- thflag = 0
-
- it_newbegin = FALSE
- it_updatebegin = FALSE
- //清除明细
- p_clearmx()
- RETURN 1
- end function
- public function integer acceptmx (long arg_mtrlwareid, decimal arg_qty, string arg_mxdscrp, long arg_printid, ref string arg_msg, integer arg_ifrel, long arg_relid, long arg_mtrlid, long arg_storageid, integer arg_dxflag, string arg_plancode, string arg_mtrlcode, string arg_status, string arg_woodcode, string arg_pcode, decimal arg_fprice, decimal arg_rebate, long arg_olmtrlid, decimal arg_uqty, string arg_uunit, decimal arg_rate);Long rslt = 1,cnt = 0,LS_i
- Decimal i_planprice
- String ls_relcode
- IF it_newbegin = False And it_updatebegin = False THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- IF uo_option_2unit = -1000 THEN
- arg_msg = '选项:[067]外协双单位核算,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_change_status = '-1000' THEN
- arg_msg = '选项:[029]配置标题文本,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_change_woodcode = '-1000' THEN
- arg_msg = '选项:[027]配置1标题文本,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_option_change_pcode = '-1000' THEN
- arg_msg = '选项:[028]配置2标题文本,读取初始默认值失败,操作取消!'
- rslt = 0
- GOTO ext
- END IF
- //清除空值
- IF IsNull(arg_mtrlwareid) THEN arg_mtrlwareid = 0
- IF IsNull(arg_printid) THEN arg_printid = 0
- IF IsNull(arg_qty) THEN arg_qty = 0
- IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
- IF IsNull(arg_ifrel) THEN arg_ifrel = 0
- IF IsNull(arg_relid) THEN arg_relid = 0
- IF IsNull(arg_mtrlid) THEN arg_mtrlid = 0
- IF IsNull(arg_mtrlcode) THEN arg_mtrlcode = ''
- IF IsNull(arg_plancode) THEN arg_plancode = ''
- IF IsNull(arg_status) THEN arg_status = ''
- IF IsNull(arg_fprice) THEN arg_fprice = 0
- IF IsNull(arg_rebate) THEN arg_rebate = 0
- IF IsNull(arg_mxdscrp) THEN arg_mxdscrp = ''
- IF IsNull(arg_relid) THEN arg_relid = 0
- IF IsNull(arg_ifrel) THEN arg_ifrel = 0
- IF IsNull(arg_mxdscrp) THEN arg_woodcode = ''
- IF IsNull(arg_pcode) THEN arg_pcode = ''
- IF IsNull(arg_storageid) THEN arg_storageid = 0
- IF IsNull(arg_uqty) THEN arg_uqty = 0
- IF IsNull(arg_uunit) THEN arg_uunit = ''
- IF IsNull(arg_rate) THEN arg_rate = 0
- IF arg_mtrlid = 0 Or arg_qty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF uo_option_2unit = 1 THEN
- IF arg_uqty = 0 THEN
- arg_msg = '行:'+String(arg_printid)+ ',请输入计价数量'
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF Trim(arg_uunit) = '' THEN
- arg_msg = '行:'+String(arg_printid)+ ',请输入计价单位'
- rslt = 0
- GOTO ext
- END IF
- //检查物料id
- SELECT planprice
- INTO :i_planprice
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_mtrlid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,物料或产品编号:"+arg_mtrlcode
- GOTO ext
- END IF
- IF f_check_status(1,arg_status) = 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,可能'+uo_option_change_status+'未定义,物料:"+arg_mtrlcode+",内容:"+arg_status
- GOTO ext
- END IF
- IF f_check_status(2,arg_woodcode) = 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,可能'+uo_option_change_woodcode+'未定义,物料:"+arg_mtrlcode+",内容:"+arg_woodcode
- GOTO ext
- END IF
- IF f_check_status(3,arg_pcode) = 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,可能'+uo_option_change_pcode+'未定义,物料:"+arg_mtrlcode+",内容:"+arg_pcode
- GOTO ext
- END IF
- IF arg_ifrel = 1 THEN
- IF arg_relid = 0 THEN
- rslt = 0
- arg_msg = '请选择加工计划!'
- GOTO ext
- END IF
-
- SELECT taskcode INTO :ls_relcode
- FROM u_order_wfjg
- Where wfjgID = :arg_relid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询加工计划号失败!>>'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- SELECT count(*) INTO :cnt
- FROM u_order_wfjgMx_out
- WHERE wfjgid = :arg_relid
- AND mtrlid = :arg_mtrlid
- AND status = :arg_status
- AND orderid = :arg_olmtrlid
- AND woodcode = :arg_woodcode
- AND pcode = :arg_pcode
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询外协计划出仓明细失败!>'+commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '出仓物料:'+arg_mtrlcode+'不在加工计划出仓明细中!'
- GOTO ext
- END IF
- END IF
- //***********************************************
- IF arg_fprice * arg_rebate < 0 THEN //检查进仓价
- rslt = 0
- arg_msg = "物料或产品:" + String(arg_mtrlcode)+" 单价错误"
- GOTO ext
- END IF
- //写入内容
- it_mxbt++
- outwaremx[it_mxbt].mtrlwareid = arg_mtrlwareid
- outwaremx[it_mxbt].mtrlid = arg_mtrlid
- outwaremx[it_mxbt].status = arg_status
- outwaremx[it_mxbt].qty = arg_qty
- outwaremx[it_mxbt].storageid = arg_storageid
- outwaremx[it_mxbt].cost = arg_fprice
- outwaremx[it_mxbt].costamt = Round(arg_fprice * arg_qty,2)
- outwaremx[it_mxbt].newpriceamt = 0
- outwaremx[it_mxbt].plancode = arg_plancode
- outwaremx[it_mxbt].planprice = i_planprice
- outwaremx[it_mxbt].mtrlcode = arg_mtrlcode
- outwaremx[it_mxbt].mxdscrp = arg_mxdscrp
- outwaremx[it_mxbt].printid = arg_printid
- outwaremx[it_mxbt].rebate = arg_rebate
- outwaremx[it_mxbt].fprice = arg_fprice
- outwaremx[it_mxbt].price = Round(arg_fprice * arg_rebate,2)
- outwaremx[it_mxbt].olmtrlid = arg_olmtrlid
- outwaremx[it_mxbt].dxflag = arg_dxflag
- outwaremx[it_mxbt].ifrel = arg_ifrel
- outwaremx[it_mxbt].relid = arg_relid
- outwaremx[it_mxbt].woodcode = arg_woodcode
- outwaremx[it_mxbt].pcode = arg_pcode
- outwaremx[it_mxbt].relcode = ls_relcode
- IF uo_option_2unit = 0 THEN
- arg_uqty = arg_qty
- END IF
- outwaremx[it_mxbt].rate = arg_rate
- outwaremx[it_mxbt].uqty = arg_uqty
- outwaremx[it_mxbt].uunit = arg_uunit
- IF uo_option_2unit = 0 THEN
- outwaremx[it_mxbt].uprice = arg_fprice
- ELSE
- outwaremx[it_mxbt].uprice = Round(arg_qty * arg_fprice/arg_uqty,5)
- END IF
- ext:
- IF rslt = 0 THEN p_clearmx()
- RETURN rslt
- end function
- public function integer p_create_wfjgorder (string arg_opemp, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1,i
- Long rst_wfjgid
- uo_order_wfjg uo_wforder
- uo_wforder = Create uo_order_wfjg
- uo_wforder.commit_transaction = commit_transaction
- IF uo_wforder.newbegin(scid,arg_msg) = 0 THEN //
- rslt = 0
- GOTO ext
- END IF
- uo_wforder.Requiredate = outdate
- uo_wforder.Assign_emp = outrep
- uo_wforder.sptID = sptID
- uo_wforder.dscrp = '盘盈单审核自动生成的外协订单'
- uo_wforder.billtype = 9
- uo_wforder.reason = ''
- uo_wforder.relcode = outwarecode
- String ls_jgdscrp, ls_unit
- //收货明细
- FOR i = 1 To it_mxbt_aft
- IF uo_wforder.acceptmx(0,&
- 0,&
- '',&
- outwaremx_aft[i].mtrlid,&
- Abs(outwaremx_aft[i].qty),&
- outwaremx_aft[i].price,&
- outwaremx_aft[i].mxdscrp,&
- outwaremx_aft[i].mtrlcode,&
- arg_msg,&
- i,&
- outdate,&
- 0,&
- outwaremx_aft[i].jgdscrp,&
- outwaremx_aft[i].status,&
- outwaremx_aft[i].woodcode,&
- outwaremx_aft[i].pcode,&
- 0,&
- 0,&
- 0,&
- '[常规]',&
- outwaremx_aft[i].unit,&
- Abs(outwaremx_aft[i].uqty),&
- outwaremx_aft[i].rate,&
- 0,&
- outwaremx_aft[i].plancode,&
- 0,0) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- //发出明细
- FOR i = 1 To it_mxbt
- IF uo_wforder.acceptmx_out(0,&
- 0,&
- '',&
- outwaremx[i].mtrlid,&
- abs(outwaremx[i].qty),&
- outwaremx[i].price,&
- outwaremx[i].mxdscrp,&
- outwaremx[i].mtrlcode,&
- arg_msg,&
- i,&
- 0,&
- outwaremx[i].status,&
- outwaremx[i].woodcode,&
- outwaremx[i].pcode,&
- outwaremx[i].unit,&
- abs(outwaremx[i].uqty),&
- outwaremx[i].rate,&
- i,&
- 0) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- IF uo_wforder.savesubmit(arg_opemp,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- rst_wfjgid = uo_wforder.wfjgid
- IF uo_wforder.firstpermit(scid,rst_wfjgid,arg_opemp,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- UPDATE ow_wfjg_out
- SET relid = :rst_wfjgid
- WHERE scid = :scid
- And outwareid = :outwareid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '记录相关盘盈外协订单id失败,'+commit_transaction.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT Using commit_transaction;
- END IF
- Destroy uo_wforder
- RETURN rslt
- end function
- public function integer p_destroy_wfjgorder (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- uo_order_wfjg uo_wforder
- uo_wforder = Create uo_order_wfjg
- uo_wforder.commit_transaction = commit_transaction
- uo_wforder.caudit_checkauto = 1
- IF outwareid = 0 THEN
- rslt = 0
- arg_msg = "没有审核对象"
- GOTO ext
- END IF
- IF relid = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- IF uo_wforder.cancelpermit(scid,relid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF uo_wforder.Cancel(scid,relid,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- UPDATE ow_wfjg_out
- SET relid = 0
- WHERE scid = :scid
- And outwareid = :outwareid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '清除相关盘盈外协订单id失败,'+commit_transaction.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF arg_ifcommit And rslt = 1 THEN
- COMMIT Using commit_transaction;
- END IF
- Destroy uo_wforder
- RETURN rslt
- end function
- public function integer acceptmx_aft (s_outwaremx_wfjg_aft s_mx, string arg_msg);
- Long rslt = 1
- IF it_newbegin = FALSE AND it_updatebegin = FALSE THEN
- rslt = 0
- arg_msg = "非编辑状态不可以使用,操作取消"
- GOTO ext
- END IF
- IF IsNull(s_mx.printid) THEN s_mx.printid = 0
- IF IsNull(s_mx.mtrlid) THEN s_mx.mtrlid = 0
- IF IsNull(s_mx.qty) THEN s_mx.qty = 0
- IF IsNull(s_mx.unit) THEN s_mx.unit = ''
- IF IsNull(s_mx.uqty) THEN s_mx.uqty = 0
- IF IsNull(s_mx.rate) THEN s_mx.rate = 0
- IF IsNull(s_mx.relid) THEN s_mx.relid = 0
- IF IsNull(s_mx.relprintid) THEN s_mx.relprintid = 0
- IF IsNull(s_mx.mxdscrp) THEN s_mx.mxdscrp = ''
- IF s_mx.mtrlid = 0 OR s_mx.qty = 0 THEN
- rslt = 1
- GOTO ext
- END IF
- //写入内容
- it_mxbt_aft++
- outwaremx_aft[it_mxbt_aft].printid = s_mx.printid
- outwaremx_aft[it_mxbt_aft].outmxprintid = s_mx.outmxprintid
- outwaremx_aft[it_mxbt_aft].mtrlid = s_mx.mtrlid
- outwaremx_aft[it_mxbt_aft].mtrlcode = s_mx.mtrlcode
- outwaremx_aft[it_mxbt_aft].status = s_mx.status
- outwaremx_aft[it_mxbt_aft].woodcode = s_mx.woodcode
- outwaremx_aft[it_mxbt_aft].pcode = s_mx.pcode
- outwaremx_aft[it_mxbt_aft].qty = s_mx.qty
- outwaremx_aft[it_mxbt_aft].uqty = s_mx.uqty
- outwaremx_aft[it_mxbt_aft].unit = s_mx.unit
- IF s_mx.uqty <> 0 THEN
- outwaremx_aft[it_mxbt_aft].rate = s_mx.qty / s_mx.uqty
- ELSE
- outwaremx_aft[it_mxbt_aft].rate = 0
- END IF
- outwaremx_aft[it_mxbt_aft].price = s_mx.price
- outwaremx_aft[it_mxbt_aft].rebate = s_mx.rebate
- outwaremx_aft[it_mxbt_aft].jgprice = s_mx.jgprice
- outwaremx_aft[it_mxbt_aft].jgdscrp = s_mx.jgdscrp
- outwaremx_aft[it_mxbt_aft].sptid = s_mx.sptid
- outwaremx_aft[it_mxbt_aft].mxdscrp = s_mx.mxdscrp
- outwaremx_aft[it_mxbt_aft].ifrel = s_mx.ifrel
- outwaremx_aft[it_mxbt_aft].relid = s_mx.relid
- outwaremx_aft[it_mxbt_aft].relprintid = s_mx.relprintid
- outwaremx_aft[it_mxbt_aft].relcode = s_mx.relcode
- outwaremx_aft[it_mxbt_aft].plancode = s_mx.plancode
- outwaremx_aft[it_mxbt_aft].mtrlcuscode = s_mx.mtrlcuscode
- outwaremx_aft[it_mxbt_aft].location = s_mx.location
- ext:
- IF rslt = 0 THEN p_clearmx()
- RETURN rslt
- end function
- on uo_wfjg_py.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_wfjg_py.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- event constructor;String arg_msg
- String str_optionvalue
- str_optionvalue = ''
- f_get_sys_option_value('067',str_optionvalue,arg_msg)
- uo_option_2unit = Long(str_optionvalue)
- str_optionvalue = ''
- f_get_sys_option_value('029',str_optionvalue,arg_msg)
- uo_option_change_status = str_optionvalue
- str_optionvalue = ''
- f_get_sys_option_value('027',str_optionvalue,arg_msg)
- uo_option_change_woodcode = str_optionvalue
- str_optionvalue = ''
- f_get_sys_option_value('028',str_optionvalue,arg_msg)
- uo_option_change_pcode = str_optionvalue
- end event
|