Ejemplo n.º 1
0
        public void reportsupervisor(List<Maqueta> lista)
        {
            int cargo = int.Parse((db.Cargo.Where(r => r.NOMBRE == "SUPERVISOR").Select(r => r.ID)).First().ToString());

            List<Usuario> listint = new List<Usuario>();

            List<string> email = new List<string>();
            email = db.Usuario.Where(r => r.IDCARGO == cargo && r.ESTADO == true && r.EMAIL != null).Select(d => d.EMAIL).ToList();

            if (lista.Count != 0)
            {
                var asd = lista.Where(r => r.ESTADO == "APROBACION VENDEDOR");
                List<Maqueta> aprovend = asd.ToList();
                var asd2 = lista.Where(r => r.ESTADO != "APROBACION VENDEDOR");
                string Cabezera = " Reporte YGD";
                string Texto = "Estimado SUPERVISOR, <br/><br/>La siguiente lista consta con todas las maquetas que se encuentran en produccion y todavia no estan FINIQUITADOs. <br/><br/> <bold>POR APROBAR</bold> <br/><br/>";
                Texto = Texto + "<table><tr><th>CODIGO</th><th>ESTADO</th><th>LOGOTIPO</th><th>PRODUCTO</th><th>URL</th></tr>";
                foreach (var correo in aprovend)
                {
                    Texto = Texto + "<tr><td>" + correo.CODIGO + "</td><td>" + correo.ESTADO + "</td><td>" + correo.LOGOTIPO + "</td>";
                    if (correo.Producto != null)
                    {
                        Texto = Texto + "<td>" + correo.Producto.CODIGO + "</td>";
                    }
                    else
                    {
                        Texto = Texto + "<td></td>";
                    }
                    Texto = Texto + "<td> <a href='ygd.cl/Maqueta/Edit/" + correo.CODIGO + "'> Enlace </a></td>";
                    Texto = Texto + "</tr>";
                }
                Texto = Texto + "</table>";

                Texto = Texto + "<br/><br/> OTROS PENDIENTES <br/>";
                List<Maqueta> aprovend2 = asd2.ToList();
                Texto = Texto + "<table><tr><th>CODIGO</th><th>ESTADO</th><th>LOGOTIPO</th><th>PRODUCTO</th><th>DIAS</th><th>URL</th></tr>";
                foreach (var correo in aprovend2)
                {
                    TimeSpan diferencia = new TimeSpan(0, 0, 0, 00, 0);

                    DateTime actual = DateTime.Now;
                    Estado estado = new Estado();
                    switch(correo.ESTADO){
                        case "APROBACION SUPERVISOR":
                            /*db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == correo.ESTADO);*/
                            estado = db.Estado.Where(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "APROBACION VENDEDOR").FirstOrDefault();
                            if (actual != null && estado != null)
                                diferencia = actual - estado.FECHA;
                            break;
                        case "TRABAJANDO EN BODEGA":
                                //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO);
                                estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && (r.NOMBRE == "PEDIDOS A BODEGAL" || r.NOMBRE == "APROBACION SUPERVISOR"));
                                if (actual != null && estado != null)
                                    diferencia =  actual - estado.FECHA;
                                break;
                        case "PEDIDOS A BODEGAL":
                                //actual = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == correo.ESTADO);
                                estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "APROBACION SUPERVISOR");
                                if (actual != null && estado != null)
                                    diferencia = actual - estado.FECHA;
                                break;
                        case "ENTREGADAS A TALLER":
                                //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO);
                                estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "TRABAJANDO EN BODEGA");
                                if (actual != null && estado != null)
                                    diferencia = actual - estado.FECHA;
                            break;
                        case "DEVUELTA A BODEGA":
                                //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO);
                                estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "ENTREGADAS A TALLER");
                                if (actual != null && estado != null)
                                    diferencia = actual - estado.FECHA;
                            break;
                        case "ENTREGADO A CLIENTE":
                                //actual = db.Estado.FirstOrDefault(r=>r.IDMAQUETA == correo.CODIGO && r.NOMBRE== correo.ESTADO);
                                estado = db.Estado.FirstOrDefault(r => r.IDMAQUETA == correo.CODIGO && r.NOMBRE == "DEVUELTA A BODEGA");
                                if(actual != null && estado != null)
                                    diferencia = actual - estado.FECHA;
                            break;
                    }

                    Texto = Texto + "<tr><td>" + correo.CODIGO + "</td><td>" + correo.ESTADO + "</td><td>" + correo.LOGOTIPO + "</td>";
                    if (correo.Producto != null)
                    {
                        Texto = Texto + "<td>" + correo.Producto.CODIGO + "</td>";
                    }
                    else
                    {
                        Texto = Texto + "<td></td>";
                    }
                    Texto = Texto + "<td>"+ diferencia.Days.ToString() +"</td>";
                    Texto = Texto + "<td> <a href='ygd.cl/Maqueta/Details/" + correo.CODIGO + "'> Enlace </a></td>";
                    Texto = Texto + "</tr>";
                }
                Texto = Texto + "</table>";
                _MailService.SendEmailvarioscorreos(Cabezera, email, Texto);
            }
        }
