Skip to content

Commit 958f493

Browse files
authored
Merge pull request #14 from senecajs/lc-refactor-types-and-docs
Refactor: update tests - doc - types
2 parents 8ff6615 + e6fbc93 commit 958f493

35 files changed

+6259
-6716
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,4 @@ test/local-config.js
111111

112112
ledger_csv
113113
mise.toml
114+
CLAUDE.md

README.md

Lines changed: 119 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,89 @@ $ npm install @seneca/ledger
2323
## Quick Example
2424

2525
```js
26-
Seneca().use('ledger', {})
27-
28-
TODO
26+
// Setup
27+
const seneca = Seneca().use('promisify').use('entity').use('ledger')
28+
await seneca.ready()
29+
30+
// Create an account
31+
await seneca.post('biz:ledger,create:account', {
32+
account: { oref: 'o0', path: 'Asset', name: 'Cash', normal: 'debit' },
33+
})
34+
35+
// Get an account
36+
await seneca.post('biz:ledger,get:account', { aref: 'o0/Asset/Cash' })
37+
38+
// List accounts
39+
await seneca.post('biz:ledger,list:account', { org_id: 'o0' })
40+
41+
// Update an account
42+
await seneca.post('biz:ledger,update:account', {
43+
aref: 'o0/Asset/Cash',
44+
account: { custom_field: 'value' },
45+
})
46+
47+
// Create a book (accounting period)
48+
await seneca.post('biz:ledger,create:book', {
49+
book: { oref: 'o0', name: 'Q1', start: 20220101, end: 20220331 },
50+
})
51+
52+
// Get a book
53+
await seneca.post('biz:ledger,get:book', { bref: 'o0/Q1/20220101' })
54+
55+
// List books
56+
await seneca.post('biz:ledger,list:book', { oref: 'o0' })
57+
58+
// Update a book
59+
await seneca.post('biz:ledger,update:book', {
60+
bref: 'o0/Q1/20220101',
61+
book: { end: 20220331 },
62+
})
63+
64+
// Create a journal entry (double-entry: debit + credit)
65+
await seneca.post('biz:ledger,create:entry', {
66+
bref: 'o0/Q1/20220101',
67+
daref: 'o0/Asset/Cash',
68+
caref: 'o0/Income/Sales',
69+
val: 100,
70+
desc: 'Jan Sales',
71+
date: 20220131,
72+
})
73+
74+
// List entries
75+
await seneca.post('biz:ledger,list:entry', {
76+
oref: 'o0',
77+
bref: 'o0/Q1/20220101',
78+
})
79+
80+
// Balance an account
81+
await seneca.post('biz:ledger,balance:account', {
82+
aref: 'o0/Asset/Cash',
83+
bref: 'o0/Q1/20220101',
84+
})
85+
86+
// Close an account (zero balance and optionally carry forward to target book)
87+
await seneca.post('biz:ledger,close:account', {
88+
aref: 'o0/Asset/Cash',
89+
bref: 'o0/Q1/20220101',
90+
target_bref: 'o0/Q2/20220401',
91+
})
92+
93+
// Close a book (close all accounts and mark book as closed)
94+
await seneca.post('biz:ledger,close:book', {
95+
bref: 'o0/Q1/20220101',
96+
target_bref: 'o0/Q2/20220401',
97+
})
98+
99+
// Export account to CSV
100+
await seneca.post('biz:ledger,export:account,format:csv', {
101+
aref: 'o0/Asset/Cash',
102+
bref: 'o0/Q1/20220101',
103+
})
104+
105+
// Export book to CSV (all accounts summary)
106+
await seneca.post('biz:ledger,export:book,format:csv', {
107+
bref: 'o0/Q1/20220101',
108+
})
29109
```
30110

31111
<!--START:options-->
@@ -38,163 +118,140 @@ _None._
38118

39119
<!--START:action-list-->
40120

41-
42121
## Action Patterns
43122

