Пример #1
0
        public void UpdateBudgetManageFee(int BudgetManageFeeID, decimal AOPRBudget, int UserID, int PositionID, string ModifyReason)
        {
            SqlTransaction transaction = null;
            try {
                ////事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TABudgetManageFee);
                TableAdapterHelper.SetTransaction(this.TABudgetManageFeeHistory, transaction);

                // 父表
                Budget.BudgetManageFeeRow row = this.TABudgetManageFee.GetDataByID(BudgetManageFeeID)[0];

                if (row.AOPRBudget > AOPRBudget) {
                    decimal[] calculateAssistant = this.GetPersonalBudgetByOUID(row.OrganizationUnitID, row.Year);
                    if (row.AOPRBudget - AOPRBudget > calculateAssistant[3]) {
                        throw new MyException("本次修改导致原有记录超预算,不能修改,目前部门剩余预算为:" + calculateAssistant[3], "Over budget,modify failed,current remain budget is :" + calculateAssistant[3]);
                    }
                }

                row.AOPRBudget = AOPRBudget;
                row.ModifyReason = ModifyReason;

                this.TABudgetManageFee.Update(row);

                // 子表
                Budget.BudgetManageFeeHistoryDataTable tableHistory = new Budget.BudgetManageFeeHistoryDataTable();
                Budget.BudgetManageFeeHistoryRow rowHistory = tableHistory.NewBudgetManageFeeHistoryRow();

                rowHistory.OrganizationUnitID = row.OrganizationUnitID;
                rowHistory.Year = row.Year;
                rowHistory.AOPBudget = row.AOPRBudget;
                rowHistory.AOPRBudget = row.AOPRBudget;
                rowHistory.AdjustBudget = row.AdjustBudget;
                rowHistory.Action = "Modify";
                rowHistory.ModifyDate = DateTime.Now;
                rowHistory.PositionID = PositionID;
                rowHistory.UserID = UserID;
                rowHistory.ModifyReason = ModifyReason;
                rowHistory.BudgetManageFeeID = row.BudgetManageFeeID;
                tableHistory.AddBudgetManageFeeHistoryRow(rowHistory);
                this.TABudgetManageFeeHistory.Update(tableHistory);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw ex;
            } finally {
                transaction.Dispose();
            }
        }
Пример #2
0
        public void InsertBudgetManageFee(int OrganizationUnitID, int Year, decimal AOPBudget, decimal AOPRBudget, string ModifyReason, int UserID, int PositionID)
        {
            SqlTransaction transaction = null;
            try {

                //事务开始
                transaction = TableAdapterHelper.BeginTransaction(this.TABudgetManageFee);
                TableAdapterHelper.SetTransaction(this.TABudgetManageFeeHistory, transaction);

                //验证预算是否已存在,或者有父子部门,已设置过预算
                if ((int)this.TABudgetManageFee.SearchBudgetManageByIns(GetTreePathByOUID(OrganizationUnitID), Year) > 0) {
                    throw new MyException("预算重复设置或者上级或下级部门已经设置预算,不能增加!", "Insert failed, budget exists!");
                }

                // 父表
                Budget.BudgetManageFeeDataTable table = new Budget.BudgetManageFeeDataTable();
                Budget.BudgetManageFeeRow row = table.NewBudgetManageFeeRow();

                row.OrganizationUnitID = OrganizationUnitID;
                row.Year = Year;
                row.AOPBudget = AOPBudget;
                row.AOPRBudget = AOPRBudget;
                if (ModifyReason != null) {
                    row.ModifyReason = ModifyReason;
                }

                table.AddBudgetManageFeeRow(row);
                this.TABudgetManageFee.Update(table);

                // 子表
                Budget.BudgetManageFeeHistoryDataTable tableHistory = new Budget.BudgetManageFeeHistoryDataTable();
                Budget.BudgetManageFeeHistoryRow rowHistory = tableHistory.NewBudgetManageFeeHistoryRow();

                rowHistory.OrganizationUnitID = OrganizationUnitID;
                rowHistory.Year = Year;
                rowHistory.AOPBudget = AOPBudget;
                rowHistory.AOPRBudget = AOPRBudget;
                rowHistory.Action = "Create";
                rowHistory.ModifyDate = DateTime.Now;
                rowHistory.PositionID = PositionID;
                rowHistory.UserID = UserID;
                if (ModifyReason != null) {
                    rowHistory.ModifyReason = ModifyReason;
                }
                rowHistory.BudgetManageFeeID = row.BudgetManageFeeID;

                tableHistory.AddBudgetManageFeeHistoryRow(rowHistory);
                this.TABudgetManageFeeHistory.Update(tableHistory);

                transaction.Commit();
            } catch (Exception ex) {
                transaction.Rollback();
                throw ex;
            } finally {
                transaction.Dispose();
            }
        }