Exemplo n.º 1
0
 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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
 public IHttpActionResult GetPendingVacations()
 {
     return(Ok(VacationRepository
               .Where(x => x.Status == VacationStatus.Pending)
               .OrderBy(x => x.StartDate)
               .AsDto()));
 }
Exemplo n.º 5
0
 public SalarySheetController(AttendanceSystemContext db)
 {
     applicationUserRepository = new ApplicationUserRepository(db);
     vacationRepository        = new VacationRepository(db);
     loanRepository            = new LoanRepository(db);
     salarySheetRepository     = new SalarySheetRepository(db);
     offenseRepository         = new OffenseRepository(db);
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
 public HomeController(AttendanceSystemContext context)
 {
     appUser                      = new ApplicationUserRepository(context);
     vacationRepositry            = new VacationRepository(context);
     userEventRepository          = new UserEventRepository(context);
     workingDayRepository         = new WorkingDayRepository(context);
     missedEventRequestRepository = new MissedEventRequestRepository(context);
 }
Exemplo n.º 8
0
        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()));
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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());
        }
Exemplo n.º 14
0
        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));
            }
        }
Exemplo n.º 15
0
 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);
 }
Exemplo n.º 16
0
        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());
        }
Exemplo n.º 17
0
        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));
        }
Exemplo n.º 19
0
        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
            });
        }
Exemplo n.º 20
0
 public VacationsService(VacationRepository vRepo)
 {
     _vRepo = vRepo;
 }
Exemplo n.º 21
0
 public VacationController(MyContext T)
 {
     vacationRepository = new VacationRepository(T);
 }
Exemplo n.º 22
0
 public VacationService(VacationRepository repo)
 {
     _repo = repo;
 }
Exemplo n.º 23
0
        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"));
        }
Exemplo n.º 24
0
 public IHttpActionResult GetConfirmedVacations()
 {
     return(Ok(VacationRepository
               .Where(x => x.Status == VacationStatus.Approved && x.EndDate > DateTime.Now)
               .AsDto()));
 }