diff --git a/src/app/pages/gabinete-digital/despachos/despachos.module.ts b/src/app/pages/gabinete-digital/despachos/despachos.module.ts index 848f0659a..08100c869 100644 --- a/src/app/pages/gabinete-digital/despachos/despachos.module.ts +++ b/src/app/pages/gabinete-digital/despachos/despachos.module.ts @@ -7,12 +7,14 @@ import { IonicModule } from '@ionic/angular'; import { DespachosPageRoutingModule } from './despachos-routing.module'; import { DespachosPage } from './despachos.page'; +import { SharedModule } from 'src/app/shared/shared.module'; @NgModule({ imports: [ CommonModule, FormsModule, IonicModule, + SharedModule, DespachosPageRoutingModule ], declarations: [DespachosPage] diff --git a/src/app/pages/gabinete-digital/despachos/despachos.page.html b/src/app/pages/gabinete-digital/despachos/despachos.page.html index 5eefd8728..31b2da96e 100644 --- a/src/app/pages/gabinete-digital/despachos/despachos.page.html +++ b/src/app/pages/gabinete-digital/despachos/despachos.page.html @@ -1,9 +1,83 @@ - - - despachos - + + +
+
Despachos
+
+ +
+
- + + + + + +
+
+ + + +
+
+
+ {{ task.CreateDate | date: 'dd-MM-yy' }} +
+
+ {{task.Senders}} +
+
+ + + +
+
+
+ {{ task.Folio }} +
+
+
+
+ +
+
+
+ + + + + + + +

+

+

+
+
+ + + + + +

+

+

+
+
+
+
+ diff --git a/src/app/pages/gabinete-digital/despachos/despachos.page.scss b/src/app/pages/gabinete-digital/despachos/despachos.page.scss index e69de29bb..e624d0744 100644 --- a/src/app/pages/gabinete-digital/despachos/despachos.page.scss +++ b/src/app/pages/gabinete-digital/despachos/despachos.page.scss @@ -0,0 +1,177 @@ +@import '~src/function.scss'; +/* CONTENT */ +:host{ + padding: 30px 20px 0 20px !important; + margin: 0; +} +.title{ + font-family: Roboto; + font-size: 25px; + color:#000; + overflow: auto; + + .thetitle{ + width: fit-content; + float: left; + } + .theicon{ + width: fit-content; + float: right; + } + } +.item-list-small{ + font-size: 11px; + overflow: hidden; + } + .ion-item-class{ + padding: 0; + + } + .label-text{ + width: 100%; + padding: 0; + margin: 0; + } +//DIV +ion-item{ + --background: none; +} +.item { + //border-radius: 15px; + //box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07); + //Sborder: solid 1px #e9e9e9; + background-color: var(--white); + margin: 0 auto; + //padding: 10px; + margin-bottom: 10px; + overflow: hidden; + } +.div-content-expediente{ + width: 100%; + float: left; + border-left: 3px solid #dae3f3; + padding:5px 5px 15px 5px; + margin: 10px 0 10px 0; + background: #dae3f3; + border-radius: 20px; +} +.div-content-pendentes{ + width: 100%; + float: left; + border-left: 3px solid #d9d9d9; + padding: 5px; +} + .div-content-expediente h3, .div-content-pendentes h3{ + margin: 0; + padding: 0; + font-size: 14pt; + width: 100%; + } + .div-icon{ + width: 10%; + font-size: 20px; + float: left; + color: #808080; + } + .div-icon ion-icon{ + display: block; + margin: 0 auto; + + } + .div-content-expediente p, .div-content-pendentes p{ + font-size: 14pt; + color: rgb(94, 92, 92); + padding: 0; + margin: 0; + } + .span-left{ + /* border: 1px solid red; */ + float: left; + font-size: 12px; + padding-left: 18px; + } + .span-right{ + /* border: 1px solid blue; */ + text-align: right; + float: right; + font-size: 12px; + padding-right: 18px; +} + +/* New CSS */ +.expediente{ + padding-top: 10px; +} +.exp-list-item{ + //width: 368px; + overflow: auto; + /* border-bottom: 1px solid gray; */ + margin: 10px auto; +} +.exp-top-detail{ + width: 100%; + overflow: auto; +} +.exp-date{ + width: auto; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: #797979; + float: left; +} +.exp-remetente{ + //width: 200px; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + color: #000000; + float: left; + margin-left: 16px; + +} +.exp-icon{ + width: 45px; + float: right; + font-size: 13px; +} +.exp-icon ion-icon{ + font-size: 25px; + color: #42b9fe; +} +.exp-bottom-detail{ + float: left; + font-family: Roboto; + font-size: 16px; + font-weight: 700; + color: #0d89d1; +} +.div-top-header{ + width: 400px; + margin: 6px auto; + background-color: #0782c9; + overflow: auto; +} +.div-search{ + font-size: 45px; + float: left; + margin: 0 0 0 10px +} +.div-logo{ + background: transparent; + width: 150px; + margin: 2.5px 0 2.5px 71px; + float: left; +} +.div-logo img{ + width: 100%; +} +.div-profile{ + font-size: 45px; + float: right; + margin-right: 10px; +} \ No newline at end of file diff --git a/src/app/pages/gabinete-digital/despachos/despachos.page.ts b/src/app/pages/gabinete-digital/despachos/despachos.page.ts index cbde3cae7..92814918c 100644 --- a/src/app/pages/gabinete-digital/despachos/despachos.page.ts +++ b/src/app/pages/gabinete-digital/despachos/despachos.page.ts @@ -1,4 +1,19 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; +import { CalendarComponent } from 'ionic2-calendar'; + +import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model'; +import { ProcessesService } from 'src/app/services/processes.service'; +import { formatDate } from '@angular/common'; +import { ModalController } from '@ionic/angular'; +import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page'; +import { AlertService } from 'src/app/services/alert.service'; + +import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page'; +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'; + +import { AuthService } from 'src/app/services/auth.service'; +import { DespachoPage } from 'src/app/pages/gabinete-digital/despachos/despacho/despacho.page'; @Component({ selector: 'app-despachos', @@ -6,10 +21,252 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./despachos.page.scss'], }) export class DespachosPage implements OnInit { +//profile:string; - constructor() { } +@ViewChild(CalendarComponent) myCal: CalendarComponent; - ngOnInit() { +taskslist:DailyWorkTask[]; +despachoList:DailyWorkTask[] = []; +deferimentoList:DailyWorkTask[] = []; + +taskList:tasksList[] = []; + +taskType: string; +serialNumber:string; +totalDocs:any; + +@Input() profile:string; +segment:string; +@Output() openExpedientDetail:EventEmitter = new EventEmitter(); + +loadedAttachments:any; +dicIndex = 0; +inicial = false + +constructor ( + private processes:ProcessesService, + private modalController: ModalController, + private alertService: AlertService, + private authService: AuthService, + ) { + this.profile = 'mdgpr'; } +ngOnInit() { + //Inicializar segment + this.segment = "despachos"; + this.LoadList(); + this.authService.userData$.subscribe((res:any)=>{ + console.log(res); + }); +} +segmentChanged(ev: any) { + this.LoadList(); +} + +notImplemented(){ + this.alertService.presentAlert('Funcionalidade em desenvolvimento'); +} + +openExpedientDetailPage(data){ + console.log(data); + this.openExpedientDetail.emit(data); +} + + async LoadList(){ + + + let result = await this.processes.GetTasksList("Despacho", false).toPromise(); + + console.log(result); + + this.despachoList = new Array(); + + await result.forEach( (element, index) => { + + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.workflowInstanceDataFields.Sender, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": '', + "DocId": element.workflowInstanceDataFields.DocId, + "WorkflowName": element.workflowDisplayName, + "FolderID": element.workflowInstanceDataFields.FolderID + } + + this.despachoList.push(task) + + }); + + this.despachoList = this.sortArrayISODate(this.despachoList).reverse() + + this.despachoList.forEach( (element, index) => { + // let aplicationId = element.workflowInstanceDataFields.SourceSecFsID; + let FolderID = element['FolderID']; + + this.processes.GetDocumentDetails(FolderID, '361').subscribe(res=>{ + element.DocumentsQty = res.DocumentsTotal + }) + + }); + + } + + sortArrayISODate(myArray: any){ + return myArray.sort(function(a, b) { + return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0); + }); + } + +doRefresh(event) { + this.LoadList(); + + setTimeout(() => { + event.target.complete(); + }, 2000); +} + +async viewExpedientDetail(serialNumber:any) { + console.log(this.profile); + + let classs; + if( window.innerWidth <= 800){ + classs = 'modal' + } else { + classs = 'modal modal-desktop' + } + + const modal = await this.modalController.create({ + component: DespachoPage, + componentProps:{ + enterAnimation: "", + serialNumber: serialNumber, + profile: this.profile, + }, + cssClass: classs, + }); + await modal.present(); + modal.onDidDismiss().then((res)=>{ + console.log('refresh list'); + this.LoadList(); + }); +} + + // old + 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 doc = this.loadedAttachments[ this.dicIndex]; + + task = { + serialNumber: doc.SourceId, + taskStartDate: doc.CreateDate, + isEvent: true, + workflowInstanceDataFields: { + FsId: doc.ApplicationId, + FolderID: null, + DocId: doc.SourceId, + Subject: doc.SourceName + }, + } + + 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 openBookMeetingModal(task: any) { + + const doc = this.loadedAttachments[ this.dicIndex]; + + task = { + serialNumber: doc.SourceId, + taskStartDate: doc.CreateDate, + isEvent: true, + workflowInstanceDataFields: { + FsId: doc.ApplicationId, + FolderID: null, + DocId: doc.SourceId, + Subject: doc.SourceName + }, + } + + 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: task, + }, + cssClass: classs, + backdropDismiss: false + }); + await modal.present(); + modal.onDidDismiss(); + } + + + async distartExpedientModal() { + + const doc = this.taskList[ this.dicIndex]; + + console.log(doc, this.dicIndex, this.taskList) + + const modal = await this.modalController.create({ + component: DiscartExpedientModalPage, + componentProps: { + serialNumber: doc.serialNumber, + folderId: doc.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(); */ + } + + }); + } + + docIndex(index: number) { + this.dicIndex = index; + } + } diff --git a/src/app/pages/gabinete-digital/expediente/expediente.page.html b/src/app/pages/gabinete-digital/expediente/expediente.page.html index cf321bb06..27b5ec6b8 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente.page.html +++ b/src/app/pages/gabinete-digital/expediente/expediente.page.html @@ -4,9 +4,9 @@ CorrespondĂȘncia - - - Expediente + + + Expedientes Pendentes @@ -25,7 +25,7 @@
- + - - - - + + +
+
+
+ {{ task.CreateDate | date: 'dd-MM-yy' }} +
+
+ {{task.Remetente}} +
+
+ + +
+
+
+ {{ task.Folio }} +
+
+
diff --git a/src/app/pages/gabinete-digital/expediente/expediente.page.ts b/src/app/pages/gabinete-digital/expediente/expediente.page.ts index c07c0ed9c..e830759b9 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente.page.ts +++ b/src/app/pages/gabinete-digital/expediente/expediente.page.ts @@ -34,32 +34,60 @@ export class ExpedientePage implements OnInit { ngOnInit() { //Inicializar segment - this.segment = "expediente"; + this.segment = "expedientes"; + this.LoadList(); + } + + segmentChanged(){ + console.log(this.segment); this.LoadList(); } LoadList(){ - console.log('YEAHHH'); - - this.processes.GetTasksList("Expediente", false).subscribe(result => { - let tasksListReverse = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active"); - this.taskslist = new Array(); - tasksListReverse.forEach(element => { - let task: DailyWorkTask = { - "SerialNumber": element.serialNumber, - "Folio": element.workflowInstanceDataFields.Subject, - "Senders": element.originator.email, - "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), - "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, - "Remetente": element.workflowInstanceDataFields.Remetente, - "DocumentsQty": 0, - "WorkflowName": element.workflowDisplayName, - } - this.taskslist.push(task); - }); - console.log(this.taskslist); - - }); + switch(this.segment){ + case "expedientes": + this.processes.GetTasksList("Expediente", false).subscribe(result => { + console.log(result); + this.taskslist = new Array(); + let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active"); + res.forEach(element => { + let task: DailyWorkTask = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.originator.email, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": 0, + "WorkflowName": element.workflowDisplayName, + } + this.taskslist.push(task); + }); + console.log(this.taskslist); + }); + break; + case "pendentes": + this.processes.GetTasksList("Expediente", false).subscribe(result => { + console.log(result); + this.taskslist = new Array(); + let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Pending"); + res.forEach(element => { + let task: DailyWorkTask = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.originator.email, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": 0, + "WorkflowName": element.workflowDisplayName, + } + this.taskslist.push(task); + }); + console.log(this.taskslist); + }); + break; + } } doRefresh(event) { diff --git a/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts b/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts index 3f616043e..1d487afda 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts @@ -27,6 +27,10 @@ const routes: Routes = [ path: 'pedidos', loadChildren: () => import('./pedidos/pedidos.module').then( m => m.PedidosPageModule) }, + { + path: 'pendentes', + loadChildren: () => import('./pendentes/pendentes.module').then( m => m.PendentesPageModule) + }, ]; diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index c0da35b72..99eb9ac8f 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -5,6 +5,9 @@ import { ModalController } from '@ionic/angular'; import { EventListPage } from './event-list/event-list.page'; import { ExpedientePage } from './expediente/expediente.page'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; +import { DespachosPage } from './despachos/despachos.page'; +import { PedidosPage } from './pedidos/pedidos.page'; +import { PendentesPage } from './pendentes/pendentes.page'; @Component({ selector: 'app-gabinete-digital', @@ -181,6 +184,13 @@ export class GabineteDigitalPage implements OnInit { this.alertService.presentAlert('Funcionalidade em desenvolvimento'); } + selectedElementF(element:string) { + if (window.innerWidth >= 800) { + return element == this.selectedElement + } + return false; + } + openEventsToApprovePage(profile:any){ console.log(profile); @@ -239,7 +249,7 @@ export class GabineteDigitalPage implements OnInit { openPedidosPage(segment:string){ this.closeAllDesktopComponents(); if( window.innerWidth <= 1024){ - this.openExpedientList(); + this.openPedidoList(); } else{ this.segment = segment; @@ -250,7 +260,7 @@ export class GabineteDigitalPage implements OnInit { openDespachosPage(segment:string){ this.closeAllDesktopComponents(); if( window.innerWidth <= 1024){ - this.openExpedientList(); + this.openDespachoList(); } else{ this.showDespachos = true; @@ -260,7 +270,7 @@ export class GabineteDigitalPage implements OnInit { openPendentesPage(segment:string){ this.closeAllDesktopComponents(); if( window.innerWidth <= 1024){ - this.openExpedientList(); + this.openPendenteList(); } else{ this.showPendentes = true; @@ -268,9 +278,7 @@ export class GabineteDigitalPage implements OnInit { } async openExpedientList(){ - this.closeAllDesktopComponent(); - //if( window.innerWidth <= 1024){ const modal = await this.modalController.create({ component: ExpedientePage, @@ -286,14 +294,50 @@ export class GabineteDigitalPage implements OnInit { console.log('show desktop modal') //this.desktopComponent.showExpediente = true; //} - } - selectedElementF(element:string) { - if (window.innerWidth >= 800) { - return element == this.selectedElement - } - return false; + async openPendenteList(){ + this.closeAllDesktopComponent(); + const modal = await this.modalController.create({ + component: PendentesPage, + componentProps:{ + profile: this.profile, + }, + cssClass: 'modal modal-desktop', + }); + await modal.present(); + modal.onDidDismiss(); + console.log('show desktop modal') } + async openDespachoList(){ + this.closeAllDesktopComponent(); + const modal = await this.modalController.create({ + component: DespachosPage, + componentProps:{ + profile: this.profile, + }, + cssClass: 'modal modal-desktop', + }); + await modal.present(); + modal.onDidDismiss(); + console.log('show desktop modal') + } + + async openPedidoList(){ + this.closeAllDesktopComponent(); + const modal = await this.modalController.create({ + component: PedidosPage, + componentProps:{ + profile: this.profile, + }, + cssClass: 'modal modal-desktop', + }); + await modal.present(); + modal.onDidDismiss(); + console.log('show desktop modal') + } + + + } diff --git a/src/app/pages/gabinete-digital/pedidos/pedidos.module.ts b/src/app/pages/gabinete-digital/pedidos/pedidos.module.ts index bd2b3de89..0f89f0786 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedidos.module.ts +++ b/src/app/pages/gabinete-digital/pedidos/pedidos.module.ts @@ -7,12 +7,14 @@ import { IonicModule } from '@ionic/angular'; import { PedidosPageRoutingModule } from './pedidos-routing.module'; import { PedidosPage } from './pedidos.page'; +import { SharedModule } from 'src/app/shared/shared.module'; @NgModule({ imports: [ CommonModule, FormsModule, IonicModule, + SharedModule, PedidosPageRoutingModule ], declarations: [PedidosPage] diff --git a/src/app/pages/gabinete-digital/pedidos/pedidos.page.html b/src/app/pages/gabinete-digital/pedidos/pedidos.page.html index 8455c6462..aad9727ce 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedidos.page.html +++ b/src/app/pages/gabinete-digital/pedidos/pedidos.page.html @@ -1,9 +1,122 @@ - + + +
+
Pedidos
+
+ +
+
- pedidos + + + Pedidos de Parecer + + + Pedidos de Defereimento + +
- + + + + + +
+
+ + + + + +
+
+
+ {{ task.CreateDate | date: 'dd-MM-yy' }} +
+
+ {{task.Remetente}} +
+
+ + +
+
+
+ {{ task.Folio }} +
+
+
+
+
+
+ + + + +
+
+
+ {{ task.CreateDate | date: 'dd-MM-yy' }} +
+
+ {{task.Remetente}} +
+
+ + + +
+
+
+ {{ task.Folio }} +
+
+
+
+
+
+
+ + + + + + + +

+

+

+
+
+ + + + + +

+

+

+
+
+
+
+ diff --git a/src/app/pages/gabinete-digital/pedidos/pedidos.page.scss b/src/app/pages/gabinete-digital/pedidos/pedidos.page.scss index e69de29bb..e624d0744 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedidos.page.scss +++ b/src/app/pages/gabinete-digital/pedidos/pedidos.page.scss @@ -0,0 +1,177 @@ +@import '~src/function.scss'; +/* CONTENT */ +:host{ + padding: 30px 20px 0 20px !important; + margin: 0; +} +.title{ + font-family: Roboto; + font-size: 25px; + color:#000; + overflow: auto; + + .thetitle{ + width: fit-content; + float: left; + } + .theicon{ + width: fit-content; + float: right; + } + } +.item-list-small{ + font-size: 11px; + overflow: hidden; + } + .ion-item-class{ + padding: 0; + + } + .label-text{ + width: 100%; + padding: 0; + margin: 0; + } +//DIV +ion-item{ + --background: none; +} +.item { + //border-radius: 15px; + //box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07); + //Sborder: solid 1px #e9e9e9; + background-color: var(--white); + margin: 0 auto; + //padding: 10px; + margin-bottom: 10px; + overflow: hidden; + } +.div-content-expediente{ + width: 100%; + float: left; + border-left: 3px solid #dae3f3; + padding:5px 5px 15px 5px; + margin: 10px 0 10px 0; + background: #dae3f3; + border-radius: 20px; +} +.div-content-pendentes{ + width: 100%; + float: left; + border-left: 3px solid #d9d9d9; + padding: 5px; +} + .div-content-expediente h3, .div-content-pendentes h3{ + margin: 0; + padding: 0; + font-size: 14pt; + width: 100%; + } + .div-icon{ + width: 10%; + font-size: 20px; + float: left; + color: #808080; + } + .div-icon ion-icon{ + display: block; + margin: 0 auto; + + } + .div-content-expediente p, .div-content-pendentes p{ + font-size: 14pt; + color: rgb(94, 92, 92); + padding: 0; + margin: 0; + } + .span-left{ + /* border: 1px solid red; */ + float: left; + font-size: 12px; + padding-left: 18px; + } + .span-right{ + /* border: 1px solid blue; */ + text-align: right; + float: right; + font-size: 12px; + padding-right: 18px; +} + +/* New CSS */ +.expediente{ + padding-top: 10px; +} +.exp-list-item{ + //width: 368px; + overflow: auto; + /* border-bottom: 1px solid gray; */ + margin: 10px auto; +} +.exp-top-detail{ + width: 100%; + overflow: auto; +} +.exp-date{ + width: auto; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: #797979; + float: left; +} +.exp-remetente{ + //width: 200px; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + color: #000000; + float: left; + margin-left: 16px; + +} +.exp-icon{ + width: 45px; + float: right; + font-size: 13px; +} +.exp-icon ion-icon{ + font-size: 25px; + color: #42b9fe; +} +.exp-bottom-detail{ + float: left; + font-family: Roboto; + font-size: 16px; + font-weight: 700; + color: #0d89d1; +} +.div-top-header{ + width: 400px; + margin: 6px auto; + background-color: #0782c9; + overflow: auto; +} +.div-search{ + font-size: 45px; + float: left; + margin: 0 0 0 10px +} +.div-logo{ + background: transparent; + width: 150px; + margin: 2.5px 0 2.5px 71px; + float: left; +} +.div-logo img{ + width: 100%; +} +.div-profile{ + font-size: 45px; + float: right; + margin-right: 10px; +} \ No newline at end of file diff --git a/src/app/pages/gabinete-digital/pedidos/pedidos.page.ts b/src/app/pages/gabinete-digital/pedidos/pedidos.page.ts index bfb036bfd..4c25c51c9 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedidos.page.ts +++ b/src/app/pages/gabinete-digital/pedidos/pedidos.page.ts @@ -1,4 +1,15 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { CalendarComponent } from 'ionic2-calendar'; + +import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model'; +import { ProcessesService } from 'src/app/services/processes.service'; +import { formatDate } from '@angular/common'; +import { LoadingService } from 'src/app/services/loading.service'; +import { ModalController, NavParams } from '@ionic/angular'; +import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page'; +import { AlertService } from 'src/app/services/alert.service'; +import { PedidoPage } from 'src/app/pages/gabinete-digital/pedidos/pedido/pedido.page'; @Component({ selector: 'app-pedidos', @@ -6,10 +17,141 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./pedidos.page.scss'], }) export class PedidosPage implements OnInit { + //profile:string; - constructor() { } + @ViewChild(CalendarComponent) myCal: CalendarComponent; + + taskslist:DailyWorkTask[]; + parecerList:DailyWorkTask[]; + fulltask:any; + + parecerListResult:tasksList[] = []; + deferimentoListResult:tasksList[] = []; + + deferimentoList:DailyWorkTask[]; + taskType: string; + serialNumber:string; + + @Input() profile:string; + @Input() segment:string; + @Output() openExpedientDetail:EventEmitter = new EventEmitter(); + + constructor( + private processes:ProcessesService, + private modalController: ModalController, + private alertService: AlertService, + ) { + this.profile = 'mdgpr'; + } + + ngOnInit() { + //Inicializar segment + this.LoadList(); + } + segmentChanged(ev: any) { + this.LoadList(); + } + + notImplemented(){ + this.alertService.presentAlert('Funcionalidade em desenvolvimento'); + } + + openExpedientDetailPage(data){ + console.log(data); + this.openExpedientDetail.emit(data); + } + + LoadList(){ + if(this.segment == 'parecer'){ + this.taskType = "Pedido de Parecer"; + this.processes.GetTasksList("Pedido de Parecer", false).subscribe(result => { + this.taskslist = result; + console.log(result); + + this.parecerList = new Array(); + let res = result.reverse(); + res.forEach(element => { + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.originator.email, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": 0, + "DocId": element.workflowInstanceDataFields.DocIdDiferimento, + "WorkflowName": element.workflowDisplayName, + } + this.parecerList.push(task); + }); + console.log(this.parecerList); + + }); + } + else if(this.segment == 'deferimento'){ + this.taskType = "Pedido de Deferimento"; + this.processes.GetTasksList("Pedido de Deferimento", false).subscribe(result => { + this.taskslist = result; + + console.log(result); + + this.deferimentoList = new Array(); + let res = result.reverse(); + res.forEach(element => { + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.originator.email, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": 0, + "DocId": element.workflowInstanceDataFields.DocIdDiferimento, + "FolderId": element.workflowInstanceDataFields.FolderId, + "WorkflowName": element.workflowDisplayName, + } + this.deferimentoList.push(task); + }); + console.log(this.deferimentoList); + + }); + } + console.log(this.taskType); + } + + doRefresh(event) { + this.LoadList(); + setTimeout(() => { + event.target.complete(); + }, 2000); + } + + async viewPedidoDetail(serialNumber:any) { + console.log(this.profile); + + let classs; + if( window.innerWidth <= 800){ + classs = 'modal' + } else { + classs = 'modal modal-desktop' + } + + const modal = await this.modalController.create({ + component: PedidoPage, + componentProps:{ + enterAnimation: "", + serialNumber: serialNumber, + profile: this.profile, + }, + cssClass: classs, + }); + await modal.present(); + modal.onDidDismiss().then((res)=>{ + console.log('refresh list'); + this.LoadList(); + }); + } - ngOnInit() { - } } + \ No newline at end of file diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes-routing.module.ts b/src/app/pages/gabinete-digital/pendentes/pendentes-routing.module.ts new file mode 100644 index 000000000..0825107be --- /dev/null +++ b/src/app/pages/gabinete-digital/pendentes/pendentes-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { PendentesPage } from './pendentes.page'; + +const routes: Routes = [ + { + path: '', + component: PendentesPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class PendentesPageRoutingModule {} diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.module.ts b/src/app/pages/gabinete-digital/pendentes/pendentes.module.ts new file mode 100644 index 000000000..c18eff525 --- /dev/null +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { PendentesPageRoutingModule } from './pendentes-routing.module'; + +import { PendentesPage } from './pendentes.page'; +import { SharedModule } from 'src/app/shared/shared.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + SharedModule, + PendentesPageRoutingModule + ], + declarations: [PendentesPage] +}) +export class PendentesPageModule {} diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.html b/src/app/pages/gabinete-digital/pendentes/pendentes.page.html new file mode 100644 index 000000000..ef6818ff2 --- /dev/null +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.html @@ -0,0 +1,82 @@ + + +
+
Pendentes
+
+ +
+
+
+ + + + + + +
+
+ + + +
+
+
+ {{ task.CreateDate | date: 'dd-MM-yy' }} +
+
+ {{task.Senders}} +
+
+ {{task.WorkflowName}} +
+
+ + +
+
+
+ {{ task.Folio }} +
+
+
+
+ +
+
+
+ + + + + + + +

+

+

+
+
+ + + + + +

+

+

+
+
+
+
+
+ diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.scss b/src/app/pages/gabinete-digital/pendentes/pendentes.page.scss new file mode 100644 index 000000000..b56456084 --- /dev/null +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.scss @@ -0,0 +1,191 @@ +@import '~src/function.scss'; +/* CONTENT */ +:host{ + padding: 30px 20px 0 20px !important; + margin: 0; +} +.title{ + font-family: Roboto; + font-size: 25px; + color:#000; + overflow: auto; + + .thetitle{ + width: fit-content; + float: left; + } + .theicon{ + width: fit-content; + float: right; + } + } +.item-list-small{ + font-size: 11px; + overflow: hidden; + } + .ion-item-class{ + padding: 0; + + } + .label-text{ + width: 100%; + padding: 0; + margin: 0; + } +//DIV +ion-item{ + --background: none; +} +.item { + //border-radius: 15px; + //box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07); + //Sborder: solid 1px #e9e9e9; + background-color: var(--white); + margin: 0 auto; + //padding: 10px; + margin-bottom: 10px; + overflow: hidden; + } +.div-content-expediente{ + width: 100%; + float: left; + border-left: 3px solid #dae3f3; + padding:5px 5px 15px 5px; + margin: 10px 0 10px 0; + background: #dae3f3; + border-radius: 20px; +} +.div-content-pendentes{ + width: 100%; + float: left; + border-left: 3px solid #d9d9d9; + padding: 5px; +} + .div-content-expediente h3, .div-content-pendentes h3{ + margin: 0; + padding: 0; + font-size: 14pt; + width: 100%; + } + .div-icon{ + width: 10%; + font-size: 20px; + float: left; + color: #808080; + } + .div-icon ion-icon{ + display: block; + margin: 0 auto; + + } + .div-content-expediente p, .div-content-pendentes p{ + font-size: 14pt; + color: rgb(94, 92, 92); + padding: 0; + margin: 0; + } + .span-left{ + /* border: 1px solid red; */ + float: left; + font-size: 12px; + padding-left: 18px; + } + .span-right{ + /* border: 1px solid blue; */ + text-align: right; + float: right; + font-size: 12px; + padding-right: 18px; +} + +/* New CSS */ +.expediente{ + padding-top: 10px; +} +.exp-list-item{ + //width: 368px; + overflow: auto; + /* border-bottom: 1px solid gray; */ + margin: 10px auto; +} +.exp-top-detail{ + width: 100%; + overflow: auto; + +} +.exp-date{ + width: auto; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: #797979; + float: left; +} +.exp-workflow{ + float: left; + margin-left: 15px; + + .label{ + border-radius: 20px; + background: #ffb703; + font-size: 12px; + float: right; + padding: 2.5px 13.5px 2.5px 13.5px; + color: #fff; +} +} +.exp-remetente{ + //width: 200px; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + color: #000000; + float: left; + margin-left: 16px; + +} +.exp-icon{ + width: 45px; + float: right; + font-size: 13px; +} +.exp-icon ion-icon{ + font-size: 25px; + color: #42b9fe; +} +.exp-bottom-detail{ + float: left; + font-family: Roboto; + font-size: 16px; + font-weight: 700; + color: #0d89d1; +} +.div-top-header{ + width: 400px; + margin: 6px auto; + background-color: #0782c9; + overflow: auto; +} +.div-search{ + font-size: 45px; + float: left; + margin: 0 0 0 10px +} +.div-logo{ + background: transparent; + width: 150px; + margin: 2.5px 0 2.5px 71px; + float: left; +} +.div-logo img{ + width: 100%; +} +.div-profile{ + font-size: 45px; + float: right; + margin-right: 10px; +} \ No newline at end of file diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.spec.ts b/src/app/pages/gabinete-digital/pendentes/pendentes.page.spec.ts new file mode 100644 index 000000000..5ead3b0cf --- /dev/null +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { PendentesPage } from './pendentes.page'; + +describe('PendentesPage', () => { + let component: PendentesPage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ PendentesPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(PendentesPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts new file mode 100644 index 000000000..5816eb6ae --- /dev/null +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts @@ -0,0 +1,177 @@ +import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { CalendarComponent } from 'ionic2-calendar'; + +import { DailyWorkTask } from '../../../models/dailyworktask.model'; +import { ProcessesService } from 'src/app/services/processes.service'; +import { formatDate } from '@angular/common'; +import { ModalController, NavParams } from '@ionic/angular'; +import { AlertService } from 'src/app/services/alert.service'; +import { DespachoPage } from 'src/app/pages/gabinete-digital/despachos/despacho/despacho.page'; +import { AuthService } from 'src/app/services/auth.service'; +import { PedidoPage } from 'src/app/pages/gabinete-digital/pedidos/pedido/pedido.page'; + + +@Component({ + selector: 'app-pendentes', + templateUrl: './pendentes.page.html', + styleUrls: ['./pendentes.page.scss'], +}) +export class PendentesPage implements OnInit { + @ViewChild(CalendarComponent) myCal: CalendarComponent; + + pendentesList:DailyWorkTask[]; + taskType: string; + serialNumber:string; + totalDocs:any; + + @Input() profile:string; + segment:string; + @Output() openExpedientDetail:EventEmitter = new EventEmitter(); + + constructor( + private processes:ProcessesService, + private modalController: ModalController, + private alertService: AlertService, + private authService: AuthService, + ) { + this.profile = 'mdgpr'; + } + + ngOnInit() { + //Inicializar segment + this.segment = "despachos"; + this.LoadList(); + this.authService.userData$.subscribe((res:any)=>{ + console.log(res); + }); + } + segmentChanged(ev: any) { + this.LoadList(); + } + + notImplemented(){ + this.alertService.presentAlert('Funcionalidade em desenvolvimento'); + } + + openExpedientDetailPage(data){ + console.log(data); + this.openExpedientDetail.emit(data); + } + + LoadList(){ + this.processes.GetTasksList("Despacho", false).subscribe(despachos => { + //ParecerList + this.processes.GetTasksList("Pedido de Parecer", false).subscribe(pareceres => { + //DeferimentoList + this.processes.GetTasksList("Pedido de Deferimento", false).subscribe(deferimentos => { + this.pendentesList = new Array(); + //PendentesList + let pendentes = despachos.concat(pareceres, deferimentos).reverse().filter(data => data.workflowInstanceDataFields.Status == "Pending"); + pendentes.forEach(element => { + let DocId = element.workflowInstanceDataFields.FolderID; + this.processes.GetDocumentDetails(DocId, '361').subscribe(res=>{ + this.totalDocs = res.DocumentsTotal; + console.log(res.DocumentsTotal); + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.workflowInstanceDataFields.Sender, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": this.totalDocs, + "DocId": element.workflowInstanceDataFields.DocId, + "WorkflowName": element.workflowDisplayName, + } + this.pendentesList.push(task); + }, + (error)=>{ + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.workflowInstanceDataFields.Sender, + "CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'), + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": 0, + "DocId": element.workflowInstanceDataFields.DocId, + "WorkflowName": element.workflowDisplayName, + } + this.pendentesList.push(task); + }); + }); + console.log(pendentes); + console.log(this.pendentesList); + });//Fim deferimento + });//Fim parecer + });//Fim despacho + } + + doRefresh(event) { + this.LoadList(); + + setTimeout(() => { + //event.target.complete(); + }, 2000); + } + + async viewTaskDetails(serialNumber:string, workflowName:string) { + console.log(this.profile); + if(workflowName == 'Despacho'){ + this.openDespacho(serialNumber); + } + else if(workflowName == 'Pedido de Parecer' || workflowName == 'Pedido de Deferimento'){ + this.openPedido(serialNumber); + } + + } + + async openDespacho(serialNumber:string){ + let classs; + if( window.innerWidth <= 800){ + classs = 'modal' + } else { + classs = 'modal modal-desktop' + } + const modal = await this.modalController.create({ + component: DespachoPage, + componentProps:{ + enterAnimation: "", + serialNumber: serialNumber, + profile: this.profile, + }, + cssClass: classs, + }); + await modal.present(); + modal.onDidDismiss().then((res)=>{ + console.log('refresh list'); + this.LoadList(); + }); + } + + async openPedido(serialNumber:string){ + let classs; + if( window.innerWidth <= 800){ + classs = 'modal' + } else { + classs = 'modal modal-desktop' + } + const modal = await this.modalController.create({ + component: PedidoPage, + componentProps:{ + enterAnimation: "", + serialNumber: serialNumber, + profile: this.profile, + }, + cssClass: classs, + }); + await modal.present(); + modal.onDidDismiss().then((res)=>{ + console.log('refresh list'); + this.LoadList(); + }); + } + + } + \ No newline at end of file diff --git a/src/app/shared/gabinete-digital/expedients/expedients.page.html b/src/app/shared/gabinete-digital/expedients/expedients.page.html index a9ac42974..1d9e6d945 100644 --- a/src/app/shared/gabinete-digital/expedients/expedients.page.html +++ b/src/app/shared/gabinete-digital/expedients/expedients.page.html @@ -10,7 +10,7 @@ - Expediente + Expedientes Pendentes