data

package
v0.0.0-...-eccc7ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GrupoParticipacaoSocietaria = "03"
	GrupoAplicacaoInvestimento  = "04"
	GrupoOutros                 = "99"

	// Bens e Direitos.
	CodigoAcoes        = "01"
	CodigoOpcoes       = "04"
	CodigoJSCPNaoPagos = "07"

	// Rendimento Isento e Não Tributável.
	CodigoDividendos    = "09"
	CodigoBonificacao   = "18"
	CodigoIsencaoAte20k = "20"
	CodigoRINTOutros    = "99"

	// Rendimento Sujeito à Tributação Exclusiva/Definitiva.
	CodigoRendimentos = "06"
	CodigoJSCP        = "10"
	CodigoRSTEOutros  = "99"

	// Dívida e Ônus Reais.
	CodigoOutrasDividasOnusReais = "16"
)

Variables

View Source
var DefaultConfig2025 = Config{
	AlterarPrecoMedioNaBonificacao: false,
	LimiteVendaIsenta:              decimal.RequireFromString("20000"),
	SwingTradeIR:                   decimal.RequireFromString("0.15"),
	SwingTradeIRRF:                 decimal.RequireFromString("0.00005"),
	DayTradeIR:                     decimal.RequireFromString("0.20"),
	DayTradeIRRF:                   decimal.RequireFromString("0.01"),
}
View Source
var DefaultConfigByYear = map[int]Config{}
View Source
var DefaultParam = Param{
	SeparadorDecimal:  ",",
	FormatoData:       time.DateOnly,
	MostrarValorExato: false,
	FiltrarAno:        0,
	FiltrarTicker:     "",
}
View Source
var DefaultTonfig2025 = TonfigMap{
	COMPRA: {
		BensDireitos: GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
	},
	VENDA: {
		BensDireitos:                  GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
		RendimentoIsentoNaoTributavel: GrupoCodigo{Codigo: CodigoIsencaoAte20k, Descr: "Isenção até R$ 20000", Agregar: true},
		PrejuizoAbativel:              true,
		LucroTributavel:               true,
	},
	BONIFICACAO: {
		BensDireitos:                  GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
		RendimentoIsentoNaoTributavel: GrupoCodigo{Codigo: CodigoBonificacao, Descr: "Bonificação"},
	},
	DESDOBRAMENTO: {
		BensDireitos: GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
	},
	GRUPAMENTO: {
		BensDireitos: GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
	},
	LEILAO_FRACAO: {
		RendimentoIsentoNaoTributavel: GrupoCodigo{Codigo: CodigoRINTOutros, Descr: "Leilão de Fração"},
		PrejuizoAbativel:              true,
	},
	DIVIDENDOS: {
		RendimentoIsentoNaoTributavel: GrupoCodigo{Codigo: CodigoDividendos, Descr: "Dividendos"},
	},
	REEMBOLSO: {
		RendimentoIsentoNaoTributavel: GrupoCodigo{Codigo: CodigoRINTOutros, Descr: "Reembolso de proventos", Agregar: true},
	},
	JSCP: {
		RendimentoSujeitoTributacaoExclusiva: GrupoCodigo{Codigo: CodigoJSCP, Descr: "JSCP"},
	},
	JSCP_NAO_PAGO: {
		BensDireitos:                         GrupoCodigo{Grupo: GrupoOutros, Codigo: CodigoJSCPNaoPagos},
		RendimentoSujeitoTributacaoExclusiva: GrupoCodigo{Codigo: CodigoJSCP, Descr: "JSCP Não Pago"},
	},
	REND_TRIB: {
		RendimentoSujeitoTributacaoExclusiva: GrupoCodigo{Codigo: CodigoRSTEOutros, Descr: "Rendimento Tributável"},
	},
	ALUGUEL: {
		RendimentoSujeitoTributacaoExclusiva: GrupoCodigo{Codigo: CodigoRendimentos, Descr: "Aluguel de Ações"},
	},
	REDUCAO_CAPITAL: {
		BensDireitos: GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},

		PrejuizoAbativel: true,
	},
	SUBSCRICAO_COMPRA: {},
	SUBSCRICAO_VENDA: {
		LucroTributavel:  true,
		PrejuizoAbativel: true,
	},
	SUBSCRICAO_COMPRA_EX: {
		BensDireitos: GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
	},
	PUT_VENDA: {
		DividaOnusReais: GrupoCodigo{Codigo: CodigoOutrasDividasOnusReais},
		LucroTributavel: false,
	},
	PUT_VENDA_EX: {
		BensDireitos:     GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
		PrejuizoAbativel: true,
	},
	PUT_VENDA_NE: {
		LucroTributavel: true,
	},
	PUT_COMPRA: {
		BensDireitos:     GrupoCodigo{Grupo: GrupoAplicacaoInvestimento, Codigo: CodigoOpcoes},
		PrejuizoAbativel: false,
	},
	PUT_COMPRA_EX: {
		BensDireitos:     GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
		LucroTributavel:  true,
		PrejuizoAbativel: true,
	},
	PUT_COMPRA_NE: {
		PrejuizoAbativel: true,
	},
	CALL_VENDA: {
		DividaOnusReais: GrupoCodigo{Codigo: CodigoOutrasDividasOnusReais},
		LucroTributavel: false,
	},
	CALL_VENDA_EX: {
		BensDireitos:     GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
		LucroTributavel:  true,
		PrejuizoAbativel: true,
	},
	CALL_VENDA_NE: {
		LucroTributavel: true,
	},
	CALL_COMPRA: {
		BensDireitos:     GrupoCodigo{Grupo: GrupoAplicacaoInvestimento, Codigo: CodigoOpcoes},
		PrejuizoAbativel: false,
	},
	CALL_COMPRA_EX: {
		BensDireitos:     GrupoCodigo{Grupo: GrupoParticipacaoSocietaria, Codigo: CodigoAcoes},
		LucroTributavel:  false,
		PrejuizoAbativel: false,
	},
	CALL_COMPRA_NE: {
		PrejuizoAbativel: true,
	},
}
View Source
var DefaultTonfigByYear = map[int]TonfigMap{}

