public async Task <StockRecursoMaterialDTO> Create(UsuarioDTO userLogged, StockRecursoMaterialDTO dto) { var entity = _mapper.Map <StockRecursoMaterial>(dto); entity.CreationDate = DateTime.Now; entity.CreationUserId = userLogged.Id; entity.UpdateDate = DateTime.Now; entity.UpdateUserId = userLogged.Id; entity.Active = true; entity.IdEmpresa = userLogged.IdEmpresa; entity.CantidadDisponible = entity.CantidadTotal; entity.IdRecursoMaterial = dto.IdRecursoMaterial.Value; entity = await _stockRecursoMaterialRepository.Insert(entity); var entityDTO = _mapper.Map <StockRecursoMaterialDTO>(entity); var recursoMaterial = await _recursoMaterialRepository.GetBy(s => s.Id == dto.IdRecursoMaterial, s => s.IdRecursoNavigation); if (await _stockRecursoMaterialRepository.Any(s => s.Active == true && s.IdRecursoMaterial == recursoMaterial.Id && s.CantidadDisponible > 0)) { recursoMaterial.IdRecursoNavigation.IdEstado = EstadosEnum.Disponible.ToInt(); await _recursoMaterialRepository.Update(recursoMaterial); } return(entityDTO); }
public async Task <IActionResult> Update(int id, StockRecursoMaterialDTO dto) { if (ModelState.IsValid) { var entity = await _stockRecursoMaterialService.Update(this.Usuario, id, dto); return(Ok(entity)); } else { return(BadRequest(ModelState)); } }
public async Task <IActionResult> Create(StockRecursoMaterialDTO dto) { if (ModelState.IsValid) { dto = await _stockRecursoMaterialService.Create(this.Usuario, dto); return(Ok(dto)); } else { return(BadRequest(ModelState)); } }
public async Task <StockRecursoMaterialDTO> Update(UsuarioDTO userLogged, int id, StockRecursoMaterialDTO dto) { StockRecursoMaterial entity = _mapper.Map <StockRecursoMaterial>(dto); entity.UpdateDate = DateTime.Now; entity.UpdateUserId = userLogged.Id; var entityOG = await _stockRecursoMaterialRepository.GetById(id); entity.CreationDate = entityOG.CreationDate; entity.CreationUserId = entityOG.CreationUserId; entity.Active = true; entity.IdEmpresa = userLogged.IdEmpresa; if (dto.CantidadTotal < entityOG.CantidadDisponible) { entity.CantidadDisponible = entity.CantidadTotal - (entityOG.CantidadTotal - entityOG.CantidadDisponible); } else { entity.CantidadDisponible = entityOG.CantidadDisponible + (entity.CantidadTotal - entityOG.CantidadTotal); } entity = await _stockRecursoMaterialRepository.Update(id, entity); var entityDTO = _mapper.Map <StockRecursoMaterialDTO>(entity); var recursoMaterial = await _recursoMaterialRepository.GetBy(s => s.Id == dto.IdRecursoMaterial, s => s.IdRecursoNavigation); if (await _stockRecursoMaterialRepository.Any(s => s.Active == true && s.IdRecursoMaterial == recursoMaterial.Id && s.CantidadDisponible > 0)) { recursoMaterial.IdRecursoNavigation.IdEstado = EstadosEnum.Disponible.ToInt(); await _recursoMaterialRepository.Update(recursoMaterial); } else { recursoMaterial.IdRecursoNavigation.IdEstado = EstadosEnum.Asignado.ToInt(); await _recursoMaterialRepository.Update(recursoMaterial); } return(entityDTO); }