public IHttpActionResult GetBuscarCodigo(bool conStock, string codigo, int cliente)
        {
            try
            {
                ServiciosProductos servicio     = new ServiciosProductos();
                ProductoList       productoList = null;

                productoList = servicio.ProductoListarCarrito(conStock, -1, codigo, cliente, -1, -1);

                Producto resp = productoList.Productos.Find(item => item.Codigo.Equals(codigo.ConvertirInt()));

                LoggerHelper.LogInfo(System.Reflection.MethodBase.GetCurrentMethod(), JsonConvert.SerializeObject(resp));

                if (resp == null)
                {
                    return(NotFound());
                }
                return(Ok(resp));
            }
            catch (Exception ex)
            {
                LoggerHelper.LogError(MethodBase.GetCurrentMethod(), ex);
                return(BadRequest(ex.GetExceptionOriginal().Message));
            }
        }
        public IHttpActionResult GetListarBusqueda(bool conStock, int subcategoria, string textoBuscar, int cliente, int numeroPagina, int cantidadRegistros)
        {
            try
            {
                ServiciosProductos servicio               = new ServiciosProductos();
                ServicioGenerico   servGenerico           = new ServicioGenerico();
                string             estamosEnMantenimiento = servGenerico.ParametroObtenerValor("HOST_EN_MANTENIMIENTO");

                ProductoList resp = null;

                if (estamosEnMantenimiento.Equals("SI"))
                {
                    resp = servicio.ProductoListarEstamosEnMantenimiento();
                }
                else
                {
                    resp = servicio.ProductoListarCarrito(conStock, subcategoria, textoBuscar, cliente, numeroPagina, cantidadRegistros);
                }

                //LoggerHelper.LogInfo(System.Reflection.MethodBase.GetCurrentMethod(), JsonConvert.SerializeObject(resp));

                if (resp == null)
                {
                    return(NotFound());
                }
                return(Ok(resp));
            }
            catch (Exception ex)
            {
                LoggerHelper.LogError(MethodBase.GetCurrentMethod(), ex);
                return(BadRequest(ex.GetExceptionOriginal().Message));
            }
        }
Example #3
0
        public ProductoList ProductoListarEstamosEnMantenimiento()
        {
            ServicioGenerico servGenerico = new ServicioGenerico();

            string url_host = servGenerico.ParametroObtenerValor("URL_HOST");

            List <Producto> listProds = new List <Producto>();

            listProds.Add(new Producto()
            {
                Id           = 9999,
                Descripcion  = "Estamos en mantenimiento",
                Vigente      = true,
                Codigo       = 9999,
                Stock        = 1,
                StockPropio  = true,
                FotoLink     = string.Format("{0}{1}", url_host, "/assets/img/EnMantenimiento.png"),
                Subcategoria = new Subcategoria()
                {
                    Id                = 1,
                    Descripcion       = "Estamos en mantenimiento",
                    Vigente           = true,
                    Carpeta           = "",
                    CantidadProductos = 1,
                    DescripcionFull   = "Estamos en mantenimiento",
                    IdDescripcion     = "1"
                },
                ListaPrecio = new ListaPrecio()
                {
                    Id            = 6,
                    Descripcion   = "",
                    Vigente       = true,
                    Codigo        = "",
                    Precio        = 0,
                    IdDescripcion = ""
                },
                PrecioUnitarioFinal     = 0,
                PrecioUnitarioProcesado = 0,
                MonedaVenta             = "",
                ProductoPedido          = false,
                CantidadPedido          = 0,
                NroFila                 = 1,
                Path                    = "",
                IdTipo                  = 1,
                IdCategoria             = 1,
                DescripcionTipo         = "",
                DescripcionCategoria    = "",
                DescripcionSubcategoria = "Estamos en mantenimiento",
                PrecioPorPeso           = true,
                PrecioPorPieza          = false,
                IdDescripcion           = ""
            });

            ProductoList listReturn = new ProductoList();

            listReturn.TotalFilas = 1;
            listReturn.Productos  = listProds;
            return(listReturn);
        }
