⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rulesfix.cs

📁 这是一个系统中使用的判断功能尖
💻 CS
📖 第 1 页 / 共 4 页
字号:
using System;
using System.Data;
using HP.DF.DataEntitys.Fix;
using HP.DF.DataAccess.FIX;
using HP.DF.DataEntitys.Bas;
using HP.DF.DataAccess.BAS;
using HP.PublicClassLibrary.Entity;
using HP.PublicClassLibrary;
using HP.MiddleTierClassLibrary;

namespace HP.DF.Rules.Fix
{
	/// <summary>
	/// RulesFix 的摘要说明。
	/// </summary>
	public class RulesFix
	{
		public RulesFix()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
        }

        #region 固定资产减少方法 Lessen

        /// <summary>
        /// 固定资产减少方法
        /// </summary>
        /// <param name="p_Conn">数据连接对象</param>
        /// <param name="p_SourceCard">原资产卡片</param>
        /// <param name="p_DestCard">目的资产卡片</param>
        /// <param name="p_VarBill_Reason">减少原因</param>
        /// <param name="p_OperateUser">操作员对象</param>
        /// <returns></returns>
        public int Lessen(HP.MiddleTierClassLibrary.DBConnect p_Conn, Data_T_FIX_D_AssetsCard p_DestCard,
                               string p_VarBill_Reason, OperateUser p_OperateUser)
        {
            int result = 0;
            DAO_T_FIX_D_JOBQUANTITYExtend daoJobQuan = new DAO_T_FIX_D_JOBQUANTITYExtend();
            DAO_T_FIX_D_ASSETSCARDExtend daoCard = new DAO_T_FIX_D_ASSETSCARDExtend();
            DAO_T_FIX_D_ASSETSDETAILExtend daoAssetsDetail = new DAO_T_FIX_D_ASSETSDETAILExtend();
            DAO_T_FIX_D_ASSETSTOTALExtend daoAssetsTotal = new DAO_T_FIX_D_ASSETSTOTALExtend();
            DAO_T_FIX_D_VARIATIONBILLExtend daoVarBill = new DAO_T_FIX_D_VARIATIONBILLExtend();

            p_Conn.Add(daoJobQuan);
            p_Conn.Add(daoCard);
            p_Conn.Add(daoAssetsDetail);
            p_Conn.Add(daoAssetsTotal);
            p_Conn.Add(daoVarBill);

            string wherePart = "";
            int fixYear = p_OperateUser.AccountantYear;
            int fixPeriod = p_OperateUser.AccountantMonth;

            Data_T_FIX_D_AssetsCard p_SourceCard = daoCard.Retrieve(p_DestCard.T_FIX_D_ASSETSCARD[0].CARD_ID);
            if (p_SourceCard.T_FIX_D_ASSETSCARD.Count == 0)
            {
                throw new Exception("固定资产卡片已不存在!");
            }

            Data_T_FIX_D_AssetsCard.T_FIX_D_ASSETSCARDRow sourceRow = p_SourceCard.T_FIX_D_ASSETSCARD[0];
            Data_T_FIX_D_AssetsCard.T_FIX_D_ASSETSCARDRow destRow = p_DestCard.T_FIX_D_ASSETSCARD[0];
            
            // 修改资产卡片表
            result = result + daoCard.Update(p_DestCard);
            p_DestCard.AcceptChanges();

            #region 修改固定资产明细帐

            wherePart = " AssetsDetail_Card_Rid = '{0}' and AssetsDetail_Year = {1} and AssetsDetail_Period = {2} ";
            wherePart = string.Format(wherePart, destRow.CARD_ID, fixYear, fixPeriod);
            Data_T_FIX_D_AssetsDetail dsAssetsDetail = daoAssetsDetail.CustomSearchExtend(wherePart);
            if (dsAssetsDetail.T_FIX_D_ASSETSDETAIL.Count > 0)
            {
                Data_T_FIX_D_AssetsDetail.T_FIX_D_ASSETSDETAILRow editRow = dsAssetsDetail.T_FIX_D_ASSETSDETAIL[0];
                // 期末资产原值、期末累计折旧
                editRow.ASSETSDETAIL_ENDVALUE = editRow.ASSETSDETAIL_ENDVALUE + sourceRow.CARD_ORIGINALVALUE - destRow.CARD_ORIGINALVALUE;
                editRow.ASSETSDETAIL_ENDDEPRSUM = editRow.ASSETSDETAIL_ENDDEPRSUM + destRow.CARD_DEPRSUM - sourceRow.CARD_DEPRSUM;

                result = result + daoAssetsDetail.Update(dsAssetsDetail);
                dsAssetsDetail.AcceptChanges();
            }
            else
            {
                Data_T_FIX_D_AssetsDetail.T_FIX_D_ASSETSDETAILRow addRow = dsAssetsDetail.T_FIX_D_ASSETSDETAIL.NewT_FIX_D_ASSETSDETAILRow();
                addRow.ASSETSDETAIL_ID = ServiceSystem.GetEntityID(addRow.Table.TableName, p_OperateUser);
                addRow.ASSETSDETAIL_CARD_RID = destRow.CARD_ID;                     // 卡片ID
                addRow.ASSETSDETAIL_ASSETSTYPE_RID = destRow.CARD_ASSETSTYPE_RID;   // 资产类别ID
                addRow.ASSETSDETAIL_YEAR = p_OperateUser.AccountantMonth;           // 会计年份
                addRow.ASSETSDETAIL_PERIOD = p_OperateUser.AccountantYear;          // 会计期间
                addRow.ASSETSDETAIL_IMPORTFLAG = "0";                               // 录入期间标志
                addRow.ASSETSDETAIL_ENDVALUE = sourceRow.CARD_ORIGINALVALUE;        // 期末资产原值
                addRow.ASSETSDETAIL_ENDDEPRSUM = destRow.CARD_DEPRSUM;              // 期末累计折旧
                dsAssetsDetail.T_FIX_D_ASSETSDETAIL.AddT_FIX_D_ASSETSDETAILRow(addRow);

                result = result + daoAssetsDetail.Update(dsAssetsDetail);
                dsAssetsDetail.AcceptChanges();
            }

            #endregion

            #region 修改资产汇总表

            wherePart = " Total_Dept_Rid = '{0}' and Total_AssetsType_RId = '{1}' and Total_Year = {2} and Total_Period = {3} ";
            wherePart = string.Format(wherePart, destRow.CARD_DEPT_RID, destRow.CARD_ASSETSTYPE_RID, fixYear, fixPeriod);
            Data_T_FIX_D_AssetsTotal dsAssetsTotal = daoAssetsTotal.CustomSearchExtend(wherePart);
            if (dsAssetsTotal.T_FIX_D_ASSETSTOTAL.Count > 0)
            {
                Data_T_FIX_D_AssetsTotal.T_FIX_D_ASSETSTOTALRow editRow = dsAssetsTotal.T_FIX_D_ASSETSTOTAL[0];
                editRow.TOTAL_PERIODENDVALUE = editRow.TOTAL_PERIODENDVALUE - destRow.CARD_ORIGINALVALUE + sourceRow.CARD_ORIGINALVALUE;    // 期末资产原值
                editRow.TOTAL_PERIODENDDPERSUM = editRow.TOTAL_PERIODENDDPERSUM - sourceRow.CARD_DEPRSUM + destRow.CARD_DEPRSUM;            // 期末累计折旧
                editRow.TOTAL_PERIODSUB = sourceRow.CARD_ORIGINALVALUE - destRow.CARD_ORIGINALVALUE;                                        // 本期原值减少
                editRow.TOTAL_PERIODADDSUM = Math.Abs(sourceRow.CARD_DEPRSUM - destRow.CARD_DEPRSUM);                                       // 本期累计折旧增加
                
                result = result + daoAssetsTotal.Update(dsAssetsTotal);
                dsAssetsTotal.AcceptChanges();
            }
            else
            {
                Data_T_FIX_D_AssetsTotal.T_FIX_D_ASSETSTOTALRow addRow = dsAssetsTotal.T_FIX_D_ASSETSTOTAL.NewT_FIX_D_ASSETSTOTALRow();
                addRow.TOTAL_ID = ServiceSystem.GetEntityID(addRow.Table.TableName, p_OperateUser);
                addRow.TOTAL_DEPT_RID = destRow.CARD_DEPT_RID;                  // 部门ID
                addRow.TOTAL_ASSETSTYPE_RID = destRow.CARD_ASSETSTYPE_RID;      // 资产类别ID
                addRow.TOTAL_YEAR = p_OperateUser.AccountantYear;               // 会计年份
                addRow.TOTAL_PERIOD = p_OperateUser.AccountantMonth;            // 会计期间
                addRow.TOTAL_PERIODENDVALUE = addRow.TOTAL_PERIODENDVALUE - destRow.CARD_ORIGINALVALUE + sourceRow.CARD_ORIGINALVALUE;      // 期末资产原值
                addRow.TOTAL_PERIODENDDPERSUM = addRow.TOTAL_PERIODENDDPERSUM - sourceRow.CARD_DEPRSUM + destRow.CARD_DEPRSUM;              // 期末累计折旧
                addRow.TOTAL_PERIODSUB = sourceRow.CARD_ORIGINALVALUE - destRow.CARD_ORIGINALVALUE;                                         // 本期原值减少
                addRow.TOTAL_PERIODADDSUM = Math.Abs(sourceRow.CARD_DEPRSUM - destRow.CARD_DEPRSUM);                                        // 本期累计折旧增加             
                dsAssetsTotal.T_FIX_D_ASSETSTOTAL.AddT_FIX_D_ASSETSTOTALRow(addRow);

                result = result + daoAssetsTotal.Update(dsAssetsTotal);
                dsAssetsTotal.AcceptChanges();
            }

            #endregion

            #region 生成变动单

            Data_T_FIX_D_VariationBill dsVarBill = new Data_T_FIX_D_VariationBill();
            Data_T_FIX_D_VariationBill.T_FIX_D_VARIATIONBILLRow drRow = dsVarBill.T_FIX_D_VARIATIONBILL.NewT_FIX_D_VARIATIONBILLRow();
            drRow.VARBILL_ID = ServiceSystem.GetEntityID(drRow.Table.TableName, p_OperateUser);     // 变动单ID
            drRow.VARBILL_CODE = daoVarBill.Get_VarBillCode();                                      // 变动单号
            drRow.VARBILL_CARD_RID = destRow.CARD_ID;                                               // 卡片ID
            drRow.VARBILL_YEAR = p_OperateUser.AccountantYear;                                      // 会计年度
            drRow.VARBILL_PERIOD = p_OperateUser.AccountantMonth;                                   // 会计期间
            drRow.VARBILL_DATE = p_OperateUser.LoginTime;                                           // 变动日期
            drRow.VARBILL_VARMODE_RID = destRow.CARD_VARIATIONMODE_RID;                             // 变动方式ID
            drRow.VARBILL_CRED_TYPE_RID = destRow.CARD_CREDENCE_TYPE_RID;                           // 凭证类别
            drRow.VARBILL_CREDENCE_SEQ = destRow.CARD_CREDENCE_SEQ;                                 // 凭证号
            drRow.VARBILL_REASON = p_VarBill_Reason;                                                // 变动原因
            drRow.VARBILL_BEFORE_DEPT_RID = sourceRow.CARD_DEPT_RID;                                // 变动前的部门
            drRow.VARBILL_AFTER_DEPT_RID = destRow.CARD_DEPT_RID;                                   // 变动后的部门
            drRow.VARBILL_BEFORE_USESTATE_RID = sourceRow.CARD_USESTATE_RID;                        // 变动前的使用状况
            drRow.VARBILL_AFTER_USESTATE_RID = destRow.CARD_USESTATE_RID;                           // 变动后的使用状况
            drRow.VARBILL_BEFORE_DEPRMETH = sourceRow.CARD_DEPRMETHOD;                              // 变动前的折旧方法
            drRow.VARBILL_AFTER_DEPRMETH = destRow.CARD_DEPRMETHOD;                                 // 变动后的折旧方法
            drRow.VARBILL_BEFORE_ASSETSTYPE_RID = sourceRow.CARD_ASSETSTYPE_RID;                    // 变动前的资产类别
            drRow.VARBILL_AFTER_ASSETSTYPE_RID = destRow.CARD_ASSETSTYPE_RID;                       // 变动后的资产类别
            drRow.VARBILL_BEFORE_ORIVALUE = sourceRow.CARD_ORIGINALVALUE;                           // 变动前的资产原值
            drRow.VARBILL_AFTER_ORIVALUE = destRow.CARD_ORIGINALVALUE;                              // 变动后的资产原值
            drRow.VARBILL_BEFORE_DPERSUM = sourceRow.CARD_DEPRSUM;                                  // 变动前的累计折旧
            drRow.VARBILL_AFTER_DPERSUM = destRow.CARD_DEPRSUM;                                     // 变动后的累计折旧
            drRow.VARBILL_BEFORE_JOBQUAN = sourceRow.CARD_JOBGROSS;                                 // 变动前工作总量
            drRow.VARBILL_AFTER_JOBQUAN = destRow.CARD_JOBGROSS;                                    // 变动后工作总量
            drRow.VARBILL_BEFORE_SALVALUE = sourceRow.CARD_SALVALUE;                                // 变动前净残值
            drRow.VARBILL_AFTER_SALVALUE = destRow.CARD_SALVALUE;                                   // 变动前净残值
            drRow.VARBILL_BEFORE_USEYEARS = sourceRow.CARD_USEYEARS;                                // 变动前使用年限
            drRow.VARBILL_AFTER_USEYEARS = destRow.CARD_USEYEARS;                                   // 变动后使用年限
            drRow.VARBILL_BEFORE_AMOUNT = sourceRow.CARD_AMOUNT;                                    // 变动前资产数量
            drRow.VARBILL_AFTER_AMOUNT = destRow.CARD_AMOUNT;                                       // 变动后资产数量
            drRow.VARBILL_MAKER_RID = p_OperateUser.UserID;                                         // 操作员ID
            dsVarBill.T_FIX_D_VARIATIONBILL.AddT_FIX_D_VARIATIONBILLRow(drRow);

            result = result + daoVarBill.Update(dsVarBill);
            dsVarBill.AcceptChanges();

            #endregion

            return result;
        }