Ejemplo n.º 2
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());
        }
Ejemplo n.º 3
0
        public ActionResult PedirBodegal(FormCollection formulario)
        {
            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 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
                {
                    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 - cantidad;
                        }
                        else
                        {
                            producto.STOCKLOCAL = 0;
                        }
                    }
                    else
                    {
                        cantidad = 0;
                        producto.STOCKLOCAL = producto.STOCKLOCAL.Value - cantidad;
                    }
                }

                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 = formulario.Keys[i].ToString();
                dato.MaquetA = maqueta.CODIGO;
                dato.SobrantE = sobrantes;
                dato.VendedoR = maqueta.Usuario.NOMBRE.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();

                datos.Add(dato);
            }

            return RedirectToAction("Imprimir", datos);
        }
Ejemplo n.º 4
0
        public ActionResult Details(string id , string nombre)
        {
            if (nombre != "")
            {
                Maqueta maqueta = db.Maqueta.Find(id);

                maqueta.FACTURA = nombre;
                Estado esta = new Estado();
                esta.IDMAQUETA = maqueta.CODIGO;
                esta.NOMBRE = "FACTURADA";
                esta.FECHA = DateTime.Now;
                db.Estado.Add(esta);
                if (maqueta.ESTADO == "ENTREGADO A CLIENTE")
                {
                    maqueta.ESTADO = "FINIQUITADO";
                    //ELIMINAR LA IMAGEN QUE SE USA PARA CONFIRMACION DESPUES DE FACTURAR QUE ES EL PROCESO FINAL.
                    DeleteBlob(maqueta.URL);
                }

                db.Entry(maqueta).State = EntityState.Modified;
                db.SaveChanges();

                FechFacMaqu1 fecha = new FechFacMaqu1();
                fecha.FECHA = DateTime.Now;
                fecha.Fk_Maqueta = maqueta.CODIGO;
                db.FechFacMaqu1.Add(fecha);
                db.SaveChanges();

                string titulo, correo, texto;
                titulo = "FACTURADO " + maqueta.CODIGO;
                var tyu = from m in db.Usuario
                          where (m.ID == maqueta.IDVENDEDOR)
                          select m.EMAIL;
                correo = tyu.First().ToString();
                texto = "La venta" + maqueta.CODIGO + "Se Facturado con el Nombre de: " + maqueta.FACTURA;
                texto = texto + "<br/> MAQUETA: " + maqueta.CODIGO;
                texto = texto + "<br/> LOGO: " + maqueta.LOGOTIPO;
                texto = texto + "<br/> PRODUCTO: " + maqueta.Producto.NOMBRE;
                texto = texto + "<br/> ESTADO ACTUAL: " + maqueta.ESTADO;

                _MailService.SendEmail(titulo, correo, texto);
            }

            return RedirectToAction("Details");
        }