Functions

func IRRFIsentoVendaMes

func IRRFIsentoVendaMes(ops iter.Seq[OperacaoConsolidada], limit decimal.Decimal) decimal.Decimal

func ImportarNotas

func ImportarNotas(dir string, w io.Writer) error

func LucroIsentoVendaAno

func LucroIsentoVendaAno(ops iter.Seq[OperacaoConsolidada], limit decimal.Decimal) decimal.Decimal

func LucroIsentoVendaMes

func LucroIsentoVendaMes(ops iter.Seq[OperacaoConsolidada], limit decimal.Decimal) decimal.Decimal

func ReadLines

func ReadLines(r io.Reader) (iter.Seq[[]byte], error)

func ReadLinesSorted

func ReadLinesSorted(r io.Reader) (iter.Seq[[]byte], error)

Types

type Acoes

type Acoes []OperacaoAnual

func (Acoes) Iter

func (a Acoes) Iter() iter.Seq[OperacaoConsolidada]

type Agregado

type Agregado struct {
	Qtd        decimal.Decimal
	ValorTotal decimal.Decimal
	PrecoMedio decimal.Decimal
}

func (*Agregado) CalcPrecoMedio

func (a *Agregado) CalcPrecoMedio()

type BemDireito

type BemDireito struct {
	AnoAnterior int
	AnoCorrente int
	Tickers     []BensDireitoTicker
}

type BemDireitoStrategy

type BemDireitoStrategy struct {
	Curr  map[string]BensDireitoTicker
	Param *Param
	// contains filtered or unexported fields
}

func (*BemDireitoStrategy) SituacaoAnoCorrente

func (v *BemDireitoStrategy) SituacaoAnoCorrente(ano iter.Seq[OperacaoConsolidada]) map[string]BensDireitoTicker

func (*BemDireitoStrategy) VisitBemDireito

func (v *BemDireitoStrategy) VisitBemDireito(ano []OperacaoConsolidada)

func (*BemDireitoStrategy) VisitBemDireito0301

