Slink/sos_inventory/models/sos_inventory_customers.py

35 lines
1.2 KiB
Python
Executable File

# -*- coding: utf-8 -*-
from odoo import models, fields, api
import time
from odoo.exceptions import UserError
class sos_inventory_customers(models.Model):
_name = 'sos_inventory_customers'
_description = 'Inventory Customers'
_rec_name = 'customer_name'
_order = 'id desc'
customer_name = fields.Char(string="Customer Name")
customer_location = fields.Char(string="Location")
@api.model
def create(self, vals):
new_name = (vals.get('customer_name') or '').lower()
if new_name and len(new_name) >= 5:
existing_customers = self.search([])
for customer in existing_customers:
existing_name = (customer.customer_name or '').lower()
# Check all substrings of length 5 or more
for i in range(len(new_name) - 4):
substring = new_name[i:i+5]
if substring in existing_name:
raise UserError(
f"A customer with a similar name already exists: '{customer.customer_name}' "
f"(matched substring: '{substring}')"
)
return super(sos_inventory_customers, self).create(vals)