Пример #1
0
        public ActionResult Imprimir2(FormCollection formulario, string GUIA)
        {
            string TEXTO = "<h2>PRODUCTOS RETIRO BODEGAL-PROBAG SIN LOGO</h2>";
            TEXTO = "<table><tr><th>DESCRIPCION</th><th>CAJAS</th><th>CODIGO</th><th>UNI. x CAJA</th><th>CANT. TOTAL</th><th>SOBRANTES</th><th>GUIA</th><th>NOTA VENTA</th><th>VENDEDOR</th><th>STOCK</th></tr>";

            List<Datos2> datos = new List<Datos2>();
            IValueProvider valueProvider = formulario.ToValueProvider();
            for (int i = 2; i < formulario.Count; i++)
            {
                Datos2 dato = new Datos2();
                //PEDIDOS A BODEGAL
                int valor = int.Parse(formulario.Keys[i].ToString());

                Maqueta2 maqueta = db.Maqueta2.Find(valor);
                maqueta.ESTADO = "PEDIDOS A BODEGAL";
                db.Entry(maqueta).State = EntityState.Modified;

                Detalle detalle = new Detalle();
                detalle.CANTIDAD = int.Parse(maqueta.CANTIDAD.ToString());
                detalle.ACUMULADO = int.Parse(maqueta.CANTIDAD.ToString());
                detalle.FECHA = DateTime.Now;
                detalle.TIPO = "PEDIDOS A BODEGAL";
                detalle.IDMAQUETA = maqueta.IDNOTAVENTA;
                detalle.MOVIMIENTO = formulario.Keys[0].ToString();
                detalle.ORIGEN = "BODEGAL";

                Producto producto = db.Producto.Find(maqueta.IDPRODUCTO);

                int cantidad = maqueta.CANTIDAD.Value;
                if (cantidad < producto.STOCKLOCAL.Value)
                {
                    cantidad = 0;
                    producto.STOCKLOCAL = producto.STOCKLOCAL.Value - cantidad;
                }
                else
                {
                    cantidad = cantidad - producto.STOCKLOCAL.Value;
                    producto.STOCKLOCAL = 0;
                }

                int unicajas = producto.UNIDADESXCAJA.Value;
                int entero = cantidad / unicajas;
                int sobra = cantidad % unicajas;
                if (sobra != 0)
                {
                    entero++;
                }

                dato.NombrEProductO = maqueta.Producto.NOMBRE;
                dato.CajaS = entero;
                dato.CodigOProductO = maqueta.Producto.CODIGO;
                dato.UnidadeSXCajA = unicajas;
                dato.CantidaD = maqueta.CANTIDAD.Value;
                dato.GuiA = GUIA;
                dato.Cliente = maqueta.NotaVenta.Cliente.EMPRESA;
                dato.NotaVentA = maqueta.IDNOTAVENTA;
                dato.SobrantE = producto.UNIDADESXCAJA.Value - sobra;
                dato.VendedoR = maqueta.Usuario.NOMBRE;

                //sobra = maqueta.Producto.CODIGO.Length;
                //char[] caracteres = new char[sobra];
                //for (int g = 0; g < sobra; g++)
                //{
                //    caracteres[i] = maqueta.Producto.CODIGO[i];
                //}
                //DESCONTAR DE STOCK
                producto.STOCK = producto.STOCK - entero;
                if (sobra != 0)
                {
                    producto.STOCKLOCAL = producto.STOCKLOCAL + sobra;
                }
                db.Entry(producto).State = EntityState.Modified;
                db.SaveChanges();

                dato.StocK = producto.STOCK.Value;
                datos.Add(dato);

                Bodegal bodegal = new Bodegal();
                bodegal.Guia = int.Parse(dato.GuiA);
                bodegal.Fecha = DateTime.Now;
                bodegal.Movido = dato.CajaS;
                bodegal.Sobrantes = dato.SobrantE;
                bodegal.Stock = producto.STOCK.Value;
                bodegal.Donde = true;
                bodegal.FkProducto = producto.ID;
                db.Bodegal.Add(bodegal);
                db.SaveChanges();
                TEXTO = TEXTO + "<tr><td>" + dato.NombrEProductO + "</td><td>" + dato.CajaS + "</td><td>" + dato.CajaS + "</td><td>" + dato.CodigOProductO + "</td><td>" + dato.UnidadeSXCajA + "</td><td>" + dato.CantidaD + "</td><td>" + dato.SobrantE + "</td><td>" + dato.GuiA + "</td><td>" + dato.NotaVentA + "</td><td>" + dato.VendedoR + "</td><td>" + dato.StocK + "</td></tr>";
            }

            List<string> correos = db.Usuario.Where(r => r.IDCARGO == 8 || r.IDCARGO == 1).Select(r => r.EMAIL).ToList();
            _MailService.SendEmailvarioscorreos("Pedido a Bodegal SIN LOGO", correos, TEXTO);

            Datos2 primer = datos.FirstOrDefault();
            QRCodeEncoder encoder = new QRCodeEncoder();
            string URL = "Numero de la Guia: " + primer.GuiA;
            string WorkingDirectory = this.Server.MapPath("~/uploadedFolder/");
            Bitmap img = encoder.Encode(URL);
            img.Save(WorkingDirectory + "img4.jpg", ImageFormat.Jpeg);

            return View(datos.ToList());
        }
Пример #2
0
        public ActionResult Imprimir3(FormCollection formulario, string GUIA)
        {
            List<Maqueta4> lista = new List<Maqueta4>();
            IValueProvider valueProvider = formulario.ToValueProvider();
            for (int i = 2; i < formulario.Count; i++)
            {

                int valor = int.Parse(formulario.Keys[i].ToString());

                Maqueta4 maqueta = db.Maqueta4.Find(valor);
                maqueta.MOVIMIENTO = GUIA;
                db.Entry(maqueta).State = EntityState.Modified;
                db.SaveChanges();
                Producto producto = db.Producto.Find(maqueta.IDPRODUCTO);

                producto.STOCK= producto.STOCK+maqueta.CANTIDAD;
                db.Entry(producto).State = EntityState.Modified;
                db.SaveChanges();

                Bodegal bodegal = new Bodegal();
                bodegal.Guia = int.Parse(GUIA);
                bodegal.Fecha = DateTime.Now;
                bodegal.Movido = maqueta.CANTIDAD.Value;
                bodegal.Sobrantes = 0;
                bodegal.Stock = producto.STOCK.Value;
                bodegal.Donde = false;
                bodegal.FkProducto = producto.ID;
                db.Bodegal.Add(bodegal);
                db.SaveChanges();
                lista.Add(maqueta);
            }
            return View(lista);
        }
