Ejemplo n.º 1
0
        public ActionResult WeekEntry(DateTime weekStart)
        {
            OneWeekModel model = new OneWeekModel();

            ViewBag.AllowDuplicates = ConfigurationManager.AppSettings["AllowDuplicate"] == "1";

            //Add the start/End days
            Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, weekStart);

            model.WeekStart = dates.Item1;
            model.WeekEnd   = dates.Item2;

            using (TimeLineDB db = new TimeLineDB())
            {
                List <TimeLineModel> lines = db.TimeLines.Where(x => x.UserID == User.Identity.Name)
                                             .Where(x => x.LineDate >= dates.Item1)
                                             .Where(x => x.LineDate <= dates.Item2)
                                             .ToList();

                model.IsApproved  = lines.Count(x => x.DateApproved == null) == 0 && lines.Count > 0;
                model.IsSubmitted = lines.Count(x => x.DateSubmitted == null) == 0 && lines.Count > 0;

                IEnumerable <string> clients = lines.Select(x => x.ClientID).Distinct();

                foreach (string clientID in clients)
                {
                    ClientWeek week = new ClientWeek();
                    var        temp = db.Clients.Where(x => x.Name_Key == clientID).FirstOrDefault();
                    week.Client = temp;
                    week.Hours  = new Dictionary <int, decimal>();

                    for (int i = 0; i < 7; i++)
                    {
                        decimal dayHours = lines.Where(x => x.ClientID == clientID).Where(x => x.LineDate == weekStart.AddDays(i)).Sum(x => (x.Hours));
                        week.Hours.Add(i, dayHours);
                    }

                    model.Clients.Add(week);
                }
            }

            model.Clients = model.Clients.OrderBy(x => x.Client.sort_name).ToList();

            IEnumerable <SelectListItem> items =
                from client in GetClients()
                where !(model.Clients.Any(x => x.Client.Name_Key == client.Value))
                select new SelectListItem
            {
                Text  = client.Text,
                Value = client.Value
            };

            model.NewClients = items;

            return(View("WeekEntry", model));
        }
Ejemplo n.º 2
0
 public ActionResult WeekEntry(OneWeekModel week)
 {
     ViewBag.AllowDuplicates = ConfigurationManager.AppSettings["AllowDuplicate"] == "1";
     //Redirect to the Get action for the client entry for the new client
     return(RedirectToAction("ClientEntry", new { clientID = week.NewClientNameKey, day = week.WeekStart }));
 }