diff --git a/models/membership.py b/models/membership.py index 7c6e7a6..4973983 100644 --- a/models/membership.py +++ b/models/membership.py @@ -170,6 +170,7 @@ class kalachakra_membership(models.Model): m.amount=45 def unlink(self): - if self.partner_id.super_member==False: - self.partner_id.member_status='not member' - return super(kalachakra_membership, self).unlink() + for rec in self: + if rec.partner_id.super_member==False: + rec.partner_id.member_status='not member' + super(kalachakra_membership, rec).unlink() diff --git a/models/membership_import.py b/models/membership_import.py index e323271..3d6a41c 100644 --- a/models/membership_import.py +++ b/models/membership_import.py @@ -75,6 +75,52 @@ class membershipimport(models.Model): return True + def import_membership_csv_files_v2(self): + + files= self.env["opendons.partnerdraftfile"].search([('source_name','=','membership')]) + + for f in files: + + decrypted = base64.b64decode(f.file).decode('utf-8-sig') + source_name=f.source_name + membership_product=self.env['product.product'].sudo().search([('membership_product','=',True)],limit=1) + + with io.StringIO(decrypted) as fp: + reader = csv.DictReader(fp, delimiter=";", quotechar='"') + for row in reader: + vals={} + vals['partner_id']=False + vals['product_id']=membership_product.id + vals['start_date']=False + vals['state']='done' + vals['payment_state']='paid' + type_rec='' + for key, value in row.items(): + #on cherche le contact + + + if key=='id': + partner=self.env['res.partner'].search([('external_id','=',value)]) + if partner: + vals['partner_id']=partner.id + + + if key=='Date adhesion': + year_m=value[12:16] + month_m=value[17:19] + day_m=value[20:22] + start_date=datetime.strptime(year_m+'-'+month_m+'-'+day_m, '%Y-%m-%d') + vals['start_date']=start_date + vals['end_date']=start_date+relativedelta(years=1) + + + if vals['partner_id'] and vals['start_date']: + + self.env['kalachakra.membership'].create(vals) + + + return True + def update_super_member(self): partner=self.env['res.partner'].search([])