Example #4
0
        public IDictionary ExportarListadoProductos(int idSubcategoria, int tipoListado)
        {
            ProductoList listProductos = this.ProductoListarABM(idSubcategoria, tipoListado, -1, -1);

            IDictionary datos = new Hashtable();

            datos.Add("Listado", listProductos.Productos);

            return(datos);
        }
        private IEnumerable <ProductoItemViewModel> ToProductoItemViewModel()
        {
            return(ProductoList.Select(p => new ProductoItemViewModel
            {
                idProducto = p.idProducto,
                idPresentacion = p.idPresentacion,
                cantidadFraccion = p.cantidadFraccion,
                codigoBarras = p.codigoBarras,
                codigoProducto = p.codigoProducto,
                controlSinStock = p.controlSinStock,
                descripcionCorta = p.descripcionCorta,
                descripcionLarga = p.descripcionLarga,
                enCategoriaEstrella = p.enCategoriaEstrella,
                enPortada = p.enPortada,
                enUso = p.enUso,
                estado = p.estado,
                idMarca = p.idMarca,
                idUnidadMedida = p.idUnidadMedida,
                keywords = p.keywords,
                limiteMaximo = p.limiteMaximo,
                limiteMinimo = p.limiteMinimo,
                mostrarPrecioWeb = p.mostrarPrecioWeb,
                mostrarVideo = p.mostrarVideo,
                mostrarWeb = p.mostrarWeb,
                nombreMarca = p.nombreMarca,
                nombreProducto = p.nombreProducto,
                nombreUnidad = p.nombreUnidad,
                precioCompra = p.precioCompra,
                urlVideo = p.urlVideo,
                ventaVarianteSinStock = p.ventaVarianteSinStock,
                nombre = p.nombre,
                codigo = p.codigo,
                EstadoString = p.EstadoString,
                precioVenta = p.precioVenta,
                stock = p.stock,
                stockFinanciero = p.stockFinanciero,
                idPresentacionAfectada = p.idPresentacionAfectada,
                idAlmacen = p.idAlmacen,
                nombreAlmacen = p.nombreAlmacen,
                IdPresentacionint = p.IdPresentacionint,

                IsVisiblePrecioVenta = (p.precioVenta != null),
                //IsVisiblePrecioCompra = (p.precioCompra != null),
                IsVisibleStock = (p.stock != null),

                BackgroundItem = (!p.estado) ? (Color)App.Current.Resources["AlertLight"] : Color.Transparent,
                TextColorItem = (!p.estado) ? (Color)App.Current.Resources["Alert"] : (Color)App.Current.Resources["grey"],
            }));
        }
Example #6
0
        public async Task <IEnumerable <Producto> > GetProductosAsync()
        {
            var resStr = await _client.GetStringAsync("");

            ProductoList    ArrP     = JsonConvert.DeserializeObject <ProductoList>(resStr);
            List <Producto> ListPrdo = new List <Producto>();

            for (int i = 0; i < ArrP.data.Count; i++)
            {
                ListPrdo.Add(new Producto {
                    productoId = ArrP.data[i].productoId, nombreprod = ArrP.data[i].nombreprod, precio = ArrP.data[i].precio
                });
            }
            IEnumerable <Producto> INumProd = ListPrdo;

            return(INumProd);
        }
 public IHttpActionResult GetBuscar(string buscar, bool soloCodigo, int numeroPagina, int cantidadRegistros)
 {
     try
     {
         ServiciosProductos servicio = new ServiciosProductos();
         ProductoList       resp     = servicio.ProductoBusqueda(buscar, soloCodigo, false, numeroPagina, cantidadRegistros);
         if (resp == null)
         {
             return(NotFound());
         }
         return(Ok(resp));
     }
     catch (Exception ex)
     {
         return(BadRequest(string.Format("ex.Message=>\n{0}\n\nex.InnerException=>\n{1}\n\nex.StackTrace=>\n{2}", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : string.Empty), ex.StackTrace)));
     }
 }
 public IHttpActionResult GetListarABM(int subcategoria, int tipoListado, int numeroPagina, int cantidadRegistros)
 {
     try
     {
         ServiciosProductos servicio = new ServiciosProductos();
         ProductoList       resp     = servicio.ProductoListarABM(subcategoria, tipoListado, numeroPagina, cantidadRegistros);
         if (resp == null)
         {
             return(NotFound());
         }
         return(Ok(resp));
     }
     catch (Exception ex)
     {
         LoggerHelper.LogError(MethodBase.GetCurrentMethod(), ex);
         return(BadRequest(ex.GetExceptionOriginal().Message));
     }
 }
