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
  • enem
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
    • 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
      • Parcelamentos Especiais
      • 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 Dabim atualizacao-imovel.html
Info

atualizacao-imovel.html

Atualizado em 23/09/2024 10h42

text/html atualizacao-imovel.html — 66 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" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Atualização de bem imóvel</title>

        <!-- 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/5.11.2/css/all.min.css" />

        <!--CSS GOVBR-->
        <link rel="stylesheet" href="./govbr/core.css" />

        <!--JS GOVBR-->
        <script src="./govbr/core.js"></script>

        <!--COMPONENTES-->
        <script src="./componentes/cabecalho/cabecalho.js"></script> <!--CABEÇALHO-->
        <script src="./componentes/rodape/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/custom-modal/custom-modal.js"></script> <!--CUSTOM MODAL-->
        
        <!--UTILS-->
        <script src="./bibliotecas/utils.js"></script> <!--DATEPICKER-->
        
        <!--GET OPCOES SELECT-->
        <script>
            function getOpcoesCodigo(){
                return   ["01 - Bens Imóveis - Prédio residencial",
                    "02 - Bens Imóveis - Prédio comercial",
                    "03 - Bens Imóveis - Galpão",
                    "11 - Bens Imóveis - Apartamento",
                    "12 - Bens Imóveis - Casa",
                    "13 - Bens Imóveis - Terreno",
                    "14 - Bens Imóveis - Imóvel rural",
                    "15 - Bens Imóveis - Sala ou conjunto",
                    "16 - Bens Imóveis - Construção",
                    "17 - Bens Imóveis - Benfeitorias",
                    "18 - Bens Imóveis - Loja",
                    "99 - Bens Imóveis - Outros bens imóveis"
                ]
            }

            function getOpcoesPais(){
                return ['Afeganistão', 'Albânia', 'Alemanha', 'Burkina Faso', 'Andorra', 'Angola', 'Anguilla', 'Antigua E Barbuda ', 'Antilhas Holandesas ', 'Arábia Saudita', 'Argélia', 'Argentina', 'Armênia', 'Aruba', 'Austrália', 'Áustria', 'Azerbaijão', 'Bahamas, Ilhas', 'Bahrein, Ilhas', 'Bangladesh', 'Barbados', 'Belarus, República da', 'Bélgica', 'Belize', 'Bermudas', 'Mianmar (Birmânia)', 'Bolívia', 'Bosnia-Herzegovina (República da)', 'Botsuana', 'Brasil', 'Brunei', 'Bulgária, República da', 'Burundi', 'Butão', 'Cabo Verde, República de', 'Cayman, Ilhas', 'Camboja', 'Camarões', 'Canadá', 'Jersey, Ilha do Canal', 'Canárias, Ilhas', 'Cazaquistao, República do', 'Catar', 'Chile', 'China, República Popular', 'Formosa (Taiwan)', 'Chipre', 'Cocos-Keeling, Ilhas', 'Colômbia', 'Comores, Ilhas', 'Congo', 'Cook, Ilhas', 'Coréia, Rep.Pop.Democrática ', 'Coréia, República da', 'Costa do Marfim', 'Croácia, República da', 'Costa Rica', 'Coveite', 'Cuba', 'Benin', 'Dinamarca ', 'Dominica, Ilha', 'Equador', 'Egito', 'Eritreia', 'Emirados Árabes Unidos', 'Espanha', 'Eslovênia, República da', 'Eslovaca, República', 'Estados Unidos', 'Estônia, República da', 'Etiópia', 'Falkland (Ilhas Malvinas) ', 'Feroe, Ilhas', 'Filipinas', 'Finlândia', 'França', 'Gabão', 'Gambia', 'Gana', 'Geórgia, República da ', 'Gibraltar', 'Granada', 'Grécia', 'Groenlândia', 'Guadalupe', 'Guam', 'Guatemala', 'Guiana Francesa', 'Guiné', 'Guiné-Equatorial', 'Guiné-Bissau', 'Guiana', 'Haiti', 'Honduras', 'Hong Kong', 'Hungria, República da ', 'Iemen', 'Man, Ilha de', 'Índia', 'Indonésia', 'Iraque', 'Irã, República Islâmica do ', 'Irlanda', 'Islândia', 'Israel', 'Itália', 'Jamaica', 'Johnston, Ilhas ', 'Japão', 'Jordânia', 'Kiribati', 'Laos, Rep.Pop.Democr.do', 'Lebuan, Ilhas', 'Lesoto', 'Letônia, República da', 'Líbano', 'Libéria', 'Líbia', 'Liechtenstein', 'Lituânia, República da', 'Luxemburgo', 'Macau', 'Macedônia, Ant.Rep.Iugoslava', 'Madagascar', 'Madeira, Ilha da', 'Malásia', 'Malavi', 'Maldivas', 'Mali', 'Malta', 'Marianas do Norte', 'Marrocos', 'Marshall, Ilhas', 'Martinica', 'Maurício', 'Mauritânia', 'Midway, Ilhas', 'México', 'Moldavia, República da', 'Mônaco', 'Mongólia', 'Montenegro', 'Micronésia', 'Montserrat, Ilhas', 'Moçambique', 'Namíbia', 'Nauru', 'Christmas,Ilhas (Navidad)', 'Nepal', 'Nicarágua', 'Niger', 'Nigéria', 'Niue, Ilha', 'Norfolk, Ilha', 'Noruega', 'Nova Caledônia', 'Papua Nova Guiné', 'Nova Zelândia', 'Vanuatu', 'Omã', 'Pacífico, Ilhas do (possessão dos EUA) ', 'Países Baixos (Holanda)', 'Palau', 'Paquistão', 'Panamá', 'Paraguai', 'Peru', 'Pitcairn, Ilha De', 'Polinésia Francesa', 'Polônia, República da', 'Portugal', 'Porto Rico', 'Quênia', 'Quirguiz, República da', 'Reino Unido', 'República Centro-Africana', 'República Dominicana', 'Reunião, Ilha', 'Zimbabue', 'Romênia', 'Ruanda', 'Rússia, Federação da', 'Salomão, Ilhas', 'Saint Kitts e Nevis', 'Saara Ocidental', 'El Salvador', 'Samoa', 'Samoa Americana', 'São Cristovão e Neves, Ilhas', 'San Marino', 'São Pedro e Miquelon', 'São Vicente e Granadinas', 'Santa Helena', 'Santa Lúcia', 'São Tomé e Príncipe, Ilhas', 'Senegal', 'Seychelles', 'Serra Leoa', 'Servia', 'Cingapura', 'Síria, República Árabe da', 'Somália', 'Sri Lanka', 'Suazilândia', 'África do Sul', 'Sudão', 'Suécia', 'Suíça', 'Suriname', 'Tadjiquistão, República do', 'Tailândia', 'Tanzania, Rep. Unida da', 'Território Britânico no Oceano Índico', 'Djibuti', 'Chade', 'Tcheca, República', 'Timor Leste', 'Togo', 'Toquelau, Ilhas', 'Tonga', 'Trinidad e Tobago', 'Tunísia', 'Turcas e Caicos, Ilhas', 'Turcomenistão, República do', 'Turquia', 'Tuvalu', 'Ucrânia', 'Uganda', 'Uruguai', 'Uzbequistão, República do', 'Vaticano, Est. da Cidade do', 'Venezuela', 'Vietnã', 'Virgens, Ilhas (Britânicas)', 'Virgens, Ilhas (E.U.A.)', 'Fiji', 'Wake, Ilha', 'Wallis e Futuna, Ilhas', 'Congo, República Democrática do', 'Zâmbia', 'Delegação Especial da Palestina'];
            }

            function getOpcoesIdentificacao(){
                return ['Pessoa Física', 'Pessoa Jurídica']
            }
        </script>


        <!--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>

    </head>

    <body style="min-height: 150vh !important;">

        <!--CABECALHO-->
        <section id="id-cabecalho">
            <br-cabecalho></br-cabecalho>
        </section>

        <!--SECAO DE IDENTIFICADO CONTRIBUINTE-->
        <section class="mb-5 toPdf" id="id-identificacao-contribuinte" name="Seção Identificação do contribuinte">
            <div class="container-lg">

                <!--TITULO-->
                <div class="row">
                    <div class="col">
                        <div class="mb-5">
                            <h2>Identificação do contribuinte</h2>
                        </div>
                    </div>
                </div>

                <!--FORMULARIO-->
                <div id="id-formulario-identificacao" class="row">

                    <!--IDENTIFICACAO-->
                    <div class="col-4">
                        <div class="mb-5">
                            <br-select-component inputId="id-identificacao" label="Identificação:" eName="Identificação" 
                                opcoes="getOpcoesIdentificacao" onChangeFunc="excluirLinhasTabela('tb-detalhamento-imoveis')" required>
                            </br-select-component>
                        </div>
                    </div>

                    <!-- DIV PARA CAMPOS DE IDENTIFICAÇÃO (NOME E NI) -->
                    <div id="id-campos-identificacao"></div>

                </div>
            </div>
        </section>

        <!--SECAO DETALHAMENTO DOS IMOVEIS-->
        <section class="mb-5 toPdf" id="id-detalhamento-imoveis" name="Seção Detalhamento dos Bens Imóveis">
            <div class="container-lg">
                <div class="row">
                    <div class="col">
                        <div class="mb-5">
                            <h2>Detalhamento dos bens imóveis</h2>
                        </div>
                        <div class="br-table">
                            <table id="tb-detalhamento-imoveis" name="Tabela Detalhamento dos Bens Imóveis" class="mb-5" required>
                            <thead>
                                <tr>
                                    <th class="text-up-01 p-2" colspan="8">Tabela com relação de imóveis</th>
                                </tr>
                            </thead>
                            <tbody id="bd-detalhamento-imoveis"></tbody>
                            </table>
            
                            <!--BOTOES LIMPAR E INCLUIR NOVO DEBITO-->
                            <div id="btn-add-debitos-a-regularizar" class="botao">
                                <button onclick="excluirLinhasTabela('tb-detalhamento-imoveis', true)" class="br-button mr-3">Limpar</button>
                                <button onclick="incluirImovelLinhaDupla()" class="br-button secondary mr-3">Incluir novo imóvel</button>
                                <button id="btn-apurar-tributos" onclick="apurarTributos('tb-detalhamento-imoveis')" class="br-button secondary mr-3">Apurar tributos</button>
                            </div>
            
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!--SECAO APURACAO DOS TRIBUTOS-->
        <section class="mb-5 toPdf d-none pageBreak" id="id-apuracao-tributos" name="Seção Apuração dos Tributos">
            <div class="container-lg">
                <div class="row">
                    <div class="col">
                        <div class="mb-5">
                            <h2>Apuração consolidada dos tributos</h2>
                        </div>
                        <div class="br-table">
                            <table id="tb-apuracao-tributos" name="Tabela Apuração dos Tributos" class="mb-5" required>
                                <thead id="head-apuracao-tributos"></thead>
                                <tbody id="bd-apuracao-tributos"></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 id="btn-gerar-documento" 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 GOVBR-->
        <section id="id-modal">
            <custom-modal></custom-modal>
        </section>

        <!--CONFIRMATION MODAL-->
        <div id="confirmation-modal" class="div br-modal medium align-self-center d-none" aria-modal="true" role="dialog" aria-labelledby="modal-title" style="position: absolute; top:40%;">
            <div class="br-modal-header">
            <div class="modal-title" id="modal-title">ATENÇÃO</div>
            <button class="br-button close circle" type="button" data-dismiss="br-modal" aria-label="Fechar" id="btn-close"><i class="fas fa-times" aria-hidden="true"></i>
            </button>
            </div>
            <div class="br-modal-body" id="modal-message">
            <!-- <p></p> -->
            </div>
            <div class="br-modal-footer justify-content-end">
            <button class="br-button primary ml-2" type="button" id="btn-entendi">Entendi</button>
            <button class="br-button primary ml-2" type="button" id="btn-sim">Sim</button>
            <button class="br-button primary ml-2" type="button" id="btn-nao">Não</button>
            </div>
        </div>

        <!--RODAPE-->
        <section id="id-rodape">
            <br-rodape></br-rodape>
        </section>

        <!--COOKIE BAR-->
        <section id="id-cookiebar">
            <div class="br-cookiebar default" tabindex="-1"></div>
        </section>

        <!-- JAVASCRIPT PARA CUSTOM-MODAL -->
        <script>
            const modalComponent = document.querySelector('custom-modal');

            function showAlertModal(mensagem) {
                modalComponent.showModal(mensagem);
            }

            // ESCONDE MODAL
            function closeModal() {
                modalComponent.classList.add('d-none');
                let buttons = document.querySelectorAll('button:not(#custom-modal button), input');
                buttons.forEach(function(button) {
                    button.disabled = false;
                });
            }
        </script>

        <script>
            ////////// VARIÁVEIS //////////
            let tbDetalhamentoImoveis = document.querySelector('#tb-detalhamento-imoveis');
            let bdDetalhamentoImoveis = document.querySelector('#bd-detalhamento-imoveis');
            let secoesToPdf = document.querySelectorAll('.toPdf');
            let secaoConteudoPdf = document.querySelector('#id-conteudo-pdf');
            let secaoApuracaoTributos = document.querySelector('#id-apuracao-tributos');
            let selectIdentificacao = document.querySelector('[inputid="id-identificacao"]');

            selectIdentificacao.addEventListener('input', () => {
                let valorSelecionado = getSelectedValue('id-identificacao');
                let divCamposIdentificacao = document.querySelector("#id-campos-identificacao");
                divCamposIdentificacao.innerHTML = '';
                divCamposIdentificacao.classList.add('col-8');
                let divRow = document.createElement('div');
                divRow.classList.add('row');
                
                if (valorSelecionado === "Pessoa Física"){
                    //cria células para Nome Completo
                    let celulaNomeCompleto = document.createElement('div');
                    let divNomeCompleto = document.createElement('div'); 
                    let inputNomeCompleto = document.createElement('br-input');
                    inputNomeCompleto.setAttribute('eName', 'Nome Completo');
                    inputNomeCompleto.setAttribute('label', 'Nome Completo:');
                    inputNomeCompleto.setAttribute('inputId', 'id-nome-completo');
                    inputNomeCompleto.setAttribute('required', 'required');
                    divNomeCompleto.appendChild(inputNomeCompleto);
                    celulaNomeCompleto.appendChild(divNomeCompleto);
                    divNomeCompleto.classList.add('mb-5')
                    celulaNomeCompleto.classList.add('col-6');
                    // cria células para CPF
                    let celulaCPF = document.createElement('div');  
                    let divCPF = document.createElement('div');  
                    let inputCPF = document.createElement('br-input');
                    inputCPF.setAttribute('eName', 'CPF');
                    inputCPF.setAttribute('label', 'CPF:');
                    inputCPF.setAttribute('inputId', 'id-cpf');
                    inputCPF.setAttribute('maxlength', '11');
                    inputCPF.setAttribute('placeholder', 'somente números');
                    inputCPF.setAttribute('required', 'required');
                    inputCPF.setAttribute('onChange', 'validarCPF');
                    divCPF.appendChild(inputCPF);
                    celulaCPF.appendChild(divCPF);
                    divCPF.classList.add('mb-5');
                    celulaCPF.classList.add('col-6');
                    
                    // coloca as células criadas na div
                    divRow.appendChild(celulaNomeCompleto);
                    divRow.appendChild(celulaCPF);
                    divCamposIdentificacao.appendChild(divRow);

                }
                else if (valorSelecionado === "Pessoa Jurídica"){
                    //cria células para Nome Completo
                    let celulaNomeEmpresarial = document.createElement('div');  
                    let divNomeEmpresarial = document.createElement('div');  
                    let inputNomeEmpresarial = document.createElement('br-input');
                    inputNomeEmpresarial.setAttribute('eName', 'Nome Empresarial');
                    inputNomeEmpresarial.setAttribute('label', 'Nome Empresarial:');
                    inputNomeEmpresarial.setAttribute('inputId', 'id-nome-empresarial');
                    inputNomeEmpresarial.setAttribute('required', 'required');
                    divNomeEmpresarial.appendChild(inputNomeEmpresarial);
                    celulaNomeEmpresarial.appendChild(divNomeEmpresarial);
                    divNomeEmpresarial.classList.add('mb-5');
                    celulaNomeEmpresarial.classList.add('col-6');
                    // cria células para CPF
                    let celulaCNPJ = document.createElement('div');  
                    let divCNPJ = document.createElement('div');  
                    let inputCNPJ = document.createElement('br-input');
                    inputCNPJ.setAttribute('eName', 'CNPJ');
                    inputCNPJ.setAttribute('label', 'CNPJ:');
                    inputCNPJ.setAttribute('inputId', 'id-cnpj');
                    inputCNPJ.setAttribute('maxlength', '14');
                    inputCNPJ.setAttribute('placeholder', 'somente números');
                    inputCNPJ.setAttribute('required', 'required');
                    inputCNPJ.setAttribute('onChange', 'validarCNPJ');
                    divCNPJ.appendChild(inputCNPJ);
                    celulaCNPJ.appendChild(divCNPJ);
                    divCNPJ.classList.add('mb-5');
                    celulaCNPJ.classList.add('col-6');

                    // coloca as células criadas na div
                    divRow.appendChild(celulaNomeEmpresarial);
                    divRow.appendChild(celulaCNPJ);
                    divCamposIdentificacao.appendChild(divRow);
                }
                else{
                    showAlertModal('Erro ao selecionar Identificação do Contribuinte.')
                }
            });


            // FUNCAO DE ENTRADA INCLUIR LINHA DUPLA TABELA
            function incluirImovelLinhaDupla(){

                if (!validarCamposRequiredNaSecao('id-identificacao-contribuinte')) {
                    showAlertModal('Existem campos obrigatórios não preenchidos.');
                    return
                }

                let contribuinte = getSelectedValue('id-identificacao');

                if (contribuinte === 'Pessoa Física') {
                    incluirImovelLinhaDuplaIrpf();
                } else {
                    incluirImovelLinhaDuplaIrpj();
                }
            }

            let linhaContador = 1;

            //ICLUIR LINHA DUPLA EM TABELA
            function incluirImovelLinhaDuplaIrpf(){

                let novaLinha = bdDetalhamentoImoveis.insertRow(-1);

                for (let j = 0; j < 2; j++) {
                    var novaCelula = novaLinha.insertCell(j);
                    novaCelula.classList.add('p-2');

                    if (j === 0){
                        // inclui contador de imóvel
                        let contador = document.createElement('span');
                        contador.className = 'line-counter';
                        contador.innerText = `Imóvel ${linhaContador}`;
                        novaCelula.appendChild(contador);
                        linhaContador += 1;

                        novaCelula.setAttribute('colspan', '6');
                        let container = document.createElement('div');

                        // LACO PARA INSERIR OS COMPONENTES NAS DIVS
                        for (let z = 0; z < 2; z++){

                            // CRIA DIV PARA CADA COMPONENTE
                            let divComponente = document.createElement('div');
                            divComponente.classList.add('mt-3', 'col-4')
                            
                            // CODIGO (SELECT)
                            if (z === 0) {
                                let codigo = document.createElement('br-select-component');
                                codigo.setAttribute('opcoes', 'getOpcoesCodigo');
                                codigo.setAttribute('eName', 'codigo');
                                codigo.setAttribute('label', 'Código');
                                // codigo.setAttribute('inputClass', 'text-sm-down-01');
                                codigo.setAttribute('required', 'required');
                                divComponente.appendChild(codigo);
                                container.appendChild(divComponente);
                            }

                            // PAIS (SELECT)
                            if (z === 1) {
                                let pais = document.createElement('br-select-component');
                                pais.setAttribute('opcoes', 'getOpcoesPais');
                                pais.setAttribute('eName', 'País');
                                pais.setAttribute('label', 'País');
                                // pais.setAttribute('inputClass', 'text-sm-down-01');
                                pais.setAttribute('required', 'required');
                                divComponente.appendChild(pais);
                                container.appendChild(divComponente);
                            }
                        
                        }

                        container.classList.add('row');
                        novaCelula.appendChild(container);

                        let container2 = document.createElement('div');

                        for (let w = 0; w < 4; w++){

                            // CRIA DIV PARA CADA COMPONENTE
                            let divComponente2 = document.createElement('div');
                            divComponente2.classList.add('mt-3', 'col-3')
                            
                            // CUSTO DE AQUISICAO (INPUT)
                            if (w === 0) {
                                let custoAquisicao = document.createElement('br-input');
                                custoAquisicao.setAttribute('eName', 'Custo de aquisição');
                                custoAquisicao.setAttribute('label', 'Custo de aquisição (R$)');
                                custoAquisicao.setAttribute('inputId', 'id-custo-de-aquisicao');
                                custoAquisicao.setAttribute('required', 'required');
                                custoAquisicao.setAttribute('onchange', 'validarValor, calcularImpostoPf');
                                divComponente2.appendChild(custoAquisicao);
                                container2.appendChild(divComponente2);
                            }

                            // VALOR ATUALIZADO 2024 (INPUT)
                            if (w === 1) {
                                let valorAtualizado = document.createElement('br-input');
                                valorAtualizado.setAttribute('eName', 'Valor atualizado em 2024');
                                valorAtualizado.setAttribute('label', 'Valor atualizado em 2024 (R$)');
                                valorAtualizado.setAttribute('inputId', 'id-valor-atualizado');
                                valorAtualizado.setAttribute('onchange', 'validarValor, calcularImpostoPf');
                                valorAtualizado.setAttribute('required', 'required');
                                divComponente2.appendChild(valorAtualizado);
                                container2.appendChild(divComponente2);
                            }

                            // BASE DE CALCULO (INPUT DISABLED)
                            if (w === 2) {
                                let baseDeCalculo = document.createElement('br-input');
                                baseDeCalculo.setAttribute('eName', 'Base de cálculo');
                                baseDeCalculo.setAttribute('label', 'Base de cálculo (R$)');
                                baseDeCalculo.setAttribute('inputId', 'id-base-de-calculo');
                                baseDeCalculo.setAttribute('inputClass', 'border-gray-90 text-weight-bold');
                                baseDeCalculo.setAttribute('required', 'required');
                                baseDeCalculo.setAttribute('isDisabled', 'disabled');
                                divComponente2.appendChild(baseDeCalculo);
                                container2.appendChild(divComponente2);
                            }

                            // IRPF (INPUT DISABLED)
                            if (w === 3) {
                                let irpf = document.createElement('br-input');
                                irpf.setAttribute('eName', 'irpf');
                                irpf.setAttribute('label', 'IRPF (R$)');
                                irpf.setAttribute('inputId', 'id-irpf');
                                irpf.setAttribute('inputClass', 'border-gray-90 text-weight-bold');
                                irpf.setAttribute('required', 'required');
                                irpf.setAttribute('isDisabled', 'disabled');
                                divComponente2.appendChild(irpf);
                                container2.appendChild(divComponente2);
                            }
                        }

                        container2.classList.add('row');
                        novaCelula.appendChild(container2);

                        let containerTextarea = document.createElement('div');
                        containerTextarea.classList.add('mt-3', 'row');
                        let descricao = document.createElement('br-textarea');
                        descricao.setAttribute('label', 'Identificação do imóvel (informar descrição e endereço completo)');
                        descricao.setAttribute('eName', 'Descrição');
                        descricao.setAttribute('maxlength', '500');
                        descricao.setAttribute('textareaClass', 'col-12');
                        descricao.setAttribute('rows', '5');
                        descricao.setAttribute('required', 'required');
                        containerTextarea.appendChild(descricao);
                        novaCelula.appendChild(containerTextarea);


                    }

                    if (j === 1) {
                        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);
                        });
                    }      
                }
            }


            //ICLUIR LINHA DUPLA EM TABELA
            function incluirImovelLinhaDuplaIrpj(){

                let novaLinha = bdDetalhamentoImoveis.insertRow(-1);

                for (let j = 0; j < 2; j++) {
                    var novaCelula = novaLinha.insertCell(j);
                    novaCelula.classList.add('p-2');

                    if (j === 0){
                        // inclui contador de imóvel
                        let contador = document.createElement('span');
                        contador.className = 'line-counter';
                        contador.innerText = `Imóvel ${linhaContador}`;
                        novaCelula.appendChild(contador);
                        linhaContador += 1;

                        novaCelula.setAttribute('colspan', '6');
                        let container = document.createElement('div');

                        // LACO PARA INSERIR OS COMPONENTES NAS DIVS
                        for (let z = 0; z < 2; z++){

                            // CRIA DIV PARA CADA COMPONENTE
                            let divComponente = document.createElement('div');
                            divComponente.classList.add('mt-3', 'col-4')
                            
                            // CODIGO (SELECT)
                            if (z === 0) {
                                let codigo = document.createElement('br-select-component');
                                codigo.setAttribute('opcoes', 'getOpcoesCodigo');
                                codigo.setAttribute('eName', 'codigo');
                                codigo.setAttribute('label', 'Código');
                                // codigo.setAttribute('inputClass', 'text-sm-down-01');
                                codigo.setAttribute('required', 'required');
                                divComponente.appendChild(codigo);
                                container.appendChild(divComponente);
                            }

                            // PAIS (SELECT)
                            if (z === 1) {
                                let pais = document.createElement('br-select-component');
                                pais.setAttribute('opcoes', 'getOpcoesPais');
                                pais.setAttribute('eName', 'País');
                                pais.setAttribute('label', 'País');
                                // pais.setAttribute('inputClass', 'text-sm-down-01');
                                pais.setAttribute('required', 'required');
                                divComponente.appendChild(pais);
                                container.appendChild(divComponente);
                            }
                        
                        }

                        container.classList.add('row');
                        novaCelula.appendChild(container);

                        let container2 = document.createElement('div');

                        for (let w = 0; w < 5; w++){

                            // CRIA DIV PARA CADA COMPONENTE
                            let divComponente2 = document.createElement('div');
                            divComponente2.classList.add('mt-3')
                            
                            // CUSTO DE AQUISICAO (INPUT)
                            if (w === 0) {
                                divComponente2.classList.add('col-3');
                                let custoAquisicao = document.createElement('br-input');
                                custoAquisicao.setAttribute('eName', 'Custo de aquisição');
                                custoAquisicao.setAttribute('label', 'Custo de aquisição (R$)');
                                custoAquisicao.setAttribute('inputId', 'id-custo-de-aquisicao');
                                custoAquisicao.setAttribute('required', 'required');
                                custoAquisicao.setAttribute('onchange', 'validarValor, calcularImpostoPj');
                                divComponente2.appendChild(custoAquisicao);
                                container2.appendChild(divComponente2);
                            }

                            // VALOR ATUALIZADO 2024 (INPUT)
                            if (w === 1) {
                                divComponente2.classList.add('col-3');
                                let valorAtualizado = document.createElement('br-input');
                                valorAtualizado.setAttribute('eName', 'Valor atualizado em 2024');
                                valorAtualizado.setAttribute('label', 'Valor atualizado em 2024 (R$)');
                                valorAtualizado.setAttribute('inputId', 'id-valor-atualizado');
                                valorAtualizado.setAttribute('required', 'required');
                                valorAtualizado.setAttribute('onchange', 'validarValor, calcularImpostoPj');
                                divComponente2.appendChild(valorAtualizado);
                                container2.appendChild(divComponente2);
                            }

                            // BASE DE CALCULO (INPUT DISABLED)
                            if (w === 2) {
                                divComponente2.classList.add('col-2');
                                let baseDeCalculo = document.createElement('br-input');
                                baseDeCalculo.setAttribute('eName', 'Base de cálculo');
                                baseDeCalculo.setAttribute('label', 'Base de cálculo (R$)');
                                baseDeCalculo.setAttribute('inputId', 'id-base-de-calculo');
                                baseDeCalculo.setAttribute('inputClass', 'border-gray-90 text-weight-bold');
                                baseDeCalculo.setAttribute('required', 'required');
                                baseDeCalculo.setAttribute('isDisabled', 'disabled');
                                divComponente2.appendChild(baseDeCalculo);
                                container2.appendChild(divComponente2);
                            }

                            // IRPJ (INPUT DISABLED)
                            if (w === 3) {
                                divComponente2.classList.add('col-2');
                                let irpj = document.createElement('br-input');
                                irpj.setAttribute('eName', 'irpj');
                                irpj.setAttribute('label', 'IRPJ (R$)');
                                irpj.setAttribute('inputId', 'id-irpj');
                                irpj.setAttribute('inputClass', 'border-gray-90 text-weight-bold');
                                irpj.setAttribute('required', 'required');
                                irpj.setAttribute('isDisabled', 'disabled');
                                divComponente2.appendChild(irpj);
                                container2.appendChild(divComponente2);
                            }

                            // IRPJ (INPUT DISABLED)
                            if (w === 4) {
                                divComponente2.classList.add('col-2');
                                let csll = document.createElement('br-input');
                                csll.setAttribute('eName', 'csll');
                                csll.setAttribute('label', 'CSLL (R$)');
                                csll.setAttribute('inputId', 'id-csll');
                                csll.setAttribute('inputClass', 'border-gray-90 text-weight-bold');
                                csll.setAttribute('required', 'required');
                                csll.setAttribute('isDisabled', 'disabled');
                                divComponente2.appendChild(csll);
                                container2.appendChild(divComponente2);
                            }
                        }

                        container2.classList.add('row');
                        novaCelula.appendChild(container2);
                        
                        let containerTextarea = document.createElement('div');
                        containerTextarea.classList.add('mt-3', 'row');
                        let descricao = document.createElement('br-textarea');
                        descricao.setAttribute('label', 'Identificação do imóvel (informar descrição e endereço completo)');
                        descricao.setAttribute('eName', 'Descrição');
                        descricao.setAttribute('maxlength', '500');
                        descricao.setAttribute('textareaClass', 'col-12');
                        descricao.setAttribute('rows', '5');
                        descricao.setAttribute('required', 'required');
                        containerTextarea.appendChild(descricao);
                        novaCelula.appendChild(containerTextarea);


                    }

                    if (j === 1) {
                        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);
                        });
                    }
                }
            }


            // CALCULAR IMPOSTO PF
            function calcularImpostoPf(elemento){
                let identificacao = getSelectedValue('id-identificacao');
                let ca = elemento.closest('td').querySelector('#id-custo-de-aquisicao').value; // Custo de aquisicao
                let va = elemento.closest('td').querySelector('#id-valor-atualizado').value; // valor atualizado
                let bc = elemento.closest('td').querySelector('#id-base-de-calculo'); // base de calculo
                let impostoPf = elemento.closest('td').querySelector('#id-irpf'); // imposto PF

                if (!compararDoisValoresNumericos(ca, va, '<')){
                    if (ca && va){
                        elemento.closest('td').querySelector('#id-valor-atualizado').value = '';
                        showAlertModal('Valor atualizado em 2024 (R$) deve ser maior que o Custo de aquisição (R$).');
                        return
                    }
                } else {
                    ca = ca ? converteStringEmNumero(ca) : 0;
                    va = va ? converteStringEmNumero(va) : 0;
                    let bcValor = va - ca;
                    bc.value = converteNumeroEmReais(bcValor);
                    let impostoPfValor = 0.04 * bcValor;
                    impostoPf.value = converteNumeroEmReais(impostoPfValor);
                }
            }

            // CALCULAR IMPOSTO PJ
            function calcularImpostoPj(elemento){
                let identificacao = getSelectedValue('id-identificacao');
                let ca = elemento.closest('td').querySelector('#id-custo-de-aquisicao').value; // Custo de aquisicao
                let va = elemento.closest('td').querySelector('#id-valor-atualizado').value; // valor atualizado
                let bc = elemento.closest('td').querySelector('#id-base-de-calculo'); // base de calculo
                let impostoPj = elemento.closest('td').querySelector('#id-irpj'); // imposto PJ
                let csll = elemento.closest('td').querySelector('#id-csll'); // csll

                if (!compararDoisValoresNumericos(ca, va, '<')){
                    if (ca && va){
                        elemento.closest('td').querySelector('#id-valor-atualizado').value = '';
                        showAlertModal('Valor atualizado em 2024 (R$) deve ser maior que o Custo de aquisição (R$).');
                        return
                    }
                } else {
                    ca = converteStringEmNumero(ca);
                    va = converteStringEmNumero(va);
                    let bcValor = va - ca;
                    bc.value = converteNumeroEmReais(bcValor);
                    let impostoPjValor = 0.06 * bcValor;
                    let csllValor = 0.04 * bcValor;
                    impostoPj.value = converteNumeroEmReais(impostoPjValor);
                    csll.value = converteNumeroEmReais(csllValor);
                }
            }

            // Função para limpar o conteúdo da tabela
            function clearTableContent() {
                secaoApuracaoTributos.classList.add('d-none');
                let headApuracaoTributos = document.querySelector('#head-apuracao-tributos');
                headApuracaoTributos.innerHTML = '';
                let bodyApuracaoTributos = document.querySelector('#bd-apuracao-tributos');
                bodyApuracaoTributos.innerHTML = '';
            }

            // Função para adicionar ouvintes de eventos
            function limpaTabelaApuracao() {
                // Adiciona ouvintes de eventos a todos os inputs, selects e botões
                const elements = document.querySelectorAll('input, select, button:not(#btn-apurar-tributos):not(#btn-gerar-documento):not(#btn-sim):not(#btn-nao):not(#btn-entendi):not(#btn-close), textarea');

                elements.forEach(element => {
                    element.addEventListener('change', clearTableContent);
                    element.addEventListener('click', clearTableContent); // Para botões
                });
            }


            // APURAR TRIBUTOS
            function apurarTributos(idTabela){

                
                if (!validarCamposRequiredNaSecao('id-identificacao-contribuinte')) {
                    showAlertModal('Existem campos obrigatórios não preenchidos.');
                    return
                }

                if (!validarTabelasObrigatorias('id-detalhamento-imoveis')) {
                    showAlertModal('Existem tabelas obrigatórias não preenchidas.');
                    return
                }
                
                if (!validarCamposRequiredNaSecao('id-detalhamento-imoveis')) {
                    showAlertModal('Existem campos obrigatórios não preenchidos.');
                    return
                }

                let contribuinte = getSelectedValue('id-identificacao');
                let tabelaDetalhamentoImoveis = document.querySelector(`#${idTabela}`);
                let linhas = tabelaDetalhamentoImoveis.querySelectorAll('tbody tr');
                let totalCa = 0;
                let totalVa = 0;
                let totalBc = 0;
                let totalIrpf = 0;
                let totalIrpj = 0;
                let totalCsll = 0;

                // PERCORRENDO LINHAS TABELA DETALHAMENTO IMOVEIS                
                for (let linha of linhas) {
                    totalCa += converteStringEmNumero(linha.querySelector('#id-custo-de-aquisicao').value);
                    totalVa += converteStringEmNumero(linha.querySelector('#id-valor-atualizado').value);
                    totalBc += converteStringEmNumero(linha.querySelector('#id-base-de-calculo').value);
                    if (contribuinte === 'Pessoa Física') {
                        totalIrpf += converteStringEmNumero(linha.querySelector('#id-irpf').value);
                    } else {
                        totalIrpj += converteStringEmNumero(linha.querySelector('#id-irpj').value);
                        totalCsll += converteStringEmNumero(linha.querySelector('#id-csll').value);
                    }
                }

                
                // CRIACAO DA TABELA DE APURACAO
                let qtdColunas = (contribuinte === 'Pessoa Física') ? 6 : 7;
                let headApuracaoTributos = document.querySelector('#head-apuracao-tributos');
                headApuracaoTributos.innerHTML = '';
                let bodyApuracaoTributos = document.querySelector('#bd-apuracao-tributos');
                bodyApuracaoTributos.innerHTML = '';
                let linhaHeadApuracaoTributos = headApuracaoTributos.insertRow(-1);
                let linhaBodyApuracaoTributos = bodyApuracaoTributos.insertRow(-1);


                for (let i = 0; i < qtdColunas; i++){
                    let thead = document.createElement('th');
                    let novaCelula = linhaBodyApuracaoTributos.insertCell();

                    // COLUNA TEXTO 'TOTAL'
                    if (i === 0) {
                        thead.style.width = "9%";
                        let textoTotal = document.createElement('br-input');
                        textoTotal.setAttribute('eName', 'Texto Total');
                        textoTotal.setAttribute('inputId', 'id-texto-total');
                        textoTotal.setAttribute('isDisabled', 'disabled');
                        textoTotal.setAttribute('inputClass', 'text-bold p-0');
                        textoTotal.setAttribute('inputStyle', 'border:0px');
                        textoTotal.setAttribute('initValue', 'TOTAL');
                        novaCelula.appendChild(textoTotal);
                    }

                    // COLUNA QUANTIDADE DE IMOVEL
                    if (i === 1) {
                        thead.style.width = "12%";
                        thead.innerHTML = 'Qtde de imóveis';
                        qtdImoveis = tbDetalhamentoImoveis.rows.length - 1; // não contar a linha do cabeçalho da tabela
                        let custoAquisicaoTotal = document.createElement('br-input');
                        custoAquisicaoTotal.setAttribute('eName', 'Quantidade de imóveis');
                        custoAquisicaoTotal.setAttribute('inputId', 'id-qtd-imoveis');
                        custoAquisicaoTotal.setAttribute('isDisabled', 'disabled');
                        custoAquisicaoTotal.setAttribute('inputClass', 'text-bold p-0');
                        custoAquisicaoTotal.setAttribute('inputStyle', 'border:0px');
                        custoAquisicaoTotal.setAttribute('initValue', qtdImoveis);
                        novaCelula.appendChild(custoAquisicaoTotal);
                    }

                    // COLUNA CUSTO AQUISIÇÃO TOTAL
                    if (i === 2) {
                        thead.style.width = "18%";
                        thead.innerHTML = 'Custo de aquisição (R$)';
                        let custoAquisicaoTotal = document.createElement('br-input');
                        custoAquisicaoTotal.setAttribute('eName', 'Custo de aquisição Total');
                        custoAquisicaoTotal.setAttribute('inputId', 'id-custo-de-aquisicao-total');
                        custoAquisicaoTotal.setAttribute('isDisabled', 'disabled');
                        custoAquisicaoTotal.setAttribute('inputClass', 'text-bold p-0');
                        custoAquisicaoTotal.setAttribute('inputStyle', 'border:0px');
                        custoAquisicaoTotal.setAttribute('initValue', converteNumeroEmReais(totalCa));
                        novaCelula.appendChild(custoAquisicaoTotal);
                    }

                    // COLUNA VALOR ATUALIZADO TOTAL
                    if (i === 3) {
                        thead.style.width = "19%";
                        thead.innerHTML = 'Valor atualizado em 2024 (R$)';
                        let valorAtualizadoTotal = document.createElement('br-input');
                        valorAtualizadoTotal.setAttribute('eName', 'Valor atualizado Total');
                        valorAtualizadoTotal.setAttribute('inputId', 'id-valor-atualizado-total');
                        valorAtualizadoTotal.setAttribute('isDisabled', 'disabled');
                        valorAtualizadoTotal.setAttribute('inputClass', 'text-bold p-0');
                        valorAtualizadoTotal.setAttribute('inputStyle', 'border:0px');
                        valorAtualizadoTotal.setAttribute('initValue', converteNumeroEmReais(totalVa));
                        novaCelula.appendChild(valorAtualizadoTotal);
                    }

                    // COLUNA BASE DE CALCULO TOTAL
                    if (i === 4) {
                        thead.style.width = "18%";
                        thead.innerHTML = 'Base de cálculo (R$)';
                        let baseDeCalculoTotal = document.createElement('br-input');
                        baseDeCalculoTotal.setAttribute('eName', 'Base de Cálculo Total');
                        baseDeCalculoTotal.setAttribute('inputId', 'id-base-de-calculo-total');
                        baseDeCalculoTotal.setAttribute('isDisabled', 'disabled');
                        baseDeCalculoTotal.setAttribute('inputClass', 'text-bold p-0');
                        baseDeCalculoTotal.setAttribute('inputStyle', 'border:0px');
                        baseDeCalculoTotal.setAttribute('initValue', converteNumeroEmReais(totalBc));
                        novaCelula.appendChild(baseDeCalculoTotal);
                    }

                    if (contribuinte === 'Pessoa Física') {
                        // COLUNA IRPF TOTAL
                        if (i === 5) {
                            thead.style.width = "24%";
                            thead.innerHTML = 'IRPF (R$)';
                            let irpfTotal = document.createElement('br-input');
                            irpfTotal.setAttribute('eName', 'IRPF Total');
                            irpfTotal.setAttribute('inputId', 'id-irpf-total');
                            irpfTotal.setAttribute('isDisabled', 'disabled');
                            irpfTotal.setAttribute('inputClass', 'text-bold p-0');
                            irpfTotal.setAttribute('inputStyle', 'border:0px');
                            irpfTotal.setAttribute('initValue', converteNumeroEmReais(totalIrpf));
                            novaCelula.appendChild(irpfTotal);
                        }
                    } else {
                        // COLUNA IRPJ TOTAL
                        if (i === 5) {
                            thead.style.width = "12%";
                            thead.innerHTML = 'IRPJ (R$)';
                            let irpjTotal = document.createElement('br-input');
                            irpjTotal.setAttribute('eName', 'IRPJ Total');
                            irpjTotal.setAttribute('inputId', 'id-irpj-total');
                            irpjTotal.setAttribute('isDisabled', 'disabled');
                            irpjTotal.setAttribute('inputClass', 'text-bold p-0');
                            irpjTotal.setAttribute('inputStyle', 'border:0px');
                            irpjTotal.setAttribute('initValue', converteNumeroEmReais(totalIrpj));
                            novaCelula.appendChild(irpjTotal);
                        }

                        // COLUNA CSLL TOTAL
                        if (i === 6) {
                            thead.style.width = "12%";
                            thead.innerHTML = 'CSLL (R$)';
                            let csllTotal = document.createElement('br-input');
                            csllTotal.setAttribute('eName', 'CSLL Total');
                            csllTotal.setAttribute('inputId', 'id-csll-total');
                            csllTotal.setAttribute('isDisabled', 'disabled');
                            csllTotal.setAttribute('inputClass', 'text-bold p-0');
                            csllTotal.setAttribute('inputStyle', 'border:0px');
                            csllTotal.setAttribute('initValue', converteNumeroEmReais(totalCsll));
                            novaCelula.appendChild(csllTotal);
                        }
                    }

                    linhaHeadApuracaoTributos.appendChild(thead);
                }
                
                secaoApuracaoTributos.classList.remove('d-none');

                limpaTabelaApuracao();
            }


            // EXCLUI TODAS AS LINHAS DE UMA TABELA - BOTAO LIMPAR
            async function excluirLinhasTabela(idTabela, confirmacao) {

                let tabela = document.querySelector(`#${idTabela}`);
                // se a tabela tiver apenas cabeçalho, retorna
                if (tabela.rows.length < 2) return;

                if (confirmacao) {
                    if (! await showConfirmationModal("Tem certeza que deseja excluir todos os imóveis?")) {
                        return;
                    }
                }

                linhaContador = 1;

                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);
                }
            }


            // MODAL DE CONFIRMACAO
            function showConfirmationModal(mensagem) {
                return new Promise((resolve) => {
                    const modal = document.getElementById('confirmation-modal');
                    const modalMessage = modal.querySelector('#modal-message');
                    const btnEntendi = modal.querySelector('#btn-entendi');
                    const btnClose = modal.querySelector('#btn-close');
                    const btnSim = modal.querySelector('#btn-sim');
                    const btnNao = modal.querySelector('#btn-nao');
                    btnEntendi.classList.add('d-none');

                    modalMessage.classList.add('text-up-01');
                    modal.style.position = 'fixed';
                    modal.style.top = "50%";
                    modal.style.left = "50%";
                    modal.style.transform = "translate(-50%, -50%)";
                    modal.style.zIndex = '1000'; 
                    modalMessage.innerHTML = mensagem;

                    // Adicionando event listeners para os botões
                    btnSim.addEventListener('click', () => {
                        resolve(true);
                        closeConfirmationModal();
                    });
                    btnNao.addEventListener('click', () => {
                        resolve(false);
                        closeConfirmationModal();
                    });

                    btnClose.addEventListener('click', () => {
                        resolve(false);
                        closeConfirmationModal();
                    });

                    modal.classList.remove('d-none');
                });
            }


            // ESCONDE MODAL
            function closeConfirmationModal() {
                // remove d-none dos botões para próximo modal
                const btnEntendi = document.querySelector('#btn-entendi');
                const btnSim = document.getElementById('btn-sim');
                const btnNao = document.getElementById('btn-nao');
                btnEntendi.classList.remove('d-none');
                btnSim.classList.remove('d-none');
                btnNao.classList.remove('d-none');

                const modal = document.getElementById('confirmation-modal');
                modal.classList.add('d-none');
            }


            // PREPARA CONTEUDO PARA PDF
            function prepararPdf(secoes){
                let continuar = true;  // Variável de controle

                for (let secao of secoes) {
                    if(!validarTabelasObrigatorias(secao.id)){
                        let tabelaNome = secao.querySelector('table[required]').getAttribute('name');
                        showAlertModal(`A <span class="text-bold">${tabelaNome}</span> é de preenchimento obrigatório.`)
                        continuar = false;
                        break
                    }

                    if(!validarCamposRequiredNaSecao(secao.id)){
                        showAlertModal('Existem campos obrigatórios não preenchidos.')
                        continuar = false;
                        break
                    }

                }

                if (!continuar) return false;

                return true

            }


            // FUNÇÃO QUE VALIDA DADOS E GERA DOCUMENTO
            async function gerarDocumento(){

                if (!prepararPdf(secoesToPdf)) return;

                if (!await showConfirmationModal(`
                        <p>Após clicar em "Sim" será disponibilizado para download um arquivo extensão .PDF,
                        com o Demonstrativo de Apuração dos Tributos.</p>
                        <p> Esse arquivo obrigatoriamente deverá ser anexado à Declaração
                        de Opção pela Atualização de Bens Imóveis, disponível no Portal e-CAC
                        <a href='https://cav.receita.fazenda.gov.br/autenticacao/login' target='_blank'> clique aqui </a>.</p>
                        <p>Ao acessar o Portal e-CAC, selecione “Legislação e Processo” e “Requerimentos Web”. Para:</p>
                        <p>- “Área de Concentração de Serviço”, selecione “Declarações e Escriturações”; e</p>
                        <p>- “Serviço”, selecione “Declaração de Opção pela Atualização de Bens Imóveis - Dabim”.</p>
                        <p>Em seguida, <strong>os dados inseridos nessa página serão apagados.</strong></p>
                        <p>Tem certeza que deseja continuar?</p>
                        `
                    )){
                        return;
                    }

                //AJUSTA TEXTAREAS PARA PDF
                ajustarTextareas();

                html2canvas(document.querySelector('body')).then(canvas => {
                    const imgData = canvas.toDataURL('image/jpeg', 0.7);
                    const pdf = new jspdf.jsPDF('landscape');
                    
                    // Define as dimensões da página
                    const pageWidth = pdf.internal.pageSize.getWidth();
                    const pageHeight = pdf.internal.pageSize.getHeight();

                    // Dimensões da imagem
                    const imgWidth = canvas.width;
                    const imgHeight = canvas.height;

                    // Proporção de redimensionamento da imagem
                    const ratio = pageWidth / imgWidth;
                    const scaledHeight = imgHeight * ratio;

                    // Número total de páginas necessárias
                    let totalPages = Math.ceil(scaledHeight / pageHeight);

                    for (let i = 0; i < totalPages; i++) {
                        const position = -(pageHeight * i);

                        // Adiciona a imagem ao PDF, cortando a parte visível da página
                        pdf.addImage(imgData, 'JPEG', 0, position, pageWidth, scaledHeight);

                        // Adiciona uma nova página se não for a última
                        if (i < totalPages - 1) {
                            pdf.addPage();
                        }
                    }

                    let json = gerarJSON(secoesToPdf);

                    // Define metadados do PDF
                    pdf.setProperties({
                        keywords: json,
                    });

                    pdf.save("DemonstrativoDabim.pdf");
                });

                // Após o download do PDF, recarrega a página.
                setTimeout(function() {
                    location.reload();
                }, 5000); // Tempo em milissegundos (5 segundos)

                // showAlertModal('PDF gerado e salvo com sucesso!')

            }


            // EXTRAI VALORES DOS ELEMENTOS DE FORMULARIO
            function extrairValores(elemento){
                let chaveSecao = {};
                // capturar os componentes de cada elemento (exemplo: secao, linha de tabela, div)
                let brInputs = elemento.querySelectorAll('br-input');
                let brTextareas = elemento.querySelectorAll('br-textarea');
                let brDatepickers = elemento.querySelectorAll('br-datepicker');
                // let brSelects = elemento.querySelectorAll('br-select');
                let brSelectComponents = elemento.querySelectorAll('br-select-component');
                let selectUF = elemento.querySelector('select-ufs');
                let selectMunicipio = elemento.querySelector('select-municipio');

                if (selectUF){
                    chaveSecao['Estado de destino'] = selectUF.querySelector (".br-item.selected>.br-radio>label").textContent;
                }
                if (selectMunicipio){
                    chaveSecao['Municipio de destino'] = selectMunicipio.querySelector (".br-item.selected>.br-radio>label").textContent;
                }

                brSelectComponents.forEach(brSelectComponent => {
                    const name = brSelectComponent.querySelector('input').name;
                    const value = brSelectComponent.querySelector('.br-item.selected').querySelector('input').value;
                    chaveSecao[name] = value;
                });

                brInputs.forEach(brInput => {
                    const name = brInput.querySelector('input').getAttribute('name');
                    const value = brInput.querySelector('input').value;
                    chaveSecao[name] = value;
                });

                brTextareas.forEach(brTextarea => {
                    const name = brTextarea.querySelector('textarea').getAttribute('name');
                    const value = brTextarea.querySelector('textarea').value;
                    chaveSecao[name] = value;
                });

                brDatepickers.forEach(brDatepicker => {
                    const name = brDatepicker.querySelector('input').getAttribute('name');
                    const value = brDatepicker.querySelector('input').value;
                    chaveSecao[name] = value;
                });

                return chaveSecao;
            }


            // GERA JSON PARA INCLUIR NOS METADADOS DO PDF
            function gerarJSON(secoes) {
                const jsonData = {};

                const dataAtual = new Date();
                const dia = dataAtual.getDate();
                const mes = dataAtual.getMonth() + 1; // Meses são indexados de 0 (Janeiro) a 11 (Dezembro), por isso adicionamos 1
                const ano = dataAtual.getFullYear();
                const dataFormatada = `${String(dia).padStart(2, '0')}/${String(mes).padStart(2, '0')}/${ano}`;

                jsonData["versao"]= "1.0";
                jsonData["data-de-criacao"]= dataFormatada;

                for (let secao of secoes) {
                    
                    let tabela = secao.querySelector('table');

                    // verificar se tem tabela na secao - criar objetos para cada linha da tabela
                    // se não tiver, cada name pode ser chave
                    if (!tabela){                        
                        jsonData[secao.getAttribute('name')] = extrairValores(secao);

                    }else{ // tem tabela
                        let secaoTabela = [];
                        let linhas = tabela.querySelectorAll('tbody tr');
                        
                        for (let linha of linhas){
                            secaoTabela.push(extrairValores(linha));
                        }

                        jsonData['tabela_' + secao.getAttribute('name')] = secaoTabela;
                    }
                }

                return JSON.stringify(jsonData, null, 2)

            }

            // Desabilitar atalhos de teclado comuns para impressão
            document.addEventListener('keydown', function(e) {
                if ((e.ctrlKey || e.metaKey) && (e.key === 'p' || e.key === 'P')) {
                    e.preventDefault();
                    e.stopPropagation();
                    showAlertModal("Utilize o botão Gerar Documento.");
                }
            });
            
            // DESABILITA CLIQUE BOTAO DIRETO
            // desabilitarCliqueDireito();

            // DESABILITA DEV TOOLS
            // desabilitarAtalhosDevTools();

        
        </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
    • 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
      • Parcelamentos Especiais
      • 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