123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- $PBExportHeader$f_balc_astbalance.srf
- $PBExportComments$固定资产累计折旧登帐
- global type f_balc_astbalance from function_object
- end type
- forward prototypes
- global function integer f_balc_astbalance (integer arg_balctype, long arg_yearmon, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- global function integer f_balc_astbalance (integer arg_balctype, long arg_yearmon, ref string arg_msg, boolean arg_ifcommit);//固定资产累计折旧登帐
- //f_balc_astbalance(arg_balctype,arg_yearmon,arg_msg,arg_ifcommit)
- //arg_balctype 1:登帐,0:反登帐
- Int rslt = 1
- datetime ldt_firstdate,ldt_enddate
- ldt_firstdate = DateTime(f_rst_mon_1st(1,sys_curyearmon))
- ldt_enddate = DateTime(f_rst_mon_1st(3,sys_curyearmon))
- IF arg_balctype = 1 THEN
- UPDATE cw_astbalance
- SET cw_astbalance.ydprcredit = cw_astbalance.ydprcredit + cw_astbalance.deprvalue,
- cw_astbalance.dprcredit = cw_astbalance.deprvalue
- from cw_astbalance,cw_assetcard
- Where cw_astbalance.yearmon = :arg_yearmon
- and cw_astbalance.accsetid = :sys_accsetid
- and cw_astbalance.assetcardid = cw_assetcard.assetcardid
- and cw_astbalance.accsetid = cw_assetcard.accsetid
- and cw_assetcard.clearflag = 0;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '登帐时更新未清理固定资产累计折旧失败,'+sqlca.sqlerrtext
- rslt = 0
- GOTO ext
- END IF
-
-
- //更新清理
- UPDATE cw_astbalance
- SET cw_astbalance.ydprdebit = cw_astbalance.ydprdebit + cw_astbalance.bdprcredit,
- cw_astbalance.dprdebit = cw_astbalance.dprdebit + cw_astbalance.bdprcredit,
- cw_astbalance.yastcredit = cw_astbalance.yastcredit + cw_astbalance.bastdebit,
- cw_astbalance.astcredit = cw_astbalance.astcredit + cw_astbalance.bastdebit
- from cw_astbalance,cw_assetcard,cw_astclear
- Where cw_astbalance.yearmon = :arg_yearmon
- and cw_astbalance.accsetid = :sys_accsetid
- and cw_astbalance.assetcardid = cw_assetcard.assetcardid
- and cw_astbalance.accsetid = cw_assetcard.accsetid
- and cw_astclear.assetcardid = cw_assetcard.assetcardid
- and cw_astclear.accsetid = cw_assetcard.accsetid
- and cw_assetcard.clearflag = 1
- and cw_astclear.cleardate >= :ldt_firstdate
- and cw_astclear.cleardate <= :ldt_enddate;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '登帐时更新本月清理固定资产累计折旧失败,'+sqlca.sqlerrtext
- rslt = 0
- GOTO ext
- END IF
-
- ELSE
- UPDATE cw_astbalance
- SET cw_astbalance.ydprcredit = cw_astbalance.ydprcredit - cw_astbalance.deprvalue,
- cw_astbalance.dprcredit = 0
- from cw_astbalance,cw_assetcard
- Where cw_astbalance.yearmon = :arg_yearmon
- and cw_astbalance.accsetid = :sys_accsetid
- and cw_astbalance.assetcardid = cw_assetcard.assetcardid
- and cw_astbalance.accsetid = cw_assetcard.accsetid
- and cw_assetcard.clearflag = 0;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '反登帐时更新未清理固定资产累计折旧失败,'+sqlca.sqlerrtext
- rslt = 0
- GOTO ext
- END IF
-
- //更新清理
- UPDATE cw_astbalance
- SET cw_astbalance.ydprdebit = cw_astbalance.ydprdebit - cw_astbalance.bdprcredit,
- cw_astbalance.dprdebit = cw_astbalance.dprdebit - cw_astbalance.bdprcredit,
- cw_astbalance.yastcredit = cw_astbalance.yastcredit - cw_astbalance.bastdebit,
- cw_astbalance.astcredit = cw_astbalance.astcredit - cw_astbalance.bastdebit
- from cw_astbalance,cw_assetcard,cw_astclear
- Where cw_astbalance.yearmon = :arg_yearmon
- and cw_astbalance.accsetid = :sys_accsetid
- and cw_astbalance.assetcardid = cw_assetcard.assetcardid
- and cw_astbalance.accsetid = cw_assetcard.accsetid
- and cw_astclear.assetcardid = cw_assetcard.assetcardid
- and cw_astclear.accsetid = cw_assetcard.accsetid
- and cw_assetcard.clearflag = 1
- and cw_astclear.cleardate >= :ldt_firstdate
- and cw_astclear.cleardate <= :ldt_enddate;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '反登帐时更新已清理固定资产累计折旧失败,'+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
|