From d10546715ac3cd1edf093203f2d434cd6af9404d Mon Sep 17 00:00:00 2001 From: Priec Date: Wed, 22 Jul 2026 12:22:24 +0200 Subject: [PATCH] automatic accounting - removing deprecacy/legacy --- client | 2 +- common/proto/accounting.proto | 2 +- common/proto/table_definition.proto | 2 ++ common/proto/table_script.proto | 4 ++-- common/proto/tables_data.proto | 10 ++-------- common/src/proto/descriptor.bin | Bin 123218 -> 122806 bytes common/src/proto/komp_ac.accounting.rs | 2 -- common/src/proto/komp_ac.table_definition.rs | 2 ++ common/src/proto/komp_ac.table_script.rs | 3 --- common/src/proto/komp_ac.tables_data.rs | 8 -------- graphs/src/pages/add_table/state.rs | 7 ++++--- .../src/pages/import_export/import/logic.rs | 1 - server | 2 +- tui-canvas | 2 +- tui-pages | 2 +- 15 files changed, 17 insertions(+), 32 deletions(-) diff --git a/client b/client index 087f2af..1abb27e 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 087f2afaa3bb0fd961327ccbfa9037446e4cdc7c +Subproject commit 1abb27eecc7ed286594120fec03a0c90034422fd diff --git a/common/proto/accounting.proto b/common/proto/accounting.proto index 0eca8bd..1b39258 100644 --- a/common/proto/accounting.proto +++ b/common/proto/accounting.proto @@ -181,7 +181,7 @@ message JournalLine { string source_table_name = 10; int64 source_record_id = 11; int64 source_row_revision = 12; - int64 posting_script_id = 13; + reserved 13; } message Journal { diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index a674534..bfbb251 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -170,6 +170,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 comes from the table) + // ACCOUNTING (creates the schema-managed name, debit, and credit columns; + // one stored row contributes one line to the profile journal) // INT // BIGINT // DATE diff --git a/common/proto/table_script.proto b/common/proto/table_script.proto index bab64a0..241c403 100644 --- a/common/proto/table_script.proto +++ b/common/proto/table_script.proto @@ -172,14 +172,14 @@ message StoredTableScript { } message ScriptDependency { + reserved 4; + // Logical table name referenced by the script. string target_table = 1; // Normalized dependency kind, such as column_access or related_aggregate. string dependency_type = 2; // Logical column name. Empty for aggregates that operate on rows only. string column = 3; - // Deprecated legacy field. Raw SQL dependencies are no longer produced. - string query_fragment = 4; // Aggregate operation name, such as sum, count_rows, or exists; empty for // column_access dependencies. string operation = 5; diff --git a/common/proto/tables_data.proto b/common/proto/tables_data.proto index 2cb57bf..b70fd7b 100644 --- a/common/proto/tables_data.proto +++ b/common/proto/tables_data.proto @@ -121,11 +121,7 @@ message PostTableDataRequest { // - Some application-specific validations may apply (e.g., max length for // certain fields like "telefon") map data = 3; - - // Optional. Existing journal that receives the posting generated for this row. - // Required when the table has an active after-insert posting script and rejected - // when the table has no active posting script. - optional int64 journal_id = 4; + reserved 4; } // Insert response. @@ -150,9 +146,7 @@ message PostTableDataResponse { message PostTableDataBulkRow { // Required. Same data payload as PostTableDataRequest.data. map data = 1; - - // Optional. Existing journal that receives the posting generated for this row. - optional int64 journal_id = 2; + reserved 2; } // Bulk insert request. diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 2a2ab42c7b1802732a8a480bf711775c047d508e..1ade128cae06624717e26158b68cf6db43268a37 100644 GIT binary patch delta 7664 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 delta 8034 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, - /// Optional. Existing journal that receives the posting generated for this row. - /// Required when the table has an active after-insert posting script and rejected - /// when the table has no active posting script. - #[prost(int64, optional, tag = "4")] - pub journal_id: ::core::option::Option, } /// Insert response. #[derive(Clone, PartialEq, ::prost::Message)] @@ -79,9 +74,6 @@ pub struct PostTableDataBulkRow { ::prost::alloc::string::String, ::prost_types::Value, >, - /// Optional. Existing journal that receives the posting generated for this row. - #[prost(int64, optional, tag = "2")] - pub journal_id: ::core::option::Option, } /// Bulk insert request. #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/graphs/src/pages/add_table/state.rs b/graphs/src/pages/add_table/state.rs index 8a23f8f..d6fe457 100644 --- a/graphs/src/pages/add_table/state.rs +++ b/graphs/src/pages/add_table/state.rs @@ -104,9 +104,10 @@ impl CreateTableForm { }), ); - let has_money = columns - .iter() - .any(|column| column.field_type.eq_ignore_ascii_case("money")); + let has_money = columns.iter().any(|column| { + column.field_type.eq_ignore_ascii_case("money") + || column.field_type.eq_ignore_ascii_case("accounting") + }); let base_currency = self.base_currency.trim().to_ascii_uppercase(); if has_money && base_currency.is_empty() { return Err("A base currency is required when a MONEY column is used.".to_string()); diff --git a/graphs/src/pages/import_export/import/logic.rs b/graphs/src/pages/import_export/import/logic.rs index 17dbdc6..6d1fac1 100644 --- a/graphs/src/pages/import_export/import/logic.rs +++ b/graphs/src/pages/import_export/import/logic.rs @@ -184,7 +184,6 @@ fn row_for_table(table: &ImportTable, positions: &[(usize, String)], row: &[Stri } Ok(PostTableDataBulkRow { data, - journal_id: None, }) } diff --git a/server b/server index e52b2ab..549f26d 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit e52b2ab6e45571abfd515af1e3a891cc5128c42c +Subproject commit 549f26df7026d5beb7a7af553143fad9b6b5de38 diff --git a/tui-canvas b/tui-canvas index 2a1849f..3ecc28e 160000 --- a/tui-canvas +++ b/tui-canvas @@ -1 +1 @@ -Subproject commit 2a1849fb95d9c942fac4eecf7a260b46a92d3020 +Subproject commit 3ecc28ee1184ff86e64116a4f4531e536a320722 diff --git a/tui-pages b/tui-pages index 76e6d56..17601d9 160000 --- a/tui-pages +++ b/tui-pages @@ -1 +1 @@ -Subproject commit 76e6d5688fd43a81b72557013d2a0410e240ff23 +Subproject commit 17601d9c456bde89478c86990cc815e07e869c2d