public void CambiarADenunciada(int Prop)
        {
            Propuestas Propu = this.ObtenerPorIdSinInclude(Prop);

            Propu.Estado = (int)Estado.Denunciada;
            ctx.SaveChanges();
        }
예제 #2
0
        public ActionResult Modificar(Propuestas p, HttpPostedFileBase foto, string fotoVieja)
        {
            ModelState.Remove("Foto");

            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(v => v.Errors);
                return(RedirectToAction("ModificarPropuesta", "Propuesta", new { id = p.IdPropuesta }));
            }

            if (foto != null && foto.ContentLength > 0)
            {
                string path = Server.MapPath("~/Images/Views/Propuesta/");

                p.Foto = Path.GetFileName(foto.FileName);

                PropuestaService.Actualizar(p);

                System.IO.File.Delete(path + fotoVieja);

                foto.SaveAs(path + Path.GetFileName(foto.FileName));
            }
            else
            {
                p.Foto = null;
                PropuestaService.Actualizar(p);
            }

            return(RedirectToAction("MisPropuestas", "Propuesta"));
        }
예제 #3
0
        public ActionResult Modificar(Propuestas j)
        {
            if (ModelState.Remove("Foto"))
            {
                if (ModelState.IsValid)
                {
                    string pathViejo     = Request["fotoVieja"];
                    string otraProfesion = Request["otraProfesion"];

                    //si cambia la imagen, borra la vieja de la cerpeta y actualiza la nueva.
                    if (j.Foto != null)
                    {
                        string nombreSignificativo = j.NombreSignificativoImagen;
                        j.Foto = UImagenes.ActualizarImagen(pathViejo, Request, nombreSignificativo);
                    }

                    propuestaServicio.Modificar(j, otraProfesion);
                    TempData["ModificacionExitosa"] = true;
                    return(RedirectToAction("Index", "Home"));
                }
            }
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            ViewBag.SesionIniciada = true;
            return(View(j));
        }
 public Boolean CambiarEstado(int idPropuesta, int idUsuario)
 {
     try
     {
         Propuestas propuesta = ObtenerPorIdSinInclude(idPropuesta);
         if (propuesta != null && propuesta.IdUsuarioCreador == idUsuario)
         {
             if (propuesta.Estado == (int)Estado.Activa)
             {
                 //fecha ayer
                 //propuesta.FechaFin = DateTime.Today.AddDays(Double.Parse("-1"));
                 propuesta.Estado = (int)Estado.Inactiva;
                 ctx.SaveChanges();
                 return(true);
             }
             else if (propuesta.Estado == (int)Estado.Inactiva)
             {
                 if (this.ValidarCantidadDePropuestasActivas(idUsuario) && this.EstaVigente(propuesta))
                 {
                     propuesta.Estado = (int)Estado.Activa;
                     // propuesta.FechaFin = DateTime.Today.AddDays(Double.Parse("1"));
                     ctx.SaveChanges();
                     return(true);
                 }
             }
             return(false);
         }
     }
     catch (NullReferenceException)
     {
         return(false);
     }
     return(false);
 }
예제 #5
0
        public void ModificarPropuesta(int id, Propuestas propuesta)
        {
            Propuestas pv = ObtenerPropuestaPorId(id);

            pv.Nombre           = propuesta.Nombre;
            pv.Descripcion      = propuesta.Descripcion;
            pv.FechaFin         = propuesta.FechaFin;
            pv.TelefonoContacto = propuesta.TelefonoContacto;
            pv.TipoDonacion     = propuesta.TipoDonacion;

            pv.Foto = !string.IsNullOrEmpty(propuesta.Foto) ? propuesta.Foto : string.Empty;
            switch (pv.TipoDonacion)
            {
            case 1:
                pv.PropuestasDonacionesMonetarias.FirstOrDefault().Dinero = (propuesta as PropuestasDonacionesMonetarias).Dinero;
                pv.PropuestasDonacionesMonetarias.FirstOrDefault().CBU    = (propuesta as PropuestasDonacionesMonetarias).CBU;
                break;

            case 2:

                break;

            case 3:
                pv.PropuestasDonacionesHorasTrabajo.FirstOrDefault().CantidadHoras = (propuesta as PropuestasDonacionesHorasTrabajo).CantidadHoras;
                pv.PropuestasDonacionesHorasTrabajo.FirstOrDefault().Profesion     = (propuesta as PropuestasDonacionesHorasTrabajo).Profesion;
                break;
            }

            ctx.SaveChanges();
        }
        private Propuestas MapDTOToEntities(AgregarPropuestaBase pm, int idUsuario)
        {
            Propuestas p = new Propuestas();

            p.Nombre           = pm.Nombre;
            p.Descripcion      = pm.Descripcion;
            p.FechaCreacion    = DateTime.Now;
            p.FechaFin         = DateTime.Parse(pm.FechaFin);
            p.TipoDonacion     = (int)pm.TipoDonacion;
            p.TelefonoContacto = pm.TelefonoContacto;
            p.Foto             = pm.Foto;
            p.IdUsuarioCreador = idUsuario;
            p.Valoracion       = 0;
            p.Estado           = 1;

            foreach (var r in pm.Referencias)
            {
                PropuestasReferencias referencia = new PropuestasReferencias();
                referencia.Nombre   = r.Nombre;
                referencia.Telefono = r.Telefono;

                p.PropuestasReferencias.Add(referencia);
            }

            return(p);
        }
