Пример #1
0
        public static void AsignarCoordinador(int codigoEvaluador, int codigoProyecto)
        {
            using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
            {
                var coordinador = db.Evaluadors.SingleOrDefault(filter => filter.CodContacto.Equals(codigoEvaluador) && filter.CodCoordinador != null);

                if (coordinador != null)
                {
                    // Se agrega Desctivar Coordinadores de Evaluadores, que No estan asociado al evaluador
                    var entities = db.ProyectoContactos.Where(filter =>
                                                              filter.CodProyecto.Equals(codigoProyecto) &&
                                                              filter.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) &&
                                                              filter.FechaFin == null
                                                              );

                    foreach (var entity in entities)
                    {
                        if (!entity.CodContacto.Equals(coordinador.CodCoordinador.GetValueOrDefault(0)))
                        {
                            entity.FechaFin = DateTime.Now;
                            entity.Inactivo = true;
                        }
                    }



                    if (!db.ProyectoContactos.Any(filter => filter.CodContacto.Equals(coordinador.CodCoordinador) &&
                                                  filter.CodProyecto.Equals(codigoProyecto) &&
                                                  filter.CodConvocatoria.Equals(PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0)) &&
                                                  filter.FechaFin == null &&
                                                  filter.Inactivo == false))
                    {
                        var NewentityCoordinador = new ProyectoContacto
                        {
                            CodContacto     = coordinador.CodCoordinador.GetValueOrDefault(0),
                            CodProyecto     = codigoProyecto,
                            CodRol          = Constantes.CONST_RolCoordinadorEvaluador,
                            FechaInicio     = DateTime.Now,
                            FechaFin        = null,
                            Inactivo        = false,
                            Beneficiario    = false,
                            Participacion   = 0,
                            HorasProyecto   = null,
                            Acreditador     = false,
                            CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0)
                        };

                        db.ProyectoContactos.InsertOnSubmit(NewentityCoordinador);
                    }

                    db.SubmitChanges();
                }
                else
                {
                    throw new ApplicationException("Este evaluador no tiene coordinador de evaluador asignado, por favor asignelo primero para poder continuar.");
                }
            }
        }
Пример #2
0
        public static void AsignarCoordinadorAEvaluador(int codigoEvaluador, int codigoCoordinador, bool desasignar = false)
        {
            using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
            {
                var coordinadorActual = db.Evaluadors.SingleOrDefault(filter => filter.CodContacto.Equals(codigoEvaluador));

                if (coordinadorActual.CodCoordinador != null)
                {
                    var proyectosParaAsignar = new List <ProyectoContacto>();

                    if (coordinadorActual.CodCoordinador.Equals(codigoCoordinador) && desasignar)
                    {
                        proyectosParaAsignar = (from proyectos in db.ProyectoContactos
                                                where
                                                proyectos.CodContacto.Equals(codigoEvaluador) &&
                                                proyectos.FechaFin == null &&
                                                proyectos.Inactivo.Equals(false) &&
                                                proyectos.CodRol.Equals(Constantes.CONST_RolEvaluador)
                                                select proyectos
                                                ).ToList();
                    }
                    else
                    {
                        proyectosParaAsignar = (from proyectos in db.ProyectoContactos
                                                where
                                                proyectos.CodContacto.Equals(codigoEvaluador) &&
                                                proyectos.FechaFin == null &&
                                                proyectos.Inactivo.Equals(false) &&
                                                proyectos.CodRol.Equals(Constantes.CONST_RolEvaluador)
                                                select proyectos
                                                ).ToList();
                    }

                    foreach (var proyecto in proyectosParaAsignar)
                    {
                        if (coordinadorActual.CodCoordinador.Equals(codigoCoordinador) && desasignar)
                        {
                            var proyectoPorCoordinadorActual = (from proyectos in db.ProyectoContactos
                                                                where
                                                                proyectos.CodProyecto.Equals(proyecto.CodProyecto) &&
                                                                proyectos.FechaFin == null &&
                                                                proyectos.Inactivo.Equals(false) &&
                                                                proyectos.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador)
                                                                select proyectos
                                                                ).FirstOrDefault();
                            if (proyectoPorCoordinadorActual != null)
                            {
                                proyectoPorCoordinadorActual.FechaFin = DateTime.Now;
                                proyectoPorCoordinadorActual.Inactivo = true;
                            }
                            db.SubmitChanges();
                        }
                        else
                        {
                            var proyectoPorCoordinadorActual = (from proyectos in db.ProyectoContactos
                                                                where
                                                                proyectos.CodProyecto.Equals(proyecto.CodProyecto) &&
                                                                proyectos.FechaFin == null &&
                                                                proyectos.Inactivo.Equals(false) &&
                                                                proyectos.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador)
                                                                select proyectos
                                                                ).FirstOrDefault();
                            if (proyectoPorCoordinadorActual != null)
                            {
                                proyectoPorCoordinadorActual.FechaFin = DateTime.Now;
                                proyectoPorCoordinadorActual.Inactivo = true;
                            }

                            var NewentityCoordinador = new ProyectoContacto
                            {
                                CodContacto     = codigoCoordinador,
                                CodProyecto     = proyecto.CodProyecto,
                                CodRol          = Constantes.CONST_RolCoordinadorEvaluador,
                                FechaInicio     = DateTime.Now,
                                FechaFin        = null,
                                Inactivo        = false,
                                Beneficiario    = false,
                                Participacion   = 0,
                                HorasProyecto   = null,
                                Acreditador     = false,
                                CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(proyecto.CodProyecto, 0).GetValueOrDefault(0)
                            };

                            db.ProyectoContactos.InsertOnSubmit(NewentityCoordinador);
                            db.SubmitChanges();
                        }
                    }

                    if (coordinadorActual.CodCoordinador.Equals(codigoCoordinador) && desasignar)
                    {
                        coordinadorActual.CodCoordinador = null;
                        db.SubmitChanges();
                    }
                    else
                    {
                        coordinadorActual.CodCoordinador = codigoCoordinador;
                        db.SubmitChanges();
                    }
                }
                else
                {
                    var proyectosParaAsignar = (from proyectos in db.ProyectoContactos
                                                where
                                                proyectos.CodContacto.Equals(codigoEvaluador) &&
                                                proyectos.FechaFin == null &&
                                                proyectos.Inactivo.Equals(false) &&
                                                proyectos.CodRol.Equals(Constantes.CONST_RolEvaluador)
                                                select proyectos
                                                ).ToList();

                    foreach (var proyecto in proyectosParaAsignar)
                    {
                        var proyectoPorCoordinadorActual = (from proyectos in db.ProyectoContactos
                                                            where
                                                            proyectos.CodProyecto.Equals(proyecto.CodProyecto) &&
                                                            proyectos.FechaFin == null &&
                                                            proyectos.Inactivo.Equals(false) &&
                                                            proyectos.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador)
                                                            select proyectos
                                                            ).FirstOrDefault();
                        if (proyectoPorCoordinadorActual != null)
                        {
                            proyectoPorCoordinadorActual.FechaFin = DateTime.Now;
                            proyectoPorCoordinadorActual.Inactivo = true;
                        }

                        var NewentityCoordinador = new ProyectoContacto
                        {
                            CodContacto     = codigoCoordinador,
                            CodProyecto     = proyecto.CodProyecto,
                            CodRol          = Constantes.CONST_RolCoordinadorEvaluador,
                            FechaInicio     = DateTime.Now,
                            FechaFin        = null,
                            Inactivo        = false,
                            Beneficiario    = false,
                            Participacion   = 0,
                            HorasProyecto   = null,
                            Acreditador     = false,
                            CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(proyecto.CodProyecto, 0).GetValueOrDefault(0)
                        };

                        db.ProyectoContactos.InsertOnSubmit(NewentityCoordinador);
                        coordinadorActual.CodCoordinador = codigoCoordinador;

                        db.SubmitChanges();
                    }

                    coordinadorActual.CodCoordinador = codigoCoordinador;
                    db.SubmitChanges();
                }
            }
        }
Пример #3
0
        protected void gvEmprendedores_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("deleteEmprendedor"))
            {
                try
                {
                    if (e.CommandArgument != null)
                    {
                        string[] parametros;
                        parametros = e.CommandArgument.ToString().Split(';');

                        int codigoProyecto = Convert.ToInt32(parametros[0]);
                        int codigoContacto = Convert.ToInt32(parametros[1]);

                        using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
                        {
                            var tareasPendientes = (from tareas in db.TareaUsuarios
                                                    join tareaRepeticion in db.TareaUsuarioRepeticions on tareas.Id_TareaUsuario equals tareaRepeticion.CodTareaUsuario
                                                    where tareas.CodContacto == codigoContacto &&
                                                    tareaRepeticion.FechaCierre == null
                                                    select tareas).Any();
                            if (tareasPendientes)
                            {
                                throw new ApplicationException("No se puede eliminar el emprendedor porque tiene tareas pendientes");
                            }

                            GrupoContacto grupocontacto = db.GrupoContactos.Single(grupo => grupo.CodContacto.Equals(codigoContacto));

                            db.GrupoContactos.DeleteOnSubmit(grupocontacto);

                            ProyectoContacto proyectocontacto = db.ProyectoContactos.Single(proyecto => proyecto.CodContacto == codigoContacto &&
                                                                                            proyecto.CodProyecto == codigoProyecto &&
                                                                                            proyecto.Inactivo == false &&
                                                                                            proyecto.CodRol == Constantes.CONST_RolEmprendedor);
                            proyectocontacto.Inactivo = true;
                            proyectocontacto.FechaFin = DateTime.Now;

                            Contacto contacto = db.Contacto.Single(contactoProyecto => contactoProyecto.Id_Contacto == codigoContacto);
                            contacto.Inactivo = true;

                            lblError.Visible = false;
                            db.SubmitChanges();
                            gvEmprendedores.DataBind();
                        }
                    }
                }
                catch (ApplicationException ex)
                {
                    lblError.Visible = true;
                    lblError.Text    = "Advertencia : " + ex.Message;
                }
                catch (Exception ex)
                {
                    lblError.Visible = true;
                    lblError.Text    = "Sucedio un error inesperado al eliminar el emprendedor.";
                }
            }
            else if (e.CommandName.Equals("updateEmprendedor"))
            {
                if (e.CommandArgument != null)
                {
                    string[] parametros;
                    parametros = e.CommandArgument.ToString().Split(';');

                    int codigoProyecto = Convert.ToInt32(parametros[0]);
                    int codigoContacto = Convert.ToInt32(parametros[1]);

                    Session["codigoEmprendedor"] = codigoContacto;

                    Redirect(null, "~/FONADE/PlandeNegocio/CrearEmprendedor.aspx", "_blank", "menubar=0,scrollbars=1,width=1000,height=600,top=50");
                }
            }
        }
Пример #4
0
        public static void AsignarProyectoEvaluador(int codigoEvaluador, int codigoProyecto, bool desasignar = false)
        {
            using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
            {
                var entities = db.ProyectoContactos.Where(filter =>
                                                          filter.CodProyecto.Equals(codigoProyecto) &&
                                                          filter.CodRol.Equals(Constantes.CONST_RolEvaluador) &&
                                                          filter.FechaFin == null
                                                          );
                if (!entities.Any())
                {
                    var entity = new ProyectoContacto
                    {
                        CodContacto     = codigoEvaluador,
                        CodProyecto     = codigoProyecto,
                        CodRol          = Constantes.CONST_RolEvaluador,
                        FechaInicio     = DateTime.Now,
                        FechaFin        = null,
                        Inactivo        = false,
                        Beneficiario    = false,
                        Participacion   = 0,
                        HorasProyecto   = null,
                        Acreditador     = false,
                        CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0)
                    };

                    db.ProyectoContactos.InsertOnSubmit(entity);

                    var proyecto = db.Proyecto1s.FirstOrDefault(filter => filter.Id_Proyecto.Equals(codigoProyecto) && filter.CodEstado.Equals(Constantes.CONST_Acreditado));
                    if (proyecto != null)
                    {
                        proyecto.CodEstado = Constantes.CONST_Evaluacion;
                    }

                    AsignarCoordinador(codigoEvaluador, codigoProyecto);

                    db.SubmitChanges();
                }
                else
                {
                    foreach (var entity in entities)
                    {
                        if (!entity.CodContacto.Equals(codigoEvaluador) || desasignar)
                        {
                            entity.FechaFin = DateTime.Now;
                            entity.Inactivo = true;
                        }
                    }

                    if (!desasignar)
                    {
                        var Newentity = new ProyectoContacto
                        {
                            CodContacto     = codigoEvaluador,
                            CodProyecto     = codigoProyecto,
                            CodRol          = Constantes.CONST_RolEvaluador,
                            FechaInicio     = DateTime.Now,
                            FechaFin        = null,
                            Inactivo        = false,
                            Beneficiario    = false,
                            Participacion   = 0,
                            HorasProyecto   = null,
                            Acreditador     = false,
                            CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0)
                        };

                        db.ProyectoContactos.InsertOnSubmit(Newentity);

                        var proyecto = db.Proyecto1s.FirstOrDefault(filter => filter.Id_Proyecto.Equals(codigoProyecto) && filter.CodEstado.Equals(Constantes.CONST_Acreditado));
                        if (proyecto != null)
                        {
                            proyecto.CodEstado = Constantes.CONST_Evaluacion;
                        }

                        AsignarCoordinador(codigoEvaluador, codigoProyecto);
                    }
                    else
                    {
                        var entitiesCoordinadores = db.ProyectoContactos.Where(filter =>
                                                                               filter.CodProyecto.Equals(codigoProyecto) &&
                                                                               filter.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) &&
                                                                               filter.FechaFin == null
                                                                               );

                        foreach (var entity in entitiesCoordinadores)
                        {
                            entity.FechaFin = DateTime.Now;
                            entity.Inactivo = true;
                        }
                    }

                    db.SubmitChanges();
                }
            }
        }