Example #9
0
        protected override void SelectProductoAction()
        {
            ProductoList lista;

            lista = ProductoList.GetListBySerie(_serie.Oid, false, true);

            ProductoSelectForm form = new ProductoSelectForm(this, lista);

            form.ShowDialog(this);

            if (form.DialogResult == DialogResult.OK)
            {
                _producto = ProductoInfo.Get((form.Selected as ProductoInfo).Oid, true);

                Datos_Productos.DataSource = _producto;
                _entity.Cantidad           = 1;
                Cantidad_NTB.Focus();
            }
        }
Example #10
0
        private List <Producto> ProductoObtenerDelMayorista(bool conStock, int idSubcategoria, string textoBuscar, int idCliente)
        {
            ServicioGenerico servicio       = new ServicioGenerico();
            ProductoList     prodsMayorista = null;
            List <Producto>  listReturn     = new List <Producto>();

            string urlMayorista = servicio.ParametroObtenerValor("URL_MAYORISTA");

            if (!string.IsNullOrEmpty(urlMayorista))
            {
                try
                {
                    string keyItem             = string.Format("GetProductosMayorista{0}{1}{2}", conStock.ToString(), idSubcategoria.ToString(), textoBuscar);
                    var    prodsMayoristaCache = CacheManager.GetToCache <string>(gobalKeyCache, keyItem);

                    if (prodsMayoristaCache == null)
                    {
                        if (textoBuscar == string.Empty)
                        {
                            textoBuscar = "1";
                        }
                        urlMayorista += string.Format("api/producto/listarbusqueda/{0}/{1}/{2}/{3}/1/250", conStock, idSubcategoria, textoBuscar, idCliente);
                        using (WebClient webClient = new WebClient())
                        {
                            prodsMayoristaCache = webClient.DownloadString(urlMayorista);
                            CacheManager.AddToCache(gobalKeyCache, keyItem, prodsMayoristaCache);
                        }
                    }

                    if (prodsMayoristaCache != null)
                    {
                        prodsMayorista = JsonConvert.DeserializeObject <ProductoList>(prodsMayoristaCache);
                        listReturn     = prodsMayorista.Productos;
                        listReturn.ForEach(item => item.StockPropio = false);
                    }
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(string.Format("API Mayorista url: {0} - textoBuscar:{1}", urlMayorista, textoBuscar), ex);
                }
            }
            return(listReturn);
        }
Example #11
0
        public Producto ProductoObtenerDelMayorista(int codigo)
        {
            ServicioGenerico servicio       = new ServicioGenerico();
            ProductoList     prodsMayorista = null;
            Producto         prodReturn     = null;

            string urlMayorista = servicio.ParametroObtenerValor("URL_MAYORISTA");

            if (!string.IsNullOrEmpty(urlMayorista))
            {
                urlMayorista += string.Format("api/producto/buscar/{0}/true/-1/-1", codigo.ToString());
                using (WebClient webClient = new WebClient())
                {
                    var prodResponse = webClient.DownloadString(urlMayorista);
                    prodsMayorista = JsonConvert.DeserializeObject <ProductoList>(prodResponse);
                    if (prodsMayorista != null)
                    {
                        prodReturn = prodsMayorista.Productos[0];
                    }
                }
            }
            return(prodReturn);
        }