Ejemplo n.º 5
0
        public ActionResult Create(HttpPostedFileBase fichero, bool estado, Maqueta model)
        {
            model.CODIGO = model.CODIGO.Replace("-", "");

            bool existe = db.Maqueta.Any(r => r.CODIGO == model.CODIGO);

            if (existe == false)
            {
                tipusu();

                //FICHERO
                if (fichero != null)
                {
                    string nombr = model.CODIGO + ".jpg";
                    SaveBlob(fichero, nombr);
                    model.URL = model.CODIGO + ".jpg".ToString();
                }
                else
                {
                    model.URL = "sin-imagen.jpg".ToString();
                }

                model.FECHA = DateTime.Now;
                //DISEÑADOR
                string nomusuario = this.User.Identity.Name;
                var dfg = from m in db.Usuario
                          where (m.NOMBRE == nomusuario)
                          select m.ID;
                nomusuario = dfg.First().ToString();
                model.IDDISEÑADOR = nomusuario;

                //ESTADO
                model.ESTADO = "NO CONFIRMADO";
                Estado estados = new Estado();
                if (estado == true)
                {
                    int Est = tipousuario();
                    string c = "NO CONFIRMADO";
                    switch (Est)
                    {
                        case 6:
                            c = "APROVADO VENDEDOR";
                            break;
                        case 2:
                            c = "APROVADO SUPERVISOR";
                            break;
                    }
                    model.ESTADO = c.ToString();
                    //ESTADO
                    estados.NOMBRE = c;
                    estados.NOMBRE = c.ToString();
                    estados.FECHA = DateTime.Now;
                    estados.IDMAQUETA = model.CODIGO;
                }
                string GuidString = Guid.NewGuid().ToString("D");
                model.REVISIONCOD = new Guid(GuidString);

                //GUARDAR
                db.Maqueta.Add(model);
                if (estado == true)
                {
                    db.Estado.Add(estados);
                }
                db.SaveChanges();

                string gre = (from m in db.Usuario
                          where (m.ID == model.IDVENDEDOR)
                          select m.EMAIL).First();

                string titulo = "Se ha Creado Maqueta " + model.CODIGO + " con Logo " + model.LOGOTIPO;
                string correo = gre;
                string texto = "Le informamos que su pedido de maqueta ya se encuentra subida al sistema con el codigo " + model.CODIGO + " y esta en espera de su aprobación. <br/><br/>Saludos.";
                //string perdirigido = model.Usuario.NOMBRE;
                //string observacion = model.OBSERVACION;
                //string diseñador = model.Usuario1.NOMBRE;
                _MailService.SendEmail( titulo, correo, texto);
            }
            return RedirectToAction("Index");
        }
