[MIG] account_usability to v16 + rename to account_usability_akretion
This commit is contained in:
@@ -1,59 +0,0 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import api, models
|
|
||||||
import logging
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class AccountAccount(models.Model):
|
|
||||||
_inherit = 'account.account'
|
|
||||||
|
|
||||||
@api.depends('name', 'code')
|
|
||||||
def name_get(self):
|
|
||||||
if self._context.get('account_account_show_code_only'):
|
|
||||||
res = []
|
|
||||||
for record in self:
|
|
||||||
res.append((record.id, record.code))
|
|
||||||
return res
|
|
||||||
else:
|
|
||||||
return super().name_get()
|
|
||||||
|
|
||||||
# https://github.com/odoo/odoo/issues/23040
|
|
||||||
# TODO mig to v14 ?
|
|
||||||
def fix_bank_account_types(self):
|
|
||||||
aao = self.env['account.account']
|
|
||||||
companies = self.env['res.company'].search([])
|
|
||||||
if len(companies) > 1:
|
|
||||||
self = self.sudo()
|
|
||||||
logger.info("START the script 'fix bank and cash account types'")
|
|
||||||
bank_type = self.env.ref('account.data_account_type_liquidity')
|
|
||||||
asset_type = self.env.ref('account.data_account_type_current_assets')
|
|
||||||
journals = self.env['account.journal'].search(
|
|
||||||
[('type', 'in', ('bank', 'cash'))], order='company_id')
|
|
||||||
journal_accounts_bank_type = aao
|
|
||||||
for journal in journals:
|
|
||||||
for account in [
|
|
||||||
journal.default_credit_account_id,
|
|
||||||
journal.default_debit_account_id]:
|
|
||||||
if account:
|
|
||||||
if account.user_type_id != bank_type:
|
|
||||||
account.user_type_id = bank_type.id
|
|
||||||
logger.info(
|
|
||||||
'Company %s: Account %s updated to Bank '
|
|
||||||
'and Cash type',
|
|
||||||
account.company_id.display_name, account.code)
|
|
||||||
if account not in journal_accounts_bank_type:
|
|
||||||
journal_accounts_bank_type += account
|
|
||||||
accounts = aao.search([
|
|
||||||
('user_type_id', '=', bank_type.id)], order='company_id, code')
|
|
||||||
for account in accounts:
|
|
||||||
if account not in journal_accounts_bank_type:
|
|
||||||
account.user_type_id = asset_type.id
|
|
||||||
logger.info(
|
|
||||||
'Company %s: Account %s updated to Current Asset type',
|
|
||||||
account.company_id.display_name, account.code)
|
|
||||||
logger.info("END of the script 'fix bank and cash account types'")
|
|
||||||
return True
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2015-2020 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
<record id="view_account_type_tree" model="ir.ui.view">
|
|
||||||
<field name="name">account_usability.account_type_tree</field>
|
|
||||||
<field name="model">account.account.type</field>
|
|
||||||
<field name="inherit_id" ref="account.view_account_type_tree" />
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="type" position="after">
|
|
||||||
<field name="include_initial_balance" optional="show"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2015-2021 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
|
|
||||||
<record id="view_account_analytic_account_list" model="ir.ui.view">
|
|
||||||
<field name="model">account.analytic.account</field>
|
|
||||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_list"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="code" position="after">
|
|
||||||
<field name="group_id" optional="show"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
<record id="view_account_analytic_account_search" model="ir.ui.view">
|
|
||||||
<field name="model">account.analytic.account</field>
|
|
||||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_search"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<filter name="associatedpartner" position="before">
|
|
||||||
<filter name="group_groupby" string="Group" context="{'group_by': 'group_id'}"/>
|
|
||||||
</filter>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2021 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
|
|
||||||
<record id="account_analytic_group_tree_view" model="ir.ui.view">
|
|
||||||
<field name="model">account.analytic.group</field>
|
|
||||||
<field name="inherit_id" ref="analytic.account_analytic_group_tree_view"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="name" position="after">
|
|
||||||
<field name="parent_id" optional="show"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2022 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
<record id="view_account_reconcile_model_form" model="ir.ui.view">
|
|
||||||
<field name="model">account.reconcile.model</field>
|
|
||||||
<field name="inherit_id" ref="account.view_account_reconcile_model_form" />
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<xpath expr="//field[@name='line_ids']/tree/field[@name='analytic_account_id']" position="attributes">
|
|
||||||
<attribute name="optional">show</attribute> <!-- native value: hide -->
|
|
||||||
</xpath>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2015-2020 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
<record id="res_config_settings_view_form" model="ir.ui.view">
|
|
||||||
<field name="name">account_usability account config page</field>
|
|
||||||
<field name="model">res.config.settings</field>
|
|
||||||
<field name="inherit_id" ref="account.res_config_settings_view_form"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<xpath expr="//div[@id='bank_cash']" position="inside">
|
|
||||||
<div class="col-xs-12 col-md-6 o_setting_box" id="transfer_account">
|
|
||||||
<div class="o_setting_left_pane"/>
|
|
||||||
<div class="o_setting_right_pane">
|
|
||||||
<label for="transfer_account_id"/>
|
|
||||||
<div class="text-muted">
|
|
||||||
Transit account when you transfer money from a bank account of your company to another bank account of your company.
|
|
||||||
</div>
|
|
||||||
<field name="transfer_account_id"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</xpath>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import fields, models
|
|
||||||
|
|
||||||
|
|
||||||
class ResConfigSettings(models.TransientModel):
|
|
||||||
_inherit = 'res.config.settings'
|
|
||||||
|
|
||||||
transfer_account_id = fields.Many2one(
|
|
||||||
related='company_id.transfer_account_id', readonly=False)
|
|
||||||
@@ -1,2 +1,3 @@
|
|||||||
from . import models
|
from . import models
|
||||||
from . import wizard
|
from . import wizard
|
||||||
|
from .hooks import post_init_hook
|
||||||
@@ -1,44 +1,39 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
{
|
{
|
||||||
'name': 'Account Usability',
|
'name': 'Account Usability',
|
||||||
'version': '14.0.1.0.0',
|
'version': '16.0.1.0.0',
|
||||||
'category': 'Accounting & Finance',
|
'category': 'Accounting & Finance',
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
'summary': 'Small usability enhancements in account module',
|
'summary': 'Small usability enhancements in account module',
|
||||||
'author': 'Akretion',
|
'author': 'Akretion',
|
||||||
'website': 'http://www.akretion.com',
|
'website': 'https://github.com/akretion/odoo-usability',
|
||||||
'depends': [
|
'depends': [
|
||||||
'account',
|
'account',
|
||||||
'base_usability', # needed only to access base_usability.group_nobody
|
'base_usability', # needed only to access base_usability.group_nobody
|
||||||
# in v12, I may create a module only for group_nobody
|
|
||||||
],
|
],
|
||||||
'data': [
|
'data': [
|
||||||
'views/account_account_type.xml',
|
|
||||||
'views/account_account.xml',
|
'views/account_account.xml',
|
||||||
'views/account_group.xml',
|
'views/account_group.xml',
|
||||||
'views/account_analytic_account.xml',
|
# 'views/account_bank_statement.xml',
|
||||||
'views/account_analytic_group.xml',
|
# 'views/account_invoice_report.xml',
|
||||||
'views/account_bank_statement.xml',
|
|
||||||
'views/account_invoice_report.xml',
|
|
||||||
'views/account_journal.xml',
|
'views/account_journal.xml',
|
||||||
'views/account_move.xml',
|
'views/account_move.xml',
|
||||||
'views/account_menu.xml',
|
'views/account_menu.xml',
|
||||||
'views/account_tax.xml',
|
'views/account_tax.xml',
|
||||||
'views/product.xml',
|
# 'views/product.xml', # TODO
|
||||||
'views/res_config_settings.xml',
|
|
||||||
'views/res_partner.xml',
|
'views/res_partner.xml',
|
||||||
'views/res_company.xml',
|
'views/res_company.xml',
|
||||||
'views/account_report.xml',
|
'views/account_report.xml',
|
||||||
'views/account_reconcile_model.xml',
|
|
||||||
'wizard/account_invoice_mark_sent_view.xml',
|
'wizard/account_invoice_mark_sent_view.xml',
|
||||||
'wizard/account_group_generate_view.xml',
|
'wizard/account_group_generate_view.xml',
|
||||||
'wizard/account_payment_register_views.xml',
|
'wizard/account_payment_register_views.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
'report/invoice_report.xml',
|
# 'report/invoice_report.xml', # TODO
|
||||||
],
|
],
|
||||||
'qweb': ['static/src/xml/account_payment.xml'],
|
# 'qweb': ['static/src/xml/account_payment.xml'],
|
||||||
'installable': False,
|
'installable': True,
|
||||||
|
# "post_init_hook": "post_init_hook",
|
||||||
}
|
}
|
||||||
9
account_usability_akretion/hooks.py
Normal file
9
account_usability_akretion/hooks.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Copyright 2022 Akretion (https://www.akretion.com).
|
||||||
|
# @author Sébastien BEAU <sebastien.beau@akretion.com>
|
||||||
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from odoo import SUPERUSER_ID, api
|
||||||
|
|
||||||
|
def post_init_hook(cr, registry):
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
env["account.move.line"].update_matching_number()
|
||||||
@@ -524,11 +524,6 @@ msgstr ""
|
|||||||
msgid "Recipient Bank"
|
msgid "Recipient Bank"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: account_usability
|
|
||||||
#: model:ir.model.fields,field_description:account_usability.field_account_move_line__reconcile_string
|
|
||||||
msgid "Reconcile"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. module: account_usability
|
#. module: account_usability
|
||||||
#: model:ir.model.fields,field_description:account_usability.field_account_bank_statement_line__ref
|
#: model:ir.model.fields,field_description:account_usability.field_account_bank_statement_line__ref
|
||||||
#: model:ir.model.fields,field_description:account_usability.field_account_move__ref
|
#: model:ir.model.fields,field_description:account_usability.field_account_move__ref
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Copyright 2020 ACSONE SA/NV
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from odoo import SUPERUSER_ID, api
|
||||||
|
|
||||||
|
|
||||||
|
def migrate(cr, version):
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
env["account.move.line"].update_matching_number()
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
from . import account_account
|
from . import account_account
|
||||||
from . import account_analytic_account
|
from . import account_analytic_account
|
||||||
from . import account_bank_statement
|
#from . import account_bank_statement
|
||||||
from . import account_incoterms
|
from . import account_incoterms
|
||||||
from . import account_journal
|
from . import account_journal
|
||||||
from . import account_move
|
from . import account_move
|
||||||
from . import account_partial_reconcile
|
from . import account_partial_reconcile
|
||||||
from . import res_partner
|
from . import res_partner
|
||||||
from . import res_company
|
from . import res_company
|
||||||
from . import product
|
#from . import product
|
||||||
from . import account_invoice_report
|
from . import account_invoice_report
|
||||||
19
account_usability_akretion/models/account_account.py
Normal file
19
account_usability_akretion/models/account_account.py
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from odoo import api, models
|
||||||
|
|
||||||
|
|
||||||
|
class AccountAccount(models.Model):
|
||||||
|
_inherit = 'account.account'
|
||||||
|
|
||||||
|
@api.depends('name', 'code')
|
||||||
|
def name_get(self):
|
||||||
|
if self._context.get('account_account_show_code_only'):
|
||||||
|
res = []
|
||||||
|
for record in self:
|
||||||
|
res.append((record.id, record.code))
|
||||||
|
return res
|
||||||
|
else:
|
||||||
|
return super().name_get()
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -8,6 +8,11 @@ from odoo import api, models
|
|||||||
class AccountIncoterms(models.Model):
|
class AccountIncoterms(models.Model):
|
||||||
_inherit = 'account.incoterms'
|
_inherit = 'account.incoterms'
|
||||||
|
|
||||||
|
_sql_constraints = [(
|
||||||
|
'code_unique',
|
||||||
|
'unique(code)',
|
||||||
|
'This incoterm code already exists.')]
|
||||||
|
|
||||||
@api.depends('code', 'name')
|
@api.depends('code', 'name')
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
res = []
|
res = []
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -19,14 +19,9 @@ class AccountJournal(models.Model):
|
|||||||
"(the 2 processes are managed separately)."
|
"(the 2 processes are managed separately)."
|
||||||
)
|
)
|
||||||
# Used to set default user_type_id on account fields via context
|
# Used to set default user_type_id on account fields via context
|
||||||
account_type_current_assets_id = fields.Many2one(
|
# account_type_current_assets_id = fields.Many2one(
|
||||||
'account.account.type',
|
# 'account.account.type',
|
||||||
default=lambda self: self.env.ref('account.data_account_type_current_assets').id)
|
# default=lambda self: self.env.ref('account.data_account_type_current_assets').id)
|
||||||
|
|
||||||
# SQL constraint in the 'account' module: unique(code, name, company_id) !!!
|
|
||||||
_sql_constraints = [(
|
|
||||||
'code_unique', 'unique(code, company_id)',
|
|
||||||
'Another journal already has this code in this company!')]
|
|
||||||
|
|
||||||
@api.depends(
|
@api.depends(
|
||||||
'name', 'currency_id', 'company_id', 'company_id.currency_id', 'code')
|
'name', 'currency_id', 'company_id', 'company_id.currency_id', 'code')
|
||||||
@@ -61,27 +56,3 @@ class AccountJournal(models.Model):
|
|||||||
'search_default_posted': True,
|
'search_default_posted': True,
|
||||||
}
|
}
|
||||||
return action
|
return action
|
||||||
|
|
||||||
# @api.constrains('default_credit_account_id', 'default_debit_account_id')
|
|
||||||
# def _check_account_type_on_bank_journal(self):
|
|
||||||
# bank_acc_type = self.env.ref('account.data_account_type_liquidity')
|
|
||||||
# for jrl in self:
|
|
||||||
# if jrl.type in ('bank', 'cash'):
|
|
||||||
# if (
|
|
||||||
# jrl.default_debit_account_id and
|
|
||||||
# jrl.default_debit_account_id.user_type_id !=
|
|
||||||
# bank_acc_type):
|
|
||||||
# raise ValidationError(_(
|
|
||||||
# "On journal '%s', the default debit account '%s' "
|
|
||||||
# "should be configured with Type = 'Bank and Cash'.")
|
|
||||||
# % (jrl.display_name,
|
|
||||||
# jrl.default_debit_account_id.display_name))
|
|
||||||
# if (
|
|
||||||
# jrl.default_credit_account_id and
|
|
||||||
# jrl.default_credit_account_id.user_type_id !=
|
|
||||||
# bank_acc_type):
|
|
||||||
# raise ValidationError(_(
|
|
||||||
# "On journal '%s', the default credit account '%s' "
|
|
||||||
# "should be configured with Type = 'Bank and Cash'.")
|
|
||||||
# % (jrl.display_name,
|
|
||||||
# jrl.default_credit_account_id.display_name))
|
|
||||||
@@ -1,13 +1,17 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from datetime import timedelta
|
||||||
|
import logging
|
||||||
|
|
||||||
from odoo import api, fields, models, _
|
from odoo import api, fields, models, _
|
||||||
|
from odoo.exceptions import UserError
|
||||||
|
from odoo.osv import expression
|
||||||
from odoo.tools import float_is_zero
|
from odoo.tools import float_is_zero
|
||||||
from odoo.tools.misc import format_date
|
from odoo.tools.misc import format_date
|
||||||
from odoo.osv import expression
|
|
||||||
from datetime import timedelta
|
_logger = logging.getLogger(__name__)
|
||||||
from odoo.exceptions import UserError
|
|
||||||
|
|
||||||
|
|
||||||
class AccountMove(models.Model):
|
class AccountMove(models.Model):
|
||||||
@@ -16,24 +20,20 @@ class AccountMove(models.Model):
|
|||||||
# By default, we can still modify "ref" when account move is posted
|
# By default, we can still modify "ref" when account move is posted
|
||||||
# which seems a bit lazy for me...
|
# which seems a bit lazy for me...
|
||||||
ref = fields.Char(states={'posted': [('readonly', True)]})
|
ref = fields.Char(states={'posted': [('readonly', True)]})
|
||||||
date = fields.Date(tracking=True)
|
|
||||||
invoice_date_due = fields.Date(tracking=True)
|
invoice_date_due = fields.Date(tracking=True)
|
||||||
invoice_payment_term_id = fields.Many2one(tracking=True)
|
invoice_payment_term_id = fields.Many2one(tracking=True)
|
||||||
journal_id = fields.Many2one(tracking=True)
|
journal_id = fields.Many2one(tracking=True)
|
||||||
partner_bank_id = fields.Many2one(tracking=True)
|
|
||||||
fiscal_position_id = fields.Many2one(tracking=True)
|
fiscal_position_id = fields.Many2one(tracking=True)
|
||||||
amount_total = fields.Monetary(tracking=True)
|
amount_total = fields.Monetary(tracking=True)
|
||||||
# for invoice report
|
# for invoice report
|
||||||
has_discount = fields.Boolean(
|
has_discount = fields.Boolean(compute='_compute_has_discount')
|
||||||
compute='_compute_has_discount', readonly=True)
|
|
||||||
# has_attachment is useful for those who use attachment to archive
|
# has_attachment is useful for those who use attachment to archive
|
||||||
# supplier invoices. It allows them to find supplier invoices
|
# supplier invoices. It allows them to find supplier invoices
|
||||||
# that don't have any attachment
|
# that don't have any attachment
|
||||||
has_attachment = fields.Boolean(
|
has_attachment = fields.Boolean(
|
||||||
compute='_compute_has_attachment',
|
compute='_compute_has_attachment', search='_search_has_attachment')
|
||||||
search='_search_has_attachment', readonly=True)
|
|
||||||
sale_dates = fields.Char(
|
sale_dates = fields.Char(
|
||||||
compute="_compute_sales_dates", readonly=True,
|
compute="_compute_sales_dates",
|
||||||
help="This information appear on invoice qweb report "
|
help="This information appear on invoice qweb report "
|
||||||
"(you may use it for your own report)")
|
"(you may use it for your own report)")
|
||||||
|
|
||||||
@@ -90,24 +90,6 @@ class AccountMove(models.Model):
|
|||||||
res.append((old_re[0], name))
|
res.append((old_re[0], name))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
# I really hate to see a "/" in the 'name' field of the account.move.line
|
|
||||||
# generated from customer invoices linked to the partners' account because:
|
|
||||||
# 1) the label of an account move line is an important field, we can't
|
|
||||||
# write a rubbish '/' in it !
|
|
||||||
# 2) the 'name' field of the account.move.line is used in the overdue
|
|
||||||
# letter, and '/' is not meaningful for our customer !
|
|
||||||
# TODO mig to v12
|
|
||||||
# def action_move_create(self):
|
|
||||||
# res = super().action_move_create()
|
|
||||||
# for inv in self:
|
|
||||||
# self._cr.execute(
|
|
||||||
# "UPDATE account_move_line SET name= "
|
|
||||||
# "CASE WHEN name='/' THEN %s "
|
|
||||||
# "ELSE %s||' - '||name END "
|
|
||||||
# "WHERE move_id=%s", (inv.number, inv.number, inv.move_id.id))
|
|
||||||
# self.invalidate_cache()
|
|
||||||
# return res
|
|
||||||
|
|
||||||
def delete_lines_qty_zero(self):
|
def delete_lines_qty_zero(self):
|
||||||
lines = self.env['account.move.line'].search([
|
lines = self.env['account.move.line'].search([
|
||||||
('display_type', '=', False),
|
('display_type', '=', False),
|
||||||
@@ -217,7 +199,7 @@ class AccountMove(models.Model):
|
|||||||
if self.is_purchase_document(include_receipts=True):
|
if self.is_purchase_document(include_receipts=True):
|
||||||
tax_lock_date = self.company_id.tax_lock_date
|
tax_lock_date = self.company_id.tax_lock_date
|
||||||
if invoice_date and tax_lock_date and has_tax and invoice_date <= tax_lock_date:
|
if invoice_date and tax_lock_date and has_tax and invoice_date <= tax_lock_date:
|
||||||
invoice_date = tax_lock_date + timedelta(days=1)
|
invoice_date = tax_lock_date + timedelta(days=1)
|
||||||
date = invoice_date
|
date = invoice_date
|
||||||
return date
|
return date
|
||||||
|
|
||||||
@@ -238,8 +220,6 @@ class AccountMoveLine(models.Model):
|
|||||||
full_reconcile_id = fields.Many2one(string='Full Reconcile')
|
full_reconcile_id = fields.Many2one(string='Full Reconcile')
|
||||||
matched_debit_ids = fields.One2many(string='Partial Reconcile Debit')
|
matched_debit_ids = fields.One2many(string='Partial Reconcile Debit')
|
||||||
matched_credit_ids = fields.One2many(string='Partial Reconcile Credit')
|
matched_credit_ids = fields.One2many(string='Partial Reconcile Credit')
|
||||||
reconcile_string = fields.Char(
|
|
||||||
compute='_compute_reconcile_string', string='Reconcile', store=True)
|
|
||||||
# for optional display in tree view
|
# for optional display in tree view
|
||||||
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||||
|
|
||||||
@@ -255,18 +235,23 @@ class AccountMoveLine(models.Model):
|
|||||||
})
|
})
|
||||||
return action
|
return action
|
||||||
|
|
||||||
@api.depends(
|
def update_matching_number(self):
|
||||||
'full_reconcile_id', 'matched_debit_ids', 'matched_credit_ids')
|
records = self.search([("matching_number", "=", "P")])
|
||||||
def _compute_reconcile_string(self):
|
_logger.info(f"Update partial reconcile number for {len(records)} lines")
|
||||||
for line in self:
|
records._compute_matching_number()
|
||||||
rec_str = False
|
|
||||||
if line.full_reconcile_id:
|
|
||||||
rec_str = line.full_reconcile_id.name
|
|
||||||
else:
|
|
||||||
rec_str = ', '.join([
|
|
||||||
'a%d' % pr.id for pr in line.matched_debit_ids + line.matched_credit_ids])
|
|
||||||
line.reconcile_string = rec_str
|
|
||||||
|
|
||||||
|
# def _compute_matching_number(self):
|
||||||
|
# TODO maybe it will be better to have the same maching_number for
|
||||||
|
# all partial so it will be easier to group by
|
||||||
|
# super()._compute_matching_number()
|
||||||
|
# for record in self:
|
||||||
|
# if record.matching_number == "P":
|
||||||
|
# record.matching_number = ", ".join([
|
||||||
|
# "a%d" % pr.id
|
||||||
|
# for pr in record.matched_debit_ids + record.matched_credit_ids
|
||||||
|
# ])
|
||||||
|
|
||||||
|
# TODO
|
||||||
def _get_computed_name(self):
|
def _get_computed_name(self):
|
||||||
# This is useful when you want to have the product code in a dedicated
|
# This is useful when you want to have the product code in a dedicated
|
||||||
# column in your customer invoice report
|
# column in your customer invoice report
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2017-2020 Akretion France (https://akretion.com/)
|
# Copyright 2017-2022 Akretion France (https://akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2015-2021 Akretion France (http://www.akretion.com/)
|
Copyright 2015-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -14,11 +14,11 @@
|
|||||||
<field name="inherit_id" ref="account.view_account_form"/>
|
<field name="inherit_id" ref="account.view_account_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="deprecated" position="before">
|
<field name="deprecated" position="before">
|
||||||
<field name="reconcile" attrs="{'invisible': ['|', ('internal_type','=','liquidity'), ('internal_group', '=', 'off_balance')]}"/>
|
<field name="reconcile" attrs="{'invisible': ['|', ('account_type', 'in', ('asset_cash', 'liability_credit_card')), ('internal_group', '=', 'off_balance')]}" widget="boolean_toggle"/>
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
||||||
<record id="view_account_search" model="ir.ui.view">
|
<record id="view_account_search" model="ir.ui.view">
|
||||||
<field name="name">account.account.search</field>
|
<field name="name">account.account.search</field>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2021 Akretion France (http://www.akretion.com/)
|
Copyright 2021-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2015-2020 Akretion France (http://www.akretion.com/)
|
Copyright 2015-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -14,8 +14,9 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="bank_statements_source" position="after">
|
<field name="bank_statements_source" position="after">
|
||||||
<field name="hide_bank_statement_balance" groups="account.group_account_readonly"/>
|
<field name="hide_bank_statement_balance" groups="account.group_account_readonly"/>
|
||||||
<field name="account_type_current_assets_id" invisible="1"/>
|
<!-- <field name="account_type_current_assets_id" invisible="1"/> -->
|
||||||
</field>
|
</field>
|
||||||
|
<!--
|
||||||
<field name="suspense_account_id" position="attributes">
|
<field name="suspense_account_id" position="attributes">
|
||||||
<attribute name="context">{'default_user_type_id': account_type_current_assets_id, 'default_reconcile': False}</attribute>
|
<attribute name="context">{'default_user_type_id': account_type_current_assets_id, 'default_reconcile': False}</attribute>
|
||||||
</field>
|
</field>
|
||||||
@@ -24,10 +25,11 @@
|
|||||||
</field>
|
</field>
|
||||||
<field name="payment_credit_account_id" position="attributes">
|
<field name="payment_credit_account_id" position="attributes">
|
||||||
<attribute name="context">{'default_user_type_id': account_type_current_assets_id, 'default_reconcile': True}</attribute>
|
<attribute name="context">{'default_user_type_id': account_type_current_assets_id, 'default_reconcile': True}</attribute>
|
||||||
</field>
|
</field> -->
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!-- TODO
|
||||||
<record id="account_journal_dashboard_kanban_view" model="ir.ui.view">
|
<record id="account_journal_dashboard_kanban_view" model="ir.ui.view">
|
||||||
<field name="name">usability.account.journal.dashboard</field>
|
<field name="name">usability.account.journal.dashboard</field>
|
||||||
<field name="model">account.journal</field>
|
<field name="model">account.journal</field>
|
||||||
@@ -44,17 +46,7 @@
|
|||||||
</t>
|
</t>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
-->
|
||||||
<record id="view_account_journal_tree" model="ir.ui.view">
|
|
||||||
<field name="name">usability.account.journal.tree</field>
|
|
||||||
<field name="model">account.journal</field>
|
|
||||||
<field name="inherit_id" ref="account.view_account_journal_tree"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="name" position="after">
|
|
||||||
<field name="code" optional="show"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="view_account_journal_search" model="ir.ui.view">
|
<record id="view_account_journal_search" model="ir.ui.view">
|
||||||
<field name="name">usability.account.journal.search</field>
|
<field name="name">usability.account.journal.search</field>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2015-2020 Akretion France (http://www.akretion.com/)
|
Copyright 2015-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -13,9 +13,4 @@ under "Accounting > Configuration", because most users will try to find it there
|
|||||||
|
|
||||||
<menuitem id="res_partner_bank_account_config_menu" action="base.action_res_partner_bank_account_form" parent="account.account_banks_menu" sequence="20"/>
|
<menuitem id="res_partner_bank_account_config_menu" action="base.action_res_partner_bank_account_form" parent="account.account_banks_menu" sequence="20"/>
|
||||||
|
|
||||||
<record id="account.menu_finance" model="ir.ui.menu">
|
|
||||||
<!-- Replace "Invoicing" by "Accounting" -->
|
|
||||||
<field name="name">Accounting</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2015-2020 Akretion France (http://www.akretion.com/)
|
Copyright 2015-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -12,20 +12,22 @@
|
|||||||
<field name="model">account.move</field>
|
<field name="model">account.move</field>
|
||||||
<field name="inherit_id" ref="account.view_move_form"/>
|
<field name="inherit_id" ref="account.view_move_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
<!--
|
||||||
<field name="fiscal_position_id" position="attributes">
|
<field name="fiscal_position_id" position="attributes">
|
||||||
<attribute name="widget">selection</attribute>
|
<attribute name="widget">selection</attribute>
|
||||||
</field>
|
</field>
|
||||||
<field name="invoice_incoterm_id" position="attributes">
|
<field name="invoice_incoterm_id" position="attributes">
|
||||||
<attribute name="widget">selection</attribute>
|
<attribute name="widget">selection</attribute>
|
||||||
</field>
|
</field> -->
|
||||||
<button name="action_register_payment" position="attributes">
|
<button id="account_invoice_payment_btn" position="attributes">
|
||||||
<attribute name="class">btn-default</attribute>
|
<attribute name="class">btn-default</attribute>
|
||||||
</button>
|
</button>
|
||||||
<button name="action_register_payment" position="before">
|
<button name="action_register_payment" position="before">
|
||||||
<button name="%(account.account_invoices)d" type="action" string="Print" attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'out_refund'))]}"/>
|
<button name="%(account.account_invoices)d" type="action" string="Print" attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'out_refund'))]}"/>
|
||||||
</button>
|
</button>
|
||||||
<button name="preview_invoice" position="attributes">
|
<button name="preview_invoice" position="attributes">
|
||||||
<attribute name="attrs">{'invisible': 1}</attribute>
|
<attribute name="attrs">{}</attribute>
|
||||||
|
<attribute name="invisible">1</attribute>
|
||||||
</button>
|
</button>
|
||||||
<!-- move sent field and make it visible -->
|
<!-- move sent field and make it visible -->
|
||||||
<field name="is_move_sent" position="replace"/>
|
<field name="is_move_sent" position="replace"/>
|
||||||
@@ -35,15 +37,8 @@
|
|||||||
<field name="invoice_origin" position="after">
|
<field name="invoice_origin" position="after">
|
||||||
<field name="is_move_sent" attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'out_refund'))]}"/>
|
<field name="is_move_sent" attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'out_refund'))]}"/>
|
||||||
</field>
|
</field>
|
||||||
<xpath expr="//field[@name='line_ids']/tree/field[@name='analytic_account_id']" position="attributes">
|
|
||||||
<attribute name="optional">show</attribute>
|
|
||||||
</xpath>
|
|
||||||
<xpath expr="//field[@name='line_ids']/tree/field[@name='currency_id']" position="attributes">
|
|
||||||
<attribute name="optional">show</attribute>
|
|
||||||
</xpath>
|
|
||||||
<xpath expr="//field[@name='line_ids']/tree/field[@name='tax_tag_ids']" position="after">
|
<xpath expr="//field[@name='line_ids']/tree/field[@name='tax_tag_ids']" position="after">
|
||||||
<field name="matching_number" optional="hide"/>
|
<field name="matching_number" optional="show"/>
|
||||||
<field name="reconcile_string" optional="show"/>
|
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='product_id']" position="after">
|
<xpath expr="//field[@name='invoice_line_ids']/tree/field[@name='product_id']" position="after">
|
||||||
<field name="product_barcode" optional="hide"/>
|
<field name="product_barcode" optional="hide"/>
|
||||||
@@ -86,12 +81,13 @@
|
|||||||
<field name="model">account.move.line</field>
|
<field name="model">account.move.line</field>
|
||||||
<field name="inherit_id" ref="account.view_move_line_tree"/>
|
<field name="inherit_id" ref="account.view_move_line_tree"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="matching_number" position="after">
|
<field name="analytic_distribution" position="after">
|
||||||
<button title="View Journal Entry Form" type="object" name="show_account_move_form" icon="fa-arrow-right"/>
|
<button title="View Journal Entry Form" type="object" name="show_account_move_form" icon="fa-arrow-right"/>
|
||||||
</field>
|
</field>
|
||||||
|
<!-- balance is already present
|
||||||
<field name="credit" position="after">
|
<field name="credit" position="after">
|
||||||
<field name="balance" sum="Balance" optional="show"/>
|
<field name="balance" sum="Balance" optional="show"/>
|
||||||
</field>
|
</field> -->
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -100,13 +96,8 @@
|
|||||||
<field name="model">account.move.line</field>
|
<field name="model">account.move.line</field>
|
||||||
<field name="inherit_id" ref="account.view_account_move_line_filter"/>
|
<field name="inherit_id" ref="account.view_account_move_line_filter"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<filter name="unposted" position="before">
|
|
||||||
<filter name="current_year" string="Current Year" domain="[('date', '>=', (context_today().strftime('%Y-01-01'))), ('date', '<=', (context_today().strftime('%Y-12-31')))]"/>
|
|
||||||
<filter name="previous_year" string="Previous Year" domain="[('date', '>=', (context_today() + relativedelta(day=1, month=1, years=-1)).strftime('%Y-%m-%d')), ('date', '<=', (context_today() + relativedelta(day=31, month=12, years=-1)).strftime('%Y-%m-%d'))]"/>
|
|
||||||
<separator/>
|
|
||||||
</filter>
|
|
||||||
<field name="partner_id" position="after">
|
<field name="partner_id" position="after">
|
||||||
<field name="reconcile_string" />
|
<field name="matching_number" />
|
||||||
<field name="debit" filter_domain="['|', ('debit', '=', self), ('credit', '=', self)]" string="Debit or Credit"/>
|
<field name="debit" filter_domain="['|', ('debit', '=', self), ('credit', '=', self)]" string="Debit or Credit"/>
|
||||||
</field>
|
</field>
|
||||||
<filter name="unreconciled" position="before">
|
<filter name="unreconciled" position="before">
|
||||||
@@ -118,15 +109,14 @@
|
|||||||
<field name="name" position="attributes">
|
<field name="name" position="attributes">
|
||||||
<attribute name="string">Label, Reference, Account or Partner</attribute>
|
<attribute name="string">Label, Reference, Account or Partner</attribute>
|
||||||
</field>
|
</field>
|
||||||
|
<field name="name" position="before">
|
||||||
|
<field name="move_id" position="move"/>
|
||||||
|
</field>
|
||||||
<field name="partner_id" position="attributes">
|
<field name="partner_id" position="attributes">
|
||||||
<attribute name="domain">['|', ('parent_id', '=', False), ('is_company', '=', True)]</attribute>
|
<attribute name="domain">['|', ('parent_id', '=', False), ('is_company', '=', True)]</attribute>
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="account.action_move_journal_line" model="ir.actions.act_window">
|
|
||||||
<field name="context">{'default_move_type': 'entry', 'view_no_maturity': True}</field>
|
|
||||||
<!-- Remove 'search_default_misc_filter': 1 -->
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2018-2020 Akretion (http://www.akretion.com/)
|
Copyright 2018-2022 Akretion (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2015-2020 Akretion France (http://www.akretion.com/)
|
Copyright 2015-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<field name="model">account.tax</field>
|
<field name="model">account.tax</field>
|
||||||
<field name="inherit_id" ref="account.view_tax_tree"/>
|
<field name="inherit_id" ref="account.view_tax_tree"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="description" position="after">
|
<field name="type_tax_use" position="after">
|
||||||
<field name="price_include" optional="show"/>
|
<field name="price_include" optional="show"/>
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2017-2020 Akretion (http://www.akretion.com/)
|
Copyright 2017-2022 Akretion (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2021 Akretion (http://www.akretion.com/)
|
Copyright 2021-2022 Akretion (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2017-2020 Akretion (http://www.akretion.com/)
|
Copyright 2017-2022 Akretion (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<field name="inherit_id" ref="account.view_partner_property_form"/>
|
<field name="inherit_id" ref="account.view_partner_property_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//field[@name='bank_ids']/tree/field[@name='acc_number']" position="after">
|
<xpath expr="//field[@name='bank_ids']/tree/field[@name='acc_number']" position="after">
|
||||||
<field name="acc_type"/>
|
<field name="acc_type" optional="show"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
from . import account_invoice_mark_sent
|
from . import account_invoice_mark_sent
|
||||||
from . import account_move_reversal
|
from . import account_move_reversal
|
||||||
from . import res_config_settings
|
|
||||||
from . import account_group_generate
|
from . import account_group_generate
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
# Copyright 2015-2022 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2020 Akretion France (http://www.akretion.com/)
|
Copyright 2020-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2017-2020 Akretion France (https://akretion.com/en)
|
# Copyright 2017-2022 Akretion France (https://akretion.com/en)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2017-2020 Akretion France
|
Copyright 2017-2022 Akretion France
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2018-2020 Akretion France (https://akretion.com/)
|
# Copyright 2018-2022 Akretion France (https://akretion.com/)
|
||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2021 Akretion France (http://www.akretion.com/)
|
Copyright 2021-2022 Akretion France (http://www.akretion.com/)
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
@@ -14,10 +14,9 @@ So, in the view, the date should be BEFORE the amount -->
|
|||||||
<field name="inherit_id" ref="account.view_account_payment_register_form"/>
|
<field name="inherit_id" ref="account.view_account_payment_register_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<label for="amount" position="before">
|
<label for="amount" position="before">
|
||||||
<field name="payment_date" position="move"/>
|
<field name="payment_date" position="move"/>
|
||||||
</label>
|
</label>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
Reference in New Issue
Block a user