Example #12
0
        public ProductoList ProductoBusqueda(string buscar, bool soloCodigo, bool conStock, int numeroPagina, int cantidadRegistros)
        {
            ProductoRepository repository     = new ProductoRepository();
            List <Producto>    listProdsTotal = new List <Producto>();
            List <Producto>    listProds      = new List <Producto>();

            if (soloCodigo)
            {
                listProdsTotal.Add(this.ObtenerObjeto <Producto>("Codigo", buscar.ConvertirInt()));
                listProds.Add(this.ObtenerObjeto <Producto>("Codigo", buscar.ConvertirInt()));
            }
            else
            {
                listProdsTotal = repository.BuscarProductos(buscar, conStock, false, numeroPagina, cantidadRegistros);
                listProds      = repository.BuscarProductos(buscar, conStock, true, numeroPagina, cantidadRegistros);
            }

            ProductoList listReturn = new ProductoList();

            listReturn.TotalFilas = listProdsTotal.Count;
            listReturn.Productos  = listProds;
            return(listReturn);
        }
 /// <summary>
 /// Asigna el objeto principal al origen de datos
 /// <returns>void</returns>
 /// </summary>
 public override void RefreshSecondaryData()
 {
     _productos = ProductoList.GetList(false);
     Bar.Grow();
 }
Example #14
0
        public ProductoList ProductoListarCarrito(bool conStock, int idSubcategoria, string textoBuscar, int idCliente, int numeroPagina, int cantidadRegistros)
        {
            ServiciosPedido  servPedido   = new ServiciosPedido();
            ServicioGenerico servGenerico = new ServicioGenerico();

            ProductoRepository repository  = new ProductoRepository();
            List <Producto>    listProds   = new List <Producto>();
            List <PedidoItem>  pedidoItems = new List <PedidoItem>();

            /* MONEDA_VENTA => Se parametriza desde el ABM de Cotizaciones
             * valores posibles
             * * PESO_ARGENTINO
             * * DOLAR_EEUU
             */

            /*Parametros del sistema*/
            string monedaVenta = servGenerico.ParametroObtenerValor("MONEDA_VENTA");
            string url_host    = servGenerico.ParametroObtenerValor("URL_HOST");
            string myIdCliente = servGenerico.ParametroObtenerValor("TRADING_ID_CLIENTE");

            List <ClienteLista> listaCliente = null;

            if (idCliente > 0)
            {
                ServicioClientes servClientes = new ServicioClientes();
                listaCliente = servClientes.ClienteListaObtenerVigentesCache()
                               .Where(item => item.IdCliente == idCliente)
                               .ToList <ClienteLista>();
                //Pedido pedido = servPedido.PedidoObtenerClienteIngresado(idCliente, -1, -1);
            }
            else
            {
                //cuando se muestra el carrito a usuarios no registrados se fuerza PESO_ARGENTINO
                monedaVenta = "PESO_ARGENTINO";
            }

            decimal cotizacionDolar = this.CotizacionDolarVigente().Cotizacion;

            List <Producto> listProdsFull = new List <Producto>();

            if (idSubcategoria != -1)
            {
                //1ro se obtienen y listan los productos del MONORISTA

                if (textoBuscar.Contains("ETIQUETA=NOVEDAD"))
                {
                    listProdsFull.AddRange(this.ProductoObtenerVigentesCache(idSubcategoria)
                                           .FindAll(item => item.Stock > 0 && item.Etiquetas.Contains("NOVEDAD"))
                                           .OrderBy(item => item.Orden)
                                           .ToList <Producto>());
                }
                else
                {
                    List <Producto> listAux = this.ProductoObtenerVigentesCache(idSubcategoria);
                    listProdsFull.AddRange(listAux
                                           .FindAll(item => item.Stock > 0)
                                           .OrderBy(item => item.Orden)
                                           .ToList <Producto>());
                }

                //despues se buscan los del mayorista
                SubcategoriaMerge subcateMerge = this.ObtenerSubcategoriaMerge(idSubcategoria);
                if (subcateMerge != null && subcateMerge.IdSubcategoriaMayorista > 0)
                {
                    idSubcategoria = subcateMerge.IdSubcategoriaMayorista;
                    textoBuscar    = subcateMerge.Etiqueta;
                }
            }
            else
            {
                listProdsFull.AddRange(repository.BuscarProductos(textoBuscar, conStock, true, 1, 100));
            }

            //2ro se obtienen y listan los productos del MAYORISTA
            listProdsFull.AddRange(this.ProductoObtenerDelMayorista(conStock, idSubcategoria, textoBuscar, myIdCliente.ConvertirInt()));

            int totalFilas = listProdsFull.Count;

            bool paginar = (numeroPagina != -1 && cantidadRegistros != -1);

            if (paginar)
            {
                int nro_fila = 1;
                listProdsFull
                .ForEach(delegate(Producto item)
                {
                    item.NroFila = nro_fila;
                    nro_fila++;
                });
                int filaDesde = (numeroPagina - 1) * cantidadRegistros;
                int filaHasta = filaDesde + cantidadRegistros;
                listProds = listProdsFull.FindAll(item => item.NroFila > filaDesde && item.NroFila <= filaHasta);
            }
            else
            {
                listProds = listProdsFull;
            }


            listProds.ForEach(delegate(Producto prod)
            {
                if (prod.StockPropio)
                {
                    prod = ProcesarStockPropio(listaCliente, url_host, prod);
                }
                else
                {
                    prod = ProcesarStockMayorista(idCliente, prod);
                }

                prod.MonedaVenta = monedaVenta == "DOLAR_EEUU" ? "USD" : "$";
                if (monedaVenta != "DOLAR_EEUU")
                {
                    prod.PrecioUnitarioFinal = Decimal.Round(prod.PrecioUnitarioProcesado * cotizacionDolar, 2);
                }
                else
                {
                    prod.PrecioUnitarioFinal = Decimal.Round(prod.PrecioUnitarioProcesado, 2);
                }


                prod.CantidadPedido = 0;
                prod.ProductoPedido = false;
            });

            ProductoList listReturn = new ProductoList();

            listReturn.TotalFilas = totalFilas;
            listReturn.Productos  = listProds;
            return(listReturn);
        }
