Compare commits

..

172 commits

Author SHA1 Message Date
Frederik Jaeckel
2ea509dd07 Version 6.0.34 2024-05-30 13:15:27 +02:00
Frederik Jaeckel
35cd838a62 merge... 2024-05-30 13:12:52 +02:00
Frederik Jaeckel
4e2b89ecf7 hgignore 2024-05-30 12:44:27 +02:00
Frederik Jaeckel
a4509b4009 Allow to fixate a booking from Booking-Wizard 2024-05-30 12:44:11 +02:00
Frederik Jaeckel
f060d909fd re-calculate values @ module install 2024-01-20 18:09:03 +01:00
Frederik Jaeckel
6bcc1109d7 Etikett ver 6.0.33 zum Änderungssatz 7011ee257d9c hinzugefügt 2023-12-31 13:29:34 +01:00
Frederik Jaeckel
67cfa464a4 Version 6.0.33 2023-12-31 13:29:22 +01:00
Frederik Jaeckel
543511a0b2 tests valuestore: allow add of data to cashbook-line 2023-12-31 13:17:47 +01:00
Frederik Jaeckel
2e9ff5620b 6.0: valuestore - Index() --> select=True, fix tests for 6.0 2023-12-31 12:36:03 +01:00
Frederik Jaeckel
5b8fdd0088 add license 2023-12-31 11:20:00 +01:00
Frederik Jaeckel
c6832e1f19 cashbook: optimize for speed for checking rows 2023-12-29 22:55:41 +01:00
Frederik Jaeckel
85a96c12f8 valuestore: fix test for number of fields 2023-12-29 22:53:27 +01:00
Frederik Jaeckel
b1aa20a581 optimize searcher/sort, add search/sort to balance_ref 2023-12-29 14:51:39 +01:00
Frederik Jaeckel
5a23ac3c52 add worker-based precalculation of cashbook-values 2023-12-27 15:49:02 +01:00
Frederik Jaeckel
fb0ef72d07 remove caching 2023-12-23 10:36:58 +01:00
Frederik Jaeckel
01f1aff68f formatting, indexes optimized 2023-11-29 15:19:38 +01:00
Frederik Jaeckel
c87f22674b Etikett ver 6.0.31 zum Änderungssatz 2cb679c07b5b hinzugefügt 2023-11-30 13:49:35 +01:00
Frederik Jaeckel
5f9f364720 Version 6.0.31 2023-11-30 13:49:20 +01:00
Frederik Jaeckel
026388c32b ir.rule: Eval('user').get('groups') --> Eval('groups') 2023-11-30 13:14:54 +01:00
Frederik Jaeckel
52588a1e02 Etikett ver 6.0.30 zum Änderungssatz 1e6aba1e8513 hinzugefügt 2023-07-25 21:53:44 +02:00
Frederik Jaeckel
cf6acfa076 Version 6.0.30 2023-07-25 21:53:20 +02:00
Frederik Jaeckel
97f78a2cd8 merge... 2023-07-25 21:51:33 +02:00
Frederik Jaeckel
9ef1468715 splitline: add tests 2023-07-25 21:11:32 +02:00
Frederik Jaeckel
0e30725d1f optimize search-queries, line: fix state-selection 2023-07-24 17:31:34 +02:00
Frederik Jaeckel
50ce7f5dbc Etikett ver 6.0.28 zum Änderungssatz a0c7c0d6004c hinzugefügt 2023-06-05 20:31:56 +02:00
Frederik Jaeckel
57f5150ea9 Version 6.0.28 2023-06-05 20:31:38 +02:00
Frederik Jaeckel
a5dd469cf3 fix tests 2023-06-02 21:08:56 +02:00
Frederik Jaeckel
bbe71a8252 prepare test for porting 2023-06-02 20:40:12 +02:00
Frederik Jaeckel
a84791f1da formatting, line: test for delete of party 2023-05-18 12:15:53 +02:00
Frederik Jaeckel
268e16dc64 Etikett ver 6.0.27 zum Änderungssatz 6a23e945df12 hinzugefügt 2023-03-05 10:22:52 +01:00
Frederik Jaeckel
a5c8920d26 Version 6.0.27 2023-03-05 10:22:40 +01:00
Frederik Jaeckel
2f65a18055 remove logging, add config-settings for caching, add docs 2023-03-05 10:20:02 +01:00
Frederik Jaeckel
0a5c0585a2 book/line: logging, model: cache-write skip existing values 2023-03-04 21:24:19 +01:00
Frederik Jaeckel
440e4c66d5 sync 2023-03-02 16:53:43 +01:00
Frederik Jaeckel
dc70beb0c9 cache: deepcopy for store/recall values 2023-03-02 14:12:18 +01:00
Frederik Jaeckel
2bfe732c33 Etikett ver 6.0.26 zum Änderungssatz def0ae034240 hinzugefügt 2023-02-27 20:39:57 +01:00
Frederik Jaeckel
bfb32219e2 Version 6.0.26 2023-02-27 20:39:48 +01:00
Frederik Jaeckel
d5bc62ca78 book: add caching for line 2023-02-27 20:37:38 +01:00
Frederik Jaeckel
1793d3653e speedup: indexes, caching 2023-02-26 22:49:21 +01:00
Frederik Jaeckel
1e722ae601 book: optimize form 2023-02-23 10:35:49 +01:00
Frederik Jaeckel
14c027bf30 book: 6x columns for 'Balance' 2023-02-22 20:32:00 +01:00
Frederik Jaeckel
f078ff6670 Etikett ver 6.0.25 zum Änderungssatz 8c117ff199ce hinzugefügt 2023-02-14 10:18:13 +01:00
Frederik Jaeckel
ea737d61d2 Version 6.0.25 2023-02-14 10:18:05 +01:00
Frederik Jaeckel
204a0a2623 fix: deny invalid 'date' in context 2023-02-14 10:16:03 +01:00
Frederik Jaeckel
08e99bb84b remove left/right from category 2023-02-10 19:38:32 +01:00
Frederik Jaeckel
553e58371b menü: updt settings-icon 2023-02-10 19:04:06 +01:00
Frederik Jaeckel
1a63415034 Etikett ver 6.0.24 zum Änderungssatz 00ccbfdb14a2 hinzugefügt 2023-02-05 18:05:16 +01:00
Frederik Jaeckel
b2e5890512 Version 6.0.24 2023-02-05 18:04:49 +01:00
Frederik Jaeckel
f105e8bd6c line: fix write() - dont rewrite values if not given 2023-02-05 11:34:18 +01:00
Frederik Jaeckel
9d33086ff2 Etikett ver 6.0.23 zum Änderungssatz e8abf58cfcfd hinzugefügt 2023-01-28 13:06:39 +01:00
Frederik Jaeckel
3f487d2953 Version 6.0.23 2023-01-28 13:06:29 +01:00
Frederik Jaeckel
34f647b7c9 book: remove lef/right-fields 2023-01-26 23:07:01 +01:00
Frederik Jaeckel
46e5fff805 Etikett ver 6.0.22 zum Änderungssatz 19ef8e1885b9 hinzugefügt 2023-01-21 19:12:50 +01:00
Frederik Jaeckel
a5df1eefdd Version 6.0.22 2023-01-21 19:12:41 +01:00
Frederik Jaeckel
5d6dcb6b12 splitline: optimize list-view 2023-01-21 18:46:05 +01:00
Frederik Jaeckel
9398076ec8 line: splitline-param for counterpart 2023-01-18 22:57:21 +01:00
Frederik Jaeckel
a8122666d6 splitline: add 'feature' of counterpart 2023-01-16 22:01:49 +01:00
Frederik Jaeckel
bd3e63753f line/splitline: optimize value-update on create/write 2023-01-15 23:05:43 +01:00
Frederik Jaeckel
b6d9d06c4f splitline: add-2nd-unit-values extendable, new field 'feature' 2023-01-15 17:21:34 +01:00
Frederik Jaeckel
4daeadce2b line: omit calculation of balance if credit/debit = None
remove unused imports
2023-01-15 11:03:50 +01:00
Frederik Jaeckel
c758375075 line: fremd-währungs(und andere)-daten extern erweiterbar 2023-01-15 00:34:44 +01:00
Frederik Jaeckel
5449d452e9 mixin: unbenutzten code entfernt 2023-01-12 23:36:55 +01:00
Frederik Jaeckel
1c14b0134b book: tree/list optimiert 2023-01-02 21:46:39 +01:00
Frederik Jaeckel
d12b0a4c7b reconciliation: wf-values ausgelagert 2022-12-31 16:07:50 +01:00
Frederik Jaeckel
9d710183d1 line: balance-berechnung ausgelagert,
reconciliation: Feld 'feature'
2022-12-31 14:46:06 +01:00
Frederik Jaeckel
2d6a363fbe line: 'values' für counterpart-buchung als funktion 2022-12-25 12:50:04 +01:00
Frederik Jaeckel
3b77439635 line: Feld 'booktransf_feature' + tests 2022-12-25 12:08:07 +01:00
Frederik Jaeckel
28595a0df3 setup.py 2022-12-24 12:38:47 +01:00
Frederik Jaeckel
3ded493d11 setup.py 2022-12-23 19:15:10 +01:00
Frederik Jaeckel
cbeb4d1993 sql ergänzt 2022-12-23 18:59:05 +01:00
Frederik Jaeckel
e6baaa92f0 cashbook: abfragen für Felder 'balance*' optimiert + suche + sortierung + test
cashbook-liste: verbergen von Kassenbücher ohne Type
2022-12-23 18:01:02 +01:00
Frederik Jaeckel
5f20001f72 book: form optimiert 2022-12-22 18:59:23 +01:00
Frederik Jaeckel
af0c825607 line: Feld 'feature' 2022-12-21 21:55:08 +01:00
Frederik Jaeckel
7c1fb44cae kassenbuchtyp: Feld 'feature' 2022-12-21 19:12:39 +01:00
Frederik Jaeckel
197de3213d Etikett ver 6.0.21 zum Änderungssatz 71d5ea4c93ef hinzugefügt 2022-11-30 10:17:58 +01:00
Frederik Jaeckel
6a0f0fa9f7 Etikett ver 6.0.21 gelöscht 2022-11-30 10:17:47 +01:00
Frederik Jaeckel
54a1b79710 readme 2022-11-30 10:17:22 +01:00
Frederik Jaeckel
b923384a65 Etikett ver 6.0.21 zum Änderungssatz 910cdf904462 hinzugefügt 2022-11-29 17:13:06 +01:00
Frederik Jaeckel
cec1e9d3bd Version 6.0.21 2022-11-29 17:12:55 +01:00
Frederik Jaeckel
54587cf93e readme 2022-11-29 16:57:45 +01:00
Frederik Jaeckel
23ee20f277 line: knopf 'reconcile' auf form entfernt 2022-11-17 20:21:54 +01:00
Frederik Jaeckel
fa6a6324d7 Etikett ver 6.0.20 zum Änderungssatz 45cae80d2e1d hinzugefügt 2022-11-16 21:57:49 +01:00
Frederik Jaeckel
53f2c4249d Version 6.0.20 2022-11-16 21:57:36 +01:00
Frederik Jaeckel
70fd1a83fb status 'abgeglichen' ok + test 2022-11-16 21:56:02 +01:00
Frederik Jaeckel
403729d75f state reconcile begonnen 2022-11-16 18:02:58 +01:00
Frederik Jaeckel
77cb9d770e Etikett ver 6.0.19 zum Änderungssatz 5c6be0d8bf46 hinzugefügt 2022-10-19 22:43:45 +02:00
Frederik Jaeckel
124c109eea Version 6.0.19 2022-10-19 22:43:35 +02:00
Frederik Jaeckel
b9a08d7bd9 delete() korrigiert 2022-10-15 13:28:46 +02:00
Frederik Jaeckel
e4e06000d3 Etikett ver 6.0.18 zum Änderungssatz e0dc9d417111 hinzugefügt 2022-10-11 11:09:03 +02:00
Frederik Jaeckel
636c1c2654 Etikett ver 6.0.18 gelöscht 2022-10-11 11:08:54 +02:00
Frederik Jaeckel
b81d5fc0f4 book: berechnung des saldo gefixt, fehler bei ungültigem 'date' im context 2022-10-11 11:08:23 +02:00
Frederik Jaeckel
56b4099fb3 Etikett ver 6.0.18 zum Änderungssatz d41e55c84b42 hinzugefügt 2022-10-11 10:22:39 +02:00
Frederik Jaeckel
48d803ce78 Version 6.0.18 2022-10-11 10:22:29 +02:00
Frederik Jaeckel
e4423be23e line/book: kassenbuch öffnen/anzeige optimiert 2022-10-11 10:21:11 +02:00
Frederik Jaeckel
a1784abed6 Etikett ver 6.0.17 zum Änderungssatz 27f68ca8c0a8 hinzugefügt 2022-10-10 17:33:23 +02:00
Frederik Jaeckel
200bcf7737 Version 6.0.17 2022-10-10 17:33:13 +02:00
Frederik Jaeckel
b260fa7e24 line: datum in zukunft --> zeile grau 2022-10-10 13:50:35 +02:00
Frederik Jaeckel
859a7f6225 line: negativer saldo färbt zeile blass-rot 2022-10-08 16:20:59 +02:00
Frederik Jaeckel
51c74cb42e book: tree-ansicht speichert baumzustand + öffnet inhalt bei dppelklick 2022-10-08 15:32:35 +02:00
Frederik Jaeckel
de168a8476 line: in form feld 'booktransf' mit colspan=3 2022-10-07 16:23:24 +02:00
Frederik Jaeckel
233619d034 Etikett ver 6.0.16 zum Änderungssatz a0beb3c41bf3 hinzugefügt 2022-10-07 15:44:28 +02:00
Frederik Jaeckel
559882b332 Version 6.0.16 2022-10-07 15:44:17 +02:00
Frederik Jaeckel
8992cfd64c book: öffnet inhalt per aktionsknopf 2022-10-06 13:28:42 +02:00
Frederik Jaeckel
4c12d8723a Etikett ver 6.0.15 zum Änderungssatz 03b69a4a45fc hinzugefügt 2022-10-04 19:18:25 +02:00
Frederik Jaeckel
b325035a90 Etikett ver 6.0.15 gelöscht 2022-10-04 19:18:14 +02:00
Frederik Jaeckel
f217d70e61 book: saldo bis heute/alle 2022-10-04 19:17:47 +02:00
Frederik Jaeckel
47fc4abd58 Etikett ver 6.0.15 zum Änderungssatz 7c429273272c hinzugefügt 2022-10-04 16:49:43 +02:00
Frederik Jaeckel
4b8f5f279a Version 6.0.15 2022-10-04 16:49:32 +02:00
Frederik Jaeckel
aa6cc97dcf line/splitline: fremdwährung ok+test+migration 2022-10-04 16:47:14 +02:00
Frederik Jaeckel
32bf33fb23 amount/rate/amount_2nd - ok+test 2022-10-03 23:36:04 +02:00
Frederik Jaeckel
62188ebfd2 Feld 'rate_2nd_currency' + 'amount_2nd_currency' ok + test 2022-10-03 08:47:55 +02:00
Frederik Jaeckel
d5fd206bf5 book: view zeigt in listansicht bei unterkonten in fremdwährung
den korrekten wert,
book-form: feld für saldo in unternehmens-währung
2022-10-02 15:04:10 +02:00
Frederik Jaeckel
f11fdfefcd Etikett ver 6.0.14 zum Änderungssatz cfc975a5132f hinzugefügt 2022-09-30 11:10:15 +02:00
Frederik Jaeckel
9e612d63b1 Version 6.0.14 2022-09-30 11:10:03 +02:00
Frederik Jaeckel
f21eb9f9c7 splitline: parameter fix 2022-09-29 21:10:15 +02:00
Frederik Jaeckel
1e552cca4a Etikett ver 6.0.13 zum Änderungssatz e4e78fb0817c hinzugefügt 2022-09-28 20:49:54 +02:00
Frederik Jaeckel
53c898e0a4 Version 6.0.13 2022-09-28 20:49:43 +02:00
Frederik Jaeckel
7604feacf3 splitline: create gefixt 2022-09-28 16:02:24 +02:00
Frederik Jaeckel
17f666dc0c line: felder löschen bei änderung von bookingtype 2022-09-27 17:54:28 +02:00
Frederik Jaeckel
7f1b826590 book/category: hierarchische sortierung, form optimiert 2022-09-22 15:40:23 +02:00
Frederik Jaeckel
0572e18b64 book: sichtbarkeit des 'beitrag und nummerierung'-reiters korrigiert 2022-09-21 17:01:14 +02:00
Frederik Jaeckel
47de6304b2 Etikett ver 6.0.12 zum Änderungssatz 526661a06efd hinzugefügt 2022-09-18 12:57:05 +02:00
Frederik Jaeckel
aab73ff871 Version 6.0.12 2022-09-18 12:56:55 +02:00
Frederik Jaeckel
3f317d80b2 konfig/buchung eingeben: ausgewählte kassenbücher 2022-09-18 12:52:31 +02:00
Frederik Jaeckel
fdd7290cfc Etikett ver 6.0.11 zum Änderungssatz 6a103b4be54a hinzugefügt 2022-09-16 10:19:22 +02:00
Frederik Jaeckel
785ec8f9a9 Version 6.0.11 2022-09-16 10:19:11 +02:00
Frederik Jaeckel
e024044ccc book: neues Feld 'description', sperrt btype-->None mit Zeilen + Test
line: verwendet nur kassenbücher mit typ
2022-09-16 10:15:51 +02:00
Frederik Jaeckel
8421db2221 book: hierarchie + test
book: Feld 'start_balance' entfernt
2022-09-15 23:49:54 +02:00
Frederik Jaeckel
57ade40eb8 Etikett ver 6.0.10 zum Änderungssatz 67ae1a871e54 hinzugefügt 2022-09-13 22:55:01 +02:00
Frederik Jaeckel
96cfe3a32c Version 6.0.10 2022-09-13 22:54:52 +02:00
Frederik Jaeckel
ec4466176e line: buchungstyp für gegenbuchung bei splitbuchung korrigiert 2022-09-13 22:18:31 +02:00
Frederik Jaeckel
843ade71e9 line: test korrigiert 2022-09-12 00:16:06 +02:00
Frederik Jaeckel
b2147f56b3 line: splitbuchung mit transfer 2022-09-10 21:21:17 +02:00
Frederik Jaeckel
1fee218ee6 line: suche in splitline (kategorie+beschreibung) 2022-09-09 22:50:12 +02:00
Frederik Jaeckel
fe8a6bbed6 Etikett ver 6.0.9 zum Änderungssatz cc8e50efd3cb hinzugefügt 2022-09-08 17:27:44 +02:00
Frederik Jaeckel
5fd4bb9093 Etikett ver 6.0.9 gelöscht 2022-09-08 17:27:34 +02:00
Frederik Jaeckel
dca9732fce lne: zeilenumbruch in beschreibung korrigiert 2022-09-08 17:27:14 +02:00
Frederik Jaeckel
7d97128f24 Etikett ver 6.0.9 zum Änderungssatz 84defce3fc9c hinzugefügt 2022-09-08 12:55:02 +02:00
Frederik Jaeckel
48d6246611 Version 6.0.9 2022-09-08 12:54:52 +02:00
Frederik Jaeckel
638524a2c3 line: amount darf negativ sein + test, constrain gelöscht 2022-09-08 12:13:30 +02:00
Frederik Jaeckel
9103f828dc Etikett ver 6.0.8 zum Änderungssatz 9c12aaba4577 hinzugefügt 2022-09-07 16:35:20 +02:00
Frederik Jaeckel
e14dd92c36 Version 6.0.8 2022-09-07 16:35:08 +02:00
Frederik Jaeckel
c24fdef4cf Wizardform optimiert 2022-09-07 16:33:58 +02:00
Frederik Jaeckel
f2b228aba6 Etikett ver 6.0.7 zum Änderungssatz 3f8cf055086e hinzugefügt 2022-09-07 11:38:18 +02:00
Frederik Jaeckel
46515aaf26 Version 6.0.7 2022-09-07 11:38:09 +02:00
Frederik Jaeckel
a2cb2b308b konfig: kassenbuch-default für buchungswizard
buchungswizard: ok + test
2022-09-07 11:36:37 +02:00
Frederik Jaeckel
25db274d2d wizard: buchungseingabe begonnen 2022-09-06 17:26:53 +02:00
Frederik Jaeckel
11b3f7d004 Etikett ver 6.0.6 zum Änderungssatz 21ba264f9b2f hinzugefügt 2022-09-06 16:15:28 +02:00
Frederik Jaeckel
75a873e25d Version 6.0.6 2022-09-06 16:15:21 +02:00
Frederik Jaeckel
de0de8a85f line: suche optimiert (jetzt: kategorie, payee, beschreibung)
line: kontext-form optimiert,
abstimmung: anzeige-sortierung umgedreht,
kassenbuch: weniger spalten
2022-09-06 16:10:25 +02:00
Frederik Jaeckel
0fcc997f28 Etikett ver 6.0.5 zum Änderungssatz 94b913c2892e hinzugefügt 2022-09-05 17:21:09 +02:00
Frederik Jaeckel
5797f42489 Version 6.0.5 2022-09-05 17:21:00 +02:00
Frederik Jaeckel
4afd9f835d line: spalte 'kategorie' ergänzt 2022-09-05 13:12:08 +02:00
Frederik Jaeckel
70ef448beb line: contraint für line>=0 2022-09-05 12:39:09 +02:00
Frederik Jaeckel
34a4958936 book: felder in tab verlegt 2022-09-05 12:05:26 +02:00
Frederik Jaeckel
f661f5ed38 Etikett ver 6.0.4 zum Änderungssatz cc7007ee2a1d hinzugefügt 2022-09-05 10:17:49 +02:00
Frederik Jaeckel
19389b3865 Version 6.0.4 2022-09-05 10:17:29 +02:00
Frederik Jaeckel
b4e7cface3 line: darstellung beschleunigt 2022-09-03 20:39:20 +02:00
Frederik Jaeckel
bb24a94cd1 line: zeilen-saldo optimiert 2022-09-02 16:04:31 +02:00
Frederik Jaeckel
f76f91b35a line: 'number' bei check->done schreiben korrigert + test 2022-09-02 15:18:28 +02:00
Frederik Jaeckel
8abeb63441 übersetzung 2022-09-01 13:25:09 +02:00
Frederik Jaeckel
8b0a2a6ccd book: summieren des saldo in listenansicht 2022-09-01 09:38:23 +02:00
Frederik Jaeckel
613f4e9767 Etikett ver 6.0.3 zum Änderungssatz 8c2841adfbf9 hinzugefügt 2022-08-31 10:19:27 +02:00
Frederik Jaeckel
a84e3ed8ba Version 6.0.3 2022-08-31 10:19:19 +02:00
Frederik Jaeckel
4876b06421 book: digits für startbalance/balance ergänzt 2022-08-31 10:17:29 +02:00
Frederik Jaeckel
619a4e9ed6 kategorie: hierarchische sortierung, sequence-spalte entfernt 2022-08-30 11:56:27 +02:00
Frederik Jaeckel
559a5d0656 kategory: sortierung begnnen 2022-08-29 23:34:36 +02:00
Frederik Jaeckel
2fdee39611 kategorie: constraint gegen gleiche Namen auf toplevel,
importer: list/erstellt kategorie, list transaktionen
2022-08-28 12:24:25 +02:00
Frederik Jaeckel
4df6284257 kategorie: domain-views, importer ergänzt 2022-08-27 09:32:17 +02:00
Frederik Jaeckel
0aa9df2f1d importer begonnen 2022-08-26 23:47:51 +02:00
Frederik Jaeckel
dadcfb618f Etikett ver 6.0.2 zum Änderungssatz 1e230c14c823 hinzugefügt 2022-08-25 15:57:30 +02:00
Frederik Jaeckel
603a9d7477 Version 6.0.2 2022-08-25 15:57:19 +02:00
35 changed files with 258 additions and 273 deletions

