public ActionResult TimeSheet(Models.AnalyticModel model, string[] users)
        {
            JneCommSitesDataLayer.JneCommSitesDataBaseEntities _dbContext = new JneCommSitesDataLayer.JneCommSitesDataBaseEntities();

            DateTime currentDate = DateTime.Now;

            string userName = users[0];

            var queryCurrentActivityLog = (from p in _dbContext.T_ActivityLog
                                           where p.AspNetUsers.UserName == userName &&
                                           p.dtEndWorkingDay != null
                                           orderby p.dtStartWorkingDay ascending
                                           select p).FirstOrDefault();

            var queryUsersBySite = (from p in _dbContext.AspNetUsers
                                    from d in p.T_Sites
                                    where d.vSiteName == queryCurrentActivityLog.vSiteName
                                    select p);

            List <Models.PaymentInformation> paySheetInformation = new List <Models.PaymentInformation>();

            foreach (var item in queryUsersBySite)
            {
                DateTime payRollDate = Convert.ToDateTime(model.paymentDate);


                TimeSpan ts;

                var activityLogsByUser = (from p in _dbContext.T_ActivityLog
                                          where p.AspNetUsers.UserName == item.UserName &&
                                          p.dtStartWorkingDay > payRollDate &&
                                          p.dtEndWorkingDay != null
                                          orderby p.dtStartWorkingDay descending
                                          select p);

                if (activityLogsByUser.FirstOrDefault() != null)
                {
                    var userInformation = (from p in _dbContext.AspNetUsers
                                           where p.UserName == item.UserName
                                           select p).FirstOrDefault();
                    decimal controlMinutes = 0;
                    decimal lastHours      = 0;
                    decimal todayHours     = 0;
                    decimal totalHours     = 0;

                    foreach (var itemActivityLog in activityLogsByUser)
                    {
                        ts             = Convert.ToDateTime(itemActivityLog.dtEndWorkingDay) - itemActivityLog.dtStartWorkingDay;
                        controlMinutes = controlMinutes + ts.Minutes;
                        lastHours      = lastHours + ts.Hours;
                    }

                    if (controlMinutes > 60)
                    {
                        lastHours = lastHours + Convert.ToInt32((controlMinutes - (controlMinutes % 60)) / 60);
                        int numberIterations = Convert.ToInt32(((controlMinutes - (controlMinutes % 60)) / 60));
                        controlMinutes = controlMinutes - (60 * numberIterations);
                    }

                    lastHours  = Convert.ToDecimal(lastHours.ToString() + "." + controlMinutes.ToString());
                    totalHours = lastHours;

                    var currentActivityLogsByUser = activityLogsByUser.FirstOrDefault();

                    ts             = Convert.ToDateTime(currentActivityLogsByUser.dtEndWorkingDay) - currentActivityLogsByUser.dtStartWorkingDay;
                    controlMinutes = ts.Minutes;

                    int hours   = Convert.ToInt32(lastHours);
                    int minutes = Convert.ToInt32((lastHours - hours) * 100);
                    if (minutes > controlMinutes)
                    {
                        Convert.ToInt32(lastHours);
                        lastHours = Convert.ToDecimal(Math.Truncate(lastHours) + "." + (minutes - controlMinutes));
                    }
                    else
                    {
                        lastHours = lastHours - 1;
                        minutes   = Convert.ToInt32(60 - (controlMinutes - minutes));
                        lastHours = Convert.ToDecimal(Convert.ToInt32(lastHours) - ts.Hours + "." + minutes.ToString());
                    }

                    todayHours = Convert.ToDecimal(ts.Hours.ToString() + "." + controlMinutes.ToString());

                    paySheetInformation.Add(new Models.PaymentInformation
                    {
                        employeeName = item.T_UsersData.UserFirstName + " " + item.T_UsersData.UserLastName,
                        totalHours   = totalHours.ToString(),
                        payment      = "$" + (totalHours * item.T_UsersData.LaborHourPay).ToString()
                    });
                }
            }
            model.crewUsersList      = Helper.Helper.GetCrewUsers();
            model.paymentInformation = paySheetInformation;
            return(View(model));
        }
 public ActionResult TimeSheet()
 {
     Models.AnalyticModel newAnalyticModel = new Models.AnalyticModel();
     newAnalyticModel.crewUsersList = Helper.Helper.GetCrewUsers();
     return(View(newAnalyticModel));
 }