Skip to content

Commit

Permalink
Fix Fleuriet model
Browse files Browse the repository at this point in the history
  • Loading branch information
dude333 committed Mar 24, 2021
1 parent 9c8d474 commit 4b93f8d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
13 changes: 9 additions & 4 deletions parsers/codeaccounts.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ const (
PassivoTotal
DividaCirc
DividaNCirc
DividendosJCP
DividendosMin

// Income Statement
Vendas
Expand Down Expand Up @@ -70,12 +72,12 @@ var _accountsTable = []account{
{"1", "Ativo Total", AtivoTotal},
{"1.01", "Ativo Circulante", AtivoCirc},
{"1.02", "Ativo Não Circulante", AtivoNCirc},
{"1.*", "Caixa e Equivalentes de Caixa", Caixa},
{"1.01.*", "Aplicações Financeiras", AplicFinanceiras},
{"1.01.04", "", Estoque}, // or "Títulos e Créditos a Receber" for security companies
{"1.01.01", "Caixa e Equivalentes de Caixa", Caixa},
{"1.01.02", "Aplicações Financeiras", AplicFinanceiras},
{"1.01.04", "Estoques", Estoque}, // or "Títulos e Créditos a Receber" for security companies
{"1.01.03", "Contas a Receber", ContasARecebCirc},
{"1.02.01.*", "Contas a Receber", ContasARecebNCirc},
{"1.02.01.03", "Contas a Receber", ContasARecebNCirc},
{"1.02.01.04", "Contas a Receber", ContasARecebNCirc},

// BPP
{"2", "Passivo Total", PassivoTotal},
Expand All @@ -84,6 +86,8 @@ var _accountsTable = []account{
{"2.*", "Patrimônio Líquido Consolidado", Equity},
{"2.01.04", "Empréstimos e Financiamentos", DividaCirc},
{"2.02.01", "Empréstimos e Financiamentos", DividaNCirc},
{"2.01.05.02.01", "Dividendos e JCP a Pagar", DividendosJCP},
{"2.01.05.02.02", "Dividendo Mínimo Obrigatório a Pagar", DividendosMin},

// DRE
{"3.01", "", Vendas},
Expand All @@ -97,6 +101,7 @@ var _accountsTable = []account{
{"3.11", "Resultado Líquido de Operações Descontinuadas", ResulOpDescont},
{"3.12", "Resultado Líquido de Operações Descontinuadas", ResulOpDescont},
{"3.*", "Lucro/Prejuízo Consolidado do Período", LucLiq},
{"3.*", "Lucro/Prejuízo do Período", LucLiq},

// DFC
{"6.01", "", FCO},
Expand Down
21 changes: 10 additions & 11 deletions reports/reports.go
Original file line number Diff line number Diff line change
Expand Up @@ -480,9 +480,9 @@ func metricsList(v map[uint32]float32) (metrics []metric) {
if v[p.LucLiq] > 0 && v[p.EquityAvg] > 0 {
roe = zeroIfNeg(safeDiv(v[p.LucLiq], v[p.EquityAvg]))
}
var cdg float32 = v[p.PassivoNCirc] + v[p.Equity] - v[p.AtivoNCirc]
var ncg float32 = v[p.AtivoCirc] - v[p.Caixa] -
(v[p.PassivoCirc] - v[p.Dividendos] - v[p.DividaCirc] - v[p.DividaNCirc])
var cg float32 = v[p.AtivoCirc] - v[p.PassivoCirc]
var st float32 = v[p.Caixa] + v[p.AplicFinanceiras] - (v[p.DividaCirc] + v[p.DividendosJCP] + v[p.DividendosMin])
var ncg float32 = cg - st

return []metric{
{"Patrimônio Líquido", v[p.Equity], NUMBER, grpAccts},
Expand Down Expand Up @@ -528,22 +528,21 @@ func metricsList(v map[uint32]float32) (metrics []metric) {
{"Free Float", v[p.FreeFloat], PERCENT, grpShares},
{"", 0, EMPTY, grpShares},

{"Liquidez Corrente", safeDiv(v[p.AtivoCirc], v[p.PassivoCirc]), INDEX, grpExtra},
{"Liquidez Seco", safeDiv(v[p.AtivoCirc]-v[p.Estoque], v[p.PassivoCirc]), INDEX, grpExtra},
{"Giro dos Ativos", safeDiv(v[p.Vendas], v[p.AtivoTotal]), INDEX, grpExtra},
{"Liquidez Corrente (Ativo Circ./Passivo Circ.)", safeDiv(v[p.AtivoCirc], v[p.PassivoCirc]), INDEX, grpExtra},
{"Liquidez Seco [(Ativo Circ.-Estoque)/Passivo Circ.]", safeDiv(v[p.AtivoCirc]-v[p.Estoque], v[p.PassivoCirc]), INDEX, grpExtra},
{"Giro dos Ativos (Vendas/Ativo)", safeDiv(v[p.Vendas], v[p.AtivoTotal]), INDEX, grpExtra},
{"", 0, EMPTY, grpExtra},
{"Giro de Estoque (dias)", safeDiv(v[p.EstoqueMedio], -v[p.CustoVendas]/360), INDEX, grpExtra},
{"Prazo Médio de Recebimento (dias)", safeDiv(v[p.ContasARecebCirc]+v[p.ContasARecebNCirc], v[p.Vendas]/360), INDEX, grpExtra},
{"", 0, EMPTY, grpExtra},
{"Poder de Ganho Básico (PGB)", safeDiv(EBITDA, v[p.AtivoTotal]), PERCENT, grpExtra},
{"Poder de Ganho Básico (EBITDA/Ativo)", safeDiv(EBITDA, v[p.AtivoTotal]), PERCENT, grpExtra},
{"ROA", safeDiv(v[p.LucLiq], v[p.AtivoTotal]), PERCENT, grpExtra},
{"ROE", roe, PERCENT, grpExtra},
{"", 0, EMPTY, grpExtra},

{"-- Modelo Fleuriet --", 0, EMPTY, grpFleuriet},
{"Capital de Giro (CDG)", cdg, NUMBER, grpFleuriet},
{"Necessidade de Capital de Giro (NCG)", ncg, NUMBER, grpFleuriet},
{"Saldo de Tesouraria (T)", cdg - ncg, NUMBER, grpFleuriet},
{"Capital de Giro (CG)", cg, NUMBER, grpFleuriet},
{"Saldo de Tesouraria (ST)", st, NUMBER, grpFleuriet},
{"Necessidade de Capital de Giro (NCG=CG-ST)", ncg, NUMBER, grpFleuriet},
}
}

Expand Down

0 comments on commit 4b93f8d

Please sign in to comment.