public JsonResult agregar(int?Operador, string Sentido, int?Trafico, decimal Volminimo, decimal Volmaximo, decimal Tarifa, DateTime Viginicio, DateTime Vigfin, int lineaNegocio) { object respuesta = null; bool rangoValido = true; try { if (Viginicio > Vigfin) { rangoValido = false; } if (rangoValido == true) { var nuevo = new Tarifa(); nuevo.Id_OperadorTarifa = Operador; nuevo.SentidoTrafico = Sentido; nuevo.Id_TraficoSal = Trafico; nuevo.VolMinimo = Volminimo; nuevo.VolMaximo = Volmaximo; nuevo.Tarifa1 = Tarifa; nuevo.VigInicio = Viginicio; nuevo.VigFin = Vigfin; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.Tarifa.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "Tarifa.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } else { respuesta = new { success = true, results = "no", rango = rangoValido }; } } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult agregar(string Sentido, int Trafico, string TraficoDescripcion, string Cuenta, string Codigo_Material, string Material, int lineaNegocio) { CuentaResultado cuenta = db.CuentaResultado.Where(x => x.Trafico_Id == Trafico && x.Sentido == Sentido && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); object respuesta = null; if (cuenta == null) { try { var nuevo = new CuentaResultado(); nuevo.Sentido = Sentido; nuevo.Trafico_Id = Trafico; nuevo.TraficoDescripcion = TraficoDescripcion; nuevo.Cuenta = Cuenta; nuevo.Codigo_Material = Codigo_Material; nuevo.Material = Material; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.CuentaResultado.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "CuentaResultado.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } } else { respuesta = new { success = false, results = "El Tráfico y Sentido actuales ya están dados de alta" }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult modifica(int id, string Nombre) { object respuesta = null; try { Perfil oPer = db.Perfil.Where(a => a.Id == id).SingleOrDefault(); oPer.Nombre = Nombre; Log log = new Log(); log.insertaBitacoraModificacion(oPer, "Id", oPer.Id, "Perfil.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } 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)); }
/// <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 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 agregarTarifa_Fee(int Sociedad, int Grupo, int Trafico, string Fee, DateTime Fecha_Inicio, DateTime Fecha_Fin, decimal Tarifa, decimal Porcentaje, int lineaNegocio) { object respuesta = null; try { var nuevo = new Tarifa_Fee(); nuevo.Id_Sociedad = Sociedad; nuevo.Id_Grupo = Grupo; nuevo.Id_Trafico = Trafico; nuevo.Fee = Fee; nuevo.Fecha_Inicio = Fecha_Inicio; nuevo.Fecha_Fin = Fecha_Fin; nuevo.Tarifa = Tarifa; nuevo.Porcentaje = Porcentaje; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.Tarifa_Fee.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "Tarifa_Fee.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; //} // else // { // respuesta = new { success = true, results = "no", mensaje = noEncontrados.TrimEnd(',') }; //} } catch (Exception ex) { respuesta = new { success = false, results = ex.Message.ToString() }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult agregarSociedad(string Abreviatura, string Nombre, string Id_SAP, string Sociedad_SAP, string Id_Sociedad, int lineaNegocio) { object respuesta = null; try { Sociedad sociedad = db.Sociedad.Where(x => x.Id_Sociedad == Id_Sociedad && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); if (sociedad == null) { var nuevo = new Sociedad(); nuevo.AbreviaturaSociedad = Abreviatura; nuevo.NombreSociedad = Nombre; nuevo.Id_SAP = Id_SAP; nuevo.Sociedad_SAP = Sociedad_SAP; nuevo.Id_Sociedad = Id_Sociedad; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.Sociedad.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "Sociedad.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } else { respuesta = new { success = true, results = "no", dato = Id_Sociedad }; } } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult agregar(int?Operador, int Trafico, string TraficoDescripcion, int lineaNegocio) { BonoTrafico bonoT = db.BonoTrafico.Where(x => x.Id_Operador == Operador && x.Trafico_Id == Trafico && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); object respuesta = null; if (bonoT == null) { try { var nuevo = new BonoTrafico(); nuevo.Id_Operador = Operador; nuevo.Trafico_Id = Trafico; nuevo.TraficoDescripcion = TraficoDescripcion; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.BonoTrafico.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "BonoTrafico.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } } else { respuesta = new { success = false, results = "El Operador y Tráfico actual ya están dados de alta" }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult agregarEmpresa(string Empresa_Id, string Abreviatura, string Nombre, int lineaNegocio) { object respuesta = null; try { //Aquí busca el id que estás agregando EmpresaIC oEmpresa = db.EmpresaIC.Where(x => x.Id_Empresa == Empresa_Id && x.Activo == 1).SingleOrDefault(); //valida si existe ese id, si la respuesta es nula te deja agregarlo if (oEmpresa == null) { var nuevo = new EmpresaIC(); nuevo.Id_Empresa = Empresa_Id; nuevo.Abreviatura = Abreviatura; nuevo.Nombre_Empresa = Nombre; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.EmpresaIC.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "EmpresaIC.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } // si no es nulo, quiere decir que ya existe ese folio y no lo agrega else { respuesta = new { success = true, results = "no", dato = Empresa_Id }; } } catch (Exception ex) { respuesta = new { success = false, result = ex.Message.ToString() }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult agregarTrafico(string Sentido, string Descripcion, int Id_Servicio, string Id_TraficoTR, int lineaNegocio) { object respuesta = null; try { var nuevo = new Trafico(); //Busca el Id_Servicio que se desea ingresar Servicio oServicio = db.Servicio.Where(x => x.Id == Id_Servicio && x.Activo == 1).SingleOrDefault(); //Evalua si se encontro el servicio if (oServicio != null) { nuevo.Sentido = Sentido; nuevo.Descripcion = Descripcion; nuevo.Id_ServicioTR = oServicio.Id; nuevo.Id_TraficoTR = Id_TraficoTR; nuevo.Activo = 1; nuevo.Id_LineaNegocio = lineaNegocio; db.Trafico.Add(nuevo); Log log = new Log(); log.insertaNuevoOEliminado(nuevo, "Nuevo", "Trafico.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } else { respuesta = new { success = true, results = "no", dato = Id_Servicio } }; } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public void SavePXQCostos(List <PXQCostosLDI> lista) { using (TransactionScope scope = new TransactionScope()) { foreach (var elemento in lista) { db.PXQCostosLDI.Add(elemento); Log log = new Log(); log.insertaNuevoOEliminado(elemento, "Nuevo", "PXQCostosLDI.html", Request.UserHostAddress); db.SaveChanges(); } scope.Complete(); } }
//Borrar public JsonResult borrarCostoFC(string strID) { int Id = 0; strID = strID.TrimEnd(','); string strmsg = "ok";//string strSalto = "</br>"; bool blsucc = true; object respuesta; 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("CostoFC", Id); CostoFR CostoFC = db.CostoFR.Where(x => x.Id == Id).SingleOrDefault(); CostoFC.Activo = 0; Log log = new Log(); log.insertaNuevoOEliminado(CostoFC, "Eliminado", "CostoFR.html", Request.UserHostAddress); db.SaveChanges(); } } respuesta = new { success = blsucc, results = strmsg }; } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
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(); } } }
public object Guardar(int Id, string Id_Documento, string Id_Servicio, string Nombre_Documento, string Nombre_Archivo, string Path_Url, int diaCorte, int horaCorte, string Caracter_Separador, string Caracter_Fin_Linea, int Activo) { object respuesta = null; try { parametrosCargaDocumento oCatDocCarga = db.parametrosCargaDocumento.Where(a => a.Id == Id).SingleOrDefault(); oCatDocCarga.idDocumento = Id_Documento; oCatDocCarga.servicio = Id_Servicio; oCatDocCarga.nombreDocumento = Nombre_Documento; oCatDocCarga.nombreArchivo = Nombre_Archivo; oCatDocCarga.pathURL = Path_Url; oCatDocCarga.caracterSeparador = Caracter_Separador; oCatDocCarga.caracterFinLinea = Caracter_Fin_Linea; oCatDocCarga.diaCorte = diaCorte; oCatDocCarga.horaCorte = horaCorte; oCatDocCarga.activo = 1; Log log = new Log(); log.insertaBitacoraModificacion(oCatDocCarga, "Id", oCatDocCarga.Id, "parametrosCargaDocumento.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } catch (Exception ex) { respuesta = new { success = false, results = "Un error ocurrió mientras se realizaba la petición.\n Error: " + ex.Message.ToString() }; } return(respuesta); }
public JsonResult ModificarDIngreso(int lineaNegocio, int Id, DateTime mes, int movimiento, int moneda, string servicio, int grupo, string operador, string deudor, string trafico, decimal segundos, decimal min_fact, decimal tarifa_ext, decimal tarifa_final, decimal cantidad, decimal importe_ingreso, string no_factura, decimal monto_fact, decimal prov_nc, decimal ajuste, decimal nc_emitida, decimal saldo_prov, string motivo_ajuste, string periodo_ajuste, DateTime fecha_ajuste, string responsable_ajuste, string sociedad_sap, string sociedad, string nombre_empresa) { object respuesta = null; string noEncontrados = ""; bool valido = false; try { Movimiento oMovimiento = db.Movimiento.Where(x => x.Id == movimiento && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); Moneda oMoneda = db.Moneda.Where(x => x.Id == moneda && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); Servicio oServicio = db.Servicio.Where(x => x.Id_Servicio == servicio && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); Grupo oGrupo = db.Grupo.Where(x => x.Id == 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(); Deudor oDeudor = db.Deudor.Where(x => x.Deudor1 == deudor && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); Trafico oTrafico = db.Trafico.Where(x => x.Id_TraficoTR == trafico && x.Activo == 1 && x.Id_LineaNegocio == lineaNegocio).SingleOrDefault(); DataIngresoLDI oDI = db.DataIngresoLDI.Where(a => a.id == Id).SingleOrDefault(); if (oMovimiento == null) { noEncontrados = noEncontrados + "Sociedad " + sociedad + ","; } if (oMoneda == null) { noEncontrados = noEncontrados + "Tráfico: " + trafico + ","; } if (oServicio == null) { noEncontrados = noEncontrados + "Servico: " + servicio + ","; } if (oGrupo == null) { noEncontrados = noEncontrados + "Grupo: " + grupo + ","; } if (oOperador == null) { noEncontrados = noEncontrados + "Sociedad " + operador + ","; } if (oDeudor == null) { noEncontrados = noEncontrados + "Tráfico: " + deudor + ","; } if (oMovimiento != null && oTrafico != null && oServicio != null && oMoneda != null && oGrupo != null && oOperador != null && oDeudor != null && valido == true) { oDI.mes = mes; oDI.id_moneda = oMoneda.Id; oDI.id_servicio = oServicio.Id; oDI.id_grupo = oGrupo.Id; oDI.id_operador = oOperador.Id; oDI.id_trafico = oTrafico.Id; oDI.segundos = segundos; //oDI.llamadas = llamadas; oDI.importe_ingreso = importe_ingreso; oDI.tarifa_ext = tarifa_ext; oDI.id_deudor = oDeudor.Id; oDI.min_fact = min_fact; oDI.cantidad = cantidad; oDI.no_factura_referencia = no_factura; oDI.monto_facturado = monto_fact; Log log = new Log(); log.insertaBitacoraModificacion(oDI, "id", oDI.id, "DataIngresoLDI.html", Request.UserHostAddress); db.SaveChanges(); respuesta = new { success = true, results = "ok" }; } respuesta = new { success = true, results = "" }; } catch (Exception ex) { respuesta = new { success = false, results = ex.Message }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult CargarCSV(HttpPostedFileBase archivoCSV, int lineaNegocio) { List <string> listaErrores = new List <string>(); var hoy = DateTime.Now; IEnumerable <string> lineas = null; object respuesta = null; string mensajeExistencia = ""; int totalProcesados = 0; int lineaActual = 1; bool status = false; string ope, fact; string exception = "Error, se presento un error inesperado."; try { List <string> csvData = new List <string>(); using (System.IO.StreamReader reader = new System.IO.StreamReader(archivoCSV.InputStream, Encoding.Default)) { while (!reader.EndOfStream) { csvData.Add(reader.ReadLine()); } } lineas = csvData.Skip(1); string pd = lineas.First(); pd = pd.Replace('%', ' '); var pdSplit = pd.Split(';'); DateTime periodoDocumento = FNCGrales.ConvierteFecha(pdSplit[1], char.Parse("-"), "DMY"); documentosCosto docCosto = db.documentosCosto.Where(x => x.fechaContable == periodoDocumento && x.activo == 1 && x.lineaNegocio == lineaNegocio).FirstOrDefault(); if (docCosto != null) { mensajeExistencia = "Los documentos del periodo " + periodoDocumento.Year + " " + meses[periodoDocumento.Month] + " se han actualizado"; db.sp_BorrarCargas_Delete("documentosCosto", periodoDocumento, lineaNegocio); } using (TransactionScope scope = new TransactionScope()) { foreach (string ln in lineas) { string linea = ln.Replace('%', ' '); var lineaSplit = linea.Split(';'); ++lineaActual; if (lineaSplit.Count() == 26) { documentosCosto documento = new documentosCosto(); try { ope = lineaSplit[6]; fact = lineaSplit[19]; documentosCosto veriDocumento = db.documentosCosto.Where(x => x.operador == ope && x.factura == fact && x.activo == 1 && x.lineaNegocio == lineaNegocio).FirstOrDefault(); if (veriDocumento != null) { listaErrores.Add("Línea " + lineaActual + ": El Operador y Factura actual ya estan dados de alta."); continue; } if (lineaSplit[0] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Año es obligatorio."); continue; } documento.ano = new DateTime(Int32.Parse(lineaSplit[0]), 01, 01); if (lineaSplit[1] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Fecha Contable es obligatorio."); continue; } DateTime dtFecha = FNCGrales.ConvierteFecha(lineaSplit[1], '-', "DMY"); documento.fechaContable = dtFecha; if (lineaSplit[2] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Fecha Consumo es obligatorio."); continue; } dtFecha = FNCGrales.ConvierteFecha("01-" + lineaSplit[2], '-', "DMY"); documento.fechaConsumo = dtFecha; if (documento.fechaConsumo.Month >= hoy.Month && documento.fechaConsumo.Year == hoy.Year) { listaErrores.Add("Línea " + lineaActual + ": No se permite cargar facturas con Mes Consumo que sean del mes en curso en adelante."); continue; } if (lineaSplit[3] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Compañia es obligatorio."); continue; } documento.compania = lineaSplit[3]; documento.servicio = lineaSplit[4]; if (lineaSplit[5] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Grupo es obligatorio."); continue; } documento.grupo = lineaSplit[5]; if (lineaSplit[6] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Id Operador es obligatorio."); continue; } documento.operador = lineaSplit[6]; documento.nombreOperador = lineaSplit[7]; if (lineaSplit[8] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Acreedor es obligatorio."); continue; } documento.acreedor = lineaSplit[8]; if (lineaSplit[9] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Código Material es obligatorio."); continue; } documento.codigoMaterial = lineaSplit[9]; documento.trafico = lineaSplit[10]; if (lineaSplit[11] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Monto IVA es obligatorio."); continue; } documento.montoIva = decimal.Parse(lineaSplit[11]); if (lineaSplit[12] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo IVA es obligatorio."); continue; } documento.iva = decimal.Parse(lineaSplit[12]); if (lineaSplit[13] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Moneda es obligatorio."); continue; } documento.moneda = lineaSplit[13]; if (lineaSplit[14] == null || lineaSplit[14] == "") { documento.minutos = null; } else { documento.minutos = decimal.Parse(lineaSplit[14]); } if (lineaSplit[15] == null || lineaSplit[15] == "") { documento.tarifa = null; } else { documento.tarifa = decimal.Parse(lineaSplit[15]); } if (lineaSplit[16] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Monto es obligatorio."); continue; } documento.monto = decimal.Parse(lineaSplit[16]); if (lineaSplit[17] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Monto Facturado es obligatorio."); continue; } documento.montoFacturado = decimal.Parse(lineaSplit[17]); if (lineaSplit[18] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Fecha Factura es obligatorio."); continue; } documento.fechaFactura = DateTime.ParseExact(lineaSplit[18], "dd/MM/yyyy", new CultureInfo("en-US"), DateTimeStyles.None); if (lineaSplit[19] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Factura es obligatorio."); continue; } documento.factura = lineaSplit[19]; if (lineaSplit[20] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Tipo Cambio es obligatorio."); continue; } documento.tipoCambio = decimal.Parse(lineaSplit[20]); if (lineaSplit[21] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Monto MXP es obligatorio."); continue; } documento.montoMXP = decimal.Parse(lineaSplit[21]); documento.cuentaContable = lineaSplit[22]; var result = db.spValidaDocumentosCost(documento.compania, documento.servicio, documento.grupo, documento.acreedor, documento.operador, documento.trafico, documento.moneda, documento.cuentaContable, documento.codigoMaterial, lineaNegocio ).ToList(); documento.idSociedad = result[0].idSociedad; documento.idServicio = result[0].idServicio; documento.idGrupo = result[0].idGrupo; documento.idOperador = result[0].idOperador; documento.idAcreedor = result[0].idAcreedor; documento.idTrafico = result[0].idTrafico; documento.idMoneda = result[0].idMoneda; documento.idCuentaResultado = result[0].idCuentaResultado; if (result[0].idStatus == 1) { documento.activo = 1; totalProcesados++; } else { documento.activo = 0; var cadena = result[0].cadenaResultado; listaErrores.Add("Línea " + lineaActual + ": Error en la carga, no se encontraron coincidencias" + " en los siguientes catálogo(s)" + cadena.Remove(cadena.Length - 1) + "."); } if (lineaSplit[23] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Clase Documento es obligatorio."); continue; } documento.claseDocumento = lineaSplit[23]; if (lineaSplit[24] == "") { listaErrores.Add("Línea " + lineaActual + ": El campo Clase Documento SAP es obligatorio."); continue; } documento.claseDocumentoSAP = lineaSplit[24]; // Se agrega en el Sprint 7 documento.numDocumentoPF = lineaSplit[25]; documento.estatus = "PENDIENTE DE PROCESAR"; documento.lineaNegocio = lineaNegocio; db.documentosCosto.Add(documento); Log log = new Log(); log.insertaNuevoOEliminado(documento, "Nuevo", "documentosCosto.html", Request.UserHostAddress); } catch (FormatException e) { if (e.Message == "String was not recognized as a valid DateTime.") { listaErrores.Add("Línea " + lineaActual + ": Campo de Fecha con formato erróneo."); } else { listaErrores.Add("Línea " + lineaActual + ": Campo con formato erróneo."); } } catch (Exception) { listaErrores.Add("Línea " + lineaActual + ": Error desconocido. "); } } else { listaErrores.Add("Línea " + lineaActual + ": Número de campos insuficiente."); } } db.SaveChanges(); scope.Complete(); exception = "Datos cargados con éxito"; status = true; } } catch (FileNotFoundException) { exception = "El archivo Selecionado aún no existe en el Repositorio."; status = false; } catch (UnauthorizedAccessException) { exception = "No tiene permiso para acceder al archivo actual."; status = false; } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32) { exception = "Falta el nombre del archivo, o el archivo o directorio está en uso."; status = false; } catch (TransactionAbortedException) { exception = "Transacción abortada. Se presentó un error."; status = false; } catch (Exception err) { exception = "Error desconocido. " + err.InnerException.ToString(); status = false; } finally { respuesta = new { success = true, results = listaErrores, mensaje = exception, mensajeExistencia, totalProcesados = totalProcesados, status = status }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
/// <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 JsonResult cargarCSV(HttpPostedFileBase archivoCSV, int lineaNegocio) { List <string> listaErrores = new List <string>(); var hoy = DateTime.Now; IEnumerable <string> lineas = null; object respuesta = null; int totalProcesados = 0; int lineaActual = 1; int contador = 0; bool status = false; string exception = "Error, se presento un error inesperado."; try { List <string> csvData = new List <string>(); using (System.IO.StreamReader reader = new System.IO.StreamReader(archivoCSV.InputStream, System.Text.Encoding.GetEncoding("ISO-8859-1"))) { while (!reader.EndOfStream) { csvData.Add(reader.ReadLine()); } } lineas = csvData.Skip(1); var datos = (from periodos in db.cargaDocumentoRoaming where periodos.idDocumento == "TAPIN" & periodos.ordenCarga == "A" & periodos.estatusCarga == "PC" group periodos by periodos.periodoCarga into g orderby g.Key ascending select new { Id = g.Key, Periodo = g.Key }).FirstOrDefault(); var _IdOperador = db.Operador .Select(p => p.Id_Operador) .ToArray(); var _Deudor = db.Deudor .Select(p => p.Deudor1) .ToArray(); string Activo = ""; using (TransactionScope scope = new TransactionScope()) { foreach (string ln in lineas) { string linea = ln.Replace('%', ' '); var lineaSplit = linea.Split('|'); ++lineaActual; if (lineaSplit.Count() == 14) { RoamingCancelacionIngreso entidad = new RoamingCancelacionIngreso(); try { contador++; Activo = ((!_IdOperador.Any(o => o == lineaSplit[3].ToUpper())) ? "0" : "1"); if (Activo == "1") { Activo = ((!_Deudor.Any(o => o == lineaSplit[6].ToUpper())) ? "0" : "1"); } decimal importeMXNtest = 0; decimal difProvFact = 0; entidad.BanderaConcepto = lineaSplit[0]; entidad.NumeroProvision = lineaSplit[1]; entidad.FechaContable = datos.Periodo.ToString(); entidad.IdOperador = lineaSplit[3]; entidad.Concepto = lineaSplit[4]; entidad.Grupo = lineaSplit[5]; entidad.Deudor = lineaSplit[6]; entidad.MontoProvision = lineaSplit[7]; entidad.Moneda = lineaSplit[8]; entidad.Periodo = lineaSplit[9]; entidad.Tipo = lineaSplit[10]; entidad.NumeroDocumentoSap = lineaSplit[11]; entidad.FolioDocumento = lineaSplit[12]; entidad.TipoCambioProvision = lineaSplit[13]; importeMXNtest = Convert.ToDecimal(entidad.MontoProvision) * Convert.ToDecimal(entidad.TipoCambioProvision); entidad.ImporteMxn = Convert.ToString(importeMXNtest); var monto = from montodock in db.RoamingDocumentoIngreso where montodock.IdOperador == entidad.IdOperador & montodock.FolioDocumento == entidad.FolioDocumento & montodock.FechaConsumo == entidad.Periodo group montodock by new { montodock.FechaContable } into mygroup select mygroup.FirstOrDefault(); foreach (var elemento in monto) { entidad.ImporteFactura = elemento.Monto; } difProvFact = Convert.ToDecimal(entidad.MontoProvision) + Convert.ToDecimal(entidad.ImporteFactura); entidad.DiferenciaProvisionFactura = Convert.ToString(difProvFact); var tipocambiotest = from tipoCamb in db.RoamingDocumentoCosto where tipoCamb.FechaConsumo == entidad.Periodo & tipoCamb.IdOperador == entidad.IdOperador & tipoCamb.FolioDocumento == entidad.FolioDocumento group tipoCamb by new { tipoCamb.FechaContable } into mygroup select mygroup.FirstOrDefault(); foreach (var elemento in tipocambiotest) { entidad.TipoCambioFactura = elemento.TipoCambio; } if (Convert.ToDecimal(entidad.DiferenciaProvisionFactura) < 0) { decimal excprov = 0; excprov = Convert.ToDecimal(entidad.DiferenciaProvisionFactura) * Convert.ToDecimal(entidad.TipoCambioProvision); entidad.ExcesoProvisionMxn = Convert.ToString(excprov); } else { entidad.ExcesoProvisionMxn = "0"; } if (Convert.ToDecimal(entidad.DiferenciaProvisionFactura) > 0) { decimal insufiProvi = 0; insufiProvi = Convert.ToDecimal(entidad.DiferenciaProvisionFactura) * Convert.ToDecimal(entidad.TipoCambioFactura); entidad.InsuficienciaProvisionMxn = Convert.ToString(insufiProvi); } else { entidad.InsuficienciaProvisionMxn = "0"; } //entidad.InsuficienciaProvisionMxn = lineaSplit[18]; entidad.Activo = Activo; entidad.LineaNegocio = "1"; entidad.FechaCarga = DateTime.Now; var flujo = from consuImpo in db.RoamingDocumentoIngreso where consuImpo.IdOperador == entidad.IdOperador & consuImpo.FolioDocumento == entidad.FolioDocumento group consuImpo by new { consuImpo.FechaContable } into mygroup select mygroup.FirstOrDefault(); foreach (var elemento in flujo) { if (entidad.BanderaConcepto == "TARIFA") { entidad.FechaConsumoTarifa = elemento.FechaConsumo; entidad.ImporteFacturaTarifa = elemento.MontoFacturado; } //entidad.FechaConsumoTarifa = elemento.FechaFactura; //entidad.ImporteFacturaTarifa = elemento.MontoFacturado; } totalProcesados++; db.RoamingCancelacionIngreso.Add(entidad); } catch (FormatException e) { if (e.Message == "String was not recognized as a valid DateTime.") { listaErrores.Add("Línea " + lineaActual + ": Campo de Fecha con formato erróneo."); } else { listaErrores.Add("Línea " + lineaActual + ": Campo con formato erróneo."); } } catch (Exception) { listaErrores.Add("Línea " + lineaActual + ": Error desconocido. "); } } else { listaErrores.Add("Línea " + lineaActual + ": Número de campos insuficiente."); } } db.SaveChanges(); scope.Complete(); exception = "Datos cargados con éxito"; status = true; } // llenar fluctuacion if (status) { db.Database.CommandTimeout = 3000; db.sp_FluctuacionROM_Insert(DateTime.Parse(datos.Periodo), "INGRESO", "FluctuacionIngresoROM"); using (var anteriores = new Negocio.PeriodosAnteriores()) anteriores.CrearPeriodosAnteriores(db); } } catch (FileNotFoundException) { exception = "El archivo Selecionado aún no existe en el Repositorio."; status = false; } catch (UnauthorizedAccessException) { exception = "No tiene permiso para acceder al archivo actual."; status = false; } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32) { exception = "Falta el nombre del archivo, o el archivo o directorio está en uso."; status = false; } catch (TransactionAbortedException) { exception = "Transacción abortada. Se presentó un error."; status = false; } catch (Exception err) { exception = "Error desconocido. " + err.InnerException.ToString(); status = false; } finally { respuesta = new { success = true, results = listaErrores, mensaje = exception, totalProcesados = totalProcesados, status = status }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult CargarCSV(HttpPostedFileBase archivoCSV, int lineaNegocio) { List <string> listaErrores = new List <string>(); IEnumerable <string> lineas = null; object respuesta = null; int totalProcesados = 0; int lineaActual = 2; bool status = false; string exception = "Error, se presento un error inesperado."; try { DateTime fechaContable; if (lineaNegocio == 1) { fechaContable = DateTime.Parse(db.cargaDocumentoRoaming.Where(x => x.estatusCarga == "PC" && x.ordenCarga == "A" && x.idDocumento == "TAPOUT").Select(x => x.periodoCarga).SingleOrDefault()); } else { fechaContable = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); } /// Se salta la primera linea, el encabezado List <string> csvData = new List <string>(); using (System.IO.StreamReader reader = new System.IO.StreamReader(archivoCSV.InputStream, Encoding.Default)) { while (!reader.EndOfStream) { csvData.Add(reader.ReadLine()); } } lineas = csvData.Skip(1); using (TransactionScope scope = new TransactionScope()) { foreach (string linea in lineas) { var lineaSplit = linea.Split(';'); if (lineaSplit.Count() == 11) { try { AjustesObjecion aObj = new AjustesObjecion(); aObj.sentido = lineaSplit[0]; aObj.sociedad = lineaSplit[1]; aObj.trafico = lineaSplit[2]; aObj.servicio = lineaSplit[3]; aObj.deudorAcreedor = lineaSplit[4]; aObj.operador = lineaSplit[5]; aObj.grupo = lineaSplit[6]; aObj.periodo = DateTime.ParseExact(lineaSplit[7], "dd/MM/yyyy", new CultureInfo("es-ES")); aObj.importe = decimal.Parse(lineaSplit[8]); aObj.moneda = lineaSplit[9]; aObj.lineaNegocio = lineaNegocio; aObj.periodo_carga = fechaContable; aObj.origen = "CARGA"; aObj.minutos = decimal.Parse(lineaSplit[10]); var result = db.spValidaAjustesObj(aObj.sentido, aObj.sociedad, aObj.trafico, aObj.servicio, aObj.deudorAcreedor, aObj.operador, aObj.grupo, lineaNegocio).ToList(); aObj.idSociedad = result[0].idSociedad; aObj.idTrafico = result[0].idTrafico; aObj.idServicio = result[0].idServicio; aObj.idDeudorAcreedor = result[0].idDeudorAcreedor; aObj.idOperador = result[0].idOperador; aObj.idGrupo = result[0].idGrupo; if (result[0].idStatus == 1) { aObj.activo = 1; totalProcesados++; } else { aObj.activo = 0; listaErrores.Add("Línea " + lineaActual + ": Error en la carga, no se encontraron coincidencias en los catálogo(s)."); } db.AjustesObjecion.Add(aObj); Log log = new Log(); log.insertaNuevoOEliminado(aObj, "Nuevo", "ajustesObjecion.html", Request.UserHostAddress); } catch (FormatException) { listaErrores.Add("Línea " + lineaActual + ": Campo con formato erróneo."); } } else { listaErrores.Add("Línea " + lineaActual + ": Número de campos insuficiente."); } ++lineaActual; } // Termina exitosamente la transaccion db.SaveChanges(); scope.Complete(); exception = "Datos cargados con éxito"; status = true; } } catch (FileNotFoundException) { exception = "El archivo Selecionado aún no existe en el Repositorio."; status = false; } catch (UnauthorizedAccessException) { exception = "No tiene permiso para acceder al archivo actual."; status = false; } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32) { exception = "Falta el nombre del archivo, o el archivo o directorio está en uso."; status = false; } catch (TransactionAbortedException) { exception = "Transacción abortada. Se presentó un error."; status = false; } finally { respuesta = new { success = true, results = listaErrores, mensaje = exception, totalProcesados, status }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public object CargaTAPINA(string periodo, string ruta, string nombre, int Id, char separador) { object respuesta = null; string res = ""; int i = 0, defectuosos = 0; string exception = ""; List <string> resultado = new List <string>(); string[] lineas = null; bool exitoso = false; CultureInfo cultureInfo = new CultureInfo("es-ES", false); DateTime dateRom = new DateTime(); DateTime dateTime = new DateTime(); DateTime fecha_carga = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); try { lineas = System.IO.File.ReadAllLines(ruta + "/" + nombre, Encoding.Default).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray(); } catch (FileNotFoundException) { exception = "El archivo Selecionado aún no existe en el Repositorio."; } 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."; } if (lineas != null) { try { var list = new List <datosTraficoTAPINA>(); using (TransactionScope scope = new TransactionScope()) { for (i = 1; i < lineas.Count(); i++) { var linea = SepararLineas(lineas[i], separador); var datosROM = new datosTraficoTAPINA(); if (linea.Count() != 27) { resultado.Add("Línea " + i + ": Numero de campos insuficiente."); ++defectuosos; continue; } if (ValidaCampo(linea[0], "") != null) { //DateTime dateRom = new DateTime(); dateRom = DateTime.Parse(linea[0], cultureInfo); datosROM.settlementDate = dateRom;//DateTime.ParseExact(linea[0], "dd/MM/yyyy", new CultureInfo("es-ES")); } else { datosROM.settlementDate = null; } datosROM.myPMN = ValidaCampo(linea[1], ""); datosROM.VRSFCMTSRH = ValidaCampo(linea[2], ""); datosROM.codigoAcreedor = ValidaCampo(linea[3], ""); datosROM.theirPMN = ValidaCampo(linea[4], ""); datosROM.operatorName = ValidaCampo(linea[5], ""); datosROM.rapFileName = ValidaCampo(linea[6], ""); if (ValidaCampo(linea[7], "") != null) { dateRom = DateTime.Parse(linea[7], cultureInfo); datosROM.rapFileAvailableTimeStamp = dateRom;//DateTime.ParseExact(linea[7], "dd/MM/yyyy", new CultureInfo("es-ES")); } else { datosROM.rapFileAvailableTimeStamp = null; } datosROM.rapStatus = ValidaCampo(linea[8], ""); datosROM.rapFileType = ValidaCampo(linea[9], ""); datosROM.rapAdjustmentIndicator = ValidaCampo(linea[10], ""); datosROM.tapFileType = ValidaCampo(linea[11], ""); datosROM.tapFileName = ValidaCampo(linea[12], ""); datosROM.callType = ValidaCampo(linea[13], ""); datosROM.numberCalls = Int32.Parse(linea[14]); datosROM.totalRealVolume = Math.Round(decimal.Parse(ValidaCampo(linea[15], ""), NumberStyles.Any), 15); datosROM.totalChargedVolume = Math.Round(decimal.Parse(ValidaCampo(linea[16], ""), NumberStyles.Any), 15); datosROM.realDuration = Math.Round(decimal.Parse(ValidaCampo(linea[17], ""), NumberStyles.Any), 15); datosROM.chargedDuration = Math.Round(decimal.Parse(ValidaCampo(linea[18], ""), NumberStyles.Any), 15); datosROM.chargesTaxesSDR = Math.Round(decimal.Parse(ValidaCampo(linea[19], ""), NumberStyles.Any), 15); datosROM.taxes = Math.Round(decimal.Parse(ValidaCampo(linea[20], ""), NumberStyles.Any), 15); datosROM.totalCharges = Math.Round(decimal.Parse(ValidaCampo(linea[21], ""), NumberStyles.Any), 15); datosROM.chargesTaxesLC = Math.Round(decimal.Parse(ValidaCampo(linea[22], ""), NumberStyles.Any), 15); datosROM.taxesLocalCurrency1 = Math.Round(decimal.Parse(ValidaCampo(linea[23], ""), NumberStyles.Any), 15); datosROM.taxesLocalCurrency2 = Math.Round(decimal.Parse(ValidaCampo(linea[24], ""), NumberStyles.Any), 15); datosROM.totalChargesLC = Math.Round(decimal.Parse(ValidaCampo(linea[25], ""), NumberStyles.Any), 15); if (ValidaCampo(linea[26], "") != null) { //DateTime dateRom = new DateTime(); dateRom = DateTime.Parse(linea[26], cultureInfo); datosROM.callDate = dateRom;//DateTime.ParseExact(linea[26], "dd/MM/yyyy", new CultureInfo("es-ES")); } else { datosROM.callDate = null; } datosROM.idCarga = Id; datosROM.fecha_carga = fecha_carga; list.Add(datosROM); dateRom = DateTime.Parse(linea[0], cultureInfo); } db.BulkInsert(list, true, "datosTraficoTAPINA"); //Log log2 = new Log(); //log2.registraCarga("datosTraficoTAPINA.html", Request.UserHostAddress,nombre); cargaDocumentoRoaming cargaDocumento = db.cargaDocumentoRoaming.Where(x => x.Id == Id).SingleOrDefault(); cargaDocumento.estatusCarga = "CC"; //Log log = new Log(); //log.insertaBitacoraModificacion(cargaDocumento, "Id", cargaDocumento.Id, "cargaDocumentoRoaming.html", Request.UserHostAddress); var fecha = db.cargaDocumentoRoaming.Where(x => x.Id == Id).Select(c => c.periodoCarga).SingleOrDefault(); dateTime = DateTime.Parse(fecha, cultureInfo); dateTime = dateTime.AddMonths(1); res = dateTime.Year + "/" + dateTime.Month.ToString("00") + "/" + dateTime.Day.ToString("00"); cargaDocumentoRoaming nuevo = new cargaDocumentoRoaming { idDocumento = "TAPIN", periodoCarga = res, fechaCarga = null, tipoCarga = "TAPIN", ordenCarga = "A", estatusCarga = "PC" }; db.cargaDocumentoRoaming.Add(nuevo); //Log log3 = new Log(); //log3.insertaNuevoOEliminado(nuevo, "Nuevo", "cargaDocumentoRoaming.html", Request.UserHostAddress); respuesta = new { success = true, results = "ok", exitos = i - defectuosos - 1, total = lineas.Count() - 1, procesados = resultado }; db.SaveChanges(); // Se hace la transaccion scope.Complete(); exitoso = true; } } catch (FormatException ex) { string error = ex.Message; respuesta = new { success = false, results = "Error en la conversión de datos." + "Linea: " + i, exitos = -1, total = -1 }; } catch (TransactionAbortedException) { respuesta = new { success = false, results = "Transacción abortada. Se presentó un error.", exitos = -1, total = -1 }; } catch (Exception ex) { string error = ex.Message; respuesta = new { success = false, results = "Error en la conversión de datos.", exitos = -1, total = -1 }; } } else { respuesta = new { success = false, results = exception, exitos = -1, total = -1 }; } if (exitoso) { db.Database.CommandTimeout = 3000; db.sp_InsertarPXQCostosROM(dateRom); MoverArchivo(ruta, nombre); } return(respuesta); }
public JsonResult cargarCSV(HttpPostedFileBase archivoCSV, int lineaNegocio) { List <string> listaErrores = new List <string>(); var hoy = DateTime.Now; IEnumerable <string> lineas = null; object respuesta = null; int totalProcesados = 0; int lineaActual = 1; int contador = 0; bool status = false; string ope, fact; string exception = "Error, se presento un error inesperado."; try { List <string> csvData = new List <string>(); using (System.IO.StreamReader reader = new System.IO.StreamReader(archivoCSV.InputStream, System.Text.Encoding.UTF8)) { while (!reader.EndOfStream) { csvData.Add(reader.ReadLine()); } } lineas = csvData.Skip(1); using (TransactionScope scope = new TransactionScope()) { foreach (string ln in lineas) { string linea = ln.Replace('%', ' '); var lineaSplit = linea.Split('|'); ++lineaActual; if (lineaSplit.Count() == 20) { RoamingCancelacionCosto entidad = new RoamingCancelacionCosto(); try { contador++; ope = lineaSplit[2]; fact = lineaSplit[11]; entidad.BanderaConcepto = lineaSplit[0]; entidad.NumeroProvision = lineaSplit[1]; entidad.CuentaContable = lineaSplit[2]; entidad.Indat = lineaSplit[3]; entidad.Concepto = lineaSplit[4]; entidad.Grupo = lineaSplit[5]; entidad.Acreedor = lineaSplit[6]; entidad.MontoProvision = lineaSplit[7]; entidad.Moneda = lineaSplit[8]; entidad.Periodo = lineaSplit[9]; entidad.Tipo = lineaSplit[10]; entidad.NumeroDocumentoSap = lineaSplit[11]; entidad.FolioDocumento = lineaSplit[12]; entidad.TipoCambioProvision = lineaSplit[13]; entidad.ImporteMxn = lineaSplit[14]; entidad.ImporteFactura = lineaSplit[15]; entidad.DiferenciaProvisionFactura = lineaSplit[16]; entidad.TipoCambioFactura = lineaSplit[17]; entidad.ExcesoProvisionMxn = lineaSplit[18]; entidad.InsuficienciaProvisionMxn = lineaSplit[19]; entidad.Activo = "1"; entidad.LineaNegocio = "1"; entidad.FechaCarga = DateTime.Now; totalProcesados++; db.RoamingCancelacionCosto.Add(entidad); } catch (FormatException e) { if (e.Message == "String was not recognized as a valid DateTime.") { listaErrores.Add("Línea " + lineaActual + ": Campo de Fecha con formato erróneo."); } else { listaErrores.Add("Línea " + lineaActual + ": Campo con formato erróneo."); } } catch (Exception) { listaErrores.Add("Línea " + lineaActual + ": Error desconocido. "); } } else { listaErrores.Add("Línea " + lineaActual + ": Número de campos insuficiente."); } } db.SaveChanges(); scope.Complete(); exception = "Datos cargados con éxito"; status = true; } } catch (FileNotFoundException) { exception = "El archivo Selecionado aún no existe en el Repositorio."; status = false; } catch (UnauthorizedAccessException) { exception = "No tiene permiso para acceder al archivo actual."; status = false; } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32) { exception = "Falta el nombre del archivo, o el archivo o directorio está en uso."; status = false; } catch (TransactionAbortedException) { exception = "Transacción abortada. Se presentó un error."; status = false; } catch (Exception err) { exception = "Error desconocido. " + err.InnerException.ToString(); status = false; } finally { respuesta = new { success = true, results = listaErrores, mensaje = exception, totalProcesados = totalProcesados, status = status }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
public JsonResult CargarCSV(HttpPostedFileBase archivoCSV, int lineaNegocio) { List <string> listaErrores = new List <string>(); var hoy = DateTime.Now; IEnumerable <string> lineas = null; object respuesta = null; int totalProcesados = 0; int lineaActual = 1; bool status = false; string ope, fact; string exception = "Error, se presento un error inesperado."; try { List <string> csvData = new List <string>(); using (System.IO.StreamReader reader = new System.IO.StreamReader(archivoCSV.InputStream)) { while (!reader.EndOfStream) { csvData.Add(reader.ReadLine()); } } lineas = csvData.Skip(1); var datos = (from periodos in db.cargaDocumentoRoaming where periodos.idDocumento == "TAPIN" & periodos.ordenCarga == "A" & periodos.estatusCarga == "PC" group periodos by periodos.periodoCarga into g orderby g.Key ascending select new { Id = g.Key, Periodo = g.Key }).FirstOrDefault(); using (TransactionScope scope = new TransactionScope()) { foreach (string ln in lineas) { string linea = ln.Replace('%', ' '); var lineaSplit = linea.Split('|'); ++lineaActual; if (lineaSplit.Count() == 26) { RoamingDocumentoIngreso entidad = new RoamingDocumentoIngreso(); try { ope = lineaSplit[6]; fact = lineaSplit[19]; entidad.Anio = lineaSplit[0]; entidad.FechaContable = datos.Periodo.ToString(); //lineaSplit[1]; entidad.FechaConsumo = lineaSplit[2]; entidad.Compania = lineaSplit[3]; entidad.Servicio = lineaSplit[4]; entidad.Grupo = lineaSplit[5]; entidad.IdOperador = lineaSplit[6]; entidad.NombreOperador = lineaSplit[7]; entidad.Deudor = lineaSplit[8]; entidad.Material = lineaSplit[9]; entidad.Trafico = lineaSplit[10]; entidad.Iva = lineaSplit[11]; entidad.PorcentajeIva = lineaSplit[12]; entidad.Moneda = lineaSplit[13]; entidad.Minutos = lineaSplit[14]; entidad.Tarifa = lineaSplit[15]; entidad.Monto = lineaSplit[16]; entidad.MontoFacturado = lineaSplit[17]; entidad.FechaFactura = lineaSplit[18]; entidad.FolioDocumento = lineaSplit[19]; entidad.TipoCambio = lineaSplit[20]; entidad.MontoMxn = lineaSplit[21]; entidad.CuentaContable = lineaSplit[22]; entidad.ClaseDocumento = lineaSplit[23]; entidad.ClaseDocumentoSap = lineaSplit[24]; entidad.NumeroDocumentoSap = lineaSplit[25]; entidad.Activo = "1"; entidad.LineaNegocio = "1"; entidad.FechaCarga = DateTime.Now; totalProcesados++; db.RoamingDocumentoIngreso.Add(entidad); } catch (FormatException e) { if (e.Message == "String was not recognized as a valid DateTime.") { listaErrores.Add("Línea " + lineaActual + ": Campo de Fecha con formato erróneo."); } else { listaErrores.Add("Línea " + lineaActual + ": Campo con formato erróneo."); } } catch (Exception) { listaErrores.Add("Línea " + lineaActual + ": Error desconocido. "); } } else { listaErrores.Add("Línea " + lineaActual + ": Número de campos insuficiente."); } } db.SaveChanges(); scope.Complete(); exception = "Datos cargados con éxito"; status = true; } } catch (FileNotFoundException) { exception = "El archivo Selecionado aún no existe en el Repositorio."; status = false; } catch (UnauthorizedAccessException) { exception = "No tiene permiso para acceder al archivo actual."; status = false; } catch (IOException e) when((e.HResult & 0x0000FFFF) == 32) { exception = "Falta el nombre del archivo, o el archivo o directorio está en uso."; status = false; } catch (TransactionAbortedException) { exception = "Transacción abortada. Se presentó un error."; status = false; } catch (Exception err) { exception = "Error desconocido. " + err.InnerException.ToString(); status = false; } finally { respuesta = new { success = true, results = listaErrores, mensaje = exception, totalProcesados = totalProcesados, status = status }; } return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
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); }
public object CargaDatosLDI(string Periodo) { 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); int lineaLDI = 2; 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 == lineaLDI 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, lineaLDI); //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"); //Log log3 = new Log(); //log3.registraCarga("DatosTraficoLDI.html", Request.UserHostAddress, nombreArchivo); } //Conceptos db.sp_traficoConceptos_Update(fechaPeriodo); //Data Trafico InsertDataTrafico(fechaPeriodo); //Actualiza Carga Documentos CargaDocumento cargaDocumento = db.CargaDocumento.Where(x => x.Id == Id).SingleOrDefault(); cargaDocumento.EstatusCarga = "CC"; cargaDocumento.FechaCarga = DateTime.Now; InsertCargaDocumento(cargaDocumento, fechaPeriodo); //Log log4 = new Log(); //log4.insertaBitacoraModificacion(cargaDocumento, "Id", cargaDocumento.Id, "CargaDocumento.html", Request.UserHostAddress); 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); }