public static IngresoEntidad Map(CrearIngresoDTO ingresoDTO) { IngresoEntidad ingreso = new IngresoEntidad(); List <DetalleIngresoEntidad> lstDetalle = new List <DetalleIngresoEntidad>(); if (ingresoDTO != null) { ingreso.PersonasId = ingresoDTO.PersonaId; ingreso.TipoComprobante = ingresoDTO.TipoComprobante; ingreso.SerieComprobante = ingresoDTO.SerieComprobante; ingreso.Impuesto = ingresoDTO.Impuesto; ingreso.Total = ingresoDTO.Total; ingreso.Estatus = "Act"; if (ingresoDTO.Detalles != null) { foreach (var item in ingresoDTO.Detalles) { lstDetalle.Add( new DetalleIngresoEntidad { ProductosId = item.ProductoId, Cantidad = item.Cantidad, Precio = item.Precio } ); } } ingreso.DetalleIngresos = lstDetalle; } return(ingreso); }
public async Task <ActionResult> CrearIngresosAsync([FromBody] CrearIngresoDTO ingresoDTO) { var proveedor = await _proveedoresServicios.ObtenerProveedorIdAsync(ingresoDTO.PersonaId); if (proveedor == null) { return(NotFound("Proveedor no encontrado")); } if (ingresoDTO.Detalles == null) { return(BadRequest("El detalle del ingreso debe contener uno o más productos")); } foreach (var detalle in ingresoDTO.Detalles) { if (await _productosServicios.ObtenerProductoPorIdAsync(detalle.ProductoId) == null) { return(BadRequest("Uno o más productos no estan registrados en base de datos. Intentelo de nuevo")); } } var ingreso = IngresoMapper.Map(ingresoDTO); var respuesta = await _ingresosServicios.CrearIngresoDetalle(ingreso); if (respuesta == null) { return(BadRequest("El ingreso no pudo crearse correctamente")); } return(Ok()); }