Files
doneit-web/src/app/services/task.service.ts
T

109 lines
4.0 KiB
TypeScript
Raw Normal View History

2023-04-12 09:01:03 +01:00
import { Injectable } from '@angular/core';
import { momentG } from 'src/plugin/momentG';
2023-04-17 14:11:30 +01:00
import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
import { DeplomasStore } from 'src/app/store/deplomas.service';
import { PendentesStore } from 'src/app/store/pendestes-store.service';
import { DespachoStore } from 'src/app/store/despacho-store.service';
import { TotalDocumentStore } from 'src/app/store/total-document.service';
import { DespachosprStore } from 'src/app/store/despachospr-store.service';
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
import { PedidosStore } from 'src/app/store/pedidos-store.service';
2023-04-12 09:01:03 +01:00
@Injectable({
providedIn: 'root'
})
export class TaskService {
2023-04-17 14:11:30 +01:00
read = 0
unread = 0
deadline = 0
new = 0
overdueTasks = 0
expedientegbstore = ExpedienteGdStore;
pendentesstore = PendentesStore;
despachoStore = DespachoStore;
eventoaprovacaostore = EventoAprovacaoStore;
pedidosstore = PedidosStore;
despachoprstore = DespachosprStore;
totalDocumentStore = TotalDocumentStore
deplomasStore = DeplomasStore
AllProcess = []
2023-04-12 09:01:03 +01:00
constructor() { }
deadlineIsToday(isoDateString:string) {
2023-04-13 12:51:38 +01:00
if(!isoDateString) {
return false
}
2023-04-12 09:01:03 +01:00
return momentG(new Date(), 'dd MMMM yyyy') == momentG(new Date(isoDateString), 'dd MMMM yyyy')
}
2023-04-17 14:11:30 +01:00
overdueTask(isoDateString:string) {
return (new Date()).getTime() < (new Date(isoDateString)).getTime()
}
2023-04-12 09:01:03 +01:00
lessThen24Hours(isoDateString:string) {
2023-04-13 12:51:38 +01:00
if(!isoDateString) {
return true
}
2023-04-12 09:01:03 +01:00
const creationDate = new Date(isoDateString)
const creationDatePlus24h = new Date(creationDate)
creationDatePlus24h.setHours((creationDate.getHours() + 24))
const currentDate = new Date()
return creationDatePlus24h.getTime() > currentDate.getTime()
}
2023-04-12 14:39:26 +01:00
filter(item, attribute) {
if(attribute == 'Para hoje') {
2023-04-13 16:15:46 +01:00
return this.deadlineIsToday(item.TaskStartDate || item.taskStartDate)
2023-04-12 14:39:26 +01:00
} else if (attribute == 'Novos') {
2023-04-13 16:15:46 +01:00
return this.lessThen24Hours(item.TaskStartDate || item.taskStartDate)
2023-04-12 14:39:26 +01:00
} else if (attribute == 'Lidos') {
2023-04-13 16:15:46 +01:00
return item.TaskStatus == 'Open' || item.taskStatus == 'Open'
2023-04-12 14:39:26 +01:00
} else if (attribute == 'Não lidos') {
2023-04-14 22:53:29 +01:00
return !(item.TaskStatus == 'Open' || item.taskStatus == 'Open')
2023-04-17 14:11:30 +01:00
} else if (attribute == 'OverdueTasks') {
return this.overdueTask(item.Deadline || item.deadline)
2023-04-12 14:39:26 +01:00
}
return true
}
2023-04-13 16:15:46 +01:00
seen(item) {
return item.TaskStatus == 'Open' || item.taskStatus == 'Open'
}
2023-04-17 14:11:30 +01:00
updateAllProcess = () => {
this.AllProcess = this.sortArrayISODate(this.despachoprstore.list.concat(this.deplomasStore.diplomasAssinadoList as any).concat(this.deplomasStore.diplomasParaAssinarList as any).concat(this.deplomasStore.DiplomaGerarList as any)
.concat(this.eventoaprovacaostore.contactList as any).concat(this.expedientegbstore.list as any).concat(this.despachoStore.list as any).concat(this.pedidosstore.listparecer as any).concat(this.pedidosstore.listdeferimento as any)
.concat(this.pendentesstore.list as any)).reverse()
}
sortArrayISODate(myArray: any): any[] {
// return myArray.sort(function (a, b) {
// return (a.CreateDate || a.taskStartDate < b.CreateDate || b.taskStartDate) ? -1 : ((a.CreateDate || a.taskStartDate > b.CreateDate || b.taskStartDate) ? 1 : 0);
// });
return myArray.sort((a,b) => Date.parse(b.CreateDate || b.taskStartDate || b.TaskStartDate) - Date.parse(a.CreateDate || a.taskStartDate || a.TaskStartDate))
}
updateCount() {
this.updateAllProcess()
this.read = this.AllProcess.filter((item) => this.filter(item,'Lidos')).length
this.unread = this.AllProcess.filter((item) => this.filter(item,'Não lidos')).length
this.deadline = this.AllProcess.filter((task) => this.deadlineIsToday(task.Deadline || task.deadline)).length
this.new = this.AllProcess.filter((task) => this.lessThen24Hours(task.TaskStartDate || task.taskStartDate)).length
this.overdueTasks = this.AllProcess.filter((task) => this.overdueTask(task.Deadline || task.deadline)).length
}
2023-04-12 09:01:03 +01:00
}