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
@@ -12,6 +12,10 @@ import { EditEventToApproveComponent } from 'src/app/shared/gabinete-digital/edi
import { ToastService } from 'src/app/services/toast.service';
import { Location } from '@angular/common';
import { SqliteService } from '../../../../services/sqlite.service';
import { synchro } from '../../../../services/socket/synchro.service';
import { Platform } from '@ionic/angular';
@Component({
selector: 'app-approve-event',
templateUrl: './approve-event.page.html',
@@ -19,28 +23,30 @@ import { Location } from '@angular/common';
})
export class ApproveEventPage implements OnInit {
event: Event;
loadedEvent:any = false
loadedAttachments:any;
customDate:any;
today:any;
loadedEvent: any = false
loadedAttachments: any;
customDate: any;
today: any;
show: boolean = false;
months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
serialNumber:string;
caller:string;
@Input() InstanceId:string;
serialNumber: string;
caller: string;
@Input() InstanceId: string;
@Output() approveEventDismiss = new EventEmitter<any>();
@Output() closeEventToApprove = new EventEmitter<any>();
@Output() AproveEventEditEvent = new EventEmitter<any>();
synch = synchro;
constructor(
private router:Router,
private router: Router,
private activatedRoute: ActivatedRoute,
private modalController: ModalController,
private processes:ProcessesService,
private processes: ProcessesService,
private attachmentsService: AttachmentsService,
private popoverController: PopoverController,
private menu: MenuController,
@@ -49,14 +55,16 @@ export class ApproveEventPage implements OnInit {
private animationController: AnimationController,
private toastService: ToastService,
private location: Location,
private sqliteservice: SqliteService,
private platform: Platform
) {
this.activatedRoute.paramMap.subscribe(params => {
// console.log(params["params"]);
if(params["params"].serialNumber) {
if (params["params"].serialNumber) {
this.serialNumber = params["params"].serialNumber;
}
if(params["params"].caller){
if (params["params"].caller) {
this.caller = params["params"].caller;
}
});
@@ -70,7 +78,7 @@ export class ApproveEventPage implements OnInit {
ngOnInit() {
console.log(this.serialNumber);
console.log(this.caller);
this.getProcessFromDB();
this.getTask();
}
@@ -89,19 +97,97 @@ export class ApproveEventPage implements OnInit {
}
addProcessToDB(data) {
this.platform.ready().then(() => {
this.sqliteservice.updateProcess(data);
});
}
getProcessFromDB() {
synchro.registerCallback('Offline', () => {
this.platform.ready().then(() => {
this.sqliteservice.getProcessById(this.serialNumber).then((process) => {
console.log('event aprove serial', process)
var doc;
var action = [];
var origi = [];
var wordafi = {};
if (process[0].Documents === "null" || process[0].Documents === "undefined") {
doc = []
} else {
doc = JSON.parse(process[0].Documents)
}
if (process[0].actions === "null" || process[0].actions === "undefined") {
action = []
} else {
action = JSON.parse(process[0].Documents)
}
if (process[0].originator === "null" || process[0].originator === "undefined") {
origi = []
} else {
origi = JSON.parse(process[0].Documents)
}
if (process[0].workflowInstanceDataFields === "null" || process[0].workflowInstanceDataFields === "undefined") {
wordafi = []
} else {
wordafi = JSON.parse(process[0].workflowInstanceDataFields)
}
let task = {
"Documents": doc,
"actions": action,
"activityInstanceName": process[0].activityInstanceName,
"formURL": process[0].formURL,
"originator": origi,
"serialNumber": process[0].serialNumber,
"taskStartDate": process[0].taskStartDate,
"totalDocuments": process[0].totalDocuments,
"workflowDisplayName": process[0].workflowDisplayName,
"workflowID": process[0].workflowID,
"workflowInstanceDataFields": wordafi,
"workflowInstanceFolio": process[0].workflowInstanceFolio,
"workflowInstanceID": process[0].workflowInstanceID,
"workflowName": process[0].workflowInstanceID
}
this.loadedEvent = task
console.log('offline event',this.loadedEvent);
this.today = new Date(this.loadedEvent.workflowInstanceDataFields.StartDate);
this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]);
let instanceId = this.loadedEvent.workflowInstanceDataFields.InstanceId;
this.loadedAttachments = this.loadedEvent.Documents;
console.log('Attatara', this.loadedAttachments)
})
})
console.log('Offlineee')
})
}
async getTask() {
this.loadedEvent = await this.processes.GetTask(this.serialNumber).toPromise();
console.log(this.loadedEvent);
this.today = new Date(this.loadedEvent.workflowInstanceDataFields.StartDate);
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]);
let instanceId = this.loadedEvent.workflowInstanceDataFields.InstanceId;
this.getAttachments(instanceId);
this.addProcessToDB(this.loadedEvent)
}
async approveTask(serialNumber:string) {
async approveTask(serialNumber: string) {
let body = { "serialNumber": serialNumber, "action": "Aprovar" }
console.log(body);
@@ -131,12 +217,12 @@ export class ApproveEventPage implements OnInit {
}); */
}
async emendTask(serialNumber:string){
async emendTask(serialNumber: string) {
console.log('Desktop');
const modal = await this.modalController.create({
component: EmendMessageModalPage,
componentProps:{
componentProps: {
},
cssClass: 'emend-message-modal',
backdropDismiss: false
@@ -145,41 +231,42 @@ export class ApproveEventPage implements OnInit {
await modal.present();
modal.onDidDismiss()
.then( async (res) => {
console.log(res.data);
.then(async (res) => {
console.log(res.data);
if(res.data !== ''){
let body = { "serialNumber": serialNumber,
"action": "Emendar",
if (res.data !== '') {
let body = {
"serialNumber": serialNumber,
"action": "Emendar",
"dataFields": {
"ReviewUserComment": res.data,
"ReviewUserComment": res.data,
}
}
console.log(body);
const loader = this.toastService.loading()
try {
await this.processes.PostTaskAction(body).toPromise();
this.toastService.successMessage('Pedido enviado');
this.goBack();
} catch (error) {
this.toastService.badRequest();
} finally {
loader.remove()
}
}
console.log(body);
const loader = this.toastService.loading()
try {
await this.processes.PostTaskAction(body).toPromise();
this.toastService.successMessage('Pedido enviado');
this.goBack();
} catch (error) {
this.toastService.badRequest();
} finally {
loader.remove()
else {
//this.alertService.presentAlert('Operação cancelada!');
}
}
else{
//this.alertService.presentAlert('Operação cancelada!');
}
});
});
//this.openEmendMessageModal(serialNumber);
//this.goBack();
}
async rejeitar(serialNumber:string){
async rejeitar(serialNumber: string) {
let body = { "serialNumber": serialNumber, "action": "Rejeitar" }
console.log(body);
const loader = this.toastService.loading()
@@ -195,10 +282,12 @@ export class ApproveEventPage implements OnInit {
}
}
async getAttachments(instanceId:string) {
async getAttachments(instanceId: string) {
try {
this.loadedAttachments = await this.attachmentsService.getAttachmentsById(instanceId).toPromise();
this.sqliteservice.updateUser(JSON.stringify(this.serialNumber),JSON.stringify(this.loadedAttachments))
console.log('Attatara', this.loadedAttachments)
} catch (error) {
@@ -206,23 +295,23 @@ export class ApproveEventPage implements OnInit {
}
viewDocument(sourceId){
this.processes.GetDocumentUrl(sourceId, '8').subscribe(res=>{
viewDocument(sourceId) {
this.processes.GetDocumentUrl(sourceId, '8').subscribe(res => {
/* console.log(res); */
const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
const browser = this.iab.create(url,"_blank");
const url: string = res.replace("webTRIX.Viewer", "webTRIX.Viewer.Branch1");
const browser = this.iab.create(url, "_blank");
browser.show();
});
}
async openOptions(ev:any) {
async openOptions(ev: any) {
const popover = await this.popoverController.create({
component: EventActionsPopoverPage,
cssClass: 'events-options',
event: ev,
translucent: true,
componentProps:{
componentProps: {
serialNumber: ev.serialNumber,
InstanceId: ev.workflowInstanceDataFields.InstanceId,
},
@@ -233,10 +322,10 @@ export class ApproveEventPage implements OnInit {
openMenu() {
this.menu.open();
}
async openEmendMessageModal(serialNumber:string) {
async openEmendMessageModal(serialNumber: string) {
const modal = await this.modalController.create({
component: EmendMessageModalPage,
componentProps:{
componentProps: {
},
cssClass: 'emend-message-modal',
backdropDismiss: false
@@ -244,13 +333,14 @@ export class ApproveEventPage implements OnInit {
await modal.present();
modal.onDidDismiss().then( async (res) => {
modal.onDidDismiss().then(async (res) => {
console.log(res.data);
if(res.data !== ''){
let body = { "serialNumber": serialNumber,
"action": "Emendar",
"dataFields": {
if (res.data !== '') {
let body = {
"serialNumber": serialNumber,
"action": "Emendar",
"dataFields": {
"ReviewUserComment": res.data,
}
}
@@ -264,18 +354,18 @@ export class ApproveEventPage implements OnInit {
this.goBack();
} catch (error) {
this.toastService.badRequest();
} finally {
} finally {
loader.remove()
}
}
else{
else {
//this.alertService.presentAlert('Operação cancelada!');
}
});
}
goToEventsToApprove(){
goToEventsToApprove() {
let navigationExtras: NavigationExtras = {
queryParams: {
"eventos": true,
@@ -290,7 +380,7 @@ export class ApproveEventPage implements OnInit {
component: EditEventToApproveComponent,
componentProps: {
serialNumber: serialNumber,
InstanceId:this.InstanceId
InstanceId: this.InstanceId
},
cssClass: 'modal modal-desktop',
// backdropDismiss: false
@@ -8,6 +8,10 @@ import { NavigationStart, Router } from '@angular/router';
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
import { Location } from '@angular/common';
import { SqliteService } from '../../../services/sqlite.service';
import { synchro } from '../../../services/socket/synchro.service';
import { Platform } from '@ionic/angular';
@Component({
selector: 'app-event-list',
templateUrl: './event-list.page.html',
@@ -29,12 +33,16 @@ export class EventListPage implements OnInit {
skeletonLoader = true
eventaprovacaostore = EventoAprovacaoStore;
synch = synchro;
constructor(
private processes:ProcessesService,
private modalController: ModalController,
private router: Router,
private location: Location
private location: Location,
private sqliteservice: SqliteService,
private platform: Platform
) { }
ngOnInit() {
@@ -43,6 +51,9 @@ export class EventListPage implements OnInit {
const location = window.location
const pathname = location.pathname + location.search
this.getEventToAproveFromDB();
this.LoadToApproveEvents()
this.router.events.forEach((event) => {
@@ -65,6 +76,25 @@ export class EventListPage implements OnInit {
}
getEventToAproveFromDB() {
synchro.registerCallback('Offline', () => {
this.platform.ready().then(() => {
this.sqliteservice.getListOfEventAprove('Agenda Oficial MDGPR','Agenda Pessoal MDGPR' ).then((event: any[]) => {
this.eventsMDGPRList = event
console.log("All evento to aprove from db ", event)
})
this.sqliteservice.getListOfEventAprove('Agenda Oficial PR','Agenda Pessoal PR' ).then((event: any[]) => {
this.eventsPRList = event
console.log("All evento to aprove from db ", event)
})
})
console.log('Offlineee')
})
}
segmentChanged(ev: any) {
this.LoadToApproveEvents();
}
@@ -78,7 +108,8 @@ export class EventListPage implements OnInit {
let mdEventsOficial = await this.processes.GetTasksList('Agenda Oficial MDGPR', false).toPromise();
let mdEventsPessoal = await this.processes.GetTasksList('Agenda Pessoal MDGPR', false).toPromise();
this.eventsMDGPRList = mdEventsOficial.concat(mdEventsPessoal);
console.log(this.eventsMDGPRList);
console.log('Event aprove',this.eventsMDGPRList);
this.eventaprovacaostore.resetmd(this.eventsMDGPRList);
}
@@ -92,6 +123,10 @@ export class EventListPage implements OnInit {
this.skeletonLoader = false
}
getEventToaproveFromDB() {
}
async openApproveModal(eventSerialNumber, event){
const modal = await this.modalController.create({
component: ApproveEventModalPage,