Пример #1
0
        public IHttpActionResult Puttimesheet(int id, timesheet timesheet)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != timesheet.id)
            {
                return(BadRequest());
            }

            db.Entry(timesheet).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!timesheetExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #2
0
        public timesheet CreateTimeSheet(int User_id, string StartDate, string StartTime, int Project_id, int Activity_id, string EndTime = "", string Rate = "", string Description = "")
        {
            //var fullDateFormat = "yyyy-MM-dd HH:mm:ss";

            //string fullStringDate = StartDate + " " + StartTime;
            //DateTime fullDate = new DateTime();
            float rate = float.Parse(Rate);

            //fullDate = DateTime.ParseExact(fullStringDate, fullDateFormat, CultureInfo.InvariantCulture);

            DateTime fullDate = getCurrentDate();
            DateTime endDate  = getDateFormated(EndTime);

            timesheet sheet = new timesheet()
            {
                user_id     = User_id,
                activity_id = Activity_id,
                project_id  = Project_id,
                start_time  = Convert.ToDateTime(fullDate),
                end_time    = Convert.ToDateTime(endDate),
                rate        = rate,
                description = Description
            };

            return(sheet);
        }
Пример #3
0
        public IHttpActionResult Gettimesheet(int id)
        {
            timesheet timesheet = db.timesheet.Find(id);

            if (timesheet == null)
            {
                return(NotFound());
            }

            return(Ok(timesheet));
        }
Пример #4
0
        public ActionResult Create([Bind(Include = "id,conges,heure,jour,poste,employer_id_userId")] timesheet timesheetModel)
        {
            if (ModelState.IsValid)
            {
                var timesheet = db.timesheet;
                timesheet.Add(timesheetModel);

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(timesheetModel));
        }
Пример #5
0
        public IHttpActionResult Deletetimesheet(int id)
        {
            timesheet timesheet = db.timesheet.Find(id);

            if (timesheet == null)
            {
                return(NotFound());
            }

            db.timesheet.Remove(timesheet);
            db.SaveChanges();

            return(Ok(timesheet));
        }
Пример #6
0
        public ActionResult Create(timesheet domain)
        {
            {
                HttpClient Client = new HttpClient();

                HttpResponseMessage response = Client.PostAsJsonAsync <timesheet>(" http://localhost:9080/piConsom-web/activator/timesheet", domain)
                                               .ContinueWith((postTask) => postTask.Result.EnsureSuccessStatusCode()).Result;
                if (response.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }
            }
            //   catch
            {
                return(View());
            }
        }
        public ActionResult Deny(int?tid)
        {
            Entities dc = new Entities();

            timesheet ts = dc.timesheets.Find(tid);

            if (ts.TimeSheetStatus != "Pending")
            {
                TempData["message"] = "Action already taken.";
                return(RedirectToAction("PendingApprovals"));
            }

            ts.TimeSheetStatus      = "Denied";
            ts.TimeSheetApproveTime = System.DateTime.Now; //maybe change this column?

            dc.Entry(ts).State = System.Data.Entity.EntityState.Modified;
            try
            {
                dc.SaveChanges();
                TempData["message"] = "Timesheet denied successfully.";
                return(Redirect("PendingApprovals"));
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                //more descriptive error for validation problems
                Exception exception = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message1 = string.Format("{0}:{1}",
                                                        validationErrors.Entry.Entity.ToString(),
                                                        validationError.ErrorMessage);

                        //create a new exception inserting the current one as the InnerException
                        exception = new InvalidOperationException(message1, exception);
                    }
                }
                //error for UI
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
                throw exception;
            }
        }
