123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- $PBExportHeader$uo_rap_money_import.sru
- forward
- global type uo_rap_money_import from nonvisualobject
- end type
- end forward
- global type uo_rap_money_import from nonvisualobject
- end type
- global uo_rap_money_import uo_rap_money_import
- type variables
- Long uo_pkid
- end variables
- forward prototypes
- public function integer save (s_rap_money_import arg_s_import, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer p_getinfo (long arg_pkid, ref s_rap_money_import arg_s_import, ref string arg_msg)
- public function integer add_dscrp (long arg_pkid, string arg_newdescppart, ref string arg_msg)
- public function integer del (long arg_pkid, ref string arg_msg, boolean arg_ifcommit)
- public function integer updatebegin (long arg_pkid, ref string arg_msg)
- public function integer audit (long arg_pkid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
- public function integer caudit (long arg_pkid, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer save (s_rap_money_import arg_s_import, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Integer rslt = 1
- DateTime server_dt
- Long ll_pkid
- Long cnt
- IF IsNull(arg_s_import.scid) THEN arg_s_import.scid = 0
- IF IsNull(arg_s_import.pkid) THEN arg_s_import.pkid = 0
- IF IsNull(arg_s_import.relcode) THEN arg_s_import.relcode = ''
- IF IsNull(arg_s_import.banktypeid) THEN arg_s_import.banktypeid = 0
- IF IsNull(arg_s_import.accountsid) THEN arg_s_import.accountsid = 0
- IF IsNull(arg_s_import.moneyid) THEN arg_s_import.moneyid = 0
- IF IsNull(arg_s_import.mrate) THEN arg_s_import.mrate = 1
- IF IsNull(arg_s_import.importdscrp) THEN arg_s_import.importdscrp = ''
- IF IsNull(arg_s_import.dscrp) THEN arg_s_import.dscrp = ''
- IF IsNull(arg_s_import.debit) THEN arg_s_import.debit = 0
- IF IsNull(arg_s_import.credit) THEN arg_s_import.credit = 0
- IF IsNull(arg_s_import.billtype) THEN arg_s_import.billtype = 0
- IF IsNull(arg_s_import.cusid_sptid) THEN arg_s_import.cusid_sptid = 0
- IF IsNull(arg_s_import.itemid) THEN arg_s_import.itemid = 0
- SELECT Top 1 getdate() INTO :server_dt FROM u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- IF arg_s_import.pkid = 0 THEN
-
- ll_pkid = f_sys_scidentity(0,"u_rap_money_import","pkid",arg_msg,TRUE,id_sqlca)
-
- IF ll_pkid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_rap_money_import
- (scid, pkid, accountsid, moneyid, mrate, importdscrp, dscrp, debit, credit, billtype,
- billdate, cusid_sptid, itemid, opemp, opdate, relcode, banktypeid)
- VALUES (:arg_s_import.scid,
- :ll_pkid,
- :arg_s_import.accountsid,
- :arg_s_import.moneyid,
- :arg_s_import.mrate,
- :arg_s_import.importdscrp,
- :arg_s_import.dscrp,
- :arg_s_import.debit,
- :arg_s_import.credit,
- :arg_s_import.billtype,
- :arg_s_import.billdate,
- :arg_s_import.cusid_sptid,
- :arg_s_import.itemid,
- :arg_opemp,
- getdate(),
- :arg_s_import.relcode,
- :arg_s_import.banktypeid) ;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致建立单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- uo_pkid = ll_pkid
- ELSE
- UPDATE u_rap_money_import
- SET accountsid = :arg_s_import.accountsid,
- moneyid = :arg_s_import.moneyid,
- mrate = :arg_s_import.mrate,
- importdscrp = :arg_s_import.importdscrp,
- dscrp = :arg_s_import.dscrp,
- debit = :arg_s_import.debit,
- credit = :arg_s_import.credit,
- billtype = :arg_s_import.billtype,
- billdate = :arg_s_import.billdate,
- cusid_sptid = :arg_s_import.cusid_sptid,
- itemid = :arg_s_import.itemid,
- relcode = :arg_s_import.relcode,
- banktypeid = :arg_s_import.banktypeid,
- moddate = getdate(),
- modemp = :arg_opemp
- WHERE pkid = :arg_s_import.pkid
- AND flag = 0;
- IF sqlca.SQLCode <> 0 OR sqlca.SQLNRows <= 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- uo_pkid = arg_s_import.pkid
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit AND rslt = 1 THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer p_getinfo (long arg_pkid, ref s_rap_money_import arg_s_import, ref string arg_msg);Int rslt = 1
- IF arg_pkid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- SELECT scid, pkid, accountsid, moneyid, mrate, importdscrp, dscrp, debit, credit, billtype,
- billdate, cusid_sptid, itemid, opemp, opdate, relcode, banktypeid,flag,relbillid
- INTO :arg_s_import.scid,
- :arg_s_import.pkid,
- :arg_s_import.accountsid,
- :arg_s_import.moneyid,
- :arg_s_import.mrate,
- :arg_s_import.importdscrp,
- :arg_s_import.dscrp,
- :arg_s_import.debit,
- :arg_s_import.credit,
- :arg_s_import.billtype,
- :arg_s_import.billdate,
- :arg_s_import.cusid_sptid,
- :arg_s_import.itemid,
- :arg_s_import.opemp,
- :arg_s_import.opdate,
- :arg_s_import.relcode,
- :arg_s_import.banktypeid,
- :arg_s_import.flag,
- :arg_s_import.relbillid
- FROM u_rap_money_import
- Where u_rap_money_import.pkid = :arg_pkid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = '查询单据内容失败(错误单据唯一码)'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- public function integer add_dscrp (long arg_pkid, string arg_newdescppart, ref string arg_msg);Int rslt = 1
- s_rap_money_import arg_s_import
- IF arg_pkid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF arg_newdescppart = '' THEN
- rslt = 0
- arg_msg = "要添加内容为空,操作取消"
- GOTO ext
- END IF
- IF p_getinfo(arg_pkid,arg_s_import,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.flag = 0 THEN
- rslt = 0
- arg_msg = '单据未审核,不可以增加备注'
- GOTO ext
- END IF
- UPDATE u_rap_money_import
- SET DSCRP = DSCRP+' '+:arg_newdescppart
- WHERE u_rap_money_import.pkid = :arg_pkid
- AND flag = 1;
- IF SQLCA.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致添加备注操作失败"+"~n"+SQLCA.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 1 THEN
- COMMIT;
- ELSE
- ROLLBACK;
- END IF
- Return (rslt)
- end function
- public function integer del (long arg_pkid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- s_rap_money_import arg_s_import
- IF arg_pkid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_pkid,arg_s_import,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.flag = 1 THEN
- rslt = 0
- ARG_MSG = '单据已经审核,不可以删除'
- GOTO ext
- END IF
- DELETE FROM u_rap_money_import Where pkid = :arg_pkid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除单据操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer updatebegin (long arg_pkid, ref string arg_msg);Int rslt = 1
- s_rap_money_import arg_s_import
- IF arg_pkid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_pkid,arg_s_import,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.flag = 1 THEN
- rslt = 0
- ARG_MSG = '单据已经审核,不可以修改,要修改请先撤销审核'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- public function integer audit (long arg_pkid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long it_mxbt
- uo_cusamt uo_take
- uo_income_expenses uo_ie
- uo_take = Create uo_cusamt
- uo_ie = Create uo_income_expenses
- uo_ie.commit_transaction = sqlca
- s_rap_money_import arg_s_import
- Long ll_relbillid
- IF arg_pkid <= 0 THEN
- rslt = 0
- ARG_MSG = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_pkid,arg_s_import,ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.flag = 1 THEN
- rslt = 0
- ARG_MSG = '单据已经审核,不可以再审'
- GOTO ext
- END IF
- //更新审核标记
- UPDATE u_rap_money_import
- SET auditemp = :arg_opemp,
- auditdate = getdate(),
- flag = 1
- WHERE pkid = :arg_pkid
- And flag = 0;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "因网络或其它原因导致单据审核操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF arg_s_import.billtype = 0 THEN
- ARG_MSG = "请选择单据类型"
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.scid < 0 THEN
- ARG_MSG = "请设置分部"
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.accountsid = 0 THEN
- ARG_MSG = "请设置账号"
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.banktypeid = 0 THEN
- ARG_MSG = "请选择结算方式"
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.itemid = 0 THEN
- ARG_MSG = "请选择费用项目"
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.moneyid = 0 THEN
- ARG_MSG = "请选择币种"
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.billtype = 1 Or arg_s_import.billtype = 2 THEN //客户收款单 //供应商付款单
-
- IF arg_s_import.cusid_sptid < 0 THEN
- ARG_MSG = "请选择客户或供应商"
- rslt = 0
- GOTO ext
- END IF
-
- uo_take.scid = arg_s_import.scid
- uo_take.accountid = arg_s_import.accountsid
- uo_take.cusid = arg_s_import.cusid_sptid
-
- uo_take.dscrp = arg_s_import.dscrp
- uo_take.cusdate = DateTime(Today())
- uo_take.banktypeid = arg_s_import.banktypeid
- uo_take.itemid = arg_s_import.itemid
- uo_take.moneyid = arg_s_import.moneyid
- uo_take.mrate = arg_s_import.mrate
- uo_take.cusrep = publ_operator
- uo_take.viewdate = arg_s_import.billdate
- uo_take.relcode = arg_s_import.relcode
-
- IF arg_s_import.billtype = 1 THEN
- uo_take.billtype = 0
- uo_take.cusamt = arg_s_import.debit
- ELSEIF arg_s_import.billtype = 2 THEN
- uo_take.billtype = 1
- uo_take.cusamt = arg_s_import.credit
- END IF
-
- IF uo_take.Save(ARG_MSG,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- ll_relbillid = uo_take.cusmonid
- ELSEIF arg_s_import.billtype = 3 THEN
-
- IF uo_ie.newbegin(ARG_MSG) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- uo_ie.credencecode = arg_s_import.relcode
- uo_ie.banktypeid = arg_s_import.banktypeid
- IF arg_s_import.debit <> 0 And arg_s_import.credit = 0 THEN
- uo_ie.amt = arg_s_import.debit
- ELSEIF arg_s_import.debit = 0 And arg_s_import.credit <> 0 THEN
- uo_ie.amt = arg_s_import.credit
- END IF
- uo_ie.accountsid = arg_s_import.accountsid
- uo_ie.outdate = arg_s_import.billdate
- uo_ie.Descrp = arg_s_import.dscrp
- uo_ie.rep = publ_operator
- uo_ie.itemid = arg_s_import.itemid
- uo_ie.billtype = 0
-
- IF uo_ie.Save(publ_operator,ARG_MSG,False) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- ll_relbillid = uo_ie.billid
- END IF
- UPDATE u_rap_money_import
- SET relbillid = :ll_relbillid
- Where pkid = :arg_pkid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- ARG_MSG = "因网络或其它原因导致更新单据相关资料失败操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_take
- Destroy uo_ie
- RETURN rslt
- end function
- public function integer caudit (long arg_pkid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- DateTime null_dt
- uo_cusamt uo_take
- uo_income_expenses uo_ie
- uo_take = Create uo_cusamt
- uo_ie = Create uo_income_expenses
- uo_ie.commit_transaction = sqlca
- s_rap_money_import arg_s_import
- SetNull(null_dt)
- IF arg_pkid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- IF p_getinfo(arg_pkid,arg_s_import,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_import.flag = 0 THEN
- rslt = 0
- arg_msg = '单据未审核,不可以撤审'
- GOTO ext
- END IF
- UPDATE u_rap_money_import
- SET flag = 0,
- auditemp = '',
- auditdate = :null_dt
- WHERE pkid = :arg_pkid
- And flag = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致单据撤消审核操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF arg_s_import.billtype = 1 Or arg_s_import.billtype = 2 THEN
- // //客户收款单
- IF uo_take.del(arg_s_import.scid, arg_s_import.relbillid,arg_msg) = 0 THEN
- IF arg_s_import.billtype = 0 THEN
- arg_msg = '删除客户收款单失败!~n' + arg_msg
- ELSE
- arg_msg = '删除供应商付款单失败!~n' + arg_msg
- END IF
- rslt = 0
- GOTO ext
- END IF
-
- ELSEIF arg_s_import.billtype = 3 THEN
- // //其他收入支出单
- IF uo_ie.Cancel(arg_s_import.relbillid,arg_msg,False) = 0 THEN
- arg_msg = '删除相关其他收入支出单失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
- UPDATE u_rap_money_import
- SET relbillid = 0
- Where pkid = :arg_pkid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致更新单据相关资料失败操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_take
- Destroy uo_ie
- RETURN rslt
- end function
- on uo_rap_money_import.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_rap_money_import.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
- global type uo_incase from nonvisualobject
- end type
|