Exemplo n.º 1
0
        public async Task <IActionResult> PostWorkingTimeRegister([FromBody] WorkingTimeRegister workingTimeRegister)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var projectStage = _context.ProjectStages.Where(l => l.ProjectStageId == workingTimeRegister.ProjectStageId).Select(l => l.ProjectStageId).FirstOrDefault().ToString();

            var employee = _context.Employees.Where(l => l.EmployeeId == workingTimeRegister.EmployeeId).Select(l => l.EmployeeId).FirstOrDefault().ToString();

            var employeeRole = _context.EmployeeRoles.Where(l => l.EmployeeRoleId == workingTimeRegister.EmployeeRoleId).Select(l => l.EmployeeRoleId).FirstOrDefault().ToString();

            if (projectStage == "0" || employee == "0" || employeeRole == "0")
            {
                return(BadRequest("Pasirinktas nekorektiškas projekto etapas, darbuotojas arba darbuotojo rolė"));
            }

            workingTimeRegister = calculatePrice(workingTimeRegister);

            if (workingTimeRegister.Price == -1)
            {
                return(BadRequest("Neįvestas darbuotojo atlyginimas"));
            }

            workingTimeRegister.DateFrom = workingTimeRegister.DateFrom.ToLocalTime();
            workingTimeRegister.DateTo   = workingTimeRegister.DateTo.ToLocalTime();

            _context.WorkingTimeRegisters.Add(workingTimeRegister);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetWorkingTimeRegister", new { id = workingTimeRegister.WorkingTimeRegisterId }, workingTimeRegister));
        }
Exemplo n.º 2
0
        public WorkingTimeRegister createRegister(int id, double price, string date)
        {
            var dateTo = DateTime.ParseExact(date, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
            WorkingTimeRegister workingTimeRegister = new WorkingTimeRegister()
            {
                ProjectStageId = id, Price = price, DateTo = dateTo
            };

            return(workingTimeRegister);
        }
        public WorkingTimeRegister createRegister(int id, double hours)
        {
            var dateTo = new DateTime(2020, 04, 10);
            WorkingTimeRegister workingTimeRegister = new WorkingTimeRegister()
            {
                EmployeeId = id, Hours = hours, Price = 0, DateTo = dateTo
            };

            return(workingTimeRegister);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> PutWorkingTimeRegister([FromRoute] int id, [FromBody] WorkingTimeRegister workingTimeRegister)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != workingTimeRegister.WorkingTimeRegisterId)
            {
                return(BadRequest("Užklausos ID nesutampa su formoje esančiu ID"));
            }

            var projectStage = _context.ProjectStages.Where(l => l.ProjectStageId == workingTimeRegister.ProjectStageId).Select(l => l.ProjectStageId).FirstOrDefault().ToString();

            var employee = _context.Employees.Where(l => l.EmployeeId == workingTimeRegister.EmployeeId).Select(l => l.EmployeeId).FirstOrDefault().ToString();

            var employeeRole = _context.EmployeeRoles.Where(l => l.EmployeeRoleId == workingTimeRegister.EmployeeRoleId).Select(l => l.EmployeeRoleId).FirstOrDefault().ToString();

            if (projectStage == "0" || employee == "0" || employeeRole == "0")
            {
                return(BadRequest("Pasirinktas nekorektiškas projekto etapas, darbuotojas arba darbuotojo rolė"));
            }

            workingTimeRegister = calculatePrice(workingTimeRegister);

            if (workingTimeRegister == null)
            {
                return(BadRequest("Neįvestas darbuotojo atlyginimas"));
            }

            workingTimeRegister.DateFrom = workingTimeRegister.DateFrom.ToLocalTime();
            workingTimeRegister.DateTo   = workingTimeRegister.DateTo.ToLocalTime();

            _context.Entry(workingTimeRegister).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!WorkingTimeRegisterExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemplo n.º 5
0
 public void CanCalculateCPI(double expexted, string date, double RPPrice, double WTPrice, string RPDateFrom, string RPDateTo,
                             string WTDateTo)
 {
     using (var context = new ProjectContext(CreateNewContextOptions()))
     {
         var        controller     = new CPIMeasuresController(context);
         int        ProjectStageId = 1;
         CPIMeasure cPIMeasure     = createCPIMeasure(ProjectStageId, date);
         context.CPIMeasures.Add(cPIMeasure);
         WorkingTimeRegister workingTimeRegister = createRegister(ProjectStageId, WTPrice, WTDateTo);
         context.WorkingTimeRegisters.Add(workingTimeRegister);
         ResourcePlan resourcePlan = createResourcePlan(ProjectStageId, RPPrice, RPDateTo, RPDateFrom);
         context.ResourcePlans.Add(resourcePlan);
         context.SaveChanges();
         CPIMeasure res = controller.calculateCPI(cPIMeasure);
         Assert.Equal(expexted, res.CPI);
         // Do all of your data access and assertions in here
     }
 }
        public void CanCalculatePrice(bool createEmployeeSalary, double expexted, double employeeSalary, double hours, double staff)
        {
            var controller = new WorkingTimeRegistersController(_context);
            int EmployeeId = 0;

            if (createEmployeeSalary)
            {
                Salary salary = createSalary(employeeSalary, staff);
                _context.Salaries.Add(salary);
                EmployeeId = 1000;
            }
            WorkingTimeRegister workingTimeRegister = createRegister(EmployeeId, hours);

            _context.WorkingTimeRegisters.Add(workingTimeRegister);
            _context.SaveChanges();
            WorkingTimeRegister res = controller.calculatePrice(workingTimeRegister);

            Assert.Equal(expexted, res.Price);
        }
Exemplo n.º 7
0
        public WorkingTimeRegister calculatePrice(WorkingTimeRegister workingTimeRegister)
        {
            WorkingTimeRegister register = workingTimeRegister;

            //int EmployeeId = _context.Employees.Where(l => l.EmployeeId == register.EmployeeId).Select(l => l.EmployeeId).FirstOrDefault();

            Salary salary = _context.Salaries.Where(l => l.EmployeeId == register.EmployeeId).Where(l => (l.DateTo == null || l.DateTo > register.DateTo) && l.DateFrom < register.DateTo).OrderByDescending(l => l.SalaryId).FirstOrDefault();

            if (salary == null)
            {
                register.Price = -1;
                return(register);
            }

            register.Price = (register.Hours * salary.EmployeeSalary) / (168 * salary.Staff);

            register.Price = Convert.ToDouble(String.Format("{0:0.00}", register.Price));

            return(register);
        }