44-
* [balance:account,biz:ledger](#-balanceaccountbizledger-)
45-
* [balance:book,biz:ledger](#-balancebookbizledger-)
46-
* [biz:ledger,close:account](#-bizledgercloseaccount-)
47-
* [biz:ledger,close:book](#-bizledgerclosebook-)
48-
* [biz:ledger,create:account](#-bizledgercreateaccount-)
49-
* [biz:ledger,create:book](#-bizledgercreatebook-)
50-
* [biz:ledger,create:entry](#-bizledgercreateentry-)
51-
* [biz:ledger,export:account,format:csv](#-bizledgerexportaccountformatcsv-)
52-
* [biz:ledger,export:book,format:csv](#-bizledgerexportbookformatcsv-)
53-
* [biz:ledger,get:account](#-bizledgergetaccount-)
54-
* [biz:ledger,get:book](#-bizledgergetbook-)
55-
* [biz:ledger,list:account](#-bizledgerlistaccount-)
56-
* [biz:ledger,list:book](#-bizledgerlistbook-)
57-
* [biz:ledger,list:balance](#-bizledgerlistbalance-)
58-
* [biz:ledger,list:entry](#-bizledgerlistentry-)
59-
* [biz:ledger,update:account](#-bizledgerupdateaccount-)
60-
* [biz:ledger,update:book](#-bizledgerupdatebook-)
61-
* [biz:ledger,void:entry](#-bizledgervoidentry-)
62-
123+
- [balance:account,biz:ledger](#-balanceaccountbizledger-)
124+
- [balance:book,biz:ledger](#-balancebookbizledger-)
125+
- [biz:ledger,close:account](#-bizledgercloseaccount-)
126+
- [biz:ledger,close:book](#-bizledgerclosebook-)
127+
- [biz:ledger,create:account](#-bizledgercreateaccount-)
128+
- [biz:ledger,create:book](#-bizledgercreatebook-)
129+
- [biz:ledger,create:entry](#-bizledgercreateentry-)
130+
- [biz:ledger,export:account,format:csv](#-bizledgerexportaccountformatcsv-)
131+
- [biz:ledger,export:book,format:csv](#-bizledgerexportbookformatcsv-)
132+
- [biz:ledger,get:account](#-bizledgergetaccount-)
133+
- [biz:ledger,get:book](#-bizledgergetbook-)
134+
- [biz:ledger,list:account](#-bizledgerlistaccount-)
135+
- [biz:ledger,list:book](#-bizledgerlistbook-)
136+
- [biz:ledger,list:balance](#-bizledgerlistbalance-)
137+
- [biz:ledger,list:entry](#-bizledgerlistentry-)
138+
- [biz:ledger,update:account](#-bizledgerupdateaccount-)
139+
- [biz:ledger,update:book](#-bizledgerupdatebook-)
140+
- [biz:ledger,void:entry](#-bizledgervoidentry-)
63141

64142
<!--END:action-list-->
65143

66144
<!--START:action-desc-->
67145

68-
69146
## Action Descriptions
70147

71148
### &laquo; `balance:account,biz:ledger` &raquo;
72149

73150
No description provided.
74151

152+
---
75153

76-
77-
----------
78154
### &laquo; `balance:book,biz:ledger` &raquo;
79155

80156
No description provided.
81157

158+
---
82159

83-
84-
----------
85160
### &laquo; `biz:ledger,close:account` &raquo;
86161

87162
No description provided.
88163

164+
---
89165

90-
91-
----------
92166
### &laquo; `biz:ledger,close:book` &raquo;
93167

94168
No description provided.
95169

170+
---
96171

97-
98-
----------
99172
### &laquo; `biz:ledger,create:account` &raquo;
100173

101174
No description provided.
102175

176+
---
103177

104-
105-
----------
106178
### &laquo; `biz:ledger,create:book` &raquo;
107179

108180
No description provided.
109181

182+
---
110183

111-
112-
----------
113184
### &laquo; `biz:ledger,create:entry` &raquo;
114185

115186
No description provided.
116187

188+
---
117189

118-
119-
----------
120190
### &laquo; `biz:ledger,export:account,format:csv` &raquo;
121191

122192
No description provided.
123193

194+
---
124195

125-
126-
----------
127196
### &laquo; `biz:ledger,export:book,format:csv` &raquo;
128197

129198
No description provided.
130199

200+
---
131201

132-
133-
----------
134202
### &laquo; `biz:ledger,get:account` &raquo;
135203

136204
No description provided.
137205

206+
---
138207

139-
140-
----------
141208
### &laquo; `biz:ledger,get:book` &raquo;
142209

143210
No description provided.
144211

212+
---
145213

146-
147-
----------
148214
### &laquo; `biz:ledger,list:account` &raquo;
149215

150216
No description provided.
151217

218+
---
152219

153-
154-
----------
155220
### &laquo; `biz:ledger,list:book` &raquo;
156221

157222
No description provided.
158223

224+
---
159225

160-
161-
----------
162226
### &laquo; `biz:ledger,list:balance` &raquo;
163227

164228
No description provided.
165229

230+
---
166231

167-
168-
----------
169232
### &laquo; `biz:ledger,list:entry` &raquo;
170233

171234
No description provided.
172235

236+
---
173237

174-
175-
----------
176238
### &laquo; `biz:ledger,update:account` &raquo;
177239

178240
No description provided.
179241

242+
---
180243

181-
182-
----------
183244
### &laquo; `biz:ledger,update:book` &raquo;
184245

185246
No description provided.
186247

248+
---
187249

188-
189-
----------
190250
### &laquo; `biz:ledger,void:entry` &raquo;
191251

192252
No description provided.
193253

194-
195-
196-
----------
197-
254+
---
198255

199256
<!--END:action-desc-->
200257

0 commit comments

Comments
 (0)