Added DocType override for Sales Invoice and Quotation naming
This commit is contained in:
26
rangeldigital/rangel_digital/overrides/quotation.py
Normal file
26
rangeldigital/rangel_digital/overrides/quotation.py
Normal file
@ -0,0 +1,26 @@
|
||||
import random
|
||||
import frappe
|
||||
from frappe.model.naming import parse_naming_series
|
||||
from erpnext.selling.doctype.quotation.quotation import Quotation as OriginalQuotation
|
||||
|
||||
class Quotation(OriginalQuotation):
|
||||
def autoname(self):
|
||||
# Use selected naming series or default from meta
|
||||
naming_series_pattern = self.naming_series or frappe.get_meta(self.doctype).get_field("naming_series").options.split("\n")[0]
|
||||
|
||||
# Step 1: Resolve dynamic placeholders (like .YYYY.) WITHOUT incrementing the counter
|
||||
prefix = parse_naming_series(naming_series_pattern)
|
||||
|
||||
# Remove any trailing dash if it exists
|
||||
prefix = prefix.rstrip("-")
|
||||
|
||||
# Step 2: Append a random 6-digit number
|
||||
random_part = str(random.randint(100_000, 999_999)) # 6-digit number
|
||||
name = f"{prefix}-{random_part}"
|
||||
|
||||
# Step 3: Ensure name is unique
|
||||
while frappe.db.exists(self.doctype, name):
|
||||
random_part = str(random.randint(100_000, 999_999)) # 6-digit number
|
||||
name = f"{prefix}-{random_part}"
|
||||
|
||||
self.name = name
|
||||
Reference in New Issue
Block a user