public void UpdateRota(EmployeeWorkWeek workWeek) { if (workWeek.StoreId == mStoreId) { DateTime date = workWeek.Date; mDBConnection.DeleteFromWorkWeek(mId, date); if (TimeSpan.Parse(workWeek.RotaStartTime) != new TimeSpan(0, 0, 0) || TimeSpan.Parse(workWeek.RotaFinishTime) != new TimeSpan(0, 0, 0) || TimeSpan.Parse(workWeek.StartTime) != new TimeSpan(0, 0, 0) || TimeSpan.Parse(workWeek.FinishTime) != new TimeSpan(0, 0, 0) || TimeSpan.Parse(workWeek.LunchTime) != new TimeSpan(0, 0, 0)) { bool sucsses = mDBConnection.InsertWorkHours(mId, mStoreId, workWeek.StartTime, workWeek.FinishTime, workWeek.RotaStartTime, workWeek.RotaFinishTime, workWeek.LunchTime, workWeek.Date); } } }
private int validateWorkWeek(EmployeeWorkWeek workWeek, EmployeeWorkWeek currenWorkWeek) { //if the rota is for the employee working in this store, otherwise don't update if (workWeek.StoreId.Equals(mStoreId)) { if (workWeek.StartTime.IsValidTime() && workWeek.FinishTime.IsValidTime() && workWeek.RotaStartTime.IsValidTime() && workWeek.RotaFinishTime.IsValidTime() && workWeek.LunchTime.IsValidTime()) { //delete all where time and date has been set to 00:00:00 DateTime date = workWeek.Date; if (TimeSpan.Parse(workWeek.RotaStartTime) != new TimeSpan(0, 0, 0) && TimeSpan.Parse(workWeek.RotaFinishTime) != new TimeSpan(0, 0, 0)) { if (TimeSpan.Parse(workWeek.RotaStartTime) < TimeSpan.Parse(workWeek.RotaFinishTime)) { List <EmployeeHoliday> holidayDays = mSelectedEmployee.EmployeeHoliday; foreach (EmployeeHoliday empHol in holidayDays) { if (empHol.Date == date && empHol.State == "Approved") { return(-1); } } if (!currenWorkWeek.StoreId.Equals(mStoreId)) { return(-4); } } else { return(-5); } } else { //if they are not all empty, error has occured if (TimeSpan.Parse(workWeek.RotaStartTime) == new TimeSpan(0, 0, 0) ^ TimeSpan.Parse(workWeek.RotaFinishTime) == new TimeSpan(0, 0, 0)) { return(-2); } } } else { //valid time haven't been entered, for example contaning letters return(-3); } } return(1); }
public List <EmployeeWorkWeek> GetEmployeeWorkWeek(List <EmployeeWorkWeek> workHours, int employeeId, string storeId, DateTime startWeek, DateTime finishWeek) { ConnectToDatabase(); string query = "SELECT * FROM tblWorkHours " + "WHERE EmployeeId = @eId AND Date >= @startDate AND Date <= @finishDate " + "ORDER BY Date"; MySqlCommand cmd = new MySqlCommand(query, mConn); cmd.Parameters.Add(new MySqlParameter("eId", employeeId)); cmd.Parameters.Add(new MySqlParameter("startDate", startWeek)); cmd.Parameters.Add(new MySqlParameter("finishDate", finishWeek)); MySqlDataReader rdr = cmd.ExecuteReader(); EmployeeWorkWeek eW; while (rdr.Read()) { eW = new EmployeeWorkWeek(); eW.StoreId = rdr["StoreId"].ToString(); eW.Date = DateTime.Parse(rdr["Date"].ToString()); eW.Day = eW.Date.DayOfWeek.ToString(); eW.StartTime = rdr["StartTime"].ToString(); eW.FinishTime = rdr["FinishTime"].ToString(); eW.RotaStartTime = rdr["RotaStartTime"].ToString(); eW.RotaFinishTime = rdr["RotaFinishTime"].ToString(); eW.LunchTime = rdr["BreakTime"].ToString(); workHours[workHours.FindIndex(r => r.Date == eW.Date)] = eW; } rdr.Close(); CloseConnection(); return(workHours); }