public bool BuscaPantallaEnHijos() { if (ClsAdicional.Convert<Int16>(_Informacion["NumeroDePantalla"].ToString()) != 0) { return true; } if (this.TieneNodosHijos()) { return this.NodosHijos.Exists(x => x.BuscaPantallaEnHijos()); } else { return false; } }
public JsonResult UrlPreciosActualizados(String Precios) { ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, "Precios Actualizados"); if (!ValidaSesion()) { return(Json(new { UrlAccount = Url.Action("LoginOut", "Account") }, JsonRequestBehavior.AllowGet)); } if (!ValidaFuncionalidad(NumeroDePantalla, (byte)ClsEnumerables.Funcionalidades.ALTA)) { return(Json(new { UrlFun = Url.Action("Index", "VentaTotal") }, JsonRequestBehavior.AllowGet)); } List <String> Datos = Precios.Split(':').ToList(); foreach (var Dato in Datos) { List <String> Elementos = new List <string>(); if (Dato.Contains("PrecioUnitario")) { Elementos = Dato.Split('&').ToList(); ClsProductos Producto = (from q in ClsProductos.getList() where q.NumeroDeProducto == ClsAdicional.Convert <short>(Elementos[0].Split('=')[1]) select q).FirstOrDefault(); if (Producto != null) { Producto.PrecioUnitario = ClsAdicional.Convert <decimal>(Elementos[1].Split('=')[1]); } if (!Producto.Update()) { Resultado.Resultado = false; Resultado.Mensaje = "Ocurrio un error al actualizar el precio unitario del Producto"; break; } else { ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database); ClsAudit Audit = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ACTUALIZAPRECIO"); Producto.InsertAudit(Audit); } } else if (Dato.Contains("NumeroDeMayoreo")) { Elementos = Dato.Split('&').ToList(); ClsConfiguraMayoreos ConfiguraMayoreo = (from q in ClsConfiguraMayoreos.getList() where q.NumeroDeProducto == ClsAdicional.Convert <short>(Elementos[0].Split('=')[1]) && q.NumeroDeMayoreo == ClsAdicional.Convert <short>(Elementos[1].Split('=')[1]) select q).FirstOrDefault(); if (ConfiguraMayoreo != null) { ConfiguraMayoreo.PrecioDeMayoreo = ClsAdicional.Convert <decimal>(Elementos[2].Split('=')[1]); if (!ConfiguraMayoreo.Update()) { Resultado.Resultado = false; Resultado.Mensaje = "Ocurrio un error al actualizar el precio de mayoreo"; break; } else { ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database); ClsAudit Audit = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ACTUALIZAPRECIO"); ConfiguraMayoreo.InsertAudit(Audit); } } } else if (Dato.Contains("PrecioDeProductoPadre") || Dato.Contains("PrecioDeProductoHijo")) { Elementos = Dato.Split('&').ToList(); ClsConfiguraPaquetes ConfiguraPaquetes = (from q in ClsConfiguraPaquetes.getList() where q.NumeroDeProductoPadre == ClsAdicional.Convert <short>(Elementos[0].Split('=')[1]) && q.NumeroDeProductoHijo == ClsAdicional.Convert <short>(Elementos[1].Split('=')[1]) select q).FirstOrDefault(); if (ConfiguraPaquetes != null) { if (Dato.Contains("PrecioDeProductoPadre")) { ConfiguraPaquetes.PrecioDeProductoPadre = ClsAdicional.Convert <decimal>(Elementos[2].Split('=')[1]); } else if (Dato.Contains("PrecioDeProductoHijo")) { ConfiguraPaquetes.PrecioDeProductoHijo = ClsAdicional.Convert <decimal>(Elementos[2].Split('=')[1]); } if (!ConfiguraPaquetes.Update()) { Resultado.Resultado = false; Resultado.Mensaje = "Ocurrio un error al actualizar el precio de paquetes"; break; } else { ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database); ClsAudit Audit = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ACTUALIZAPRECIO"); ConfiguraPaquetes.InsertAudit(Audit); } } } } return(Json(Resultado, JsonRequestBehavior.AllowGet)); }
public JsonResult ProductoParaTablaV2(short NumeroDeProducto, short Cantidad, String Paquetes, String RegistrosPrevios) { List <ClsVentas> RegistrosPrev = ClsAdicional.Deserializar <List <ClsVentas> >(RegistrosPrevios); if (RegistrosPrev == null) { RegistrosPrev = new List <ClsVentas>(); } List <ClsVentas> Registro = new List <ClsVentas>(); List <ClsConfiguraPaquetes> ListaPaquetes = new List <ClsConfiguraPaquetes>(); String Filtro = String.Empty; short CantidadFija = Cantidad; if (!String.IsNullOrEmpty(Paquetes)) { Filtro = String.Format("NumeroDeProductoPadre == {0} && NumeroDeProductoHijo == {1}", ClsAdicional.Convert <short>(Paquetes.Split('_')[0]), ClsAdicional.Convert <short>(Paquetes.Split('_')[1])); ListaPaquetes = ClsConfiguraPaquetes.getList(Filtro); if (ListaPaquetes.Count() == 1) { if (RegistrosPrev.Exists(x => x.NumeroDeProducto == ListaPaquetes.FirstOrDefault().NumeroDeProductoPadre)) { CantidadFija = (short)(CantidadFija + RegistrosPrev.FindAll(x => x.NumeroDeProducto == ListaPaquetes.FirstOrDefault().NumeroDeProductoPadre).FirstOrDefault().CantidadDeProducto); } ClsProductos Producto = ClsProductos.getList("NumeroDeProducto == " + ListaPaquetes.FirstOrDefault().NumeroDeProductoPadre.ToString() + " && CodigoDeBarras == \"" + ListaPaquetes.FirstOrDefault().CodigoDeBarrasPadre + "\" && CveDeEstatus == " + (byte)ClsEnumerables.CveDeEstatusGeneral.ACTIVO).FirstOrDefault(); decimal PrecioUnitario = ListaPaquetes.FirstOrDefault().PrecioDeProductoPadre; short CantidadParaMayoreo = CantidadFija; if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { CantidadParaMayoreo = (short)(RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca).Sum(y => y.CantidadDeProducto) + CantidadFija); } Filtro = String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\" && CantidadMinima <= {2} && CantidadMaxima >= {2}", ListaPaquetes.FirstOrDefault().NumeroDeProductoPadre, ListaPaquetes.FirstOrDefault().CodigoDeBarrasPadre, CantidadParaMayoreo); List <ClsConfiguraMayoreos> Mayoreo = ClsConfiguraMayoreos.getList(Filtro); bool EsMayoreo = false; if (Mayoreo.Count() != 0) { PrecioUnitario = Mayoreo.FirstOrDefault().PrecioDeMayoreo; EsMayoreo = true; } if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { foreach (ClsVentas venta in RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { Registro.Add(new ClsVentas() { NumeroDeProducto = venta.NumeroDeProducto, CodigoDeBarras = venta.CodigoDeBarras, NumeroDeTipoDeProducto = venta.NumeroDeTipoDeProducto, NumeroDeMarca = venta.NumeroDeMarca, CantidadDeProducto = venta.CantidadDeProducto, ImporteDeProducto = Math.Round(venta.CantidadDeProducto * (EsMayoreo ? PrecioUnitario : venta.PrecioUnitario), 2), PrecioUnitario = (EsMayoreo ? PrecioUnitario : venta.PrecioUnitario), NombreDeProducto = venta.NombreDeProducto }); } } Registro.Add(new ClsVentas() { NumeroDeProducto = ListaPaquetes.FirstOrDefault().NumeroDeProductoPadre, CodigoDeBarras = ListaPaquetes.FirstOrDefault().CodigoDeBarrasPadre, NumeroDeTipoDeProducto = Producto.NumeroDeTipoDeProducto, NumeroDeMarca = Producto.NumeroDeMarca, CantidadDeProducto = CantidadFija, ImporteDeProducto = Math.Round(CantidadFija * PrecioUnitario, 2), PrecioUnitario = PrecioUnitario, NombreDeProducto = ListaPaquetes.FirstOrDefault().NombreDeProductoPadre }); CantidadFija = Cantidad; if (RegistrosPrev.Exists(x => x.NumeroDeProducto == ListaPaquetes.FirstOrDefault().NumeroDeProductoHijo)) { CantidadFija = (short)(CantidadFija + RegistrosPrev.FindAll(x => x.NumeroDeProducto == ListaPaquetes.FirstOrDefault().NumeroDeProductoHijo).FirstOrDefault().CantidadDeProducto); } Producto = ClsProductos.getList("NumeroDeProducto == " + ListaPaquetes.FirstOrDefault().NumeroDeProductoHijo.ToString() + " && CodigoDeBarras == \"" + ListaPaquetes.FirstOrDefault().CodigoDeBarrasHijo + "\" && CveDeEstatus == " + (byte)ClsEnumerables.CveDeEstatusGeneral.ACTIVO).FirstOrDefault(); PrecioUnitario = (decimal)ListaPaquetes.FirstOrDefault().PrecioDeProductoHijo; CantidadParaMayoreo = CantidadFija; if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { CantidadParaMayoreo = (short)(RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca).Sum(y => y.CantidadDeProducto) + CantidadFija); } Filtro = String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\" && CantidadMinima <= {2} && CantidadMaxima >= {2}", ListaPaquetes.FirstOrDefault().NumeroDeProductoHijo, ListaPaquetes.FirstOrDefault().CodigoDeBarrasHijo, CantidadParaMayoreo); Mayoreo = ClsConfiguraMayoreos.getList(Filtro); EsMayoreo = false; if (Mayoreo.Count() != 0) { PrecioUnitario = Mayoreo.FirstOrDefault().PrecioDeMayoreo; EsMayoreo = true; } if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { foreach (ClsVentas venta in RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { Registro.Add(new ClsVentas() { NumeroDeProducto = venta.NumeroDeProducto, CodigoDeBarras = venta.CodigoDeBarras, NumeroDeTipoDeProducto = venta.NumeroDeTipoDeProducto, NumeroDeMarca = venta.NumeroDeMarca, CantidadDeProducto = venta.CantidadDeProducto, ImporteDeProducto = Math.Round(venta.CantidadDeProducto * (EsMayoreo ? PrecioUnitario : venta.PrecioUnitario), 2), PrecioUnitario = (EsMayoreo ? PrecioUnitario : venta.PrecioUnitario), NombreDeProducto = venta.NombreDeProducto }); } } Registro.Add(new ClsVentas() { NumeroDeProducto = ListaPaquetes.FirstOrDefault().NumeroDeProductoHijo, CodigoDeBarras = ListaPaquetes.FirstOrDefault().CodigoDeBarrasHijo, NumeroDeTipoDeProducto = Producto.NumeroDeTipoDeProducto, NumeroDeMarca = Producto.NumeroDeMarca, CantidadDeProducto = CantidadFija, ImporteDeProducto = Math.Round(CantidadFija * PrecioUnitario, 2), PrecioUnitario = PrecioUnitario, NombreDeProducto = ListaPaquetes.FirstOrDefault().NombreDeProductoHijo }); } } else { CantidadFija = Cantidad; if (RegistrosPrev.Exists(x => x.NumeroDeProducto == NumeroDeProducto)) { CantidadFija = (short)(CantidadFija + RegistrosPrev.FindAll(x => x.NumeroDeProducto == NumeroDeProducto).FirstOrDefault().CantidadDeProducto); } ClsProductos Producto = ClsProductos.getList("NumeroDeProducto == " + NumeroDeProducto.ToString() + " && CveDeEstatus == " + (byte)ClsEnumerables.CveDeEstatusGeneral.ACTIVO).FirstOrDefault(); decimal PrecioUnitario = Producto.PrecioUnitario; short CantidadParaMayoreo = CantidadFija; if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != NumeroDeProducto)) { CantidadParaMayoreo = (short)(RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca).Sum(y => y.CantidadDeProducto) + CantidadFija); } Filtro = String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\" && CantidadMinima <= {2} && CantidadMaxima >= {2}", Producto.NumeroDeProducto, Producto.CodigoDeBarras, CantidadParaMayoreo); List <ClsConfiguraMayoreos> Mayoreo = ClsConfiguraMayoreos.getList(Filtro); bool EsMayoreo = false; if (Mayoreo.Count() != 0) { PrecioUnitario = Mayoreo.FirstOrDefault().PrecioDeMayoreo; EsMayoreo = true; } if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { foreach (ClsVentas venta in RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == Producto.NumeroDeTipoDeProducto && x.NumeroDeMarca == Producto.NumeroDeMarca && x.NumeroDeProducto != Producto.NumeroDeProducto)) { Registro.Add(new ClsVentas() { NumeroDeProducto = venta.NumeroDeProducto, CodigoDeBarras = venta.CodigoDeBarras, NumeroDeTipoDeProducto = venta.NumeroDeTipoDeProducto, NumeroDeMarca = venta.NumeroDeMarca, CantidadDeProducto = venta.CantidadDeProducto, ImporteDeProducto = Math.Round(venta.CantidadDeProducto * (EsMayoreo ? PrecioUnitario : venta.PrecioUnitario), 2), PrecioUnitario = (EsMayoreo ? PrecioUnitario : venta.PrecioUnitario), NombreDeProducto = venta.NombreDeProducto }); } } Registro.Add(new ClsVentas() { NumeroDeProducto = Producto.NumeroDeProducto, CodigoDeBarras = Producto.CodigoDeBarras, NumeroDeTipoDeProducto = Producto.NumeroDeTipoDeProducto, NumeroDeMarca = Producto.NumeroDeMarca, CantidadDeProducto = CantidadFija, ImporteDeProducto = Math.Round(CantidadFija * PrecioUnitario, 2), PrecioUnitario = PrecioUnitario, NombreDeProducto = Producto.NombreDeProducto }); } return(Json(new { Registro }, JsonRequestBehavior.AllowGet)); }