diff --git a/account_invoice_reference/__init__.py b/account_invoice_reference/__init__.py
new file mode 100644
index 00000000..ce74e081
--- /dev/null
+++ b/account_invoice_reference/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author: Guewen Baconnier
+# Copyright 2014 Camptocamp SA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from . import account_move
diff --git a/account_invoice_reference/__openerp__.py b/account_invoice_reference/__openerp__.py
new file mode 100644
index 00000000..a7fc1115
--- /dev/null
+++ b/account_invoice_reference/__openerp__.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author: Guewen Baconnier
+# Copyright 2014 Camptocamp SA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{'name' : 'Invoices Reference',
+ 'version' : '1.0',
+ 'author' : 'Camptocamp',
+ 'maintainer': 'Camptocamp',
+ 'license': 'AGPL-3',
+ 'category': 'category',
+ 'complexity': "easy",
+ 'depends' : ['account',
+ ],
+ 'description': """
+Invoices Reference
+==================
+
+Aims to simplify the "references" things on the invoices.
+There is too many fields on the invoices. And it is very difficult
+to remember which field goes in which field of the Journal Entries.
+
+It particularly fits with other modules of the bank-statement-reconcile series
+as account_advanced_reconcile_transaction_ref.
+
+Use cases
+---------
+
+Customer invoices
+ Journal Entry Reference is the Origin of the invoice if there,
+ otherwise, it is the Number of the invoice.
+
+Supplier invoices
+ Journal Entry Reference is the Supplier Invoice Number of the invoice
+ which is now mandatory.
+
+ """,
+ 'website': 'http://www.camptocamp.com',
+ 'data': ['account_invoice_view.xml',
+ ],
+ 'tests': [],
+ 'installable': True,
+ 'auto_install': False,
+}
diff --git a/account_invoice_reference/account_invoice_view.xml b/account_invoice_reference/account_invoice_view.xml
new file mode 100644
index 00000000..1c9cfdde
--- /dev/null
+++ b/account_invoice_reference/account_invoice_view.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ account.invoice.supplier.form
+ account.invoice
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ {'invisible': [('reference_type', '=', 'none')]}
+
+
+
+
+
diff --git a/account_invoice_reference/account_move.py b/account_invoice_reference/account_move.py
new file mode 100644
index 00000000..5d3ef4c6
--- /dev/null
+++ b/account_invoice_reference/account_move.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author: Guewen Baconnier
+# Copyright 2014 Camptocamp SA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import orm, fields
+
+
+class account_move(orm.Model):
+ _inherit = 'account.move'
+
+ def _ref_from_invoice(self, cr, uid, invoice, context=None):
+ if invoice.type == 'out_invoice':
+ return invoice.origin or invoice.name
+ elif invoice.type == 'in_invoice':
+ # the supplier invoice number is now mandatory, but
+ # if historical invoices should not have one, we fallback
+ # to the name of the invoice
+ return invoice.supplier_invoice_number or invoice.name
+
+ def create(self, cr, uid, vals, context=None):
+ if context is None:
+ context = {}
+ # invoice from which the move is generated
+ invoice = context.get('invoice')
+ if invoice:
+ assert isinstance(invoice, orm.browse_record)
+ ref = self._ref_from_invoice(cr, uid, invoice, context=context)
+ if ref:
+ vals = vals.copy()
+ vals['ref'] = ref
+ move_id = super(account_move, self).\
+ create(cr, uid, vals, context=context)
+ return move_id