Esempio n. 1
0
 public FrmAbonarPaquete()
 {
     Model = ServiceLocator.Instance.Resolve <PaqueteViewModel>();
     InitializeComponent();
     this.IniciarBinding();
     this.GridPaquete.GroupCaptionTextFormat = "{Key} - ({ItemsCount})";
 }
Esempio n. 2
0
        // GET: Paquetes/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var paquete = await _paqueteBusiness.ObtenerPaquetePorId(id.Value);

            if (paquete == null)
            {
                return(NotFound());
            }

            PaqueteViewModel paqueteViewModel = new PaqueteViewModel
            {
                CodigoMIA        = paquete.CodigoMIA,
                Peso             = paquete.Peso,
                NombreImagen     = paquete.NombreImagen,
                Estado           = paquete.Estado,
                GuiaColombia     = paquete.GuiaColombia,
                ValorAPAgar      = paquete.ValorAPAgar,
                ClienteId        = paquete.ClienteId,
                TransportadoraId = paquete.TransportadoraId,
                TipoMercanciaId  = paquete.TipoMercanciaId
            };

            ViewData["listaClientes"]        = new SelectList(await _paqueteBusiness.ObtenerListaClientes(), "ClienteId", "Nombre");
            ViewData["listaTransportadoras"] = new SelectList(await _paqueteBusiness.ObtenerListaTransportadora(), "TransportadoraId", "Nombre");
            ViewData["listaTipomercancias"]  = new SelectList(await _paqueteBusiness.ObtenerListaTipoMercancia(), "TipoMercanciaId", "Nombre");


            return(View(paqueteViewModel));
        }
Esempio n. 3
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> Edit(PaqueteViewModel paqueteViewModel)
        {
            if (paqueteViewModel.ClienteId != 0 && paqueteViewModel.Peso != 0 && paqueteViewModel.Imagen != null)
            {
                Paquete paquete = new Paquete();
                if (paqueteViewModel.Imagen != null)
                {
                    string wwwRootPath = _hostEnvironment.WebRootPath;
                    //borramos la foto anterior
                    string imagenAnterior = null;
                    if (paqueteViewModel.NombreImagen != null)
                    {
                        imagenAnterior = Path.Combine(wwwRootPath, "image", paqueteViewModel.NombreImagen);
                    }

                    if (System.IO.File.Exists(imagenAnterior))
                    {
                        System.IO.File.Delete(imagenAnterior);
                    }


                    string nombreImagen = Path.GetFileNameWithoutExtension(paqueteViewModel.Imagen.FileName);
                    string extension    = Path.GetExtension(paqueteViewModel.Imagen.FileName);
                    paqueteViewModel.NombreImagen = nombreImagen = nombreImagen + DateTime.Now.ToString("yymmssfff") + extension;

                    string path = Path.Combine(wwwRootPath + "/image/" + nombreImagen);
                    using (var fileStream = new FileStream(path, FileMode.Create))
                    {
                        await paqueteViewModel.Imagen.CopyToAsync(fileStream);
                    }
                    paquete.NombreImagen = paqueteViewModel.NombreImagen;
                }
                else
                {
                    paquete.NombreImagen = paqueteViewModel.NombreImagen;
                }

                paquete.CodigoMIA        = paqueteViewModel.CodigoMIA;
                paquete.Peso             = paqueteViewModel.Peso;
                paquete.Estado           = paqueteViewModel.Estado;
                paquete.GuiaColombia     = paqueteViewModel.GuiaColombia;
                paquete.ValorAPAgar      = paqueteViewModel.ValorAPAgar;
                paquete.ClienteId        = paqueteViewModel.ClienteId;
                paquete.TransportadoraId = paqueteViewModel.TransportadoraId;
                paquete.TipoMercanciaId  = paqueteViewModel.TipoMercanciaId;

                try
                {
                    await _paqueteBusiness.EditarPaquete(paquete);

                    return(Json(new { data = "ok" }));
                }
                catch (Exception)
                {
                    return(Json(new { data = "error" }));
                }
            }
            return(Json(new { data = "ok" }));
        }
