public IActionResult CopyWeek(int id, [FromBody] CopyWeekModel copyWeek) { UserCanAccessOrganization(id); DateTime copyStartDate = copyWeek.StartDate.Date; DateTime copyEndDate = copyStartDate.AddDays(7); ValidateScheduleCopy(id, copyStartDate); var employeeShifts = _schedulerContext.EmployeeShifts .Include(es => es.Employee) .Include(es => es.Employee.Organization) .Include(es => es.Shift) .Where(es => es.Employee.Organization.OrganizationId == id && es.ShiftStartTime > copyStartDate && es.ShiftEndTime < copyEndDate) .ToList(); foreach (var sourceShift in employeeShifts) { EmployeeShift employeeShiftEntity = new EmployeeShift { Employee = sourceShift.Employee, Shift = sourceShift.Shift, ShiftStartTime = sourceShift.ShiftStartTime.AddDays(7), ShiftEndTime = sourceShift.ShiftEndTime.AddDays(7), ConfirmationNumber = 1 }; _schedulerContext.EmployeeShifts.Add(employeeShiftEntity); } _schedulerContext.SaveChanges(); return(new ObjectResult(true)); }
private void EndShift(string username, string password, decimal totalHotel, decimal totalBar, decimal totalSales, string closeShift) { var person = AppSecurity.GetUser(username, password); var today = DateTime.Today.ToShortDateString(); var es = _employeeShiftService.GetAll(2).Where(x => x.PersonId == person.PersonID && x.ShiftDate.ToShortDateString().Equals(today)).LastOrDefault(); if (es == null) { EmployeeShift employeeShift = new EmployeeShift(); employeeShift.ShiftDate = DateTime.Now; employeeShift.StartTime = DateTime.Now; employeeShift.EndTime = DateTime.Now; employeeShift.PersonId = person.PersonID; employeeShift.TotalSales = decimal.Zero; employeeShift.TotalHotelSalesRecievable = decimal.Zero; employeeShift.TotalBarSalesRecievable = decimal.Zero; employeeShift.CloseMethod = "OPEN"; _employeeShiftService.Create(employeeShift); } else { es.EndTime = DateTime.Now; es.TotalSales = totalSales; es.CloseMethod = closeShift; es.TotalHotelSalesRecievable = totalHotel; es.TotalBarSalesRecievable = totalBar; _employeeShiftService.Update(es); } }
public ActionResult AddShiftToEmployee(EmployeeShift empShift) { var t = new Project1DBEntities(); t.EmployeeShifts.Add(empShift); t.SaveChanges(); return(RedirectToAction("Index")); }
public IActionResult CopyDay(int id, [FromBody] CopyDayModel copyDay) { UserCanAccessOrganization(id); DayOfWeek fromDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), copyDay.FromDay); DateTime copyStartDate = StartOfWeek(copyDay.ScheduleDate, fromDay); DateTime copyEndDate = copyStartDate.AddDays(1); int copyDaysForward = copyDay.ScheduleDate.Subtract(copyStartDate).Days; var employeeShifts = _schedulerContext.EmployeeShifts .Include(es => es.Employee) .Include(es => es.Employee.Organization) .Include(es => es.Shift) .ThenInclude(es => es.Schedule) .Where(es => es.Employee.Organization.OrganizationId == id && es.ShiftStartTime > copyStartDate && es.ShiftEndTime < copyEndDate) .ToList(); var fromSchedule = employeeShifts.First().Shift.Schedule; // need to figure out how to translate shifts across foreach (var sourceShift in employeeShifts) { string targetDay = copyDay.ScheduleDate.DayOfWeek.ToString(); int sourcePositionId = _schedulerContext.Shifts.Include(s => s.Position) .Single(s => s.ShiftId == sourceShift.Shift.ShiftId).Position.PositionId; Shift targetShift = _schedulerContext.Shifts .Include(s => s.Position) .Include(s => s.Schedule) .SingleOrDefault(s => s.Schedule.ScheduleId == fromSchedule.ScheduleId && s.Position.PositionId == sourcePositionId && s.Day == targetDay && s.StartTime == sourceShift.Shift.StartTime && s.EndTime == sourceShift.Shift.EndTime); if (targetShift == null) { throw new InvalidOperationException("Could not find matching shifts to copy to."); } EmployeeShift employeeShiftEntity = new EmployeeShift { Employee = sourceShift.Employee, Shift = targetShift, ShiftStartTime = sourceShift.ShiftStartTime.AddDays(copyDaysForward), ShiftEndTime = sourceShift.ShiftEndTime.AddDays(copyDaysForward), ConfirmationNumber = 1 }; _schedulerContext.EmployeeShifts.Add(employeeShiftEntity); } _schedulerContext.SaveChanges(); return(new ObjectResult(true)); }
public EmployeeShiftDisplayModel(EmployeeShift employeeShift) { EmployeeShiftId = employeeShift.EmployeeShiftId; ShiftId = employeeShift.Shift.ShiftId; PositionName = employeeShift.Shift.Position.Name; PositionCategory = employeeShift.Shift.Position.Category; ShiftStartTime = (employeeShift.AdjustedStartTime ?? employeeShift.ShiftStartTime).ConvertFromUTC(false); ShiftEndTime = (employeeShift.AdjustedEndTime ?? employeeShift.ShiftEndTime).ConvertFromUTC(false); Cancelled = employeeShift.Canceled; CancelReason = employeeShift.CancelReason; }
/// <summary> /// Check if the start time and endtime falls between start time and endtime of existing shifts /// </summary> /// <param name="NewShift"></param> /// <returns></returns> public static bool isShiftOverlap(EmployeeShift NewShift) { var t = WeekRoster.Roster.Where(i => i.EmpId == NewShift.EmpId && i.DepartmentId == NewShift.DepartmentId && ((NewShift.StartTime > i.StartTime && NewShift.StartTime < i.EndTime)) || (NewShift.EndTime > i.StartTime && NewShift.EndTime < i.EndTime)).ToList(); if (t.Count > 0) { return(true); } return(false); }
public IActionResult Post(int id, [FromBody] AddEmployeeShiftModel employeeShift) { if (employeeShift == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(new ObjectResult(ModelState)); } UserCanAccessEmployee(employeeShift.EmployeeId); Employee employeeEntity = _schedulerContext.Employees.Single(e => e.EmployeeId == employeeShift.EmployeeId); Shift shiftEntity = _schedulerContext.Shifts.Single(s => s.ShiftId == employeeShift.ShiftId); TimeSpan parsedStartTime = TimeSpan.Parse(shiftEntity.StartTime); DateTime startTime = employeeShift.ShiftDate.ToUniversalTime().Date; if (parsedStartTime.IsUtcTimeNextLocalDay()) { startTime = startTime.AddDays(1); } startTime = startTime.Add(parsedStartTime).ConvertStaticShift(); TimeSpan parsedEndTime = TimeSpan.Parse(shiftEntity.EndTime); DateTime endTime = employeeShift.ShiftDate.ToUniversalTime().Date; if (parsedEndTime.IsUtcTimeNextLocalDay()) { endTime = endTime.AddDays(1); } endTime = endTime.Add(parsedEndTime).ConvertStaticShift(); EmployeeShift employeeShiftEntity = new EmployeeShift { Employee = employeeEntity, Shift = shiftEntity, ShiftStartTime = startTime, ShiftEndTime = endTime, ConfirmationNumber = 1 }; // TODO: NEED TO VALIDATE BASED ON UI RULES _schedulerContext.EmployeeShifts.Add(employeeShiftEntity); _schedulerContext.SaveChanges(); //_smsSender.SendSmsAsync("9529131633", $"Shift added {startTime.ToString("MM/dd/yyyy")}"); return(new ObjectResult(employeeShiftEntity.EmployeeShiftId)); }
public void TestShiftInsertion() { DatabaseConnection connection = new DatabaseConnection(); var shift = EmployeeShift.From(new ArduinoLogRequest { Data = "r abc", Password = "******" }, connection); shift.RegisterUsing(connection); }
public ActionResult AddShiftToEmployee(int id) { Employee e = empBL.GetEmployeeByID(id); ViewBag.name = e.FirstName + e.LastName; var shifts = sBL.GetShiftsData(); ViewBag.shifts = shifts; EmployeeShift se = new EmployeeShift(); se.EmployeeID = id; return(View("AddShiftToEmployee", se)); }
public string LastShift() { var connection = new DatabaseConnection(); var shift = EmployeeShift.GetLast(connection); return(JsonSerializer.Serialize(shift != null ? new { employee_name = shift.Employee.Reference.Name, is_join = shift.EndTime == null } : new object())); }
public ActionResult AddShiftEmp(EmployeeShift emp) { if (Session["UserBL"] != null && ((UserBL)Session["UserBL"]).CheckActionCounter(0)) { EmployeeBL.AddShift(emp); return(RedirectToAction("EmployeeMenu")); } else { Session.Clear(); return(RedirectToAction("Index", "LogIn")); } }
//Creating the system//Work! private void PartOne() { foreach (var emp in shiftsContainer.EmployeeConstraints) { var currEmpName = new Worker() { Name = emp.Name }; var greedyEmploee = new GreedyEmployee() { Name = emp.Name }; //Console.WriteLine("**1**"); foreach (var empDay in emp.WeeklyConstraints) { if (empDay.Value.Contains("Free day")) { continue; } var constraintsDay = empDay.Key; var constraintsShift = empDay.Value; var schedulareDay = schedulare.Days.FirstOrDefault(x => x.Name.Contains(constraintsDay)); var schedulareShift = schedulareDay.Shifts.FirstOrDefault(x => x.Name.Contains(constraintsShift)); if (schedulareShift.Workers.Count < shiftsContainer.ShiftParams.NumberOfWokersInShift) { greedyEmploee.AddShift(); Worker newEmp = new Worker(); newEmp.Name = currEmpName.Name; schedulareShift.Workers.Add(newEmp); } else { var shift = new EmployeeShift() { Day = constraintsDay, ShiftName = constraintsShift }; greedyEmploee.ShiftsThatWasNotAssigned.Add(shift); } //Console.WriteLine("**2**"); } greedyEmpList.Add(greedyEmploee); } //PrintAll(); }
public ActionResult AddShiftToEmployee(int id) { if (Session["UserBL"] != null && ((UserBL)Session["UserBL"]).CheckActionCounter(1)) { EmployeeShift emp = new EmployeeShift(); emp.EmployeeID = id; return(View("AddEmployeeShift", emp)); } else { Session.Clear(); return(RedirectToAction("Index", "LogIn")); } }
public ActionResult AddShiftToEmployee(int empID) { var t = new Project1DBEntities(); var model = new EmployeeShift(); model.EmployeeID = empID; var shifts = t.Shifts.ToList(); var employeeShifts = t.EmployeeShifts.Where(g => g.EmployeeID == empID).ToList(); var shiftsToAdd = shifts.Where(g => !employeeShifts.Any(p => p.ShiftID == g.ID)).ToList(); ViewData.Add("ShiftsList", shiftsToAdd); ViewData.Add("EmpID", empID); return(View(model)); }
public static IEnumerable <EmployeeShift> GetDummyData() { var csvData = new List <EmployeeShift>(); var csvRow1 = new EmployeeShift { EmployeeId = "1", Date = "2019-10-07", StartTime = "09:00", EndTime = "10:00", Project = "Google" }; var csvRow2 = new EmployeeShift { EmployeeId = "2", Date = "2019-10-07", StartTime = "10:00", EndTime = "12:00", Project = "Facebook" }; var csvRow3 = new EmployeeShift { EmployeeId = "3", Date = "2019-10-07", StartTime = "10:00", EndTime = "12:00", Project = "Google" }; var csvRow4 = new EmployeeShift { EmployeeId = "2", Date = "2019-10-08", StartTime = "10:00", EndTime = "12:00", Project = "Facebook" }; csvData.Add(csvRow1); csvData.Add(csvRow2); csvData.Add(csvRow3); csvData.Add(csvRow4); return(csvData); }
public ActionResult SetEmployeeShift(EmployeeShift employeeShift) { #region activity count /*Activity section start*/ var currentActivityCount = new UserActivityLogBL().AddUserActivityToLog(); if (currentActivityCount > int.Parse(Session["ActivityLimit"].ToString())) { return(RedirectToAction("LogOut", "LogIn", new { IsOverLimit = true })); } /*Activity section end*/ #endregion employeeBL.AddShiftToEmployee(employeeShift); return(RedirectToAction("Index")); }
public IActionResult SaveShift(Shift shift) { var employeeId = Request.Form["EmployeeId"]; shift.Date = DateTime.Now; _db.Shifts.Add(shift); _db.SaveChanges(); var es = new EmployeeShift(); es.EmployeeId = int.Parse(employeeId); es.ShiftId = shift.Id; _db.EmployeeShifts.Add(es); _db.SaveChanges(); return(RedirectToAction("Index", "Employees")); }
public static void GetWeekRoster() { EmployeeShift EmpA = new EmployeeShift(); EmpA.EmpId = 1; EmpA.DepartmentId = 1; EmpA.StartTime = new DateTime(2020, 07, 15, 09, 00, 00); EmpA.EndTime = EmpA.StartTime.AddHours(8); WeekRoster.Roster.Add(EmpA); EmployeeShift EmpB = new EmployeeShift(); EmpB.EmpId = 2; EmpB.DepartmentId = 1; EmpB.StartTime = new DateTime(2020, 07, 15, 09, 00, 00); EmpB.EndTime = EmpA.StartTime.AddHours(8); WeekRoster.Roster.Add(EmpB); }
public JsonResult AddEmployeeShift(string _cardId, string _shiftid, string _start, string _finish) { try { using (var db = new ProjeEntities()) { EmployeeShift es = new EmployeeShift(); es.ShiftId = db.Shifts.Where(x => x.Name == _shiftid).Select(x => x.Id).FirstOrDefault(); es.EmployeeId = db.Employees.Where(x => x.CardNumber == _cardId).Select(x => x.Id).FirstOrDefault(); es.Finish = Convert.ToDateTime(_finish); es.Start = Convert.ToDateTime(_start); db.EmployeeShifts.Add(es); db.SaveChanges(); } } catch (Exception) { throw; } return(Json("a")); }
private void CreateShift(string username, string password) { var person = AppSecurity.GetUser(username, password); var today = DateTime.Today.ToShortDateString(); var es = _employeeShiftService.GetAll(2).FirstOrDefault(x => x.ShiftDate.ToShortDateString().Equals(today) && x.PersonId == person.PersonID); if (es == null) { EmployeeShift employeeShift = new EmployeeShift(); employeeShift.ShiftDate = DateTime.Now; employeeShift.StartTime = DateTime.Now; employeeShift.EndTime = null; employeeShift.PersonId = person.PersonID; employeeShift.TotalSales = decimal.Zero; employeeShift.TotalHotelSalesRecievable = decimal.Zero; employeeShift.TotalBarSalesRecievable = decimal.Zero; employeeShift.CloseMethod = "OPEN"; _employeeShiftService.Create(employeeShift); } }
static void Main(string[] args) { Program.GetWeekRoster(); EmployeeShift NewShift = new EmployeeShift(); NewShift.EmpId = 1; NewShift.DepartmentId = 1; NewShift.StartTime = new DateTime(2020, 07, 15, 16, 00, 00); NewShift.EndTime = NewShift.StartTime.AddHours(8); if (isShiftOverlap(NewShift)) { Console.WriteLine("Shift Overlap for " + NewShift.EmpId); Console.ReadLine(); } else { Console.WriteLine("No Overlap"); Console.ReadLine(); } }
public IActionResult Operation(string id) { if (!IsLogged()) { return(NotFound()); } ViewBag.PageLocation = PageLocation.Operation; id ??= "Index"; switch (id) { case "Index": return(View("Operation/Index")); case "Order": ViewBag.CurrentOption = "Fechar Pedido"; return(View("Operation/Order")); case "Session": ViewBag.CurrentOption = "Definir Sessão"; return(View("Operation/Session")); case "Shift": ViewBag.CurrentOption = "GerenciarTurno"; var connection = new DatabaseConnection(); TableViewModel model = new TableViewModel(); model.Labels = new[] { "ID", "Nome", "Horário Entrada", "Horário Saída" }; model.Data = EmployeeShift.GetTable(connection); return(View("Operation/Shift", model)); default: return(NotFound()); } }
public EmployeeShiftModel(EmployeeShift employeeShift) { EmployeeShiftId = employeeShift.EmployeeShiftId; EmployeeId = employeeShift.Employee.EmployeeId; ShiftId = employeeShift.Shift.ShiftId; Canceled = employeeShift.Canceled; Reason = employeeShift.CancelReason; ShiftStartTime = employeeShift.ShiftStartTime; ShiftEndTime = employeeShift.ShiftEndTime; AdjustedStartTime = employeeShift.AdjustedStartTime; AdjustedEndTime = employeeShift.AdjustedEndTime; LocalShiftStartTime = ShiftStartTime.ConvertFromUTC(false); LocalShiftEndTime = ShiftEndTime.ConvertFromUTC(false); if (AdjustedStartTime.HasValue) { LocalAdjustedStartTime = AdjustedStartTime.Value.ConvertFromUTC(false); } if (AdjustedEndTime.HasValue) { LocalAdjustedEndTime = AdjustedEndTime.Value.ConvertFromUTC(false); } }
public ActionResult GetNewEmployeeShift(EmployeeShift es, int shiftID) { empBL.AddNewShift(es, shiftID); return(RedirectToAction("Index")); }
public async Task <string> LogData() { Console.WriteLine("Request Received"); try { using StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8); string body = await reader.ReadToEndAsync(); ArduinoLogRequest request = JsonSerializer.Deserialize <ArduinoLogRequest>(body); // ... try { if (request.Valid) { try { DatabaseConnection database = new DatabaseConnection(); EmployeeShift.From(request, database).RegisterUsing(database); Console.WriteLine($"Insertion Done: {request.RfidData()}"); } catch (InvalidOperationException ex) { Console.WriteLine(ex); return(Messages.Failure("Invalid operation")); } catch (KeyNotFoundException) { Console.WriteLine("RFID not found"); Console.WriteLine("RFID" + request.Data); Response.StatusCode = 404; return(Messages.Failure("RFID not found")); } } else { Response.StatusCode = 403; return(Messages.Failure("Invalid credentials")); } } catch (Exception ex) when(ex is OutOfMemoryException || ex is MySqlException) { Console.WriteLine(ex); Response.StatusCode = 500; return(Messages.Failure()); } // LOG DATA return(Messages.Success()); } catch (Exception ex) { Console.WriteLine(ex); Response.StatusCode = 500; return(Messages.Failure("Internal server error")); } }
public EmployeeShift Create(EmployeeShift employeeShift) { _unitOfWork.EmployeeShiftRepository.Insert(employeeShift); _unitOfWork.Save(); return(employeeShift); }
public void Delete(EmployeeShift employeeShift) { _unitOfWork.EmployeeShiftRepository.Delete(employeeShift); _unitOfWork.Save(); }
public CalcShift(EmployeeShift es) { StartTime = es.AdjustedStartTime ?? es.ShiftStartTime; EndTime = es.AdjustedEndTime ?? es.ShiftEndTime; }
public void Add(EmployeeShift employeeShift) { _billableDbContext.Add(employeeShift); _billableDbContext.SaveChanges(); }
public EmployeeShift Update(EmployeeShift employeeShift) { _unitOfWork.EmployeeShiftRepository.Update(employeeShift); _unitOfWork.Save(); return(employeeShift); }