func (v *BemDireitoStrategy) VisitBemDireito0301(ano []OperacaoConsolidada)

func (*BemDireitoStrategy) VisitBemDireito0404

func (v *BemDireitoStrategy) VisitBemDireito0404(ano []OperacaoConsolidada, label string)

func (*BemDireitoStrategy) VisitBemDireito9907

func (v *BemDireitoStrategy) VisitBemDireito9907(ano []OperacaoConsolidada)

type BensDireitoTicker

type BensDireitoTicker struct {
	Grupo, Codigo    string
	Ticker           string
	SituacaoAnterior decimal.Decimal
	SituacaoCorrente decimal.Decimal
	Discriminacao    string
	Vencimento       time.Time
}

type BensDireitosStrategy

type BensDireitosStrategy interface {
	SituacaoAnoCorrente(iter.Seq[OperacaoConsolidada]) map[string]BensDireitoTicker
}

type Carteira

type Carteira struct {
	Acoes Acoes
	Param Param
}

func NewCarteira

func NewCarteira() *Carteira

func (*Carteira) BensDireitos

func (c *Carteira) BensDireitos() []BemDireito

func (*Carteira) CommandLine

func (c *Carteira) CommandLine(r io.Reader, w io.Writer) error

func (*Carteira) Consolidar

func (c *Carteira) Consolidar(all []OperacaoDesconsolidada)

func (*Carteira) DividaOnusReais

func (c *Carteira) DividaOnusReais() []BemDireito

func (*Carteira) Load

func (c *Carteira) Load(file string) error

func (*Carteira) OperacoesComunsDayTradeDayTrade

func (c *Carteira) OperacoesComunsDayTradeDayTrade() []RendimentosTributaveis

func (*Carteira) OperacoesComunsDayTradeSwingTrade

func (c *Carteira) OperacoesComunsDayTradeSwingTrade() []RendimentosTributaveis

func (*Carteira) Print

func (c *Carteira) Print(frmt string, w io.Writer)

func (*Carteira) Read

func (c *Carteira) Read(r io.Reader) error

func (*Carteira) RendimentosIsentosNaoTributaveis

func (c *Carteira) RendimentosIsentosNaoTributaveis() []RendimentosIsentosNaoTributaveis

func (*Carteira) RendimentosSujeitosTributacaoExclusiva

func (c *Carteira) RendimentosSujeitosTributacaoExclusiva() []RendimentosIsentosNaoTributaveis

type Config

type Config struct {
	// Determina a estratégia de Preço Médio usada na Bonificação.
	//
	// Se true, as Bonificações vão alterar seu preço médio.
	// É como se você tivesse pagado o valor que recebeu de bonificação.
	// Significa que na hora de vender você pagará menos impostos.
	//
	// Se false (padrão), as Bonificações NÃO vão alterar seu preço médio.
	// É como se você tivesse recebido as ações de bonificação de graça.
	// Significa que na hora de vender você pagará mais impostos.
	//
	// Não há consenso sobre qual estratégia é a correta.
	// Boatos afirmam que a maioria prefere a estratégia que reduz o imposto a pagar (true).
	//
	// Para nunca ter problemas com a Receita Federal use false, pois você pagará mais impostos.
	AlterarPrecoMedioNaBonificacao bool

	LimiteVendaIsenta decimal.Decimal
	SwingTradeIR      decimal.Decimal
	SwingTradeIRRF    decimal.Decimal // Dedo Duro.
	DayTradeIR        decimal.Decimal
	DayTradeIRRF      decimal.Decimal // Dedo Duro.
}

func GetDefaultConfig

func GetDefaultConfig(year int, def Config) Config

type Consolidador

type Consolidador struct {
	Agg Agregado
	Cfg Config
	// contains filtered or unexported fields
}

func (*Consolidador) Consolidar

func (*Consolidador) VisitAluguel

func (*Consolidador) VisitAluguel(*Operacao)

func (*Consolidador) VisitBonificacao

func (c *Consolidador) VisitBonificacao(o *Operacao)

func (*Consolidador) VisitCompra

