Esempio n. 1
0
 public ClsAdicional.ClsResultado Insert(ref TipoDeProductoModel TipoDeProducto)
 {
     ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, String.Empty);
     using (DBKuupEntities db = new DBKuupEntities())
     {
         ClsSequence Sequence = new ClsSequence(db.Database);
         TipoDeProducto.NumeroDeTipoDeProducto = Sequence.SQ_TipoProducto();
         TipoDeProducto.NombreDeTipoDeProducto = TipoDeProducto.NombreDeTipoDeProducto.ToUpper().Trim();
         if (!TipoDeProducto.Existe())
         {
             if (!TipoDeProducto.Insert())
             {
                 Resultado.Resultado = false;
                 Resultado.Mensaje   = "Ocurrio un error al dar de alta el tipo de producto";
             }
             else
             {
                 ClsAudit Audit = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ALTA");
                 TipoDeProducto.InsertAudit(Audit);
             }
         }
         else
         {
             Resultado.Resultado = false;
             Resultado.Mensaje   = "El tipo de producto a registrar " + TipoDeProducto.NombreDeTipoDeProducto + " ya existe en el sistema";
         }
     }
     return(Resultado);
 }
Esempio n. 2
0
 public ClsAdicional.ClsResultado Insert(ref MarcaModel Marca)
 {
     ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, String.Empty);
     using (DBKuupEntities db = new DBKuupEntities())
     {
         ClsSequence Sequence = new ClsSequence(db.Database);
         Marca.NumeroDeMarca = Sequence.SQ_Marca();
         Marca.NombreDeMarca = Marca.NombreDeMarca.ToUpper().Trim();
         if (!Marca.Existe())
         {
             if (!Marca.Insert())
             {
                 Resultado.Resultado = false;
                 Resultado.Mensaje   = "Ocurrio un error al dar de alta la Marca";
             }
             else
             {
                 ClsAudit Audit = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ALTA");
                 Marca.InsertAudit(Audit);
             }
         }
         else
         {
             Resultado.Resultado = false;
             Resultado.Mensaje   = "La marca a registrar " + Marca.NombreDeMarca + " ya existe en el sistema";
         }
     }
     return(Resultado);
 }
        public ActionResult Edita(TipoDeProductoModel RegistroCapturado)
        {
            if (!ValidaSesion())
            {
                return(RedirectToAction("LoginOut", "Account"));
            }
            if (!ValidaFuncionalidad(NumeroDePantalla, (byte)ClsEnumerables.Funcionalidades.EDITA))
            {
                return(RedirectToAction("Detalle", "TipoDeProducto", new { RegistroCapturado.fNumeroDeTipoDeProducto }));
            }
            ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, "Tipo de Producto actualizado de forma correcta");
            var TipoDeProductoClase             = ClsTiposDeProductos.getList(String.Format("NumeroDeTipoDeProducto == {0}", RegistroCapturado.fNumeroDeTipoDeProducto));
            TipoDeProductoModel TipoDeProducto  = new TipoDeProductoModel(TipoDeProductoClase.FirstOrDefault());

            if (ModelState.IsValid)
            {
                TipoDeProducto.NombreDeTipoDeProducto = RegistroCapturado.NombreDeTipoDeProducto;
                if (!TipoDeProducto.Update())
                {
                    Resultado.Resultado = false;
                    Resultado.Mensaje   = "Ocurrio un problema al actualizar el reigstro";
                }
                else
                {
                    ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database);
                    ClsAudit    Audit    = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "EDITA");
                    TipoDeProducto.InsertAudit(Audit);
                }
            }
            else
            {
                Resultado.Resultado = false;
                Resultado.Mensaje   = "Campos incorrectos";
            }
            if (!Resultado.Resultado)
            {
                this.CargaCombos(RegistroCapturado);
                TempData["Resultado"] = Resultado.MensajeController();
                return(View(RegistroCapturado));
            }
            return(RedirectToAction("Detalle", "TipoDeProducto", new { NumeroDeElemento = RegistroCapturado.NumeroDeTipoDeProducto }));
        }
        public ActionResult Baja(short NumeroDeTipoDeProducto)
        {
            if (!ValidaSesion())
            {
                return(RedirectToAction("LoginOut", "Account"));
            }
            if (!ValidaFuncionalidad(NumeroDePantalla, (byte)ClsEnumerables.Funcionalidades.BAJA))
            {
                return(RedirectToAction("Index", "TipoDeProducto"));
            }
            ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado();
            var TipoDeProductoClase             = ClsTiposDeProductos.getList(String.Format("NumeroDeTipoDeProducto == {0} && CveDeEstatus == 1", NumeroDeTipoDeProducto));

            if (TipoDeProductoClase.Count() == 0)
            {
                Resultado.Resultado = false;
                Resultado.Mensaje   = "El tipo de producto no se encuentra o no cuenta con el estatus correcto";
            }
            else
            {
                TipoDeProductoModel TipoDeProducto = new TipoDeProductoModel(TipoDeProductoClase.FirstOrDefault());
                TipoDeProducto.CveDeEstatus = 2;
                if (!TipoDeProducto.Update())
                {
                    Resultado.Resultado = false;
                    Resultado.Mensaje   = "No fue posible realizar la baja del tipo de producto";
                }
                else
                {
                    ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database);
                    ClsAudit    Audit    = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "BAJA");
                    TipoDeProducto.InsertAudit(Audit);
                    Resultado.Resultado = true;
                    Resultado.Mensaje   = "Baja correcto";
                }
            }
            return(Json(Resultado, JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
 public ClsAdicional.ClsResultado InsertSurtidos(String JsonSurtido)
 {
     ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, String.Empty);
     if (!String.IsNullOrEmpty(JsonSurtido))
     {
         List <ClsSurtidos> Surtidos = ClsAdicional.Deserializar <List <ClsSurtidos> >(JsonSurtido);
         if (Surtidos == null)
         {
             Surtidos = new List <ClsSurtidos>();
         }
         if (Surtidos.Count() != 0)
         {
             using (DBKuupEntities db = new DBKuupEntities())
             {
                 using (var Transaccion = db.Database.BeginTransaction())
                 {
                     try
                     {
                         ClsSequence Sequence       = new ClsSequence(db.Database);
                         var         Productos      = ClsProductos.getList(listaProductos: Surtidos.Select(x => x.NumeroDeProducto).ToList());
                         var         ProductosAudit = (from q in db.ProductoAudit select q.PRO_NUM_PRODUCTO).Distinct().ToList();
                         short       FolioDeSurtido = Sequence.SQ_FolioSurtido();
                         foreach (var Surtido in Surtidos)
                         {
                             Surtido.db             = db;
                             Surtido.FolioDeSurtido = FolioDeSurtido;
                             Surtido.FechaDeSurtido = DateTime.Now;
                             if (!ManejaProveedor)
                             {
                                 Surtido.NumeroDeUsuario = MoSesion.NumeroDeUsuario;
                             }
                             Surtido.CveDeEstatus = (byte)ClsEnumerables.CveDeEstatusGeneral.ACTIVO;
                             if (!Surtido.Insert())
                             {
                                 Resultado.Resultado = false;
                                 break;
                             }
                             else
                             {
                                 if (Productos.Exists(x => x.NumeroDeProducto == Surtido.NumeroDeProducto && x.CodigoDeBarras == Surtido.CodigoDeBarras))
                                 {
                                     var Producto = Productos.Find(x => x.NumeroDeProducto == Surtido.NumeroDeProducto && x.CodigoDeBarras == Surtido.CodigoDeBarras);
                                     Producto.db = db;
                                     if (!ProductosAudit.Exists(x => x == Producto.NumeroDeProducto))
                                     {
                                         ClsAudit Audit = Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ALTA");
                                         Producto.InsertAudit(Audit);
                                     }
                                     Producto.CantidadDeProductoUltima = Producto.CantidadDeProductoTotal;
                                     Producto.CantidadDeProductoNueva  = Surtido.CantidadNueva;
                                     Producto.CantidadDeProductoTotal  = (short)(Surtido.CantidadPrevia + Surtido.CantidadNueva);
                                     if (!Producto.Update())
                                     {
                                         Resultado.Resultado = false;
                                         break;
                                     }
                                     else
                                     {
                                         ClsAudit AuditUp = Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "SURTIDO");
                                         Producto.InsertAudit(AuditUp);
                                     }
                                 }
                             }
                         }
                         if (Resultado.Resultado)
                         {
                             Transaccion.Commit();
                             Resultado.Mensaje = "Surtido dado de alta correctamente";
                         }
                         else
                         {
                             Transaccion.Rollback();
                             Resultado.Mensaje = "Ocurrio un problema al registrar el surtido";
                         }
                     }
                     catch (Exception e)
                     {
                         Transaccion.Rollback();
                         Resultado.Resultado = false;
                         Resultado.Mensaje   = Recursos.Textos.Bitacora_TextoTryCatchGenerico;
                         ClsBitacora.GeneraBitacora(1, 1, "InsertSurtidos", String.Format(Recursos.Textos.Bitacora_TextoDeError, e.GetType().ToString(), e.Message.Trim(), e.GetHashCode().ToString()));
                     }
                 }
             }
         }
         else
         {
             Resultado.Resultado = false;
             Resultado.Mensaje   = "El objeto de surtido esta vacio";
         }
     }
     return(Resultado);
 }
