From da0653d76bee4fa48b1dfe02b818fde4d039f237 Mon Sep 17 00:00:00 2001 From: houssine Date: Wed, 31 Jul 2019 18:02:05 +0200 Subject: [PATCH] [REFACT] replace national register number by email Due to a legal issue we won't use the national register number anymore. So the unique identification will now be made through the email of the partner from now. --- easy_my_coop/controllers/main.py | 22 +------ easy_my_coop/models/coop.py | 62 +++++++------------ easy_my_coop/models/partner.py | 13 ++-- easy_my_coop/view/operation_request_view.xml | 6 +- .../view/subscription_request_view.xml | 1 - easy_my_coop/view/subscription_template.xml | 14 ----- .../create_subscription_from_partner.py | 47 ++++++-------- .../create_subscription_from_partner.xml | 2 +- easy_my_coop/wizard/update_partner_info.py | 10 --- easy_my_coop/wizard/update_share_line.py | 1 - easy_my_coop_ch/__openerp__.py | 1 - easy_my_coop_ch/models/coop.py | 6 -- .../views/subscription_request_view.xml | 13 ---- .../views/subscription_template.xml | 2 - .../wizard/export_global_wizard.py | 6 -- easy_my_coop_fr/models/coop.py | 5 -- .../views/subscription_template.xml | 5 +- 17 files changed, 59 insertions(+), 157 deletions(-) delete mode 100644 easy_my_coop_ch/views/subscription_request_view.xml diff --git a/easy_my_coop/controllers/main.py b/easy_my_coop/controllers/main.py index 507a711..0b1bbcb 100644 --- a/easy_my_coop/controllers/main.py +++ b/easy_my_coop/controllers/main.py @@ -14,14 +14,14 @@ _BLACKLIST = ['id', 'create_uid', 'create_date', 'write_uid', 'write_date', 'user_id', 'active'] _COOP_FORM_FIELD = ['email', 'firstname', 'lastname', 'birthdate', 'iban', - 'share_product_id', 'no_registre', 'address', 'city', + 'share_product_id', 'address', 'city', 'zip_code', 'country_id', 'phone', 'lang', 'nb_parts', 'total_parts', 'error_msg'] _COMPANY_FORM_FIELD = ['is_company', 'company_register_number', 'company_name', 'company_email', 'company_type', 'email', 'firstname', 'lastname', 'birthdate', 'iban', 'share_product_id', - 'no_registre', 'address', 'city', 'zip_code', + 'address', 'city', 'zip_code', 'country_id', 'phone', 'lang', 'nb_parts', 'total_parts', 'error_msg'] @@ -109,7 +109,6 @@ class WebsiteSubscription(http.Controller): values['gender'] = representative.gender values['email'] = representative.email values['contact_person_function'] = representative.function - values['no_registre'] = representative.national_register_number values['birthdate'] = self.get_date_string(representative.birthdate) values['lang'] = representative.lang values['phone'] = representative.phone @@ -118,7 +117,6 @@ class WebsiteSubscription(http.Controller): values['lastname'] = partner.lastname values['email'] = partner.email values['gender'] = partner.gender - values['no_registre'] = partner.national_register_number values['birthdate'] = self.get_date_string(partner.birthdate) values['lang'] = partner.lang values['phone'] = partner.phone @@ -258,17 +256,6 @@ class WebsiteSubscription(http.Controller): "is not valid") return request.website.render(redirect, values) - if not is_company and 'no_registre' in required_fields: - no_registre = re.sub('[^0-9a-zA-Z]+', '', - kwargs.get("no_registre")) - valid = sub_req_obj.check_belgian_identification_id(no_registre) - if not valid: - values = self.fill_values(values, is_company, logged) - values["error_msg"] = _("You national register number " - "is not valid") - return request.website.render(redirect, values) - values["no_registre"] = no_registre - # check the subscription's amount max_amount = company.subscription_maximum_amount if logged: @@ -375,11 +362,6 @@ class WebsiteSubscription(http.Controller): kwargs.get("company_register_number")) subscription_id = sub_req_obj.sudo().create_comp_sub_req(values) else: - if 'no_registre' in required_fields: - no_registre = re.sub('[^0-9a-zA-Z]+', '', - kwargs.get("no_registre")) - values["no_registre"] = no_registre - subscription_id = sub_req_obj.sudo().create(values) if subscription_id: diff --git a/easy_my_coop/models/coop.py b/easy_my_coop/models/coop.py index 62b997a..a03c8f6 100644 --- a/easy_my_coop/models/coop.py +++ b/easy_my_coop/models/coop.py @@ -15,7 +15,6 @@ _REQUIRED = ['email', 'zip_code', 'city', 'iban', - 'no_registre', 'gender'] # Could be improved including required from model @@ -43,12 +42,12 @@ class subscription_request(models.Model): partner_obj = self.env['res.partner'] if not vals.get('partner_id'): cooperator = False - if vals.get('no_registre'): - cooperator = partner_obj.get_cooperator_from_nin( - vals.get('no_registre')) + if vals.get('email'): + cooperator = partner_obj.get_cooperator_from_email( + vals.get('email')) if cooperator: # TODO remove the following line of code once it has - # been founded a way to avoid dubble entry + # been founded a way to avoid double entry cooperator = cooperator[0] if cooperator.member: vals['type'] = 'increase' @@ -89,21 +88,21 @@ class subscription_request(models.Model): return subscr_request - def check_belgian_identification_id(self, nat_register_num): - if not self.check_empty_string(nat_register_num): - return False - if len(nat_register_num) != 11: - return False - if not nat_register_num.isdigit(): - return False - birthday_number = nat_register_num[0:9] - controle = nat_register_num[9:11] - check_controle = 97 - (int(birthday_number) % 97) - if int(check_controle) != int(controle): - check_controle = 97 - ((2000000000 + int(birthday_number)) % 97) - if int(check_controle) != int(controle): - return False - return True +# def check_belgian_identification_id(self, nat_register_num): +# if not self.check_empty_string(nat_register_num): +# return False +# if len(nat_register_num) != 11: +# return False +# if not nat_register_num.isdigit(): +# return False +# birthday_number = nat_register_num[0:9] +# controle = nat_register_num[9:11] +# check_controle = 97 - (int(birthday_number) % 97) +# if int(check_controle) != int(controle): +# check_controle = 97 - ((2000000000 + int(birthday_number)) % 97) +# if int(check_controle) != int(controle): +# return False +# return True def check_empty_string(self, value): if value is None or value is False or value == '': @@ -119,17 +118,10 @@ class subscription_request(models.Model): return validated @api.multi - @api.depends('iban', 'no_registre', 'skip_control_ng', 'is_company') + @api.depends('iban', 'skip_control_ng', 'is_company') def _validated_lines(self): for sub_request in self: validated = self.check_iban(sub_request.iban) - - if validated and (sub_request.skip_control_ng or - self.check_belgian_identification_id( - sub_request.no_registre)): - validated = True - else: - validated = False sub_request.validated = validated @api.multi @@ -234,9 +226,6 @@ class subscription_request(models.Model): phone = fields.Char(string='Phone', readonly=True, states={'draft': [('readonly', False)]}) - no_registre = fields.Char(string='National Register Number', - readonly=True, - states={'draft': [('readonly', False)]}) user_id = fields.Many2one('res.users', string='Responsible', readonly=True) @@ -349,7 +338,6 @@ class subscription_request(models.Model): self.firstname = partner.firstname self.name = partner.name self.lastname = partner.lastname - self.no_registre = partner.national_register_number self.email = partner.email self.birthdate = partner.birthdate_date self.gender = partner.gender @@ -469,7 +457,6 @@ class subscription_request(models.Model): 'zip': self.zip_code, 'email': self.email, 'gender': self.gender, 'cooperator': True, 'city': self.city, 'phone': self.phone, - 'national_register_number': self.no_registre, 'out_inv_comm_type': 'bba', 'out_inv_comm_algorithm': 'random', 'country_id': self.country_id.id, 'lang': self.lang, @@ -513,8 +500,8 @@ class subscription_request(models.Model): ' checked please select a cooperator.')) elif self.is_company and self.company_register_number: domain = [('company_register_number', '=', self.company_register_number)] #noqa - elif not self.is_company and self.no_registre: - domain = [('national_register_number', '=', self.no_registre)] + elif not self.is_company and self.email: + domain = [('email', '=', self.email)] if domain: partner = partner_obj.search(domain) @@ -526,8 +513,8 @@ class subscription_request(models.Model): if self.is_company and not partner.has_representative(): contact = False - if self.no_registre: - domain = [('national_register_number', '=', self.no_registre)] + if self.email: + domain = [('email', '=', self.email)] contact = partner_obj.search(domain) if contact: contact.type = 'representative' @@ -539,7 +526,6 @@ class subscription_request(models.Model): 'street': self.address, 'gender': self.gender, 'zip': self.zip_code, 'city': self.city, 'phone': self.phone, 'email': self.email, - 'national_register_number': self.no_registre, 'country_id': self.country_id.id, 'out_inv_comm_type': 'bba', 'out_inv_comm_algorithm': 'random', diff --git a/easy_my_coop/models/partner.py b/easy_my_coop/models/partner.py index 8cc5344..7000905 100644 --- a/easy_my_coop/models/partner.py +++ b/easy_my_coop/models/partner.py @@ -167,10 +167,15 @@ class ResPartner(models.Model): def get_representative(self): return self.child_ids.filtered('representative') - def get_cooperator_from_nin(self, national_id_number): + def get_cooperator_from_email(self, email): return self.search([('cooperator', '=', True), - ('national_register_number', '=', national_id_number)]) + ('email', '=', email)]) - def get_cooperator_from_crn(self, company_register_number): +# def get_cooperator_from_nin(self, national_id_number): +# return self.search([('cooperator', '=', True), +# ('national_register_number', '=', +# national_id_number)]) + + def get_cooperator_from_crn(self, comp_reg_number): return self.search([('cooperator', '=', True), - ('company_register_number', '=', company_register_number)]) + ('company_register_number', '=', comp_reg_number)]) diff --git a/easy_my_coop/view/operation_request_view.xml b/easy_my_coop/view/operation_request_view.xml index 6fb444f..422eeaa 100644 --- a/easy_my_coop/view/operation_request_view.xml +++ b/easy_my_coop/view/operation_request_view.xml @@ -53,10 +53,9 @@ - + - @@ -67,11 +66,10 @@ + - - diff --git a/easy_my_coop/view/subscription_request_view.xml b/easy_my_coop/view/subscription_request_view.xml index 6ab0be3..b9cd1fb 100644 --- a/easy_my_coop/view/subscription_request_view.xml +++ b/easy_my_coop/view/subscription_request_view.xml @@ -58,7 +58,6 @@ - diff --git a/easy_my_coop/view/subscription_template.xml b/easy_my_coop/view/subscription_template.xml index 16842ac..e68efc7 100644 --- a/easy_my_coop/view/subscription_template.xml +++ b/easy_my_coop/view/subscription_template.xml @@ -114,13 +114,6 @@ - -
- -
- -
-
@@ -461,13 +454,6 @@
-
- -
- -
-
-
diff --git a/easy_my_coop/wizard/create_subscription_from_partner.py b/easy_my_coop/wizard/create_subscription_from_partner.py index 0d0f5eb..19e1684 100644 --- a/easy_my_coop/wizard/create_subscription_from_partner.py +++ b/easy_my_coop/wizard/create_subscription_from_partner.py @@ -30,15 +30,15 @@ class PartnerCreateSubscription(models.TransientModel): def _get_representative(self): partner = self._get_partner() if partner.is_company: - return self.env['res.partner'].search([('parent_id', '=', partner.id), - ('representative', '=', True)]) + return partner.search([('parent_id', '=', partner.id), + ('representative', '=', True)]) return False @api.model - def _get_representative_number(self): + def _get_representative_mail(self): representative = self._get_representative() if representative: - return representative.national_register_number + return representative.email return False @api.model @@ -67,8 +67,6 @@ class PartnerCreateSubscription(models.TransientModel): partner = self._get_partner() if partner.is_company: return partner.company_register_number - else: - return partner.national_register_number @api.model def _get_bank_account(self): @@ -101,8 +99,7 @@ class PartnerCreateSubscription(models.TransientModel): cooperator = fields.Many2one('res.partner', string="Cooperator", default=_get_partner) - register_number = fields.Char(string="Register Number", - required=True, + register_number = fields.Char(string="Register Company Number", default=_get_register_number) email = fields.Char(string="Email", required=True, @@ -126,16 +123,15 @@ class PartnerCreateSubscription(models.TransientModel): readonly=True) representative_name = fields.Char(string='Representative name', default=_get_representative_name) - representative_number = fields.Char(string='Representative national ' - 'register number', - default=_get_representative_number) + representative_email = fields.Char(string='Representative email', + default=_get_representative_mail) - def check_belgian_ident_id(self, register_number): - sub_req = self.env['subscription.request'] - if sub_req.check_belgian_identification_id(register_number): - return True - else: - raise UserError(_("The national register number is not valid.")) +# def check_belgian_ident_id(self, register_number): +# sub_req = self.env['subscription.request'] +# if sub_req.check_belgian_identification_id(register_number): +# return True +# else: +# raise UserError(_("The national register number is not valid.")) @api.multi def create_subscription(self): @@ -163,7 +159,6 @@ class PartnerCreateSubscription(models.TransientModel): vals['is_company'] = True else: vals['name'] = cooperator.name - vals['no_registre'] = self.register_number coop_vals = {} if not self._get_email(): @@ -172,15 +167,14 @@ class PartnerCreateSubscription(models.TransientModel): if not self._get_register_number(): if self.is_company: coop_vals['company_register_number'] = self.register_number - else: - if self.check_belgian_ident_id(self.register_number): - coop_vals['national_register_number'] = self.register_number if self.is_company and not self._get_representative(): representative = False - if self.representative_number: - representative_number = self.representative_number - representative = partner_obj.search([('national_register_number', '=', representative_number)]) + if self.representative_email: + representative = partner_obj.search([('email', + '=', + self.representative_email + )]) if representative: if len(representative) > 1: @@ -193,10 +187,10 @@ class PartnerCreateSubscription(models.TransientModel): "two different companies.")) representative.parent_id = cooperator.id else: - if self.check_belgian_ident_id(representative_number): + if self.representative_email: represent_vals = {'name': self.representative_name, 'cooperator': True, - 'national_register_number': representative_number, + 'email': self.representative_email, 'parent_id': cooperator.id, 'representative': True} partner_obj.create(represent_vals) @@ -209,7 +203,6 @@ class PartnerCreateSubscription(models.TransientModel): if self.is_company: representative = self._get_representative() vals['name'] = representative.name - vals['no_registre'] = representative.national_register_number if coop_vals: cooperator.write(coop_vals) diff --git a/easy_my_coop/wizard/create_subscription_from_partner.xml b/easy_my_coop/wizard/create_subscription_from_partner.xml index 3a76dac..f282930 100644 --- a/easy_my_coop/wizard/create_subscription_from_partner.xml +++ b/easy_my_coop/wizard/create_subscription_from_partner.xml @@ -13,7 +13,7 @@ - + diff --git a/easy_my_coop/wizard/update_partner_info.py b/easy_my_coop/wizard/update_partner_info.py index 100125f..f7b1ff7 100644 --- a/easy_my_coop/wizard/update_partner_info.py +++ b/easy_my_coop/wizard/update_partner_info.py @@ -28,13 +28,6 @@ class PartnerUpdateInfo(models.TransientModel): string="Cooperator", default=_get_partner) - def check_belgian_ident_id(self, register_number): - if self.env['subscription.request'].check_belgian_identification_id( - register_number): - return True - else: - raise UserError(_("The national register number is not valid.")) - @api.multi def update(self): @@ -43,9 +36,6 @@ class PartnerUpdateInfo(models.TransientModel): if cooperator.is_company: coop_vals['company_register_number'] = self.register_number - else: - if self.check_belgian_ident_id(self.register_number): - coop_vals['national_register_number'] = self.register_number if coop_vals: cooperator.write(coop_vals) diff --git a/easy_my_coop/wizard/update_share_line.py b/easy_my_coop/wizard/update_share_line.py index e46cab6..83d9e80 100644 --- a/easy_my_coop/wizard/update_share_line.py +++ b/easy_my_coop/wizard/update_share_line.py @@ -29,7 +29,6 @@ class ShareLineUpdateInfo(models.TransientModel): @api.multi def update(self): - line = self.share_line cooperator = line.partner_id diff --git a/easy_my_coop_ch/__openerp__.py b/easy_my_coop_ch/__openerp__.py index 0a8efef..a20f0b6 100644 --- a/easy_my_coop_ch/__openerp__.py +++ b/easy_my_coop_ch/__openerp__.py @@ -32,7 +32,6 @@ """, 'data': [ 'views/subscription_template.xml', - 'views/subscription_request_view.xml' ], 'installable': True, } diff --git a/easy_my_coop_ch/models/coop.py b/easy_my_coop_ch/models/coop.py index 1bdf5d4..0a2e104 100644 --- a/easy_my_coop_ch/models/coop.py +++ b/easy_my_coop_ch/models/coop.py @@ -16,17 +16,11 @@ class subscription_request(models.Model): def get_required_field(self): req_fields = super(subscription_request, self).get_required_field() - if 'no_registre' in req_fields: - req_fields.remove('no_registre') if 'iban' in req_fields: req_fields.remove('iban') return req_fields - def check_belgian_identification_id(self, nat_register_num): - # deactivate number validation for swiss localization - return True - def check_iban(self, iban): if iban: return super(subscription_request, self).check_iban(iban) diff --git a/easy_my_coop_ch/views/subscription_request_view.xml b/easy_my_coop_ch/views/subscription_request_view.xml deleted file mode 100644 index 6a0c614..0000000 --- a/easy_my_coop_ch/views/subscription_request_view.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - subscription.request.form - subscription.request - - - - - - - \ No newline at end of file diff --git a/easy_my_coop_ch/views/subscription_template.xml b/easy_my_coop_ch/views/subscription_template.xml index 1421835..77b1c6f 100644 --- a/easy_my_coop_ch/views/subscription_template.xml +++ b/easy_my_coop_ch/views/subscription_template.xml @@ -2,7 +2,6 @@