View file

@ -1,4 +1,4 @@
*.pyc
syntax: glob
build/*
dist/*
mds_cashbook.egg-info/*

View file

@ -9,7 +9,7 @@ pip install mds-cashbook
Requires
========
- Tryton 7.0
- Tryton 6.0
How to
======
@ -153,6 +153,144 @@ currency are converted into the display currency of the parent cash book.
Changes
=======
*7.0.0 - 30.11.2023*
*6.0.34 - 30.05.2024*
- compatibility to Tryton 7.0
- add: fixate of booking from booking-wizard
*6.0.33 - 31.12.2023*
- remove caching
- add worker-based precalculation of cashbook-values
*6.0.31 - 30.11.2023*
- optimized ir.rule
*6.0.30 - 25.07.2023*
- updt: optimize code, add tests
*6.0.28 - 05.06.2023*
- code optimized
*6.0.27 - 05.03.2023*
- updt: optimize caching
- add: settings for trytond.conf
*6.0.26 - 27.02.2023*
- updt: cashbook-form optimized
- add: caching
*6.0.25 - 14.02.2023*
- fix: possible exception by invalid date in context
- updt: optimize table + icon
*6.0.24 - 05.02.2023*
- fix: rewrite of line-values
*6.0.23 - 28.01.2023*
- fix: selection of subordinate cash books for calculations
*6.0.22 - 21.01.2023*
- add: enable extension by investment-module
- updt: optimize form/list-views
*6.0.21 - 29.11.2022*
- updt: remove 'reconcile' button from line-form
- add: how to
*6.0.20 - 16.11.2022*
- add: new state 'reconciled' at line
*6.0.19 - 19.10.2022*
- fix: delete()
*6.0.18 - 11.10.2022*
- updt: optimized open/view of cashbook
*6.0.17 - 10.10.2022*
- add: colors for cashbook-lines
- add: client stores tree-state of cashbook
*6.0.16 - 07.10.2022*
- add: open cashbook-lines from cashbook
*6.0.15 - 04.10.2022*
- updt: second-currency support optimized
*6.0.14 - 30.09.2022*
- fix: parameter
*6.0.13 - 28.09.2022*
- hierarchical ordering for cashbook
- forms optimzed
*6.0.12 - 18.09.2022*
- add: selected cashbooks in 'enter-booking-dialog'
*6.0.11 - 16.09.2022*
- add: hierarchy for cashbooks
*6.0.10 - 13.09.2022*
- add: split-booking with transfer
*6.0.9 - 08.09.2022*
- updt: allow negative amounts
*6.0.8 - 07.09.2022*
- updt: enter-booking form optimized
*6.0.7 - 07.09.2022*
- add: enter-booking-wizard
*6.0.6 - 06.09.2022*
- updt: optimized form - line, line-context
- updt: extended search in cashbook-lines
*6.0.5 - 05.09.2022*
- updt: view of book + line optimized
*6.0.4 - 05.09.2022*
- fix: write number at state-change 'check' -> 'done'
- updt: speedup transaction view
*6.0.3 - 31.08.2022*
- updt: checks, sorting
*6.0.2 - 25.08.2022*
- add: split-booking
*6.0.1 - 23.08.2022*
- works
*6.0.0 - 05.08.2022*
- init

View file

@ -17,7 +17,6 @@ from .reconciliation import Reconciliation
from .cbreport import ReconciliationReport
from .currency import CurrencyRate
from .valuestore import ValueStore
from .ir import Rule
from .cron import Cron
@ -37,7 +36,6 @@ def register():
RunCbReportStart,
EnterBookingStart,
ValueStore,
Rule,
Cron,
module='cashbook', type_='model')
Pool.register(

38
book.py
View file

@ -3,8 +3,7 @@
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.model import (
Workflow, ModelView, ModelSQL, fields, Check, tree, Index)
from trytond.model import Workflow, ModelView, ModelSQL, fields, Check, tree
from trytond.pyson import Eval, Or, Bool, Id
from trytond.exceptions import UserError
from trytond.i18n import gettext
@ -50,13 +49,13 @@ class Book(tree(separator='/'), Workflow, ModelSQL, ModelView):
company = fields.Many2One(
string='Company', model_name='company.company',
required=True, ondelete="RESTRICT")
required=True, select=True, ondelete="RESTRICT")
name = fields.Char(
string='Name', required=True, states=STATES, depends=DEPENDS)
description = fields.Text(
string='Description', states=STATES, depends=DEPENDS)
btype = fields.Many2One(
string='Type',
string='Type', select=True,
help='A cash book with type can contain postings. ' +
'Without type is a view.',
model_name='cashbook.type', ondelete='RESTRICT',
@ -69,16 +68,16 @@ class Book(tree(separator='/'), Workflow, ModelSQL, ModelView):
string='Feature', readonly=True,
states={'invisible': True}), 'on_change_with_feature')
owner = fields.Many2One(
string='Owner', required=True,
string='Owner', required=True, select=True,
model_name='res.user', ondelete='SET NULL',
states=STATES, depends=DEPENDS)
reviewer = fields.Many2One(
string='Reviewer',
string='Reviewer', select=True,
help='Group of users who have write access to the cashbook.',
model_name='res.group', ondelete='SET NULL',
states=STATES, depends=DEPENDS)
observer = fields.Many2One(
string='Observer',
string='Observer', select=True,
help='Group of users who have read-only access to the cashbook.',
model_name='res.group', ondelete='SET NULL',
states=STATES, depends=DEPENDS)
@ -153,7 +152,7 @@ class Book(tree(separator='/'), Workflow, ModelSQL, ModelView):
'on_change_with_currency_digits')
currency = fields.Many2One(
string='Currency',
string='Currency', select=True,
model_name='currency.currency',
states={
'readonly': Or(
@ -190,29 +189,6 @@ class Book(tree(separator='/'), Workflow, ModelSQL, ModelView):
cls._order.insert(0, ('rec_name', 'ASC'))
cls._order.insert(0, ('state', 'ASC'))
t = cls.__table__()
cls._sql_indexes.update({
Index(
t,
(t.btype, Index.Equality())),
Index(
t,
(t.company, Index.Equality())),
Index(
t,
(t.currency, Index.Equality())),
Index(
t,
(t.state, Index.Equality())),
Index(
t,
(t.owner, Index.Equality())),
Index(
t,
(t.reviewer, Index.Equality())),
Index(
t,
(t.observer, Index.Equality())),
})
cls._sql_constraints.extend([
('state_val',
Check(t, t.state.in_(['open', 'closed', 'archive'])),

View file

@ -121,7 +121,7 @@ full copyright notices and license terms. -->
</record>
<record model="ir.rule" id="rg_book_rw_owner-1">
<field name="domain" eval="[
('owner.id', '=', Eval('user_id', -1)),
('owner.id', '=', Eval('user', {}).get('id', -1)),
]" pyson="1"/>
<field name="rule_group" ref="rg_book_rw_owner"/>
</record>

View file

@ -71,8 +71,6 @@ class Configuration(ModelSingleton, ModelSQL, ModelView, UserMultiValueMixin):
help='Cash book available in selection dialog.',
model_name='cashbook.book', ondelete='SET NULL',
domain=[('btype', '!=', None), ('state', '=', 'open')]))
fixate = fields.MultiValue(fields.Boolean(
string='Fixate', help='Fixating of the booking is activated.'))
@classmethod
def multivalue_model(cls, field):
@ -83,7 +81,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView, UserMultiValueMixin):
if field in [
'date_from', 'date_to', 'checked', 'done',
'catnamelong', 'defbook', 'book1', 'book2',
'book3', 'book4', 'book5', 'fixate']:
'book3', 'book4', 'book5']:
return pool.get('cashbook.configuration_user')
return super(Configuration, cls).multivalue_model(field)
@ -99,10 +97,6 @@ class Configuration(ModelSingleton, ModelSQL, ModelView, UserMultiValueMixin):
def default_catnamelong(cls, **pattern):
return cls.multivalue_model('catnamelong').default_catnamelong()
@classmethod
def default_fixate(cls, **pattern):
return cls.multivalue_model('fixate').default_fixate()
# end Configuration
@ -181,9 +175,6 @@ class UserConfiguration(ModelSQL, UserValueMixin):
('owner.id', '=', Eval('iduser', -1))
], depends=['iduser'])
fixate = fields.Boolean(
string='Fixate', help='Fixating of the booking is activated.')
@classmethod
def default_checked(cls):
return True
@ -196,8 +187,4 @@ class UserConfiguration(ModelSQL, UserValueMixin):
def default_done(cls):
return False
@classmethod
def default_fixate(cls):
return False
# end UserConfiguration

24
ir.py
View file

@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
# This file is part of the cashbook-module from m-ds.de for Tryton.
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.pool import PoolMeta
class Rule(metaclass=PoolMeta):
__name__ = 'ir.rule'
@classmethod
def _context_modelnames(cls):
""" list of models to add 'user_id' to context
"""
result = super(Rule, cls)._context_modelnames()
return result | {
'cashbook.book',
'cashbook.line',
'cashbook.recon',
'cashbook.split'
}
# end Rule

39
line.py
View file

@ -3,7 +3,7 @@
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, Workflow, fields, Check, Index
from trytond.model import ModelView, ModelSQL, Workflow, fields, Check
from trytond.pool import Pool
from trytond.pyson import Eval, If, Or, Bool, Date
from trytond.transaction import Transaction
@ -54,24 +54,24 @@ class Line(SecondCurrencyMixin, Workflow, ModelSQL, ModelView):
__name__ = 'cashbook.line'
cashbook = fields.Many2One(
string='Cashbook', required=True,
string='Cashbook', required=True, select=True,
model_name='cashbook.book', ondelete='CASCADE', readonly=True,
domain=[('btype', '!=', None)])
date = fields.Date(
string='Date', required=True,
string='Date', required=True, select=True,
states=STATES, depends=DEPENDS)
month = fields.Function(fields.Integer(
string='Month', readonly=True),
'on_change_with_month', searcher='search_month')
number = fields.Char(string='Number', readonly=True)
description = fields.Text(
string='Description',
string='Description', select=True,
states=STATES, depends=DEPENDS)
descr_short = fields.Function(fields.Char(
string='Description', readonly=True),
'on_change_with_descr_short', searcher='search_descr_short')
category = fields.Many2One(
string='Category',
string='Category', select=True,
model_name='cashbook.category', ondelete='RESTRICT',
states={
'readonly': Or(
@ -98,7 +98,7 @@ class Line(SecondCurrencyMixin, Workflow, ModelSQL, ModelView):
bookingtype = fields.Selection(
string='Type', required=True,
help='Type of Booking', selection=sel_bookingtype,
help='Type of Booking', selection=sel_bookingtype, select=True,
states=STATES, depends=DEPENDS)
bookingtype_string = bookingtype.translated('bookingtype')
amount = fields.Numeric(
@ -145,7 +145,7 @@ class Line(SecondCurrencyMixin, Workflow, ModelSQL, ModelView):
# link to lines created by this record
reference = fields.Many2One(
string='Reference', readonly=True,
string='Reference', readonly=True, select=True,
states={
'invisible': ~Bool(Eval('reference')),
}, model_name='cashbook.line', ondelete='CASCADE',
@ -198,7 +198,7 @@ class Line(SecondCurrencyMixin, Workflow, ModelSQL, ModelView):
state = fields.Selection(
string='State', required=True, readonly=True,
selection=sel_linestate)
select=True, selection=sel_linestate)
state_string = state.translated('state')
state_cashbook = fields.Function(fields.Selection(
string='State of Cashbook',
@ -224,27 +224,6 @@ class Line(SecondCurrencyMixin, Workflow, ModelSQL, ModelView):
cls._order.insert(0, ('date', 'ASC'))
cls._order.insert(0, ('state', 'ASC'))
t = cls.__table__()
cls._sql_indexes.update({
Index(
t,
(t.date, Index.Range(order='ASC'))),
Index(
t,
(t.description, Index.Similarity())),
Index(
t,
(t.category, Index.Equality())),
Index(
t,
(t.bookingtype, Index.Equality())),
Index(
t,
(t.state, Index.Equality())),
Index(
t,
(t.reference, Index.Equality())),
})
cls._sql_constraints.extend([
('state_val2',
Check(t, t.state.in_(['edit', 'check', 'done', 'recon'])),
@ -679,7 +658,7 @@ class Line(SecondCurrencyMixin, Workflow, ModelSQL, ModelView):
@fields.depends('category')
def on_change_with_category_view(self, name=None):
""" show optimized form of category for list-view
""" show optimizef form of category for list-view
"""
Configuration = Pool().get('cashbook.configuration')

View file

@ -145,7 +145,7 @@ full copyright notices and license terms. -->
</record>
<record model="ir.rule" id="rg_line_write-1">
<field name="domain" eval="['OR',
('cashbook.owner.id', '=', Eval('user_id', -1)),
('cashbook.owner.id', '=', Eval('user', {}).get('id', -1)),
('cashbook.reviewer.id', 'in', Eval('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_line_write"/>

View file

@ -466,6 +466,10 @@ msgctxt "view:cashbook.book:"
msgid "Amount and Numbering"
msgstr "Betrag und Nummerierung"
msgctxt "view:cashbook.book:"
msgid "Balance"
msgstr "Saldo"
msgctxt "view:cashbook.book:"
msgid "Reconciliations"
msgstr "Abstimmungen"
@ -790,6 +794,14 @@ msgctxt "model:cashbook.line,name:"
msgid "Cashbook Line"
msgstr "Kassenbuchzeile"
msgctxt "view:cashbook.line:"
msgid "Credit"
msgstr "Einnahme"
msgctxt "view:cashbook.line:"
msgid "Debit"
msgstr "Ausgabe"
msgctxt "view:cashbook.line:"
msgid "Cashbook Line"
msgstr "Kassenbuchzeile"
@ -1258,14 +1270,6 @@ msgctxt "help:cashbook.configuration,book5:"
msgid "Cash book available in selection dialog."
msgstr "in Auswahldialog verfügbares Kassenbuch."
msgctxt "field:cashbook.configuration,fixate:"
msgid "Fixate"
msgstr "Festschreiben"
msgctxt "help:cashbook.configuration,fixate:"
msgid "Fixating of the booking is activated."
msgstr "Die Festschreiben der Buchung ist aktiviert."
msgctxt "field:cashbook.configuration,date_from:"
msgid "Start Date"
msgstr "Beginndatum"
@ -1386,14 +1390,6 @@ msgctxt "help:cashbook.configuration_user,book5:"
msgid "Cash book available in selection dialog."
msgstr "in Auswahldialog verfügbares Kassenbuch."
msgctxt "field:cashbook.configuration_user,fixate:"
msgid "Fixate"
msgstr "Festschreiben"
msgctxt "help:cashbook.configuration_user,fixate:"
msgid "Fixating of the booking is activated."
msgstr "Die Festschreiben der Buchung ist aktiviert."
##################
# cashbook.recon #

View file

@ -426,6 +426,10 @@ msgctxt "view:cashbook.book:"
msgid "Amount and Numbering"
msgstr "Amount and Numbering"
msgctxt "view:cashbook.book:"
msgid "Balance"
msgstr "Balance"
msgctxt "view:cashbook.book:"
msgid "Reconciliations"
msgstr "Reconciliations"
@ -742,6 +746,14 @@ msgctxt "model:cashbook.line,name:"
msgid "Cashbook Line"
msgstr "Cashbook Line"
msgctxt "view:cashbook.line:"
msgid "Credit"
msgstr "Credit"
msgctxt "view:cashbook.line:"
msgid "Debit"
msgstr "Debit"
msgctxt "view:cashbook.line:"
msgid "Cashbook Line"
msgstr "Cashbook Line"
@ -1186,14 +1198,6 @@ msgctxt "help:cashbook.configuration,book5:"
msgid "Cash book available in selection dialog."
msgstr "Cash book available in selection dialog."
msgctxt "field:cashbook.configuration,fixate:"
msgid "Fixate"
msgstr "Fixate"
msgctxt "help:cashbook.configuration,fixate:"
msgid "Fixating of the booking is activated."
msgstr "Fixating of the booking is activated."
msgctxt "field:cashbook.configuration,date_from:"
msgid "Start Date"
msgstr "Start Date"
@ -1310,14 +1314,6 @@ msgctxt "help:cashbook.configuration_user,book5:"
msgid "Cash book available in selection dialog."
msgstr "Cash book available in selection dialog."
msgctxt "field:cashbook.configuration_user,fixate:"
msgid "Fixate"
msgstr "Fixate"
msgctxt "help:cashbook.configuration_user,fixate:"
msgid "Fixating of the booking is activated."
msgstr "Fixating of the booking is activated."
msgctxt "model:cashbook.recon,name:"
msgid "Cashbook Reconciliation"
msgstr "Cashbook Reconciliation"

View file

@ -3,8 +3,7 @@
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.model import (
MultiValueMixin, ValueMixin, fields, Unique, Index)
from trytond.model import MultiValueMixin, ValueMixin, fields, Unique, Model
from trytond.transaction import Transaction
from trytond.pool import Pool
from sql import With
@ -123,17 +122,12 @@ def order_name_hierarchical(model_name, tables):
class UserValueMixin(ValueMixin):
iduser = fields.Many2One(
model_name='res.user', string="User",
ondelete='CASCADE', required=True)
select=True, ondelete='CASCADE', required=True)
@classmethod
def __setup__(cls):
super(UserValueMixin, cls).__setup__()
tab_val = cls.__table__()
cls._sql_indexes.update({
Index(
tab_val,
(tab_val.iduser, Index.Equality())),
})
cls._sql_constraints.extend([
('val_uniq',
Unique(tab_val, tab_val.iduser),

View file

@ -3,7 +3,7 @@
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.model import Workflow, ModelView, ModelSQL, fields, Index
from trytond.model import Workflow, ModelView, ModelSQL, fields
from trytond.pyson import Eval, If, Or
from trytond.pool import Pool
from trytond.report import Report
@ -34,10 +34,10 @@ class Reconciliation(Workflow, ModelSQL, ModelView):
__name__ = 'cashbook.recon'
cashbook = fields.Many2One(
string='Cashbook', required=True,
string='Cashbook', required=True, select=True,
model_name='cashbook.book', ondelete='CASCADE', readonly=True)
date = fields.Date(
string='Date', required=True,
string='Date', required=True, select=True,
states=STATES, depends=DEPENDS)
feature = fields.Function(fields.Char(
string='Feature', readonly=True,
@ -54,7 +54,7 @@ class Reconciliation(Workflow, ModelSQL, ModelView):
states=STATES, depends=DEPENDS+['date_to'])
date_to = fields.Date(
string='End Date',
required=True,
required=True, select=True,
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
@ -98,7 +98,7 @@ class Reconciliation(Workflow, ModelSQL, ModelView):
state = fields.Selection(
string='State', required=True, readonly=True,
selection=sel_reconstate)
select=True, selection=sel_reconstate)
state_string = state.translated('state')
state_cashbook = fields.Function(fields.Selection(
string='State of Cashbook',
@ -109,7 +109,6 @@ class Reconciliation(Workflow, ModelSQL, ModelView):
def __setup__(cls):
super(Reconciliation, cls).__setup__()
cls._order.insert(0, ('date_from', 'DESC'))
t = cls.__table__()
cls._transitions |= set((
('edit', 'check'),
('check', 'done'),
@ -129,23 +128,6 @@ class Reconciliation(Workflow, ModelSQL, ModelView):
'depends': ['state'],
},
})
cls._sql_indexes.update({
Index(
t,
(t.cashbook, Index.Equality())),
Index(
t,
(t.date, Index.Range())),
Index(
t,
(t.date_to, Index.Range())),
Index(
t,
(t.date_from, Index.Range(order='DESC'))),
Index(
t,
(t.state, Index.Equality())),
})
def check_overlap_dates(self):
""" deny overlap of date_from/date_to between records of same cashbook

View file

@ -96,7 +96,7 @@ full copyright notices and license terms. -->
</record>
<record model="ir.rule" id="rg_recon_write-1">
<field name="domain" eval="['OR',
('cashbook.owner.id', '=', Eval('user_id', -1)),
('cashbook.owner.id', '=', Eval('user', {}).get('id', -1)),
('cashbook.reviewer.id', 'in', Eval('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_recon_write"/>

View file

@ -39,7 +39,7 @@ with open(path.join(here, 'versiondep.txt'), encoding='utf-8') as f:
modversion[l2[0]] = {'min': l2[1], 'max': l2[2], 'prefix': l2[3]}
# tryton-version
major_version = 7
major_version = 6
minor_version = 0
requires = ['python-slugify']
@ -91,7 +91,6 @@ setup(
'License :: OSI Approved :: GNU General Public License (GPL)',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
],
keywords='tryton cashbook',

View file

@ -4,7 +4,7 @@
# full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields, Index
from trytond.model import ModelView, ModelSQL, fields
from trytond.pool import Pool
from trytond.pyson import Eval, If
from trytond.report import Report
@ -31,16 +31,16 @@ class SplitLine(SecondCurrencyMixin, ModelSQL, ModelView):
line = fields.Many2One(
string='Line', required=True,
ondelete='CASCADE', model_name='cashbook.line',
select=True, ondelete='CASCADE', model_name='cashbook.line',
readonly=True)
description = fields.Text(
string='Description', states=STATES, depends=DEPENDS)
splittype = fields.Selection(
string='Type', required=True,
help='Type of split booking line', selection=sel_linetype,
states=STATES, depends=DEPENDS)
states=STATES, depends=DEPENDS, select=True)
category = fields.Many2One(
string='Category',
string='Category', select=True,
model_name='cashbook.category', ondelete='RESTRICT',
states={
'readonly': STATES['readonly'],
@ -63,7 +63,7 @@ class SplitLine(SecondCurrencyMixin, ModelSQL, ModelView):
('owner.id', '=', Eval('owner_cashbook', -1)),
('id', '!=', Eval('cashbook', -1)),
('btype', '!=', None),
],
], select=True,
states={
'readonly': STATES['readonly'],
'invisible': Eval('splittype', '') != 'tr',
@ -110,25 +110,6 @@ class SplitLine(SecondCurrencyMixin, ModelSQL, ModelView):
states={'invisible': True}, model_name='res.user'),
'on_change_with_owner_cashbook')
@classmethod
def __setup__(cls):
super(SplitLine, cls).__setup__()
t = cls.__table__()
cls._sql_indexes.update({
Index(
t,
(t.line, Index.Equality())),
Index(
t,
(t.splittype, Index.Equality())),
Index(
t,
(t.category, Index.Equality())),
Index(
t,
(t.booktransf, Index.Equality())),
})
@classmethod
def default_splittype(cls):
""" default category

View file

@ -80,7 +80,7 @@ full copyright notices and license terms. -->
</record>
<record model="ir.rule" id="rg_split_write-1">
<field name="domain" eval="['OR',
('line.cashbook.owner.id', '=', Eval('user_id', -1)),
('line.cashbook.owner.id', '=', Eval('user', {}).get('id', -1)),
('line.cashbook.reviewer.id', 'in', Eval('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_split_write"/>

View file

@ -1,4 +1,16 @@
# -*- coding: utf-8 -*-
# This file is part of the cashbook-module from m-ds for Tryton.
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import trytond.tests.test_tryton
import unittest
from .test_module import CashbookTestCase
__all__ = ['suite']
def suite():
suite = trytond.tests.test_tryton.suite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(CashbookTestCase))
return suite

View file

@ -24,7 +24,6 @@ class BookingWizardTestCase(object):
Category = pool.get('cashbook.category')
Party = pool.get('party.party')
IrDate = pool.get('ir.date')
Config = pool.get('cashbook.configuration')
company = self.prep_company()
with Transaction().set_context({
@ -52,10 +51,6 @@ class BookingWizardTestCase(object):
'cattype': 'out',
}])
cfg1 = Config()
cfg1.fixate = True
cfg1.save()
(sess_id, start_state, end_state) = BookingWiz.create()
w_obj = BookingWiz(sess_id)
self.assertEqual(start_state, 'start')
@ -70,7 +65,7 @@ class BookingWizardTestCase(object):
self.assertEqual(result['view']['defaults']['booktransf'], None)
self.assertEqual(result['view']['defaults']['description'], None)
self.assertEqual(result['view']['defaults']['category'], None)
self.assertEqual(result['view']['defaults']['fixate'], True)
self.assertEqual(result['view']['defaults']['fixate'], False)
self.assertEqual(len(book.lines), 0)

View file

@ -119,8 +119,8 @@ class CategoryTestCase(object):
self.assertRaisesRegex(
UserError,
'The value "out" for field "Type" in "Level 1/Level 2" of ' +
'"Category" is not valid according to its domain.',
'The value for field "Type" in "Category" is not valid ' +
'according to its domain.',
Category.write,
*[
[category.childs[0]],

View file

@ -178,12 +178,10 @@ class ConfigTestCase(object):
self.assertEqual(cfg2.date_to, None)
self.assertEqual(cfg2.checked, True)
self.assertEqual(cfg2.done, False)
self.assertEqual(cfg2.fixate, False)
cfg2.date_from = date(2022, 4, 1)
cfg2.date_to = date(2022, 5, 30)
cfg2.checked = False
cfg2.fixate = True
cfg2.save()
# change to user 'diego'
@ -196,7 +194,6 @@ class ConfigTestCase(object):
self.assertEqual(cfg2.date_to, None)
self.assertEqual(cfg2.checked, True)
self.assertEqual(cfg2.done, False)
self.assertEqual(cfg2.fixate, False)
cfg2.date_from = date(2022, 4, 15)
cfg2.date_to = date(2022, 5, 15)
@ -212,6 +209,5 @@ class ConfigTestCase(object):
self.assertEqual(cfg2.date_to, date(2022, 5, 30))
self.assertEqual(cfg2.checked, False)
self.assertEqual(cfg2.done, False)
self.assertEqual(cfg2.fixate, True)
# end ConfigTestCase

View file

@ -895,8 +895,8 @@ class LineTestCase(object):
self.assertRaisesRegex(
UserError,
r'The value "Book 1" for field "Cashbook" in "\d+" of ' +
r'"Cashbook Line" is not valid according to its domain.',
'The value for field "Cashbook" in "Cashbook Line" is not ' +
'valid according to its domain.',
Line.create,
[{
'cashbook': book.id,

View file

@ -267,10 +267,10 @@ class ValuestoreTestCase(object):
# check write of too much digits
self.assertRaisesRegex(
UserError,
r'The number of digits in the value ' +
r'"' + r"'12.345'" +
r'" for field "Value" in "[Book 1 | 10\.00 usd | ' +
r'Open]|balance|12\.35|2" of "Value Store" exceeds ' +
r"The number of digits in the value " +
r'"Decimal\(' +
r"'12\.345'\)" +
r'" for field "Value" in "Value Store" exceeds ' +
r'the limit of "2".',
ValueStore.write,
*[

View file

@ -1,11 +1,10 @@
[tryton]
version=7.0.0
version=6.0.34
depends:
res
currency
party
company
irrulecontext
xml:
icon.xml
group.xml

View file

@ -3,7 +3,7 @@
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields, Unique, Index
from trytond.model import ModelView, ModelSQL, fields, Unique
from trytond.transaction import Transaction
from trytond.i18n import gettext
@ -19,7 +19,7 @@ class Type(ModelSQL, ModelView):
required=True, ondelete="RESTRICT")
feature = fields.Selection(
string='Feature', required=True,
selection='get_sel_feature',
selection='get_sel_feature', select=True,
help='Select feature set of the Cashbook.')
@classmethod
@ -32,11 +32,6 @@ class Type(ModelSQL, ModelView):
Unique(t, t.short),
'cashbook.msg_type_short_unique'),
])
cls._sql_indexes.update({
Index(
t,
(t.feature, Index.Equality())),
})
@classmethod
def default_feature(cls):

View file

@ -7,7 +7,7 @@
from sql.functions import CurrentTimestamp, DateTrunc
from sql.aggregate import Count
from sql.conditionals import Coalesce
from trytond.model import ModelSQL, fields, Unique, Index
from trytond.model import ModelSQL, fields, Unique
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.pyson import Eval, PYSON, PYSONEncoder, PYSONDecoder
@ -22,7 +22,7 @@ class ValueStore(ModelSQL):
cashbook = fields.Many2One(
string='Cashbook', required=True, model_name='cashbook.book',
ondelete='CASCADE')
field_name = fields.Char(string='Field Name', required=True)
field_name = fields.Char(string='Field Name', required=True, select=True)
numvalue = fields.Numeric(
string='Value', digits=(16, Eval('valuedigits', 6)),
depends=['valuedigits'])
@ -49,11 +49,6 @@ class ValueStore(ModelSQL):
Unique(t, t.cashbook, t.field_name),
'cashbook.msg_value_exists_in_store'),
])
cls._sql_indexes.update({
Index(
t,
(t.field_name, Index.Equality())),
})
def get_rec_name(self, name):
""" name, balance, state

View file

@ -1 +1 @@
irrulecontext;7.0.1;7.0.999;mds

View file

@ -4,8 +4,6 @@ The COPYRIGHT file at the top level of this repository contains the
full copyright notices and license terms. -->
<tree keyword_open="1">
<field name="rec_name" expand="1"/>
<field name="balance" sum="1" symbol="currency"/>
<field name="balance_all" symbol="currency" optional="1"/>
<field name="balance_ref" symbol="company_currency" optional="1"/>
<field name="state" optional="0"/>
<field name="balance" sum="Balance" symbol="currency"/>
<field name="state"/>
</tree>

View file

@ -5,9 +5,7 @@ full copyright notices and license terms. -->
<tree keyword_open="1" tree_state="1">
<field name="name" expand="1"/>
<field name="balance" symbol="currency"/>
<field name="balance_all" symbol="currency" optional="1"/>
<field name="balance_ref" symbol="company_currency" optional="1"/>
<field name="state" optional="0"/>
<field name="state"/>
<field name="parent" tree_invisible="1"/>
<field name="childs" tree_invisible="1"/>
</tree>

View file

@ -28,10 +28,6 @@ this repository contains the full copyright notices and license terms. -->
<label name="book5"/>
<field name="book5"/>
<label name="fixate"/>
<field name="fixate"/>
<newline/>
<separator id="sepcb" colspan="4" string="Cashbook"/>
<label name="catnamelong"/>
<field name="catnamelong"/>

View file

@ -4,14 +4,14 @@ The COPYRIGHT file at the top level of this repository contains the
full copyright notices and license terms. -->
<tree>
<field name="cashbook" tree_invisible="1"/>
<field name="number" optional="0"/>
<field name="number"/>
<field name="date"/>
<field name="payee"/>
<field name="category_view"/>
<field name="descr_short" expand="1"/>
<field name="credit" sum="1" optional="0"/>
<field name="debit" sum="1" optional="0"/>
<field name="balance" optional="0"/>
<field name="state" optional="0"/>
<field name="credit" sum="Credit"/>
<field name="debit" sum="Debit"/>
<field name="balance"/>
<field name="state"/>
<button name="wfcheck"/>
</tree>

View file

@ -4,13 +4,13 @@ The COPYRIGHT file at the top level of this repository contains the
full copyright notices and license terms. -->
<tree>
<field name="cashbook" tree_invisible="1"/>
<field name="number" optional="0"/>
<field name="date" optional="0"/>
<field name="payee" optional="0"/>
<field name="category_view" optional="0"/>
<field name="descr_short" expand="1" optional="0"/>
<field name="credit" sum="1" optional="0"/>
<field name="debit" sum="1" optional="0"/>
<field name="state" optional="0"/>
<field name="number"/>
<field name="date"/>
<field name="payee"/>
<field name="category_view"/>
<field name="descr_short" expand="1"/>
<field name="credit" sum="Credit"/>
<field name="debit" sum="Debit"/>
<field name="state"/>
<button name="wfrecon"/>
</tree>

View file

@ -4,11 +4,11 @@ The COPYRIGHT file at the top level of this repository contains the
full copyright notices and license terms. -->
<tree>
<field name="cashbook"/>
<field name="date" optional="0"/>
<field name="date_from" optional="0"/>
<field name="date_to" optional="0"/>
<field name="start_amount" optional="0"/>
<field name="end_amount" optional="0"/>
<field name="lines" optional="0"/>
<field name="state" optional="0"/>
<field name="date"/>
<field name="date_from"/>
<field name="date_to"/>
<field name="start_amount"/>
<field name="end_amount"/>
<field name="lines"/>
<field name="state"/>
</tree>

View file

@ -8,7 +8,7 @@ full copyright notices and license terms. -->
<field name="splittype"/>
<field name="category"/>
<field name="booktransf"/>
<field name="description" expand="1" optional="0"/>
<field name="amount" sum="1" symbol="currency" optional="0"/>
<field name="amount_2nd_currency" symbol="currency2nd" optional="0"/>
<field name="description" expand="1"/>
<field name="amount" sum="Amount" symbol="currency"/>
<field name="amount_2nd_currency" symbol="currency2nd"/>
</tree>

View file

@ -157,8 +157,7 @@ class EnterBookingWizard(Wizard):
book_ids.append(getattr(cfg1, x, None).id)
result = {
'fixate': cfg1.fixate
if cfg1 and cfg1.fixate is not None else False,
'fixate': False,
'cashbooks': [x.id for x in Cashbook.search([
('state', '=', 'open'),
('btype', '!=', None),