func (c *Consolidador) VisitCompra(o *Operacao)

func (*Consolidador) VisitCompraCall

func (c *Consolidador) VisitCompraCall(o *Operacao)

func (*Consolidador) VisitCompraCallExercida

func (c *Consolidador) VisitCompraCallExercida(o *Operacao)

func (*Consolidador) VisitCompraCallNaoExercida

func (c *Consolidador) VisitCompraCallNaoExercida(o *Operacao)

func (*Consolidador) VisitCompraPut

func (c *Consolidador) VisitCompraPut(o *Operacao)

func (*Consolidador) VisitCompraPutExercida

func (c *Consolidador) VisitCompraPutExercida(o *Operacao)

func (*Consolidador) VisitCompraPutNaoExercida

func (c *Consolidador) VisitCompraPutNaoExercida(o *Operacao)

func (*Consolidador) VisitDesdobramento

func (c *Consolidador) VisitDesdobramento(o *Operacao)

func (*Consolidador) VisitDividendos

func (*Consolidador) VisitDividendos(*Operacao)

func (*Consolidador) VisitGrupamento

func (c *Consolidador) VisitGrupamento(o *Operacao)

func (*Consolidador) VisitJSCP

func (*Consolidador) VisitJSCP(*Operacao)

func (*Consolidador) VisitJSCPNaoPago

func (*Consolidador) VisitJSCPNaoPago(*Operacao)

func (*Consolidador) VisitLeilaoFracao

func (c *Consolidador) VisitLeilaoFracao(o *Operacao)

func (*Consolidador) VisitReducaoCapital

func (c *Consolidador) VisitReducaoCapital(o *Operacao)

func (*Consolidador) VisitReembolso

func (*Consolidador) VisitReembolso(*Operacao)

func (*Consolidador) VisitRendTrib

func (*Consolidador) VisitRendTrib(*Operacao)

func (*Consolidador) VisitSubscricaoCompra

func (c *Consolidador) VisitSubscricaoCompra(o *Operacao)

func (*Consolidador) VisitSubscricaoExercicio

func (c *Consolidador) VisitSubscricaoExercicio(o *Operacao)

func (*Consolidador) VisitSubscricaoVenda

func (c *Consolidador) VisitSubscricaoVenda(o *Operacao)

func (*Consolidador) VisitVenda

func (c *Consolidador) VisitVenda(o *Operacao)

func (*Consolidador) VisitVendaCall

func (c *Consolidador) VisitVendaCall(o *Operacao)

func (*Consolidador) VisitVendaCallExercida

func (c *Consolidador) VisitVendaCallExercida(o *Operacao)

func (*Consolidador) VisitVendaCallNaoExercida

func (c *Consolidador) VisitVendaCallNaoExercida(o *Operacao)

func (*Consolidador) VisitVendaPut

func (c *Consolidador) VisitVendaPut(o *Operacao)

func (*Consolidador) VisitVendaPutExercida

func (c *Consolidador) VisitVendaPutExercida(o *Operacao)

func (*Consolidador) VisitVendaPutNaoExercida

func (c *Consolidador) VisitVendaPutNaoExercida(o *Operacao)

type DividaOnusReaisStrategy

type DividaOnusReaisStrategy struct {
	Curr  map[string]BensDireitoTicker
	Param *Param
	// contains filtered or unexported fields
}

func (*DividaOnusReaisStrategy) SituacaoAnoCorrente

func (*DividaOnusReaisStrategy) VisitDividaOnusReais

func (v *DividaOnusReaisStrategy) VisitDividaOnusReais(ano []OperacaoConsolidada)

func (*DividaOnusReaisStrategy) VisitDividaOnusReais0016

func (v *DividaOnusReaisStrategy) VisitDividaOnusReais0016(ano []OperacaoConsolidada)

type GrupoCodigo

type GrupoCodigo struct {
	Grupo   string
	Codigo  string
	Descr   string
	Agregar bool
}

func (GrupoCodigo) ID

func (g GrupoCodigo) ID() string

type ImportadorNotas

type ImportadorNotas struct{}

func (*ImportadorNotas) Importar

