public async Task <ActionResult <RemisionDto> > Post([FromBody] RemisionAltaDto itemDto) { try { if (itemDto.fecha_remision > DateTime.Now) { var dto = new RemisionDto(); dto.error = $"La fecha de remisión no puede ser mayor a la fecha actual"; return(BadRequest(dto)); } var itemEntity = _mapper.Map <Remision>(itemDto); var proveedor = await _proveedorRepository.GetProveedorPorId(itemDto.proveedor_id); itemEntity.estado_remision_id = 1; itemEntity.fecha_pago = itemDto.fecha_remision.AddDays(proveedor.dias_credito); itemEntity.comentarios = itemDto.comentarios == null ? "" : itemDto.comentarios; _baseRepository.Add(itemEntity); if (await _baseRepository.SaveChangesAsync()) { return(Ok(_mapper.Map <RemisionDto>(itemEntity))); } } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(BadRequest()); }
public async Task <ActionResult <Remision> > UpdateRemision([FromBody] RemisionAltaDto itemDto) { try { var itemOld = await _repository.GetRemisionNoDtoPorId(itemDto.Id); if (itemOld == null) { itemOld = new Remision(); itemOld.error = $"La remision {itemDto.Id}, no existe en la base de datos."; return(BadRequest(itemOld)); } if (itemDto.fecha_remision > DateTime.Now) { itemOld.error = $"La fecha de remisión no puede ser mayor a la fecha actual"; return(BadRequest(itemOld)); } var proveedor = await _proveedorRepository.GetProveedorPorId(itemDto.proveedor_id); itemOld.fecha_pago = itemDto.fecha_remision.AddDays(proveedor.dias_credito); _mapper.Map(itemDto, itemOld); var updated = await _baseRepository.SaveChangesAsync(); return(Ok(_mapper.Map <RemisionDto>(itemOld))); } catch (Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }