예제 #1
0
        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);
        }
예제 #2
0
        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());
        }