From 72ed7297831398917e9350ec41ff6e8bc9f26f63 Mon Sep 17 00:00:00 2001 From: Priec Date: Wed, 22 Jul 2026 12:56:39 +0200 Subject: [PATCH] automatic accounting - journal name max 10 chars --- common/proto/accounting.proto | 5 +++-- common/proto/table_definition.proto | 5 +++-- common/src/proto/descriptor.bin | Bin 122806 -> 122896 bytes common/src/proto/komp_ac.accounting.rs | 5 +++-- common/src/proto/komp_ac.table_definition.rs | 5 +++-- server | 2 +- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/common/proto/accounting.proto b/common/proto/accounting.proto index 1b39258..37bfa0e 100644 --- a/common/proto/accounting.proto +++ b/common/proto/accounting.proto @@ -54,8 +54,9 @@ message PostJournalRequest { // journal is allowed to remain unbalanced. repeated JournalLineInput lines = 5; - // Required and unique within the profile when creating. Must be empty when - // appending to an existing journal selected by journal_id. + // Required, unique within the profile, and at most 10 characters when + // creating. Must be empty when appending to an existing journal selected by + // journal_id. string journal_name = 6; } diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index bfbb251..c2bb5ad 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -170,8 +170,9 @@ 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) + // ACCOUNTING (creates the schema-managed name, account, debit, and credit columns; + // name is limited to 10 characters and one stored row contributes + // one line to the profile journal) // INT // BIGINT // DATE diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 1ade128cae06624717e26158b68cf6db43268a37..48b807044ad070ec80b25429caede0af08cce524 100644 GIT binary patch delta 9232 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 delta 9128 zcmY+Jdyv)Dk;iYJ`{2WxqSz7+2a5Fm10)USWBSTvC&(df*0;qPoDtQwu~S1e(Gm`su# zWBOVOAXZckh=pUC5|7dh`o^?(cpkE`rqjy=GsYTch8W#otTzJ$Z7gQE?M#v#XZm=W zdOxm4GtkBrnu845xTMX~0O_Tszn5jDc#}=e8U<2W-bD)pZ!*Es;AfL) zO6L2{3^jI2-bEv;W=!>F08ls8n*n0sRBr|-n_QNi>Z6!dGp2bn0Pv=HGe9cyW`Hnb z8fHAI*_Jg#e|n|gfNc|}o7kGoPpqGw>j;ST9m~3uk$UL8zOBx|!JB zpf=7n{W_;~O_;lUes}MZ<@1*;@4d12ruki!O#{bYFuSHiy`NoZv)({M$?T54#gSGC z&R-<&uR=?b^{Hi|f#j$odU=Dj;Tsbi0qRM@P8q+zoUGxy=)OOK~ zo5L=8)NvABomt{Mk6Cqf-qlO2p3n0~2Eg-q-U<*4=lLT8p>CcpvsgW!?*f)aAb9h= z86Xw^^7_tj%G#2*ybck&)>#fl=Z+dIaHDr@C+gtOFHnqsO z%!^HomPIw5MtxDC#U3d#wp-NJ$6J|8ve%kHUX+7&ZS4$l(5|H}wXMb`2kqJcE@@+v zPqK?ml6qMl-eO-q$lxu`xsC~fx45O%Z&ygN*VTejfOcKY$^x|Od@+r+OHv>IS6Kc741{pe+7lKaBq2=ccu;q|X zqMI`R=$z3=-Q=&Gy!x`joNLtqP`AQ|6vV<6xdB0jx)p=Filr1g^19W{K4SpzZuaJb zRF-#H0fKk4Pnf)x!!2frSE<(DQlqKLTL`kAJPV=Sa;|H1c?GwcVNR6VdbqX5({i{q z-{pB)4z~^&YNM4moXu_K952#xxXlL(5wzP1t};Q;Zlm9p=pBWm;b)m&ii?&e$j|b_ ztiFOqEB%&t8-&8tD+IAJ^@RdLVT#)q5v>BQMJp>ahm7i8DcD`cLw?gAg{J2rx6?|Y z0o-62T$!sY`-Uv*UM=k4mZ+N5LbiGcW3`YOKd=nYn#vD{&PdnP8N?=9BlH-@AUHtw zXvEE860eoaX8bJi7%8%Ht=KR|Q4vR@yM#8WJP;QN&{+;-?Oj5n^is6mC3MP0>?oQP z>D@xTIVriJ(D_ibUf(UWAuok{x6p?i7q5RUv`Z%>KNJS4y8r9oOi?ogXr0k*LF??U zsWq9NsW@;o5bNsOY9Q9tx8;UiFC44emON1ysQPAGFC46wLR~MM?6<79tlc1{y>mp@ zjNWUO@M^reGHm#T-TW5#G*Fh%2_2sf3Zxb4sTBa=%2t&tpKIc2JROcuiJ(Os?eQkiWKhsLhtor zxc3Xq*KrF;^w0HErHd*I+fpS!pP5DNqd*#|qZX5BlTe0EZxJdmP&M&3NrCr^7sK5o z{q#j^qEZq+D49omj+R*ZpyY>JwI$8bhs0cDc_0oESPYQBJ|v|f0YZI9hJHOjHhD{R8Hb2B=fxYrp(GG z#9m=hR90tpifOh{0HGD=v;tYXQ_{RUIWTH>O1a5;Q`SA76fR1QAP6onaMhb9bssN< z`lNP5b*8LG^Hc}~h>QTbA_GEwN|>q~m0Lxz?_y;|zX|aNu`STW9|-q1A^t$S*vG%j zr4#KEW-F&yy9qE*wVUh`rYkRnx=R?ZZ2Zd_@TWtSfgB86?Icf!CWaL5)1ir#)xBrL zgi!DpQyBYww52>FxuyW2J|nFTvkX`}A6m+@V!EtNY1wE`0SB)3lxL;jx*$@x&&t5T-eh{p-q6a*Mtce{ zq=ojBy}}#E1-S@yubksLS=p45XrJ)ral#T*U>dmEWcEqkbt@Lb-6w;1_i#y;vG_SL zJ~a!Z^>b44302TM{wgH)(*VOg7!n2u_h3kvCN=R; zI5`lifUa)gf52O1!+24_Bbcr4U4F zI6${+iWKf~DY&i(gnL}tT|;fs%6T;uEC?RpD(Dq_vg+^_KSBGAaJ|bF`ae(kz(g`pdGBTQA|Xi*ULfU z8*61hFQrBsK@b~!6;e4Cj!o_f8R3Lt`n9_nuWWll z2yN{LtU954T;h2wcw3@Aog=EP|0aVfXTR(>3S6uaw3EFprRMq%Xn0%i%`3eIPT^$b zvcJrncv7PJM%pn>O1Z7Z(}OuFeFoKkK+#Ek&3(@+0>4}N_rFXZ_3l><(9?NWN&{;= z?P~8z*SWb-GJdXt*ZQLo7#(z|g1K)n>cOOYP z@n+ah!~D?Jzy1S?KGN5|Jz?GcOj_q_2D4cYsm#nI5}V2h+(HlKHYaF)I_&FNBZUYMUKQPKRp>L=FO-Z9uj^ zEd_Tk0a185+)KQuGmOrZY2P9kT6Um*MfhIvRU;jEP0mjE}I zoRy?DwxH^)x^)q5F_`?^WbUlaiezN^b3@guTXrP5-S`Kl8%cn!eYuh3cH{ew8%b_A z{()&nl9h%Jg?b~okp$@6awEw~;|F9nlB_iTs!JI&lIRZOhjTZQ0Nra1NJ#E5d~9-> zwX@z~{7bx1(JJEyPY@vh2CA0yD#LeSN7aH}W%vX%lMpb?{K91JGE%*>L1s+-g~?xF zgJ4IQHNhG;$^e}wZj@PL{DaF)GHcYD?-D;d$*irO7t7SqYmGk_H_)s#CHHjzh*4`z z>riVH5Tn+bubpqtg-7H%lew?@c+9!1GklcNbFuHo_2&OQAA!zG_k3KBfmWe=KCU-@ zxU$d3dxAIa`3Q90xaZ?N!5jB{yeGt#rvm3vG5+-qBDlb?t)5FoQ^&nQ^du^V-ry_- zZ7_bObI(U$*jCSFgYnn2dp>S3erB-G$Bo7eOub@#KY{~S+wDf<=WX|V+-U5)t$||g zy>LBMhbv&9>U;6tI#u6`_tvR&g=*d6xM8Hlfonh5)J?V@Y}91EyPK1ElgT_-U7eRn z=_ZrE(8i!y8`$O$dJx6{okAeSY!0CZV$9|c`eu#o1IGNV^#eqq1KkM&G4%mcIzLG5 z;t?Y)>_CjF2h6B%aAljQC5g9~%oEi)1(}j=F@9ceQQIEjd@TorZ9r!m5RH$Rf_q*9 zQTT}ATe}`@i`w>RNJbD;pvwxNmHK1^LVYwOW7?t_wbdABIS9Xi&MzQ-Z8asAQ9x8} zH3Qry8z8E-n&J9UUabIaGrq-x&;$&cvS`|7xRW(Ek)mmv=}28(fGwF`=v2Yo9(qWN zomYS%7MgF{4PTL+D!tsdYY%Z$oZk^Dq{R;Nz(Cb}+hGd9pN16fj!+^k>g{93jPi4Z;zQlJwXcfF>}$yep}{~$3w2R7@bdmVOyO~9uKLC6zb!es${ z@JQ%PKolMcovBToJQ`9D1Qi&l8or|;^^ih68X9}rrr|plx-$qaFmP4#vCy57!aWwc zbDN^$b*hFB7^oV)<8`Wr@3>MgAq0Jr_;r){7w-A_E%MFub>rWceKZJfgvSmDl|c8{ z0iyDa@Yn&O@{RD=>7%B;86G3-T#214&D4z_3cDvcb^Io;71gl3K0OJ=#)l4U-=!n f_xsh^Z8CcB`(bZ>)L+9h4+!P`=k~S9>^J`pcc5|3 diff --git a/common/src/proto/komp_ac.accounting.rs b/common/src/proto/komp_ac.accounting.rs index 45b31e1..5530fc4 100644 --- a/common/src/proto/komp_ac.accounting.rs +++ b/common/src/proto/komp_ac.accounting.rs @@ -18,8 +18,9 @@ pub struct PostJournalRequest { /// journal is allowed to remain unbalanced. #[prost(message, repeated, tag = "5")] pub lines: ::prost::alloc::vec::Vec, - /// Required and unique within the profile when creating. Must be empty when - /// appending to an existing journal selected by journal_id. + /// Required, unique within the profile, and at most 10 characters when + /// creating. Must be empty when appending to an existing journal selected by + /// journal_id. #[prost(string, tag = "6")] pub journal_name: ::prost::alloc::string::String, } diff --git a/common/src/proto/komp_ac.table_definition.rs b/common/src/proto/komp_ac.table_definition.rs index 2d7d071..e94d90e 100644 --- a/common/src/proto/komp_ac.table_definition.rs +++ b/common/src/proto/komp_ac.table_definition.rs @@ -141,8 +141,9 @@ 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 comes from the table) - /// ACCOUNTING (creates the schema-managed name, debit, and credit columns; - /// one stored row contributes one line to the profile journal) + /// ACCOUNTING (creates the schema-managed name, account, debit, and credit columns; + /// name is limited to 10 characters and one stored row contributes + /// one line to the profile journal) /// INT /// BIGINT /// DATE diff --git a/server b/server index 549f26d..0b6d30e 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 549f26df7026d5beb7a7af553143fad9b6b5de38 +Subproject commit 0b6d30e814083800dc871056d2f4dafd118d64cd