From 58d72c4b09102eac31a20a9f75c5171a951fa20a Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Wed, 19 May 2021 15:10:03 +0100 Subject: [PATCH] Add signed-diploma --- .../gabinete-digital.module.ts | 4 +- .../gabinete-digital.page.html | 4 +- .../gabinete-digital/gabinete-digital.page.ts | 29 ++- .../signed-diploma.component.html | 119 ++++++++++++ .../signed-diploma.component.scss | 177 ++++++++++++++++++ .../signed-diploma.component.spec.ts | 24 +++ .../signed-diploma.component.ts | 164 ++++++++++++++++ 7 files changed, 516 insertions(+), 5 deletions(-) create mode 100644 src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.html create mode 100644 src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.scss create mode 100644 src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.spec.ts create mode 100644 src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.ts diff --git a/src/app/pages/gabinete-digital/gabinete-digital.module.ts b/src/app/pages/gabinete-digital/gabinete-digital.module.ts index 15cf02bb4..e30ea9283 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.module.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.module.ts @@ -20,7 +20,7 @@ import { DespachosPage } from 'src/app/shared/gabinete-digital/despachos/despach import { DespachosPrPage } from 'src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page'; import { DiplomasPage } from 'src/app/shared/gabinete-digital/diplomas/diplomas.page'; import { ExpedientesPrPage } from 'src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page'; - +import { SignedDiplomaComponent } from 'src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component'; /* import { ComponentsModule } from 'src/app/components/components.module'; */ @NgModule({ @@ -44,6 +44,7 @@ import { ExpedientesPrPage } from 'src/app/shared/gabinete-digital/expedientes-p DespachosPrPage, DiplomasPage, ExpedientesPrPage, + SignedDiplomaComponent ], entryComponents: [ EmptyContainerPage, @@ -56,6 +57,7 @@ import { ExpedientesPrPage } from 'src/app/shared/gabinete-digital/expedientes-p DespachosPrPage, DiplomasPage, ExpedientesPrPage, + SignedDiplomaComponent ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.html b/src/app/pages/gabinete-digital/gabinete-digital.page.html index 97aaca971..b85a12242 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.html +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.html @@ -118,7 +118,7 @@

{{count_dip_pv}} Documentos

-
+
@@ -144,7 +144,7 @@ - +
diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index 37270950e..b661cfa1f 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -12,6 +12,7 @@ import { AuthService } from 'src/app/services/auth.service'; import { User } from 'src/app/models/user.model'; import { DespachosPrPage } from 'src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page' import { DiplomasPage } from 'src/app/shared/gabinete-digital/diplomas/diplomas.page'; +import { SignedDiplomaComponent } from 'src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component'; @Component({ selector: 'app-gabinete-digital', templateUrl: './gabinete-digital.page.html', @@ -60,6 +61,7 @@ export class GabineteDigitalPage implements OnInit { showDiplomas = false; showExpedientesPr = false; showExpedientDetail = false; + showSignedDiploma = false emptyTextDescription = 'Sem opção selecionada'; serialNumber:string; @@ -141,7 +143,7 @@ export class GabineteDigitalPage implements OnInit { } - closeAllDesktopComponents(){ + closeAllDesktopComponents() { this.showEmptyContainer = false; this.showEventsToApprove = false; this.showExpedients = false; @@ -152,6 +154,7 @@ export class GabineteDigitalPage implements OnInit { this.showDiplomas = false; this.showExpedientesPr = false; this.showExpedientDetail = false; + this.showSignedDiploma = false } async LoadCounts() { @@ -337,7 +340,7 @@ export class GabineteDigitalPage implements OnInit { } } - openDiplomasPage(segment:string){ + openDiplomasPage(segment:string) { this.closeAllDesktopComponents(); if( window.innerWidth <= 800){ this.openDeploma(); @@ -348,7 +351,29 @@ export class GabineteDigitalPage implements OnInit { } } + openSignedDiploma(segment:string) { + this.closeAllDesktopComponents(); + if( window.innerWidth <= 800){ + this.openDeploma(); + } + else{ + this.segment = segment; + this.showSignedDiploma = true; + } + } + async openSignedDiplom(){ + const modal = await this.modalController.create({ + component: SignedDiplomaComponent, + componentProps:{ + profile: this.profile, + }, + cssClass: 'modal modal-desktop', + //backdropDismiss: false + }); + await modal.present(); + modal.onDidDismiss(); + } async openDeploma() { const modal = await this.modalController.create({ diff --git a/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.html b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.html new file mode 100644 index 000000000..86645cf16 --- /dev/null +++ b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.html @@ -0,0 +1,119 @@ + +
+
Diploma assinados
+
+ +
+
+ +
+ + + + + + +
+
+ + + + + +
+
+
+ {{ 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/shared/gabinete-digital/signed-diploma/signed-diploma.component.scss b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.scss new file mode 100644 index 000000000..e624d0744 --- /dev/null +++ b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.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/shared/gabinete-digital/signed-diploma/signed-diploma.component.spec.ts b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.spec.ts new file mode 100644 index 000000000..125b8ddcd --- /dev/null +++ b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { SignedDiplomaComponent } from './signed-diploma.component'; + +describe('SignedDiplomaComponent', () => { + let component: SignedDiplomaComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ SignedDiplomaComponent ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(SignedDiplomaComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.ts b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.ts new file mode 100644 index 000000000..ebdf45a2e --- /dev/null +++ b/src/app/shared/gabinete-digital/signed-diploma/signed-diploma.component.ts @@ -0,0 +1,164 @@ +import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { DailyWorkTask, tasksList } 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 { DiplomaPage } from 'src/app/pages/gabinete-digital/diplomas/diploma/diploma.page'; + +@Component({ + selector: 'app-signed-diploma', + templateUrl: './signed-diploma.component.html', + styleUrls: ['./signed-diploma.component.scss'], +}) +export class SignedDiplomaComponent implements OnInit { + +//profile:string; +diplomasList:DailyWorkTask[] = []; +showLoader: boolean; +totalDocs:any; +serialNumber:string; + +@Input() profile:string; +@Input() segment:string; + +constructor( + private processes:ProcessesService, + private modalController: ModalController, + private alertService: AlertService, + ) { + this.profile = 'mdgpr'; + this.segment = 'validar' + } + +ngOnInit() { + //Inicializar segment + this.segment = 'assinados'; + this.LoadList(); +} +segmentChanged(ev: any) { + this.LoadList(); +} + +notImplemented(){ + this.alertService.presentAlert('Funcionalidade em desenvolvimento'); +} + +async LoadList(){ + + + let diplomas = await this.processes.GetTasksList("Despacho do Presidente da República", false).toPromise(); + this.diplomasList = new Array(); + + console.log(diplomas); + switch (this.segment) { + case 'validar': + let diplomasValidar = diplomas.reverse().filter(data => data.workflowInstanceDataFields.Status == "Revising"); + console.log(diplomasValidar); + diplomasValidar.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 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.diplomasList.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.diplomasList.push(task); + }); + }); + this.showLoader = false; + break; + case 'assinados': + let diplomasassinado = diplomas.reverse().filter(data => data.workflowInstanceDataFields.Status == "Signed"); + console.log('Assinados'); + + diplomasassinado.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 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.diplomasList.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.diplomasList.push(task); + }); + }); + this.showLoader = false; + + break; + } +} + +doRefresh(event) { + this.LoadList(); + setTimeout(() => { + //event.target.complete(); + }, 2000); +} + +async viewPedidoDetail(serialNumber:any) { + console.log(this.profile); + + const modal = await this.modalController.create({ + component: DiplomaPage, + componentProps:{ + enterAnimation: "", + serialNumber: serialNumber, + profile: this.profile, + }, + cssClass: 'modal modal-desktop', + }); + await modal.present(); + modal.onDidDismiss().then((res)=>{ + console.log('refresh list'); + this.LoadList(); + }); +} +}