Event to aprove and Expediente already have offline mode

This commit is contained in:
Eudes Inácio
2021-09-27 08:52:41 +01:00
parent f84e6a4352
commit b59070f35e
11 changed files with 880 additions and 352 deletions
@@ -23,6 +23,10 @@ import { ExpedienteService } from 'src/app/Rules/expediente.service';
import { expedienteTask } from 'src/app/models/dailyworktask.model';
import { TaskService } from 'src/app/Rules/task.service';
import { SqliteService } from 'src/app/services/sqlite.service';
import { Platform } from '@ionic/angular';
import { synchro } from 'src/app/services/socket/synchro.service';
@Component({
selector: 'app-expediente-detail',
templateUrl: './expediente-detail.page.html',
@@ -49,6 +53,9 @@ export class ExpedienteDetailPage implements OnInit {
hideSendToPendentes = true
searchDocumentPipe = new SearchDocumentPipe()
synch = synchro
onlinecheck: boolean;
constructor(
private processes: ProcessesService,
private iab: InAppBrowser,
@@ -63,7 +70,9 @@ export class ExpedienteDetailPage implements OnInit {
private attachmentsService: AttachmentsService,
public p: PermissionService,
private taskService: TaskService,
private expedienteService: ExpedienteService
private expedienteService: ExpedienteService,
public platform: Platform,
private sqliteservice: SqliteService,
) {
this.activatedRoute.paramMap.subscribe(params => {
if(params["params"].SerialNumber) {
@@ -76,7 +85,10 @@ export class ExpedienteDetailPage implements OnInit {
}
ngOnInit() {
this.LoadTaskDetail(this.serialNumber);
this.getFromDB();
if(this.onlinecheck) {
this.LoadTaskDetail(this.serialNumber);
}
}
@@ -88,6 +100,45 @@ export class ExpedienteDetailPage implements OnInit {
this.toastService.presentToast('Não foi possível fazer login"');
}
getFromDB() {
synchro.registerCallback('Online', () => {
this.onlinecheck = true;
})
synchro.registerCallback('Offline', () => {
this.platform.ready().then(() => {
this.onlinecheck = false;
this.sqliteservice.getProcessById(this.serialNumber).then((process) => {
console.log("expedient ditail", process)
var workflow = JSON.parse(process[0].workflowInstanceDataFields);
var origina = JSON.parse(process[0].originator)
this.task = {
"SerialNumber": process[0].serialNumber,
"Folio": workflow.Subject,
"Senders": origina.email,
"CreateDate": momentG(new Date(process[0].taskStartDate),'yyyy-MM-dd HH:mm:ss'),
"DocumentURL": workflow.ViewerRequest,
"Remetente": workflow.Sender,
"Note": workflow.TaskMessage || workflow.Note,
"FolderId": workflow.FolderID,
"FsId": workflow.FsId,
"DocId": workflow.DocID,
"WorkflowName": process[0].workflowDisplayName,
"Status": workflow.Status,
"DispatchNumber": workflow.DispatchNumber,
"AttachmentsProcessLastInstanceID": workflow.AttachmentsProcessLastInstanceID,
"InstanceID": workflow.InstanceID
}
})
})
})
}
async approve(note:string, documents:any) {
let body = {
@@ -261,6 +312,7 @@ export class ExpedienteDetailPage implements OnInit {
}
this.fulltask = res;
this.sqliteservice.updateProcess(res)
let thedate = new Date(this.task.CreateDate);
this.customDate = this.days[thedate.getDay()]+ ", " + thedate.getDate() +" de " + ( this.months[thedate.getMonth()]);
@@ -65,13 +65,13 @@
</ion-list>
<div
*ngIf="!skeletonLoader && expedienteGdStore.list.length == 0 && expedienteGdStore.list.length == 0"
*ngIf="!skeletonLoader && listToPresent.length == 0 && listToPresent.length == 0"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
<div *ngIf="skeletonLoader && expedienteGdStore.list.length == 0">
<div *ngIf="skeletonLoader && listToPresent.length == 0">
<ion-list>
<ion-item>
@@ -25,6 +25,8 @@ export class ExpedientePage implements OnInit {
expedienteGdStore = ExpedienteGdStore
expedienteTaskPipe = new ExpedienteTaskPipe()
onlinecheck: boolean;
listToPresent;
synch = synchro
constructor(
@@ -40,20 +42,22 @@ export class ExpedientePage implements OnInit {
const location = window.location
const pathname = location.pathname + location.search
this.LoadList()
this.router.events.forEach((event) => {
if (event instanceof NavigationStart && event.url.startsWith(pathname)) {
if (window.location.pathname.split('/').length >= 4 && window.location.pathname.startsWith('/home/gabinete-digital')) {
this.refreshing()
} else {
this.LoadList()
}
}
});
this.getEventsFromLocalDb();
if (this.onlinecheck) {
this.LoadList()
this.router.events.forEach((event) => {
if (event instanceof NavigationStart && event.url.startsWith(pathname)) {
if (window.location.pathname.split('/').length >= 4 && window.location.pathname.startsWith('/home/gabinete-digital')) {
this.refreshing()
} else {
this.LoadList()
}
}
});
}
}
async LoadList() {
@@ -72,8 +76,8 @@ export class ExpedientePage implements OnInit {
this.taskslist.push(task);
});
this.SqliteAddExpediente(this.taskslist)
this.expedienteGdStore.reset(this.taskslist);
this.listToPresent = this.taskslist
console.log('expediente list', this.listToPresent)
} catch (error) {
this.toastService.badRequest('Processo não encontrado')
@@ -132,19 +136,38 @@ export class ExpedientePage implements OnInit {
getEventsFromLocalDb() {
synchro.registerCallback('Online', () => {
this.listToPresent = this.expedienteGdStore.list;
console.log('Onlineee')
this.onlinecheck = true;
})
synchro.registerCallback('Offline', () => {
this.platform.ready().then(() => {
this.sqliteservice.getAllExpedientes().then((expediente) => {
this.listToPresent = expediente
this.onlinecheck = false;
this.taskslist = new Array();
this.sqliteservice.getprocessByworkflow("Expediente").then((expediente: any[]) => {
expediente.forEach((element) => {
var workflow = JSON.parse(element.workflowInstanceDataFields);
let exped = {
"CreateDate": element.taskStartDate,
"DocumentsQty": element.totalDocuments,
"Senders": workflow.Senders,
"SerialNumber": element.serialNumber,
"Status": workflow.Status,
"Subject": workflow.Subject,
"WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName
}
this.taskslist.push(exped)
});
this.listToPresent = this.taskslist
console.log("All expedientes from local,", expediente)
})
console.log('Offlineee')