Ejemplo n.º 1
0
        public IResult Add(ProjectWorker projectWorkers)
        {
            var getWorkerDepartments       = _workerDepartmentTypeService.GetByWorkerID(projectWorkers.WorkerID).Data;
            var getDepartmentTypeInSection = _projectSectionDepartmentService.GetByID(projectWorkers.ProjectSectionDepartmentID).Data;
            var getProjectSection          = _projectSectionService.GetBySectionID(getDepartmentTypeInSection.ProjectSectionID).Data;
            var getProject = _projectService.GetByID(getProjectSection.ProjectID).Data;

            IResult result = BusinessRules.Run(CheckProjectWorkerCapacityIsFull(getProject), CheckIfWorkerHasDepartment(getWorkerDepartments, getDepartmentTypeInSection));

            if (result != null)
            {
                return(result);
            }

            projectWorkers.Status = true;
            _projectWorkerDal.Add(projectWorkers);

            getProject.ActiveWorkerCount += 1;
            var getProjectMapper = _mapper.Map <Project>(getProject);

            _projectService.Update(getProjectMapper);

            getProjectSection.WorkerCount += 1;
            _projectSectionService.Update(getProjectSection);

            return(new SuccessResult(Messages.ProjectWorkerAdded));
        }
Ejemplo n.º 2
0
        public IResult Add(ProjectWorkerWorkingTime projectWorkerWorkingTime)
        {
            _projectWorkerWorkingTimeDal.Add(projectWorkerWorkingTime);

            var getProjectWorker            = _projectWorkerService.GetByID(projectWorkerWorkingTime.ProjectWorkerID).Data;
            var getProjectSectionDepartment = _projectSectionDepartmentService.GetByID(getProjectWorker.ProjectSectionDepartmentID).Data;
            var getProjectSection           = _projectSectionService.GetBySectionID(getProjectSectionDepartment.ProjectSectionID).Data;
            var getProject      = _projectService.GetByID(getProjectSection.ProjectID).Data;
            var getWorker       = _workerService.GetByID(getProjectWorker.WorkerID).Data;
            var getWorkerSalary = _salaryService.GetByWorkerID(getWorker.WorkerID).Data;

            decimal getWorkTime = Convert.ToDecimal(projectWorkerWorkingTime.DailyFinishHour) - Convert.ToDecimal(projectWorkerWorkingTime.DailyStartHour);

            getWorkTime.ToString().Insert(1, ".");


            getProject.RemainingProjectTime        -= getWorkTime;
            getProjectSection.RemainingSectionTime -= getWorkTime;

            var getProjectMapper = _mapper.Map <Project>(getProject);

            _projectService.Update(getProjectMapper);
            _projectSectionService.Update(getProjectSection);

            var WorkerEarnPrice = getWorkTime * getWorker.HourSalary;

            var getSalaryMapper = _mapper.Map <Salary>(getWorkerSalary);

            getSalaryMapper.SalaryAmount += WorkerEarnPrice;

            if ((DateTime.Now - Convert.ToDateTime(getSalaryMapper.SalaryDate)).Days > 30)
            {
                Salary salary = new Salary
                {
                    UserID       = getSalaryMapper.UserID,
                    WorkerID     = getSalaryMapper.WorkerID,
                    SalaryAmount = WorkerEarnPrice
                };
                _salaryService.Add(salary);
            }
            else
            {
                _salaryService.Update(getSalaryMapper);
            }

            return(new SuccessResult(Messages.AddedProjectWorkerWorkingTime));
        }
        public ActionResult Update(ProjectSection projectSection)
        {
            var result = _projectSectionService.Update(projectSection);

            if (result.Success)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }