fix: inv dimensions fields not creating for standard doctype (backport #44504) (#44514)

fix: inv dimensions fields not creating for standard doctype (#44504)

(cherry picked from commit 353610ce61)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
This commit is contained in:
mergify[bot]
2024-12-05 09:45:29 +05:30
committed by GitHub
parent 15e3663633
commit c502b562db

View File

@@ -173,13 +173,10 @@ class InventoryDimension(Document):
dimension_fields = []
if self.apply_to_all_doctypes:
for doctype in get_inventory_documents():
if field_exists(doctype[0], self.source_fieldname):
continue
dimension_fields = self.get_dimension_fields(doctype[0])
self.add_transfer_field(doctype[0], dimension_fields)
custom_fields.setdefault(doctype[0], dimension_fields)
elif not field_exists(self.document_type, self.source_fieldname):
else:
dimension_fields = self.get_dimension_fields()
self.add_transfer_field(self.document_type, dimension_fields)
@@ -198,8 +195,17 @@ class InventoryDimension(Document):
dimension_field["fieldname"] = self.target_fieldname
custom_fields["Stock Ledger Entry"] = dimension_field
filter_custom_fields = {}
if custom_fields:
create_custom_fields(custom_fields)
for doctype, fields in custom_fields.items():
if isinstance(fields, dict):
fields = [fields]
for field in fields:
if not field_exists(doctype, field["fieldname"]):
filter_custom_fields.setdefault(doctype, []).append(field)
create_custom_fields(filter_custom_fields)
def add_transfer_field(self, doctype, dimension_fields):
if doctype not in [