예제 #7
0
        public IHttpActionResult PutPropuestas(int id, Propuestas propuestas)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != propuestas.IdPropuesta)
            {
                return(BadRequest());
            }

            db.Entry(propuestas).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PropuestasExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #8
0
        public Propuestas RecuperarInformacion(FormCollection form, Propuestas p)
        {
            p.Nombre           = form["Nombre"];
            p.Descripcion      = form["Descripcion"];
            p.TelefonoContacto = form["TelefonoContacto"];
            p.TipoDonacion     = Int32.Parse(form["TipoDonacion"]);
            p.FechaFin         = System.DateTime.Parse(form["FechaFin"]);
            p.Foto             = form["Foto"];

            if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
            {
                string nombreSignificativo = form["Nombre"] + DateTime.Now.ToString();
                string pathRelativoImagen  = ImagenesUtility.Guardar(Request.Files[0], nombreSignificativo);
                p.Foto = pathRelativoImagen;
            }

            PropuestasReferencias ref1 = new PropuestasReferencias();

            ref1.Nombre   = form["Nombre1"];
            ref1.Telefono = form["Telefono1"];

            PropuestasReferencias ref2 = new PropuestasReferencias();

            ref2.Nombre   = form["Nombre2"];
            ref2.Telefono = form["Telefono2"];

            p.PropuestasReferencias.Add(ref1);
            p.PropuestasReferencias.Add(ref2);

            return(p);
        }
        public void AceptarDenuncia(int x)
        {
            Propuestas p = ctx.Propuestas.Find(x);

            p.Estado = 2;
            ctx.SaveChanges();
            CambiarANoActiva(x);
        }
예제 #10
0
        public ActionResult ModificarPropuesta(int id)
        {
            Propuestas p = PropuestaService.GetById(id);

            ViewBag.fecha = p.FechaFin < DateTime.Today || p.Estado == (int)PropuestaEstado.Cerrada ? false : true;

            return(View(p));
        }
예제 #11
0
 public static void AgregarPropuesta(Propuestas p)
 {
     p.IdUsuarioCreador = SessionHelper.Usuario.IdUsuario;
     p.Estado           = (int)PropuestaEstado.Abierta;
     p.FechaCreacion    = DateTime.Today;
     p.Valoracion       = 0;
     Db.Propuestas.Add(p);
     Db.CustomSaveChanges();
 }
예제 #12
0
        private void CalcularValoracion(int id)
        {
            Propuestas propuesta = context.Propuestas.Where(p => p.IdPropuesta == id).FirstOrDefault();
            var        a         = context.PropuestasValoraciones
                                   .Where(p1 => p1.Valoracion == true && p1.IdPropuesta == propuesta.IdPropuesta).Count();
            var b = context.PropuestasValoraciones.Where(p1 => p1.IdPropuesta == id).Count();

            propuesta.Valoracion = Math.Round(((decimal)a / (decimal)b) * 100);
            context.SaveChanges();
        }
