This commit is contained in:
Peter Maquiran
2023-04-25 10:04:32 +01:00
parent fd0941999d
commit 544b35443d
11 changed files with 296 additions and 169 deletions
+126 -95
View File
@@ -189,138 +189,169 @@ export class TaskService {
}
async loadExpedientes() {
let expedientes;
expedientes = await this.processesbackend.GetTaskListExpediente(false).toPromise()
expedientes = (expedientes || [] ).filter(data => data.workflowInstanceDataFields.Status == "" || data.workflowInstanceDataFields.Status == "Active")
try {
let expedientes;
expedientes = await this.processesbackend.GetTaskListExpediente(false).toPromise()
expedientes = (expedientes || [] ).filter(data => data.workflowInstanceDataFields.Status == "" || data.workflowInstanceDataFields.Status == "Active")
expedientes = expedientes.filter((item) => {
return item.activityInstanceName != 'Retificar Expediente'
});
expedientes = expedientes.map((element) => this.expedienteTaskPipe.transform(element));
this.expedientegbstore.reset(expedientes);
} catch (error) {
}
expedientes = expedientes.filter((item) => {
return item.activityInstanceName != 'Retificar Expediente'
});
expedientes = expedientes.map((element) => this.expedienteTaskPipe.transform(element));
this.expedientegbstore.reset(expedientes);
}
async loadPedidos() {
let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise();
let pareceresPr = await this.processesbackend.GetTasksList("Pedido de Parecer do Presidente", false).toPromise();
let allParecer = pareceres.concat(pareceresPr);
try {
let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise();
let pareceresPr = await this.processesbackend.GetTasksList("Pedido de Parecer do Presidente", false).toPromise();
let allParecer = pareceres.concat(pareceresPr);
this.pedidosstore.countparecer = Object.keys(allParecer.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
this.pedidosstore.resetparecer(allParecer.filter(data => data.workflowInstanceDataFields.Status == "Active").map((element) => {
return this.customTaskPipe.transform(element)
}));
let deferimentos = await this.processesbackend.GetTasksList("Pedido de Deferimento", false).toPromise();
this.pedidosstore.countdeferimento = Object.keys(deferimentos.filter(data => data.workflowInstanceDataFields.Status == "Active")).length
this.pedidosstore.resetdeferimento(deferimentos.filter(data => data.workflowInstanceDataFields.Status == "Active").map((element) => {
return this.customTaskPipe.transform(element)
}));
} catch (error) {
}
this.pedidosstore.countparecer = Object.keys(allParecer.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
this.pedidosstore.resetparecer(allParecer.filter(data => data.workflowInstanceDataFields.Status == "Active").map((element) => {
return this.customTaskPipe.transform(element)
}));
let deferimentos = await this.processesbackend.GetTasksList("Pedido de Deferimento", false).toPromise();
this.pedidosstore.countdeferimento = Object.keys(deferimentos.filter(data => data.workflowInstanceDataFields.Status == "Active")).length
this.pedidosstore.resetdeferimento(deferimentos.filter(data => data.workflowInstanceDataFields.Status == "Active").map((element) => {
return this.customTaskPipe.transform(element)
}));
}
async loadPendestes() {
let pendentes = await this.processesbackend.GetPendingTasks(false).toPromise();
this.pendentesstore.count = Object.keys(pendentes).length;
try {
let pendentes = await this.processesbackend.GetPendingTasks(false).toPromise();
this.pendentesstore.count = Object.keys(pendentes).length;
pendentes = pendentes.map((element)=> this.customTaskPipe.transform(element))
pendentes = pendentes.map((element)=> this.customTaskPipe.transform(element))
this.pendentesstore.reset(pendentes);
this.pendentesstore.reset(pendentes);
} catch (error) {
}
}
async loadEventosParaAprovacao() {
for(let calendar of this.eventService.calendarNamesAry) {
if(calendar == 'Meu calendario') {
// color
let genericEvents = await this.processesbackend.GetTasksList('Agendar Evento', false).toPromise();
let eventsList
try {
eventsList = this.sortService.sortArrayByDate(genericEvents).reverse();
} catch (error) {
eventsList = [];
try {
for(let calendar of this.eventService.calendarNamesAry) {
if(calendar == 'Meu calendario') {
// color
let genericEvents = await this.processesbackend.GetTasksList('Agendar Evento', false).toPromise();
let eventsList
try {
eventsList = this.sortService.sortArrayByDate(genericEvents).reverse();
} catch (error) {
eventsList = [];
}
this.eventoaprovacaostore.save(calendar, eventsList)
} else {
let allEvents = await this.processesbackend.eventsToApprove(calendar.OwnerUserId, 'againete page').toPromise()
let eventsList
try {
eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
} catch(error) {
eventsList = []
}
this.eventoaprovacaostore.save(calendar.OwnerUserId, eventsList)
}
this.eventoaprovacaostore.save(calendar, eventsList)
} else {
let allEvents = await this.processesbackend.eventsToApprove(calendar.OwnerUserId, 'againete page').toPromise()
let eventsList
try {
eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
} catch(error) {
eventsList = []
}
this.eventoaprovacaostore.save(calendar.OwnerUserId, eventsList)
}
} catch (error) {
}
}
async loadDiplomas() {
let depachoAPI = await this.processesbackend.GetTasksList("Despacho do Presidente da República", false).toPromise();
if(SessionStore.user.Profile != 'PR') {
let depacho: any = depachoAPI.reverse().filter(data => data.activityInstanceName == "Tarefa de Despacho");
depacho = depacho.filter(data => data.workflowInstanceDataFields.Status == "Active");
depacho = depacho.map((e)=> this.customTaskPipe.transform(e))
this.despachoprstore.reset(depacho)
} else if(SessionStore.user.Profile == 'PR') {
let depacho: any = depachoAPI.filter(data => data.activityInstanceName == "Concluir Despacho").filter(data => data.workflowInstanceDataFields.Status == "Active")
depacho = depacho.map((e)=> this.customTaskPipe.transform(e))
this.despachoprstore.reset(depacho)
}
let gerarDiploma = depachoAPI.reverse().filter(data => data.activityInstanceName == "Gerar Diploma" || data.activityInstanceName == "Retificar Diploma");
let diplomasList = []
gerarDiploma.forEach(element => {
let task: customTask = this.customTaskPipe.transform(element);
diplomasList.push(task);
});
diplomasList = this.sortService.sortDate(diplomasList, 'CreateDate')
this.deplomasStore.resetDiplomaGerar(diplomasList);
try {
let depachoAPI = await this.processesbackend.GetTasksList("Despacho do Presidente da República", false).toPromise();
let diplomasValidar = depachoAPI.filter(data => data.activityInstanceName == "Revisar Diploma");
if(SessionStore.user.Profile != 'PR') {
let depacho: any = depachoAPI.reverse().filter(data => data.activityInstanceName == "Tarefa de Despacho");
depacho = depacho.filter(data => data.workflowInstanceDataFields.Status == "Active");
diplomasValidar = diplomasValidar.filter(data => data.activityInstanceName != "Tarefa de Despacho");
depacho = depacho.map((e)=> this.customTaskPipe.transform(e))
this.despachoprstore.reset(depacho)
} else if(SessionStore.user.Profile == 'PR') {
let depacho: any = depachoAPI.filter(data => data.activityInstanceName == "Concluir Despacho").filter(data => data.workflowInstanceDataFields.Status == "Active")
depacho = depacho.map((e)=> this.customTaskPipe.transform(e))
this.despachoprstore.reset(depacho)
}
this.deplomasStore.resetDiplomasReview(diplomasValidar.map((element)=> {
let gerarDiploma = depachoAPI.reverse().filter(data => data.activityInstanceName == "Gerar Diploma" || data.activityInstanceName == "Retificar Diploma");
let diplomasList = []
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
gerarDiploma.forEach(element => {
let task: customTask = this.customTaskPipe.transform(element);
diplomasList.push(task);
});
return this.customTaskPipe.transform(element)
}))
diplomasList = this.sortService.sortDate(diplomasList, 'CreateDate')
this.deplomasStore.resetDiplomaGerar(diplomasList);
let diplomasValidar = depachoAPI.filter(data => data.activityInstanceName == "Revisar Diploma");
diplomasValidar = diplomasValidar.filter(data => data.activityInstanceName != "Tarefa de Despacho");
let diplomasAssinar: any = depachoAPI.filter(data => data.activityInstanceName == "Assinar Diploma");
diplomasAssinar = diplomasAssinar.map((element) => this.expedienteTaskPipe.transform(element))
this.sortService.sortDate(diplomasAssinar, 'CreateDate')
this.deplomasStore.resetDiplomasParaAssinar(diplomasAssinar)
this.deplomasStore.resetDiplomasReview(diplomasValidar.map((element)=> {
let diplomasAssinados: any = depachoAPI.filter(data => data.activityInstanceName == "Diploma Assinado");
diplomasAssinados = diplomasAssinados.map((element) => this.expedienteTaskPipe.transform(element))
this.deplomasStore.resetDiplomasAssinadoList(diplomasAssinados)
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
return this.customTaskPipe.transform(element)
}))
let diplomasAssinar: any = depachoAPI.filter(data => data.activityInstanceName == "Assinar Diploma");
diplomasAssinar = diplomasAssinar.map((element) => this.expedienteTaskPipe.transform(element))
this.sortService.sortDate(diplomasAssinar, 'CreateDate')
this.deplomasStore.resetDiplomasParaAssinar(diplomasAssinar)
let diplomasAssinados: any = depachoAPI.filter(data => data.activityInstanceName == "Diploma Assinado");
diplomasAssinados = diplomasAssinados.map((element) => this.expedienteTaskPipe.transform(element))
this.deplomasStore.resetDiplomasAssinadoList(diplomasAssinados)
} catch (error) {
}
}
}
@@ -60,15 +60,15 @@
</div>
<div
*ngIf="!skeletonLoader && taskslist.length == 0 && taskslist.length == 0"
*ngIf="!skeletonLoader && expedientegbstore.list.length == 0"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
<div *ngIf="skeletonLoader && !taskslist">
<div *ngIf="skeletonLoader && expedientegbstore.list.length == 0">
<ion-list *ngIf="skeletonLoader && taskslist.length == null">
<ion-list >
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
@@ -17,7 +17,6 @@ import { TaskService } from 'src/app/services/task.service'
export class ExpedientsPage implements OnInit {
segment: string;
taskslist = [];
serialNumber: string;
@Input() profile: string;
@@ -65,37 +64,41 @@ export class ExpedientsPage implements OnInit {
this.skeletonLoader = true
this.processes.GetTaskListExpediente(false).subscribe(result => {
this.taskslist = [];
this.skeletonLoader = false
let taskslist = [];
let res = result.filter(data => data.workflowInstanceDataFields.Status == "Active");
res.forEach(element => {
let task = this.expedienteTaskPipe.transform(element)
this.taskslist.push(task);
taskslist.push(task);
});
this.taskslist = this.sortService.sortDate(this.taskslist, 'CreateDate')
this.addProcessTODb(this.taskslist);
this.taskslist = this.taskslist.filter(function(item) {
taskslist = this.sortService.sortDate(taskslist, 'CreateDate')
// this.addProcessTODb(taskslist);
taskslist = taskslist.filter(function(item) {
return item.activityInstanceName != 'Retificar Expediente'
})
this.expedientegbstore.reset(this.taskslist);
this.expedientegbstore.reset(taskslist);
}, (error) => {
this.getEventsFromLocalDb();
this.skeletonLoader = false
//this.getEventsFromLocalDb();
console.log('stop')
}, () =>{
this.skeletonLoader = false
});
}
addProcessTODb(task) {
this.storage.set('gabinete-expediente', task).then(() => {
// addProcessTODb(task) {
// this.storage.set('gabinete-expediente', task).then(() => {
})
}
// })
// }
getEventsFromLocalDb() {
this.storage.get('gabinete-expediente').then((expediente) => {
this.taskslist = expediente
})
}
// getEventsFromLocalDb() {
// this.storage.get('gabinete-expediente').then((expediente) => {
// taskslist = expediente
// })
// }
doRefresh(event) {
if (event) {
@@ -139,29 +139,79 @@
<span>Lista vazia</span>
</div>
<div *ngIf="skeletonLoader && deplomasStore.diplomasAssinadoList.length == 0 && skeletonLoader && deplomasStore.diplomasReviewList.length == 0">
<ion-list>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<div *ngSwitchCase="'validar'" class="centered-div" >
<div
*ngIf=" deplomasStore.diplomasReviewList.length == 0 && !skeletonLoader"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
</div>
<div *ngSwitchCase="'assinados'" class="centered-div">
<div
*ngIf="deplomasStore.diplomasAssinadoList.length == 0 && !skeletonLoader"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
</div>
<div *ngSwitchCase="'validar'" >
<ion-list *ngIf="skeletonLoader && deplomasStore.diplomasReviewList.length == 0">
<ion-list>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
</ion-list>
</ion-list>
</div>
<div *ngSwitchCase="'assinados'" >
<ion-list *ngIf="skeletonLoader && deplomasStore.diplomasAssinadoList.length == 0">
<ion-list>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
</ion-list>
</ion-list>
</div>
</div>
@@ -227,3 +227,13 @@ ion-item{
float: right;
margin-right: 10px;
}
.centered-div{
width: 100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
margin: -35px 0 0 -35px;
}
@@ -78,6 +78,9 @@ export class ExpedientesPrPage implements OnInit {
this.expedienteGdStore.reset(this.taskslist);
this.skeletonLoader = false;
}, (error) => {
this.skeletonLoader = false
// this.getEventsFromLocalDb();
});
}
@@ -91,14 +91,14 @@
</div>
<div
*ngIf="!skeletonLoader && taskslist.length == 0 && taskslist.length == 0"
*ngIf="!skeletonLoader && expedientegbstore.list.length == 0"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
<div *ngIf="skeletonLoader && taskslist">
<ion-list *ngIf="taskslist.length == 0">
<div *ngIf="skeletonLoader && expedientegbstore.list.length == 0">
<ion-list *ngIf="expedientegbstore.list.length == 0">
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
@@ -17,7 +17,6 @@ import { TaskService } from 'src/app/services/task.service'
export class ExpedientsPage implements OnInit {
segment: string;
taskslist = [];
serialNumber: string;
@Input() profile: string;
@@ -73,37 +72,40 @@ export class ExpedientsPage implements OnInit {
this.skeletonLoader = true
this.processes.GetTaskListExpediente(false).subscribe(result => {
this.taskslist = [];
let taskslist = [];
this.skeletonLoader = false
let res = result.filter(data => data.workflowInstanceDataFields.Status == "" || data.workflowInstanceDataFields.Status == "Active");
this.taskslist = res.map((e) => this.expedienteTaskPipe.transform(e))
this.taskslist = this.sortService.sortDate(this.taskslist, 'CreateDate')
this.addProcessTODb(this.taskslist);
taskslist = res.map((e) => this.expedienteTaskPipe.transform(e))
taskslist = this.sortService.sortDate(taskslist, 'CreateDate')
// this.addProcessTODb(taskslist);
this.taskslist = this.taskslist.filter(function(item) {
taskslist = taskslist.filter(function(item) {
return item.activityInstanceName != 'Retificar Expediente'
})
this.expedientegbstore.reset(this.taskslist);
this.expedientegbstore.reset(taskslist);
}, (error) => {
this.skeletonLoader = false
this.getEventsFromLocalDb();
// this.getEventsFromLocalDb();
}, () =>{
this.skeletonLoader = false
});
}
addProcessTODb(task) {
this.storage.set('gabinete-expediente', task).then(() => {
// addProcessTODb(task) {
// this.storage.set('gabinete-expediente', task).then(() => {
})
}
// })
// }
getEventsFromLocalDb() {
this.storage.get('gabinete-expediente').then((expediente) => {
this.taskslist = expediente
})
}
// getEventsFromLocalDb() {
// this.storage.get('gabinete-expediente').then((expediente) => {
// this.taskslist = expediente
// })
// }
doRefresh(event) {
if (event) {
@@ -36,7 +36,7 @@
<!-- <button class="btn-no-color" (click)="doRefresh($event)">
<ion-icon slot="end" class="title-icon font-awesome" name="reload-circle"></ion-icon>
</button> -->
</div>s
</div>
</div>
<ion-toolbar>
<ion-segment [(ngModel)]="segment" (ionChange)="segmentChanged($event)">
@@ -145,7 +145,7 @@
<div *ngSwitchCase="'parecer'" class="centered-div" >
<div
*ngIf=" pedidosstore.listparecer.length == 0"
*ngIf=" pedidosstore.listparecer.length == 0 && !skeletonLoader"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
@@ -154,16 +154,16 @@
<div *ngSwitchCase="'deferimento'" class="centered-div">
<div
*ngIf="pedidosstore.listdeferimento.length == 0"
*ngIf="pedidosstore.listdeferimento.length == 0 && !skeletonLoader"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
</div>
<div *ngIf="skeletonLoader && pedidosstore.listparecer.length == 0 && skeletonLoader && pedidosstore.listdeferimento.length == 0 ">
<div *ngSwitchCase="'deferimento'" >
<ion-list>
<ion-list *ngIf="skeletonLoader && pedidosstore.listdeferimento.length == 0">
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
@@ -186,6 +186,33 @@
</ion-item>
</ion-list>
</div>
<div *ngSwitchCase="'parecer'" >
<ion-list *ngIf="skeletonLoader && pedidosstore.listparecer.length == 0">
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</ion-content>
@@ -76,6 +76,7 @@ export class PendentesPage implements OnInit {
})
}, (error) => {
this.skeletonLoader = false;
if(error.status == 0){
this.getFromDb();
}