Ir para o conteúdo principal

[SOLAR] Estudo para verificar o funcionamento da isenção de taxa dentro do SOLAR

Data de elaboração 10/01/2023.
Responsável pelo estudo
  1. Lucas Tavares
  2. João Vitor Paulino
  3. Milton Daniel Yama
Equipe do estudo TURING
Alvo Sistema de Outorga e Licenciamento Ambiental de Rondônia (SOLAR)
Origem
  • Objetivo Estratégico: Verificar como a isenção funciona dentro do SOLAR
Objetivo

Estudo com o objetivo de avaliar quais as opçoes de isenção de taxa dentro do sistema SOLAR.

Documentação correlata
Observações

1. Objetivo

Estudo com o objetivo de avaliar quais as opçoes de isenção de taxa dentro do sistema SOLAR.

2. Introdução

Algumas solicitações no SOLAR exigem que uma taxa denominada DARE seja paga pelo solicitante para que seja criado o processo desta solicitação, entretanto em alguns casos a necessidade de isenção para algumas atividades especificas com a quantidade de UPF(unidade padrão fiscal) igual a zero reais ou caso seja uma atividade de pisicultura, e também no caso do solicitante ser uma entidade publica.

3. Desenvolvimento

3.1 Isenção automática:

O SOLAR contem uma classe chamada VerificarSeEmpreendimentoEstaIsentoDeTaxa que verifica se o empreendimento possui uma atividade onde a mesma possua a quantidade de UPF(unidade padrão fiscal) igual a zero reais, caso seja uma atividade de pisicultura, ou se o empreendimento é entidade publica. Esta isenção valida automaticamente sem informar o usuário ou seja o mesmo apenas faz a solicitação e ao final o sistema gera ou não a dare caso o mesmo seja isento ou não.

var ehEmpreendimentoDeEntidadePublica = empreendimento.Empreendedor.TipoDoEmpreendedor == nameof(Dominio.CadastroContexto.EntidadePublica);

            if (ehEmpreendimentoDeEntidadePublica)
                return (ehAtividadeDePiscicultura: false, ehIsento: true);

Verificando se empreendimento é entidade publica

var ehAtividadeDePiscicultura = false;

            foreach (var atividadeDoEmpreendimento in empreendimento.AtividadesDoEmpreendimento)
            {
                var atividadeDePiscicultura = atividadeDoEmpreendimento.AtividadeDaLei.ReferenciaNaLei == Lei3437Art18;

                if (atividadeDePiscicultura)
                {
                    ehAtividadeDePiscicultura = true;

                    if (AtividadeDePisciculturaEIsento(atividadeDoEmpreendimento))
                        return (ehAtividadeDePiscicultura: true, ehIsento: true);
                }
              ...

private bool AtividadeDePisciculturaEIsento(AtividadeDoEmpreendimento atividadeDoEmpreendimento)
        {
            var possuiItemDaLei89_3 = atividadeDoEmpreendimento.AtividadeDaLei.ItemDaLei == ItemDaLei893;
            var possuiItemDaLei89_4 = atividadeDoEmpreendimento.AtividadeDaLei.ItemDaLei == ItemDaLei894;
            var tamanhoDaAtividade = atividadeDoEmpreendimento.TamanhoDaAtividade;

            if (possuiItemDaLei89_3 || possuiItemDaLei89_4)
            {
                tamanhoDaAtividade = ObterMmc(atividadeDoEmpreendimento);
            }

            var atividadeEhIsentaDeTaxa = tamanhoDaAtividade <= TamanhoMaximoPraSerIsentoDeTaxa;
            return atividadeEhIsentaDeTaxa;
        }

Verificando se empreendimento possui atividade de piscicultura

 foreach (var atividadeDoEmpreendimento in empreendimento.AtividadesDoEmpreendimento)
            {
                ...
                else
                {
                    var atividadeIsenta = await AtividadeEhIsento(atividadeDoEmpreendimento, servicoSolicitado);
                    return !atividadeIsenta ? (ehAtividadeDePiscicultura: false, ehIsento: false) : (ehAtividadeDePiscicultura: false, ehIsento: true);
                }
            }

            return await Task.FromResult((ehAtividadeDePiscicultura: ehAtividadeDePiscicultura, ehIsento: false));
        }

private async Task<bool> AtividadeEhIsento(AtividadeDoEmpreendimento atividadeDoEmpreendimento, ServicoSolicitado servicoSolicitado)
        {
            if (servicoSolicitado.TipoDeSolicitacao == null)
                return false;
            
            var tipoDeSolicitacao = servicoSolicitado.TipoDeSolicitacao.ToString();
            var remocaoDePrefixo = tipoDeSolicitacao?.Replace("RenovacaoDe", "");
            bool atividadeEhIsento;
                
            if (tipoDeSolicitacao != null && tipoDeSolicitacao.Contains("Licenca"))
            {
                var upfParaLicenca = await contexto.UnidadesPadraoFiscal
                    .AsNoTracking()
                    .FirstOrDefaultAsync(x =>
                        x.PorteDaAtividade == atividadeDoEmpreendimento.Porte &&
                        x.PotencialPoluidorDaAtividade == atividadeDoEmpreendimento.AtividadeDaLei.PotencialPoluidor.ToString() &&
                        x.ReferenciaNaLei == atividadeDoEmpreendimento.AtividadeDaLei.ReferenciaNaLei &&
                        x.TipoDeLicenca == Enum.Parse<TipoDeLicenca>(remocaoDePrefixo));

                atividadeEhIsento = upfParaLicenca is { QuantidadeDeUpf: TaxaDeIsencaoDeAtividadeComum };
                return atividadeEhIsento;
            }

            var upf = await contexto.UnidadesPadraoFiscal
                .AsNoTracking()
                .FirstOrDefaultAsync(x =>
                    x.PorteDaAtividade == atividadeDoEmpreendimento.Porte &&
                    x.PotencialPoluidorDaAtividade == atividadeDoEmpreendimento.AtividadeDaLei.PotencialPoluidor.ToString() &&
                    x.ReferenciaNaLei == atividadeDoEmpreendimento.AtividadeDaLei.ReferenciaNaLei);

            atividadeEhIsento = upf is { QuantidadeDeUpf: TaxaDeIsencaoDeAtividadeComum };

            return atividadeEhIsento;
        }

