public IHttpActionResult GetMyVacation() { return(Ok(VacationRepository .Where(x => x.EmployeeId == CurrentUser.Id) .Where(x => x.Status == VacationStatus.Approved || x.Status == VacationStatus.Pending) .AsDto())); }
// GET: Dashboard public ActionResult Index() { var DbUsers = db.UserDetailsModel.ToList(); DashboardViewModels dashboardVM = new DashboardViewModels(); UserDetailsRepository UDR = new UserDetailsRepository(); dashboardVM.UserList = UDR.GetUsers(); TeamRepository TR = new TeamRepository(); dashboardVM.TeamList = TR.GetTeams(); List <IdentityRole> roles = db.Roles.ToList(); dashboardVM.RoleList = roles; VacationRepository vac = new VacationRepository(); BankHolidayRepository bank = new BankHolidayRepository(); CalendarViewModel calendar = new CalendarViewModel(); calendar.BankHolidayList = bank.GetBankHolidays(); calendar.VacationList = vac.GetVacations(); dashboardVM.Calendar = calendar; return(View(dashboardVM)); }
public ActionResult AddHoliday(Vacation model) { string message = ""; bool succes = false; HolidayManagementContext database = new HolidayManagementContext(); VacationRepository vacationrepo = new VacationRepository(); var UserId = User.Identity.GetUserId(); UserDetailsRepository udr = new UserDetailsRepository(); var userDetails = udr.GetUserDetailsByUserId(UserId); model.Date = DateTime.Now; model.StateId = 1; model.UserId = userDetails.ID; database.Vacations.Add(model); message = validateVacation(model); if (message == null) { database.SaveChanges(); succes = true; } else { succes = false; } return(Json(new { successed = succes, Message = message, newUser = model }, JsonRequestBehavior.DenyGet)); }
public IHttpActionResult GetPendingVacations() { return(Ok(VacationRepository .Where(x => x.Status == VacationStatus.Pending) .OrderBy(x => x.StartDate) .AsDto())); }
public SalarySheetController(AttendanceSystemContext db) { applicationUserRepository = new ApplicationUserRepository(db); vacationRepository = new VacationRepository(db); loanRepository = new LoanRepository(db); salarySheetRepository = new SalarySheetRepository(db); offenseRepository = new OffenseRepository(db); }
public VacationController(AttendanceSystemContext context, IEmailService emailService) { vacationRepository = new VacationRepository(context); applicationUserRepository = new ApplicationUserRepository(context); workingDayRepository = new WorkingDayRepository(context); offenseRepository = new OffenseRepository(context); this.emailService = emailService; }
public HomeController(AttendanceSystemContext context) { appUser = new ApplicationUserRepository(context); vacationRepositry = new VacationRepository(context); userEventRepository = new UserEventRepository(context); workingDayRepository = new WorkingDayRepository(context); missedEventRequestRepository = new MissedEventRequestRepository(context); }
public IHttpActionResult GetVacations(DateTime date) { var startRange = new DateTime(date.Year, date.Month, 1); var endRange = new DateTime(date.Year, date.Month, DateTime.DaysInMonth(date.Year, date.Month), 23, 59, 59); return(Ok(VacationRepository .Where(x => x.StartDate <= endRange && startRange <= x.EndDate) .Where(x => x.Status == VacationStatus.Approved || x.Status == VacationStatus.Retired) .AsDto())); }
public IHttpActionResult CancelVacation(GeneralIdModel model) { var vacation = VacationRepository.First(x => x.Id == model.Id); var employee = EmployeeRepository.First(x => x.Id == CurrentUser.Id); employee.VacationDays += vacation.Days; vacation.Status = VacationStatus.Declined; EmployeeRepository.SaveOrUpdate(employee); VacationRepository.SaveOrUpdate(vacation); EmployeeRepository.Commit(); VacationRepository.Commit(); return(Ok()); }
// GET: Dashboard public ActionResult Index() { var users = database.GetUsers(); var teams = db.GetTeams(); var roles = newdb.Roles.ToList(); DashboardViewModel dash = new DashboardViewModel() { UserList = users, TeamList = teams, Roles = roles }; CalendarViewModel Calendar = new CalendarViewModel() { BankHolidays = bank.GetBankHolidays(), Vacations = vakacio.GetVacations() }; VacationRepository vakrep = new VacationRepository(); var datum = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); var free = vakrep.GetVacations(); for (int i = 1; i <= datum; ++i) { var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, i); bool isFreeDay = date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday; MonthDayViewModel day = new MonthDayViewModel() { Day = i, Name = date.DayOfWeek.ToString(), IsFreeDay = isFreeDay }; var vakacio = Calendar.BankHolidays.FirstOrDefault(x => x.Day == i && x.Month == DateTime.Now.Month); day.IsFreeDay = date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday || vakacio != null; day.Vacations = free.Where(x => DateTime.Compare(x.StartDate, date) <= 0 || DateTime.Compare(x.EndDate, date) >= 0).ToList(); Calendar.MonthDays.Add(day); } ; dash.Calendar = Calendar; return(View(dash)); }
public IHttpActionResult DeleteVacation(GeneralIdModel model) { var vacation = VacationRepository.First(x => x.Id == model.Id); var employee = EmployeeRepository.First(x => x.Id == vacation.Employee.Id); employee.VacationDays += vacation.Days; vacation.Status = VacationStatus.Declined; EmployeeRepository.SaveOrUpdate(employee); VacationRepository.SaveOrUpdate(vacation); var emails = EmployeeRepository.Where(x => x.VacationMessages == true && x.Id == vacation.EmployeeId).Select(x => x.Email).ToList(); EmailService.VacationDenied(vacation, emails); ContextManager.Commit(); return(Ok()); }
private List <Vacation> CreateVacationList() { List <Vacation> vacationlist = new List <Vacation> { }; VacationRepository vacations = new VacationRepository(); HolidayManagementContext database = new HolidayManagementContext(); var vac = vacations.GetVacations(); foreach (var v in vac) { if (v.StateId == 1 || v.StateId == 4) { vacationlist.Add(v); } } return(vacationlist); }
public IHttpActionResult ApproveVacation(GeneralIdModel model) { var vacation = VacationRepository.FirstOrDefault(x => x.Id == model.Id); if (vacation == null) { return(BadRequest("ERROR: Puhkus puudub andmebaasis")); } vacation.Status = VacationStatus.Approved; VacationRepository.SaveOrUpdate(vacation); VacationRepository.Commit(); var emails = EmployeeRepository .Where(x => x.VacationMessages == true && x.Id == vacation.EmployeeId) .Select(x => x.Email) .ToList(); EmailService.VacationApproved(vacation, emails); return(Ok()); }
public virtual ActionResult Index() { if (User.Identity.IsAuthenticated) { if (!CurrentUser.IsInitialized) { return(View(MVC.Home.Views.Initial, new ChangeAccountSettingsViewModel { Phone = CurrentUser.PhoneNumber })); } var employees = EmployeeRepository .Where(x => x.Birthdate.HasValue) .Where(x => x.Birthdate.Value.Month == DateTime.Now.Month && x.Birthdate.Value.Day == DateTime.Now.Day) .AsDto(); var vacations = VacationRepository .Where(x => x.StartDate.Month == DateTime.Now.Month || x.EndDate.Month == DateTime.Now.Month) .Where(x => x.Status == VacationStatus.Approved) .OrderBy(x => x.StartDate) .Select(x => new EmployeeVacationModel() { EmployeeName = x.Employee.Name, StartDate = x.StartDate, EndDate = x.EndDate }) .ToList(); return(View(new IndexViewModel() { Employees = employees, Vacations = vacations })); } else { return(View(MVC.Home.Views.Public)); } }
public MainRepository(AppContext context) { _context = context; Calls = new CallRepository(_context); Users = new UserRepository(_context); Locations = new LocationRepository(_context); Groups = new GroupRepository(_context); Operations = new OperationRepository(_context); Roles = new RoleRepository(_context); Debits = new DebitRepository(_context); PenaltyTypes = new PenaltyTypeRepository(_context); Employees = new EmployeeRepository(_context); Extras = new ExtraRepository(_context); PayRolls = new PayRollRepository(_context); Salaries = new SalaryRepository(_context); DebitTypes = new DebitTypeRepository(_context); Penalties = new PenaltyRepository(_context); DebitPayments = new DebitPaymentRepository(_context); Administrators = new AdministratorRepository(_context); Savings = new SavingRepository(_context); Vacations = new VacationRepository(_context); RoleOperations = new RoleOperationRepository(_context); }
public IHttpActionResult ModifyVacation(VacationModel model) { if (model.End < model.Start) { return(BadRequest()); } var vacation = VacationRepository.First(x => x.Id == model.Id); var employee = vacation.Employee; var tempDays = vacation.Days; vacation.StartDate = model.Start; vacation.EndDate = model.End; vacation.Days = (int)model.End.Subtract(model.Start).TotalDays + 1; tempDays -= vacation.Days; if (employee.VacationDays - tempDays < 0) { return(BadRequest()); } employee.VacationDays += tempDays; EmployeeRepository.SaveOrUpdate(employee); EmployeeRepository.Commit(); VacationRepository.SaveOrUpdate(vacation); VacationRepository.Commit(); var emails = EmployeeRepository.Where(x => x.VacationMessages == true && x.Id == vacation.EmployeeId).Select(x => x.Email).ToList(); EmailService.VacationModified(vacation, emails); return(Ok()); }
public virtual async Task <ActionResult> InitializeAccount(ChangeAccountSettingsViewModel model) { if (EmployeeRepository.SingleOrDefault(x => x.Id == CurrentUserId) != null) { var employee = EmployeeRepository.First(x => x.Id == CurrentUser.Id); employee.PhoneNumber = model.Phone; employee.MonthlyBirthdayMessages = model.MonthlyBirthdayMessages; employee.DailyBirthdayMessages = model.DailyBirthdayMessages; employee.RequestMessages = model.RequestMessages; employee.VacationMessages = model.VacationMessages; employee.Skype = model.Skype; employee.SocialSecurityID = model.SocialSecurityID; employee.IsInitialized = true; if (model.BirthDay != null) { employee.Birthdate = model.BirthDay; } EmployeeRepository.SaveOrUpdate(employee); EmployeeRepository.Commit(); } else { IPagedCollection <IUser> result = await ADService.GetUsers(); IUser user = result.CurrentPage.Single(x => x.ObjectId == CurrentUserId); var defaultRole = RoleRepository.Single(x => x.Name == "User"); var employee = new Employee() { Id = user.ObjectId, Name = user.DisplayName, Email = user.Mail, Role = defaultRole, PhoneNumber = model.Phone, IsInitialized = true, VacationDays = 28, VacationMessages = model.VacationMessages, RequestMessages = model.RequestMessages, MonthlyBirthdayMessages = model.MonthlyBirthdayMessages, DailyBirthdayMessages = model.DailyBirthdayMessages, Birthdate = model.BirthDay, Skype = model.Skype, SocialSecurityID = model.SocialSecurityID }; EmployeeRepository.Add(employee); EmployeeRepository.Commit(); } var employees = EmployeeRepository .Where(x => x.Birthdate.HasValue) .Where(x => x.Birthdate.Value.Month == DateTime.Now.Month && x.Birthdate.Value.Day == DateTime.Now.Day) .AsDto(); var vacations = VacationRepository .Where(x => x.StartDate.Month == DateTime.Now.Month || x.EndDate.Month == DateTime.Now.Month) .Where(x => x.Status == VacationStatus.Approved) .OrderBy(x => x.StartDate) .Select(x => new EmployeeVacationModel() { EmployeeName = x.Employee.Name, StartDate = x.StartDate, EndDate = x.EndDate }) .ToList(); return(View(MVC.Home.Views.Index, new IndexViewModel() { Employees = employees, Vacations = vacations })); }
public ActionResult AddHoliday(Vacation model) { //ha a model userid null akkor a bejelentkezett usernek irod ha enm a kivalasztott usernek var loginedUserUserId = User.Identity.GetUserId(); UserDetailsRepository udr = new UserDetailsRepository(); var loginedUserId = udr.GetUserDetailsByUserId(loginedUserUserId); if (model.UserId == 0) { model.UserId = loginedUserId.ID; } BankHolidayRepository bhr = new BankHolidayRepository(); var holidayDays = bhr.GetBankHolidays(); string message = "ok"; bool successed = true; model.Date = DateTime.Now; model.StateId = 1; int businessDaysUntil = 0; try { businessDaysUntil = BusinessDaysUntil(model.StartDate, model.EndDate, holidayDays); } catch (ArgumentException e) { successed = false; message = e.Message; } model.NrDays = businessDaysUntil; using (HolidayManagementContext db = new HolidayManagementContext()) { int sumUsedDays = 0; sumUsedDays = (int?)((from c in db.Vacations where c.UserId == model.UserId select c.NrDays).Sum()) ?? 0; var userMaxDays = db.UserDetailsModel.FirstOrDefault(p => p.ID == model.UserId); if (userMaxDays.MaxDays - sumUsedDays > businessDaysUntil) { db.Vacations.Add(model); try { db.SaveChanges(); } catch (Exception e) { successed = false; message = "Save in Error" + e.ToString(); } } else { successed = false; message = "Selected user has not enough holiday days"; } } VacationRepository vacationR = new VacationRepository(); var res = new { Success = successed, EMessage = message, BusinessDaysUntil = businessDaysUntil }; return(Json(res, JsonRequestBehavior.DenyGet)); }
private VacationSubtype GetGanadosLegales() { var repo = new VacationRepository(); var associateInfo = repo.GetAssociateInfo(); // TODO: using current year or process date? var halfCurrentYear = new DateTime(DateTime.Now.Year, 6, 1); var dateToCalculateDays = new DateTime(DateTime.Now.Year, 8, 15); // Get oldest date. DateTime oldestDate = associateInfo.fecha_ing; if (!NullDates.Values.Contains(associateInfo.vac_anre)) { oldestDate = (DateTime.Compare(associateInfo.vac_anre, associateInfo.fecha_ing) < 0 ? associateInfo.vac_anre : associateInfo.fecha_ing); } else if (!NullDates.Values.Contains(associateInfo.fecha_xtr)) { oldestDate = (DateTime.Compare(associateInfo.fecha_ing, associateInfo.fecha_xtr) < 0 ? associateInfo.fecha_ing : associateInfo.fecha_xtr); } // Get days balance. var totalDays = 0; // TODO: using current year or process date? if (associateInfo.fecha_ing.Year == DateTime.Now.Year) { if (DateTime.Compare(associateInfo.fecha_ing, halfCurrentYear) > 0) { // Extracting portional days, for each month from hiring date to: PROCESS MONTH OR DECEMBER?. for (int m = dateToCalculateDays.Month; m <= associateInfo.fecha_ing.Month; m++) { totalDays = DateTime.DaysInMonth(dateToCalculateDays.Year, m) - (IsSaturdayHoliday() ? 0 : 1); } } else { // TODO; Preguntar a Mariana. } } else { var totalYears = DateTime.Now.Year - associateInfo.fecha_ing.Year; var vacationAgreements = GetVacationAgreementsByCodConv(associateInfo.vacconadi). Where(vac => vac.Tramo <totalYears && vac.Tramo> totalYears).ToList(); //var vacationAgreement = vacationAgreements.Where(vac => vac.Tramo < totalYears && vac.Tramo > totalYears).FirstOrDefault(); if (vacationAgreements.Count > 1) { throw new Exception(string.Format("Existe más de un convenio para el tramo de años del colaborador ({0}).", totalYears.ToString())); } totalDays = vacationAgreements.First().Dias; } // TODO: determinar el tipo de dia que se esta ingresando (legales corridos o legales habiles). // Por ahora, todos los dias son legales corridos. return(new VacationSubtype() { Corridos = totalDays }); }
public VacationsService(VacationRepository vRepo) { _vRepo = vRepo; }
public VacationController(MyContext T) { vacationRepository = new VacationRepository(T); }
public VacationService(VacationRepository repo) { _repo = repo; }
public IHttpActionResult SetVacation(VacationModel model) { var id = CurrentUserId; var currentUserVacations = VacationRepository.Where(x => x.EmployeeId == id && x.StartDate.Year == DateTime.Now.Year && x.Status == VacationStatus.Declined && x.Status != VacationStatus.Retired) .Select(x => x.Days) .ToList(); int days = (int)model.End.Subtract(model.Start).TotalDays + 1; if (model.Start > model.End) { return(BadRequest("ERROR: Puhkuse lõpp on enne puhkuse algust")); } var employee = EmployeeRepository.First(x => x.Id == id); if (employee.VacationDays - days < 0) { return(BadRequest("ERROR: Pole piisavalt kasutamata puhkusepäevi")); } if (model.Comment?.Length > 250) { return(BadRequest("ERROR: Lisainfo väljal ei tohi olla rohkem kui 250 tähemärki")); } int[] vacationLimits = new int[] { 1, 2, 3, 4, 5, 6, 7, 14 }; int[][] specificVacationLimits = new int[][] { new int[] { 14, 1 }, new int[] { 7, 1 } }; if (vacationLimits.Contains(days)) { foreach (var limit in specificVacationLimits) { if (currentUserVacations.Where(x => x == limit[0]).Count() >= limit[1] && days == limit[0]) { return(BadRequest($"ERROR: Aastas on lubatud ainult {limit[1]} puhkus pikkusega {limit[0]} päeva.")); } } employee.VacationDays -= days; EmployeeRepository.SaveOrUpdate(employee); EmployeeRepository.Commit(); var vacation = new Vacation() { StartDate = model.Start, EndDate = model.End, Status = VacationStatus.Pending, EmployeeId = id, Days = days, Comments = model.Comment }; VacationRepository.AddIfNew(vacation); VacationRepository.Commit(); var emails = EmployeeRepository.Where(x => x.VacationMessages == true && x.Role.Rights.HasFlag(AccessRights.Vacations)).Select(x => x.Email).ToList(); EmailService.VacationRequested(vacation, emails); return(Ok()); } return(BadRequest("ERROR: Valitud puhkuse pikkus ei vasta eeskirjadele, lubatud on üks 14 päevane puhkus, üks 7 päevane puhkus ja ülejäänud puhkused on lühemad kui 7 päeva")); }
public IHttpActionResult GetConfirmedVacations() { return(Ok(VacationRepository .Where(x => x.Status == VacationStatus.Approved && x.EndDate > DateTime.Now) .AsDto())); }