123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- $PBExportHeader$f_init_astbalance.srf
- $PBExportComments$初始化固定资产累计折旧
- global type f_init_astbalance from function_object
- end type
- forward prototypes
- global function integer f_init_astbalance (integer arg_inittype, long arg_yearmon, long arg_nextyearmon, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- global function integer f_init_astbalance (integer arg_inittype, long arg_yearmon, long arg_nextyearmon, ref string arg_msg, boolean arg_ifcommit);//初始化固定资产累计折旧
- //f_cmp_astbalance(arg_inittype,arg_yearmon,arg_nextyearmon,arg_msg,arg_ifcommit)
- //arg_inittype 1:初始化,0:反初始化
- //
- Int rslt = 1
- DateTime firstdate
- IF arg_inittype = 1 THEN
- IF arg_yearmon = arg_nextyearmon THEN //启用帐套
- firstdate = f_rst_mon_1st(1,arg_yearmon)
-
- INSERT INTO cw_astbalance(accsetid,assetcardid,yearmon,totalwl,currwl,usedvalue,
- deprrate,deprvalue,bastdebit,yastdebit,yastcredit,astdebit,astcredit,bdprcredit,
- ydprdebit,ydprcredit,dprdebit,dprcredit)
- SELECT :sys_accsetid,assetcardid,:arg_yearmon,usedall + 1,0,usedvalue,
- 0,0,rawvalue,0,0,0,0,usedvalue,
- 0,0,0,0 FROM cw_assetcard
- WHERE ( cw_assetcard.clearflag = 0 )
- AND ( cw_assetcard.startdate < :firstdate )
- AND ( cw_assetcard.accsetid = :sys_accsetid )
- And ( cw_assetcard.Initflag = 1 ) ;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化期初固定资产累计折旧失败 ~n'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE //初始化下月
- IF Right(String(arg_yearmon),2) = '12' THEN
- INSERT INTO cw_astbalance
- (accsetid,
- assetcardid,
- yearmon,
- totalwl,
- currwl,
- usedvalue,
- deprrate,
- deprvalue,
- bastdebit,
- yastdebit,
- yastcredit,
- astdebit,
- astcredit,
- bdprcredit,
- ydprdebit,
- ydprcredit,
- dprdebit,
- dprcredit)
- SELECT
- :sys_accsetid,
- cw_astbalance.assetcardid,
- :arg_nextyearmon,
- cw_astbalance.totalwl + 1,
- 0,
- cw_astbalance.usedvalue + cw_astbalance.deprvalue,
- 0,
- 0,
- case cw_assetcard.clearflag when 0 then cw_assetcard.rawvalue
- else cw_astbalance.bastdebit + cw_astbalance.astdebit - cw_astbalance.astcredit end,
- 0,
- 0,
- 0,
- 0,
- cw_astbalance.bdprcredit - cw_astbalance.dprdebit + cw_astbalance.dprcredit,
- 0,
- 0,
- 0,
- 0
- FROM cw_astbalance,cw_assetcard
- WHERE ( cw_astbalance.accsetid = cw_assetcard.accsetid )
- and ( cw_astbalance.assetcardid = cw_assetcard.assetcardid )
- and ( cw_astbalance.yearmon = :arg_yearmon )
- And ( cw_astbalance.accsetid = :sys_accsetid );
- ELSE
- INSERT INTO cw_astbalance
- (accsetid,
- assetcardid,
- yearmon,
- totalwl,
- currwl,
- usedvalue,
- deprrate,
- deprvalue,
- bastdebit,
- yastdebit,
- yastcredit,
- astdebit,
- astcredit,
- bdprcredit,
- ydprdebit,
- ydprcredit,
- dprdebit,
- dprcredit)
- SELECT :sys_accsetid,
- cw_astbalance.assetcardid,
- :arg_nextyearmon,
- cw_astbalance.totalwl + 1,
- 0,
- cw_astbalance.usedvalue + cw_astbalance.deprvalue,
- 0,
- 0,
- case cw_assetcard.clearflag when 0 then cw_assetcard.rawvalue
- else cw_astbalance.bastdebit + cw_astbalance.astdebit - cw_astbalance.astcredit end ,
- cw_astbalance.yastdebit,
- cw_astbalance.yastcredit,
- 0,
- 0,
- cw_astbalance.bdprcredit - cw_astbalance.dprdebit + cw_astbalance.dprcredit,
- cw_astbalance.ydprdebit,
- cw_astbalance.ydprcredit,
- 0,
- 0
- FROM cw_astbalance,cw_assetcard
- WHERE ( cw_astbalance.accsetid = cw_assetcard.accsetid )
- and ( cw_astbalance.assetcardid = cw_assetcard.assetcardid )
- and ( cw_astbalance.yearmon = :arg_yearmon )
- And ( cw_astbalance.accsetid = :sys_accsetid );
- END IF
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '初始化下月:'+String(arg_nextyearmon)+'期初固定资产累计折旧失败 ~n'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- DELETE cw_astbalance Where accsetid = :sys_accsetid AND yearmon = :arg_yearmon;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除固定资产本期累计折旧失败'
- 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
|