Example #15
0
        public ProductoList ProductoListarABM(int idSubcategoria, int tipoListado, int numeroPagina, int cantidadRegistros)
        {
            //este metodo no lee los datos del Cache
            ServicioGenerico servGenerico = new ServicioGenerico();

            ProductoRepository repository = new ProductoRepository();
            List <Producto>    listProds  = new List <Producto>();

            string url_host = servGenerico.ParametroObtenerValor("URL_HOST");


            List <Producto> listProdsFull = new List <Producto>();

            bool paginar = (numeroPagina != -1 && cantidadRegistros != -1);


            switch (tipoListado)
            {
            case 1:
                listProdsFull.AddRange(this.Listar <Producto>("Subcategoria.Id", idSubcategoria).ToList <Producto>());
                break;

            case 2:
                //listar solo productos CON stock
                listProdsFull.AddRange(this.Listar <Producto>("Subcategoria.Id", idSubcategoria).ToList <Producto>()
                                       .FindAll(item => item.Stock > 0).ToList <Producto>());
                break;

            case 3:
                //listar solo productos SIN stock
                listProdsFull.AddRange(this.Listar <Producto>("Subcategoria.Id", idSubcategoria).ToList <Producto>()
                                       .FindAll(item => item.Stock <= 0).ToList <Producto>());
                break;
            }



            int totalFilas = listProdsFull.Count;

            if (paginar)
            {
                int nro_fila = 1;
                listProdsFull.ForEach(delegate(Producto item)
                {
                    item.NroFila = nro_fila;
                    nro_fila++;
                });
                int filaDesde = (numeroPagina - 1) * cantidadRegistros;
                int filaHasta = filaDesde + cantidadRegistros;
                listProds = listProdsFull.FindAll(item => item.NroFila > filaDesde && item.NroFila <= filaHasta);
            }
            else
            {
                listProds = listProdsFull;
            }

            ProductoList listReturn = new ProductoList();

            listReturn.TotalFilas = totalFilas;
            listReturn.Productos  = listProds;
            return(listReturn);
        }