func (t *ImportadorNotas) Importar(dir string) ([]Operacao, error)

type Operacao

type Operacao struct {
	Data          time.Time `json:",format:DateOnly"` // Opções: Data de Compra/Venda da opção ou Data de Vencimento ou Data de Encerramento.
	Ticker        string
	Tipo          Tipo
	Qtd           decimal.Decimal `json:",omitzero"` // Pode estar fracionada em algumas operações como Bonificação, Grupamento, Desdobramento e Leilão Fração.
	ValorUnitario decimal.Decimal `json:",omitzero"` // Também é o Strike nas Opções.
	Taxas         decimal.Decimal `json:",omitzero"`
	ValorTotal    decimal.Decimal `json:",omitzero"`
	ValorCompra   decimal.Decimal `json:",omitzero"`
	Lucro         decimal.Decimal `json:",omitzero"` // Lucro ou prejuízo da operação de Venda, Bonificação, Grupamento, Subscrição Compra, Redução de Capital, Opções.
	Fator         decimal.Decimal `json:",omitzero"` // Fator de Bonificação, Grupamento ou Desdobramento e Redução de Capital.
	IRRF          decimal.Decimal `json:",omitzero"` // Dedo-Duro.

	// Opções.
	Serie          string          `json:",omitempty"`
	ValorExercicio decimal.Decimal `json:",omitzero"` // Valor da ação no dia do exercício da opção.
	Premio         decimal.Decimal `json:",omitzero"`
	Vencimento     time.Time       `json:",omitzero,format:DateOnly"`

	// DayTrade.
	DayTrade bool `json:"DayTrade,omitzero"`
}

func (*Operacao) Accept

func (o *Operacao) Accept(v Visitor)

func (*Operacao) IsAcao

func (o *Operacao) IsAcao() bool

func (*Operacao) IsOpcao

func (o *Operacao) IsOpcao() bool

func (*Operacao) QtdFracao

func (o *Operacao) QtdFracao() decimal.Decimal

func (*Operacao) QtdInt

func (o *Operacao) QtdInt() decimal.Decimal

func (*Operacao) ValorTotalBruto

func (o *Operacao) ValorTotalBruto() decimal.Decimal

type OperacaoAnual

type OperacaoAnual struct {
	Ano int
	Cfg Config
	Ops []OperacaoMensal
}

func (*OperacaoAnual) Iter

type OperacaoConsolidada

type OperacaoConsolidada struct {
	Operacao
	Agg Agregado
	Tfg Tonfig
}

type OperacaoDesconsolidada

type OperacaoDesconsolidada struct {
	Opr Operacao
	Cfg Config
	Tfg Tonfig
}

func ReadOperacoes

func ReadOperacoes(r io.Reader) ([]OperacaoDesconsolidada, error)

type OperacaoMensal

type OperacaoMensal struct {
	Mes int
	Cfg Config
	Ops []OperacaoConsolidada
}

func (*OperacaoMensal) Iter

type Operavel

type Operavel interface {
	Accept(Visitor)
}

type Param

type Param struct {
	// Mostra os valores exatos.
	// Exemplo: "0,123456" em vez de "0,12".
	MostrarValorExato bool

	// Formata valores usando esse separador de casas decimais.
	// Exemplo: "1234,56" (padrão).
	SeparadorDecimal string

	// Formata datas usando esse formato.
	// Exemplo: "02/01/2006" (padrão).
	FormatoData string

	// Filtra operações por ano (0 para mostrar todos os anos).
	FiltrarAno int

	// Filtra operações por ticker (vazio para mostrar todos os tickers).
	FiltrarTicker string
}

func (*Param) FilterOperacao

func (p *Param) FilterOperacao(o OperacaoConsolidada) bool

func (*Param) FilterTicker

func (p *Param) FilterTicker(ticker string) bool

func (*Param) FilterYear

func (p *Param) FilterYear(year int) bool

func (*Param) FormatDate

func (p *Param) FormatDate(t time.Time) string

func (*Param) FormatDecimal

func (p *Param) FormatDecimal(v decimal.Decimal) string

type PrinterCSV

