This commit is contained in:
tiago.kayaya
2021-05-27 15:46:14 +01:00
34 changed files with 1511 additions and 167 deletions
+12
View File
@@ -96,6 +96,18 @@ const routes: Routes = [
path: 'opts-expediente-pr', path: 'opts-expediente-pr',
loadChildren: () => import('./shared/popover/opts-expediente-pr/opts-expediente-pr.module').then( m => m.OptsExpedientePrPageModule) loadChildren: () => import('./shared/popover/opts-expediente-pr/opts-expediente-pr.module').then( m => m.OptsExpedientePrPageModule)
}, },
{
path: 'despachos-options',
loadChildren: () => import('./shared/popover/despachos-options/despachos-options.module').then( m => m.DespachosOptionsPageModule)
},
{
path: 'despachos-pr-options',
loadChildren: () => import('./shared/popover/despachos-pr-options/despachos-pr-options.module').then( m => m.DespachosPrOptionsPageModule)
},
{
path: 'deploma-options',
loadChildren: () => import('./shared/popover/deploma-options/deploma-options.module').then( m => m.DeplomaOptionsPageModule)
},
/* { /* {
path: 'chat', path: 'chat',
@@ -85,10 +85,10 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="task.Note"> <div *ngIf="fulltask.workflowInstanceDataFields.TaskMessage">
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p> <p [innerHTML]="fulltask.workflowInstanceDataFields.TaskMessage"></p>
</ion-item> </ion-item>
</div> </div>
</div> </div>
@@ -20,6 +20,7 @@ import { AddNotePage } from 'src/app/modals/add-note/add-note.page';
import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page'; import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page';
import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component'; import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component';
import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component'; import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component';
import { DespachosPrOptionsPage } from 'src/app/shared/popover/despachos-pr-options/despachos-pr-options.page';
@Component({ @Component({
selector: 'app-despacho-pr', selector: 'app-despacho-pr',
@@ -447,7 +448,7 @@ export class DespachoPrPage implements OnInit {
async openOptions(taskAction?: any) { async openOptions(taskAction?: any) {
const popover = await this.popoverController.create({ const popover = await this.popoverController.create({
component: OptsExpedientePage, component: DespachosPrOptionsPage,
cssClass: 'exp-options', cssClass: 'exp-options',
componentProps: { componentProps: {
task: this.task, task: this.task,
@@ -41,7 +41,7 @@
<div class="main-content d-flex height-100"> <div class="main-content d-flex height-100">
<div class="content d-flex flex-column" *ngIf="task"> <div class="content d-flex flex-column" *ngIf="task">
<div class="main-header"> <div class="main-header">
<div class="title-content d-flex justify-space-between"> <div class="title-content d-flex justify-space-between align-center">
<div class="font-30 cursor-pointer" (click)="goBack()" defaultHref="#"> <div class="font-30 cursor-pointer" (click)="goBack()" defaultHref="#">
<ion-icon slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon> <ion-icon slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
</div> </div>
@@ -84,10 +84,10 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="task.Note"> <div *ngIf="fulltask.workflowInstanceDataFields.TaskMessage">
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p> <p [innerHTML]="fulltask.workflowInstanceDataFields.TaskMessage"></p>
</ion-item> </ion-item>
</div> </div>
</div> </div>
@@ -4,7 +4,7 @@
<ion-header class="ion-no-border header-2"> <ion-header class="ion-no-border header-2">
<div class="title"> <div class="title d-flex align-center">
<app-btn-modal-dismiss (click)="goBack()" ></app-btn-modal-dismiss> <app-btn-modal-dismiss (click)="goBack()" ></app-btn-modal-dismiss>
<div class="thetitle"><ion-label >Despachos</ion-label></div> <div class="thetitle"><ion-label >Despachos</ion-label></div>
@@ -94,16 +94,16 @@ export class DespachosPage implements OnInit {
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds(); let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
let task = { let task = {
"SerialNumber": element.serialNumber, "SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject, "Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.originator.email, "Senders": element.originator.email,
"CreateDate": taskDate, "CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest, "DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente, "Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": 0, "DocumentsQty": 0,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento, "DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName, "WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName, "activityInstanceName": element.activityInstanceName,
} }
this.despachoList.push(task) this.despachoList.push(task)
@@ -124,7 +124,7 @@ export class DespachosPage implements OnInit {
} }
sortArrayISODate(myArray: any){ sortArrayISODate(myArray: any) {
return myArray.sort(function(a, b) { return myArray.sort(function(a, b) {
return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0); return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0);
}); });
@@ -49,10 +49,10 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="task.Note"> <div *ngIf="fulltask.workflowInstanceDataFields.TaskMessage">
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p> <p [innerHTML]="fulltask.workflowInstanceDataFields.TaskMessage"></p>
</ion-item> </ion-item>
</div> </div>
</div> </div>
@@ -10,6 +10,7 @@ import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page'; import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page';
import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component'; import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component';
import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component'; import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component';
import { DeplomaOptionsPage } from 'src/app/shared/popover/deploma-options/deploma-options.page';
@Component({ @Component({
selector: 'app-diploma-assinar', selector: 'app-diploma-assinar',
@@ -57,7 +58,7 @@ export class DiplomaAssinarPage implements OnInit {
async openOptions(taskAction?: any) { async openOptions(taskAction?: any) {
const popover = await this.popoverController.create({ const popover = await this.popoverController.create({
component: OptsExpedientePage, component: DeplomaOptionsPage,
cssClass: 'exp-options', cssClass: 'exp-options',
componentProps: { componentProps: {
task: this.task, task: this.task,
@@ -17,7 +17,7 @@
<!-- <ion-menu-button autoHide="false"> <!-- <ion-menu-button autoHide="false">
<ion-icon name="ellipsis-vertical-outline"></ion-icon> <ion-icon name="ellipsis-vertical-outline"></ion-icon>
</ion-menu-button> --> </ion-menu-button> -->
<ion-icon class="font-25 cursor-pointer" name="ellipsis-vertical-outline"></ion-icon> <ion-icon class="font-25 cursor-pointer" src="assets/images/icons-menu.svg"></ion-icon>
</div> </div>
</div> </div>
</div> </div>
@@ -49,10 +49,10 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="task.Note"> <div *ngIf="fulltask.workflowInstanceDataFields.TaskMessage">
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p> <p [innerHTML]="fulltask.workflowInstanceDataFields.TaskMessage"></p>
</ion-item> </ion-item>
</div> </div>
</div> </div>
@@ -10,6 +10,7 @@ import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page'; import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page';
import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component'; import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component';
import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component'; import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component';
import { DeplomaOptionsPage } from 'src/app/shared/popover/deploma-options/deploma-options.page';
@Component({ @Component({
selector: 'app-diploma', selector: 'app-diploma',
@@ -52,7 +53,7 @@ export class DiplomaPage implements OnInit {
this.LoadTaskDetail(this.serialnumber); this.LoadTaskDetail(this.serialnumber);
} }
goBack(){ goBack() {
// let navigationExtras: NavigationExtras = { // let navigationExtras: NavigationExtras = {
// queryParams: { // queryParams: {
// "diplomas": true, // "diplomas": true,
@@ -65,7 +66,7 @@ export class DiplomaPage implements OnInit {
async openOptions(taskAction?: any) { async openOptions(taskAction?: any) {
const popover = await this.popoverController.create({ const popover = await this.popoverController.create({
component: OptsExpedientePage, component: DeplomaOptionsPage,
cssClass: 'exp-options', cssClass: 'exp-options',
componentProps: { componentProps: {
task: this.task, task: this.task,
@@ -53,10 +53,12 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<h5>Detalhes</h5> <div *ngIf="fulltask.workflowInstanceDataFields.TaskMessage">
<ion-item class="ion-no-margin ion-no-padding"> <h5>Detalhes</h5>
<p [innerHTML]="task.Note"></p> <ion-item class="ion-no-margin ion-no-padding">
</ion-item> <p [innerHTML]="fulltask.workflowInstanceDataFields.TaskMessage"></p>
</ion-item>
</div>
</div> </div>
<div class="bottom-content width-100"> <div class="bottom-content width-100">
<ion-list> <ion-list>
@@ -49,10 +49,10 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
</div> </div>
<div *ngIf="task.Note"> <div *ngIf="fulltask.workflowInstanceDataFields.TaskMessage">
<h5>Detalhes</h5> <h5>Detalhes</h5>
<ion-item class="ion-no-margin ion-no-padding"> <ion-item class="ion-no-margin ion-no-padding">
<p [innerHTML]="task.Note"></p> <p [innerHTML]="fulltask.workflowInstanceDataFields.TaskMessage"></p>
</ion-item> </ion-item>
</div> </div>
</div> </div>
@@ -236,6 +236,7 @@ async viewExpedientDetail(serialNumber:any) {
await modal.present(); await modal.present();
modal.onDidDismiss().then(res=>{ modal.onDidDismiss().then(res=>{
console.log(res['data']); console.log(res['data']);
this.LoadList();
if(res['data']=='openDiscart'){ if(res['data']=='openDiscart'){
console.log('open discart'); console.log('open discart');
@@ -262,22 +263,31 @@ async viewExpedientDetail(serialNumber:any) {
}, },
} }
let classs; let classs;
if( window.innerWidth <= 800){ if( window.innerWidth <= 800){
classs = 'book-meeting-modal modal modal-desktop' classs = 'book-meeting-modal modal modal-desktop'
} else { } else {
classs = 'modal modal-desktop showAsideOptions' classs = 'modal modal-desktop showAsideOptions'
} }
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: BookMeetingModalPage, component: BookMeetingModalPage,
componentProps: { componentProps: {
task: task, task: task,
}, },
cssClass: classs, cssClass: classs,
backdropDismiss: false backdropDismiss: false
}); });
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss().then(res=>{
this.LoadList();
if(res['data']=='close'){
// this.close();
/* console.log('2Expedient Discard closed2');
this.close();
this.openMenu(); */
}
});
} }
@@ -298,16 +308,17 @@ async viewExpedientDetail(serialNumber:any) {
backdropDismiss: false backdropDismiss: false
}); });
await modal.present(); await modal.present();
modal.onDidDismiss().then(res=>{ modal.onDidDismiss().then(res=>{
if(res['data']=='close'){ this.LoadList();
// this.close(); if(res['data']=='close'){
/* console.log('2Expedient Discard closed2'); // this.close();
this.close(); /* console.log('2Expedient Discard closed2');
this.openMenu(); */ this.close();
} this.openMenu(); */
}
}); });
} }
docIndex(index: number) { docIndex(index: number) {
@@ -92,7 +92,6 @@ export class DespachosPage implements OnInit {
async LoadList(){ async LoadList(){
let result = await this.processes.GetTasksList("Despacho", false).toPromise(); let result = await this.processes.GetTasksList("Despacho", false).toPromise();
//let despachos = result.reverse().filter(data => data.activityInstanceName == "Despacho (Paralelo)"); //let despachos = result.reverse().filter(data => data.activityInstanceName == "Despacho (Paralelo)");
this.despachoList = new Array(); this.despachoList = new Array();
@@ -102,21 +101,21 @@ export class DespachosPage implements OnInit {
await result.forEach( (element, index) => { await result.forEach( (element, index) => {
let date = new Date(element.taskStartDate); let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1); date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds(); let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
let task = { let task = {
"SerialNumber": element.serialNumber, "SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject, "Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.originator.email, "Senders": element.originator.email,
"CreateDate": taskDate, "CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest, "DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente, "Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": 0, "DocumentsQty": 0,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento, "DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName, "WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName, "activityInstanceName": element.activityInstanceName,
} }
this.despachoList.push(task) this.despachoList.push(task)
@@ -150,24 +149,24 @@ export class DespachosPage implements OnInit {
}, 2000); }, 2000);
} }
async viewExpedientDetail(serialNumber:any) { async viewExpedientDetail(serialNumber:any) {
console.log(this.profile); console.log(this.profile);
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: DespachoPage, component: DespachoPage,
componentProps:{ componentProps:{
enterAnimation: "", enterAnimation: "",
serialNumber: serialNumber, serialNumber: serialNumber,
profile: this.profile, profile: this.profile,
}, },
cssClass: 'modal modal-desktop', cssClass: 'modal modal-desktop',
}); });
await modal.present(); await modal.present();
modal.onDidDismiss().then((res)=>{ modal.onDidDismiss().then((res)=>{
console.log('refresh list'); console.log('refresh list');
this.LoadList(); this.LoadList();
}); });
} }
// old // old
async openExpedientActionsModal(taskAction: any, task: any) { async openExpedientActionsModal(taskAction: any, task: any) {
@@ -205,9 +204,11 @@ export class DespachosPage implements OnInit {
await modal.present(); await modal.present();
modal.onDidDismiss().then(res=>{ modal.onDidDismiss().then(res=>{
console.log(res['data']); console.log(res['data']);
this.LoadList();
if(res['data']=='openDiscart'){ if(res['data']=='openDiscart'){
console.log('open discart'); console.log('open discart');
// this.distartExpedientModal(); // this.distartExpedientModal();
} }
@@ -246,7 +247,10 @@ export class DespachosPage implements OnInit {
backdropDismiss: false backdropDismiss: false
}); });
await modal.present(); await modal.present();
modal.onDidDismiss(); modal.onDidDismiss().then(res=>{
this.LoadList();
});
} }
@@ -269,6 +273,8 @@ export class DespachosPage implements OnInit {
await modal.present(); await modal.present();
modal.onDidDismiss().then(res=>{ modal.onDidDismiss().then(res=>{
this.LoadList();
if(res['data']=='close'){ if(res['data']=='close'){
// this.close(); // this.close();
/* console.log('2Expedient Discard closed2'); /* console.log('2Expedient Discard closed2');
@@ -22,87 +22,87 @@ serialNumber:string;
@Input() profile:string; @Input() profile:string;
@Input() segment:string; @Input() segment:string;
constructor( constructor(
private processes:ProcessesService, private processes:ProcessesService,
private modalController: ModalController, private modalController: ModalController,
private alertService: AlertService, private alertService: AlertService,
private router: Router, private router: Router,
) { ) {
}
ngOnInit() {
this.LoadList();
} }
ngOnInit() { goToDiploma(serialNumber:any){
this.LoadList(); let navigationExtras: NavigationExtras = {
} queryParams: {
"serialNumber": serialNumber,
}
};
this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras);
}
goToDiploma(serialNumber:any){ doRefresh() {
let navigationExtras: NavigationExtras = { this.LoadList();
queryParams: { setTimeout(() => {
"serialNumber": serialNumber, //event.target.complete();
} }, 2000);
}; }
this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras);
}
doRefresh() { async LoadList(){
this.LoadList();
setTimeout(() => {
//event.target.complete();
}, 2000);
}
async LoadList(){ let diplomas = await this.processes.GetTasksList("Despacho do Presidente da República", false).toPromise();
this.diplomasList = new Array();
let diplomas = await this.processes.GetTasksList("Despacho do Presidente da República", false).toPromise(); console.log(diplomas);
this.diplomasList = new Array(); let diplomasAssinar = diplomas.reverse().filter(data => data.activityInstanceName == "Assinar diploma");
console.log(diplomasAssinar);
diplomasAssinar.forEach(element => {
let DocId = element.workflowInstanceDataFields.FolderID;
let ApplicationId = element.workflowInstanceDataFields.ApplicationId;
this.processes.GetDocumentDetails(DocId, '361').subscribe(res=>{
this.totalDocs = res.DocumentsTotal;
console.log(res.DocumentsTotal);
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();
console.log(diplomas); let task = {
let diplomasAssinar = diplomas.reverse().filter(data => data.activityInstanceName == "Assinar diploma"); "SerialNumber": element.serialNumber,
console.log(diplomasAssinar); "Folio": element.workflowInstanceDataFields.Subject,
diplomasAssinar.forEach(element => { "Senders": element.originator.email,
let DocId = element.workflowInstanceDataFields.FolderID; "CreateDate": taskDate,
let ApplicationId = element.workflowInstanceDataFields.ApplicationId; "DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
this.processes.GetDocumentDetails(DocId, '361').subscribe(res=>{ "Remetente": element.workflowInstanceDataFields.Remetente,
this.totalDocs = res.DocumentsTotal; "DocumentsQty": 0,
console.log(res.DocumentsTotal); "DocId": element.workflowInstanceDataFields.DocIdDiferimento,
let date = new Date(element.taskStartDate); "WorkflowName": element.workflowDisplayName,
date.setMonth(date.getMonth() + 1); "activityInstanceName": element.activityInstanceName,
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds(); }
this.diplomasList.push(task);
},
(error)=>{
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();
let task = { let task = {
"SerialNumber": element.serialNumber, "SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject, "Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.originator.email, "Senders": element.originator.email,
"CreateDate": taskDate, "CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest, "DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente, "Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": 0, "DocumentsQty": 0,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento, "DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName, "WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName, "activityInstanceName": element.activityInstanceName,
} }
this.diplomasList.push(task); this.diplomasList.push(task);
}, });
(error)=>{ });
let date = new Date(element.taskStartDate); this.showLoader = false;
date.setMonth(date.getMonth() + 1); }
let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds();
let task = {
"SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.originator.email,
"CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": 0,
"DocId": element.workflowInstanceDataFields.DocIdDiferimento,
"WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName,
}
this.diplomasList.push(task);
});
});
this.showLoader = false;
}
} }
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DeplomaOptionsPage } from './deploma-options.page';
const routes: Routes = [
{
path: '',
component: DeplomaOptionsPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class DeplomaOptionsPageRoutingModule {}
@@ -0,0 +1,20 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { DeplomaOptionsPageRoutingModule } from './deploma-options-routing.module';
import { DeplomaOptionsPage } from './deploma-options.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
DeplomaOptionsPageRoutingModule
],
declarations: [DeplomaOptionsPage]
})
export class DeplomaOptionsPageModule {}
@@ -0,0 +1,15 @@
<ion-content class="container">
<div class="arrow-right" (click)="close()">
<button class="btn-no-color">
<ion-icon slot="end" class="arrow-right-icon" src='assets/images/icons-arrow-arrow-right.svg'></ion-icon>
</button>
</div>
<div class="buttons">
<button (click)="openAddNoteModal('Solicitar assinatura')" class="btn-cancel" shape="round" >Solicitar assinatura</button>
<button (click)="openAddNoteModal('Solicitar alteração')" class="btn-cancel" shape="round" >Solicitar alteração</button>
<button (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
<div class="solid"></div>
</div>
</ion-content>
@@ -0,0 +1,56 @@
.container{
--padding-top:20px !important;
--padding-bottom:20px !important;
--padding-start:20px !important;
--padding-end:20px !important;
}
.arrow-right {
display: none;
margin-bottom: 20px;
.arrow-right-icon {
width: 37px;
float: right;
font-size: 35px;
overflow: hidden;
}
}
.buttons {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.solid {
display: none;
width: 90%;
border-top: 1px solid #bbb;
margin: 0 auto !important;
}
.btn-ok, .btn-cancel{
//width: 50% !important;
margin-bottom: 5px !important;
margin-top: 5px !important;
}
@media only screen and (max-width: 800px) {
.btn-ok, .btn-cancel, .btn-delete{
width: 47% !important;
}
}
@media only screen and (min-width: 1024px) {
.arrow-right{
display: flex;
justify-content: flex-end;
}
.btn-cancel{
display: none;
width: 100% !important;
margin-bottom: 10px !important;
}
.btn-delete, .btn-ok{
width: 100% !important;
margin-bottom: 10px !important;
margin-top: 10px !important;
}
/* .solid{
display: block;
} */
}
@@ -0,0 +1,24 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { DeplomaOptionsPage } from './deploma-options.page';
describe('DeplomaOptionsPage', () => {
let component: DeplomaOptionsPage;
let fixture: ComponentFixture<DeplomaOptionsPage>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ DeplomaOptionsPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(DeplomaOptionsPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,188 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ModalController, PopoverController } from '@ionic/angular';
import { AddNotePage } from 'src/app/modals/add-note/add-note.page';
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
import { ProcessesService } from 'src/app/services/processes.service';
import { BadRequestComponent } from '../bad-request/bad-request.component';
import { SuccessMessageComponent } from '../success-message/success-message.component';
@Component({
selector: 'app-deploma-options',
templateUrl: './deploma-options.page.html',
styleUrls: ['./deploma-options.page.scss'],
})
export class DeplomaOptionsPage implements OnInit {
serialnumber: string;
profile: string;
task: any
fulltask: any
constructor(public popoverController: PopoverController,
private modalController: ModalController,
private activatedRoute: ActivatedRoute,
private processes: ProcessesService,) {
this.activatedRoute.queryParams.subscribe(params => {
if(params["serialNumber"]) {
this.serialnumber = params["serialNumber"];
console.log(params["serialNumber"]);
}
});
}
ngOnInit() {
}
async openAddNoteModal(actionName:string) {
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 => {
if(res.data){
const DocumentToSave = res.data.documents.map((e) => {
return {
ApplicationId: e.ApplicationType,
SourceId: e.Id,
}
});
let docs = {
ProcessInstanceID: "",
Attachments: DocumentToSave,
}
if(actionName == 'Solicitar assinatura'){
this.askSignature(res.data.note, docs);
this.goBack();
}
else if(actionName == 'Solicitar alteração'){
this.askToChange(res.data.note, docs);
this.goBack();
}
}
});
}
async askToChange(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Retificar",
"ActionTypeId": 99999841,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.close();
this.successMessage()
} catch (error) {
this.badRequest()
}
}
async openBookMeetingModal(task: any) {
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 askSignature(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Aprovar",
"ActionTypeId": 99999840,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.close();
this.successMessage()
} catch (error) {
this.badRequest()
}
}
async successMessage(message?: string) {
const modal = await this.modalController.create({
component: SuccessMessageComponent,
componentProps: {
message: message || 'Processo efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
async badRequest(message?: string) {
const modal = await this.modalController.create({
component: BadRequestComponent,
componentProps: {
message: message || 'Processo não efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
goBack() {
this.close()
}
close(){}
}
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DespachosOptionsPage } from './despachos-options.page';
const routes: Routes = [
{
path: '',
component: DespachosOptionsPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class DespachosOptionsPageRoutingModule {}
@@ -0,0 +1,20 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { DespachosOptionsPageRoutingModule } from './despachos-options-routing.module';
import { DespachosOptionsPage } from './despachos-options.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
DespachosOptionsPageRoutingModule
],
declarations: [DespachosOptionsPage]
})
export class DespachosOptionsPageModule {}
@@ -0,0 +1,26 @@
<ion-content class="container">
<div class="arrow-right" (click)="close()">
<button class="btn-no-color">
<ion-icon slot="end" class="arrow-right-icon" src='assets/images/icons-arrow-arrow-right.svg'></ion-icon>
</button>
</div>
<div class="buttons" *ngIf="task.activityInstanceName == 'Tarefa de Despacho'">
<button (click)="openAddNoteModal('Executado')" class="btn-cancel" shape="round" >Executado</button>
<button (click)="openDelegarModal(task)" class="btn-cancel" shape="round" >Delegar</button>
<button (click)="openAddNoteModal('Gerar Diploma')" class="btn-cancel" shape="round" >Gerar Diploma </button>
<div class="solid"></div>
<button (click)="openExpedientActionsModal('0',fulltask)" class="btn-ok" shape="round" >Efectuar Despacho</button>
<button (click)="openExpedientActionsModal('1',fulltask)" class="btn-cancel" shape="round" >Solicitar Parecer</button>
<button (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
<div class="solid"></div>
<button (click)="sendExpedienteToPending()" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
</div>
<div class="buttons" *ngIf="task.activityInstanceName == 'Concluir Despacho'">
<button (click)="openAddNoteModal('Concluido')" class="btn-cancel" shape="round" >Marcar como Concluído</button>
<button (click)="openAddNoteModal('Reexecução')" class="btn-cancel" shape="round" >Enviar para Reexecução</button>
<button (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
<button (click)="sendExpedienteToPending()" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
</div>
</ion-content>
@@ -0,0 +1,56 @@
.container{
--padding-top:20px !important;
--padding-bottom:20px !important;
--padding-start:20px !important;
--padding-end:20px !important;
}
.arrow-right {
display: none;
margin-bottom: 20px;
.arrow-right-icon {
width: 37px;
float: right;
font-size: 35px;
overflow: hidden;
}
}
.buttons {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.solid {
display: none;
width: 90%;
border-top: 1px solid #bbb;
margin: 0 auto !important;
}
.btn-ok, .btn-cancel{
//width: 50% !important;
margin-bottom: 5px !important;
margin-top: 5px !important;
}
@media only screen and (max-width: 800px) {
.btn-ok, .btn-cancel, .btn-delete{
width: 47% !important;
}
}
@media only screen and (min-width: 1024px) {
.arrow-right{
display: flex;
justify-content: flex-end;
}
.btn-cancel{
display: none;
width: 100% !important;
margin-bottom: 10px !important;
}
.btn-delete, .btn-ok{
width: 100% !important;
margin-bottom: 10px !important;
margin-top: 10px !important;
}
/* .solid{
display: block;
} */
}
@@ -0,0 +1,24 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { DespachosOptionsPage } from './despachos-options.page';
describe('DespachosOptionsPage', () => {
let component: DespachosOptionsPage;
let fixture: ComponentFixture<DespachosOptionsPage>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ DespachosOptionsPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(DespachosOptionsPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,351 @@
import { Component, OnInit } from '@angular/core';
import { ProcessesService } from 'src/app/services/processes.service';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { EventsService } from 'src/app/services/events.service';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
import { formatDate } from '@angular/common';
import { MenuController, ModalController, PopoverController } from '@ionic/angular';
import { AlertService } from 'src/app/services/alert.service';
import { ViewEventPage } from 'src/app/pages/agenda/view-event/view-event.page';
import { momentG } from 'src/plugin/momentG'
import { CreateProcessPage } from 'src/app/modals/create-process/create-process.page';
import { DelegarPage } from 'src/app/modals/delegar/delegar.page';
import { AddNotePage } from 'src/app/modals/add-note/add-note.page';
import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page';
import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component';
import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component';
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
@Component({
selector: 'app-despachos-options',
templateUrl: './despachos-options.page.html',
styleUrls: ['./despachos-options.page.scss'],
})
export class DespachosOptionsPage implements OnInit {
task: any;
fulltask: any;
serialnumber: string;
profile: string
constructor(private activateRoute: ActivatedRoute,
private processes: ProcessesService,
private iab: InAppBrowser,
private attachmentsService: AttachmentsService,
private events: EventsService,
private menu: MenuController,
private router: Router,
private modalController: ModalController,
private alertService: AlertService,
public popoverController: PopoverController,
private activatedRoute: ActivatedRoute) { }
ngOnInit() {
this.profile = "mdgpr";
this.activatedRoute.queryParams.subscribe(params => {
if(params["serialNumber"]) {
this.serialnumber = params["serialNumber"];
console.log(params["serialNumber"]);
}
});
}
close () {
this.goBack()
}
async openExpedientActionsModal(taskAction: any, task: any) {
//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: CreateProcessPage,
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();
}
});
}
sendExpedienteToPending(){
this.processes.SetTaskToPending(this.serialnumber).subscribe(res=>{
console.log(res);
this.close();
});
}
async distartExpedientModal(){
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 openBookMeetingModal(task: any) {
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 openDelegarModal(task: any) {
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();
}
async generateDiploma(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Reencaminhar",
"ActionTypeId": 99999839,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.successMessage()
this.close();
} catch (error) {
this.badRequest()
}
}
async openAddNoteModal(actionName:string) {
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 => {
console.log(res);
if(res.data){
const DocumentToSave = res.data.documents.map((e) => {
return {
ApplicationId: e.ApplicationType,
SourceId: e.Id,
}
});
let docs = {
ProcessInstanceID: "",
Attachments: DocumentToSave,
}
if(actionName == 'Executado'){
this.executado(res.data.note, docs);
}
else if(actionName == 'Arquivar'){
this.arquivar(res.data.note, docs);
}
else if(actionName == 'Gerar Diploma'){
this.generateDiploma(res.data.note, docs);
}
else if(actionName == 'Concluido'){
//this.concluir(res.data.note, docs);
}
else if(actionName == 'Reexecução'){
this.reexecutar(res.data.note, docs);
}
this.goBack();
}
});
}
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);
this.successMessage()
this.close();
} catch (error) {
this.badRequest()
}
}
async executado(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Conhecimento",
"ActionTypeId": 104,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.close();
this.successMessage()
} catch(error) {
this.badRequest()
}
}
async successMessage(message?: string) {
const modal = await this.modalController.create({
component: SuccessMessageComponent,
componentProps: {
message: message || 'Processo efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
async badRequest(message?: string) {
const modal = await this.modalController.create({
component: BadRequestComponent,
componentProps: {
message: message || 'Processo não efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
async reexecutar(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Reexecutar",
"ActionTypeId": 100000010,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.successMessage()
this.close();
} catch (error) {
this.badRequest()
}
}
goBack() {
// let navigationExtras: NavigationExtras = {
// queryParams: {
// "despachospr": true,
// }
// };
// this.router.navigate(['/home/gabinete-digital'], navigationExtras);
window.history.back()
}
}
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DespachosPrOptionsPage } from './despachos-pr-options.page';
const routes: Routes = [
{
path: '',
component: DespachosPrOptionsPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class DespachosPrOptionsPageRoutingModule {}
@@ -0,0 +1,20 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { DespachosPrOptionsPageRoutingModule } from './despachos-pr-options-routing.module';
import { DespachosPrOptionsPage } from './despachos-pr-options.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
DespachosPrOptionsPageRoutingModule
],
declarations: [DespachosPrOptionsPage]
})
export class DespachosPrOptionsPageModule {}
@@ -0,0 +1,26 @@
<ion-content class="container">
<div class="arrow-right" (click)="close()">
<button class="btn-no-color">
<ion-icon slot="end" class="arrow-right-icon" src='assets/images/icons-arrow-arrow-right.svg'></ion-icon>
</button>
</div>
<div class="buttons" *ngIf="task.activityInstanceName == 'Tarefa de Despacho'">
<button (click)="openAddNoteModal('Executado')" class="btn-cancel" shape="round" >Executado</button>
<button (click)="openDelegarModal(task)" class="btn-cancel" shape="round" >Delegar</button>
<button (click)="openAddNoteModal('Gerar Diploma')" class="btn-cancel" shape="round" >Gerar Diploma </button>
<div class="solid"></div>
<button (click)="openExpedientActionsModal('0',fulltask)" class="btn-ok" shape="round" >Efectuar Despacho</button>
<button (click)="openExpedientActionsModal('1',fulltask)" class="btn-cancel" shape="round" >Solicitar Parecer</button>
<button (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
<div class="solid"></div>
<button (click)="sendExpedienteToPending()" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
</div>
<div class="buttons" *ngIf="task.activityInstanceName == 'Concluir Despacho'">
<button (click)="openAddNoteModal('Concluido')" class="btn-cancel" shape="round" >Marcar como Concluído</button>
<button (click)="openAddNoteModal('Reexecução')" class="btn-cancel" shape="round" >Enviar para Reexecução</button>
<button (click)="openBookMeetingModal(task)" class="btn-cancel" shape="round" >Marcar Reunião</button>
<button (click)="sendExpedienteToPending()" class="btn-cancel" shape="round" >Enviar para Pendentes</button>
</div>
</ion-content>
@@ -0,0 +1,56 @@
.container{
--padding-top:20px !important;
--padding-bottom:20px !important;
--padding-start:20px !important;
--padding-end:20px !important;
}
.arrow-right {
display: none;
margin-bottom: 20px;
.arrow-right-icon {
width: 37px;
float: right;
font-size: 35px;
overflow: hidden;
}
}
.buttons {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.solid {
display: none;
width: 90%;
border-top: 1px solid #bbb;
margin: 0 auto !important;
}
.btn-ok, .btn-cancel{
//width: 50% !important;
margin-bottom: 5px !important;
margin-top: 5px !important;
}
@media only screen and (max-width: 800px) {
.btn-ok, .btn-cancel, .btn-delete{
width: 47% !important;
}
}
@media only screen and (min-width: 1024px) {
.arrow-right{
display: flex;
justify-content: flex-end;
}
.btn-cancel{
display: none;
width: 100% !important;
margin-bottom: 10px !important;
}
.btn-delete, .btn-ok{
width: 100% !important;
margin-bottom: 10px !important;
margin-top: 10px !important;
}
/* .solid{
display: block;
} */
}
@@ -0,0 +1,24 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { DespachosPrOptionsPage } from './despachos-pr-options.page';
describe('DespachosPrOptionsPage', () => {
let component: DespachosPrOptionsPage;
let fixture: ComponentFixture<DespachosPrOptionsPage>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ DespachosPrOptionsPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(DespachosPrOptionsPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,353 @@
import { Component, OnInit } from '@angular/core';
import { ProcessesService } from 'src/app/services/processes.service';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { EventsService } from 'src/app/services/events.service';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
import { formatDate } from '@angular/common';
import { MenuController, ModalController, PopoverController } from '@ionic/angular';
import { AlertService } from 'src/app/services/alert.service';
import { ViewEventPage } from 'src/app/pages/agenda/view-event/view-event.page';
import { momentG } from 'src/plugin/momentG'
import { CreateProcessPage } from 'src/app/modals/create-process/create-process.page';
import { DelegarPage } from 'src/app/modals/delegar/delegar.page';
import { AddNotePage } from 'src/app/modals/add-note/add-note.page';
import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page';
import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component';
import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component';
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
@Component({
selector: 'app-despachos-pr-options',
templateUrl: './despachos-pr-options.page.html',
styleUrls: ['./despachos-pr-options.page.scss'],
})
export class DespachosPrOptionsPage implements OnInit {
task: any;
fulltask: any;
serialnumber: string;
profile: string
constructor(private activateRoute: ActivatedRoute,
private processes: ProcessesService,
private iab: InAppBrowser,
private attachmentsService: AttachmentsService,
private events: EventsService,
private menu: MenuController,
private router: Router,
private modalController: ModalController,
private alertService: AlertService,
public popoverController: PopoverController,
private activatedRoute: ActivatedRoute) { }
ngOnInit() {
this.profile = "mdgpr";
this.activatedRoute.queryParams.subscribe(params => {
if(params["serialNumber"]) {
this.serialnumber = params["serialNumber"];
console.log(params["serialNumber"]);
}
});
}
close () {
this.goBack()
}
async openExpedientActionsModal(taskAction: any, task: any) {
//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: CreateProcessPage,
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();
}
});
}
sendExpedienteToPending(){
this.processes.SetTaskToPending(this.serialnumber).subscribe(res=>{
console.log(res);
this.close();
});
}
async distartExpedientModal(){
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 openBookMeetingModal(task: any) {
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 openDelegarModal(task: any) {
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();
}
async generateDiploma(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Reencaminhar",
"ActionTypeId": 99999839,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.successMessage()
this.close();
} catch (error) {
this.badRequest()
}
}
async openAddNoteModal(actionName:string) {
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 => {
console.log(res);
if(res.data){
const DocumentToSave = res.data.documents.map((e) => {
return {
ApplicationId: e.ApplicationType,
SourceId: e.Id,
}
});
let docs = {
ProcessInstanceID: "",
Attachments: DocumentToSave,
}
if(actionName == 'Executado'){
this.executado(res.data.note, docs);
}
else if(actionName == 'Arquivar'){
this.arquivar(res.data.note, docs);
}
else if(actionName == 'Gerar Diploma'){
this.generateDiploma(res.data.note, docs);
}
else if(actionName == 'Concluido'){
//this.concluir(res.data.note, docs);
}
else if(actionName == 'Reexecução'){
this.reexecutar(res.data.note, docs);
}
this.goBack();
}
});
}
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);
this.successMessage()
this.close();
} catch (error) {
this.badRequest()
}
}
async executado(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Conhecimento",
"ActionTypeId": 104,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.close();
this.successMessage()
} catch(error) {
this.badRequest()
}
}
async successMessage(message?: string) {
const modal = await this.modalController.create({
component: SuccessMessageComponent,
componentProps: {
message: message || 'Processo efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
async badRequest(message?: string) {
const modal = await this.modalController.create({
component: BadRequestComponent,
componentProps: {
message: message || 'Processo não efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
async reexecutar(note:string, documents:any){
let body = {
"serialNumber": this.serialnumber,
"action": "Reexecutar",
"ActionTypeId": 100000010,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
try {
await this.processes.CompleteTask(body);
this.successMessage()
this.close();
} catch (error) {
this.badRequest()
}
}
goBack() {
// let navigationExtras: NavigationExtras = {
// queryParams: {
// "despachospr": true,
// }
// };
// this.router.navigate(['/home/gabinete-digital'], navigationExtras);
window.history.back()
}
}
@@ -52,7 +52,7 @@ export class OptsExpedientePage implements OnInit {
} }
} }
sendExpedienteToPending(){ sendExpedienteToPending() {
this.processes.SetTaskToPending(this.task.SerialNumber).subscribe(res=>{ this.processes.SetTaskToPending(this.task.SerialNumber).subscribe(res=>{
console.log(res); console.log(res);
this.close(); this.close();