mirror of
https://github.com/OCA/account-financial-tools.git
synced 2025-02-02 12:47:26 +02:00
[REF] PEP8 + removed emacs comments
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
@@ -20,6 +20,3 @@
|
||||
##############################################################################
|
||||
|
||||
import partner
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
@@ -23,23 +23,26 @@
|
||||
'name': 'French company identity numbers SIRET/SIREN/NIC',
|
||||
'version': '1.0',
|
||||
"category": 'Accounting',
|
||||
'description': """
|
||||
This module lets users keep track of the companies' unique
|
||||
identification numbers from the official SIRENE registry in France:
|
||||
SIRET, SIREN and NIC. These numbers identify each company and their
|
||||
subsidiaries, and are often required for administrative tasks.
|
||||
'description': '''
|
||||
This module add the French company identity numbers.
|
||||
====================================================
|
||||
|
||||
This can help any company doing business with French companies
|
||||
by letting users track the partners' unique identification
|
||||
numbers from the official SIRENE registry in France: SIRET, SIREN and NIC.
|
||||
These numbers identify each company and their subsidiaries, and are
|
||||
often required for administrative tasks.
|
||||
|
||||
At the top of the Partner form, users will be able to enter the SIREN
|
||||
and NIC numbers, and the SIRET number will be calculated
|
||||
automatically. The last digits of the SIREN and NIC are control keys:
|
||||
OpenERP will check their validity when partners are recorded.
|
||||
""",
|
||||
'author' : u'Numérigraphe SARL',
|
||||
''',
|
||||
'author': u'Numérigraphe SARL',
|
||||
'depends': ['account'],
|
||||
'data': ['partner_view.xml',
|
||||
],
|
||||
'data': [
|
||||
'partner_view.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
@@ -27,10 +27,13 @@ from openerp.osv import fields, orm
|
||||
def _check_luhn(string):
|
||||
"""Luhn test to check control keys
|
||||
|
||||
Credits: http://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers#Python
|
||||
Credits:
|
||||
http://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers#Python
|
||||
"""
|
||||
r = [int(ch) for ch in string][::-1]
|
||||
return (sum(r[0::2]) + sum(sum(divmod(d*2,10)) for d in r[1::2])) % 10 == 0
|
||||
return (sum(r[0::2]) + sum(sum(divmod(d * 2, 10))
|
||||
for d in r[1::2])) % 10 == 0
|
||||
|
||||
|
||||
class Partner(orm.Model):
|
||||
"""Add the French official company identity numbers SIREN, NIC and SIRET"""
|
||||
@@ -51,16 +54,17 @@ class Partner(orm.Model):
|
||||
for partner in self.browse(cr, uid, ids, context=None):
|
||||
if partner.nic:
|
||||
# Check the NIC type and length
|
||||
if not partner.nic.isdecimal() or len(partner.nic)!=5:
|
||||
if not partner.nic.isdecimal() or len(partner.nic) != 5:
|
||||
return False
|
||||
if partner.siren:
|
||||
# Check the SIREN type, length and key
|
||||
if (not partner.siren.isdecimal()
|
||||
or len(partner.siren)!=9
|
||||
or not _check_luhn(partner.siren) ):
|
||||
or len(partner.siren) != 9
|
||||
or not _check_luhn(partner.siren)):
|
||||
return False
|
||||
# Check the NIC key (you need both SIREN and NIC to check it)
|
||||
if partner.nic and not _check_luhn(partner.siren + partner.nic):
|
||||
if partner.nic and not _check_luhn(partner.siren
|
||||
+ partner.nic):
|
||||
return False
|
||||
return True
|
||||
|
||||
@@ -74,26 +78,24 @@ class Partner(orm.Model):
|
||||
"of this office in the company in France. It "
|
||||
"makes the last 5 digits of the SIRET "
|
||||
"number."),
|
||||
'siret': fields.function(_get_siret, type="char", string='SIRET',
|
||||
'siret': fields.function(
|
||||
_get_siret, type="char", string='SIRET',
|
||||
method=True, size=14,
|
||||
store = {
|
||||
store={
|
||||
'res.partner': [lambda self, cr, uid, ids, context=None: ids,
|
||||
['siren', 'nic'],
|
||||
10]},
|
||||
['siren', 'nic'], 10]},
|
||||
help="The SIRET number is the official identity number of this "
|
||||
"company's office in France. It is composed of the 9 digits "
|
||||
"of the SIREN number and the 5 digits of the NIC number, ie. "
|
||||
"14 digits."),
|
||||
'company_registry': fields.char('Company Registry', size=64,
|
||||
help="The name of official registry where this "
|
||||
"company was declared."),
|
||||
'company_registry': fields.char(
|
||||
'Company Registry', size=64,
|
||||
help="The name of official registry where this "
|
||||
"company was declared."),
|
||||
}
|
||||
|
||||
_constraints = [
|
||||
(_check_siret,
|
||||
"The SIREN or NIC number is incorrect.",
|
||||
["siren", "nic"]),
|
||||
(_check_siret,
|
||||
"The SIREN or NIC number is incorrect.",
|
||||
["siren", "nic"]),
|
||||
]
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
Reference in New Issue
Block a user