tabelle 'reconciliation' neu

This commit is contained in:
Frederik Jaeckel 2022-08-11 15:00:35 +02:00
parent ae5303658e
commit 01825cc09c
13 changed files with 571 additions and 36 deletions

View file

@ -10,6 +10,7 @@ from .line import Line, LineContext
from .wizard_openline import OpenCashBook, OpenCashBookStart from .wizard_openline import OpenCashBook, OpenCashBookStart
from .configuration import Configuration, UserConfiguration from .configuration import Configuration, UserConfiguration
from .category import Category from .category import Category
from .reconciliation import Reconciliation
def register(): def register():
Pool.register( Pool.register(
@ -20,6 +21,7 @@ def register():
Book, Book,
LineContext, LineContext,
Line, Line,
Reconciliation,
OpenCashBookStart, OpenCashBookStart,
module='cashbook', type_='model') module='cashbook', type_='model')
Pool.register( Pool.register(

12
book.py
View file

@ -39,16 +39,22 @@ class Book(Workflow, ModelSQL, ModelView):
model_name='cashbook.type', ondelete='RESTRICT', model_name='cashbook.type', ondelete='RESTRICT',
states=STATES, depends=DEPENDS) states=STATES, depends=DEPENDS)
owner = fields.Many2One(string='Owner', required=True, select=True, owner = fields.Many2One(string='Owner', required=True, select=True,
model_name='res.user', ondelete='SET NULL') model_name='res.user', ondelete='SET NULL',
states=STATES, depends=DEPENDS)
reviewer = fields.Many2One(string='Reviewer', select=True, reviewer = fields.Many2One(string='Reviewer', select=True,
help='Group of users who have write access to the cashbook.', help='Group of users who have write access to the cashbook.',
model_name='res.group', ondelete='SET NULL') model_name='res.group', ondelete='SET NULL',
states=STATES, depends=DEPENDS)
observer = fields.Many2One(string='Observer', select=True, observer = fields.Many2One(string='Observer', select=True,
help='Group of users who have read-only access to the cashbook.', help='Group of users who have read-only access to the cashbook.',
model_name='res.group', ondelete='SET NULL') model_name='res.group', ondelete='SET NULL',
states=STATES, depends=DEPENDS)
lines = fields.One2Many(string='Lines', field='cashbook', lines = fields.One2Many(string='Lines', field='cashbook',
model_name='cashbook.line', model_name='cashbook.line',
states=STATES, depends=DEPENDS) states=STATES, depends=DEPENDS)
reconciliations = fields.One2Many(string='Reconciliations',
field='cashbook', model_name='cashbook.recon',
states=STATES, depends=DEPENDS)
account = fields.Many2One(string='Account', select=True, account = fields.Many2One(string='Account', select=True,
model_name='account.account', ondelete='RESTRICT', model_name='account.account', ondelete='RESTRICT',
states=STATES, depends=DEPENDS) states=STATES, depends=DEPENDS)

View file

