1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560 |
- $PBExportHeader$uo_sptamt_other.sru
- forward
- global type uo_sptamt_other from nonvisualobject
- end type
- end forward
- global type uo_sptamt_other from nonvisualobject
- end type
- global uo_sptamt_other uo_sptamt_other
- type variables
- PUBLIC PROTECTEDWRITE Long Baid //自动增量id
- PUBLIC PROTECTEDWRITE String BaCode //罚款单的唯一编号
- PUBLIC PROTECTEDWRITE DateTime opdate //建立时间,自动
- PUBLIC PROTECTEDWRITE String opemp //建立人
- PUBLIC PROTECTEDWRITE DateTime moddate //修改时间,自动
- PUBLIC PROTECTEDWRITE String modemp //修改人
- PUBLIC PROTECTEDWRITE Int flag = 0 //审核标志
- PUBLIC PROTECTEDWRITE DateTime auditingdate //审核时间
- PUBLIC PROTECTEDWRITE String auditingrep //审核操作员
- PUBLIC PROTECTEDWRITE Int confirmflag = 0 //确认标志
- PUBLIC PROTECTEDWRITE DateTime confirmdate //确认时间
- PUBLIC PROTECTEDWRITE String confirmemp //确认人
- PUBLIC PROTECTEDWRITE Int secflag = 0 //审核标志
- PUBLIC PROTECTEDWRITE DateTime secdate //审核时间
- PUBLIC PROTECTEDWRITE String secemp //审核操作员
- Long banktypeid
- Long scid
- Long cusid
- Long accountid
- DateTime BaDate
- Decimal Bmstamt, Bmstamt_mxsum
- decimal Zqamt, Zqamt_mxsum
- String dscrp
- Int billtype //0-收客户款; 1-付供应商款; 2-退客户款; 3-供应商退款
- Long itemid
- Long relid //记录主表的应收帐相关takeid
- Long reldateint //收入支出账id
- long relrapid //出纳账id
- String BaRep
- Long moneyid
- Decimal mrate
- DateTime viewdate
- string relcode
- string fpcode
- Int cwauditingflag = 0 //总账审核标记
- DateTime cwauditingdate //总账审核时间
- String cwauditingrep //总账审核操作员
- PRIVATE:
- Boolean it_newbegin = FALSE //新建标志
- Boolean it_updatebegin = FALSE//修改标志
- S_BmstamtMX BmstamtMX[]
- Long it_MXBT = 0
- end variables
- forward prototypes
- public function integer p_reset ()
- public function integer save (ref string arg_msg, boolean arg_ifcommit)
- public function integer updatebegin (long arg_scid, long arg_billid, ref string arg_msg)
- public function integer newbegin (long arg_scid, ref string arg_msg)
- public function integer del (long arg_scid, long arg_billid, ref string arg_msg)
- public function integer auditing (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer confirm (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer cconfirm (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer add_dscrp (long arg_Baid, string arg_newdescppart, ref string arg_msg, boolean arg_ifcommit)
- public function integer secauditing (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_secauditing (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_update_cust (long arg_billid, long arg_cusid, ref string arg_msg, boolean arg_ifcommit)
- public function integer acceptmx (s_bmstamtmx s_mx, ref string arg_msg)
- public function integer p_clearmx ()
- public function integer uof_acceptmx_chk (s_bmstamtmx s_mx, ref string arg_msg)
- public function integer auditing_cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_auditing_end (ref string arg_msg)
- public function integer uof_auditing_cancel_end (ref string arg_msg)
- public function integer uof_secauditing_end (ref string arg_msg)
- public function integer uof_secauditing_cancel_end (ref string arg_msg)
- public function integer audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg)
- public function integer c_audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg)
- public function integer p_getinfo (long arg_billid, ref string arg_msg)
- public function long getinfo (long arg_billid, ref string arg_msg)
- end prototypes
- public function integer p_reset ();//INT p_RESET()
- //清除对象及其明细
- banktypeid = 0
- Baid = 0
- BaCode = ''
- opemp = ''
- auditingrep = ''
- flag = 0
- cusid = 0
- Bmstamt = 0
- Zqamt = 0
- Bmstamt_mxsum = 0
- Zqamt_mxsum = 0
- dscrp = ''
- itemid = 0
- billtype = 0
- BaRep = ''
- moneyid = 0
- accountid = 0
- scid = 0
- p_clearmx()
- it_newbegin = FALSE
- it_updatebegin = FALSE
- RETURN 1
- end function
- public function integer save (ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1,cnt = 0,i,if_auto=0
- DateTime server_dt
- Long ls_newid
- String ls_sccode
- Long ll_moneyid_account
- IF IsNull(cusid) THEN cusid = 0
- IF IsNull(accountid) THEN accountid = 0
- IF IsNull(dscrp) THEN dscrp = ''
- IF IsNull(Bmstamt) THEN Bmstamt = 0
- IF IsNull(Zqamt) THEN Zqamt = 0
- IF IsNull(scid) THEN scid = 0
- IF IsNull(billtype) THEN billtype = 0
- IF IsNull(itemid) THEN itemid = 0
- IF IsNull(BaRep) THEN BaRep = ''
- IF IsNull(moneyid) THEN moneyid = 0
- IF IsNull(mrate) THEN mrate = 0
- IF IsNull(relcode) THEN relcode = ''
- IF IsNull(fpcode) THEN fpcode = ''
- IF Not ( it_updatebegin Or it_newbegin) THEN
- rslt = 0
- arG_MSG = "非编辑状态下不可用"
- GOTO ext
- END IF
- IF accountid = 0 THEN
- arG_MSG = '请选择帐号'
- rslt = 0
- GOTO ext
- END IF
- SELECT moneyid INTO :ll_moneyid_account
- FROM u_accounts
- Where accountsid = :accountid;
- IF sqlca.SQLCode <> 0 THEN
- arG_MSG = '查询帐号币种失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF IsNull(ll_moneyid_account) THEN ll_moneyid_account = 0
- IF ll_moneyid_account = 0 THEN
- arG_MSG = '帐号币种未指定,请检查'
- rslt = 0
- GOTO ext
- END IF
- //
- ////检查本次收金额 >= 单据明细本次应收; 折扣金额 = 单据明细本次折扣金额
- //
- //if_auto=integer(f_ProfileString (sys_empid, 'w_sptamt_other', "if_auto", '1'))
- //if if_auto = 1 then
- // IF MessageBox ("询问","主表金额不等于明细金额汇总,是否继续按明细汇总保存?(是按明细汇总,否按主表金额",Question!,YesNo! ) = 2 THEN
- // else
- // Bmstamt = Bmstamt_mxsum
- // end if
- //else
- //end if
- //
- IF billtype = 3 THEN
-
- IF cusid = 0 THEN
- arG_MSG = '请先选择供应商'
- rslt = 0
- GOTO ext
- END IF
-
- SELECT count(*) INTO :cnt
- FROM u_spt
- Where sptid = :cusid;
- IF sqlca.SQLCode <> 0 THEN
- arG_MSG = '查询供应商资料失败'
- rslt = 0
- GOTO ext
- END IF
-
- IF cnt > 1 THEN
- arG_MSG = '供应商资料重复'
- rslt = 0
- GOTO ext
- END IF
-
- END IF
- IF moneyid = 0 THEN
- arG_MSG = '请选择币种'
- rslt = 0
- GOTO ext
- END IF
- IF mrate <= 0 THEN
- arG_MSG = '请输入币种汇率'
- rslt = 0
- GOTO ext
- END IF
- IF moneyid <> ll_moneyid_account And mrate = 1 THEN
- arG_MSG = '收款币种与帐号币种不相同,汇率不能设为1'
- rslt = 0
- GOTO ext
- END IF
- IF moneyid = ll_moneyid_account And mrate <> 1 THEN
- arG_MSG = '收款币种与帐号币种相同,汇率要设为1'
- rslt = 0
- GOTO ext
- END IF
- IF f_check_inoutdate(0,BaDate,False,arG_MSG) = 0 THEN
- rslt = 0
- arG_MSG = "该单据超出指定日期范围(单据限制录入天数)"
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_itemdef
- Where itemid = :itemid;
- IF sqlca.SQLCode <> 0 THEN
- arG_MSG = '查询项目资料失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF cnt <> 1 THEN
- arG_MSG = '项目资料不存在或重复'
- rslt = 0
- GOTO ext
- END IF
- //20100426
- Long ll_itemflag
- SELECT itemflag
- INTO :ll_itemflag
- FROM u_itemdef
- Where itemid = :itemid;
- IF sqlca.SQLCode <> 0 THEN
- arG_MSG = '查询项目资料核算方向失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- IF billtype = 2 And ll_itemflag = -1 THEN
- arG_MSG = '其他收款单,不能选择核算支出方向的收支项目'
- rslt = 0
- GOTO ext
- END IF
- IF banktypeid = 0 THEN
- arG_MSG = '没有结算方式'
- rslt = 0
- GOTO ext
- END IF
- IF Bmstamt = 0 THEN
- arG_MSG = '请输入正确的金额'
- rslt = 0
- 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 Year(Date(BaDate)) < 2000 Or IsNull(BaDate) THEN
- rslt = 0
- arG_MSG = "时间不合理"
- GOTO ext
- END IF
- ////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF it_newbegin THEN //新建
- ls_newid = f_sys_scidentity(0,"u_Bmstamt","Baid",arG_MSG,True,sqlca)
- IF ls_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- //取分部代号
- IF f_get_sccode(0,sqlca,ls_sccode,arG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF billtype = 3 THEN //其他付款单
- BaCode = getid(0,ls_sccode + "PO",Date(server_dt),True,sqlca) //取得新单据编号
-
- END IF
-
- IF BaCode = "err" THEN
- BaCode = ''
- rslt = 0
- arG_MSG = "无法获取单据编号"
- GOTO ext
- END IF
-
- INSERT INTO u_Bmstamt (
- scid,
- Baid,
- BaCode,
- BaDate,
- cusid,
- Bmstamt,
- dscrp,
- opdate,
- opemp,
- accountid,
- banktypeid,
- billtype,
- itemid,
- BaRep,
- moneyid,
- mrate,
- viewdate,
- relcode,
- fpcode,
- Zqamt)
- VALUES (
- :scid,
- :ls_newid,
- :BaCode,
- :BaDate,
- :cusid,
- :Bmstamt,
- :dscrp,
- getdate(),
- :publ_operator,
- :accountid,
- :banktypeid,
- :billtype,
- :itemid,
- :BaRep,
- :moneyid,
- :mrate,
- :viewdate,
- :relcode,
- :fpcode,
- :Zqamt);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "插入单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- Baid = ls_newid
- ELSE //////////////////////////////////////////////// //更新
-
- UPDATE u_Bmstamt
- SET BaDate = :BaDate,
- cusid = :cusid,
- Bmstamt = :Bmstamt,
- Zqamt = :Zqamt,
- dscrp = :dscrp,
- opdate = getdate(),
- opemp = :publ_operator,
- BaCode = :BaCode,
- scid = :scid,
- accountid = :accountid,
- banktypeid = :banktypeid,
- itemid = :itemid,
- BaRep = :BaRep,
- moneyid = :moneyid,
- mrate = :mrate,
- viewdate = :viewdate,
- relcode = :relcode,
- fpcode = :fpcode,
- modemp = :publ_operator,
- moddate = getdate()
- Where Baid = :Baid;
- IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arG_MSG = "更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- //删除原有明细
- DELETE FROM u_Bmstamtmx
- Where u_Bmstamtmx.Baid = :Baid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "删除旧有明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- END IF
- FOR i = 1 To it_mxbt
- INSERT INTO u_Bmstamtmx
- (Baid,
- printid,
- scid,
- takeid,
- takedate,
- msttakeamt,
- takeamt,
- Zqamt,
- Ttakeamt,
- TZqamt,
- billid,
- billcode,
- relid,
- relcode,
- relprintid,
- mxdscrp)
- VALUES (:Baid,
- :BmstamtMX[i].printid,
- :scid,
- :BmstamtMX[i].takeid,
- :BmstamtMX[i].takedate,
- :BmstamtMX[i].msttakeamt,
- :BmstamtMX[i].takeamt,
- :BmstamtMX[i].Zqamt,
- :BmstamtMX[i].Ttakeamt,
- :BmstamtMX[i].TZqamt,
- :BmstamtMX[i].billid,
- :BmstamtMX[i].billcode,
- :BmstamtMX[i].relid,
- :BmstamtMX[i].relcode,
- :BmstamtMX[i].relprintid,
- :BmstamtMX[i].mxdscrp);
- IF sqlca.SQLCode <> 0 THEN
- IF it_newbegin THEN Baid = 0
- rslt = 0
- IF Pos(sqlca.SQLErrText, 'IX_u_Bmstamtmx') > 0 THEN
- arG_MSG = "插入明细操作失败,存在重复的凭证"+"~n"+sqlca.SQLErrText
- ELSE
- arG_MSG = "插入明细操作失败"+"~n"+sqlca.SQLErrText
- END IF
- GOTO ext
- END IF
- NEXT
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN
- p_clearmx()
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Return(rslt)
- end function
- public function integer updatebegin (long arg_scid, long arg_billid, ref string arg_msg);//====================================================================
- // Function: updatebegin(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
- Baid = 0
- arg_msg = '错误的单据ID'
- GOTO ext
- END IF
- SELECT
- u_Bmstamt.Baid,
- u_Bmstamt.BaCode,
- u_Bmstamt.cusid,
- u_Bmstamt.Bmstamt,
- u_Bmstamt.dscrp ,
- u_Bmstamt.BaDate,
- u_Bmstamt.scid,
- u_Bmstamt.accountid,
- u_Bmstamt.flag
- Into
- :Baid,
- :BaCode,
- :cusid,
- :Bmstamt,
- :dscrp,
- :BaDate,
- :scid,
- :accountid,
- :flag
- From u_Bmstamt
- Where Baid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询数据操作失败,单据'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,不可以修改'
- GOTO ext
- END IF
- Baid = arg_billid
- 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 newbegin (long arg_scid, ref string arg_msg);Int rslt = 1
- IF arg_scid < 0 THEN
- arg_msg = '请选择分部'
- rslt = 0
- GOTO ext
- END IF
- p_reset()
- scid = arg_scid
- it_newbegin = True
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function integer del (long arg_scid, long arg_billid, 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_Bmstamt.flag, confirmflag
- INTO :flag, :confirmflag
- FROM u_Bmstamt
- Where u_Bmstamt.Baid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询收款单操作失败'
- GOTO ext
- END IF
- IF confirmflag = 1 THEN
- rslt = 0
- arg_msg = "单据已经确认,不可以删除"
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = "单据已经审核,不可以删除"
- GOTO ext
- END IF
- DELETE FROM u_Bmstamt
- Where u_Bmstamt.Baid = :arg_billid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_Bmstamtmx
- Where u_Bmstamtmx.Baid = :arg_billid ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- it_newbegin = False
- it_updatebegin = False
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- p_reset()
- ELSE
- COMMIT;
- END IF
- Return (rslt)
- end function
- public function integer auditing (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);
- Long cnt = 0
- Long i
- Int rslt = 1
- Long ref_rapid
- Long ref_dateint
- String ls_name
- String ls_dscrp
- 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
- If billtype = 3 Then
- If sys_option_msttake_takeamt_secaudit = 0 Then
- Update u_Bmstamt
- Set auditemp = :publ_operator,
- auditdate = getdate(),
- flag = 1,
- secemp = :publ_operator,
- secdate = getdate(),
- secflag = 1
- Where u_Bmstamt.Baid = :arg_billid
- And flag = 0;
- Else
- Update u_Bmstamt
- Set auditemp = :publ_operator,
- auditdate = getdate(),
- flag = 1
- Where u_Bmstamt.Baid = :arg_billid
- And flag = 0;
- End If
- End If
- 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
- //If uof_auditing_end(arg_msg) = 0 Then
- // rslt = 0
- // Goto ext
- //End If
- //
- //兼容二级审模式 . 使用二级审时,本审核只更新标记。使用一级审,本审核同时生成相关出纳。
- //uof_auditing_end。出纳代码在 uof_secauditing_end
- If sys_option_msttake_takeamt_secaudit = 0 Then
- If uof_secauditing_end(arg_msg) = 0 Then
- rslt = 0
- Goto ext
- End If
- End If
- flag = 1
- ext:
- If rslt = 0 Then
- Rollback;
- ElseIf rslt = 1 And arg_ifcommit Then
- Commit;
- End If
- Return rslt
- end function
- public function integer confirm (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Long cnt = 0
- Int rslt = 1
- 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
- IF confirmflag = 1 THEN
- rslt = 0
- arg_msg = '单据已确认,不可以确认'
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET confirmemp = :publ_operator,
- confirmdate = getdate(),
- confirmflag = 1
- WHERE u_Bmstamt.Baid = :arg_billid
- AND confirmflag = 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
- confirmflag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer cconfirm (long arg_billid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Long cnt = 0
- Int rslt = 1
- datetime null_dt
- setnull(null_dt)
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF confirmflag = 0 THEN
- rslt = 0
- arg_msg = '单据未确认,不可以反确认'
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET confirmemp = '',
- confirmdate = :null_dt,
- confirmflag = 0
- WHERE u_Bmstamt.Baid = :arg_billid
- AND confirmflag = 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
- confirmflag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer add_dscrp (long arg_Baid, 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 getinfo(arg_Baid,arG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF flag = 0 THEN
- rslt = 0
- arG_MSG = "非审核状态下不可用"
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET DSCRP = ltrim(rtrim(DSCRP))+' '+:arg_newdescppart
- Where u_Bmstamt.Baid = :arg_Baid;
- IF SQLCA.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "添加单据备注操作失败"+"~n"+SQLCA.SQLErrText
- GOTO ext
- END IF
- DSCRP = DSCRP+' '+arg_newdescppart
- 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, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);
- Int rslt = 1
- 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
- IF secflag = 1 THEN
- rslt = 0
- arg_msg = '单据已经审核,不可以再审核'
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET secemp = :publ_operator,
- secdate = getdate(),
- secflag = 1
- WHERE u_Bmstamt.Baid = :arg_billid
- AND flag = 1
- AND secflag = 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
- IF uof_secauditing_end(arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- flag = 1
- secflag = 1
- 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
- DateTime null_dt
- SetNull(null_dt)
- IF getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF secflag = 0 THEN
- rslt = 0
- arg_msg = '单据未审核,不可以再撤审'
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET secemp = '',
- secdate = :null_dt,
- secflag = 0
- WHERE u_Bmstamt.Baid = :arg_billid
- And secflag = 1 And flag = 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
- IF uof_secauditing_cancel_end(arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- flag = 1
- secflag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- //DESTROY uo_take
- RETURN rslt
- end function
- public function integer uof_update_cust (long arg_billid, long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- 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
- IF secflag = 1 THEN
- rslt = 0
- arg_msg = '单据已终审,不可以再操作'
- GOTO ext
- END IF
- IF billtype <> 0 THEN
- arg_msg = '不是客户收款结算单,不能操作'
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET cusid = :arg_cusid
- WHERE u_Bmstamt.Baid = :arg_billid
- AND flag = 1
- AND secflag = 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
- cusid = arg_cusid
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer acceptmx (s_bmstamtmx s_mx, ref string arg_msg);
- Long rslt = 1
- DateTime ldt_takedate
- String ls_billcode, ls_relcode
- 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.takeid) THEN s_mx.takeid = 0
- IF IsNull(s_mx.billcode) THEN s_mx.billcode = ''
- IF IsNull(s_mx.relcode) THEN s_mx.relcode = ''
- IF IsNull(s_mx.msttakeamt) THEN s_mx.msttakeamt = 0
- IF IsNull(s_mx.takeamt) THEN s_mx.takeamt = 0
- IF IsNull(s_mx.zqamt) THEN s_mx.zqamt = 0
- IF IsNull(s_mx.ttakeamt) THEN s_mx.ttakeamt = 0
- IF IsNull(s_mx.tzqamt) THEN s_mx.tzqamt = 0
- IF IsNull(s_mx.mxdscrp) THEN s_mx.mxdscrp = ''
- IF IsNull(s_mx.relid) THEN s_mx.relid = 0
- IF IsNull(s_mx.relprintid) THEN s_mx.relprintid = 0
- IF s_mx.takeid = 0 Or (s_mx.ttakeamt = 0 And s_mx.tzqamt = 0) THEN
- rslt = 1
- GOTO ext
- END IF
- //IF billtype = 0 THEN
- // IF s_mx.ttakeamt + s_mx.tzqamt > s_mx.msttakeamt - s_mx.takeamt THEN
- // arg_msg = "行:"+String(s_mx.printid)+",本次收款金额+本次折扣金额>未收金额"
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // SELECT takedate, billcode, relcode
- // INTO :ldt_takedate, :ls_billcode, :ls_relcode
- // FROM U_Bmsttake
- // Where takeid = :s_mx.takeid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "查询明细对应的应收帐信息失败,"+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //ELSE
- // IF s_mx.ttakeamt + s_mx.tzqamt > s_mx.msttakeamt - s_mx.takeamt THEN
- // arg_msg = "行:"+String(s_mx.printid)+",本次付款金额+本次折扣金额>未付金额"
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // SELECT paydate, billcode, relcode
- // INTO :ldt_takedate, :ls_billcode, :ls_relcode
- // FROM U_Bmstpay
- // Where payid = :s_mx.takeid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "查询明细对应的应付帐信息失败,"+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- // //ls_relcode = ""
- //END IF
- IF uof_acceptmx_chk(s_mx, arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //写入内容
- it_mxbt++
- BmstamtMX[it_mxbt].printid = it_mxbt
- BmstamtMX[it_mxbt].takeid = s_mx.takeid
- BmstamtMX[it_mxbt].billcode = s_mx.billcode
- BmstamtMX[it_mxbt].relcode = s_mx.relcode
- BmstamtMX[it_mxbt].takedate =s_mx.takedate
- BmstamtMX[it_mxbt].msttakeamt = s_mx.msttakeamt
- BmstamtMX[it_mxbt].takeamt = s_mx.takeamt
- BmstamtMX[it_mxbt].zqamt = s_mx.zqamt
- BmstamtMX[it_mxbt].ttakeamt = s_mx.ttakeamt
- BmstamtMX[it_mxbt].tzqamt = s_mx.tzqamt
- BmstamtMX[it_mxbt].relid = s_mx.relid
- BmstamtMX[it_mxbt].relprintid = s_mx.relprintid
- BmstamtMX[it_mxbt].mxdscrp = s_mx.mxdscrp
- Bmstamt_mxsum += s_mx.ttakeamt
- Zqamt_mxsum += s_mx.tzqamt
- ext:
- IF rslt = 0 THEN
- p_clearmx()
- END IF
- Return(rslt)
- end function
- public function integer p_clearmx ();//int p_clearmx()
- //清除明细
- it_mxbt=0
- Bmstamt_mxsum = 0
- Zqamt_mxsum = 0
- return 1
- end function
- public function integer uof_acceptmx_chk (s_bmstamtmx s_mx, ref string arg_msg);Int rslt = 1
- GOTO ext
- ext:
- RETURN rslt
- end function
- public function integer auditing_cancel (long arg_billid, ref string arg_msg, boolean arg_ifcommit);Long cnt = 0
- Long i
- Int rslt = 1
- Long ref_rapid
- DateTime null_dt
- SetNull(null_dt)
- 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
- If billtype = 3 Then
- If sys_option_msttake_takeamt_secaudit = 0 Then
- Update u_Bmstamt
- Set auditemp = '',
- auditdate = :null_dt,
- flag = 0,
- secemp = '',
- secdate = :null_dt,
- secflag = 0
- Where u_Bmstamt.Baid = :arg_billid
- And flag = 1;
- Else
- Update u_Bmstamt
- Set auditemp = '',
- auditdate = :null_dt,
- flag = 0
- Where Baid = :arg_billid
- And flag = 1
- And secflag = 0;
- End If
-
- End If
- 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
- //兼容二级审模式 . 使用二级审时,本撤审只更新标记。使用一级审,本撤审同时删除相关出纳。
- //uof_auditing_cancel_end中没有代码。出纳代码在 uof_secauditing_cancel_end
- If sys_option_msttake_takeamt_secaudit = 0 Then
- If uof_secauditing_cancel_end(arg_msg) = 0 Then
- rslt = 0
- Goto ext
- End If
- End If
- //If uof_auditing_cancel_end(arg_msg) = 0 Then
- // rslt = 0
- // Goto ext
- //End If
- //
- flag = 0
- ext:
- If rslt = 0 Then
- Rollback;
- ElseIf rslt = 1 And arg_ifcommit Then
- Commit;
- End If
- Return rslt
- end function
- public function integer uof_auditing_end (ref string arg_msg);return 1
- //Long rslt = 1
- //Long ll_relid_ref
- //Long i
- //Long ll_itemid
- //Long ref_dateint
- //Decimal lde_oriamt, lde_msttakeamt, lde_takeamt
- //String ls_about
- //DateTime ldt_zqdate
- //String ls_dscrp
- //
- //uo_musttake uo_take
- //uo_take = Create uo_musttake
- //
- //uo_salebill uo_bill_s
- //uo_bill_s = Create uo_salebill
- //
- //uo_mustpay uo_pay
- //uo_pay = Create uo_mustpay
- //
- //uo_buybill uo_bill_b
- //uo_bill_b = Create uo_buybill
- //
- //uo_iteminput uo_item
- //uo_item = Create uo_iteminput
- //
- //DateTime ld_viewdate
- //SetNull(ld_viewdate)
- //
- //Int li_item_dfttype,li_itemflag
- //Decimal ld_takeamt
- //Long ll_moneyid_account
- //
- //
- //ls_dscrp = dscrp
- //
- //IF Trim(fpcode) <> '' THEN
- // ls_dscrp = ls_dscrp + ' 发票号:'+fpcode
- //END IF
- //
- //IF billtype = 0 THEN //生成客户收款, 对单
- // IF sys_option_msttake_takeamt_secaudit = 0 THEN //两审一起进行,生成应收,出纳, 对单
- // //1.生成已收帐
- // s_bmsttake s_take
- //
- // s_take.scid = scid
- // s_take.cusid = cusid
- // s_take.takedate = BaDate
- // s_take.inrep = BaRep
- // s_take.oriamt = 0 - Bmstamt
- // s_take.msttakeamt = 0
- // s_take.takeamt = Bmstamt
- // s_take.dscrp = ls_dscrp
- // s_take.billcode = BaCode
- // s_take.banktypeid = banktypeid
- // s_take.buildtype = 4
- // s_take.opemp = publ_operator
- // s_take.outwareid = 0
- // s_take.salebillid = 0
- // s_take.viewdate = viewdate
- // s_take.accountsid = accountid
- // s_take.itemid = itemid
- // s_take.moneyid = moneyid
- // s_take.relcode = relcode
- //
- // SELECT moneyid INTO :ll_moneyid_account
- // FROM u_accounts
- // Where accountsid = :accountid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询帐号币种资料失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF IsNull(ll_moneyid_account) THEN ll_moneyid_account = 0
- // IF ll_moneyid_account = 0 THEN
- // arg_msg = '帐号币种未指定,请检查'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_take.add_takerec(s_take,arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // ll_relid_ref = uo_take.ref_takeid
- //
- // IF ll_relid_ref = 0 THEN
- // arg_msg = '错误的应收应付帐ID!'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // UPDATE u_Bmstamt
- // SET relid = :ll_relid_ref
- // WHERE Baid = :Baid
- // And flag = 1;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '更新单据资料失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF it_mxbt > 0 THEN
- // //2.明细生成折扣金额(优惠款)
- // IF f_get_itemid(3, ll_itemid, arg_msg) = 0 THEN //查询默认销售优惠款项目
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //
- // Bmstamt_mxsum = 0
- // FOR i = 1 To it_mxbt
- // IF BmstamtMX[i].tzqamt <> 0 THEN
- // ls_about = BaCode + "折扣金额"
- //
- // IF sys_option_bmstamt_zqamt_date = 0 THEN
- // ldt_zqdate = BaDate
- // ELSE
- //
- // SELECT takedate INTO :ldt_zqdate FROM u_Bmsttake
- // Where scid = :scid And takeid = :BmstamtMX[i].takeid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询应收帐发生日期信息失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // IF uo_take.add_takerecmx(scid,BmstamtMX[i].takeid,BaCode,ldt_zqdate,banktypeid,0 - BmstamtMX[i].tzqamt,0,&
- // publ_operator,ls_about,BaRep,3,0,ll_itemid,cusid, moneyid,arg_msg,False,relcode) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // IF BmstamtMX[i].ttakeamt <> 0 THEN
- // Bmstamt_mxsum += BmstamtMX[i].ttakeamt
- // END IF
- //
- // NEXT
- //
- // //3.明细(扣除折扣金额)与当前已收帐对单
- // IF uo_bill_s.newbegin() = 0 THEN
- // arg_msg = '初始化对单失败'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // uo_bill_s.opemp = publ_operator
- // uo_bill_s.takedate = BaDate
- // uo_bill_s.relcode = BaCode
- // uo_bill_s.inrep = publ_operator
- // uo_bill_s.banktypeid = banktypeid
- // uo_bill_s.dscrp = '客户收款结算单自动生成'
- // uo_bill_s.cusid = cusid
- // uo_bill_s.msttakeamt = 0
- // uo_bill_s.takeamt = 0
- // uo_bill_s.accountsid = accountid
- // uo_bill_s.itemid = itemid
- // uo_bill_s.buildtype = 1
- // uo_bill_s.moneyid = moneyid
- // //
- //
- // //插入收款明细
- // IF uo_bill_s.acceptmx(ll_relid_ref,&
- // BaCode,&
- // 0,&
- // 0 - Bmstamt_mxsum,&
- // 0 - Bmstamt,&
- // 0,&
- // Bmstamt,&
- // BaCode,&
- // arg_msg) = 0 THEN
- // arg_msg = '对数单插入已收明细失败,'+arg_msg
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // //插入应收明细
- // FOR i = 1 To it_mxbt
- //
- // IF BmstamtMX[i].ttakeamt <> 0 THEN
- // SELECT oriamt, msttakeamt, takeamt
- // INTO :lde_oriamt, :lde_msttakeamt, :lde_takeamt
- // FROM U_Bmsttake
- // Where takeid = :BmstamtMX[i].takeid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '行:'+String(i)+'查询应收帐信息失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_bill_s.acceptmx(BmstamtMX[i].takeid,&
- // BmstamtMX[i].billcode,&
- // 0,&
- // BmstamtMX[i].ttakeamt,&
- // lde_oriamt,&
- // lde_msttakeamt,&
- // lde_takeamt,&
- // BmstamtMX[i].relcode,&
- // arg_msg) = 0 THEN
- // arg_msg = '对数单插入应收明细失败,'+arg_msg
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- // NEXT
- //
- // IF uo_bill_s.save_ds(arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- // ELSE //IF sys_option_msttake_takeamt_secaudit = 0 THEN //初审出纳; 终审应收
- // SELECT dfttype,itemflag
- // INTO :li_item_dfttype,:li_itemflag
- // FROM u_itemdef
- // Where u_itemdef.itemid = :itemid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询当前收支项目核算类型和核算方向失败!'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // CHOOSE CASE li_item_dfttype
- // CASE 1,3,4
- // ld_takeamt = Bmstamt * li_itemflag
- // CASE ELSE
- // ld_takeamt = Bmstamt
- // END CHOOSE
- //
- //
- // IF sys_option_cusamt_dftdate = 0 THEN
- // ld_viewdate = BaDate
- // ELSE
- // ld_viewdate = viewdate
- // END IF
- //
- // s_iteminput s_input
- //
- // s_input.itemid = itemid
- // s_input.dateint = 0
- // s_input.outdate = ld_viewdate
- // s_input.dscrp = dscrp
- // s_input.outamt = ld_takeamt
- // s_input.accountsid = accountid
- // s_input.banktypeid = banktypeid
- // s_input.billcode = BaCode
- // s_input.relcode = relcode
- // s_input.buildtype = 1
- // s_input.opemp = publ_operator
- // s_input.relrep = ''
- // s_input.scid = scid
- // s_input.moneyid = moneyid
- //
- // IF uo_item.add_iteminput(s_input,arg_msg,False) = 0 THEN
- // arg_msg = '增加收支明细帐失败!~n' + arg_msg
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // ref_dateint = uo_item.ref_dateint
- //
- // IF ref_dateint = 0 THEN
- // arg_msg = '增加收支出纳明细帐失败!'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // UPDATE u_Bmstamt
- // SET reldateint = :ref_dateint
- // WHERE Baid = :Baid
- // And flag = 1;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '更新单据收支帐ID资料失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //ELSEIF billtype = 1 THEN //生成供应商付款, 对单
- // // SELECT sptcode, name INTO :ls_code,:ls_name
- // // FROM u_spt
- // // Where sptid = :cusid;
- // // IF sqlca.SQLCode <> 0 THEN
- // // arg_msg = '查询供应商名称失败,可能供应商资料不存在'
- // // rslt = 0
- // // GOTO ext
- // // END IF
- //
- // // ls_dscrp = dscrp
- //
- // //1.生成已付帐
- //
- // s_bmstpay s_pay
- // s_pay.scid = scid
- // s_pay.sptid = cusid
- // s_pay.paydate = BaDate
- // s_pay.inrep = BaRep
- // s_pay.oriamt = 0 - Bmstamt
- // s_pay.mstpayamt = 0
- // s_pay.payamt = Bmstamt
- // s_pay.dscrp = ls_dscrp
- // s_pay.billcode = BaCode
- // s_pay.banktypeid = banktypeid
- // s_pay.buildtype = 4
- // s_pay.opemp = publ_operator
- // s_pay.inwareid = 0
- // s_pay.buybillid = 0
- // s_pay.accountsid = accountid
- // s_pay.itemid = itemid
- // s_pay.moneyid = moneyid
- // s_pay.relcode = relcode
- // s_pay.viewdate = viewdate
- //
- // IF uo_pay.add_payrec(s_pay,arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // ll_relid_ref = uo_pay.ref_payid
- //
- // IF ll_relid_ref = 0 THEN
- // arg_msg = '错误的应收应付帐ID!'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // UPDATE u_Bmstamt
- // SET relid = :ll_relid_ref
- // WHERE Baid = :Baid
- // And flag = 1;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '更新单据资料失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF it_mxbt > 0 THEN
- // //2.明细生成折扣金额(优惠款)
- // IF f_get_itemid(8, ll_itemid, arg_msg) = 0 THEN //查询默认采购优惠款项目
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //
- // Bmstamt_mxsum = 0
- // FOR i = 1 To it_mxbt
- // IF BmstamtMX[i].tzqamt <> 0 THEN
- // ls_about = BaCode + "折扣金额"
- //
- // IF sys_option_bmstamt_zqamt_date = 0 THEN
- // ldt_zqdate = BaDate
- // ELSE
- //
- // SELECT paydate INTO :ldt_zqdate FROM u_Bmstpay
- // Where scid = :scid And payid = :BmstamtMX[i].takeid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询应付帐发生日期信息失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // IF uo_pay.add_payrecmx(scid,BmstamtMX[i].takeid,BaCode,BaDate,banktypeid,0 - BmstamtMX[i].tzqamt,0,&
- // publ_operator,ls_about,BaRep,3,0,ll_itemid,cusid, arg_msg,False,moneyid,relcode) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // IF BmstamtMX[i].ttakeamt <> 0 THEN
- // Bmstamt_mxsum += BmstamtMX[i].ttakeamt
- // END IF
- //
- // NEXT
- //
- // //3.明细(扣除折扣金额)与当前已付帐对单
- // IF uo_bill_b.newbegin() = 0 THEN
- // arg_msg = '初始化对单失败'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // uo_bill_b.opemp = publ_operator
- // uo_bill_b.paydate = BaDate
- // uo_bill_b.relcode = BaCode
- // uo_bill_b.inrep = publ_operator
- // uo_bill_b.banktypeid = banktypeid
- // uo_bill_b.dscrp = '供应商付款结算单自动生成'
- // uo_bill_b.sptid = cusid
- // uo_bill_b.mstpayamt = 0
- // uo_bill_b.payamt = 0
- // uo_bill_b.accountsid = accountid
- // uo_bill_b.itemid = itemid
- // uo_bill_b.buildtype = 1
- // uo_bill_b.moneyid = moneyid
- // //
- //
- // //插入付款明细
- // IF uo_bill_b.acceptmx(ll_relid_ref,&
- // BaCode,&
- // 0,&
- // 0 - Bmstamt_mxsum,&
- // 0 - Bmstamt,&
- // 0,&
- // Bmstamt,&
- // BaCode,&
- // arg_msg) = 0 THEN
- // arg_msg = '对数单插入已付明细失败,'+arg_msg
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // //插入应付明细
- // FOR i = 1 To it_mxbt
- //
- // IF BmstamtMX[i].ttakeamt <> 0 THEN
- // SELECT oriamt, mstpayamt, payamt
- // INTO :lde_oriamt, :lde_msttakeamt, :lde_takeamt
- // FROM U_Bmstpay
- // Where payid = :BmstamtMX[i].takeid;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '行:'+String(i)+'查询应付帐信息失败,'+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_bill_b.acceptmx(BmstamtMX[i].takeid,&
- // BmstamtMX[i].billcode,&
- // 0,&
- // BmstamtMX[i].ttakeamt,&
- // lde_oriamt,&
- // lde_msttakeamt,&
- // lde_takeamt,&
- // BmstamtMX[i].relcode,&
- // arg_msg) = 0 THEN
- // arg_msg = '对数单插入应付明细失败,'+arg_msg
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- // NEXT
- //
- // IF uo_bill_b.save_ds(arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //END IF
- //ext:
- //Destroy uo_take
- //Destroy uo_bill_s
- //Destroy uo_pay
- //Destroy uo_item
- //RETURN rslt
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- end function
- public function integer uof_auditing_cancel_end (ref string arg_msg);return 1
- //Long rslt = 1
- //Long ll_relid_ref
- //Long i
- //Long ll_itemid
- //Decimal lde_oriamt, lde_msttakeamt, lde_takeamt
- // Long ll_listno
- // String ls_about
- //
- //uo_musttake uo_take
- //uo_take = Create uo_musttake
- //
- //uo_salebill uo_bill_s
- //uo_bill_s = Create uo_salebill
- //
- //uo_mustpay uo_pay
- //uo_pay = Create uo_mustpay
- //
- //uo_buybill uo_bill_b
- //uo_bill_b = Create uo_buybill
- //
- //uo_iteminput uo_item
- //uo_item = Create uo_iteminput
- //
- ////DateTime ld_viewdate
- ////SetNull(ld_viewdate)
- //
- ////Int li_item_dfttype,li_itemflag
- ////Decimal ld_takeamt
- //Long ll_moneyid_account
- //
- //Long ll_salebillid
- //IF billtype = 0 THEN //生成客户收款, 对单
- // IF sys_option_msttake_takeamt_secaudit = 0 THEN
- // IF it_mxbt > 0 THEN
- // //1.删除对数单
- // SELECT salebillid
- // INTO :ll_salebillid
- // FROM u_salebill
- // WHERE relcode = :BaCode
- // And dscrp = '客户收款结算单自动生成';
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "查询对应对数单失败,"+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //
- // IF uo_bill_s.del(ll_salebillid, arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //
- // //2.删除明细优惠
- // FOR i = 1 To it_mxbt
- // IF BmstamtMX[i].tzqamt <> 0 THEN
- // ls_about = BaCode + "折扣金额"
- //
- // SELECT listno
- // INTO :ll_listno
- // FROM U_BmsttakeMX
- // WHERE takeid = :BmstamtMX[i].takeid
- // AND dscrp = :ls_about
- // And billcode = :BaCode;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "查询应收明细对应的折扣金额应收帐失败,"+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_take.del_takerecmx (2,BmstamtMX[i].takeid, ll_listno,arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // NEXT
- // END IF
- //
- // //3.删除已收帐
- // IF uo_take.del_takerec (scid,1,relid, cusid, arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // ELSE //IF sys_option_msttake_takeamt_secaudit = 0 THEN
- // IF secflag = 1 THEN
- // arg_msg = '客户收款结算单已终审,不能操作'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_item.del_iteminput(itemid,reldateint,1,arg_msg,False) = 0 THEN
- // arg_msg = '删除收支明细帐失败!~n' + arg_msg
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //ELSEIF billtype = 1 THEN //生成供应商付款, 对单
- // IF secflag = 1 THEN
- // arg_msg = '供应商付款结算单已终审,不能操作'
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF it_mxbt > 0 THEN
- // //1.删除对数单
- // SELECT buybillid
- // INTO :ll_salebillid
- // FROM u_buybill
- // WHERE relcode = :BaCode
- // And dscrp = '供应商付款结算单自动生成';
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "查询对应对数单失败,"+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //
- // IF uo_bill_b.del(ll_salebillid, arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //
- // //2.删除明细优惠
- // FOR i = 1 To it_mxbt
- // IF BmstamtMX[i].tzqamt <> 0 THEN
- // ls_about = BaCode + "折扣金额"
- //
- // SELECT listno
- // INTO :ll_listno
- // FROM U_BmstpayMX
- // WHERE payid = :BmstamtMX[i].takeid
- // AND dscrp = :ls_about
- // And billcode = :BaCode;
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "查询应付明细对应的折扣金额应付帐失败,"+sqlca.SQLErrText
- // rslt = 0
- // GOTO ext
- // END IF
- //
- // IF uo_pay.del_payrecmx (2,BmstamtMX[i].takeid, ll_listno,arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- // END IF
- //
- // NEXT
- // END IF
- //
- // //3.删除已付帐
- // IF uo_pay.del_payrec (scid,1,relid, cusid, arg_msg,False) = 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- //
- //END IF
- //ext:
- //Destroy uo_take
- //Destroy uo_pay
- //Destroy uo_item
- //destroy uo_bill_s
- //destroy uo_bill_b
- //RETURN rslt
- //
- //
- //
- //
- //
- //
- //
- //
- //
- end function
- public function integer uof_secauditing_end (ref string arg_msg);Long rslt = 1
- Long ll_relid_ref
- Long i ,ll_i
- Long ll_itemid
- Long ref_dateint
- uo_iteminput uo_item
- uo_item = Create uo_iteminput
- uo_item.ib_CreateRapmoneyid = False
- uo_rapmoney uo_money
- uo_money = Create uo_rapmoney
- uo_money.commit_transaction = sqlca
- IF Baid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF getinfo(Baid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //更新其他应付单 已付金额
- Decimal lde_msttaskamt,lde_msttask_finishamt
- FOR ll_i = 1 To it_mxbt
- lde_msttaskamt = 0
- lde_msttask_finishamt = 0
- SELECT u_income_expenses.amt,u_income_expenses.finish_amt INTO :lde_msttaskamt,:lde_msttask_finishamt
- From u_income_expenses Where scid = :BmstamtMX[ll_i].scid And billid = :BmstamtMX[ll_i].takeid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询其他应付单据相关信息失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF IsNull(lde_msttaskamt) THEN lde_msttaskamt = 0
- IF IsNull(lde_msttask_finishamt) THEN lde_msttask_finishamt = 0
-
- IF lde_msttask_finishamt + BmstamtMX[ll_i].Ttakeamt > lde_msttaskamt THEN
-
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,其他应付单据金额:' + String(lde_msttaskamt,'#,##0.00') + ' < ' + '已付金额:' + String(lde_msttask_finishamt,'#,##0.00') + ' + 本次付款金额:' + String( BmstamtMX[ll_i].Ttakeamt,'#,##0.00')
- GOTO ext
-
- END IF
-
-
-
- UPDATE u_income_expenses SET finish_amt = finish_amt + :BmstamtMX[ll_i].Ttakeamt
- From u_income_expenses Where scid = :BmstamtMX[ll_i].scid And billid = :BmstamtMX[ll_i].takeid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询其他应付单据相关信息失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
-
- NEXT
- //生成收入支出账
- s_iteminput s_input
- s_input.itemid = itemid
- s_input.dateint = 0
- s_input.outdate = BaDate
- s_input.dscrp = dscrp
- s_input.outamt = Bmstamt
- s_input.accountsid = accountid
- s_input.banktypeid = banktypeid
- s_input.billcode = BaCode
- s_input.relcode = relcode
- s_input.buildtype = 1
- s_input.opemp = publ_operator
- s_input.relrep = BaRep
- s_input.scid = scid
- s_input.moneyid = moneyid
- IF uo_item.add_iteminput(s_input,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- ref_dateint = uo_item.ref_dateint
- UPDATE u_Bmstamt
- SET reldateint = :ref_dateint
- WHERE Baid = :Baid
- And scid = :scid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新单据收入支出账标记相关信息失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- //生成出纳帐
- Decimal ld_msttakeamt,ld_takeamt
- Long ref_rapid
- ld_msttakeamt = 0
- ld_takeamt = Bmstamt
- s_rap_money s_rap
- s_rap.accountsid = accountid
- s_rap.takedate = BaDate
- s_rap.inrep = BaRep
- s_rap.dscrp = dscrp
- s_rap.msttakeamt = ld_msttakeamt
- s_rap.takeamt = ld_takeamt
- s_rap.billcode = BaCode
- s_rap.relcode = relcode
- s_rap.buildtype = 1
- s_rap.dcflag = 0
- s_rap.relid = 0
- s_rap.opemp = publ_operator
- s_rap.banktypeid = banktypeid
- s_rap.scid = scid
- IF uo_money.add_raprec(s_rap,arg_msg,False) = 0 THEN
- arg_msg = '增加出纳明细帐失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- ref_rapid = uo_money.ref_rapid
- IF ref_rapid = 0 THEN
- arg_msg = '增加出纳明细帐失败!'
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET
- relrapid = :ref_rapid
- WHERE Baid = :Baid
- And scid = :scid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新单据出纳账标记审核操作失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- Destroy uo_item
- Destroy uo_money
- //
- RETURN rslt
- end function
- public function integer uof_secauditing_cancel_end (ref string arg_msg);Long rslt = 1
- Long ll_relid_ref
- Long i,ll_i
- Long ll_itemid
- Long ref_dateint
- uo_iteminput uo_item
- uo_item = Create uo_iteminput
- uo_item.ib_CreateRapmoneyid = False
- uo_rapmoney uo_money
- uo_money = Create uo_rapmoney
- uo_money.commit_transaction = sqlca
- IF Baid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF getinfo(Baid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //更新其他应付单 已付金额
- Decimal lde_msttaskamt,lde_msttask_finishamt
- FOR ll_i = 1 To it_mxbt
- lde_msttaskamt = 0
- lde_msttask_finishamt = 0
- SELECT u_income_expenses.amt,u_income_expenses.finish_amt INTO :lde_msttaskamt,:lde_msttask_finishamt
- From u_income_expenses Where scid = :BmstamtMX[ll_i].scid And billid = :BmstamtMX[ll_i].takeid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询其他应付单据相关信息失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- IF IsNull(lde_msttaskamt) THEN lde_msttaskamt = 0
- IF IsNull(lde_msttask_finishamt) THEN lde_msttask_finishamt = 0
-
- IF lde_msttask_finishamt - BmstamtMX[ll_i].Ttakeamt < 0 THEN
-
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,已付金额:' + String(lde_msttask_finishamt,'#,##0.00') + ' - 本次付款金额:' + String( BmstamtMX[ll_i].Ttakeamt,'#,##0.00') + ' < 0'
- GOTO ext
-
- END IF
-
-
-
- UPDATE u_income_expenses SET finish_amt = finish_amt - :BmstamtMX[ll_i].Ttakeamt
- From u_income_expenses Where scid = :BmstamtMX[ll_i].scid And billid = :BmstamtMX[ll_i].takeid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询其他应付单据相关信息失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
-
- NEXT
- IF uo_item.del_iteminput(itemid,reldateint,1,arg_msg,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET reldateint = 0
- WHERE Baid = :Baid
- And scid = :scid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新单据收入支出账标记相关信息失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF uo_money.del_raprec(relrapid,accountid,1,arg_msg,False) = 0 THEN
- arg_msg = '删除出纳明细帐失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_Bmstamt
- SET
- relrapid = 0
- WHERE Baid = :Baid
- And scid = :scid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "更新单据出纳账标记审核操作失败 ~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- Destroy uo_item
- Destroy uo_money
- //
- RETURN rslt
- end function
- public function integer audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg);
- Int 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 secflag = 0 THEN
- rslt = 0
- arg_msg = "单据没有终审"
- GOTO ext
- END IF
- IF cwauditingflag = 1 THEN
- rslt = 0
- arg_msg = "单据已经总账审核"
- GOTO ext
- END IF
- UPDATE u_bmstamt
- SET cwauditingflag = 1,
- cwauditingdate = getdate(),
- cwauditingrep = :publ_operator
- WHERE ( u_bmstamt.Baid = :arg_billid ) Using sqlca;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致总账审核操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
- ext:
- IF arg_ifcommit And rslt = 1 THEN
- COMMIT Using sqlca;
- END IF
- Return (rslt)
- end function
- public function integer c_audit_subject (long arg_scid, long arg_billid, boolean arg_ifcommit, ref string arg_msg);
- Int 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 cwauditingflag = 0 THEN
- rslt = 0
- arg_msg = "单据没有总账审核"
- GOTO ext
- END IF
- UPDATE u_bmstamt
- SET cwauditingflag = 0,
- cwauditingdate =null,
- cwauditingrep = ''
- WHERE ( u_bmstamt.Baid = :arg_billid ) Using sqlca;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致总账撤审操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
- ext:
- IF arg_ifcommit And rslt = 1 THEN
- COMMIT Using sqlca;
- END IF
- Return (rslt)
- end function
- public function integer p_getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- IF arg_billid <= 0 THEN
- arg_msg = '错误的单据id'
- GOTO ext
- END IF
- SELECT u_Bmstamt.scid,
- u_Bmstamt.cusid,
- u_Bmstamt.banktypeid,
- u_Bmstamt.accountid,
- u_Bmstamt.BaDate,
- u_Bmstamt.Bmstamt,
- u_Bmstamt.dscrp,
- u_Bmstamt.flag,
- u_Bmstamt.BaCode,
- u_Bmstamt.billtype,
- u_Bmstamt.relid,
- u_Bmstamt.itemid,
- u_Bmstamt.BaRep,
- u_Bmstamt.moneyid,
- u_Bmstamt.mrate,
- u_Bmstamt.confirmflag,
- u_Bmstamt.relcode,
- u_Bmstamt.secflag,
- u_Bmstamt.secemp,
- u_Bmstamt.secdate,
- u_Bmstamt.fpcode,
- reldateint,
- relrapid,
- viewdate,
- zqamt,
- u_Bmstamt.cwauditingflag,
- u_Bmstamt.cwauditingrep,
- u_Bmstamt.cwauditingdate
- INTO :scid,
- :cusid,
- :banktypeid,
- :accountid,
- :BaDate,
- :Bmstamt,
- :dscrp,
- :flag,
- :BaCode,
- :billtype,
- :relid,
- :itemid,
- :BaRep,
- :moneyid,
- :mrate,
- :confirmflag,
- :relcode,
- :secflag,
- :secemp,
- :secdate,
- :fpcode,
- :reldateint,
- :relrapid,
- :viewdate,
- :zqamt,
- :cwauditingflag,
- :cwauditingrep,
- :cwauditingdate
- FROM u_Bmstamt
- Where u_Bmstamt.Baid = :arg_billid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询数据操作失败,收据'+sqlca.SQLErrText
- GOTO ext
- END IF
- Baid = arg_billid
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- public function long getinfo (long arg_billid, ref string arg_msg);Int rslt = 1
- long i = 1, no_mxcheck
- IF arg_billid <= 0 THEN
- rslt = 0
- arg_msg = '错误的单据id'
- GOTO ext
- END IF
- IF p_getinfo(arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- //用游标读取明细
- DECLARE cur_bamx CURSOR FOR
- SELECT printid, scid, takeid, takedate, msttakeamt, takeamt, Zqamt, Ttakeamt,
- TZqamt, billid, billcode, relid, relcode, relprintid, mxdscrp
- FROM u_Bmstamtmx
- Where Baid = :arg_billid;
-
- OPEN cur_bamx;
- FETCH cur_bamx INTO :BmstamtMX[i].printid, :BmstamtMX[i].scid, :BmstamtMX[i].takeid, :BmstamtMX[i].takedate, :BmstamtMX[i].msttakeamt, :BmstamtMX[i].takeamt, :BmstamtMX[i].Zqamt,
- :BmstamtMX[i].Ttakeamt, :BmstamtMX[i].TZqamt, :BmstamtMX[i].billid, :BmstamtMX[i].billcode, :BmstamtMX[i].relid, :BmstamtMX[i].relcode, :BmstamtMX[i].relprintid, :BmstamtMX[i].mxdscrp;
-
- DO WHILE sqlca.SQLCode = 0
- i++
- FETCH cur_bamx INTO :BmstamtMX[i].printid, :BmstamtMX[i].scid, :BmstamtMX[i].takeid, :BmstamtMX[i].takedate, :BmstamtMX[i].msttakeamt, :BmstamtMX[i].takeamt, :BmstamtMX[i].Zqamt,
- :BmstamtMX[i].Ttakeamt, :BmstamtMX[i].TZqamt, :BmstamtMX[i].billid, :BmstamtMX[i].billcode, :BmstamtMX[i].relid, :BmstamtMX[i].relcode, :BmstamtMX[i].relprintid, :BmstamtMX[i].mxdscrp;
- LOOP
- CLOSE cur_bamx;
- //检验明细是否读入完整
- SELECT count(*) INTO :no_mxcheck
- FROM u_Bmstamtmx
- Where Baid = :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
-
- Baid = arg_billid
- it_MXBT = i - 1
- it_newbegin=FALSE
- it_updatebegin=FALSE
- ext:
- IF rslt = 0 THEN p_reset()
- RETURN rslt
- end function
- on uo_sptamt_other.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_sptamt_other.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|