Esempio n. 4
0
 public FrmPagarPaquete(AbonoPaquete item, PaqueteViewModel model)
 {
     InitializeComponent();
     Model = model;
     IniciarBinding();
     paquete = new AbonoPaquete();
     paquete = item;
 }
 public FrmSeleccionarPago(PaqueteViewModel model)
 {
     InitializeComponent();
     Model = ServiceLocator.Instance.Resolve <VentasViewModel>();
     Model.ModelPaquete = model;
     Model.Total        = model.Total;
     Model.GetAllAsync();
     IniciarBinding();
     EsAbono = true;
 }
Esempio n. 6
0
        public ActionResult Eliminar(PaqueteViewModel model)
        {
            var paquete = _paqueteServicio.Get(model.Id);

            if (paquete == null)
            {
                return(View("_notFound"));
            }

            _paqueteServicio.Delete(paquete.Id);

            return(Redirect(Url.Action("Index")));
        }
        public static Paquete Map(this PaqueteViewModel model, Paquete paquete = null)
        {
            if (paquete == null)
            {
                paquete = new Paquete();
            }

            paquete.Nombre             = model.Nombre;
            paquete.FechaFin           = model.FechaFin;
            paquete.FechaInicio        = model.FechaInicio;
            paquete.Descripcion        = model.Descripcion;
            paquete.Destacado          = model.Destacado;
            paquete.Foto               = model.Foto;
            paquete.LugaresDisponibles = model.LugaresDisponibles;
            paquete.PrecioPorPersona   = model.PrecioPorPersona;

            return(paquete);
        }
Esempio n. 8
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> Create(PaqueteViewModel paqueteViewModel)
        {
            if (paqueteViewModel.ClienteId != 0 && paqueteViewModel.Peso != 0 && paqueteViewModel.Imagen != null)
            {
                string wwwRootPath  = _hostEnvironment.WebRootPath;
                string nombreImagen = Path.GetFileNameWithoutExtension(paqueteViewModel.Imagen.FileName);
                string extension    = Path.GetExtension(paqueteViewModel.Imagen.FileName);
                nombreImagen = nombreImagen + DateTime.Now.ToString("yymmssfff") + extension;

                Paquete paquete = new Paquete
                {
                    CodigoMIA        = "",
                    Peso             = paqueteViewModel.Peso,
                    NombreImagen     = nombreImagen,
                    Estado           = paqueteViewModel.Estado,
                    GuiaColombia     = paqueteViewModel.GuiaColombia,
                    ValorAPAgar      = paqueteViewModel.ValorAPAgar,
                    ClienteId        = paqueteViewModel.ClienteId,
                    TransportadoraId = paqueteViewModel.TransportadoraId,
                    TipoMercanciaId  = paqueteViewModel.TipoMercanciaId
                };


                string path = Path.Combine(wwwRootPath + "/image/" + nombreImagen);
                using (var fileStream = new FileStream(path, FileMode.Create))
                {
                    await paqueteViewModel.Imagen.CopyToAsync(fileStream);
                }
                try
                {
                    await _paqueteBusiness.GuardarPaquete(paquete);

                    return(Json(new { data = "ok" }));
                }
                catch (Exception) {
                    return(Json(new { data = "error" }));
                }
            }
            return(Json(new { data = "error" }));


            /*
             * return View(paquete);*/
        }
        public async Task <ICollection <AnuncioViewModel> > ObtenerAnunciosVencidos(int id)
        {
            return(await Task.Run(() =>
            {
                using (var _dbContext = new MercampoEntities())
                {
                    Startup.OpenDatabaseConnection(_dbContext);
                    if (_dbContext.Database.Connection.State != ConnectionState.Open)
                    {
                        return null;
                    }

                    List <AnuncioViewModel> lista = new List <AnuncioViewModel>();

                    var anuncios = _dbContext.Anuncios.Where(a => a.activo == false && a.idUsuario == id && (EstadoAnuncio)a.estado == EstadoAnuncio.Vencido);

                    foreach (var item in anuncios)
                    {
                        var imagenPrincipal = item.Fotos_Anuncio.Where(foto => foto.principal == true).FirstOrDefault()?.ruta ?? string.Empty;
                        var paquete = _dbContext.Paquetes.Where(p => p.id == item.idPaquete).FirstOrDefault();

                        PaqueteViewModel paqueteViewModel = null;
                        if (paquete != null)
                        {
                            paqueteViewModel = new PaqueteViewModel(paquete.id, paquete.nombre, paquete.meses);
                        }

                        var beneficios = _dbContext.Anuncio_Beneficio.Where(b => b.idAnuncio == item.id);

                        List <BeneficioViewModel> listaBeneficios = new List <BeneficioViewModel>();
                        foreach (var beneficio in beneficios)
                        {
                            listaBeneficios.Add(new BeneficioViewModel(beneficio.idBeneficio, beneficio.Beneficio.descripcion, beneficio.Beneficio.precio));
                        }

                        lista.Add(new AnuncioViewModel(item.id, item.titulo, item.estado, null, imagenPrincipal, paqueteViewModel, listaBeneficios));
                    }

                    _dbContext.Database.Connection.Close();
                    return lista;
                }
            }));
        }
