Fixed asset item property and validations
This commit is contained in:
parent
2dec0db3bd
commit
abd6c5debb
@ -40,8 +40,9 @@ frappe.ui.form.on("Item", {
|
|||||||
|
|
||||||
// make sensitive fields(has_serial_no, is_stock_item, valuation_method)
|
// make sensitive fields(has_serial_no, is_stock_item, valuation_method)
|
||||||
// read only if any stock ledger entry exists
|
// read only if any stock ledger entry exists
|
||||||
|
if(!frm.doc.is_fixed_asset) {
|
||||||
erpnext.item.make_dashboard(frm);
|
erpnext.item.make_dashboard(frm);
|
||||||
|
}
|
||||||
|
|
||||||
// clear intro
|
// clear intro
|
||||||
frm.set_intro();
|
frm.set_intro();
|
||||||
@ -76,7 +77,8 @@ frappe.ui.form.on("Item", {
|
|||||||
|
|
||||||
erpnext.item.toggle_attributes(frm);
|
erpnext.item.toggle_attributes(frm);
|
||||||
|
|
||||||
|
frm.toggle_enable("is_fixed_asset", !frm.doc.is_stock_item &&
|
||||||
|
((frm.doc.__onload && frm.doc.__onload.asset_exists) ? false : true));
|
||||||
},
|
},
|
||||||
|
|
||||||
validate: function(frm){
|
validate: function(frm){
|
||||||
@ -86,6 +88,16 @@ frappe.ui.form.on("Item", {
|
|||||||
image: function(frm) {
|
image: function(frm) {
|
||||||
refresh_field("image_view");
|
refresh_field("image_view");
|
||||||
},
|
},
|
||||||
|
|
||||||
|
is_fixed_asset: function(frm) {
|
||||||
|
if (frm.doc.is_fixed_asset) {
|
||||||
|
frm.set_value("is_stock_item", 0);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
is_stock_item: function(frm) {
|
||||||
|
frm.toggle_enable("is_fixed_asset", !frm.doc.is_stock_item);
|
||||||
|
},
|
||||||
|
|
||||||
page_name: frappe.utils.warn_page_name_change,
|
page_name: frappe.utils.warn_page_name_change,
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,9 @@ class Item(WebsiteGenerator):
|
|||||||
def onload(self):
|
def onload(self):
|
||||||
super(Item, self).onload()
|
super(Item, self).onload()
|
||||||
self.set_onload('sle_exists', self.check_if_sle_exists())
|
self.set_onload('sle_exists', self.check_if_sle_exists())
|
||||||
|
if self.is_fixed_asset:
|
||||||
|
asset = frappe.db.get_all("Asset", filters={"item_code": self.name, "docstatus": 1}, limit=1)
|
||||||
|
self.set_onload("asset_exists", True if asset else False)
|
||||||
|
|
||||||
def autoname(self):
|
def autoname(self):
|
||||||
if frappe.db.get_default("item_naming_by")=="Naming Series":
|
if frappe.db.get_default("item_naming_by")=="Naming Series":
|
||||||
@ -450,8 +453,8 @@ class Item(WebsiteGenerator):
|
|||||||
|
|
||||||
def cant_change(self):
|
def cant_change(self):
|
||||||
if not self.get("__islocal"):
|
if not self.get("__islocal"):
|
||||||
vals = frappe.db.get_value("Item", self.name,
|
vals = frappe.db.get_value("Item", self.name, ["has_serial_no", "is_stock_item",
|
||||||
["has_serial_no", "is_stock_item", "valuation_method", "has_batch_no"], as_dict=True)
|
"valuation_method", "has_batch_no", "is_fixed_asset"], as_dict=True)
|
||||||
|
|
||||||
if vals and ((self.is_stock_item != vals.is_stock_item) or
|
if vals and ((self.is_stock_item != vals.is_stock_item) or
|
||||||
vals.has_serial_no != self.has_serial_no or
|
vals.has_serial_no != self.has_serial_no or
|
||||||
@ -460,6 +463,11 @@ class Item(WebsiteGenerator):
|
|||||||
if self.check_if_linked_document_exists():
|
if self.check_if_linked_document_exists():
|
||||||
frappe.throw(_("As there are existing transactions for this item, \
|
frappe.throw(_("As there are existing transactions for this item, \
|
||||||
you can not change the values of 'Has Serial No', 'Has Batch No', 'Is Stock Item' and 'Valuation Method'"))
|
you can not change the values of 'Has Serial No', 'Has Batch No', 'Is Stock Item' and 'Valuation Method'"))
|
||||||
|
|
||||||
|
if vals and not self.is_fixed_asset and self.is_fixed_asset != vals.is_fixed_asset:
|
||||||
|
asset = frappe.db.get_all("Asset", filters={"item_code": self.name, "docstatus": 1}, limit=1)
|
||||||
|
if asset:
|
||||||
|
frappe.throw(_('"Is Fixed Asset" cannot be unchecked, as Asset record exists against the item'))
|
||||||
|
|
||||||
def check_if_linked_document_exists(self):
|
def check_if_linked_document_exists(self):
|
||||||
for doctype in ("Sales Order Item", "Delivery Note Item", "Sales Invoice Item",
|
for doctype in ("Sales Order Item", "Delivery Note Item", "Sales Invoice Item",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user