Пример #1
0
        private vmBusinessTravelApplicationCreate GetAdditionalShowingInfo(vmBusinessTravelApplicationCreate vmBusinessTravelApplicationCreate)
        {
            var      loggedInEmployeeId = User.GetCurrentEmployeeId(db.Employee);
            Employee employee           = db.Employee.GetFirstOrDefaultWithRelatedData(c => c.Id == loggedInEmployeeId && c.IsActive == true && c.IsDeleted == false);

            if (employee.Superiror != null)
            {
                var applicationTo = new List <SelectListItem>();
                applicationTo.Add(new SelectListItem {
                    Text = employee.Superiror.MaskingId + " || " + employee.Superiror.FullName, Value = employee.Superiror.Id.ToString()
                });
                vmBusinessTravelApplicationCreate.ApplicationToList = applicationTo;
            }

            vmBusinessTravelApplicationCreate.EmployeeId  = employee.MaskingId;
            vmBusinessTravelApplicationCreate.Name        = employee.FullName;
            vmBusinessTravelApplicationCreate.Department  = employee.Department.Name;
            vmBusinessTravelApplicationCreate.Designation = employee.Designation.Name;
            vmBusinessTravelApplicationCreate.Department  = employee.Department.Name;
            vmBusinessTravelApplicationCreate.Username    = User.Identity.Name;

            vmBusinessTravelApplicationCreate.ApplicationStatusList = GetApplicationStatusList(employee.Id);

            return(vmBusinessTravelApplicationCreate);
        }
Пример #2
0
        public IActionResult Application()
        {
            vmBusinessTravelApplicationCreate vmBusinessTravelApplicationCreate = new vmBusinessTravelApplicationCreate();

            vmBusinessTravelApplicationCreate = GetAdditionalShowingInfo(vmBusinessTravelApplicationCreate);
            return(View(vmBusinessTravelApplicationCreate));
        }
Пример #3
0
        private bool AddBusinessTravelApplication(vmBusinessTravelApplicationCreate vmBusinessTravelApplicationCreate)
        {
            bool isBusinessTravelApplicationAdded = false;

            BusinessApplication businessApplication = new BusinessApplication();
            var      loggedInEmployeeId             = User.GetCurrentEmployeeId(db.Employee);
            Employee employee = db.Employee.GetFirstOrDefaultWithRelatedData(c => c.Id == loggedInEmployeeId && c.IsActive == true && c.IsDeleted == false);

            businessApplication.EmployeeId      = employee.Id;
            businessApplication.Purpose         = vmBusinessTravelApplicationCreate.Purpose;
            businessApplication.Where           = vmBusinessTravelApplicationCreate.Where;
            businessApplication.FromDate        = DateTime.Parse(vmBusinessTravelApplicationCreate.From);
            businessApplication.ToDate          = DateTime.Parse(vmBusinessTravelApplicationCreate.To);
            businessApplication.Status          = ApplicationStatus.Pending;
            businessApplication.ApplicationToId = vmBusinessTravelApplicationCreate.ApplicationTo;
            db.BusinessApplication.Add(businessApplication);

            isBusinessTravelApplicationAdded = db.Save() > 0;
            if (isBusinessTravelApplicationAdded)
            {
                db.ApplicationApproval.SetApprover(ApplicationType.BusinessTravel, loggedInEmployeeId, businessApplication.Id.ToString(), businessApplication.CreatedDate, businessApplication.CreatedBy);
            }

            return(isBusinessTravelApplicationAdded);
        }
Пример #4
0
        public IActionResult Application(vmBusinessTravelApplicationCreate vmBusinessTravelApplicationCreate)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    bool isOverlap = CheckLeaveOverlap(vmBusinessTravelApplicationCreate);
                    if (isOverlap == false)
                    {
                        bool isSaved = AddBusinessTravelApplication(vmBusinessTravelApplicationCreate);

                        if (isSaved)
                        {
                            vmBusinessTravelApplicationCreate model = new vmBusinessTravelApplicationCreate();
                            model = GetAdditionalShowingInfo(model);

                            model.IsModelValid = true;
                            model.ErrorMessage = "Business travel application successfully added. Please wait for the confirmation.";

                            return(Json(model));
                        }
                    }



                    vmBusinessTravelApplicationCreate.IsModelValid = false;
                    vmBusinessTravelApplicationCreate.ErrorMessage = "Business travel application can not be added. Something went wrong. Please try again.";

                    return(Json(vmBusinessTravelApplicationCreate));
                }

                vmBusinessTravelApplicationCreate.IsModelValid = false;
                vmBusinessTravelApplicationCreate.ErrorMessage = "Validation Failed!. Please try Again with valid data.";

                return(Json(vmBusinessTravelApplicationCreate));
            }
            catch
            {
                vmBusinessTravelApplicationCreate.IsModelValid = false;
                vmBusinessTravelApplicationCreate.ErrorMessage = "Business travel application can not be added. Something went wrong. Please try Again.";

                return(Json(vmBusinessTravelApplicationCreate));
            }
        }
Пример #5
0
        private bool CheckLeaveOverlap(vmBusinessTravelApplicationCreate vm)
        {
            var      loggedEmployeeId = User.GetCurrentEmployeeId(db.Employee);
            var      leaveApp         = db.BusinessApplication.GetAll().Where(x => x.EmployeeId == loggedEmployeeId);
            var      selectedDate     = new List <DateTime>();
            DateTime start            = DateTime.Parse(vm.From);
            DateTime end = DateTime.Parse(vm.To);

            for (DateTime counter = start; counter <= end; counter = counter.AddDays(1))
            {
                selectedDate.Add(counter);
            }

            bool flag = false;

            foreach (var item in leaveApp)
            {
                for (DateTime counter = item.FromDate; counter <= item.ToDate; counter = counter.AddDays(1))
                {
                    foreach (var selectedItem in selectedDate)
                    {
                        if (counter.Date == selectedItem.Date)
                        {
                            flag = true;
                            break;
                        }
                    }
                    if (flag == true)
                    {
                        break;
                    }
                }
                if (flag == true)
                {
                    break;
                }
            }

            return(flag);
        }