Beispiel #1
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();
                }
            }
        }
Beispiel #2
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");
        }
Beispiel #3
0
        /**
         * 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();
            }
        }