Verificando se atividade do empreendimento é isento caso a quantidade de UPF seja igual a zero

3.2 Isenção por escolha do usuário:

O SOLAR também possui um método que ao ser chamado, isenta a solicitação atual, este método é acionado por uma action denominada DeclararIsencaoDeTaxa, onde a mesma é acionada assim que o usuário selecionara o checkbox de declarar isenção, onde aparecerá para opões de isenção que o mesmo pode selecionar, no caso de possuir atividade de psicultura presente na lei, Art. 18 da Lei 3.437 onde sistema valida por meio da classe citada acima(VerificarSeEmpreendimentoEstaIsentoDeTaxa), se realmente a atividade abrange a isenção por meio da psicultura, se não o sistema da duas opções, para o caso de que o  empreendimento seja uma entidade publica presente na lei 3686/2015 Art. 37, Inc. I, ou caso se enquandre na agricultura familiar presente na lei 3686/2015, Art. 37, inc, II.

@if (Model.TipoDeSolicitacao != nameof(SolicitacaoDeOutorga))
                {
                    <div class="form-group">
                        <input type="checkbox" id="isencao" name="isencaoDeTaxa" value="estaIsento" />
                        <label for="isencao">Declarar isenção</label>
                    </div>
                }

Checkbox para selecionar a declaração de isenção que leva para a "modal-solicitar-isencao-de-taxa", e pode selecionar entre as possiveis formas de isenção

<form asp-controller="Solicitacao" asp-action="DeclararIsencaoDeTaxa" method="post">
                    <div class="modal-body">
                        <input type="hidden" name="empreendimentoId" value="@Model.EmpreendimentoId" />
                        <input type="hidden" name="solicitacaoId" value="@Model.Id" />
                        @if (Model.EhAtividadeDePiscicultura)
                        {
                            <div class="my-3">
                                <h5>Declaro que me enquadro no Art. 18 da Lei 3.437 de 9 de setembro de 2014 onde estão isentos do pagamento das Taxas de Licenciamento Ambiental.</h5>
                            </div>
                        }
                        else
                        {
                            <div class="my-3">
                                <input type="radio" id="isencaoAgriculturaFamiliar" name="motivoDaIsencao" value="Agricultura familiar: Lei 3686/2015, Art. 37, inc, II" />
                                <label for="isencaoAgriculturaFamiliar">
                                    <h5>
                                        Declaro que para isenção de taxa, empreendimento enquadrado na lei 3686/2015, Art. 37, inc, II - atividades agropecuárias e agrossilvopastoris exercidas por agricultor familiar e empreendedor familiar rural, assim considerado aquele que pratica atividades no meio rural, atendendo, simultaneamente, aos requisitos do inciso.
                                    </h5>
                                </label>
                            </div>
                            <div class="my-3">
                                <input type="radio" id="isencaoEntidadePublica" name="motivoDaIsencao" value="Entidade Publica: Lei 3686/2015, Art. 37, inc, I" />
                                <label for="isencaoEntidadePublica">
                                    <h5>
                                        Declaro que me enquadro na Lei 3686/2015 que "Dispõe sobre o Sistema de Licenciamento Ambiental do Estado de Rondônia e dá outras providências", Art. 37, Inc. I que isenta de pagamento das Taxas de Licenciamento Ambiental: as obras e atividades executadas diretamente por órgão da Administração Pública Direta ou Indireta dos municípios integrantes do Estado de Rondônia;
                                    </h5>
                                </label>
                            </div>
                        }
                    </div>

Possibilidades de isenção ao selecionar o checkbox de isenção (piscicultura, agricultura familiar, entidade publica), cada um de aordo com a sua respectiva lei.

Na condição "@if (Model.EhAtividadeDePiscicultura)", a propriedade "EhAtividadeDePiscicultura", leva a classe VerificarSeEmpreendimentoEstaIsentoDeTaxa, que a mesma valida da mesma maneira como citado acima, caso a atividade seja de piscicultura, e no código relacionado a isenção por atividade de psicultura(o código foi demonstrado a cima em "Verificando se empreendimento possui atividade de piscicultura").

image.png

modal ao selecionar o checkbox e os tipos de isençao para selecionar

4. Conclusão

Como verificado nos tópicos anteriores a duas formas de se verificar a isenção por meio de um checkbox e selecionando a opção exata de isenção que o usuário se enquadra ou a isenção pode ser feita de forma automatica por meio de uma classe que abrange todos os tipos de isenção.

Entretanto tal verificação se torna redundante pelo motivo de que ambas as verificações abrangem quase todos os tipos de isenção retirando apenas a isenção por meio da verificação de UPF(unidade padrão fiscal), pois a mesma precisa de uma validação mais rigorosa e possibilidades de isenção mais abrangente.