public List <MovimientosViewModel> MovimientosRecientes(DateTime fecha) { ControlUsuario cu = new ControlUsuario(); int[] sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession()); using (var context = new RHEntities()) { return((from k in context.Kardex join emp in context.Empleado on k.IdEmpleado equals emp.IdEmpleado join con in context.Empleado_Contrato on emp.IdEmpleado equals con.IdEmpleado join s in context.Sucursal on emp.IdSucursal equals s.IdSucursal join c in context.Cliente on s.IdCliente equals c.IdCliente join e in context.Empresa on con.IdEmpresaFiscal equals e.IdEmpresa where k.Fecha >= fecha && k.Tipo != 5 && k.Tipo != 6 && k.Tipo != 4 && sucursales.Contains(s.IdSucursal) select new MovimientosViewModel { IdEmpleado = emp.IdEmpleado, Nombres = emp.Nombres, Paterno = emp.APaterno, Materno = emp.AMaterno, Fecha = k.Fecha, Cliente = c.Nombre, Empresa = e.RazonSocial, IdTipoMovimiento = k.Tipo, } ).ToList()); } }
//SUA public static string SuaGenerarLayout(int idUsuario, int tipoMovimiento, int empresa, DateTime FechaI, DateTime FechaF, string path, string pathDescarga) { List <Empresa> listaEmpresas = new List <Empresa>(); List <Cliente> listaClientes = new List <Cliente>(); List <Empleado> listaEmpleados = new List <Empleado>(); List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <Kardex> listaKardex = new List <Kardex>(); var nombreArchivo = "Aseg.txt"; Empresa itemEmpresa; var itemAbrev = new List <Sucursal_Empresa>(); ControlUsuario cu = new ControlUsuario(); var sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession()); //var FechaI = new DateTime(fecI.Year, fecI.Month, fecI.Day, 05, 00, 0); //var FechaF = new DateTime(fecF.Year, fecF.Month, fecF.Day, 23, 50, 0); using (var context = new RHEntities()) { itemEmpresa = context.Empresa.FirstOrDefault(x => x.IdEmpresa == empresa); itemAbrev = context.Sucursal_Empresa.Where(x => x.IdEmpresa == itemEmpresa.IdEmpresa && x.IdEsquema == 1).ToList(); //ALTA-REINGRESO switch (tipoMovimiento) { case 1: nombreArchivo = "Aseg " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.FechaIMSS >= FechaI && c.FechaIMSS <= FechaF && c.Status == true && c.BajaIMSS == null // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa && c.IsReingreso == false select c).ToList(); break; case 2: //Baja - Reingreso nombreArchivo = "Movt " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.BajaIMSS >= FechaI && c.BajaIMSS <= FechaF && c.Status == false && c.BajaIMSS != null // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa select c).ToList(); break; } //Obtenemos el array de Id empleados listaContratos = listaContratos.Where(x => sucursales.Contains(x.IdSucursal)).ToList(); var arrayIdEmpleados = listaContratos.Select(x => x.IdEmpleado).ToArray(); listaEmpleados = (from e in context.Empleado where arrayIdEmpleados.Contains(e.IdEmpleado) select e).ToList(); //listaEmpresas = context.Empresa.ToList(); } //string[] lineasArchivo = new string[listaContratos.Count]; //int linea = 0; //foreach (var itemContrato in listaContratos) //{ //var itemEmpresa = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value); //var itemEmpleado = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado); //string clave = itemAbrev.Where(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal && x.IdSucursal == itemContrato.IdSucursal).Select(x => x.Clave_Imss).FirstOrDefault(); //string strReg = ""; List <string> strReg = new List <string>(); switch (tipoMovimiento) { case 1: strReg = SuaAseg(itemEmpresa, listaEmpleados, listaContratos, itemAbrev); var pathUsuario = Utils.ValidarFolderUsuario(idUsuario, path); var archivoIdse = pathUsuario + nombreArchivo; File.WriteAllLines(archivoIdse, strReg); break; case 2: strReg = SuaMovt(itemEmpresa, listaEmpleados, listaContratos, itemAbrev); var pathUsuario2 = Utils.ValidarFolderUsuario(idUsuario, path); var archivoSuaMovBaja = pathUsuario2 + nombreArchivo; File.WriteAllLines(archivoSuaMovBaja, strReg); break; } return(pathDescarga + "\\" + idUsuario + "\\" + nombreArchivo); }
//IDSE public static string IdseGenerarLayout(int idUsuario, int tipoMovimiento, int empresa, DateTime FechaI, DateTime FechaF, string path, string pathDescarga) { List <Empresa> listaEmpresas = new List <Empresa>(); List <Cliente> listaClientes = new List <Cliente>(); List <Empleado> listaEmpleados = new List <Empleado>(); List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <Kardex> listaKardex = new List <Kardex>(); var nombreArchivo = "REINGRESO.txt"; Empresa itemEmpresa; ControlUsuario cu = new ControlUsuario(); var sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession()); //var FechaI = new DateTime(fecI.Year, fecI.Month, fecI.Day, 05, 00, 0); //var FechaF = new DateTime(fecF.Year, fecF.Month, fecF.Day, 23, 50, 0); using (var context = new RHEntities()) { itemEmpresa = context.Empresa.FirstOrDefault(x => x.IdEmpresa == empresa); //ALTA-REINGRESO switch (tipoMovimiento) { case 1: nombreArchivo = "REINGRESO " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.FechaIMSS >= FechaI && c.FechaIMSS <= FechaF // && c.Status == true && c.BajaIMSS == null //querian que laas altas o bajas aparezcan en ambos reportes // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa select c).ToList(); break; case 2: nombreArchivo = " BAJA " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos los contratos con fecha de Alta imss en el rango de fecha listaContratos = (from c in context.Empleado_Contrato where c.BajaIMSS >= FechaI && c.BajaIMSS <= FechaF && c.Status == false && c.BajaIMSS != null // && c.IdEmpresaFiscal != null && c.IdEmpresaFiscal == empresa select c).ToList(); break; case 3: //Cambio Salsario nombreArchivo = "MODIFICACION " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt"; //Buscamos en Kardex los cambios de salario listaKardex = (from k in context.Kardex where k.Fecha >= FechaI && k.Fecha <= FechaF && k.Tipo == (int)TipoKardex.SDI select k).ToList(); //Obtener los idEMpleados var arrayIdEmp = listaKardex.Select(x => x.IdEmpleado).ToList(); //Buscamos los cumple imss //var listaCumpleImss = (from ci in context.CumpleIMSS // where ci.FechaIMSS >= FechaI && ci.FechaIMSS <= FechaF // select ci).ToList(); //Buscamos los contratos activos de los empleados listaContratos = (from c in context.Empleado_Contrato where arrayIdEmp.Contains(c.IdEmpleado) && c.Status == true select c).ToList(); break; } //Obtenemos el array de Id empleados listaContratos = listaContratos.Where(x => sucursales.Contains(x.IdSucursal)).ToList(); var arrayIdEmpleados = listaContratos.Select(x => x.IdEmpleado).ToArray(); listaEmpleados = (from e in context.Empleado where arrayIdEmpleados.Contains(e.IdEmpleado) select e).ToList(); //listaEmpresas = context.Empresa.ToList(); } string[] lineasArchivo = new string[listaContratos.Count]; int linea = 0; foreach (var itemContrato in listaContratos) { //var itemEmpresa = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value); var itemEmpleado = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado); string strReg = ""; switch (tipoMovimiento) { case 1: strReg = IdseRegistroAltaReingreso(itemEmpresa, itemEmpleado, itemContrato); break; case 2: strReg = IdseRegistroBaja(itemEmpresa, itemEmpleado, itemContrato); break; case 3: var itemKardex = listaKardex.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado); strReg = IdseRegistroCambioSalario(itemEmpresa, itemEmpleado, itemContrato, itemKardex); break; } lineasArchivo[linea] = strReg; linea++; } //Creamos el folder para guardar el archivo var pathUsuario = Utils.ValidarFolderUsuario(idUsuario, path); var archivoIdse = pathUsuario + nombreArchivo; File.WriteAllLines(archivoIdse, lineasArchivo); return(pathDescarga + "\\" + idUsuario + "\\" + nombreArchivo); }