Files
doneit-web/src/app/Rules/despacho.service.ts
T
Peter Maquiran 4309d01376 add synchro
2021-08-30 10:24:46 +01:00

235 lines
5.5 KiB
TypeScript

import { Injectable } from '@angular/core';
import { customTask, fullTask, fullTaskList } from '../models/dailyworktask.model';
import { AttachmentList } from '../models/Excludetask';
import { PermissionService } from '../OtherService/permission.service';
import { CustomTaskPipe } from '../pipes/custom-task.pipe';
import { ProcessesService } from '../services/processes.service';
import { DespachoStore } from '../store/despacho-store.service';
import { LoaderService } from 'src/app/store/loader.service'
@Injectable({
providedIn: 'root'
})
export class DespachoService {
/**
* @description para terminar o
* 95 - signfica
* 98 - significa
*/
ActionTypeId: 95 | 98
action: "Arquivo" | "Reencaminhar"
actions: {
'Tarefa do Despacho': 'Tarefa de Despacho' | 'Concluir' | 'rexecucao'
}
customTaskPipe = new CustomTaskPipe()
despachoStore = DespachoStore;
constructor(
private processes: ProcessesService,
public p: PermissionService,
public LoaderService: LoaderService
) { }
arquivar(note:string, documents:AttachmentList, serialnumber) {
let body = {
"serialNumber": serialnumber,
"action": "Arquivo",
"ActionTypeId": 95,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
return this.processes.CompleteTask(body)
}
// reencaminhar(note:string, documents:any, serialnumber) {
// let body = {
// "serialNumber": serialnumber,
// "action": "Reencaminhar",
// "ActionTypeId": 98,
// "dataFields": {
// "ReviewUserComment": note,
// },
// "AttachmentList" :documents,
// }
// return this.processes.CompleteTask(body)
// }
executado(note:string, documents:any , serialnumber) {
let body = {
"serialNumber": serialnumber,
"action": "Conhecimento",
"ActionTypeId": 104,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
return this.processes.CompleteTask(body)
}
solicitarParecer({note ='', documents = [], serialnumber}) {
let body = {
"serialNumber": serialnumber,
"action": "Conhecimento",
"ActionTypeId": 92,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
return this.processes.CompleteTask(body)
}
EfectuarDespacho({note = '', documents = [], serialnumber}) {
let body = {
"serialNumber": serialnumber,
"action": "Conhecimento",
"ActionTypeId": 94,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
return this.processes.CompleteTask(body)
}
reexecute({note, documents, serialnumber}) {
let body = {
"serialNumber": serialnumber,
"action": "Reexecução",
"ActionTypeId": 100000010,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
return this.processes.CompleteTask(body)
}
/**
* @description efetuar despacho
*/
CompleteTask({serialNumber}) {
const body = {
"serialNumber": serialNumber,
"action": "Despacho",
"ActionTypeId": 94,
"dataFields": {
"ReviewUserComment": '',
},
"AttachmentList" :null,
}
return this.processes.CompleteTask(body)
}
// Finalizar({serialNumber}) {
// const body = {
// "serialNumber": serialNumber,
// "action": "Conhecimento",
// "ActionTypeId": 104,
// "dataFields": {
// "ReviewUserComment": '',
// },
// "AttachmentList" :null,
// }
// }
sendExpedienteToPending(serialnumber) {
return this.processes.SetTaskToPending(serialnumber)
}
/**
* @param body any
* @returns promise
* @description for both profile PR and MDGPR
*/
createDespacho(body: any) {
if(this.p.userRole(['PR'])) {
return this.processes.postDespatchoPr(body)
} else {
return this.processes.postDespatcho(body)
}
}
createParecer(body: any) {
if(this.p.userRole(['PR'])) {
return this.processes.postParecerPr(body)
} else {
return this.processes.postParecer(body)
}
}
generateDiploma({note = '', documents = [], serialnumber}) {
let body = {
"serialNumber": serialnumber,
"action": "Reencaminhar",
"ActionTypeId": 99999839,
"dataFields": {
"ReviewUserComment": note,
},
"AttachmentList" :documents,
}
return this.processes.CompleteTask(body)
}
async getList({updateStore = false}): Promise<customTask[]> | null {
if (this.LoaderService.loading) {
return this.despachoStore.list
}
this.LoaderService.push({})
let result: fullTaskList[] = []
let despachoList: customTask[] = [];
try {
result = await this.processes.GetTasksList("Despacho", false).toPromise();
result = result.filter((data:fullTaskList) => data.workflowInstanceDataFields.Status == "Active")
result.forEach((element, index) => {
let task: customTask = this.customTaskPipe.transform(element);
despachoList.push(task);
});
despachoList = this.sortArrayISODate(despachoList).reverse();
if(updateStore) {
this.despachoStore.reset(despachoList);
}
} catch (error) {
} finally {
this.LoaderService.pop({})
return this.despachoStore.list
}
}
sortArrayISODate(myArray: any) {
return myArray.sort(function(a, b) {
return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0);
});
}
}