public void Add(DailyLeave dailyLeave)
 {
     if (IsExist(dailyLeave))
     {
         var existingObject = GetByID(dailyLeave.ID);
         FillEntity(existingObject, dailyLeave);
     }
     else
     {
         _RASContext.DailyLeaves.Add(dailyLeave);
     }
 }
 public void FillEntity(DailyLeave dailyLeave, DailyLeave entity)
 {
     dailyLeave.ID              = entity.ID;
     dailyLeave.ProjectID       = entity.ProjectID;
     dailyLeave.SuccessorID     = entity.SuccessorID;
     dailyLeave.Type            = entity.Type;
     dailyLeave.OrganisationId  = entity.OrganisationId;
     dailyLeave.RegisterDate    = entity.RegisterDate;
     dailyLeave.From            = entity.From;
     dailyLeave.To              = entity.To;
     dailyLeave.WorkflowStageID = entity.WorkflowStageID;
     dailyLeave.UserID          = entity.UserID;
 }
示例#3
0
        public IActionResult SaveDailyLeave(DailyLeave dailyLeave)
        {
            try
            {
                if (dailyLeave == null)
                {
                    throw new Exception("اطلاعات مرخصی ارسال نشده است");
                }
                if (string.IsNullOrEmpty(dailyLeave.PersianDateFrom))
                {
                    throw new Exception("تاریخ شروع ارسال نشده است");
                }
                if (string.IsNullOrEmpty(dailyLeave.PersianDateTo))
                {
                    throw new Exception("تاریخ پایان ارسال نشده است");
                }

                var currentUser = new UserHelper().GetCurrent(this._uow, this.UserName);

                DailyLeaveManager dlm = new DailyLeaveManager(this._uow);
                ProjectManager    pm  = new ProjectManager(this._uow);
                UserManager       um  = new UserManager(this._uow);
                dailyLeave.UserID         = currentUser.ID;
                dailyLeave.OrganisationId = currentUser.OrganizationUnitID;

                if (dailyLeave.ProjectID == Guid.Empty)
                {
                    dailyLeave.ProjectID = null;
                }
                if (dailyLeave.SuccessorID == Guid.Empty)
                {
                    dailyLeave.SuccessorID = null;
                }

                if (dailyLeave.ID == Guid.Empty)
                {
                    dlm.Add(dailyLeave);
                }
                else
                {
                    dlm.Edit(dailyLeave);
                }

                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(this.ReturnError(ex, "خطا در ذخیره مرخصی روزانه"));
            }
        }
示例#4
0
        // GET: DailyLeaves/Details/5
        public ActionResult Details(Guid id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DailyLeaveManager dlm        = new DailyLeaveManager(UOW);
            DailyLeave        dailyLeave = dlm.GetByID(id);

            if (dailyLeave == null)
            {
                return(HttpNotFound());
            }
            return(View(new DailyLeaveAssembles().ToJson(dailyLeave)));
        }
        // GET: DailyLeaves/Details/5
        public ActionResult Details(Guid id)
        {
            if (id == Guid.Empty)
            {
                return(this.StatusCode(statusCode: (int)System.Net.HttpStatusCode.BadRequest, "آی دی مرخصی ارسال نشده است"));
            }
            DailyLeaveManager dlm        = new DailyLeaveManager(UOW);
            DailyLeave        dailyLeave = dlm.GetByID(id);

            if (dailyLeave == null)
            {
                return(this.StatusCode(statusCode: (int)System.Net.HttpStatusCode.NotFound, "مرخصی با آی دی ارسال شده یافت نشد"));
            }
            return(View(new DailyLeaveAssembles().ToJson(dailyLeave)));
        }
        public ActionResult Edit(DailyLeave dailyLeave)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);

            if (ModelState.IsValid)
            {
                dlm.Edit(dailyLeave);

                return(RedirectToAction("Index"));
            }
            ViewBag.ProjectID   = new SelectList(pm.GetByUser(this.CurrentUser), "ID", "Title");
            ViewBag.SuccessorID = new SelectList(um.GetAll(), "ID", "UserTitle");
            return(View(dailyLeave));
        }
        public DailyLeaveJson ToJson(DailyLeave dailyLeave)
        {
            DailyLeaveJson result = new DailyLeaveJson();

            result.ID              = dailyLeave.ID;
            result.RejisterDate    = DateUtility.GetPersianDate(dailyLeave.RegisterDate);
            result.From            = DateUtility.GetPersianDate(dailyLeave.From);
            result.TO              = DateUtility.GetPersianDate(dailyLeave.To);
            result.Organisation    = dailyLeave.OrganisationId != null? dailyLeave.Organisation.Title : "فاقد واحد سازمانی";
            result.PersonnelNumber = dailyLeave.User.Code != null ?  dailyLeave.User.Code : "فاقد کد پرسنلی";
            result.ProjectTitle    = dailyLeave.Project != null? dailyLeave.Project.Title:"فاقد پروژه";
            result.Type            = Enum.IsDefined(dailyLeave.Type) ? dailyLeave.Type.GetDisplayName() :"فاقد نوع";
            result.Successor       = dailyLeave.Successor != null?dailyLeave.Successor.UserTitle.ToString() : "فاقد جانشین";

            result.UserTitle = dailyLeave.User.UserTitle;
            return(result);
        }
