/** * 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(); } } }
/** * 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(); } } }
/** * 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; }