Beispiel #1
0
        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);
            }
        }