public ActionResult Create(ClientDay day)
        {
            try
            {
                var weekStart = day.StartTime.AddDays(-(int)day.StartTime.DayOfWeek).Date;
                var clientId  = day.ClientId;
                var weeks     = db.ClientWeeks.Include(w => w.Days).AsEnumerable().Where(w =>
                                                                                         w.ClientId == clientId &&
                                                                                         w.StartDate.AddDays(-(int)w.StartDate.DayOfWeek) == weekStart);

                var week = weeks.SingleOrDefault(w => w.Billed == false);
                if (week == null)
                {
                    var parsha = db.ParshaWeeks.SingleOrDefault(p => p.StartDate == weekStart);

                    if (parsha == null)
                    {
                        var newParsha = new ParshaWeek(weekStart);
                        db.ParshaWeeks.Add(newParsha);
                        db.SaveChanges();
                        parsha = newParsha;
                    }

                    var newWeek = new ClientWeek(clientId, day.StartTime)
                    {
                        ParshaId = parsha.id
                    };

                    if (weeks.Count() > 0)
                    {
                        newWeek.StartDate = day.StartTime.Date;

                        foreach (var w in weeks)
                        {
                            w.EndDate = w.Days.LastOrDefault().StartTime;
                        }
                    }
                    db.ClientWeeks.Add(newWeek);
                    db.SaveChanges();
                    week = newWeek;
                }
                day.WeekId = week.Id;
                db.ClientDays.Add(day);
                db.SaveChanges();
                week.SetBalanceDue();
                db.SaveChanges();
                return(Json("", JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(e.Message, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #2
0
 public ActionResult Create(CreateClientDayViewModel model)
 {
     try
     {
         var date     = ParshaWeek.GetDateFromPharsha(model.Day, model.Parsha, model.Year);
         var dateTime = new DateTime(date.Year, date.Month, date.Day,
                                     model.StartTime.Hours, model.StartTime.Minutes, 00);
         var clientDay = new ClientDay(dateTime, model.EndTime, model.ClientId, model.BreakDown, model.PriceId);
         db.ClientBalances.Find(clientDay.ClientId).Add(clientDay.Price);
         db.SaveChanges();
         return(RedirectToAction("Create", "ClientWeeks", clientDay));
     }
     catch (Exception e)
     {
         return(Json(e.Message));
     }
 }