Beispiel #1
0
        public string AddTime(string id, string description, string time)
        {
            ProjectRequestEntities request = new ProjectRequestEntities();

            try
            {
                if (description.Count() > 0 && time.Count() > 0)
                {
                    string name = Convert.ToString(User.Identity.Name);
                    name = name.Remove(0, 8).ToLower();

                    int requestID = Convert.ToInt16(id);
                    var date      = DateTime.Now.Date;

                    var sheetName = request.TimeSheets.FirstOrDefault(d => d.sheetDate == date && d.staffID == name);

                    if (sheetName == null)
                    {
                        int      sheetsNeeded;
                        DateTime sheetDate;
                        IEnumerable <TimeSheet> timeSheet = request.TimeSheets.Where(t => t.staffID == name && t.completed == false).OrderByDescending(t => t.sheetDate);

                        TimeSheet currentSheet;

                        var allSheets = request.TimeSheets.Where(t => t.staffID == name).OrderByDescending(t => t.sheetDate);
                        if (allSheets == null || allSheets.Count() < 1)
                        {
                            TimeSheet mySheet = new TimeSheet();

                            mySheet.sheetDate = DateTime.Today;
                            mySheet.staffID   = name;
                            mySheet.completed = false;

                            request.AddToTimeSheets(mySheet);
                            request.SaveChanges();
                        }

                        currentSheet = allSheets.FirstOrDefault();

                        sheetDate = currentSheet.sheetDate.GetValueOrDefault();

                        sheetDate = sheetDate.AddDays(1);

                        sheetsNeeded = (int)DateTime.Today.Subtract(sheetDate).TotalDays;

                        for (var startDate = 1; startDate <= sheetsNeeded + 1; startDate++)
                        {
                            if (sheetDate.DayOfWeek != DayOfWeek.Saturday && sheetDate.DayOfWeek != DayOfWeek.Sunday)
                            {
                                var sheet = request.TimeSheets.FirstOrDefault(t => t.sheetDate == sheetDate && t.staffID == name);

                                if (sheet == null)
                                {
                                    TimeSheet mySheet = new TimeSheet();

                                    mySheet.sheetDate = sheetDate;
                                    mySheet.staffID   = name;
                                    mySheet.completed = false;

                                    request.AddToTimeSheets(mySheet);
                                    request.SaveChanges();

                                    sheetDate = sheetDate.AddDays(1);
                                }
                                else
                                {
                                    sheetDate = sheetDate.AddDays(1);
                                }
                            }
                            else
                            {
                                sheetDate = sheetDate.AddDays(1);
                            }
                        }

                        sheetName = request.TimeSheets.FirstOrDefault(d => d.sheetDate == date && d.staffID == name);
                    }

                    var currentRequest = request.Requests.FirstOrDefault(r => r.reuqestID == requestID);

                    Chore chore = new Chore();

                    chore.chore1    = description;
                    chore.requestID = requestID;
                    chore.sheetID   = sheetName.sheetID;
                    chore.timeSpent = Convert.ToDecimal(time);
                    chore.name      = currentRequest.projectName;

                    request.AddToChores(chore);
                    request.SaveChanges();

                    return("Your report has been successfully filed.");
                }// end validation if
                else
                {
                    return("Please fill out description and time fields");
                }
            }// end try

            catch (Exception ex)
            {
                return(ex.ToString());
            }
        }
Beispiel #2
0
        //
        // GET: /TimeSheet/


        public ActionResult Index()
        {
            ProjectRequestEntities request = new ProjectRequestEntities();

            string name = Convert.ToString(User.Identity.Name);

            name = name.Remove(0, 8).ToLower();
            int      sheetsNeeded;
            DateTime sheetDate;
            IEnumerable <TimeSheet> timeSheet = request.TimeSheets.Where(t => t.staffID == name && t.completed == false).OrderByDescending(t => t.sheetDate);

            TimeSheet currentSheet;

            var allSheets = request.TimeSheets.Where(t => t.staffID == name).OrderByDescending(t => t.sheetDate);

            if (allSheets == null || allSheets.Count() < 1)
            {
                TimeSheet mySheet = new TimeSheet();

                mySheet.sheetDate = DateTime.Today;
                mySheet.staffID   = name;
                mySheet.completed = false;

                request.AddToTimeSheets(mySheet);
                request.SaveChanges();
            }

            currentSheet = allSheets.FirstOrDefault();

            //if (timeSheet == null || timeSheet.Count() < 1)
            //{
            //    var sheetsCompleted = request.TimeSheets.Where(t => t.staffID == name && t.completed == true).OrderByDescending(t => t.sheetDate);

            //    if (sheetsCompleted == null || sheetsCompleted.Count() < 1)
            //    {
            //        var todaySheet = request.TimeSheets.FirstOrDefault(t => t.sheetDate == DateTime.Today && t.completed == true);

            //        if (todaySheet == null)
            //        {
            //            TimeSheet mySheet = new TimeSheet();

            //            mySheet.sheetDate = DateTime.Today;
            //            mySheet.staffID = name;
            //            mySheet.completed = false;

            //            request.AddToTimeSheets(mySheet);
            //            request.SaveChanges();

            //            currentSheet = mySheet;
            //        }
            //        else
            //            currentSheet = todaySheet;
            //    }
            //    else
            //    {
            //        var lastSheetCompleted = sheetsCompleted.FirstOrDefault();

            //        currentSheet = lastSheetCompleted;
            //    }

            //}

            //else
            //{
            //    currentSheet = timeSheet.FirstOrDefault(t => t.staffID == name);
            //}

            sheetDate = currentSheet.sheetDate.GetValueOrDefault();

            sheetDate = sheetDate.AddDays(1);

            sheetsNeeded = (int)DateTime.Today.Subtract(sheetDate).TotalDays;

            for (var startDate = 1; startDate <= sheetsNeeded + 1; startDate++)
            {
                if (sheetDate.DayOfWeek != DayOfWeek.Saturday && sheetDate.DayOfWeek != DayOfWeek.Sunday)
                {
                    var sheet = request.TimeSheets.FirstOrDefault(t => t.sheetDate == sheetDate && t.staffID == name);

                    if (sheet == null)
                    {
                        TimeSheet mySheet = new TimeSheet();

                        mySheet.sheetDate = sheetDate;
                        mySheet.staffID   = name;
                        mySheet.completed = false;

                        request.AddToTimeSheets(mySheet);
                        request.SaveChanges();

                        sheetDate = sheetDate.AddDays(1);
                    }
                    else
                    {
                        sheetDate = sheetDate.AddDays(1);
                    }
                }
                else
                {
                    sheetDate = sheetDate.AddDays(1);
                }
            }

            IEnumerable <TimeSheet> lateSheets = request.TimeSheets.Where(t => t.staffID == name && t.completed == false).OrderByDescending(t => t.sheetDate);

            return(View(lateSheets));
        }