public FileContentResult DownloadCSV(int IdPeriodoNominaSelected, string PeriodoNominaSelected, int?EmpresaIdSelected, string EmpresaSelected) //, KendoDropDownListSelectedViewModel kddListSelectedView ) { try { var lstActivos = new List <ReporteDescuentosVarios_Result>(); MyCustomIdentity usuario = (MyCustomIdentity)User.Identity; var listPeriodoNomina = new List <CatPeriodosNominaCMB_Result>(); //string strPeriodo = ""; KendoDropDownListSelectedViewModel kddslv = new KendoDropDownListSelectedViewModel(); string PeriodoNomina = ""; int IdPeriodoNomina = 0; int IdEmpresa = 0; string Empresa = ""; kddslv.IdPeriodoNomina = IdPeriodoNomina; kddslv.PeriodoNomina = PeriodoNomina; kddslv.IdEmpresa = IdEmpresa; kddslv.Empresa = Empresa; kddslv.IdPeriodoNomina = IdPeriodoNominaSelected; kddslv.PeriodoNomina = PeriodoNominaSelected; kddslv.IdEmpresa = EmpresaIdSelected; kddslv.Empresa = EmpresaSelected; using (ASNContext ctx = new ASNContext()) { ctx.Database.CommandTimeout = int.Parse(ConfigurationManager.AppSettings["TimeOutMinutes"]); listPeriodoNomina = ctx.CatPeriodosNominaCMB(4, usuario.UserInfo.Ident.Value, 0).ToList(); if (kddslv.IdPeriodoNomina == 0) { kddslv.IdPeriodoNomina = listPeriodoNomina[0].Ident; kddslv.PeriodoNomina = string.Format("{0}", listPeriodoNomina[0].Valor); } lstActivos = ctx.ReporteDescuentosVarios(kddslv.IdPeriodoNomina, kddslv.IdEmpresa).ToList(); } using (var memoryStream = new MemoryStream()) { using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { var file1 = archive.CreateEntry(string.Format("Reporte_Descuentos_Varios_{0}.csv", kddslv.PeriodoNomina)); using (var streamWriter = new StreamWriter(file1.Open())) { Type itemType = typeof(ReporteDescuentosVarios_Result); var props = itemType.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); var counterEmpleados = new List <int>(); foreach (var item in lstActivos) { if (item.EMPLEADO != "EMPLEADO") { counterEmpleados.Add(Convert.ToInt32(item.EMPLEADO)); } } var counterEmpSin = new List <int>(); foreach (var x in counterEmpleados.Distinct()) { counterEmpSin.Add(x); } decimal suma = 0; foreach (var item in lstActivos) { if (item.IMPORTE != "IMPORTE") { suma = suma + Convert.ToDecimal(item.IMPORTE); } streamWriter.WriteLine(string.Join(",", props.Select(p => string.Format("\"{0}\"", p.GetValue(item, null))))); } streamWriter.WriteLine("Empleados: " + counterEmpSin.Count().ToString()); streamWriter.WriteLine("Total: " + suma.ToString()); streamWriter.Flush(); } } return(File(memoryStream.ToArray(), "application/zip", string.Format("Reporte_Descuentos_Varios_{0}.zip", kddslv.PeriodoNomina))); } } catch (Exception ex) { MyCustomIdentity usuario = (MyCustomIdentity)User.Identity; LogError log = new LogError(); log.RecordError(ex, usuario.UserInfo.Ident.Value); return(null); } }
public FileContentResult DownloadCSV(int IdPeriodoNominaSelected, string PeriodoNominaSelected, int?EmpresaIdSelected, string EmpresaSelected) //, KendoDropDownListSelectedViewModel kddListSelectedView ) { MyCustomIdentity usuario = (MyCustomIdentity)User.Identity; try { var lstActivos = new List <DescargaArchivoSolicitud_Result>(); var lstInactivos = new List <DescargaArchivoSolicitud_Result>(); MyCustomIdentity user = (MyCustomIdentity)User.Identity; var listPeriodoNomina = new List <CatPeriodosNominaCMB_Result>(); //string strPeriodo = ""; KendoDropDownListSelectedViewModel kddslv = new KendoDropDownListSelectedViewModel(); string PeriodoNomina = ""; int IdPeriodoNomina = 0; int IdEmpresa = 0; string Empresa = ""; kddslv.IdPeriodoNomina = IdPeriodoNomina; kddslv.PeriodoNomina = PeriodoNomina; kddslv.IdEmpresa = IdEmpresa; kddslv.Empresa = Empresa; kddslv.IdPeriodoNomina = IdPeriodoNominaSelected; kddslv.PeriodoNomina = PeriodoNominaSelected; kddslv.IdEmpresa = EmpresaIdSelected; kddslv.Empresa = EmpresaSelected; using (ASNContext ctx = new ASNContext()) { ctx.Database.CommandTimeout = int.Parse(ConfigurationManager.AppSettings["TimeOutMinutes"]); listPeriodoNomina = ctx.CatPeriodosNominaCMB(4, user.UserInfo.Ident.Value, 0).ToList(); if (kddslv.IdPeriodoNomina == 0) { //strPeriodo = string.Format("_{0}", listPeriodoNomina[0].Valor); kddslv.IdPeriodoNomina = listPeriodoNomina[0].Ident; kddslv.PeriodoNomina = string.Format("{0}", listPeriodoNomina[0].Valor); } //lstActivos = ctx.DescargaArchivoSolicitud(usuario.UserInfo.Ident.Value, 1, IdPeriodoNomina).ToList(); lstActivos = ctx.DescargaArchivoSolicitud(usuario.UserInfo.Ident.Value, 1, kddslv.IdPeriodoNomina, kddslv.IdEmpresa, kddslv.Empresa).ToList(); //lstInactivos = ctx.DescargaArchivoSolicitud(usuario.UserInfo.Ident.Value, 0, IdPeriodoNomina).ToList(); lstInactivos = ctx.DescargaArchivoSolicitud(usuario.UserInfo.Ident.Value, 0, kddslv.IdPeriodoNomina, kddslv.IdEmpresa, kddslv.Empresa).ToList(); } using (var memoryStream = new MemoryStream()) { using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { var file1 = archive.CreateEntry(string.Format("NominaManual_Activos_{0}.csv", kddslv.PeriodoNomina)); using (var streamWriter = new StreamWriter(file1.Open())) { Type itemType = typeof(DescargaArchivoSolicitud_Result); var props = itemType.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); foreach (var item in lstActivos) { streamWriter.WriteLine(string.Join(",", props.Select(p => string.Format("\"{0}\"", p.GetValue(item, null))))); } streamWriter.Flush(); } var file2 = archive.CreateEntry(string.Format("NominaManual_Inactivos_{0}.csv", kddslv.PeriodoNomina)); using (var streamWriter = new StreamWriter(file2.Open())) { Type itemType = typeof(DescargaArchivoSolicitud_Result); var props = itemType.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); foreach (var item in lstInactivos) { streamWriter.WriteLine(string.Join(",", props.Select(p => string.Format("\"{0}\"", p.GetValue(item, null))))); } streamWriter.Flush(); } } return(File(memoryStream.ToArray(), "application/zip", string.Format("NominaManual_{0}.zip", kddslv.PeriodoNomina))); } } catch (Exception ex) { LogError log = new LogError(); log.RecordError(ex, usuario.UserInfo.Ident.Value); return(null); } }