示例#8
0
        public ActionResult Edit([Bind(Include = "ID,From,To,SuccessorID,ProjectID,Type")] DailyLeave dailyLeave)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);
            var currentUser       = new UserHelper().GetCurrent();

            if (ModelState.IsValid)
            {
                dlm.Edit(dailyLeave);

                return(RedirectToAction("Index"));
            }
            ViewBag.ProjectID   = new SelectList(pm.GetByUser(currentUser), "ID", "Title");
            ViewBag.SuccessorID = new SelectList(um.GetAll(), "ID", "UserTitle");
            return(View(dailyLeave));
        }
示例#9
0
        // POST: DailyLeaves/Approve/5



        public ActionResult Deny(Guid id)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);
            var currentUser       = new UserHelper().GetCurrent();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DailyLeave dailyLeave = dlm.GetByID(id);

            if (dailyLeave == null)
            {
                return(HttpNotFound());
            }
            return(View(new DailyLeaveAssembles().ToJson(dailyLeave)));
        }
        // GET: DailyLeaves/Edit/5
        public ActionResult Edit(Guid id)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);

            if (id == Guid.Empty)
            {
                return(this.StatusCode(statusCode: (int)System.Net.HttpStatusCode.BadRequest, "آی دی مرخصی ارسال نشده است"));
            }
            DailyLeave dailyLeave = dlm.GetByID(id);

            if (dailyLeave == null)
            {
                return(this.StatusCode(statusCode: (int)System.Net.HttpStatusCode.NotFound, "مرخصی با آی دی ارسال شده یافت نشد"));
            }
            ViewBag.ProjectID   = new SelectList(pm.GetByUser(this.CurrentUser), "ID", "Title");
            ViewBag.SuccessorID = new SelectList(um.GetAll(), "ID", "UserTitle");
            return(View(dailyLeave));
        }
        public ActionResult Create(DailyLeave dailyLeave)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);

            dailyLeave.UserID         = this.CurrentUser.ID;
            dailyLeave.OrganisationId = this.CurrentUser.OrganizationUnitID;

            if (ModelState.IsValid)
            {
                dlm.Add(dailyLeave);
                return(RedirectToAction("Index"));
            }


            ViewBag.ProjectID   = new SelectList(pm.GetByUser(this.CurrentUser), "ID", "Title");
            ViewBag.SuccessorID = new SelectList(um.GetAll(), "ID", "UserTitle");
            return(View(dailyLeave));
        }
示例#12
0
        public ActionResult Create([Bind(Include = "ID,From,To,PersianDateFrom,PersianDateTo,SuccessorID,ProjectID,Type")] DailyLeave dailyLeave)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);
            var currentUser       = new UserHelper().GetCurrent();

            dailyLeave.UserID         = currentUser.ID;
            dailyLeave.OrganisationId = currentUser.OrganizationUnitID;

            if (ModelState.IsValid)
            {
                dlm.Add(dailyLeave);
                return(RedirectToAction("Index"));
            }


            ViewBag.ProjectID   = new SelectList(pm.GetByUser(currentUser), "ID", "Title");
            ViewBag.SuccessorID = new SelectList(um.GetAll(), "ID", "UserTitle");
            return(View(dailyLeave));
        }
