diff --git a/src/app/models/entiry/agenda/eventToApproveList.ts b/src/app/models/entiry/agenda/eventToApproveList.ts
index f1191c95a..7f77b220a 100644
--- a/src/app/models/entiry/agenda/eventToApproveList.ts
+++ b/src/app/models/entiry/agenda/eventToApproveList.ts
@@ -1,5 +1,27 @@
import { z } from 'zod';
+// {
+// "serialNumber": "48002_71",
+// "taskStatus": "Open",
+// "taskStartDate": "2024-04-29T09:41:15.847",
+// "taskReceiveDate": "2024-04-29T09:41:21.707",
+// "deadline": null,
+// "workflowDisplayName": "Agenda Pessoal MDGPR",
+// "activityInstanceName": "Aprovar Evento",
+// "totalDocuments": 1,
+// "workflowInstanceDataFields": {
+// "Agenda": "Pessoal",
+// "EndDate": "2024-04-30 09:45:00",
+// "StartDate": "2024-04-29 09:45:00",
+// "Subject": "Encontro",
+// "Location": "Luanda",
+// "Status": "Active",
+// "IsAllDayEvent": false,
+// "InstanceId": "AGD_dlima_2024-04-29_09:41:15.572",
+// "originator": "dlima@gabinetedigital.local"
+// }
+// },
+
const WorkflowInstanceDataFieldsSchema = z.object({
Agenda: z.string(),
EndDate: z.string(),
diff --git a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.html b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.html
index a94cdaab3..6553412c2 100644
--- a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.html
+++ b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.html
@@ -5,7 +5,7 @@
- Evento Pendente de Aprovação
+ Evento Pendente de Aprovação 5
diff --git a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts
index acba86506..6cf7e9d8a 100644
--- a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts
+++ b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts
@@ -16,7 +16,7 @@ import { RouteService } from 'src/app/services/route.service';
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { TaskService } from 'src/app/services/task.service';
import { AttachmentsService } from 'src/app/services/attachments.service';
-
+import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
@Component({
selector: 'app-approve-event',
@@ -59,6 +59,7 @@ export class ApproveEventPage implements OnInit {
private httpErrorHandle: HttpErrorHandle,
public TaskService: TaskService,
private attachmentsService: AttachmentsService,
+ public AgendaDataRepositoryService: AgendaDataRepositoryService
) {
this.activatedRoute.paramMap.subscribe(params => {
//
@@ -128,28 +129,18 @@ export class ApproveEventPage implements OnInit {
}
async getTask () {
- this.processes.GetTask(this.serialNumber).subscribe(async res => {
- this.loadedEvent = res
- this.getAttachments();
- this.addProcessToDB(this.loadedEvent)
+ const res = await this.AgendaDataRepositoryService.getEventToApproveById(this.serialNumber)
- try {
- this.today = new Date(this.loadedEvent.workflowInstanceDataFields.StartDate);
- this.customDate = this.days[this.today.getDay()] + ", " + this.today.getDate() + " de " + (this.months[this.today.getMonth()]);
-
- } catch(error) {
- // console.log(this.loadedEvent)
- throw(error)
- }
-
- }, (error) => {
- if(error.status == 0) {
- this.getProcessFromDB();
- } else {
- this.httpErrorHandle.httpStatusHandle(error)
- }
- })
+ if(res.isOk()) {
+ this.loadedEvent = res.value;
+ this.today = new Date(res.value.workflowInstanceDataFields.StartDate);
+ //
+ this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
+ } else {
+ console.log(res.error.status)
+ this.httpErrorHandle.httpStatusHandle(res.error)
+ }
}
async approveTask(serialNumber: string) {
diff --git a/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts b/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts
index 16b6574af..f25beb037 100644
--- a/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts
+++ b/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts
@@ -64,13 +64,19 @@ export class AgendaDataRepositoryService {
}
}
- eventToApproveList({userId, startDate = null, endDate = null, status = 0, category= null, type= null, calendarOwnerName = ''}) {
+ async eventToApproveList({userId, startDate = null, endDate = null, status = 0, category= null, type= null, calendarOwnerName = ''}) {
- return this.agendaDataService.getEvents(userId, startDate = null, endDate = null, status, category= null, type= null).pipe(
- map((response) => {
- return EventListToApproveMapper.toDomain(response.data, calendarOwnerName, userId)
- }
- ))
+ try {
+ const result = await this.agendaDataService.getEvents(userId, startDate = null, endDate = null, status, category= null, type= null).pipe(
+ map((response) => {
+ return EventListToApproveMapper.toDomain(response.data, calendarOwnerName, userId)
+ }
+ )).toPromise()
+
+ return ok (result)
+ } catch (e) {
+ return err(e as HttpErrorResponse)
+ }
}
createEvent(eventData: Event,CalendarName,documents) {
diff --git a/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts b/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts
index 5ab19024a..69d7bab77 100644
--- a/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts
+++ b/src/app/services/Repositorys/Agenda/mapper/EventToApproveDetailsMapper.ts
@@ -6,6 +6,23 @@ export class EventToApproveDetailsMapper {
constructor() {}
static toDomain(dto: EventOutputDTO): EventToApproveDetails {
+ const category = dto.category
+ let color;
+
+ if(dto.ownerType != 'PR') {
+ color = 'MDGPR'
+ } else {
+ color = 'PR'
+ }
+
+ let activityInstanceName;
+
+ if(dto.status == 'Pending') {
+ activityInstanceName = 'Aprovar Evento'
+ } else if (dto.status == 'Revision') {
+ activityInstanceName = 'Editar Evento'
+ }
+
return {
"serialNumber": dto.id,
"taskStatus": dto.status,
@@ -23,14 +40,14 @@ export class EventToApproveDetailsMapper {
// "Reenviar",
// "Descartar"
// ],
- "activityInstanceName": "Editar Evento",
+ "activityInstanceName": activityInstanceName,
// "workflowInstanceFolio": "MTk4",
// "taskStartDate": "2024-04-10T14:30:39.58",
// "deadline": null,
// "workflowID": 24744,
// "workflowInstanceID": 47026,
//"workflowName": "Agenda\\Agenda Oficial MDGPR",
- "workflowDisplayName": "Agenda Oficial MDGPR",
+ "workflowDisplayName": `Agenda ${category} ${color}`,
//"formURL": "http://bpmdev.gabinetedigital.local/Runtime/Runtime/Form/Exchange+Calendar+Meeting+Edition/?SerialNo=47026_169&ProcessInstanceID=&InstanceId=",
"workflowInstanceDataFields": {
"Body": "safsafas",
diff --git a/src/app/services/Repositorys/Agenda/mapper/eventToApproveListMapper.ts b/src/app/services/Repositorys/Agenda/mapper/eventToApproveListMapper.ts
index 985192937..48970d935 100644
--- a/src/app/services/Repositorys/Agenda/mapper/eventToApproveListMapper.ts
+++ b/src/app/services/Repositorys/Agenda/mapper/eventToApproveListMapper.ts
@@ -15,28 +15,46 @@ function getTextInsideParentheses(inputString): string {
}
export class EventListToApproveMapper {
- static toDomain(dto: EventToApproveListOutputDTO, calendarOwnerName: string, userId: string): EventToApproveList {
- return dto.map((e) => ({
- serialNumber: e.id,
- taskStatus: e.status,
- taskStartDate: e.startDate,
- taskReceiveDate: e.startDate,
- deadline: null,
- workflowDisplayName: "",
- activityInstanceName: "",
- totalDocuments: 0,
- workflowInstanceDataFields: {
- Agenda: e.category,
- EndDate: e.endDate,
- StartDate: e.startDate,
- Subject: e.body,
- Location: e.location,
- Status: e.status,
- IsAllDayEvent: e.isAllDayEvent,
- InstanceId: "",
- originator: ""
+ static toDomain(dtoList: EventToApproveListOutputDTO, calendarOwnerName: string, userId: string): EventToApproveList {
+
+
+ return dtoList.map((dto) => {
+ const category = dto.category
+ let color;
+ let workflowDisplayName;
+
+ if(dto.ownerType == 'PR') {
+ color = 'PR'
+ workflowDisplayName = `Agenda ${category} ${color}`
+ } else if(dto.ownerType == 'MD') {
+ color = 'MDGPR'
+ workflowDisplayName = `Agenda ${category} ${color}`
+ } else {
+ workflowDisplayName = `Agenda ${category}`
}
- }))
+
+ return {
+ serialNumber: dto.id,
+ taskStatus: dto.status,
+ taskStartDate: dto.startDate,
+ taskReceiveDate: dto.startDate,
+ deadline: null,
+ workflowDisplayName,
+ activityInstanceName: "",
+ totalDocuments: 0,
+ workflowInstanceDataFields: {
+ Agenda: dto.category,
+ EndDate: dto.endDate,
+ StartDate: dto.startDate,
+ Subject: dto.body,
+ Location: dto.location,
+ Status: dto.status,
+ IsAllDayEvent: dto.isAllDayEvent,
+ InstanceId: "",
+ originator: ""
+ }
+ }
+ })
}
static toDTO() {}
@@ -65,21 +83,4 @@ export class EventListToApproveMapper {
-// {
-// "id": "5b170417-df57-4b5c-9a5e-3c73726a116d",
-// "owner": null,
-// "ownerType": "PR",
-// "subject": "string",
-// "body": "string",
-// "location": "string",
-// "startDate": "2024-05-29T00:00:00+00:00",
-// "endDate": "2024-05-29T23:59:00+00:00",
-// "type": "Meeting",
-// "category": "Oficial",
-// "isRecurring": false,
-// "eventRecurrence": null,
-// "hasAttachments": false,
-// "isPrivate": false,
-// "isAllDayEvent": true,
-// "status": "Pending"
-// }
+
diff --git a/src/app/services/Repositorys/Agenda/model/eventDTOOutput.ts b/src/app/services/Repositorys/Agenda/model/eventDTOOutput.ts
index 33e88224a..5de3c99d7 100644
--- a/src/app/services/Repositorys/Agenda/model/eventDTOOutput.ts
+++ b/src/app/services/Repositorys/Agenda/model/eventDTOOutput.ts
@@ -39,7 +39,7 @@ const OrganizerSchema = z.object({
export const EventOutputDTOSchema = z.object({
id: z.string(),
owner: OwnerSchema,
- ownerType: z.string(),
+ ownerType: z.enum(["PR", "MD", "Other"]),
subject: z.string(),
body: z.string(),
location: z.string(),
@@ -56,7 +56,7 @@ export const EventOutputDTOSchema = z.object({
isPrivate: z.boolean(),
isAllDayEvent: z.boolean(),
organizer: OrganizerSchema,
- status: z.string(),
+ status: z.enum(['Pending', 'Revision']),
});
export type EventOutputDTO = z.infer
diff --git a/src/app/services/functions/sort.service.ts b/src/app/services/functions/sort.service.ts
index d8ee507ea..402887680 100644
--- a/src/app/services/functions/sort.service.ts
+++ b/src/app/services/functions/sort.service.ts
@@ -35,7 +35,7 @@ export class SortService {
if(!Array.isArray(array)) {
array = []
}
-
+
return array.sort( (a,b)=> {
return (new Date(this.ObjectService.deepFind(a, path)) < new Date(this.ObjectService.deepFind(b, path))) ? -1 : ((new Date(this.ObjectService.deepFind(a, path)) > new Date(this.ObjectService.deepFind(b, path))) ? 1 : 0);
diff --git a/src/app/services/task.service.ts b/src/app/services/task.service.ts
index d4971285b..3316e26d0 100644
--- a/src/app/services/task.service.ts
+++ b/src/app/services/task.service.ts
@@ -19,7 +19,8 @@ import { Router } from '@angular/router';
import { v4 as uuidv4 } from 'uuid'
import { ChangeProfileService } from './change-profile.service';
import { PermissionService } from './permission.service';
-
+import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
+import { SortService } from './functions/sort.service';
@Injectable({
providedIn: 'root'
})
@@ -67,6 +68,8 @@ export class TaskService {
private router: Router,
private changeProfileService: ChangeProfileService,
public p: PermissionService,
+ public AgendaDataRepositoryService: AgendaDataRepositoryService,
+ private sortService: SortService,
) {
this.changeProfileService.registerCallback(() => {
@@ -315,30 +318,26 @@ export class TaskService {
/* if(this.SessionStore.user.Profile != 'PR') { */
try {
for(let calendar of this.eventService.calendarNamesAry) {
- if(calendar == 'Meu calendario') {
- // color
- let genericEvents = await this.processesbackend.eventsToApprove(SessionStore.user.UserId, false).toPromise();
- let eventsList
- try {
- eventsList = genericEvents
- } catch (error) {
- eventsList = [];
- }
- console.log(calendar, eventsList)
- this.eventoaprovacaostore.save(calendar, eventsList)
+ let userId;
+
+ if(calendar == 'Meu calendario') {
+ userId = SessionStore.user.UserId
} else {
- let allEvents = await this.processesbackend.eventsToApprove(calendar.OwnerUserId, 'againete page').toPromise()
- let eventsList
- try {
- eventsList = allEvents
- } catch(error) {
- eventsList = []
- }
+ userId = calendar.OwnerUserId
+ }
- console.log(calendar, eventsList)
- this.eventoaprovacaostore.save(calendar.OwnerUserId, eventsList)
+ let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({userId})
+ if(allEvents.isOk()) {
+
+ let eventsList = []
+ if(allEvents.value.length >= 1) {
+ eventsList = this.sortService.sortArrayByDate(allEvents.value).reverse();
+ this.eventoaprovacaostore.save(userId, eventsList)
+ } else {
+ this.eventoaprovacaostore.save(userId, [])
+ }
}
}
} catch (error) {
diff --git a/src/app/shared/agenda/approve-event/approve-event.page.ts b/src/app/shared/agenda/approve-event/approve-event.page.ts
index ced51461c..a68888e6f 100644
--- a/src/app/shared/agenda/approve-event/approve-event.page.ts
+++ b/src/app/shared/agenda/approve-event/approve-event.page.ts
@@ -13,7 +13,6 @@ import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { TaskService } from 'src/app/services/task.service'
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
import { EventToApproveDetails } from 'src/app/models/entiry/agenda/eventToApproveDetails';
-import { HttpResponseBase } from '@angular/common/http';
@Component({
selector: 'app-approve-event',
@@ -85,6 +84,7 @@ export class ApproveEventPage implements OnInit {
if(res.isOk()) {
this.loadedEvent = res.value;
+ this.loadedAttachments = this.loadedEvent.Attachments
this.today = new Date(res.value.workflowInstanceDataFields.StartDate);
//
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
diff --git a/src/app/shared/agenda/event-list/event-list.page.ts b/src/app/shared/agenda/event-list/event-list.page.ts
index 2817fb53a..e9a72c7cc 100644
--- a/src/app/shared/agenda/event-list/event-list.page.ts
+++ b/src/app/shared/agenda/event-list/event-list.page.ts
@@ -113,14 +113,22 @@ export class EventListPage implements OnInit {
userId = segment
}
- try {
- let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({userId}).toPromise()
- this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
- this.eventoaprovacaostore.save(segment, this.eventsList)
- } catch (e) {
+ let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({userId})
+ if(allEvents.isOk()) {
+
+ if(allEvents.value.length >= 1) {
+ this.eventsList = this.sortService.sortArrayByDate(allEvents.value).reverse();
+ this.eventoaprovacaostore.save(segment, this.eventsList)
+ } else {
+ this.eventoaprovacaostore.save(segment, [])
+ }
+ } else {
this.eventsList = [];
- this.showLoader = false;
+ // this.showLoader = false;
}
+
+ this.showLoader = false;
+
}
async LoadToApproveEventsNoLoader() {
diff --git a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts
index 2609fa03d..4c3e17829 100644
--- a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts
+++ b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts
@@ -12,6 +12,7 @@ import { EventsService } from 'src/app/services/events.service';
import { environment } from 'src/environments/environment';
import { TaskService } from 'src/app/services/task.service'
import { ThemeService } from 'src/app/services/theme.service'
+import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
@Component({
selector: 'app-events-to-approve',
@@ -33,9 +34,9 @@ export class EventsToApprovePage implements OnInit {
eventoaprovacaostore = EventoAprovacaoStore;
environment = environment
filterName: 'Para hoje' | 'Novos'| 'Lidos'| 'Não lidos'| 'OverdueTasks' | 'Todos' = 'Todos'
-
- //
+
+ //
showSearch = false
searchSubject = ''
list = []
@@ -57,11 +58,12 @@ export class EventsToApprovePage implements OnInit {
public eventService: EventsService,
public TaskService: TaskService,
public ThemeService: ThemeService,
+ public AgendaDataRepositoryService: AgendaDataRepositoryService
)
{}
ngOnInit() {
-
+
this.eventService.onCalendarFinishLoad.subscribe(() => {
if(!this.segment) {
if(this.eventService.calendarNamesAry.includes('Meu calendario')) {
@@ -69,7 +71,7 @@ export class EventsToApprovePage implements OnInit {
} else {
this.segment = this.eventService.calendarNamesAry[0].OwnerUserId
}
-
+
// select pr by default
const pr = this.eventService.calendarNamesAry.find( e => e.Role == 'Presidente da República')
if(pr) {
@@ -80,7 +82,7 @@ export class EventsToApprovePage implements OnInit {
} else {
this.dynamicSearch();
}
-
+
})
this.LoadToApproveEvents()
@@ -90,7 +92,7 @@ export class EventsToApprovePage implements OnInit {
funx:() => {
this.dynamicSearch()
-
+
}
})
@@ -116,7 +118,7 @@ export class EventsToApprovePage implements OnInit {
ngOnDestroy() {
this.listSubscription.delete()
-
+
this.routerSubscription?.unsubscribe();
}
@@ -132,7 +134,7 @@ export class EventsToApprovePage implements OnInit {
async dynamicSearch() {
if(this.showSearch && this.searchSubject) {
-
+
const list = this.eventoaprovacaostore.get(this.segment).filter((task) => {
let subject = task.Folio || task.Subject || task.workflowInstanceDataFields.Subject
subject = subject.toLowerCase();
@@ -176,52 +178,39 @@ export class EventsToApprovePage implements OnInit {
this.showLoader = true;
const segment = this.segment
-
+ let userId;
if(this.segment == 'Meu calendario') {
// color
-
if(SessionStore.user.Profile == 'PR') {
this.color = 'pr'
} else {
this.color = 'mdgpr'
}
-
+ userId = SessionStore.user.UserId
- let genericEvents = await this.processes.eventsToApprove(SessionStore.user.UserId,'mobile agenda').toPromise()
- try {
- this.eventsList = this.sortService.sortArrayByDate(genericEvents).reverse();
- } catch (error) {
- this.eventsList = [];
- }
-
- this.eventoaprovacaostore.save(segment, this.eventsList)
- this.dynamicSearch()
} else {
-
-
this.color = 'pr'
- let allEvents = await this.processes.eventsToApprove(segment, 'gabinete').toPromise()
- try {
- this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
- } catch(error) {
- this.eventsList = []
- }
-
- this.eventsList = this.eventsList
- this.eventsList = this.eventsList
- this.showLoader = false;
- this.eventoaprovacaostore.save(segment, this.eventsList)
- this.dynamicSearch()
+ userId = segment
}
- this.showLoader = false;
+ let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({userId})
+ if(allEvents.isOk()) {
+ if(allEvents.value.length >= 1) {
+ this.eventsList = this.sortService.sortArrayByDate(allEvents.value).reverse();
+ this.eventoaprovacaostore.save(segment, this.eventsList)
+ } else {
+ this.eventoaprovacaostore.save(segment, [])
+ }
+
+ this.showLoader = false;
+ } else {
+ this.showLoader = false;
+ }
}
-
getFromDB() {}
-
toDateString(e) {
return new Date(e).toDateString()
}