type PrinterCSV struct {
	// contains filtered or unexported fields
}

func (*PrinterCSV) PrintBensDireitos

func (p *PrinterCSV) PrintBensDireitos(w io.Writer)

func (*PrinterCSV) PrintDividaOnusReais

func (p *PrinterCSV) PrintDividaOnusReais(w io.Writer)

func (*PrinterCSV) PrintOperacoesComAcoes

func (p *PrinterCSV) PrintOperacoesComAcoes(w io.Writer)

func (*PrinterCSV) PrintOperacoesComunsDayTrade

func (p *PrinterCSV) PrintOperacoesComunsDayTrade(w io.Writer)

func (*PrinterCSV) PrintRendimentosIsentosNaoTributaveis

func (p *PrinterCSV) PrintRendimentosIsentosNaoTributaveis(w io.Writer)

func (*PrinterCSV) PrintRendimentosSujeitosTributacaoExclusiva

func (p *PrinterCSV) PrintRendimentosSujeitosTributacaoExclusiva(w io.Writer)

type PrinterTable

type PrinterTable struct {
	// contains filtered or unexported fields
}

func (*PrinterTable) PrintBensDireitos

func (p *PrinterTable) PrintBensDireitos(w io.Writer)

func (*PrinterTable) PrintDividaOnusReais

func (p *PrinterTable) PrintDividaOnusReais(w io.Writer)

func (*PrinterTable) PrintOperacoesComAcoes

func (p *PrinterTable) PrintOperacoesComAcoes(w io.Writer)

func (*PrinterTable) PrintOperacoesComunsDayTrade

func (p *PrinterTable) PrintOperacoesComunsDayTrade(w io.Writer)

func (*PrinterTable) PrintRendimentosIsentosNaoTributaveis

func (p *PrinterTable) PrintRendimentosIsentosNaoTributaveis(w io.Writer)

func (*PrinterTable) PrintRendimentosSujeitosTributacaoExclusiva

func (p *PrinterTable) PrintRendimentosSujeitosTributacaoExclusiva(w io.Writer)

type RendimentoIsentoNaoTributavel

type RendimentoIsentoNaoTributavel struct {
	Ticker string
	Valor  decimal.Decimal
	Codigo string
	Descr  string
}

type RendimentoIsentosAteLimiteMensal

type RendimentoIsentosAteLimiteMensal struct {
	Mes   int
	Valor decimal.Decimal
}

type RendimentoTributavelMensal

type RendimentoTributavelMensal struct {
	Mes     int
	Lucro   decimal.Decimal
	LucroOp decimal.Decimal
	LucroAc decimal.Decimal
	IR      decimal.Decimal
	IRRF    decimal.Decimal
	DARF    decimal.Decimal
}

type RendimentosIsentosAteLimite

type RendimentosIsentosAteLimite struct {
	Ticker string
	Ano    int
	Meses  []RendimentoIsentosAteLimiteMensal
	Total  decimal.Decimal
}

type RendimentosIsentosNaoTributaveis

type RendimentosIsentosNaoTributaveis struct {
	Ano         int
	Rendimentos []RendimentoIsentoNaoTributavel
	Totais      []RendimentoIsentoNaoTributavel
}

type RendimentosTributaveis

type RendimentosTributaveis struct {
	Ano        int
	Meses      []RendimentoTributavelMensal
	IR         decimal.Decimal
	IRRF       decimal.Decimal
	TotalAcoes decimal.Decimal
	TotalOpcao decimal.Decimal
	TotalAc    decimal.Decimal
	TotalIR    decimal.Decimal
	TotalIRRF  decimal.Decimal
	TotalDARF  decimal.Decimal
}

type Tipo