예제 #13
0
        public ActionResult Modificar(int id)
        {
            ViewBag.SesionIniciada = false;
            if (sessionHelper.HaySesionIniciada())
            {
                ViewBag.NombreUsuario  = (sessionHelper.getUserNameUsuarioEnSesion() != null) ? sessionHelper.getUserNameUsuarioEnSesion() : "USUARIO";
                ViewBag.SesionIniciada = true;
                ViewBag.EsAdmin        = sessionHelper.EsAdmin();

                Propuestas j = propuestaServicio.ObtenerPorId(id);

                if (j != null)
                {
                    if (j.Estado == (int)Estado.Activa)
                    {
                        if (propuestaServicio.EsEditable(j, sessionHelper.GetIdUsuarioEnSesion()))
                        {
                            if (j.TipoDonacion == (int)TipoDePropuesta.HorasDeTrabajo)
                            {
                                bool   isNumeric = false;
                                string profesion = null;
                                //setea el valor del listado o lo que haya cargado en el input
                                foreach (var p in j.PropuestasDonacionesHorasTrabajo)
                                {
                                    isNumeric             = int.TryParse(p.Profesion, out int n);
                                    ViewBag.OtraProfesion = p.Profesion;
                                    profesion             = p.Profesion;
                                }
                                var listaProfesiones = (!isNumeric) ? UDropDownList.GetProfesiones("10") : UDropDownList.GetProfesiones(profesion);
                                ViewData["listaProfesiones"] = listaProfesiones;
                            }

                            return(View(j));
                        }
                        else
                        {
                            TempData["ModificacionInactiva"] = true;
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    else
                    {
                        TempData["NoEsPosibleModificar"] = true;
                        return(RedirectToAction("Index", "Home"));
                    }
                }

                TempData["ErrorInternoEnElServidor"] = true;
                return(RedirectToAction("Index", "Home"));
            }

            TempData["DebeLoguearse"] = true;
            return(RedirectToAction("Login", "Perfil"));
        }
예제 #14
0
        public IHttpActionResult GetPropuestas(int id)
        {
            Propuestas propuestas = db.Propuestas.Find(id);

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

            return(Ok(propuestas));
        }
예제 #15
0
        public IHttpActionResult PostPropuestas(Propuestas propuestas)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Propuestas.Add(propuestas);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = propuestas.IdPropuesta }, propuestas));
        }
