[IMP] l10n_no: generate payment reference called KID

the KID number is base on invoice and payment

the KID number control digit is calculated from the MOD10 (luan)

the last digit in the KID number is a control digit.

task-1969040

closes #33779

Signed-off-by: Josse Colpaert <jco@openerp.com>
This commit is contained in:
Hardik Prajapati
2019-07-29 12:44:12 +00:00
committed by Ravi Gohil
parent 81c7afb833
commit 22223e144a
4 changed files with 46 additions and 0 deletions
+2
View File
@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
def _preserve_tag_on_taxes(cr, registry):
from odoo.addons.account.models.chart_template import preserve_existing_tags_on_taxes
+5
View File
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import account_journal
from . import account_move
+10
View File
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class AccountJournal(models.Model):
_inherit = 'account.journal'
invoice_reference_model = fields.Selection(selection_add=[('no', 'Norway')])
+29
View File
@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
from stdnum import luhn
class AccountMove(models.Model):
_inherit = "account.move"
def _get_invoice_reference_no_invoice(self):
""" This computes the reference based on the Odoo format.
We calculat reference using invoice number and
partner id and added control digit at last.
"""
return self._get_kid_number()
def _get_invoice_reference_no_partner(self):
""" This computes the reference based on the Odoo format.
We calculat reference using invoice number and
partner id and added control digit at last.
"""
return self._get_kid_number()
def _get_kid_number(self):
self.ensure_one()
invoice_name = ''.join([i for i in self.name if i.isdigit()]).zfill(7)
ref = (str(self.partner_id.id).zfill(7)[-7:] + invoice_name[-7:])
return ref + luhn.calc_check_digit(ref)