Better name field in account.move.line for move generated from customer invoice (WARNING : migration script included)

This commit is contained in:
Alexis de Lattre
2016-09-14 16:52:46 +02:00
parent 618ad6d6d6
commit 7def6a85e4
3 changed files with 32 additions and 1 deletions

View File

@@ -23,7 +23,7 @@
{
'name': 'Account Usability',
'version': '0.1',
'version': '0.2',
'category': 'Accounting & Finance',
'license': 'AGPL-3',
'summary': 'Small usability enhancements in account module',

View File

@@ -62,6 +62,23 @@ class AccountInvoice(models.Model):
res['value']['period_id'] = False
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 !
@api.multi
def action_number(self):
res = super(AccountInvoice, self).action_number()
for inv in self:
if inv.type in ('out_invoice', 'out_refund'):
self._cr.execute(
"UPDATE account_move_line SET name=%s WHERE "
"move_id=%s AND name='/'", (inv.number, inv.move_id.id))
self.invalidate_cache()
return res
class AccountFiscalYear(models.Model):
_inherit = 'account.fiscalyear'

View File

@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
def migrate(cr, version):
if not version:
return
# cf the inherit of action_number() of account.invoice
# in account_usability/account.py
cr.execute(
"UPDATE account_move_line SET name=ref WHERE name='/' "
"AND ref is not null AND journal_id in "
"(SELECT id FROM account_journal WHERE type in ('sale', 'sale_refund'))")