Пример #3
0
        public ActionResult Imprimir(FormCollection formulario, string GUIA)
        {
            string TEXTO = "<h2>PRODUCTOS RETIRO BODEGAL-PROBAG CON LOGOS</h2>";
            TEXTO = "<table><tr><th>DESCRIPCION</th><th>LOGO</th><th>CAJAS</th><th>CODIGO</th><th>UNI.x CAJA</th><th>TOTAL</th><th>SOBRANTE</th><th>GUIA</th><th>MAQUETA</th><th>VENDEDOR</th><th>CLIENTE</th><th>STOCK</th></tr>";
            List<Datos> datos = new List<Datos>();
            IValueProvider valueProvider = formulario.ToValueProvider();
            for (int i = 2; i < formulario.Count; i++)
            {
                Datos dato = new Datos();
                //PEDIDOS A BODEGAL
                string valor = formulario.Keys[i].ToString();

                Maqueta maqueta = db.Maqueta.Find(valor);
                maqueta.ESTADO = "PEDIDOS A BODEGAL";
                db.Entry(maqueta).State = EntityState.Modified;

                Estado estado = new Estado();
                estado.FECHA = DateTime.Now;
                estado.IDMAQUETA = maqueta.CODIGO;
                estado.NOMBRE = "PEDIDOS A BODEGAL";
                db.Estado.Add(estado);
                db.SaveChanges();

                Detalle detalle = new Detalle();
                detalle.CANTIDAD = int.Parse(maqueta.CANTIDAD.ToString());
                detalle.ACUMULADO = int.Parse(maqueta.CANTIDAD.ToString());
                detalle.FECHA = DateTime.Now;
                detalle.TIPO = "PEDIDOS A BODEGAL";
                detalle.IDMAQUETA = maqueta.CODIGO;
                detalle.MOVIMIENTO = formulario.Keys[0].ToString();
                detalle.ORIGEN = "BODEGAL";

                Producto producto = db.Producto.Find(maqueta.CODPRODUCTO);  //PIDO PRODUCTO
                int auxiliarmio =0;
                int cantidad = int.Parse(maqueta.CANTIDAD.ToString());      //GUARDO TOTAL
                int unicajas = int.Parse(maqueta.Producto.UNIDADESXCAJA.ToString()); //GUARDO UNIDADES POR CAJA

                if (producto.STOCKLOCAL != 0 && producto.STOCKLOCAL != null)//VERIFICO SI HAY EN STOCKLOCAL
                {
                    auxiliarmio = producto.STOCKLOCAL.Value;
                    if (cantidad >= producto.STOCKLOCAL.Value) //VERIFICO SI EL STOCK LOCAL ES MENOR IGUAL A LA CANTIDAD PEDIDA
                    {
                        cantidad = cantidad - producto.STOCKLOCAL.Value; //RESTO STOCKLOCAL A LA CANTIDAD PEDIDA
                        if (cantidad == 0)
                        {
                            producto.STOCKLOCAL = producto.STOCKLOCAL.Value - int.Parse(maqueta.CANTIDAD.ToString());
                        }
                        else
                        {
                            producto.STOCKLOCAL = 0;
                        }
                    }
                    else
                    {
                        cantidad = 0;
                        producto.STOCKLOCAL = producto.STOCKLOCAL.Value - int.Parse(maqueta.CANTIDAD.ToString());
                    }
                }

                int entero = cantidad / unicajas;
                int sobra = cantidad % unicajas;
                int sobrantes = 0;
                if (sobra != 0)
                {
                    entero++;
                    sobrantes = unicajas * entero;
                    sobrantes = sobrantes - cantidad;
                }

                dato.NombrEProductO = maqueta.Producto.NOMBRE;
                dato.CajaS = entero;
                dato.CodigOProductO = maqueta.Producto.CODIGO;
                dato.UnidadeSXCajA = int.Parse(maqueta.Producto.UNIDADESXCAJA.ToString());
                dato.CantidaD = int.Parse(maqueta.CANTIDAD.ToString());
                dato.GuiA = GUIA;
                dato.MaquetA = maqueta.CODIGO;
                dato.SobrantE = sobrantes - auxiliarmio;
                dato.VendedoR = maqueta.Usuario.NOMBRE.ToString();
                dato.LogO = maqueta.LOGOTIPO;
                if(maqueta.IDCLIENTE!=null)
                    dato.Cliente = maqueta.Cliente.EMPRESA.ToString();

                //DESCONTAR DE STOCK
                producto.STOCK = producto.STOCK - dato.CajaS;
                if (sobra != 0)
                {
                    producto.STOCKLOCAL = producto.STOCKLOCAL + (producto.UNIDADESXCAJA - sobra);
                }
                db.Entry(producto).State = EntityState.Modified;
                db.SaveChanges();

                Bodegal bodegal = new Bodegal();
                bodegal.Guia = int.Parse(dato.GuiA);
                bodegal.Fecha = DateTime.Now;
                bodegal.Movido = dato.CajaS;
                bodegal.Sobrantes = dato.SobrantE;
                bodegal.Stock = producto.STOCK.Value;
                bodegal.Donde = true;
                bodegal.FkProducto = producto.ID;
                db.Bodegal.Add(bodegal);

                dato.StocK = producto.STOCK.Value;
                datos.Add(dato);

                //AGREGAR EN STRING PARA CORREO;
                TEXTO =TEXTO + "<tr><td>"+dato.NombrEProductO + "</td><td>"+dato.LogO+"</td><td>"+dato.CajaS+"</td><td>"+dato.CodigOProductO+"</td><td>"+dato.UnidadeSXCajA+"</td><td>"+dato.CantidaD+"</td><td>"+dato.SobrantE+"</td><td>"+dato.GuiA+"</td><td>"+dato.MaquetA+"</td><td>"+dato.VendedoR+"</td><td>"+dato.Cliente+"</td><td>"+dato.StocK + "</td></tr>";
            }
            TEXTO = TEXTO + "</table>";
            List<string> correos = db.Usuario.Where(r => r.IDCARGO == 8 || r.IDCARGO == 1).Select(r => r.EMAIL).ToList();
            _MailService.SendEmailvarioscorreos("Pedido a Bodegal CON LOGO", correos, TEXTO);

            Datos primer = datos.FirstOrDefault();
            QRCodeEncoder encoder = new QRCodeEncoder();
            string URL = "Numero de la Guia: " + primer.GuiA;
            string WorkingDirectory = this.Server.MapPath("~/uploadedFolder/");
            Bitmap img = encoder.Encode(URL);
            img.Save(WorkingDirectory + "img3.jpg", ImageFormat.Jpeg);

            return View(datos.ToList());
        }