public SubcategoriaMerge ObtenerSubcategoriaMerge(int idSubCategoriaMinorista) { //List<SubcategoriaMerge> listSubcateMerge = this.Listar<SubcategoriaMerge>("IdSubcategoriaMayorista", idSubCategoriaMayorista).ToList<SubcategoriaMerge>(); List <SubcategoriaMerge> listSubcateMerge = this.Listar <SubcategoriaMerge>("IdSubcategoriaMinorista", idSubCategoriaMinorista).ToList <SubcategoriaMerge>(); SubcategoriaMerge scReturn = null; if (listSubcateMerge != null && listSubcateMerge.Count > 0) { scReturn = listSubcateMerge[0]; } return(scReturn); }
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); }