editais.html
Atualizado em
14/08/2025 10h10
editais.html
— 73 KB
Conteúdo do arquivo
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Google Tag Manager -->
<script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-WGZPDK4DH1&l=dataLayer&cx=c"></script>
<script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-NHZSKTD"></script>
<script type="text/javascript">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NHZSKTD');
</script>
<!-- End Google Tag Manager -->
<!--FAVICON-->
<link rel="shortcut icon" href="./assets/favicon.ico">
<!-- Fonte Rawline-->
<link rel="stylesheet"
href="https://cdngovbr-ds.estaleiro.serpro.gov.br/design-system/fonts/rawline/css/rawline.css" />
<!-- Fonte Raleway-->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Raleway:300,400,500,600,700,800,900&display=swap" />
<!-- Fontawesome-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<!--CSS GOVBR-->
<link rel="stylesheet" href="./govbr/core.css" />
<!--JS GOVBR-->
<script src="./govbr/core.js"></script>
<!--COMPONENTES-->
<script src="./componentes/br-cabecalho/br-cabecalho.js"></script> <!--CABEÇALHO-->
<script src="./componentes/br-rodape/br-rodape.js"></script> <!--RODAPE-->
<script src="./componentes/br-textarea/br-textarea.js"></script> <!--TEXTAREA-->
<script src="./componentes/br-select/br-select.js"></script> <!--SELECT-->
<script src="./componentes/br-input/br-input.js"></script> <!--INPUT-->
<script src="./componentes/br-datepicker/br-datepicker.js"></script> <!--DATEPICKER-->
<script src="./componentes/br-modal-simples/br-modal-simples.js"></script> <!--CUSTOM MODAL-->
<script src="./componentes/br-checkbox/br-checkbox.js"></script> <!--CHECKBOX-->
<script src="./componentes/br-radio-horizontal/br-radio-horizontal.js"></script> <!--RADIO HORIZONTAL-->
<!--UTILS-->
<script src="./bibliotecas/utils.js"></script> <!--DATEPICKER-->
<!--HTML2CANVAS-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"
integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<!--JSPDF-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"
integrity="sha512-qZvrmS2ekKPF2mSznTQsxqPgnpkI4DNTlrdUmTzrDgektczlKNRRhy5X5AAOnx5S09ydFYWWNSfcEqDTTHgtNA=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
#custom-modal {
position: fixed;
left: 0;
top: 0;
width: 100%;
overflow: auto;
}
#impressao-impedida {
display: none;
}
@media print{
body>*:not(#impressao-impedida) {
display: none;
}
#impressao-impedida {
display: block !important;
font-size: 2em;
}
}
body {
-webkit-user-select: none; /* Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Standard */
}
</style>
<title>Edital transação</title>
<!--GET OPCOES SELECT-->
<script>
function getOpcoesTipoDeclaracao(){
return ['DCTF', 'DCTF Web / e-Social', 'DIRPF', 'DITR', 'GFIP', 'Auto de Infração', 'Outro']
}
function getOpcoesCodReceita(){
return [
"966", "965", "963", "961", "220", "1113", "1324", "1330", "1347", "1409",
"2089", "2172", "2362", "2372", "2430", "2456", "2484", "2917", "2960",
"2973", "2986", "2999", "3020", "3074", "3084", "3087", "3090", "3252",
"3373", "3885", "5477", "5625", "5638", "5788", "5802", "5815", "5828",
"5856", "5937", "5993", "6012", "6094", "6138", "6324", "6337", "6378",
"6656", "6773", "6912", "7104", "7200", "7307", "7403", "8002", "8109",
"8128", "8143", "8156", "8169", "8305", "8361", "8401", "8408", "8430"
]
}
function getOpcoesAliquotasPF(){
return ['9%', '15%', '20%', '25%']
}
function getOpcoesAliquotasBCN(){
return ['9%', '15%', '20%', '25%']
}
</script>
</head>
<body>
<!--CABECALHO-->
<section id="id-cabecalho">
<br-cabecalho-component titulo="Discriminação de débitos da transação" subtitulo="Edital transação - relevante e disseminada controvérsia jurídica"></br-cabecalho-component>
</section>
<!--SECAO DEBITOS A REGULARIZAR-->
<section class="mb-5 toPdf" id="id-debitos-regularizar" name="Seção Débitos a Autorregularizar">
<div class="container-lg">
<div class="row">
<div class="col">
<div class="mb-5">
<h2>Débitos a Transacionar</h2>
</div>
<div class="br-table">
<table id="tb-debitos-regularizar" name="Tabela Débitos a Autorregularizar" class="mb-5" required>
<!-- thead criado dinamicamente conforme a variável MODELO_EDITAL -->
<tbody id="bd-debitos-regularizar"></tbody>
</table>
<!--BOTOES LIMPAR E INCLUIR NOVO DEBITO-->
<div id="btn-add-debitos-a-regularizar" class="botao">
<button onclick="excluirLinhasTabela(tbDebitosRegularizar)" class="br-button mr-3">Limpar</button>
<button onclick="incluirDebito()" class="br-button secondary mr-3">Incluir novo Débito</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!--SECAO TOTAL DEBITOS A REGULARIZAR-->
<section class="mb-5 toPdf" id="id-total-debitos-regularizar" name="Seção Total Débitos a Autorregularizar">
<div class="container-lg">
<div class="justify-content-end row">
<div class="col-4">
<div class="mb-5">
<br-input-component inputId="total-debitos-regularizar" inputClass="border-gray-90 text-weight-bold"
eName="Total Débitos a Autorregularizar" label="Total de Débitos a Autorregularizar" initValue="0" isDisabled></br-input-component>
</div>
</div>
</div>
</div>
</section>
<!--SECAO PF E BCN PROPRIOS-->
<section class="mb-5 toPdf" id="id-pf-bcn-proprios" name="Seção PF e BCN Próprios">
<div class="container-lg">
<div class="row">
<div class="col">
<div class="mb-5">
<h2>Créditos de Prejuízo Fiscal (PF) e Base de Cálculo Negativa da CSLL (BCN)</h2>
<h5>Exclusivo para Pessoa Jurídica</h5>
<h3 class="text-bold">PRÓPRIOS</h3>
</div>
<div class="br-table">
<table id="tb-pf-bcn-proprios" name="Tabela PF e BCN Próprios" class="mb-5" data-opcional="opcional">
<thead>
<tr>
<th class="text-up-01 p-2 col-3">Tipo</th>
<th class="text-up-01 p-2 col-2">Montante</th>
<th class="text-up-01 p-2 col-2">Alíquota</th>
<th class="text-up-01 p-2 col-2">Valor</th>
<th class="text-up-01 p-2 col-2">Data entrega ECF</th>
</tr>
</thead>
<tbody id="bd-pf-bcn-proprios">
<tr class="credito-pf-bcn">
<!--TIPO - PF-->
<td>
<br-input-component inputId="id-tipo-pf" inputClass="border-gray-90 text-weight-bold" eName="Tipo de crédito" initValue="PF" isDisabled></br-input-component>
</td>
<!--MONTANTE - PF-->
<td class="p-2">
<br-input-component inputId="id-montante-pf" inputClass="montante" eName="Montante Prejuío Fiscal" oninput="validarValor" onchange="calcularLimiteValor" data-opcional="obrigatorio"></br-input-component>
</td>
<!--ALIQUOTA - PF-->
<td>
<br-select-component inputId="id-aliquota-pf" inputClass="aliquota" eName="Alíquota (PF)" opcoes="getOpcoesAliquotasPF" onchange="calcularLimiteValor" data-opcional="obrigatorio"></br-select-component>
</td>
<!--VALOR - PF-->
<td class="p-2">
<br-input-component inputId="id-valor-pf" eName="Valor Prejuízo Fiscal" inputClass="valorCredito" oninput="validarValor" onchange="calcularLimiteValor, atualizarValorTotalCreditos" data-opcional="obrigatorio"></br-input-component>
</td>
<!--DATA ENTREGA ECF - PF-->
<td class="p-2">
<br-datepicker-component id="data-entrega-pf-proprio" eName="Data Entrega ECF PF" data-opcional="obrigatorio"></br-datepicker-component>
</td>
</tr>
<tr class="credito-pf-bcn">
<!--TIPO - BCN-->
<td>
<br-input-component inputId="id-tipo-bcn" inputClass="border-gray-90 text-weight-bold" eName="Tipo de crédito" initValue="BCN da CSLL" isDisabled></br-input-component>
</td>
<!--MONTANTE - BCN-->
<td class="p-2">
<br-input-component inputId="id-montante-bcn" inputClass="montante" eName="Montante BCN CSLL" oninput="validarValor" onchange="calcularLimiteValor" data-opcional="obrigatorio"></br-input-component>
</td>
<!--ALIQUOTA - BCN-->
<td>
<br-select-component inputId="id-aliquota-bcn" inputClass="aliquota" eName="Alíquota (BCN)" opcoes="getOpcoesAliquotasBCN" onchange="calcularLimiteValor" data-opcional="obrigatorio"></br-select-component>
</td>
<!--VALOR - BCN-->
<td class="p-2">
<br-input-component inputId="id-valor-bcn" eName="Valor BCN CSLL" inputClass="valorCredito" oninput="validarValor" onchange="calcularLimiteValor, atualizarValorTotalCreditos" data-opcional="obrigatorio"></br-input-component>
</td>
<!--DATA ENTREGA ECF - BCN-->
<td class="p-2">
<br-datepicker-component id="data-entrega-bcn-proprio" eName="Data Entrega ECF BCN" data-opcional="obrigatorio"></br-datepicker-component>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<!--SECAO PF E BCN TERCEIROS-->
<section class="mb-5 toPdf" id="id-pf-bcn-terceiros" name="Seção PF e BCN Terceiros">
<div class="container-lg">
<div class="row">
<div class="col">
<div class="mb-5">
<h3 class="text-bold">TERCEIROS</h3>
</div>
<div class="br-table">
<table id="tb-pf-bcn-terceiros" name="Tabela PF e BCN Terceiros" class="mb-5" data-opcional="opcional">
<thead>
<tr>
<th class="text-up-01 p-2 col-2">CNPJ</th>
<th class="text-up-01 p-2 col-2">Tipo</th>
<th class="text-up-01 p-2 col-2">Montante</th>
<th class="text-up-01 p-2 col-1">Alíquota</th>
<th class="text-up-01 p-2 col-2">Valor</th>
<th class="text-up-01 p-2 col-2">Data entrega ECF</th>
<th class="text-up-01 p-2 col-1 acoes">Ações</th>
</tr>
</thead>
<tbody id="bd-pf-bcn-terceiros"></tbody>
</table>
<!--BOTOES LIMPAR E INCLUIR NOVO CRÉDITO-->
<div id="btn-add-pf-bcn-terceiros" class="botao">
<button onclick="excluirLinhasTabela(tbPfBcnTerceiros)" class="br-button mr-3">Limpar</button>
<button onclick="incluirCreditoTerceiros('PF')" class="br-button secondary mr-3">Incluir novo Crédito - PF</button>
<button onclick="incluirCreditoTerceiros('BCN')" class="br-button secondary mr-3">Incluir novo Crédito - BCN</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!--SECAO TOTAL PF E BCN PROPRIOS E DE TERCEIROS-->
<section class="mb-5 toPdf" id="id-total-creditos-pf-bcn" name="Seção Total Créditos PF e BCN">
<div class="container-lg">
<div class="justify-content-end row">
<div class="col-4">
<div class="mb-5">
<br-input-component inputId="total-creditos-pf-bcn" inputClass="border-gray-90 text-weight-bold"
eName="Total Créditos PF e BCN" label="Total de Créditos de PF e BCN" isDisabled initValue="0"></br-input-component>
</div>
</div>
</div>
</div>
</section>
<!--SECAO OPÇÃO DE TRANSAÇÃO-->
<section class="mb-5 toPdf" id="id-opcao-transacao" name="Seção Opção de Transação">
<div class="container-lg">
<h2>Opções de Transação:</h2>
<div class="row">
<div id="opcao-transacao" class="col-10 mb-4">
<!--AQUI DEVE SER PREENCHIDO DINAMICAMENTE-->
</div>
</div>
</div>
</section>
<!--SECAO BOTAO CALCULAR DIVIDA CONSOLIDADA-->
<section class="mb-5" id="id-calcular">
<div class="container-lg">
<div class="row">
<div class="col">
<div class="my-3">
<button onclick="calcularDividaConsolidada()" class="br-button primary">Calcular</button>
</div>
</div>
</div>
</div>
</section>
<!--SECAO DIVIDA CONSOLIDADA-->
<section class="mb-5 toPdf" id="id-divida-consolidada" name="Seção Dívida Consolidada">
<div class="container-lg">
<div class="row">
<div class="col-6">
<div class="br-table">
<table id="tb-divida-consolidada" name="Tabela Divida Consolidada" class="mb-5" style="--table-border-style: transparent">
<!-- <thead>
<tr>
<th class="text-up-01 p-2 col-3">Descrição</th>
<th class="text-up-01 p-2 col-2">Valor </th>
</tr>
</thead> -->
<tbody id="bd-divida-consolidada">
<!--ESSA TABELA SERÁ PREENCHIDA DINAMICAMENTE-->
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<!--SECAO BOTAO GERAR DOCUMENTO-->
<section class="mb-5" id="id-gerar-documento">
<div class="container-fluid">
<div class="row">
<div class="col">
<div class="text-center my-3">
<button onclick="gerarDocumento()" class="br-button primary">Gerar Documento</button>
</div>
</div>
</div>
</div>
</section>
<!-- MENSAGEM PADRÃO DE IMPRESSÃO -->
<section id="impressao-impedida">
<div class="text-center">Utilize o botão Gerar Documento</div>
</section>
<!--MODAL SIMPLES-->
<section id="id-modal-simples">
<br-modal-simples-component></br-modal-simples-component>
</section>
<!--RODAPE-->
<section id="id-rodape">
<br-rodape-component></br-rodape-component>
</section>
<!--JAVASCRIPT-->
<script>
////////// VARIÁVEIS //////////
let tbDebitosRegularizar = document.querySelector('#tb-debitos-regularizar');
let bdDebitosRegularizar = document.querySelector('#bd-debitos-regularizar');
let tbPfBcnProprios = document.querySelector('#tb-pf-bcn-proprios');
let bdPfBcnProprios = document.querySelector('#bd-pf-bcn-proprios');
let tbPfBcnTerceiros = document.querySelector('#tb-pf-bcn-terceiros');
let bdPfBcnTerceiros = document.querySelector('#bd-pf-bcn-terceiros');
let bdDividaConsolidada = document.querySelector('#bd-divida-consolidada');
let secoesToPdf = document.querySelectorAll('.toPdf');
let modalComponente = document.querySelector('br-modal-simples-component');
const hoje = new Date();
const dia = String(hoje.getDate()).padStart(2, '0');
const mes = String(hoje.getMonth() + 1).padStart(2, '0');
const ano = hoje.getFullYear();
let dataAtual = `${dia}/${mes}/${ano}`;
const mesPassado = new Date(hoje);
mesPassado.setMonth(hoje.getMonth() - 1); // Subtrai um mês
const diaPassado = String(mesPassado.getDate()).padStart(2, '0');
const mesPassadoFormatado = String(mesPassado.getMonth() + 1).padStart(2, '0');
const anoPassado = mesPassado.getFullYear();
let dataMesPassado = `${diaPassado}/${mesPassadoFormatado}/${anoPassado}`;
const dataEntregaPFProprio = document.querySelector('#data-entrega-pf-proprio');
dataEntregaPFProprio.setAttribute('maxdate', dataAtual);
const dataEntregaBCNProprio = document.querySelector('#data-entrega-bcn-proprio');
dataEntregaBCNProprio.setAttribute('maxdate', dataAtual);
// VARIÁVEIS DO EDITAL
const MODELO_EDITAL = 2;
const OPCOES_TRANSACAO = {
"1": {
"id": "opcao1",
"name": 'opcao',
"descricao": "I - Redução 65%, Entrada 30%, entrada à vista , Parcelas do saldo até 12, Máximo que pode ser amortizado com PF/BCN 30% (sobre a dívida consolidada após redução)",
"entrada": 0.3,
"reducao": 0.65,
"parcelas_entrada": 1,
"parcelas_do_saldo": 12,
"percentual_pfbcn": 0.3
},
"2": {
"id": "opcao2",
"name": 'opcao',
"descricao": "II - Redução 55%, Entrada 25%, entrada à vista, Parcelas do saldo até 24, Máximo que pode ser amortizado com PF/BCN 30% (sobre a dívida consolidada após redução)",
"entrada": 0.25,
"reducao": 0.55,
"parcelas_entrada": 1,
"parcelas_do_saldo": 24,
"percentual_pfbcn": 0.3
},
"3": {
"id": "opcao3",
"name": 'opcao',
"descricao": "III - Redução 45%, Entrada 20%, entrada à vista, Parcelas do saldo até 36, Máximo que pode ser amortizado com PF/BCN 30% (sobre a dívida consolidada após redução)",
"entrada": 0.2,
"reducao": 0.45,
"parcelas_entrada": 1,
"parcelas_do_saldo": 36,
"percentual_pfbcn": 0.3
},
"4": {
"id": "opcao3",
"name": 'opcao',
"descricao": "IV - Redução 35%, Entrada 15%, entrada à vista, Parcelas do saldo até 48, Máximo que pode ser amortizado com PF/BCN 30% (sobre a dívida consolidada após redução)",
"entrada": 0.15,
"reducao": 0.35,
"parcelas_entrada": 1,
"parcelas_do_saldo": 48,
"percentual_pfbcn": 0.3
},
"5": {
"id": "opcao3",
"name": 'opcao',
"descricao": "V - Redução 25%, Entrada 10%, entrada à vista, Parcelas do saldo até 60, Máximo que pode ser amortizado com PF/BCN 30% (sobre a dívida consolidada após redução)",
"entrada": 0.1,
"reducao": 0.25,
"parcelas_entrada": 1,
"parcelas_do_saldo": 60,
"percentual_pfbcn": 0.3
}
}
// EXCLUI TODAS AS LINHAS DE UMA TABELA - BOTAO LIMPAR
async function excluirLinhasTabela(tabela) {
// se a tabela tiver apenas cabeçalho, retorna
if (tabela.rows.length < 2) return;
const confirmacao = await modalComponente.showConfirmationModal("Confirmação", "Tem certeza que deseja apagar todos dados dessa tabela?")
if (! confirmacao) {
return;
}
var linhas = tabela.rows;
// Começa do final para evitar problemas com o índice mudando durante a remoção
for (var i = linhas.length - 1; i > 0; i--) {
tabela.deleteRow(i);
}
// ZERA OS TOTAIS DE DÉBITOS E CRÉDITOS CONFORME A TABELA
if (tabela.id === "tb-debitos-regularizar" ){
atualizarValorTotalDebitos();
}else{
atualizarValorTotalCreditos();
}
}
// Cria o cabeçalho da tabela Debitos
function criaCabecalhoDebitos() {
const colunasModelo1 = [
{ texto: 'Tipo de declaração', largura: '12%' },
{ texto: 'Data da entrega', largura: '12%' },
{ texto: 'CPF/CNPJ do débito', largura: '14%' },
{ texto: 'Número do processo/DEBCAD', largura: '14%' },
{ texto: 'Código Receita', largura: '9%' },
{ texto: 'Período Apuração', largura: '10%' },
{ texto: 'Vencimento do Tributo', largura: '12%' },
{ texto: 'Valor atualizado (principal + multa + juros)', largura: '12%' },
{ texto: 'Ações', largura: '5%', acoes: true }
];
const colunasModelo2e3 = [
{ texto: 'CPF/CNPJ do débito', largura: '20%' },
{ texto: 'Número do processo/DEBCAD', largura: '20%' },
{ texto: 'Código Receita', largura: '10%' },
{ texto: 'Período Apuração', largura: '15%' },
{ texto: 'Vencimento do Tributo', largura: '15%' },
{ texto: 'Valor atualizado (principal + multa + juros)', largura: '15%' },
{ texto: 'Ações', largura: '5%', acoes: true }
];
const thead = document.createElement('thead');
const tr = document.createElement('tr');
let colunas = [];
if (MODELO_EDITAL === 1) {
colunas = colunasModelo1;
} else if (MODELO_EDITAL === 2 || MODELO_EDITAL === 3) {
colunas = colunasModelo2e3;
}
colunas.forEach(coluna => {
const th = document.createElement('th');
th.textContent = coluna.texto;
th.classList.add("text-up-01", "p-2");
th.style.width = coluna.largura;
// Adicionar a classe "acoes" se necessário
if (coluna.acoes) {
th.classList.add('acoes');
}
tr.appendChild(th);
});
thead.appendChild(tr);
tbDebitosRegularizar.appendChild(thead);
}
criaCabecalhoDebitos();
// INCLUIR DEBTIO NA TABELA DEBITOS A REGULARIZAR
function incluirDebito() {
let novaLinha = bdDebitosRegularizar.insertRow(-1);
if (MODELO_EDITAL == 1){
for (var i = 0; i < 9; i++) {
var novaCelula = novaLinha.insertCell(i);
novaCelula.classList.add('p-2');
// TIPO DECLARAÇÃO (select)
if (i == 0) {
let tipoDeclaracao = document.createElement('br-select-component');
tipoDeclaracao.setAttribute('opcoes', 'getOpcoesTipoDeclaracao');
tipoDeclaracao.setAttribute('eName', 'Tipo de declaração');
tipoDeclaracao.setAttribute('inputClass', 'text-sm-down-01');
tipoDeclaracao.setAttribute('required', 'required');
novaCelula.appendChild(tipoDeclaracao);
}
// DATA ENTREGA (calendario)
if (i == 1) {
let dataEntrega = document.createElement('br-datepicker-component');
dataEntrega.setAttribute('eName', 'Data da entrega');
dataEntrega.setAttribute('inputClass', 'text-sm-down-01');
dataEntrega.setAttribute('required', 'required');
dataEntrega.setAttribute('maxdate', dataAtual);
novaCelula.appendChild(dataEntrega);
}
// CPF/CNPJ DEBITO (input)
if (i == 2) {
let cnpjCpf = document.createElement('br-input-component');
cnpjCpf.setAttribute('eName', 'CNPJ/CPF');
cnpjCpf.setAttribute('inputClass', 'text-sm-down-01');
cnpjCpf.setAttribute('required', 'required');
cnpjCpf.setAttribute('onchange', 'validarCNPJCPF');
novaCelula.appendChild(cnpjCpf);
}
// NÚMERO DO PROCESSO (input)
if (i == 3) {
let nProcesso = document.createElement('br-input-component');
nProcesso.setAttribute('eName', 'nProcesso');
nProcesso.setAttribute('inputClass', 'text-sm-down-01');
nProcesso.setAttribute('required', 'required');
nProcesso.setAttribute('onchange', 'validarProcesso');
novaCelula.appendChild(nProcesso);
}
// CODIGO DE RECEITA (input)
if (i == 4) {
let codReceita = document.createElement('br-input-component');
codReceita.setAttribute('eName', 'Código de receita');
codReceita.setAttribute('maxlength', 4);
codReceita.setAttribute('oninput', 'mascaraCodigoReceita');
codReceita.setAttribute('inputClass', 'text-sm-down-01');
codReceita.setAttribute('required', 'required');
novaCelula.appendChild(codReceita);
}
// PERIODO DE APURACAO (calendario)
if (i == 5) {
let periodoApuracao = document.createElement('br-datepicker-component');
periodoApuracao.setAttribute('eName', 'Período apuração');
periodoApuracao.setAttribute('inputClass', 'text-sm-down-01');
periodoApuracao.setAttribute('required', 'required');
periodoApuracao.setAttribute('maxdate', dataMesPassado);
novaCelula.appendChild(periodoApuracao);
}
// VENCIMENTO TRIBUTO (calendario)
if (i == 6) {
let vencimentoTributo = document.createElement('br-datepicker-component');
vencimentoTributo.setAttribute('eName', 'Vencimento do tributo');
vencimentoTributo.setAttribute('inputClass', 'text-sm-down-01');
vencimentoTributo.setAttribute('required', 'required');
vencimentoTributo.setAttribute('maxdate', dataAtual);
novaCelula.appendChild(vencimentoTributo);
}
// VALOR (input)
if (i == 7) {
let valor = document.createElement('br-input-component');
valor.setAttribute('eName', 'Valor');
valor.setAttribute('inputClass', 'text-sm-down-01 valorDebito');
valor.setAttribute('required', 'required');
valor.setAttribute('oninput', 'validarValor');
valor.setAttribute('onchange', 'atualizarValorTotalDebitos');
novaCelula.appendChild(valor);
}
// AÇÕES (botão)
if (i == 8){
novaCelula.classList.add('acoes');
let btnExcluir = document.createElement('button');
let iconeLixeira = document.createElement('i');
btnExcluir.classList.add('br-button');
iconeLixeira.classList.add('fa', 'fa-trash-alt');
btnExcluir.appendChild(iconeLixeira);
novaCelula.appendChild(btnExcluir);
btnExcluir.addEventListener('click', function () {
excluirLinha(this);
atualizarValorTotalDebitos();
});
}
}
}
if (MODELO_EDITAL == 2 || MODELO_EDITAL == 3){
for (var i = 0; i < 7; i++) {
var novaCelula = novaLinha.insertCell(i);
novaCelula.classList.add('p-2');
// CPF/CNPJ DEBITO (input)
if (i == 0) {
let cnpjCpf = document.createElement('br-input-component');
cnpjCpf.setAttribute('eName', 'CNPJ/CPF');
cnpjCpf.setAttribute('inputClass', 'text-sm-down-01');
cnpjCpf.setAttribute('required', 'required');
cnpjCpf.setAttribute('onchange', 'validarCNPJCPF');
novaCelula.appendChild(cnpjCpf);
}
// NÚMERO DO PROCESSO (input)
if (i == 1) {
let nProcesso = document.createElement('br-input-component');
nProcesso.setAttribute('eName', 'nProcesso');
nProcesso.setAttribute('inputClass', 'text-sm-down-01');
nProcesso.setAttribute('required', 'required');
nProcesso.setAttribute('onchange', 'validarProcesso');
novaCelula.appendChild(nProcesso);
}
// CODIGO DE RECEITA (select)
// if (i == 2) {
// let codReceita = document.createElement('br-select-component');
// codReceita.setAttribute('opcoes', 'getOpcoesCodReceita');
// codReceita.setAttribute('eName', 'Código de receita');
// codReceita.setAttribute('inputClass', 'text-sm-down-01');
// codReceita.setAttribute('required', 'required');
// novaCelula.appendChild(codReceita);
// }
// CODIGO DE RECEITA (input)
if (i == 2) {
let codReceita = document.createElement('br-input-component');
codReceita.setAttribute('eName', 'Código de receita');
codReceita.setAttribute('maxlength', 4);
codReceita.setAttribute('oninput', 'mascaraCodigoReceita');
codReceita.setAttribute('inputClass', 'text-sm-down-01');
codReceita.setAttribute('required', 'required');
novaCelula.appendChild(codReceita);
}
// PERIODO DE APURACAO (calendario)
if (i == 3) {
let periodoApuracao = document.createElement('br-datepicker-component');
periodoApuracao.setAttribute('eName', 'Período apuração');
periodoApuracao.setAttribute('inputClass', 'text-sm-down-01');
periodoApuracao.setAttribute('required', 'required');
periodoApuracao.setAttribute('maxdate', dataMesPassado);
novaCelula.appendChild(periodoApuracao);
}
// VENCIMENTO TRIBUTO (calendario)
if (i == 4) {
let vencimentoTributo = document.createElement('br-datepicker-component');
vencimentoTributo.setAttribute('eName', 'Vencimento do tributo');
vencimentoTributo.setAttribute('inputClass', 'text-sm-down-01');
vencimentoTributo.setAttribute('required', 'required');
vencimentoTributo.setAttribute('maxdate', dataAtual);
novaCelula.appendChild(vencimentoTributo);
}
// VALOR (input)
if (i == 5) {
let valor = document.createElement('br-input-component');
valor.setAttribute('eName', 'Valor');
valor.setAttribute('inputClass', 'text-sm-down-01 valorDebito');
valor.setAttribute('required', 'required');
valor.setAttribute('oninput', 'validarValor');
valor.setAttribute('onchange', 'atualizarValorTotalDebitos');
novaCelula.appendChild(valor);
}
// AÇÕES (botão)
if (i == 6){
novaCelula.classList.add('acoes');
let btnExcluir = document.createElement('button');
let iconeLixeira = document.createElement('i');
btnExcluir.classList.add('br-button');
iconeLixeira.classList.add('fa', 'fa-trash-alt');
btnExcluir.appendChild(iconeLixeira);
novaCelula.appendChild(btnExcluir);
btnExcluir.addEventListener('click', function () {
excluirLinha(this);
atualizarValorTotalDebitos();
});
}
}
}
}
// FUNÇÃO QUE ATUALIZA VALOR TOTAL DÉBITOS
function atualizarValorTotalDebitos(){
// limpa tabela de divida consolidada
limparTabelaDividaConsolidada();
// recupera todos os valores
let valores = document.getElementsByClassName('valorDebito');
// recupera input Total de Débitos a Regularizar
let inputTotalDebitosRegularizar = document.getElementById('total-debitos-regularizar');
if (!valores){
return;
}
let valorTemporario = 0;
for (let valor of valores){
valorTemporario += converteStringEmNumero(valor.value);
}
inputTotalDebitosRegularizar.value = converteNumeroEmReais(valorTemporario);
}
// ADICIONA LINHA NA TABELA CRÉDITOS PF/BCN TERCEIROS
function incluirCreditoTerceiros(tipoCredito){
if(tipoCredito != "PF" && tipoCredito !="BCN"){
tipoCredito = "PF";
};
var novaLinha = bdPfBcnTerceiros.insertRow(-1);
novaLinha.classList.add('credito-pf-bcn')
for (var i = 0; i < 7; i++) {
var novaCelula = novaLinha.insertCell(i);
novaCelula.classList.add('p-2');
// CNPJ CREDITO TERCEIROS (input)
if (i == 0) {
let cnpj = document.createElement('br-input-component');
cnpj.setAttribute('eName', 'CNPJ');
cnpj.setAttribute('required', 'required');
cnpj.setAttribute('onchange', 'validarCNPJ');
cnpj.setAttribute('data-opcional', 'obrigatorio');
novaCelula.appendChild(cnpj);
}
// TIPO CREDITO (input disabled) - depende de qual botão clicado (tipoCredito)
if (i == 1) {
let tipo = document.createElement('br-input-component');
tipo.setAttribute('eName', 'Tipo de crédito');
tipo.setAttribute('inputStyle', 'opacity:unset; border:0');
tipo.setAttribute('required', 'required');
tipo.setAttribute('isDisabled', 'disabled');
if (tipoCredito == "BCN"){
tipo.setAttribute('initValue', 'BCN da CSLL');
}else{
tipo.setAttribute('initValue', 'PF');
}
novaCelula.appendChild(tipo);
}
// MONTANTE (input)
if (i == 2) {
let montante = document.createElement('br-input-component');
montante.setAttribute('eName', 'Montante');
montante.setAttribute('required', 'required');
montante.setAttribute('oninput', 'validarValor');
montante.setAttribute('onchange', 'calcularLimiteValor');
montante.setAttribute('inputClass', 'montante');
montante.setAttribute('data-opcional', 'obrigatorio');
novaCelula.appendChild(montante);
}
// ALIQUOTA (input disabled) - depende de qual botão clicado (tipoCredito)
if (i == 3) {
let aliquota = document.createElement('br-select-component');
aliquota.setAttribute('eName', 'Alíquota');
aliquota.setAttribute('inputClass', 'aliquota text-sm-down-01');
aliquota.setAttribute('required', 'required');
if (tipoCredito == "BCN"){
aliquota.setAttribute('opcoes', 'getOpcoesAliquotasBCN');
}else{
aliquota.setAttribute('opcoes', 'getOpcoesAliquotasPF');
}
aliquota.setAttribute('onchange', 'calcularLimiteValor');
novaCelula.appendChild(aliquota);
}
// VALOR (input)
if (i == 4) {
let valor = document.createElement('br-input-component');
valor.setAttribute('eName', 'Valor');
valor.setAttribute('required', 'required');
valor.setAttribute('inputClass', 'valorCredito');
valor.setAttribute('data-opcional', 'obrigatorio');
valor.setAttribute('oninput', 'validarValor');
valor.setAttribute('onchange', 'calcularLimiteValor, atualizarValorTotalCreditos');
novaCelula.appendChild(valor);
}
// DATA ENTREGA ECF (calendario)
if (i == 5) {
let dataEntregaECF = document.createElement('br-datepicker-component');
dataEntregaECF.setAttribute('eName', 'Data entrega ECF');
dataEntregaECF.setAttribute('required', 'required');
dataEntregaECF.setAttribute('maxdate', dataAtual);
dataEntregaECF.setAttribute('data-opcional', 'obrigatorio');
novaCelula.appendChild(dataEntregaECF);
}
// AÇÕES (botão)
if (i == 6){
novaCelula.classList.add('acoes');
let btnExcluir = document.createElement('button');
let iconeLixeira = document.createElement('i');
btnExcluir.classList.add('br-button');
iconeLixeira.classList.add('fa', 'fa-trash-alt');
btnExcluir.appendChild(iconeLixeira);
novaCelula.appendChild(btnExcluir);
btnExcluir.addEventListener('click', function () {
excluirLinha(this);
atualizarValorTotalCreditos();
});
}
}
}
// FUNÇÃO QUE FAZ VALIDAÇÃO DO VALOR (LIMITADO A MONTANTE X ALIQUOTA)
function calcularLimiteValor(elemento) {
const container = elemento.closest('.credito-pf-bcn') || document;
// Localiza os elementos mais próximos com as classes específicas
const montanteInput = container.querySelector('.montante');
const aliquotaSelect = container.querySelector('.aliquota').closest('.br-select');
const valorInput = container.querySelector('.valorCredito');
// recupera valores
const montante = converteStringEmNumero(montanteInput.value || '0');
const aliquota = converteStringEmNumero(
aliquotaSelect.querySelector('.br-item.selected input[type="radio"]')? aliquotaSelect.querySelector('.br-item.selected input[type="radio"]').value : '0'
);
const valor = converteStringEmNumero(valorInput.value || '0');
if (montante === 0 && aliquota === 0) {
modalComponente.showModal('Atenção', 'Por favor, insira um montante e selecione uma alíquota válidos.', null,
'Entendi', null, modalComponente.closeModal.bind(modalComponente)
)
valorInput.value = '';
return;
}
if (montante === 0 && aliquota !== 0){
modalComponente.showModal('Atenção', 'Por favor, insira um montante válido.', null,
'Entendi', null, modalComponente.closeModal.bind(modalComponente)
)
valorInput.value = '';
return;
}
const limite = montante * (aliquota / 100);
if (valor > limite) {
if (aliquota ===0){
modalComponente.showModal('Atenção', 'Por favor, insira uma aliquota válida.', null,
'Entendi', null, modalComponente.closeModal.bind(modalComponente)
)
valorInput.value = '';
}
else{
modalComponente.showModal('Atenção', `O valor não pode exceder ${limite.toFixed(2)}.`, null,
'Entendi', null, modalComponente.closeModal.bind(modalComponente)
)
valorInput.value = '';
}
}
}
// FUNÇÃO QUE ATUALIZA VALOR TOTAL CRÉDITOS PF/BCN
function atualizarValorTotalCreditos(){
// limpa tabela de divida consolidada
limparTabelaDividaConsolidada();
// recupera todos os valores
let valores = document.getElementsByClassName('valorCredito');
// recupera input Total de Créditos PF/BCN
let inputTotalCreditosPFBCN = document.getElementById('total-creditos-pf-bcn');
if (!valores){
return;
}
let valorTemporario = 0;
for (let valor of valores){
if (valor.value){
valorTemporario += converteStringEmNumero(valor.value );
}
}
inputTotalCreditosPFBCN.value = converteNumeroEmReais(valorTemporario);
}
// CRIA RADIO COM AS OPÇÕES DE TRANSAÇÕES
function cria_opcoes_transacao(){
let divOpcoesTransacao = document.getElementById('opcao-transacao');
if (!OPCOES_TRANSACAO){
divOpcoesTransacao.innerHTML= "Não foram encontradas opções de transação"
}
for (let key in OPCOES_TRANSACAO){
let opcao = OPCOES_TRANSACAO[key]
let divLinha = document.createElement('div');
divLinha.classList.add('my-2x');
let brRadio = document.createElement('br-radio-horizontal-component');
brRadio.setAttribute("inputId", key);
brRadio.setAttribute("eName", opcao.name);
brRadio.setAttribute("label", opcao.descricao);
brRadio.setAttribute("required", '');
brRadio.setAttribute("onclick", "limparTabelaDividaConsolidada");
divLinha.appendChild(brRadio);
divOpcoesTransacao.appendChild(divLinha);
}
}
cria_opcoes_transacao();
// FUNCAO QUE CALCULA DIVIDA CONSOLIDADA
function calcularDividaConsolidada(){
// toda vez que clica no botão apaga a tabela de dívida consolidada
bdDividaConsolidada.innerHTML = "";
// recupera a opção de transação escolhida
const radios = document.querySelectorAll('input[name="opcao"]');
let selecionado = null;
radios.forEach((radio) => {
if (radio.checked) {
selecionado = radio.id;
}
});
if (!selecionado){
modalComponente.showModal('Atenção', 'Selecione uma das Opções de transação', null,
'Entendi', null, modalComponente.closeModal.bind(modalComponente)
)
}
let opcaoSelecionada = OPCOES_TRANSACAO[selecionado];
// Recupera total Débito e Crédito
let totalDebitos = converteStringEmNumero(document.getElementById('total-debitos-regularizar').value);
let totalCreditos = converteStringEmNumero(document.getElementById('total-creditos-pf-bcn').value);
let totalDividaConsolidadaSemReducao = totalDebitos;
let reducao = opcaoSelecionada.reducao;
let valorReducao = totalDividaConsolidadaSemReducao * reducao;
let dividaConsolidadaComReducao = totalDividaConsolidadaSemReducao - valorReducao;
let percentualMaximoPFBCN = opcaoSelecionada.percentual_pfbcn;
// VALIDAÇÃO CREDITOS
if (totalCreditos > (dividaConsolidadaComReducao * percentualMaximoPFBCN)){
modalComponente.showModal('Atenção', 'Valor da PF e BCN para amortização superior ao valor permitido da modadlidade selecionada. Deve-se alterar o valor do PF e BCN ou a modalidade selecionada', null,
'Entendi', null, modalComponente.closeModal.bind(modalComponente)
)
return;
}
let saldoDevedor = dividaConsolidadaComReducao - totalCreditos;
let percentualEntrada = opcaoSelecionada.entrada;
let valorEntrada = saldoDevedor * percentualEntrada;
let qtdParcelasEntrada = calcularMaximoParcelas(valorEntrada,opcaoSelecionada.parcelas_entrada);
let listaParcelasEntrada = Array.from({ length: qtdParcelasEntrada }, (_, i) => i + 1);
let saldoRestanteAParcelar = saldoDevedor - valorEntrada;
let qtdPrestacoes = calcularMaximoParcelas(saldoRestanteAParcelar, opcaoSelecionada.parcelas_do_saldo);
let listaParcelasPrestacoes = Array.from({ length: qtdPrestacoes }, (_, i) => i + 1);
// Cria tabela com cálculos da Divida Consolidada
for (let i=0; i< 17; i++){
var novaLinha = bdDividaConsolidada.insertRow(-1);
let novaCelulaLabel = novaLinha.insertCell();
novaCelulaLabel.classList.add('col-3', 'p-2');
let novaCelulaValor = novaLinha.insertCell();
novaCelulaValor.classList.add('col-1', 'p-2');
// DIVIDA CONSOLIDADA (input disabled)
if (i == 0){
let dividaConsolidadaLabel = document.createElement('br-input-component');
dividaConsolidadaLabel.setAttribute('eName', 'Dívida Consolidada');
dividaConsolidadaLabel.setAttribute('inputClass', 'text-bold');
dividaConsolidadaLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
dividaConsolidadaLabel.setAttribute('initValue', 'Dívida consolidada sem redução');
dividaConsolidadaLabel.setAttribute('isDisabled', true);
// dividaConsolidadaLabel.setAttribute('required', 'required');
// dividaConsolidadaLabel.setAttribute('onchange', 'validardividaConsolidada');
novaCelulaLabel.appendChild(dividaConsolidadaLabel);
let dividaConsolidadaValor = document.createElement('br-input-component');
dividaConsolidadaValor.setAttribute('eName', 'Valor');
dividaConsolidadaValor.setAttribute('inputClass', 'text-bold');
dividaConsolidadaValor.setAttribute('inputStyle', 'opacity:unset; border:0');
dividaConsolidadaValor.setAttribute('initValue', converteNumeroEmReais(totalDividaConsolidadaSemReducao));
dividaConsolidadaValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(dividaConsolidadaValor);
}
// REDUCAO (input disabled)
if (i == 1){
let reducaoLabel = document.createElement('br-input-component');
reducaoLabel.setAttribute('eName', 'Redução');
reducaoLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
reducaoLabel.setAttribute('initValue', 'Redução (%)');
reducaoLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(reducaoLabel);
let reducaoValor = document.createElement('br-input-component');
reducaoValor.setAttribute('eName', 'Valor');
reducaoValor.setAttribute('inputStyle', 'opacity:unset; border:0');
reducaoValor.setAttribute('initValue', (reducao * 100).toFixed(0) + " %");
reducaoValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(reducaoValor);
}
// Valor da Redução (input disabled)
if (i == 2){
let valorReducaoLabel = document.createElement('br-input-component');
valorReducaoLabel.setAttribute('eName', 'Valor da Redução');
valorReducaoLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
valorReducaoLabel.setAttribute('initValue', 'Valor da Redução');
valorReducaoLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(valorReducaoLabel);
let reducaoValor = document.createElement('br-input-component');
reducaoValor.setAttribute('eName', 'Valor');
reducaoValor.setAttribute('inputStyle', 'opacity:unset; border:0');
reducaoValor.setAttribute('initValue', converteNumeroEmReais(valorReducao));
reducaoValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(reducaoValor);
}
// Divida Consolidada Com Reducao (input disabled)
if (i == 3){
let dividaComReducaoLabel = document.createElement('br-input-component');
dividaComReducaoLabel.setAttribute('eName', 'Dívida Consolidada com Redução');
dividaComReducaoLabel.setAttribute('inputClass', 'text-bold');
dividaComReducaoLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
dividaComReducaoLabel.setAttribute('initValue', 'Dívida Consolidada com Redução');
dividaComReducaoLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(dividaComReducaoLabel);
let dividaComReducaoValor = document.createElement('br-input-component');
dividaComReducaoValor.setAttribute('inputClass', 'text-bold');
dividaComReducaoValor.setAttribute('eName', 'Valor');
dividaComReducaoValor.setAttribute('inputStyle', 'opacity:unset; border:0');
dividaComReducaoValor.setAttribute('initValue', converteNumeroEmReais(dividaConsolidadaComReducao));
dividaComReducaoValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(dividaComReducaoValor);
}
// Percentual máximo a ser amortizado PF/BCN (input disabled)
if (i == 4){
let percentualMaximoLabel = document.createElement('br-input-component');
percentualMaximoLabel.setAttribute('eName', 'Percentual máximo a ser amortizado PF/BCN');
percentualMaximoLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
percentualMaximoLabel.setAttribute('initValue', 'Percentual máximo a ser amortizado PF/BCN (%)');
percentualMaximoLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(percentualMaximoLabel);
let percentualMaximoValor = document.createElement('br-input-component');
percentualMaximoValor.setAttribute('eName', 'Valor');
percentualMaximoValor.setAttribute('inputStyle', 'opacity:unset; border:0');
percentualMaximoValor.setAttribute('initValue', (percentualMaximoPFBCN * 100).toFixed(0) + " %");
percentualMaximoValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(percentualMaximoValor);
}
// Valor amortizado com PF/BCN (input disabled)
if (i == 5){
let valorAmortizadoPFBCNLabel = document.createElement('br-input-component');
valorAmortizadoPFBCNLabel.setAttribute('eName', 'Valor amortizado com PF/BCN');
valorAmortizadoPFBCNLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
valorAmortizadoPFBCNLabel.setAttribute('initValue', 'Valor amortizado com PF/BCN');
valorAmortizadoPFBCNLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(valorAmortizadoPFBCNLabel);
let valorAmortizadoPFBCNValor = document.createElement('br-input-component');
valorAmortizadoPFBCNValor.setAttribute('inputStyle', 'opacity:unset; border:0');
valorAmortizadoPFBCNValor.setAttribute('eName', 'Valor');
valorAmortizadoPFBCNValor.setAttribute('initValue', converteNumeroEmReais(totalCreditos));
valorAmortizadoPFBCNValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(valorAmortizadoPFBCNValor);
}
// Saldo devedor (input disabled)
if (i == 6){
let saldoDevedorLabel = document.createElement('br-input-component');
saldoDevedorLabel.setAttribute('eName', 'Saldo devedor');
saldoDevedorLabel.setAttribute('inputClass', 'text-bold');
saldoDevedorLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
saldoDevedorLabel.setAttribute('initValue', 'Saldo devedor');
saldoDevedorLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(saldoDevedorLabel);
let saldoDevedorValor = document.createElement('br-input-component');
saldoDevedorValor.setAttribute('inputClass', 'text-bold');
saldoDevedorValor.setAttribute('eName', 'Valor');
saldoDevedorValor.setAttribute('inputStyle', 'opacity:unset; border:0');
saldoDevedorValor.setAttribute('initValue', converteNumeroEmReais(saldoDevedor));
saldoDevedorValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(saldoDevedorValor);
}
// Percentual de Entrada (input disabled)
if (i == 7){
let percentualEntradaLabel = document.createElement('br-input-component');
percentualEntradaLabel.setAttribute('eName', 'Percentual de Entrada');
percentualEntradaLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
percentualEntradaLabel.setAttribute('initValue', 'Percentual de Entrada (%)');
percentualEntradaLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(percentualEntradaLabel);
let percentualEntradaValor = document.createElement('br-input-component');
percentualEntradaValor.setAttribute('inputStyle', 'opacity:unset; border:0');
percentualEntradaValor.setAttribute('eName', 'Valor');
percentualEntradaValor.setAttribute('initValue', (percentualEntrada * 100).toFixed(0) + " %");
percentualEntradaValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(percentualEntradaValor);
}
// Valor da Entrada (input disabled)
if (i == 8){
let valorEntradaLabel = document.createElement('br-input-component');
valorEntradaLabel.setAttribute('eName', 'Valor da Entrada');
valorEntradaLabel.setAttribute('inputClass', 'text-bold');
valorEntradaLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
valorEntradaLabel.setAttribute('initValue', 'Valor da Entrada');
valorEntradaLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(valorEntradaLabel);
let valorEntradaValor = document.createElement('br-input-component');
valorEntradaValor.setAttribute('inputId', 'id-valor-entrada');
valorEntradaValor.setAttribute('eName', 'Valor');
valorEntradaValor.setAttribute('inputClass', 'text-bold');
valorEntradaValor.setAttribute('inputStyle', 'opacity:unset; border:0');
valorEntradaValor.setAttribute('initValue', converteNumeroEmReais(valorEntrada));
valorEntradaValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(valorEntradaValor);
}
// Quantidade parcela (s) da Entrada (select)
if (i == 9){
let qtdParcelasEntradaLabel = document.createElement('br-input-component');
qtdParcelasEntradaLabel.setAttribute('eName', 'Selecione a quantidade parcela (s) da Entrada');
qtdParcelasEntradaLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
qtdParcelasEntradaLabel.setAttribute('initValue', 'Selecione a quantidade parcela (s) da Entrada');
qtdParcelasEntradaLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(qtdParcelasEntradaLabel);
let qtdParcelasEntradaSelect = document.createElement('br-select-component');
qtdParcelasEntradaSelect.setAttribute('inputId', 'id-select-parcelas-entrada');
qtdParcelasEntradaSelect.setAttribute('eName', 'Valor');
qtdParcelasEntradaSelect.setAttribute('required', '');
qtdParcelasEntradaSelect.setAttribute('listaOpcoes', listaParcelasEntrada);
qtdParcelasEntradaSelect.setAttribute('onchangeFunc', 'atualizarParcelasEntrada');
novaCelulaValor.appendChild(qtdParcelasEntradaSelect);
}
// Valor da parcela de Entrada (input)
if (i == 10){
let valordaParcelaEntradaLabel = document.createElement('br-input-component');
valordaParcelaEntradaLabel.setAttribute('eName', 'Valor da parcela de Entrada');
valordaParcelaEntradaLabel.setAttribute('inputClass', 'text-bold');
valordaParcelaEntradaLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
valordaParcelaEntradaLabel.setAttribute('initValue', 'Valor da parcela de Entrada *');
valordaParcelaEntradaLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(valordaParcelaEntradaLabel);
let valordaParcelaEntradaValor = document.createElement('br-input-component');
valordaParcelaEntradaValor.setAttribute('inputId', 'id-valor-parcela-entrada');
valordaParcelaEntradaValor.setAttribute('eName', 'Valor');
valordaParcelaEntradaValor.setAttribute('inputClass', 'text-bold');
valordaParcelaEntradaValor.setAttribute('inputStyle', 'opacity:unset; border:0');
// valordaParcelaEntradaValor.setAttribute('initValue', converteNumeroEmReais(valorEntrada));
valordaParcelaEntradaValor.setAttribute('initValue', '0,00');
valordaParcelaEntradaValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(valordaParcelaEntradaValor);
}
// Saldo devedor após pagamento da entrada (input)
if (i == 11){
let saldoRestanteAParcelarLabel = document.createElement('br-input-component');
saldoRestanteAParcelarLabel.setAttribute('eName', 'Saldo devedor após pagamento da entrada');
saldoRestanteAParcelarLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
saldoRestanteAParcelarLabel.setAttribute('initValue', 'Saldo devedor após pagamento da entrada');
saldoRestanteAParcelarLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(saldoRestanteAParcelarLabel);
let saldoRestanteAParcelarValor = document.createElement('br-input-component');
saldoRestanteAParcelarValor.setAttribute('inputId', 'id-valor-saldo');
saldoRestanteAParcelarValor.setAttribute('eName', 'Valor');
saldoRestanteAParcelarValor.setAttribute('inputStyle', 'opacity:unset; border:0');
saldoRestanteAParcelarValor.setAttribute('initValue', converteNumeroEmReais(saldoRestanteAParcelar));
saldoRestanteAParcelarValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(saldoRestanteAParcelarValor);
}
// Quantidade de Prestações (select)
if (i == 12){
let qtdParcelasRestanteLabel = document.createElement('br-input-component');
qtdParcelasRestanteLabel.setAttribute('eName', 'Selecione a quantidade de Prestações');
qtdParcelasRestanteLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
qtdParcelasRestanteLabel.setAttribute('initValue', 'Selecione a quantidade de Prestações');
qtdParcelasRestanteLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(qtdParcelasRestanteLabel);
let qtdParcelasRestanteSelect = document.createElement('br-select-component');
qtdParcelasRestanteSelect.setAttribute('listaOpcoes', listaParcelasPrestacoes);
qtdParcelasRestanteSelect.setAttribute('eName', 'Valor');
qtdParcelasRestanteSelect.setAttribute('inputId', 'id-select-parcelas-saldo');
qtdParcelasRestanteSelect.setAttribute('required', '');
qtdParcelasRestanteSelect.setAttribute('onchangeFunc', 'atualizarParcelasSaldo');
novaCelulaValor.appendChild(qtdParcelasRestanteSelect);
}
// Valor prestação (input)
if (i == 13){
let valorParcelasRestanteLabel = document.createElement('br-input-component');
valorParcelasRestanteLabel.setAttribute('eName', 'Valor prestação');
valorParcelasRestanteLabel.setAttribute('inputClass', 'text-bold');
valorParcelasRestanteLabel.setAttribute('inputStyle', 'opacity:unset; border:0');
valorParcelasRestanteLabel.setAttribute('initValue', 'Valor prestação **');
valorParcelasRestanteLabel.setAttribute('isDisabled', true);
novaCelulaLabel.appendChild(valorParcelasRestanteLabel);
let valorParcelasRestanteValor = document.createElement('br-input-component');
valorParcelasRestanteValor.setAttribute('inputId', 'id-valor-parcela-saldo');
valorParcelasRestanteValor.setAttribute('eName', 'Valor');
valorParcelasRestanteValor.setAttribute('inputClass', 'text-bold');
valorParcelasRestanteValor.setAttribute('inputStyle', 'opacity:unset; border:0');
// valorParcelasRestanteValor.setAttribute('initValue', converteNumeroEmReais(saldoRestanteAParcelar));
valorParcelasRestanteValor.setAttribute('initValue', '0,00');
valorParcelasRestanteValor.setAttribute('isDisabled', true);
novaCelulaValor.appendChild(valorParcelasRestanteValor);
}
if (i == 14) {
let container = document.createElement('div');
container.innerHTML = `<p><span class="text-bold">* </span>O pagamento da entrada deverá ser realizado
até o último dia útil do mês do requerimetno da adesão </p>`
novaCelulaLabel.appendChild(container);
}
if (i == 15) {
let container = document.createElement('div');
container.innerHTML = `<p><span class="text-bold">** </span>A primeira parcela deverá ser paga até o último
dia útil do mês subsequente ao mês do vencimento da entrada e as demais parcelas deverão ser pagas até o
último dia útil dos meses subsequentes ao mês de vencimento da parcela anterior</p>`
novaCelulaLabel.appendChild(container);
}
if (i == 16) {
let container = document.createElement('div');
container.innerHTML = `<p>O valor de cada parcela, inclusive da parcela mínima, será acrescido de juros equivalentes
à taxa referencial do Sistema Especial de Liquidação e de Custódia (Selic) para títulos federais, acumulada mensalmente,
calculados a partir do mês subsequente ao da consolidação até o mês anterior ao do pagamento, e de 1% (um por cento)
relativamente ao mês em que o pagamento estiver sendo efetuado.</p>`
novaCelulaLabel.appendChild(container);
}
}
}
// FUNCÃO AUXILIAR QUE CALCULA QUANTIDADE DE PARCELAS
function calcularMaximoParcelas(valorTotal, maxParcelas) {
let valorMinimoParcela = 500;
// Se o valor total for menor que o valor mínimo da parcela, retorna 1 parcela
if (valorTotal <= valorMinimoParcela) {
return 1;
}
let numParcelas = maxParcelas;
// Verifica se o valor por parcela é menor que o valorMinimoParcela
while (valorTotal / numParcelas < valorMinimoParcela) {
numParcelas--;
}
return numParcelas;
}
function atualizarParcelasEntrada(){
let selectEntrada = document.getElementById('id-select-parcelas-entrada');
let valorEntrada = converteStringEmNumero(document.getElementById('id-valor-entrada').value);
let valorParcelaEntrada = document.getElementById('id-valor-parcela-entrada');
if (!selectEntrada){
valorParcelaEntrada.value = 0;
}
parcelaSelecionada = parseInt(selectEntrada.value);
valorParcelaEntrada.value = converteNumeroEmReais(valorEntrada/parcelaSelecionada);
}
function atualizarParcelasSaldo(){
let selectSaldo = document.getElementById('id-select-parcelas-saldo');
let valorSaldo = converteStringEmNumero(document.getElementById('id-valor-saldo').value);
let valorParcelaSaldo = document.getElementById('id-valor-parcela-saldo');
if (!selectSaldo){
return converteNumeroEmReais(valorSaldo);
}
parcelaSelecionada = parseInt(selectSaldo.value);
valorParcelaSaldo.value = converteNumeroEmReais(valorSaldo/parcelaSelecionada);
}
function mascaraCodigoReceita(e){
// Remove tudo o que não for dígito (evita letras, símbolos, etc.)
let valor = e.value.replace(/\D/g, '');
// Limita o valor para no máximo 4 dígitos
if (valor.length > 4) {
valor = valor.slice(0, 4);
}
// Atualiza o valor no campo com o resultado
e.value = valor;
}
function limparTabelaDividaConsolidada() {
bdDividaConsolidada.innerHTML = "";
}
</script>
</body>
</html>