fix: Validate invalid fields in Item Variant Settings
- Some fields like barcodes cannot be copied in Item Variants - Wrote a patch that deletes the fields if they exist - Also, validate in controller
This commit is contained in:
parent
a0aaeafae8
commit
a748ca69e7
@ -586,3 +586,4 @@ erpnext.patches.v11_0.renamed_from_to_fields_in_project
|
|||||||
erpnext.patches.v11_0.add_permissions_in_gst_settings
|
erpnext.patches.v11_0.add_permissions_in_gst_settings
|
||||||
erpnext.patches.v11_1.setup_guardian_role
|
erpnext.patches.v11_1.setup_guardian_role
|
||||||
execute:frappe.delete_doc('DocType', 'Notification Control')
|
execute:frappe.delete_doc('DocType', 'Notification Control')
|
||||||
|
erpnext.patches.v11_0.remove_barcodes_field_from_copy_fields_to_variants #asdf
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
'''Remove barcodes field from "Copy Fields to Variants" table because barcodes must be unique'''
|
||||||
|
|
||||||
|
settings = frappe.get_doc('Item Variant Settings')
|
||||||
|
settings.remove_invalid_fields_for_copy_fields_in_variants()
|
@ -5,14 +5,17 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
from frappe import _
|
||||||
|
|
||||||
class ItemVariantSettings(Document):
|
class ItemVariantSettings(Document):
|
||||||
|
invalid_fields_for_copy_fields_in_variants = ['barcodes']
|
||||||
|
|
||||||
def set_default_fields(self):
|
def set_default_fields(self):
|
||||||
self.fields = []
|
self.fields = []
|
||||||
fields = frappe.get_meta('Item').fields
|
fields = frappe.get_meta('Item').fields
|
||||||
exclude_fields = ["naming_series", "item_code", "item_name", "show_in_website",
|
exclude_fields = ["naming_series", "item_code", "item_name", "show_in_website",
|
||||||
"show_variant_in_website", "standard_rate", "opening_stock", "image", "description",
|
"show_variant_in_website", "standard_rate", "opening_stock", "image", "description",
|
||||||
"variant_of", "valuation_rate", "description",
|
"variant_of", "valuation_rate", "description", "barcodes",
|
||||||
"website_image", "thumbnail", "website_specifiations", "web_long_description"]
|
"website_image", "thumbnail", "website_specifiations", "web_long_description"]
|
||||||
|
|
||||||
for d in fields:
|
for d in fields:
|
||||||
@ -21,3 +24,13 @@ class ItemVariantSettings(Document):
|
|||||||
self.append('fields', {
|
self.append('fields', {
|
||||||
'field_name': d.fieldname
|
'field_name': d.fieldname
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def remove_invalid_fields_for_copy_fields_in_variants(self):
|
||||||
|
fields = [row for row in self.fields if row.field_name not in self.invalid_fields_for_copy_fields_in_variants]
|
||||||
|
self.fields = fields
|
||||||
|
self.save()
|
||||||
|
|
||||||
|
def validate(self):
|
||||||
|
for d in self.fields:
|
||||||
|
if d.field_name in self.invalid_fields_for_copy_fields_in_variants:
|
||||||
|
frappe.throw(_('Cannot set the field <b>{0}</b> for copying in variants').format(d.field_name))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user