Exemple #1
0
        public ActionResult Upload(String patronesId, String periodoId, String ejercicioId)
        {
            if (!String.IsNullOrEmpty(patronesId) && !String.IsNullOrEmpty(periodoId) && !String.IsNullOrEmpty(ejercicioId))
            {
                String periodo = ejercicioId.Trim() + periodoId.Trim();
                int patronTemp = int.Parse(patronesId);
                Patrone patron = db.Patrones.Find(patronTemp);
                String path = this.UploadFile(patron.direccionArchivo);

                if (!path.Equals(""))
                {
                    Boolean existe = false;
                    SUAHelper suaHelper = new SUAHelper(path);
                    ResumenPago resumenPago = new ResumenPago();

                    //Preparamos el query del resúmen
                    String sSQL = "SELECT * FROM Registro_02" +
                        "  WHERE Registro_Patronal = '" + patron.registro + "'" +
                        "    AND Periodo_Pago = '" + periodo + "'" +
                        "ORDER BY Registro_Patronal";

                    DataTable dt = suaHelper.ejecutarSQL(sSQL);

                    foreach (DataRow rows in dt.Rows)
                    {
                        resumenPago.ip = rows["IP"].ToString().Trim();
                        resumenPago.patronId = patron.Id;
                        resumenPago.rfc = rows["RFC"].ToString().Trim();
                        resumenPago.periodoPago = periodo;
                        resumenPago.mes = periodoId;
                        resumenPago.anno = ejercicioId;
                        resumenPago.folioSUA = rows["Folio_SUA"].ToString().Trim();
                        resumenPago.razonSocial = rows["Razon_Social"].ToString().Trim();
                        resumenPago.calleColonia = rows["Calle_Colonia"].ToString().Trim();
                        resumenPago.poblacion = rows["Poblacion"].ToString().Trim();
                        resumenPago.entidadFederativa = rows["Entidad_Federativa"].ToString().Trim();
                        resumenPago.codigoPostal = rows["CP"].ToString().Trim();
                        resumenPago.primaRT = rows["Prima_RT"].ToString().Trim();
                        resumenPago.fechaPrimaRT = rows["Fecha_Prima_RT"].ToString().Trim();
                        resumenPago.actividadEconomica = rows["Actividad_Economica"].ToString().Trim();
                        resumenPago.delegacionIMSS = rows["Delegacion_IMSS"].ToString().Trim();
                        resumenPago.subDelegacionIMMS = rows["SubDelegacion_IMSS"].ToString().Trim();
                        resumenPago.zonaEconomica = rows["Zona_Economica"].ToString().Trim();
                        resumenPago.convenioReembolso = rows["Convenio_Reembolso"].ToString().Trim();
                        resumenPago.tipoCotizacion = rows["Tipo_Cotizacion"].ToString().Trim();
                        resumenPago.cotizantes = rows["Cotizantes"].ToString().Trim();
                        resumenPago.apoPat = rows["Apo_Pat"].ToString().Trim();
                        resumenPago.delSubDel = rows["Del_Subdel"].ToString().Trim();

                        existe = true;
                        db.ResumenPagoes.Add(resumenPago);
                        db.SaveChanges();
                    }

                    if (existe)
                    {

                        sSQL = "SELECT * FROM Registro_03" +
                               "  ORDER BY NSS";

                        DataTable dt2 = suaHelper.ejecutarSQL(sSQL);

                        foreach (DataRow rows in dt2.Rows)
                        {
                            Pago pago = new Pago();
                            Asegurado asegurado = new Asegurado();

                            if (!String.IsNullOrEmpty(rows["NSS"].ToString().Trim()))
                            {
                                String nss = rows["NSS"].ToString().Trim();

                                asegurado = (from s in db.Asegurados
                                             where s.PatroneId.Equals(patron.Id)
                                                && s.numeroAfiliacion.Equals(nss)
                                             select s).FirstOrDefault();

                                pago.trabajadorId = asegurado.id;
                                pago.resumenPagoId = resumenPago.id;

                                pago.ip = rows["IP"].ToString().Trim();
                                pago.NSS = rows["NSS"].ToString().Trim();
                                pago.RFC = rows["RFC"].ToString().Trim();
                                pago.CURP = rows["CURP"].ToString().Trim();
                                pago.creditoInfonavit = rows["Credito_Infonavit"].ToString().Trim();
                                pago.fid = rows["FID"].ToString().Trim();
                                pago.trabajador = rows["Trabajador"].ToString().Trim();
                                pago.sdi = (!String.IsNullOrEmpty(rows["sdi"].ToString().Trim())) ? Decimal.Parse(rows["sdi"].ToString().Trim()) : 0;
                                pago.tipoTrabajador = rows["Tipo_Trabajador"].ToString().Trim();
                                pago.jornadaSemanaReducida = rows["Jornada_Semana_Reducida"].ToString().Trim();
                                pago.diasCotizadosMes = (!String.IsNullOrEmpty(rows["Dias_Cotizados_Mes"].ToString().Trim())) ? int.Parse(rows["Dias_Cotizados_Mes"].ToString().Trim()) : 0;
                                pago.diasIncapacidad = (!String.IsNullOrEmpty(rows["Dias_Incapacidad"].ToString().Trim())) ? int.Parse(rows["Dias_Incapacidad"].ToString().Trim()) : 0;
                                pago.diasAusentismo = (!String.IsNullOrEmpty(rows["Dias_Ausentismo"].ToString().Trim())) ? int.Parse(rows["Dias_Ausentismo"].ToString().Trim()) : 0;
                                pago.cuotaFija = (!String.IsNullOrEmpty(rows["Cuota_Fija"].ToString().Trim())) ? Decimal.Parse(rows["Cuota_Fija"].ToString().Trim()) : 0;
                                pago.cuotaExcedente = (!String.IsNullOrEmpty(rows["Cuota_Excedente"].ToString().Trim())) ? Decimal.Parse(rows["Cuota_Excedente"].ToString().Trim()) : 0;
                                pago.prestacionesDinero = (!String.IsNullOrEmpty(rows["Prestaciones_Dinero"].ToString().Trim())) ? Decimal.Parse(rows["Prestaciones_Dinero"].ToString().Trim()) : 0;
                                pago.gastosMedicosPensionado = (!String.IsNullOrEmpty(rows["Gastos_Medicos_Pensionados"].ToString().Trim())) ? Decimal.Parse(rows["Gastos_Medicos_Pensionados"].ToString().Trim()) : 0;
                                pago.riesgoTrabajo = (!String.IsNullOrEmpty(rows["Riesgo_Trabajo"].ToString().Trim())) ? Decimal.Parse(rows["Riesgo_Trabajo"].ToString().Trim()) : 0;
                                pago.invalidezVida = (!String.IsNullOrEmpty(rows["Invalidez_Vida"].ToString().Trim())) ? Decimal.Parse(rows["Invalidez_Vida"].ToString().Trim()) : 0;
                                pago.guarderias = (!String.IsNullOrEmpty(rows["Guarderias"].ToString().Trim())) ? Decimal.Parse(rows["Guarderias"].ToString().Trim()) : 0;
                                pago.actRecargosIMSS = rows["Act_Recargos_IMSS"].ToString().Trim();
                                pago.diasCotizadosBimestre = (!String.IsNullOrEmpty(rows["Dias_Cotizados_Bimestre"].ToString().Trim())) ? int.Parse(rows["Dias_Cotizados_Bimestre"].ToString().Trim()) : 0;
                                pago.diasIncapacidadBimestre = (!String.IsNullOrEmpty(rows["Dias_Incapacidad_Bim"].ToString().Trim())) ? int.Parse(rows["Dias_Incapacidad_Bim"].ToString().Trim()) : 0;
                                pago.diasAusentismoBimestre = (!String.IsNullOrEmpty(rows["Dias_Ausentismo_Bim"].ToString().Trim())) ? int.Parse(rows["Dias_Ausentismo_Bim"].ToString().Trim()) : 0;
                                pago.retiro = (!String.IsNullOrEmpty(rows["Retiro"].ToString().Trim())) ? Decimal.Parse(rows["Retiro"].ToString().Trim()) : 0;
                                pago.actRecargosRetiro = rows["Act_Recargos_Retiro"].ToString().Trim();
                                pago.cesantiaVejezPatronal = (!String.IsNullOrEmpty(rows["Cesantia_Vejez_Patronal"].ToString().Trim())) ? Decimal.Parse(rows["Cesantia_Vejez_Patronal"].ToString().Trim()) : 0;
                                pago.cesantiaVejezObrera = (!String.IsNullOrEmpty(rows["Cesantia_Vejez_Obrera"].ToString().Trim())) ? Decimal.Parse(rows["Cesantia_Vejez_Obrera"].ToString().Trim()) : 0;
                                pago.actRecargosCyV = (!String.IsNullOrEmpty(rows["Act_Recargos_CyV"].ToString().Trim())) ? Decimal.Parse(rows["Act_Recargos_CyV"].ToString().Trim()) : 0;
                                pago.aportacionVoluntaria = (!String.IsNullOrEmpty(rows["Aportacion_Voluntaria"].ToString().Trim())) ? Decimal.Parse(rows["Aportacion_Voluntaria"].ToString().Trim()) : 0;
                                pago.aportacionComp = (!String.IsNullOrEmpty(rows["Aportacion_Comp"].ToString().Trim())) ? Decimal.Parse(rows["Aportacion_Comp"].ToString().Trim()) : 0;
                                pago.aportacionPatronal = (!String.IsNullOrEmpty(rows["Aportacion_Patronal"].ToString().Trim())) ? Decimal.Parse(rows["Aportacion_Patronal"].ToString().Trim()) : 0;
                                pago.amortizacion = (!String.IsNullOrEmpty(rows["Amortizacion"].ToString().Trim())) ? Decimal.Parse(rows["Amortizacion"].ToString().Trim()) : 0;
                                pago.actIMSS = (!String.IsNullOrEmpty(rows["Act_IMSS"].ToString().Trim())) ? Decimal.Parse(rows["Act_IMSS"].ToString().Trim()) : 0;
                                pago.recIMSS = (!String.IsNullOrEmpty(rows["Rec_IMSS"].ToString().Trim())) ? Decimal.Parse(rows["Rec_IMSS"].ToString().Trim()) : 0;
                                pago.actRetiro = (!String.IsNullOrEmpty(rows["Act_Retiro"].ToString().Trim())) ? Decimal.Parse(rows["Act_Retiro"].ToString().Trim()) : 0;
                                pago.actCesObr = (!String.IsNullOrEmpty(rows["Act_CesObr"].ToString().Trim())) ? Decimal.Parse(rows["Act_CesObr"].ToString().Trim()) : 0;
                                pago.cuotaExcObr = (!String.IsNullOrEmpty(rows["Cuota_ExcObr"].ToString().Trim())) ? Decimal.Parse(rows["Cuota_ExcObr"].ToString().Trim()) : 0;
                                pago.cuotaPdObr = (!String.IsNullOrEmpty(rows["Cuota_PdObr"].ToString().Trim())) ? Decimal.Parse(rows["Cuota_PdObr"].ToString().Trim()) : 0;
                                pago.cuotaGmpObr = (!String.IsNullOrEmpty(rows["Cuota_GmpObr"].ToString().Trim())) ? Decimal.Parse(rows["Cuota_GmpObr"].ToString().Trim()) : 0;
                                pago.cuotaIvObr = (!String.IsNullOrEmpty(rows["Cuota_IvObr"].ToString().Trim())) ? Decimal.Parse(rows["Cuota_IvObr"].ToString().Trim()) : 0;
                                pago.actPatIMSS = (!String.IsNullOrEmpty(rows["ActPat_IMSS"].ToString().Trim())) ? Decimal.Parse(rows["ActPat_IMSS"].ToString().Trim()) : 0;
                                pago.recPatIMSS = (!String.IsNullOrEmpty(rows["RecPat_IMSS"].ToString().Trim())) ? Decimal.Parse(rows["RecPat_IMSS"].ToString().Trim()) : 0;
                                pago.actObrIMSS = (!String.IsNullOrEmpty(rows["ActObr_IMSS"].ToString().Trim())) ? Decimal.Parse(rows["ActObr_IMSS"].ToString().Trim()) : 0;
                                pago.recObrIMSS = (!String.IsNullOrEmpty(rows["RecObr_IMSS"].ToString().Trim())) ? Decimal.Parse(rows["RecObr_IMSS"].ToString().Trim()) : 0;

                                //Guardamos el pago.
                                db.Pagos.Add(pago);
                                db.SaveChanges();
                            }//Contiene información de asegurado valida?
                        }

                    }
                }
            }
            return RedirectToAction("UploadPagos");
        }
        /**
         *  Hacemos la carga de los asegurados
         * */
        public void uploadAsegurado(String path)
        {
            SUAHelper sua = null;
            Boolean isError = false;
            try
            {
                //Realizamos la conexión
                sua = new SUAHelper(path);

                String sSQL = "SELECT a.REG_PATR , a.NUM_AFIL, a.CURP      , a.RFC_CURP, a.NOM_ASEG, " +
                              "       a.SAL_IMSS , a.SAL_INFO, a.FEC_ALT   , a.FEC_BAJ , a.TIP_TRA , " +
                              "       a.SEM_JORD , a.PAG_INFO, a.TIP_DSC   , a.VAL_DSC , a.CVE_UBC , " +
                              "       a.TMP_NOM  , a.FEC_DSC , a.FEC_FinDsc, a.ARTI_33 , a.SAL_AR33," +
                              "       a.TRA_PENIV, a.ESTADO  , a.CVE_MUN   , b.OCUPA   , b.LUG_NAC  " +
                              "  FROM Asegura a LEFT JOIN Afiliacion b  " +
                              "    ON a.REG_PATR = b.REG_PATR AND  a.NUM_AFIL = b.NUM_AFIL " +
                              "  ORDER BY a.NUM_AFIL ";

                //Ejecutamos la consulta
                DataTable dt = sua.ejecutarSQL(sSQL);
                foreach (DataRow rows in dt.Rows)
                {

                    String patronDescripcion = rows["REG_PATR"].ToString();
                    Patrone patron = new Patrone();
                    if (!patronDescripcion.Equals(""))
                    {
                        var patronTemp = from b in db.Patrones
                                         where b.registro.Equals(patronDescripcion.Trim())
                                         select b;

                        if (patronTemp != null && patronTemp.Count() > 0)
                        {
                            foreach (var patronItem in patronTemp)
                            {
                                patron = patronItem;
                                break;
                            }//Definimos los valores para la plaza
                        }
                        else
                        {
                            patron.registro = "";
                        }

                    }

                    if (!patron.registro.Trim().Equals(""))
                    {
                        Boolean bExist = false;

                        //Creamos el nuevo asegurado
                        Asegurado asegurado = new Asegurado();
                        String numAfil = rows["NUM_AFIL"].ToString().Trim();

                        //Revisamos la existencia del registro
                        var aseguradoExist = from b in db.Asegurados
                                              where b.Patrone.registro.Equals(patron.registro.Trim())
                                                && b.numeroAfiliacion.Equals(numAfil)
                                              select b;

                        if (aseguradoExist.Count() > 0)
                        {
                            foreach (var aseg in aseguradoExist)
                            {
                                asegurado = aseg;
                                bExist = true;
                                break;
                            }//Borramos cada registro.
                        }//Ya existen datos con este patron?

                        //Creamos el nuevo asegurado

                        asegurado.PatroneId = patron.Id;
                        asegurado.numeroAfiliacion = rows["NUM_AFIL"].ToString();
                        asegurado.CURP = rows["CURP"].ToString();
                        asegurado.RFC = rows["RFC_CURP"].ToString();

                        String nombrePattern = rows["NOM_ASEG"].ToString();
                        nombrePattern = nombrePattern.Replace("$", ",");

                        string[] substrings = Regex.Split(nombrePattern, ",");

                        asegurado.nombres = substrings[2];
                        asegurado.apellidoPaterno = substrings[0];
                        asegurado.apellidoMaterno = substrings[1];

                        asegurado.nombre = rows["NOM_ASEG"].ToString();
                        asegurado.salarioImss = Decimal.Parse(rows["SAL_IMSS"].ToString());
                        if (rows["SAL_INFO"].ToString().Equals(""))
                        {
                            asegurado.salarioInfo = 0;
                        }
                        else
                        {
                            asegurado.salarioInfo = Decimal.Parse(rows["SAL_INFO"].ToString());
                        }

                        asegurado.fechaAlta = DateTime.Parse(rows["FEC_ALT"].ToString());

                        if (rows["FEC_BAJ"].ToString().Equals(""))
                        {
                            asegurado.fechaBaja = null;
                        }
                        else
                        {
                            asegurado.fechaBaja = DateTime.Parse(rows["FEC_BAJ"].ToString());
                        }//Trae fecha valida?
                        asegurado.tipoTrabajo = rows["TIP_TRA"].ToString();
                        asegurado.semanaJornada = rows["SEM_JORD"].ToString();
                        asegurado.paginaInfo = rows["PAG_INFO"].ToString();
                        asegurado.tipoDescuento = rows["TIP_DSC"].ToString();
                        asegurado.valorDescuento = Decimal.Parse(rows["VAL_DSC"].ToString());

                        String cliente = rows["CVE_UBC"].ToString();

                        var clienteTemp = db.Clientes.Where(b => b.claveCliente == cliente.Trim()).FirstOrDefault();
                        var clienteTemp2 = db.Clientes.Where(b => b.claveCliente.Equals("SIN CODIGO")).FirstOrDefault();

                        if (clienteTemp != null){
                            asegurado.Cliente = (Cliente)clienteTemp;
                            asegurado.ClienteId = clienteTemp.Id;
                        }else
                        {
                            asegurado.Cliente = (Cliente)clienteTemp2;
                            asegurado.ClienteId = clienteTemp2.Id;
                            //Cliente clienteNuevo = new Cliente();
                            //clienteNuevo.claveCliente = cliente;
                            //clienteNuevo.rfc = "PENDIENTE";
                            //clienteNuevo.claveSua = "PENDIENTE";
                            //clienteNuevo.descripcion = "PENDIENTE";
                            //clienteNuevo.ejecutivo = "PENDIENTE";
                            //clienteNuevo.Plaza_id = 1;
                            //clienteNuevo.Grupo_id = 4;

                            //try
                            //{
                            //    db.Clientes.Add(clienteNuevo);
                            //    db.SaveChanges();
                            //    asegurado.ClienteId = clienteNuevo.Id;
                            //}
                            //catch (DbEntityValidationException dbEx)
                            //{
                            //    foreach (var validationErrors in dbEx.EntityValidationErrors)
                            //    {
                            //        foreach (var validationError in validationErrors.ValidationErrors)
                            //        {
                            //            Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                            //        }
                            //    }
                            //}

                        }

                        asegurado.nombreTemporal = rows["TMP_NOM"].ToString();

                        if (rows["FEC_DSC"].ToString().Equals(""))
                        {
                            asegurado.fechaDescuento = null;
                        }
                        else
                        {
                            asegurado.fechaDescuento = DateTime.Parse(rows["FEC_DSC"].ToString());
                        }//Trae fecha valida?

                        if (rows["FEC_FinDsc"].ToString().Equals(""))
                        {
                            asegurado.finDescuento = null;
                        }
                        else
                        {
                            asegurado.finDescuento = DateTime.Parse(rows["FEC_FinDsc"].ToString());
                        }//Trae fecha valida?
                        asegurado.articulo33 = rows["ARTI_33"].ToString();
                        if (rows["SAL_AR33"].ToString().Equals(""))
                        {
                            asegurado.salarioArticulo33 = 0;
                        }
                        else
                        {
                            asegurado.salarioArticulo33 = Decimal.Parse(rows["SAL_AR33"].ToString());
                        }
                        asegurado.trapeniv = rows["TRA_PENIV"].ToString();
                        asegurado.estado = rows["ESTADO"].ToString();
                        asegurado.claveMunicipio = rows["CVE_MUN"].ToString();
                        asegurado.Plaza_id = patron.Plaza_id;
                        asegurado.ocupacion = rows["OCUPA"].ToString();
                        if (rows["OCUPA"].ToString().Equals("EXTRANJERO"))
                        {
                            asegurado.extranjero = "SI";
                        }
                        else {
                            asegurado.extranjero = "NO";
                        }

                        DateTime date = DateTime.Now;
                        if (!bExist)
                        {
                            asegurado.fechaCreacion = date;
                        }
                        else
                        {
                            asegurado.fechaModificacion = date;
                        }

                        //Guardamos el asegurado
                        try
                        {
                            if (bExist)
                            {
                                db.Entry(asegurado).State = EntityState.Modified;
                            }
                            else
                            {
                                db.Asegurados.Add(asegurado);
                            }
                            db.SaveChanges();
                            if (asegurado.id > 0)
                            {
                                uploadIncapacidades(asegurado.Patrone.registro, asegurado.numeroAfiliacion, asegurado.id, path);
                                uploadMovimientos(asegurado.Patrone.registro, asegurado.numeroAfiliacion, asegurado.id, path);
                                accionesAdicionalesAsegurados(asegurado);
                            }
                        }
                        catch (DbEntityValidationException ex)
                        {
                            isError = true;
                            StringBuilder sb = new StringBuilder();

                            foreach (var failure in ex.EntityValidationErrors)
                            {
                                sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                                foreach (var error in failure.ValidationErrors)
                                {
                                    sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                    sb.AppendLine();
                                }
                            }
                        }
                    }
                }

            }
            catch (OleDbException ex)
            {
                isError = true;
                if (ex.Source != null)
                {
                    Console.WriteLine(ex.Source);
                }
            }
            finally
            {
                if (isError)
                {
                    TempData["error"] = isError;
                    TempData["viewMessage"] = "Ocurrio un error al intentar cargar el archivo de Asegurados";
                }
                else
                {
                    TempData["error"] = isError;
                    TempData["viewMessage"] = "Se ha realizado la actualización con exito!";
                }
                if (sua != null)
                {
                    sua.cerrarConexion();
                }
            }
        }
        /**
         * Realizamos la carga de los acreditados
         */
        public void uploadAcreditado(String path)
        {
            SUAHelper sua = null;
            Boolean isError = false;
            try
            {
                sua = new SUAHelper(path);

                ParametrosHelper parameterHelper = new ParametrosHelper();

                Parametro smdfParameter = parameterHelper.getParameterByKey("SMDF");
                Parametro sinfonParameter = parameterHelper.getParameterByKey("SINFON");

                //Preparamos la consulta
                String sSQL = "SELECT a.REG_PATR , a.NUM_AFIL, a.CURP      , a.RFC_CURP, a.NOM_ASEG, " +
                              "       a.SAL_IMSS , a.SAL_INFO, a.FEC_ALT   , a.FEC_BAJ , a.TIP_TRA , " +
                              "       a.SEM_JORD , a.PAG_INFO, a.TIP_DSC   , a.VAL_DSC , a.CVE_UBC , " +
                              "       a.TMP_NOM  , a.FEC_DSC , a.FEC_FinDsc, a.ARTI_33 , a.SAL_AR33," +
                              "       a.TRA_PENIV, a.ESTADO  , a.CVE_MUN   , b.OCUPA   , b.LUG_NAC  " +
                              "  FROM Asegura a LEFT JOIN Afiliacion b  " +
                              "    ON a.REG_PATR = b.REG_PATR AND  a.NUM_AFIL = b.NUM_AFIL " +
                              "  WHERE a.PAG_INFO <> '' " +
                              "  ORDER BY a.REG_PATR, a.NUM_AFIL ";

                DataTable dt = sua.ejecutarSQL(sSQL);

                foreach (DataRow rows in dt.Rows)
                {
                    String patronDescripcion = rows["REG_PATR"].ToString();
                    Patrone patron = new Patrone();
                    if (!patronDescripcion.Equals(""))
                    {
                        var patronTemp = from b in db.Patrones
                                         where b.registro.Equals(patronDescripcion.Trim())
                                         select b;

                        if (patronTemp != null && patronTemp.Count() > 0)
                        {
                            foreach (var patronItem in patronTemp)
                            {
                                patron = patronItem;
                                break;
                            }//Definimos los valores para la plaza
                        }
                        else
                        {
                            patron.registro = "";
                        }

                    }

                    if (!patron.registro.Trim().Equals(""))
                    {
                        Boolean bExist = false;

                        //Creamos el nuevo asegurado
                        Acreditado acreditado = new Acreditado();
                        String numAfil = rows["NUM_AFIL"].ToString().Trim();
                        String numCred = rows["PAG_INFO"].ToString().Trim();

                        //Revisamos la existencia del registro
                        var acreditadoExist = from b in db.Acreditados
                                              where b.Patrone.registro.Equals(patron.registro.Trim())
                                                && b.numeroAfiliacion.Equals(numAfil)
                                                && b.numeroCredito.Equals(numCred)
                                              select b;

                        if (acreditadoExist != null && acreditadoExist.Count() > 0)
                        {
                            foreach (var acred in acreditadoExist)
                            {
                                acreditado = acred;
                                bExist = true;
                                break;
                            }//Borramos cada registro.
                        }//Ya existen datos con este patron?

                        String tipoDescuento = rows["TIP_DSC"].ToString();

                        acreditado.PatroneId = patron.Id;
                        acreditado.Patrone = patron;
                        acreditado.numeroAfiliacion = rows["NUM_AFIL"].ToString();
                        acreditado.CURP = rows["CURP"].ToString();
                        acreditado.RFC = rows["RFC_CURP"].ToString();

                        String cliente = rows["CVE_UBC"].ToString();

                        var clienteTemp = db.Clientes.Where(b => b.claveCliente == cliente.Trim()).FirstOrDefault();
                        var clienteTemp2 = db.Clientes.Where(b => b.claveCliente.Equals("SIN CODIGO")).FirstOrDefault();

                        if (clienteTemp != null)
                        {
                            acreditado.Cliente = (Cliente)clienteTemp;
                            acreditado.clienteId = clienteTemp.Id;
                        }
                        else
                        {
                            acreditado.Cliente = (Cliente)clienteTemp2;
                            acreditado.clienteId = clienteTemp2.Id; ;

                            //Cliente clienteNuevo = new Cliente();
                            //clienteNuevo.claveCliente = cliente;
                            //clienteNuevo.rfc = "PENDIENTE";
                            //clienteNuevo.claveSua = "PENDIENTE";
                            //clienteNuevo.descripcion = "PENDIENTE";
                            //clienteNuevo.ejecutivo = "PENDIENTE";
                            //clienteNuevo.Plaza_id = 1;
                            //clienteNuevo.Grupo_id = 4;

                            //try
                            //{
                            //    db.Clientes.Add(clienteNuevo);
                            //    db.SaveChanges();
                            //    acreditado.clienteId = clienteNuevo.Id;
                            //}
                            //catch (DbEntityValidationException dbEx)
                            //{
                            //    foreach (var validationErrors in dbEx.EntityValidationErrors)
                            //    {
                            //        foreach (var validationError in validationErrors.ValidationErrors)
                            //        {
                            //            Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                            //        }
                            //    }
                            //}

                        }

                        String nombrePattern = rows["NOM_ASEG"].ToString();
                        nombrePattern = nombrePattern.Replace("$", ",");

                        string[] substrings = Regex.Split(nombrePattern, ",");

                        acreditado.nombre = substrings[2];
                        acreditado.apellidoPaterno = substrings[0];
                        acreditado.apellidoMaterno = substrings[1];
                        acreditado.nombreCompleto = substrings[0] + " " + substrings[1] + " " + substrings[2];
                        acreditado.ocupacion = rows["OCUPA"].ToString();
                        acreditado.fechaAlta = DateTime.Parse(rows["FEC_ALT"].ToString());

                        if (rows["FEC_BAJ"].ToString().Equals(""))
                        {
                            acreditado.fechaBaja = null;
                        }
                        else
                        {
                            acreditado.fechaBaja = DateTime.Parse(rows["FEC_BAJ"].ToString());
                        }//Trae fecha valida?

                        acreditado.idGrupo = "";
                        acreditado.numeroCredito = rows["PAG_INFO"].ToString();

                        if (rows["FEC_DSC"].ToString().Equals(""))
                        {
                            acreditado.fechaInicioDescuento = null;
                        }
                        else
                        {
                            acreditado.fechaInicioDescuento = DateTime.Parse(rows["FEC_DSC"].ToString());
                        }//Trae fecha valida?

                        if (rows["FEC_FinDsc"].ToString().Equals(""))
                        {
                            acreditado.fechaFinDescuento = null;
                        }
                        else
                        {
                            acreditado.fechaFinDescuento = DateTime.Parse(rows["FEC_FinDsc"].ToString());
                        }//Trae fecha valida?

                        DateTime date = DateTime.Now;

                        //Validamos que el ultimo movimiento no sea por baja o suspención.
                        if (sua.esValidoActualizarPorMovimiento(acreditado.Patrone.registro, acreditado.numeroAfiliacion))
                        {
                            //Validamos que el valor de los parametros sea mayor a cero.
                            if (sinfonParameter.valorMoneda > 0 && smdfParameter.valorMoneda > 0)
                            {

                                if (bExist) {
                                    if(acreditado.fechaUltimoCalculo != null){
                                //Validamos que se haya modificado el valor de los parametros para el calculo
                                        if (DateTime.Compare((DateTime)acreditado.fechaUltimoCalculo, smdfParameter.fechaCreacion) <= 0
                                        && DateTime.Compare((DateTime)acreditado.fechaUltimoCalculo, sinfonParameter.fechaCreacion) <= 0)
                                        {
                                            acreditado = calcularInfonavitInfo(acreditado, rows, tipoDescuento, Decimal.Parse(sinfonParameter.valorMoneda.ToString()), Decimal.Parse(smdfParameter.valorMoneda.ToString()));

                                        } //Se ha cambiado los parametros desde la ultima actualización ?
                                    }else{
                                        acreditado = calcularInfonavitInfo(acreditado, rows, tipoDescuento, Decimal.Parse(sinfonParameter.valorMoneda.ToString()), Decimal.Parse(smdfParameter.valorMoneda.ToString()));
                                    }
                                }
                                else
                                {
                                    acreditado = calcularInfonavitInfo(acreditado, rows, tipoDescuento, Decimal.Parse(sinfonParameter.valorMoneda.ToString()), Decimal.Parse(smdfParameter.valorMoneda.ToString()));
                                }
                            }//Los parametros son mayores a cero en su valor moneda ?
                        }//El movimiento es por baja o suspención ?

                        acreditado.Plaza_id = patron.Plaza_id;

                        if (!bExist)
                        {
                            acreditado.fechaCreacion = date;
                        }
                        else {
                            acreditado.fechaModificacion = date;
                        }

                        //Guardamos el asegurado
                        try
                        {
                            if (!bExist)
                            {
                                db.Acreditados.Add(acreditado);
                            }
                            else {
                                db.Entry(acreditado).State = EntityState.Modified;
                            }
                            db.SaveChanges();
                        }
                        catch (DbEntityValidationException ex)
                        {
                            StringBuilder sb = new StringBuilder();

                            foreach (var failure in ex.EntityValidationErrors)
                            {
                                sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                                foreach (var error in failure.ValidationErrors)
                                {
                                    sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                    sb.AppendLine();
                                }
                            }
                        }
                    }
                }

            }
            catch (OleDbException ex)
            {
                if (ex.Source != null)
                {
                    Console.WriteLine(ex.Source);
                    isError = true;
                }
            }
            finally
            {
                if (isError)
                {
                    TempData["error"] = isError;
                    TempData["viewMessage"] = "Ocurrio un error al intentar cargar el archivo de los Acreditados";
                }
                else
                {
                    TempData["error"] = isError;
                    TempData["viewMessage"] = "Se ha realizado la actualización con exito!";
                }
                if (sua != null)
                {
                    sua.cerrarConexion();
                }
            }
        }
        /**
         * Actualizamos los patrones
         *
         */
        public int RefreshBoss(String path)
        {
            SUAHelper sua = null;
            int count = 0;
            Boolean isError = false;
            try
            {
                //Realizamos la conexion
                sua = new SUAHelper(path);

                String sSQL = "SELECT REG_PAT, RFC_PAT, NOM_PAT, ACT_PAT, DOM_PAT, " +
                              "       MUN_PAT, CPP_PAT, ENT_PAT, TEL_PAT, REM_PAT, " +
                              "       ZON_PAT, DEL_PAT, CAR_ENT, NUM_DEL, CAR_DEL, " +
                              "       NUM_SUB, CAR_SUB, TIP_CON, CON_VEN, INI_AFIL," +
                              "       PAT_REP, CLASE  , FRACCION, STyPS  " +
                              "  FROM Patron   " +
                              "  ORDER BY REG_PAT ";

                //Ejecutamos nuestra consulta
                DataTable dt = sua.ejecutarSQL(sSQL);

                foreach (DataRow rows in dt.Rows)
                {
                    //Revisamos la existencia del registro

                    String patronDescripcion = rows["REG_PAT"].ToString();
                    Patrone patron = new Patrone();
                    if (!patronDescripcion.Equals(""))
                    {
                        var patronTemp = from b in db.Patrones
                                         where b.registro.Equals(patronDescripcion.Trim())
                                         select b;

                        if (patronTemp != null && patronTemp.Count() > 0)
                        {
                            foreach (var patronItem in patronTemp)
                            {
                                patron = patronItem;
                                break;
                            }//Definimos los valores para la plaza
                        }
                        else
                        {
                            patron.registro = "";
                        }

                    }

                    if (!patron.registro.Equals(""))
                    {
                        String plazaDescripcion = rows["CAR_ENT"].ToString();
                        if (!plazaDescripcion.Equals(""))
                        {
                            var plazaTemp = from b in db.Plazas
                                                 where b.descripcion.Equals(plazaDescripcion.Trim())
                                                 select b;

                            Plaza plaza = new Plaza();

                            if (plazaTemp.Count() > 0)
                            {
                                foreach (var plazaItem in plazaTemp)
                                {
                                    plaza.id = plazaItem.id;
                                    plaza.descripcion = plazaItem.descripcion;
                                    plaza.indicador = "P";
                                    break;
                                }//Definimos los valores para la plaza
                            }
                            else {
                                plaza.descripcion = plazaDescripcion.Trim();
                                plaza.indicador = "P";
                                db.Plazas.Add(plaza);
                                db.SaveChanges();

                            }//Ya existen datos con esta plaza?

                            //Modificamos los datos del patron existente
                            patron.telefono = rows["TEL_PAT"].ToString();
                            patron.domicilio = rows["DOM_PAT"].ToString();
                            patron.patRep = rows["PAT_REP"].ToString();
            /*                          patron.registro = rows["REG_PAT"].ToString();
                            patron.rfc = rows["RFC_PAT"].ToString();
                            patron.nombre = rows["NOM_PAT"].ToString();
                            patron.actividad = rows["ACT_PAT"].ToString();
                            patron.municipio = rows["MUN_PAT"].ToString();
                            patron.codigoPostal = rows["CPP_PAT"].ToString();
                            patron.entidad = rows["ENT_PAT"].ToString();
                            patron.remision = ((Boolean.Parse(rows["REM_PAT"].ToString()) == true) ? "V" : "F");
                            patron.zona = rows["ZON_PAT"].ToString();
                            patron.delegacion = rows["DEL_PAT"].ToString();
                            patron.carEnt = rows["CAR_ENT"].ToString();
                            patron.numeroDelegacion = Int32.Parse(rows["NUM_DEL"].ToString());
                            patron.carDel = rows["CAR_DEL"].ToString();
                            patron.numSub = Int32.Parse(rows["NUM_SUB"].ToString());
                            patron.Plaza_id = plaza.id;
                            patron.tipoConvenio = Decimal.Parse(rows["TIP_CON"].ToString());
                            patron.convenio = rows["CON_VEN"].ToString();
                            patron.inicioAfiliacion = rows["INI_AFIL"].ToString();
                            patron.clase = rows["CLASE"].ToString();
                            patron.fraccion = rows["FRACCION"].ToString();
                            patron.STyPS = rows["STyPS"].ToString();            */

                            //Ponemos la entidad en modo modficada y guardamos cambios
                            try
                            {
                                db.Entry(patron).State = EntityState.Modified;
                                db.SaveChanges();
                                count++;
                            }
                            catch (DbEntityValidationException ex)
                            {
                                StringBuilder sb = new StringBuilder();

                                foreach (var failure in ex.EntityValidationErrors)
                                {
                                    sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                                    foreach (var error in failure.ValidationErrors)
                                    {
                                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                        sb.AppendLine();
                                    }
                                }
                            }
                        }
                    }
                    else
                    {

                        String plazaDescripcion = rows["CAR_ENT"].ToString();
                        if (!plazaDescripcion.Equals(""))
                        {
                            var plazaTemp = from b in db.Plazas
                                            where b.descripcion.Equals(plazaDescripcion.Trim())
                                            select b;

                            Plaza plaza = new Plaza();

                            if (plazaTemp.Count() > 0)
                            {
                                foreach (var plazaItem in plazaTemp)
                                {
                                    plaza.id = plazaItem.id;
                                    plaza.descripcion = plazaItem.descripcion;
                                    plaza.indicador = "P";
                                    break;
                                }//Definimos los valores para la plaza
                            }
                            else
                            {
                                plaza.descripcion = plazaDescripcion.Trim();
                                plaza.indicador = "P";
                                db.Plazas.Add(plaza);
                                db.SaveChanges();

                            }//Ya existen datos con esta plaza?
                            //Creamos el nuevo patron
                            patron = new Patrone();

                            patron.registro = rows["REG_PAT"].ToString();
                            patron.rfc = rows["RFC_PAT"].ToString();
                            patron.nombre = rows["NOM_PAT"].ToString();
                            patron.actividad = rows["ACT_PAT"].ToString();
                            patron.domicilio = rows["DOM_PAT"].ToString();
                            patron.municipio = rows["MUN_PAT"].ToString();
                            patron.codigoPostal = rows["CPP_PAT"].ToString();
                            patron.entidad = rows["ENT_PAT"].ToString();
                            patron.telefono = rows["TEL_PAT"].ToString();
                            patron.remision = ((Boolean.Parse(rows["REM_PAT"].ToString()) == true) ? "V" : "F");
                            patron.zona = rows["ZON_PAT"].ToString();
                            patron.delegacion = rows["DEL_PAT"].ToString();
                            patron.carEnt = rows["CAR_ENT"].ToString();
                            patron.numeroDelegacion = Int32.Parse(rows["NUM_DEL"].ToString());
                            patron.carDel = rows["CAR_DEL"].ToString();
                            patron.numSub = Int32.Parse(rows["NUM_SUB"].ToString());
                            patron.Plaza_id = plaza.id;
                            patron.tipoConvenio = Decimal.Parse(rows["TIP_CON"].ToString());
                            patron.convenio = rows["CON_VEN"].ToString();
                            patron.inicioAfiliacion = rows["INI_AFIL"].ToString();
                            patron.patRep = rows["PAT_REP"].ToString();
                            patron.clase = rows["CLASE"].ToString();
                            patron.fraccion = rows["FRACCION"].ToString();
                            patron.STyPS = rows["STyPS"].ToString();

                            //Guardamos el patron
                            try
                            {
                                db.Patrones.Add(patron);
                                db.SaveChanges();
                                count++;
                            }
                            catch (DbEntityValidationException ex)
                            {
                                StringBuilder sb = new StringBuilder();

                                foreach (var failure in ex.EntityValidationErrors)
                                {
                                    sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                                    foreach (var error in failure.ValidationErrors)
                                    {
                                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                        sb.AppendLine();
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (OleDbException ex)
            {
                if (ex.Source != null)
                {
                    Console.WriteLine(ex.Source);
                    isError = true;
                }
            }
            finally
            {
                if (sua != null)
                {
                    sua.cerrarConexion();
                }
            }

            if (isError)
            {
                TempData["error"] = isError;
                TempData["viewMessage"] = "Ocurrio un error al intentar cargar el archivo";
            }
            else {
                TempData["error"] = isError;
                TempData["viewMessage"] = "Se ha realizado la actualización de los Patrones con exito!";
            }

            return count;
        }
        public void uploadMovimientos(String registro, String numeroAfiliacion, int aseguradoId, String path)
        {
            SUAHelper sua = null;
            try
            {
                //Realizamos la conexión
                sua = new SUAHelper(path);

                String sSQL = "SELECT a.REG_PATR , a.NUM_AFIL , a.TIP_MOVS  , a.FEC_INIC , a.CON_SEC  , " +
                              "       a.NUM_DIAS , a.SAL_MOVT , a.SAL_MOVT2 , a.MES_ANO  , a.FEC_REAL , " +
                              "       a.FOL_INC  , a.CVE_MOVS , a.SAL_MOVT3 , a.TIP_INC  , a.EDO_MOV  , " +
                              "       a.FEC_EXT  , a.SAL_ANT1 , a.SAL_ANT2  , a.SAL_ANT3 , a.ART_33   , " +
                              "       a.TIP_SAL  , a.TIP_RIE  , a.TIP_REC   , a.NUM_CRE  , a.VAL_DES  , " +
                              "       a.TIP_DES  , a.TAB_DISM " +
                              "  FROM Movtos a  " +
                              "  WHERE a.REG_PATR = '" + registro + "'" +
                              "    AND a.NUM_AFIL = '" + numeroAfiliacion + "'" +
                              "  ORDER BY a.NUM_AFIL ";

                //Ejecutamos la consulta
                DataTable dt = sua.ejecutarSQL(sSQL);
                foreach (DataRow rows in dt.Rows)
                {

                    String folio = rows["FOL_INC"].ToString();
                    MovimientosAsegurado movimiento = new MovimientosAsegurado();

                    movimiento.fechaInicio = DateTime.Parse(rows["FEC_INIC"].ToString());
                    movimiento.aseguradoId = aseguradoId;
                    movimiento.sdi = rows["SAL_MOVT"].ToString();
                    String tipoMov = "01";
                    if (!string.IsNullOrEmpty(rows["TIP_MOVS"].ToString().Trim()))
                    {
                        tipoMov = rows["TIP_MOVS"].ToString().Trim();
                    }

                    //Validamos que ese movimiento no se haya guardado anteriormente
                    var movTemp = (from s in db.MovimientosAseguradoes
                                  .Where(s => s.aseguradoId.Equals(aseguradoId)
                                  && s.catalogoMovimiento.tipo.Equals(tipoMov.Trim())
                                  && s.fechaInicio.Equals(movimiento.fechaInicio))
                                   select s).FirstOrDefault();

                    if (movTemp == null)
                    {

                        if (rows["NUM_DIAS"].ToString() != null && !rows["NUM_DIAS"].ToString().Equals(""))
                        {
                            movimiento.numeroDias = int.Parse(rows["NUM_DIAS"].ToString());
                        }

                        if (folio != null && !folio.Equals(""))
                        {

                            var incapacidadTemp = from b in db.Incapacidades
                                                  where b.folioIncapacidad.Equals(folio.Trim())
                                                  select b;

                            if (incapacidadTemp != null && incapacidadTemp.Count() > 0)
                            {
                                foreach (var incapacidadItem in incapacidadTemp)
                                {
                                    movimiento.Incapacidade = incapacidadItem;
                                    movimiento.incapacidadId = incapacidadItem.id;
                                    break;
                                }//Definimos los valores para la plaza
                            }
                        }

                        var tipoTemp = db.catalogoMovimientos.Where(b => b.tipo == tipoMov).FirstOrDefault();

                        if (tipoTemp != null)
                        {
                            movimiento.catalogoMovimiento = (catalogoMovimiento)tipoTemp;
                        }
                        else
                        {
                            catalogoMovimiento catMov = new catalogoMovimiento();
                            catMov.id = 1;
                            catMov.tipo = "01";
                            movimiento.catalogoMovimiento = catMov;
                        }

                        movimiento.credito = rows["NUM_CRE"].ToString();
                        movimiento.estatus = rows["EDO_MOV"].ToString();

                        //Guardamos el movimiento
                        try
                        {

                            db.MovimientosAseguradoes.Add(movimiento);
                            db.SaveChanges();
                        }
                        catch (DbEntityValidationException ex)
                        {
                            StringBuilder sb = new StringBuilder();

                            foreach (var failure in ex.EntityValidationErrors)
                            {
                                sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                                foreach (var error in failure.ValidationErrors)
                                {
                                    sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                    sb.AppendLine();
                                }
                            }
                        }
                    }
                }//Ya existe ese movimiento for fecha y tipo?
            }
            catch (OleDbException ex)
            {
                if (ex.Source != null)
                {
                    Console.WriteLine(ex.Source);
                }
            }
            finally
            {
                if (sua != null)
                {
                    sua.cerrarConexion();
                }
            }
        }
        public void uploadIncapacidades(String registro, String numeroAfiliacion, int aseguradoId, String path)
        {
            SUAHelper sua = null;
            try
            {
                //Realizamos la conexión
                sua = new SUAHelper(path);

                String sSQL = "SELECT a.REG_PAT  , a.NUM_AFI      , a.FEC_ACC   , a.FOL_INC , a.GRUPO_INC , " +
                              "       a.REC_REV  , a.CONSECUENCIA , a.TIP_RIE   , a.RAM_SEG , a.SECUELA   , " +
                              "       a.CON_INC  , a.DIA_SUB      , a.POR_INC   , a.IND_DEF , a.FEC_TER     " +
                              "  FROM Incapacidades a  " +
                              "  WHERE a.REG_PAT = '" + registro + "'" +
                              "    AND a.NUM_AFI = '" + numeroAfiliacion + "'" +
                              "  ORDER BY a.NUM_AFI ";

                //Ejecutamos la consulta
                DataTable dt = sua.ejecutarSQL(sSQL);
                foreach (DataRow rows in dt.Rows)
                {

                    Boolean bExist = false;

                    String folio = rows["FOL_INC"].ToString();
                    Incapacidade incapacidad = new Incapacidade();
                    var incapacidadTemp = from b in db.Incapacidades
                                          where b.folioIncapacidad.Equals(folio.Trim())
                                          select b;

                    if (incapacidadTemp != null && incapacidadTemp.Count() > 0)
                    {
                        foreach (var incapacidadItem in incapacidadTemp)
                        {
                            incapacidad = incapacidadItem;
                            bExist = true;
                            break;
                        }//Definimos los valores para la plaza
                    }

                    //Creamos la nueva incapacidad
                    if (!bExist)
                    {
                        incapacidad.aseguradoId = aseguradoId;
                        incapacidad.folioIncapacidad = rows["FOL_INC"].ToString();
                    }
                    incapacidad.fechaAcc = DateTime.Parse(rows["FEC_ACC"].ToString());
                    incapacidad.grupoIncapacidad = rows["GRUPO_INC"].ToString();
                    incapacidad.recRev = rows["REC_REV"].ToString();
                    incapacidad.consecuencia = rows["CONSECUENCIA"].ToString();

                    incapacidad.tieRie = rows["TIP_RIE"].ToString();
                    incapacidad.ramSeq = rows["RAM_SEG"].ToString();
                    incapacidad.secuela = rows["SECUELA"].ToString();
                    incapacidad.conInc = rows["CON_INC"].ToString();
                    incapacidad.diaSub = int.Parse(rows["DIA_SUB"].ToString());
                    incapacidad.porcentajeIncapacidad = Decimal.Parse(rows["POR_INC"].ToString());
                    incapacidad.indDef = rows["IND_DEF"].ToString();
                    incapacidad.fecTer = DateTime.Parse(rows["FEC_TER"].ToString());
                    incapacidad.tipoIncapacidad = incapacidad.ramSeq.Substring(0, 1);
                    //Guardamos la incapacidad
                    try
                    {
                        if (bExist)
                        {
                            db.Entry(incapacidad).State = EntityState.Modified;
                        }
                        else
                        {
                            db.Incapacidades.Add(incapacidad);
                        }
                        db.SaveChanges();
                    }
                    catch (DbEntityValidationException ex)
                    {
                        StringBuilder sb = new StringBuilder();

                        foreach (var failure in ex.EntityValidationErrors)
                        {
                            sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                            foreach (var error in failure.ValidationErrors)
                            {
                                sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                sb.AppendLine();
                            }
                        }
                    }
                }

            }
            catch (OleDbException ex)
            {
                if (ex.Source != null)
                {
                    Console.WriteLine(ex.Source);
                }
            }
            finally
            {
                if (sua != null)
                {
                    sua.cerrarConexion();
                }
            }
        }