{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/utilidades/SinClasificar.ts","webpack:///./app/servicios/HttpClient.ts","webpack:///./app/utilidades/Validador.ts","webpack:///./app/utilidades/Enlazar.ts","webpack:///./app/modelos/reestablecerContrasena.ts","webpack:///./app/modelos/EnumClasses.ts","webpack:///./app/modelos/PrestadorModeloConsulta.ts","webpack:///./app/modelos/Centro.ts","webpack:///./app/modelos/Persona.ts","webpack:///./app/repositorios/GeneralRepositorio.ts","webpack:///./app/main.ts","webpack:///./app/controladores/AfiliadoControlador.ts","webpack:///./app/repositorios/AfiliadoRepositorio.ts","webpack:///./app/modelos/reemboso.ts","webpack:///./app/modelos/preCertificada.ts","webpack:///./app/modelos/transaccionAzul.ts","webpack:///./app/controladores/PrestadorControlador.ts","webpack:///./app/modelos/prestadorLogin.ts","webpack:///./app/repositorios/prestadorRepositorio.ts","webpack:///./app/modelos/registroPrestador.ts","webpack:///./app/modelos/prestadorContransena.ts","webpack:///./app/modelos/LoteWebSite.ts","webpack:///./app/modelos/GuardarPrecioPss.ts","webpack:///./app/modelos/Representante.ts","webpack:///./app/modelos/Empresa.ts","webpack:///./app/modelos/CentroView.ts","webpack:///./app/modelos/Medico.ts","webpack:///./app/modelos/MedicoEspecialidad.ts","webpack:///./app/modelos/MedicoCentro.ts","webpack:///./app/controladores/ContactoController.ts","webpack:///./app/modelos/contacto.ts","webpack:///./app/repositorios/ContactoRepositorio.ts","webpack:///./app/controladores/indexControlador.ts","webpack:///./app/controladores/PromotorControlador.ts","webpack:///./app/repositorios/PromotorRepositorio.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","alerta","msj","titulo","type","SwalType","INFO","swal","title","text","icon","baseURl","isNaN","Math","abs","undefined","String","parseInt","Number","toFixed","j","length","substr","replace","slice","date","Date","split","btnConfirm","buttons","then","result","obj","campos","keys","forEach","k","response","JSON","parse","Message","WARNING","variable","vars","window","location","search","substring","pair","decodeURIComponent","console","log","sessionStorage","clear","document","cookie","href","parts","pop","shift","postJson","url","body","success","error","fetch","method","headers","stringify","ok","contentType","indexOf","json","e","status","getJson","postFile","file","data","FormData","append","HttpClient","validaContrasena","contrasena","contrasenaConf","regexNumero","RegExp","regexMayuscula","test","validarCamposArray","className","unValid","push","$","addClass","removeClass","validarCampos","selector","validarCamposSiblings","siblings","enlazarObjetoInput","val","enlazarInputObjeto","enlazarInputObjetoPorClase","clase","each","this","id","enlazarInputFilePorClase","arr","Array","IdTipoDoc","File","files","enlazarInputFilePorClase2","FileList","enlazarInputFilePorClase3","enlazarObjetoValor","idPadre","selectorType","html","limpiarObjecto","enlazarListaPlantilla","lista","fuente","destino","plantilla","index","map","objCambiado","cedula","correo","afiliadoId","nss","reestablecerContrasenaAfiliado","RncoCedula","CedulaRepresentante","Correo","IdPss","reestablecerContrasenaPss","Identificacion","IdPromotor","reestablecerContrasenaPromotor","ContrasenaAnterior","ContrasenaNueva","ConfirmarContrasena","CambioCredenciales","EnumTipoSolicitudPSS","EnumTipoIdentificacion","EnumTipoPromotor","EnumCategoriaPromotor","EnumEstadoFactura","Nombre","IdTipo","IdProvincia","PrestadorModeloConsulta","IdSolicitudCentro","IdTipoContrato","Contacto","IdGrupo","Grupo","CodSespas","Habilitacion","IdAreaSalud","Provincia","IdMunicipio","Municipio","Direccion","Estado","IdRepresentante","IdClasificacion","Representante","Telefonos","Cedula","Nombre1","Apellido1","Apellido2","IdNacionalidad","Sexo","IdEstadoCivil","FechaNacimientoStr","FechaNacimiento","Nombres","Apellidos","httpClient","obtenerDatosByCedula","handler","defaultHttpErrorHandler","obtenerDatosByRNC","RNC","obtenerRegiones","obtenerProvincias","obtenerMunicipios","obtenerTiposPss","obtenerSexo","obtenerNacionalidades","obtenerEstadosCiviles","obtenerTitulos","afiliadoControlador","prestadorControlador","contactoController","indexControlador","promotorControlador","afiliadoRepositorio","validador","enlazar","validarRegistrar","afiliado","Id","Validado","OrigenCreacion","FechaCreacion","Nss","IdAfiliado","Contrasena","validaAfiliado","registrar","iniciaSesion","ShowLoader","getItem","setItem","request","iniciarSesion","revisarSesion","enlazarDatosAfiliado","attr","enlazarPlanesAfiliado","source","planes","x","Plan","FechaInicioStr","obtenerDatosPlanes","editar","removeAttr","guardar","guardarAfiliado","enlazarDatosNucleo","nucleo","nombres","NombreAfiliado","li","children","a","obtenerNucleoFamiliar","mostrarAfiliado","element","obtenerDatosAfiliado","mostrarAfiliadosPorPromotor","promotorId","Afiliados","Estatus","EstatusAfiliado","PlanPrincipal","PlanComplementario","FechaEntrada","FechaInicioVigenciaPlanStr","empty","DataTable","columns","HideLoader","obtenerDatosAfiliadoPorPromotor","mostrarConsumo","consumo","procentajeAcc","ConsumidoAccidenteTransito","TotalAccidenteDeTransito","procentajeDisponibleAcc","DisponibleAccidenteTransito","procentajeFarmacia","ConsumoFarmacia","TotalFarmacia","procentajeDisponibleFarmacia","DisponibleFarmacia","formatNumber","ConsumoTotalRiesgo","DisponibleTotalRiesgo","mostrarConsumoAltoCosto","mostrarAutorizaciones","obtenerDatosConsumo","atTotal","Consumido","atDisponible","Disponible","porcentajeDisponible","TotalAltoCosto","porcentajeConsumido","obtenerDatosConsumoAltoCosto","Autorizaciones","NumeroDeAutorizacion","PrestadorDeServicios","Origen","Fecha","FechaStr","TotalCubierto","obtenerDatosHistorialAutorizaciones","enlazarDatosConsumo","enlazarReembolso","obtenerDatosReembolso","enlazarHistorialReembolso","historial","enlazarHistorialPreCertificada","enlazarFacturasPendientes","facturas","facturaPendiente","obtenerFacturas","enlazarHistorialFacturas","obtenerFacturasPagadas","enlazarHistorialFacturasPagadasPorPromotor","IdFactura","IdCliente","TipoCliente","Cliente","EstatusPago","CoberturaDesdeHasta","CoberturaInicioStr","CoberturaFinStr","FechaGeneracion","FechaGeneracionStr","FechaPago","FechaPagoStr","NumeroAprobacionTarjeta","Vencimiento","VencimientoStr","Monto","MontoStr","recibo","fn","isDataTable","order","pageLength","lengthMenu","obtenerFacturasPorPromotor","PAGADA","enlazarHistorialFacturasPendientesPorPromotor","factura","filter","PENDIENTE_PAGO","validarYGuardarReembolso","camposValidar","guardarReembolso","manejarRespuestaGuardarReembolso","promises","guardarImagenReembolso","IdSolicitudReembolso","Promise","all","some","v","limpiarReembolso","enlazarPreCertificada","obtenerDatosPreCertificadas","validarYGuardarPreCertificada","guardarPreCertificada","manejarRespuestaPreCertificada","guardarImagenPreCertificada","IdSolicitudPrecertificada","enlazarFacturaCabecera","idfactura","obtenerFacturaCabecera","enlazarDetalleFactura","detalleFacturas","Descripcion","Totaldetalle","obtenerFacturaDetalle","TransaccionAzulGuardar","transaccionAzul","GuardarTransaccionAzul","solicitudReestablecerContrasena","modelo","recuperarContrasena","cerrarSesion","clearStorageCookies","ERROR","obtenerDatosHistorial","valid","model","action","reembolso","idAfiliado","tipo","getElementById","pdf","NumeroAutorizacion","idPromotor","estadoFactura","IdTipoCliente","SUCCESS","trim","NombrePss","RazonSolicitud","FechaSolicitud","FechaSolicitudStr","FechaServicio","FechaServicioStr","MontoPagado","FormaPago","NumeroCuenta","TipoCuenta","IdBanco","Banco","DiasCompromiso","HorasCompromiso","MinutosCompromiso","EstatusSolicitud","RP","CAR","CC","Reembolso","Telefono","IM","HC","OSC","PreCertificada","IdTransaccion","OrderNumber","Amount","Itbis","AuthorizationCode","DateTime","ResponseCode","IsoCode","RRN","DataVaultToken","DataVaultExpiration","DataVaultBrand","AzulOrderId","ResponseMessage","TransaccionAzul","repositorio","generalRepo","login","prestadorLogin","loginModel","prestador","validarYRegistrar","nuevoPrestador","prestadorRegistrado","enlazarDatosPrestador","consultarPrestador","modeloConsulta","obtenerPrestadorConsulta","enlazarPrestadores","cargarBusquedaPss","includes","getQueryVariable","cambiarContrasena","contrasenas","ContrasenaConfirmacion","respose","enlazarHistorialReclamacionesPss","pss","obtenerHistorialReclamaciones","RncCedula","enlazarDatosTarifa","IdPrestador","Procedimientos","PreTarifas","EstadoCorto","Detalle","procedimiento","detalle","sort","first","second","CodSimon","Procedimiento","PrecioArs","PrecioPss","Opciones","CodMetasalud","ordering","el","querySelectorAll","addEventListener","CambiarPrecioBtnClickHandler","elbt_GetAllPropuestaPss","EsperandoPorPropuestaArs","obtenerTarifaPrestador","dataset","codsimon","codmetasalud","estado","precioars","preciopss","modal","GuardarCambiosProcedimientos","reload","modeloPrecio","guardarPrecioProcedmiento","EnviarNotificacionNuevosCambiosTarifa","prestdor","guardarPss","GuardarLote","guardarLoteWebsite","manejarRespuestaLoteWebSite","guardarArchivoLote","IdLoteWebSite","BuscarPssId","idPss","nombre","obtenerDatosPssId","BuscarPssRnc","obtenerDatosPssRnc","enlazarConsultaRepresentanteByCedula","persona","Fechnac","getDate","getMonth","getFullYear","ESTACIVIL","enlazarEspecialidades","obtenerEspecialidades","enlazarClasificaciones","obtenerClasificaciones","enlazarProvinciasRepresentante","enlazarMunicipiosRepresentante","consultarCentros","obtenerCentrosMedicos","centros","table","centro","row","add","IdCentro","draw","enlazarCentros","GuardarPssMedico","medico","getFechaNacimiento","especialidades","Especialidades","IdMedicoEspecialidad","IdEspecialidad","IdSolicitudMedico","Tipo","TipoEspecialidad","Centros","tel","TelCasaMedico","IdTelMedico","TelCelularMedico","TelConsultorioMedico","camposInvalidosMedico","camposInvalidosCentroMedico","NombreCentro","camposInvalidosTelefono","confirmar","DocumentosPss","GuardarPssCentro","camposCentroValidar","camposRepresentanteValidar","TelCentro1","IdTelCentro","TelCentro2","TelCentro3","TelCentro4","representante","NombreRepresentante","ApellidoRepresentante","FechaNacimientoStrRepresentante","SexoRepresentante","IdEstadoCivilRepresentante","IdNacionalidadRepresentante","IdTitulo","IdTituloRepresentante","Ocupacion","OcupacionRepresentante","IdCiudad","IdProvinciaRepresentante","IdSector","IdMunicipioRepresentante","DireccionRepresentante","CorreoCentro","camposInvalidosCentro","camposInvalidosRepr","camposInvalidosTel","MEDICO","CENTRO","CargarDocumentos","doc","manejarRespuestaDocumentosPSS","GuardarArchivoSolicitudPSS","EnviarMailRecepcionSolicitudPSS","seleccionarCentroBusqueda","seleccionarTipoDocumento","Clasificacion","css","prestadores","rows","obtenerPrestador","rnc","obtenerPrestadorTipos","IdPSs","NombreMedicoCentro","TipoCentro","res","docs","TipoSol","IdSolicitud","PrestadorRepositorio","CantidadReclamos","MontoTotalReclamos","Lote","LoteWebSite","GuardarPrecioPss","RAZONSC","RNCEMPR","ProvinciaCentro","MunicipioCentro","Exequatur","PRIMARIA","IdMedicoCentro","IdCentroMedico","validarYGuardarFormularioContacto","NombreContacto","guardarDatosContacto","Asunto","Mensaje","FechaRegistro","datos","generalRepositorio","enlazarConsultaPadronByCedula","enlazarConsultaPadronByRNC","empresa","buscarPSS","enlazarRegion","enlazarProvincias","enlazarMunicipios","enlazarTiposPss","enlazarGrupoPss","Selector","enlazarSexo","enlazarNacionalidades","enlazarEstadosCiviles","enlazarTitulos","promotorRepositorio","identificacion","promotor","mostrarDatosPromotor","camposPorcentaje","formatToPercentage","solicitudCambioCredenciales","isTemp","credenciales","cambiarCredenciales","enlazarHistorialPagosPorPromotor","pagos","dataTable","destroy","language","sProcessing","sLengthMenu","sZeroRecords","sEmptyTable","sInfo","sInfoEmpty","sInfoFiltered","sInfoPostFix","sSearch","sUrl","sInfoThousands","sLoadingRecords","oPaginate","sFirst","sLast","sNext","sPrevious","oAria","sSortAscending","sSortDescending","obtenerPagosPromotor","obtenerDatosPromotor"],"mappings":"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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","declare var swal:any\r\ndeclare var HideLoader:() => void;\r\ndeclare var JSON:any\r\nexport const baseURl = \"https://webapimetasalud.com/\";\r\n// export const baseURl = \"http://localhost:52982/\";\r\n\r\n\r\nexport function formatNumber(n, c = undefined, d=undefined, t=undefined) {\r\n var c = isNaN(c = Math.abs(c)) ? 2 : c,\r\n d = d == undefined ? \".\" : d,\r\n t = t == undefined ? \",\" : t,\r\n s = n < 0 ? \"-\" : \"\",\r\n i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))),\r\n j = (j = i.length) > 3 ? j % 3 : 0;\r\n\r\n return s + (j ? i.substr(0, j) + t : \"\") + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : \"\");\r\n};\r\n\r\n\r\nexport function getFechaNacimiento(date:string=\"\"):Date\r\n{\r\n return new Date(\r\n parseInt(date.split(\"-\")[2]),\r\n parseInt(date.split(\"-\")[1])-1,\r\n parseInt(date.split(\"-\")[0]))\r\n};\r\n\r\nexport function alerta(msj:string, titulo:string = '',type:SwalType=SwalType.INFO,){\r\n return swal({\r\n title:titulo,\r\n text:msj,\r\n icon:type\r\n })\r\n}\r\nexport function confirmar(msj:string, titulo:string = '',type:SwalType,btnConfirm:string=\"Confirmar\"){\r\n const response = swal({\r\n title: titulo,\r\n text: msj,\r\n icon: type,\r\n buttons:[\"Cancelar\",btnConfirm]\r\n }).then(function (result:any) {\r\n return result;\r\n });\r\n return response;\r\n}\r\n\r\nexport function formatToPercentage(obj:any, campos:any):any {\r\n if (!(campos instanceof (Array))) {\r\n campos = Object.keys(campos)\r\n }\r\n\r\n campos.forEach(function (c:any,k:number) {\r\n obj[c] = `${obj[c]}%`;\r\n })\r\n return obj\r\n}\r\nexport function defaultHttpErrorHandler(response: any) {\r\n //if(HideLoader)HideLoader();\r\n alerta(JSON.parse(response).Message,null,SwalType.WARNING);\r\n}\r\n\r\n\r\nexport function getQueryVariable(variable:any) {\r\n var query = window.location.search.substring(1);\r\n var vars = query.split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n console.log('Query variable %s not found', variable);\r\n}\r\n\r\nexport enum SwalType{\r\n INFO='info'\r\n ,ERROR='error'\r\n ,SUCCESS='success'\r\n ,WARNING='warning'\r\n // QUESTION='question'\r\n}\r\nexport function clearStorageCookies() {\r\n sessionStorage.clear();\r\n document.cookie = \"token=;\"\r\n document.cookie = \"identificacion=;\"\r\n window.location.href = \"index.html\"\r\n}\r\n\r\nexport function getCookie(name:string) {\r\n const value = `; ${document.cookie}`;\r\n const parts = value.split(`; ${name}=`);\r\n if (parts.length === 2) return parts.pop().split(';').shift();\r\n }","\r\ndeclare var swal:any\r\n\r\nclass HttpClient{\r\n constructor(){}\r\n async postJson(url, body, success, error) {\r\n \r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json, text/plain, */*',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ',\r\n 'pragma': 'no-cache',\r\n 'cache-control': 'no-cache'\r\n },\r\n body: JSON.stringify(body)\r\n })\r\n .then(function (response) {\r\n if (response.ok) {\r\n const contentType = response.headers.get(\"content-type\");\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\r\n response.json().then(success)\r\n }\r\n else {\r\n success(null)\r\n }\r\n }\r\n else {\r\n response.text().then(e => {\r\n if (response.status == 401) {\r\n swal(\"User session expired, you need to login again\")\r\n }\r\n else if (error) {\r\n error(e, response.status)\r\n }\r\n })\r\n }\r\n })\r\n }\r\n \r\n async getJson(url, success, error) {\r\n await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Accept': 'application/json, text/plain, */*',\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ',\r\n 'pragma': 'no-cache',\r\n 'cache-control': 'no-cache',\r\n 'mode':'*'\r\n }\r\n })\r\n .then(function (response) {\r\n \r\n if (response.ok) {\r\n const contentType = response.headers.get(\"content-type\");\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\r\n response.json().then(success)\r\n }\r\n success()\r\n } else {\r\n response.text().then(e => {\r\n if (response.status == 401) {\r\n swal(\"User session expired, you need to login again\")\r\n } else if (error) {\r\n error(e, response.status)\r\n }\r\n })\r\n }\r\n })\r\n }\r\n \r\n async postFile(url, file, success, error) {\r\n var data = new FormData()\r\n data.append('file', file)\r\n await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json, text/plain, */*',\r\n // 'Content-Type': 'application/json',\r\n // 'Content-Type': 'multipart/form-data',\r\n 'Authorization': 'Bearer ',\r\n 'pragma': 'no-cache',\r\n 'cache-control': 'no-cache',\r\n 'mode':'cors'\r\n },\r\n body: data\r\n })\r\n .then(function (response) {\r\n if (response.ok) {\r\n const contentType = response.headers.get(\"content-type\");\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\r\n response.json().then(success)\r\n }\r\n else {\r\n success(null)\r\n }\r\n }\r\n else {\r\n response.text().then(e => {\r\n if (response.status == 401) {\r\n swal(\"User session expired, you need to login again\")\r\n }\r\n else if (error) {\r\n error(e, response.status)\r\n }\r\n })\r\n }\r\n })\r\n }\r\n \r\n}\r\n\r\n\r\n\r\nexport default HttpClient","\r\nimport { alerta,confirmar,SwalType } from '../utilidades/SinClasificar'\r\n\r\ndeclare var RegExp: any\r\ndeclare var Array:any\r\ndeclare var Object:any\r\ndeclare var $:any\r\n\r\nexport default class Validador {\r\n\r\n constructor() { }\r\n\r\n validaContrasena(contrasena: any, contrasenaConf: any) {\r\n var regexNumero = new RegExp(\"^(?=.*[0-9])\");\r\n var regexMayuscula = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])\");\r\n if (contrasena.length < 8) {\r\n alerta(\"La contraseña debe tener al menos 8 caracteres\",null,SwalType.INFO)\r\n return false;\r\n }\r\n else if (!regexNumero.test(contrasena)) {\r\n alerta(\"La contraseña debe tener al menos un caracter numerico\",null,SwalType.INFO)\r\n return false;\r\n }\r\n else if (!regexMayuscula.test(contrasena)) {\r\n alerta(\"La contraseña debe incluir letras en minuscula y mayuscula\",null,SwalType.INFO)\r\n return false;\r\n }\r\n else if (contrasena !== contrasenaConf) {\r\n alerta(\"La confirmacion de la contraseña no coincide\",null,SwalType.INFO)\r\n return false;\r\n }\r\n\r\n\r\n\r\n return true;\r\n }\r\n validarCamposArray(obj:any, campos:any,className:string=\"campo-invalido\"):any {\r\n if (!(campos instanceof (Array))) {\r\n campos = Object.keys(campos)\r\n }\r\n\r\n let unValid:any = []\r\n campos.forEach(function (c:any,k:number) {\r\n if (obj[k] == \"\" || obj[k] == undefined || obj[k] == null) {\r\n unValid.push(c)\r\n \r\n $(`#${c}`).addClass(className)\r\n } else {\r\n $(`#${c}`).removeClass(className)\r\n }\r\n })\r\n return unValid\r\n }\r\n\r\n validarCampos(obj:any, campos:any,selector:string=null,className:string=\"campo-invalido\"):any {\r\n if (!(campos instanceof (Array))) {\r\n campos = Object.keys(campos)\r\n }\r\n let unValid:any = []\r\n campos.forEach(function (c:any) {\r\n if (obj[c] == \"\" || obj[c] == undefined || obj[c] == null) {\r\n unValid.push(c)\r\n\r\n $(`#${c} ${(typeof selector != null) ? selector : \"\"} `).addClass(className)\r\n } else {\r\n $(`#${c} ${(typeof selector != null) ? selector : \"\"} `).removeClass(className)\r\n }\r\n })\r\n\r\n return unValid\r\n }\r\n\r\n validarCamposSiblings(obj:any, campos:any,selector:string=null,className:string=\"campo-invalido\"):any {\r\n if (!(campos instanceof (Array))) {\r\n campos = Object.keys(campos)\r\n }\r\n let unValid:any = []\r\n campos.forEach(function (c:any) {\r\n if (obj[c] == \"\" || obj[c] == undefined || obj[c] == null) {\r\n unValid.push(c)\r\n\r\n $(`#${c}`).siblings(`.${(typeof selector != null) ? selector : \"\"}`).addClass(className)\r\n } else {\r\n $(`#${c}`).siblings(`.${(typeof selector != null) ? selector : \"\"}`).removeClass(className)\r\n }\r\n })\r\n\r\n return unValid\r\n }\r\n\r\n}","\r\ndeclare var Object:any\r\ndeclare var $:any\r\n\r\nexport default class Enlazar{\r\n constructor()\r\n {}\r\n enlazarObjetoInput(obj) {\r\n //enlazar valores del objeto al input\r\n Object.keys(obj).forEach(function (key) {\r\n $(`#${key}`).val(obj[key])\r\n })\r\n \r\n }\r\n \r\n enlazarInputObjeto(obj) {\r\n let o = {}\r\n Object.keys(obj).forEach(function (key) {\r\n o[key] = $(`#${key}`).val()\r\n \r\n if (!o[key]) o[key] = \"\"\r\n })\r\n return o;\r\n }\r\n \r\n enlazarInputObjetoPorClase(clase) {\r\n var obj = {}\r\n $(\".\" + clase).each(function () {\r\n obj[this.id] = $(this).val()\r\n })\r\n return obj;\r\n }\r\n enlazarInputFilePorClase(clase:string) {\r\n var arr:Array= new Array();\r\n $(\".\" + clase).each(function () {\r\n var obj = \r\n {\r\n IdTipoDoc: $(this).data(\"id\"),\r\n File: this.files[0]\r\n }\r\n if(obj.File)\r\n arr.push(obj);\r\n })\r\n return arr;\r\n }\r\n\r\n \r\n enlazarInputFilePorClase2(clase:string) {\r\n var FileList:Array = new Array();;\r\n $(\".\" + clase).each(function (key:number) {\r\n if(this.files[0])\r\n FileList.push(this.files);\r\n })\r\n return FileList;\r\n }\r\n enlazarInputFilePorClase3(clase:string) {\r\n var FileList:Array = new Array();;\r\n $(\".\" + clase).each(function (key:number) {\r\n if(this.files[0])\r\n FileList.push(this.files[0]);\r\n })\r\n return FileList;\r\n }\r\n \r\n enlazarObjetoValor(idPadre:any, obj:any,selectorType:string=\"#\") {\r\n //enlazar valores del objeto al input\r\n let index = 0\r\n Object.keys(obj).forEach(function (key:any) {\r\n var html = $(`${selectorType}${idPadre}`).html();\r\n \r\n html = html.replace(`{${key}}`, obj[key])\r\n \r\n $(selectorType + idPadre).html(html);\r\n index++\r\n })\r\n \r\n Object.keys(obj).forEach(function (key:any) {\r\n $(`span${selectorType}${key}`).html(obj[key]);\r\n $(`div${selectorType}${key}`).html(obj[key]);\r\n })\r\n }\r\n \r\n \r\n limpiarObjecto(obj) {\r\n Object.keys(obj).forEach(function (key) {\r\n obj[key] = ''\r\n })\r\n \r\n return obj\r\n }\r\n \r\n ///funcion que toma un Id de un nodo padre obtiene e html hijo\r\n ///y utilia la lista para replicar y enlazar dicho elemento\r\n enlazarListaPlantilla(lista, fuente, destino) {\r\n //enlazar valores del objeto al input\r\n let plantilla = $(\"#\" + fuente).html();\r\n $(\"#\" + destino).html('');\r\n let index = 0\r\n let listaEnlazada = \"\"\r\n \r\n //creear plantilla, enlazar valores\r\n lista = lista.map( (obj:any) => {\r\n let objCambiado = {} as any\r\n let keyAnt = \"\"\r\n Object.keys(obj).forEach((key:any) =>{\r\n objCambiado[`${key}_${index}`] = obj[key]\r\n \r\n if (index == 0) {\r\n plantilla = plantilla.replace(`id=\"${key}\"`, `id=\"${key}_${index}\"`)\r\n \r\n plantilla = plantilla.replace(`{${key}}`, `{${key}_${index}}`)\r\n } else {\r\n plantilla = plantilla.replace(`id=\"${key}_${index - 1}\"`, `id=\"${key}_${index}\"`)\r\n plantilla = plantilla.replace(`{${key}_${index - 1}}`, `{${key}_${index}}`)\r\n }\r\n plantilla = plantilla.replace(\"\", \"\")\r\n plantilla = plantilla.replace(\"
\", \"\")\r\n plantilla = plantilla.replace(\"\", \"\")\r\n plantilla = plantilla.replace(\"\", \"\")\r\n })\r\n \r\n //inserto la nueva plantilla\r\n $(\"#\" + destino).append(plantilla);\r\n \r\n this.enlazarObjetoValor(destino, objCambiado)\r\n //enlazarObjetoInput(objCambiado)\r\n index++;\r\n return objCambiado;\r\n })\r\n // enlazar inputs\r\n \r\n lista.forEach( (obj:any) => {\r\n this.enlazarObjetoInput(obj)\r\n })\r\n \r\n } \r\n\r\n \r\n}","class reestablecerContrasenaAfiliado{\r\n cedula:string= \"\"\r\n correo:string= \"\"\r\n afiliadoId:string= \"\"\r\n nss:string= \"\"\r\n}\r\n\r\nclass reestablecerContrasenaPss{\r\n RncoCedula:string= \"\"\r\n CedulaRepresentante:string= \"\"\r\n Correo:string= \"\"\r\n IdPss:string= \"\"\r\n}\r\n\r\nclass reestablecerContrasenaPromotor{\r\n Identificacion:string= \"\"\r\n Correo:string= \"\"\r\n IdPromotor:string= \"\"\r\n}\r\n\r\nclass CambioCredenciales{\r\n Identificacion:string=null\r\n ContrasenaAnterior:string=null\r\n ContrasenaNueva:string=null\r\n ConfirmarContrasena:string=null\r\n}\r\n\r\nexport { reestablecerContrasenaAfiliado, reestablecerContrasenaPss,reestablecerContrasenaPromotor,CambioCredenciales}","export enum EnumTipoSolicitudPSS\r\n{\r\n MEDICO=1,\r\n CENTRO=2\r\n}\r\n\r\nexport enum EnumTipoIdentificacion\r\n{\r\n CEDULA=1,\r\n RNC=2\r\n}\r\n\r\nexport enum EnumTipoPromotor\r\n{\r\n CORREDOR=1,\r\n GESTOR=2\r\n}\r\n\r\nexport enum EnumCategoriaPromotor\r\n{\r\n INDIVIDUAL=1,\r\n CORPORATIVO = 2\r\n}\r\n\r\nexport enum EnumEstadoFactura\r\n{\r\n PENDIENTE_PAGO = 1,\r\n PAGADA = 2,\r\n NULA = 3,\r\n NOTA_DE_CREDITO = 4\r\n}\r\n\r\n","export class PrestadorModeloConsulta{\r\n constructor(){}\r\n\r\n Nombre = \"\"\r\n IdTipo = \"\"\r\n IdProvincia = \"\"\r\n}","import TelefonoCentro from '../modelos/TelefonoCentro';\r\nimport Representante from '../modelos/Representante';\r\nimport Empresa from './Empresa';\r\nexport default class Centro extends Empresa {\r\n IdSolicitudCentro:number=null;\r\n IdTipoContrato:number=null;\r\n Contacto:string=\"\";\r\n IdGrupo:number=null;\r\n Grupo:string=\"\"\r\n CodSespas:number=null;\r\n Habilitacion:string=\"\";\r\n IdAreaSalud:number=null;\r\n IdProvincia:number=null;\r\n Provincia:string=\"\";\r\n IdMunicipio:number=null;\r\n Municipio:string=\"\";\r\n Direccion:string=\"\"\r\n Estado:string=null;\r\n IdRepresentante:number=null;\r\n IdClasificacion:number=null;\r\n Correo:string=\"\";\r\n Representante:Representante = new Representante();\r\n Telefonos:Array = new Array()\r\n}","\r\nexport default class Persona {\r\n\r\n Cedula:string=\"\";\r\n Nombre1:string=\"\";\r\n Apellido1:string=\"\";\r\n Apellido2:string=\"\";\r\n IdNacionalidad:number=null;\r\n Sexo:string=\"\";\r\n IdEstadoCivil:number=null;\r\n FechaNacimientoStr:string=\"\";\r\n FechaNacimiento:Date=new Date();\r\n \r\n Nombres:string = this.Nombre1;\r\n Apellidos:string = `${this.Apellido1} ${this.Apellido2}`\r\n\r\n\r\n}","import HttpClient from '../servicios/HttpClient'\r\nimport { baseURl, alerta, defaultHttpErrorHandler,SwalType } from '../utilidades/SinClasificar'\r\n\r\nexport default class GeneralRepositorio{\r\n httpClient:HttpClient\r\n constructor(){\r\n this.httpClient = new HttpClient();\r\n }\r\n\r\n async obtenerDatosByCedula(Cedula:string=\"\",handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/ConsultarPadron/Cedula/${Cedula}`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerDatosByRNC(RNC:string=\"\",handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/ConsultarPadron/RNC/${RNC}`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerRegiones(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/Regiones/`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerProvincias(handler:any,IdAreaSalud:number=null){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url=\"\";\r\n if(IdAreaSalud)\r\n url = baseURl + `api/General/Provincias/${IdAreaSalud}`;\r\n else\r\n url = baseURl + \"api/General/Provincias\";\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerMunicipios(IdProvincia:number=null,handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url=\"\";\r\n if(IdProvincia)\r\n url = baseURl + `api/General/Municipios/${IdProvincia}`;\r\n else\r\n url = baseURl + \"api/General/Municipios/\";\r\n\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n \r\n\r\n async obtenerTiposPss(handler:any,IdClasificacion:number){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = \"\";\r\n if(IdClasificacion)\r\n url = baseURl + `api/General/TiposPss/${IdClasificacion}`;\r\n else\r\n url = baseURl + \"api/General/TiposPss\";\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerSexo(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/Sexo/`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerNacionalidades(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/Nacionalidades/`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerEstadosCiviles(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/EstadosCiviles/`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerTitulos(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/General/Tratamientos/`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n}","import AfiliadoControlador from './controladores/AfiliadoControlador'\r\nimport PrestadorControlador from './controladores/PrestadorControlador';\r\nimport ContactoController from './controladores/ContactoController'\r\nimport IndexControlador from './controladores/indexControlador';\r\nimport PromotorControlador from './controladores/PromotorControlador'\r\ndeclare var window: any\r\n\r\nwindow.afiliadoControlador = new AfiliadoControlador()\r\nwindow.prestadorControlador = new PrestadorControlador()\r\nwindow.contactoController = new ContactoController()\r\nwindow.indexControlador = new IndexControlador()\r\nwindow.promotorControlador = new PromotorControlador()","import AfiliadoRepositorio from '../repositorios/AfiliadoRepositorio'\r\nimport Validador from '../utilidades/Validador'\r\nimport Enlazar from '../utilidades/Enlazar'\r\nimport { formatNumber, alerta,clearStorageCookies } from '../utilidades/SinClasificar'\r\nimport Reembolso from '../modelos/reemboso'\r\nimport PreCertificada from '../modelos/preCertificada'\r\nimport TransaccionAzul from '../modelos/transaccionAzul' \r\nimport { reestablecerContrasenaAfiliado } from '../modelos/reestablecerContrasena'\r\nimport Factura from '../modelos/Factura'\r\nimport {EnumEstadoFactura} from'../modelos/EnumClasses'\r\n\r\ndeclare var $: any\r\ndeclare var JSON: any\r\ndeclare var ShowLoader: any\r\ndeclare var HideLoader: any\r\ndeclare var Promise:any\r\n\r\nexport default class AfiliadoControlador {\r\n afiliadoRepositorio: AfiliadoRepositorio\r\n validador: Validador\r\n enlazar: Enlazar\r\n constructor() {\r\n this.afiliadoRepositorio = new AfiliadoRepositorio()\r\n this.validador = new Validador()\r\n this.enlazar = new Enlazar()\r\n }\r\n\r\n async validarRegistrar() {\r\n var afiliado: any = { Id: 0, Validado: true, OrigenCreacion: \"WebSite\", FechaCreacion: \"\" }\r\n\r\n afiliado.Cedula = $(\"#cedula\").val() || 0;\r\n afiliado.Nss = $(\"#nss\").val() || 0;\r\n afiliado.IdAfiliado = $(\"#idAfiliado\").val() || 0;\r\n afiliado.Correo = $(\"#correo\").val() || 0;\r\n afiliado.Contrasena = $(\"#Contrasena\").val() || \"\";\r\n let contrasenaConf = $(\"#confContrasena\").val() || \"\";\r\n if (!this.validador.validaContrasena(afiliado.Contrasena, contrasenaConf))\r\n return false;\r\n\r\n afiliado.Validado = await this.afiliadoRepositorio.validaAfiliado(afiliado);\r\n\r\n\r\n if (afiliado.Validado)\r\n this.afiliadoRepositorio.registrar(afiliado)\r\n\r\n }\r\n\r\n async iniciaSesion() {\r\n ShowLoader();\r\n let cedula = $(\"#cedula\").val() || 0;\r\n let contrasena = $(\"#contrasena\").val() || 0;\r\n\r\n const handler = (response: any): any => {\r\n //crear cookie y sesion\r\n if (!response) return null;\r\n let afiliado = response;\r\n\r\n if (sessionStorage.getItem('afiliado'))\r\n sessionStorage.clear();\r\n\r\n sessionStorage.setItem('afiliado', JSON.stringify(afiliado))\r\n sessionStorage.setItem('token', \"\")\r\n //set cookie\r\n document.cookie = \"token=;\"\r\n document.cookie = \"identificacion=\" + afiliado.Cedula + \";\"\r\n window.location.href = \"indexAfiliados.html\"\r\n }\r\n let request = { Cedula: cedula, Contrasena: contrasena }\r\n\r\n this.afiliadoRepositorio.iniciarSesion(request, handler)\r\n }\r\n\r\n async revisarSesion() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n if (!afiliado) window.location.href = \"loginAfiliados.html\"\r\n this.enlazar.enlazarObjetoValor(\"NombreAfiliadoEtiqueta\", afiliado,\".\")\r\n\r\n }\r\n\r\n\r\n async enlazarDatosAfiliado() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n this.enlazar.enlazarObjetoInput(afiliado)\r\n\r\n $(\"input\").each(function () {\r\n $(this).attr(\"disabled\", \"disabled\")\r\n })\r\n }\r\n\r\n async enlazarPlanesAfiliado(afiliado: any, source = \"planes\", destino = \"planes\") {\r\n if (!afiliado) afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n\r\n const enlazar = (planes: any) => {\r\n planes = planes.map(function (x: any) {\r\n return {\r\n Plan: x.Plan,\r\n FechaInicioStr: x.FechaInicioStr\r\n }\r\n })\r\n this.enlazar.enlazarListaPlantilla(planes, source, destino)\r\n //enlazar planes\r\n }\r\n await this.afiliadoRepositorio.obtenerDatosPlanes(afiliado.IdAfiliado, enlazar)\r\n }\r\n\r\n async editar() {\r\n $(\".editable\").each(function () {\r\n $(this).removeAttr(\"disabled\")\r\n $(this).addClass(\"editando\")\r\n })\r\n $(\"#botonEditar\").attr(\"style\", \"display:none\")\r\n $(\"#botonGuardar\").removeAttr(\"style\")\r\n }\r\n\r\n async guardar() {\r\n let afiliado = this.enlazar.enlazarInputObjetoPorClase(\"editable\") as any\r\n afiliado.Cedula = $(\"#Cedula\").val()\r\n afiliado.IdAfiliado = $(\"#IdAfiliado\").val()\r\n //enviar al servidor\r\n\r\n function handler(response: any) {\r\n $(\".editable\").each(function () {\r\n $(this).attr(\"disabled\", \"disabled\")\r\n $(this).removeClass(\"editando\")\r\n })\r\n\r\n alerta(response)\r\n\r\n $(\"#botonGuardar\").attr(\"style\", \"display:none\")\r\n $(\"#botonEditar\").removeAttr(\"style\")\r\n }\r\n\r\n await this.afiliadoRepositorio.guardarAfiliado(afiliado, handler)\r\n }\r\n\r\n\r\n async enlazarDatosNucleo() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n\r\n //enlazar tabs\r\n const enlazar = (nucleo: any) => {\r\n let nombres = nucleo.map((x: any) => {\r\n return {\r\n NombreAfiliado: x.NombreAfiliado,\r\n IdAfiliado: x.IdAfiliado\r\n }\r\n })\r\n this.enlazar.enlazarListaPlantilla(nombres, \"plantillaTab\", \"tabs\")\r\n\r\n let li = $(\"#tabs\").children()[0]\r\n let a = $(li).children()[0]\r\n $(a).addClass(\"tab-active\")\r\n }\r\n await this.afiliadoRepositorio.obtenerNucleoFamiliar(afiliado.Cedula, enlazar)\r\n }\r\n\r\n async mostrarAfiliado(element: any, afiliadoId: any) {\r\n\r\n const enlazar = (afiliado: any) => {\r\n if (afiliado.NombreAfiliado) {\r\n this.enlazar.enlazarObjetoInput(afiliado)\r\n this.enlazarPlanesAfiliado(afiliado, \"plantillaPlanes\", \"planes\")\r\n $(\".tab-active\").removeClass(\"tab-active\")\r\n $(element).addClass(\"tab-active\")\r\n\r\n $(\"input\").each(function () {\r\n $(this).attr(\"disabled\", \"disabled\")\r\n })\r\n\r\n }\r\n }\r\n await this.afiliadoRepositorio.obtenerDatosAfiliado(afiliadoId, enlazar)\r\n\r\n //enlazar plan\r\n }\r\n\r\n async mostrarAfiliadosPorPromotor() {\r\n let promotorId: number = JSON.parse(sessionStorage.getItem('promotor')).Id\r\n const enlazar = (Afiliados: any) => {\r\n Afiliados = Afiliados.map((a: any) => {\r\n return {\r\n Id: a.IdAfiliado,\r\n Nombre: a.NombreAfiliado,\r\n Estatus: a.EstatusAfiliado,\r\n PlanPrincipal: a.PlanPrincipal,\r\n PlanComplementario: a.PlanComplementario,\r\n FechaEntrada: a.FechaInicioVigenciaPlanStr\r\n }\r\n })\r\n $(\".dataTables_length\").empty()\r\n $(\".dataTables_filter\").empty()\r\n $(\".dataTables_info\").empty()\r\n $(\".dataTables_paginate\").empty()\r\n\r\n $('#TablaAfiliados').DataTable({\r\n\r\n \"language\": {\r\n \"sProcessing\": \"Procesando...\",\r\n \"sLengthMenu\": \"Mostrar _MENU_ registros\",\r\n \"sZeroRecords\": \"No se encontraron resultados\",\r\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\r\n \"sInfo\": \"Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros\",\r\n \"sInfoEmpty\": \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n \"sInfoFiltered\": \"(filtrado de un total de _MAX_ registros)\",\r\n \"sInfoPostFix\": \"\",\r\n \"sSearch\": \"Buscar:\",\r\n \"sUrl\": \"\",\r\n \"sInfoThousands\": \",\",\r\n \"sLoadingRecords\": \"Cargando...\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"Primero\",\r\n \"sLast\": \"Último\",\r\n \"sNext\": \"Siguiente\",\r\n \"sPrevious\": \"Anterior\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": Activar para ordenar la columna de manera ascendente\",\r\n \"sSortDescending\": \": Activar para ordenar la columna de manera descendente\"\r\n }\r\n },\r\n data: Afiliados,\r\n columns: [\r\n { data: 'Id' },\r\n { data: 'Nombre' },\r\n { data: 'Estatus' },\r\n { data: 'PlanPrincipal' },\r\n { data: 'PlanComplementario' },\r\n { data: 'FechaEntrada' }\r\n ]\r\n });\r\n HideLoader()\r\n }\r\n await this.afiliadoRepositorio.obtenerDatosAfiliadoPorPromotor(promotorId, enlazar)\r\n }\r\n\r\n\r\n async mostrarConsumo(element: string, afiliadoId: any) {\r\n const enlazar = (consumo: any) => {\r\n if (consumo) {\r\n const consumoInmutable = consumo\r\n\r\n let procentajeAcc = ((consumo.ConsumidoAccidenteTransito / consumo.TotalAccidenteDeTransito) * 100).toFixed(2)\r\n let procentajeDisponibleAcc = ((consumo.DisponibleAccidenteTransito / consumo.TotalAccidenteDeTransito) * 100).toFixed(2)\r\n let procentajeFarmacia = ((consumo.ConsumoFarmacia / consumo.TotalFarmacia) * 100).toFixed(2)\r\n let procentajeDisponibleFarmacia = ((consumo.DisponibleFarmacia / consumo.TotalFarmacia) * 100).toFixed(2)\r\n\r\n consumo.ConsumidoAccidenteTransito = \"Consumido: \" + formatNumber(consumo.ConsumidoAccidenteTransito)\r\n consumo.DisponibleAccidenteTransito = \"Disponible: \" + formatNumber(consumo.DisponibleAccidenteTransito)\r\n consumo.ConsumoFarmacia = \"Consumido: \" + formatNumber(consumo.ConsumoFarmacia)\r\n consumo.DisponibleFarmacia = \"Disponible: \" + formatNumber(consumo.DisponibleFarmacia)\r\n consumo.ConsumoTotalRiesgo = \"Consumido: \" + formatNumber(consumo.ConsumoTotalRiesgo)\r\n consumo.DisponibleTotalRiesgo = \"Disponible: \" + formatNumber(consumo.DisponibleTotalRiesgo)\r\n\r\n //enlazar progress bar\r\n\r\n $(\"#progressAcc1\").attr(\"style\", `width:${procentajeAcc}%`)\r\n $(\"#progressAcc2\").attr(\"style\", `width:${procentajeDisponibleAcc}%`)\r\n $(\"#progressFar1\").attr(\"style\", `width:${procentajeFarmacia}%`)\r\n $(\"#progressFar2\").attr(\"style\", `width:${procentajeDisponibleFarmacia}%`)\r\n\r\n this.enlazar.enlazarObjetoValor(\"consumo\", consumo)\r\n $(\".tab-active\").removeClass(\"tab-active\")\r\n $(element).addClass(\"tab-active\")\r\n //calcular progress bar\r\n // consumo.porcentajeAccidente = ((consumo.ConsumidoAccidenteTransito / \r\n // consumo.TotalAccidenteDeTransito)*100).toFixed(0)\r\n // $(\"#ConsumidoAccidenteTransito\").css({ width: consumo.porcentajeAccidente + '%' })\r\n\r\n this.mostrarConsumoAltoCosto(afiliadoId)\r\n\r\n this.mostrarAutorizaciones(afiliadoId)\r\n\r\n if (!element) {\r\n let li = $(\"#tabs\").children()[0]\r\n let a = $(li).children()[0]\r\n $(a).addClass(\"tab-active\")\r\n }\r\n }\r\n }\r\n\r\n await this.afiliadoRepositorio.obtenerDatosConsumo(afiliadoId, enlazar)\r\n }\r\n\r\n async mostrarConsumoAltoCosto(afiliadoId: number) {\r\n const enlazar = (consumo: any) => {\r\n if (consumo) {\r\n const consumoInmutable = consumo\r\n consumo.map((c: any) => {\r\n c.atTotal = \"Consumido: \" + formatNumber(c.Consumido)\r\n c.atDisponible = \"Disponible: \" + formatNumber(c.Disponible)\r\n c.porcentajeDisponible = ((c.Disponible / c.TotalAltoCosto) * 100).toFixed(2)\r\n c.porcentajeConsumido = ((c.Consumido / c.TotalAltoCosto) * 100).toFixed(2)\r\n return c\r\n })\r\n\r\n this.enlazar.enlazarListaPlantilla(consumo, \"plantillaAltoCosto\", \"altoCosto\")\r\n }\r\n }\r\n await this.afiliadoRepositorio.obtenerDatosConsumoAltoCosto(afiliadoId, enlazar)\r\n }\r\n\r\n async mostrarAutorizaciones(afiliadoId: number) {\r\n\r\n const enlazar = (Autorizaciones: any) => {\r\n Autorizaciones = Autorizaciones.map((a: any) => {\r\n return {\r\n NumeroDeAutorizacion: a.NumeroDeAutorizacion,\r\n PrestadorDeServicios: a.PrestadorDeServicios,\r\n Origen: a.Origen,\r\n Fecha: a.FechaStr,\r\n TotalCubierto: formatNumber(a.TotalCubierto)\r\n }\r\n })\r\n $(\".dataTables_length\").empty()\r\n $(\".dataTables_filter\").empty()\r\n $(\".dataTables_info\").empty()\r\n $(\".dataTables_paginate\").empty()\r\n\r\n $('#TablaAutorizaciones').DataTable({\r\n\r\n \"language\": {\r\n \"sProcessing\": \"Procesando...\",\r\n \"sLengthMenu\": \"Mostrar _MENU_ registros\",\r\n \"sZeroRecords\": \"No se encontraron resultados\",\r\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\r\n \"sInfo\": \"Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros\",\r\n \"sInfoEmpty\": \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n \"sInfoFiltered\": \"(filtrado de un total de _MAX_ registros)\",\r\n \"sInfoPostFix\": \"\",\r\n \"sSearch\": \"Buscar:\",\r\n \"sUrl\": \"\",\r\n \"sInfoThousands\": \",\",\r\n \"sLoadingRecords\": \"Cargando...\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"Primero\",\r\n \"sLast\": \"Último\",\r\n \"sNext\": \"Siguiente\",\r\n \"sPrevious\": \"Anterior\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": Activar para ordenar la columna de manera ascendente\",\r\n \"sSortDescending\": \": Activar para ordenar la columna de manera descendente\"\r\n }\r\n },\r\n data: Autorizaciones,\r\n columns: [\r\n { data: 'NumeroDeAutorizacion' },\r\n { data: 'PrestadorDeServicios' },\r\n { data: 'Origen' },\r\n { data: 'Fecha' },\r\n { data: 'TotalCubierto' }\r\n ]\r\n });\r\n\r\n\r\n }\r\n\r\n await this.afiliadoRepositorio.obtenerDatosHistorialAutorizaciones(afiliadoId, enlazar)\r\n }\r\n\r\n async enlazarDatosConsumo() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n\r\n //enlazar tabs\r\n const enlazar = (nucleo: any) => {\r\n let nombres = nucleo.map((x: any) => {\r\n return {\r\n NombreAfiliado: x.NombreAfiliado,\r\n IdAfiliado: x.IdAfiliado\r\n }\r\n })\r\n this.enlazar.enlazarListaPlantilla(nombres, \"plantillaTab\", \"tabs\")\r\n this.mostrarConsumo(\"\", nombres[0].IdAfiliado)\r\n }\r\n await this.afiliadoRepositorio.obtenerNucleoFamiliar(afiliado.Cedula, enlazar)\r\n\r\n\r\n }\r\n\r\n async enlazarReembolso() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n\r\n //enlazar tabs\r\n const enlazar = (nucleo: any) => {\r\n let nombres = nucleo.map((x: any) => {\r\n return {\r\n NombreAfiliado: x.NombreAfiliado,\r\n IdAfiliado: x.IdAfiliado,\r\n }\r\n })\r\n this.enlazar.enlazarListaPlantilla(nombres, \"afiliadoDropDown\", \"IdAfiliado\")\r\n //obtener historial\r\n\r\n this.afiliadoRepositorio.obtenerDatosReembolso(afiliado.Cedula, this.enlazarHistorialReembolso.bind(this))\r\n }\r\n await this.afiliadoRepositorio.obtenerNucleoFamiliar(afiliado.Cedula, enlazar)\r\n }\r\n\r\n async enlazarHistorialReembolso(historial: any) {\r\n if(typeof historial == \"object\")\r\n this.enlazar.enlazarListaPlantilla(historial, \"PlantillaHistorialReembolso\", \"historialReembolso\")\r\n }\r\n\r\n async enlazarHistorialPreCertificada(historial: any) {\r\n this.enlazar.enlazarListaPlantilla(historial, \"plantillaHistorialPrecertificada\", \"historialPrecertificada\")\r\n }\r\n\r\n \r\n async enlazarFacturasPendientes() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n\r\n const handler = (facturas:any) => {\r\n\r\n if(typeof facturas == \"object\")\r\n {\r\n // SELECCIONAR LA PRIMERA MAS VIEJA\r\n let facturaPendiente;\r\n facturaPendiente = [...facturas].slice(0,1)\r\n this.enlazar.enlazarListaPlantilla(facturaPendiente, \r\n \"plantillaFacturas\", \"historialFactura\")\r\n }\r\n \r\n \r\n }\r\n \r\n this.afiliadoRepositorio.obtenerFacturas(afiliado.Cedula, handler)\r\n }\r\n\r\n async enlazarHistorialFacturas() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n const handler = (facturas:any) => {\r\n this.enlazar.enlazarListaPlantilla(facturas, \r\n \"plantillaRecibos\", \"historialFacturaPagadas\")\r\n }\r\n this.afiliadoRepositorio.obtenerFacturasPagadas(afiliado.Cedula, handler)\r\n }\r\n\r\n async enlazarHistorialFacturasPagadasPorPromotor(selector:string) {\r\n let promotorId: number = JSON.parse(sessionStorage.getItem('promotor')).Id\r\n const enlazar = (facturas: any) => {\r\n facturas = facturas.map((a: any) => {\r\n return {\r\n IdFactura: a.IdFactura,\r\n IdCliente: a.IdCliente,\r\n TipoCliente:a.TipoCliente,\r\n Cliente: a.Cliente,\r\n Estatus: a.EstatusPago,\r\n CoberturaDesdeHasta: `${a.CoberturaInicioStr} / ${a.CoberturaFinStr}`,\r\n FechaGeneracion: a.FechaGeneracionStr,\r\n FechaPago: a.FechaPagoStr,\r\n NumeroAprobacionTarjeta: a.NumeroAprobacionTarjeta,\r\n Vencimiento: a.VencimientoStr,\r\n Monto: a.MontoStr,\r\n recibo:`Recibo`\r\n }\r\n })\r\n $(`#${selector} > .dataTables_length`).empty()\r\n $(`#${selector} >.dataTables_filter`).empty()\r\n $(`#${selector} >.dataTables_info`).empty()\r\n $(`#${selector} >.dataTables_paginate`).empty()\r\n if(!$.fn.DataTable.isDataTable( $(`#${selector}`) )){\r\n $(`#${selector}`).DataTable({\r\n\r\n \"language\": {\r\n \"sProcessing\": \"Procesando...\",\r\n \"sLengthMenu\": \"Mostrar _MENU_ registros\",\r\n \"sZeroRecords\": \"No se encontraron resultados\",\r\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\r\n \"sInfo\": \"Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros\",\r\n \"sInfoEmpty\": \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n \"sInfoFiltered\": \"(filtrado de un total de _MAX_ registros)\",\r\n \"sInfoPostFix\": \"\",\r\n \"sSearch\": \"Buscar:\",\r\n \"sUrl\": \"\",\r\n \"sInfoThousands\": \",\",\r\n \"sLoadingRecords\": \"Cargando...\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"Primero\",\r\n \"sLast\": \"Último\",\r\n \"sNext\": \"Siguiente\",\r\n \"sPrevious\": \"Anterior\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": Activar para ordenar la columna de manera ascendente\",\r\n \"sSortDescending\": \": Activar para ordenar la columna de manera descendente\"\r\n }\r\n },\r\n data: facturas,\r\n columns: [\r\n { data: 'IdFactura' },\r\n { data: 'TipoCliente' },\r\n { data: 'Cliente' },\r\n { data: 'FechaGeneracion' },\r\n { data: 'Vencimiento' },\r\n { data: 'CoberturaDesdeHasta' },\r\n { data: 'Monto' },\r\n { data: 'Estatus' },\r\n {data: 'recibo'}\r\n ],\r\n order: [],\r\n pageLength:5,\r\n lengthMenu: [5, 10, 25, 50]\r\n });\r\n }\r\n HideLoader()\r\n }\r\n await this.afiliadoRepositorio.obtenerFacturasPorPromotor(promotorId,EnumEstadoFactura.PAGADA, enlazar)\r\n }\r\n\r\n async enlazarHistorialFacturasPendientesPorPromotor(selector:string) {\r\n \r\n let promotorId: number = JSON.parse(sessionStorage.getItem('promotor')).Id\r\n const enlazar = (facturas: any) => {\r\n facturas = facturas.map((a: any) => {\r\n return {\r\n IdFactura: a.IdFactura,\r\n IdCliente: a.IdCliente,\r\n TipoCliente:a.TipoCliente,\r\n Cliente: a.Cliente,\r\n Estatus: a.EstatusPago,\r\n CoberturaDesdeHasta: `${a.CoberturaInicioStr} / ${a.CoberturaFinStr}`,\r\n FechaGeneracion: a.FechaGeneracionStr,\r\n FechaPago: a.FechaPagoStr,\r\n NumeroAprobacionTarjeta: a.NumeroAprobacionTarjeta,\r\n Vencimiento: a.VencimientoStr,\r\n Monto: a.MontoStr,\r\n factura:`Pagar`\r\n }\r\n })\r\n // SELECCIONAR LA PRIMERA MAS VIEJA DE CADA CLIENTE\r\n let facturaPendiente=[];\r\n for(let factura of facturas){\r\n if(facturaPendiente.filter(a=>a.IdCliente == factura.IdCliente).length == 0)\r\n facturaPendiente.push(factura)\r\n }\r\n \r\n $(`#${selector} > .dataTables_length`).empty()\r\n $(`#${selector} >.dataTables_filter`).empty()\r\n $(`#${selector} >.dataTables_info`).empty()\r\n $(`#${selector} >.dataTables_paginate`).empty()\r\n if(!$.fn.DataTable.isDataTable( $(`#${selector}`) )){\r\n $(`#${selector}`).DataTable({\r\n\r\n \"language\": {\r\n \"sProcessing\": \"Procesando...\",\r\n \"sLengthMenu\": \"Mostrar _MENU_ registros\",\r\n \"sZeroRecords\": \"No se encontraron resultados\",\r\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\r\n \"sInfo\": \"Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros\",\r\n \"sInfoEmpty\": \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n \"sInfoFiltered\": \"(filtrado de un total de _MAX_ registros)\",\r\n \"sInfoPostFix\": \"\",\r\n \"sSearch\": \"Buscar:\",\r\n \"sUrl\": \"\",\r\n \"sInfoThousands\": \",\",\r\n \"sLoadingRecords\": \"Cargando...\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"Primero\",\r\n \"sLast\": \"Último\",\r\n \"sNext\": \"Siguiente\",\r\n \"sPrevious\": \"Anterior\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": Activar para ordenar la columna de manera ascendente\",\r\n \"sSortDescending\": \": Activar para ordenar la columna de manera descendente\"\r\n }\r\n },\r\n data: facturaPendiente,\r\n columns: [\r\n { data: 'IdFactura' },\r\n { data: 'TipoCliente' },\r\n { data: 'Cliente' },\r\n { data: 'FechaGeneracion' },\r\n { data: 'Vencimiento' },\r\n { data: 'CoberturaDesdeHasta' },\r\n { data: 'Monto' },\r\n { data: 'Estatus' },\r\n {data: 'factura'}\r\n ],\r\n pageLength:5,\r\n lengthMenu: [5, 10, 25, 50],\r\n });\r\n }\r\n HideLoader()\r\n }\r\n await this.afiliadoRepositorio.obtenerFacturasPorPromotor(promotorId,EnumEstadoFactura.PENDIENTE_PAGO, enlazar)\r\n }\r\n \r\nasync validarYGuardarReembolso() {\r\n let r:any = this.enlazar.enlazarInputObjeto(new Reembolso())\r\n r.NombreAfiliado = $(\"#IdAfiliado option:selected\").text();\r\n let camposValidar:any = [\"IdAfiliado\", \"NombrePss\", \"RazonSolicitud\", \"FechaServicioStr\",\r\n \"MontoPagado\", \"FormaPago\", \"NumeroCuenta\", \"TipoCuenta\", \"Banco\", \"RP\", \"CAR\",\"CC\"]\r\n let camposInvalidos = this.validador.validarCampos(r, camposValidar)\r\n\r\n //si no hay campos invalidos proceder\r\n if (camposInvalidos.length == 0) {\r\n\r\n this.afiliadoRepositorio.guardarReembolso(r, this.manejarRespuestaGuardarReembolso.bind(this))\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\")\r\n }\r\n\r\n}\r\n\r\nasync manejarRespuestaGuardarReembolso(response:any) {\r\n \r\n let promises:any = []\r\n \r\n promises.push(this.afiliadoRepositorio.guardarImagenReembolso(response.IdSolicitudReembolso, response.IdAfiliado, \"RP\"))\r\n promises.push(this.afiliadoRepositorio.guardarImagenReembolso(response.IdSolicitudReembolso, response.IdAfiliado, \"CAR\"))\r\n // if ($(\"#CedulaPic\").val())\r\n promises.push(this.afiliadoRepositorio.guardarImagenReembolso(response.IdSolicitudReembolso, response.IdAfiliado, \"CC\"))\r\n \r\n let responses = await Promise.all(promises)\r\n \r\n if (responses.some(function (v:any) { return v == false }))\r\n alerta(\"Error al enviar el reembolso\")\r\n else {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n alerta(\"Reembolso guardado\")\r\n this.limpiarReembolso()\r\n this.afiliadoRepositorio.obtenerDatosReembolso(afiliado.Cedula, this.enlazarHistorialReembolso)\r\n }\r\n }\r\n limpiarReembolso() {\r\n this.enlazar.enlazarObjetoInput(new Reembolso())\r\n }\r\n \r\n async enlazarPreCertificada() {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n \r\n //enlazar tabs\r\n const enlazar = (nucleo:any) => {\r\n let nombres = nucleo.map((x:any) => {\r\n return {\r\n NombreAfiliado: x.NombreAfiliado,\r\n IdAfiliado: x.IdAfiliado,\r\n }\r\n })\r\n this.enlazar.enlazarListaPlantilla(nombres, \"afiliadoDropDown\", \"IdAfiliado\")\r\n\r\n //obtener historial\r\n \r\n this.afiliadoRepositorio.obtenerDatosPreCertificadas(afiliado.Cedula, this.enlazarHistorialPreCertificada.bind(this))\r\n }\r\n await this.afiliadoRepositorio.obtenerNucleoFamiliar(afiliado.Cedula, enlazar)\r\n }\r\n\r\n async validarYGuardarPreCertificada() {\r\n let p = this.enlazar.enlazarInputObjeto(new PreCertificada())\r\n \r\n let camposValidar:any = [\"IdAfiliado\", \"NombrePss\", \"RazonSolicitud\", \"FechaServicio\",\r\n \"Telefono\", \"CAR\", \"IM\", \"HC\", \"OSC\"]\r\n let camposInvalidos = this.validador.validarCampos(p, camposValidar)\r\n \r\n //si no hay campos invalidos proceder\r\n if (camposInvalidos.length == 0) {\r\n \r\n this.afiliadoRepositorio.guardarPreCertificada(p, this.manejarRespuestaPreCertificada.bind(this))\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\")\r\n }\r\n }\r\n\r\n async manejarRespuestaPreCertificada(response:any) {\r\n \r\n let promises:any = []\r\n \r\n promises.push(this.afiliadoRepositorio.guardarImagenPreCertificada(response.IdSolicitudPrecertificada, response.IdAfiliado, \"CAR\"))\r\n promises.push(this.afiliadoRepositorio.guardarImagenPreCertificada(response.IdSolicitudPrecertificada, response.IdAfiliado, \"IM\"))\r\n promises.push(this.afiliadoRepositorio.guardarImagenPreCertificada(response.IdSolicitudPrecertificada, response.IdAfiliado, \"HC\"))\r\n promises.push(this.afiliadoRepositorio.guardarImagenPreCertificada(response.IdSolicitudPrecertificada, response.IdAfiliado, \"OSC\"))\r\n // if ($(\"#CedulaPic\").val())\r\n promises.push(this.afiliadoRepositorio.guardarImagenPreCertificada(response.IdSolicitudPrecertificada, response.IdAfiliado, \"CC\"))\r\n \r\n let responses = await Promise.all(promises)\r\n \r\n if (responses.some(function (v:any) { return v == false }))\r\n alerta(\"Error al enviar el reembolso\")\r\n else {\r\n let afiliado = JSON.parse(sessionStorage.getItem('afiliado'))\r\n alerta(\"Autorizacion pre-certificada guardada\")\r\n this.enlazar.enlazarObjetoInput(new PreCertificada())\r\n }\r\n }\r\n\r\n async enlazarFacturaCabecera(idfactura:number) {\r\n\r\n const handler = (factura:any) => {\r\n factura.Monto = formatNumber(factura.Monto)\r\n $(\"#Amount\").val(factura.Monto.replace(\".\",\"\").replace(\",\",\"\"));\r\n $(\"#CustomField1Value\").val(factura.Cliente);\r\n $(\"#CustomField2Value\").val(factura.VencimientoStr);\r\n this.enlazar.enlazarObjetoInput(factura)\r\n } \r\n this.afiliadoRepositorio.obtenerFacturaCabecera(idfactura, handler)\r\n this.enlazarDetalleFactura(idfactura)\r\n }\r\n\r\n\r\n \r\n async enlazarDetalleFactura(idfactura: number) {\r\n \r\n let TotalFactura:number= 0\r\n const enlazar = (detalleFacturas: any) => {\r\n detalleFacturas = detalleFacturas.map(function (x: any) {\r\n return {\r\n Descripcion: x.Descripcion,\r\n Totaldetalle: formatNumber(x.Totaldetalle)\r\n }\r\n })\r\n this.enlazar.enlazarListaPlantilla(detalleFacturas, \"plantillaDetalleFacturas\", \"DetalleFactura\")\r\n }\r\n await this.afiliadoRepositorio.obtenerFacturaDetalle(idfactura, enlazar)\r\n }\r\n\r\n\r\n \r\n async TransaccionAzulGuardar() {\r\n let transaccionAzul:any = this.enlazar.enlazarInputObjeto(new TransaccionAzul())\r\n \r\n await this.afiliadoRepositorio.GuardarTransaccionAzul(transaccionAzul)\r\n }\r\n \r\n async solicitudReestablecerContrasena(){\r\n let modelo = this.enlazar.enlazarInputObjeto(new reestablecerContrasenaAfiliado()) \r\n const campos =[\"cedula\",\"nss\",\"afiliadoId\",\"correo\"]\r\n let camposInvalidos = this.validador.validarCampos(modelo, campos)\r\n \r\n if(camposInvalidos.length == 0){\r\n this.afiliadoRepositorio.recuperarContrasena(modelo)\r\n }else{\r\n alerta(\"Debe llenar los campos marcados en rojo\")\r\n }\r\n }\r\n\r\n async cerrarSesion(){\r\n clearStorageCookies()\r\n }\r\n\r\n\r\n}","\r\nimport HttpClient from '../servicios/HttpClient'\r\nimport { baseURl, alerta,SwalType } from '../utilidades/SinClasificar'\r\nimport { reestablecerContrasenaAfiliado } from '../modelos/reestablecerContrasena'\r\nimport {EnumEstadoFactura} from'../modelos/EnumClasses'\r\nvar error = (response: any) => {\r\n alerta(\"Se ha producido un error inesperado\",null,SwalType.ERROR)\r\n}\r\n\r\ndeclare var JSON: any\r\ndeclare var swal: any\r\ndeclare var HideLoader: any\r\n\r\nclass afiliadoRepositorio {\r\n httpClient: HttpClient\r\n constructor() {\r\n this.httpClient = new HttpClient()\r\n }\r\n\r\n async obtenerDatosPlanes(IdAfiliado, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/afiliados/ObtenerPlanesActivosAfiliado/\";\r\n\r\n await this.httpClient.getJson(url + IdAfiliado, success, error)\r\n }\r\n\r\n async obtenerNucleoFamiliar(cedula, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + \"api/nucleofamiliar/\";\r\n\r\n await this.httpClient.getJson(url + cedula, success, error)\r\n }\r\n\r\n async obtenerDatosAfiliado(IdAfiliado, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + 'api/afiliados/DatosGeneralesPorId/' + IdAfiliado\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n async obtenerDatosAfiliadoPorPromotor(IdPromotor:number, handler:any) {\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + 'api/afiliados/DatosAfiliadosPorPromotor/' + IdPromotor\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n async obtenerDatosHistorial(id) {\r\n let historial = []\r\n\r\n const success = function (response) {\r\n if (response) {\r\n historial = response //.filter(function(x){ return x.Parentesco != \"TITULAR\"})\r\n }\r\n }\r\n let url = baseURl + \"api/ObtenerHistorialDeConsumoAfiliado/\";\r\n\r\n await this.httpClient.getJson(url + id, success, error)\r\n\r\n return historial;\r\n }\r\n\r\n async obtenerDatosConsumo(id, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/afiliados/ObtenerConsolidadoConsumoAfiliado/\";\r\n\r\n await this.httpClient.getJson(url + id, success, error)\r\n }\r\n\r\n async obtenerDatosConsumoAltoCosto(id, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/afiliados/ObtenerConsumoAltoCosto/\";\r\n\r\n await this.httpClient.getJson(url + id, success, error)\r\n }\r\n\r\n async obtenerDatosHistorialAutorizaciones(id, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/afiliados/ObtenerHistorialDeConsumoAfiliado/\";\r\n\r\n await this.httpClient.getJson(url + id, success, error)\r\n }\r\n\r\n async guardarAfiliado(afiliado, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n if (handler) handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/afiliados/CambiarDatosContactos\";\r\n\r\n await this.httpClient.postJson(url, afiliado, success, error)\r\n }\r\n\r\n async validaAfiliado(a: any) {\r\n let url = baseURl\r\n + `api/afiliados/${a.Cedula}/${a.Nss}/${a.Correo}/${a.IdAfiliado}`;\r\n let valid = false;\r\n\r\n const success = function (response: any) {\r\n valid = true\r\n }\r\n const error = function (response: any) {\r\n alerta(JSON.parse(response).Message,null,SwalType.ERROR)\r\n }\r\n\r\n await this.httpClient.getJson(url, success, error)\r\n\r\n return valid;\r\n }\r\n\r\n async registrar(afiliado: any) {\r\n let url = baseURl\r\n + \"api/afiliados\";\r\n const success = function (response: any) {\r\n window.location.href = \"registrado.html\"\r\n }\r\n const error = function (response: any) {\r\n alerta(JSON.parse(response).Message,null,SwalType.ERROR)\r\n }\r\n\r\n this.httpClient.postJson(url, afiliado, success, error);\r\n }\r\n\r\n iniciarSesion(model: any, handler: any) {\r\n const action = baseURl + \"api/afiliados/iniciosesion\"\r\n const error = function (response: any) {\r\n HideLoader();\r\n alerta(JSON.parse(response).Message,null,SwalType.ERROR)\r\n }\r\n\r\n this.httpClient.postJson(action, model, handler, error)\r\n }\r\n\r\n async obtenerDatosReembolso(cedula: string, handler: any) {\r\n const success = function (response: any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + `api/Autorizaciones/ObtenerHistorialReembolsos/${cedula}`;\r\n\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n async guardarReembolso(reembolso: any, handler: any) {\r\n const success = function (response: any) {\r\n if (response) {\r\n if (handler) handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/Autorizaciones/SolicitudReembolso\";\r\n\r\n await this.httpClient.postJson(url, reembolso, success, error)\r\n }\r\n\r\n async guardarImagenReembolso(id: any, idAfiliado: any, tipo: any) {\r\n let result = false\r\n const success = function (response: any) {\r\n result = true\r\n }\r\n let file = (document.getElementById(tipo) as any).files[0]\r\n\r\n let url = baseURl + `api/imagenes/reembolso/${id}/${idAfiliado}/${tipo}`;\r\n\r\n const e = function () {\r\n console.log(e)\r\n }\r\n\r\n await this.httpClient.postFile(url, file, success, e)\r\n\r\n return result\r\n }\r\n\r\n\r\n async obtenerDatosPreCertificadas(cedula: any, handler: any) {\r\n const success = function (response: any) {\r\n if (response && typeof response == \"object\") {\r\n response = response.map((x: any) => {\r\n x.pdf = baseURl + `api/Autorizaciones/ObtenerPdfAutorizacion/${x.NumeroAutorizacion}`\r\n return x\r\n })\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + `api/Autorizaciones/ObtenerHistorialPrecertificadas/${cedula}`;\r\n\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n async guardarPreCertificada(p: any, handler: any) {\r\n const success = function (response: any) {\r\n if (response) {\r\n if (handler) handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/Autorizaciones/SolicitudPrecertificadas\";\r\n\r\n await this.httpClient.postJson(url, p, success, error)\r\n }\r\n\r\n async guardarImagenPreCertificada(id: any, idAfiliado: any, tipo: any) {\r\n let result = false\r\n const success = function (response: any) {\r\n result = true\r\n }\r\n let file = (document.getElementById(tipo) as any).files[0]\r\n\r\n let url = baseURl + `api/imagenes/precertificadas/${id}/${idAfiliado}/${tipo}`;\r\n\r\n const e = function () {\r\n console.log(e)\r\n }\r\n\r\n await this.httpClient.postFile(url, file, success, e)\r\n\r\n return result\r\n }\r\n\r\n async obtenerFacturasPagadas(cedula: any, handler: any) {\r\n const success = function (response: any) {\r\n if (response && typeof response == \"object\") {\r\n response = response.map((x: any) => {\r\n x.recibo = baseURl + `api/Afiliados/ObtenerReciboIngreso/${x.IdFactura}`\r\n return x\r\n })\r\n handler(response)\r\n }\r\n if(response && typeof response == 'string'){\r\n handler([])\r\n alerta(`${response}`)\r\n }\r\n }\r\n let url = baseURl + `api/Afiliados/ObtenerHistorialPagos/${cedula}`;\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n async obtenerFacturasPorPromotor(idPromotor:number,estadoFactura:number, handler: any) {\r\n const success = function (response: any) {\r\n \r\n if (response && typeof response ==\"object\") {\r\n response = response.map((x: any) => {\r\n if(estadoFactura == EnumEstadoFactura.PENDIENTE_PAGO)\r\n x.factura = `factura${(x.IdTipoCliente==2) ? \"Promotor\":\"\"}.html?idfactura=${x.IdFactura}`\r\n else if(estadoFactura == EnumEstadoFactura.PAGADA)\r\n x.recibo = baseURl + `api/Afiliados/ObtenerReciboIngreso/${x.IdFactura}`\r\n return x\r\n })\r\n handler(response)\r\n }\r\n if(response && typeof response == 'string'){\r\n handler([])\r\n alerta(`${response}`)\r\n }\r\n \r\n }\r\n let url = baseURl + `api/Afiliados/ObtenerHistorialPagosPorPromotor/${idPromotor}/${estadoFactura}`;\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n\r\n async obtenerFacturas(cedula: any, handler: any) {\r\n const success = function (response: any) {\r\n if (response && typeof response == \"object\") {\r\n response = response.map((x: any) => {\r\n\r\n x.factura = `factura.html?idfactura=${x.IdFactura}`\r\n return x\r\n })\r\n handler(response)\r\n }\r\n if(response && typeof response == 'string'){\r\n handler([])\r\n alerta(`${response}`)\r\n }\r\n }\r\n let url = baseURl + `api/Afiliados/ObtenerFacturasPendientesPago/${cedula}`;\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n\r\n async obtenerFacturaCabecera(IdFactura: number, handler) {\r\n const success = function (response) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + \"api/afiliados/Obtenercabecerafactura/\";\r\n\r\n await this.httpClient.getJson(url + IdFactura, success, error)\r\n }\r\n\r\n async obtenerFacturaDetalle(IdFactura: number, handler: any) {\r\n const success = function (response: any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + `api/Afiliados/ObtenerDetallefactura/${IdFactura}`;\r\n\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n\r\n\r\n async GuardarTransaccionAzul(transaccionAzul: any) {\r\n const success = function (response: any) {\r\n }\r\n const error = function (response: any) {\r\n alerta(JSON.parse(response).Message,null,SwalType.ERROR)\r\n }\r\n let url = baseURl + \"api/afiliados/GuardarTransaccionAzul\";\r\n this.httpClient.postJson(url, transaccionAzul, success, error);\r\n }\r\n\r\n async recuperarContrasena(modelo: any) {\r\n const success = function (response: any) {\r\n alerta(\"Solicitud de recuperacion de contraseña enviada\",null,SwalType.SUCCESS)\r\n .then(() => {\r\n window.location.href = \"/loginAfiliados.html\"\r\n })\r\n\r\n }\r\n\r\n let url = baseURl + `api/afiliados/Recuperar/${modelo.cedula.trim()}/${modelo.nss.trim()}/${modelo.afiliadoId.trim()}`;\r\n this.httpClient.getJson(url, success, error);\r\n }\r\n\r\n}\r\n\r\nexport default afiliadoRepositorio","class Reembolso {\r\n IdAfiliado= \"\"\r\n Cedula= \"\"\r\n NombrePss= \"\" \r\n RazonSolicitud= \"\"\r\n FechaSolicitud= \"\"\r\n FechaSolicitudStr= \"\"\r\n FechaServicio= \"\"\r\n FechaServicioStr= \"\" \r\n MontoPagado= 0\r\n FormaPago= \"\"\r\n NumeroCuenta= \"\"\r\n TipoCuenta= \"\"\r\n IdBanco= 0\r\n Banco= \"\"\r\n IdSolicitudReembolso= 0\r\n NombreAfiliado= \"\"\r\n DiasCompromiso= \"\"\r\n HorasCompromiso= \"\"\r\n MinutosCompromiso= \"\"\r\n EstatusSolicitud= \"\"\r\n RP= \"\"\r\n CAR= \"\"\r\n CC= \"\"\r\n}\r\n\r\nexport default Reembolso","class PreCertificada{\r\n IdAfiliado= 1\r\n Cedula= \"\" \r\n NombrePss= \"\" \r\n RazonSolicitud= \"\" \r\n FechaServicio= \"\" \r\n Telefono= \"\" \r\n IdSolicitudPrecertificada= 0 \r\n CC= \"\" \r\n CAR= \"\" \r\n IM= \"\" \r\n HC= \"\" \r\n OSC= \"\" \r\n}\r\n\r\nexport default PreCertificada","class TransaccionAzul {\r\n IdTransaccion= 0\r\n OrderNumber= 0\r\n Amount= 0 \r\n Itbis= 0 \r\n AuthorizationCode= \"\"\r\n DateTime = \"\"\r\n ResponseCode= \"\"\r\n IsoCode= \"\"\r\n RRN= \"\"\r\n DataVaultToken= \"\"\r\n DataVaultExpiration= \"\"\r\n DataVaultBrand= \"\"\r\n AzulOrderId= \"\"\r\n ResponseMessage= \"\"\r\n}\r\n\r\nexport default TransaccionAzul\r\n","import PrestadorLogin from '../modelos/prestadorLogin'\r\nimport PrestadorRepositorio from '../repositorios/prestadorRepositorio'\r\nimport Enlazar from '../utilidades/Enlazar'\r\nimport { alerta, getQueryVariable, formatNumber, confirmar, SwalType,clearStorageCookies } from '../utilidades/SinClasificar'\r\nimport registroPrestador from '../modelos/registroPrestador'\r\nimport Validador from '../utilidades/Validador'\r\nimport { PrestadorModeloConsulta } from '../modelos/PrestadorModeloConsulta';\r\nimport PrestadorContrasena from '../modelos/prestadorContransena'\r\nimport { reestablecerContrasenaPss } from '../modelos/reestablecerContrasena'\r\nimport LoteWebSite from '../modelos/LoteWebSite'\r\nimport Procedimientos from '../modelos/Procedimientos';\r\nimport GuardarPrecioPss from '../modelos/GuardarPrecioPss'\r\nimport Centro from '../modelos/Centro'\r\nimport Persona from '../modelos/Persona'\r\nimport GeneralRepositorio from '../repositorios/GeneralRepositorio'\r\nimport CentroView from '../modelos/CentroView'\r\nimport Medico from '../modelos/Medico'\r\nimport MedicoCentro from '../modelos/MedicoCentro'\r\nimport {getFechaNacimiento} from '../utilidades/SinClasificar'\r\nimport TelefonoMedico from '../modelos/TelefonoMedico'\r\nimport TelefonoCentro from '../modelos/TelefonoCentro'\r\nimport Representante from '../modelos/Representante'\r\nimport MedicoEspecialidad from '../modelos/MedicoEspecialidad'\r\nimport {EnumTipoSolicitudPSS} from '../modelos/EnumClasses'\r\ndeclare var JSON: any\r\ndeclare var $: any\r\ndeclare var HideLoader: any\r\n \r\n\r\nexport default class PrestadorControlador {\r\n repositorio: PrestadorRepositorio\r\n generalRepo: GeneralRepositorio\r\n enlazar: Enlazar\r\n validador: Validador\r\n constructor() {\r\n this.enlazar = new Enlazar();\r\n this.repositorio = new PrestadorRepositorio()\r\n this.validador = new Validador()\r\n this.generalRepo = new GeneralRepositorio();\r\n }\r\n\r\n login() {\r\n const prestadorLogin = new PrestadorLogin()\r\n const loginModel = this.enlazar.enlazarInputObjeto(prestadorLogin) as PrestadorLogin\r\n\r\n const handler = (response: any): any => {\r\n //crear cookie y sesion\r\n if (!response) return null;\r\n let prestador = response;\r\n\r\n if (sessionStorage.getItem('prestador'))\r\n sessionStorage.clear();\r\n\r\n sessionStorage.setItem('prestador', JSON.stringify(prestador))\r\n sessionStorage.setItem('tokprestadoren', \"\")\r\n //set cookie\r\n document.cookie = \"token=;\"\r\n document.cookie = \"identificacion=\" + prestador.RncoCedula + \";\"\r\n window.location.href = \"indexPss.html\"\r\n }\r\n\r\n this.repositorio.iniciarSesion(loginModel, handler)\r\n }\r\n\r\n async revisarSesion() {\r\n let prestador = JSON.parse(sessionStorage.getItem('prestador'))\r\n if (!prestador) window.location.href = \"loginPrestadores.html\"\r\n this.enlazar.enlazarObjetoValor(\"nombreCabecera\", prestador,\".\")\r\n\r\n }\r\n async cerrarSesion(){\r\n clearStorageCookies()\r\n }\r\n\r\n validarYRegistrar() {\r\n const nuevoPrestador = this.enlazar\r\n .enlazarInputObjeto(\r\n new registroPrestador()) as registroPrestador\r\n const camposValidar: any = [\"IdPss\", \"RncCedula\", \"Contrasena\",\r\n \"CedulaRepresentante\", \"Correo\"]\r\n\r\n const contrasenaConf = $(\"#confContrasena\").val()\r\n\r\n if (!this.validador.validaContrasena(nuevoPrestador.Contrasena, contrasenaConf)) {\r\n return;\r\n }\r\n\r\n let camposInvalidos = this.validador.validarCampos(nuevoPrestador, camposValidar)\r\n if (camposInvalidos.length == 0) {\r\n this.repositorio.registrar(nuevoPrestador, this.prestadorRegistrado)\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\",\"Advertencia\",SwalType.WARNING)\r\n }\r\n }\r\n\r\n enlazarDatosPrestador() {\r\n let prestador = JSON.parse(sessionStorage[\"prestador\"])\r\n this.enlazar.enlazarObjetoInput(prestador)\r\n\r\n }\r\n\r\n consultarPrestador() {\r\n let modeloConsulta = this.enlazar\r\n .enlazarInputObjeto(new PrestadorModeloConsulta()\r\n ) as PrestadorModeloConsulta\r\n const handler = (response: any) => {\r\n if (response && response.length >= 0) {\r\n enlazarPrestadores(response)\r\n }\r\n }\r\n\r\n this.repositorio.obtenerPrestadorConsulta(modeloConsulta, handler)\r\n }\r\n\r\n cargarBusquedaPss() {\r\n if (window.location.search.includes(\"nombre\")) {\r\n let modelo = new PrestadorModeloConsulta()\r\n modelo.Nombre = getQueryVariable(\"nombre\")\r\n modelo.IdProvincia = getQueryVariable(\"idprovincia\")\r\n modelo.IdTipo = getQueryVariable(\"idtipo\")\r\n\r\n if (modelo.IdProvincia ==\"0\") modelo.IdProvincia = \"null\"\r\n if (modelo.IdTipo ==\"0\") modelo.IdTipo = \"null\"\r\n if (modelo.Nombre ==\"\" ||modelo.Nombre ==null) modelo.Nombre = \"null\"\r\n const handler = (response: any) => {\r\n if (response && response.length >= 0) {\r\n enlazarPrestadores(response)\r\n }\r\n }\r\n\r\n this.repositorio.obtenerPrestadorConsulta(modelo, handler)\r\n }\r\n }\r\n\r\n prestadorRegistrado(response: any) {\r\n window.location.href = \"registrado.html\"\r\n }\r\n\r\n cambiarContrasena() {\r\n let contrasenas = this.enlazar.enlazarInputObjeto(new PrestadorContrasena()) as PrestadorContrasena\r\n let prestador = JSON.parse(sessionStorage[\"prestador\"])\r\n contrasenas.IdPss = prestador.IdPss\r\n\r\n if (this.validador.validarCampos(contrasenas, contrasenas).length > 0) {\r\n alerta(\"Llene los campos faltantes\",\"Advertencia\",SwalType.WARNING)\r\n return;\r\n }\r\n if (this.validador.validaContrasena(contrasenas.ContrasenaConfirmacion,\r\n contrasenas.ContrasenaConfirmacion)) {\r\n const handler = (respose: any) => {\r\n\r\n }\r\n\r\n\r\n this.repositorio.cambiarContrasena(contrasenas, handler)\r\n }\r\n\r\n }\r\n\r\n enlazarHistorialReclamacionesPss() {\r\n const pss = JSON.parse(sessionStorage[\"prestador\"])\r\n const handler = (response: any) => {\r\n if (response) {\r\n this.enlazar.enlazarListaPlantilla(response, \"PlantillaHistorialReclamaciones\", \"historialReclamaciones\")\r\n }\r\n }\r\n\r\n this.repositorio.obtenerHistorialReclamaciones(pss.RncCedula, handler)\r\n }\r\n\r\n async enlazarDatosTarifa(){\r\n const pss = JSON.parse(sessionStorage[\"prestador\"]);\r\n const IdPrestador = pss.IdPss;\r\n \r\n const enlazar = ( Procedimientos: any ) =>{\r\n if(Procedimientos == undefined){\r\n $(\"#bt_GuardarTarifa\").attr(\"style\", \"display:none\")\r\n }\r\n if(Procedimientos !== undefined && Procedimientos.PreTarifas != null)\r\n if(Procedimientos.PreTarifas.length > 0 && Procedimientos.PreTarifas[0].EstadoCorto == \"Negociado\")\r\n $(\"#bt_GuardarTarifa\").attr(\"style\", \"display:none\")\r\n \r\n if(Procedimientos !== undefined && Procedimientos.PreTarifas.length > 0){\r\n let Estatus:string = \"\";\r\n switch(Procedimientos.PreTarifas[0].EstadoCorto){\r\n case \"NoNegociado\":\r\n Estatus = \"No Negociada\";\r\n break;\r\n case \"NuevaPropuestaArs\":\r\n Estatus = \"Nueva Propuesta ARS\";\r\n break;\r\n case \"NuevaPropuestaPss\":\r\n Estatus = \"Nueva Propuesta PSS\";\r\n break;\r\n default:\r\n Estatus = `${Procedimientos.PreTarifas[0].EstadoCorto}`;\r\n break;\r\n }\r\n $(\"#EstatusTarifa\").append(`(${Estatus})`)\r\n //Formating Estatus into detail\r\n for(let procedimiento of Procedimientos.Detalle){\r\n switch(procedimiento.Estado){\r\n case \"NoNegociado\":\r\n procedimiento.Estado = \"No Negociada\";\r\n break;\r\n case \"NuevaPropuestaArs\":\r\n procedimiento.Estado = \"Nueva Propuesta ARS\";\r\n break;\r\n case \"NuevaPropuestaPss\":\r\n procedimiento.Estado = \"Nueva Propuesta PSS\";\r\n break;\r\n default:\r\n procedimiento.Estado = \"Negociado\";\r\n break;\r\n }\r\n }\r\n }\r\n if(Procedimientos != undefined){\r\n let detalle = Procedimientos.Detalle;\r\n detalle.sort((first, second)=> first.Estado > second.Estado ? -1 : 0 )\r\n\r\n Procedimientos = detalle.map((a: any) => {\r\n return {\r\n CodSimon: a.CodSimon,\r\n Procedimiento: a.Procedimiento,\r\n PrecioArs: formatNumber(a.PrecioArs),\r\n PrecioPss: a.PrecioPss,\r\n Estado: a.Estado,\r\n Opciones:(a.Estado == \"Negociado\")? \r\n `\r\n Cambiar precio\r\n `\r\n : (a.Estado == \"NuevaPropuestaPss\")?\r\n `\r\n Cambiar precio\r\n `\r\n :`\r\n Cambiar precio\r\n `\r\n }\r\n })\r\n $(\".dataTables_length\").empty()\r\n $(\".dataTables_filter\").empty()\r\n $(\".dataTables_info\").empty()\r\n $(\".dataTables_paginate\").empty()\r\n \r\n $('#TablaProcedimientosTarifa').DataTable({\r\n \"language\": {\r\n \"sProcessing\": \"Procesando...\",\r\n \"sLengthMenu\": \"Mostrar _MENU_ registros\",\r\n \"sZeroRecords\": \"No se encontraron resultados\",\r\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\r\n \"sInfo\": \"Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros\",\r\n \"sInfoEmpty\": \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n \"sInfoFiltered\": \"(filtrado de un total de _MAX_ registros)\",\r\n \"sInfoPostFix\": \"\",\r\n \"sSearch\": \"Buscar:\",\r\n \"sUrl\": \"\",\r\n \"sInfoThousands\": \",\",\r\n \"sLoadingRecords\": \"Cargando...\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"Primero\",\r\n \"sLast\": \"Último\",\r\n \"sNext\": \"Siguiente\",\r\n \"sPrevious\": \"Anterior\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": Activar para ordenar la columna de manera ascendente\",\r\n \"sSortDescending\": \": Activar para ordenar la columna de manera descendente\"\r\n }\r\n },\r\n data: Procedimientos,\r\n columns: [\r\n { data: 'CodSimon' },\r\n { data: 'Procedimiento' },\r\n { data: 'PrecioArs' },\r\n { data: 'PrecioPss' },\r\n { data: 'Estado' },\r\n { data: 'Opciones' }\r\n ],\r\n ordering:false\r\n });\r\n $('#TablaProcedimientosTarifa').attr(\"style\", \"width:100% !important\")\r\n\r\n //Set Events to Buttons of the options (Cambiar Valor)\r\n var el = document.querySelectorAll('.BtnModificarPrecio');\r\n for(var i=0; i < el.length; i++){\r\n el[i].addEventListener('click', this.CambiarPrecioBtnClickHandler, false);\r\n }\r\n\r\n var elbt_GetAllPropuestaPss = document.querySelectorAll(\".BtnNuevaPropuestaPss\");\r\n for(var i=0; i < elbt_GetAllPropuestaPss.length; i++){\r\n elbt_GetAllPropuestaPss[i].addEventListener('click', this.EsperandoPorPropuestaArs, false);\r\n }\r\n }\r\n }\r\n this.repositorio.obtenerTarifaPrestador(IdPrestador, enlazar);\r\n }\r\n\r\n /**\r\n * Events of Button Modificar precio Pss \r\n */\r\n CambiarPrecioBtnClickHandler(){\r\n $(\"#ModalCodSimon\").val(this.dataset.codsimon);\r\n $(\"#ModalCodMetaSalud\").val(this.dataset.codmetasalud);\r\n $(\"#ModalEstado\").val(this.dataset.estado);\r\n $(\"#ModalProcedimiento\").val(this.dataset.procedimiento);\r\n $(\"#ModalPrecioArs\").val(this.dataset.precioars);\r\n $(\"#ModalPrecioPss\").val(this.dataset.preciopss);\r\n $(\"#Modal_ModificarPrecioPss\").modal(\"show\");\r\n }\r\n\r\n EsperandoPorPropuestaArs(){\r\n alerta(\"Debe esperar la nueva propuesta por parte de la ARS.\",\"Aviso\",SwalType.INFO);\r\n }\r\n\r\n /**\r\n * Guardar los nuevos precios de los prestadores\r\n */\r\n async GuardarCambiosProcedimientos(){\r\n const pss = JSON.parse(sessionStorage[\"prestador\"]);\r\n const IdPrestador = pss.IdPss;\r\n let PrecioPss = $(\"#ModalNuevoPrecioPss\").val();\r\n let CodMetasalud = $(\"#ModalCodMetaSalud\").val();\r\n \r\n let modeloPrecio = new GuardarPrecioPss();\r\n modeloPrecio.IdPrestador = IdPrestador;\r\n modeloPrecio.CodMetasalud = CodMetasalud;\r\n modeloPrecio.PrecioPss = PrecioPss;\r\n\r\n function handler(response: any) {\r\n alerta(\"Se envio la solicitud de la nueva propuesta!\",\"Informacion\",SwalType.INFO)\r\n .then(() => {\r\n location.reload();\r\n })\r\n }\r\n\r\n await this.repositorio.guardarPrecioProcedmiento(modeloPrecio, handler)\r\n }\r\n\r\n async EnviarNotificacionNuevosCambiosTarifa() {\r\n const pss = JSON.parse(sessionStorage[\"prestador\"]);\r\n const IdPrestador = pss.IdPss;\r\n function handler(response: any) {\r\n \r\n alerta(\"Se envio la solicitud de la nueva propuesta de cambios en la tarifa!\",\"Aviso\",SwalType.INFO)\r\n .then(() => {\r\n location.reload();\r\n })\r\n }\r\n this.repositorio.EnviarNotificacionNuevosCambiosTarifa(IdPrestador, handler)\r\n }\r\n\r\n\r\n async editar() {\r\n $(\".editable\").each(function () {\r\n $(this).removeAttr(\"disabled\")\r\n $(this).addClass(\"editando\")\r\n })\r\n $(\"#botonEditar\").attr(\"style\", \"display:none\")\r\n $(\"#botonGuardar\").removeAttr(\"style\")\r\n }\r\n\r\n async guardar() {\r\n const pss = this.enlazar.enlazarInputObjetoPorClase(\"editable\") as any\r\n const prestdor = JSON.parse(sessionStorage[\"prestador\"])\r\n pss.IdPss = prestdor.IdPss\r\n //enviar al servidor\r\n\r\n function handler(response: any) {\r\n $(\".editable\").each(function () {\r\n $(this).attr(\"disabled\", \"disabled\")\r\n $(this).removeClass(\"editando\")\r\n })\r\n\r\n alerta(response)\r\n\r\n $(\"#botonGuardar\").attr(\"style\", \"display:none\")\r\n $(\"#botonEditar\").removeAttr(\"style\")\r\n }\r\n\r\n await this.repositorio.guardarPss(pss, handler)\r\n }\r\n\r\n async solicitudReestablecerContrasena(){\r\n let modelo = this.enlazar.enlazarInputObjeto(new reestablecerContrasenaPss()) \r\n const campos =[\"RncoCedula\",\"CedulaRepresentante\",\"Correo\",\"IdPss\"]\r\n let camposInvalidos = this.validador.validarCampos(modelo, campos)\r\n \r\n if(camposInvalidos.length == 0){\r\n this.repositorio.recuperarContrasena(modelo)\r\n }else{\r\n alerta(\"Debe llenar los campos marcados en rojo\",\"Advertencia\",SwalType.WARNING)\r\n }\r\n }\r\n\r\n \r\n async GuardarLote() {\r\n let p = this.enlazar.enlazarInputObjeto(new LoteWebSite())\r\n\r\n let camposValidar:any = [\"IdPss\", \"RncCedula\", \"NombrePss\", \"Correo\",\r\n \"Telefono\", \"CantidadReclamos\", \"MontoTotalReclamos\", \"Lote\"]\r\n let camposInvalidos = this.validador.validarCampos(p, camposValidar)\r\n\r\n //si no hay campos invalidos proceder\r\n if (camposInvalidos.length == 0) {\r\n this.repositorio.guardarLoteWebsite(p, this.manejarRespuestaLoteWebSite.bind(this))\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\",\"Advertencia\",SwalType.WARNING)\r\n }\r\n }\r\n\r\n\r\n async manejarRespuestaLoteWebSite(response:any) {\r\n \r\n let promises:any = []\r\n\r\n promises.push(this.repositorio.guardarArchivoLote(response.IdLoteWebSite, response.IdPss))\r\n\r\n let responses = await Promise.all(promises)\r\n\r\n if (responses.some(function (v:any) { return v == false }))\r\n {\r\n HideLoader()\r\n alerta(\"Error al enviar el Lote.\",\"Error\",SwalType.ERROR)\r\n }\r\n else {\r\n HideLoader()\r\n alerta(\"Lote guardado, hemos enviado un acuse de recibo a su correo!\",\"Confirmacion\",SwalType.SUCCESS)\r\n this.enlazar.enlazarObjetoInput(new LoteWebSite())\r\n }\r\n }\r\n\r\n\r\n async BuscarPssId(idPss: any) {\r\n const enlazar = (prestador: any) => {\r\n if (prestador.nombre) {\r\n $(\"#IdPss\").val(prestador.IdPss);\r\n $(\"#NombrePss\").val(prestador.nombre);\r\n $(\"#RncCedula\").val(prestador.RncCedula);\r\n }\r\n }\r\n await this.repositorio.obtenerDatosPssId(idPss, enlazar)\r\n }\r\n\r\n async BuscarPssRnc(RncCedula: any) {\r\n const enlazar = (prestador: any) => {\r\n if (prestador.nombre) {\r\n $(\"#IdPss\").val(prestador.IdPss);\r\n $(\"#NombrePss\").val(prestador.nombre);\r\n $(\"#RncCedula\").val(prestador.RncCedula);\r\n }\r\n }\r\n await this.repositorio.obtenerDatosPssRnc(RncCedula, enlazar)\r\n }\r\n\r\n async enlazarConsultaRepresentanteByCedula(Cedula:string=\"\"){\r\n const enlazar = (persona: any) => {\r\n if (persona.Cedula) {\r\n var d = new Date(persona.Fechnac)\r\n $(\"#NombreRepresentante\").val(persona.Nombre1);\r\n $(\"#ApellidoRepresentante\").val(`${persona.Apellido1} ${persona.Apellido2}`);\r\n $(\"#FechaNacimientoStrRepresentante\").val(`${(\"0\" + (d.getDate())).slice(-2)}-${(\"0\" + (d.getMonth() + 1)).slice(-2)}-${d.getFullYear()}`);\r\n $('#SexoRepresentante').val(persona.Sexo);\r\n $('#IdEstadoCivilRepresentante').val(persona.ESTACIVIL == 'S' ? 2:1)\r\n }\r\n }\r\n await this.generalRepo.obtenerDatosByCedula(Cedula, enlazar)\r\n }\r\n enlazarEspecialidades(selector:string=\"IdEspecialidad\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectEspecialidad\",selector)\r\n }\r\n this.repositorio.obtenerEspecialidades(handler);\r\n }\r\n enlazarClasificaciones(selector:string=\"TipoCentro\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectGeneric\",selector)\r\n }\r\n this.repositorio.obtenerClasificaciones(handler);\r\n }\r\n enlazarProvinciasRepresentante(){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectProvinciasRepresentante\", \"IdProvinciaRepresentante\")\r\n }\r\n this.generalRepo.obtenerProvincias(handler);\r\n }\r\n enlazarMunicipiosRepresentante(IdProvincia:number=null){\r\n\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectMunicipiosRepresentante\", \"IdMunicipioRepresentante\")\r\n }\r\n this.generalRepo.obtenerMunicipios(IdProvincia,handler)\r\n }\r\n consultarCentros() {\r\n let modeloConsulta = this.enlazar\r\n .enlazarInputObjeto(new CentroView()\r\n ) as CentroView\r\n \r\n const handler = (response: any) => {\r\n if (response && response.length >= 0) {\r\n\r\n enlazarCentros(response)\r\n }\r\n }\r\n this.repositorio.obtenerCentrosMedicos(modeloConsulta, handler)\r\n }\r\n async GuardarPssMedico() {\r\n let medico = this.enlazar.enlazarInputObjeto(new Medico()) as Medico;\r\n medico.FechaNacimiento = getFechaNacimiento(medico.FechaNacimientoStr);\r\n let camposValidar:any = [\"Cedula\",\"Nombres\", \"Apellidos\", \"Exequatur\",\"Correo\"]\r\n let especialidades = this.enlazar.enlazarInputObjetoPorClase(\"MedicoEspecialidad\")as any;;\r\n medico.Especialidades = \r\n {\r\n IdMedicoEspecialidad:null,\r\n IdEspecialidad:especialidades.IdEspecialidad,\r\n IdSolicitudMedico:null,\r\n Tipo:especialidades.TipoEspecialidad\r\n }\r\n medico.Centros = new Array();\r\n medico.Centros.push(this.enlazar.enlazarInputObjeto(new MedicoCentro()) as MedicoCentro);\r\n medico.Telefonos = new Array();\r\n let tel = this.enlazar.enlazarInputObjetoPorClase(\"TelefonoMedico\") as any;\r\n medico.Telefonos.push(\r\n {Telefono: tel.TelCasaMedico,IdSolicitudMedico:null,IdTelMedico:null,IdTipo:1},\r\n {Telefono: tel.TelCelularMedico,IdSolicitudMedico:null,IdTelMedico:null,IdTipo:3},\r\n {Telefono: tel.TelConsultorioMedico,IdSolicitudMedico:null,IdTelMedico:null,IdTipo:4});\r\n\r\n let camposInvalidosMedico = this.validador.validarCampos(medico, camposValidar)\r\n let camposInvalidosCentroMedico = this.validador.validarCamposArray(\r\n [medico.Centros[0].NombreCentro],[\"NombreCentro\"]);\r\n let camposInvalidosTelefono = this.validador.validarCampos(tel,[\"TelConsultorioMedico\"]);\r\n //si no hay campos invalidos proceder\r\n if (camposInvalidosMedico.length == 0 && camposInvalidosCentroMedico.length==0 && camposInvalidosTelefono.length==0) {\r\n const resp = await confirmar(\"Está seguro de enviar esta solicitud?\",\"Confirmacion de Envio\",SwalType.INFO);\r\n if(resp)\r\n this.repositorio.GuardarPssMedico(medico,this.DocumentosPss.bind(this));\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\",\"Advertencia\",SwalType.WARNING)\r\n }\r\n }\r\n \r\n async GuardarPssCentro() {\r\n let centro = this.enlazar.enlazarInputObjeto(new Centro()) as Centro;\r\n // medico.FechaNacimiento = getFechaNacimiento(medico.FechaNacimientoStr);\r\n let camposCentroValidar:any = [\"RNCEMPR\",\"RAZONSC\",\"IdGrupo\",\"IdAreaSalud\",\"IdProvincia\",\"IdMunicipio\"]\r\n let camposRepresentanteValidar:any=\r\n [\"CedulaRepresentante\",\"NombreRepresentante\",\"ApellidoRepresentante\",\"CorreoCentro\"]\r\n let tel = this.enlazar.enlazarInputObjetoPorClase(\"TelefonoCentro\") as any;\r\n centro.Telefonos = new Array();\r\n centro.Telefonos.push(\r\n {Telefono: tel.TelCentro1,IdSolicitudCentro:null,IdTipo:2,IdTelCentro:null},\r\n {Telefono: tel.TelCentro2,IdSolicitudCentro:null,IdTipo:2,IdTelCentro:null},\r\n {Telefono: tel.TelCentro3,IdSolicitudCentro:null,IdTipo:2,IdTelCentro:null},\r\n {Telefono: tel.TelCentro4,IdSolicitudCentro:null,IdTipo:2,IdTelCentro:null});\r\n let representante = this.enlazar.enlazarInputObjetoPorClase(\"RepresentanteCentro\") as any;\r\n centro.Representante=\r\n {\r\n IdRepresentante:null,\r\n Cedula:representante.CedulaRepresentante,\r\n Nombres:representante.NombreRepresentante,\r\n Apellidos:representante.ApellidoRepresentante,\r\n FechaNacimientoStr: representante.FechaNacimientoStrRepresentante,\r\n FechaNacimiento:getFechaNacimiento(representante.FechaNacimientoStrRepresentante),\r\n Sexo:representante.SexoRepresentante,\r\n IdEstadoCivil: representante.IdEstadoCivilRepresentante,\r\n IdNacionalidad: representante.IdNacionalidadRepresentante,\r\n IdTitulo:representante.IdTituloRepresentante,\r\n Ocupacion:representante.OcupacionRepresentante,\r\n IdCiudad: representante.IdProvinciaRepresentante,\r\n IdSector: representante.IdMunicipioRepresentante,\r\n Direccion:representante.DireccionRepresentante,\r\n Nombre1:null,\r\n Apellido1:null,\r\n Apellido2:null,\r\n }\r\n centro.Correo = (this.enlazar.enlazarInputObjetoPorClase(\"CentroDatos\") as any).CorreoCentro;\r\n let camposInvalidosCentro = this.validador.validarCampos(centro, camposCentroValidar)\r\n let camposInvalidosRepr = this.validador.validarCamposArray\r\n (\r\n [centro.Representante.Cedula,centro.Representante.Nombres,centro.Representante.Apellidos,centro.Correo],camposRepresentanteValidar\r\n );\r\n let camposInvalidosTel = this.validador.validarCampos(tel,[\"TelCentro1\"]);\r\n //si no hay campos invalidos proceder\r\n if (camposInvalidosCentro.length == 0 && camposInvalidosRepr.length == 0 && camposInvalidosTel.length==0) {\r\n const resp = await confirmar(\"Está seguro de enviar esta solicitud?\",\"Confirmacion de Envio\",SwalType.INFO);\r\n if(resp)\r\n this.repositorio.GuardarPssCentro(centro,this.DocumentosPss.bind(this));\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\",\"Advertencia\",SwalType.WARNING)\r\n }\r\n }\r\n async DocumentosPss(response:any){\r\n let promises:any = []\r\n let tipo = response.hasOwnProperty(\"IdSolicitudMedico\") ;\r\n switch(tipo){\r\n case true:\r\n sessionStorage.setItem(\"Grupo\",response.IdClasificacion);\r\n sessionStorage.setItem(\"IdSolicitud\",response.IdSolicitudMedico)\r\n sessionStorage.setItem(\"TipoSol\",`${EnumTipoSolicitudPSS.MEDICO}`)\r\n break;\r\n case false:\r\n sessionStorage.setItem(\"Grupo\",response.IdGrupo);\r\n sessionStorage.setItem(\"IdSolicitud\",response.IdSolicitudCentro)\r\n sessionStorage.setItem(\"TipoSol\",`${EnumTipoSolicitudPSS.CENTRO}`)\r\n break;\r\n }\r\n sessionStorage.setItem(\"IdClasificacion\",response.IdClasificacion);\r\n promises.push(window.location.href= `./DocumentosPSS.html`)\r\n\r\n let responses = await Promise.all(promises)\r\n } \r\n async CargarDocumentos(){\r\n var response = {\r\n \"TipoSol\":sessionStorage.getItem(\"TipoSol\"),\r\n \"IdSolicitud\":parseInt(sessionStorage.getItem(\"IdSolicitud\"))\r\n };\r\n var IdClasificacion = parseInt(sessionStorage.getItem(\"IdClasificacion\"))\r\n var IdGrupo = parseInt(sessionStorage.getItem(\"Grupo\"))\r\n let doc:any;\r\n switch(IdClasificacion){\r\n case 1:\r\n if(IdGrupo==6)\r\n doc = this.enlazar.enlazarInputFilePorClase(\"Doc-Centro-Odontologico\")\r\n else\r\n doc = this.enlazar.enlazarInputFilePorClase(\"Doc-Centro-Medico\")\r\n break;\r\n case 2:\r\n break;\r\n case 3:\r\n\r\n doc = this.enlazar.enlazarInputFilePorClase(\"Doc-Centro-Diagnostico\")\r\n break;\r\n case 4:\r\n doc = this.enlazar.enlazarInputFilePorClase(\"Doc-Farmacia\")\r\n break;\r\n case 5:\r\n doc = this.enlazar.enlazarInputFilePorClase(\"Doc-Medico\")\r\n break;\r\n }\r\n if(response.hasOwnProperty(\"IdSolicitud\") && response.hasOwnProperty(\"TipoSol\")){\r\n const resp = await confirmar(\"Seguro de cargar estos archivos?\",\"Confirmar Carga\",SwalType.INFO)\r\n if(resp)\r\n this.manejarRespuestaDocumentosPSS(response,doc);\r\n }\r\n }\r\n\r\n\r\n async manejarRespuestaDocumentosPSS(response:any,doc:any) {\r\n let promises:any = []\r\n\r\n promises.push(this.repositorio.GuardarArchivoSolicitudPSS(response,doc))\r\n\r\n let responses = await Promise.all(promises)\r\n\r\n if (responses.some(function (v:any) { return v == false }))\r\n {\r\n // HideLoader()\r\n alerta(\"Error al enviar Documentos.\",\"Error\",SwalType.ERROR);\r\n }\r\n else {\r\n // HideLoader()\r\n const emailResp = await this.repositorio.EnviarMailRecepcionSolicitudPSS(response);\r\n const storage = await sessionStorage.clear();\r\n const resp = await alerta(\"Documentos guardados, hemos enviado la solicitud a su correo!\",\"Carga Exitosa\",SwalType.SUCCESS)\r\n \r\n location.href = './index.html';\r\n // this.enlazar.enlazarObjetoInput(new LoteWebSite())\r\n }\r\n }\r\n seleccionarCentroBusqueda(id:number=null,value:string=\"\"){\r\n $('#IdCentroMedico').val(id)\r\n $('#NombreCentro').val(value)\r\n }\r\n async seleccionarTipoDocumento(){\r\n if(sessionStorage.length>1){\r\n var Clasificacion = parseInt(sessionStorage.getItem(\"IdClasificacion\"));\r\n var IdGrupo = parseInt(sessionStorage.getItem(\"Grupo\"));\r\n switch(Clasificacion){\r\n case 1:\r\n if(IdGrupo == 6)\r\n $('#tab_Doc_CentroOdontologico').css(\"display\",\"inline\");\r\n else\r\n $('#tab_Doc_CentroMedico').css(\"display\",\"inline\");\r\n break;\r\n case 2:\r\n break;\r\n case 3:\r\n $('#tab_Doc_CentroDiagnosticoLaboratorio').css(\"display\",\"inline\");\r\n break;\r\n case 4:\r\n $('#tab_Doc_Farmacia').css(\"display\",\"inline\");\r\n break;\r\n case 5:\r\n $('#tab_Doc_Medico').css(\"display\",\"inline\");\r\n break;\r\n } \r\n }\r\n else\r\n {\r\n const resp = await alerta(\"Debe realizar la solicitud de PSS primero\",\"Aviso\",SwalType.INFO);\r\n location.href=\"./Prestadores.html\";\r\n }\r\n \r\n\r\n }\r\n\r\n}\r\nfunction enlazarPrestadores(prestadores: any) {\r\n var table = $('#TablaAutorizaciones').DataTable()\r\n table.clear()\r\n table.rows.add(prestadores)\r\n table.draw()\r\n\r\n}\r\n\r\nfunction enlazarCentros(centros: Array) {\r\n var table = $('#TblCentros').DataTable()\r\n table.clear()\r\n for(let centro of centros)\r\n {\r\n table.row.add([centro.Nombre,centro.Grupo,centro.Provincia,centro.Municipio,centro.Direccion,\r\n ``])\r\n }\r\n table.draw()\r\n}\r\n\r\n\r\n\r\n\r\n","\r\n\r\nexport default class PrestadorLogin{\r\n RncoCedula:string =\"\"\r\n Contrasena:string =\"\"\r\n}","import HttpClient from '../servicios/HttpClient'\r\nimport LoginPrestador from '../modelos/prestadorLogin'\r\nimport { baseURl, alerta, defaultHttpErrorHandler,SwalType } from '../utilidades/SinClasificar'\r\nimport registroPrestador from '../modelos/registroPrestador'\r\nimport GuardarPrecioPss from '../modelos/GuardarPrecioPss';\r\nimport { PrestadorModeloConsulta } from '../modelos/PrestadorModeloConsulta';\r\nimport PrestadorContrasena from '../modelos/prestadorContransena';\r\nimport Centro from '../modelos/Centro';\r\nimport Medico from '../modelos/Medico';\r\nimport CentroView from '../modelos/CentroView';\r\nimport EnumTipoSolicitudPSS from '../modelos/EnumTipoSolicitud';\r\n\r\nvar error = (response: any) => {\r\n console.log(response)\r\n alerta(\"Se ha producido un error inesperado!\",null,SwalType.ERROR)\r\n}\r\n\r\ndeclare var swal: any\r\ndeclare var JSON: any\r\ndeclare var HideLoader: any\r\ndeclare var ShowLoader: any\r\n\r\n class PrestadorRepositorio {\r\n httpClient: HttpClient\r\n constructor() {\r\n this.httpClient = new HttpClient();\r\n }\r\n\r\n iniciarSesion(model: LoginPrestador, handler: any) {\r\n const action = baseURl + \"api/pss/InicioSesion\"\r\n this.httpClient.postJson(action, model, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n registrar(model: registroPrestador, handler: (res: any) => void) {\r\n const action = baseURl + \"api/pss/\"\r\n this.httpClient.postJson(action, model, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n obtenerPrestador(rnc: any, handler: any) {\r\n const action = baseURl + `api/pss/${rnc}`\r\n this.httpClient.getJson(action, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n obtenerPrestadorConsulta(modelo: PrestadorModeloConsulta, handler: (respose: any) => void) {\r\n\r\n if (modelo.Nombre ==\"\" ||modelo.Nombre ==null) modelo.Nombre = \"null\"\r\n const action = baseURl + `api/pss/ObtenerPSSConsulta/${modelo.Nombre}/${modelo.IdTipo}/${modelo.IdProvincia}`\r\n this.httpClient.getJson(action, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n obtenerPrestadorTipos(handler: (respose: any) => void) {\r\n\r\n const action = baseURl + `api/pss/ObtenerPSSConsulta/`\r\n this.httpClient.getJson(action, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n async obtenerTarifaPrestador(IdPrestador:number, handler: (respose: any) => void) {\r\n const action = baseURl +`api/pss/ObtenerPreTarifa/${IdPrestador}`\r\n //const action = `https://localhost:52982/api/pss/ObtenerPreTarifa/${IdPrestador}`\r\n \r\n await this.httpClient.getJson(action, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n async guardarPrecioProcedmiento(procedimiento:GuardarPrecioPss, handler:any){\r\n const action = baseURl + `api/pss/CambiarPrecioPss/`\r\n //const action = `https://localhost:52982/api/pss/CambiarPrecioPss/`\r\n await this.httpClient.postJson(action,procedimiento, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n async EnviarNotificacionNuevosCambiosTarifa(IdPrestador:number, handler:any){\r\n const action = baseURl + `api/pss/EnviarNotificacionNuevosCambios/${IdPrestador}`;\r\n //const action = `https://localhost:52982/api/pss/EnviarNotificacionNuevosCambios/${IdPrestador}`;\r\n await this.httpClient.getJson(action, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n cambiarContrasena(model: PrestadorContrasena, handler: any) {\r\n const action = baseURl + `api/pss/CambiarCredenciales/`\r\n this.httpClient.postJson(action, model, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n obtenerHistorialReclamaciones(RncCedula: string, handler: (respose: any) => void) {\r\n\r\n const action = baseURl + `api/pss/ObtenerHistorialSolicitudesPss/${RncCedula}`\r\n this.httpClient.getJson(action, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n guardarPss(pss:any, handler:any){\r\n const action = baseURl + `api/pss/CambiarDatosContactos/`\r\n this.httpClient.postJson(action,pss, handler, defaultHttpErrorHandler)\r\n }\r\n\r\n async recuperarContrasena(modelo: any) {\r\n const success = function (response: any) {\r\n alerta(\"Solicitud de recuperacion de contraseña enviada\",null,SwalType.SUCCESS)\r\n .then(() => {\r\n window.location.href = \"/loginPrestadores.html\"\r\n })\r\n\r\n }\r\n\r\n let url = baseURl + `api/pss/Recuperar/${modelo.RncoCedula.trim()}/${modelo.CedulaRepresentante.trim()}/${modelo.Correo.trim()}/${modelo.IdPss.trim()}`;\r\n this.httpClient.getJson(url, success, defaultHttpErrorHandler);\r\n }\r\n\r\n async guardarLoteWebsite(p: any, handler: any) {\r\n ShowLoader();\r\n const success = function (response: any) {\r\n if (response) {\r\n if (handler) handler(response)\r\n }\r\n }\r\n let url = baseURl + \"api/Reclamaciones/RegistrarCargaLoteReclamaciones/\";\r\n\r\n await this.httpClient.postJson(url, p, success, error) \r\n }\r\n\r\n async guardarArchivoLote(IdLoteWebSite: any, IdPss: any) {\r\n let result = false\r\n const success = function (response: any) {\r\n result = true\r\n }\r\n let file = (document.getElementById(\"Lote\") as any).files[0]\r\n\r\n let url = baseURl + `api/imagenes/lote/${IdLoteWebSite}/${IdPss}`;\r\n\r\n const e = function () {\r\n console.log(e)\r\n }\r\n\r\n await this.httpClient.postFile(url, file, success, e)\r\n return result\r\n }\r\n\r\n async obtenerDatosPssId(IdPSs:number, handler:any) {\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + 'api/pss/buscarporId/' + IdPSs\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n \r\n async obtenerDatosPssRnc(RncoCedula:string, handler:any) {\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n\r\n let url = baseURl + 'api/pss/' + RncoCedula\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n async obtenerEspecialidades(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/pss/medico/especialidades`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerClasificaciones(handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + `api/pss/clasificaciones`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n async obtenerCentrosMedicos(model:CentroView, handler:any){\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url=\"\";\r\n if(model.NombreMedicoCentro && model.NombreMedicoCentro!=\"\")\r\n url = baseURl + `api/pss/medico/centrosmedicos/nombre/${model.NombreMedicoCentro}/clasificacion/${model.TipoCentro}`;\r\n await this.httpClient.getJson(url, success, defaultHttpErrorHandler)\r\n }\r\n GuardarPssMedico(model: Medico, handler: (response: any) => void) {\r\n const success = function (res: Medico) {\r\n if (res) {\r\n if (handler) handler(res)\r\n }\r\n }\r\n const action = baseURl + \"api/pss/registro/medico\"\r\n this.httpClient.postJson(action, model, success, defaultHttpErrorHandler)\r\n }\r\n\r\n async GuardarArchivoSolicitudPSS(response:any,docs:any) {\r\n let result = false\r\n const success = function (response: any) {\r\n result = true\r\n }\r\n for(let file of docs){\r\n let url = baseURl + `api/pss/documentos/${response.TipoSol}/${response.IdSolicitud}/${file.IdTipoDoc}`;\r\n\r\n const e = function () {\r\n console.log(e)\r\n }\r\n await this.httpClient.postFile(url, file.File, success, e)\r\n }\r\n \r\n return result\r\n }\r\n async EnviarMailRecepcionSolicitudPSS(response:any) {\r\n let result = false\r\n const success = function (response: any) {\r\n result = true\r\n }\r\n \r\n let url = baseURl + `api/pss/email/${response.TipoSol}/${response.IdSolicitud}`;\r\n\r\n const e = function () {\r\n console.log(e)\r\n }\r\n await this.httpClient.postJson(url,null, success, e)\r\n \r\n return result\r\n }\r\n GuardarPssCentro(model: Centro, handler: any) {\r\n const success = function (res: any) {\r\n if (res) {\r\n if (handler) handler(res)\r\n }\r\n }\r\n const action = baseURl + \"api/pss/registro/centro\"\r\n this.httpClient.postJson(action, model, success, defaultHttpErrorHandler)\r\n }\r\n\r\n}\r\n\r\nexport default PrestadorRepositorio","\r\nexport default class registroPrestador{\r\n constructor(){\r\n\r\n }\r\n \r\n IdPss:number = 0\r\n nombre:string = \"\"\r\n RncCedula: string = \"\"\r\n CedulaRepresentante:string = \"\"\r\n Correo:string = \"\"\r\n Contrasena:string = \"\"\r\n OrigenCreacion:string = \"\"\r\n \r\n}","\r\n\r\nexport default class PrestadorContrasena{\r\n IdPss:number\r\n ContrasenaAnterior:string =\"\"\r\n ContrasenaNueva:string =\"\"\r\n ContrasenaConfirmacion:string = \"\"\r\n}","class LoteWebSite{\r\n IdPss= 0\r\n Correo= \"\" \r\n Telefono= \"\" \r\n CantidadReclamos= 0\r\n MontoTotalReclamos= 0\r\n Lote= \"\" \r\n RncCedula=\"\"\r\n NombrePss=\"\"\r\n}\r\n\r\nexport default LoteWebSite","class GuardarPrecioPss{\r\n IdPrestador= 0\r\n CodMetasalud= \"\" \r\n PrecioPss= 0\r\n}\r\n\r\nexport default GuardarPrecioPss","import Persona from \"./Persona\";\r\n\r\nexport default class Representante extends Persona {\r\n\r\n IdRepresentante:number;\r\n IdTitulo:number;\r\n Ocupacion:string=\"\";\r\n Direccion:string=\"\";\r\n IdCiudad:number;\r\n IdSector:number;\r\n}","export default class Empresa {\r\n RAZONSC:string=\"\";\r\n RNCEMPR:string=\"\";\r\n \r\n}","import Centro from \"./Centro\";\r\n\r\nexport default class CentroView {\r\n NombreMedicoCentro:string=\"\";\r\n TipoCentro:string=\"\";\r\n ProvinciaCentro:string=\"\";\r\n MunicipioCentro:string=\"\";\r\n}","import TelefonoMedico from '../modelos/TelefonoMedico';\r\nimport MedicoEspecialidad from '../modelos/MedicoEspecialidad';\r\nimport Persona from './Persona';\r\nimport MedicoCentro from './MedicoCentro';\r\nexport default class Medico extends Persona {\r\n constructor(){\r\n super();\r\n this.Especialidades = new MedicoEspecialidad();\r\n this.Centros = new Array();\r\n this.Telefonos = new Array();\r\n }\r\n IdSolicitudMedico:number;\r\n Exequatur:string=\"\";\r\n IdClasificacion:number=null;\r\n Correo:string=\"\";\r\n Estatus:string=null;\r\n Especialidades:MedicoEspecialidad = new MedicoEspecialidad();\r\n Telefonos:Array = new Array();\r\n Centros:Array=new Array();\r\n \r\n}\r\n","export default class MedicoEspecialidad {\r\n IdMedicoEspecialidad:number=null;\r\n IdEspecialidad:number=null;\r\n IdSolicitudMedico:number=null;\r\n Tipo:TipoEspecialidad=TipoEspecialidad.PRIMARIA;\r\n}\r\nenum TipoEspecialidad {\r\n PRIMARIA = 1,\r\n SECUNDARIA = 2\r\n}\r\n","import Centro from \"./Centro\";\r\n\r\nexport default class MedicoCentro extends Centro {\r\n IdMedicoCentro:number=null;\r\n IdSolicitudMedico:number=null;\r\n IdCentroMedico:number=null;\r\n NombreCentro:string=\"\"\r\n}","import Validador from '../utilidades/Validador'\r\nimport Enlazar from '../utilidades/Enlazar'\r\nimport Contacto from '../modelos/contacto'\r\nimport ContactoRepositorio from '../repositorios/ContactoRepositorio'\r\nimport {alerta} from '../utilidades/SinClasificar'\r\n\r\nexport default class ContactoController{\r\nconstructor(){\r\n this.enlazar = new Enlazar()\r\n this.validador = new Validador()\r\n this.repositorio = new ContactoRepositorio()\r\n}\r\nenlazar:Enlazar\r\nvalidador:Validador\r\nrepositorio:ContactoRepositorio\r\n\r\n validarYGuardarFormularioContacto = () => {\r\n const handler = (response:any) => {\r\n alerta(\"su mensaje se ha enviado correctamente\")\r\n this.enlazar.enlazarObjetoInput(new Contacto())\r\n }\r\n let p = this.enlazar.enlazarInputObjeto(new Contacto()) as Contacto\r\n let camposValidar:any = [\"NombreContacto\", \"Correo\", \"Telefono\", \"Asunto\",\"Cedula\",\"Mensaje\"]\r\n let camposInvalidos = this.validador.validarCampos(p, camposValidar)\r\n \r\n //si no hay campos invalidos proceder\r\n if (camposInvalidos.length == 0) {\r\n p.Nombre = p.NombreContacto\r\n this.repositorio.guardarDatosContacto(handler, p)\r\n } else {\r\n alerta(\"debe llenar los campos marcados en rojo\")\r\n }\r\n }\r\n \r\n}","export default class Contacto {\r\n NombreContacto:string = \"\" \r\n Correo:string = \"\" \r\n Telefono:string = \"\" \r\n Asunto:string = \"\" \r\n Mensaje:string = \"\" \r\n FechaRegistro = \"\"\r\n Cedula:string =\"\"\r\n }","import HttpClient from '../servicios/HttpClient'\r\nimport Contacto from '../modelos/contacto'\r\nimport { baseURl,SwalType,alerta} from '../utilidades/SinClasificar'\r\n\r\n\r\n\r\n\r\nvar error = (response: any) => {\r\n console.log(response)\r\n alerta(\"Se ha producido un error inesperado\",null,SwalType.ERROR)\r\n}\r\n\r\nexport default class ContactoRepositorio{\r\n constructor(){\r\n this.httpClient = new HttpClient()\r\n }\r\n\r\n httpClient:HttpClient\r\n\r\n async guardarDatosContacto(handler:(res:any)=> void, datos:Contacto)\r\n {\r\n let url = baseURl + `api/General/Contacto/`;\r\n \r\n await this.httpClient.postJson(url, datos, handler, error)\r\n }\r\n}","\r\nimport {PrestadorModeloConsulta} from '../modelos/PrestadorModeloConsulta'\r\nimport Enlazar from '../utilidades/Enlazar'\r\nimport Validador from '../utilidades/Validador'\r\nimport GeneralRepositorio from \"../repositorios/GeneralRepositorio\"\r\nimport {alerta} from '../utilidades/SinClasificar'\r\nimport Persona from '../modelos/Persona'\r\nimport Empresa from '../modelos/Empresa'\r\ndeclare var $:any\r\nexport default class IndexControlador {\r\n enlazar:Enlazar\r\n generalRepositorio:GeneralRepositorio\r\n validador:Validador\r\n constructor() {\r\n this.enlazar = new Enlazar()\r\n this.generalRepositorio = new GeneralRepositorio()\r\n this.validador = new Validador()\r\n }\r\n async enlazarConsultaPadronByCedula(Cedula:string=\"\"){\r\n const enlazar = (persona: any) => {\r\n if (persona.Cedula) {\r\n var d = new Date(persona.Fechnac);\r\n $(\"#Nombres\").val(persona.Nombre1);\r\n $(\"#Apellidos\").val(`${persona.Apellido1} ${persona.Apellido2}`);\r\n $(\"#FechaNacimientoStr\").val(`${(\"0\" + (d.getDate())).slice(-2)}-${(\"0\" + (d.getMonth() + 1)).slice(-2)}-${d.getFullYear()}`);\r\n $('#Sexo').val(persona.Sexo);\r\n $('#IdEstadoCivil').val(persona.ESTACIVIL == 'S' ? 2:1)\r\n }\r\n }\r\n\r\n await this.generalRepositorio.obtenerDatosByCedula(Cedula, enlazar)\r\n }\r\n async enlazarConsultaPadronByRNC(RNC:string=\"\"){\r\n const enlazar = (empresa: Empresa) => {\r\n if (empresa.RNCEMPR) {\r\n $(\"#RAZONSC\").val(empresa.RAZONSC);\r\n }\r\n }\r\n await this.generalRepositorio.obtenerDatosByRNC(RNC, enlazar)\r\n }\r\n buscarPSS() {\r\n let pss = this.enlazar.enlazarInputObjeto(new PrestadorModeloConsulta()) as PrestadorModeloConsulta\r\n // let validacion = this.validador.validarCampos(pss, [\"Nombre\"])\r\n // if(validacion.length == 0){\r\n window.location.href = `pssbusqueda.html?idtipo=${pss.IdTipo}&idprovincia=${pss.IdProvincia}&nombre=${pss.Nombre}`\r\n // }else{\r\n // alerta(\"Debe incluir el nombre en la busqueda.\")\r\n // } \r\n\r\n\r\n return false\r\n }\r\n enlazarRegion(selector:string=\"IdAreaSalud\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectGeneric\", selector)\r\n }\r\n this.generalRepositorio.obtenerRegiones(handler);\r\n }\r\n enlazarProvincias(IdAreaSalud:number=null,selector:string=\"IdProvincia\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectProvincias\", selector)\r\n }\r\n this.generalRepositorio.obtenerProvincias(handler,IdAreaSalud);\r\n }\r\n enlazarMunicipios(IdProvincia:number=null,selector:string=\"IdMunicipio\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectMunicipios\", selector)\r\n }\r\n this.generalRepositorio.obtenerMunicipios(IdProvincia,handler)\r\n }\r\n\r\n enlazarTiposPss(selector:string=\"IdTipo\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectTipoPsss\",selector )\r\n }\r\n this.generalRepositorio.obtenerTiposPss(handler,null)\r\n }\r\n enlazarGrupoPss(IdClasificacion:number,Selector:string=\"IdGrupo\"){\r\n\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectGrupoPss\", Selector)\r\n }\r\n this.generalRepositorio.obtenerTiposPss(handler,IdClasificacion)\r\n }\r\n enlazarSexo(selector:string=\"Sexo\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectGeneric\", selector)\r\n }\r\n this.generalRepositorio.obtenerSexo(handler);\r\n }\r\n enlazarNacionalidades(selector:string=\"IdNacionalidad\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectNacionalidad\", selector)\r\n }\r\n this.generalRepositorio.obtenerNacionalidades(handler);\r\n }\r\n enlazarEstadosCiviles(selector:string=\"IdEstadoCivil\"){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectEstadoCivil\", selector)\r\n }\r\n this.generalRepositorio.obtenerEstadosCiviles(handler);\r\n }\r\n enlazarTitulos(selector:string=null){\r\n const handler = (response:any) =>{\r\n this.enlazar.enlazarListaPlantilla(response, \"plantillaSelectTitulo\", selector)\r\n }\r\n this.generalRepositorio.obtenerTitulos(handler);\r\n }\r\n \r\n}","import PromotorRepositorio from '../repositorios/PromotorRepositorio'\r\nimport Validador from '../utilidades/Validador'\r\nimport Enlazar from '../utilidades/Enlazar'\r\nimport { formatNumber, alerta,formatToPercentage, clearStorageCookies,getCookie,confirmar,SwalType } from '../utilidades/SinClasificar'\r\nimport {EnumTipoIdentificacion,EnumTipoPromotor,EnumCategoriaPromotor} from'../modelos/EnumClasses'\r\nimport PromotorView from '../modelos/PromotorView'\r\nimport { CambioCredenciales } from '../modelos/reestablecerContrasena'\r\nimport PagoPromotor from '../modelos/PagoPromotor'\r\nimport {reestablecerContrasenaPromotor} from '../modelos/reestablecerContrasena'\r\n\r\ndeclare var $: any\r\ndeclare var JSON: any\r\ndeclare var ShowLoader: any\r\ndeclare var HideLoader: any\r\ndeclare var Promise:any \r\n\r\nexport default class AfiliadoControlador {\r\n promotorRepositorio: PromotorRepositorio\r\n validador: Validador\r\n enlazar: Enlazar\r\n constructor() {\r\n this.promotorRepositorio = new PromotorRepositorio()\r\n this.validador = new Validador()\r\n this.enlazar = new Enlazar()\r\n }\r\n\r\n \r\n\r\n async iniciaSesion() {\r\n ShowLoader();\r\n let identificacion = $(\"#identificacion\").val() || 0;\r\n let contrasena = $(\"#contrasena\").val() || 0;\r\n \r\n const handler = (response: any): any => {\r\n //crear cookie y sesion\r\n if (!response) return null;\r\n if(response.status == \"Nuevo\"){\r\n sessionStorage.setItem('tmppromotor',JSON.stringify(response.model) )\r\n return window.location.href = \"./CambioCredencialPromotores.html\"\r\n } \r\n let promotor = response.model;\r\n\r\n if (sessionStorage.getItem('promotor'))\r\n sessionStorage.clear();\r\n\r\n sessionStorage.setItem('promotor', JSON.stringify(promotor))\r\n sessionStorage.setItem('token', \"\")\r\n //set cookie\r\n document.cookie = \"token=;\"\r\n document.cookie = \"identificacion=\" + promotor.Identificacion + \";\"\r\n window.location.href = \"indexPromotores.html\"\r\n }\r\n if(identificacion == 0 || contrasena == 0){\r\n HideLoader() \r\n }else{\r\n let request = { Identificacion: identificacion, Contrasena: contrasena }\r\n this.promotorRepositorio.iniciarSesion(request, handler)\r\n }\r\n\r\n }\r\n\r\n async revisarSesion() {\r\n let promotor = JSON.parse(sessionStorage.getItem('promotor'))\r\n if (!promotor) window.location.href = \"loginPromotores.html\"\r\n this.enlazar.enlazarObjetoValor(\"NombrePromotorEtiqueta\", promotor,\".\");\r\n \r\n }\r\n async cerrarSesion(){\r\n clearStorageCookies()\r\n }\r\n\r\n async mostrarDatosPromotor(promotorId:number){\r\n let camposPorcentaje:any = [\"EmisionVoluntario\",\"RenovacionVoluntario\",\"EmisionBasico\",\"RenovacionBasico\"]\r\n let promotor:PromotorView = formatToPercentage(JSON.parse(sessionStorage.getItem('promotor')),camposPorcentaje) as PromotorView\r\n // let promotor:PromotorView = JSON.parse(sessionStorage.getItem('promotor'),camposPorcentaje) as PromotorView\r\n this.enlazar.enlazarObjetoInput(promotor) \r\n $(\"input\").each(function () {\r\n $(this).attr(\"disabled\", \"disabled\")\r\n })\r\n }\r\n \r\n\r\n \r\n async editar() {\r\n $(\".editable\").each(function () {\r\n $(this).removeAttr(\"disabled\")\r\n $(this).addClass(\"editando\")\r\n })\r\n $(\"#botonEditar\").attr(\"style\", \"display:none\")\r\n $(\"#botonGuardar\").removeAttr(\"style\")\r\n }\r\n\r\n async solicitudCambioCredenciales() {\r\n const handler = function (response: any) {\r\n ShowLoader();\r\n let isTemp = (sessionStorage.hasOwnProperty(\"tmppromotor\"))\r\n if(isTemp)\r\n sessionStorage.clear();\r\n alerta(\"Cambio de contraseña exitoso\",null,SwalType.SUCCESS)\r\n .then(() => {\r\n window.location.href = \r\n (isTemp) ? \"/loginPromotores.html\" : \"/indexPromotores.html\"\r\n })\r\n }\r\n let identificacion:string\r\n if(sessionStorage.hasOwnProperty(\"tmppromotor\"))\r\n identificacion = JSON.parse(sessionStorage.getItem('tmppromotor')).Identificacion;\r\n else if(sessionStorage.hasOwnProperty(\"promotor\"))\r\n identificacion = JSON.parse(sessionStorage.getItem('promotor')).Identificacion;\r\n else\r\n window.location.href=\"./loginPromotores.html\"\r\n let credenciales = this.enlazar.enlazarInputObjeto(new CambioCredenciales()) as CambioCredenciales;\r\n credenciales.Identificacion = identificacion\r\n let camposValidar:any = [\"Identificacion\",\"ContrasenaAnterior\",\"ContrasenaNueva\", \"ConfirmarContrasena\"]\r\n let camposInvalidos = this.validador.validarCamposSiblings(credenciales, camposValidar,\"focus-input100\",\"invalid-input\")\r\n if (camposInvalidos.length == 0) {\r\n if(this.validador.validaContrasena(credenciales.ContrasenaNueva,credenciales.ConfirmarContrasena)){\r\n const resp = await confirmar(\"Está seguro de cambiar las credenciales?\",null,SwalType.INFO);\r\n if(resp)\r\n this.promotorRepositorio.cambiarCredenciales(credenciales,handler)\r\n }\r\n } else {\r\n alerta(\"Debe llenar los campos marcados en rojo\",\"Advertencia\",SwalType.WARNING)\r\n }\r\n\r\n \r\n \r\n }\r\n async solicitudReestablecerContrasena(){\r\n let modelo = this.enlazar.enlazarInputObjeto(new reestablecerContrasenaPromotor()) \r\n let camposValidar:any = [\"Identificacion\",\"IdPromotor\",\"Correo\"]\r\n let camposInvalidos = this.validador.validarCamposSiblings(modelo, camposValidar,\"focus-input100\",\"invalid-input\")\r\n if(camposInvalidos.length == 0){\r\n this.promotorRepositorio.recuperarContrasena(modelo)\r\n }else{\r\n alerta(\"Debe llenar los campos marcados en rojo\")\r\n }\r\n }\r\n\r\n async enlazarHistorialPagosPorPromotor(selector:string) {\r\n let promotorId: number = JSON.parse(sessionStorage.getItem('promotor')).Id\r\n const enlazar = (pagos: PagoPromotor) => {\r\n $(`#${selector} > .dataTables_length`).empty()\r\n $(`#${selector} >.dataTables_filter`).empty()\r\n $(`#${selector} >.dataTables_info`).empty()\r\n $(`#${selector} >.dataTables_paginate`).empty()\r\n if ( $.fn.dataTable.isDataTable( $(`#${selector}`) )) {\r\n $(`#${selector}`).DataTable().clear().destroy();\r\n }\r\n $(`#${selector}`).DataTable({\r\n language: {\r\n sProcessing: \"Procesando...\",\r\n sLengthMenu: \"Mostrar _MENU_ registros\",\r\n sZeroRecords: \"No se encontraron resultados\",\r\n sEmptyTable: \"Ningún dato disponible en esta tabla\",\r\n sInfo: \"Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros\",\r\n sInfoEmpty: \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n sInfoFiltered: \"(filtrado de un total de _MAX_ registros)\",\r\n sInfoPostFix: \"\",\r\n sSearch: \"Buscar:\",\r\n sUrl: \"\",\r\n sInfoThousands: \",\",\r\n sLoadingRecords: \"Cargando...\",\r\n oPaginate: {\r\n sFirst: \"Primero\",\r\n sLast: \"Último\",\r\n sNext: \"Siguiente\",\r\n sPrevious: \"Anterior\"\r\n },\r\n oAria: {\r\n sSortAscending: \": Activar para ordenar la columna de manera ascendente\",\r\n sSortDescending: \": Activar para ordenar la columna de manera descendente\"\r\n }\r\n },\r\n data: pagos,\r\n columns: [\r\n { data: 'FechaStr' },\r\n { data: 'APagarStr' },\r\n { data: 'Concepto' },\r\n { data: 'TipoPago' }\r\n ],\r\n pageLength:10,\r\n order: [],\r\n lengthMenu: [5, 10, 25, 50]\r\n });\r\n HideLoader()\r\n }\r\n await this.promotorRepositorio.obtenerPagosPromotor(promotorId, enlazar)\r\n }\r\n\r\n}","\r\nimport PromotorView from '../modelos/PromotorView'\r\nimport HttpClient from '../servicios/HttpClient'\r\nimport { baseURl, alerta, SwalType } from '../utilidades/SinClasificar'\r\n\r\nvar error = (response: any) => {\r\n console.log(response)\r\n alerta(\"Se ha producido un error inesperado\",null,SwalType.ERROR)\r\n}\r\n\r\ndeclare var JSON: any\r\ndeclare var swal: any\r\ndeclare var HideLoader: any\r\n\r\nclass promotorRepositorio {\r\n httpClient: HttpClient\r\n constructor() {\r\n this.httpClient = new HttpClient()\r\n }\r\n\r\n \r\n\r\n async obtenerDatosPromotor(IdPromotor:number, handler:any) {\r\n const success = function (response:any) {\r\n if (response) {\r\n handler(response)\r\n }\r\n }\r\n let url = baseURl + 'api/promotores/DatosGeneralesPorId/' + IdPromotor\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n\r\n iniciarSesion(model: any, handler: any) {\r\n const action = baseURl + \"api/promotores/InicioSesion\"\r\n const error = function (response: any) {\r\n HideLoader();\r\n if(JSON.parse(response).Message == \"Nuevo\"){\r\n handler(JSON.parse(response).Message)\r\n }else{\r\n alerta(JSON.parse(response).Message,null,SwalType.ERROR)\r\n }\r\n }\r\n\r\n this.httpClient.postJson(action, model, handler, error)\r\n }\r\n\r\n \r\n\r\n async recuperarContrasena(modelo: any) {\r\n const success = function (response: any) {\r\n alerta(\"Solicitud de recuperacion de contraseña enviada\",null,SwalType.SUCCESS)\r\n .then(() => {\r\n window.location.href = \"/loginPromotores.html\"\r\n })\r\n }\r\n let url = baseURl + `api/promotores/Recuperar/${modelo.Identificacion.trim()}/${modelo.IdPromotor.trim()}`;\r\n this.httpClient.getJson(url, success, error);\r\n }\r\n async cambiarCredenciales(model: any,handler:any) {\r\n const action = baseURl + \"api/promotores/CambiarCredenciales\"\r\n const error = function (response: any) {\r\n // HideLoader();\r\n alerta(JSON.parse(response).Message,null,SwalType.ERROR)\r\n }\r\n await this.httpClient.postJson(action,model, handler, error)\r\n }\r\n async obtenerPagosPromotor(IdPromotor:number, handler:any) {\r\n const success = function (response:any) {\r\n if (response) {\r\n if(typeof response == \"object\")\r\n handler(response)\r\n else\r\n handler([])\r\n }\r\n else\r\n handler([])\r\n \r\n }\r\n let url = baseURl + 'api/promotores/PagosRecibidosPorId/' + IdPromotor\r\n await this.httpClient.getJson(url, success, error)\r\n }\r\n\r\n}\r\n\r\nexport default promotorRepositorio"],"sourceRoot":""}