Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAT - Renovaciones Online #213

Merged
merged 2 commits into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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]="255" (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.matriculacion = true;

Expand Down
Loading