示例#13
0
        // GET: DailyLeaves/Edit/5
        public ActionResult Edit(Guid id)
        {
            DailyLeaveManager dlm = new DailyLeaveManager(UOW);
            ProjectManager    pm  = new ProjectManager(UOW);
            UserManager       um  = new UserManager(UOW);
            var currentUser       = new UserHelper().GetCurrent();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DailyLeave dailyLeave = dlm.GetByID(id);

            if (dailyLeave == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ProjectID   = new SelectList(pm.GetByUser(currentUser), "ID", "Title");
            ViewBag.SuccessorID = new SelectList(um.GetAll(), "ID", "UserTitle");
            return(View(dailyLeave));
        }
 public bool IsExist(DailyLeave dailyLeave)
 {
     return(_RASContext.DailyLeaves.Any(x => x.ID == dailyLeave.ID));
 }
        public void Edit(DailyLeave dailyLeave)
        {
            var editdailyLeave = GetByID(dailyLeave.ID);

            FillEntity(editdailyLeave, dailyLeave);
        }
 public void Delete(DailyLeave dailyLeave)
 {
     _RASContext.DailyLeaves.Remove(dailyLeave);
 }
示例#17
0
        private void approveDenyDailyLeave(bool isApprove, Domain.User currentUser, TimeSheetManager timeSheetManager, DailyLeaveManager dlm, DailyLeave dailyLeave, string userDescription)
        {
            if (dailyLeave.WorkflowStage.Type == "Final")
            {
                throw new Exception("هم اکنون تایید نهایی می باشد");
            }
            var isManager = timeSheetManager.IsUserOrganisationMnager(dailyLeave.UserID, currentUser);

            if (dailyLeave.WorkflowStage.Type == "Manager" && !isManager)
            {
                throw new Exception("آیتم منتظر تایید مدیر ستادی است");
            }

            var data = new ApproveAndDenyJson()
            {
                id              = dailyLeave.ID.ToString(),
                date            = DateTime.Now,
                description     = userDescription,
                workflowStageID = dailyLeave.WorkflowStageID
            };

            if (isApprove)
            {
                dlm.Approve(dailyLeave);
                HistoryUtilities.RegisterApproveHistory(data, this._uow, currentUser);
            }
            else
            {
                dlm.Deny(dailyLeave);
                HistoryUtilities.RegisterApproveHistory(data, this._uow, currentUser);
            }
        }
示例#18
0
        public IActionResult SaveDailyLeave(DailyLeave dailyLeave)
        {
            try
            {
                if (dailyLeave == null)
                {
                    throw new Exception("اطلاعات مرخصی ارسال نشده است");
                }
                if (string.IsNullOrEmpty(dailyLeave.PersianDateFrom))
                {
                    throw new Exception("تاریخ شروع ارسال نشده است");
                }
                if (string.IsNullOrEmpty(dailyLeave.PersianDateTo))
                {
                    throw new Exception("تاریخ پایان ارسال نشده است");
                }

                var currentUser = new UserHelper().GetCurrent(this._uow, this.UserName);

                DailyLeaveManager dlm = new DailyLeaveManager(this._uow);
                ProjectManager    pm  = new ProjectManager(this._uow);
                UserManager       um  = new UserManager(this._uow);
                dailyLeave.UserID         = currentUser.ID;
                dailyLeave.OrganisationId = currentUser.OrganizationUnitID;

                if (dailyLeave.ProjectID == Guid.Empty)
                {
                    dailyLeave.ProjectID = null;
                }
                if (dailyLeave.SuccessorID == Guid.Empty)
                {
                    dailyLeave.SuccessorID = null;
                }

                if (dailyLeave.ID == Guid.Empty)
                {
                    dlm.Add(dailyLeave);
                }
                else
                {
                    dlm.Edit(dailyLeave);
                }

                var data = new ApproveAndDenyJson()
                {
                    id              = dailyLeave.ID.ToString(),
                    date            = DateTime.Now,
                    description     = "",
                    workflowStageID = dailyLeave.WorkflowStageID
                };


                HistoryUtilities.RegisterApproveHistory(data, this._uow, currentUser);

                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(this.ReturnError(ex, "خطا در ذخیره مرخصی روزانه"));
            }
        }