// 呼叫service將資料新增至資料庫 public void AddBonus() { this._bonusService = new BonusService(_bonusModel); int errorFlag = 0; if (this._bonusModel.GetEmplID() == "" || this._bonusModel.GetBonusT() == "") { MessageBox.Show("尚有欄位為空白, 請重新確認是否填寫完畢!"); errorFlag = 1; } if (!this.JudgeEmplIDIsExist()) { MessageBox.Show("員工ID不存在, 請重新確認!"); return; } String message = this.JudgeBonusDateIsValid(); if (message != "") { MessageBox.Show(message); errorFlag = 1; } if (errorFlag == 1) return; if (_bonusService.AddBonus()) MessageBox.Show("新增成功!"); else MessageBox.Show("新增失敗!"); }
// 用員工ID查詢該員工所有獎金, 並判斷日期與期別是否在輸入範圍內, 回傳所有在範圍內的獎金總合 private float ComputeEmplBonus(String emplID) { float totalBonus = 0; BonusModel bonusModel = new BonusModel(); bonusModel.SetEmplID(emplID); BonusService bonusService = new BonusService(bonusModel); List<BonusModel> emplTotalBonus = bonusService.searchBonusByEmplID(); List<BonusModel> emplBonusInDate = new List<BonusModel>(); int emplTotalBonusCount = emplTotalBonus.Count; // 取出所有符合日期與期別的獎金資料 for (int i = 0; i < emplTotalBonusCount; i++) { DateTime bonusDate = emplTotalBonus[i].GetBonusDate(); String bonusT = emplTotalBonus[i].GetBonusT(); if (bonusDate.CompareTo(this._startDate) == 1 && bonusDate.CompareTo(this._endDate) == -1 && bonusT == this._salaryT) emplBonusInDate.Add(emplTotalBonus[i]); } // 計算符合日期與期別之獎金總額 BonusDefModel bonusDefModel; BonusDefService bonusDefService; int totalBonusInDateCount = emplBonusInDate.Count; for (int i = 0; i < totalBonusInDateCount; i++) { bonusDefModel = new BonusDefModel(); bonusDefModel.SetBonusDefID(emplBonusInDate[i].GetBonusDefID()); bonusDefService = new BonusDefService(bonusDefModel); bonusDefModel = bonusDefService.SearchBonusDefByBonusDefID(); totalBonus += bonusDefModel.GetBonusDefAmount(); } return totalBonus; }