/* Copyright 2025 FSFLA
   Alexandre Oliva <lxoliva@fsfla.org>

   Este arquivo é parte do IRPF-Livre.

   IRPF-Livre é Software Livre; você pode redistribuir e/ou modificar
   a maior parte dele, inclusive este arquivo, de acordo com os termos
   da GNU Lesser General Public License publicada pela Free Software
   Foundation; tanto a versão 2.1 dessa licença, quanto (à sua
   escolha) qualquer versão posterior.

   Alguns componentes podem ser distribuídos e/ou modificados de
   acordo com outras licenças, incluídas no executável e consolidadas
   no arquivo list/licenses nos fontes.

   IRPF-Livre é distribuído na esperança de que ele seja útil, mas SEM
   QUALQUER GARANTIA; até mesmo sem qualquer garantia implícita de
   COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte
   a GNU Lesser General Public License para mais detalhes.

   Você deve ter recebido uma cópia da GNU Lesser General Public
   License junto com IRPF-Livre; se não, escreva para a Free Software
   Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston,
   MA 02111-1307 USA.

   Veja uma tradução não oficial da licença em
   http://creativecommons.org/licenses/LGPL/2.1/legalcode.pt


   This file is part of IRPF-Livre.

   IRPF-Livre is free software; you can redistribute and/or modify
   most of it, this file included, under the terms of the GNU Lesser
   General Public License as published by the Free Software
   Foundation; either version 2.1 of the License, or (at your option)
   any later version.

   Some components can be distributed and/or modified under different
   licenses, included in the executable and consolidated in the file
   list/licenses in the source tree.

   IRPF-Livre is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with IRPF-Livre; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
   USA.
*/

package serpro.ppgd.irpf.gcap.apuracao;
import serpro.ppgd.negocio.Valor;

public class ApuracaoBemImovel extends ApuracaoBem
{
  private ColecaoParcelaApuracaoCustoAquisicao parcelasCustoAquisicao = new ColecaoParcelaApuracaoCustoAquisicao ();

  private Valor custoAquisicaoTorna = new Valor (this, "");
  private Valor custoAquisicaoTornaOrigemMEDolar = new Valor (this, "");
  private Valor custoAquisicaoTornaOrigemMNReal = new Valor (this, "");
  private Valor ganhoCapital2 = new Valor (this, "");
  private Valor ganhoCapital2OrigemMEReal = new Valor (this, "");
  private Valor ganhoCapital2OrigemMNReal = new Valor (this, "");
  private Valor ganhoCapital3 = new Valor (this, "");
  private Valor ganhoCapital3OrigemMEReal = new Valor (this, "");
  private Valor ganhoCapital3OrigemMNReal = new Valor (this, "");
  private Valor ganhoCapital4 = new Valor (this, "");
  private Valor ganhoCapital4OrigemMEReal = new Valor (this, "");
  private Valor ganhoCapital4OrigemMNReal = new Valor (this, "");
  private Valor ganhoCapital5 = new Valor (this, "");
  private Valor ganhoCapital5OrigemMEReal = new Valor (this, "");
  private Valor ganhoCapital5OrigemMNReal = new Valor (this, "");
  private Valor percentualCustoAquisicaoOrigemME = new Valor (this, "", 13, 9);
  private Valor percentualCustoAquisicaoOrigemMN = new Valor (this, "", 13, 9);
  private Valor percentualReducaoAplicacaoOutroImovel = new Valor (this, "", 9, 6);
  private Valor percentualReducaoAplicacaoOutroImovelOrigemME = new Valor (this, "", 9, 6);
  private Valor percentualReducaoAplicacaoOutroImovelOrigemMN = new Valor (this, "", 9, 6);
  private Valor percentualReducaoBemPequenoValor = new Valor (this, "", 9, 6);
  private Valor percentualReducaoBemPequenoValorOrigemME = new Valor (this, "", 9, 6);
  private Valor percentualReducaoBemPequenoValorOrigemMN = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei11196FR1 = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei11196FR1OrigemME = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei11196FR1OrigemMN = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei11196FR2 = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei11196FR2OrigemME = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei11196FR2OrigemMN = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei7713 = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei7713OrigemME = new Valor (this, "", 9, 6);
  private Valor percentualReducaoLei7713OrigemMN = new Valor (this, "", 9, 6);
  private Valor percentualReducaoUnicoImovel = new Valor (this, "", 9, 6);
  private Valor percentualReducaoUnicoImovelOrigemME = new Valor (this, "", 9, 6);
  private Valor percentualReducaoUnicoImovelOrigemMN = new Valor (this, "", 9, 6);
  private Valor valorReducaoAplicacaoOutroImovel = new Valor (this, "");
  private Valor valorReducaoAplicacaoOutroImovelOrigemME = new Valor (this, "");
  private Valor valorReducaoAplicacaoOutroImovelOrigemMN = new Valor (this, "");
  private Valor valorReducaoBemPequenoValor = new Valor (this, "");
  private Valor valorReducaoBemPequenoValorOrigemME = new Valor (this, "");
  private Valor valorReducaoBemPequenoValorOrigemMN = new Valor (this, "");
  private Valor valorReducaoLei11196FR1 = new Valor (this, "");
  private Valor valorReducaoLei11196FR1OrigemME = new Valor (this, "");
  private Valor valorReducaoLei11196FR1OrigemMN = new Valor (this, "");
  private Valor valorReducaoLei11196FR2 = new Valor (this, "");
  private Valor valorReducaoLei11196FR2OrigemME = new Valor (this, "");
  private Valor valorReducaoLei11196FR2OrigemMN = new Valor (this, "");
  private Valor valorReducaoLei7713 = new Valor (this, "");
  private Valor valorReducaoLei7713OrigemME = new Valor (this, "");
  private Valor valorReducaoLei7713OrigemMN = new Valor (this, "");
  private Valor valorReducaoUnicoImovel = new Valor (this, "");
  private Valor valorReducaoUnicoImovelOrigemME = new Valor (this, "");
  private Valor valorReducaoUnicoImovelOrigemMN = new Valor (this, "");