Ejemplo n.º 6
0
        public ActionResult Edit(Maqueta maqueta, bool estadox, HttpPostedFileBase fichero, string vendedor , DateTime FECHAMIA)
        {
            if (maqueta.CODPRODUCTO == 499 && maqueta.IDNOTACOMPRA == null)
            {
                int a = tipousuario();
                ViewBag.IDEMPRESA = new SelectList(db.Empresa, "ID", "NOMBRE", maqueta.IDEMPRESA);
                ViewBag.CODPRODUCTO = new SelectList(db.Producto, "ID", "CODIGO", maqueta.CODPRODUCTO);
                ViewBag.IDTALLER = new SelectList(db.Taller, "ID", "NOMBRE", maqueta.IDTALLER);
                ViewBag.IDNOTACOMPRA = new SelectList(db.NotaCompra.Where(r => r.IDVENDEDOR == maqueta.IDVENDEDOR), "ID", "ID", maqueta.IDNOTACOMPRA);
                ViewBag.TEXTO = "LA PRODUCCION AMERITA AGREGAR LA NOTA DE COMPRA";

                string qwerty =this.User.Identity.Name;
                string idusuario = db.Usuario.FirstOrDefault(r => r.NOMBRE == qwerty).ID;

                if (a == 6 || a == 1 || a == 2 || a == 8)
                {
                    ViewBag.IDCLIENTE = new SelectList(db.Cliente.Where(k => k.IDUSUARIO == maqueta.IDVENDEDOR), "ID", "EMPRESA", maqueta.IDCLIENTE);
                }
                else
                {
                    ViewBag.IDCLIENTE = new SelectList(db.Cliente.Where(k => k.IDUSUARIO == idusuario), "ID", "EMPRESA", maqueta.IDCLIENTE);
                }
                return View(maqueta);
            }
            #region LOGICA
            string nomusuario = this.User.Identity.Name;
            Usuario kdk = db.Usuario.FirstOrDefault(r => r.NOMBRE == nomusuario);

            maqueta.FECHAENTREGA = FECHAMIA;

            #region DISEÑADOR Y VENDEDOR
            //SI ES DISEÑADOR LLENAR IDVENDEDOR Y IDDISEÑADOR
            if (kdk.IDCARGO.ToString() == "3")
            {
                //IDVENDEDOR
                if (vendedor != "")
                {
                    string qry = db.Usuario.FirstOrDefault(r => r.NOMBRE == vendedor).ID;
                    //var qry = from m in db.Usuario
                    //          where (m.NOMBRE == vendedor)
                    //          select m.ID;
                    maqueta.IDVENDEDOR = qry.ToString();
                }
                else
                {
                    string qry = db.Maqueta.FirstOrDefault(r=>r.CODIGO==maqueta.CODIGO).IDVENDEDOR;
                             //from m in db.Maqueta
                             // where (m.CODIGO == maqueta.CODIGO)
                             // select m.IDVENDEDOR;
                    maqueta.IDVENDEDOR = qry.ToString();
                }
                //IDDISEÑADOR
                maqueta.IDDISEÑADOR = kdk.ID.ToString();
            }
            #endregion

            #region URL
            if (fichero != null)
            {
                SaveBlob(fichero, maqueta.CODIGO + ".jpg".ToString());
                maqueta.URL = maqueta.CODIGO + ".jpg".ToString();
            }
            else
            {
                var top = from t in db.Maqueta
                          where (t.CODIGO == maqueta.CODIGO)
                          select t.URL;
                string urle = top.First().ToString();
                maqueta.URL = urle;
            }

            var tope = from t in db.Maqueta
                      where (t.CODIGO == maqueta.CODIGO)
                      select t.FECHA;
            if (tope.Count() != 0)
            {
                maqueta.FECHA = tope.First();
            }
            #endregion

            #region CAMBIO DE ESTADO
            Estado estados = new Estado();
            int Est = tipousuario();
            if (estadox == true)
            {
                string c = "";
                switch (Est)
                {
                    case 1:
                        c = "APROBACION SUPERVISOR";
                        break;
                    case 8:
                        c = "APROBACION SUPERVISOR";
                        break;
                    case 6:
                        c = "APROBACION SUPERVISOR";
                        break;
                    case 2:
                        c = "APROBACION VENDEDOR";
                        break;
                    case 3:
                        break;
                    case 4:
                        break;
                }
                maqueta.ESTADO = c.ToString();
                estados.NOMBRE = c.ToString();
                estados.FECHA = DateTime.Now;
                estados.IDMAQUETA = maqueta.CODIGO;
            }
            else
            {
                var pep = from e in db.Maqueta
                          where (e.CODIGO == maqueta.CODIGO)
                          select e.ESTADO;
                switch (pep.First().ToString())
                {
                    case "NO CONFIRMADO":
                        maqueta.ESTADO = "NO CONFIRMADO";
                        break;
                    case "APROBACION VENDEDOR":
                        maqueta.ESTADO = "NO CONFIRMADO";
                        break;
                    case "APROBACION SUPERVISOR":
                        maqueta.ESTADO = "APROBACION VENDEDOR";
                        break;
                }
            }
            #endregion

            //ACTUALIZAR
            db.Entry(maqueta).State = EntityState.Modified;

            #region TABLA ESTADO
            if (estadox == true)
            {
                int idcargovar = tipousuario();
                var kje = db.Maqueta.Where(m => m.CODIGO == maqueta.CODIGO);
                var jhg = from e in db.Maqueta
                          where (e.ESTADO == "xxx")
                          select e.CODIGO;
                switch (idcargovar)
                {
                    case 1:
                        kje = kje.Where(m => m.ESTADO != "APROBACION VENDEDOR");
                        if (kje.Count() != 0)
                        {
                            kje = kje.Where(m => m.ESTADO != "NO CONFIRMADO");
                        }
                        break;
                    case 8:
                        kje = kje.Where(m => m.ESTADO != "APROBACION VENDEDOR");
                        if (kje.Count() != 0)
                        {
                            kje = kje.Where(m => m.ESTADO != "NO CONFIRMADO");
                        }
                        break;
                    case 6:
                        jhg = from e in db.Maqueta
                              where (e.ESTADO != "APROBACION VENDEDOR") &&
                              (e.CODIGO == maqueta.CODIGO)
                              select e.CODIGO;
                        kje = kje.Where(m => m.ESTADO == "xxx");
                        break;
                    case 2:
                        jhg = from e in db.Maqueta
                              where (e.ESTADO != "NO CONFIRMADO") &&
                              (e.CODIGO == maqueta.CODIGO)
                              select e.CODIGO;
                        kje = kje.Where(m => m.ESTADO == "xxx");
                        break;
                    case 3:
                        break;
                    case 4:
                        break;
                }
                if (jhg.Count() == 0 && kje.Count() == 0)
                {
                    db.Estado.Add(estados);
                }
                else
                {
                    string d = "hola";
                    switch (Est)
                    {
                        case 1:
                            d = "APROBACION SUPERVISOR";
                            break;
                        case 6:
                            d = "APROBACION SUPERVISOR";
                            break;
                        case 2:
                            d = "APROBACION VENDEDOR";
                            break;
                        case 3:
                            break;
                        case 4:
                            break;
                    }
                    var pol = from e in db.Estado
                              where (e.IDMAQUETA == maqueta.CODIGO) &&
                                    (e.NOMBRE == d)
                              select e.ID;
                    Estado est = db.Estado.Find(int.Parse(pol.First().ToString()));
                    db.Estado.Remove(est);
                    db.Estado.Add(estados);
                }
            }
            else
            {

                string d = "hola";
                switch (Est)
                {
                    case 1:
                        d = "APROBACION SUPERVISOR";
                        break;
                    case 6:
                        d = "APROBACION SUPERVISOR";
                        break;
                    case 2:
                        d = "APROBACION VENDEDOR";
                        break;
                    case 3:
                        break;
                    case 4:
                        break;
                }
                var pol = from e in db.Estado
                          where (e.IDMAQUETA == maqueta.CODIGO) &&
                                (e.NOMBRE == d)
                          select e.ID;
                if (pol.Count() != 0)
                {
                    Estado est = db.Estado.Find(int.Parse(pol.First().ToString()));
                    db.Estado.Remove(est);
                }
            }
            #endregion

            db.SaveChanges();

            if (maqueta.ESTADO == "APROBACION SUPERVISOR")
            {
                int? b = maqueta.CANTIDAD;
                int? a = maqueta.COSTO;
                int? c = null;
                if(b != null && a !=null){
                    c = a*b;
                }

                if (vendedor == null)
                {
                     Usuario use = db.Usuario.Find(maqueta.IDVENDEDOR);
                     vendedor = use.NOMBRE;
                }

                string gre = (from w in db.Taller
                              where (w.ID == maqueta.IDTALLER)
                              select w.NOMBRE).First();

                valor(vendedor, nomusuario, 1, maqueta.URL, gre, a, c,maqueta.CANTIDAD.Value);

                pegarheader("inter-" + maqueta.URL);
            }

            #region ENVIO DE CORREO
            string titulo, correo, texto;
            switch (maqueta.ESTADO)
            {
                case "NO CONFIRMADO":
                    titulo = "Se ha modificado Maqueta " + maqueta.CODIGO + " con Logo " + maqueta.LOGOTIPO;
                    var gre = from m in db.Usuario
                              where (m.ID == maqueta.IDVENDEDOR)
                              select m.EMAIL;
                    correo = gre.First().ToString();
                    texto = "Estimado: <br/><br/>El diseñador " + nomusuario + " ha modificado la maqueta " + maqueta.CODIGO + " y se encuentra en la espera de su aprovación.";
                    texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Edit/" + maqueta.CODIGO + "'> Enlace </a>";
                    _MailService.SendEmail(titulo, correo, texto);
                    break;
                case "APROBACION SUPERVISOR":
                    titulo = "APROBACION SUPERVISOR Maqueta " + maqueta.CODIGO + " con Logo " + maqueta.LOGOTIPO;
                    var hjk = from m in db.Usuario
                              where (m.ID == maqueta.IDVENDEDOR)
                              select m.EMAIL;
                    correo = hjk.First().ToString();
                    texto = "Estimado: <br/><br/> El supervisor " + nomusuario + " ha aceptado la maqueta: " + maqueta.CODIGO;
                    texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Details/" + maqueta.CODIGO + "'> Enlace </a>";
                    _MailService.SendEmail(titulo, correo, texto);
                    break;
                case "APROBACION VENDEDOR":
                    titulo = "APROBACION VENDEDOR Maqueta " + maqueta.CODIGO + " con Logo " + maqueta.LOGOTIPO;
                    var tyu = from m in db.Usuario
                              where (m.ID == maqueta.IDDISEÑADOR)
                              select m.EMAIL;
                    correo = tyu.First().ToString();
                    texto = "Estimado: <br/><br/> El vendedor " + nomusuario + " ha aceptado la maqueta: " + maqueta.CODIGO;
                    texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Details/" + maqueta.CODIGO + "'> Enlace </a>";
                    _MailService.SendEmail(titulo, correo, texto);
                    List<string> correo2 = new List<string>();
                    correo2 = db.Usuario.Where(r=>r.IDCARGO==6 && r.ESTADO == true /*SUPERVISOR*/).Select(r=>r.EMAIL).ToList();
                    titulo = "Maqueta por aprobar " + maqueta.CODIGO + " con Logo '" + maqueta.LOGOTIPO + "' de " + nomusuario;
                    texto = "Estimado(a): <br/><br/>El vendedor " + nomusuario + " ha agregado una nueva maqueta y se encuentra en la espera de su confirmación.";

                    texto = texto + "<br/><br/> CANTIDAD:" + maqueta.CANTIDAD.ToString();
                    texto = texto + "<br/> PRECIO VENTA:" + maqueta.PRECIOPRODUCTO.ToString();

                    int auxili = maqueta.IDCLIENTE.Value;
                    string facebook = db.Cliente.Where(r => r.ID == auxili).Select(r => r.EMPRESA).FirstOrDefault();

                    texto = texto + "<br/> CLIENTE: " + facebook;
                    texto = texto + "<br/><br/><a href='ygd.cl/Maqueta/Edit/" + maqueta.CODIGO.ToString() + "'> Enlace </a>";
                    _MailService.SendEmailvarioscorreos(titulo, correo2, texto);
                    break;
            }
            #endregion

            return RedirectToAction("Index");
            #endregion
        }
