public AutorizacionVer Anular(int authId) { var anulacionOs = new AnulacionOS(); var autorizacionVer = new AutorizacionVer(); try { var auth = new AutorizacionRepository(); Anular model = auth.GetAuthDataById(authId); switch (model.OSId) { case 114: //Swiss Medical var swiss = new OSSwiss(); anulacionOs = swiss.Anular(model); break; case 132: var acaSalud = new OSAcaSalud(); anulacionOs = acaSalud.AnularAsync(model).Result; break; case 137: case 192: var boreal = new OSBoreal(); anulacionOs = boreal.Anular(model); break; case 140: var medife = new OSMedife(); anulacionOs = medife.Anular(model); break; case 181: var redSeguros = new OSRedSeguros(); anulacionOs = redSeguros.Anular(model); break; case 148: var sancor = new OSSancor(); anulacionOs = sancor.Anular(model); break; case 141: //Hay que cambiar por la correspondiente var os = new OSPatrones(); anulacionOs = os.Anular(model); break; } if (!anulacionOs.HasError) { if (Anular(anulacionOs)) { return(GetAuthBy(authId)); } //todo mapear objeto //return Al menos retornar codigo de anulacion } else { autorizacionVer.HasError = anulacionOs.HasError; autorizacionVer.Error = anulacionOs.Error; } } catch (Exception ex) { autorizacionVer.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? "", authId, string.Empty); } return(autorizacionVer); }
public AutorizacionVer Autorizacion(Authorize model) { var autorizacionOs = new AutorizacionOs(); var autorizacionVer = new AutorizacionVer(); try { model.Efector = DatosPrestador(Convert.ToInt32(model.PrestadorId)); switch (model.OSId) { case 0: break; case 1: //Swiss Medical var swiss = new OSSwiss(); autorizacionOs = swiss.Autorizar(model); break; case 2: var acaSalud = new OSAcaSalud(); autorizacionOs = acaSalud.Autorizar(model).Result; break; case 5: case 8: var boreal = new OSBoreal(); autorizacionOs = boreal.Autorizar(model); break; case 6: var medife = new OSMedife(); autorizacionOs = medife.Autorizar(model); break; case 7: var redSeguros = new OSRedSeguros(); autorizacionOs = redSeguros.Autorizar(model); break; case 9: var sancor = new OSSancor(); autorizacionOs = sancor.Autorizar(model); break; case 10: //Luz y Fuerza break; case 11: var os = new OSPatrones(); autorizacionOs = os.Autorizar(model); break; } if (!autorizacionOs.HasError) { var authNr = Autorizar(autorizacionOs); //Todo Guardar en Base de Datos // return cod Autorizacion; //Al menos retornar codigo de Autorizacion autorizacionVer.AuthNr = autorizacionOs.CnroAutorizacion;// .CcodinternoAutorizacion; autorizacionVer.Fecha = autorizacionOs.DfecAutorizacion; autorizacionVer.Afiliado = autorizacionOs.CnomAfiliado; autorizacionVer.Plan = autorizacionOs.CdescripcionPlan; autorizacionVer.Iva = autorizacionOs.CdescripcionIva; autorizacionVer.IdentificacionNro = autorizacionOs.NnroAfiliado; autorizacionVer.Aseguradora = model.OsNombre; autorizacionVer.Matricula = model.Efector.Matricula.ToString(); autorizacionVer.Profesional = model.Efector.Name; autorizacionVer.Estado = autorizacionOs.EstadoAutorizacion; autorizacionVer.Id = authNr; foreach (var det in autorizacionOs.AutorizacionOsDet) { var authVerDet = new AutorizacionVerDet { Prestacion = "(" + det.PracticaId + ") - " + det.PracticaDes, Cantidad = (string.IsNullOrEmpty(det.PracticaCantAprob) ? "1" : det.PracticaCantAprob), Estado = det.PracticaIdEstado, Observacion = det.PracticaDetAuth }; autorizacionVer.Detalle.Add(authVerDet); } ///Todo:Enviar Mail con info de Autoizacion //SendMail.SendMailAutirizacion(autorizacionVer); } else { autorizacionVer.HasError = autorizacionOs.HasError; autorizacionVer.Error = autorizacionOs.Error; } } catch (Exception ex) { autorizacionVer.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? string.Empty, model, string.Empty); } return(autorizacionVer); }
public Afiliado Elegibilidad(Elegibilidad model) { try { var prestador = new PrestadorRepository(); var matricula = 0; switch (model.OsId) { case 0: break; case 1: //Swiss Medical var swiss = new OSSwiss(); return(swiss.Eligibilidad(model.Credencial)); case 2: var acaSalud = new OSAcaSalud(); matricula = prestador.GetMatriculaFromIdPre(model.IdPre); return(acaSalud.Elegibilidad(model.Credencial, matricula)); case 3: break; case 4: break; case 5: case 8: var boreal = new OSBoreal(); return(boreal.Eligibilidad(model.Credencial)); case 6: var medife = new OSMedife(); return(medife.Eligibilidad(model.Credencial)); case 7: var redSeguros = new OSRedSeguros(); return(redSeguros.Eligibilidad(model.Credencial)); case 9: var sancor = new OSSancor(); matricula = prestador.GetMatriculaFromIdPre(model.IdPre); return(sancor.Elegibilidad(model.Credencial)); case 10: var lyf = new OSLuzFuerza(); var datos = prestador.GetInfoFromIdPre(model.IdPre); Afiliado afiliado = lyf.Eligibilidad(model.Credencial, Convert.ToInt32(datos.Matricula)).Result; if (!afiliado.HasError) { Authorize autoriza = new Authorize(model.OsId, model.IdPre, model.IdPre, model.Credencial, string.Empty, new List <Prestacion>(), model.UserId); autoriza.AfiliadoNombre = afiliado.Name; autoriza.AfiliadoPlan = ""; autoriza.Efector = new Efector(); autoriza.Efector.Matricula = matricula; autoriza.Efector.Name = datos.Name; autoriza.Prestaciones = new List <Prestacion>(); var presta = new Prestacion(); presta.Cant = 1; presta.CodPres = "420101"; presta.Descripcion = "CONSULTA MEDICA"; autoriza.Prestaciones.Add(presta); var autorizacionOs = lyf.Autorizar(autoriza, afiliado.Plan); if (!autorizacionOs.HasError) { var autorizacionRepository = new AutorizacionRepository(); var authNr = autorizacionRepository.Autorizar(autorizacionOs); afiliado.Nr = authNr.ToString(); } } else { if (afiliado.Name == "afiliado inexistente") { afiliado.HasError = false; } else { if (afiliado.Name == "afiliado con 2 consultas realizadas en el mes") { afiliado.Name = "El afiliado supero el límite de consumo mensual. Por favor digerirse a las oficinas de la Obra Social para la autorización de la práctica. "; } else { if (afiliado.Name != "Error el formato del carnet es incorrecto! Ej. xx-xxxxx-x/xx") { afiliado.SetError(GetType().Name, 0, "Luz y Fuerza: " + afiliado.Name, string.Empty, model.Credencial + ";" + datos.Matricula, string.Empty); afiliado.Name = "Se ha producido un error desconocido. Por favor comunicarse con el Área de Sistemas del Circulo Medico de Salta"; } } } } afiliado.Plan = ""; return(afiliado); //case 11: // var os = new OSOspatrones(); // matricula = prestador.GetMatriculaFromIdPre(model.IdPre); // return os.Eligibilidad(model.Credencial, matricula); } } catch (Exception ex) { var errors = new Errores(); errors.SetError(GetType().Name, GetMethod.ErrorLine(ex), ex.Message, ex.InnerException?.ToString() ?? string.Empty, model, string.Empty); } return(new Afiliado()); }