Example #1
0
 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;
     }
 }
Example #2
0
        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));
        }
Example #3
0
        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));
        }