Ir para o Conteúdo 1 Ir para a Página Inicial 2 Ir para o menu de Navegação 3 Ir para a Busca 4 Ir para o Mapa do site 5
Abrir menu principal de navegação
Receita Federal
Termos mais buscados
  • imposto de renda
  • inss
  • assinatura
  • cnh social
  • mei
Termos mais buscados
  • imposto de renda
  • inss
  • assinatura
  • Serviços
    • Serviços de A a Z
    • Auditorias Fiscais
      • Consultar procedimentos fiscais
      • Responder notificações
      • Obter laudo fiscal
    • Cadastros
      • Cidadão (CPF/CAEPF)
      • Pessoa Jurídica (CNPJ)
      • Imóvel Rural
      • Obra de Construção Civil
      • Grandes Contribuintes
      • Registros Especiais
    • Certidões e Atestados
      • Consultar certidões emitidas
      • Emitir certidão
      • Anular certidão
      • Obter atestado fiscal
    • Comércio Exterior
    • Comunicações Eletrônicas
      • Compartilhar dados fiscais
      • Consultar correio eletrônico
      • Consultar editais e ADEs
      • Optar pelo DTE
    • Declarações e Escriturações
      • Consultar informações
      • Entregar escrituração
      • Entregar declaração
      • Entregar documentos de malha
      • Cancelar declaração
      • Obter cópias de declarações
      • Simular cálculos
    • Defesas e Recursos
    • Interpretação e Programas
      • Consultar normas da RFB
      • Consultar soluções da RFB
      • Formalizar consulta de NCM
      • Formalizar consulta da legislação
    • Isenções e Regimes Especiais
    • Processos Digitais
      • Consultar processos
      • Juntar documentos a processo
      • Validar e assinar documentos
    • Autorizações de Acesso (Procurações)
      • Cadastrar ou cancelar procuração
      • Restringir procuração
    • Regularização de Impostos
      • Consultar dívidas e pendências
      • Pagar impostos
      • Alterar pagamentos
      • Consultar pagamentos
      • Parcelar dívidas
      • Consultar parcelamentos
      • Fazer acordo de transação
      • Revisar débitos e pendências
    • Restituições e Compensações
      • Consultar restituição
      • Obter restituição
      • Compensar impostos
    • Conveniados e Parceiros
      • Estados e Municípios
      • Rede Arrecadadora
      • Casa da Moeda
      • Outras Entidades
    • Reforma Tributária
      • Aderir ao Piloto da Reforma Tributária da Contribuição sobre Bens e Serviços (CBS)
  • Assuntos
    • Notícias
      • Todas as notícias
      • Arrecadação e Cobrança
      • Cidadania Fiscal
      • Combate ao contrabando
      • Combate à corrupção
      • Combate à sonegação
      • Institucional
      • Serviços
      • Tributação
    • Agenda Tributária
      • 2026
    • Taxas de Juros
    • Aduana e Comércio Exterior
      • Atendimento via e-CAC
      • Classificação Fiscal de Mercadorias
      • Controle de Carga e Trânsito (CCT)
      • Como Importar ou Exportar
      • Compras Internacionais
      • Guia do Viajante
      • Exportação
      • Importação
      • Intervenientes no Comércio Exterior
      • Manuais Aduaneiros
      • Operador Econômico Autorizado (OEA)
      • Regimes Aduaneiros Especiais
      • Remessas Internacionais
      • Serviços - Aduana
      • Siscomex
      • Notícias Aduaneiras
    • Meu CPF
    • Meu Imposto de Renda
    • Minhas Empresas e Negócios
    • Construção Civil
    • Leilão e Doação
    • Orientações sobre Processos Digitais
    • Transação Tributária
      • Termos de Transação Tributária individual Deferidos
    • Mais Orientações Tributárias
      • Fiscalização
      • Benefícios Fiscais
      • Cadastros
      • Cobranças e Intimações
      • Controles Fiscais Especiais
      • Declarações e Demonstrativos
      • Julgamento Administrativo
      • Pagamentos e Parcelamentos
      • Restituição, Ressarcimento, Reembolso e Compensação
      • Sigilo Fiscal
      • Tributos
  • Acesso à Informação
    • Institucional
      • Estrutura
      • Quem é Quem
      • Cadeia de Valor
      • Código de Conduta
      • Competências
      • História da Receita Federal
      • Planejamento Estratégico
      • Relações Internacionais
    • Ações e Programas
      • Ações, Atividades, Obras, Programas e Projetos
      • Carta de Serviços
      • Governança
    • Participação Social
      • Audiências e Consultas Públicas
      • Anos Anteriores
      • Conselhos e Órgãos Colegiados
      • Congressos
      • Ouvidoria
    • Auditorias
    • Convênios e Transferências
    • Receitas e Despesas
    • Licitações e Contratos
      • Avisos de Edital de Leilao
      • Contratos
      • Licitações
      • Relatórios
      • Anexos
    • Servidores
    • Serviço de Informação ao Cidadão (SIC)
      • Relatórios
      • Autoridade de Monitoramento
      • Como utilizar
    • Perguntas Frequentes
      • Benefícios Fiscais
      • Cadastros
      • Compartilhamento de Dados
      • Concursos Públicos
      • Construção Civil
      • Declaração de Serviços Médicos e de Saúde
      • Imposto de Renda
      • Isenção para compra de carro
      • Piloto da Reforma Tributária do Consumo
      • Programa Nacional de Apoio às Microempresas e Empresas de Pequeno Porte
      • Receita de Consenso
      • Serviços Digitais
      • Transação Tributária
    • Dados Abertos
    • Sanções Administrativas
      • Decisões de Processo Administrativo de Responsabilização
      • Notificações e Intimações em Processo Administrativo de Responsabilização
    • Privacidade e Proteção de Dados
      • Boas Práticas
      • Encarregado
      • Relatórios de Auditoria
      • Termo de Uso e Privacidade
    • Legislação e Jurisprudência
      • Legislação
      • Jurisprudência
    • Processos Seletivos
  • Canais de Atendimento
    • Digital
    • Portal e-CAC
    • Presencial
    • E-mail
    • Online (Chat)
    • Fale Conosco
    • Conveniados
    • Alfândegas
    • Imprensa
    • Ouvidoria
  • Centrais de Conteúdo
    • Atas e Pautas
      • Comitê Gestor do Programa de Produtividade da Receita Federal
      • Turmas Recursais - Atas e Pautas de Julgamento
      • Câmaras Recursais – Atas e Pautas de Julgamento
      • Comitê de Governança Institucional
    • Áudios
    • Editais
      • Editais Eletrônicos
      • Transação Tributária
      • Notificações e Intimações em Processo Administrativo de Responsabilização (PAR)
    • Formulários
      • Cadastros
      • Certidões
      • Comércio Exterior
      • Declarações
      • Impostos e Dívidas
      • Regimes Especiais
      • Outros Processos
      • Modelos de Documentos
      • Reforma Tributária
    • Imagens
    • Planilhas
    • Programas e Aplicativos
      • Apps para Celular e Tablet
      • Programas de Declaração
      • Programas do SPED
      • Restituição e Compensação
      • Receitanet
      • Validador de arquivos
    • Publicações
      • Acordos de Cooperação
      • Apresentações
      • Boletins
      • Documentos Técnicos
      • Estudos Tributários e Aduaneiros
      • Folheteria
      • Manuais
      • Materiais Didáticos
      • Modelos de Documentos
      • Passo a Passos
      • Perguntas e Respostas
      • Relatórios
      • Representações Fiscais
      • Revistas
      • Trabalhos Acadêmicos
      • Web Stories
    • Vídeos
      • TV Receita Federal
      • Cidadania Fiscal
      • Histórias de Trabalho
      • Mais Vídeos
  • Composição
  • Portais Relacionados
    • Empresas e Negócios
    • ENAT
    • eSocial
    • ITR Orientações para celebração de convênios
    • Nota Fiscal de Serviço Eletrônica (NFS-e)
    • Nota Fiscal Eletrônica
    • Nota Fiscal Eletrônica do Ouro (NF-e Ouro)
    • Portal CNIR
    • Procuradoria da Fazenda (PGFN)
    • Registrato
    • Simples Nacional
    • Sinter
    • Siscomex
    • Sped
  • GOV.BR
    • Serviços
      • Buscar serviços por
        • Categorias
        • Órgãos
        • Estados
      • Serviços por público alvo
        • Cidadãos
        • Empresas
        • Órgãos e Entidades Públicas
        • Demais segmentos (ONGs, organizações sociais, etc)
        • Servidor Público
    • Temas em Destaque
      • Orçamento Nacional
      • Redes de Atendimento do Governo Federal
      • Proteção de Dados Pessoais
      • Serviços para Imigrantes
      • Política e Orçamento Educacionais
      • Educação Profissional e Tecnológica
      • Educação Profissional para Jovens e Adultos
      • Trabalho e Emprego
      • Serviços para Pessoas com Deficiência
      • Combate à Discriminação Racial
      • Política de Proteção Social
      • Política para Mulheres
      • Saúde Reprodutiva da Mulher
      • Cuidados na Primeira Infância
      • Habitação Popular
      • Controle de Poluição e Resíduos Sólidos
    • Notícias
      • Serviços para o cidadão
      • Saúde
      • Agricultura e Pecuária
      • Cidadania e Assistência Social
      • Ciência e Tecnologia
      • Comunicação
      • Cultura e Esporte
      • Economia e Gestão Pública
      • Educação e Pesquisa
      • Energia
      • Forças Armadas e Defesa Civil
      • Infraestrutura
      • Justiça e Segurança
      • Meio Ambiente
      • Trabalho e Previdência
      • Turismo
    • Galeria de Aplicativos
    • Acompanhe o Planalto
    • Navegação
      • Acessibilidade
      • Mapa do Site
      • Termo de Uso e Aviso de Privacidade
    • Consultar minhas solicitações
    • Órgãos do Governo
    • Por dentro do Gov.br
      • Dúvidas Frequentes em relação ao Portal gov.br
      • Dúvidas Frequentes da conta gov.br
      • Ajuda para Navegar o Portal
      • Conheça os elementos do Portal
      • Política de e-participação
      • Termos de Uso
      • Governo Digital
      • Guia de Edição de Serviços do Portal Gov.br
    • Canais do Executivo Federal
    • Dados do Governo Federal
      • Dados Abertos
      • Painel Estatístico de Pessoal
      • Painel de Compras do Governo Federal
      • Acesso à Informação
    • Empresas e Negócios
