Skip to content

Commit

Permalink
(FEAT) Renovaciones Online
Browse files Browse the repository at this point in the history
  • Loading branch information
JuanIRamirez committed Nov 21, 2023
1 parent 40995d2 commit 318efa7
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,16 @@ export class FiltrosProfesionalComponent implements OnInit {

filtrar() {
this.busquedaProfesionalService.lastResults.next(null);

this.busquedaProfesionalService.documentoText.next(this.filtro.documento ? this.filtro.documento : null);

this.busquedaProfesionalService.nombreText.next(this.filtro.nombre ? this.filtro.nombre : null);

this.busquedaProfesionalService.apellidoText.next(this.filtro.apellido ? this.filtro.apellido : null);

this.busquedaProfesionalService.profesionSelected.next(this.filtro.profesion ? this.filtro.profesion : null);

this.busquedaProfesionalService.numeroMatriculaGrado.next(this.filtro.numeroMatriculaGrado ? this.filtro.numeroMatriculaGrado : null);

this.busquedaProfesionalService.numeroMatriculaEspecialidad.next(this.filtro.numeroMatriculaEspecialidad ? this.filtro.numeroMatriculaEspecialidad : null);

this.busquedaProfesionalService.renovacionSelected.next(this.filtro.renovacionOnline ? this.filtro.renovacionOnline.nombre.toLowerCase() : null);

if (this.filtro.renovacionOnline && this.filtro.renovacionOnline.id !== 'No Aplica') {
this.busquedaProfesionalService.fechaDesde.next(this.filtro.fechaDesde ? this.filtro.fechaDesde : null);
this.busquedaProfesionalService.fechaHasta.next(this.filtro.fechaHasta ? this.filtro.fechaHasta : null);
}
}
}
10 changes: 9 additions & 1 deletion src/app/components/profesionales/filtros-profesional.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,18 @@
<plex-int (change)="filtrar()" label="N° Matrícula grado" [(ngModel)]="filtro.numeroMatriculaGrado"
name="numeroMatriculaGrado" placeholder="Ingrese N° de matrícula">
</plex-int>
<plex-grid cols="2" size="lg" class="mt-0">
<plex-grid cols="3" size="lg" class="mt-0">
<plex-select (change)="filtrar()" label="Renovación Online" [(ngModel)]="filtro.renovacionOnline"
name="renovacionOnline" [data]="renovacionOnline">
</plex-select>
<plex-datetime *ngIf="filtro.renovacionOnline && filtro.renovacionOnline.id !== 'No Aplica'"
(change)="filtrar()" label="Renovación desde" name="fechaDesde" type="date"
[(ngModel)]="filtro.fechaDesde" [max]="finDelDia" placeholder="{{ inicioDelDia | fecha }}">
</plex-datetime>
<plex-datetime *ngIf="filtro.renovacionOnline && filtro.renovacionOnline.id !== 'No Aplica'"
(change)="filtrar()" label="Renovación hasta" name="fechaHasta" type="date"
[(ngModel)]="filtro.fechaHasta" [max]="finDelDia" placeholder="{{ finDelDia | fecha }}">
</plex-datetime>
</plex-grid>
</plex-wrapper>
</form>
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ export class ListarProfesionalesComponent implements OnInit {
private breakpointObserver: BreakpointObserver
) { }


