예제 #1
0
        public void SubListProdJsonMdl_idInt_ReturnTrue()
        {
            //Act
            var prueba = new SubListaProductosJson();

            prueba.id = 5;

            //Assert
            Assert.IsType <Int32>(prueba.id);
        }
예제 #2
0
        public void SubListProdJsonMdl_existenciaInt_ReturnTrue()
        {
            //Act
            var prueba = new SubListaProductosJson();

            prueba.id = 74855;

            //Assert
            Assert.IsType <Int32>(prueba.existencia);
        }
예제 #3
0
        public void SubListProdJsonMdl_descripcionString_ReturnTrue()
        {
            //Act
            var prueba = new SubListaProductosJson();

            prueba.descripcion = "Descripción de Prueba";

            //Assert
            Assert.IsType <string>(prueba.descripcion);
        }
예제 #4
0
        public void SubListProdJsonMdl_proveedorIdInt_ReturnTrue()
        {
            //Act
            var prueba = new SubListaProductosJson();

            prueba.proveedorId = 84485;

            //Assert
            Assert.IsType <Int32>(prueba.proveedorId);
        }
예제 #5
0
        /// <summary>
        /// Este Método devuelve los datos del inventario incompleto seleccionado
        /// Además devuelve la lista de Productos del proveedor asociado.
        /// Además devuelve una bandera por cada producto, dónde indica Si este fue seleccionado o no.
        /// para que el usuario pueda acceder a estos y realizar las modificaciones necesarias para continuar con el inventario.
        /// Para acceder a este método, se debe enviar un post request a: http://localhost:52766/api/Inventario/modifInvent
        /// La petición debe contener un Json el id del Inventario.
        /// </summary>
        /// <returns>IActionResult Json con la Lista de Inventarios con Estatus Incompleto</returns>
        public IActionResult ModificaInventario([FromBody] InventarioJson InventModif)
        {
            /*Declaracion de variables*/
            //int InvId = InventModif.InvId;
            string InvNombre;
            string InvFolio;


            var header = Request.Headers["Authorization"].ToString();

            header = header.ToString().Substring("Bearer ".Length).Trim();
            var ArrHeader = header.Split(".");
            var payload   = ArrHeader[1].ToString();

            /*Inicia la Validación de la petición: */
            bool valida;

            valida = new Validaciones().EjecutaValidacion(payload, "Lista Inventario Incompleto");
            if (valida)
            {
                try
                {
                    using (var context = new Oxxo2.DataAccess.OxxoContext())
                    {
                        //Tomo los datos del Inventario del Id que recibo como parámetro:
                        var InventIncompleto = context.Inventario.FromSql("spGetInventarioById @p0", InventModif.InvId).ToList();

                        //Si el inventario existe:
                        if (InventIncompleto.Count > 0)
                        {
                            InvNombre = InventIncompleto.ElementAt(0).InventarioNombre.ToString();
                            InvFolio  = InventIncompleto.ElementAt(0).Folio_Goma.ToString();

                            // Hacer procedimiento que regrese la lista de ProductosInventario por Id de Inventario
                            var ProductosInventario = context.InventarioProducto.FromSql("spGetProdInventIncompleto @p0", InventModif.InvId).ToList();

                            if (ProductosInventario.Count <= 0) //Este if es para los Inventarios que NO tienen producto
                            {
                                InventarioJson Respuesta = new InventarioJson
                                {
                                    InvId            = InventModif.InvId,
                                    InventarioNombre = InvNombre,
                                    FolioGoma        = InvFolio
                                };

                                return(Ok(Respuesta));
                            }
                            else // Este else corresponde a los inventarios que Si tienen productos
                            {
                                int IdProveed = ProductosInventario.ElementAt(0).ProveedorId; // Aquí guardo el ID del proveedor si existe


                                //foreach (var producto in ListaProductos)
                                //{
                                //    SubListaProductosJson SubListaProductosRespuesta = new SubListaProductosJson();
                                //    SubListaProductosRespuesta.selected = false;
                                //    foreach (var selected in ProductosInventario)
                                //    {
                                //        if (producto.ProductoId == selected.ProductoId)
                                //        {
                                //            SubListaProductosRespuesta.selected = true;
                                //        }

                                //    }

                                //    SubListaProductosRespuesta.id = producto.ProductoId;
                                //    SubListaProductosRespuesta.descripcion = producto.productoDescr;
                                //    SubListaProductosRespuesta.proveedorId = producto.ProveedorId;
                                //    SubListaProductosRespuesta.existencia = 0;


                                //    List<SubListaProductosJson> list = new List<SubListaProductosJson>
                                //    {
                                //        SubListaProductosRespuesta
                                //    };
                                //}

                                var ListaProductos = context.Producto.FromSql("spGetProdByProveed @p0", IdProveed).ToList();

                                InventarioJson InventarioRespuesta = new InventarioJson
                                {
                                    InvId            = InventModif.InvId,
                                    InventarioNombre = InvNombre,
                                    FolioGoma        = InvFolio,
                                    ListaDeProductos = new List <SubListaProductosJson>()
                                };

                                foreach (var item in ListaProductos)
                                {
                                    var exists = false;
                                    foreach (var flag in ProductosInventario)
                                    {
                                        if (flag.ProductoId == item.ProductoId)
                                        {
                                            exists = true;
                                        }
                                    }

                                    SubListaProductosJson sublista = new SubListaProductosJson
                                    {
                                        id          = item.ProductoId,
                                        descripcion = item.productoDescr,
                                        proveedorId = IdProveed,
                                        existencia  = 0,
                                        selected    = exists
                                    };


                                    InventarioRespuesta.ListaDeProductos.Add((SubListaProductosJson)sublista);
                                }



                                // si el resultado no está vacía, acompleto la lista con los demás productos del proveedor.
                                return(Ok(InventarioRespuesta));
                            }
                        }
                        else
                        {
                            return(BadRequest("No se encontró el inventario solicitado"));
                        }
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e));
                }
            }
            else
            {
                return(BadRequest("La petición no es válida"));
            }

            /*Finaliza la Validación de la petición */
        }