summaryrefslogtreecommitdiff
path: root/src/cmd_bokslut.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-21 21:43:44 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-21 21:43:44 +0200
commit62a92f0af0442c78277c3c97c9efe6fef8145625 (patch)
tree3802a62904880da22bf84a44e9ece3cdff9cd8aa /src/cmd_bokslut.c
parentf1eeb15781a044a9451ee08b91c63feb395b4767 (diff)
downloadbokf-0.1.60.tar.gz
bokf-0.1.60.zip
settings: per-feature voucher series and console invoice number; tui: F9 hintsv0.1.60
Diffstat (limited to 'src/cmd_bokslut.c')
-rw-r--r--src/cmd_bokslut.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd_bokslut.c b/src/cmd_bokslut.c
index c813923..f0ddee9 100644
--- a/src/cmd_bokslut.c
+++ b/src/cmd_bokslut.c
@@ -88,6 +88,9 @@ static yyjson_mut_val *h_bokslut_post(struct req *r)
}
int64_t result_before = 0;
+ char ib_series[16];
+ db_setting_copy(r->db, r->org_id, "series_ib", "IB", ib_series,
+ sizeof ib_series);
if (sqlite3_prepare_v2(
r->db,
"SELECT COALESCE(SUM(r.credit_ore)-SUM(r.debit_ore),0)"
@@ -95,11 +98,13 @@ static yyjson_mut_val *h_bokslut_post(struct req *r)
" JOIN vouchers v ON v.org_id=r.org_id AND v.id=r.voucher_id"
" JOIN accounts a ON a.org_id=r.org_id AND a.id=r.account_id"
" WHERE r.org_id=?1 AND v.fiscal_year_id=?2 AND v.series<>'IB'"
+ " AND v.series<>?3"
" AND a.type IN ('revenue','expense') AND a.number NOT LIKE '89%'",
-1, &st, NULL) != SQLITE_OK)
return db_error(r);
sqlite3_bind_int64(st, 1, r->org_id);
sqlite3_bind_int64(st, 2, fy_id);
+ sqlite3_bind_text(st, 3, ib_series, -1, SQLITE_TRANSIENT);
if (sqlite3_step(st) == SQLITE_ROW)
result_before = sqlite3_column_int64(st, 0);
sqlite3_finalize(st);
@@ -154,6 +159,9 @@ static yyjson_mut_val *h_bokslut_post(struct req *r)
plan[np++] = (typeof(plan[0])){ "Resultatdisposition", drows, 2 };
}
+ char series[16];
+ db_setting_copy(r->db, r->org_id, "series_bokslut", "Å", series,
+ sizeof series);
yyjson_mut_val *vouchers = yyjson_mut_arr(r->rdoc);
for (size_t i = 0; i < np; i++) {
struct ledger_post_opts o;
@@ -165,6 +173,7 @@ static yyjson_mut_val *h_bokslut_post(struct req *r)
o.description = plan[i].desc;
o.rows = plan[i].rows;
o.nrows = plan[i].nrows;
+ o.series = series;
o.dry_run = r->dry_run;
struct ledger_error e;
char *json = NULL;