Added override for Project DocType to rename like 'PROJ-2025-3812 where 3812 is a random 4-digit number'
This commit is contained in:
Binary file not shown.
@ -7,7 +7,9 @@ app_license = "mit"
|
|||||||
|
|
||||||
override_doctype_class = {
|
override_doctype_class = {
|
||||||
"Sales Invoice": "rangeldigital.rangel_digital.overrides.sales_invoice.SalesInvoice",
|
"Sales Invoice": "rangeldigital.rangel_digital.overrides.sales_invoice.SalesInvoice",
|
||||||
"Quotation": "rangeldigital.rangel_digital.overrides.quotation.Quotation"
|
"Quotation": "rangeldigital.rangel_digital.overrides.quotation.Quotation",
|
||||||
|
"Project": "rangeldigital.rangel_digital.overrides.project.Project"
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
34
rangeldigital/rangel_digital/overrides/project.py
Normal file
34
rangeldigital/rangel_digital/overrides/project.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import random
|
||||||
|
import re
|
||||||
|
import frappe
|
||||||
|
from datetime import datetime
|
||||||
|
from frappe.model.naming import parse_naming_series
|
||||||
|
from erpnext.projects.doctype.project.project import Project as OriginalProject
|
||||||
|
|
||||||
|
class Project(OriginalProject):
|
||||||
|
# Change naming covention to PROJ-2025-3812 where 3812 is a random number
|
||||||
|
def autoname(self):
|
||||||
|
# Use the series pattern from the doctype or meta
|
||||||
|
naming_series_pattern = self.naming_series or frappe.get_meta(self.doctype).get_field("naming_series").options.split("\n")[0]
|
||||||
|
|
||||||
|
# Resolve the naming pattern (e.g., PROJ-0001)
|
||||||
|
parsed_prefix = parse_naming_series(naming_series_pattern)
|
||||||
|
|
||||||
|
# Remove auto-number if present (e.g., strip -0001)
|
||||||
|
clean_prefix = re.sub(r"[-_]?0*\d+$", "", parsed_prefix)
|
||||||
|
|
||||||
|
# Get current year
|
||||||
|
current_year = datetime.now().year
|
||||||
|
|
||||||
|
# Generate 4-digit random number
|
||||||
|
random_part = str(random.randint(1000, 9999))
|
||||||
|
|
||||||
|
# Combine all parts
|
||||||
|
name = f"{clean_prefix}-{current_year}-{random_part}"
|
||||||
|
|
||||||
|
# Ensure uniqueness
|
||||||
|
while frappe.db.exists(self.doctype, name):
|
||||||
|
random_part = str(random.randint(1000, 9999))
|
||||||
|
name = f"{clean_prefix}-{current_year}-{random_part}"
|
||||||
|
|
||||||
|
self.name = name
|
||||||
Reference in New Issue
Block a user