123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844 |
- $PBExportHeader$uo_init.sru
- $PBExportComments$初始化数据
- forward
- global type uo_init from nonvisualobject
- end type
- end forward
- global type uo_init from nonvisualobject
- end type
- global uo_init uo_init
- forward prototypes
- public function integer check_subid (string arg_subid, ref string arg_msg)
- public function integer initdeptbala (string arg_subid, long arg_deptid, decimal arg_rawdebit, decimal arg_rawcredit, decimal arg_rawbalance, decimal arg_debit, decimal arg_credit, decimal arg_balance, ref string arg_msg, boolean arg_ifcommit)
- public function integer inititembala (string arg_subid, long arg_itemid, decimal arg_rawdebit, decimal arg_rawcredit, decimal arg_rawbalance, decimal arg_debit, decimal arg_credit, decimal arg_balance, ref string arg_msg, boolean arg_ifcommit)
- public function integer initbalance (string arg_subid, decimal arg_ydebit, decimal arg_ycredit, decimal arg_mdebit, decimal arg_mcredit, decimal arg_debit, decimal arg_credit, decimal arg_balance, decimal arg_plhavedone, decimal arg_yrawdebit, decimal arg_yrawcredit, decimal arg_mrawdebit, decimal arg_mrawcredit, decimal arg_rawdebit, decimal arg_rawcredit, decimal arg_rawbalance, ref string arg_msg, boolean arg_ifcommit)
- public function integer initbalance_qty (string arg_subid, decimal arg_damount, decimal arg_camount, decimal arg_bamount, ref string arg_msg, boolean arg_ifcommit)
- public function integer sub_add_del_update (integer arg_add_or_del, string arg_subid, string arg_p_subid, ref string arg_msg, boolean arg_ifcommit)
- public function integer uof_clear_initbalance (integer arg_if_raw, ref string arg_msg, long arg_moneyid)
- public function integer p_update_subid_p (ref string arg_msg)
- public function integer p_update_subid_p_qty (ref string arg_msg)
- end prototypes
- public function integer check_subid (string arg_subid, ref string arg_msg);//检查科目
- int rslt=1,cnt
- select count(subid) into :cnt from cw_subject where accsetid=:sys_accsetid and subid=:arg_subid;
- 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
- ext:
- return rslt
- end function
- public function integer initdeptbala (string arg_subid, long arg_deptid, decimal arg_rawdebit, decimal arg_rawcredit, decimal arg_rawbalance, decimal arg_debit, decimal arg_credit, decimal arg_balance, ref string arg_msg, boolean arg_ifcommit);//部门初始化
- //initdeptbala(arg_subid,arg_deptid,arg_rawdebit,arg_rawcredit,arg_rawbalance,
- // arg_debit,arg_credit,arg_balance,arg_msg,arg_ifcommit)
- int rslt=1
- if isnull(arg_rawdebit) then arg_rawdebit=0
- if isnull(arg_rawcredit) then arg_rawcredit=0
- if isnull(arg_rawbalance) then arg_rawbalance=0
- if isnull(arg_debit) then arg_debit=0
- if isnull(arg_credit) then arg_credit=0
- if isnull(arg_balance) then arg_balance=0
- if check_subid(arg_subid,arg_msg)=0 then
- rslt=0
- goto ext
- end if
- update cw_initdeptbala set
- rawdebit=:arg_rawdebit,
- rawcredit=:arg_rawcredit,
- rawbalance=:arg_rawbalance,
- debit=:arg_debit,
- credit=:arg_credit,
- balance=:arg_balance
- where accsetid=:sys_accsetid
- and subid=:arg_subid
- and deptid=:arg_deptid;
-
- if sqlca.sqlcode=0 then
- if sqlca.sqlnrows=0 then
- insert into cw_initdeptbala(accsetid,subid,deptid,rawdebit,rawcredit,rawbalance,debit,credit,balance)
- values(:sys_accsetid,:arg_subid,:arg_deptid,:arg_rawdebit,:arg_rawcredit,:arg_rawbalance,:arg_debit,:arg_credit,:arg_balance);
- if sqlca.sqlcode<>0 then
- arg_msg='部门初始化失败,插入'+sqlca.sqlerrtext
- rslt=0
- goto ext
- end if
- end if
- else
- arg_msg='更新部门初始化数据失败'+sqlca.sqlerrtext
- rslt=0
- 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 inititembala (string arg_subid, long arg_itemid, decimal arg_rawdebit, decimal arg_rawcredit, decimal arg_rawbalance, decimal arg_debit, decimal arg_credit, decimal arg_balance, ref string arg_msg, boolean arg_ifcommit);//项目初始化
- //inititembala(arg_subid,arg_itemid,arg_rawdebit,arg_rawcredit,arg_rawbalance,
- // arg_debit,arg_credit,arg_balance,arg_msg,arg_ifcommit)
- int rslt=1
- if isnull(arg_rawdebit) then arg_rawdebit=0
- if isnull(arg_rawcredit) then arg_rawcredit=0
- if isnull(arg_rawbalance) then arg_rawbalance=0
- if isnull(arg_debit) then arg_debit=0
- if isnull(arg_credit) then arg_credit=0
- if isnull(arg_balance) then arg_balance=0
- if check_subid(arg_subid,arg_msg)=0 then
- rslt=0
- goto ext
- end if
- update cw_inititembala set
- rawdebit=:arg_rawdebit,
- rawcredit=:arg_rawcredit,
- rawbalance=:arg_rawbalance,
- debit=:arg_debit,
- credit=:arg_credit,
- balance=:arg_balance
- where accsetid=:sys_accsetid
- and subid=:arg_subid
- and itemid=:arg_itemid;
-
- if sqlca.sqlcode=0 then
- if sqlca.sqlnrows=0 then
- insert into cw_inititembala(accsetid,subid,itemid,rawdebit,rawcredit,rawbalance,debit,credit,balance)
- values(:sys_accsetid,:arg_subid,:arg_itemid,:arg_rawdebit,:arg_rawcredit,:arg_rawbalance,:arg_debit,:arg_credit,:arg_balance);
- if sqlca.sqlcode<>0 then
- arg_msg='项目初始化失败,插入'+sqlca.sqlerrtext
- rslt=0
- goto ext
- end if
- end if
- else
- arg_msg='更新项目初始化数据失败'+sqlca.sqlerrtext
- rslt=0
- 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 initbalance (string arg_subid, decimal arg_ydebit, decimal arg_ycredit, decimal arg_mdebit, decimal arg_mcredit, decimal arg_debit, decimal arg_credit, decimal arg_balance, decimal arg_plhavedone, decimal arg_yrawdebit, decimal arg_yrawcredit, decimal arg_mrawdebit, decimal arg_mrawcredit, decimal arg_rawdebit, decimal arg_rawcredit, decimal arg_rawbalance, ref string arg_msg, boolean arg_ifcommit);//====================================================================
- // Function: uo_init::initbalance()
- //--------------------------------------------------------------------
- // Description: 初始期初数
- //--------------------------------------------------------------------
- // Arguments:
- // string arg_subid
- // decimal arg_ydebit
- // decimal arg_ycredit
- // decimal arg_mdebit
- // decimal arg_mcredit
- // decimal arg_debit
- // decimal arg_credit
- // decimal arg_balance
- // decimal arg_plhavedone
- // decimal arg_yrawdebit
- // decimal arg_yrawcredit
- // decimal arg_mrawdebit
- // decimal arg_mrawcredit
- // decimal arg_rawdebit
- // decimal arg_rawcredit
- // decimal arg_rawbalance
- // string arg_msg
- // boolean arg_ifcommit
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2004.11.16
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- Int rslt = 1
- String rst_psubid
- uo_subject uo_sub
- uo_sub = CREATE uo_subject
- IF check_subid(arg_subid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- UPDATE cw_initbalance SET
- ydebit = :arg_ydebit,
- ycredit = :arg_ycredit,
- mdebit = :arg_mdebit,
- mcredit = :arg_mcredit,
- debit = :arg_debit,
- credit = :arg_credit,
- balance = :arg_balance,
- plhavedone = :arg_plhavedone,
-
- yrawdebit = :arg_yrawdebit,
- yrawcredit = :arg_yrawcredit,
- mrawdebit = :arg_mrawdebit,
- mrawcredit = :arg_mrawcredit,
- rawdebit = :arg_rawdebit,
- rawcredit = :arg_rawcredit,
- rawbalance = :arg_rawbalance
- WHERE accsetid = :sys_accsetid
- AND subid = :arg_subid;
-
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO cw_initbalance(accsetid,subid,
- ydebit,ycredit,mdebit,mcredit,debit,credit,balance,plhavedone,
- yrawdebit,yrawcredit,mrawdebit,mrawcredit,rawdebit,rawcredit,rawbalance)
- VALUES(:sys_accsetid,:arg_subid,
- :arg_ydebit,:arg_ycredit,:arg_mdebit,:arg_mcredit,:arg_debit,:arg_credit,:arg_balance,:arg_plhavedone,
- :arg_yrawdebit,:arg_yrawcredit,:arg_mrawdebit,:arg_mrawcredit,:arg_rawdebit,:arg_rawcredit,:arg_rawbalance);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化科目:'+arg_subid+'期初数失败,插入'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- arg_msg = '更新会计科目:'+arg_subid+'期初数据失败'+sqlca.SQLErrText
- rslt = 0
- 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 initbalance_qty (string arg_subid, decimal arg_damount, decimal arg_camount, decimal arg_bamount, ref string arg_msg, boolean arg_ifcommit);//初始期初数[数量]
- //initbalance_qty(arg_subid,arg_damount,arg_camount,arg_bamount,ref arg_msg,arg_ifcommit)
- int rslt=1
- if isnull(arg_damount) then arg_damount=0
- if isnull(arg_camount) then arg_camount=0
- if isnull(arg_bamount) then arg_bamount=0
- if check_subid(arg_subid,arg_msg)=0 then
- rslt=0
- goto ext
- end if
- update cw_initbalance set
- damount=:arg_damount,
- camount=:arg_camount,
- bamount=:arg_bamount
- where accsetid=:sys_accsetid
- and subid=:arg_subid;
-
-
- if sqlca.sqlcode=0 then
- if sqlca.sqlnrows=0 then
- insert into cw_initbalance(accsetid,subid,damount,camount,bamount)
- values(:sys_accsetid,:arg_subid,:arg_damount,:arg_camount,:arg_bamount);
- if sqlca.sqlcode<>0 then
- arg_msg='初始化期初数失败,插入'+sqlca.sqlerrtext
- rslt=0
- goto ext
- end if
- end if
- else
- arg_msg='更新期初数据失败'+sqlca.sqlerrtext
- rslt=0
- 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 sub_add_del_update (integer arg_add_or_del, string arg_subid, string arg_p_subid, ref string arg_msg, boolean arg_ifcommit);//增加_删除第一子科目
- //add_del_update(arg_add_or_del,arg_subid,ref arg_msg,if_commit)
- //arg_add_or_del 0:del,1:add
- //1.更新凭证
- //2.更新项目初始化
- //3.更新部门初始化
- //4.更新帐务初始化
- //5.更新结余
- long rslt=1
- if arg_add_or_del=1 then
- //1.更新凭证
- update cw_credencemx set subid=:arg_subid
- where cw_credencemx.accsetid=:sys_accsetid
- and cw_credencemx.subid=:arg_p_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'新建第一子科目:更新父科目为子科目失败[更新凭证]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
-
- //2.更新项目初始化
- insert into cw_inititembala(accsetid,subid,itemid,rawdebit,rawcredit,rawbalance,debit,credit,balance)
- select :sys_accsetid,:arg_subid,itemid,rawdebit,rawcredit,rawbalance,debit,credit,balance
- from cw_inititembala
- where cw_inititembala.accsetid=:sys_accsetid
- and cw_inititembala.subid=:arg_p_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'新建第一子科目失败[项目初始化]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
-
- //3.更新部门初始化
- insert into cw_initdeptbala(accsetid,subid,deptid,rawdebit,rawcredit,rawbalance,debit,credit,balance)
- select :sys_accsetid,:arg_subid,deptid,rawdebit,rawcredit,rawbalance,debit,credit,balance
- from cw_initdeptbala
- where cw_initdeptbala.accsetid=:sys_accsetid
- and cw_initdeptbala.subid=:arg_p_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'新建第一子科目失败[部门初始化]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
-
- //4.更新帐务初始化
- insert into cw_initbalance(accsetid,subid,moneyid,detailflag,dcflag,hsqty,
- rawdebit,rawcredit,rawbalance,yrawdebit,yrawcredit,mrawdebit,mrawcredit,damount,
- debit,camount,credit,bamount,balance,ydebit,ycredit,mdebit,mcredit,plhavedone)
- select :sys_accsetid,:arg_subid,moneyid,detailflag,dcflag,hsqty,
- rawdebit,rawcredit,rawbalance,yrawdebit,yrawcredit,mrawdebit,mrawcredit,damount,
- debit,camount,credit,bamount,balance,ydebit,ycredit,mdebit,mcredit,plhavedone
- from cw_initbalance
- where cw_initbalance.accsetid=:sys_accsetid
- and cw_initbalance.subid=:arg_p_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'新建第一子科目失败[帐务初始化]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
-
- //5.更新结余
- insert into cw_balance(accsetid,subid,yearmon,ybrawdebit,
- ybrawcredit,brawdebit,brawcredit,rawdebit,rawcredit,erawdebit,erawcredit,yrawdebit,yrawcredit,
- ybcredit,bdebit,bcredit,debit,credit,edebit,ecredit,ydebit,ycredit,
- ybamt,ydamt,ycamt,bamt,damt,camt)
- select :sys_accsetid,:arg_subid,yearmon,ybrawdebit,
- ybrawcredit,brawdebit,brawcredit,rawdebit,rawcredit,erawdebit,erawcredit,yrawdebit,yrawcredit,
- ybcredit,bdebit,bcredit,debit,credit,edebit,ecredit,ydebit,ycredit,
- ybamt,ydamt,ycamt,bamt,damt,camt
- from cw_balance
- where cw_balance.accsetid=:sys_accsetid
- and cw_balance.subid=:arg_p_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'新建第一子科目失败[更新结余]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
- else
- //1.更新凭证
- update cw_credencemx set subid=:arg_p_subid
- where cw_credencemx.accsetid=:sys_accsetid
- and cw_credencemx.subid=:arg_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'删除第一子科目:更新子科目为父科目失败[更新凭证]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
- //2.更新项目初始化
- delete cw_inititembala
- where cw_inititembala.accsetid=:sys_accsetid
- and cw_inititembala.subid=:arg_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'删除第一子科目失败[项目初始化]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
- //3.更新部门初始化
- delete cw_initdeptbala
- where cw_initdeptbala.accsetid=:sys_accsetid
- and cw_initdeptbala.subid=:arg_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'删除第一子科目失败[部门初始化]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
- //4.更新帐务初始化
- delete cw_initbalance
- where cw_initbalance.accsetid=:sys_accsetid
- and cw_initbalance.subid=:arg_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'删除第一子科目失败[帐务初始化]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
- //5.更新结余
- delete cw_balance
- where cw_balance.accsetid=:sys_accsetid
- and cw_balance.subid=:arg_subid;
- if sqlca.sqlcode=-1 then
- messagebox(publ_operator,'删除第一子科目失败[更新结余]'+sqlca.sqlerrtext)
- rslt=0
- goto ext
- end if
- 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 uof_clear_initbalance (integer arg_if_raw, ref string arg_msg, long arg_moneyid);//====================================================================
- // Function: uo_init::uof_clear_initbalance()
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // integer arg_if_raw
- // string arg_msg
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2004.11.16
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- Int rslt = 1
- UPDATE cw_initbalance SET
- cw_initbalance.ydebit = 0 ,
- cw_initbalance.ycredit = 0 ,
- cw_initbalance.mdebit = 0 ,
- cw_initbalance.mcredit = 0 ,
- cw_initbalance.debit = 0 ,
- cw_initbalance.credit = 0 ,
- cw_initbalance.balance = 0 ,
- cw_initbalance.plhavedone = 0 ,
-
- cw_initbalance.yrawdebit = 0 ,
- cw_initbalance.yrawcredit = 0 ,
- cw_initbalance.mrawdebit = 0 ,
- cw_initbalance.mrawcredit = 0 ,
- cw_initbalance.rawdebit = 0 ,
- cw_initbalance.rawcredit = 0 ,
- cw_initbalance.rawbalance = 0
- FROM cw_initbalance,cw_subject
- WHERE cw_initbalance.accsetid = :sys_accsetid
- AND cw_initbalance.accsetid = cw_subject.accsetid
- AND cw_initbalance.subid = cw_subject.subid
- AND cw_subject.hswb = :arg_if_raw
- AND cw_subject.detailflag = 1
- And ( cw_subject.moneyid = :arg_moneyid OR :arg_moneyid = 0 ) ;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化金额清零失败 >>'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- UPDATE cw_initbalance SET
- cw_initbalance.ydebit = 0 ,
- cw_initbalance.ycredit = 0 ,
- cw_initbalance.mdebit = 0 ,
- cw_initbalance.mcredit = 0 ,
- cw_initbalance.debit = 0 ,
- cw_initbalance.credit = 0 ,
- cw_initbalance.balance = 0 ,
- cw_initbalance.plhavedone = 0 ,
-
- cw_initbalance.yrawdebit = 0 ,
- cw_initbalance.yrawcredit = 0 ,
- cw_initbalance.mrawdebit = 0 ,
- cw_initbalance.mrawcredit = 0 ,
- cw_initbalance.rawdebit = 0 ,
- cw_initbalance.rawcredit = 0 ,
- cw_initbalance.rawbalance = 0
- FROM cw_initbalance,cw_subject
- WHERE cw_initbalance.accsetid = :sys_accsetid
- AND cw_initbalance.accsetid = cw_subject.accsetid
- AND cw_initbalance.subid = cw_subject.subid
- AND cw_subject.detailflag = 0;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化金额清零失败(上级科目) >>'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- END IF
- RETURN rslt
- end function
- public function integer p_update_subid_p (ref string arg_msg);//==============================================================================
- // 函数: uo_init::p_update_subid_p()
- //------------------------------------------------------------------------------
- // 描述:
- //------------------------------------------------------------------------------
- // 参数:
- // string arg_subid
- // string arg_msg
- //------------------------------------------------------------------------------
- // 返回值: integer
- //------------------------------------------------------------------------------
- // 作者: Trueway Lee 日期: 2005.11.21
- //------------------------------------------------------------------------------
- // 修改历史:
- //
- //==============================================================================
- Int rslt = 1
- Long ll_i,k
- String ls_p_subid
- String ls_subid,ls_arr_subid[]
- uo_subject uo_sub
- uo_sub = CREATE uo_subject
- Decimal ld_ydebit[],ld_ycredit[],ld_mdebit[],ld_mcredit[]
- Decimal ld_debit[],ld_credit[],ld_balance[],ld_plhavedone[]
- Decimal ld_yrawdebit[],ld_yrawcredit[],ld_mrawdebit[],ld_mrawcredit[]
- Decimal ld_rawdebit[],ld_rawcredit[],ld_rawbalance[]
- Decimal ls_ydebit,ls_ycredit,ls_mdebit,ls_mcredit
- Decimal ls_debit,ls_credit,ls_balance,ls_plhavedone
- Decimal ls_yrawdebit,ls_yrawcredit,ls_mrawdebit,ls_mrawcredit
- Decimal ls_rawdebit,ls_rawcredit,ls_rawbalance
- DECLARE cur_pf CURSOR FOR
- SELECT cw_subject.subid
- FROM cw_subject,cw_initbalance
- WHERE cw_subject.accsetid = :sys_accsetid
- and cw_subject.accsetid = cw_initbalance.accsetid
- and cw_subject.subid = cw_initbalance.subid
- AND cw_subject.detailflag = 1;
-
- OPEN cur_pf;
- FETCH cur_pf INTO :ls_subid;
- DO WHILE sqlca.SQLCode = 0
- k++
- ls_arr_subid[k] = ls_subid
- FETCH cur_pf INTO :ls_subid;
- LOOP
- CLOSE cur_pf;
- FOR ll_i = 1 TO k
- SELECT
- ydebit ,
- ycredit ,
- mdebit ,
- mcredit,
- debit ,
- credit,
- balance ,
- plhavedone,
- yrawdebit ,
- yrawcredit ,
- mrawdebit ,
- mrawcredit,
- rawdebit,
- rawcredit ,
- rawbalance
- INTO
- :ls_ydebit,
- :ls_ycredit,
- :ls_mdebit,
- :ls_mcredit,
- :ls_debit,
- :ls_credit,
- :ls_balance,
- :ls_plhavedone,
- :ls_yrawdebit,
- :ls_yrawcredit,
- :ls_mrawdebit,
- :ls_mrawcredit,
- :ls_rawdebit,
- :ls_rawcredit,
- :ls_rawbalance
- FROM cw_initbalance
- Where accsetid = :sys_accsetid
- AND subid = :ls_arr_subid[ll_i];
-
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '查询科目:'+ls_arr_subid[ll_i]+'初始化金额失败'
- rslt = 0
- GOTO ext
- ELSEIF sqlca.SQLCode = 100 THEN
- ld_ydebit[ll_i] = 0
- ld_ycredit[ll_i] = 0
- ld_mdebit[ll_i] = 0
- ld_mcredit[ll_i] = 0
- ld_debit[ll_i] = 0
- ld_credit[ll_i] = 0
- ld_balance[ll_i] = 0
- ld_plhavedone[ll_i] = 0
- ld_yrawdebit[ll_i] = 0
- ld_yrawcredit[ll_i] = 0
- ld_mrawdebit[ll_i] = 0
- ld_mrawcredit[ll_i] = 0
- ld_rawdebit[ll_i] = 0
- ld_rawcredit[ll_i] = 0
- ld_rawbalance[ll_i] = 0
- ELSEIF sqlca.SQLCode = 0 THEN
- ld_ydebit[ll_i] = ls_ydebit
- ld_ycredit[ll_i] = ls_ycredit
- ld_mdebit[ll_i] = ls_mdebit
- ld_mcredit[ll_i] = ls_mcredit
- ld_debit[ll_i] = ls_debit
- ld_credit[ll_i] = ls_credit
- ld_balance[ll_i] = ls_balance
- ld_plhavedone[ll_i] = ls_plhavedone
- ld_yrawdebit[ll_i] = ls_yrawdebit
- ld_yrawcredit[ll_i] = ls_yrawcredit
- ld_mrawdebit[ll_i] = ls_mrawdebit
- ld_mrawcredit[ll_i] = ls_mrawcredit
- ld_rawdebit[ll_i] = ls_rawdebit
- ld_rawcredit[ll_i] = ls_rawcredit
- ld_rawbalance[ll_i] = ls_rawbalance
- END IF
- NEXT
- FOR ll_i = 1 TO k
- ls_p_subid = uo_sub.p_parent_subid(ls_arr_subid[ll_i])
-
- DO WHILE ls_p_subid <> ''
- UPDATE cw_initbalance SET
- ydebit = ydebit + :ld_ydebit[ll_i] ,
- ycredit = ycredit + :ld_ycredit[ll_i] ,
- mdebit = mdebit + :ld_mdebit[ll_i] ,
- mcredit = mcredit + :ld_mcredit[ll_i],
- debit = debit + :ld_debit[ll_i],
- credit = credit + :ld_credit[ll_i],
- balance = balance + :ld_balance[ll_i] ,
- plhavedone = plhavedone + :ld_plhavedone[ll_i],
-
- yrawdebit = yrawdebit + :ld_yrawdebit[ll_i],
- yrawcredit = yrawcredit + :ld_yrawcredit[ll_i] ,
- mrawdebit = mrawdebit + :ld_mrawdebit[ll_i],
- mrawcredit = mrawcredit + :ld_mrawcredit[ll_i],
- rawdebit = rawdebit + :ld_rawdebit[ll_i] ,
- rawcredit = rawcredit + :ld_rawcredit[ll_i] ,
- rawbalance = rawbalance + :ld_rawbalance[ll_i]
- WHERE accsetid = :sys_accsetid
- AND subid = :ls_p_subid;
-
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO cw_initbalance(accsetid,subid,
- ydebit,ycredit,mdebit,mcredit,debit,credit,balance,plhavedone,
- yrawdebit,yrawcredit,mrawdebit,mrawcredit,rawdebit,rawcredit,rawbalance)
- VALUES(:sys_accsetid,:ls_p_subid,
- :ld_ydebit[ll_i],:ld_ycredit[ll_i],:ld_mdebit[ll_i],:ld_mcredit[ll_i],
- :ld_debit[ll_i],:ld_credit[ll_i],:ld_balance[ll_i],:ld_plhavedone[ll_i],
- :ld_yrawdebit[ll_i],:ld_yrawcredit[ll_i],:ld_mrawdebit[ll_i],:ld_mrawcredit[ll_i],
- :ld_rawdebit[ll_i],:ld_rawcredit[ll_i],:ld_rawbalance[ll_i]);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化期初数[上级科目]失败,插入'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- arg_msg = '更新期初数据[上级科目]失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- ls_p_subid = uo_sub.p_parent_subid(ls_p_subid)
- LOOP
- NEXT
- ext :
- IF rslt = 0 THEN
- ROLLBACK;
- ELSE
- COMMIT;
- END IF
- DESTROY uo_sub
- RETURN rslt
- end function
- public function integer p_update_subid_p_qty (ref string arg_msg);//==============================================================================
- // 函数: uo_init::p_update_subid_p()
- //------------------------------------------------------------------------------
- // 描述:
- //------------------------------------------------------------------------------
- // 参数:
- // string arg_subid
- // string arg_msg
- //------------------------------------------------------------------------------
- // 返回值: integer
- //------------------------------------------------------------------------------
- // 作者: Trueway Lee 日期: 2005.11.21
- //------------------------------------------------------------------------------
- // 修改历史:
- //
- //==============================================================================
- Int rslt = 1
- Long ll_i,k
- String ls_p_subid
- String ls_subid,ls_arr_subid[]
- uo_subject uo_sub
- uo_sub = CREATE uo_subject
- decimal ld_DAmount[],ld_CAmount[],ld_BAmount[]
- decimal ls_DAmount,ls_CAmount,ls_BAmount
- DECLARE cur_pf CURSOR FOR
- SELECT cw_subject.subid
- FROM cw_subject,cw_initbalance
- WHERE cw_subject.accsetid = :sys_accsetid
- and cw_subject.accsetid = cw_initbalance.accsetid
- and cw_subject.subid = cw_initbalance.subid
- AND cw_subject.detailflag = 1;
-
- OPEN cur_pf;
- FETCH cur_pf INTO :ls_subid;
- DO WHILE sqlca.SQLCode = 0
- k++
- ls_arr_subid[k] = ls_subid
- FETCH cur_pf INTO :ls_subid;
- LOOP
- CLOSE cur_pf;
- FOR ll_i = 1 TO k
- SELECT
- DAmount,
- CAmount,
- BAmount
- INTO
- :ls_DAmount,
- :ls_CAmount,
- :ls_BAmount
- FROM cw_initbalance
- Where accsetid = :sys_accsetid
- AND subid = :ls_arr_subid[ll_i];
-
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '查询科目:'+ls_arr_subid[ll_i]+'初始化金额失败'
- rslt = 0
- GOTO ext
- ELSEIF sqlca.SQLCode = 100 THEN
- ld_DAmount[ll_i] = 0
- ld_CAmount[ll_i] = 0
- ld_BAmount[ll_i] = 0
- ELSEIF sqlca.SQLCode = 0 THEN
- ld_DAmount[ll_i] = ls_DAmount
- ld_CAmount[ll_i] = ls_CAmount
- ld_BAmount[ll_i] = ls_BAmount
- END IF
- NEXT
- FOR ll_i = 1 TO k
- ls_p_subid = uo_sub.p_parent_subid(ls_arr_subid[ll_i])
-
- DO WHILE ls_p_subid <> ''
- UPDATE cw_initbalance SET
- DAmount = DAmount + :ld_DAmount[ll_i],
- CAmount = CAmount + :ld_CAmount[ll_i],
- BAmount = BAmount + :ld_BAmount[ll_i]
- WHERE accsetid = :sys_accsetid
- AND subid = :ls_p_subid;
-
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO cw_initbalance(accsetid,subid,
- DAmount,CAmount,BAmount)
- VALUES(:sys_accsetid,:ls_p_subid,
- :ld_DAmount[ll_i],:ld_CAmount[ll_i],:ld_BAmount[ll_i]);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化期初数[上级科目]失败,插入'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- arg_msg = '更新期初数据[上级科目]失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- ls_p_subid = uo_sub.p_parent_subid(ls_p_subid)
- LOOP
- NEXT
- ext :
- IF rslt = 0 THEN
- ROLLBACK;
- ELSE
- COMMIT;
- END IF
- DESTROY uo_sub
- RETURN rslt
- end function
- on uo_init.create
- TriggerEvent( this, "constructor" )
- end on
- on uo_init.destroy
- TriggerEvent( this, "destructor" )
- end on
|