📄 rulesfix.cs
字号:
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 + -