contabil

package
v0.0.0-...-4eee9bc Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2025 License: MIT Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrFaltaItem    = errors.New("itens faltando")
	ErrDataInválida = errors.New("data inválida")
)
View Source
var (
	ErrArquivoInválido = errors.New("arquivo inválido")
	ErrDFPInválida     = errors.New("DFP inválida")
	ErrSemDados        = errors.New("sem dados")

	ErrAnoInválidoFn = func(ano int) error { return fmt.Errorf("ano inválido: %d", ano) }
)
View Source
var ErrRepositórioInválido = errors.New("repositório inválido")

Functions

func NewFREParser

func NewFREParser(cabeçalho []string) *parserFRE

func Unmarshal

func Unmarshal(data string)

Types

type Arquivo

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

type CVM

type CVM interface {
	Import(ctx context.Context, ano int, trimestral bool) <-chan dominio.ImportResult
}

func NewDFPImporter

func NewDFPImporter(configs ...Option) (CVM, error)

func NovaFRE

func NovaFRE(configs ...Option) (CVM, error)

type CVMImporter

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

CVMImporter é um importador genérico de dados da CVM.

func (*CVMImporter) Import

func (c *CVMImporter) Import(ctx context.Context, ano int, trimestral bool) <-chan dominio.ImportResult

Import baixa o arquivo de dados de todas as empresas de um determinado ano do site da CVM.

type ContabilServices

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

ContabilServices contém os serviços que implementam a interface CVM de importação de dados da CVM.

func NewService

func NewService(db *sqlx.DB, tempDir string, force ...bool) (*ContabilServices, error)

func (*ContabilServices) BuscaEmpresas

func (c *ContabilServices) BuscaEmpresas(nome string) ([]rapina.Empresa, error)

func (*ContabilServices) DadosTrimestrais

func (c *ContabilServices) DadosTrimestrais(cnpj string, consolidado bool) ([]rapina.InformeTrimestral, error)

func (*ContabilServices) Empresas

func (c *ContabilServices) Empresas() ([]rapina.Empresa, error)

func (*ContabilServices) Import

func (c *ContabilServices) Import(ano int, trimestral bool) error

Import importa os relatórios contábeis no ano especificado e os salva no banco de dados.

type Contas

type Contas struct {
	Modelos map[string]Modelo
}

type DFPParser

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

type DFPRecord

type DFPRecord struct {
	CNPJ   string
	Nome   string // Nome da empresa
	Ano    string
	Versão string

	Código       string
	Descr        string
	GrupoDFP     string
	DataIniExerc string // AAAA-MM-DD
	DataFimExerc string // AAAA-MM-DD
	OrdemExerc   string // ÚLTIMO ou PENÚLTIMO
	Moeda        string
	Meses        int // Número de meses acumulados desde o início do exercício
	Valor        float64
	Escala       int
	Consolidado  bool
}

DFPRecord é usada para armazenar os dados (linhas) dos arquivos de DFP.

type FRERecord

type FRERecord struct {
	CNPJ                        string
	Nome                        string // Nome da empresa
	DataRef                     string
	DataUltimaAssembleia        string
	IDDoc                       int
	PctAcoesOrdCirculacao       float64
	PctAcoesPrefCirculacao      float64
	PctTotalAcoesCirculacao     float64
	QtdAcionistasInstitucionais int
	QtdAcionistasPF             int
	QtdAcionistasPJ             int
	QtdAcoesOrdCirculacao       int64
	QtdAcoesPrefCirculacao      int64
	QtdTotalAcoesCirculacao     int64
	Versao                      int
}

FRERecord é usada para armazenar os dados (linhas) dos arquivos de FRE.

type JSONTrimestral

type JSONTrimestral []TrimestralItem

type LocalInfra

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

func (LocalInfra) Cleanup

func (l LocalInfra) Cleanup(arqs []Arquivo) []string

func (LocalInfra) DownloadAndUnzip

