Browse Source

[MIG] base_partner_sequence: from lp:openobject-addons/extra-trunk to OpenERP v7.0

* Conventions
* implement 'copy' method, fix translation
* change the scope of sequences to customers and suppliers
pull/668/head
Thomas Rehn 11 years ago
committed by Quentin Groulard
parent
commit
6e64f56b81
  1. 22
      base_partner_sequence/__init__.py
  2. 45
      base_partner_sequence/__openerp__.py
  3. 21
      base_partner_sequence/i18n/base_partner_sequence.pot
  4. 21
      base_partner_sequence/i18n/de.po
  5. 66
      base_partner_sequence/partner.py
  6. 21
      base_partner_sequence/partner_sequence.xml

22
base_partner_sequence/__init__.py

@ -0,0 +1,22 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import partner
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

45
base_partner_sequence/__openerp__.py

@ -0,0 +1,45 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2013 initOS GmbH & Co. KG (<http://www.initos.com>).
# Author Thomas Rehn <thomas.rehn at initos.com>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name": "Add a sequence on customers' code",
"version": "1.1",
"author": "initOS GmbH & Co. KG",
"category": "Generic Modules/Base",
"website": "http://www.initos.com",
"depends": ["base"],
"summary": "Sets customer's code from a sequence",
"description": """
This module adds the possibility to define a sequence for
the partner code. This code is then set as default when you
create a new customer or supplier, using the defined sequence.
No codes are assigned for contacts such as shipping and
invoice addresses.
This module is a migration of the original base_partner_sequence
addon to OpenERP version 7.0.
""",
"data": ['partner_sequence.xml'],
"demo": [],
"active": False,
"installable": True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

21
base_partner_sequence/i18n/base_partner_sequence.pot

@ -0,0 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0-20131013-231025\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 13:47+0000\n"
"PO-Revision-Date: 2013-11-13 13:47+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: base_partner_sequence
#: model:ir.model,name:base_partner_sequence.model_res_partner
msgid "Partner"
msgstr ""

21
base_partner_sequence/i18n/de.po

@ -0,0 +1,21 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0-20131013-231025\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-13 13:47+0000\n"
"PO-Revision-Date: 2013-11-13 13:47+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: base_partner_sequence
#: model:ir.model,name:base_partner_sequence.model_res_partner
msgid "Partner"
msgstr "Partner"

66
base_partner_sequence/partner.py

@ -0,0 +1,66 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2013 initOS GmbH & Co. KG (<http://www.initos.com>).
# Author Thomas Rehn <thomas.rehn at initos.com>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm, fields
class ResPartner(orm.Model):
"""Assigns 'ref' from a sequence on creation and copying"""
_inherit = 'res.partner'
def create(self, cr, uid, vals, context=None):
context = context or {}
if not vals.get('ref') and self._needsRef(cr, uid, vals=vals, context=context):
vals['ref'] = self.pool.get('ir.sequence').get(cr, uid, 'res.partner')
return super(ResPartner, self).create(cr, uid, vals, context)
def copy(self, cr, uid, id, default=None, context=None):
default = default or {}
if not default.get('ref') and self._needsRef(cr, uid, id=id, context=context):
default['ref'] = self.pool.get('ir.sequence').get(cr, uid, 'res.partner', context=context)
return super(ResPartner, self).copy(cr, uid, id, default, context=context)
def _needsRef(self, cr, uid, id=None, vals=None, context=None):
"""
Checks whether a sequence value should be assigned to a partner's 'ref'
:param cr: database cursor
:param uid: current user id
:param id: id of the partner object
:param vals: known field values of the partner object
:return: true iff a sequence value should be assigned to the partner's 'ref'
"""
if not vals and not id:
raise Exception('Either field values or an id must be provided.')
# only assign a 'ref' if it is a customer or supplier and
# if it not a child object (such as a shipping/invoice address)
if id:
vals = self.read(cr, uid, id, ['parent_id', 'customer', 'supplier'], context=context)
return not vals.get('parent_id') and (vals.get('customer') or vals.get('supplier'))
_columns = {
'ref': fields.char('Reference', size=64, readonly=True),
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

21
base_partner_sequence/partner_sequence.xml

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
#
# Sequences for res.partner
#
<record model="ir.sequence.type" id="seq_type_res_partner">
<field name="name">Partner code</field>
<field name="code">res.partner</field>
</record>
<record model="ir.sequence" id="seq_res_partner">
<field name="name">Partner code</field>
<field name="code">res.partner</field>
<field name="prefix">P/</field>
<field name="padding">5</field>
</record>
</data>
</openerp>
Loading…
Cancel
Save