// 用員工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;
        }
Beispiel #2
0
        // 以輸入empl ID搜尋員工獎金資料
        public List<BonusModel> searchBonusByEmplID()
        {
            List<BonusModel> bonusList = new List<BonusModel>();

            if (this.connectToDB())
            {
                try
                {
                    DataTable dataSet = new DataTable();

                    String searchString = String.Format("SELECT * FROM bonus WHERE emplID = '" + this._bonusModel.GetEmplID() + "'");
                    MySqlCommand searchCommand = new MySqlCommand(searchString, myConnection);
                    searchCommand.ExecuteNonQuery();

                    MySqlDataAdapter adapter = new MySqlDataAdapter(searchCommand);
                    adapter.Fill(dataSet);

                    foreach (DataRow searchDr in dataSet.Rows)
                    {
                        BonusModel bonusModel = new BonusModel();
                        bonusModel.SetEmplID(searchDr["emplID"].ToString());
                        bonusModel.SetBonusDefID(searchDr["bonusDefID"].ToString());
                        bonusModel.SetBonusDate(System.Convert.ToDateTime(searchDr["bonusDate"]));
                        bonusModel.SetBonusT(searchDr["bonusT"].ToString());
                        bonusList.Add(bonusModel);
                    }
                }
                catch (MySqlException ex)
                {
                    Console.WriteLine("Error " + ex.Number + " : " + ex.Message);
                }


            }
            this.closeConnection();

            return bonusList;
        }
Beispiel #3
0
 public BonusService(BonusModel bonusModel)
 {
     this._bonusModel = bonusModel;
 }
 public void Initialize()
 {
     _bonus = new BonusModel();
     _target = new PrivateObject(_bonus);
 }