Esempio n. 10
0
        public ActionResult Crear(PaqueteViewModel model, HttpPostedFileBase file)
        {
            if (file == null)
            {
                ModelState.AddModelError("Foto", "Debe seleccionar una foto para el paquete");
            }

            if (ModelState.IsValid)
            {
                if (file != null)
                {
                    model.Foto = ManageFile(file);
                }

                _paqueteServicio.Create(model.Map());

                return(Redirect(Url.Action("Index", new { paquete = $"Paquete {model.Nombre} creado con exito" })));
            }

            return(View(model));
        }
Esempio n. 11
0
        public ActionResult Editar(PaqueteViewModel model, HttpPostedFileBase file)
        {
            var paquete = _paqueteServicio.Get(model.Id);

            if (paquete == null)
            {
                return(View("_notFound"));
            }

            if (ModelState.IsValid)
            {
                if (file != null)
                {
                    model.Foto = ManageFile(file);
                }

                _paqueteServicio.Update(model.Map(paquete));

                return(Redirect(Url.Action("Index", new { paquete = $"Paquete {model.Nombre} modificado con exito" })));
            }

            return(View(model));
        }
Esempio n. 12
0
 public FrmPaquete()
 {
     InitializeComponent();
     Model            = ServiceLocator.Instance.Resolve <PaqueteViewModel>();
     Model.IdUsuarioL = CurrentSession.IdCuentaUsuario;
 }
        public async Task <ICollection <AnuncioViewModel> > ObtenerAnunciosActivos(int id)
        {
            return(await Task.Run(() =>
            {
                using (var _dbContext = new MercampoEntities())
                {
                    Startup.OpenDatabaseConnection(_dbContext);
                    if (_dbContext.Database.Connection.State != ConnectionState.Open)
                    {
                        return null;
                    }

                    List <AnuncioViewModel> lista = new List <AnuncioViewModel>();

                    var anuncios = _dbContext.Anuncios.Where(a => ((EstadoAnuncio)a.estado != EstadoAnuncio.Vencido && a.idUsuario == id) || ((EstadoAnuncio)a.estado == EstadoAnuncio.Vacio && a.idUsuario == id));
                    foreach (var item in anuncios)
                    {
                        if (!item.activo && item.estado == (int)EstadoAnuncio.Aprobado)
                        {
                            continue;
                        }
                        var paquete = _dbContext.Paquetes.Where(p => p.id == item.idPaquete).FirstOrDefault();

                        PaqueteViewModel paqueteViewModel = null;
                        if (paquete != null)
                        {
                            paqueteViewModel = new PaqueteViewModel(paquete.id, paquete.nombre, paquete.meses);
                        }

                        var beneficios = _dbContext.Anuncio_Beneficio.Where(b => b.idAnuncio == item.id);

                        List <BeneficioViewModel> listaBeneficios = new List <BeneficioViewModel>();
                        foreach (var beneficio in beneficios)
                        {
                            listaBeneficios.Add(new BeneficioViewModel(beneficio.idBeneficio, beneficio.Beneficio.descripcion, beneficio.Beneficio.precio));
                        }

                        if ((EstadoAnuncio)item.estado == EstadoAnuncio.Vacio)
                        {
                            lista.Add(new AnuncioViewModel(item.id, (EstadoAnuncio)item.estado, paqueteViewModel, listaBeneficios));
                            continue;
                        }
                        int tiempoRestante = (item.fecha_fin.Value - DateTime.Now).Days;
                        var duracion = (item.fecha_fin.Value - item.fecha_inicio.Value).Days;
                        var porcentajeDuracion = (int)((tiempoRestante * 100.0) / duracion);
                        if (porcentajeDuracion < 0)
                        {
                            porcentajeDuracion = 0;
                        }
                        var imagenPrincipal = item.Fotos_Anuncio.Where(foto => foto.principal == true).FirstOrDefault()?.ruta ?? string.Empty;

                        lista.Add(new AnuncioViewModel(item.id, item.titulo, item.estado, porcentajeDuracion, imagenPrincipal, paqueteViewModel, listaBeneficios));
                    }

                    _dbContext.Database.Connection.Close();
                    var fixedOrder = new List <EstadoAnuncio>()
                    {
                        EstadoAnuncio.NoAprobado,
                        EstadoAnuncio.Vacio,
                        EstadoAnuncio.PendientePorAprobar,
                        EstadoAnuncio.Aprobado
                    };

                    List <AnuncioViewModel> listaOrdenada = lista.OrderBy(a => fixedOrder.IndexOf(a.Estado)).ThenBy(a => a.TiempoRestante).ToList();
                    return listaOrdenada;
                }
            }));
        }
        public async Task <ActionResult> DetallesAnuncio(int?id)
        {
            if (Startup.GetAplicacionUsuariosManager().VerificarPortalSesion() == LoginStatus.Incorrecto)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (id == null)
            {
                return(HttpNotFound("Parámetro inválido se espera un id de un anuncio"));
            }

            HttpNotFoundResult       result = null;
            AnuncioDetallesViewModel model  = null;
            await Task.Run(() =>
            {
                using (var _dbContext = new MercampoEntities())
                {
                    Startup.OpenDatabaseConnection(_dbContext);
                    if (_dbContext.Database.Connection.State != ConnectionState.Open)
                    {
                        result = HttpNotFound("Error en la base de datos");
                    }
                    else
                    {
                        var anuncio = _dbContext.Anuncios.Where(a => a.id == id).FirstOrDefault();
                        if (anuncio == null)
                        {
                            result = HttpNotFound("No se encontro el anuncio con el id solicitado");
                        }
                        else
                        {
                            var tiempoRestante  = (anuncio.fecha_fin.Value - DateTime.Now).Days;
                            var imagenPrincipal = anuncio.Fotos_Anuncio.Where(foto => foto.principal == true).FirstOrDefault()?.ruta ?? string.Empty;

                            var paquete = _dbContext.Paquetes.Where(p => p.id == anuncio.idPaquete).FirstOrDefault();

                            PaqueteViewModel paqueteViewModel = null;
                            if (paquete != null)
                            {
                                paqueteViewModel = new PaqueteViewModel(paquete.id, paquete.nombre, paquete.meses);
                            }

                            var beneficios = _dbContext.Anuncio_Beneficio.Where(b => b.idAnuncio == anuncio.id);

                            List <BeneficioViewModel> listaBeneficios = new List <BeneficioViewModel>();
                            foreach (var beneficio in beneficios)
                            {
                                listaBeneficios.Add(new BeneficioViewModel(beneficio.idBeneficio, beneficio.Beneficio.descripcion, beneficio.Beneficio.precio));
                            }

                            var anuncioModel = new AnuncioViewModel(anuncio.id, anuncio.titulo, anuncio.estado, tiempoRestante, imagenPrincipal, paqueteViewModel, listaBeneficios);

                            var rutaVideo = _dbContext.Videos_Anuncio.Where(v => v.idAnuncio == id).FirstOrDefault()?.ruta;

                            List <FotoViewModel> fotos = new List <FotoViewModel>();

                            foreach (var foto in anuncio.Fotos_Anuncio)
                            {
                                fotos.Add(new FotoViewModel(foto.principal, foto.ruta));
                            }
                            model = new AnuncioDetallesViewModel(anuncioModel, anuncio.precio, anuncio.descripcion, anuncio.Subcategoria.Categoria.nombre, anuncio.Subcategoria.nombre, anuncio.Estado1.Pai.nombre, anuncio.Estado1.nombre, fotos, anuncio.fecha_inicio, anuncio.fecha_fin, rutaVideo, anuncio.razonRechazo);
                        }
                    }
                }
            });

            if (result != null)
            {
                return(result);
            }

            return(View(model));
        }