public async Task <IEnumerable <T> > GetFilterAsync <T>(Expression <Func <T, bool> > filter) where T : class
 {
     using (ICPruebaEntities db = new ICPruebaEntities())
     {
         return(await db.Set <T>().Where(filter).ToListAsync());
     }
 }
 public async Task <IEnumerable <T> > GetAllAsync <T>() where T : class
 {
     using (ICPruebaEntities db = new ICPruebaEntities())
     {
         return(await db.Set <T>().ToListAsync());
     }
 }
Пример #3
0
        public async Task <List <object> > _ConsultarAsync(string typeId, params SqlParameter[] parametros)
        {
            try
            {
                using (var db = new ICPruebaEntities())
                {
                    Metadata metadata  = entidades[typeId];
                    string   sentencia = "exec " + metadata.SelectSentence + " ";
                    foreach (var item in parametros)
                    {
                        sentencia += item.ParameterName + ",";
                    }

                    sentencia = sentencia.Substring(0, sentencia.Length - 1);
                    var result = db.Database.SqlQuery(metadata.EntityType, sentencia, parametros);

                    List <object> result1 = await result.ToListAsync();

                    return(result1);
                }
            }
            catch
            {
                return(null);
            }
        }
 public IList <object> ObtenerOpciones()
 {
     try
     {
         using (ICPruebaEntities db = new ICPruebaEntities())
         {
             List <object> lista   = new List <object>();
             var           submenu = from elementos in db.Submenu
                                     join acceso in db.Acceso
                                     on elementos.Id equals acceso.Id_Submenu
                                     where acceso.Id_LineaNegocio == 1 &&
                                     elementos.Activo == 1 &&
                                     elementos.Id_Menu == 1 &&
                                     elementos.carga == 1
                                     select new
             {
                 elementos.Nombre,
                 elementos.Id
             };
             foreach (var elemento in submenu)
             {
                 lista.Add(new
                 {
                     elemento.Id,
                     elemento.Nombre
                 });
             }
             return(lista);
         }
     }
     catch
     {
         return(null);
     }
 }
 static internal IEnumerable <T> GetAll <T>(int pagSize, int pagCurrent) where T : class
 {
     using (ICPruebaEntities db = new ICPruebaEntities())
     {
         return(db.Set <T>().ToList().Skip(pagCurrent - 1).Take(pagSize));
     }
 }
