import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { AnimationController, ModalController, NavParams, PopoverController } from '@ionic/angular'; import { AddNotePage } from 'src/app/modals/add-note/add-note.page'; import { DarParecerPage } from 'src/app/modals/dar-parecer/dar-parecer.page'; import { DelegarPage } from 'src/app/modals/delegar/delegar.page'; import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page'; import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page'; import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page'; import { ProcessesService } from 'src/app/services/processes.service'; import { ToastService } from 'src/app/services/toast.service'; @Component({ selector: 'app-request-options', templateUrl: './request-options.page.html', styleUrls: ['./request-options.page.scss'], }) export class RequestOptionsPage implements OnInit { task:any; fulltask: any; profile:string; serialnumber : string showEnviarPendentes = false constructor( private popoverController: PopoverController, private modalController: ModalController, private navParams: NavParams, private processes: ProcessesService, private activatedRoute: ActivatedRoute, private animationController: AnimationController, private toastService: ToastService, private router: Router, ) { this.task = this.navParams.get('task'); this.fulltask = this.navParams.get('fulltask'); this.activatedRoute.queryParams.subscribe(params => { if(params["serialNumber"]) { this.serialnumber = params["serialNumber"]; // console.log(params["serialNumber"]); } }); this.showEnviarPendentes = this.navParams.get('showEnviarPendentes'); if(!this.showEnviarPendentes) this.showEnviarPendentes = false } ngOnInit() { console.log(this.task); this.profile = "mdgpr"; window.onresize = (event) => { if( window.innerWidth >= 800){ this.popoverController.dismiss(); } }; } close(){ if( window.innerWidth < 801){ this.popoverController.dismiss(); } else{ this.modalController.dismiss(); } this.router.navigate(['/home/gabinete-digital/pedidos']); } sendExpedienteToPending(){ this.processes.SetTaskToPending(this.task.SerialNumber).subscribe(res=>{ console.log(res); this.close(); }); } async openBookMeetingModal(task: any) { this.popoverController.dismiss(); let classs; if( window.innerWidth <= 800){ classs = 'book-meeting-modal modal modal-desktop' } else { classs = 'modal modal-desktop showAsideOptions' } const modal = await this.modalController.create({ component: BookMeetingModalPage, componentProps: { task: this.task, }, cssClass: classs, backdropDismiss: false }); await modal.present(); modal.onDidDismiss(); } async openExpedientActionsModal(taskAction: any, task: any) { this.popoverController.dismiss(); //this.modalController.dismiss(); let classs; if( window.innerWidth <= 800) { classs = 'modal modal-desktop' } else { classs = 'modal modal-desktop showAsideOptions' } const modal = await this.modalController.create({ component: ExpedientTaskModalPage, componentProps: { taskAction: taskAction, task: task, profile: this.profile, }, cssClass: classs, }); await modal.present(); modal.onDidDismiss().then(res=>{ console.log(res['data']); if(res['data']=='openDiscart'){ console.log('open discart'); this.distartExpedientModal(); } }); } async distartExpedientModal(){ this.popoverController.dismiss(); console.log(this.fulltask); const modal = await this.modalController.create({ component: DiscartExpedientModalPage, componentProps: { serialNumber: this.fulltask.serialNumber, folderId: this.fulltask.workflowInstanceDataFields.FolderID, action: 'complete', }, cssClass: 'discart-expedient-modal', backdropDismiss: false }); await modal.present(); modal.onDidDismiss().then(res=>{ if(res['data']=='close'){ this.close(); /* console.log('2Expedient Discard closed2'); this.close(); this.openMenu(); */ } }); } async repreciar(note:string, documents:any) { let body = { "serialNumber": this.serialnumber, "action": "Reapreciação", "ActionTypeId": 100000009, "dataFields": { "ReviewUserComment": note, }, "AttachmentList" :documents, } const loader = this.toastService.loading() try { await this.processes.CompleteTask(body).toPromise() this.close(); this.toastService.successMessage() } catch (error) { this.toastService.badRequest() } finally { loader.remove() } } async openAddNoteModal(actionName:string) { this.popoverController.dismiss(); let classs; if( window.innerWidth <= 800){ classs = 'modal modal-desktop' } else { classs = 'modal modal-desktop' } const modal = await this.modalController.create({ component: AddNotePage, componentProps:{ }, cssClass: classs, backdropDismiss: true }); await modal.present(); modal.onDidDismiss().then(res => { const DocumentToSave = res.data.documents.map((e) => { return { ApplicationId: e.ApplicationType, SourceId: e.Id, } }); let docs = { ProcessInstanceID: "", Attachments: DocumentToSave, } if(res.data){ if(actionName == 'Solicitar Reapreciação') { this.repreciar(res.data.note, docs); } else if(actionName == 'Arquivar'){ this.arquivar(res.data.note, docs); } } }); } async arquivar(note:string, documents:any) { let body = { "serialNumber": this.serialnumber, "action": "Arquivo", "ActionTypeId": 95, "dataFields": { "ReviewUserComment": note, }, "AttachmentList" :documents, } try { await this.processes.CompleteTask(body).toPromise() this.close(); this.toastService.successMessage('Processo arquivado') } catch (error) { this.toastService.badRequest('Processo não arquivado') } } async openDarParecer(task: any) { this.popoverController.dismiss(); // console.log(task); let classs; if( window.innerWidth <= 800){ classs = 'book-meeting-modal modal modal-desktop' } else { classs = 'modal modal-desktop showAsideOptions' } const modal = await this.modalController.create({ component: DarParecerPage, componentProps: { serialNumber: this.task.SerialNumber, ProcessInstanceID: this.task.ProcessInstanceID, }, cssClass: classs, backdropDismiss: false }); await modal.present(); modal.onDidDismiss(); } async openDelegarModal(task: any) { this.popoverController.dismiss(); // console.log(task); let classs; if( window.innerWidth <= 800){ classs = 'book-meeting-modal modal modal-desktop' } else { classs = 'modal modal-desktop showAsideOptions' } const modal = await this.modalController.create({ component: DelegarPage, componentProps: { task: this.task, }, cssClass: classs, backdropDismiss: false }); await modal.present(); modal.onDidDismiss(); } }