[IMP] account: update the journal items lists

Task 2003965
*** New menuitems for the accounting menu:
Miscellaneous
Journal Entries       (default search on misc op journal, like in v12)
Journal Items         (debug mode, same as V12)

Journals                (=journal items)
Sales                 (group by entry, filter sales journal)
Purchase              (group by entry, filter purchase journal)
Bank & Cash           (group by entry, filter bank,cash journal)
Miscellaneous         (group by entry, filter misc journal)

Ledgers                 (=journal items)
General Ledger        (group by account)
Partner Ledger        (group by partner)
Taxes                 (no group by)

*** Expand group by by default
*** Adapt the name of the groups for group by moves
*** Fold the attachment viewer
*** Correct the optional tree fields on invoices

closes odoo/odoo#34083

Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
This commit is contained in:
wan
2019-06-12 16:13:53 +00:00
committed by qdp-odoo
parent 79a8269821
commit d215bd81ca
6 changed files with 237 additions and 32 deletions
+7 -5
View File
@@ -19,7 +19,7 @@ from lxml import etree
class AccountMove(models.Model):
_name = "account.move"
_description = "Journal Entries"
_order = 'date desc, id desc'
_order = 'date desc, name desc, id desc'
_inherit = ['mail.thread', 'mail.activity.mixin']
@api.model
@@ -34,10 +34,11 @@ class AccountMove(models.Model):
def name_get(self):
result = []
for move in self:
name = move.name
if self.env.context.get('name_groupby'):
name = "**{date}**, {name} {partner}".format(date=format_date(self.env, move.date), name=move.name, partner=move.partner_id.name or "")
if move.state == 'draft':
name = '* ' + str(move.id)
else:
name = move.name
result.append((move.id, name))
return result
@@ -510,7 +511,7 @@ class AccountMove(models.Model):
class AccountMoveLine(models.Model):
_name = "account.move.line"
_description = "Journal Item"
_order = "date desc, id desc"
_order = "date desc, move_name desc, id desc"
@api.onchange('debit', 'credit', 'tax_ids', 'analytic_account_id', 'analytic_tag_ids')
def onchange_tax_ids_create_aml(self):
@@ -614,6 +615,7 @@ class AccountMoveLine(models.Model):
record.parent_state = record.move_id.state
name = fields.Char(string="Label")
move_name = fields.Char(string='Number', related='move_id.name', store=True, index=True)
quantity = fields.Float(digits=dp.get_precision('Product Unit of Measure'),
help="The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.")
product_uom_id = fields.Many2one('uom.uom', string='Unit of Measure')
@@ -1532,7 +1534,7 @@ class AccountMoveLine(models.Model):
@api.multi
def open_reconcile_view(self):
[action] = self.env.ref('account.action_account_moves_all_a').read()
[action] = self.env.ref('account.action_account_moves_all').read()
ids = []
for aml in self:
if aml.account_id.reconcile:
+2 -3
View File
@@ -129,11 +129,10 @@ class TestPayment(AccountingTestCase):
})
payment.post()
self.assertRecordValues(payment.move_line_ids, [
{'account_id': self.account_usd.id, 'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id},
{'account_id': self.transfer_account.id, 'debit': 32.70, 'credit': 0.0, 'amount_currency': 50, 'currency_id': self.currency_usd_id},
{'account_id': self.transfer_account.id, 'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id},
{'account_id': self.account_eur.id, 'debit': 32.70, 'credit': 0.0, 'amount_currency': 0, 'currency_id': False},
{'account_id': self.account_usd.id, 'debit': 0.0, 'credit': 32.70, 'amount_currency': -50, 'currency_id': self.currency_usd_id},
{'account_id': self.transfer_account.id, 'debit': 32.70, 'credit': 0.0, 'amount_currency': 50,
'currency_id': self.currency_usd_id},
])
def test_payment_chf_journal_usd(self):
@@ -68,7 +68,7 @@
<menuitem
name="Analytic Items"
parent="account.menu_finance_entries_accounting_entries"
parent="account.menu_finance_entries_accounting_miscellaneous"
action="analytic.account_analytic_line_action_entries"
id="menu_action_analytic_lines_tree"
sequence="35"
@@ -354,13 +354,13 @@
domain="[('company_id', '=', parent.company_id)]"
context="{'default_partner_id': parent.partner_id}"
optional="show"/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}"/>
<field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags" options="{'color_field': 'color'}" optional="show"/>
<field name="quantity"/>
<field name="uom_id" string="UoM" groups="uom.group_uom" optional="show"/>
<field name="price_unit"/>
<field name="discount" string="Disc.%" groups="base.group_no_one" optional="show"/>
<field name="discount" string="Disc.%" optional="hide"/>
<field name="invoice_line_tax_ids" widget="many2many_tags" options="{'no_create': True}" context="{'type':parent.type, 'tree_view_ref': 'account.account_tax_view_tree', 'search_view_ref': 'account.account_tax_view_search'}"
domain="[('type_tax_use','=','purchase'),('company_id', '=', parent.company_id)]" optional="show"/>
domain="[('type_tax_use','=','purchase'),('company_id', '=', parent.company_id)]"/>
<field name="price_subtotal" string="Amount"/>
<field name="currency_id" invisible="1"/>
</tree>
@@ -539,10 +539,9 @@
<field name="quantity"/>
<field name="uom_id" string="UoM" groups="uom.group_uom" optional="show"/>
<field name="price_unit" string="Price"/>
<field name="discount" groups="base.group_no_one" string="Disc.%" optional="show"/>
<field name="discount" string="Disc.%" optional="hide"/>
<field name="invoice_line_tax_ids" widget="many2many_tags" options="{'no_create': True}" context="{'type':parent.type, 'tree_view_ref': 'account.account_tax_view_tree', 'search_view_ref': 'account.account_tax_view_search'}"
domain="[('type_tax_use','=','sale'),('company_id', '=', parent.company_id)]"
optional="hide"/>
domain="[('type_tax_use','=','sale'),('company_id', '=', parent.company_id)]"/>
<field name="price_subtotal" string="Subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
<field name="price_total" string="Total" groups="account.group_show_line_subtotals_tax_included"/>
<field name="currency_id" invisible="1"/>
+4 -3
View File
@@ -13,9 +13,11 @@
<menuitem id="menu_finance_payables" name="Vendors" parent="menu_finance" sequence="3"/>
<menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4" groups="account.group_account_user"/>
<!-- Adviser sub-menus -->
<menuitem id="menu_finance_entries_accounting_entries" name="Accounting Entries" parent="account.menu_finance_entries"/>
<menuitem id="menu_finance_entries_accounting_miscellaneous" name="Miscellaneous" parent="account.menu_finance_entries" sequence="1"/>
<menuitem id="menu_finance_entries_accounting_journals" name="Journals" parent="account.menu_finance_entries" sequence="2"/>
<menuitem id="menu_finance_entries_accounting_ledgers" name="Ledgers" parent="account.menu_finance_entries" sequence="3"/>
<menuitem id="menu_finance_entries_management" name="Management" parent="menu_finance_entries" sequence="10" groups="account.group_account_invoice"/>
<menuitem id="menu_finance_entries_actions" name="Actions" parent="account.menu_finance_entries"/>
<menuitem id="menu_finance_entries_actions" name="Actions" parent="account.menu_finance_entries" sequence="11"/>
<menuitem id="menu_finance_entries_generate_entries" name="Generate Entries" parent="account.menu_finance_entries"/>
<menuitem id="menu_finance_reports" name="Reporting" parent="menu_finance" sequence="20" groups="account.group_account_manager"/>
@@ -34,4 +36,3 @@
</data>
</odoo>
+218 -14
View File
@@ -131,7 +131,7 @@
<record id="view_move_line_tree" model="ir.ui.view">
<field name="name">account.move.line.tree</field>
<field name="model">account.move.line</field>
<field eval="1" name="priority"/>
<field eval="100" name="priority"/>
<field name="arch" type="xml">
<tree string="Journal Items" create="false" editable="bottom">
<field name="date"/>
@@ -154,17 +154,111 @@
<field name="company_currency_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="parent_state" invisible="1"/>
</tree>
</field>
</record>
<record id="view_move_line_tree_grouped" model="ir.ui.view">
<field name="name">account.move.line.tree.grouped</field>
<field name="model">account.move.line</field>
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<tree string="Journal Items" create="false" editable="bottom" expand="context.get('group_by') in ('move_id', 'account_id') and 1 or 0">
<field name="date" optional="show" attrs="{'readonly':[('parent_state','=','posted')]}"/>
<field name="ref" optional="hide"/>
<field name="move_id" optional="show" readonly="1"/>
<field name="name"/>
<field name="statement_id" invisible="1"/>
<field name="account_id" options="{'no_open': True, 'no_create': True}" domain="[('company_id', '=', company_id)]" groups="account.group_account_user" attrs="{'readonly':[('parent_state','=','posted')]}" optional="show"/>
<field name="partner_id" optional="show"/>
<field name="reconciled" invisible="1"/>
<field name="full_reconcile_id" string="Matching" optional="show" readonly="1"/>
<field name="reconcile_model_id" invisible="1"/>
<field name="date_maturity" optional="hide"/>
<field name="debit" sum="Total Debit" readonly="1"/>
<field name="credit" sum="Total Credit" readonly="1"/>
<field name="amount_currency" readonly="True" groups="base.group_multi_currency"/>
<field name="currency_id" readonly="True" invisible="1" />
<field name="company_currency_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="parent_state" invisible="1"/>
<field name="tax_ids" widget="many2many_tags" width_factor="0.5" optional="hide" attrs="{'readonly':[('parent_state','=','posted')]}"/>
<field name="tag_ids" widget="many2many_tags" width_factor="0.5" optional="hide"/>
<groupby name="move_id">
<field name="state" invisible="1"/>
<button name="edit" type="edit" string="Edit"/>
<button name="action_post" states="draft" string="Post" type="object" groups="account.group_account_invoice"/>
<button name="%(action_view_account_move_reversal)d" states="posted" string="Reverse Entry" type="action" groups="account.group_account_invoice"/>
<button name="action_duplicate" string="Duplicate" type="object" groups="account.group_account_invoice"/>
<button name="edit" type="edit" icon="fa-edit" title="Edit"/>
<button name="action_post" states="draft" icon="fa-check" title="Post" type="object" groups="account.group_account_invoice"/>
<button name="%(action_view_account_move_reversal)d" states="posted" title="Reverse" icon="fa-refresh" type="action" groups="account.group_account_invoice"/>
<button name="action_duplicate" icon="fa-files-o" title="Duplicate" type="object" groups="account.group_account_invoice"/>
</groupby>
</tree>
</field>
</record>
<record id="view_move_line_tree_grouped_sales_purchases" model="ir.ui.view">
<field name="name">account.move.line.tree.grouped.sales.purchase</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree_grouped"/>
<field name="arch" type="xml">
<field name="date" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="move_id" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="partner_id" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="full_reconcile_id" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="tag_ids" position="attributes">
<attribute name="optional">show</attribute>
<attribute name="string">Tax Grid</attribute>
<attribute name="domain">[('applicability', '=', 'taxes')]</attribute>
</field>
</field>
</record>
<record id="view_move_line_tree_grouped_bank_cash" model="ir.ui.view">
<field name="name">account.move.line.tree.grouped.bank.cash</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree_grouped"/>
<field name="arch" type="xml">
<field name="date" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="move_id" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="ref" position="attributes"><attribute name="optional">show</attribute></field>
<field name="full_reconcile_id" position="attributes"><attribute name="optional">hide</attribute></field>
</field>
</record>
<record id="view_move_line_tree_grouped_misc" model="ir.ui.view">
<field name="name">account.move.line.tree.grouped.misc</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree_grouped"/>
<field name="arch" type="xml">
<field name="date" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="move_id" position="attributes"><attribute name="optional">hide</attribute></field>
</field>
</record>
<record id="view_move_line_tree_grouped_general" model="ir.ui.view">
<field name="name">account.move.line.tree.grouped.misc</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree_grouped"/>
<field name="arch" type="xml">
<field name="account_id" position="attributes"><attribute name="optional">hide</attribute></field>
</field>
</record>
<record id="view_move_line_tree_grouped_partner" model="ir.ui.view">
<field name="name">account.move.line.tree.grouped.partner</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree_grouped"/>
<field name="arch" type="xml">
<field name="partner_id" position="attributes"><attribute name="optional">hide</attribute></field>
<field name="date_maturity" position="attributes"><attribute name="optional">show</attribute></field>
</field>
</record>
<record id="view_move_line_tax_audit_tree" model="ir.ui.view">
<field name="name">account.move.line.tax.audit.tree</field>
<field name="model">account.move.line</field>
@@ -172,11 +266,16 @@
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="full_reconcile_id" position="after">
<field name="tax_line_id"/>
<field name="tax_line_id" string="Tax"/>
<field name="tax_base_amount" sum="Total Base Amount"/>
<field name="tax_audit"/>
<field name="move_id"/>
</field>
<field name="date_maturity" position="replace"/>
<field name="analytic_account_id" position="replace"/>
<field name="full_reconcile_id" position="replace"/>
<field name="debit" position="replace"/>
<field name="credit" position="replace"/>
</field>
</record>
@@ -201,6 +300,13 @@
<separator/>
<filter string="Unposted" name="unposted" domain="[('move_id.state','=','draft')]" help="Unposted Journal Items"/>
<filter name="posted" string="Posted" domain="[('move_id.state','=','posted')]" help="Posted Journal Items"/>
<filter string="To Check" name="to_check" domain="[('move_id.to_check', '=', True)]"/>
<separator/>
<filter string="Sales" name="sales" domain="[('move_id.journal_id.type','=','sale')]" context="{'default_journal_type': 'sale'}"/>
<filter string="Purchases" name="purchases" domain="[('move_id.journal_id.type','=','purchase')]" context="{'default_journal_type': 'purchase'}"/>
<filter string="Bank" name="bank" domain="[('move_id.journal_id.type', '=', 'bank')]" context="{'default_journal_type': 'bank'}"/>
<filter string="Cash" name="cash" domain="[('move_id.journal_id.type', '=', 'cash')]" context="{'default_journal_type': 'cash'}"/>
<filter string="Miscellaneous Operations" domain="[('move_id.journal_id.type','=','general')]" name="misc_filter" context="{'default_journal_type': 'general'}"/>
<separator/>
<filter string="Unreconciled" domain="[('full_reconcile_id', '=', False), ('balance','!=', 0), ('account_id.reconcile','=',True)]" help="Journal items where matching number isn't set" name="unreconciled"/>
<separator/>
@@ -216,9 +322,9 @@
<field name="reconcile_model_id"/>
<group expand="0" string="Group By">
<filter string="Journal Entry" name="group_by_move" domain="[]" context="{'group_by':'move_id'}"/>
<filter string="Partner" name="partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Account" name="group_by_account" domain="[]" context="{'group_by':'account_id'}"/>
<filter string="Partner" name="group_by_partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" name="journal" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Account" name="account" context="{'group_by':'account_id'}"/>
<filter string="Date" name="groupby_date" domain="[]" context="{'group_by':'date'}"/>
</group>
</search>
@@ -451,10 +557,58 @@
view_id="account.view_move_line_tax_audit_tree"/>
<record id="action_account_moves_all_a" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'search_default_posted':1}</field>
<field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_sales':1, 'name_groupby':1}</field>
<field name="name">Journal Items</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree"/>
<field name="view_id" ref="view_move_line_tree_grouped"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_journal_sales" model="ir.actions.act_window">
<field name="context">{'journal_type':'sales', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_sales':1, 'name_groupby':1}</field>
<field name="name">Sales</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_grouped_sales_purchases"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_journal_purchase" model="ir.actions.act_window">
<field name="context">{'journal_type':'purchase', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_purchases':1, 'name_groupby':1}</field>
<field name="name">Purchase</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_grouped_sales_purchases"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_journal_bank_cash" model="ir.actions.act_window">
<field name="context">{'journal_type':'bank', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_bank':1, 'search_default_cash':1, 'name_groupby':1}</field>
<field name="name">Bank and Cash</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_grouped_bank_cash"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_journal_misc" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_group_by_move': 1, 'group_by':'move_id', 'search_default_posted':1, 'search_default_misc_filter':1, 'name_groupby':1}</field>
<field name="name">Miscellaneous</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_grouped_misc"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_ledger_general" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_group_by_account': 1, 'group_by':'account_id', 'search_default_posted':1}</field>
<field name="name">General Ledger</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_grouped_general"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_ledger_partner" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_group_by_partner': 1, 'group_by':'partner_id', 'search_default_posted':1, 'search_default_payable':1, 'search_default_receivable':1, 'search_default_unreconciled':1}</field>
<field name="name">Partner Ledger</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_grouped_partner"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
@@ -465,6 +619,14 @@
<field name="view_id" ref="view_move_line_tree"/>
</record>
<record id="action_account_moves_all" model="ir.actions.act_window">
<field name="context">{'journal_type':'general', 'search_default_posted':1}</field>
<field name="name">Journal Items</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree"/>
<field name="view_mode">tree,pivot,graph,form,kanban</field>
</record>
<record id="action_move_line_graph" model="ir.actions.act_window">
<field name="name">Journal Items</field>
<field name="view_mode">graph,pivot</field>
@@ -522,15 +684,57 @@
<menuitem
id="menu_action_account_moves_all"
action="action_account_moves_all_a"
parent="account.menu_finance_entries_accounting_entries"
groups="group_account_manager"
action="action_account_moves_all"
parent="account.menu_finance_entries_accounting_miscellaneous"
groups="base.group_no_one"
sequence="10"/>
<menuitem
id="menu_action_move_journal_line_form"
action="action_move_journal_line"
parent="account.menu_finance_entries_accounting_entries"
parent="account.menu_finance_entries_accounting_miscellaneous"
groups="account.group_account_user"
sequence="1"/>
<menuitem
id="menu_action_account_moves_journal_sales"
action="action_account_moves_journal_sales"
parent="account.menu_finance_entries_accounting_journals"
groups="account.group_account_user"
sequence="1"/>
<menuitem
id="menu_action_account_moves_journal_purchase"
action="action_account_moves_journal_purchase"
parent="account.menu_finance_entries_accounting_journals"
groups="account.group_account_user"
sequence="1"/>
<menuitem
id="menu_action_account_moves_journal_bank_cash"
action="action_account_moves_journal_bank_cash"
parent="account.menu_finance_entries_accounting_journals"
groups="account.group_account_user"
sequence="1"/>
<menuitem
id="menu_action_account_moves_journal_misc"
action="action_account_moves_journal_misc"
parent="account.menu_finance_entries_accounting_journals"
groups="account.group_account_user"
sequence="1"/>
<menuitem
id="menu_action_account_moves_ledger_general"
action="action_account_moves_ledger_general"
parent="account.menu_finance_entries_accounting_ledgers"
groups="account.group_account_user"
sequence="1"/>
<menuitem
id="menu_action_account_moves_ledger_partner"
action="action_account_moves_ledger_partner"
parent="account.menu_finance_entries_accounting_ledgers"
groups="account.group_account_user"
sequence="1"/>