protected override T LeerRenglon <T>(string[] arreglo, int filaActual)
        {
            int?operadorId = operadores.FirstOrDefault(a => arreglo.Count() > 0 && arreglo[posIni + 1] == a.Id_Operador)?.Id;

            if (operadorId == null)
            {
                ListaErrores.Add($"Línea {filaActual}: Operador {arreglo[posIni + 1]} no encontrado");
            }

            TarifaRoaming obj = new TarifaRoaming
            {
                Sentido         = arreglo[posIni] == "IB" ? "INGRESO" : "COSTO",
                Direccion       = arreglo[posIni],
                Code            = operadorId,
                Id_Operador     = operadorId,
                FechaInicio     = DateTime.ParseExact(arreglo[posIni + 3], "dd/MM/yyyy", CultureInfo.InvariantCulture),
                FechaFin        = DateTime.ParseExact(arreglo[posIni + 4], "dd/MM/yyyy", CultureInfo.InvariantCulture),
                ToData          = (arreglo[posIni + 5] != "Gross") ? ConvertToDecimal(arreglo[posIni + 5]) : -1,
                ToSMSMo         = (arreglo[posIni + 6] != "Gross") ? ConvertToDecimal(arreglo[posIni + 6]) : -1,
                ToVoiceMo       = (arreglo[posIni + 7] != "Gross") ? ConvertToDecimal(arreglo[posIni + 7]) : -1,
                ToVoiceMt       = (arreglo[posIni + 8] != "Gross") ? ConvertToDecimal(arreglo[posIni + 8]) : -1,
                iva             = ConvertToDecimal(arreglo[posIni + 9]),
                Tipo            = esRecalculo?"RECALCULO":"ORIGEN",
                Id_LineaNegocio = 1,
                Activo          = 1
            };

            obj.TfData    = (obj.ToData != -1) ? obj.ToData - (obj.ToData * obj.iva) : -1;
            obj.TfVoiceMo = (obj.ToVoiceMo != -1) ? obj.ToVoiceMo - (obj.ToVoiceMo * obj.iva) : -1;
            obj.TfVoiceMt = (obj.ToVoiceMt != -1) ? obj.ToVoiceMt - (obj.ToVoiceMt * obj.iva) : -1;
            obj.TfSMSMo   = (obj.ToSMSMo != -1) ? obj.ToSMSMo - (obj.ToSMSMo * obj.iva) : -1;

            return(obj as T);
        }
        public JsonResult buscar(int Id)
        {
            object respuesta = null;

            try {
                TarifaRoaming tarifa = db.TarifaRoaming.Where(x => x.Id == Id && x.Activo == 1).SingleOrDefault();
                respuesta = new { success = true, results = tarifa };
            } catch (Exception ex) {
                respuesta = new { success = false, results = ex.Message };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
        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);
        }
        public JsonResult borrar(string strID)
        {
            int Id = 0;

            strID = strID.TrimEnd(',');
            object respuesta;
            string strmsg   = "ok";
            string strSalto = "</br>";
            bool   blsucc   = true;

            try {
                string[] Ids = strID.Split(',');

                for (int i = 0; i < Ids.Length; i++)
                {
                    if (Ids[i].Length != 0)
                    {
                        Id = int.Parse(Ids[i]);

                        string strresp_val = funGralCtrl.ValidaRelacion("TarifaRoaming", Id);

                        if (strresp_val.Length == 0)
                        {
                            TarifaRoaming oTarifa = db.TarifaRoaming.Where(x => x.Id == Id).SingleOrDefault();
                            oTarifa.Activo = 0;
                            Log log = new Log();
                            log.insertaNuevoOEliminado(oTarifa, "Eliminado", "TarifaRoaming.html", Request.UserHostAddress);

                            db.SaveChanges();
                        }
                        else
                        {
                            strmsg = "El(Los) " + Ids.Length.ToString() + " registro(s) que quieres borrar se está(n) usando en el(los) catálogo(s) " + strSalto;
                            strmsg = strmsg + strresp_val + strSalto;
                            blsucc = false;
                            break;
                        }
                    }
                }
                respuesta = new { success = blsucc, results = strmsg };
            } catch (Exception ex) {
                strmsg    = ex.Message;
                respuesta = new { success = false, result = strmsg };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
        public JsonResult agregar(string Sentido, string Direccion, int Grupo, int Operador, DateTime FechaInicio, DateTime FechaFin, decimal TODATA, decimal TOSMSMO, decimal TOVoiceMO, decimal TOVoiceMT, decimal TFDATA, decimal TFSMSMO, decimal TFVoiceMO, decimal TFVoiceMT, int lineaNegocio)
        {
            object respuesta = null;

            try {
                if (FechaInicio < FechaFin)
                {
                    var nuevo = new TarifaRoaming();
                    nuevo.Sentido         = Sentido;
                    nuevo.Direccion       = Direccion;
                    nuevo.Code            = Grupo;
                    nuevo.Id_Operador     = Operador;
                    nuevo.FechaInicio     = FechaInicio;
                    nuevo.FechaFin        = FechaFin;
                    nuevo.ToData          = TODATA;
                    nuevo.ToSMSMo         = TOSMSMO;
                    nuevo.ToVoiceMo       = TOVoiceMO;
                    nuevo.ToVoiceMt       = TOVoiceMT;
                    nuevo.TfData          = TFDATA;
                    nuevo.TfSMSMo         = TFSMSMO;
                    nuevo.TfVoiceMo       = TFVoiceMO;
                    nuevo.TfVoiceMt       = TFVoiceMT;
                    nuevo.Activo          = 1;
                    nuevo.Id_LineaNegocio = lineaNegocio;
                    db.TarifaRoaming.Add(nuevo);
                    Log log = new Log();
                    log.insertaNuevoOEliminado(nuevo, "Nuevo", "TarifaRoaming.html", Request.UserHostAddress);

                    db.SaveChanges();
                    respuesta = new { success = true, results = "ok" };
                }
                else
                {
                    respuesta = new { success = true, results = "no" }
                };
            } catch (Exception ex) {
                respuesta = new { success = false, results = ex.Message };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }
        public JsonResult modificar(int Id, string Sentido, string Direccion, string Grupo, string Operador, DateTime FechaInicio, DateTime FechaFin, decimal TODATA, decimal TOSMSMO, decimal TOVoiceMO, decimal TOVoiceMT, decimal TFDATA, decimal TFSMSMO, decimal TFVoiceMO, decimal TFVoiceMT, int lineaNegocio)
        {
            object respuesta = null;

            try {
                TarifaRoaming oTarifa   = db.TarifaRoaming.Where(x => x.Id == Id && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault();
                Grupo         oGrupo    = db.Grupo.Where(x => x.Grupo1 == Grupo && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault();
                Operador      oOperador = db.Operador.Where(x => x.Id_Operador == Operador && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault();
                if (FechaInicio < FechaFin)
                {
                    oTarifa.Sentido     = Sentido;
                    oTarifa.Direccion   = Direccion;
                    oTarifa.Code        = oGrupo.Id;
                    oTarifa.Id_Operador = oOperador.Id;
                    oTarifa.FechaInicio = FechaInicio;
                    oTarifa.FechaFin    = FechaFin;
                    oTarifa.ToData      = TODATA;
                    oTarifa.ToSMSMo     = TOSMSMO;
                    oTarifa.ToVoiceMo   = TOVoiceMO;
                    oTarifa.ToVoiceMt   = TOVoiceMT;
                    oTarifa.TfData      = TFDATA;
                    oTarifa.TfSMSMo     = TFSMSMO;
                    oTarifa.TfVoiceMo   = TFVoiceMO;
                    oTarifa.TfVoiceMt   = TFVoiceMT;
                    Log log = new Log();
                    log.insertaBitacoraModificacion(oTarifa, "Id", oTarifa.Id, "TarifaRoaming.html", Request.UserHostAddress);

                    db.SaveChanges();
                    respuesta = new { success = true, results = "ok" };
                }
                else
                {
                    respuesta = new { success = true, results = "no" }
                };
            } catch (Exception ex) {
                respuesta = new { success = false, results = ex.Message };
            }
            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }