예제 #1
0
        public JsonResult LlenaFecha(int lineaNegocio)
        {
            List <object>  lista     = new List <object>();
            CargaDocumento oCarga    = new CargaDocumento();
            object         respuesta = null;

            try {
                var fechas = (from oFecha in db.CargaDocumento
                              where oFecha.Id_LineaNegocio == lineaNegocio &&
                              oFecha.EstatusCarga == "PC"
                              orderby oFecha.Periodo
                              select new
                {
                    oFecha.Id,
                    oFecha.Periodo
                }).Take(1);

                foreach (var elemento in fechas)
                {
                    lista.Add(new
                    {
                        elemento.Id,
                        Periodo = DateTime.ParseExact(elemento.Periodo, "yyyy/MM", null).ToString("yyyy MMMM", new CultureInfo("es-ES")).ToUpper()
                    });
                }
                respuesta = new { success = true, results = lista };
            } catch (Exception e) {
                respuesta = new { success = false, results = e.Message };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public JsonResult llenaFecha(int lineaNegocio)
        {
            //int total;
            List <object>  lista     = new List <object>();
            CargaDocumento oCarga    = new CargaDocumento();
            object         respuesta = null;

            try {
                var fechas = from oFecha in db.CargaDocumento

                             where oFecha.Id_LineaNegocio == lineaNegocio

                             && oFecha.EstatusCarga == "CC"
                             orderby oFecha.Periodo
                             select new
                {
                    oFecha.Id,
                    oFecha.Periodo
                };

                respuesta = new { success = true, results = fechas.ToList() };
            } catch (Exception e) {
                respuesta = new { success = false, results = e.Message };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
예제 #3
0
        public void InsertCargaDocumento(CargaDocumento carga, DateTime fecha)
        {
            String mes     = "00" + fecha.AddMonths(1).Month.ToString();
            var    datosCD = new CargaDocumento
            {
                //Id_Documento
                Id_Documento    = carga.Id_Documento,
                Periodo         = fecha.AddMonths(1).Year + "/" + mes.Substring(mes.Length - 2),
                EstatusCarga    = "PC",
                Id_LineaNegocio = carga.Id_LineaNegocio
            };

            db.CargaDocumento.Add(datosCD);
        }
예제 #4
0
        public JsonResult LlenaFecha(int lineaNegocio)
        {
            CargaDocumento oCarga = new CargaDocumento();
            object         respuesta = null;
            int            i = 1;
            string         p = "p", q = "q";

            try {
                var fechas = (from oFecha in db.cargaDocumentoRoaming
                              where oFecha.estatusCarga == "PC"
                              orderby oFecha.periodoCarga
                              select new
                {
                    oFecha.Id,
                    oFecha.periodoCarga,
                    oFecha.tipoCarga,
                    oFecha.ordenCarga,
                    Periodo = oFecha.periodoCarga + " - " + oFecha.tipoCarga + " " + oFecha.ordenCarga
                });

                foreach (var a in fechas)
                {
                    if (i == 1)
                    {
                        p = a.ordenCarga;
                    }
                    else if (i == 2)
                    {
                        q = a.ordenCarga;
                        break;
                    }
                    ++i;
                }

                if (p != q)
                {
                    fechas = fechas.Take(1);
                }
                else
                {
                    fechas = fechas.Take(2);
                }

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

            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
        public object CargaDatosMVNO(string Periodo)
        {
            string ruta = "", nombreArchivo = "", exception = "Error al cargar el archivo.";
            char   separador;
            bool   exitoso     = false;
            int    Id          = 0;
            int    i           = 0;
            int?   numeroCarga = db.DatosTraficoMVNO.Max(x => x.NumeroCarga);

            if (numeroCarga == null)
            {
                numeroCarga = 1;
            }
            string   periodo = DateTime.ParseExact(Periodo.ToUpper(), "yyyy MMMM", new CultureInfo("es-ES")).ToString("yyyy/MM");
            string   f       = DateTime.ParseExact(periodo, "yyyy/MM", new CultureInfo("es-ES")).ToString("dd/MM/yyyy");
            DateTime fecha   = Convert.ToDateTime(periodo);

            object respuesta = null;

            using (TransactionScope transaction = new TransactionScope()) {
                try {
                    var traficoMVNO = from archivo in db.CargaDocumento
                                      join parametro in db.parametrosCargaDocumento
                                      on archivo.Id_Documento equals parametro.idDocumento
                                      where archivo.Periodo == periodo &&
                                      archivo.EstatusCarga == "PC" &&
                                      archivo.Id_LineaNegocio == 3
                                      select new
                    {
                        parametro.pathURL,
                        parametro.nombreArchivo,
                        archivo.Periodo,
                        archivo.Id,
                        archivo.EstatusCarga,
                        parametro.caracterSeparador
                    };
                    nombreArchivo = traficoMVNO.SingleOrDefault().nombreArchivo.Replace("YYYYMM", traficoMVNO.SingleOrDefault().Periodo.Replace("/", ""));
                    ruta          = traficoMVNO.SingleOrDefault().pathURL + nombreArchivo;
                    Id            = traficoMVNO.SingleOrDefault().Id;
                    separador     = Convert.ToChar(traficoMVNO.SingleOrDefault().caracterSeparador);
                    string[] lineas = System.IO.File.ReadAllLines(ruta);
                    if (lineas.Count() > 0)
                    {
                        for (i = 0; i < lineas.Count(); i++)
                        {
                            if (lineas[i].Contains("Collection") || lineas[i] == "")
                            {
                                continue;
                            }

                            var linea      = lineas[i].Split(separador);
                            var datosMVNOS = new DatosTraficoMVNO
                            {
                                //ID carga
                                Id_Carga = Id,
                                //Collection
                                Collection = ValidaCampo(linea[0], "Collection"),
                                //HOperator
                                HOperator = ValidaCampo(linea[1], "HOperator"),
                                //Operator
                                Operator = ValidaCampo(linea[2], "Operator"),
                                //ReferenceCode
                                ReferenceCode = ValidaCampo(linea[3], "ReferenceCode"),
                                //TransDate
                                TransDate = Convert.ToDateTime(ValidaCampo(linea[4], "TransDate")),
                                //Eventos
                                Eventos = decimal.Parse(ValidaCampo(linea[5], "Eventos")),
                                //IdCollectionServicioRegion
                                IdColleccionServicioRegion = ValidaCampo(linea[6], "IdCollectionServicioRegion"),
                                //Service
                                Service = ValidaCampo(linea[7], "Service"),
                                //Real
                                Real = decimal.Parse(ValidaCampo(linea[8], "Real")),
                                //Duration
                                Duration = decimal.Parse(ValidaCampo(linea[9], "Duration")),
                                //Monto
                                Monto = decimal.Parse(linea[10]),
                                //PrecioUnitario
                                PrecioUnitario = decimal.Parse(linea[11]),
                                //Moneda
                                Moneda = ValidaCampo(linea[12], "Moneda"),
                                //Module
                                Module = ValidaCampo(linea[13], "Module"),
                                //Numero carga
                                NumeroCarga = numeroCarga
                            };
                            db.DatosTraficoMVNO.Add(datosMVNOS);
                            Log log2 = new Log();
                            log2.insertaNuevoOEliminado(datosMVNOS, "Nuevo", "DatosTraficoMVNO.html", Request.UserHostAddress);
                            db.SaveChanges();
                        }
                        CargaDocumento cargaDocumento = db.CargaDocumento.Where(x => x.Id == Id).SingleOrDefault();
                        cargaDocumento.EstatusCarga = "CC";
                        cargaDocumento.FechaCarga   = DateTime.Now;

                        InsertCargaDocumento(cargaDocumento, fecha);

                        //Log log3 = new Log();
                        //log3.insertaBitacoraModificacion(cargaDocumento, "Id", cargaDocumento.Id, "CargaDocumento.html", Request.UserHostAddress);

                        db.SaveChanges();
                    }
                    transaction.Complete();
                    exitoso = true;
                } catch (FileNotFoundException) {
                    exception = "El archivo no se encuentra en el directorio especificado.";
                } catch (UnauthorizedAccessException) {
                    exception = "No tiene permiso para acceder al archivo actual.";
                } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32)
                {
                    exception = "Falta el nombre del archivo, o el archivo o directorio está en uso.";
                } catch (TransactionAbortedException) {
                    exception = "Transacción abortada. Se presentó un error." + " Línea: " + i;
                } catch (FormatException) {
                    exception = "Error en la conversión de datos." + " Línea: " + i;
                } finally {
                    if (exitoso)
                    {
                        db.SaveChanges();
                        respuesta = new { success = true, results = "ok" };
                    }
                    else
                    {
                        respuesta = new { success = false, results = exception };
                    }
                }
            }
            db.Dispose();

            return(respuesta);
        }
예제 #6
0
        public object CargaDatosLDI(string Periodo, int lineaNegocio)
        {
            string ruta = "", nombreArchivo = "", exception = "Error al cargar el archivo";
            object respuesta = null;
            char   separador;
            bool   exitoso = false;
            int    Id = 0, numeroDeLinea = 0, contador = 0;

            string[] lineas = null;
            string   operadores = "", monedas = "", trafico = "";

            string[] arreglo      = null;
            string   periodo      = DateTime.ParseExact(Periodo.ToUpper(), "yyyy MMMM", new CultureInfo("es-ES")).ToString("yyyy/MM");
            DateTime fechaPeriodo = Convert.ToDateTime(periodo);

            List <Claves>          listaIDS             = new List <Claves>();
            List <Errores>         listaErrores         = new List <Errores>();
            List <DatosTraficoLDI> listaTrafico         = new List <DatosTraficoLDI>();
            List <DatosTraficoLDI> listaTraficoCompleta = new List <DatosTraficoLDI>();

            int?numeroCarga = db.DatosTraficoLDI.Max(x => x.NumeroCarga);

            if (numeroCarga == null)
            {
                numeroCarga = 1;
            }
            else
            {
                numeroCarga = numeroCarga + 1;
            }
            List <object> lista = new List <object>();

            using (TransactionScope transaction = new TransactionScope()) {
                try {
                    var traficoLDI = from archivo in db.CargaDocumento
                                     join parametro in db.parametrosCargaDocumento
                                     on archivo.Id_Documento equals parametro.idDocumento
                                     where archivo.Periodo == periodo &&
                                     archivo.EstatusCarga == "PC" &&
                                     archivo.Id_LineaNegocio == 2
                                     select new
                    {
                        parametro.pathURL,
                        parametro.nombreArchivo,
                        archivo.Periodo,
                        archivo.Id,
                        archivo.EstatusCarga,
                        parametro.caracterSeparador
                    };

                    nombreArchivo = traficoLDI.SingleOrDefault().nombreArchivo.Replace("YYYYMM", traficoLDI.SingleOrDefault().Periodo.Replace("/", ""));
                    ruta          = traficoLDI.SingleOrDefault().pathURL + nombreArchivo;
                    Id            = traficoLDI.SingleOrDefault().Id;
                    separador     = Convert.ToChar(traficoLDI.SingleOrDefault().caracterSeparador);

                    lineas = System.IO.File.ReadAllLines(ruta, Encoding.Default).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray();

                    string[] arrOperador = new string[lineas.Count()];
                    string[] arrMoneda   = new string[lineas.Count()];
                    string[] arrTrafico  = new string[lineas.Count()];

                    foreach (string linea in lineas)
                    {
                        if (numeroDeLinea > 0)
                        {
                            arreglo = linea.Split(',');
                            if (ValidaLinea(arreglo))
                            {
                                operadores = operadores + arreglo[4] + ",";
                                monedas    = monedas + arreglo[10] + ",";
                                trafico    = trafico + arreglo[13] + ",";

                                arrOperador[contador] = arreglo[4];
                                arrMoneda[contador]   = arreglo[10];
                                arrTrafico[contador]  = arreglo[13];


                                listaTrafico.Add(new DatosTraficoLDI
                                {
                                    Id_Carga         = Id,
                                    Franchise        = arreglo[0],
                                    Direccion        = arreglo[1],
                                    Billed_Product   = arreglo[2],
                                    Rating_Component = arreglo[3],
                                    Unit_Cost_User   = decimal.Parse(arreglo[5]),
                                    Month            = DateTime.ParseExact(arreglo[6], "dd/MM/yyyy", new CultureInfo("es-ES")),
                                    Calls            = decimal.Parse(arreglo[7]),
                                    Actual_Usage     = decimal.Parse(arreglo[8]),
                                    Charge_Usage     = decimal.Parse(arreglo[9]),
                                    Amount           = decimal.Parse(arreglo[11]),
                                    Iva            = decimal.Parse(arreglo[12]),
                                    Sobrecargo     = decimal.Parse(arreglo[14]),
                                    NumeroCarga    = numeroCarga,
                                    fecha_contable = fechaPeriodo.Date
                                });
                                //Código temporal
                                contador++;
                            }
                            else
                            {
                                listaErrores.Add(new Errores
                                {
                                    numeroLinea = numeroDeLinea,
                                    motivo      = "Número de campos insuficiente."
                                });
                            }
                        }
                        numeroDeLinea++;
                    }
                    //Obtener ID's correspondientes
                    listaIDS = BuscaId(listaTrafico, trafico, operadores, monedas, lineaNegocio);
                    //Asigna los Id a los elementos de la lista
                    listaTrafico         = ValidaAsignaDatos(listaTrafico, listaIDS, arrOperador, arrMoneda, arrTrafico, listaErrores);
                    listaTraficoCompleta = listaTrafico;
                    if (listaTraficoCompleta.Count() > 0)
                    {
                        DbContext context = db;
                        IC2.DbContextSqlServerExtensions.BulkInsert(context, listaTraficoCompleta, true, "DatosTraficoLDI");
                    }

                    InsertDataTrafico(fechaPeriodo);

                    CargaDocumento cargaDocumento = db.CargaDocumento.Where(x => x.Id == Id).SingleOrDefault();
                    cargaDocumento.EstatusCarga = "CC";
                    cargaDocumento.FechaCarga   = DateTime.Now;
                    InsertCargaDocumento(cargaDocumento, fechaPeriodo);
                    transaction.Complete();
                    exitoso = true;
                } catch (FileNotFoundException) {
                    exception = "El archivo no se encuentra en el directorio especificado.";
                } catch (UnauthorizedAccessException) {
                    exception = "No tiene permiso para acceder al archivo actual.";
                } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32)
                {
                    exception = "Falta el nombre del archivo, o el archivo o directorio está en uso.";
                } catch (TransactionAbortedException) {
                    exception = "Transacción abortada. Se presentó un error." + " Línea: " + contador;
                } catch (FormatException) {
                    exception = "Error en la conversión de datos." + " Línea: " + contador;
                } finally {
                    if (exitoso)
                    {
                        respuesta = new { success = true, results = "ok" };
                    }
                    else
                    {
                        respuesta = new { success = false, results = exception };
                    }
                }
            }
            db.SaveChanges();
            db.Dispose();
            return(respuesta);
        }