public async Task UpdateEstado(Propuesta model)
        {
            try
            {
                var _model = await dbGI.DbSetPropuesta.FirstOrDefaultAsync(e => e.Id == model.Id);

                if (_model != null)
                {
                    _model.EstadoFlujoId = model.EstadoFlujoId;
                    if (model.EstadoFlujoId == 10)
                    {
                        _model.FechaValidacion = DateTime.Now;
                    }
                    await dbGI.SaveChangesAsync();

                    //if (model.EstadoFlujoId == 10 && model.TipoAcceso==1)
                    //{
                    //    NuevoOCRepository nuevo = new NuevoOCRepository();
                    //    await nuevo.Create(new NuevoOC("GI", "PROP", _model.NombreTecnico,
                    //        "indexGI.html#/detallesbuscarPropuestas/" + _model.Id,
                    //         _model.Id.ToString()
                    //        ));
                    //}
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Exemple #2
0
 private void validar(Propuesta prop, string idioma)
 {
     if (prop != null)
     {
         if (prop.nivel == 1)
         {
             if (getText("s.titulo", prop) == "")
             {
                 addError(1, Tools.tr("El titulo del manifiesto no puede ser vacio", idioma));
                 getVariable("s.titulo").className = "errorfino";
             }
             if (getText("s.vision", prop) == "")
             {
                 addError(1, Tools.tr("La vision no puede ser vacia", idioma));
                 getVariable("s.vision").className = "errorfino";
             }
         }
         else if (prop.nivel == 2)
         {
             if (getText("s.mision", prop) == "")
             {
                 addError(2, Tools.tr("La mision no ser vacia", idioma));
             }
         }
         else if (prop.nivel == 3)
         {
             if (getText("s.objetivo", prop) == "")
             {
                 addError(2, Tools.tr("El objetivo no puede ser vacio", idioma));
             }
         }
     }
 }
Exemple #3
0
        public async Task <IActionResult> Proponer([Bind("PropuestaId,Titulo,Descripcion,Tipo,UsuarioId,FechaPublicacion,FechaFinalizacion,Problema,ResultadoEsperado,Riesgos,Beneficios")] Propuesta propuesta)
        {
            if (ModelState.IsValid)
            {
                using (var cl = new HttpClient())
                {
                    propuesta.Pendiente = true;
                    cl.BaseAddress      = new Uri(baseurl);
                    var content     = JsonConvert.SerializeObject(propuesta);
                    var buffer      = System.Text.Encoding.UTF8.GetBytes(content);
                    var byteContent = new ByteArrayContent(buffer);
                    byteContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
                    var postTask = cl.PostAsync("api/Propuesta", byteContent).Result;

                    if (postTask.IsSuccessStatusCode)
                    {
                        NotifyDelete("El registro se ha agregado correctamente");
                        return(RedirectToAction(nameof(Proponer)));
                    }
                    else
                    {
                        NotifyError("El registro no puede ser creado ya que no se completaron todos los datos.", notificationType: NotificationType.error);
                        return(RedirectToAction(nameof(Proponer)));
                    }
                }
            }
            var user = await userManager.FindByNameAsync(User.Identity.Name);

            List <IdentityUser> listUser = new List <IdentityUser>();

            listUser.Add(user);
            ViewData["UsuarioId"] = new SelectList(listUser, "Id", "Email", propuesta.UsuarioId);
            return(RedirectToAction(nameof(Proponer)));
        }
        public ActionResult PostAnswer(int id, string NewComment)
        {
            Pregunta  pregunta  = db.Preguntas.Where(x => x.Id == id).First();
            Propuesta propuesta = pregunta.Propuesta;

            try
            {
                if (String.Empty != NewComment)
                {
                    Usuario usuarioActual = ObtenerUsuarioActual(User);

                    //si la propuesta no esta ya cerrada
                    if (propuesta.Activa == true)
                    {
                        //si no soy el dueno
                        if (propuesta.Creador.Id == usuarioActual.Id)
                        {
                            if (usuarioActual.Id == propuesta.Creador.Id)
                            {
                                pregunta.AnswerString = NewComment;

                                db.SaveChanges();
                            }

                            db.SaveChanges();
                        }
                    }
                }
            }
            catch
            {
                return(RedirectToAction("Details", new { Id = propuesta.Id }));
            }
            return(RedirectToAction("Details", new { Id = propuesta.Id }));
        }
        public async Task <IActionResult> OnPostDeleteTecnicoAsync(int id, int TecnicoToDeleteID)
        {
            Propuesta propuestaToUpdate = await _context.Propuestas
                                          .Include(l => l.Puesto)
                                          .Include(a => a.AsiganrTecnico)
                                          .ThenInclude(a => a.Tecnico)
                                          .FirstOrDefaultAsync(m => m.ID == id);

            await TryUpdateModelAsync <Propuesta>(propuestaToUpdate);

            var TecnicoToDelete = propuestaToUpdate.AsiganrTecnico.Where(a => a.TecnicoID == TecnicoToDeleteID).FirstOrDefault();

            if (TecnicoToDelete != null)
            {
                propuestaToUpdate.AsiganrTecnico.Remove(TecnicoToDelete);
            }

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PropuestaExists(Propuesta.ID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Redirect(Request.Path + $"?id={id}"));
        }
        public void GetPropuestasPorAno()
        {
            Object[]         propuestasPorAno        = new Object[2];
            IList <Object>   ListaPropuestasPorAno   = new List <Object>();
            IList <Object[]> ListaCompletaPropuestas = new List <Object[]>();

            Core.LogicaNegocio.Comandos.ComandoPropuesta.ConsultarPropuestasxEmision comandoConsulta =
                Core.LogicaNegocio.Fabricas.FabricaComandosPropuesta.CrearComandoConsultarPropuestasxEmision();
            IList <Core.LogicaNegocio.Entidades.Propuesta> propuestas = comandoConsulta.Ejecutar();

            int ano = 0;

            foreach (Core.LogicaNegocio.Entidades.Propuesta propuesta in propuestas)
            {
                if (ano == propuesta.FechaInicio.Year)
                {
                    ListaPropuestasPorAno.Add(propuesta);
                }
                else
                {
                    ano = propuesta.FechaInicio.Year;
                    ListaPropuestasPorAno = new List <Object>();
                    ListaPropuestasPorAno.Add(propuesta);
                    propuestasPorAno    = new Object[2];
                    propuestasPorAno[0] = ano;
                    propuestasPorAno[1] = ListaPropuestasPorAno;
                    ListaCompletaPropuestas.Add(propuestasPorAno);
                }
            }
            Assert.AreEqual((int)ListaCompletaPropuestas[0][0], 2009);
            ListaPropuestasPorAno = (IList <Object>)ListaCompletaPropuestas[0][1];
            Propuesta asserta = (Propuesta)ListaPropuestasPorAno[0];

            Assert.AreEqual(asserta.FechaInicio.Year, 2009);
        }
        public async Task OnGetAsync(int?id, int?empresaID)
        {
            // Use LINQ to get list of genres.
            IQueryable <string> genreQuery = from m in _context.Propuestas
                                             orderby m.Empresa.Nombre
                                             select m.Empresa.Nombre;

            Empresas = new SelectList(await genreQuery.Distinct().ToListAsync());

            Propuesta            = new IgnisIndexData();
            Propuesta.Propuestas = await _context.Propuestas
                                   .Where(s => !string.IsNullOrEmpty(SearchString)?s.Title.Contains(SearchString) : true)
                                   .Where(x => !string.IsNullOrEmpty(PropuestaEmpresa) ? x.Empresa.Nombre == PropuestaEmpresa : true)
                                   .Include(l => l.Puesto)
                                   .Include(c => c.AsiganrTecnico)
                                   .ThenInclude(c => c.Tecnico)
                                   .AsNoTracking()
                                   .ToListAsync();

            if (id != null)
            {
                PropuestaID = id.Value;
                Propuesta propuesta = Propuesta.Propuestas.Where(m => m.ID == id.Value).Single();
                Propuesta.Tecnicos = propuesta.AsiganrTecnico.Select(a => a.Tecnico);
            }

            if (empresaID != null)
            {
                empresaID = id.Value;
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("PropuestaId,Titulo,Descripcion,Pendiente,Tipo,UsuarioId,FechaPublicacion,FechaFinalizacion,Problema,ResultadoEsperado,Riesgos,Beneficios")] Propuesta propuesta)
        {
            if (id != propuesta.PropuestaId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(propuesta);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PropuestaExists(propuesta.PropuestaId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["UsuarioId"] = new SelectList(_context.AspNetUsers, "Id", "UserName", propuesta.UsuarioId);
            return(View(propuesta));
        }
        public async System.Threading.Tasks.Task <ActionResult> Postularse(int id)
        {
            Propuesta propuesta = await db.Propuestas.FindAsync(id);

            Usuario usuario = ObtenerUsuarioActual(User);

            if (usuario.Id != propuesta.Creador.Id)
            {
                if (usuario.Rol != propuesta.Creador.Rol)
                {
                    if (propuesta.Activa == true)
                    {
                        Postulacion postulacion = new Postulacion();
                        postulacion.Propuesta   = propuesta;
                        postulacion.PropuestaId = propuesta.Id;
                        postulacion.Usuario     = usuario;
                        postulacion.UsuarioId   = usuario.Id;

                        propuesta.Postulaciones.Add(postulacion);
                        usuario.Postulaciones.Add(postulacion);


                        db.Entry(propuesta).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }

            int idaux = propuesta.Id;

            return(RedirectToAction("Details", new { Id = idaux }));
        }
Exemple #10
0
        private void validar(Propuesta prop)
        {
            if (prop != null)
            {
                if (getText("s.nombre", prop) == "")
                {
                    addError(1, "Se debe definir un nombre para la publicacion");
                    getVariable("s.nombre").className = "errorfino";
                }
                if (getText("s.URL", prop) == "")
                {
                    addError(1, "Se debe definir una URL para la publicacion");
                    getVariable("s.URL").className = "errorfino";
                }
                if (getText("s.autor", prop) == "")
                {
                    addError(1, "Se debe definir un autor para la publicacion");
                    getVariable("s.autor").className = "errorfino";
                }

                for (int i = 1; i <= preguntas; i++)
                {
                    if ((float)getValue("f.p" + i, prop) == 0)
                    {
                        addError(1, "Se deben responder todas las preguntas para completar la evalauci&oacute;n");
                        break;
                    }
                }
            }
        }
Exemple #11
0
        public void TestPropuesta()
        {
            Propuesta propuesta1 = new Propuesta();

            propuesta1.Title = "Propuesta X";
            propuesta1.DescripcionDeLaPropuesta = "Descripcion X";
        }
Exemple #12
0
        FacturasEmitidas(Factura entidad)
        {
            IList <Core.LogicaNegocio.Entidades.Factura> factura =
                new List <Core.LogicaNegocio.Entidades.Factura>();

            try
            {
                SqlParameter[] arParms = new SqlParameter[2];

                arParms[0] = new SqlParameter("@FechaIngreso1", SqlDbType.SmallDateTime);

                arParms[0].Value = entidad.Fechaingreso.ToShortDateString();

                arParms[1] = new SqlParameter("@FechaIngreso2", SqlDbType.SmallDateTime);

                arParms[1].Value = entidad.Fechapago.ToShortDateString();

                DbDataReader reader = SqlHelper.ExecuteReader(_conexion.GetConnection(),
                                                              "FacturasEmitidas", arParms);

                while (reader.Read())
                {
                    Factura _factura = new Factura();

                    Propuesta _propuesta = new Propuesta();

                    _factura.Prop = new Propuesta();

                    _factura.Numero = (int)reader.GetValue(0);

                    _factura.Titulo = (string)reader.GetValue(1);

                    _factura.Descripcion = (string)reader.GetValue(2);

                    _factura.Fechaingreso = (DateTime)reader.GetValue(3);

                    _factura.Estado = (string)reader.GetValue(4);

                    _propuesta.Titulo = (string)reader.GetValue(5);

                    _factura.Prop.Titulo = _propuesta.Titulo;

                    factura.Add(_factura);
                }

                return(factura);
            }

            catch (SqlException e)
            {
                throw new ReportesException("Error al consultar en la base de datos", e);
            }
            catch (Exception e)
            {
                throw new ReportesException("Error en consultar facturas emitidas", e);
            }

            return(factura);
        }
Exemple #13
0
 public override void evaluacionSubmit(string accion, string parametro, Propuesta prop, Grupo g, string email)
 {
     if (accion.StartsWith("f.p") && accion.EndsWith("_set"))
     {
         string id = accion.Split('_')[0];
         prop.bag[id] = float.Parse(parametro);
     }
 }
        public ActionResult DeleteConfirmed(int id)
        {
            Propuesta propuesta = db.Propuestas.Find(id);

            db.Propuestas.Remove(propuesta);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #15
0
        public override Propuesta createProp(Tema t)
        {
            Propuesta ret = new Propuesta();

            ret.bag["f.evaluadoID"]            = t.evaluadoID;
            ret.bag["s.basadoEnTemaExistente"] = "si";
            return(ret);
        }
Exemple #16
0
        public override string documentSubmit(string accion, string parametro, List <Propuesta> props, Grupo g, string email, int width, Modelo.eModo modo)
        {
            if (accion == "agregarTema" && props.Count == 1)
            {
                Propuesta p     = props[0];
                float     temas = (float)p.bag["f.temas"];
                if (temas < 10)
                {
                    p.bag["f.temas"] = temas + 1.0;
                }
            }
            else if (accion == "s.participan_agregar" && getVariable("s.participan").nivel <= props.Count)
            {
                Variable  v = getVariable("s.participan");
                Propuesta prop;
                prop = props[v.nivel - 1];
                if (prop.nivel == v.nivel)
                {
                    string value = (string)prop.bag["s.participan"];

                    if (value == "*")
                    {
                        prop.bag["s.participan"] = parametro; //caso inicial
                    }
                    else
                    {
                        prop.bag["s.participan"] += "|" + parametro;
                    }
                }
            }
            else if (accion == "s.participan_quitar" && getVariable("s.participan").nivel <= props.Count)
            {
                Variable  v = getVariable("s.participan");
                Propuesta prop;
                prop = props[v.nivel - 1];
                if (prop.nivel == v.nivel)
                {
                    string value = (string)prop.bag["s.participan"];

                    //quito
                    string ret = "";
                    foreach (string item in value.Split('|'))
                    {
                        if (!item.StartsWith(parametro.Split(':')[0]))
                        {
                            ret += item + "|";
                        }
                    }
                    if (ret != "")
                    {
                        ret = ret.Substring(0, ret.Length - 1);
                    }
                    prop.bag["s.participan"] = ret;
                }
            }

            return(toHTML(props, g, email, width, modo));
        }
        /// <summary>
        /// Metodo utilizado para generar una lista de facturas parametrizada por un rango de fechas
        /// y por el tipo de factura
        /// </summary>
        /// <param name="desde">Fecha Inicial(DateTime)</param>
        /// <param name="hasta">Fecha fin(DateTime)</param>
        /// <param name="cobradas">Si la factura es de tipo "cobrada" true;
        /// Si es de tipo "por cobrar" false</param>
        /// <returns>Una lista de facturas</returns>
        public IList <Factura> ConsultarFacturasPorEstado(DateTime desde, DateTime hasta, Boolean cobradas)
        {
            try
            {
                DbDataReader reader;

                SqlParameter[] arParms = new SqlParameter[2];

                arParms[0]       = new SqlParameter("@Fecha1", SqlDbType.SmallDateTime);
                arParms[0].Value = desde;
                arParms[1]       = new SqlParameter("@Fecha2", SqlDbType.SmallDateTime);
                arParms[1].Value = hasta;

                if (cobradas)
                {
                    reader = SqlHelper.ExecuteReader(GetConnection(), "ConsultarFacturasCobradas", arParms);
                }
                else
                {
                    reader = SqlHelper.ExecuteReader(GetConnection(), "ConsultarFacturasPorCobrar", arParms);
                }

                Factura         factura;
                Propuesta       propuesta;
                IList <Factura> listaFacturas = new List <Factura>();
                DateTime        fecha;

                while (reader.Read())
                {
                    factura = new Factura();

                    factura.Numero           = int.Parse(reader["IdFactura"].ToString());
                    factura.Titulo           = reader["Titulo"].ToString();
                    factura.Descripcion      = reader["Descripcion"].ToString();
                    factura.Procentajepagado = float.Parse(reader["Porcentaje"].ToString());
                    fecha                = DateTime.Parse(reader["Fecha"].ToString());
                    factura.Fechapago    = DateTime.Parse(fecha.ToShortTimeString());
                    fecha                = DateTime.Parse(reader["FechaIngreso"].ToString());
                    factura.Fechaingreso = DateTime.Parse(reader["FechaIngreso"].ToString());
                    factura.Estado       = reader["Estado"].ToString();
                    propuesta            = new Propuesta();
                    propuesta.Titulo     = reader["NombrePropuesta"].ToString();
                    propuesta.MontoTotal = float.Parse(reader["Monto"].ToString());
                    factura.Prop         = propuesta;

                    listaFacturas.Add(factura);
                }
                return(listaFacturas);
            }
            catch (SqlException e)
            {
                throw new Core.LogicaNegocio.Excepciones.Facturas.AccesoDatos.ConsultarFacturaADException("Error de SQL consultando las facturas por estado en la Base de Datos", e);
            }
            catch (Exception e)
            {
                throw new ConsultarFacturaADException("Error consultando las facturas por estado en la Base de Datos", e);
            }
        }
        public ActionResult Delete(int id)
        {
            Propuesta propuesta = db.Propuestas.Find(id);

            propuesta.Activa          = false;
            db.Entry(propuesta).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Dashboard", "Usuario", null));
        }
Exemple #19
0
 private void validar(Propuesta prop)
 {
     if (prop != null)
     {
         if (prop.nivel == 1)
         {
             if (getText("s.etiqueta", prop) == "")
             {
                 addError(2, "La etiqueta determina el nombre con que aparece en el arbol, no puede ser vacia");
                 getVariable("s.etiqueta").className = "errorfino";
             }
             if (getText("s.titulo", prop) == "")
             {
                 addError(2, "El titulo de la escapada no puede ser vacio");
                 getVariable("s.titulo").className = "errorfino";
             }
         }
         else if (prop.nivel == 2)
         {
             if (getText("r.donde", prop) == "")
             {
                 addError(2, "Completar todos los niveles");
                 getVariable("r.donde").className = "errorfino";
             }
         }
         else if (prop.nivel == 3)
         {
             if (getText("r.que", prop) == "")
             {
                 addError(3, "Completar todos los niveles");
                 getVariable("r.que").className = "errorfino";
             }
         }
         else if (prop.nivel == 4)
         {
             if (getText("r.quemas", prop) == "")
             {
                 addError(4, "Completar todos los niveles");
                 getVariable("r.quemas").className = "errorfino";
             }
         }
         else if (prop.nivel == 5)
         {
             if (getFloat("f.costo", prop) == 0)
             {
                 addError(5, "Completar todos los niveles");
                 getVariable("f.costo").className = "errorfino";
             }
             if (getText("s.gastos", prop) == "")
             {
                 addError(5, "Completar todos los niveles");
                 getVariable("s.gastos").className = "errorfino";
             }
         }
     }
 }
Exemple #20
0
 private void validar(Propuesta prop)
 {
     if (prop != null)
     {
         if (prop.nivel == 1)
         {
             if (getText("s.etiqueta", prop) == "")
             {
                 addError(1, "La etiqueta determina el nombre con que aparece en el arbol, no puede ser vacia");
                 getVariable("s.etiqueta").className = "errorfino";
             }
             if (getText("s.titulo", prop) == "")
             {
                 addError(1, "El titulo del documento no puede ser vacio");
                 getVariable("s.titulo").className = "errorfino";
             }
             if (getText("s.introduccion", prop) == "")
             {
                 addError(1, "La introduccion no puede ser vacia");
                 getVariable("s.introduccion").className = "errorfino";
             }
         }
         else if (prop.nivel == 2)
         {
             if (getText("s.objetivo", prop) == "" &&
                 getText("s.descripcion", prop) == "" &&
                 getText("s.aquien", prop) == "")
             {
                 addError(2, "La propuesta no puede estar completamente vacia");
             }
         }
         else if (prop.nivel == 3)
         {
             if (getText("s.materiales", prop) == "" &&
                 getText("s.software", prop) == "" &&
                 getText("s.rrhh", prop) == "")
             {
                 addError(3, "La propuesta no puede estar completamente vacia");
             }
         }
         else if (prop.nivel == 4)
         {
             if (getText("s.fases", prop) == "")
             {
                 addError(4, "La propuesta no puede estar completamente vacia");
             }
         }
         else if (prop.nivel == 5)
         {
             if (getText("s.presupuesto", prop) == "")
             {
                 addError(5, "La propuesta no puede estar completamente vacia");
             }
         }
     }
 }
Exemple #21
0
        public override Propuesta createProp(Tema t)
        {
            Propuesta ret = new Propuesta();

            ret.bag["s.nombre"] = t.nombre;
            ret.bag["s.URL"]    = t.URL;
            ret.bag["s.autor"]  = t.autor;
            ret.bag["s.basadoEnTemaExistente"] = "si";
            return(ret);
        }
        // GET: Propuestas/Details/5
        public ActionResult Details(int id)
        {
            Propuesta propuesta = db.Propuestas.Find(id);

            if (propuesta == null)
            {
                return(HttpNotFound());
            }
            return(View(propuesta));
        }
        public ActionResult Create(CrearPropuestaModel model)
        {
            if (ModelState.IsValid)
            {
                HttpPostedFileBase file = model.File;

                Propuesta propuesta = model.Propuesta;
                //asignar usuario dueno
                Usuario usuarioActual = ObtenerUsuarioActual(User);

                propuesta.UsuarioId = usuarioActual.Id;
                propuesta.Creador   = usuarioActual;
                usuarioActual.Propuestas.Add(propuesta);

                //aca codigo de la imagen


                if (file != null && file.ContentLength > 0)
                {
                    Guid   guid = Guid.NewGuid();
                    string str  = guid.ToString();

                    string path = Path.Combine(Server.MapPath("~/PropuestasPictures"), str + ".jpg");

                    using (MemoryStream outStream = new MemoryStream())
                    {
                        using (ImageFactory imageFactory = new ImageFactory(preserveExifData: false))
                        {
                            Size size = new Size(1000, 800);
                            ISupportedImageFormat format = new JpegFormat {
                                Quality = 80
                            };
                            imageFactory.Load(file.InputStream)
                            //.Constrain(size)
                            .Resize(new ResizeLayer(size, ResizeMode.Pad, AnchorPosition.Center, true))
                            .BackgroundColor(Color.White)
                            .Format(format)
                            .Save(path);
                        }
                    }

                    propuesta.URLFoto = str;
                    propuesta.Activa  = true;

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

                    return(RedirectToAction("Index"));
                }

                ViewBag.UsuarioId = new SelectList(db.Usuarios, "Id", "Nombre", propuesta.UsuarioId);
                return(View(propuesta));
            }
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "Id,Nombre,Descripccion,FechaCreacion,FechaCierre,URLFoto,UsuarioId,Activa,Lugar")] Propuesta propuesta)
 {
     if (ModelState.IsValid)
     {
         db.Entry(propuesta).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.UsuarioId = new SelectList(db.Usuarios, "Id", "Nombre", propuesta.UsuarioId);
     return(View(propuesta));
 }
        public async Task <IActionResult> Create([Bind("PropuestaId,Titulo,Descripcion,Pendiente,Tipo,UsuarioId,FechaPublicacion,FechaFinalizacion,Problema,ResultadoEsperado,Riesgos,Beneficios")] Propuesta propuesta)
        {
            if (ModelState.IsValid)
            {
                _context.Add(propuesta);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["UsuarioId"] = new SelectList(_context.AspNetUsers, "Id", "UserName", propuesta.UsuarioId);
            return(View(propuesta));
        }
Exemple #26
0
 public override void evaluacionSubmit(string accion, string parametro, Propuesta prop, Grupo g, string email)
 {
     if (accion.StartsWith("f.p") && accion.EndsWith("_set"))
     {
         string id = accion.Split('_')[0];
         prop.bag[id] = float.Parse(parametro);
     }
     //else if (accion == "f.evaluadoID_changed")
     //{
     //    evaluadoID = prop.bag["f.evaluadoID"].ToString();
     //}
 }
Exemple #27
0
 public override void evaluacionSubmit(string evento, string parametro, Propuesta prop, Grupo g, string email)
 {
     if (evento.StartsWith("f.p") && evento.EndsWith("_set"))
     {
         string id = evento.Split('_')[0];
         prop.bag[id] = float.Parse(parametro);
     }
     else if (evento == "f.evaluadoID_changed")
     {
         evaluadoID = prop.bag["f.evaluadoID"].ToString();
     }
 }
Exemple #28
0
        /// <summary>
        /// Metodo para el reporte de facturas cobradas en un año especifico
        /// </summary>
        /// <param name="entidad">Entidad Factura</param>
        /// <returns>Objeto Factura</returns>
        ///
        public IList <Core.LogicaNegocio.Entidades.Factura> ObtenerFacturasCobradas(Factura facturas)
        {
            IList <Core.LogicaNegocio.Entidades.Factura> factura =
                new List <Core.LogicaNegocio.Entidades.Factura>();

            try
            {
                SqlParameter[] parametro = new SqlParameter[1];

                parametro[0] = new SqlParameter("@yearFecha", SqlDbType.DateTime);

                parametro[0].Value = facturas.Fechapago;


                DbDataReader reader = SqlHelper.ExecuteReader(_conexion.GetConnection(), "FacturasCobradasAnuales", parametro);

                int i = 0;

                while (reader.Read())
                {
                    Factura _factura = new Factura();

                    Propuesta _propuesta = new Propuesta();

                    _factura.Numero = (int)reader["IdFactura"];

                    _factura.Titulo = (string)reader["Titulo"];

                    _factura.Descripcion = (string)reader["Descripcion"];

                    _factura.Fechaingreso = (DateTime)reader["FechaIngreso"];

                    _factura.Estado = (string)reader["Nombre"];

                    _factura.Fechapago = (DateTime)reader["Fecha"];

                    _factura.Procentajepagado = float.Parse(reader["Porcentaje"].ToString());

                    factura.Add(_factura);
                }
            }
            catch (ConsultarException e)
            {
                throw new ConsultarException("Error al consultar", e);
            }
            catch (Exception e)
            {
                throw new ConsultarException("error", e);
            }

            return(factura);
        }
Exemple #29
0
        /// <summary>
        /// Metodo Anterior de Consulta de Propuesta Usado Por Factura y Gasto
        /// </summary>
        /// <param name="estado">Estado Aprobada de La Version</param>
        /// <returns>Lista de Propeusta con version Aprobada</returns>
        public IList <Propuesta> ConsultarPropuesta(int estado)
        {
            try
            {
                SqlParameter EstadoP = new SqlParameter();

                EstadoP = new SqlParameter("@Estado", SqlDbType.Int);

                EstadoP.Value = estado;

                DbDataReader conexion = SqlHelper.ExecuteReader(_conexion.GetConnection(), "ConsultarPropuesta", EstadoP);
                int          i        = 0;

                while (conexion.Read())
                {
                    Propuesta _Propuesta       = new Propuesta();
                    Propuesta _PropuestaEquipo = new Propuesta();
                    _Propuesta.Titulo        = (string)conexion["Titulo"];
                    _Propuesta.Version       = (string)conexion["NumeroVersion"].ToString();
                    _Propuesta.FechaFirma    = (DateTime)conexion["FechaFirma"];
                    _Propuesta.FechaInicio   = (DateTime)conexion["FechaInicio"];
                    _Propuesta.FechaFin      = (DateTime)conexion["FechaFin"];
                    _Propuesta.MontoTotal    = float.Parse(conexion["Monto"].ToString());
                    _Propuesta.Id            = (int)conexion["IdPropuesta"];
                    _PropuestaEquipo         = BuscarEmpleado(_Propuesta.Id);
                    _Propuesta.EquipoTrabajo = _PropuestaEquipo.EquipoTrabajo;

                    #region Busqueda del Receptor
                    int           j     = 0;
                    List <string> ListR = new List <string>();
                    ListR = BuscarReceptor(_Propuesta.Id);
                    for (j = 0; j < ListR.Count; j++)
                    {
                        _Propuesta.NombreReceptor = ListR.ElementAt(j);
                        j++;
                        _Propuesta.ApellidoReceptor = ListR.ElementAt(j);
                        j++;
                        _Propuesta.CargoReceptor = ListR.ElementAt(j);
                    }

                    #endregion
                    ListaPropuesta.Insert(i, _Propuesta);
                    i++;
                }

                return(ListaPropuesta);
            }
            catch (SqlException e)
            {
                throw new ConsultarPropuestaBDException("Error En acceso a Base de Datos", e);
            }
        }
Exemple #30
0
        /// <summary>
        /// Metodo que consulta las propuestas activas que tienen versiones en espera
        /// se trae la ultima version en espera
        /// </summary>
        /// <returns></returns>
        public IList <Propuesta> ConsultarPropuestaAModificar()
        {
            try
            {
                DbDataReader conexion = SqlHelper.ExecuteReader
                                            (_conexion.GetConnection(), "ConsultarPropuestasVersiones");

                int i = 0;

                while (conexion.Read())
                {
                    Propuesta _Propuesta       = new Propuesta();
                    Propuesta _PropuestaEquipo = new Propuesta();
                    _Propuesta.Titulo        = (string)conexion["Titulo"];
                    _Propuesta.Version       = (string)conexion["NumeroVersion"].ToString();
                    _Propuesta.FechaFirma    = (DateTime)conexion["FechaFirma"];
                    _Propuesta.FechaInicio   = (DateTime)conexion["FechaInicio"];
                    _Propuesta.FechaFin      = (DateTime)conexion["FechaFin"];
                    _Propuesta.MontoTotal    = float.Parse(conexion["Monto"].ToString());
                    _Propuesta.Id            = (int)conexion["IdPropuesta"];
                    _PropuestaEquipo         = BuscarEmpleado(_Propuesta.Id);
                    _Propuesta.EquipoTrabajo = _PropuestaEquipo.EquipoTrabajo;

                    #region Busqueda del Receptor

                    int           j     = 0;
                    List <string> ListR = new List <string>();

                    ListR = BuscarReceptor(_Propuesta.Id);

                    for (j = 0; j < ListR.Count; j++)
                    {
                        _Propuesta.NombreReceptor = ListR.ElementAt(j);
                        j++;
                        _Propuesta.ApellidoReceptor = ListR.ElementAt(j);
                        j++;
                        _Propuesta.CargoReceptor = ListR.ElementAt(j);
                    }

                    #endregion

                    ListaPropuesta.Insert(i, _Propuesta);
                    i++;
                }

                return(ListaPropuesta);
            }
            catch (SqlException e)
            {
                throw new Exception(e.ToString());
            }
        }
Exemple #31
0
        protected override string toHTMLContenido(int nivel, Propuesta prop, Grupo g, string email, int width)
        {
            string ret = "";
            Usuario u = g.getUsuario(email);
            bool tieneFlores = false;
            if (u != null) tieneFlores = u.floresDisponibles().Count > 0;

            bool editar = (prop == null && tieneFlores && modo != eModo.prevista && modo != eModo.consenso)
                || (prop != null && prop.esPrevista() && (modo == eModo.revisar || modo == eModo.editar));
            editar = editar && !consensoAlcanzado;
            bool puedeVariante = prop != null && !prop.esPrevista() && modo == eModo.editar && tieneFlores;

            //validaciones de este nivel
            validar(prop);

            if (nivel == 1)
            {
                titulo = (string)getValue("s.titulo", prop);
                etiqueta = "Manifiesto";

                //titulo
                ret += "<div class='titulo1'><nobr>" + nombre + ":" + txt("s.titulo", prop, width - 250, tieneFlores) + "</nobr></div>";

                //etiqueta
                ret += "<div class='titulo2'><nobr>" + tr("Etiqueta") + ": Manifiesto ";
                if (prop == null)
                    ret += "<span style='color:gray;font-size:12px;'>" + tr("(Etiqueta en el arbol)") + "</span>";
                ret += "</nobr></div>";

                //fecha
                if (modo == eModo.consenso)
                    ret += "<div class='titulo2'><nobr>" + tr("Fecha") + ":" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "</nobr></div>";

                //tema
                ret += "<div class='tema'>" + tr("Visi&oacute;n") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("La vision") + "</div>";

                ret += area("s.vision", prop, width, 120, tieneFlores);
            }
            else if (nivel == 2)
            {
                //Mision
                ret += "<div class='tema'>" + tr("Mision") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Mision") + "</div>";

                ret += area("s.mision", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";

            }
            else if (nivel == 3)
            {
                //Objetivo
                ret += "<div class='tema'>" + tr("Objetivo") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Objetivo") + "</div>";

                ret += area("s.objetivo", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";
            }
            else if (nivel == 4)
            {
                ret += "<div class='tema'>" + tr("Servicios") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Servicios") + "</div>";

                ret += area("s.servicios", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";
            }
            else
            {
                throw new Exception("Nivel [" + nivel + "] no existe en este modelo");
            }

            //fin nivel
            if (prop != null && prop.nodoID != 0 && modo != eModo.consenso)
                ret += HTMLFlores(g.arbol.getNodo(prop.nodoID), false, g.getUsuario(email));

            //mensajes de error
            if (errores.ContainsKey(nivel))
            {
                ret += "<div class='error' style='width:" + (width-4) + "px'>" + errores[nivel] + "</div>";
            }
            return ret;
        }
Exemple #32
0
 private void validar(Propuesta prop)
 {
     if (prop != null)
     {
         if (prop.nivel == 1)
         {
             if ((string)getValue("s.titulo", prop) == "")
             {
                 addError(1, "El titulo del manifiesto no puede ser vacio");
                 getVariable("s.titulo").className = "errorfino";
             }
             if ((string)getValue("s.vision", prop) == "")
             {
                 addError(1, "La vision no puede ser vacia");
                 getVariable("s.vision").className = "errorfino";
             }
         }
         else if (prop.nivel == 2)
         {
             if ((string)getValue("s.mision", prop) == "")
             {
                 addError(2, "La mision no ser vacia");
             }
         }
         else if (prop.nivel == 3)
         {
             if ((string)getValue("s.objetivo", prop) == "")
             {
                 addError(2, "El objetivo no puede ser vacio");
             }
         }
     }
 }
Exemple #33
0
 private void validar(Propuesta prop)
 {
     if (prop != null)
     {
         if (prop.nivel == 1)
         {
             if ((string)getValue("s.etiqueta", prop) == "")
             {
                 addError(1, "La etiqueta determina el nombre con que aparece en el arbol, no puede ser vacia");
                 getVariable("s.etiqueta").className = "errorfino";
             }
             if ((string)getValue("s.titulo", prop) == "")
             {
                 addError(1, "El titulo del documento no puede ser vacio");
                 getVariable("s.titulo").className = "errorfino";
             }
             if ((string)getValue("s.introduccion", prop) == "")
             {
                 addError(1, "La introduccion no puede ser vacia");
                 getVariable("s.introduccion").className = "errorfino";
             }
         }
         else if (prop.nivel == 2)
         {
             if ((string)getValue("s.objetivo", prop) == ""
                 && (string)getValue("s.descripcion", prop) == ""
                 && (string)getValue("s.aquien", prop) == "")
             {
                 addError(2, "La propuesta no puede estar completamente vacia");
             }
         }
         else if (prop.nivel == 3)
         {
             if ((string)getValue("s.materiales", prop) == ""
                 && (string)getValue("s.software", prop) == ""
                 && (string)getValue("s.rrhh", prop) == "")
             {
                 addError(2, "La propuesta no puede estar completamente vacia");
             }
         }
     }
 }
Exemple #34
0
        protected override string toHTMLContenido(int nivel, Propuesta prop, Grupo g, string email, int width)
        {
            string ret = "";
            Usuario u = g.getUsuario(email);
            bool tieneFlores = false;
            if (u != null) tieneFlores = u.floresDisponibles().Count > 0;

            bool editar = (prop == null && tieneFlores && modo != eModo.prevista && modo != eModo.consenso)
                || (prop != null && prop.esPrevista() && (modo == eModo.revisar || modo == eModo.editar));
            editar = editar && !consensoAlcanzado;
            bool puedeVariante = prop != null && !prop.esPrevista() && modo == eModo.editar && tieneFlores;

            //validaciones de este nivel
            validar(prop);

            if (nivel == 1)
            {
                titulo = (string)getValue("s.titulo", prop);
                etiqueta = (string)getValue("s.etiqueta", prop);

                //titulo
                ret += "<div class='titulo1'><nobr>" + nombre + ":" + txt("s.titulo", prop, width - 250, tieneFlores) + "</nobr></div>";

                //etiqueta
                ret += "<div class='titulo2'><nobr>" + tr("Etiqueta") + ":" + txt("s.etiqueta", prop, 20 * 5, tieneFlores);
                if (prop == null)
                    ret += "<span style='color:gray;font-size:12px;'>" + tr("(Etiqueta en el arbol)") + "</span>";
                ret += "</nobr></div>";

                //fecha
                if (modo == eModo.consenso)
                    ret += "<div class='titulo2'><nobr>" + tr("Fecha") + ":" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "</nobr></div>";

                //tema
                ret += "<div class='tema'>" + tr("Resumen y motivacion") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("El consenso es un proceso cooperativo. Somos constructivos con nuestras propuestas y consideramos el bien comun") + "</div>";

                ret += area("s.introduccion", prop, width, 120, tieneFlores);
            }
            else if (nivel == 2)
            {
                //Objetivo a lograr
                ret += "<div class='tema'>" + tr("Objetivo a lograr") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Describe que pretendes que logremos") + "</div>";

                ret += area("s.objetivo", prop, width, 120, tieneFlores);

                //Descripcion
                ret += "<div class='tema'>" + tr("Descripcion") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Describe con mayor detalle como sera") + "</div>";

                ret += area("s.descripcion", prop, width, 120, tieneFlores);

                //A quien va dirigido
                ret += "<div class='tema'>" + tr("A quien va dirigido") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Quienes se beneficiaran") + "</div>";

                ret += area("s.aquien", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";

            }
            else if (nivel == 3)
            {
                //Materiales
                ret += "<div class='tema'>" + tr("Materiales") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Describe los recursos que seran necesarios sin olvidar un presupuesto estimado") + "</div>";

                ret += area("s.materiales", prop, width, 120, tieneFlores);

                //Software
                ret += "<div class='tema'>" + tr("Software") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Describe los recursos que seran necesarios sin olvidar un presupuesto estimado") + "</div>";

                ret += area("s.software", prop, width, 120, tieneFlores);

                //RRHH
                ret += "<div class='tema'>" + tr("RRHH") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Describe los recursos que seran necesarios sin olvidar un presupuesto estimado") + "</div>";

                ret += area("s.rrhh", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";
            }
            else if (nivel == 4)
            {
                ret += "<div class='tema'>" + tr("Fases") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Describe las fases que se deben alcanzar para lograr el objetivo") + "</div>";

                ret += area("s.fases", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";
            }
            else if (nivel == 5)
            {
                ret += "<div class='tema'>" + tr("Presupuesto y plazo de entrega") + "</div>";
                if (editar)
                    ret += "<div class='smalltip' style='width:" + width + "px'>" + tr("Estimaci&oacute;n") + "</div>";

                ret += area("s.presupuesto", prop, width, 120, tieneFlores);

                //variante
                if (puedeVariante)
                    ret += "<div style='width:" + width + "px;text-align:right;'><input type='button' class='btn' value='" + tr("Proponer variante") + "' onclick='doVariante(" + prop.nodoID + ")'></div>";
            }
            else
            {
                throw new Exception("Nivel [" + nivel + "] no existe en este modelo");
            }

            //fin nivel
            if (prop != null && prop.nodoID != 0 && modo != eModo.consenso)
                ret += HTMLFlores(g.arbol.getNodo(prop.nodoID), false, g.getUsuario(email));

            //mensajes de error
            if (errores.ContainsKey(nivel))
            {
                ret += "<div class='error' style='width:" + (width-4) + "px'>" + errores[nivel] + "</div>";
            }
            return ret;
        }