all repos

clerk @ e2e9e2b27783c07fe5724268bf7ae828b3aacac7

missing tooling for ledger/hledger

clerk/internal/linter/rule_missing_payee.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
improve analyzer, 1 day ago
1
package linter
2
3
import "olexsmir.xyz/clerk/internal/analyzer"
4
5
// MissingPayee flags transactions with missing payee.
6
type MissingPayee struct{}
7
8
func (MissingPayee) ID() RuleID         { return "missing-payee" }
9
func (MissingPayee) Severity() Severity { return SeverityWarning }
10
func (m *MissingPayee) CheckJournal(an *analyzer.Analysis) []Find {
11
	var finds []Find
12
	for _, txn := range an.Transactions {
13
		if txn.Payee == nil {
14
			finds = append(finds, Find{
15
				Code:     m.ID(),
16
				Severity: m.Severity(),
17
				Message:  "transaction has no payee",
18
				Span:     txn.Date.Span,
19
			})
20
		}
21
	}
22
	return finds
23
}