Ejemplo n.º 1
0
        /**
         * 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();
                }
            }
        }
Ejemplo n.º 2
0
        /**
         *  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();
                }
            }
        }
Ejemplo n.º 3
0
        /**
         * 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;
        }