Esempio n. 6
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));
        }
Esempio n. 7
0
        public ActionResult Baja(short NumeroDeProducto, String CodigoDeBarras)
        {
            if (!ValidaSesion())
            {
                return(RedirectToAction("LoginOut", "Account"));
            }
            if (!ValidaFuncionalidad(NumeroDePantalla, (byte)ClsEnumerables.Funcionalidades.BAJA))
            {
                return(RedirectToAction("Index", "Producto"));
            }
            ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado();
            var           ProductoClase         = ClsProductos.getList(String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\"", NumeroDeProducto, CodigoDeBarras));
            ProductoModel Producto = new ProductoModel(ProductoClase.FirstOrDefault());

            if (Producto == null)
            {
                Resultado.Resultado = false;
                Resultado.Mensaje   = "El producto no se encuentra o no cuenta con el estatus correcto";
            }
            else
            {
                List <ClsConfiguraMayoreos> Mayoreos = ClsConfiguraMayoreos.getList(String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\"", Producto.NumeroDeProducto, Producto.CodigoDeBarras));
                List <ClsConfiguraPaquetes> Paquetes = ClsConfiguraPaquetes.getList(String.Format("(NumeroDeProductoPadre == {0} && CodigoDeBarrasPadre == \"{1}\") || (NumeroDeProductoHijo == {0} && CodigoDeBarrasHijo == \"{1}\")", Producto.NumeroDeProducto, Producto.CodigoDeBarras));
                using (DBKuupEntities db = new DBKuupEntities())
                {
                    using (var Transaccion = db.Database.BeginTransaction())
                    {
                        try
                        {
                            if (Mayoreos.Count() != 0)
                            {
                                foreach (var item in Mayoreos)
                                {
                                    if (!item.Delete())
                                    {
                                        Transaccion.Rollback();
                                        Resultado.Resultado = false;
                                        Resultado.Mensaje   = "No fue posible realizar la baja de la configuracion de mayoreo asignada a este producto";
                                        return(Json(Resultado, JsonRequestBehavior.AllowGet));
                                    }
                                }
                            }
                            if (Paquetes.Count() != 0)
                            {
                                foreach (var item in Paquetes)
                                {
                                    if (!item.Delete())
                                    {
                                        Transaccion.Rollback();
                                        Resultado.Resultado = false;
                                        Resultado.Mensaje   = "No fue posible realizar la baja de los paquetes asignados al producto";
                                        return(Json(Resultado, JsonRequestBehavior.AllowGet));
                                    }
                                }
                            }
                            Producto.CveDeEstatus = 2;
                            if (!Producto.Update())
                            {
                                Resultado.Resultado = false;
                                Resultado.Mensaje   = "No fue posible realizar la baja del producto";
                                Transaccion.Rollback();
                            }
                            else
                            {
                                ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database);
                                ClsAudit    Audit    = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "BAJA");
                                Producto.InsertAudit(Audit);
                                Resultado.Resultado = true;
                                Resultado.Mensaje   = "Baja correcto";
                                Transaccion.Commit();
                            }
                        }
                        catch (Exception e)
                        {
                            Transaccion.Rollback();
                            Resultado.Resultado = false;
                            Resultado.Mensaje   = Recursos.Textos.Bitacora_TextoTryCatchGenerico;
                            ClsBitacora.GeneraBitacora(NumeroDePantalla, 4, "Baja", String.Format(Recursos.Textos.Bitacora_TextoDeError, e.GetType().ToString(), e.Message.Trim(), e.GetHashCode().ToString()));
                        }
                    }
                }
            }
            return(Json(Resultado, JsonRequestBehavior.AllowGet));
        }
