Exemple #1
0
        public async Task <JsonResult> CreateEditWorker(WorkerVM worker)
        {
            try
            {
                if (worker.Id > 0)
                {
                    var curWorker = _unitOfWork.Workers.FindById(worker.Id);
                    curWorker.Name = worker.Name;
                    curWorker.Type = (int)worker.WorkerType;
                }
                else
                {
                    var newWroker = new Worker()
                    {
                        Name = worker.Name,
                        Type = (int)worker.WorkerType
                    };
                    _unitOfWork.Workers.Create(newWroker);
                }

                await _unitOfWork.SaveAsync();

                return(Json(new { success = true, message = "Данные сотрудника изменены." }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                ModelState.AddModelError("", $"Произошла ошибка, обратитесь за помощью к администратору. {ex.Message}");
                return(Json(new { success = false, errors = ModelState.Errors() }, JsonRequestBehavior.AllowGet));
            }
        }
Exemple #2
0
        public ActionResult Create(Worker worker)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new WorkerVM
                {
                    worker = worker,
                    List   = context.States.ToList(),
                    List1  = context.Countries.ToList()
                };

                return(View("Create", viewModel));
            }
            if (worker.ID == 0)
            {
                context.Workers.Add(worker);
            }
            else
            {
                State   m1         = new State();
                Country m2         = new Country();
                var     workerInDb = context.Workers.Single(c => c.ID == worker.ID);
                workerInDb.Name      = worker.Name;
                workerInDb.Birthdate = worker.Birthdate;
                worker.State         = m1.state;
                workerInDb.State     = worker.State;
                worker.Country       = m2.country;
                workerInDb.Country   = worker.Country;
            }

            context.SaveChanges();

            return(RedirectToAction("Index"));
        }
Exemple #3
0
        public IActionResult Create()
        {
            WorkerVM workerModel = new WorkerVM
            {
                Shops       = _context.Shops.ToList(),
                Departments = _context.Departments.ToList(),
                Employees   = _context.Employees.Where(x => x.Worker == null).ToList(),
            };

            return(View(workerModel));
        }
Exemple #4
0
        public ActionResult Create()
        {
            var states    = context.States.ToList();
            var countries = context.Countries.ToList();
            var viewModel = new WorkerVM
            {
                worker = new Worker(),
                List   = states,
                List1  = countries
            };

            return(View("Create", viewModel));
        }
Exemple #5
0
        public ActionResult CreateEditWorker(int id = 0)
        {
            WorkerVM model  = new WorkerVM();
            var      worker = _unitOfWork.Workers.FindById(id);

            if (id > 0)
            {
                model.Id         = worker.Id;
                model.Name       = worker.Name;
                model.Type       = worker.Type;
                model.WorkerType = (WorkerTypes)worker.Type;
            }

            return(PartialView("_CreateEditWorker", model));
        }
Exemple #6
0
        public async Task <IActionResult> Create(WorkerVM workerVM)
        {
            if (!ModelState.IsValid)
            {
                workerVM.Shops       = _context.Shops.ToList();
                workerVM.Employees   = _context.Employees.Where(x => x.Worker == null).ToList();
                workerVM.Departments = _context.Departments.ToList();
                return(View(workerVM));
            }
            Worker worker = new Worker();

            if (workerVM.SelectedShop == 0)
            {
                worker.ShopId = null;
            }

            worker.ShopId     = workerVM.SelectedShop;
            workerVM.Password = $"{Path.GetRandomFileName().ToUpper()}_{Path.GetRandomFileName().ToLower()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";

            worker.Email      = workerVM.Email;
            worker.EmployeeId = workerVM.SelectedEmployee;
            worker.PositionId = workerVM.SelectedPosition;
            worker.UserName   = workerVM.Email;
            worker.Account    = _context.Employees.Where(x => x.ID == workerVM.SelectedEmployee).Select(x => x.Name).FirstOrDefault() + " "
                                + _context.Employees.Where(x => x.ID == workerVM.SelectedEmployee).Select(x => x.Surname).FirstOrDefault();
            worker.PassText  = workerVM.Password;
            worker.BeginDate = workerVM.StartDate;
            worker.Worked    = true;


            IdentityResult result = await _userManager.CreateAsync(worker, workerVM.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                workerVM.Employees   = _context.Employees.ToList();
                workerVM.Departments = _context.Departments.ToList();
                return(View(workerVM));
            }
            await _userManager.AddToRoleAsync(worker, Roles.Worker.ToString());

            return(RedirectToAction(nameof(List)));
        }
