aboutsummaryrefslogtreecommitdiff
path: root/src/db.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-19 20:13:02 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-19 20:13:02 +0200
commit77c298b3b64f2493e509734df0084068ad24441f (patch)
tree8a8182fbecdb0dc63cdc71842511cc6d00e21716 /src/db.c
parent30c309e15d3211e7d0e8a8a2752c3e9afa0a0638 (diff)
downloadbokf-77c298b3b64f2493e509734df0084068ad24441f.tar.gz
bokf-77c298b3b64f2493e509734df0084068ad24441f.zip
bokslut: TUI screen, K2 årsredovisning draft, storable dividend (schema v4)v0.1.33
Diffstat (limited to 'src/db.c')
-rw-r--r--src/db.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/db.c b/src/db.c
index 0de40ea..ebee37b 100644
--- a/src/db.c
+++ b/src/db.c
@@ -96,6 +96,7 @@ static const char SCHEMA_V1[] =
" end_date TEXT NOT NULL,"
" status TEXT NOT NULL DEFAULT 'open' CHECK (status IN ('open','closed')),"
" locked_until TEXT,"
+ " dividend_ore INTEGER NOT NULL DEFAULT 0,"
" created_at TEXT NOT NULL,"
" closed_at TEXT,"
" closed_by INTEGER REFERENCES users(id),"
@@ -362,6 +363,15 @@ static int db_upgrade_v3(sqlite3 *db, char **err)
return 0;
}
+/* v4: the årsredovisning keeps the board's proposed dividend per year. */
+static int db_upgrade_v4(sqlite3 *db, char **err)
+{
+ return db_exec(db,
+ "ALTER TABLE fiscal_years ADD COLUMN dividend_ore"
+ " INTEGER NOT NULL DEFAULT 0",
+ err);
+}
+
static int db_upgrade(sqlite3 *db, int from, char **err)
{
if (db_exec(db, "BEGIN IMMEDIATE", err) != 0)
@@ -374,6 +384,10 @@ static int db_upgrade(sqlite3 *db, int from, char **err)
db_exec(db, "ROLLBACK", NULL);
return -1;
}
+ if (from < 4 && db_upgrade_v4(db, err) != 0) {
+ db_exec(db, "ROLLBACK", NULL);
+ return -1;
+ }
char *sql = sqlite3_mprintf(
"UPDATE meta SET value='%d' WHERE key='schema_version'",
BOKF_SCHEMA_VERSION);