예제 #16
0
 /// <summary>
 /// Agrega un objeto tipo Propuestas al catalogo de Propuestass.
 /// Catalogo de Propuestass CH
 /// </summary>
 /// <param name="Propuestas">Objeto tipo Propuestas</param>
 /// <returns></returns>
 public async Task Create(Propuestas Propuestas)
 {
     try
     {
         _ctx.dbSetPropuesta.Add(Propuestas);
         await _ctx.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
예제 #17
0
        public PropuestaViewModel VerPropuestaYDonaciones(int id)
        {
            try
            {
                Propuestas         propuesta      = context.Propuestas.Where(p => p.IdPropuesta == id).Single();
                Usuarios           usuarioCreador = UserService.TraerPerfilDelUsuario(propuesta.IdUsuarioCreador);
                PropuestaViewModel pvm            = new PropuestaViewModel
                {
                    Propuesta      = propuesta,
                    UsuarioCreador = usuarioCreador,
                };

                var porcentajeRealizacion = 0;

                switch (propuesta.TipoDonacion)
                {
                case (int)TipoPropuestaEnum.HorasTrabajo:
                    pvm.DonacionesHorasTrabajo = propuesta.PropuestasDonacionesHorasTrabajo.FirstOrDefault().DonacionesHorasTrabajo.ToList();

                    porcentajeRealizacion     = (int)(pvm.DonacionesHorasTrabajo.Sum(x => x.Cantidad) * 100) / propuesta.PropuestasDonacionesHorasTrabajo.FirstOrDefault().CantidadHoras;
                    pvm.PorcentajeRealizacion = porcentajeRealizacion > 100 ? 100 : (int)porcentajeRealizacion;

                    return(pvm);

                case (int)TipoPropuestaEnum.Insumos:
                    List <int> porcentajes = new List <int>();

                    foreach (var p in propuesta.PropuestasDonacionesInsumos)
                    {
                        var realizacion = (p.DonacionesInsumos.Sum(x => x.Cantidad) * 100) / p.Cantidad;
                        porcentajes.Add(realizacion > 100 ? 100 : realizacion);
                    }

                    porcentajeRealizacion     = porcentajes.Sum() / porcentajes.Count();
                    pvm.PorcentajeRealizacion = porcentajeRealizacion > 100 ? 100 : (int)porcentajeRealizacion;

                    return(pvm);

                case (int)TipoPropuestaEnum.Monetaria:
                    pvm.DonacionesMonetarias  = propuesta.PropuestasDonacionesMonetarias.FirstOrDefault().DonacionesMonetarias.ToList();
                    porcentajeRealizacion     = (int)((pvm.DonacionesMonetarias.Sum(x => x.Dinero) * 100) / propuesta.PropuestasDonacionesMonetarias.FirstOrDefault().Dinero);
                    pvm.PorcentajeRealizacion = porcentajeRealizacion > 100 ? 100 : (int)porcentajeRealizacion;

                    return(pvm);
                }

                return(null);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #18
0
        public int AgregarDonacionHoras(RealizarDonacionHorasFormulario f, int userId, int idPropuesta)
        {
            Propuestas             p = BuscarPorId(idPropuesta);
            var                    idPropuestaDonacionHorasTrabajo = p.PropuestasDonacionesHorasTrabajo.FirstOrDefault().IdPropuestaDonacionHorasTrabajo;
            DonacionesHorasTrabajo d = new DonacionesHorasTrabajo();

            d.Cantidad  = f.Cantidad;
            d.IdUsuario = userId;
            d.IdPropuestaDonacionHorasTrabajo = idPropuestaDonacionHorasTrabajo;

            context.Propuestas.Where(x => x.IdPropuesta == idPropuesta).Single().PropuestasDonacionesHorasTrabajo.Single().DonacionesHorasTrabajo.Add(d);

            return(context.SaveChanges());
        }
예제 #19
0
        public IHttpActionResult DeletePropuestas(int id)
        {
            Propuestas propuestas = db.Propuestas.Find(id);

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

            db.Propuestas.Remove(propuestas);
            db.SaveChanges();

            return(Ok(propuestas));
        }
        public String TipoDonacion(int id)
        {
            Propuestas miProp = db.Propuestas.Find(id);

            if (miProp.TipoDonacion == 1)
            {
                return("Monetario");
            }
            else if (miProp.TipoDonacion == 2)
            {
                return("Insumo");
            }
            return("Hora");
        }
예제 #21
0
        public void NuevaPropuestaDonacionDeInsumos(Propuestas p, List <PropuestasDonacionesInsumos> ListaDeInsumos)
        {
            int PropuestaId = GenerarPropuestaGeneral(p);

            foreach (PropuestasDonacionesInsumos i in ListaDeInsumos)
            {
                i.IdPropuesta      = PropuestaId;
                i.TelefonoContacto = p.TelefonoContacto;
                i.Descripcion      = p.Descripcion;
                ctx.PropuestasDonacionesInsumos.Add(i);
            }

            ctx.SaveChanges();
        }
예제 #22
0
        public int AgregarPropuestaHoraTrabajo(AgregarPropuestaHoraTrabajoViewModel pm, Usuarios user)
        {
            pm.TipoDonacion = TipoPropuestaEnum.HorasTrabajo;

            Propuestas p = MapDTOToEntities(pm, user.IdUsuario);

            PropuestasDonacionesHorasTrabajo pht = new PropuestasDonacionesHorasTrabajo();

            pht.CantidadHoras = pm.CantidadHoras;
            pht.Profesion     = pm.Profesion;

            p.PropuestasDonacionesHorasTrabajo.Add(pht);

            return(AgregarPropuesta(p));
        }
예제 #23
0
        public int AgregarPropuestaMonetaria(AgregarPropuestaMonetariaViewModel pm, Usuarios user)
        {
            pm.TipoDonacion = TipoPropuestaEnum.Monetaria;

            Propuestas p = MapDTOToEntities(pm, user.IdUsuario);

            PropuestasDonacionesMonetarias pdm = new PropuestasDonacionesMonetarias();

            pdm.CBU    = pm.CBU;
            pdm.Dinero = pm.Dinero;

            p.PropuestasDonacionesMonetarias.Add(pdm);

            return(AgregarPropuesta(p));
        }
예제 #24
0
        public async Task <IHttpActionResult> GetPropuestaAsignadas(Propuestas id)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData), new InfoException(id.PropuestaId));
                var _propuestas = await _propuestasRepo.GetAsginado(id.PropuestaId);

                return(Ok(_propuestas));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                return(InternalServerError(e));
            }
        }
예제 #25
0
        public void VerificarLasCincoDenunciasDIferentes(int id)
        {
            int cantidad = ctx.Denuncias.Where(d => d.IdPropuesta == id && d.Estado == 1).Count();

            if (cantidad >= 5)
            {
                Propuestas propuesta = ctx.Propuestas.Where(p => p.IdPropuesta == id).Single();
                propuesta.Estado = 0;
                ctx.SaveChanges();
            }
            else
            {
                return;
            }
        }
