// GET: PRODUCTOes/Edit/5
        public ActionResult Editar(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SolicitudPedido sol = db.SolicitudPedido.Find(id);

            if (sol == null)
            {
                return(HttpNotFound());
            }
            ViewBag.idTipoEncomienda   = new SelectList(db.TipoEncomienda.ToList(), "idTipoEncomienda", "tipoEncomienda");
            ViewBag.idTipoEmpaque      = new SelectList(db.TipoEmpaque.ToList(), "idTipoEmpaque", "descripcion");
            ViewBag.idTipoDespacho     = new SelectList(db.TipoDespacho.ToList(), "idTipoDespacho", "descripcion");
            ViewBag.idTrasladoDespacho = new SelectList(db.TrasladoDespacho.ToList(), "idTrasladoDespacho", "descripcion");
            ViewBag.idTipoPedido       = new SelectList(db.TipoPedido.ToList(), "idTipoPedido", "descripcion");
            ViewBag.idArea             = new SelectList(db.Area.ToList(), "idArea", "nombre");
            ViewBag.idProducto         = new SelectList(db.PRODUCTO.ToList(), "IDProducto", "Nombre");
            return(View(sol));
        }
        public ActionResult AdjuntarPDF(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SolicitudPedido SOL = db.SolicitudPedido.Find(id);

            if (SOL == null)
            {
                return(HttpNotFound());
            }
            if (SOL.urlPdf == null)
            {
                ViewBag.imagerurl = "https://pruebasmarco.blob.core.windows.net/prueba-fotos/noimage.jpg";
            }
            else
            {
                ViewBag.imagerurl = "https://pruebasmarco.blob.core.windows.net/losheroesblob/" + SOL.urlPdf;
            }
            return(View(SOL));
        }
        public ActionResult CrearSolicitud2(SolicitudViewModel objeto)
        {
            try
            {
                string destino = " ";
                if (objeto.detalleDestino != null)
                {
                    destino = objeto.DestinoSeleccionado + " " + objeto.detalleDestino;
                }
                else
                {
                    destino = objeto.DestinoSeleccionado;
                }


                var Solicitud = new SolicitudPedido
                {
                    descripcion     = objeto.numeroOC,
                    idTipoDespacho  = 1,
                    destino         = destino,
                    fechaSolicitud  = DateTime.Now,
                    usuarioMandante = objeto.Comprador,
                    usuarioReceptor = objeto.Solicitante,
                    estado          = "Solicitada",
                    correo          = User.Identity.GetUserName(),
                    cod_estado      = 1
                };

                db.SolicitudPedido.Add(Solicitud);
                db.SaveChanges();
                var idSol = Solicitud.idSolicitud;

                var lista = objeto.productosSeleccionados.ToList();


                if (lista.Count > 0)
                {
                    foreach (var item in lista)
                    {
                        var ProductoSolicitud = new ProductoSolicitud
                        {
                            idSolicitud = idSol,
                            idProducto  = item.idProducto,
                            cantidad    = item.cantidad,
                            NombreFK    = item.NombreFK
                        };
                        var ProductoEnBodega = new ProductosEnBodega
                        {
                            idSolicitud = idSol,
                            idProducto  = item.idProducto,
                            cantidad    = item.cantidad,
                            NombreFK    = item.NombreFK
                        };
                        db.ProductoSolicitud.Add(ProductoSolicitud);
                        db.ProductosEnBodega.Add(ProductoEnBodega);
                        db.SaveChanges();
                        PRODUCTO producto = db.PRODUCTO.Find(item.idProducto);
                        db.Entry(producto).State = EntityState.Modified;
                        var stock = producto.CantidadTotal;
                        producto.CantidadTotal = stock - item.cantidad;
                        db.SaveChanges();
                    }
                }
                /*-------------------------MENSAJE DE CORREO----------------------*/

                //Creamos un nuevo Objeto de mensaje
                System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

                //Direccion de correo electronico a la que queremos enviar el mensaje
                //if (Request.IsAuthenticated)
                //{
                //mmsg.To.Add(User.Identity.GetUserName());
                //}
                mmsg.To.Add("*****@*****.**");
                //mmsg.To.Add("*****@*****.**");

                //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

                //Asunto
                mmsg.Subject         = "Solicitud recepcionada";
                mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

                //Direccion de correo electronico que queremos que reciba una copia del mensaje
                mmsg.Bcc.Add("*****@*****.**");
                //mmsg.Bcc.Add("*****@*****.**");

                //if (Request.IsAuthenticated)
                //{
                //mmsg.Bcc.Add(User.Identity.GetUserName());
                //}

                mmsg.To.Add("*****@*****.**");
                mmsg.Bcc.Add("*****@*****.**");
                mmsg.Bcc.Add("*****@*****.**");
                //mmsg.To.Add("*****@*****.**");
                //if (Request.IsAuthenticated)
                //{
                //mmsg.Bcc.Add(User.Identity.GetUserName());
                //}

                //mmsg.Bcc.Add(user); //Opcional;

                //LoginViewModel model3;

                //Cuerpo del Mensaje
                DateTime fecha = DateTime.Now;
                string   fech  = fecha.ToString("dd/MM/yyyy");

                string descripción = "<div><p>Empresa: Los Heroes</p> </br><p>OC: " + Solicitud.descripcion + "</p></ br><p>Comprador: " + Solicitud.usuarioMandante + "</p></ br><p>Solicitante: " + Solicitud.usuarioReceptor + "</p><p>Destino: " + Solicitud.destino + "</p></div>";
                string tabla       = "<table align='center' border='0' width='80%'><tr bgcolor='#70bbd9'><th>Código</th><th>Descripción</th><th>Cantidad Solicitada</th></tr>";
                string list        = "";
                int    largo       = lista.Count;
                int    contador    = 0;
                if (largo > 0)
                {
                    foreach (var item in lista)
                    {
                        var productoAux = db.PRODUCTO.Find(item.idProducto);
                        contador = contador + 1;
                        list     = list + "<tr bgcolor ='#e8e8e8'><td>" + productoAux.Codigo + "</td><td>" + productoAux.Nombre + "</td><td>" + item.cantidad + "</td></tr>";
                        if (contador == largo)
                        {
                            list = list + "</table>";
                        }
                    }
                }
                string footer = "<p align='center'> para ver más detalles de la solicitud <a href='http://losheroes.micatalogo.cl/Solicitud/Detalles/" + Solicitud.idSolicitud + "'>pinche aquí­</a></p>";
                mmsg.Body         = descripción + "</br>" + tabla + list + footer;
                mmsg.BodyEncoding = System.Text.Encoding.UTF8;
                mmsg.IsBodyHtml   = true; //Si no queremos que se envíe como HTML

                //Correo electronico desde la que enviamos el mensaje
                mmsg.From = new System.Net.Mail.MailAddress("*****@*****.**");

                /*-------------------------CLIENTE DE CORREO----------------------*/

                //Creamos un objeto de cliente de correo
                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                //Hay que crear las credenciales del correo emisor
                cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "probag63");

                //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

                /*
                 * cliente.Port = 587;
                 * cliente.EnableSsl = true;
                 */
                cliente.Host = "mail.promomas.cl"; //Para Gmail "smtp.gmail.com";

                /*-------------------------ENVIO DE CORREO----------------------*/

                try
                {
                    //Enviamos el mensaje
                    cliente.Send(mmsg);
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    //Aquí gestionamos los errores al intentar enviar el correo
                }

                return(RedirectToAction("SolicitudPedido"));
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Editar([Bind(Include = "idSolicitud,descripcion,idTipoEncomienda,idTipoEmpaque,origen,idTipoDespacho,idTrasladoDespacho,destino,fechaEntrega,codigoSeguimiento,idTipoPedido,idArea,usuarioMandante,usuarioReceptor,observacion,estado,correo")] SolicitudPedido sol)
        {
            if (ModelState.IsValid)
            {
                db.Entry(sol).State        = EntityState.Modified;
                ViewBag.idTipoEncomienda   = new SelectList(db.TipoEncomienda.ToList(), "idTipoEncomienda", "tipoEncomienda");
                ViewBag.idTipoEmpaque      = new SelectList(db.TipoEmpaque.ToList(), "idTipoEmpaque", "descripcion");
                ViewBag.idTipoDespacho     = new SelectList(db.TipoDespacho.ToList(), "idTipoDespacho", "descripcion");
                ViewBag.idTrasladoDespacho = new SelectList(db.TrasladoDespacho.ToList(), "idTrasladoDespacho", "descripcion");
                ViewBag.idTipoPedido       = new SelectList(db.TipoPedido.ToList(), "idTipoPedido", "descripcion");
                ViewBag.idArea             = new SelectList(db.Area.ToList(), "idArea", "nombre");
                ViewBag.idProducto         = new SelectList(db.PRODUCTO.ToList(), "IDProducto", "Nombre");
                db.SaveChanges();

                /*-------------------------MENSAJE DE CORREO----------------------*/

                //Creamos un nuevo Objeto de mensaje
                System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

                //Direccion de correo electronico a la que queremos enviar el mensaje
                //if (Request.IsAuthenticated)
                //{
                //mmsg.To.Add(User.Identity.GetUserName());
                //}
                mmsg.To.Add("*****@*****.**");

                //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

                //Asunto
                mmsg.Subject         = "Solicitud despachada";
                mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

                //Direccion de correo electronico que queremos que reciba una copia del mensaje

                mmsg.Bcc.Add(sol.correo);

                //mmsg.Bcc.Add(user); //Opcional;

                //LoginViewModel model3;

                //Cuerpo del Mensaje
                //DateTime fecha = sol.fechaEntrega;
                //string fech = sol.fechaEntrega.ToString("dd/mm/yyyy");
                DateTime fecha = sol.fechaEntrega.Value;
                string   fech  = fecha.ToString("dd/MM/yyyy");
                //DateTime fecha = sol.fechaEntrega.Value;
                mmsg.Body         = "Hemos despachado su pedido numero: " + sol.idSolicitud + "\nCon fecha: " + fech + "\nTipo de despacho: " + sol.TipoDespacho.descripcion + "\nNúmero de seguimiento: " + sol.codigoSeguimiento;
                mmsg.BodyEncoding = System.Text.Encoding.UTF8;
                mmsg.IsBodyHtml   = false; //Si no queremos que se envíe como HTML

                //Correo electronico desde la que enviamos el mensaje
                mmsg.From = new System.Net.Mail.MailAddress("*****@*****.**");

                /*-------------------------CLIENTE DE CORREO----------------------*/

                //Creamos un objeto de cliente de correo
                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                //Hay que crear las credenciales del correo emisor
                cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "medalla24");

                //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

                /*
                 * cliente.Port = 587;
                 * cliente.EnableSsl = true;
                 */
                cliente.Host = "mail.promomas.cl"; //Para Gmail "smtp.gmail.com";

                /*-------------------------ENVIO DE CORREO----------------------*/

                try
                {
                    //Enviamos el mensaje
                    cliente.Send(mmsg);
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    //Aquí gestionamos los errores al intentar enviar el correo
                }

                return(RedirectToAction("SolicitudPedido"));
            }
            return(View(sol));
        }
        public ViewResult DetalleBodega(int id)
        {
            SolicitudPedido sp = db.SolicitudPedido.Find(id);

            return(View(sp));
        }
        public ActionResult CrearSolicitud([Bind(Include = "idSolicitud,descripcion,idTipoDespacho,destino,idArea,usuarioMandante,usuarioReceptor,observacion,estado,correo")] SolicitudPedido model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //model.estado = "Solicitada";
                    model.fechaSolicitud = DateTime.Now;
                    model.correo         = User.Identity.GetUserName();
                    //model2.NombreFK = model2.idProducto;
                    db.SolicitudPedido.Add(model);
                    db.SaveChanges();

                    db.sp_vincularProductosSolicitud();

                    /*-------------------------MENSAJE DE CORREO----------------------*/

                    //Creamos un nuevo Objeto de mensaje
                    System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

                    //Direccion de correo electronico a la que queremos enviar el mensaje
                    //if (Request.IsAuthenticated)
                    //{
                    //mmsg.To.Add(User.Identity.GetUserName());
                    //}
                    mmsg.To.Add("*****@*****.**");

                    //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

                    //Asunto
                    mmsg.Subject         = "Solicitud recepcionada";
                    mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

                    //Direccion de correo electronico que queremos que reciba una copia del mensaje
                    if (Request.IsAuthenticated)
                    {
                        mmsg.Bcc.Add(User.Identity.GetUserName());
                    }
                    else
                    {
                        mmsg.To.Add("*****@*****.**");
                    }


                    //mmsg.Bcc.Add(user); //Opcional;

                    //LoginViewModel model3;

                    //Cuerpo del Mensaje
                    DateTime fecha = DateTime.Now;
                    string   fech  = fecha.ToString("dd/MM/yyyy");

                    mmsg.Body         = "Hemos recibido su pedido numero: " + model.idSolicitud + "\nCon fecha: " + fech + " \nSu pedido será despachado en un plazo de 1 a 2 días hábiles" + "\nPara mas detalles porfavor visitar la página sección solicitudes ";
                    mmsg.BodyEncoding = System.Text.Encoding.UTF8;
                    mmsg.IsBodyHtml   = false; //Si no queremos que se envíe como HTML

                    //Correo electronico desde la que enviamos el mensaje
                    mmsg.From = new System.Net.Mail.MailAddress("*****@*****.**");

                    /*-------------------------CLIENTE DE CORREO----------------------*/

                    //Creamos un objeto de cliente de correo
                    System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                    //Hay que crear las credenciales del correo emisor
                    cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "medalla24");

                    //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

                    /*
                     * cliente.Port = 587;
                     * cliente.EnableSsl = true;
                     */
                    cliente.Host = "mail.promomas.cl"; //Para Gmail "smtp.gmail.com";

                    /*-------------------------ENVIO DE CORREO----------------------*/

                    try
                    {
                        //Enviamos el mensaje
                        cliente.Send(mmsg);
                    }
                    catch (System.Net.Mail.SmtpException ex)
                    {
                        //Aquí gestionamos los errores al intentar enviar el correo
                    }


                    return(RedirectToAction("SolicitudPedido"));
                }
                catch (DbEntityValidationException ex)
                {
                }
            }
            return(View(model));
        }