Links Úteis
  • Galeria de Aplicativos
  • Participe
  • Galeria de Aplicativos
  • Participe
Redes sociais
  • Twitter
  • Instagram
  • YouTube
Você está aqui: Página Inicial Centrais de Conteúdo Formulários Impostos e Dívidas Transação Edital Controvérsia Agosto/2025 editais.html
Info

editais.html

Atualizado em 14/08/2025 10h10

text/html 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&amp;l=dataLayer&amp;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&amp;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>
  • Serviços
    • Serviços de A a Z
    • Auditorias Fiscais
      • Consultar procedimentos fiscais
      • Responder notificações
      • Obter laudo fiscal
    • Cadastros
      • Cidadão (CPF/CAEPF)
      • Pessoa Jurídica (CNPJ)
      • Imóvel Rural
      • Obra de Construção Civil
      • Grandes Contribuintes
      • Registros Especiais
    • Certidões e Atestados
      • Consultar certidões emitidas
      • Emitir certidão
      • Anular certidão
      • Obter atestado fiscal
    • Comércio Exterior
    • Comunicações Eletrônicas
      • Compartilhar dados fiscais
      • Consultar correio eletrônico
      • Consultar editais e ADEs
      • Optar pelo DTE
    • Declarações e Escriturações
      • Consultar informações
      • Entregar escrituração
      • Entregar declaração
      • Entregar documentos de malha
      • Cancelar declaração
      • Obter cópias de declarações
      • Simular cálculos
    • Defesas e Recursos
    • Interpretação e Programas
      • Consultar normas da RFB
      • Consultar soluções da RFB
      • Formalizar consulta de NCM
      • Formalizar consulta da legislação
    • Isenções e Regimes Especiais
    • Processos Digitais
      • Consultar processos
      • Juntar documentos a processo
      • Validar e assinar documentos
    • Autorizações de Acesso (Procurações)
      • Cadastrar ou cancelar procuração
      • Restringir procuração
    • Regularização de Impostos
      • Consultar dívidas e pendências
      • Pagar impostos
      • Alterar pagamentos
      • Consultar pagamentos
      • Parcelar dívidas
      • Consultar parcelamentos
      • Fazer acordo de transação
      • Revisar débitos e pendências
    • Restituições e Compensações
      • Consultar restituição
      • Obter restituição
      • Compensar impostos
    • Conveniados e Parceiros
      • Estados e Municípios
      • Rede Arrecadadora
      • Casa da Moeda
      • Outras Entidades
    • Reforma Tributária
      • Aderir ao Piloto da Reforma Tributária da Contribuição sobre Bens e Serviços (CBS)
  • Assuntos
    • Notícias
      • Todas as notícias
      • Arrecadação e Cobrança
      • Cidadania Fiscal
      • Combate ao contrabando
      • Combate à corrupção
      • Combate à sonegação
      • Institucional
      • Serviços
      • Tributação
    • Agenda Tributária
      • 2026
    • Taxas de Juros
    • Aduana e Comércio Exterior
      • Atendimento via e-CAC
      • Classificação Fiscal de Mercadorias
      • Controle de Carga e Trânsito (CCT)
      • Como Importar ou Exportar
      • Compras Internacionais
      • Guia do Viajante
      • Exportação
      • Importação
      • Intervenientes no Comércio Exterior
      • Manuais Aduaneiros
      • Operador Econômico Autorizado (OEA)
      • Regimes Aduaneiros Especiais
      • Remessas Internacionais
      • Serviços - Aduana
      • Siscomex
      • Notícias Aduaneiras
    • Meu CPF
    • Meu Imposto de Renda
    • Minhas Empresas e Negócios
    • Construção Civil
    • Leilão e Doação
    • Orientações sobre Processos Digitais
    • Transação Tributária
      • Termos de Transação Tributária individual Deferidos
    • Mais Orientações Tributárias
      • Fiscalização
      • Benefícios Fiscais
      • Cadastros
      • Cobranças e Intimações
      • Controles Fiscais Especiais
      • Declarações e Demonstrativos
      • Julgamento Administrativo
      • Pagamentos e Parcelamentos
      • Restituição, Ressarcimento, Reembolso e Compensação
      • Sigilo Fiscal
      • Tributos
  • Acesso à Informação
    • Institucional
      • Estrutura
      • Quem é Quem
      • Cadeia de Valor
      • Código de Conduta
      • Competências
      • História da Receita Federal
      • Planejamento Estratégico
      • Relações Internacionais
    • Ações e Programas
      • Ações, Atividades, Obras, Programas e Projetos
      • Carta de Serviços
      • Governança
    • Participação Social
      • Audiências e Consultas Públicas
      • Anos Anteriores
      • Conselhos e Órgãos Colegiados
      • Congressos
      • Ouvidoria
    • Auditorias
    • Convênios e Transferências
    • Receitas e Despesas
    • Licitações e Contratos
      • Avisos de Edital de Leilao
      • Contratos
      • Licitações
      • Relatórios
      • Anexos
    • Servidores
    • Serviço de Informação ao Cidadão (SIC)
      • Relatórios
      • Autoridade de Monitoramento
      • Como utilizar
    • Perguntas Frequentes
      • Benefícios Fiscais
      • Cadastros
      • Compartilhamento de Dados
      • Concursos Públicos
      • Construção Civil
      • Declaração de Serviços Médicos e de Saúde
      • Imposto de Renda
      • Isenção para compra de carro
      • Piloto da Reforma Tributária do Consumo
      • Programa Nacional de Apoio às Microempresas e Empresas de Pequeno Porte
      • Receita de Consenso
      • Serviços Digitais
      • Transação Tributária
    • Dados Abertos
    • Sanções Administrativas
      • Decisões de Processo Administrativo de Responsabilização
      • Notificações e Intimações em Processo Administrativo de Responsabilização
    • Privacidade e Proteção de Dados
      • Boas Práticas
      • Encarregado
      • Relatórios de Auditoria
      • Termo de Uso e Privacidade
    • Legislação e Jurisprudência
      • Legislação
      • Jurisprudência
    • Processos Seletivos
  • Canais de Atendimento
    • Digital
    • Portal e-CAC
    • Presencial
    • E-mail
    • Online (Chat)
    • Fale Conosco
    • Conveniados
    • Alfândegas
    • Imprensa
    • Ouvidoria
  • Centrais de Conteúdo
    • Atas e Pautas
      • Comitê Gestor do Programa de Produtividade da Receita Federal
      • Turmas Recursais - Atas e Pautas de Julgamento
      • Câmaras Recursais – Atas e Pautas de Julgamento
      • Comitê de Governança Institucional
    • Áudios
    • Editais
      • Editais Eletrônicos
      • Transação Tributária
      • Notificações e Intimações em Processo Administrativo de Responsabilização (PAR)
    • Formulários
      • Cadastros
      • Certidões
      • Comércio Exterior
      • Declarações
      • Impostos e Dívidas
      • Regimes Especiais
      • Outros Processos
      • Modelos de Documentos
      • Reforma Tributária
    • Imagens
    • Planilhas
    • Programas e Aplicativos
      • Apps para Celular e Tablet
      • Programas de Declaração
      • Programas do SPED
      • Restituição e Compensação
      • Receitanet
      • Validador de arquivos
    • Publicações
      • Acordos de Cooperação
      • Apresentações
      • Boletins
      • Documentos Técnicos
      • Estudos Tributários e Aduaneiros
      • Folheteria
      • Manuais
      • Materiais Didáticos
      • Modelos de Documentos
      • Passo a Passos
      • Perguntas e Respostas
      • Relatórios
      • Representações Fiscais
      • Revistas
      • Trabalhos Acadêmicos
      • Web Stories
    • Vídeos
      • TV Receita Federal
      • Cidadania Fiscal
      • Histórias de Trabalho
      • Mais Vídeos
  • Composição
  • Portais Relacionados
    • Empresas e Negócios
    • ENAT
    • eSocial
    • ITR Orientações para celebração de convênios
    • Nota Fiscal de Serviço Eletrônica (NFS-e)
    • Nota Fiscal Eletrônica
    • Nota Fiscal Eletrônica do Ouro (NF-e Ouro)
    • Portal CNIR
    • Procuradoria da Fazenda (PGFN)
    • Registrato
    • Simples Nacional
    • Sinter
    • Siscomex
    • Sped
Redefinir Cookies
Redes sociais
  • Twitter
  • Instagram
  • YouTube
Acesso àInformação
Todo o conteúdo deste site está publicado sob a licença Creative Commons Atribuição-SemDerivações 3.0 Não Adaptada.
Voltar ao topo da página
Fale Agora Refazer a busca