Ejemplo n.º 7
0
        public ActionResult Details(string nombre, string id)
        {
            if (nombre != "")
            {
                var qwe = from a in db.Maqueta
                          where (a.CODIGO == id)
                          select a;

                Maqueta maqueta = qwe.First();
                maqueta.FACTURA = nombre;
                Estado esta = new Estado();
                esta.IDMAQUETA = maqueta.CODIGO;
                esta.NOMBRE = "FACTURADA";
                esta.FECHA = DateTime.Now;
                db.Estado.Add(esta);
                //maqueta.ESTADO = "FACTURADA";
                if (maqueta.ESTADO == "ENTREGADO A CLIENTE")
                {
                    maqueta.ESTADO = "FINIQUITADO";
                    //ELIMINAR LA IMAGEN QUE SE USA PARA CONFIRMACION DESPUES DE FACTURAR QUE ES EL PROCESO FINAL.
                    DeleteBlob(maqueta.URL);
                }

                db.Entry(maqueta).State = EntityState.Modified;
                db.SaveChanges();

                string titulo, correo, texto;
                titulo = "FACTURADO " + maqueta.CODIGO;
                var tyu = from m in db.Usuario
                          where (m.ID == maqueta.IDVENDEDOR)
                          select m.EMAIL;
                correo = tyu.First().ToString();
                texto = "La venta " + maqueta.CODIGO + " Se ha Facturado con el Nombre de: " + maqueta.FACTURA +". <br/> Saludos.";
                _MailService.SendEmail(titulo, correo, texto);
            }
            return RedirectToAction("Details");
        }