@ -77,6 +77,8 @@ class Line(Workflow, ModelSQL, ModelView):
required=True, readonly=True, depends=['currency_digits']) required=True, readonly=True, depends=['currency_digits'])
credit = fields.Numeric(string='Credit', digits=(16, Eval('currency_digits', 2)), credit = fields.Numeric(string='Credit', digits=(16, Eval('currency_digits', 2)),
required=True, readonly=True, depends=['currency_digits']) required=True, readonly=True, depends=['currency_digits'])
reconciliation = fields.Many2One(string='Reconciliation', readonly=True,
model_name='cashbook.recon', ondelete='SET NULL')
balance = fields.Function(fields.Numeric(string='Balance', balance = fields.Function(fields.Numeric(string='Balance',
digits=(16, Eval('currency_digits', 2)), digits=(16, Eval('currency_digits', 2)),
@ -494,7 +496,6 @@ class LineContext(ModelView):
""" get number of accessible cashbooks, """ get number of accessible cashbooks,
depends on user-permissions depends on user-permissions
""" """
print('-- on_change_with_num_cashbook:', Transaction().context)
LineContext = Pool().get('cashbook.line.context') LineContext = Pool().get('cashbook.line.context')
return LineContext.default_num_cashbook() return LineContext.default_num_cashbook()

View file

@ -110,6 +110,18 @@ msgctxt "model:ir.rule.group,name:rg_book_companies"
msgid "User in companies" msgid "User in companies"
msgstr "Benutzer im Unternehmen" msgstr "Benutzer im Unternehmen"
msgctxt "model:ir.rule.group,name:rg_recon_companies"
msgid "User in companies"
msgstr "Benutzer im Unternehmen"
msgctxt "model:ir.rule.group,name:rg_recon_write_adm"
msgid "Administrators: Reconciliation read/write"
msgstr "Administratoren: Abstimmung bearbeiten"
msgctxt "model:ir.rule.group,name:rg_recon_write"
msgid "Owners and reviewers: Reconciliation write"
msgstr "Eigentümer und Bearbeiter: Abstimmung bearbeiten"
############## ##############
# ir.ui.menu # # ir.ui.menu #
@ -126,7 +138,7 @@ msgctxt "model:ir.ui.menu,name:menu_typeconfig"
msgid "Cashbook Type" msgid "Cashbook Type"
msgstr "Kassenbuchtyp" msgstr "Kassenbuchtyp"
msgctxt "model:ir.ui.menu,name:menu_bookconfig" msgctxt "model:ir.ui.menu,name:menu_booklist"
msgid "Cashbook" msgid "Cashbook"
msgstr "Kassenbuch" msgstr "Kassenbuch"
@ -210,6 +222,18 @@ msgctxt "model:ir.model.button,string:book_wfarchive_button"
msgid "Archive" msgid "Archive"
msgstr "Archiv" msgstr "Archiv"
msgctxt "model:ir.model.button,string:recon_wfedit_button"
msgid "Edit"
msgstr "Bearbeiten"
msgctxt "model:ir.model.button,string:recon_wfcheck_button"
msgid "Check"
msgstr "Prüfen"
msgctxt "model:ir.model.button,string:recon_wfdone_button"
msgid "Done"
msgstr "Fertig"
################# #################
# cashbook.book # # cashbook.book #
@ -222,6 +246,10 @@ msgctxt "view:cashbook.book:"
msgid "Owner and Authorizeds" msgid "Owner and Authorizeds"
msgstr "Eigentümer und Autorisierte" msgstr "Eigentümer und Autorisierte"
msgctxt "view:cashbook.book:"
msgid "Reconciliations"
msgstr "Abstimmungen"
msgctxt "field:cashbook.book,name:" msgctxt "field:cashbook.book,name:"
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@ -282,6 +310,18 @@ msgctxt "field:cashbook.book,start_balance:"
msgid "Initial Amount" msgid "Initial Amount"
msgstr "Anfangsbetrag" msgstr "Anfangsbetrag"
msgctxt "field:cashbook.book,balance:"
msgid "Balance"
msgstr "Saldo"
msgctxt "field:cashbook.book,reconciliations:"
msgid "Reconciliations"
msgstr "Abstimmungen"
msgctxt "field:cashbook.book,lines:"
msgid "Lines"
msgstr "Zeilen"
################# #################
# cashbook.line # # cashbook.line #
@ -406,6 +446,10 @@ msgctxt "help:cashbook.line,balance:"
msgid "Balance of the cash book up to the current line, if the default sorting applies." msgid "Balance of the cash book up to the current line, if the default sorting applies."
msgstr "Saldo des Kassenbuchs bis zur aktuellen Zeile, sofern die Standardsortierung gilt." msgstr "Saldo des Kassenbuchs bis zur aktuellen Zeile, sofern die Standardsortierung gilt."
msgctxt "field:cashbook.line,reconciliation:"
msgid "Reconciliation"
msgstr "Abstimmung"
################# #################
# cashbook.type # # cashbook.type #
@ -689,3 +733,71 @@ msgstr "Kategorie: Kontonummer zeigen"
msgctxt "help:cashbook.configuration_user,cataccno:" msgctxt "help:cashbook.configuration_user,cataccno:"
msgid "Shows the number of the linked account in the name of a category." msgid "Shows the number of the linked account in the name of a category."
msgstr "Zeigt im Namen einer Kategorie die Nummer des verknüpften Kontos." msgstr "Zeigt im Namen einer Kategorie die Nummer des verknüpften Kontos."
##################
# cashbook.recon #
##################
msgctxt "model:cashbook.recon,name:"
msgid "Cashbook Reconciliation"
msgstr "Kassenbuchabstimmung"
msgctxt "view:cashbook.recon:"
msgid "Reconciliation period"
msgstr "Abstimmungszeitraum"
msgctxt "view:cashbook.recon:"
msgid "State"
msgstr "Status"
msgctxt "field:cashbook.recon,cashbook:"
msgid "Cashbook"
msgstr "Kassenbuch"
msgctxt "field:cashbook.recon,date:"
msgid "Date"
msgstr "Datum"
msgctxt "field:cashbook.recon,date_from:"
msgid "Start Date"
msgstr "Anfangsdatum"
msgctxt "field:cashbook.recon,date_to:"
msgid "End Date"
msgstr "Endedatum"
msgctxt "field:cashbook.recon,state:"
msgid "State"
msgstr "Status"
msgctxt "selection:cashbook.recon,state:"
msgid "Edit"
msgstr "Bearbeiten"
msgctxt "selection:cashbook.recon,state:"
msgid "Check"
msgstr "Prüfen"
msgctxt "selection:cashbook.recon,state:"
msgid "Done"
msgstr "Fertig"
msgctxt "field:cashbook.recon,lines:"
msgid "Lines"
msgstr "Zeilen"
msgctxt "field:cashbook.recon,state_cashbook:"
msgid "State of Cashbook"
msgstr "Kassenbuchstatus"
msgctxt "selection:cashbook.recon,state_cashbook:"
msgid "Open"
msgstr "Geöffnet"
msgctxt "selection:cashbook.recon,state_cashbook:"
msgid "Closed"
msgstr "Geschlossen"
msgctxt "selection:cashbook.recon,state_cashbook:"
msgid "Archive"
msgstr "Archiv"

View file

@ -30,19 +30,10 @@ full copyright notices and license terms. -->
<field name="group" ref="group_cashbook"/> <field name="group" ref="group_cashbook"/>
</record> </record>
<!-- menu: /Cashbook/Configuration/Cashbook -->
<menuitem id="menu_bookconfig" action="act_book_view"
icon="tryton-list"
parent="menu_config" sequence="10"/>
<record model="ir.ui.menu-res.group" id="menu_bookconfig-group_admin">
<field name="menu" ref="menu_bookconfig"/>
<field name="group" ref="res.group_admin"/>
</record>
<!-- menu: /Cashbook/Configuration/Types --> <!-- menu: /Cashbook/Configuration/Types -->
<menuitem id="menu_typeconfig" action="act_type_view" <menuitem id="menu_typeconfig" action="act_type_view"
icon="tryton-list" icon="tryton-list"
parent="menu_config" sequence="20"/> 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_admin">
<field name="menu" ref="menu_typeconfig"/> <field name="menu" ref="menu_typeconfig"/>
<field name="group" ref="res.group_admin"/> <field name="group" ref="res.group_admin"/>
@ -51,7 +42,7 @@ full copyright notices and license terms. -->
<!-- menu: /Cashbook/Configuration/Category --> <!-- menu: /Cashbook/Configuration/Category -->
<menuitem id="menu_category" action="act_category_tree" <menuitem id="menu_category" action="act_category_tree"
icon="tryton-tree" icon="tryton-tree"
parent="menu_config" sequence="30"/> 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_admin">
<field name="menu" ref="menu_category"/> <field name="menu" ref="menu_category"/>
<field name="group" ref="res.group_admin"/> <field name="group" ref="res.group_admin"/>
@ -59,7 +50,7 @@ full copyright notices and license terms. -->
<!-- menu: /Cashbook/Configuration/Category/Category --> <!-- menu: /Cashbook/Configuration/Category/Category -->
<menuitem id="menu_category_list" action="act_category_list" <menuitem id="menu_category_list" action="act_category_list"
icon="tryton-list" icon="tryton-list"
parent="menu_category" sequence="30"/> 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_admin">
<field name="menu" ref="menu_category_list"/> <field name="menu" ref="menu_category_list"/>
<field name="group" ref="res.group_admin"/> <field name="group" ref="res.group_admin"/>
@ -69,6 +60,27 @@ full copyright notices and license terms. -->
<menuitem id="menu_open_lines" action="act_open_lines" <menuitem id="menu_open_lines" action="act_open_lines"
icon="tryton-list" icon="tryton-list"
parent="menu_cashbook" sequence="20"/> 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>
<!-- 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>
</data> </data>
</tryton> </tryton>

151
reconciliation.py Normal file
View file

@ -0,0 +1,151 @@
# -*- 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 Workflow, ModelView, ModelSQL, fields, Unique
from trytond.transaction import Transaction
from trytond.pyson import Eval, If, Or
from trytond.pool import Pool
from trytond.report import Report
from decimal import Decimal
from .book import sel_state_book
sel_reconstate = [
('edit', 'Edit'),
('check', 'Check'),
('done', 'Done'),
]
STATES = {
'readonly': Or(
Eval('state', '') != 'edit',
Eval('state_cashbook', '') != 'open',
),
}
DEPENDS=['state', 'state_cashbook']
class Reconciliation(Workflow, ModelSQL, ModelView):
'Cashbook Reconciliation'
__name__ = 'cashbook.recon'
cashbook = fields.Many2One(string='Cashbook', required=True, select=True,
model_name='cashbook.book', ondelete='CASCADE', readonly=True)
date = fields.Date(string='Date', required=True, select=True,
states=STATES, depends=DEPENDS)
date_from = fields.Date(string='Start Date',
required=True,
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
()),
],
states=STATES, depends=DEPENDS+['date_to'])
date_to = fields.Date(string='End Date',
required=True,
domain=[
If(Eval('date_to') & Eval('date_from'),
('date_from', '<=', Eval('date_to')),
()),
],
states=STATES, depends=DEPENDS+['date_from'])
lines = fields.One2Many(string='Lines', field='reconciliation',
model_name='cashbook.line', states=STATES,
depends=DEPENDS+['date_from', 'date_to', 'cashbook'],
add_remove=[
('cashbook', '=', Eval('cashbook')),
('date', '>=', Eval('date_from')),
('date', '<=', Eval('date_to')),
],
domain=[
('date', '>=', Eval('date_from')),
('date', '<=', Eval('date_to')),
])
state = fields.Selection(string='State', required=True, readonly=True,
select=True, selection=sel_reconstate)
state_string = state.translated('state')
state_cashbook = fields.Function(fields.Selection(string='State of Cashbook',
readonly=True, states={'invisible': True}, selection=sel_state_book),
'on_change_with_state_cashbook')
@classmethod
def __setup__(cls):
super(Reconciliation, cls).__setup__()
cls._order.insert(0, ('date_from', 'ASC'))
cls._transitions |= set((
('edit', 'check'),
('check', 'done'),
('check', 'edit'),
))
cls._buttons.update({
'wfedit': {
'invisible': Eval('state', '') != 'check',
'depends': ['state'],
},
'wfcheck': {
'invisible': Eval('state') != 'edit',
'depends': ['state'],
},
'wfdone': {
'invisible': Eval('state') != 'check',
'depends': ['state'],
},
})
@classmethod
@ModelView.button
@Workflow.transition('edit')
def wfedit(cls, lines):
""" edit
"""
pass
@classmethod
@ModelView.button
@Workflow.transition('check')
def wfcheck(cls, lines):
""" is checked
"""
pass
@classmethod
@ModelView.button
@Workflow.transition('done')
def wfdone(cls, lines):
""" is done
"""
pass
def get_rec_name(self, name):
""" short + name
"""
return '%(from)s - %(to)s: %(amount)s %(symbol)s' % {
'from': Report.format_date(self.date_from, None) if self.date_from is not None else '-',
'to': Report.format_date(self.date_to, None) if self.date_to is not None else '-',
'amount': Decimal('0.0'),
'symbol': getattr(getattr(self.cashbook, 'currency', None), 'symbol', '-'),
}
@classmethod
def default_state(cls):
return 'edit'
@classmethod
def default_date(cls):
""" today
"""
IrDate = Pool().get('ir.date')
return IrDate.today()
@fields.depends('cashbook', '_parent_cashbook.state')
def on_change_with_state_cashbook(self, name=None):
""" get state of cashbook
"""
if self.cashbook:
return self.cashbook.state
# end Type

196
reconciliation.xml Normal file
View file

@ -0,0 +1,196 @@
<?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>
<!-- views -->
<record model="ir.ui.view" id="recon_view_list">
<field name="model">cashbook.recon</field>
<field name="type">tree</field>
<field name="priority" eval="10"/>
<field name="name">recon_list</field>
</record>
<record model="ir.ui.view" id="recon_view_form">
<field name="model">cashbook.recon</field>
<field name="type">form</field>
<field name="priority" eval="20"/>
<field name="name">recon_form</field>
</record>
<!-- action view-->
<record model="ir.action.act_window" id="act_recon_view">
<field name="name">Cashbook Reconciliation</field>
<field name="res_model">cashbook.recon</field>
</record>
<record model="ir.action.act_window.view" id="act_recon_view-1">
<field name="sequence" eval="10"/>
<field name="view" ref="recon_view_list"/>
<field name="act_window" ref="act_recon_view"/>
</record>
<record model="ir.action.act_window.view" id="act_recon_view-2">
<field name="sequence" eval="20"/>
<field name="view" ref="recon_view_form"/>
<field name="act_window" ref="act_recon_view"/>
</record>
<!-- permission -->
<!-- anon: deny all -->
<record model="ir.model.access" id="access_recon-anon">
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
<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">
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
<field name="group" ref="res.group_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/write -->
<record model="ir.model.access" id="access_recon-group_cashbook">
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
<field name="group" ref="group_cashbook"/>
<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>
<!-- permission by rule - admin -->
<record model="ir.rule.group" id="rg_recon_write_adm">
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
<field name="name">Administrators: Reconciliation 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="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.rule" id="rg_recon_write_adm-1">
<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">
<field name="rule_group" ref="rg_recon_write_adm"/>
<field name="group" ref="res.group_admin"/>
</record>
<!-- permission by rule - read/write: owner, reviewer -->
<record model="ir.rule.group" id="rg_recon_write">
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
<field name="name">Owners and reviewers: Reconciliation 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="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.rule" id="rg_recon_write-1">
<field name="domain" eval="['OR',
('cashbook.owner.id', '=', Eval('user', {}).get('id', -1)),
('cashbook.reviewer.id', 'in', Eval('user', {}).get('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_recon_write"/>
</record>
<record model="ir.rule.group-res.group" id="rg_recon_write-group_cashbook">
<field name="rule_group" ref="rg_recon_write"/>
<field name="group" ref="group_cashbook"/>
</record>
<!-- permission by rule - read: observer -->
<record model="ir.rule.group" id="rg_recon_read">
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
<field name="name">Observer: Reconciliation read</field>
<field name="global_p" eval="False"/>
<field name="default_p" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.rule" id="rg_recon_read-1">
<field name="domain" eval="[
('cashbook.observer.id', 'in', Eval('user', {}).get('groups', [])),
]" pyson="1"/>
<field name="rule_group" ref="rg_recon_read"/>
</record>
<record model="ir.rule.group-res.group" id="rg_recon_read-group_cashbook">
<field name="rule_group" ref="rg_recon_read"/>
<field name="group" ref="group_cashbook"/>
</record>
<record model="ir.rule.group" id="rg_recon_companies">
<field name="name">User in companies</field>
<field name="model"
search="[('model', '=', 'cashbook.recon')]"/>
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="r_recon_companies">
<field name="domain"
eval="[('cashbook.company', 'in', Eval('companies', []))]"
pyson="1"/>
<field name="rule_group" ref="rg_recon_companies"/>
</record>
<!-- button - edit -->
<record model="ir.model.button" id="recon_wfedit_button">
<field name="name">wfedit</field>
<field name="string">Edit</field>
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
</record>
<record model="ir.model.button-res.group"
id="recon_wfedit_button-group_admin">
<field name="button" ref="recon_wfedit_button"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.model.button-res.group"
id="recon_wfedit_button-group_cashbook_doneline">
<field name="button" ref="recon_wfedit_button"/>
<field name="group" ref="group_cashbook_doneline"/>
</record>
<!-- button - check -->
<record model="ir.model.button" id="recon_wfcheck_button">
<field name="name">wfcheck</field>
<field name="string">Check</field>
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
</record>
<record model="ir.model.button-res.group"
id="recon_wfcheck_button-group_admin">
<field name="button" ref="recon_wfcheck_button"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.model.button-res.group"
id="recon_wfcheck_button-group_cashbook_doneline">
<field name="button" ref="recon_wfcheck_button"/>
<field name="group" ref="group_cashbook_doneline"/>
</record>
<!-- button - done -->
<record model="ir.model.button" id="recon_wfdone_button">
<field name="name">wfdone</field>
<field name="string">Done</field>
<field name="model" search="[('model', '=', 'cashbook.recon')]"/>
</record>
<record model="ir.model.button-res.group"
id="recon_wfdone_button-group_admin">
<field name="button" ref="recon_wfdone_button"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.model.button-res.group"
id="recon_wfdone_button-group_cashbook_doneline">
<field name="button" ref="recon_wfdone_button"/>
<field name="group" ref="group_cashbook_doneline"/>
</record>
</data>
</tryton>

View file

@ -10,6 +10,7 @@ xml:
message.xml message.xml
types.xml types.xml
category.xml category.xml
reconciliation.xml
configuration.xml configuration.xml
book.xml book.xml
line.xml line.xml

View file

@ -2,9 +2,9 @@
<!-- This file is part of the cashbook-module from m-ds for Tryton. <!-- 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 The COPYRIGHT file at the top level of this repository contains the
full copyright notices and license terms. --> full copyright notices and license terms. -->
<form> <form col="6">
<label name="name"/> <label name="name"/>
<field name="name"/> <field name="name" colspan="3"/>
<label name="btype"/> <label name="btype"/>
<field name="btype"/> <field name="btype"/>
@ -12,27 +12,36 @@ full copyright notices and license terms. -->
<field name="currency"/> <field name="currency"/>
<label name="account"/> <label name="account"/>
<field name="account"/> <field name="account"/>
<group id="grpst" colspan="2" col="3">
<label name="state"/>
<field name="state"/>
<group id="grpstate" col="3">
<button name="wfopen"/>
<button name="wfclosed"/>
<button name="wfarchive"/>
</group>
</group>
<label name="start_balance"/> <label name="start_balance"/>
<field name="start_balance"/> <field name="start_balance"/>
<label name="balance"/>
<field name="balance"/>
<newline/> <newline/>
<label name="state"/> <notebook colspan="6">
<field name="state"/> <page id="pgrecon" string="Reconciliations" col="1">
<group id="grpstate" col="3" colspan="2"> <field name="reconciliations"/>
<button name="wfopen"/> </page>
<button name="wfclosed"/> <page id="pgperm" string="Owner and Authorizeds" col="4">
<button name="wfarchive"/> <label name="owner"/>
</group> <field name="owner"/>
<newline/>
<separator id="sepperm" string="Owner and Authorizeds" colspan="4"/> <label name="reviewer"/>
<label name="owner"/> <field name="reviewer"/>
<field name="owner"/> <label name="observer"/>
<newline/> <field name="observer"/>
</page>
<label name="reviewer"/> </notebook>
<field name="reviewer"/>
<label name="observer"/>
<field name="observer"/>
</form> </form>

View file

@ -6,6 +6,7 @@ full copyright notices and license terms. -->
<field name="name"/> <field name="name"/>
<field name="btype"/> <field name="btype"/>
<field name="start_balance"/> <field name="start_balance"/>
<field name="balance"/>
<field name="currency"/> <field name="currency"/>
<field name="account"/> <field name="account"/>
<field name="owner"/> <field name="owner"/>

View file

@ -19,7 +19,8 @@ full copyright notices and license terms. -->
<field name="date"/> <field name="date"/>
<label name="bookingtype"/> <label name="bookingtype"/>
<field name="bookingtype"/> <field name="bookingtype"/>
<newline/> <label name="reconciliation"/>
<field name="reconciliation"/>
<label name="category"/> <label name="category"/>
<field name="category"/> <field name="category"/>

31
view/recon_form.xml Normal file
View file

@ -0,0 +1,31 @@
<?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="6">
<label name="cashbook"/>
<field name="cashbook"/>
<newline/>
<separator id="sep1" string="Reconciliation period" colspan="4"/>
<separator id="sep2" string="State" colspan="2"/>
<label name="date_from"/>
<field name="date_from"/>
<label name="date_to"/>
<field name="date_to"/>
<field name="state"/>
<group id="grpstate" col="3">
<button name="wfedit"/>
<button name="wfcheck"/>
<button name="wfdone"/>
</group>
<label id="lab1" string=" " colspan="4"/>
<label name="date"/>
<field name="date"/>
<newline/>
<field name="lines" colspan="6"/>
</form>

12
view/recon_list.xml Normal file
View file

@ -0,0 +1,12 @@
<?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. -->
<tree>
<field name="cashbook"/>
<field name="date"/>
<field name="date_from"/>
<field name="date_to"/>
<field name="lines"/>
<field name="state"/>
</tree>