report ok, auf book und line
berechtigungen optimiert
This commit is contained in:
parent
70038eb15e
commit
ab43044f64
21 changed files with 1339 additions and 115 deletions
|
@ -8,10 +8,11 @@ from .book import Book
|
|||
from .types import Type
|
||||
from .line import Line, LineContext
|
||||
from .wizard_openline import OpenCashBook, OpenCashBookStart
|
||||
from .wizard_runreport import RunCbReport, RunCbReportStart
|
||||
from .configuration import Configuration, UserConfiguration
|
||||
from .category import Category
|
||||
from .reconciliation import Reconciliation
|
||||
from .cbreport import CashbookReport
|
||||
from .cbreport import ReconciliationReport
|
||||
|
||||
def register():
|
||||
Pool.register(
|
||||
|
@ -24,10 +25,12 @@ def register():
|
|||
Line,
|
||||
Reconciliation,
|
||||
OpenCashBookStart,
|
||||
RunCbReportStart,
|
||||
module='cashbook', type_='model')
|
||||
Pool.register(
|
||||
CashbookReport,
|
||||
ReconciliationReport,
|
||||
module='cashbook', type_='report')
|
||||
Pool.register(
|
||||
OpenCashBook,
|
||||
RunCbReport,
|
||||
module='cashbook', type_='wizard')
|
||||
|
|
331
book.xml
331
book.xml
|
@ -44,21 +44,21 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_book-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_book-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
<!-- cashbook: read -->
|
||||
<!-- cashbook: read/write, no: create/delete -->
|
||||
<record model="ir.model.access" id="access_book-group_cashbook">
|
||||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
|
@ -78,15 +78,37 @@ full copyright notices and license terms. -->
|
|||
<field name="domain" eval="[]" pyson="1"/>
|
||||
<field name="rule_group" ref="rg_book_write_adm"/>
|
||||
</record>
|
||||
<record model="ir.rule.group-res.group" id="rg_book_write_adm-group_admin">
|
||||
<record model="ir.rule.group-res.group" id="rg_book_write_adm-group_cashbook_admin">
|
||||
<field name="rule_group" ref="rg_book_write_adm"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- permission by rule - read: owner, reviewer, observer -->
|
||||
<record model="ir.rule.group" id="rg_book_read">
|
||||
<!-- permission by rule - read/write: owner -->
|
||||
<record model="ir.rule.group" id="rg_book_rw_owner">
|
||||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
<field name="name">Owners, observers and reviewers: Cashbook read</field>
|
||||
<field name="name">Owners: Cashbook read/write</field>
|
||||
<field name="global_p" eval="False"/>
|
||||
<field name="default_p" eval="False"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="rg_book_rw_owner-1">
|
||||
<field name="domain" eval="[
|
||||
('owner.id', '=', Eval('user', {}).get('id', -1)),
|
||||
]" pyson="1"/>
|
||||
<field name="rule_group" ref="rg_book_rw_owner"/>
|
||||
</record>
|
||||
<record model="ir.rule.group-res.group" id="rg_book_rw_owner-group_cashbook">
|
||||
<field name="rule_group" ref="rg_book_rw_owner"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
</record>
|
||||
|
||||
<!-- permission by rule - read: reviewer, observer -->
|
||||
<record model="ir.rule.group" id="rg_book_read_nonowner">
|
||||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
<field name="name">Observers and Reviewers: Cashbook read</field>
|
||||
<field name="global_p" eval="False"/>
|
||||
<field name="default_p" eval="False"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
|
@ -94,16 +116,15 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="rg_book_read-1">
|
||||
<record model="ir.rule" id="rg_book_read_nonowner-1">
|
||||
<field name="domain" eval="['OR',
|
||||
('owner.id', '=', Eval('user', {}).get('id', -1)),
|
||||
('observer.id', 'in', Eval('user', {}).get('groups', [])),
|
||||
('reviewer.id', 'in', Eval('user', {}).get('groups', [])),
|
||||
]" pyson="1"/>
|
||||
<field name="rule_group" ref="rg_book_read"/>
|
||||
<field name="rule_group" ref="rg_book_read_nonowner"/>
|
||||
</record>
|
||||
<record model="ir.rule.group-res.group" id="rg_book_read-group_cashbook">
|
||||
<field name="rule_group" ref="rg_book_read"/>
|
||||
<record model="ir.rule.group-res.group" id="rg_book_read_nonowner-group_cashbook">
|
||||
<field name="rule_group" ref="rg_book_read_nonowner"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
</record>
|
||||
|
||||
|
@ -127,9 +148,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="book_wfopen_button-group_admin">
|
||||
id="book_wfopen_button-group_cashbook_admin">
|
||||
<field name="button" ref="book_wfopen_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- button - close -->
|
||||
|
@ -139,9 +160,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="book_wfclosed_button-group_admin">
|
||||
id="book_wfclosed_button-group_cashbook_admin">
|
||||
<field name="button" ref="book_wfclosed_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- button - done -->
|
||||
|
@ -151,9 +172,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.book')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="book_wfarchive_button-group_admin">
|
||||
id="book_wfarchive_button-group_cashbook_admin">
|
||||
<field name="button" ref="book_wfarchive_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- sequence-type -->
|
||||
|
@ -161,9 +182,273 @@ full copyright notices and license terms. -->
|
|||
<field name="name">Cashbook Line</field>
|
||||
</record>
|
||||
<record model="ir.sequence.type-res.group"
|
||||
id="sequence_type_cashbook_line-group_admin">
|
||||
id="sequence_type_cashbook_line-group_cashbook_admin">
|
||||
<field name="sequence_type" ref="sequence_type_cashbook_line"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- field-access - anon -->
|
||||
<record model="ir.model.field.access" id="fa_book-company-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'company')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-name-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'name')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-btype-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'btype')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-owner-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'owner')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-reviewer-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reviewer')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-observer-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'observer')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-lines-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'lines')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-reconciliations-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-number_sequ-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_sequ')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-number_atcheck-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_atcheck')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-start_balance-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'start_balance')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-currency-anon">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'currency')]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- field-access - group_cashbook_admin -->
|
||||
<record model="ir.model.field.access" id="fa_book-company-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'company')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-name-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'name')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-btype-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'btype')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-owner-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'owner')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-reviewer-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reviewer')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-observer-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'observer')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-lines-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'lines')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-number_sequ-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_sequ')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-number_atcheck-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_atcheck')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-start_balance-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'start_balance')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-currency-group_cashbook_admin">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'currency')]"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- field-access - group_cashbook -->
|
||||
<record model="ir.model.field.access" id="fa_book-company-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'company')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-name-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'name')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-btype-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'btype')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-owner-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'owner')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-reviewer-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reviewer')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-observer-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'observer')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-lines-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'lines')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-number_sequ-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_sequ')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-number_atcheck-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'number_atcheck')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-start_balance-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'start_balance')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.field.access" id="fa_book-currency-group_cashbook">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'currency')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- field-access - group_cashbook_checkline (user must be in group_cashbook too) -->
|
||||
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook_checkline">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
|
||||
<field name="group" ref="group_cashbook_checkline"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- field-access - group_cashbook_doneline (user must be in group_cashbook too) -->
|
||||
<record model="ir.model.field.access" id="fa_book-reconciliations-group_cashbook_doneline">
|
||||
<field name="field"
|
||||
search="[('model.model', '=', 'cashbook.book'), ('name', '=', 'reconciliations')]"/>
|
||||
<field name="group" ref="group_cashbook_doneline"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -68,10 +68,10 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_category-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_category-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.category')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
|
|
45
cbreport.py
45
cbreport.py
|
@ -5,11 +5,24 @@
|
|||
|
||||
from trytond.report import Report
|
||||
from trytond.i18n import gettext
|
||||
from trytond.pool import Pool
|
||||
from trytond.transaction import Transaction
|
||||
from slugify import slugify
|
||||
|
||||
|
||||
class CashbookReport(Report):
|
||||
__name__ = 'cashbook.repbook'
|
||||
class ReconciliationReport(Report):
|
||||
__name__ = 'cashbook.reprecon'
|
||||
|
||||
@classmethod
|
||||
def get_context(cls, records, header, data):
|
||||
""" update context
|
||||
"""
|
||||
Company = Pool().get('company.company')
|
||||
context2 = Transaction().context
|
||||
|
||||
context = super(ReconciliationReport, cls).get_context(records, header, data)
|
||||
context['company'] = Company(context2['company'])
|
||||
return context
|
||||
|
||||
@classmethod
|
||||
def execute(cls, ids, data):
|
||||
|
@ -17,9 +30,25 @@ class CashbookReport(Report):
|
|||
"""
|
||||
pool = Pool()
|
||||
IrDate = pool.get('ir.date')
|
||||
ExpObj = pool.get(data['model'])(data['id'])
|
||||
|
||||
(ext1, cont1, dirprint, title) = super(CashbookReport, cls).execute(ids, data)
|
||||
if data['model'] == 'cashbook.book':
|
||||
ExpObj = pool.get(data['model'])(data['id'])
|
||||
rep_name = ExpObj.rec_name[:50]
|
||||
elif data['model'] == 'cashbook.line':
|
||||
line_obj = pool.get(data['model'])(data['id'])
|
||||
rep_name = line_obj.cashbook.rec_name[:50]
|
||||
elif data['model'] == 'cashbook.recon':
|
||||
recon_obj = pool.get(data['model'])(data['id'])
|
||||
rep_name = gettext(
|
||||
'cashbook.msg_rep_reconciliation_fname',
|
||||
recname = recon_obj.cashbook.rec_name[:50],
|
||||
date_from = recon_obj.date_from.isoformat(),
|
||||
date_to = recon_obj.date_to.isoformat(),
|
||||
)
|
||||
else :
|
||||
raise ValueError('invalid model')
|
||||
|
||||
(ext1, cont1, dirprint, title) = super(ReconciliationReport, cls).execute(ids, data)
|
||||
|
||||
return (
|
||||
ext1,
|
||||
|
@ -28,9 +57,11 @@ class CashbookReport(Report):
|
|||
slugify('%(date)s-%(book)s-%(descr)s' % {
|
||||
'date': IrDate.today().isoformat().replace('-', ''),
|
||||
'book': gettext('cashbook.msg_name_cashbook'),
|
||||
'descr': ExpObj.name[:15],
|
||||
'descr': rep_name,
|
||||
},
|
||||
max_length=75, word_boundary=True, save_order=True),
|
||||
max_length=100, word_boundary=True, save_order=True),
|
||||
)
|
||||
|
||||
# end CashbookReport
|
||||
# end ReconciliationReport
|
||||
|
||||
|
||||
|
|
21
cbreport.xml
21
cbreport.xml
|
@ -5,23 +5,14 @@ full copyright notices and license terms. -->
|
|||
<tryton>
|
||||
<data>
|
||||
|
||||
<record model="ir.action.report" id="report_cashbook">
|
||||
<field name="name">Cashbook</field>
|
||||
<field name="model">cashbook.line</field>
|
||||
<field name="report_name">cashbook.repbook</field>
|
||||
<field name="report">cashbook/report/cashbook.fods</field>
|
||||
<record model="ir.action.report" id="report_recon">
|
||||
<field name="name">Cashbook Reconciliation</field>
|
||||
<field name="model">cashbook.recon</field>
|
||||
<field name="report_name">cashbook.reprecon</field>
|
||||
<field name="report">cashbook/report/reconciliation.fods</field>
|
||||
<field name="template_extension">ods</field>
|
||||
<field name="single" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_line_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">cashbook.line,-1</field>
|
||||
<field name="action" ref="report_cashbook"/>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="report_book_keyword">
|
||||
<field name="keyword">form_print</field>
|
||||
<field name="model">cashbook.book,-1</field>
|
||||
<field name="action" ref="report_cashbook"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
|
@ -29,15 +29,16 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_config-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_config-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.configuration')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
<!-- user: read/write -->
|
||||
<record model="ir.model.access" id="access_config-group_cashbook">
|
||||
<field name="model" search="[('model', '=', 'cashbook.configuration')]"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
|
@ -55,10 +56,10 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_config_user-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_config_user-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.configuration_user')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
|
|
|
@ -14,6 +14,14 @@ full copyright notices and license terms. -->
|
|||
<record model="res.group" id="group_cashbook_doneline">
|
||||
<field name="name">Cashbook - WF - Done</field>
|
||||
</record>
|
||||
<record model="res.group" id="group_cashbook_admin">
|
||||
<field name="name">Cashbook - Administrator</field>
|
||||
</record>
|
||||
|
||||
<record model="res.user-res.group" id="user_admin-group_cashbook_admin">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
22
line.xml
22
line.xml
|
@ -85,10 +85,10 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_line-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_line-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
|
@ -119,9 +119,9 @@ full copyright notices and license terms. -->
|
|||
<field name="domain" eval="[]" pyson="1"/>
|
||||
<field name="rule_group" ref="rg_line_write_adm"/>
|
||||
</record>
|
||||
<record model="ir.rule.group-res.group" id="rg_line_write_adm-group_admin">
|
||||
<record model="ir.rule.group-res.group" id="rg_line_write_adm-group_cashbook_admin">
|
||||
<field name="rule_group" ref="rg_line_write_adm"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- permission by rule - read/write: owner, reviewer -->
|
||||
|
@ -190,9 +190,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="line_wfedit_button-group_admin">
|
||||
id="line_wfedit_button-group_cashbook_admin">
|
||||
<field name="button" ref="line_wfedit_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="line_wfedit_button-group_cashbook_checkline">
|
||||
|
@ -212,9 +212,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="line_wfcheck_button-group_admin">
|
||||
id="line_wfcheck_button-group_cashbook_admin">
|
||||
<field name="button" ref="line_wfcheck_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="line_wfcheck_button-group_cashbook_checkline">
|
||||
|
@ -234,9 +234,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.line')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="line_wfdone_button-group_admin">
|
||||
id="line_wfdone_button-group_cashbook_admin">
|
||||
<field name="button" ref="line_wfdone_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="line_wfdone_button-group_cashbook_doneline">
|
||||
|
|
124
locale/de.po
124
locale/de.po
|
@ -14,6 +14,10 @@ msgctxt "model:ir.message,text:msg_name_cashbook"
|
|||
msgid "Cashbook"
|
||||
msgstr "Kassenbuch"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_name_reconciliation"
|
||||
msgid "Reconciliation"
|
||||
msgstr "Abstimmung"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_line_wrong_state_value"
|
||||
msgid "Invalid value of the field 'Status', allowed: edit, check, done."
|
||||
msgstr "Ungültiger Wert des Feldes 'Status', erlaubt: edit, check, done."
|
||||
|
@ -122,6 +126,10 @@ msgctxt "model:ir.message,text:msg_line_denywf_by_reference"
|
|||
msgid "The current line is managed by the cashbook line '%(recname)s', cashbook: '%(cbook)s'."
|
||||
msgstr "Die aktuelle Zeile wird durch die Kassenbuchzeile '%(recname)s' verwaltet, Kassenbuch: '%(cbook)s'."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_rep_reconciliation_fname"
|
||||
msgid "%(recname)s Reconciliation from %(date_from)s to %(date_to)s"
|
||||
msgstr "%(recname)s Abstimmung von %(date_from)s bis %(date_to)s"
|
||||
|
||||
|
||||
#############
|
||||
# res.group #
|
||||
|
@ -138,13 +146,21 @@ msgctxt "model:res.group,name:group_cashbook_doneline"
|
|||
msgid "Cashbook - WF - Done"
|
||||
msgstr "Kassenbuch - WF - Fertig"
|
||||
|
||||
msgctxt "model:res.group,name:group_cashbook_admin"
|
||||
msgid "Cashbook - Administrator"
|
||||
msgstr "Kassenbuch - Administrator"
|
||||
|
||||
|
||||
#################
|
||||
# ir.rule.group #
|
||||
#################
|
||||
msgctxt "model:ir.rule.group,name:rg_book_read"
|
||||
msgid "Owners, observers and reviewers: Cashbook read"
|
||||
msgstr "Eigentümer, Beobachter und Bearbeiter: Kassenbuch lesen"
|
||||
msgctxt "model:ir.rule.group,name:rg_book_rw_owner"
|
||||
msgid "Owners: Cashbook read/write"
|
||||
msgstr "Eigentümer: Kassenbuch schreiben"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rg_book_read_nonowner"
|
||||
msgid "Observers and Reviewers: Cashbook read"
|
||||
msgstr "Beobachter und Bearbeiter: Kassenbuch lesen"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rg_book_write_adm"
|
||||
msgid "Administrators: Cashbook read/write"
|
||||
|
@ -218,6 +234,10 @@ msgctxt "model:ir.ui.menu,name:menu_category_list"
|
|||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:act_category_view"
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
|
||||
#############
|
||||
# ir.action #
|
||||
|
@ -238,9 +258,13 @@ msgctxt "model:ir.action,name:act_open_lines"
|
|||
msgid "Open Cashbook"
|
||||
msgstr "Kassenbuch öffnen"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:act_category_view"
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
msgctxt "model:ir.action,name:report_cashbook"
|
||||
msgid "Cashbook"
|
||||
msgstr "Kassenbuch"
|
||||
|
||||
msgctxt "model:ir.action,name:act_wizard_report"
|
||||
msgid "Cashbook Report"
|
||||
msgstr "Kassenbuch Bericht"
|
||||
|
||||
|
||||
###############################
|
||||
|
@ -917,3 +941,91 @@ msgstr "Endbetrag"
|
|||
msgctxt "field:cashbook.recon,predecessor:"
|
||||
msgid "Predecessor"
|
||||
msgstr "Vorgänger"
|
||||
|
||||
|
||||
#############################
|
||||
# cashbook.runrepbook.start #
|
||||
#############################
|
||||
msgctxt "model:cashbook.runrepbook.start,name:"
|
||||
msgid "Cashbook Report"
|
||||
msgstr "Kassenbuch Bericht"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,cashbook:"
|
||||
msgid "Cashbook"
|
||||
msgstr "Kassenbuch"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,cashbooks:"
|
||||
msgid "Cashbooks"
|
||||
msgstr "Kassenbücher"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,reconciliation:"
|
||||
msgid "Reconciliation"
|
||||
msgstr "Abstimmung"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,reconciliations:"
|
||||
msgid "Reconciliations"
|
||||
msgstr "Abstimmungen"
|
||||
|
||||
|
||||
#####################
|
||||
# cashbook.reprecon #
|
||||
#####################
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Cashbook:"
|
||||
msgstr "Kassenbuch:"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Period:"
|
||||
msgstr "Zeitraum:"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "to"
|
||||
msgstr "bis"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Bookings:"
|
||||
msgstr "Buchungen:"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Initial Amount"
|
||||
msgstr "Anfangsbetrag"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "End Amount"
|
||||
msgstr "Endbetrag"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "No."
|
||||
msgstr "Nr"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Revenue"
|
||||
msgstr "Einnahme"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Expense"
|
||||
msgstr "Ausgabe"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Sum"
|
||||
msgstr "Summe"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "- Expenses"
|
||||
msgstr "- Ausgaben"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Total"
|
||||
msgstr "Gesamt"
|
||||
|
||||
msgctxt "report:cashbook.reprecon:"
|
||||
msgid "Payee"
|
||||
msgstr "Empfänger"
|
||||
|
|
66
locale/en.po
66
locale/en.po
|
@ -10,6 +10,10 @@ msgctxt "model:ir.message,text:msg_name_cashbook"
|
|||
msgid "Cashbook"
|
||||
msgstr "Cashbook"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_name_reconciliation"
|
||||
msgid "Reconciliation"
|
||||
msgstr "Reconciliation"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_line_wrong_state_value"
|
||||
msgid "Invalid value of the field 'Status', allowed: edit, check, done."
|
||||
msgstr "Invalid value of the field 'Status', allowed: edit, check, done."
|
||||
|
@ -118,6 +122,10 @@ msgctxt "model:ir.message,text:msg_line_denywf_by_reference"
|
|||
msgid "The current line is managed by the cashbook line '%(recname)s', cashbook: '%(cbook)s'."
|
||||
msgstr "The current line is managed by the cashbook line '%(recname)s', cashbook: '%(cbook)s'."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_rep_reconciliation_fname"
|
||||
msgid "%(recname)s Reconciliation from %(date_from)s to %(date_to)s"
|
||||
msgstr "%(recname)s Reconciliation from %(date_from)s to %(date_to)s"
|
||||
|
||||
msgctxt "model:res.group,name:group_cashbook"
|
||||
msgid "Cashbook"
|
||||
msgstr "Cashbook"
|
||||
|
@ -202,6 +210,10 @@ msgctxt "model:ir.ui.menu,name:menu_category_list"
|
|||
msgid "Category"
|
||||
msgstr "Category"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:act_category_view"
|
||||
msgid "Category"
|
||||
msgstr "Category"
|
||||
|
||||
msgctxt "model:ir.action,name:act_book_view"
|
||||
msgid "Cashbook"
|
||||
msgstr "Cashbook"
|
||||
|
@ -218,9 +230,13 @@ msgctxt "model:ir.action,name:act_open_lines"
|
|||
msgid "Open Cashbook"
|
||||
msgstr "Open Cashbook"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:act_category_view"
|
||||
msgid "Category"
|
||||
msgstr "Category"
|
||||
msgctxt "model:ir.action,name:report_cashbook"
|
||||
msgid "Cashbook"
|
||||
msgstr "Cashbook"
|
||||
|
||||
msgctxt "model:ir.action,name:act_wizard_report"
|
||||
msgid "Cashbook Report"
|
||||
msgstr "Cashbook Report"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_line_domain_current"
|
||||
msgid "Current Month"
|
||||
|
@ -270,6 +286,10 @@ msgctxt "model:ir.model.button,string:recon_wfdone_button"
|
|||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
msgctxt "model:ir.sequence.type,name:sequence_type_cashbook_line"
|
||||
msgid "Cashbook Line"
|
||||
msgstr "Cashbook Line"
|
||||
|
||||
msgctxt "model:cashbook.book,name:"
|
||||
msgid "Cashbook"
|
||||
msgstr "Cashbook"
|
||||
|
@ -350,6 +370,22 @@ msgctxt "field:cashbook.book,lines:"
|
|||
msgid "Lines"
|
||||
msgstr "Lines"
|
||||
|
||||
msgctxt "field:cashbook.book,number_sequ:"
|
||||
msgid "Line numbering"
|
||||
msgstr "Line numbering"
|
||||
|
||||
msgctxt "help:cashbook.book,number_sequ:"
|
||||
msgid "Number sequence for numbering of the cash book lines."
|
||||
msgstr "Number sequence for numbering of the cash book lines."
|
||||
|
||||
msgctxt "field:cashbook.book,number_atcheck:"
|
||||
msgid "number when 'Checking'"
|
||||
msgstr "number when 'Checking'"
|
||||
|
||||
msgctxt "help:cashbook.book,number_atcheck:"
|
||||
msgid "The numbering of the lines is done in the step Check. If the check mark is inactive, this happens with Done."
|
||||
msgstr "The numbering of the lines is done in the step Check. If the check mark is inactive, this happens with Done."
|
||||
|
||||
msgctxt "model:cashbook.line,name:"
|
||||
msgid "Cashbook Line"
|
||||
msgstr "Cashbook Line"
|
||||
|
@ -514,6 +550,10 @@ msgctxt "selection:cashbook.line,payee:"
|
|||
msgid "Party"
|
||||
msgstr "Party"
|
||||
|
||||
msgctxt "field:cashbook.line,number:"
|
||||
msgid "Number"
|
||||
msgstr "Number"
|
||||
|
||||
msgctxt "model:cashbook.type,name:"
|
||||
msgid "Cashbook Type"
|
||||
msgstr "Cashbook Type"
|
||||
|
@ -818,3 +858,23 @@ msgctxt "field:cashbook.recon,end_amount:"
|
|||
msgid "End Amount"
|
||||
msgstr "End Amount"
|
||||
|
||||
msgctxt "field:cashbook.recon,predecessor:"
|
||||
msgid "Predecessor"
|
||||
msgstr "Predecessor"
|
||||
|
||||
msgctxt "model:cashbook.runrepbook.start,name:"
|
||||
msgid "Cashbook Report"
|
||||
msgstr "Cashbook Report"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,cashbook:"
|
||||
msgid "Cashbook"
|
||||
msgstr "Cashbook"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,cashbooks:"
|
||||
msgid "Cashbooks"
|
||||
msgstr "Cashbooks"
|
||||
|
||||
msgctxt "field:cashbook.runrepbook.start,reconciliation:"
|
||||
msgid "Reconciliation"
|
||||
msgstr "Reconciliation"
|
||||
|
||||
|
|
44
menu.xml
44
menu.xml
|
@ -8,79 +8,79 @@ full copyright notices and license terms. -->
|
|||
<!-- menu: /Cashbook -->
|
||||
<menuitem id="menu_cashbook" name="Cashbook"
|
||||
icon="mds-notebook" />
|
||||
<record model="ir.ui.menu-res.group" id="menu_cashbook-group_admin">
|
||||
<field name="menu" ref="menu_cashbook"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_cashbook-group_cashbook">
|
||||
<field name="menu" ref="menu_cashbook"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_cashbook-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_cashbook"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- menu: /Cashbook/Configuration name="Configuration" -->
|
||||
<menuitem id="menu_config" action="act_configuration_form"
|
||||
icon="tryton-list"
|
||||
parent="menu_cashbook" sequence="10"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_config-group_admin">
|
||||
<field name="menu" ref="menu_config"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_config-group_cashbook">
|
||||
<field name="menu" ref="menu_config"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_config-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_config"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- menu: /Cashbook/Configuration/Types -->
|
||||
<menuitem id="menu_typeconfig" action="act_type_view"
|
||||
icon="tryton-list"
|
||||
parent="menu_config" sequence="10"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_typeconfig-group_admin">
|
||||
<record model="ir.ui.menu-res.group" id="menu_typeconfig-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_typeconfig"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- menu: /Cashbook/Configuration/Category -->
|
||||
<menuitem id="menu_category" action="act_category_tree"
|
||||
icon="tryton-tree"
|
||||
parent="menu_config" sequence="20"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_category-group_admin">
|
||||
<record model="ir.ui.menu-res.group" id="menu_category-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_category"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<!-- menu: /Cashbook/Configuration/Category/Category -->
|
||||
<menuitem id="menu_category_list" action="act_category_list"
|
||||
icon="tryton-list"
|
||||
parent="menu_category" sequence="10"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_category_list-group_admin">
|
||||
<record model="ir.ui.menu-res.group" id="menu_category_list-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_category_list"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- menu: /Cashbook/Open Cashbook -->
|
||||
<menuitem id="menu_open_lines" action="act_open_lines"
|
||||
icon="tryton-list"
|
||||
parent="menu_cashbook" sequence="20"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_open_lines-group_admin">
|
||||
<field name="menu" ref="menu_open_lines"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_open_lines-group_cashbook">
|
||||
<field name="menu" ref="menu_open_lines"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_open_lines-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_open_lines"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- menu: /Cashbook/Cashbook -->
|
||||
<menuitem id="menu_booklist" action="act_book_view"
|
||||
icon="tryton-list"
|
||||
parent="menu_cashbook" sequence="30"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_booklist-group_admin">
|
||||
<field name="menu" ref="menu_booklist"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_booklist-group_cashbook">
|
||||
<field name="menu" ref="menu_booklist"/>
|
||||
<field name="group" ref="group_cashbook"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu-res.group" id="menu_booklist-group_cashbook_admin">
|
||||
<field name="menu" ref="menu_booklist"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
|
@ -11,6 +11,9 @@ full copyright notices and license terms. -->
|
|||
<record model="ir.message" id="msg_name_cashbook">
|
||||
<field name="text">Cashbook</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_name_reconciliation">
|
||||
<field name="text">Reconciliation</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_line_wrong_state_value">
|
||||
<field name="text">Invalid value of the field 'Status', allowed: edit, check, done.</field>
|
||||
</record>
|
||||
|
@ -92,6 +95,9 @@ full copyright notices and license terms. -->
|
|||
<record model="ir.message" id="msg_line_denywf_by_reference">
|
||||
<field name="text">The current line is managed by the cashbook line '%(recname)s', cashbook: '%(cbook)s'.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_rep_reconciliation_fname">
|
||||
<field name="text">%(recname)s Reconciliation from %(date_from)s to %(date_to)s</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
from trytond.model import Workflow, ModelView, ModelSQL, fields
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.pyson import Eval, If, Or
|
||||
from trytond.pyson import Eval, If, Or, Bool
|
||||
from trytond.pool import Pool
|
||||
from trytond.report import Report
|
||||
from trytond.exceptions import UserError
|
||||
|
|
|
@ -44,10 +44,10 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_recon-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_recon-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
|
@ -78,9 +78,9 @@ full copyright notices and license terms. -->
|
|||
<field name="domain" eval="[]" pyson="1"/>
|
||||
<field name="rule_group" ref="rg_recon_write_adm"/>
|
||||
</record>
|
||||
<record model="ir.rule.group-res.group" id="rg_recon_write_adm-group_admin">
|
||||
<record model="ir.rule.group-res.group" id="rg_recon_write_adm-group_cashbook_admin">
|
||||
<field name="rule_group" ref="rg_recon_write_adm"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
|
||||
<!-- permission by rule - read/write: owner, reviewer -->
|
||||
|
@ -148,9 +148,14 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfedit_button-group_admin">
|
||||
id="recon_wfedit_button-group_cashbook_admin">
|
||||
<field name="button" ref="recon_wfedit_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfedit_button-group_cashbook_checkline">
|
||||
<field name="button" ref="recon_wfedit_button"/>
|
||||
<field name="group" ref="group_cashbook_checkline"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfedit_button-group_cashbook_doneline">
|
||||
|
@ -165,9 +170,14 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfcheck_button-group_admin">
|
||||
id="recon_wfcheck_button-group_cashbook_admin">
|
||||
<field name="button" ref="recon_wfcheck_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfcheck_button-group_cashbook_checkline">
|
||||
<field name="button" ref="recon_wfcheck_button"/>
|
||||
<field name="group" ref="group_cashbook_checkline"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfcheck_button-group_cashbook_doneline">
|
||||
|
@ -182,9 +192,9 @@ full copyright notices and license terms. -->
|
|||
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfdone_button-group_admin">
|
||||
id="recon_wfdone_button-group_cashbook_admin">
|
||||
<field name="button" ref="recon_wfdone_button"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
</record>
|
||||
<record model="ir.model.button-res.group"
|
||||
id="recon_wfdone_button-group_cashbook_doneline">
|
||||
|
|
551
report/reconciliation.fods
Normal file
551
report/reconciliation.fods
Normal file
|
@ -0,0 +1,551 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
|
||||
<office:meta><meta:creation-date>2022-08-16T16:46:07.407489159</meta:creation-date><dc:date>2022-08-17T15:50:10.077622122</dc:date><meta:editing-duration>PT1H48M44S</meta:editing-duration><meta:editing-cycles>47</meta:editing-cycles><meta:generator>LibreOffice/6.0.7.3$Linux_X86_64 LibreOffice_project/00m0$Build-3</meta:generator><meta:document-statistic meta:table-count="1" meta:cell-count="33" meta:object-count="0"/></office:meta>
|
||||
<office:settings>
|
||||
<config:config-item-set config:name="ooo:view-settings">
|
||||
<config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="VisibleAreaWidth" config:type="int">18199</config:config-item>
|
||||
<config:config-item config:name="VisibleAreaHeight" config:type="int">7676</config:config-item>
|
||||
<config:config-item-map-indexed config:name="Views">
|
||||
<config:config-item-map-entry>
|
||||
<config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
|
||||
<config:config-item-map-named config:name="Tables">
|
||||
<config:config-item-map-entry config:name="Tabelle1">
|
||||
<config:config-item config:name="CursorPositionX" config:type="int">3</config:config-item>
|
||||
<config:config-item config:name="CursorPositionY" config:type="int">7</config:config-item>
|
||||
<config:config-item config:name="HorizontalSplitMode" config:type="short">0</config:config-item>
|
||||
<config:config-item config:name="VerticalSplitMode" config:type="short">0</config:config-item>
|
||||
<config:config-item config:name="HorizontalSplitPosition" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="VerticalSplitPosition" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item>
|
||||
<config:config-item config:name="PositionLeft" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="PositionRight" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="PositionTop" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="PositionBottom" config:type="int">0</config:config-item>
|
||||
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
||||
<config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
|
||||
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
|
||||
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
||||
</config:config-item-map-entry>
|
||||
</config:config-item-map-named>
|
||||
<config:config-item config:name="ActiveTable" config:type="string">Tabelle1</config:config-item>
|
||||
<config:config-item config:name="HorizontalScrollbarWidth" config:type="int">1193</config:config-item>
|
||||
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
||||
<config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
|
||||
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
|
||||
<config:config-item config:name="ShowPageBreakPreview" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="GridColor" config:type="long">12632256</config:config-item>
|
||||
<config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="IsValueHighlightingEnabled" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item>
|
||||
<config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item>
|
||||
<config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
|
||||
<config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
|
||||
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
||||
</config:config-item-map-entry>
|
||||
</config:config-item-map-indexed>
|
||||
</config:config-item-set>
|
||||
<config:config-item-set config:name="ooo:configuration-settings">
|
||||
<config:config-item config:name="SyntaxStringRef" config:type="short">7</config:config-item>
|
||||
<config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
|
||||
<config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="PrinterSetup" config:type="base64Binary">vgH+/0hQX0xhc2VySmV0X01GUF9NNDI2ZmRuX0IyNUM3Ml8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpIUF9MYXNlckpldF9NRlBfTTQyNmZkbl9CMgAWAAMA3wAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9SFBfTGFzZXJKZXRfTUZQX000MjZmZG5fQjI1QzcyXwpvcmllbnRhdGlvbj1Qb3J0cmFpdApjb3BpZXM9MQpjb2xsYXRlPWZhbHNlCm1hcmdpbmRhanVzdG1lbnQ9MCwwLDAsMApjb2xvcmRlcHRoPTI0CnBzbGV2ZWw9MApwZGZkZXZpY2U9MQpjb2xvcmRldmljZT0wClBQRENvbnRleERhdGEKUGFnZVNpemU6QTQASW5wdXRTbG90OkF1dG8ARHVwbGV4Ok5vbmUAABIAQ09NUEFUX0RVUExFWF9NT0RFDwBEdXBsZXhNb2RlOjpPZmY=</config:config-item>
|
||||
<config:config-item config:name="PrinterName" config:type="string">HP_LaserJet_MFP_M426fdn_B25C72_</config:config-item>
|
||||
<config:config-item config:name="AutoCalculate" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="LinkUpdateMode" config:type="short">3</config:config-item>
|
||||
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="GridColor" config:type="long">12632256</config:config-item>
|
||||
<config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="IsDocumentShared" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
|
||||
<config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
|
||||
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item>
|
||||
<config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item>
|
||||
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
|
||||
<config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
|
||||
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
|
||||
</config:config-item-set>
|
||||
</office:settings>
|
||||
<office:scripts>
|
||||
<office:script script:language="ooo:Basic">
|
||||
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
|
||||
</office:script>
|
||||
</office:scripts>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="DejaVu Sans" svg:font-family="'DejaVu Sans'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="FreeSans" svg:font-family="FreeSans" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
<style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/>
|
||||
</office:font-face-decls>
|
||||
<office:styles>
|
||||
<style:default-style style:family="table-cell">
|
||||
<style:paragraph-properties style:tab-stop-distance="12.5mm"/>
|
||||
<style:text-properties style:font-name="Liberation Sans" fo:language="de" fo:country="DE" style:font-name-asian="DejaVu Sans" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:language-complex="hi" style:country-complex="IN"/>
|
||||
</style:default-style>
|
||||
<number:number-style style:name="N0">
|
||||
<number:number number:min-integer-digits="1"/>
|
||||
</number:number-style>
|
||||
<style:style style:name="Default" style:family="table-cell">
|
||||
<style:text-properties style:font-name-asian="Noto Sans CJK SC" style:font-family-asian="'Noto Sans CJK SC'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" style:font-family-generic-complex="system" style:font-pitch-complex="variable"/>
|
||||
</style:style>
|
||||
<style:style style:name="Heading_20__28_user_29_" style:display-name="Heading (user)" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading_20__28_user_29_">
|
||||
<style:text-properties fo:color="#000000" fo:font-size="18pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading_20__28_user_29_">
|
||||
<style:text-properties fo:color="#000000" fo:font-size="12pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/>
|
||||
<style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text">
|
||||
<style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/>
|
||||
<style:text-properties fo:color="#333333" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text">
|
||||
<style:text-properties fo:color="#808080" fo:font-size="10pt" fo:font-style="italic" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text">
|
||||
<style:text-properties fo:color="#0000ee" fo:font-size="10pt" fo:font-style="normal" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/>
|
||||
<style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status">
|
||||
<style:table-cell-properties fo:background-color="#ccffcc"/>
|
||||
<style:text-properties fo:color="#006600" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status">
|
||||
<style:table-cell-properties fo:background-color="#ffffcc"/>
|
||||
<style:text-properties fo:color="#996600" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status">
|
||||
<style:table-cell-properties fo:background-color="#ffcccc"/>
|
||||
<style:text-properties fo:color="#cc0000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status">
|
||||
<style:text-properties fo:color="#cc0000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status">
|
||||
<style:table-cell-properties fo:background-color="#cc0000"/>
|
||||
<style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:text-properties fo:color="#000000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent">
|
||||
<style:table-cell-properties fo:background-color="#000000"/>
|
||||
<style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent">
|
||||
<style:table-cell-properties fo:background-color="#808080"/>
|
||||
<style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent">
|
||||
<style:table-cell-properties fo:background-color="#dddddd"/>
|
||||
</style:style>
|
||||
</office:styles>
|
||||
<office:automatic-styles>
|
||||
<style:style style:name="co1" style:family="table-column">
|
||||
<style:table-column-properties fo:break-before="auto" style:column-width="26mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="co2" style:family="table-column">
|
||||
<style:table-column-properties fo:break-before="auto" style:column-width="22mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="co3" style:family="table-column">
|
||||
<style:table-column-properties fo:break-before="auto" style:column-width="60.01mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="co4" style:family="table-column">
|
||||
<style:table-column-properties fo:break-before="auto" style:column-width="30mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="co5" style:family="table-column">
|
||||
<style:table-column-properties fo:break-before="auto" style:column-width="22.58mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ro1" style:family="table-row">
|
||||
<style:table-row-properties style:row-height="4.52mm" fo:break-before="auto" style:use-optimal-row-height="true"/>
|
||||
</style:style>
|
||||
<style:style style:name="ta1" style:family="table" style:master-page-name="Default">
|
||||
<style:table-properties table:display="true" style:writing-mode="lr-tb"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce71" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce72" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="0.99pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="start" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce73" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.6pt solid #000000" fo:background-color="#eeeeee" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce74" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce75" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.06pt solid #000000" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce76" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce77" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce78" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce79" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.99pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="start" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce80" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.6pt solid #000000" fo:background-color="#eeeeee" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce81" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce82" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.06pt solid #000000" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce83" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce84" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce85" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
|
||||
<style:paragraph-properties fo:text-align="center" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce86" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce87" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce88" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.99pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce89" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce90" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.6pt solid #000000" fo:background-color="#eeeeee" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce91" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce92" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.06pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce93" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce94" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="0.06pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce95" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce96" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce97" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="none" fo:border-right="none" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce98" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="0.99pt solid #000000" fo:border-top="0.99pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="start" fo:margin-left="0mm"/>
|
||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce99" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.6pt solid #000000" fo:background-color="#eeeeee" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="0.99pt solid #000000" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce100" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="0.99pt solid #000000" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce101" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.06pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="0.99pt solid #000000" fo:border-top="0.06pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce102" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="0.99pt solid #000000" fo:border-top="0.06pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce103" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="0.06pt solid #000000" fo:border-right="0.99pt solid #000000" fo:border-top="0.06pt solid #000000"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce104" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="none" style:text-align-source="fix" style:repeat-content="false" fo:border-left="none" fo:border-right="0.99pt solid #000000" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:style style:name="ce105" style:family="table-cell" style:parent-style-name="Default">
|
||||
<style:table-cell-properties fo:border-bottom="0.99pt solid #000000" style:text-align-source="fix" style:repeat-content="false" fo:border-left="none" fo:border-right="0.99pt solid #000000" fo:border-top="none"/>
|
||||
<style:paragraph-properties fo:text-align="end" fo:margin-left="0mm"/>
|
||||
</style:style>
|
||||
<style:page-layout style:name="pm1">
|
||||
<style:page-layout-properties fo:margin-top="10mm" fo:margin-bottom="10mm" fo:margin-left="14.99mm" fo:margin-right="10mm" style:shadow="none" style:writing-mode="lr-tb"/>
|
||||
<style:header-style>
|
||||
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm"/>
|
||||
</style:header-style>
|
||||
<style:footer-style>
|
||||
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm"/>
|
||||
</style:footer-style>
|
||||
</style:page-layout>
|
||||
<style:page-layout style:name="pm2">
|
||||
<style:page-layout-properties style:writing-mode="lr-tb"/>
|
||||
<style:header-style>
|
||||
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm" fo:border="2.49pt solid #000000" fo:padding="0.18mm" fo:background-color="#c0c0c0">
|
||||
<style:background-image/>
|
||||
</style:header-footer-properties>
|
||||
</style:header-style>
|
||||
<style:footer-style>
|
||||
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm" fo:border="2.49pt solid #000000" fo:padding="0.18mm" fo:background-color="#c0c0c0">
|
||||
<style:background-image/>
|
||||
</style:header-footer-properties>
|
||||
</style:footer-style>
|
||||
</style:page-layout>
|
||||
<style:style style:name="T1" style:family="text">
|
||||
<style:text-properties fo:font-size="10pt" style:font-relief="none" style:text-emphasize="none" style:font-style-complex="normal" style:font-style-asian="normal" style:font-weight-complex="bold" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-name-asian="Noto Sans CJK SC" style:language-complex="hi" style:country-complex="IN" style:language-asian="zh" style:country-asian="CN" fo:language="de" fo:country="DE" style:text-line-through-mode="continuous" fo:text-shadow="none" style:text-outline="false" fo:font-style="normal" style:text-line-through-type="none" style:text-underline-style="none" style:text-underline-color="font-color" style:font-name="Liberation Sans" style:text-overline-style="none" style:text-overline-color="font-color"/>
|
||||
</style:style>
|
||||
<style:style style:name="T2" style:family="text">
|
||||
<style:text-properties fo:font-size="10pt" style:font-relief="none" style:text-emphasize="none" style:font-style-complex="normal" style:font-style-asian="normal" style:font-size-complex="10pt" style:font-size-asian="10pt" style:font-name-complex="FreeSans" style:font-name-asian="Noto Sans CJK SC" style:language-complex="hi" style:country-complex="IN" style:language-asian="zh" style:country-asian="CN" fo:language="de" fo:country="DE" style:text-line-through-mode="continuous" fo:text-shadow="none" style:text-outline="false" fo:font-style="normal" style:text-line-through-type="none" style:text-underline-style="none" style:text-underline-color="font-color" style:font-name="Liberation Sans" style:text-overline-style="none" style:text-overline-color="font-color" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
|
||||
</style:style>
|
||||
<style:style style:name="T3" style:family="text">
|
||||
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-size="8pt" fo:language="de" fo:country="DE" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-name-asian="DejaVu Sans" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="DejaVu Sans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
|
||||
</style:style>
|
||||
<style:style style:name="T4" style:family="text">
|
||||
<style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="de" fo:country="DE" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-name-asian="DejaVu Sans" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="DejaVu Sans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
|
||||
</style:style>
|
||||
</office:automatic-styles>
|
||||
<office:master-styles>
|
||||
<style:master-page style:name="Default" style:page-layout-name="pm1">
|
||||
<style:header/>
|
||||
<style:header-left style:display="false"/>
|
||||
<style:footer>
|
||||
<style:region-left>
|
||||
<text:p><text:span text:style-name="T3"><text:file-name text:display="name-and-extension">???</text:file-name></text:span></text:p>
|
||||
</style:region-left>
|
||||
<style:region-right>
|
||||
<text:p><text:span text:style-name="T4">Seite </text:span><text:span text:style-name="T4"><text:page-number>1</text:page-number></text:span><text:span text:style-name="T4">/</text:span><text:span text:style-name="T4"><text:page-count>99</text:page-count></text:span></text:p>
|
||||
<text:p><text:span text:style-name="T4"><text:date style:data-style-name="N2" text:date-value="2022-08-17">00.00.0000</text:date></text:span></text:p>
|
||||
</style:region-right>
|
||||
</style:footer>
|
||||
<style:footer-left style:display="false"/>
|
||||
</style:master-page>
|
||||
<style:master-page style:name="Report" style:page-layout-name="pm2">
|
||||
<style:header>
|
||||
<style:region-left>
|
||||
<text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p>
|
||||
</style:region-left>
|
||||
<style:region-right>
|
||||
<text:p><text:date style:data-style-name="N2" text:date-value="2022-08-17">00.00.0000</text:date>, <text:time style:data-style-name="N2" text:time-value="15:42:42.526487602">00:00:00</text:time></text:p>
|
||||
</style:region-right>
|
||||
</style:header>
|
||||
<style:header-left style:display="false"/>
|
||||
<style:footer>
|
||||
<text:p>Seite <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p>
|
||||
</style:footer>
|
||||
<style:footer-left style:display="false"/>
|
||||
</style:master-page>
|
||||
</office:master-styles>
|
||||
<office:body>
|
||||
<office:spreadsheet>
|
||||
<table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/>
|
||||
<table:table table:name="Tabelle1" table:style-name="ta1">
|
||||
<table:table-column table:style-name="co1" table:default-cell-style-name="Default"/>
|
||||
<table:table-column table:style-name="co2" table:default-cell-style-name="Default"/>
|
||||
<table:table-column table:style-name="co3" table:default-cell-style-name="Default"/>
|
||||
<table:table-column table:style-name="co4" table:default-cell-style-name="Default"/>
|
||||
<table:table-column table:style-name="co2" table:number-columns-repeated="2" table:default-cell-style-name="ce89"/>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://for%20each=%22record%20in%20records%22" xlink:type="simple">for each="record in records"</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:number-columns-repeated="5"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce71" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Cashbook:</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce71" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://record.cashbook.name+'%20('%20+%20record.cashbook.state_string%20+')'" xlink:type="simple">record.cashbook.name+' (' + record.cashbook.state_string +')'</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:number-columns-repeated="4"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce71" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Period:</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce78" office:value-type="string" calcext:value-type="string"><text:p><text:span text:style-name="T1"><text:a xlink:href="relatorio://format_date(record.date_from)" xlink:type="simple">format_date(record.date_from)</text:a></text:span><text:span text:style-name="T1"> to </text:span><text:span text:style-name="T2"><text:a xlink:href="relatorio://format_date(record.date_to)" xlink:type="simple">format_date(record.date_to)</text:a></text:span></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce85" table:number-columns-repeated="2"/>
|
||||
<table:table-cell table:number-columns-repeated="2"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce71" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Bookings:</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://len(record.lines)" xlink:type="simple">len(record.lines)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:number-columns-repeated="4"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1" table:number-rows-repeated="2">
|
||||
<table:table-cell table:number-columns-repeated="6"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce72" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Date</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce79" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>No.</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce79" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Description</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce79" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Payee</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce79" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Revenue</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce98" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Expense</text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce73" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_date(record.date_from)" xlink:type="simple">format_date(record.date_from)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce80"/>
|
||||
<table:table-cell table:style-name="ce80" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Initial Amount</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce80"/>
|
||||
<table:table-cell table:style-name="ce90" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(record.start_amount,%20None,%20record.cashbook.currency)%20if%20record.start_amount%20%3E=%200%20else%20''" xlink:type="simple">format_currency(record.start_amount, None, record.cashbook.currency) if record.start_amount >= 0 else ''</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce99" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(record.start_amount,%20None,%20record.cashbook.currency)%20if%20record.start_amount%20%3C%200%20else%20''" xlink:type="simple">relatorio://format_currency(record.start_amount, None, record.cashbook.currency) if record.start_amount < 0 else ''</text:a></text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce74" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://for%20each=%22line%20in%20record.lines%22" xlink:type="simple">for each="line in record.lines"</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce81" table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce91"/>
|
||||
<table:table-cell table:style-name="ce100"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce75" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_date(line.date)" xlink:type="simple">format_date(line.date)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce82" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://line.number" xlink:type="simple">line.number</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce82" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://line.description" xlink:type="simple">line.description</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce82" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://getattr(line.payee,%20'rec_name',%20'')" xlink:type="simple">getattr(line.payee, 'rec_name', '')</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce92" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(line.credit,%20None,%20line.reconciliation.cashbook.currency)%20if%20line.credit!=%200%20else%20''" xlink:type="simple">format_currency(line.credit, None, line.reconciliation.cashbook.currency) if line.credit!= 0 else ''</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce101" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(line.debit,%20None,%20line.reconciliation.cashbook.currency)%20if%20line.debit!=%200%20else%20''" xlink:type="simple">format_currency(line.debit, None, line.reconciliation.cashbook.currency) if line.debit!= 0 else ''</text:a></text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce74" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio:///for" xlink:type="simple">/for</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce81" table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce91"/>
|
||||
<table:table-cell table:style-name="ce100"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce76"/>
|
||||
<table:table-cell table:style-name="ce83" table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce93"/>
|
||||
<table:table-cell table:style-name="ce102"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:style-name="ce77"/>
|
||||
<table:table-cell table:style-name="ce84" table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce94"/>
|
||||
<table:table-cell table:style-name="ce103"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce86" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Sum</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce95" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(sum([x.credit%20for%20x%20in%20record.lines])%20+%20(record.start_amount%20if%20record.start_amount%20%3E%200%20else%200),%20None,%20record.cashbook.currency)" xlink:type="simple">format_currency(sum([x.credit for x in record.lines]) + (record.start_amount if record.start_amount > 0 else 0), None, record.cashbook.currency)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce104" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(sum([x.debit%20for%20x%20in%20record.lines])%20-%20(record.start_amount%20if%20record.start_amount%20%3C%200%20else%200),%20None,%20record.cashbook.currency)" xlink:type="simple">format_currency(sum([x.debit for x in record.lines]) - (record.start_amount if record.start_amount < 0 else 0), None, record.cashbook.currency)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce87" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>- Expenses</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce96" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(sum([x.debit%20for%20x%20in%20record.lines])%20-%20(record.start_amount%20if%20record.start_amount%20%3C%200%20else%200),%20None,%20record.cashbook.currency)" xlink:type="simple">format_currency(sum([x.debit for x in record.lines]) - (record.start_amount if record.start_amount < 0 else 0), None, record.cashbook.currency)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce105"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:number-columns-repeated="3"/>
|
||||
<table:table-cell table:style-name="ce88" office:value-type="string" calcext:value-type="string">
|
||||
<text:p>Total</text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce97" office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio://format_currency(record.end_amount,%20None,%20record.cashbook.currency)" xlink:type="simple">format_currency(record.end_amount, None, record.cashbook.currency)</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:style-name="ce105"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell office:value-type="string" calcext:value-type="string"><text:p><text:a xlink:href="relatorio:///for" xlink:type="simple">/for</text:a></text:p>
|
||||
</table:table-cell>
|
||||
<table:table-cell table:number-columns-repeated="5"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1" table:number-rows-repeated="1048558">
|
||||
<table:table-cell table:number-columns-repeated="6"/>
|
||||
</table:table-row>
|
||||
<table:table-row table:style-name="ro1">
|
||||
<table:table-cell table:number-columns-repeated="6"/>
|
||||
</table:table-row>
|
||||
</table:table>
|
||||
<table:named-expressions/>
|
||||
</office:spreadsheet>
|
||||
</office:body>
|
||||
</office:document>
|
|
@ -17,4 +17,5 @@ xml:
|
|||
book.xml
|
||||
line.xml
|
||||
wizard_openline.xml
|
||||
wizard_runreport.xml
|
||||
menu.xml
|
||||
|
|
|
@ -44,10 +44,10 @@ full copyright notices and license terms. -->
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<!-- admin: read/write -->
|
||||
<record model="ir.model.access" id="access_type-group_admin">
|
||||
<!-- group_cashbook_admin: read/write -->
|
||||
<record model="ir.model.access" id="access_type-group_cashbook_admin">
|
||||
<field name="model" search="[('model', '=', 'cashbook.type')]"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="group" ref="group_cashbook_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
|
|
15
view/wizard_runrepbook_form.xml
Normal file
15
view/wizard_runrepbook_form.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- 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. -->
|
||||
<form col="2">
|
||||
<label name="cashbook"/>
|
||||
<field name="cashbook" widget="selection"/>
|
||||
|
||||
<label name="reconciliation"/>
|
||||
<field name="reconciliation"/>
|
||||
|
||||
<field name="cashbooks"/>
|
||||
<field name="reconciliations"/>
|
||||
</form>
|
||||
|
|
@ -3,12 +3,11 @@
|
|||
# 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
|
||||
from trytond.model import ModelView, fields
|
||||
from trytond.pyson import PYSONEncoder
|
||||
from trytond.wizard import Wizard, StateView, StateTransition, StateAction, Button
|
||||
from trytond.i18n import gettext
|
||||
from trytond.pool import Pool
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
|
|
121
wizard_runreport.py
Normal file
121
wizard_runreport.py
Normal file
|
@ -0,0 +1,121 @@
|
|||
# -*- 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.
|
||||
|
||||
from trytond.model import ModelView, fields
|
||||
from trytond.pyson import PYSONEncoder
|
||||
from trytond.wizard import Wizard, StateView, StateTransition, StateReport, Button
|
||||
from trytond.i18n import gettext
|
||||
from trytond.pool import Pool
|
||||
from trytond.pyson import Eval, Bool
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
class RunCbReportStart(ModelView):
|
||||
'Cashbook Report'
|
||||
__name__ = 'cashbook.runrepbook.start'
|
||||
|
||||
cashbook = fields.Many2One(string='Cashbook', required=True,
|
||||
model_name='cashbook.book', depends=['cashbooks'],
|
||||
domain=[('id', 'in', Eval('cashbooks', []))])
|
||||
cashbooks = fields.One2Many(string='Cashbooks', model_name='cashbook.book',
|
||||
field=None, readonly=True, states={'invisible': True})
|
||||
reconciliation = fields.Many2One(string='Reconciliation', required=True,
|
||||
model_name='cashbook.recon', depends=['reconciliations'],
|
||||
states={
|
||||
'readonly': ~Bool(Eval('reconciliations')),
|
||||
}, domain=[('id', 'in', Eval('reconciliations', []))])
|
||||
reconciliations = fields.Function(fields.One2Many(string='Reconciliations',
|
||||
model_name='cashbook.recon', field=None, readonly=True,
|
||||
states={'invisible': True}),
|
||||
'on_change_with_reconciliations')
|
||||
|
||||
@fields.depends('cashbook', 'reconciliations', 'reconciliation')
|
||||
def on_change_cashbook(self):
|
||||
""" update reconciliations
|
||||
"""
|
||||
if self.cashbook:
|
||||
self.reconciliations = self.on_change_with_reconciliations()
|
||||
if len(self.reconciliations or []) > 0:
|
||||
self.reconciliation = self.reconciliations[0]
|
||||
else :
|
||||
self.reconciliations = []
|
||||
self.reconciliation = None
|
||||
|
||||
@fields.depends('cashbook')
|
||||
def on_change_with_reconciliations(self, name=None):
|
||||
""" get reconciliations of current cashbook
|
||||
"""
|
||||
Recon2 = Pool().get('cashbook.recon')
|
||||
|
||||
if self.cashbook:
|
||||
recons = Recon2.search([
|
||||
('cashbook.id', '=', self.cashbook.id),
|
||||
], order=[('date_from', 'DESC')])
|
||||
return [x.id for x in recons]
|
||||
|
||||
# end RunCbReportStart
|
||||
|
||||
|
||||
class RunCbReport(Wizard):
|
||||
'Cashbook Report'
|
||||
__name__ = 'cashbook.runrepbook'
|
||||
|
||||
start_state = 'selrecon'
|
||||
selrecon = StateView('cashbook.runrepbook.start',
|
||||
'cashbook.runrepbook_view_form', [
|
||||
Button(string='Cancel', state='end', icon='tryton-cancel'),
|
||||
Button(string='Report', state='report_', icon='tryton-ok', default=True),
|
||||
])
|
||||
report_ = StateReport('cashbook.reprecon')
|
||||
|
||||
def default_selrecon(self, fields):
|
||||
""" setup form
|
||||
"""
|
||||
pool = Pool()
|
||||
Book = pool.get('cashbook.book')
|
||||
Recon2 = pool.get('cashbook.recon')
|
||||
context = Transaction().context
|
||||
|
||||
result = {}
|
||||
if context.get('active_model', '') == 'cashbook.book':
|
||||
result['cashbook'] = context.get('active_id', None)
|
||||
elif context.get('active_model', '') == 'cashbook.line':
|
||||
result['cashbook'] = context.get('cashbook', None)
|
||||
else :
|
||||
raise ValueError('invalid model')
|
||||
|
||||
with Transaction().set_context({
|
||||
'_check_access': True,
|
||||
}):
|
||||
books = Book.search([])
|
||||
result['cashbooks'] = [x.id for x in books]
|
||||
|
||||
if len(result['cashbooks']) > 0:
|
||||
if result['cashbook'] is None:
|
||||
result['cashbook'] = result['cashbooks'][0]
|
||||
|
||||
recons = Recon2.search([
|
||||
('cashbook.id', '=', result['cashbook']),
|
||||
], order=[('date_from', 'DESC')])
|
||||
if len(recons) > 0:
|
||||
result['reconciliations'] = [x.id for x in recons]
|
||||
result['reconciliation'] = recons[0].id
|
||||
return result
|
||||
|
||||
def do_report_(self, action):
|
||||
""" run report
|
||||
"""
|
||||
# values for 'data' in report
|
||||
r1 = {
|
||||
'model': self.selrecon.reconciliation.__name__,
|
||||
'id': self.selrecon.reconciliation.id,
|
||||
'ids': [self.selrecon.reconciliation.id],
|
||||
}
|
||||
return action, r1
|
||||
|
||||
def transition_report_(self):
|
||||
return 'end'
|
||||
|
||||
# end RunCbReport
|
30
wizard_runreport.xml
Normal file
30
wizard_runreport.xml
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- 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. -->
|
||||
<tryton>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="runrepbook_view_form">
|
||||
<field name="model">cashbook.runrepbook.start</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">wizard_runrepbook_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.wizard" id="act_wizard_report">
|
||||
<field name="name">Cashbook Report</field>
|
||||
<field name="wiz_name">cashbook.runrepbook</field>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="wizrecon_line-keyword">
|
||||
<field name="keyword">form_action</field>
|
||||
<field name="model">cashbook.line,-1</field>
|
||||
<field name="action" ref="act_wizard_report"/>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="wizrecon_book-keyword">
|
||||
<field name="keyword">form_action</field>
|
||||
<field name="model">cashbook.book,-1</field>
|
||||
<field name="action" ref="act_wizard_report"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
Loading…
Reference in a new issue