예제 #26
0
        public ActionResult CrearPropuestaDonacionInsumos(FormCollection form)
        {
            if (ModelState.IsValid)
            {
                Propuestas prop = RecuperarInformacion(form, new Propuestas());

                List <PropuestasDonacionesInsumos> insumos = ListaDeInsumos(form);

                propuestas.NuevaPropuestaDonacionDeInsumos(prop, insumos);
                return(Redirect("/Home/Index"));
            }
            else
            {
                return(View("CrearPropuestaDonacionInsumos"));
            }
        }
예제 #27
0
        public int AgregarDonacionMonetaria(RealizarDonacionMonetariaFormulario f, int userId, int idPropuesta)
        {
            Propuestas           p = BuscarPorId(idPropuesta);
            var                  idPropuestaDonacionMonetaria = p.PropuestasDonacionesMonetarias.FirstOrDefault().IdPropuestaDonacionMonetaria;
            DonacionesMonetarias d = new DonacionesMonetarias();

            d.FechaCreacion        = DateTime.Now;
            d.ArchivoTransferencia = f.ArchivoTransferencia;
            d.Dinero    = f.Dinero;
            d.IdUsuario = userId;
            d.IdPropuestaDonacionMonetaria = idPropuestaDonacionMonetaria;

            context.Propuestas.Where(x => x.IdPropuesta == idPropuesta).Single().PropuestasDonacionesMonetarias.Single().DonacionesMonetarias.Add(d);

            return(context.SaveChanges());
        }
예제 #28
0
        public async Task <IHttpActionResult> Delete(Propuestas propuesta)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                await _propuestasRepo.Delete(propuesta);

                return(Ok("Se ha eliminado el proyecto de la empresa correctamente!"));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
예제 #29
0
        public async Task <IHttpActionResult> Create(Propuestas propuesta)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                await _propuestasRepo.Create(propuesta);

                return(Ok("Registro creado correctamente!"));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
예제 #30
0
        public ActionResult Detalle(int id)
        {
            ViewBag.SesionIniciada = false;
            if (sessionHelper.HaySesionIniciada())
            {
                ViewBag.InicioSesionCorrecto = (HayRedireccion()) ? InicioSesionCorrecto() : false;
                ViewBag.NombreUsuario        = (sessionHelper.getUserNameUsuarioEnSesion() != null) ? sessionHelper.getUserNameUsuarioEnSesion() : "USUARIO";
                ViewBag.SesionIniciada       = true;
                ViewBag.EsAdmin = sessionHelper.EsAdmin();
                Propuestas prop = propuestaServicio.ObtenerPorIdParaDetalle(id);

                if (prop != null)
                {
                    if (prop.TipoDonacion == (int)TipoDePropuesta.Monetaria)
                    {
                        ViewBag.Estilo = "fondo fondo-monetaria";
                        ViewBag.Tipo   = "MONETARIA";
                    }
                    else if (prop.TipoDonacion == (int)TipoDePropuesta.Insumos)
                    {
                        ViewBag.Estilo = "fondo fondo-insumos";
                        ViewBag.Tipo   = "INSUMOS";
                    }
                    else
                    {
                        ViewBag.Estilo = "fondo fondo-trabajo";
                        ViewBag.Tipo   = " HORAS DE TRABAJO";
                        bool isNumeric;
                        foreach (var p in prop.PropuestasDonacionesHorasTrabajo)
                        {
                            isNumeric = int.TryParse(p.Profesion, out int n);
                            // select string o select option guardada
                            ViewBag.Profesion = (!isNumeric) ? p.Profesion : UDropDownList.GetNombreSelecccionado(p.Profesion);
                        }
                    }

                    ViewBag.Visibilidad = (propuestaServicio.SeDebeVerBotonera(prop, sessionHelper.GetIdUsuarioEnSesion())) ? "d-inline" : "disabled readonly d-none";
                    ViewBag.MeGusta     = propuestaServicio.TieneValoracion(prop, sessionHelper.GetIdUsuarioEnSesion());
                    return(View(prop));
                }
                TempData["ErrorInternoEnElServidor"] = true;
                return(RedirectToAction("Index", "Home"));
            }
            TempData["Redireccion"]   = "../Propuesta/Detalle/" + id;
            TempData["DebeLoguearse"] = true;
            return(RedirectToAction("Login", "Perfil"));
        }