/// <summary>
        /// Generate Monthly PayRoll
        /// </summary>
        /// <param name="generate">Flag to generate</param>
        /// <param name="year">Year</param>
        /// <param name="month">Month</param>
        /// <returns></returns>
        public ActionResult GenerateMonthlyPayRoll(bool generate = false, int year = 0, int month = 0, int action = -1)
        {
            EmployeesController employees = new EmployeesController();

            List <MEmployees> listEmployees = null;

            List <MPayRoll> listPayRolls = null;

            ViewBag.Year  = year;
            ViewBag.Month = month;

            if (generate)
            {
                //Get days by month
                DateTime dateFirst = new DateTime(year, month, 1);
                DateTime dateLast  = new DateTime(year, month + 1, 1).AddDays(-1);

                //Get employee
                employees     = new EmployeesController();
                listEmployees = employees.Get().Where(item => item.Active == true).ToList();

                //Generates Payroll
                string            msgResult         = string.Empty;
                PayRollController payRollController = new PayRollController();
                foreach (MEmployees employee in listEmployees)
                {
                    if (
                        payRollController.Get().Where
                        (
                            item => item.PayRollInfoID == employee.PayRollInfo_.PayRollInfoID &&
                            ((DateTime)item.PayRollDate).Year == year &&
                            ((DateTime)item.PayRollDate).Month == month
                        ).Count() == 0)
                    {
                        //Payroll
                        payRollController.Post(dateFirst, dateLast, dateLast, employee.PayRollInfo_.PayRollInfoID);
                        msgResult += string.Format("- <span style='color: rgba(0, 0, 0, 0.55); font-weight: 600;'>Employee [ {0} {1} ] - PayRoll generated successfully</span> <br>", employee.Name, employee.LastNames);
                    }
                    else
                    {
                        msgResult += string.Format("- <span style='color: rgba(0, 0, 0, 0.55); font-weight: 600;'>Employee [ {0} {1} ] - PayRoll was already generated</span> <br>", employee.Name, employee.LastNames);
                    }
                }

                return(Json(msgResult, JsonRequestBehavior.AllowGet));
            }
            else
            {
                listPayRolls = new PayRollController().Get().Where(item => ((DateTime)item.PayRollDate).Year == year && ((DateTime)item.PayRollDate).Month == month && ((bool)item.Employee.Active) == true).ToList();

                return(View(listPayRolls));
            }
        }
        /// <summary>
        /// Check PayRoll Tickets
        /// </summary>
        /// <param name="generate">Flag to generate</param>
        /// <param name="year">Year</param>
        /// <param name="month">Month</param>
        /// <returns></returns>
        public ActionResult CheckPayRollTickets(int employeeID = 0)
        {
            List <MPayRoll> listPayRolls = null;

            ViewBag.EmployeeSelected = employeeID;

            listPayRolls = new PayRollController().Get().Where(item => ((bool)item.GetEmployee(Guid.Parse(this.Token)).Active) == true).OrderByDescending(item => item.PayRollDate).ToList();

            if (employeeID != 0)
            {
                listPayRolls = new PayRollController().Get().Where(item => item.GetEmployee(Guid.Parse(this.Token)).EmployeeID == employeeID).OrderByDescending(item => item.PayRollDate).ToList();
            }

            return(View(listPayRolls));
        }