Exemple #7
0
        public async Task <IActionResult> Edit(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var worker = await _userManager.FindByIdAsync(id);

            WorkerVM workersView = new WorkerVM
            {
                Departments = _context.Departments.ToList(),
                Employees   = _context.Employees.ToList(),
                Name        = _context.Employees.Where(x => x.ID == worker.EmployeeId).Select(x => x.Name).FirstOrDefault(),
                Surname     = _context.Employees.Where(x => x.ID == worker.EmployeeId).Select(x => x.Surname).FirstOrDefault(),
                Position    = _context.Positions.Where(x => x.ID == worker.PositionId).Select(x => x.Name).FirstOrDefault(),
                Email       = worker.Email,
                Department  = _context.Positions.Include(m => m.Department).Where(x => x.ID == worker.PositionId).Select(m => m.Department.Name).FirstOrDefault()
            };

            return(View(workersView));
        }
Exemple #8
0
        public async Task <IActionResult> Edit(string id, WorkerVM workersView)
        {
            var workers = await _userManager.FindByIdAsync(id);


            string companyWorkPlaceId       = $"{Path.GetRandomFileName()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";
            string companyWorkPlaceBonusId  = $"{Path.GetRandomFileName().ToLower()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";
            string companyWorkPlaceAbsensId = $"{Path.GetRandomFileName().ToUpper()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";

            workersView.Departments = _context.Departments.ToList();
            workersView.Employees   = _context.Employees.ToList();
            workersView.Name        = _context.Employees.Where(x => x.ID == workers.EmployeeId).Select(x => x.Name).FirstOrDefault();
            workersView.Surname     = _context.Employees.Where(x => x.ID == workers.EmployeeId).Select(x => x.Surname).FirstOrDefault();
            workersView.Position    = _context.Positions.Where(x => x.ID == workers.PositionId).Select(x => x.Name).FirstOrDefault();
            workersView.Email       = workers.Email;
            workersView.Department  = _context.Positions.Include(m => m.Department).Where(x => x.ID == workers.PositionId).Select(m => m.Department.Name).FirstOrDefault();
            workersView.Password    = workers.PassText;

            if (!ModelState.IsValid)
            {
                return(View(workersView));
            }

            if (workersView.SelectedPosition == workers.PositionId)
            {
                return(View(workersView));
            }

            CompanyWorkPlace companyWorkPlace = new CompanyWorkPlace
            {
                ID          = companyWorkPlaceId,
                EmployeeId  = workers.EmployeeId,
                ChangedDate = DateTime.Now,
                PositionId  = workersView.SelectedPosition
            };

            _context.CompanyWorkPlaces.Add(companyWorkPlace);

            CompanyWorkPlaceBonus companyWorkPlaceBonus = new CompanyWorkPlaceBonus
            {
                ID = companyWorkPlaceBonusId,
                CompanyWorkPlaceId = companyWorkPlaceId,
                BonusSalary        = _context.WorkerBonus.Where(x => x.WorkerId == workers.Id).Select(x => x.BonusSalary).Sum()
            };

            _context.CompanyWorkPlaceBonus.Add(companyWorkPlaceBonus);

            CompanyWorkPlaceAbsence cwpa = new CompanyWorkPlaceAbsence
            {
                ID = companyWorkPlaceAbsensId,
                CompanyWorkPlaceId = companyWorkPlaceId,
                ExcusableAbsens    = _context.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsenceId == 1).Count(),
                UnExcusableAbsens  = _context.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsenceId == 2).Count()
            };

            _context.CompanyWorkPlaceAbsences.Add(cwpa);

            Worker worker = new Worker
            {
                BeginDate  = DateTime.Now,
                Account    = workers.Account,
                Email      = workers.Email,
                EmployeeId = workers.EmployeeId,
                PassText   = workers.PassText,
                UserName   = workers.UserName,
                PositionId = workersView.SelectedPosition
            };

            _context.WorkerBonus.RemoveRange(_context.WorkerBonus.Where(x => x.WorkerId == workers.Id).ToList());
            _context.WorkerAbsens.RemoveRange(_context.WorkerAbsens.Where(x => x.WorkerId == workers.Id).ToList());

            await _userManager.DeleteAsync(workers);

            IdentityResult result = await _userManager.CreateAsync(worker, workers.PassText);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            await _userManager.AddToRoleAsync(worker, Roles.Worker.ToString());

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(List)));
        }