public void InsertBudgetManageFee(int OrganizationUnitID, DateTime Period, int ExpenseManageTypeID, decimal OriginalBudget, decimal NormalBudget, decimal?AdjustBudget, int UserID, int PositionID, string ModifyReason) { SqlTransaction transaction = null; try { ////事务开始 transaction = TableAdapterHelper.BeginTransaction(this.TABudgetManage); TableAdapterHelper.SetTransaction(this.TABudgetManageHistory, transaction); // 父表 BudgetDS.BudgetManageFeeDataTable table = new BudgetDS.BudgetManageFeeDataTable(); BudgetDS.BudgetManageFeeRow row = table.NewBudgetManageFeeRow(); row.OrganizationUnitID = OrganizationUnitID; row.Period = Period; row.ExpenseManageTypeID = ExpenseManageTypeID; row.OriginalBudget = OriginalBudget; row.NormalBudget = NormalBudget; row.AdjustBudget = AdjustBudget.GetValueOrDefault(); if (ModifyReason != null) { row.ModifyReason = ModifyReason; } table.AddBudgetManageFeeRow(row); this.TABudgetManage.Update(table); // 子表 BudgetDS.BudgetManageFeeHistoryDataTable tableDetail = new BudgetDS.BudgetManageFeeHistoryDataTable(); BudgetDS.BudgetManageFeeHistoryRow rowDetail = tableDetail.NewBudgetManageFeeHistoryRow(); rowDetail.OrganizationUnitID = OrganizationUnitID; rowDetail.Period = Period; rowDetail.ExpenseManageTypeID = ExpenseManageTypeID; rowDetail.OriginalBudget = OriginalBudget; rowDetail.NormalBudget = NormalBudget; rowDetail.AdjustBudget = AdjustBudget.GetValueOrDefault(); rowDetail.Action = "Create"; rowDetail.ModifyDate = DateTime.Now; rowDetail.PositionID = PositionID; rowDetail.UserID = UserID; if (ModifyReason != null) { rowDetail.ModifyReason = ModifyReason; } rowDetail.BudgetManageFeeID = row.BudgetManageFeeID; tableDetail.AddBudgetManageFeeHistoryRow(rowDetail); this.TABudgetManageHistory.Update(tableDetail); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } finally { transaction.Dispose(); } }
public void UpdateBudgetManageFee(int BudgetManageFeeID, decimal NormalBudget, decimal?AdjustBudget, int UserID, int PositionID, string ModifyReason) { SqlTransaction transaction = null; try { ////事务开始 transaction = TableAdapterHelper.BeginTransaction(this.TABudgetManage); TableAdapterHelper.SetTransaction(this.TABudgetManageHistory, transaction); // 父表 BudgetDS.BudgetManageFeeRow row = this.TABudgetManage.GetDataByID(BudgetManageFeeID)[0]; if (row.TotalBudget > (NormalBudget + AdjustBudget.GetValueOrDefault())) //如果是减少预算,要做检查 { decimal[] calculateAssistant = new decimal[4]; calculateAssistant = this.GetPersonalBudgetByOUID(row.OrganizationUnitID, row.Period); if (row.TotalBudget - NormalBudget - AdjustBudget.GetValueOrDefault() > calculateAssistant[3]) { throw new ApplicationException("本次修改导致原有记录超预算,不能修改"); } } row.NormalBudget = NormalBudget; row.AdjustBudget = AdjustBudget.GetValueOrDefault(); row.ModifyReason = ModifyReason; this.TABudgetManage.Update(row); // 子表 BudgetDS.BudgetManageFeeHistoryDataTable tableDetail = new BudgetDS.BudgetManageFeeHistoryDataTable(); BudgetDS.BudgetManageFeeHistoryRow rowDetail = tableDetail.NewBudgetManageFeeHistoryRow(); rowDetail.OrganizationUnitID = row.OrganizationUnitID; rowDetail.Period = row.Period; rowDetail.ExpenseManageTypeID = row.ExpenseManageTypeID; rowDetail.OriginalBudget = row.OriginalBudget; rowDetail.NormalBudget = row.NormalBudget; rowDetail.AdjustBudget = row.AdjustBudget; rowDetail.Action = "Modify"; rowDetail.ModifyDate = DateTime.Now; rowDetail.PositionID = PositionID; rowDetail.UserID = UserID; rowDetail.ModifyReason = ModifyReason; rowDetail.BudgetManageFeeID = row.BudgetManageFeeID; tableDetail.AddBudgetManageFeeHistoryRow(rowDetail); this.TABudgetManageHistory.Update(tableDetail); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } finally { transaction.Dispose(); } }