Esempio n. 8
0
        public ActionResult Edita(ProductoModel RegistroCapturado)
        {
            if (!ValidaSesion())
            {
                return(RedirectToAction("LoginOut", "Account"));
            }
            if (!ValidaFuncionalidad(NumeroDePantalla, (byte)ClsEnumerables.Funcionalidades.EDITA))
            {
                return(RedirectToAction("Detalle", "Producto", new { RegistroCapturado.fNumeroDeProducto }));
            }
            ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, "Producto actualizado de forma correcta");
            String Filtro = String.Empty;

            Filtro = String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\"", RegistroCapturado.NumeroDeProducto, RegistroCapturado.CodigoDeBarras);
            ProductoModel productos = (ProductoModel)(from q in ClsProductos.getList(Filtro)
                                                      select new ProductoModel()
            {
                NumeroDeProducto = q.NumeroDeProducto,
                CodigoDeBarras = q.CodigoDeBarras,
                FechaDeRegistro = q.FechaDeRegistro,
                CantidadDeProductoUltima = q.CantidadDeProductoUltima,
                CantidadDeProductoNueva = q.CantidadDeProductoNueva,
                CantidadDeProductoTotal = q.CantidadDeProductoTotal,
                NombreDeProducto = q.NombreDeProducto,
                Descripcion = q.Descripcion,
                NumeroDeTipoDeProducto = q.NumeroDeTipoDeProducto,
                NumeroDeMarca = q.NumeroDeMarca,
                CveAviso = q.CveAviso,
                CveCorreoSurtido = q.CveCorreoSurtido,
                CantidadMinima = q.CantidadMinima,
                NumeroDeProveedor = q.NumeroDeProveedor,
                PrecioUnitario = q.PrecioUnitario,
                CveDeEstatus = q.CveDeEstatus,
                NombreDeTipoDeProducto = q.NombreDeTipoDeProducto,
                NombreDeMarca = q.NombreDeMarca,
                TextoAviso = q.TextoAviso,
                TextoCorreoSurtido = q.TextoCorreoSurtido,
                NombreDeProveedor = q.NombreDeProveedor,
                TextoDeEstatus = q.TextoDeEstatus
            }).FirstOrDefault();

            if (RegistroCapturado.fCveAviso == 2)
            {
                ModelState.Remove("fCveCorreoSurtido");
                RegistroCapturado.fCveCorreoSurtido = 2;
                ModelState.Remove("fCantidadMinima");
                RegistroCapturado.fCantidadMinima = 0;
                ModelState.Remove("fNumeroDeProveedor");
                RegistroCapturado.fNumeroDeProveedor = 0;
            }
            if (ModelState.IsValid)
            {
                productos.NombreDeProducto       = RegistroCapturado.NombreDeProducto;
                productos.Descripcion            = RegistroCapturado.Descripcion;
                productos.NumeroDeTipoDeProducto = RegistroCapturado.NumeroDeTipoDeProducto;
                productos.NumeroDeMarca          = RegistroCapturado.NumeroDeMarca;
                productos.PrecioUnitario         = RegistroCapturado.PrecioUnitario;
                productos.CveAviso         = RegistroCapturado.CveAviso;
                productos.CveCorreoSurtido = RegistroCapturado.CveCorreoSurtido;
                productos.CantidadMinima   = RegistroCapturado.CantidadMinima;
                if (!productos.Update())
                {
                    Resultado.Resultado = false;
                    Resultado.Mensaje   = "Ocurrio un problema al actualizar el reigstro";
                }
                else
                {
                    ClsSequence Sequence = new ClsSequence((new DBKuupEntities()).Database);
                    ClsAudit    Audit    = Nucleo.Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "EDITA");
                    productos.InsertAudit(Audit);
                }
            }
            else
            {
                Resultado.Resultado = false;
                Resultado.Mensaje   = "Campos incorrectos";
            }
            if (!Resultado.Resultado)
            {
                this.CargaCombos(RegistroCapturado);
                TempData["Resultado"] = Resultado.MensajeController();
                return(View(RegistroCapturado));
            }
            return(RedirectToAction("Detalle", "Producto", new { RegistroCapturado.NumeroDeProducto }));
        }