Ejemplo n.º 8
0
        public ActionResult Create(Detalle detalle, string id, string TipoFuncion)
        {
            int ec = 0;
            TallerBoleta tallerboleta = new TallerBoleta();
            if (TipoFuncion == "Terminados a Bodega")
            {

                tallerboleta.FECHA = DateTime.Now;
                tallerboleta.CANTIDAD = detalle.CANTIDAD;
                tallerboleta.IDMAQUETA = id;
                var qwr = from g in db.TallerBoleta
                          where (g.IDMAQUETA == id)
                          select g.ACOMULADO;
                if (qwr.Count() == 0)
                {
                    tallerboleta.ACOMULADO = detalle.CANTIDAD;
                }
                else if (qwr.Count() == 1)
                {
                    tallerboleta.ACOMULADO = int.Parse(qwr.First().ToString()) + detalle.CANTIDAD;
                }
                else
                {
                    List<int?> val = qwr.ToList();
                    tallerboleta.ACOMULADO = int.Parse(val.Last().ToString()) + detalle.CANTIDAD;
                }
                db.TallerBoleta.Add(tallerboleta);
                db.SaveChanges();

                var pew = from v in db.TallerBoleta
                          where (v.IDMAQUETA == id)
                          select v.ID;
                List<int> vale = pew.ToList();
                if (vale.Count == 1)
                {
                    ec = vale.First();
                }
                else
                {
                    ec = vale.Last();
                }

                detalle.MOVIMIENTO = ec.ToString();
            }

            switch (TipoFuncion)
            {
                case "Enviar a Taller Desde Bodega":
                    detalle.ORIGEN = "BODEGA-STOCK";
                    detalle.TIPO = "TALLER";
                    break;
                case "Taller Envia Malos a Bodega":
                    detalle.ORIGEN = "TALLER";
                    detalle.TIPO = "BODEGA-MALOS";
                    break;
                case "Terminados a Bodega":
                    detalle.ORIGEN = "TALLER";
                    detalle.TIPO = "BODEGA-LISTOS";
                    break;
                case "Taller Envia Sobrantes a Bodega":
                    detalle.ORIGEN = "TALLER";
                    detalle.TIPO = "BODEGA-STOCK";
                    break;
                case "Entregados a Cliente":
                    detalle.ORIGEN = "BODEGA-LISTOS";
                    detalle.TIPO = "CLIENTE";
                    break;
                case "Cliente devuelve Defectuosos":
                    detalle.ORIGEN = "CLIENTE";
                    detalle.TIPO = "BODEGA-MALOS";
                    break;
            }
            var Qry = from a in db.Detalle
                      where (a.IDMAQUETA == id) &&
                            (a.TIPO == detalle.TIPO)
                      select a.ACUMULADO;
            if (Qry.Count() == 0)
            {
                detalle.ACUMULADO = detalle.CANTIDAD;
                var poi = from a in db.Maqueta
                          where (a.CODIGO == id)
                          select a;
                Maqueta maqueta = new Maqueta();
                maqueta = poi.First();
                if (detalle.TIPO == "TALLER")
                {
                    maqueta.ESTADO = "TRABAJANDO EN BODEGA";
                    Estado estad = new Estado();
                    estad.FECHA = DateTime.Now;
                    estad.IDMAQUETA = maqueta.CODIGO;
                    estad.NOMBRE = maqueta.ESTADO;
                    db.Estado.Add(estad);
                    db.Entry(maqueta).State = EntityState.Modified;
                }
            }
            else
            {
                List<int> lis = new List<int>();
                lis = Qry.ToList();
                int c = lis.Last();
                detalle.ACUMULADO = detalle.CANTIDAD + c;
            }

            var wer = from a in db.Maqueta
                      where (a.CODIGO == id)
                      select a.CANTIDAD;

            int e = int.Parse(wer.First().ToString());
            if (e >= detalle.ACUMULADO)
            {
                detalle.FECHA = DateTime.Now;
                detalle.IDMAQUETA = id;
                if (e == detalle.ACUMULADO)
                {
                    var poi = from a in db.Maqueta
                              where (a.CODIGO == id)
                              select a;
                    Maqueta maqueta = new Maqueta();
                    maqueta = poi.First();
                    switch (maqueta.ESTADO)
                    {
                        case "TRABAJANDO EN BODEGA":
                            maqueta.ESTADO = "ENTREGADAS A TALLER";
                            Estado estad = new Estado();
                            estad.FECHA = DateTime.Now;
                            estad.IDMAQUETA = maqueta.CODIGO;
                            estad.NOMBRE = maqueta.ESTADO;
                            db.Estado.Add(estad);
                            break;
                        case "APROBACION SUPERVISOR":
                            maqueta.ESTADO = "ENTREGADAS A TALLER";
                            Estado estadq = new Estado();
                            estadq.FECHA = DateTime.Now;
                            estadq.IDMAQUETA = maqueta.CODIGO;
                            estadq.NOMBRE = maqueta.ESTADO;

                            db.Estado.Add(estadq);
                            break;
                        case "ENTREGADAS A TALLER":
                            maqueta.ESTADO = "DEVUELTA A BODEGA";
                            Estado estadw = new Estado();
                            estadw.FECHA = DateTime.Now;
                            estadw.IDMAQUETA = maqueta.CODIGO;
                            estadw.NOMBRE = maqueta.ESTADO;
                            db.Estado.Add(estadw);
                            break;
                        case "DEVUELTA A BODEGA":
                            maqueta.ESTADO = "ENTREGADO A CLIENTE";
                            Estado estade = new Estado();
                            estade.FECHA = DateTime.Now;
                            estade.IDMAQUETA = maqueta.CODIGO;
                            estade.NOMBRE = maqueta.ESTADO;
                            db.Estado.Add(estade);
                            if (maqueta.FACTURA != null)
                            {
                                maqueta.ESTADO = "FINIQUITADO";
                                DeleteBlob(maqueta.URL);
                            }
                            break;
                    }
                    db.Entry(maqueta).State = EntityState.Modified;
                }
                db.Detalle.Add(detalle);
                db.SaveChanges();
                /******************************************************/
                /******************************************************/
                /******************************************************/
                /******************************************************/
                string titulo, correo, texto;

                var vbn = from a in db.Maqueta
                          where (a.CODIGO == id)
                          select a;
                Maqueta maqueta2 = new Maqueta();
                maqueta2 = vbn.First();

                titulo = "Nuevo Movimiento de " + id;
                var tyu = from m in db.Usuario
                          where (m.ID == maqueta2.IDVENDEDOR)
                          select m.EMAIL;
                correo = tyu.First().ToString();
                texto = "indefinido";

                switch (TipoFuncion)
                {
                    case "Envio de Taller Desde Bodega":
                        texto = "Se ha enviado a taller " + detalle.CANTIDAD + "Unidades <br/>";
                        texto = texto + "<br/> TOTAL     : " + maqueta2.CANTIDAD;
                        texto = texto + "<br/> ENTREGADOS: " + detalle.ACUMULADO;
                        int xz = int.Parse(maqueta2.CANTIDAD.ToString()) - int.Parse(detalle.ACUMULADO.ToString());
                        texto = texto + "<br/> FALTANTES : " + xz ;

                        break;
                    case "Taller Envia Malos a Bodega":
                        texto = "Se han devuelto" + detalle.CANTIDAD + "Unidades malas a la bodega desde el taller";
                        break;
                    case "Terminados a Bodega":
                        texto = "Se han devuelto " + detalle.CANTIDAD + "Unidades terminadas a Bodega <br/>";
                        texto = texto + "<br/> TOTAL     : " + maqueta2.CANTIDAD;
                        texto = texto + "<br/> ENTREGADOS: " + detalle.ACUMULADO;
                        int we = int.Parse(maqueta2.CANTIDAD.ToString()) - int.Parse(detalle.ACUMULADO.ToString());
                        texto = texto + "<br/> FALTANTES : " + we ;
                        break;
                    case "Taller Envia Sobrantes a Bodega":
                        texto = "El taller a devuelto " + detalle.CANTIDAD + "Unidades sobrante a bodega";
                        break;

                    case "Entregados a Cliente":
                        texto = "Se han entregado" + detalle.CANTIDAD + "Unidades al cliente <br/>";
                        texto = texto + "<br/> TOTAL     : " + maqueta2.CANTIDAD;
                        texto = texto + "<br/> ENTREGADOS: " + detalle.ACUMULADO;
                        int wi = int.Parse(maqueta2.CANTIDAD.ToString()) - int.Parse(detalle.ACUMULADO.ToString());
                        texto = texto + "<br/> FALTANTES : " + wi ;
                        break;
                    case "Cliente devuelve Defectuosos":
                        texto = "El cliente ha devuelto " + detalle.CANTIDAD + "Unidades defectuosas";
                        break;
                }

                _MailService.SendEmail(titulo, correo, texto);

                if ( /*TipoFuncion == "Terminados a Bodega" ||*/ TipoFuncion == "Enviar a Taller Desde Bodega" /* || TipoFuncion == "Entregados a Cliente" */ )
                {
                    return RedirectToAction("Index");
                }
            }
            else
            {
                ViewBag.TEXTO = "NO SE PUEDE ENVIAR; ESTA ENVIANDO MAS DE LOS NECESARIOS.";
                var Lst = new List<string>();
                Lst.Add("Enviar a Taller Desde Bodega");
                Lst.Add("Taller Envia Malos a Bodega");
                Lst.Add("Terminados a Bodega");
                Lst.Add("Taller Envia Sobrantes a Bodega");
                Lst.Add("Entregados a Cliente");
                Lst.Add("Cliente devuelve Defectuosos");

                ViewBag.TipoFuncion = new SelectList(Lst);

                return View();
                //MENSAJE DE NO SE PUEDE, POR QUE ENVIA MAS QUE LOS NECESARIOS.
            }
            return RedirectToAction("Index");
        }