From 338346c826a5962979f03b84f48ac630e801c161 Mon Sep 17 00:00:00 2001 From: Priec Date: Tue, 1 Sep 2026 19:19:25 +0200 Subject: [PATCH] apvn support like accounting groups --- client-gui2 | 2 +- common/proto/table_definition.proto | 2 ++ common/src/proto/descriptor.bin | Bin 229060 -> 229167 bytes common/src/proto/komp_ac.table_definition.rs | 2 ++ server | 2 +- 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/client-gui2 b/client-gui2 index ae472514..a3be5241 160000 --- a/client-gui2 +++ b/client-gui2 @@ -1 +1 @@ -Subproject commit ae4725144becf6920f4a03b976125ede2aa4863f +Subproject commit a3be5241091cf08f5442ed0b9a1795be1eeae52a diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index 3a03f9ec..270685d1 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -311,6 +311,8 @@ message ColumnDefinition { // PHONE (international or national phone number; generates extension/type/country/calling-code companions) // TIME (timezone-free time of day) // MONEY (= unconstrained NUMERIC; currency is declared below) + // STATEMENT_CLASS (A = assets, P = equity and liabilities, + // N = expenses, V = revenue) // ACCOUNTING (creates schema-managed name, account, debit, and credit fields; // account always selects a row from the profile's managed ledger_accounts table; // name is limited to 10 characters and one stored row contributes diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 83f911b8603813d70d172d59f87fabe2bffb4b5e..8201bb964ce468b6e2d22410e88ced4eae050a10 100644 GIT binary patch delta 9289 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 ZjsB>?yO(EsnJ=1T9Wxn@q!{{jCi5vTwF diff --git a/common/src/proto/komp_ac.table_definition.rs b/common/src/proto/komp_ac.table_definition.rs index 8df59103..bd51620a 100644 --- a/common/src/proto/komp_ac.table_definition.rs +++ b/common/src/proto/komp_ac.table_definition.rs @@ -270,6 +270,8 @@ pub struct ColumnDefinition { /// PHONE (international or national phone number; generates extension/type/country/calling-code companions) /// TIME (timezone-free time of day) /// MONEY (= unconstrained NUMERIC; currency is declared below) + /// STATEMENT_CLASS (A = assets, P = equity and liabilities, + /// N = expenses, V = revenue) /// ACCOUNTING (creates schema-managed name, account, debit, and credit fields; /// account always selects a row from the profile's managed ledger_accounts table; /// name is limited to 10 characters and one stored row contributes diff --git a/server b/server index 83300228..0e77b318 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 83300228fd4c51fc90445fa486344965bf7dc527 +Subproject commit 0e77b31835557c87a6f72a9362282f9da6463d88