        #endregion

        #region 固定资产变动方法 Variation

        /// <summary>
        /// 固定资产变动方法
        /// </summary>
        /// <returns>返回更新记录数</returns>
        public int Variation(HP.MiddleTierClassLibrary.DBConnect p_Conn, Data_T_FIX_D_AssetsCard p_DestCard, 
                               string p_VarBill_Reason, OperateUser p_OperateUser)
        {
            int result = 0;
            DAO_T_FIX_D_JOBQUANTITYExtend daoJobQuan = new DAO_T_FIX_D_JOBQUANTITYExtend();
            DAO_T_FIX_D_ASSETSCARDExtend daoCard = new DAO_T_FIX_D_ASSETSCARDExtend();
            DAO_T_FIX_D_ASSETSDETAILExtend daoAssetsDetail = new DAO_T_FIX_D_ASSETSDETAILExtend();
            DAO_T_FIX_D_ASSETSTOTALExtend daoAssetsTotal = new DAO_T_FIX_D_ASSETSTOTALExtend();
            DAO_T_FIX_D_VARIATIONBILLExtend daoVarBill = new DAO_T_FIX_D_VARIATIONBILLExtend();

            p_Conn.Add(daoJobQuan);
            p_Conn.Add(daoCard);
            p_Conn.Add(daoAssetsDetail);
            p_Conn.Add(daoAssetsTotal);
            p_Conn.Add(daoVarBill);

            string wherePart = "";
            int fixYear = p_OperateUser.AccountantYear;
            int fixPeriod = p_OperateUser.AccountantMonth;

            Data_T_FIX_D_AssetsCard p_SourceCard = daoCard.Retrieve(p_DestCard.T_FIX_D_ASSETSCARD[0].CARD_ID);
            if (p_SourceCard.T_FIX_D_ASSETSCARD.Count == 0)
            {
                throw new Exception("固定资产卡片已不存在!");
            }

            Data_T_FIX_D_AssetsCard.T_FIX_D_ASSETSCARDRow sourceRow = p_SourceCard.T_FIX_D_ASSETSCARD[0];
            Data_T_FIX_D_AssetsCard.T_FIX_D_ASSETSCARDRow destRow = p_DestCard.T_FIX_D_ASSETSCARD[0];
            if (destRow.CARD_ISVARIATION != "1")
            {
                new Exception("没有设置变动标志");
            }
            // 修改资产卡片表
            result = result + daoCard.Update(p_DestCard);
            p_DestCard.AcceptChanges();

            #region 修改工作量表

            if (sourceRow.CARD_JOBGROSS != destRow.CARD_JOBGROSS)
            {
                wherePart = " JobQuantity_Card_Rid = '{0}' and JobQuantity_Year = {1} and JobQuantity_Period = {2} ";
                wherePart = string.Format(wherePart, destRow.CARD_ID, fixYear, fixPeriod);
                Data_T_FIX_D_JobQuantity dsJobQuan = daoJobQuan.CustomSearchExtend(wherePart);
                if (dsJobQuan.T_FIX_D_JOBQUANTITY.Count > 0)
                {
                    dsJobQuan.T_FIX_D_JOBQUANTITY[0].JOBQUANTITY_ENDQUAN = destRow.CARD_JOBGROSS;
                    result = result + daoJobQuan.Update(dsJobQuan);
                    dsJobQuan.AcceptChanges();
                }
            }

            #endregion

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -