Ejemplo n.º 1
0
        private List <CatalogoCompuestoPOCO> GetTrabajadoresPOCO(int EmpresaSIRCEID, int CentroTrabajoSIRCEID, List <TrabajadorPOCO> listTrabajadores)
        {
            List <CatalogoCompuestoPOCO> listCatalogoCompuestoPOCO = new List <CatalogoCompuestoPOCO>();

            //Obtengo la clave original de los centros de trabajo del DNE
            var centrosTrabajoSIRCE = (from lt in listTrabajadores
                                       join ect in contexto.CentrosTrabajoSIRCE on lt.CentroTrabajoSIRCEID equals ect.CentroTrabajoSIRCEID
                                       select new
            {
                CentroTrabajoID = ect.CentroTrabajoID,
                CentroTrabajoSIRCEID = lt.CentroTrabajoSIRCEID
            }).Distinct().ToList();

            List <int>            listCentrosTrabajos = new List <int>();
            Dictionary <int, int> dCentrosTrabajo     = new Dictionary <int, int>();

            foreach (var item in centrosTrabajoSIRCE)
            {
                listCentrosTrabajos.Add(item.CentroTrabajoID);
                dCentrosTrabajo.Add(item.CentroTrabajoSIRCEID, item.CentroTrabajoID);
            }
            //Obtengo la clave de la empresa del DNE.
            int empresaID = contexto.EmpresasSIRCE.FirstOrDefault(x => x.EmpresaSIRCEID == EmpresaSIRCEID).EmpresaID;

            //Recupero la descripción de los centros de trabajo del DNE
            List <CentroTrabajoPOCO> listCentroTrabajoPOCO = new List <CentroTrabajoPOCO>();

            listCentroTrabajoPOCO = new UtileriaDAT().ConsultarCentrosTrabajoPorEstablecimiento(empresaID, listCentrosTrabajos);

            foreach (var item in listTrabajadores)
            {
                CatalogoCompuestoPOCO catalogoCompuestoPOCO = new CatalogoCompuestoPOCO();
                string descripcionCentroTrabajo             = string.Empty;

                //Recupero la descripción del Centro de Trabajo del DNE
                foreach (KeyValuePair <int, int> centroTrabajoSIRCEID in dCentrosTrabajo)
                {
                    if (item.CentroTrabajoSIRCEID == centroTrabajoSIRCEID.Key)
                    {
                        descripcionCentroTrabajo = listCentroTrabajoPOCO.FirstOrDefault(x => x.centroTrabajoID == centroTrabajoSIRCEID.Value).centroTrabajoNombre;
                        break;
                    }
                }

                catalogoCompuestoPOCO.catalogoID          = item.TrabajadorID.ToString() + "|" + item.CentroTrabajoSIRCEID.ToString();
                catalogoCompuestoPOCO.catalogoDescripcion = string.Format("{0} - {1} {2} {3} / {4}", item.CURP, item.Nombre, item.ApellidoPaterno, item.ApellidoMaterno, descripcionCentroTrabajo);
                listCatalogoCompuestoPOCO.Add(catalogoCompuestoPOCO);
            }

            return(listCatalogoCompuestoPOCO);
        }
Ejemplo n.º 2
0
        public List <ListaPOCO> consultarListas(int empresasSIRCEID)
        {
            DataTable           unidadesResponsables = new UtileriaDAT().ConsultarUnidadesResponsables();
            List <CatalogoPOCO> entidades            = new UtileriaDAT().ConsultarEntidades();
            var listaPOCO = (from l in contexto.Listas
                             join a in contexto.Acuses on l.ListaID equals a.ListaID
                             join ct in contexto.CentrosTrabajoSIRCE on l.CentroTrabajoSIRCEID equals ct.CentroTrabajoSIRCEID
                             join ects in contexto.EmpresaCentrosTrabajoSIRCE on ct.CentroTrabajoSIRCEID equals ects.CentroTrabajoSIRCEID
                             join e in contexto.EmpresasSIRCE on ects.EmpresaSIRCEID equals e.EmpresaSIRCEID
                             join lc in contexto.ListaCentrosTrabajo on l.ListaID equals lc.ListaID into establecimientosTotales
                             where l.Eliminado == false &&
                             e.EmpresaSIRCEID == empresasSIRCEID
                             select new ListaPOCO
            {
                listaID = l.ListaID,
                folioEmpresa = l.FolioEmpresa,
                nombreLista = l.Nombre,
                fechaPresentacion = (DbFunctions.Right(String.Concat(" ", SqlFunctions.StringConvert((double?)SqlFunctions.DatePart("dd", l.FechaPresentacion))), 2)
                                     + "/"
                                     + DbFunctions.Right(String.Concat(" ", SqlFunctions.StringConvert((double?)SqlFunctions.DatePart("mm", l.FechaPresentacion))), 2)
                                     + "/"
                                     + DbFunctions.Right(SqlFunctions.StringConvert((double?)SqlFunctions.DatePart("yyyy", l.FechaPresentacion)), 4)
                                     ).Replace(" ", "0"),
                numeroEstablecimientos = establecimientosTotales.Count(),
                numeroConstancias = (from c in contexto.Constancias
                                     where establecimientosTotales.Select(x => x.ListaCentroTrabajoID).Contains(c.ListaCentroTrabajoID) &&
                                     c.Eliminado == false
                                     select c).Count(),
                numeroCursos = (from c in contexto.Constancias
                                where establecimientosTotales.Select(x => x.ListaCentroTrabajoID).Contains(c.ListaCentroTrabajoID) &&
                                c.Eliminado == false
                                select c).Where(c => c.Eliminado != true).Select(x => x.CursoID).Distinct().Count(),
                numeroTrabajadores = (from c in contexto.Constancias
                                      join t in contexto.Trabajadores on c.TrabajadorID equals t.TrabajadorID
                                      where establecimientosTotales.Select(x => x.ListaCentroTrabajoID).Contains(c.ListaCentroTrabajoID) &&
                                      c.Eliminado == false
                                      select t).Where(c => c.Eliminado != true).Select(x => x.CURP).Distinct().Count(),
                usuarioPresento = l.UsuarioCreacion,
                unidadResponsableID = l.UnidadResponsableID,
                folioDC4 = a.FolioDC4,
                estatusID = l.Estatus,
                origen = l.Origen,
                numeroConstanciasTotales = l.NumeroConstancias,
                fechaCreacion = (DbFunctions.Right(String.Concat(" ", SqlFunctions.StringConvert((double?)SqlFunctions.DatePart("dd", l.FechaCreacion))), 2)
                                 + "/"
                                 + DbFunctions.Right(String.Concat(" ", SqlFunctions.StringConvert((double?)SqlFunctions.DatePart("mm", l.FechaCreacion))), 2)
                                 + "/"
                                 + DbFunctions.Right(SqlFunctions.StringConvert((double?)SqlFunctions.DatePart("yyyy", l.FechaCreacion)), 4)
                                 ).Replace(" ", "0"),
            }).Distinct().ToList();

            foreach (ListaPOCO item in listaPOCO)
            {
                item.estatus          = Enumeradores.GetDescription((Enumeradores.EstatusLista)(int.Parse(item.estatusID.ToString())));
                item.porcentajeAvance = ((double.Parse(item.numeroConstancias.ToString())
                                          / double.Parse(item.numeroConstanciasTotales.ToString()))
                                         * 100).ToString()
                                        + '%';
                if (item.origen == (byte)Enumeradores.OrigenSIRCE.Internet)
                {
                }
                else if (item.origen == (byte)Enumeradores.OrigenSIRCE.Ventanilla)
                {
                    item.entidadFederativa = (from ur in unidadesResponsables.AsEnumerable()
                                              where ur.Field <int>("unidadResponsableID") == item.unidadResponsableID
                                              select ur.Field <string>("entidadDesc")).FirstOrDefault();
                }
            }
            return(listaPOCO);
        }