Esempio n. 9
0
        public ClsAdicional.ClsResultado Insert(ProductoModel Producto, bool GeneraCodigoDeBarras, List <MayoreoProducto> Mayoreo)
        {
            ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, String.Empty);
            using (DBKuupEntities db = new DBKuupEntities())
            {
                ClsSequence Sequence = new ClsSequence(db.Database);
                Producto.NumeroDeProducto = Sequence.SQ_Producto();
                Producto.NombreDeProducto = Producto.NombreDeProducto.ToUpper().Trim();
                Producto.Descripcion      = (Producto.Descripcion == null ? String.Empty : Producto.Descripcion.ToUpper().Trim());
                Producto.CodigoDeBarras   = (GeneraCodigoDeBarras ? MoCodigoDeBarras.ArmaNumeroDeBarras(Producto.NumeroDeProducto, "Kuup") : Producto.CodigoDeBarras);
                if (!Producto.Existe())
                {
                    if (Producto.Insert())
                    {
                        ClsAudit Audit = Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ALTA");
                        Producto.InsertAudit(Audit);
                        if (GeneraCodigoDeBarras)
                        {
                            MoCodigoDeBarras ResultadoCodigo = (new MoCodigoDeBarras()).GeneraCodigoDeBarras(Producto.NumeroDeProducto, "Kuup", Producto.CodigoDeBarras);
                            Resultado = ResultadoCodigo.Resultado;
                            if (!Resultado.Resultado)
                            {
                                Producto.Delete();
                            }
                        }
                        if (Mayoreo.Count() > 0)
                        {
                            if (Mayoreo.Exists(x => x.NombreDeProducto.ToUpper().Trim() == Producto.NombreDeProducto))
                            {
                                foreach (var M in Mayoreo.Where(x => x.NombreDeProducto.ToUpper().Trim() == Producto.NombreDeProducto).OrderBy(x => x.CantidadMinimaMayoreo))
                                {
                                    if (M.CveAplicaMayoreo == 1)
                                    {
                                        var   PrevioMayoreo = (from q in ClsConfiguraMayoreos.getList() where q.CodigoDeBarras == Producto.CodigoDeBarras && q.NumeroDeProducto == Producto.NumeroDeProducto select q).OrderBy(x => x.NumeroDeMayoreo).LastOrDefault();
                                        short Orden         = 0;
                                        if (PrevioMayoreo != null)
                                        {
                                            Orden = (short)(PrevioMayoreo.NumeroDeMayoreo + 1);
                                            PrevioMayoreo.CantidadMaxima = (byte)(M.CantidadMinimaMayoreo - 1);
                                            PrevioMayoreo.Update();
                                        }
                                        else
                                        {
                                            Orden++;
                                        }

                                        ClsConfiguraMayoreos configuraMayoreos = new ClsConfiguraMayoreos();
                                        configuraMayoreos.NumeroDeMayoreo     = Orden;
                                        configuraMayoreos.NumeroDeProducto    = Producto.NumeroDeProducto;
                                        configuraMayoreos.CodigoDeBarras      = Producto.CodigoDeBarras;
                                        configuraMayoreos.CveDeAplicaPaquetes = 1;
                                        configuraMayoreos.CantidadMinima      = M.CantidadMinimaMayoreo;
                                        configuraMayoreos.CantidadMaxima      = 255;
                                        configuraMayoreos.PrecioDeMayoreo     = M.PrecioMayoreo;
                                        configuraMayoreos.Insert();
                                    }
                                }
                                List <ClsConfiguraMayoreos> ConfMayoreo = (from q in ClsConfiguraMayoreos.getList() where q.NumeroDeProducto == Producto.NumeroDeProducto && q.CodigoDeBarras == Producto.CodigoDeBarras select q).ToList();
                                if (ConfMayoreo.Count() != 0)
                                {
                                    Audit.IdAudit = Sequence.SQ_FolioAudit();
                                }
                                foreach (var item in ConfMayoreo)
                                {
                                    item.InsertAudit(Audit);
                                }
                            }
                        }
                    }
                    else
                    {
                        Resultado.Resultado = false;
                        Resultado.Mensaje   = "Ocurrio un error al insertar el Producto";
                    }
                }
                else
                {
                    Resultado.Resultado = false;
                    Resultado.Mensaje   = "El producto a registrar ya Existe";
                }
            }
            return(Resultado);
        }