ngOnInit() {
this.listadoActual = [];
this.profesionalService.getEstadisticas().subscribe((data) => {
Expand All @@ -83,13 +82,12 @@ export class ListarProfesionalesComponent implements OnInit {
this.permisos.verProfesional = this.auth.check('matriculaciones:profesionales:getProfesional');
this.permisos.supervisor = this.auth.check('matriculaciones:supervisor:?');
this.permisos.crearProfesional = this.auth.check('matriculaciones:profesionales:postProfesional');


}

isMobile() {
return this.breakpointObserver.isMatched('(max-width: 599px)');
}

changeFiltroRenovacionValue() {
this.busquedaProfesionalService.filtroRenovacionActivo.next(this.filtrosRenovacion);
this.getListado();
Expand Down
150 changes: 77 additions & 73 deletions src/app/components/profesionales/listar-profesionales.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
foco="{{this.seleccionado || this.verExportador? 'sidebar' : (isMobile()?'main':'')}}" resizable="true"
[min]="4" [max]="4" [steps]="2">
<plex-layout-main>
<div *ngIf="!nuevoProfesional && !editar">
<ng-container *ngIf="!nuevoProfesional && !editar">
<plex-title titulo="Buscar profesional" size="md">
<div *mobile>
<plex-button class='mr-1' size="sm" type="danger" label="Volver" routerLink="/homeAdministracion">
Expand All @@ -22,93 +22,97 @@
<plex-button size="md" type="primary" label="Exportar SISA" (click)='exportarSISA()'>
</plex-button>
</div>

</plex-title>

<filtros-profesional *ngIf="!filtrosRenovacion"></filtros-profesional>

<!-- Filtros para renovacion de matriculas -->
<filtros-renovacion *ngIf="filtrosRenovacion"></filtros-renovacion>

<plex-table [columns]="columns" #table="plTable" [offset]="160" (scroll)="onScroll()">
<plex-title titulo="Listado de matriculados" size="md">
<plex-bool *ngIf="permisos.supervisor" class="mr-3" [(ngModel)]="filtrosRenovacion"
label="Papeles sin verificar" type="slide" (change)="changeFiltroRenovacionValue()">
</plex-bool>
<plex-button *ngIf="permisos.crearProfesional" class='ml-2' size="sm" type="success"
label='Nuevo profesional' (click)='crearNuevoProfesional()'>
</plex-button>
<plex-title titulo="Listado de matriculados" size="md">
<plex-bool *ngIf="permisos.supervisor" class="mr-3" [(ngModel)]="filtrosRenovacion"
label="Papeles sin verificar" type="slide" (change)="changeFiltroRenovacionValue()">
</plex-bool>
<plex-button *ngIf="permisos.crearProfesional" class='ml-2' size="sm" type="success"
label='Nuevo profesional' (click)='crearNuevoProfesional()'>
</plex-button>
</plex-title>

<ng-container *ngIf="(listado$ | async)?.length">
<plex-table [columns]="columns" #table="plTable" [offset]="180" (scroll)="onScroll()">
<plex-table-columns>
</plex-table-columns>
</plex-title>
<tr *ngFor="let profesional of (listado$ | async); let indiceProfesional = index"
(click)="seleccionar(profesional)" [class.selectable]="true"
[class.selected]="profesional.selected">
<td>
<plex-label icon="medico" titulo="{{profesional.apellido + ', ' + profesional.nombre}}"
subtitulo="{{ (profesional.documento | number) || '' }}">
</plex-label>
</td>
<td *plTableCol="'profesion'">
<div *ngFor="let profesionalGrado of profesional.formacionGrado; let indiceGrado = index">
<plex-badge *ngIf="verificarEstadoGrado(indiceProfesional, indiceGrado) === 'vigente'"
type="success">
{{profesionalGrado.profesion?.nombre +' - ' +
obtenerMatriculaGrado(indiceProfesional,indiceGrado)}}
</plex-badge>
<plex-badge *ngIf="verificarEstadoGrado(indiceProfesional,indiceGrado) === 'suspendida' "
type="warning">
{{profesionalGrado.profesion?.nombre +' - ' +
obtenerMatriculaGrado(indiceProfesional,indiceGrado)}}
</plex-badge>

<tr *ngFor="let profesional of (listado$ | async); let indiceProfesional = index"
(click)="seleccionar(profesional)" [class.selectable]="true"
[class.selected]="profesional.selected">
<td>
<plex-label icon="medico" titulo="{{profesional.apellido + ', ' + profesional.nombre}}"
subtitulo="{{ (profesional.documento | number) || '' }}">
</plex-label>
</td>
<td *plTableCol="'profesion'">
<div *ngFor="let profesionalGrado of profesional.formacionGrado; let indiceGrado = index">
<plex-badge *ngIf="verificarEstadoGrado(indiceProfesional, indiceGrado) === 'vigente'"
type="success">
{{profesionalGrado.profesion?.nombre +' - ' +
obtenerMatriculaGrado(indiceProfesional,indiceGrado)}}
</plex-badge>
<plex-badge *ngIf="verificarEstadoGrado(indiceProfesional,indiceGrado) === 'suspendida' "
type="warning">
{{profesionalGrado.profesion?.nombre +' - ' +
obtenerMatriculaGrado(indiceProfesional,indiceGrado)}}
</plex-badge>
<plex-badge *ngIf="verificarEstadoGrado(indiceProfesional,indiceGrado) === 'vencida' "
type='danger'>
{{profesionalGrado.profesion?.nombre +' - ' +
obtenerMatriculaGrado(indiceProfesional,indiceGrado)}}
</plex-badge>

<plex-badge *ngIf="verificarEstadoGrado(indiceProfesional,indiceGrado) === 'vencida' "
type='danger'>
{{profesionalGrado.profesion?.nombre +' - ' +
obtenerMatriculaGrado(indiceProfesional,indiceGrado)}}
</plex-badge>
</div>
</td>

</div>
</td>
<td *plTableCol="'estado'">
<plex-badge *ngIf="profesional.formacionPosgrado?.length === 0 || profesional.formacionPosgrado === null"
size="sm" type="info">
SIN POSGRADO
</plex-badge>

<td *plTableCol="'estado'">
<plex-badge *ngIf="profesional.formacionPosgrado?.length === 0 || profesional.formacionPosgrado === null"
size="sm" type="info">
SIN POSGRADO
</plex-badge>
<plex-badge class="mr-1" *ngIf="profesional.formacionPosgrado?.length" size="sm"
type="info">
{{(profesional.formacionPosgrado.length === 1) ? profesional.formacionPosgrado.length
+
'
POSGRADO': profesional.formacionPosgrado.length + ' POSGRADOS'}}
</plex-badge>

<plex-badge class="mr-1" *ngIf="profesional.formacionPosgrado?.length" size="sm" type="info">
{{(profesional.formacionPosgrado.length === 1) ? profesional.formacionPosgrado.length
+
'
POSGRADO': profesional.formacionPosgrado.length + ' POSGRADOS'}}
</plex-badge>
<plex-badge class="mr-1" type="info" tooltip="Año de gracia"
*ngIf="profesional.formacionPosgrado?.length && contarTiposDePosgrados(indiceProfesional, 'anioDeGracia')">
{{contarTiposDePosgrados(indiceProfesional, 'anioDeGracia')}}
</plex-badge>
<plex-badge class="mr-1" type="danger" tooltip="Vencidas"
*ngIf="profesional.formacionPosgrado?.length && contarTiposDePosgrados(indiceProfesional, 'vencida')">
{{contarTiposDePosgrados(indiceProfesional, 'vencida')}}
</plex-badge>
<plex-badge class="mr-1" type="warning" tooltip="Suspendida"
*ngIf="profesional.formacionPosgrado?.length && contarTiposDePosgrados(indiceProfesional, 'suspendida')">
{{contarTiposDePosgrados(indiceProfesional, 'suspendida')}}
</plex-badge>
</td>

<plex-badge class="mr-1" type="info" tooltip="Año de gracia"
*ngIf="profesional.formacionPosgrado?.length && contarTiposDePosgrados(indiceProfesional, 'anioDeGracia')">
{{contarTiposDePosgrados(indiceProfesional, 'anioDeGracia')}}
</plex-badge>
<plex-badge class="mr-1" type="danger" tooltip="Vencidas"
*ngIf="profesional.formacionPosgrado?.length && contarTiposDePosgrados(indiceProfesional, 'vencida')">
{{contarTiposDePosgrados(indiceProfesional, 'vencida')}}
</plex-badge>
<plex-badge class="mr-1" type="warning" tooltip="Suspendida"
*ngIf="profesional.formacionPosgrado?.length && contarTiposDePosgrados(indiceProfesional, 'suspendida')">
{{contarTiposDePosgrados(indiceProfesional, 'suspendida')}}
</plex-badge>
</td>
<td class="column-right my-3 d-flex align-items-center">
<plex-button type="info" icon="eye" size="sm" (click)="showProfesional(profesional)"
tooltip="Ver profesional">
</plex-button>
<plex-dropdown type="link" right="true" size="sm" icon="dots-vertical"
[items]="itemsDropdown" (onOpen)="setDropDown(profesional)">
</plex-dropdown>
</td>
</tr>
</plex-table>
</ng-container>
</ng-container>

<td class="column-right my-3 d-flex align-items-center">
<plex-button type="info" icon="eye" size="sm" (click)="showProfesional(profesional)"
tooltip="Ver profesional">
</plex-button>
<plex-dropdown type="link" right="true" size="sm" icon="dots-vertical" [items]="itemsDropdown"
(onOpen)="setDropDown(profesional)">
</plex-dropdown>
</td>
</tr>
</plex-table>
</div>
<div *ngIf="!(listado$ | async)?.length && !nuevoProfesional" class="h-50" justify="center">
<plex-label class="flex-column" icon="magnify" type="info" size="xl" direction="column"
titulo="No hay resultados para esta búsqueda"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@ export class BusquedaProfesionalService {
this.numeroMatriculaGrado,
this.numeroMatriculaEspecialidad,
this.lastResults,
this.renovacionSelected
this.renovacionSelected,
this.fechaDesde,
this.fechaHasta
).debounceTime(400).pipe(
switchMap(([documento, apellido, nombre, profesion, numeroMatriculaGrado, numeroMatriculaEspecialidad, lastResults, renovacionSelected]) => {
switchMap(([documento, apellido, nombre, profesion, numeroMatriculaGrado, numeroMatriculaEspecialidad, lastResults, renovacionSelected, fechaDesde, fechaHasta]) => {
if (!lastResults) {
this.skip = 0;
}
Expand Down Expand Up @@ -80,7 +82,14 @@ export class BusquedaProfesionalService {
params.numeroMatriculaEspecialidad = numeroMatriculaEspecialidad;
filtros = true;
}

if (fechaDesde) {
params.fechaDesde = fechaDesde;
filtros = true;
}
if (fechaHasta) {
params.fechaHasta = fechaHasta;
filtros = true;
}
params.bajaMatricula = false;
params.habilitado = false;
params.matriculacion = true;
Expand Down

0 comments on commit 318efa7

Please sign in to comment.