From 1abbebda5ab707b014e8e01a7ab418861beef420 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 6 Feb 2025 16:40:34 +0700 Subject: cr validation duplicate contact --- indoteknik_custom/models/res_partner.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index 844d47f9..7e574a72 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -188,17 +188,14 @@ class ResPartner(models.Model): def _check_duplicate_name(self): for record in self: if record.name: - query = """ - SELECT name FROM res_partner - WHERE id != %s - AND levenshtein(lower(name), lower(%s)) <= 1 - LIMIT 1 - """ - self.env.cr.execute(query, (record.id, record.name)) - duplicate = self.env.cr.fetchone() - - if duplicate: - raise ValidationError(f"Nama '{record.name}' mirip dengan '{duplicate[0]}', harap gunakan nama yang unik!") + # Mencari partner lain yang memiliki nama sama (case-insensitive) + existing_partner = self.env['res.partner'].search([ + ('id', '!=', record.id), # Hindari mencocokkan diri sendiri + ('name', '=', record.name) # Case-insensitive search + ], limit=1) + + if existing_partner: + raise ValidationError(f"Nama '{record.name}' sudah digunakan oleh partner lain!") def write(self, vals): # Fungsi rekursif untuk meng-update semua child, termasuk child dari child -- cgit v1.2.3