123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539 |
- $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
- boolean ib_CreateRapmoneyid = true //收入支出帐 与 出纳帐分离,目前只有部分单据使用; 默认true,不分离;设false,分离
- //过度选项,以后要完全分离
- //已使用的单据:其他收入支出单
- 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 mod_iteminput (long arg_itemid, long arg_dateint, long arg_rapmoneyid, datetime arg_outdate, string arg_dscrp, decimal arg_outamt, long arg_accountsid, integer arg_banktypeid, ref string arg_msg, boolean arg_ifcommit, string arg_billcode, string arg_relcode)
- public function integer add_iteminput (s_iteminput arg_s_mx, ref string arg_msg, boolean arg_ifcommit)
- protected function integer add_iteminput (long arg_scid, long arg_itemid, long arg_dateint, datetime arg_outdate, string arg_dscrp, decimal arg_outamt, long arg_accountsid, ref string arg_msg, boolean arg_ifcommit, long arg_banktypeid, integer arg_buildtype, string arg_billcode, long arg_moneyid, string arg_relcode)
- 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 = '查询收支明细失败>'+sqlca.SQLErrText
- 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
- IF ib_CreateRapmoneyid THEN
- 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
-
- // Decimal arg_msttakeamt,arg_takeamt
- // IF ls_itemflag = 1 THEN
- // arg_msttakeamt = ls_outamt
- // arg_takeamt = 0
- // ELSE
- // arg_msttakeamt = 0
- // arg_takeamt = ls_outamt
- // END IF
-
- uo_money.commit_transaction = sqlca
- 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
- 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 mod_iteminput (long arg_itemid, long arg_dateint, long arg_rapmoneyid, datetime arg_outdate, string arg_dscrp, decimal arg_outamt, long arg_accountsid, integer arg_banktypeid, ref string arg_msg, boolean arg_ifcommit, string arg_billcode, string arg_relcode);Int rslt = 1,ls_itemflag
- Long cnt = 0
- Long ref_rapmoneyid
- uo_rapmoney uo_money
- uo_money = CREATE uo_rapmoney
- IF arg_outdate < DateTime(Date('2000-01-01'),Time(0)) THEN
- arg_msg = '错误的发生时间'
- rslt = 0
- GOTO ext
- END IF
- IF arg_outamt = 0 THEN
- arg_msg = '请输入金额'
- rslt = 0
- GOTO ext
- END IF
- 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
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_accounts
- Where u_accounts.accountsid = :arg_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
- ////检查币种
- //cnt = 0
- //SELECT count(*)
- // INTO :cnt
- // FROM cw_currency
- // Where moneyid = :arg_moneyid;
- //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 arg_msttakeamt,arg_takeamt
- IF ls_itemflag = 1 THEN
- arg_msttakeamt = arg_outamt
- arg_takeamt = 0
- ELSE
- arg_msttakeamt = 0
- arg_takeamt = arg_outamt
- END IF
- uo_money.commit_transaction = sqlca
- long ll_accountsid
- SELECT accountid
- INTO :ll_accountsid
- FROM u_rap_money
- Where rapmoneyid = :arg_rapmoneyid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询修改前帐号失败!'
- rslt = 0
- GOTO ext
- END IF
- IF uo_money.del_raprec(arg_rapmoneyid,ll_accountsid,1,arg_msg,FALSE) = 0 THEN
- arg_msg = '删除出纳明细帐失败!~n' + arg_msg
- rslt = 0
- GOTO ext
- END IF
- IF uo_money.add_raprec(-1,arg_accountsid,arg_outdate,publ_operator,arg_dscrp,arg_msttakeamt,&
- arg_takeamt,arg_billcode,1,0,0,publ_operator,arg_msg,FALSE,arg_banktypeid,arg_relcode) = 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_outdate,
- dscrp = :arg_dscrp,
- outamt = :arg_outamt,
- moddate = getdate(),
- modemp = :publ_operator,
- accountsid = :arg_accountsid,
- rapmoneyid = :ref_rapmoneyid,
- itemid = :arg_itemid,
- banktypeid = :arg_banktypeid,
- billcode = :arg_billcode,
- relcode = :arg_relcode
- Where dateint = :arg_dateint;
-
- IF sqlca.SQLCode <> 0 THEN
- IF Pos(Lower(sqlca.SQLErrText),'pk_u_iteminput') > 0 THEN
- arg_msg = '修改收支明细操作失败,关键字ID重复'
- ELSEIF Pos(Lower(sqlca.SQLErrText),'ix_u_iteminput_1') > 0 THEN
- arg_msg = '修改收支明细操作失败,发生日期重复'
- ELSEIF Pos(Lower(sqlca.SQLErrText),'ix_u_iteminput') > 0 THEN
- arg_msg = '修改收支明细操作失败,收支项目ID重复'
- ELSE
- arg_msg = "因网络或其它原因修改收支明细操作失败"+"~n"+sqlca.SQLErrText
- END IF
-
- 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_mx, 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 arg_s_mx.dateint = 0 THEN
- arg_s_mx.dateint = f_sys_scidentity(0,"u_iteminput","dateint",arg_msg,False,sqlca)
- IF arg_s_mx.dateint <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- IF arg_s_mx.outdate < DateTime(Date('2000-01-01'),Time(0)) THEN
- arg_msg = '错误的发生时间'
- rslt = 0
- GOTO ext
- END IF
- IF arg_s_mx.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_mx.itemid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '找不到当前的收支项目!'
- rslt = 0
- GOTO ext
- END IF
- IF ib_CreateRapmoneyid THEN
- //检查账号
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_accounts
- Where u_accounts.accountsid = :arg_s_mx.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
-
- //检查币种
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM cw_currency
- Where moneyid = :arg_s_mx.moneyid;
- 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 lde_msttakeamt,lde_takeamt
- IF ls_itemflag = 1 THEN
- lde_msttakeamt = arg_s_mx.outamt
- lde_takeamt = 0
- ELSE
- lde_msttakeamt = 0
- lde_takeamt = arg_s_mx.outamt
- END IF
-
- uo_money.commit_transaction = sqlca
- IF uo_money.add_raprec(arg_s_mx.scid,arg_s_mx.accountsid,arg_s_mx.outdate,publ_operator,arg_s_mx.dscrp,lde_msttakeamt,&
- lde_takeamt,arg_s_mx.billcode,1,0,0,publ_operator,arg_msg,False,arg_s_mx.banktypeid,arg_s_mx.relcode) = 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
-
- END IF
-
- INSERT INTO u_iteminput
- (itemid,dateint,billcode,outdate,dscrp,outamt,opdate,opemp,
- accountsid,rapmoneyid,buildtype,banktypeid,moneyid,scid,relcode)
- VALUES
- (:arg_s_mx.itemid,:arg_s_mx.dateint,:arg_s_mx.billcode,:arg_s_mx.outdate,:arg_s_mx.dscrp,
- :arg_s_mx.outamt,getdate(),:publ_operator,:arg_s_mx.accountsid,:ref_rapid,:arg_s_mx.buildtype,:arg_s_mx.banktypeid,
- :arg_s_mx.moneyid,:arg_s_mx.scid,:arg_s_mx.relcode);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '增加收支记录失败!'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ref_dateint = arg_s_mx.dateint
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT;
- END IF
- Destroy uo_money
- RETURN rslt
-
-
- end function
- protected function integer add_iteminput (long arg_scid, long arg_itemid, long arg_dateint, datetime arg_outdate, string arg_dscrp, decimal arg_outamt, long arg_accountsid, ref string arg_msg, boolean arg_ifcommit, long arg_banktypeid, integer arg_buildtype, string arg_billcode, long arg_moneyid, string arg_relcode);s_iteminput s_input
-
- s_input.itemid = arg_itemid
- s_input.dateint = arg_dateint
- s_input.outdate = arg_outdate
- s_input.dscrp = arg_dscrp
- s_input.outamt = arg_outamt
- s_input.accountsid = arg_accountsid
- s_input.banktypeid = arg_banktypeid
- s_input.billcode = arg_billcode
- s_input.relcode = arg_relcode
- s_input.buildtype = arg_buildtype
- s_input.opemp = publ_operator
- s_input.relrep = ''
- s_input.scid = arg_scid
- s_input.moneyid = arg_moneyid
- return add_iteminput(s_input,arg_msg,arg_ifcommit)
- //Int rslt = 1,ls_itemflag
- //Long cnt = 0
- //long ref_rapid
- //uo_rapmoney uo_money
- //uo_money = CREATE uo_rapmoney
- //
- //IF arg_dateint = 0 THEN
- // arg_dateint = f_sys_scidentity(0,"u_iteminput","dateint",arg_msg,false,sqlca)
- // IF arg_dateint <= 0 THEN
- // rslt = 0
- // GOTO ext
- // END IF
- //END IF
- //
- //IF arg_outdate < DateTime(Date('2000-01-01'),Time(0)) THEN
- // arg_msg = '错误的发生时间'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //IF arg_outamt = 0 THEN
- // arg_msg = '请输入金额'
- // rslt = 0
- // GOTO ext
- //END IF
- //
- ////检查项目;
- //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
- //
- ////检查账号
- //cnt = 0
- //SELECT count(*)
- // INTO :cnt
- // FROM u_accounts
- // Where u_accounts.accountsid = :arg_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
- //
- ////检查币种
- //cnt = 0
- //SELECT count(*)
- // INTO :cnt
- // FROM cw_currency
- // Where moneyid = :arg_moneyid;
- //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 arg_msttakeamt,arg_takeamt
- //IF ls_itemflag = 1 THEN
- // arg_msttakeamt = arg_outamt
- // arg_takeamt = 0
- //ELSE
- // arg_msttakeamt = 0
- // arg_takeamt = arg_outamt
- //END IF
- //
- //uo_money.commit_transaction = sqlca
- //IF uo_money.add_raprec(arg_scid,arg_accountsid,arg_outdate,publ_operator,arg_dscrp,arg_msttakeamt,&
- // arg_takeamt,arg_billcode,1,0,0,publ_operator,arg_msg,FALSE,arg_banktypeid,arg_relcode) = 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,outdate,dscrp,outamt,opdate,opemp,accountsid,rapmoneyid,buildtype,banktypeid,moneyid,scid,relcode)
- // VALUES
- // (:arg_itemid,:arg_dateint,:arg_billcode,:arg_outdate,:arg_dscrp,:arg_outamt,getdate(),:publ_operator,:arg_accountsid,:ref_rapid,:arg_buildtype,:arg_banktypeid,:arg_moneyid,:arg_scid,:arg_relcode);
- //
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '增加收支记录失败!'+sqlca.sqlerrtext
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //ref_dateint = arg_dateint
- //
- //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
|