Пример #8
0
        public ActionResult AddUser(AddUser newUser)
        {
            using (mmpEntities mP = new mmpEntities())
            {
                ViewBag.roles       = mP.roles.ToList <role>();
                ViewBag.regions     = mP.regions.ToList <region>();
                ViewBag.supervisors = mP.users.Where(a => a.role_id == mP.roles.FirstOrDefault(x => x.role_name == "supervisor").role_id).ToList <user>();
                ViewBag.departments = mP.category_type_details.Where(x => x.category_id == (mP.categories.FirstOrDefault(z => z.category_name == "departments").category_id)).ToList <category_type_details>();
                ViewBag.projects    = mP.category_type_details.Where(x => x.category_id == (mP.categories.FirstOrDefault(z => z.category_name == "projects").category_id)).ToList <category_type_details>();

                ViewBag.supervisorsl = mP.users.Where(a => a.role_id == mP.roles.FirstOrDefault(x => x.role_name == "supervisor").role_id&& a.user_status == "active").Select(p => new SelectListItem()
                {
                    Text  = p.employee_id + "    " + p.user_name,
                    Value = p.user_id.ToString()
                }).ToList();

                #region Employee ID Already Exists
                var isEmployeeIDExists = isEmployeeIDExist(newUser.employee_id);
                if (isEmployeeIDExists)
                {
                    ModelState.AddModelError("EmployeeExist", "Employee already exists");
                    return(View(newUser));
                }
                #endregion

                /*#region User Already Exists
                 * var isUserExists = isUserExist(newUser.user_name);
                 * if (isUserExists)
                 * {
                 *  ModelState.AddModelError("UserExist", "User already exists");
                 *  return View(newUser);
                 * }
                 #endregion*/

                #region Email Already exists
                var isEmailExists = IsEmailExist(newUser.user_email);
                if (isEmailExists)
                {
                    ModelState.AddModelError("EmailExist", "Email already exists");
                    newUser.user_name = "Enter New Name";
                    return(View(newUser));
                }
                #endregion

                if (ModelState.IsValid)
                {
                    ModelState.AddModelError("UserExist", "User already exists");

                    #region Password Hashing
                    newUser.user_password   = Crypto.Hash(newUser.user_password);
                    newUser.confirmPassword = Crypto.Hash(newUser.confirmPassword);
                    #endregion

                    user user = new user()
                    {
                        role_id                 = newUser.role_id,
                        employee_id             = newUser.employee_id,
                        user_name               = newUser.user_name,
                        user_email              = newUser.user_email,
                        designation             = newUser.designation,
                        user_password           = newUser.user_password,
                        created_at              = DateTime.Now,
                        supervisor              = newUser.supervisor,
                        region_id               = newUser.region_id,
                        user_primary_department = newUser.user_primary_department,
                        user_primary_project    = newUser.user_primary_project,
                        user_status             = "active",
                        join_date               = newUser.joining_date
                    };

                    mP.users.Add(user);

                    //var timesheet = mP.timesheet_mr.Where(x => x.tsmr_valid_till > DateTime.Now && x.tsmr_start_date < DateTime.Now).FirstOrDefault<timesheet_mr>();
                    var timesheets = mP.timesheet_mr.Where(x => x.tsmr_valid_till > user.join_date).ToList <timesheet_mr>();
                    foreach (timesheet_mr timesheet in timesheets)
                    {
                        string body;
                        if (timesheet != null)
                        {
                            timesheet ts = new timesheet()
                            {
                                timesheet_user   = user.user_id,
                                time_my          = DateTime.Now,
                                timesheet_status = "saved",
                                timesheet_caller = timesheet.tsmr_id,
                                tsmr_extension   = timesheet.tsmr_valid_till > DateTime.Now ? timesheet.tsmr_valid_till : DateTime.Now.AddDays(-1)
                            };
                            mP.timesheets.Add(ts);


                            foreach (DateTime day in EachDay(timesheet.tsmr_start_date, timesheet.tsmr_valid_till))
                            {
                                presence ps = new presence()
                                {
                                    p_date       = day,
                                    total_hours  = 0,
                                    leave_status = "",
                                    user_id      = user.user_id
                                };
                                mP.presences.Add(ps);
                            }


                            body = "<br></br>" + user.user_name + ", New TimeSheet is assigned to you. TimeSheet is valid Till " + timesheet.tsmr_valid_till + ". Visit the following website to access timeSheet<br></br>" +
                                   "<a href='http://magcom-001-site3.etempurl.com'>http://magcom-001-site3.etempurl.com</a>";

                            Task.Run(() => EmailAlert.SendEmail(user.user_email, body));
                        }
                    }

                    #region Save to Database
                    mP.SaveChanges();
                    #endregion

                    return(Json(new { success = true, message = "Saved Successfully" }));
                }
                else
                {
                    return(Json(new { success = true, message = "Invalid Request" }));
                }
            }
        }
        public ActionResult WorkEntry(int?tid, int?wid, WorkEntry thisDay)
        {
            if (Request.Cookies["UserID"].Value == null)
            {
                //Redirect to login if it can't find user id
                TempData["message"] = "Please log in.";
                System.Diagnostics.Debug.WriteLine("User not logged in. Redirecting to login page.\n");
                return(RedirectToAction("LandingPage", "Home"));
            }

            string message;

            ViewBag.IsExist     = false;
            ViewBag.TimeSheetID = (int)tid;
            ViewBag.UserID      = Int32.Parse(Request.Cookies["UserID"].Value);
            using (Entities dc = new Entities())
            {
                if (tid == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                timesheet ts = dc.timesheets.Find(tid);

                GrizzTime.Models.workentry we = dc.workentries.FirstOrDefault(p => p.WorkEntryID == wid);
                if (we == null) //create new
                {
                    workentry w = new workentry()
                    {
                        EmpID       = Int32.Parse(Request.Cookies["UserID"].Value),
                        ProjID      = thisDay.ProjID,
                        TaskID      = thisDay.TaskID,
                        WorkDate    = thisDay.WorkDate,
                        WorkHours   = thisDay.WorkHours,
                        TimeSheetID = (int)tid,
                    };
                    dc.workentries.Add(w);

                    WorkEntry thisWE = new WorkEntry()
                    {
                        EmpID            = w.EmpID,
                        possibleProjects = Employee.GetProjects(w.EmpID),
                        possibleTasks    = Project.GetTasks(w.ProjID),
                        WorkDate         = w.WorkDate,
                        WorkHours        = w.WorkHours,
                        TimeSheetID      = w.TimeSheetID,
                        WorkEntryID      = w.WorkEntryID,
                        ProjID           = w.ProjID,
                        TaskID           = w.TaskID,
                    };

                    if (ts.TimeSheetStatus == "Denied")
                    {
                        ts.TimeSheetStatus = "In Progress";
                    }

                    //add try catch
                    dc.SaveChanges();

                    TempData["message"] = "Successfully saved.";
                    //return View(thisWE);
                    return(Redirect("Week/" + tid));
                }
                else //edit existing
                {
                    ViewBag.IsExist      = true;
                    ViewBag.IsChangeable = true;

                    if ((ts.TimeSheetStatus != "In Progress") & (ts.TimeSheetStatus != "Denied"))
                    {
                        bool changeable = false;
                        ViewBag.IsChangeable = changeable;
                    }

                    if (ts.TimeSheetStatus == "Denied")
                    {
                        ts.TimeSheetStatus = "In Progress";
                    }

                    we.WorkHours = thisDay.WorkHours;
                    we.ProjID    = thisDay.ProjID;
                    we.TaskID    = thisDay.TaskID;

                    WorkEntry thisWE = new WorkEntry()
                    {
                        EmpID            = we.EmpID,
                        possibleProjects = Employee.GetProjects(we.EmpID),
                        possibleTasks    = Project.GetTasks(we.ProjID),
                        WorkDate         = we.WorkDate,
                        WorkHours        = we.WorkHours,
                        TimeSheetID      = we.TimeSheetID,
                        WorkEntryID      = we.WorkEntryID,
                        ProjID           = we.ProjID,
                        TaskID           = we.TaskID,
                    };

                    //dc.Entry(ts).State = System.Data.Entity.EntityState.Modified;
                    dc.Entry(we).State = System.Data.Entity.EntityState.Modified;
                    try
                    {
                        dc.SaveChanges();
                        message             = "Time updated successfully.";
                        TempData["message"] = message;

                        //return View(thisWE);
                        return(Redirect("Week/" + tid));
                    }
                    catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
                    {
                        //more descriptive error for validation problems
                        Exception exception = dbEx;
                        foreach (var validationErrors in dbEx.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                string message1 = string.Format("{0}:{1}",
                                                                validationErrors.Entry.Entity.ToString(),
                                                                validationError.ErrorMessage);

                                //create a new exception inserting the current one
                                //as the InnerException
                                exception = new InvalidOperationException(message1, exception);
                            }
                        }
                        //error for UI
                        ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
                        throw exception;
                    }
                }
            }
        }
        public ActionResult WorkEntry(int?tid, int?wid, string DOW)
        {
            if (Request.Cookies["UserID"].Value == null)
            {
                //Redirect to login if it can't find user id
                TempData["message"] = "Please log in.";
                System.Diagnostics.Debug.WriteLine("User not logged in. Redirecting to login page.\n");
                return(RedirectToAction("LandingPage", "Home"));
            }

            ViewBag.IsExist     = false;
            ViewBag.TimeSheetID = (int)tid;
            ViewBag.UserID      = Int32.Parse(Request.Cookies["UserID"].Value);

            Entities dc = new Entities();

            if (tid == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (wid == null)
            {
                if (DOW != null)
                {
                    ViewBag.DayOfWeek    = DOW;
                    ViewBag.IsChangeable = true;
                    return(View());
                }
                else
                {
                    TempData["message"] = "Date of week not captured.";
                    return(HttpNotFound());
                }
            }
            else //wid is not null
            {
                ViewBag.IsExist      = true;
                ViewBag.IsChangeable = true;

                timesheet ts = dc.timesheets.Find(tid);
                if ((ts.TimeSheetStatus != "In Progress") & (ts.TimeSheetStatus != "Denied"))
                {
                    bool changeable = false;
                    ViewBag.IsChangeable = changeable;
                }

                var       w      = dc.workentries.FirstOrDefault(p => p.WorkEntryID == wid);
                WorkEntry thisWE = new WorkEntry()
                {
                    EmpID            = w.EmpID,
                    possibleProjects = Employee.GetProjects(w.EmpID),
                    possibleTasks    = Project.GetTasks(w.ProjID),
                    WorkDate         = w.WorkDate,
                    WorkHours        = w.WorkHours,
                    TimeSheetID      = w.TimeSheetID,
                    WorkEntryID      = w.WorkEntryID,
                    ProjID           = w.ProjID,
                    TaskID           = w.TaskID
                };
                ViewBag.DayOfWeek = thisWE.WorkDate;
                return(View(thisWE));
            }
        }
        // View week entry (edit)
        public ActionResult Week(int?id)
        {
            ViewBag.IsChangeable = true;
            //if (!Response.Cookies.AllKeys.Contains("UserID"))
            //{
            //    //Redirect to login if it can't find user id
            //    TempData["message"] = "Please log in.";
            //    System.Diagnostics.Debug.WriteLine("User not logged in. Redirecting to login page.\n");
            //    return RedirectToAction("LandingPage", "Home");
            //}

            ViewBag.UserID = Request.Cookies["UserID"].Value;

            if (id == null)
            {
                return(HttpNotFound());
            }

            ViewBag.TimeSheetID = (int)id;

            Entities dc = new Entities();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            timesheet ts = dc.timesheets.Find(id);

            //disable edit buttons
            if ((ts.TimeSheetStatus != "In Progress") & (ts.TimeSheetStatus != "Denied"))
            {
                bool changeable = false;
                ViewBag.IsChangeable = changeable;
            }

            List <WorkEntry> thisWeekEntries = new List <WorkEntry>();

            foreach (var item in ts.workentries)
            {
                thisWeekEntries.Add(
                    new WorkEntry()
                {
                    WorkDate    = item.WorkDate,
                    WorkHours   = item.WorkHours,
                    WorkEntryID = item.WorkEntryID,
                    WorkTSDate  = item.timesheet.payrollcycle.PayrollCycleStart,
                    ProjName    = item.project1.ProjName,
                    TaskName    = item.task.TaskName,
                }
                    );
            }

            Timesheet thisTimesheet = new Timesheet()
            {
                PayrollCycleStart    = ts.payrollcycle.PayrollCycleStart,
                TimesheetWorkEntries = thisWeekEntries,
            };

            if (ts == null)
            {
                return(HttpNotFound());
            }

            return(View(thisTimesheet));
        }