  public ApuracaoBemImovel ()
  {
  }

  public ColecaoParcelaApuracaoCustoAquisicao getParcelasCustoAquisicao ()
  {
    return parcelasCustoAquisicao;
  }

  public Valor getCustoAquisicaoTorna ()
  {
    return custoAquisicaoTorna;
  }

  public Valor getCustoAquisicaoTornaOrigemMEDolar ()
  {
    return custoAquisicaoTornaOrigemMEDolar;
  }

  public Valor getCustoAquisicaoTornaOrigemMNReal ()
  {
    return custoAquisicaoTornaOrigemMNReal;
  }

  public Valor getGanhoCapital2 ()
  {
    return ganhoCapital2;
  }

  public Valor getGanhoCapital2OrigemMEReal ()
  {
    return ganhoCapital2OrigemMEReal;
  }

  public Valor getGanhoCapital2OrigemMNReal ()
  {
    return ganhoCapital2OrigemMNReal;
  }

  public Valor getGanhoCapital3 ()
  {
    return ganhoCapital3;
  }

  public Valor getGanhoCapital3OrigemMEReal ()
  {
    return ganhoCapital3OrigemMEReal;
  }

  public Valor getGanhoCapital3OrigemMNReal ()
  {
    return ganhoCapital3OrigemMNReal;
  }

  public Valor getGanhoCapital4 ()
  {
    return ganhoCapital4;
  }

  public Valor getGanhoCapital4OrigemMEReal ()
  {
    return ganhoCapital4OrigemMEReal;
  }

  public Valor getGanhoCapital4OrigemMNReal ()
  {
    return ganhoCapital4OrigemMNReal;
  }

  public Valor getGanhoCapital5 ()
  {
    return ganhoCapital5;
  }

  public Valor getGanhoCapital5OrigemMEReal ()
  {
    return ganhoCapital5OrigemMEReal;
  }

  public Valor getGanhoCapital5OrigemMNReal ()
  {
    return ganhoCapital5OrigemMNReal;
  }

  public Valor getPercentualCustoAquisicaoOrigemME ()
  {
    return percentualCustoAquisicaoOrigemME;
  }

  public Valor getPercentualCustoAquisicaoOrigemMN ()
  {
    return percentualCustoAquisicaoOrigemMN;
  }

  public Valor getPercentualReducaoAplicacaoOutroImovel ()
  {
    return percentualReducaoAplicacaoOutroImovel;
  }

  public Valor getPercentualReducaoAplicacaoOutroImovelOrigemME ()
  {
    return percentualReducaoAplicacaoOutroImovelOrigemME;
  }

  public Valor getPercentualReducaoAplicacaoOutroImovelOrigemMN ()
  {
    return percentualReducaoAplicacaoOutroImovelOrigemMN;
  }