func (l LocalInfra) DownloadAndUnzip(urlString string, filtros []string) ([]Arquivo, string, error)

DownloadAndUnzip baixa e descompacta o arquivo e retorna a lista de arquivos descompactados, com o hash de cada arquivo; retorna o hash do .zip e o erro, se houver.

type Modelo

type Modelo struct {
	AtivoTotal        [][]string `yaml:"AtivoTotal"`
	AtivoCirc         [][]string `yaml:"AtivoCirc"`
	AtivoNCirc        [][]string `yaml:"AtivoNCirc"`
	Caixa             [][]string `yaml:"Caixa"`
	AplicFinanceiras  [][]string `yaml:"AplicFinanceiras"`
	Estoque           [][]string `yaml:"Estoque"`
	ContasARecebCirc  [][]string `yaml:"ContasARecebCirc"`
	ContasARecebNCirc [][]string `yaml:"ContasARecebNCirc"`
	PassivoTotal      [][]string `yaml:"PassivoTotal"`
	PassivoCirc       [][]string `yaml:"PassivoCirc"`
	PassivoNCirc      [][]string `yaml:"PassivoNCirc"`
	Equity            [][]string `yaml:"Equity"`
	DividaCirc        [][]string `yaml:"DividaCirc"`
	DividaNCirc       [][]string `yaml:"DividaNCirc"`
	DividendosJCP     [][]string `yaml:"DividendosJCP"`
	DividendosMin     [][]string `yaml:"DividendosMin"`
	Vendas            [][]string `yaml:"Vendas"`
	CustoVendas       [][]string `yaml:"CustoVendas"`
	DespesasOp        [][]string `yaml:"DespesasOp"`
	EBIT              [][]string `yaml:"EBIT"`
	ResulFinanc       [][]string `yaml:"ResulFinanc"`
	ResulOpDescont    [][]string `yaml:"ResulOpDescont"`
	LucLiq            [][]string `yaml:"LucLiq"`
	FCO               [][]string `yaml:"FCO"`
	FCI               [][]string `yaml:"FCI"`
	FCF               [][]string `yaml:"FCF"`
	Deprec            [][]string `yaml:"Deprec"`
	JurosCapProp      [][]string `yaml:"JurosCapProp"`
	Dividendos        [][]string `yaml:"Dividendos"`
}

ContaYaml armazena os dados importados do arquivo yaml (deve ser convertido em contabil.ConfigConta). Formato: [["1", "Descrição 1"], ["1.1", "Descrição 1.1"]]

type Option

type Option func(*cfg)

func WithDataDir

func WithDataDir(dir string) Option

func WithForce

func WithForce(force bool) Option

func WithProcessedHashes

func WithProcessedHashes(hashes []string) Option

type Sqlite

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

Sqlite implementa RepositórioLeituraEscrita

func NewSqlite

func NewSqlite(db *sqlx.DB, configs ...Option) (*Sqlite, error)

func (*Sqlite) BuscaEmpresas

func (s *Sqlite) BuscaEmpresas(ctx context.Context, nome string) ([]rapina.Empresa, error)

func (*Sqlite) Empresas

func (s *Sqlite) Empresas(ctx context.Context) ([]rapina.Empresa, error)

func (*Sqlite) Save

func (*Sqlite) SaveFRE

func (s *Sqlite) SaveFRE(ctx context.Context, fre *dominio.FreDistribCapital) error

func (*Sqlite) Trimestral

func (s *Sqlite) Trimestral(ctx context.Context, cnpj string, consolidado bool) ([]rapina.InformeTrimestral, error)

type TrimestralItem

type TrimestralItem struct {
	Ano int      `json:"ano"`
	T1  *float64 `json:"t1,omitempty"`
	T2  *float64 `json:"t2,omitempty"`
	T3  *float64 `json:"t3,omitempty"`
	T4  *float64 `json:"t4,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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