Esempio n. 10
0
 public ClsAdicional.ClsResultado RegistraMayoreo(short NumeroDeProducto, String CodigoDeBarras, List <ClsConfiguraMayoreos> configuraMayoreos)
 {
     ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, String.Empty);
     if (configuraMayoreos.Count() > 0)
     {
         using (DBKuupEntities db = new DBKuupEntities())
         {
             using (var Transaccion = db.Database.BeginTransaction())
             {
                 try
                 {
                     List <ClsConfiguraMayoreos> Previos = (from q in ClsConfiguraMayoreos.getList() where q.NumeroDeProducto == NumeroDeProducto && q.CodigoDeBarras == CodigoDeBarras select q).ToList();
                     if (Previos.Count() > 0)
                     {
                         foreach (var p in Previos.OrderBy(x => x.NumeroDeMayoreo))
                         {
                             if (!p.Delete())
                             {
                                 Resultado.Resultado = false;
                                 Resultado.Mensaje   = "Ocurrio un error al realizar la carga de Precios de Mayoreo";
                                 break;
                             }
                         }
                     }
                     if (Resultado.Resultado)
                     {
                         ClsSequence Sequence = new ClsSequence(db.Database);
                         ClsAudit    Audit    = Clases.ClsAuditInsert.RegistraAudit(Sequence.SQ_FolioAudit(), "ALTA");
                         foreach (var Mayoreo in configuraMayoreos.OrderBy(x => x.NumeroDeMayoreo))
                         {
                             Mayoreo.db = db;
                             Mayoreo.NumeroDeProducto    = NumeroDeProducto;
                             Mayoreo.CodigoDeBarras      = CodigoDeBarras;
                             Mayoreo.CveDeAplicaPaquetes = 1;
                             if (!Mayoreo.Insert())
                             {
                                 Resultado.Resultado = false;
                                 Resultado.Mensaje   = "No fue posible realizar la carga de precios de mayoreo";
                                 break;
                             }
                             Mayoreo.InsertAudit(Audit);
                         }
                     }
                     if (Resultado.Resultado)
                     {
                         Transaccion.Commit();
                     }
                     else
                     {
                         Transaccion.Rollback();
                     }
                 }
                 catch (Exception e)
                 {
                     Transaccion.Rollback();
                     Resultado.Resultado = false;
                     Resultado.Mensaje   = Recursos.Textos.Bitacora_TextoTryCatchGenerico;
                     ClsBitacora.GeneraBitacora(1, 1, "RegistraMayoreo", String.Format(Recursos.Textos.Bitacora_TextoDeError, e.GetType().ToString(), e.Message.Trim(), e.GetHashCode().ToString()));
                 }
             }
         }
     }
     return(Resultado);
 }
