public static void GeneraPolizasLDI(DateTime Periodo, string Usuario)
        {
            ICPruebaEntities db = new ICPruebaEntities();

            string        Ruta = string.Empty;
            string        rutaArchivoIngreso     = string.Empty;
            string        rutaArchivoCostos      = string.Empty;
            string        rutaArchivoFluctuacion = string.Empty;
            string        ClaseDocumentoS        = string.Empty;
            string        ClaseDocumentoN        = string.Empty;
            string        ClaseDocumento         = string.Empty;
            string        NombreArchivo          = string.Empty;
            string        Poliza          = string.Empty;
            StringBuilder sb              = new StringBuilder();
            string        PeriodoContable = Periodo.ToString("dd/MM/yyyy");

            db.usp_InsertarLinea1();
            db.usp_InsertarArchivoLinea2();

            //Obtenemos rutas configurables  de base de datos
            string[] Rutas = GenerarPolizas.RutasArchivosConfigurables();
            rutaArchivoIngreso     = Rutas[0].ToString();
            rutaArchivoCostos      = Rutas[1].ToString();
            rutaArchivoFluctuacion = Rutas[2].ToString();

            //ClaseDocumento = Session["ClaseDocumento"].ToString();
            //Poliza = Session["Poliza"].ToString();
            //string Id = Session["IdDevengo"].ToString();



            //Generacion Polizas Ingresos
            var polizasIngresos = from ListadoPoliza in db.Polizas
                                  where ListadoPoliza.Sentido == "INGRESO" && ListadoPoliza.PeriodoConsumido == Periodo
                                  select ListadoPoliza;

            foreach (var itemPolizas in polizasIngresos)
            {
                ClaseDocumento = "INGRESO"; ClaseDocumentoS = "S1"; ClaseDocumentoN = "ING";

                //Generamos Nombre del archivo
                NombreArchivo = itemPolizas.Poliza + "_" + ClaseDocumentoS + "_" + ClaseDocumentoN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                Ruta          = rutaArchivoIngreso + NombreArchivo;

                //FechaCreacion = System.IO.File.GetCreationTime(Ruta).ToString("yyyy/MM/dd");

                //Escribimos contenido dentro del archivo
                using (StreamWriter sw = new StreamWriter(Ruta)) {
                    //sb.Append("");
                    //sb.AppendLine();
                    //sw.WriteLine("");

                    //Panel1
                    string LineaBodyTipo0 = string.Format("{0},{1},{2}", "0", "500", Usuario);
                    sw.WriteLine(LineaBodyTipo0);
                    sb.Append(LineaBodyTipo0);
                    sb.AppendLine();

                    //Panel2

                    // IdDevengo = int.Parse(Id);
                    var LineaArchivo1 = from Linea1 in db.LineaArchivo1
                                        where Linea1.Id_Devengo == itemPolizas.IdPoliza && Linea1.ClaseDocumento == ClaseDocumentoS
                                        select Linea1;

                    foreach (var item in LineaArchivo1)
                    {
                        string LineaBodyTipo1 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17}", item.Reg, item.Trans, item.ClaseDocumento, item.Sociedad, item.Moneda, item.TipoCambio, item.Reg, item.FechaDocumento, item.FechaContabilizacion, item.FechaReversion, item.TextoCabecera, item.MotivoReversion, item.Libro, item.Referencia, item.Referencia2, item.IdCasuistica, item.Asiento, item.Referencia22, item.CalculoAut);
                        sw.WriteLine(LineaBodyTipo1);
                        sb.Append(LineaBodyTipo1);
                        sb.AppendLine();
                    }


                    //Panel3
                    //Se generan todas por primera vez

                    var LineaArchivo2 = from Linea2 in db.LineaArchivo2
                                        where Linea2.Id_Devengo == itemPolizas.IdPoliza && Linea2.Sentido == ClaseDocumento
                                        select Linea2;

                    foreach (var item in LineaArchivo2)
                    {
                        string LineaBodyTipo2 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{22},{33},{34},{35},{36},{37},{38},{39},{40},{41},{42},{43},{44},{45},{46},{47},{48},{49},{50},{51},{52},{53},{54}", item.REG, item.ClaveContab, item.CME, item.ImporteMD, item.IndicadorImpuesto, item.CentroCosto, item.Orden, item.FechaBase, item.Asignacion, item.TextoPosicion, item.CondPago, item.BloqPago, item.ViaPago,
                                                              item.BcoPropio, item.Cuenta, item.REF1, item.REF2, item.lineaDeNegocio, item.Campo20, item.Campo21, item.Campo22, item.SociedadCuentasDeIngresos, item.Subsegm, item.Servicio, item.Region, item.Licencia,
                                                              item.TipoDeTrafico, item.Ambito, item.Producto, item.Geografia, item.Paquetes, item.PlanRegulatorio, item.EmpresaGrupo, item.REF3, item.AreaFuncional, item.CalculoImpuesto, item.FechaValor, item.IndicadorActividadPEl,
                                                              item.RegionEstadoFederalLandProvinciaCondado, item.ClaseDeDistribuciónIRPF, item.Campo42, item.Proyecto, item.SociedadGLAsociada, item.Campo45, item.CodEmplazFiscal, item.Grafo, item.Grafo2, item.Subsegmento, item.Paquetes,
                                                              item.SubtipoLinea, item.Canal, item.ServiciosPA, item.SegmentoPA, item.importebaseimpuesto, item.ASIENTO);
                        sw.WriteLine(LineaBodyTipo2);
                        sb.Append(LineaBodyTipo2);
                        sb.AppendLine();
                    }
                    sw.Close();
                }
                int i = db.usp_InsertarDatosPolizaSAP(itemPolizas.IdPoliza, ClaseDocumento, "EnviadoSAP", true, NombreArchivo, "", "", "", "", itemPolizas.Poliza, true);
            }

            //EnviarCorreo.EnviarCorreoLDI("INGRESO", PeriodoContable); //XCV

            //**************************************************************

            //Generacion Polizas Costos
            var polizasCostos = from ListadoPoliza in db.Polizas
                                where ListadoPoliza.Sentido == "COSTO" && ListadoPoliza.PeriodoConsumido == Periodo
                                select ListadoPoliza;

            foreach (var itemPolizas in polizasCostos)
            {
                ClaseDocumento = "COSTO"; ClaseDocumentoS = "S3"; ClaseDocumentoN = "EGR";

                //Generamos Nombre del archivo
                NombreArchivo = itemPolizas.Poliza + "_" + ClaseDocumentoS + "_" + ClaseDocumentoN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                Ruta          = rutaArchivoCostos + NombreArchivo;

                //FechaCreacion = System.IO.File.GetCreationTime(Ruta).ToString("yyyy/MM/dd");

                //Escribimos contenido dentro del archivo
                using (StreamWriter sw = new StreamWriter(Ruta)) {
                    //sb.Append("");
                    //sb.AppendLine();
                    //sw.WriteLine("");

                    //Panel1
                    string LineaBodyTipo0 = string.Format("{0},{1},{2}", "0", "500", Usuario);
                    sw.WriteLine(LineaBodyTipo0);
                    sb.Append(LineaBodyTipo0);
                    sb.AppendLine();

                    //Panel2

                    // IdDevengo = int.Parse(Id);
                    var LineaArchivo1 = from Linea1 in db.LineaArchivo1
                                        where Linea1.Id_Devengo == itemPolizas.IdPoliza && Linea1.ClaseDocumento == ClaseDocumentoS
                                        select Linea1;

                    foreach (var item in LineaArchivo1)
                    {
                        string LineaBodyTipo1 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17}", item.Reg, item.Trans, item.ClaseDocumento, item.Sociedad, item.Moneda, item.TipoCambio, item.Reg, item.FechaDocumento, item.FechaContabilizacion, item.FechaReversion, item.TextoCabecera, item.MotivoReversion, item.Libro, item.Referencia, item.Referencia2, item.IdCasuistica, item.Asiento, item.Referencia22, item.CalculoAut);
                        sw.WriteLine(LineaBodyTipo1);
                        sb.Append(LineaBodyTipo1);
                        sb.AppendLine();
                    }


                    //Panel3
                    //Se generan todas por primera vez

                    var LineaArchivo2 = from Linea2 in db.LineaArchivo2
                                        where Linea2.Id_Devengo == itemPolizas.IdPoliza && Linea2.Sentido == ClaseDocumento
                                        select Linea2;

                    foreach (var item in LineaArchivo2)
                    {
                        string LineaBodyTipo2 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{22},{33},{34},{35},{36},{37},{38},{39},{40},{41},{42},{43},{44},{45},{46},{47},{48},{49},{50},{51},{52},{53},{54}", item.REG, item.ClaveContab, item.CME, item.ImporteMD, item.IndicadorImpuesto, item.CentroCosto, item.Orden, item.FechaBase, item.Asignacion, item.TextoPosicion, item.CondPago, item.BloqPago, item.ViaPago,
                                                              item.BcoPropio, item.Cuenta, item.REF1, item.REF2, item.lineaDeNegocio, item.Campo20, item.Campo21, item.Campo22, item.SociedadCuentasDeIngresos, item.Subsegm, item.Servicio, item.Region, item.Licencia,
                                                              item.TipoDeTrafico, item.Ambito, item.Producto, item.Geografia, item.Paquetes, item.PlanRegulatorio, item.EmpresaGrupo, item.REF3, item.AreaFuncional, item.CalculoImpuesto, item.FechaValor, item.IndicadorActividadPEl,
                                                              item.RegionEstadoFederalLandProvinciaCondado, item.ClaseDeDistribuciónIRPF, item.Campo42, item.Proyecto, item.SociedadGLAsociada, item.Campo45, item.CodEmplazFiscal, item.Grafo, item.Grafo2, item.Subsegmento, item.Paquetes,
                                                              item.SubtipoLinea, item.Canal, item.ServiciosPA, item.SegmentoPA, item.importebaseimpuesto, item.ASIENTO);
                        sw.WriteLine(LineaBodyTipo2);
                        sb.Append(LineaBodyTipo2);
                        sb.AppendLine();
                    }


                    sw.Close();
                }
                int i = db.usp_InsertarDatosPolizaSAP(itemPolizas.IdPoliza, ClaseDocumento, "EnviadoSAP", true, NombreArchivo, "", "", "", "", itemPolizas.Poliza, true);
            }
            //EnviarCorreo.EnviarCorreoLDI("COSTO", PeriodoContable); //XCV

            //**************************************************************

            //Generacion Polizas FluctuacionIngresos
            var polizasFluctuacionI = from ListadoPoliza in db.Polizas
                                      where ListadoPoliza.Sentido == "FLUCTUACIONINGRESO" && ListadoPoliza.PeriodoConsumido == Periodo
                                      select ListadoPoliza;

            foreach (var itemPolizas in polizasFluctuacionI)
            {
                ClaseDocumento = "FLUCTUACIONINGRESO"; ClaseDocumentoS = "SA"; ClaseDocumentoN = "FLUINGRESO";
                //Generamos Nombre del archivo
                NombreArchivo = itemPolizas.Poliza + "_" + ClaseDocumentoS + "_" + ClaseDocumentoN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                Ruta          = rutaArchivoFluctuacion + NombreArchivo;

                //FechaCreacion = System.IO.File.GetCreationTime(Ruta).ToString("yyyy/MM/dd");

                //Escribimos contenido dentro del archivo
                using (StreamWriter sw = new StreamWriter(Ruta)) {
                    //sb.Append("");
                    //sb.AppendLine();
                    //sw.WriteLine("");

                    //Panel1
                    string LineaBodyTipo0 = string.Format("{0},{1},{2}", "0", "500", Usuario);
                    sw.WriteLine(LineaBodyTipo0);
                    sb.Append(LineaBodyTipo0);
                    sb.AppendLine();

                    //Panel2mo

                    // IdDevengo = int.Parse(Id);
                    var LineaArchivo1 = from Linea1 in db.LineaArchivo1
                                        where Linea1.Id_Devengo == itemPolizas.IdPoliza && Linea1.ClaseDocumento == ClaseDocumentoS
                                        select Linea1;

                    foreach (var item in LineaArchivo1)
                    {
                        string LineaBodyTipo1 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17}", item.Reg, item.Trans, item.ClaseDocumento, item.Sociedad, item.Moneda, item.TipoCambio, item.Reg, item.FechaDocumento, item.FechaContabilizacion, item.FechaReversion, item.TextoCabecera, item.MotivoReversion, item.Libro, item.Referencia, item.Referencia2, item.IdCasuistica, item.Asiento, item.Referencia22, item.CalculoAut);
                        sw.WriteLine(LineaBodyTipo1);
                        sb.Append(LineaBodyTipo1);
                        sb.AppendLine();
                    }


                    //Panel3
                    //Se generan todas por primera vez

                    var LineaArchivo2 = from Linea2 in db.LineaArchivo2
                                        where Linea2.Id_Devengo == itemPolizas.IdPoliza && Linea2.Sentido == ClaseDocumento
                                        select Linea2;

                    foreach (var item in LineaArchivo2)
                    {
                        string LineaBodyTipo2 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{22},{33},{34},{35},{36},{37},{38},{39},{40},{41},{42},{43},{44},{45},{46},{47},{48},{49},{50},{51},{52},{53},{54}", item.REG, item.ClaveContab, item.CME, item.ImporteMD, item.IndicadorImpuesto, item.CentroCosto, item.Orden, item.FechaBase, item.Asignacion, item.TextoPosicion, item.CondPago, item.BloqPago, item.ViaPago,
                                                              item.BcoPropio, item.Cuenta, item.REF1, item.REF2, item.lineaDeNegocio, item.Campo20, item.Campo21, item.Campo22, item.SociedadCuentasDeIngresos, item.Subsegm, item.Servicio, item.Region, item.Licencia,
                                                              item.TipoDeTrafico, item.Ambito, item.Producto, item.Geografia, item.Paquetes, item.PlanRegulatorio, item.EmpresaGrupo, item.REF3, item.AreaFuncional, item.CalculoImpuesto, item.FechaValor, item.IndicadorActividadPEl,
                                                              item.RegionEstadoFederalLandProvinciaCondado, item.ClaseDeDistribuciónIRPF, item.Campo42, item.Proyecto, item.SociedadGLAsociada, item.Campo45, item.CodEmplazFiscal, item.Grafo, item.Grafo2, item.Subsegmento, item.Paquetes,
                                                              item.SubtipoLinea, item.Canal, item.ServiciosPA, item.SegmentoPA, item.importebaseimpuesto, item.ASIENTO);
                        sw.WriteLine(LineaBodyTipo2);
                        sb.Append(LineaBodyTipo2);
                        sb.AppendLine();
                    }


                    sw.Close();
                }

                int i = db.usp_InsertarDatosPolizaSAP(itemPolizas.IdPoliza, ClaseDocumento, "EnviadoSAP", true, NombreArchivo, "", "", "", "", itemPolizas.Poliza, true);
            }

            //**************************************************************

            //Generacion Polizas FluctuacionCosto
            var polizasFluctuacionC = from ListadoPoliza in db.Polizas
                                      where ListadoPoliza.Sentido == "FLUCTUACIONCOSTO" && ListadoPoliza.PeriodoConsumido == Periodo
                                      select ListadoPoliza;

            foreach (var itemPolizas in polizasFluctuacionC)
            {
                ClaseDocumento = "FLUCTUACIONCOSTO"; ClaseDocumentoS = "SA"; ClaseDocumentoN = "FLUCOSTO";
                //Generamos Nombre del archivo
                NombreArchivo = itemPolizas.Poliza + "_" + ClaseDocumentoS + "_" + ClaseDocumentoN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
                Ruta          = rutaArchivoFluctuacion + NombreArchivo;

                //FechaCreacion = System.IO.File.GetCreationTime(Ruta).ToString("yyyy/MM/dd");

                //Escribimos contenido dentro del archivo
                using (StreamWriter sw = new StreamWriter(Ruta))
                {
                    //sb.Append("");
                    //sb.AppendLine();
                    //sw.WriteLine("");

                    //Panel1
                    string LineaBodyTipo0 = string.Format("{0},{1},{2}", "0", "500", Usuario);
                    sw.WriteLine(LineaBodyTipo0);
                    sb.Append(LineaBodyTipo0);
                    sb.AppendLine();

                    //Panel2mo

                    // IdDevengo = int.Parse(Id);
                    var LineaArchivo1 = from Linea1 in db.LineaArchivo1
                                        where Linea1.Id_Devengo == itemPolizas.IdPoliza && Linea1.ClaseDocumento == ClaseDocumentoS
                                        select Linea1;

                    foreach (var item in LineaArchivo1)
                    {
                        string LineaBodyTipo1 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17}", item.Reg, item.Trans, item.ClaseDocumento, item.Sociedad, item.Moneda, item.TipoCambio, item.Reg, item.FechaDocumento, item.FechaContabilizacion, item.FechaReversion, item.TextoCabecera, item.MotivoReversion, item.Libro, item.Referencia, item.Referencia2, item.IdCasuistica, item.Asiento, item.Referencia22, item.CalculoAut);
                        sw.WriteLine(LineaBodyTipo1);
                        sb.Append(LineaBodyTipo1);
                        sb.AppendLine();
                    }


                    //Panel3
                    //Se generan todas por primera vez

                    var LineaArchivo2 = from Linea2 in db.LineaArchivo2
                                        where Linea2.Id_Devengo == itemPolizas.IdPoliza && Linea2.Sentido == ClaseDocumento
                                        select Linea2;

                    foreach (var item in LineaArchivo2)
                    {
                        string LineaBodyTipo2 = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31},{22},{33},{34},{35},{36},{37},{38},{39},{40},{41},{42},{43},{44},{45},{46},{47},{48},{49},{50},{51},{52},{53},{54}", item.REG, item.ClaveContab, item.CME, item.ImporteMD, item.IndicadorImpuesto, item.CentroCosto, item.Orden, item.FechaBase, item.Asignacion, item.TextoPosicion, item.CondPago, item.BloqPago, item.ViaPago,
                                                              item.BcoPropio, item.Cuenta, item.REF1, item.REF2, item.lineaDeNegocio, item.Campo20, item.Campo21, item.Campo22, item.SociedadCuentasDeIngresos, item.Subsegm, item.Servicio, item.Region, item.Licencia,
                                                              item.TipoDeTrafico, item.Ambito, item.Producto, item.Geografia, item.Paquetes, item.PlanRegulatorio, item.EmpresaGrupo, item.REF3, item.AreaFuncional, item.CalculoImpuesto, item.FechaValor, item.IndicadorActividadPEl,
                                                              item.RegionEstadoFederalLandProvinciaCondado, item.ClaseDeDistribuciónIRPF, item.Campo42, item.Proyecto, item.SociedadGLAsociada, item.Campo45, item.CodEmplazFiscal, item.Grafo, item.Grafo2, item.Subsegmento, item.Paquetes,
                                                              item.SubtipoLinea, item.Canal, item.ServiciosPA, item.SegmentoPA, item.importebaseimpuesto, item.ASIENTO);
                        sw.WriteLine(LineaBodyTipo2);
                        sb.Append(LineaBodyTipo2);
                        sb.AppendLine();
                    }


                    sw.Close();
                }

                int i = db.usp_InsertarDatosPolizaSAP(itemPolizas.IdPoliza, ClaseDocumento, "EnviadoSAP", true, NombreArchivo, "", "", "", "", itemPolizas.Poliza, true);
            }



            //EnviarCorreo.EnviarCorreoLDI("FLUCTUACION", PeriodoContable); //XCV
            //ConectarSFTP(Ruta);

            //string NombrePoliza = Session["NombrePoliza"].ToString();
            //string Estado = string.Empty;
            //if (Session["Estado"] != null) Estado = Session["Estado"].ToString(); else Estado = "";
            //int i = db.usp_InsertarDatosPolizaSAP(IdDevengo, ClaseDocumento, Estado, NombreArchivo, "", "", "", "", Poliza);
        }