5 lines
1.9 KiB
JavaScript
5 lines
1.9 KiB
JavaScript
export const obligationLabels={active:'Obrigação administrativa revista',delivery_simulated:'Entrega apenas simulada — revista',cancelled:'Cancelamento administrativo',unapproved:'Sem condição aprovada'};
|
|
export const decisionLabels={prepared:'Preparado — por rever',approved:'Revisto e aprovado',refused:'Recusado'};
|
|
export function checkedObligations(data,query){if(data.policy!=='SGF-FISCAL-OBLIGATIONS-QA-v1'||data.synthetic_only!==true||data.official_submission!==false||data.tax_payable!==null||data.reference_on!==query.reference_on||!Array.isArray(data.records?.data)||data.records.current_page!==Number(query.page)||data.records.data.length>Number(query.per_page))throw Error('Resposta incompatível com a consulta administrativa pedida.');return data;}
|
|
export function obligationsPageCsv(data,query){checkedObligations(data,query);const c=v=>'"'+String(v??'').replaceAll('"','""')+'"',t=v=>"'"+String(v??'');return [['SGF QA — OBRIGACOES ADMINISTRATIVAS — APENAS ESTA PAGINA'],['SEM PRAZO LEGAL OU SUBMISSAO A AT; ENTREGA APENAS SIMULADA'],['Referencia temporal',data.reference_on,'Filtros',JSON.stringify(query)],['Pagina',data.records.current_page,'de',data.records.last_page,'Registos do filtro',data.records.total],['Registo','Versao','Decisao','Periodo','Mapa interno','Prazo aprovado','Atraso dias','Estado administrativo','Responsavel QA','Evidencia aprovada','SHA evidencia simulada','Autor QA','Data','Fundamento'],...data.records.data.map(r=>[r.record_key,r.version,decisionLabels[r.state],r.data.period,r.data.form_id,r.effective?.due_on??'Desconhecido',r.days_overdue??'Indeterminado',obligationLabels[r.effective?.administrative_status??'unapproved'],r.effective?.responsible_id??'Sem aprovacao',t(r.effective?.evidence),r.effective?.delivery_evidence?.export_sha256??'',r.actor_id,r.created_at,t(r.reason)])].map(row=>row.map(c).join(';')).join('\r\n')+'\r\n';}
|