From 94cc4f565d3dfd60c21ea3cd997c4d4f1404520e Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 18 Nov 2020 15:18:11 +0100 Subject: [PATCH 1/2] [IMP] retrieve existing partner during share subscription. --- easy_my_coop/models/coop.py | 13 +++++-------- easy_my_coop/models/partner.py | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/easy_my_coop/models/coop.py b/easy_my_coop/models/coop.py index 5337099..05580d6 100644 --- a/easy_my_coop/models/coop.py +++ b/easy_my_coop/models/coop.py @@ -48,18 +48,12 @@ class subscription_request(models.Model): cooperator = partner_obj.get_cooperator_from_email( vals.get('email')) if cooperator: - # TODO remove the following line of code once it has - # been found a way to avoid double entry - cooperator = cooperator[0] if cooperator.member: vals['type'] = 'increase' vals['already_cooperator'] = True else: vals['type'] = 'subscription' vals['partner_id'] = cooperator.id - - if not cooperator.cooperator: - cooperator.write({'cooperator': True}) else: cooperator_id = vals.get('partner_id') cooperator = partner_obj.browse(cooperator_id) @@ -80,9 +74,12 @@ class subscription_request(models.Model): if not vals.get('partner_id'): cooperator = self.env['res.partner'].get_cooperator_from_crn(vals.get('company_register_number')) if cooperator: + if cooperator.member: + vals['type'] = 'increase' + vals['already_cooperator'] = True + else: + vals['type'] = 'subscription' vals['partner_id'] = cooperator.id - vals['type'] = 'increase' - vals['already_cooperator'] = True subscr_request = super(subscription_request, self).create(vals) confirmation_mail_template = self.env.ref('easy_my_coop.email_template_confirmation_company', False) diff --git a/easy_my_coop/models/partner.py b/easy_my_coop/models/partner.py index 4cbcd19..bc6f5ae 100644 --- a/easy_my_coop/models/partner.py +++ b/easy_my_coop/models/partner.py @@ -201,9 +201,19 @@ class ResPartner(models.Model): return self.child_ids.filtered('representative') def get_cooperator_from_email(self, email): - return self.search([('cooperator', '=', True), - ('email', '=', email)]) + partner = self.search([('cooperator', '=', True), + ('email', '=', email)], limit=1) + if not partner: + partner = self.search([('email', '=', email)], limit=1) + return partner def get_cooperator_from_crn(self, comp_reg_number): - return self.search([('cooperator', '=', True), - ('company_register_number', '=', comp_reg_number)]) + partner = self.search([ + ('cooperator', '=', True), + ('company_register_number', '=', comp_reg_number) + ], limit=1) + if not partner: + partner = self.search([ + ('company_register_number', '=', comp_reg_number) + ], limit=1) + return partner From 4d523e358c21f5805e4c794d1d6c1ba40759665d Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 18 Nov 2020 15:19:37 +0100 Subject: [PATCH 2/2] [FIX] avoid email conflict when creating company subscription from crm --- easy_my_coop/wizard/create_subscription_from_partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easy_my_coop/wizard/create_subscription_from_partner.py b/easy_my_coop/wizard/create_subscription_from_partner.py index 0c908f9..c079dd0 100644 --- a/easy_my_coop/wizard/create_subscription_from_partner.py +++ b/easy_my_coop/wizard/create_subscription_from_partner.py @@ -133,7 +133,6 @@ class PartnerCreateSubscription(models.TransientModel): cooperator = self.cooperator vals = {'partner_id': cooperator.id, - 'cooperator': True, 'share_product_id': self.share_product.id, 'ordered_parts': self.share_qty, 'user_id': self.env.uid, @@ -148,6 +147,7 @@ class PartnerCreateSubscription(models.TransientModel): if self.is_company: vals['company_name'] = cooperator.name vals['company_email'] = cooperator.email + vals['email'] = self.representative_email vals['name'] = '/' vals['company_register_number'] = self.register_number vals['is_company'] = True