123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413 |
- $PBExportHeader$uo_iteminput.sru
- forward
- global type uo_iteminput from nonvisualobject
- end type
- end forward
- global type uo_iteminput from nonvisualobject
- end type
- global uo_iteminput uo_iteminput
- type variables
- long ref_dateint = 0
- end variables
- forward prototypes
- public function integer del_iteminput (long arg_itemid, long arg_dateint, long arg_ifauto, ref string arg_msg, boolean arg_ifcommit)
- public function integer add_iteminput (s_iteminput arg_s_iteminput, ref string arg_msg, boolean arg_ifcommit)
- public function integer mod_iteminput (s_iteminput arg_s_iteminput, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer del_iteminput (long arg_itemid, long arg_dateint, long arg_ifauto, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,ls_itemflag,li_buildtype
- Decimal ls_outamt
- Long ls_accountsid,ls_rapmoneyid
- Long cnt = 0
- //uo_rapmoney uo_money
- //uo_money = CREATE uo_rapmoney
- SELECT itemflag
- INTO :ls_itemflag
- FROM u_itemdef
- Where u_itemdef.itemid = :arg_itemid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '找不到当前的收支项目!'
- rslt = 0
- GOTO ext
- END IF
- SELECT outamt,accountsid,rapmoneyid,buildtype
- INTO :ls_outamt,:ls_accountsid,:ls_rapmoneyid,:li_buildtype
- FROM u_iteminput
- Where dateint = :arg_dateint;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询收支明细失败'
- rslt = 0
- GOTO ext
- END IF
- IF arg_ifauto = 0 THEN
- IF li_buildtype = 1 THEN
- arg_msg = '自动建立的收支帐不能删除'
- rslt = 0
- GOTO ext
- END IF
- END IF
- //
- //cnt = 0
- //SELECT count(*)
- // INTO :cnt
- // FROM u_accounts
- // Where u_accounts.accountsid = :ls_accountsid;
- //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
- //
- //IF uo_money.del_raprec(ls_rapmoneyid,ls_accountsid,1,arg_msg,FALSE) = 0 THEN
- // arg_msg = '删除出纳明细帐失败!~n' + arg_msg
- // rslt = 0
- // GOTO ext
- //END IF
- DELETE FROM u_iteminput Where dateint = :arg_dateint;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除收支明细失败!'
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- //DESTROY uo_money
- RETURN rslt
- end function
- public function integer add_iteminput (s_iteminput arg_s_iteminput, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,ls_itemflag
- Long cnt = 0
- Long ref_rapid
- //uo_rapmoney uo_money
- //uo_money = CREATE uo_rapmoney
- //
- IF IsNull(arg_s_iteminput.scid) THEN arg_s_iteminput.scid = 0
- IF arg_s_iteminput.dateint = 0 THEN
- arg_s_iteminput.dateint = f_sys_scidentity(0,"u_iteminput","dateint",arg_msg,TRUE,id_sqlca)
- IF arg_s_iteminput.dateint <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF arg_s_iteminput.outdate < DateTime(Date('2000-01-01'),Time(0)) THEN
- arg_msg = '错误的发生时间'
- rslt = 0
- GOTO ext
- END IF
- IF f_check_inoutdate(0,arg_s_iteminput.outdate,FALSE,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_iteminput.outamt = 0 and arg_s_iteminput.inamt = 0 THEN
- arg_msg = '收入金额与支出金额不能同时为0'
- rslt = 0
- GOTO ext
- END IF
- //IF arg_s_iteminput.outamt < 0 THEN
- // arg_msg = '支出金额必须>0'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //IF arg_s_iteminput.inamt < 0 THEN
- // arg_msg = '收入金额必须>0'
- // rslt = 0
- // GOTO ext
- //END IF
- //SELECT itemflag
- // INTO :ls_itemflag
- // FROM u_itemdef
- // Where u_itemdef.itemid = :arg_s_iteminput.itemid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '查询当前收支项目核算方向失败!'
- // rslt = 0
- // GOTO ext
- //END IF
- //cnt = 0
- //SELECT count(*)
- // INTO :cnt
- // FROM u_accounts
- // Where u_accounts.accountsid = :arg_s_iteminput.accountsid;
- //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
- //
- //Decimal ld_msttakeamt,ld_takeamt
- //IF ls_itemflag = 1 THEN
- // ld_msttakeamt = arg_s_iteminput.outamt
- // ld_takeamt = 0
- //ELSE
- // ld_msttakeamt = 0
- // ld_takeamt = arg_s_iteminput.outamt
- //END IF
- //
- //s_rap_money s_rap
- //
- //s_rap.accountsid = arg_s_iteminput.accountsid
- //s_rap.takedate = arg_s_iteminput.outdate
- //s_rap.inrep = arg_s_iteminput.relrep
- //s_rap.dscrp = arg_s_iteminput.dscrp
- //s_rap.msttakeamt = ld_msttakeamt
- //s_rap.takeamt = ld_takeamt
- //s_rap.billcode = arg_s_iteminput.billcode
- //s_rap.relcode = arg_s_iteminput.relcode
- //s_rap.buildtype = 1
- //s_rap.dcflag = 0
- //s_rap.relid = 0
- //s_rap.opemp = arg_s_iteminput.opemp
- //s_rap.banktypeid = arg_s_iteminput.banktypeid
- //
- //
- //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
- INSERT INTO u_iteminput
- (itemid,
- dateint,
- billcode,
- relcode,
- outdate,
- dscrp,
- inamt,
- outamt,
- opdate,
- opemp,
- accountsid,
- rapmoneyid,
- buildtype,
- banktypeid,
- relrep,
- scid)
- VALUES
- (:arg_s_iteminput.itemid,
- :arg_s_iteminput.dateint,
- :arg_s_iteminput.billcode,
- :arg_s_iteminput.relcode,
- :arg_s_iteminput.outdate,
- :arg_s_iteminput.dscrp,
- :arg_s_iteminput.inamt,
- :arg_s_iteminput.outamt,
- getdate(),
- :arg_s_iteminput.opemp,
- :arg_s_iteminput.accountsid,
- :ref_rapid,
- :arg_s_iteminput.buildtype,
- :arg_s_iteminput.banktypeid,
- :arg_s_iteminput.relrep,
- :arg_s_iteminput.scid);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加收支记录失败!'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ref_dateint = arg_s_iteminput.dateint
- ext:
- IF rslt = 0 THEN
- ROLLBACK ;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- //DESTROY uo_money
- RETURN rslt
- end function
- public function integer mod_iteminput (s_iteminput arg_s_iteminput, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,ls_itemflag
- Long cnt = 0
- Long ref_rapmoneyid
- Long ll_rapmoneyid,ll_accountsid
- uo_rapmoney uo_money
- uo_money = CREATE uo_rapmoney
- IF IsNull(arg_s_iteminput.scid) THEN arg_s_iteminput.scid = 0
- IF arg_s_iteminput.outdate < DateTime(Date('2000-01-01'),Time(0)) THEN
- arg_msg = '错误的发生时间'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_iteminput.outamt = 0 THEN
- arg_msg = '请输入金额'
- rslt = 0
- GOTO ext
- END IF
- SELECT itemflag
- INTO :ls_itemflag
- FROM u_itemdef
- Where u_itemdef.itemid = :arg_s_iteminput.itemid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '找不到当前的收支项目!'
- rslt = 0
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_accounts
- Where u_accounts.accountsid = :arg_s_iteminput.accountsid;
- 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
- Decimal ld_msttakeamt,ld_takeamt
- IF ls_itemflag = 1 THEN
- ld_msttakeamt = arg_s_iteminput.outamt
- ld_takeamt = 0
- ELSE
- ld_msttakeamt = 0
- ld_takeamt = arg_s_iteminput.outamt
- END IF
- SELECT accountsid,rapmoneyid
- INTO :ll_accountsid,:ll_rapmoneyid
- FROM u_iteminput
- Where dateint = :arg_s_iteminput.dateint;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询修改前帐号失败!'
- rslt = 0
- GOTO ext
- END IF
-
- IF uo_money.del_raprec(ll_rapmoneyid,ll_accountsid,1,arg_msg,FALSE) = 0 THEN
- arg_msg = '删除出纳明细帐失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- s_rap_money s_rap
- s_rap.accountsid = arg_s_iteminput.accountsid
- s_rap.takedate = arg_s_iteminput.outdate
- s_rap.inrep = arg_s_iteminput.opemp
- s_rap.dscrp = arg_s_iteminput.dscrp
- s_rap.msttakeamt = ld_msttakeamt
- s_rap.takeamt = ld_takeamt
- s_rap.billcode = arg_s_iteminput.billcode
- s_rap.relcode = arg_s_iteminput.relcode
- s_rap.opemp = arg_s_iteminput.opemp
- s_rap.banktypeid = arg_s_iteminput.banktypeid
- s_rap.buildtype = 1
- s_rap.dcflag = 0
- s_rap.relid = 0
- s_rap.scid = arg_s_iteminput.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_rapmoneyid = uo_money.ref_rapid
- IF ref_rapmoneyid = 0 THEN
- arg_msg = '增加银行出纳明细帐失败!'
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_iteminput
- SET outdate = :arg_s_iteminput.outdate,
- dscrp = :arg_s_iteminput.dscrp,
- outamt = :arg_s_iteminput.outamt,
- accountsid = :arg_s_iteminput.accountsid,
- rapmoneyid = :ref_rapmoneyid,
- itemid = :arg_s_iteminput.itemid,
- banktypeid = :arg_s_iteminput.banktypeid,
- billcode = :arg_s_iteminput.billcode,
- scid = :arg_s_iteminput.scid,
- relcode = :arg_s_iteminput.relcode
- Where dateint = :arg_s_iteminput.dateint;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '修改收支明细失败!'
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- DESTROY uo_money
- RETURN rslt
- end function
- on uo_iteminput.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_iteminput.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|