Пример #6
0
 public PeriodosAnterioresROMController()
 {
     db    = new ICPruebaEntities();
     meses = new Dictionary <int, string>()
     {
         { 1, "ENERO" }, { 2, "FEBRERO" }, { 3, "MARZO" }, { 4, "ABRIL" },
         { 5, "MAYO" }, { 6, "JUNIO" }, { 7, "JULIO" }, { 8, "AGOSTO" },
         { 9, "SEPTIEMBRE" }, { 10, "OCTUBRE" }, { 11, "NOVIEMBRE" }, { 12, "DICIEMBRE" }
     };
 }
        public static void ReporteRechazoSAP()
        {
            ICPruebaEntities db = new ICPruebaEntities();
            StringBuilder    sb = new StringBuilder();
            //List<string> lista = new List<string>();
            List <object> lista = new List <object>();
            string        Ruta  = string.Empty;
            string        rutaArchivoIngreso = string.Empty;

            var ruta = from datos in db.parametrosCargaDocumento
                       where datos.idDocumento == "RRECHAZO"
                       select new
            {
                datos.pathURL
            };

            foreach (var item in ruta)
            {
                rutaArchivoIngreso = item.pathURL;
            }

            //Validamos que existe la ruta
            if (Directory.Exists(rutaArchivoIngreso) == false)
            {
                Directory.CreateDirectory(rutaArchivoIngreso);
            }

            string NombreArchivo = "LogRechazoPolizas.csv";

            var Rechazo = from P in db.Polizas
                          where P.Estado == "Rechazado"
                          select new { P.Poliza, P.Sentido, P.Estado, P.Nombre, P.DescripcionMensaje };

            Ruta = rutaArchivoIngreso + NombreArchivo;

            //Creamos archivo LOG CVS
            using (StreamWriter sw = new StreamWriter(Ruta)) {
                sw.WriteLine("{0},{1},{2},{3},{4}", "Poliza", "Sociedad", "Estatus", "Nombre Archivo", "Descripcion Mensaje");

                foreach (var item in Rechazo)
                {
                    sb.AppendLine();
                    sw.WriteLine("");

                    string LineaRechazo = string.Format("{0},{1},{2},{3},{4}", item.Poliza, item.Sentido, item.Estado, item.Nombre, item.DescripcionMensaje);
                    sw.WriteLine(LineaRechazo);
                    sb.Append(LineaRechazo);
                    sb.AppendLine();
                }
                sw.Close();
            }
        }
        public bool inserta(List <TarifaRoaming> lista)
        {
            bool exito = true;

            object respuesta = null;
            int    limite    = lista.Count();

            using (ICPruebaEntities db = new ICPruebaEntities())
            {
                try
                {
                    foreach (var tarifa in lista)
                    {
                        var oTarifa = new TarifaRoaming();
                        oTarifa.Sentido         = tarifa.Sentido;
                        oTarifa.Direccion       = tarifa.Direccion;
                        oTarifa.Code            = tarifa.Code;
                        oTarifa.Id_Operador     = tarifa.Id_Operador;
                        oTarifa.FechaInicio     = tarifa.FechaInicio;
                        oTarifa.FechaFin        = tarifa.FechaFin;
                        oTarifa.ToData          = tarifa.ToData;
                        oTarifa.ToSMSMo         = tarifa.ToSMSMo;
                        oTarifa.ToVoiceMo       = tarifa.ToVoiceMo;
                        oTarifa.ToVoiceMt       = tarifa.ToVoiceMt;
                        oTarifa.TfData          = tarifa.TfData;
                        oTarifa.TfSMSMo         = tarifa.TfSMSMo;
                        oTarifa.TfVoiceMo       = tarifa.TfVoiceMo;
                        oTarifa.TfVoiceMt       = tarifa.TfVoiceMt;
                        oTarifa.iva             = tarifa.iva;
                        oTarifa.Activo          = 1;
                        oTarifa.Id_LineaNegocio = 1;

                        db.TarifaRoaming.Add(oTarifa);
                        Log log = new Log();
                        log.insertaNuevoOEliminado(oTarifa, "Nuevo", "TarifaRoaming.html", Request.UserHostAddress);

                        db.SaveChanges();
                    }

                    respuesta = new { success = true, results = "ok" };
                }

                catch (Exception e)
                {
                    respuesta = new { success = false, results = e.Message };
                    exito     = false;
                }
            }

            return(exito);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="objeto"></param>
        /// <param name="accion"></param>
        /// <param name="pantalla"></param>
        public void insertaNuevoOEliminado(object objeto, string accion, string pantalla, string ip)
        {
            StringBuilder valores = new StringBuilder();
            string        campos  = string.Empty;
            string        usuario = string.Empty;
            HttpContext   context = HttpContext.Current;

            if (context.Session["userName"] != null)
            {
                usuario = context.Session["userName"].ToString();
            }

            PropertyInfo[] listaProperties = objeto.GetType().GetProperties();

            foreach (PropertyInfo item in listaProperties)
            {
                if (campos == string.Empty)
                {
                    campos = item.Name;
                    valores.Append((item.GetValue(objeto) != null ? item.GetValue(objeto).ToString() : string.Empty));
                }
                else
                {
                    campos += string.Concat("|", item.Name);
                    valores.Append(string.Concat("|", (item.GetValue(objeto) != null ? item.GetValue(objeto).ToString() : string.Empty)));
                }
            }

            try
            {
                using (ICPruebaEntities db = new ICPruebaEntities())
                {
                    LogActualizaciones reg = new LogActualizaciones();
                    reg.NombrePantalla    = pantalla;
                    reg.ColumnaModificada = campos;
                    reg.Valor_Nuevo       = valores.ToString();
                    reg.Valor_Anterior    = string.Empty;
                    reg.Fecha             = DateTime.Now;
                    reg.Direccion_IP      = ip;
                    reg.Accion            = accion;
                    reg.Activo            = 1;
                    reg.Usuario           = usuario;
                    db.LogActualizaciones.Add(reg);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static void EnviarSMS(string numero, string mensaje, string rutaSMS)
        {
            ICPruebaEntities db             = new ICPruebaEntities();
            string           numeroTelefono = string.Empty;
            string           RutaSMS        = string.Empty;

            string[] numerosTelefonos;

            try
            {
                var Ruta = from datos in db.parametrosCargaDocumento
                           where datos.idDocumento == "RUTASMS"
                           select new
                {
                    datos.pathURL
                };
                foreach (var item in Ruta)
                {
                    RutaSMS = item.pathURL;
                }

                var Telefono = from datos in db.parametrosCargaDocumento
                               where datos.idDocumento == "TELSMS"
                               select new
                {
                    datos.pathURL
                };
                foreach (var item in Telefono)
                {
                    numeroTelefono = item.pathURL;
                }
                numerosTelefonos = numeroTelefono.Split(',');

                foreach (var item in numerosTelefonos)
                {
                    System.Diagnostics.Process proceso = new System.Diagnostics.Process();
                    proceso.StartInfo.FileName        = RutaSMS;
                    proceso.StartInfo.Arguments       = string.Concat(item.Replace(" ", ""), " ", "\"", mensaje, "\"");
                    proceso.StartInfo.UseShellExecute = true;
                    proceso.StartInfo.WindowStyle     = System.Diagnostics.ProcessWindowStyle.Hidden;
                    proceso.Start();
                }
            } catch (Exception ex) {
                throw ex;
            }
        }
        public void GuardarElementos <T>(IEnumerable <T> lista) where T : class
        {
            using (ICPruebaEntities db = new ICPruebaEntities())
            {
                using (DbContextTransaction trans = db.Database.BeginTransaction())
                {
                    db.Configuration.AutoDetectChangesEnabled = false;

                    foreach (var el in lista)
                    {
                        db.Set <T>().Add(el);
                    }

                    db.SaveChanges();
                    trans.Commit();
                }
            }
        }
Пример #12
0
        public bool CrearPeriodosAnteriores(ICPruebaEntities iCPrueba)
        {
            try
            {
                iCPrueba.usp_LimpiarCargas();

                foreach (var periodo in PeriodosFaltantesCosto())
                {
                    iCPrueba.usp_PeriodosAnterioresCostoROM(periodo.Month, periodo.Year);
                }

                foreach (var periodo in PeriodosFaltantesIngreso())
                {
                    iCPrueba.usp_PeriodosAnterioresIngresoROM(periodo.Month, periodo.Year);
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
        //protected void CrearFilaTabla(DataTable estructura, object parametro)
        //{
        //    var newRow = estructura.NewRow();
        //    var properties = parametro.GetType().GetProperties();

        //    foreach (var property in properties)
        //    {
        //        var value = property.GetValue(parametro);
        //        if (value != null)
        //        {
        //            if (value is DateTime)
        //                newRow[property.Name] = ((DateTime)value).ToString("MM/dd/yyyy");
        //            else if (value is string)
        //                newRow[property.Name] = value;
        //            else
        //            {
        //                if (value is decimal?)
        //                {
        //                    decimal valueInt = Convert.ToDecimal(value);
        //                    if (valueInt != 0)
        //                        newRow[property.Name] = value;
        //                }
        //                else
        //                {
        //                    int valueInt = Convert.ToInt32(value);
        //                    if (valueInt != 0)
        //                        newRow[property.Name] = value;
        //                }
        //            }
        //        }
        //    }

        //    estructura.Rows.Add(newRow);
        //}

        protected async Task <IList <object> > _ConsultarAsync(string storeName, Type entityType, params SqlParameter[] parametros)
        {
            try
            {
                using (var db = new ICPruebaEntities())
                {
                    string sentencia = "exec " + storeName + " ";
                    if (parametros != null && parametros.Count() > 0)
                    {
                        foreach (var item in parametros)
                        {
                            sentencia += item.ParameterName + ",";
                        }
                    }

                    sentencia = sentencia.Substring(0, sentencia.Length - 1);
                    System.Data.Entity.Infrastructure.DbRawSqlQuery result = null;
                    if (parametros != null && parametros.Count() > 0)
                    {
                        result = db.Database.SqlQuery(entityType, sentencia, parametros);
                    }
                    else
                    {
                        result = db.Database.SqlQuery(entityType, sentencia);
                    }

                    IList <object> result1 = await result.ToListAsync();

                    return(result1);
                }
            }
            catch
            {
                return(null);
            }
        }
Пример #14
0
        public async Task GenerarAsync(string typeId, DateTime periodo)
        {
            try
            {
                using (var db = new ICPruebaEntities())
                {
                    var param = new SqlParameter
                    {
                        ParameterName = "@result",
                        SqlDbType     = SqlDbType.Int,
                        Direction     = ParameterDirection.Output
                    };
                    var metadata = entidades[typeId];
                    await db.Database.ExecuteSqlCommandAsync("exec @result=" + metadata.InsertSentence + " @periodo",
                                                             param,
                                                             new SqlParameter("@periodo", SqlDbType.Date) { Value = periodo });

                    var result1 = (int)param.Value;
                }
            }
            catch (Exception)
            {
            }
        }
Пример #15
0
        public static void EnviarCorreoLDI(string Sentido, string Periodo)
        {
            ICPruebaEntities db = new ICPruebaEntities();

            string rutaArchivoIngreso     = string.Empty;
            string rutaArchivoCostos      = string.Empty;
            string rutaArchivoFluctuacion = string.Empty;
            string sHost = ConfigurationManager.AppSettings["HostCorreo"];
            string sPort = ConfigurationManager.AppSettings["PuertoCorreo"];


            //string filename = @"C:\Users\Paul\Documents\test.txt";
            //Attachment data = new Attachment(filename, MediaTypeNames.Application.Octet);
            MailMessage   email        = new MailMessage();
            StringBuilder sbBody       = new StringBuilder();
            string        rutaArchivos = string.Empty;
            string        ListaCorreos = string.Empty;

            string[] _aPeriodo = Periodo.Split('/');
            string   Mes       = _aPeriodo[1];
            string   Ano       = _aPeriodo[2];
            string   Subject   = string.Empty;

            //string Nombre = "";//Session["NombrePoliza"].ToString();

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

            //Obtenemos Lista de correos
            var correos = from datos in db.parametrosCargaDocumento
                          where datos.idDocumento == "CORREO"
                          select new
            {
                datos.pathURL
            };

            foreach (var item in correos)
            {
                ListaCorreos = item.pathURL;
            }


            if (Sentido == "INGRESO")
            {
                string[] Archivos;
                //Creamos Body
                sbBody.Append("IC Infroma: Genero Polizas INGRESOS automatica para SAP del periodo   " + Mes + " " + Ano + "Con los archivos adjuntos:");
                sbBody.AppendFormat("<br/>");

                //Obtenemos los archivos csv de la carpeta  y  los Adjuntamos

                Archivos = Directory.GetFiles(rutaArchivoIngreso, "*.csv");
                //string NombreArchivo = Path.GetFileName(rutaArchivos);
                foreach (string archivo in Archivos)
                {
                    email.Attachments.Add(new Attachment(archivo));
                }
                foreach (string archivo in Archivos)
                {
                    sbBody.AppendFormat("<br/>{0}", Path.GetFileName(archivo));
                }


                //Creamos Subject
                Subject = "[External]IC Archivos Generados S1 INGRESOS ( " + DateTime.Now.ToString("dd / MMM / yyy hh:mm:ss") + " ) " + "Periodo " + Mes + " " + Ano;

                //foreach (string archivo in Archivos)
                //{
                //    sbBody.AppendFormat("<br/>{0}", Path.GetFileName(archivo));
                //}
            }

            if (Sentido == "COSTO")
            {
                string[] Archivos;
                //Creamos Body
                sbBody.Append("IC Infroma: Genero Polizas COSTOS automatica para SAP del periodo   " + Mes + " " + Ano + "Con los archivos adjuntos:");
                sbBody.AppendFormat("<br/>");

                //Obtenemos los archivos csv de la carpeta  y  los Adjuntamos

                Archivos = Directory.GetFiles(rutaArchivoCostos, "*.csv");
                //string NombreArchivo = Path.GetFileName(rutaArchivos);

                foreach (string archivo in Archivos)
                {
                    email.Attachments.Add(new Attachment(archivo));
                }
                foreach (string archivo in Archivos)
                {
                    sbBody.AppendFormat("<br/>{0}", Path.GetFileName(archivo));
                }

                //Creamos Subject
                Subject = "[External]IC Archivos Generados S3 COSTOS(" + DateTime.Now.ToString("dd / MMM / yyy hh: mm:ss") + ") " + "Periodo " + Mes + " " + Ano;
            }
            if (Sentido == "FLUCTUACION")
            {
                string[] Archivos;
                //Creamos Body
                sbBody.Append("IC Infroma: Genero Polizas FLUCTUACION automatica para SAP del periodo   " + Mes + " " + Ano + "Con los archivos adjuntos:");
                sbBody.AppendFormat("<br/>");

                //Obtenemos los archivos csv de la carpeta  y  los Adjuntamos
                Archivos = Directory.GetFiles(rutaArchivoFluctuacion, "*.csv");
                //string NombreArchivo = Path.GetFileName(rutaArchivos);

                foreach (string archivo in Archivos)
                {
                    email.Attachments.Add(new Attachment(archivo));
                }
                foreach (string archivo in Archivos)
                {
                    sbBody.AppendFormat("<br/>{0}", Path.GetFileName(archivo));
                }


                //Creamos Subject
                Subject = "[External]IC Archivos Generados SA FLUCTUACION ( " + DateTime.Now.ToString("dd / MMM / yyy hh:mm:ss") + " ) " + "Periodo " + Mes + " " + Ano;
            }


            //De quen se envia
            email.From = new MailAddress("*****@*****.**");
            //A quien se le envia correo
            //email.To.Add(new MailAddress("[email protected], [email protected], [email protected], [email protected]"));
            email.To.Add(new MailAddress(ListaCorreos));
            email.Subject    = Subject;
            email.Body       = sbBody.ToString();
            email.IsBodyHtml = true;
            email.Priority   = MailPriority.High;

            SmtpClient smtp = new SmtpClient();

            smtp.Host                  = sHost;
            smtp.Port                  = int.Parse(sPort);
            smtp.EnableSsl             = false;
            smtp.UseDefaultCredentials = true;
            smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;

            //Se envia Correo
            smtp.Send(email);
            email.Dispose();
        }
        public static void HojaDevengoLocal(ref ExcelWorksheet worksheet, DateTime periodo, int tabla, ICPruebaEntities db)
        {
            decimal[] listaSubtotales = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            var       lista           = new List <sp_DevengoCostoLDIGET_Result>();
            var       dtDocumento     = new DataTable();

            lista = db.sp_DevengoCostoLDIGET(tabla, periodo).ToList();
            dtDocumento.Columns.Add("Cuenta");
            dtDocumento.Columns.Add("Servicio");

            dtDocumento.Columns.Add("CentroCosto");
            dtDocumento.Columns.Add("Area_Funcional");

            dtDocumento.Columns.Add("Acreedor");
            dtDocumento.Columns.Add("Sociedad");
            dtDocumento.Columns.Add("Operador");
            dtDocumento.Columns.Add("NombreCorto");
            dtDocumento.Columns.Add("Moneda");
            dtDocumento.Columns.Add("FechaConsumo");
            dtDocumento.Columns.Add("FechaSolicitud");
            dtDocumento.Columns.Add("TipoCambio");
            dtDocumento.Columns.Add("CancelProvision");
            dtDocumento.Columns.Add("CancelProvNCR");
            dtDocumento.Columns.Add("Facturacion");
            dtDocumento.Columns.Add("NCREmitidas");
            dtDocumento.Columns.Add("Provision");
            dtDocumento.Columns.Add("ProvisionNCR");
            dtDocumento.Columns.Add("Exceso");
            dtDocumento.Columns.Add("TotalDevengo");
            dtDocumento.Columns.Add("Fluctuacion");
            dtDocumento.Columns.Add("TotalDevengoFluctuacion");

            foreach (var elemento in lista)
            {
                DataRow rowdt = default(DataRow);
                rowdt                            = dtDocumento.NewRow();
                rowdt["Cuenta"]                  = elemento.CuentaResultados;
                rowdt["Servicio"]                = elemento.Servicio;
                rowdt["CentroCosto"]             = elemento.CentroCostos;
                rowdt["Area_Funcional"]          = elemento.AreaFuncional;
                rowdt["Acreedor"]                = elemento.Acreedor;
                rowdt["Sociedad"]                = elemento.SoGL;
                rowdt["Operador"]                = elemento.Operador;
                rowdt["NombreCorto"]             = elemento.NombreCorto;
                rowdt["Moneda"]                  = elemento.Moneda;
                rowdt["FechaConsumo"]            = elemento.FechaConsumo;
                rowdt["FechaSolicitud"]          = elemento.FechaSolicitud;
                rowdt["TipoCambio"]              = elemento.TipoCambio;
                rowdt["CancelProvision"]         = elemento.CancelacionProvision;
                rowdt["CancelProvNCR"]           = elemento.CancelacionprovisionNCR;
                rowdt["Facturacion"]             = elemento.Facturacion;
                rowdt["NCREmitidas"]             = elemento.NCREmitidas;
                rowdt["Provision"]               = elemento.Provision;
                rowdt["ProvisionNCR"]            = elemento.ProvisionNCR;
                rowdt["Exceso"]                  = elemento.Exceso;
                rowdt["TotalDevengo"]            = elemento.TotalDevengo;
                rowdt["Fluctuacion"]             = elemento.Fluctuacion;
                rowdt["TotalDevengoFluctuacion"] = elemento.TotalDevengoFluctuacion;

                dtDocumento.Rows.Add(rowdt);
            }

            worksheet.Cells[("A3")].Value = DateTime.Now.ToShortDateString();

            int    lFila = 7;
            long   lCuentaPrimaria = 0, lCuentaSecuandaria = 0;
            string lServicioPrincipal = string.Empty, lServicioSecundario = string.Empty;

            for (int lIteracion = 0; lIteracion < dtDocumento.Rows.Count;)
            {
                if (lIteracion == 0 || lIteracion <= dtDocumento.Rows.Count - 2)
                {
                    lCuentaPrimaria = Convert.ToInt64(dtDocumento.Rows[lIteracion]["Cuenta"]);

                    if (dtDocumento.Rows.Count > 1)
                    {
                        lCuentaSecuandaria  = Convert.ToInt64(dtDocumento.Rows[lIteracion + 1]["Cuenta"]);
                        lServicioSecundario = dtDocumento.Rows[lIteracion + 1]["Servicio"].ToString();
                    }

                    lServicioPrincipal = dtDocumento.Rows[lIteracion]["Servicio"].ToString();


                    if (lIteracion == 0)
                    {
                        ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false);
                        AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false);

                        if (lServicioPrincipal != lServicioSecundario)
                        {
                            ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                            ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                            lFila++;
                        }

                        lCuentaPrimaria    = lCuentaSecuandaria;
                        lServicioPrincipal = lServicioSecundario;

                        lIteracion++;
                        lFila++;
                    }
                    else
                    {
                        ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false);
                        AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false);

                        if (lCuentaPrimaria != lCuentaSecuandaria)
                        {
                            ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                            ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                            lFila++;
                        }
                        else if (lServicioPrincipal != lServicioSecundario)
                        {
                            ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                            ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                            lFila++;
                        }

                        lCuentaPrimaria    = lCuentaSecuandaria;
                        lServicioPrincipal = lServicioSecundario;

                        lIteracion++;
                        lFila++;
                    }
                }
                else
                {
                    if (lCuentaPrimaria != lCuentaSecuandaria)
                    {
                        ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                        ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                        lFila++;
                    }
                    else if (lServicioPrincipal != lServicioSecundario)
                    {
                        ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);
                        ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                        lFila++;
                    }

                    ColocarDatosCuenta(ref worksheet, dtDocumento.Rows[lIteracion], lFila, false);
                    AcumularSubtotales(dtDocumento.Rows[lIteracion], listaSubtotales, false);

                    ColocarEstilos(worksheet, lFila, lCuentaPrimaria, false);
                    ColocarSubtotales(ref worksheet, lFila, lCuentaPrimaria, listaSubtotales, false);

                    lIteracion++;
                }
            }
            worksheet.Cells["A7:V" + lFila].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
        }
        public static void HojaFluctuacionCosto(ref ExcelWorksheet worksheet, DateTime periodo, Boolean blnTabla, ICPruebaEntities db)
        {
            int     lFila = 2;
            decimal TotalImporteProvision     = 0;
            decimal TotalImporteProvisionMXN  = 0;
            decimal TotalImporteRevaluado     = 0;
            decimal TotalImporteFacturado     = 0;
            decimal TotalImpFacSopProvision   = 0;
            decimal TotalFacturadoMXN         = 0;
            decimal TotalVariacionMXN         = 0;
            decimal TotalEfectoOperativo      = 0;
            decimal TotalFluctuacionCambiaria = 0;

            if (blnTabla)
            {
                var consultaFC = db.FluctuacionCostoLDI.Where(x => x.periodo == periodo).ToList();
                foreach (var lDatosFluctuacion in consultaFC)
                {
                    worksheet.Cells[("A" + lFila)].Value = lDatosFluctuacion.cuentaContable;
                    worksheet.Cells[("B" + lFila)].Value = lDatosFluctuacion.nombreGrupo;
                    worksheet.Cells[("C" + lFila)].Value = lDatosFluctuacion.nombreAcreedorSAP;
                    worksheet.Cells[("D" + lFila)].Value = lDatosFluctuacion.codigoAcreedor;
                    worksheet.Cells[("E" + lFila)].Value = lDatosFluctuacion.sociedadGL;
                    worksheet.Cells[("F" + lFila)].Value = lDatosFluctuacion.fecha_contable.Value.ToString("dd-MM-yyyy");
                    worksheet.Cells[("G" + lFila)].Value = lDatosFluctuacion.claseDocumento;
                    worksheet.Cells[("H" + lFila)].Value = lDatosFluctuacion.sentido;
                    worksheet.Cells[("I" + lFila)].Value = lDatosFluctuacion.factura;
                    worksheet.Cells[("J" + lFila)].Value = lDatosFluctuacion.num_Documento_PF;
                    worksheet.Cells[("K" + lFila)].Value = lDatosFluctuacion.moneda;
                    worksheet.Cells[("L" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.TC_Provision);
                    worksheet.Cells[("L" + lFila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";
                    worksheet.Cells[("M" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.TC_Cierre);
                    worksheet.Cells[("M" + lFila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";
                    worksheet.Cells[("N" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.TC_Facturado);
                    worksheet.Cells[("N" + lFila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";
                    worksheet.Cells[("O" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Provision);
                    worksheet.Cells[("O" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("P" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Provision_MXN);
                    worksheet.Cells[("P" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("Q" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Revaluado);
                    worksheet.Cells[("Q" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("R" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Facturado);
                    worksheet.Cells[("R" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("S" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.imp_Fac_Sop_Provision);
                    worksheet.Cells[("S" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("T" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.facturado_MXN);
                    worksheet.Cells[("T" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("U" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.variacion_MXN);
                    worksheet.Cells[("U" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("V" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.efecto_Operativo);
                    worksheet.Cells[("V" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("W" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.fluctuacion_Cambiaria);
                    worksheet.Cells[("W" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("X" + lFila)].Value = lDatosFluctuacion.estatus;
                    worksheet.Cells[("Y" + lFila)].Value = lDatosFluctuacion.cuenta_Fluctuacion;

                    TotalImporteProvision     += Convert.ToDecimal(lDatosFluctuacion.importe_Provision);
                    TotalImporteProvisionMXN  += Convert.ToDecimal(lDatosFluctuacion.importe_Provision_MXN);
                    TotalImporteRevaluado     += Convert.ToDecimal(lDatosFluctuacion.importe_Revaluado);
                    TotalImporteFacturado     += Convert.ToDecimal(lDatosFluctuacion.importe_Facturado);
                    TotalImpFacSopProvision   += Convert.ToDecimal(lDatosFluctuacion.imp_Fac_Sop_Provision);
                    TotalFacturadoMXN         += Convert.ToDecimal(lDatosFluctuacion.facturado_MXN);
                    TotalVariacionMXN         += Convert.ToDecimal(lDatosFluctuacion.variacion_MXN);
                    TotalEfectoOperativo      += Convert.ToDecimal(lDatosFluctuacion.efecto_Operativo);
                    TotalFluctuacionCambiaria += Convert.ToDecimal(lDatosFluctuacion.fluctuacion_Cambiaria);

                    lFila++;
                }
            }
            else
            {
                var consultaFC = db.GAFluctuacionCostoLDI.Where(x => x.periodo == periodo).ToList();
                foreach (var lDatosFluctuacion in consultaFC)
                {
                    worksheet.Cells[("A" + lFila)].Value = lDatosFluctuacion.cuentaContable;
                    worksheet.Cells[("B" + lFila)].Value = lDatosFluctuacion.nombreGrupo;
                    worksheet.Cells[("C" + lFila)].Value = lDatosFluctuacion.nombreAcreedorSAP;
                    worksheet.Cells[("D" + lFila)].Value = lDatosFluctuacion.codigoAcreedor;
                    worksheet.Cells[("E" + lFila)].Value = lDatosFluctuacion.sociedadGL;
                    worksheet.Cells[("F" + lFila)].Value = lDatosFluctuacion.fecha_contable.Value.ToString("dd-MM-yyyy");
                    worksheet.Cells[("G" + lFila)].Value = lDatosFluctuacion.claseDocumento;
                    worksheet.Cells[("H" + lFila)].Value = lDatosFluctuacion.sentido;
                    worksheet.Cells[("I" + lFila)].Value = lDatosFluctuacion.factura;
                    worksheet.Cells[("J" + lFila)].Value = lDatosFluctuacion.num_Documento_PF;
                    worksheet.Cells[("K" + lFila)].Value = lDatosFluctuacion.moneda;
                    worksheet.Cells[("L" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.TC_Provision);
                    worksheet.Cells[("L" + lFila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";
                    worksheet.Cells[("M" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.TC_Cierre);
                    worksheet.Cells[("M" + lFila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";
                    worksheet.Cells[("N" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.TC_Facturado);
                    worksheet.Cells[("N" + lFila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";
                    worksheet.Cells[("O" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Provision);
                    worksheet.Cells[("O" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("P" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Provision_MXN);
                    worksheet.Cells[("P" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("Q" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Revaluado);
                    worksheet.Cells[("Q" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("R" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.importe_Facturado);
                    worksheet.Cells[("R" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("S" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.imp_Fac_Sop_Provision);
                    worksheet.Cells[("S" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("T" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.facturado_MXN);
                    worksheet.Cells[("T" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("U" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.variacion_MXN);
                    worksheet.Cells[("U" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("V" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.efecto_Operativo);
                    worksheet.Cells[("V" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("W" + lFila)].Value = Convert.ToDecimal(lDatosFluctuacion.fluctuacion_Cambiaria);
                    worksheet.Cells[("W" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
                    worksheet.Cells[("X" + lFila)].Value = lDatosFluctuacion.estatus;
                    worksheet.Cells[("Y" + lFila)].Value = lDatosFluctuacion.cuenta_Fluctuacion;

                    TotalImporteProvision     += Convert.ToDecimal(lDatosFluctuacion.importe_Provision);
                    TotalImporteProvisionMXN  += Convert.ToDecimal(lDatosFluctuacion.importe_Provision_MXN);
                    TotalImporteRevaluado     += Convert.ToDecimal(lDatosFluctuacion.importe_Revaluado);
                    TotalImporteFacturado     += Convert.ToDecimal(lDatosFluctuacion.importe_Facturado);
                    TotalImpFacSopProvision   += Convert.ToDecimal(lDatosFluctuacion.imp_Fac_Sop_Provision);
                    TotalFacturadoMXN         += Convert.ToDecimal(lDatosFluctuacion.facturado_MXN);
                    TotalVariacionMXN         += Convert.ToDecimal(lDatosFluctuacion.variacion_MXN);
                    TotalEfectoOperativo      += Convert.ToDecimal(lDatosFluctuacion.efecto_Operativo);
                    TotalFluctuacionCambiaria += Convert.ToDecimal(lDatosFluctuacion.fluctuacion_Cambiaria);

                    lFila++;
                }
            }

            lFila++;
            worksheet.Cells[("N" + lFila)].Value = "TOTAL";
            worksheet.Cells[("O" + lFila)].Value = TotalImporteProvision;
            worksheet.Cells[("O" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("P" + lFila)].Value = TotalImporteProvisionMXN;
            worksheet.Cells[("P" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("Q" + lFila)].Value = TotalImporteRevaluado;
            worksheet.Cells[("Q" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("R" + lFila)].Value = TotalImporteFacturado;
            worksheet.Cells[("R" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("S" + lFila)].Value = TotalImpFacSopProvision;
            worksheet.Cells[("S" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("T" + lFila)].Value = TotalFacturadoMXN;
            worksheet.Cells[("T" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("U" + lFila)].Value = TotalVariacionMXN;
            worksheet.Cells[("U" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("V" + lFila)].Value = TotalEfectoOperativo;
            worksheet.Cells[("V" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("W" + lFila)].Value = TotalFluctuacionCambiaria;
            worksheet.Cells[("W" + lFila)].Style.Numberformat.Format = "_-$* #,##0.00_-";
            worksheet.Cells[("W" + lFila)].Style.Fill.PatternType    = OfficeOpenXml.Style.ExcelFillStyle.Solid;
            worksheet.Cells[("W" + lFila)].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.Khaki);

            worksheet.Cells["L2:W" + lFila].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
        }
Пример #18
0
        /// <summary>
        /// Inserta en bitacora la modificacion que se ha realizado
        /// </summary>
        /// <param name="objeto">Objeto entity que se modifica</param>
        /// <param name="campoID">Campo id de la tabla que se modifica</param>
        /// <param name="id">Id del registro que se modifica</param>
        /// <param name="pantalla">Pantalla que se modifica</param>
        public void insertaBitacoraModificacion(object objeto, string campoID, int id, string pantalla, string ip)
        {
            Type   tipe  = objeto.GetType();
            string campo = string.Empty;
            string valor = string.Empty;

            PropertyInfo[] listaProperties   = objeto.GetType().GetProperties();
            string         valorActual       = string.Empty;
            bool           existeCambio      = false;
            StringBuilder  valorModificado   = new StringBuilder();
            StringBuilder  valorAnterior     = new StringBuilder();
            string         camposModificados = string.Empty;
            string         nombreTabla       = (tipe.BaseType.Name == "Object" ? tipe.Name : tipe.BaseType.Name);
            string         consulta          = string.Concat("SELECT * FROM ", nombreTabla, " WHERE " + campoID + "=", id.ToString());
            string         usuario           = string.Empty;
            HttpContext    context           = HttpContext.Current;

            if (context.Session["userName"] != null)
            {
                usuario = context.Session["userName"].ToString();
            }
            bool nollave = (tipe.BaseType.Name == "Object" ? true : false);

            using (SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["sqlServer"].ToString()))
            {
                try {
                    con.Open();
                    SqlCommand    comand = new SqlCommand(consulta, con);
                    SqlDataReader reader = comand.ExecuteReader();
                    while (reader.Read())
                    {
                        foreach (PropertyInfo pro in listaProperties)
                        {
                            if (pro.DeclaringType.Name == nombreTabla)
                            {
                                string Nombrecampo = string.Empty;
                                if (pro.Name == "Servicio1")
                                {
                                    Nombrecampo = "Servicio";
                                }
                                else if (pro.Name == "Tarifa1")
                                {
                                    Nombrecampo = "Tarifa";
                                }
                                else if (pro.Name == "Acreedor1")
                                {
                                    Nombrecampo = "Acreedor";
                                }
                                else if (pro.Name == "Usuario1")
                                {
                                    Nombrecampo = "Usuario";
                                }
                                else if (pro.Name == "Concepto1")
                                {
                                    Nombrecampo = "Concepto";
                                }
                                else if (pro.Name == "Grupo1")
                                {
                                    Nombrecampo = "Grupo";
                                }
                                else if (pro.Name == "Moneda1")
                                {
                                    Nombrecampo = "Moneda";
                                }
                                else
                                {
                                    Nombrecampo = pro.Name;
                                }

                                valorActual = (reader[Nombrecampo] != null ? reader[Nombrecampo].ToString() : string.Empty);
                                //valor = pro.GetValue(objeto).ToString();
                                if (!valorActual.Equals((pro.GetValue(objeto) != null ? pro.GetValue(objeto).ToString() : string.Empty)))
                                {
                                    if (camposModificados.Equals(string.Empty))
                                    {
                                        camposModificados = pro.Name;
                                        valorAnterior.Append(valorActual);
                                        valorModificado.Append(pro.GetValue(objeto) != null ? pro.GetValue(objeto).ToString() : string.Empty);
                                    }
                                    else
                                    {
                                        camposModificados += "|" + pro.Name;
                                        valorAnterior.Append("|" + valorActual);
                                        valorModificado.Append("|" + (pro.GetValue(objeto) != null ? pro.GetValue(objeto).ToString() : string.Empty));
                                    }

                                    existeCambio = true;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    throw ex;
                }
            }

            if (existeCambio)
            {
                ICPruebaEntities   db  = new ICPruebaEntities();
                LogActualizaciones reg = new LogActualizaciones();
                reg.NombrePantalla    = pantalla;
                reg.ColumnaModificada = camposModificados;
                reg.Valor_Nuevo       = valorModificado.ToString();
                reg.Valor_Anterior    = valorAnterior.ToString();
                reg.Fecha             = DateTime.Now;
                reg.Direccion_IP      = ip;
                reg.Accion            = "Modificacion";
                reg.Activo            = 1;
                reg.Usuario           = usuario;
                db.LogActualizaciones.Add(reg);
                db.SaveChanges();
            }
        }
        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);
        }
Пример #20
0
        private IList <object> ObtenerElementosRoamingCancelacionCosto()
        {
            IList <object> elementos = new List <object>();

            try
            {
                using (ICPruebaEntities db = new ICPruebaEntities())
                {
                    var JoinQuery =
                        from C in db.RoamingCancelacionCosto
                        join D in db.RoamingDocumentoCosto on C.FolioDocumento equals D.FolioDocumento
                        orderby C.FolioDocumento ascending
                        select new
                    {
                        C.BanderaConcepto,
                        C.NumeroProvision,
                        C.CuentaContable,
                        C.Indat,
                        C.Concepto,
                        C.Grupo,
                        C.Acreedor,
                        C.MontoProvision,
                        C.Moneda,
                        C.Periodo,
                        C.Tipo,
                        C.NumeroDocumentoSap,
                        C.FolioDocumento,
                        C.TipoCambioProvision,
                        C.ImporteMxn,
                        C.ImporteFactura,
                        C.DiferenciaProvisionFactura,
                        C.TipoCambioFactura,
                        C.ExcesoProvisionMxn,
                        C.InsuficienciaProvisionMxn,
                        D.FechaConsumo,
                        D.TipoCambio,
                        D.MontoFacturado
                    };

                    string MontoFacturado = "", FechaConsumo = "", TipoCambio = "";


                    foreach (var elemento in JoinQuery)
                    {
                        if (elemento.ImporteFactura == "")
                        {
                            MontoFacturado = elemento.MontoFacturado;
                            FechaConsumo   = elemento.FechaConsumo;
                            TipoCambio     = elemento.TipoCambio;
                        }

                        elementos.Add(new RoamingCancelacionCostoView
                        {
                            BanderaConcepto            = elemento.BanderaConcepto,
                            NumeroProvision            = elemento.NumeroProvision,
                            CuentaContable             = elemento.CuentaContable,
                            Indat                      = elemento.Indat,
                            Concepto                   = elemento.Concepto,
                            Grupo                      = elemento.Grupo,
                            Acreedor                   = elemento.Acreedor,
                            MontoProvision             = elemento.MontoProvision,
                            Moneda                     = elemento.Moneda,
                            Periodo                    = elemento.Periodo,
                            Tipo                       = elemento.Tipo,
                            NumeroDocumentoSap         = elemento.NumeroDocumentoSap,
                            FolioDocumento             = elemento.FolioDocumento,
                            TipoCambioProvision        = elemento.TipoCambioProvision,
                            ImporteMxn                 = elemento.ImporteMxn,
                            ImporteFactura             = elemento.ImporteFactura,
                            DiferenciaProvisionFactura = elemento.DiferenciaProvisionFactura,
                            TipoCambioFactura          = elemento.TipoCambioFactura,
                            ExcesoProvisionMxn         = elemento.ExcesoProvisionMxn,
                            InsuficienciaProvisionMxn  = elemento.InsuficienciaProvisionMxn,
                            FechaConsumo               = elemento.FechaConsumo,
                            TipoCambio                 = elemento.TipoCambio,
                            MontoFacturado             = elemento.MontoFacturado
                        });
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(elementos);
        }
Пример #21
0
        public List <DatosTraficoLDI> ValidaAsignaDatos(List <DatosTraficoLDI> lista, List <Claves> listaIDs, string[] arrOperador, string[] arrMoneda, string[] arrTrafico, List <Errores> listaErroneos)
        {
            int contador = 0, numeroLinea = 1;

            //  List<DatosTraficoLDI> lista = new List<DatosTraficoLDI>();
            try {
                using (ICPruebaEntities data = new ICPruebaEntities()) {
                    foreach (var elemento in lista)
                    {
                        if (listaIDs.Exists(x => x.texto == arrOperador[contador]))
                        {
                            elemento.Billing_Operator = listaIDs.Where(x => x.texto == arrOperador[contador]).FirstOrDefault().clave;
                        }
                        else
                        {
                            listaErroneos.Add(new Errores
                            {
                                numeroLinea = numeroLinea,
                                motivo      = "No existe el Operador: " + arrOperador[contador]
                            });

                            elemento.Billing_Operator = 0;
                            goto existe;
                        }
                        if (listaIDs.Exists(x => x.texto == arrMoneda[contador]))
                        {
                            elemento.id_moneda = listaIDs.Where(x => x.texto == arrMoneda[contador]).FirstOrDefault().clave;
                        }
                        else
                        {
                            listaErroneos.Add(new Errores
                            {
                                numeroLinea = numeroLinea,
                                motivo      = "No existe la Moneda: " + arrMoneda[contador]
                            });

                            elemento.id_moneda = 0;
                            goto existe;
                        }
                        if (listaIDs.Exists(x => x.texto == arrTrafico[contador]))
                        {
                            elemento.id_trafico = listaIDs.Where(x => x.texto == arrTrafico[contador]).FirstOrDefault().clave;
                        }
                        else
                        {
                            listaErroneos.Add(new Errores
                            {
                                numeroLinea = numeroLinea,
                                motivo      = "No existe el Tráfico: " + arrTrafico[contador]
                            });
                            elemento.id_trafico = 0;
                            goto existe;
                        }
existe:
                        contador++;
                        numeroLinea++;
                    }
                }
            } catch (Exception) {
            }
            return(lista);
        }
        public static List <object> ObtenerDatosSAP()
        {
            ICPruebaEntities db       = new ICPruebaEntities();
            List <object>    listaSAP = new List <object>();
            //DatosPolizasSAP objDatosPoliza = new DatosPolizasSAP();
            string rutaSAP            = string.Empty;
            string RutaArchivo        = string.Empty;
            string DescripcionMensaje = string.Empty;
            string NumeroPoliza       = string.Empty;
            string NombreArchivo      = string.Empty;
            string Sentido            = string.Empty;
            string SentidoSAP         = string.Empty;
            string descripcion        = string.Empty;

            //string[] DatosArchivoPoliza;
            string[] Letras;
            string   Poliza1       = string.Empty;
            string   Estado        = string.Empty;
            string   Enviado       = string.Empty;
            string   Rechazado     = string.Empty;
            string   Reprocesado   = string.Empty;
            int      TotalArchivos = 0;
            string   FechaCreacion = string.Empty;
            string   NombrePoliza  = string.Empty;

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

            //Obtenemos ruta configurable de base de datos
            var ruta = from datos in db.parametrosCargaDocumento
                       where datos.idDocumento == "SAP"
                       select new
            {
                datos.pathURL
            };

            foreach (var item in ruta)
            {
                rutaSAP = item.pathURL;
            }

            //Validamos que existe la ruta
            if (Directory.Exists(rutaSAP) == false)
            {
                Directory.CreateDirectory(rutaSAP);
            }
            else
            {
                //Buscamos dentro de la carpeta los Archivos
                string[] Archivos = Directory.GetFiles(rutaSAP, "*.csv");
                TotalArchivos = Archivos.Length;

                //Validamos que si alla archivos
                if (TotalArchivos != 0)
                {
                    //DatosArchivoPoliza = NombreArchivoPoliza.Split('_');
                    //Poliza1 = DatosArchivoPoliza[0].ToString();
                    //SentidoPoliza = DatosArchivoPoliza[1].ToString();

                    //Recorremos uno por uno, para obtener nombre del archivo y el contenido
                    foreach (var file in Archivos)
                    {
                        //Obtenemos ruta del archivo
                        RutaArchivo = file;
                        //Obtenemos nombre del archivo
                        NombreArchivo = Path.GetFileName(RutaArchivo);
                        FechaCreacion = System.IO.File.GetCreationTime(RutaArchivo).ToString("yyyy/MM/dd");

                        //Sacamos informacion del nombre del archivo
                        Letras       = NombreArchivo.Split('_');
                        NumeroPoliza = Letras[0].ToString();
                        SentidoSAP   = Letras[2].ToString();
                        if (SentidoSAP == "S1")
                        {
                            Sentido = "INGRESO";
                        }
                        if (SentidoSAP == "S3")
                        {
                            Sentido = "COSTO";
                        }
                        if (SentidoSAP == "SA")
                        {
                            Sentido = "FLUCTUACION";
                        }
                        //Validamos

                        //Se buscan archivos respuesta de SAP
                        if (RutaArchivo.Contains(NumeroPoliza + "_EXITO_" + SentidoSAP) || RutaArchivo.Contains(NumeroPoliza + "_ERROR_" + SentidoSAP))
                        {
                            //Validamosn estatus  Estado
                            if (Letras[1].ToString() == "EXITO")
                            {
                                Estado = "Exitoso"; Enviado = "True";
                            }

                            if (Letras[1].ToString() == "ERROR")
                            {
                                Estado = "Rechazado"; Enviado = "False";
                            }

                            //Validamos Rechazado
                            //Erro = Rechazado
                            //Exito  = Exitoso
                            if (Letras[1].ToString() == "Exito")
                            {
                                Rechazado = "False";
                            }
                            else
                            {
                                Rechazado = "True";
                            }
                            Reprocesado = "False";

                            //Obtenemos contenido del archivo
                            GC.Collect();
                            StreamReader sr = new StreamReader(RutaArchivo);
                            DescripcionMensaje = sr.ReadToEnd();
                            string[] des = DescripcionMensaje.Split('\n');
                            foreach (var item in des)
                            {
                                if (item != "")
                                {
                                    string[] campo = item.Split(',', '\t');
                                    descripcion += campo[4].ToString() + " ";
                                }
                            }
                            sr.Close();

                            var Nombre = from P in db.Polizas
                                         where P.Sentido == Sentido &&
                                         P.Poliza == NumeroPoliza
                                         select new { P.Poliza, P.Sentido, P.Estado, P.Nombre, P.DescripcionMensaje };
                            foreach (var item in Nombre)
                            {
                                NombrePoliza = item.Nombre;
                            }
                            //Atualizamos datos Respuesta SAP
                            int a = db.usp_InsertarDatosPolizaSAP(0, Sentido, Estado, true, NombrePoliza, NumeroPoliza, descripcion, Rechazado, Reprocesado, NumeroPoliza, true);
                            descripcion = "";
                        }
                    }
                    //Si esta rechazado enviamos SMS
                    var Rechazo = (from P in db.Polizas
                                   where P.Estado == "Rechazado"
                                   select P).Count();
                    if (Rechazo > 0)
                    {
                        //Se genera Archivo LOG
                        ReporteRechazoSAP();

                        //GenerarPolizas.EnviarSMS("5517628128", "Mensaje Polizas Rechazadas", @"C:\RepositoriosDocs\SMS\envia_sms.bat");
                        //GenerarPolizas.EnviarSMS("", "Mensaje Polizas Rechazadas", "");//XCV
                    }
                }
            }

            return(listaSAP);
        }
        public static void HojaPxQSMS(ref ExcelWorksheet worksheet, DateTime periodo, bool blnTabla, ICPruebaEntities db)
        {
            int fila      = 9;
            int increment = 0;

            char[] index = { 'A', 'B', 'C', 'D', 'E', 'G', 'H', 'I', 'J', 'K' };
            var    mes   = periodo.ToString("MMMM", new CultureInfo("es-ES"));

            mes = char.ToUpper(mes[0]) + mes.Substring(1);
            worksheet.Cells["A5"].Value = mes;
            worksheet.Cells["A5"].Style.Font.Color.SetColor(Color.Red);

            decimal tipo_cambio = 0;

            List <PXQSMSLDI> lista = new List <PXQSMSLDI>();

            if (blnTabla)
            {
                lista       = db.PXQSMSLDI.Where(x => x.periodo.Month == periodo.Month && x.periodo.Year == periodo.Year && x.lineaNegocio == 2).ToList();
                tipo_cambio = (decimal)db.PXQSMSLDI.Where(x => x.periodo.Year == periodo.Year && x.periodo.Month == (periodo.Month)).Select(x => x.tipoCambio).FirstOrDefault();
            }
            else
            {
                List <GAPXQSMSLDI> consultaGCI = db.GAPXQSMSLDI.Where(x => x.periodo.Month == periodo.Month && x.periodo.Year == periodo.Year && x.lineaNegocio == 2).ToList();
                lista = consultaGCI.Select(x => new PXQSMSLDI()
                {
                    trafico    = x.trafico,
                    movimiento = x.movimiento,
                    eventos    = x.eventos,
                    tarifa     = x.tarifa,
                    USD        = x.USD,
                    MXN        = x.MXN
                }).ToList();
                tipo_cambio = (decimal)db.GAPXQSMSLDI.Where(x => x.periodo.Year == periodo.Year && x.periodo.Month == (periodo.Month)).Select(x => x.tipoCambio).FirstOrDefault();
            }
            worksheet.Cells["E1"].Value = tipo_cambio;
            worksheet.Cells["E1"].Style.Numberformat.Format = "_-$* #,##0.0000_-";
            foreach (PXQSMSLDI row in lista)
            {
                worksheet.Cells[(index[0 + increment] + "" + fila)].Value = row.trafico;

                worksheet.Cells[(index[1 + increment] + "" + fila)].Value = row.eventos;
                worksheet.Cells[(index[1 + increment] + "" + fila)].Style.Numberformat.Format = "#,##0_-";

                worksheet.Cells[(index[2 + increment] + "" + fila)].Value = row.tarifa;
                worksheet.Cells[(index[2 + increment] + "" + fila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";

                worksheet.Cells[(index[3 + increment] + "" + fila)].Value = row.USD;
                worksheet.Cells[(index[3 + increment] + "" + fila)].Style.Numberformat.Format = "_-$* #,##0.00_-";

                worksheet.Cells[(index[4 + increment] + "" + fila)].Value = row.MXN;
                worksheet.Cells[(index[4 + increment] + "" + fila)].Style.Numberformat.Format = "_-$* #,##0.00_-";

                if (row.trafico == "TOTAL")
                {
                    worksheet.Cells[(index[4 + increment] + "" + fila)].Style.Fill.PatternType = ExcelFillStyle.Solid;
                    worksheet.Cells[(index[4 + increment] + "" + fila)].Style.Fill.BackgroundColor.SetColor(Color.Khaki);
                    fila      = 9;
                    increment = 5;
                }
                else
                {
                    fila++;
                }
            }
        }
        public static void HojaPxQCostos(ref ExcelWorksheet worksheet, DateTime periodo, bool blnTabla, ICPruebaEntities db)
        {
            int fila = 5;
            var mes  = periodo.ToString("MMMM", new CultureInfo("es-ES"));

            mes = char.ToUpper(mes[0]) + mes.Substring(1);
            worksheet.Cells["D1"].Value = mes;
            worksheet.Cells["D1"].Style.Font.Color.SetColor(Color.Red);

            List <PXQCostosLDI> lista = new List <PXQCostosLDI>();

            if (blnTabla)
            {
                lista = db.PXQCostosLDI.Where(x => x.periodo.Month == periodo.Month && x.periodo.Year == periodo.Year && x.lineaNegocio == 2).ToList();
            }
            else
            {
                List <GAPXQCostosLDI> consultaGCI = db.GAPXQCostosLDI.Where(x => x.periodo.Month == periodo.Month && x.periodo.Year == periodo.Year && x.lineaNegocio == 2).ToList();
                lista = consultaGCI.Select(x => new PXQCostosLDI()
                {
                    Id         = x.Id,
                    moneda     = x.moneda,
                    grupo      = x.grupo,
                    trafico    = x.trafico,
                    minuto     = x.minuto,
                    tarifa     = x.tarifa,
                    USD        = x.USD,
                    pesos      = x.pesos,
                    tipoCambio = x.tipoCambio
                }).ToList();
            }
            decimal tipo_cambio = Convert.ToDecimal(lista[0].tipoCambio);

            worksheet.Cells["H1"].Value = tipo_cambio;
            worksheet.Cells["H1"].Style.Numberformat.Format = "_-$* #,##0.0000_-";

            foreach (PXQCostosLDI row in lista)
            {
                if (row.grupo != "TOTAL GENERAL")
                {
                    worksheet.Cells[("A" + fila)].Value = mes + " " + periodo.Year;
                }
                worksheet.Cells[("B" + fila)].Value = row.moneda;
                worksheet.Cells[("C" + fila)].Value = row.grupo;
                worksheet.Cells[("D" + fila)].Value = row.trafico;

                worksheet.Cells[("E" + fila)].Value = row.minuto;
                worksheet.Cells[("E" + fila)].Style.Numberformat.Format = "#,##0.00_-";

                worksheet.Cells[("F" + fila)].Value = row.tarifa;
                worksheet.Cells[("F" + fila)].Style.Numberformat.Format = "_-$* #,##0.0000_-";

                worksheet.Cells[("G" + fila)].Value = row.USD;
                worksheet.Cells[("G" + fila)].Style.Numberformat.Format = "_-$* #,##0.00_-";

                worksheet.Cells[("H" + fila)].Value = row.pesos;
                worksheet.Cells[("H" + fila)].Style.Numberformat.Format = "_-$* #,##0.00_-";

                if (row.trafico == "TOTAL")
                {
                    worksheet.Cells["E" + fila + ":H" + fila].Style.Fill.PatternType = ExcelFillStyle.Solid;
                    worksheet.Cells["E" + fila + ":H" + fila].Style.Fill.BackgroundColor.SetColor(Color.Khaki);

                    fila++;
                }
                fila++;
            }
        }
        public static string[] RutasArchivosConfigurables()
        {
            ICPruebaEntities db = new ICPruebaEntities();

            string rutaArchivoIngreso     = string.Empty;
            string rutaArchivoCostos      = string.Empty;
            string rutaArchivoFluctuacion = string.Empty;
            //Obtenemos ruta configurable Ingresos  de base de datos
            var rutaIngresos = from datos in db.parametrosCargaDocumento
                               where datos.idDocumento == "POLIZAING"
                               select new
            {
                datos.pathURL
            };

            foreach (var item in rutaIngresos)
            {
                rutaArchivoIngreso = item.pathURL;
            }
            //Validamos que existe la ruta
            if (Directory.Exists(rutaArchivoIngreso) == false)
            {
                Directory.CreateDirectory(rutaArchivoIngreso);
            }
            //Obtenemos ruta configurable Costos  de base de datos
            var rutaCostos = from datos in db.parametrosCargaDocumento
                             where datos.idDocumento == "POLIZACOS"
                             select new
            {
                datos.pathURL
            };

            foreach (var item in rutaCostos)
            {
                rutaArchivoCostos = item.pathURL;
            }
            //Validamos que existe la ruta
            if (Directory.Exists(rutaArchivoCostos) == false)
            {
                Directory.CreateDirectory(rutaArchivoCostos);
            }
            //Obtenemos ruta configurable Fluctuacion  de base de datos
            var rutaFluctuacion = from datos in db.parametrosCargaDocumento
                                  where datos.idDocumento == "POLIZAFLUC"
                                  select new
            {
                datos.pathURL
            };

            foreach (var item in rutaFluctuacion)
            {
                rutaArchivoFluctuacion = item.pathURL;
            }
            //Validamos que existe la ruta
            if (Directory.Exists(rutaArchivoFluctuacion) == false)
            {
                Directory.CreateDirectory(rutaArchivoFluctuacion);
            }

            string[] Rutas = { rutaArchivoIngreso, rutaArchivoCostos, rutaArchivoFluctuacion };
            return(Rutas);
        }