type Tipo string
const (
	COMPRA               Tipo = "Compra"
	VENDA                Tipo = "Venda"
	BONIFICACAO          Tipo = "Bonificação"
	DESDOBRAMENTO        Tipo = "Desdobramento"
	GRUPAMENTO           Tipo = "Grupamento"
	LEILAO_FRACAO        Tipo = "Leilão Fração"
	DIVIDENDOS           Tipo = "Dividendos"
	REEMBOLSO            Tipo = "Reembolso"
	JSCP                 Tipo = "JSCP"
	JSCP_NAO_PAGO        Tipo = "JSCP Não Pago"
	REND_TRIB            Tipo = "Rend. Trib."
	ALUGUEL              Tipo = "Aluguel"
	REDUCAO_CAPITAL      Tipo = "Red. Cap."
	SUBSCRICAO_COMPRA    Tipo = "Compra Subscrição"
	SUBSCRICAO_VENDA     Tipo = "Venda Subscrição"
	SUBSCRICAO_COMPRA_EX Tipo = "Compra Subscrição (EX)"
	PUT_VENDA            Tipo = "Venda PUT"
	PUT_VENDA_EX         Tipo = "Venda PUT (EX)"
	PUT_VENDA_NE         Tipo = "Venda PUT (NE)"
	PUT_COMPRA           Tipo = "Compra PUT"
	PUT_COMPRA_EX        Tipo = "Compra PUT (EX)"
	PUT_COMPRA_NE        Tipo = "Compra PUT (NE)"
	CALL_VENDA           Tipo = "Venda CALL"
	CALL_VENDA_EX        Tipo = "Venda CALL (EX)"
	CALL_VENDA_NE        Tipo = "Venda CALL (NE)"
	CALL_COMPRA          Tipo = "Compra CALL"
	CALL_COMPRA_EX       Tipo = "Compra CALL (EX)"
	CALL_COMPRA_NE       Tipo = "Compra CALL (NE)"
)

type Tonfig

type Tonfig struct {
	LucroTributavel                      bool
	PrejuizoAbativel                     bool
	BensDireitos                         GrupoCodigo
	DividaOnusReais                      GrupoCodigo
	RendimentoIsentoNaoTributavel        GrupoCodigo
	RendimentoSujeitoTributacaoExclusiva GrupoCodigo
}

func (Tonfig) IsBemDireito

func (c Tonfig) IsBemDireito() bool

func (Tonfig) IsDividaOnusReais

func (c Tonfig) IsDividaOnusReais() bool

func (Tonfig) IsLimiteIsentoAplicavel

func (c Tonfig) IsLimiteIsentoAplicavel() bool

func (Tonfig) IsRendimentoIsentoNaoTributavel

func (c Tonfig) IsRendimentoIsentoNaoTributavel() bool

func (Tonfig) IsRendimentoSujeitoTributacaoExclusiva

func (c Tonfig) IsRendimentoSujeitoTributacaoExclusiva() bool

type TonfigMap

type TonfigMap map[Tipo]Tonfig

func GetDefaultTonfig

func GetDefaultTonfig(year int, def TonfigMap) TonfigMap

type Visitor

type Visitor interface {
	VisitCompra(*Operacao)
	VisitVenda(*Operacao)
	VisitBonificacao(*Operacao)
	VisitDesdobramento(*Operacao)
	VisitGrupamento(*Operacao)
	VisitLeilaoFracao(*Operacao)
	VisitDividendos(*Operacao)
	VisitReembolso(*Operacao)
	VisitJSCP(*Operacao)
	VisitJSCPNaoPago(*Operacao)
	VisitAluguel(*Operacao)
	VisitRendTrib(*Operacao)
	VisitReducaoCapital(*Operacao)
	VisitSubscricaoCompra(*Operacao)
	VisitSubscricaoVenda(*Operacao)
	VisitSubscricaoExercicio(*Operacao)
	VisitVendaPut(*Operacao)
	VisitVendaPutExercida(*Operacao)
	VisitVendaPutNaoExercida(*Operacao)
	VisitCompraPut(*Operacao)
	VisitCompraPutExercida(*Operacao)
	VisitCompraPutNaoExercida(*Operacao)
	VisitCompraCall(*Operacao)
	VisitCompraCallExercida(*Operacao)
	VisitCompraCallNaoExercida(*Operacao)
	VisitVendaCall(*Operacao)
	VisitVendaCallExercida(*Operacao)
	VisitVendaCallNaoExercida(*Operacao)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL