Exemplo 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);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Método para obtener las constancias.
        /// </summary>
        /// <param name="entidad"></param>
        /// <returns></returns>
        public List <ConstanciaPOCO> ConsultarConstancias(ListaCentrosTrabajo entidad, int EmpresaSIRCEID)
        {
            List <ConstanciaPOCO> lista = new List <ConstanciaPOCO>();

            try
            {
                //Obtengo todos los trabajadores y sus centros de trabajos
                ConstanciaDAT datos = new ConstanciaDAT(contextoSIRCE);
                lista = datos.ConsultarConstancias(entidad, EmpresaSIRCEID);

                if (lista.Count == 0)
                {
                    return(lista);
                }

                //Obtengo la clave original de los centros de trabajo del DNE
                var centrosTrabajoSIRCE = (from lt in lista
                                           select new
                {
                    CentroTrabajoID = lt.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.
                EmpresaDAT empresaDAT = new EmpresaDAT(contextoSIRCE);

                int empresaID = empresaDAT.ConsultarEmpresaSIRCE(EmpresaSIRCEID);

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

                if (listCentrosTrabajos.Count == 0)
                {
                    return(lista);
                }

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

                foreach (var item in lista)
                {
                    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;
                        }
                    }

                    item.TrabajadorDescripcion = string.Format("{0} - {1} {2} {3} / {4}", item.CURP, item.Nombre, item.ApellidoPaterno, item.ApellidoMaterno, descripcionCentroTrabajo);
                    item.centroTrabajoNombre   = descripcionCentroTrabajo;
                }
            }
            catch (Exception ex)
            {
                Log.SetLog(ex);
                throw;
            }
            return(lista);
        }