assessoria


SUBMITTED BY: joaovix

DATE: April 4, 2024, 2:01 p.m.

FORMAT: JavaScript

SIZE: 6.0 kB

HITS: 473

  1. document.addEventListener('DOMContentLoaded', function() {
  2. // Ajusta o display do elemento 'main', se presente.
  3. const main = document.querySelector('main');
  4. if (main) {
  5. main.style.display = 'block';
  6. }
  7. // Troca o ícone baseado no conteúdo do span dentro do nav-link ativo, se presentes.
  8. const spanTextoElement = document.querySelector('.nav-item.nav-link.active span');
  9. const h2Destino = document.querySelector('h2.display-5.fw-bold');
  10. if (spanTextoElement && h2Destino) {
  11. const spanTexto = spanTextoElement.textContent.toLowerCase();
  12. let iconeHTML = '';
  13. if (spanTexto.includes('procedimento preliminar')) {
  14. iconeHTML = '<i class="fas fa-file-alt icone-autuacao procedimento-preliminar"></i>';
  15. } else if (spanTexto.includes('noticia de fato')) {
  16. iconeHTML = '<i class="fas fa-exclamation-circle icone-autuacao noticia-fato"></i>';
  17. } else if (spanTexto.includes('processo administrativo disciplinar')) {
  18. iconeHTML = '<i class="fas fa-balance-scale icone-autuacao processo-disciplinar"></i>';
  19. }
  20. h2Destino.innerHTML += ' ' + iconeHTML;
  21. }
  22. // Cálculo de diferença de dias e manipulação de datas, se o elemento 'instauracao' estiver presente.
  23. const instauracaoElement = document.getElementById('instauracao');
  24. if (instauracaoElement) {
  25. const divDataString = instauracaoElement.getAttribute('data-id');
  26. const divDataArray = divDataString.split(' ')[0].split('/');
  27. const divData = new Date(divDataArray[2], divDataArray[1] - 1, divDataArray[0]);
  28. const hoje = new Date();
  29. hoje.setHours(0, 0, 0, 0);
  30. divData.setHours(0, 0, 0, 0);
  31. const diferencaEmMilissegundos = hoje - divData;
  32. const diferencaEmDias = Math.floor(diferencaEmMilissegundos / (1000 * 60 * 60 * 24));
  33. const diferencaEmDiasElement = document.getElementById('diferencaEmDias');
  34. if (diferencaEmDiasElement) {
  35. diferencaEmDiasElement.innerHTML = diferencaEmDias > 30 ?
  36. 'Dias passados desde da instauração: <span style="color: red; font-weight: bold;">' + diferencaEmDias + '</span> dias' :
  37. 'Dias passados desde da instauração: <span style="font-weight: bold;">' + diferencaEmDias + '</span> dias';
  38. }
  39. const novaData = new Date(divData.getTime());
  40. novaData.setDate(novaData.getDate() + 45);
  41. const juizoElement = document.getElementById('juizo');
  42. if (juizoElement) {
  43. juizoElement.innerHTML = 'Data do 1º juízo de admissibidade dos 45 dias: <span style="font-weight: bold;">' + novaData.toLocaleDateString('pt-BR') + '</span>';
  44. }
  45. }
  46. // Cálculo de prescrição baseado na "Data do Fato", se presente
  47. const dataFatoElement = document.getElementById('dataFato');
  48. if (dataFatoElement) {
  49. const dataDoFatoTexto = dataFatoElement.textContent;
  50. const partesDaData = dataDoFatoTexto.split('/');
  51. const dataDoFato = new Date(partesDaData[2], partesDaData[1] - 1, partesDaData[0]);
  52. const hoje = new Date();
  53. const dataPrescricaoSuspensao = new Date(dataDoFato.getFullYear() + 2, dataDoFato.getMonth(), dataDoFato.getDate());
  54. const dataPrescricaoDemissao = new Date(dataDoFato.getFullYear() + 5, dataDoFato.getMonth(), dataDoFato.getDate());
  55. const diasParaSuspensao = Math.round((dataPrescricaoSuspensao.getTime() - hoje.getTime()) / (24 * 60 * 60 * 1000));
  56. const dataSuspensaoElement = document.getElementById('dataSuspensao');
  57. const diasSuspensaoElement = document.getElementById('diasSuspensao');
  58. const dataDemissaoElement = document.getElementById('dataDemissao');
  59. const diasDemissaoElement = document.getElementById('diasDemissao');
  60. if (dataSuspensaoElement) dataSuspensaoElement.textContent = dataPrescricaoSuspensao.toLocaleDateString('pt-BR');
  61. if (diasSuspensaoElement) diasSuspensaoElement.textContent = diasParaSuspensao.toString();
  62. if (dataDemissaoElement) dataDemissaoElement.textContent = dataPrescricaoDemissao.toLocaleDateString('pt-BR');
  63. if (diasDemissaoElement) diasDemissaoElement.textContent = Math.round((dataPrescricaoDemissao.getTime() - hoje.getTime()) / (24 * 60 * 60 * 1000)).toString();
  64. }
  65. // Alteração de classe com base nos dias de suspensão, se elementos relevantes presentes
  66. const divParaModificar = document.querySelector('.h-100.p-5.rounded-3.border');
  67. if (divParaModificar && dataFatoElement) {
  68. divParaModificar.classList.remove('bg-noticiafato', 'bg-pad', 'bg-pp');
  69. const diasParaSuspensao = parseInt(document.getElementById('diasSuspensao').textContent, 10);
  70. if (diasParaSuspensao < 0) {
  71. divParaModificar.classList.add('bg-prescrito');
  72. } else if (diasParaSuspensao < 10) {
  73. divParaModificar.classList.add('bg-alerta');
  74. } else if (diasParaSuspensao < 20) {
  75. divParaModificar.classList.add('bg-atencao');
  76. } else {
  77. divParaModificar.classList.add('bg-noticiafato');
  78. }
  79. }
  80. // Verificação e alteração de classe com base na diferença de dias desde a instauração, se os elementos relevantes estiverem presentes
  81. const diferencaEmDiasDiv = document.getElementById('diferencaEmDias');
  82. if (diferencaEmDiasDiv && divParaModificar) {
  83. const diferenca = parseInt(diferencaEmDiasDiv.textContent.match(/\d+/)[0], 10);
  84. divParaModificar.classList.remove('bg-noticiafato', 'bg-pad', 'bg-pp');
  85. if (diferenca > 45) {
  86. divParaModificar.classList.add('bg-prescrito');
  87. } else if (diferenca > 35) {
  88. divParaModificar.classList.add('bg-alerta');
  89. } else if (diferenca > 25) {
  90. divParaModificar.classList.add('bg-atencao');
  91. } else {
  92. divParaModificar.classList.add('bg-noticiafato');
  93. }
  94. }
  95. });

comments powered by Disqus