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)
|
||||
// read only if any stock ledger entry exists
|
||||
|
||||
erpnext.item.make_dashboard(frm);
|
||||
if(!frm.doc.is_fixed_asset) {
|
||||
erpnext.item.make_dashboard(frm);
|
||||
}
|
||||
|
||||
// clear intro
|
||||
frm.set_intro();
|
||||
@ -76,7 +77,8 @@ frappe.ui.form.on("Item", {
|
||||
|
||||
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){
|
||||
@ -86,6 +88,16 @@ frappe.ui.form.on("Item", {
|
||||
image: function(frm) {
|
||||
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,
|
||||
|
||||
|
@ -28,6 +28,9 @@ class Item(WebsiteGenerator):
|
||||
def onload(self):
|
||||
super(Item, self).onload()
|
||||
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):
|
||||
if frappe.db.get_default("item_naming_by")=="Naming Series":
|
||||
@ -450,8 +453,8 @@ class Item(WebsiteGenerator):
|
||||
|
||||
def cant_change(self):
|
||||
if not self.get("__islocal"):
|
||||
vals = frappe.db.get_value("Item", self.name,
|
||||
["has_serial_no", "is_stock_item", "valuation_method", "has_batch_no"], as_dict=True)
|
||||
vals = frappe.db.get_value("Item", self.name, ["has_serial_no", "is_stock_item",
|
||||
"valuation_method", "has_batch_no", "is_fixed_asset"], as_dict=True)
|
||||
|
||||
if vals and ((self.is_stock_item != vals.is_stock_item) or
|
||||
vals.has_serial_no != self.has_serial_no or
|
||||
@ -460,6 +463,11 @@ class Item(WebsiteGenerator):
|
||||
if self.check_if_linked_document_exists():
|
||||
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'"))
|
||||
|
||||
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):
|
||||
for doctype in ("Sales Order Item", "Delivery Note Item", "Sales Invoice Item",
|
||||
|
Loading…
x
Reference in New Issue
Block a user