  public Valor getPercentualReducaoBemPequenoValor ()
  {
    return percentualReducaoBemPequenoValor;
  }

  public Valor getPercentualReducaoBemPequenoValorOrigemME ()
  {
    return percentualReducaoBemPequenoValorOrigemME;
  }

  public Valor getPercentualReducaoBemPequenoValorOrigemMN ()
  {
    return percentualReducaoBemPequenoValorOrigemMN;
  }

  public Valor getPercentualReducaoLei11196FR1 ()
  {
    return percentualReducaoLei11196FR1;
  }

  public Valor getPercentualReducaoLei11196FR1OrigemME ()
  {
    return percentualReducaoLei11196FR1OrigemME;
  }

  public Valor getPercentualReducaoLei11196FR1OrigemMN ()
  {
    return percentualReducaoLei11196FR1OrigemMN;
  }

  public Valor getPercentualReducaoLei11196FR2 ()
  {
    return percentualReducaoLei11196FR2;
  }

  public Valor getPercentualReducaoLei11196FR2OrigemME ()
  {
    return percentualReducaoLei11196FR2OrigemME;
  }

  public Valor getPercentualReducaoLei11196FR2OrigemMN ()
  {
    return percentualReducaoLei11196FR2OrigemMN;
  }

  public Valor getPercentualReducaoLei7713 ()
  {
    return percentualReducaoLei7713;
  }

  public Valor getPercentualReducaoLei7713OrigemME ()
  {
    return percentualReducaoLei7713OrigemME;
  }

  public Valor getPercentualReducaoLei7713OrigemMN ()
  {
    return percentualReducaoLei7713OrigemMN;
  }

  public Valor getPercentualReducaoUnicoImovel ()
  {
    return percentualReducaoUnicoImovel;
  }

  public Valor getPercentualReducaoUnicoImovelOrigemME ()
  {
    return percentualReducaoUnicoImovelOrigemME;
  }

  public Valor getPercentualReducaoUnicoImovelOrigemMN ()
  {
    return percentualReducaoUnicoImovelOrigemMN;
  }

  public Valor getValorReducaoAplicacaoOutroImovel ()
  {
    return valorReducaoAplicacaoOutroImovel;
  }

  public Valor getValorReducaoAplicacaoOutroImovelOrigemME ()
  {
    return valorReducaoAplicacaoOutroImovelOrigemME;
  }

  public Valor getValorReducaoAplicacaoOutroImovelOrigemMN ()
  {
    return valorReducaoAplicacaoOutroImovelOrigemMN;
  }

  public Valor getValorReducaoBemPequenoValor ()
  {
    return valorReducaoBemPequenoValor;
  }

  public Valor getValorReducaoBemPequenoValorOrigemME ()
  {
    return valorReducaoBemPequenoValorOrigemME;
  }

  public Valor getValorReducaoBemPequenoValorOrigemMN ()
  {
    return valorReducaoBemPequenoValorOrigemMN;
  }

  public Valor getValorReducaoLei11196FR1 ()
  {
    return valorReducaoLei11196FR1;
  }

  public Valor getValorReducaoLei11196FR1OrigemME ()
  {
    return valorReducaoLei11196FR1OrigemME;
  }

  public Valor getValorReducaoLei11196FR1OrigemMN ()
  {
    return valorReducaoLei11196FR1OrigemMN;
  }

  public Valor getValorReducaoLei11196FR2 ()
  {
    return valorReducaoLei11196FR2;
  }

  public Valor getValorReducaoLei11196FR2OrigemME ()
  {
    return valorReducaoLei11196FR2OrigemME;
  }

  public Valor getValorReducaoLei11196FR2OrigemMN ()
  {
    return valorReducaoLei11196FR2OrigemMN;
  }

  public Valor getValorReducaoLei7713 ()
  {
    return valorReducaoLei7713;
  }

  public Valor getValorReducaoLei7713OrigemME ()
  {
    return valorReducaoLei7713OrigemME;
  }

  public Valor getValorReducaoLei7713OrigemMN ()
  {
    return valorReducaoLei7713OrigemMN;
  }

  public Valor getValorReducaoUnicoImovel ()
  {
    return valorReducaoUnicoImovel;
  }

  public Valor getValorReducaoUnicoImovelOrigemME ()
  {
    return valorReducaoUnicoImovelOrigemME;
  }

  public Valor getValorReducaoUnicoImovelOrigemMN ()
  {
    return valorReducaoUnicoImovelOrigemMN;
  }

}
