[IMP]GOLEM Member numbers now generated only after memberships

This commit is contained in:
Fabien BOURGEOIS 2018-07-20 12:02:53 +02:00
parent ad003e27f5
commit 25d2f6ac62
3 changed files with 23 additions and 14 deletions

View File

@ -20,7 +20,7 @@
'name': 'GOLEM non-profit members',
'summary': 'Extends Odoo contacts for MJC',
'description': 'Extends Odoo contacts for MJC',
'version': '10.0.2.0.0',
'version': '10.0.2.1.0',
'category': 'GOLEM',
'author': 'Fabien Bourgeois, Michel Dessenne',
'license': 'AGPL-3',

View File

@ -66,6 +66,19 @@ class ResPartner(models.Model):
gm_obj = self.env['golem.member']
gm_obj.create({'partner_id': self[0].id})
class GolemMembershipInvoice(models.TransientModel):
""" GOLEM Membership Invoice adaptations """
_inherit = 'golem.membership.invoice'
@api.multi
def membership_invoice(self):
""" Extend invoice generation with number generation """
self.ensure_one()
res = super(GolemMembershipInvoice, self).membership_invoice()
if self.partner_id.member_id:
self.partner_id.member_id.generate_number()
return res
class GolemMember(models.Model):
""" GOLEM Member model """
@ -210,7 +223,7 @@ class GolemMember(models.Model):
isauto = conf.get_param('golem_numberconfig_isautomatic') == '1'
isperseason = conf.get_param('golem_numberconfig_isperseason') == '1'
isfornew = conf.get_param('golem_numberconfig_isfornewmembersonly') == '1'
for member in self:
for member in self.filtered(lambda m: m.membership_state != 'none'):
if not isauto or (isfornew and member.number_manual):
member.number = member.number_manual
else:
@ -219,13 +232,6 @@ class GolemMember(models.Model):
else:
member.number = member.generate_number_global()
@api.model
def create(self, values):
""" Number generation after creation """
new_member = super(GolemMember, self).create(values)
new_member.generate_number()
return new_member
@api.multi
def write(self, values):
""" Number generation after updates """
@ -318,7 +324,10 @@ class GolemNumberConfig(models.TransientModel):
self.env['golem.season'].search([]).write({
'member_counter': int(self.number_from)
})
self.env['golem.member'].search([]).generate_number()
member_obj = self.env['golem.member']
member_obj.search([('membership_state', '=', 'none')]).write({'number': False})
member_obj.search([('membership_state', '!=', 'none')]).generate_number()
return {'type': 'ir.actions.client', 'tag': 'reload'}
class MergePartnerAutomatic(models.TransientModel):

View File

@ -68,10 +68,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<field name="lastname" required="True" />
<field name="firstname" required="True" />
<field name="number" readonly="True"
attrs="{'invisible': [('is_number_manual', '=', True)]}" />
attrs="{'invisible': ['|', ('membership_state', '=', 'none'), ('is_number_manual', '=', True)]}" />
<field name="number_manual"
attrs="{'invisible': [('is_number_manual', '=', False)],
'required': [('is_number_manual', '=', True)]}" />
attrs="{'invisible': ['|', ('membership_state', '=', 'none'), ('is_number_manual', '=', False)],
'required': [('is_number_manual', '=', True), ('membership_state', '!=', 'none')]}" />
</group>
<group>
<field name="gender" />
@ -210,7 +210,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<div class="oe_kanban_details">
<h4 class="oe_partner_heading">
<a type="open"><field name="display_name" /></a>
(N° <field name="number" />)
<t t-if="record.number.raw_value != ''">(N° <field name="number" />)</t>
</h4>
<div class="oe_kanban_partner_categories" />
<div class="oe_kanban_partner_links" />