Esempio n. 11
0
        public ClsAdicional.ClsResultado RegistroDeVenta(decimal ImporteEntregado, decimal ImporteCambio, String ObjetoVenta)
        {
            ClsAdicional.ClsResultado Resultado     = new ClsAdicional.ClsResultado(true, "Registro de Venta Correcto");
            List <Object>             AvisaCantidad = new List <Object>();
            String Filtro = String.Empty;

            if (!String.IsNullOrEmpty(ObjetoVenta))
            {
                List <ClsVentas> RegistrosDeVentas = ClsAdicional.Deserializar <List <ClsVentas> >(ObjetoVenta);
                if (RegistrosDeVentas == null)
                {
                    RegistrosDeVentas = new List <ClsVentas>();
                }
                using (DBKuupEntities db = new DBKuupEntities())
                {
                    using (var Transaccion = db.Database.BeginTransaction())
                    {
                        try
                        {
                            ClsSequence      Sequence      = new ClsSequence(db.Database);
                            ClsVentasTotales VentasTotales = new ClsVentasTotales();
                            VentasTotales.db = db;
                            VentasTotales.FolioDeOperacion   = Sequence.SQ_FolioVenta();
                            VentasTotales.FechaDeOperacion   = DateTime.Now;
                            VentasTotales.NumeroDeUsuario    = MoSesion.NumeroDeUsuario;
                            VentasTotales.NombreDeCliente    = String.Empty;
                            VentasTotales.CveAplicaDescuento = 2;
                            VentasTotales.CveDeEstatus       = (byte)ClsEnumerables.CveDeEstatusVentas.VENDIDA;
                            VentasTotales.ImporteBruto       = (from q in RegistrosDeVentas select q.ImporteDeProducto).Sum();
                            VentasTotales.ImporteNeto        = VentasTotales.ImporteBruto;
                            VentasTotales.ImporteEntregado   = ImporteEntregado;
                            VentasTotales.ImporteCambio      = ImporteCambio;
                            if (VentasTotales.Insert())
                            {
                                var Productos = ClsProductos.getList(listaProductos: (from q in RegistrosDeVentas select q.NumeroDeProducto).ToList());
                                foreach (var Ventas in RegistrosDeVentas)
                                {
                                    if (Resultado.Resultado)
                                    {
                                        Ventas.db = db;
                                        Ventas.FolioDeOperacion = VentasTotales.FolioDeOperacion;
                                        var Producto = (from q in Productos where q.NumeroDeProducto == Ventas.NumeroDeProducto select q).FirstOrDefault();
                                        if (Ventas.CantidadDeProducto <= Producto.CantidadDeProductoTotal)
                                        {
                                            if (Ventas.Insert())
                                            {
                                                if (Producto != null)
                                                {
                                                    var Cantidad = Producto.CantidadDeProductoTotal - Ventas.CantidadDeProducto;
                                                    if (Cantidad >= 0)
                                                    {
                                                        Producto.db = db;
                                                        Producto.CantidadDeProductoTotal = (short)(Producto.CantidadDeProductoTotal - Ventas.CantidadDeProducto);
                                                        if (!Producto.Update())
                                                        {
                                                            Resultado.Resultado = false;
                                                            Resultado.Mensaje   = "No fue posible actualizar los titulos disponibles";
                                                            break;
                                                        }
                                                        if (Producto.CveAviso == 1)
                                                        {
                                                            if (Cantidad <= Producto.CantidadMinima)
                                                            {
                                                                //AvisaCantidad.Add(String.Format("El producto {0} esta proximo a terminarce Cantidad Actual {1}", Producto.NombreDeProducto, Producto.CantidadDeProductoTotal));
                                                                AvisaCantidad.Add(String.Format("{0}-x mensaje en bitacora", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "1".PadLeft(3, '0')));
                                                                ClsBitacora.GeneraBitacora(1, 1, String.Format("RegistroDeVenta-{0}", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "1".PadLeft(3, '0')), String.Format("El producto {0} esta proximo a terminarce Cantidad Actual {1}", Producto.NombreDeProducto, Producto.CantidadDeProductoTotal));
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        Resultado.Resultado = false;
                                                        //Resultado.Mensaje = "Ocurrió un problema al realizar la venta, debido a que no existen productos con la cantidad necesaria para hacer la venta";
                                                        Resultado.Mensaje = String.Format("{0}-x mensaje en bitacora", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0'), "2".PadLeft(3, '0'));
                                                        //AvisaCantidad.Add(String.Format("El producto {0} no cuenta con la cantidad a vender Cantidad Actual: {1} Cantidad a Vender: {2}", Producto.NombreDeProducto, Producto.CantidadDeProductoTotal, Ventas.CantidadDeProducto));
                                                        AvisaCantidad.Add(String.Format("{0}-x mensaje en bitacora", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "2".PadLeft(3, '0')));
                                                        ClsBitacora.GeneraBitacora(1, 1, String.Format("RegistroDeVenta-{0}", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "2".PadLeft(3, '0')), String.Format("El producto {0} no cuenta con la cantidad a vender Cantidad Actual: {1} Cantidad a Vender: {2}", Producto.NombreDeProducto, Producto.CantidadDeProductoTotal, Ventas.CantidadDeProducto));
                                                        break;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                Resultado.Resultado = false;
                                                Resultado.Mensaje   = "No fue posible cargar el detalle de la Venta";
                                                break;
                                            }
                                        }
                                        else
                                        {
                                            Resultado.Resultado = false;
                                            //Resultado.Mensaje = "Ocurrió un problema al realizar la venta, debido a que no existen productos con la cantidad necesaria para hacer la venta";
                                            Resultado.Mensaje = String.Format("{0}-x mensaje en bitacora", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "3".PadLeft(3, '0'));
                                            //AvisaCantidad.Add(String.Format("El producto {0} no cuenta con la cantidad a vender Cantidad Actual: {1} Cantidad a Vender: {2}", Producto.NombreDeProducto, Producto.CantidadDeProductoTotal, Ventas.CantidadDeProducto));
                                            AvisaCantidad.Add(String.Format("{0}-x mensaje en bitacora", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "3".PadLeft(3, '0')));
                                            ClsBitacora.GeneraBitacora(1, 1, String.Format("RegistroDeVenta-{0}", (new ClsVentasTotales()).NumeroDePantallaKuup.ToString().PadLeft(3, '0') + "3".PadLeft(3, '0')), String.Format("El producto {0} no cuenta con la cantidad a vender Cantidad Actual: {1} Cantidad a Vender: {2}", Producto.NombreDeProducto, Producto.CantidadDeProductoTotal, Ventas.CantidadDeProducto));
                                            break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                Resultado.Resultado = false;
                                Resultado.Mensaje   = "No fue posible realizar la Venta";
                            }
                            String Mensaje = String.Empty;
                            if (AvisaCantidad.Count() != 0)
                            {
                                Mensaje = String.Join("</ br>", AvisaCantidad);
                            }
                            if (Resultado.Resultado)
                            {
                                Transaccion.Commit();
                                ClsAdicional.ClsResultado RTicket = GeneraTicket(VentasTotales.FolioDeOperacion);
                                Resultado.Adicional = new { MensajeAviso = Mensaje, Ticket = RTicket.Adicional };
                            }
                            else
                            {
                                Object Ticket = null;
                                Transaccion.Rollback();
                                Resultado.Adicional = new { MensajeAviso = Mensaje, Ticket };
                            }
                        }
                        catch (Exception e)
                        {
                            Object Ticket = null;
                            Transaccion.Rollback();
                            Resultado.Adicional = new { MensajeAviso = String.Empty, Ticket };
                            Resultado.Resultado = false;
                            Resultado.Mensaje   = Recursos.Textos.Bitacora_TextoTryCatchGenerico;
                            ClsBitacora.GeneraBitacora(1, 1, "RegistroDeVenta", String.Format(Recursos.Textos.Bitacora_TextoDeError, e.GetType().ToString(), e.Message.Trim(), e.GetHashCode().ToString()));
                        }
                    }
                }
            }
            return(Resultado);
        }