/** * 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(); } } }
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"); }
/** * Realizamos el calculo del salario diario y la fecha de entrada */ private void accionesAdicionalesAsegurados(Asegurado asegurado) { int aseguradoId = asegurado.id; DateTime ahora = DateTime.Now; //obtenemos el ultimo reingreso, si existe. var movTemp = (from s in db.MovimientosAseguradoes .Where(s => s.aseguradoId.Equals(aseguradoId) && s.catalogoMovimiento.tipo.Equals("08")) .OrderByDescending(s => s.fechaInicio) select s).FirstOrDefault(); if (movTemp != null) { asegurado.fechaAlta = movTemp.fechaInicio; } if (asegurado.salarioDiario == null) { asegurado.salarioDiario = 0; } var movTemp2 = (from s in db.MovimientosAseguradoes where s.aseguradoId.Equals(aseguradoId) && (s.catalogoMovimiento.tipo.Equals("01") || s.catalogoMovimiento.tipo.Equals("02") || s.catalogoMovimiento.tipo.Equals("07") || s.catalogoMovimiento.tipo.Equals("08") || s.catalogoMovimiento.tipo.Equals("13")) orderby s.fechaInicio descending select s).ToList(); MovimientosAsegurado movto = new MovimientosAsegurado(); if (movTemp2 != null && movTemp2.Count() > 0) { foreach (var movItem in movTemp2) { movto = movItem; break; } if (movto.catalogoMovimiento.tipo.Trim().Equals("08")) { asegurado.salarioDiario = Decimal.Parse(movto.sdi.ToString()); asegurado.salarioImss = Decimal.Parse(movto.sdi.ToString()); } else if (movto.catalogoMovimiento.tipo.Trim().Equals("01") || movto.catalogoMovimiento.tipo.Trim().Equals("07") || movto.catalogoMovimiento.tipo.Trim().Equals("13")) { long annos = DatesHelper.DateDiffInYears(asegurado.fechaAlta, ahora); if (annos.Equals(0)) { annos = 1; } Factore factor = (db.Factores.Where(x => x.anosTrabajados == annos).FirstOrDefault()); if (factor != null) { asegurado.salarioDiario = Decimal.Parse(movto.sdi.Trim()) / factor.factorIntegracion; asegurado.salarioImss = Decimal.Parse(movto.sdi.ToString()); } else { asegurado.salarioDiario = 0; } } else if (movto.catalogoMovimiento.tipo.Trim().Equals("02")) { asegurado.salarioDiario = 0; asegurado.salarioImss = 0; } } else { long annos = DatesHelper.DateDiffInYears(asegurado.fechaAlta, ahora); if (annos.Equals(0)) { annos = 1; } Factore factor = (db.Factores.Where(x => x.anosTrabajados == annos).FirstOrDefault()); if (factor != null) { asegurado.salarioDiario = asegurado.salarioImss / factor.factorIntegracion; } else { asegurado.salarioDiario = 0; } } if (asegurado.fechaBaja.HasValue) { asegurado.salarioDiario = 0; asegurado.salarioImss = 0; } db.Entry(asegurado).State = EntityState.Modified; db.SaveChanges(); Acreditado acreditado = (from s in db.Acreditados where s.PatroneId == asegurado.PatroneId && s.numeroAfiliacion.Equals(asegurado.numeroAfiliacion) select s).FirstOrDefault(); if (acreditado != null) { acreditado.fechaAlta = asegurado.fechaAlta; acreditado.sd = Decimal.Parse(asegurado.salarioDiario.ToString()); acreditado.sdi = Double.Parse(asegurado.salarioImss.ToString()); //calcular el descuento tipo uno que ocupa sdi DateTime date = DateTime.Now; Decimal valueToCalculate = Decimal.Parse(asegurado.valorDescuento.ToString()); Decimal newValue = Decimal.Parse("0.0"); if (asegurado.tipoDescuento.Trim().Equals("1")) { try { ParametrosHelper parameterHelper = new ParametrosHelper(); Parametro sinfonParameter = parameterHelper.getParameterByKey("SINFON"); decimal sinfon = decimal.Parse(sinfonParameter.valorMoneda.ToString()); // Descuento tipo porcentaje acreditado.cuotaFija = 0; acreditado.vsm = 0; acreditado.porcentaje = valueToCalculate / 100; newValue = (Decimal.Parse(acreditado.sdi.ToString()) * 60); newValue = newValue * (valueToCalculate / 100); newValue = newValue + sinfon; acreditado.descuentoBimestral = newValue; acreditado.descuentoMensual = Math.Round(acreditado.descuentoBimestral / 2, 3); Decimal newValue2 = acreditado.descuentoMensual * Decimal.Parse((7 / 30.4).ToString()); newValue2 = Math.Round(newValue2, 3); acreditado.descuentoSemanal = newValue2; newValue2 = acreditado.descuentoMensual * Decimal.Parse((14 / 30.4).ToString()); newValue2 = Math.Round(newValue2, 3); acreditado.descuentoCatorcenal = newValue2; acreditado.descuentoQuincenal = Math.Round(acreditado.descuentoBimestral / 4, 3); acreditado.descuentoVeintiochonal = Math.Round(acreditado.descuentoMensual * Decimal.Parse((28 / 30.4).ToString()), 3); acreditado.descuentoDiario = Math.Round(acreditado.descuentoBimestral / Decimal.Parse("60.1"), 3); acreditado.fechaUltimoCalculo = date.Date; } catch (OleDbException ex) { if (ex.Source != null) { Console.WriteLine(ex.Source); } } } db.Entry(acreditado).State = EntityState.Modified; db.SaveChanges(); } }