mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-15 03:01:22 +00:00
* ci: add prettier to pre-commit
(cherry picked from commit 2c16036ef3)
* style: format js files
---------
Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
Co-authored-by: Ankush Menat <ankush@frappe.io>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,56 +1,46 @@
|
||||
frappe.listview_settings['Asset'] = {
|
||||
add_fields: ['status'],
|
||||
frappe.listview_settings["Asset"] = {
|
||||
add_fields: ["status"],
|
||||
get_indicator: function (doc) {
|
||||
if (doc.status === "Fully Depreciated") {
|
||||
return [__("Fully Depreciated"), "green", "status,=,Fully Depreciated"];
|
||||
|
||||
} else if (doc.status === "Partially Depreciated") {
|
||||
return [__("Partially Depreciated"), "grey", "status,=,Partially Depreciated"];
|
||||
|
||||
} else if (doc.status === "Sold") {
|
||||
return [__("Sold"), "green", "status,=,Sold"];
|
||||
|
||||
} else if (["Capitalized", "Decapitalized"].includes(doc.status)) {
|
||||
return [__(doc.status), "grey", "status,=," + doc.status];
|
||||
|
||||
} else if (doc.status === "Scrapped") {
|
||||
return [__("Scrapped"), "grey", "status,=,Scrapped"];
|
||||
|
||||
} else if (doc.status === "In Maintenance") {
|
||||
return [__("In Maintenance"), "orange", "status,=,In Maintenance"];
|
||||
|
||||
} else if (doc.status === "Out of Order") {
|
||||
return [__("Out of Order"), "grey", "status,=,Out of Order"];
|
||||
|
||||
} else if (doc.status === "Issue") {
|
||||
return [__("Issue"), "orange", "status,=,Issue"];
|
||||
|
||||
} else if (doc.status === "Receipt") {
|
||||
return [__("Receipt"), "green", "status,=,Receipt"];
|
||||
|
||||
} else if (doc.status === "Submitted") {
|
||||
return [__("Submitted"), "blue", "status,=,Submitted"];
|
||||
|
||||
} else if (doc.status === "Draft") {
|
||||
return [__("Draft"), "red", "status,=,Draft"];
|
||||
}
|
||||
},
|
||||
onload: function(me) {
|
||||
me.page.add_action_item(__("Make Asset Movement"), function() {
|
||||
onload: function (me) {
|
||||
me.page.add_action_item(__("Make Asset Movement"), function () {
|
||||
const assets = me.get_checked_items();
|
||||
frappe.call({
|
||||
method: "erpnext.assets.doctype.asset.asset.make_asset_movement",
|
||||
freeze: true,
|
||||
args:{
|
||||
"assets": assets
|
||||
args: {
|
||||
assets: assets,
|
||||
},
|
||||
callback: function (r) {
|
||||
if (r.message) {
|
||||
var doc = frappe.model.sync(r.message)[0];
|
||||
frappe.set_route("Form", doc.doctype, doc.name);
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
|
||||
frappe.provide("erpnext.assets");
|
||||
|
||||
|
||||
erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.stock.StockController {
|
||||
setup() {
|
||||
this.frm.ignore_doctypes_on_cancel_all = ['Serial and Batch Bundle', 'Asset Movement'];
|
||||
this.frm.ignore_doctypes_on_cancel_all = ["Serial and Batch Bundle", "Asset Movement"];
|
||||
this.setup_posting_date_time_check();
|
||||
}
|
||||
|
||||
@@ -17,7 +16,10 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
refresh() {
|
||||
this.show_general_ledger();
|
||||
|
||||
if ((this.frm.doc.stock_items && this.frm.doc.stock_items.length) || !this.frm.doc.target_is_fixed_asset) {
|
||||
if (
|
||||
(this.frm.doc.stock_items && this.frm.doc.stock_items.length) ||
|
||||
!this.frm.doc.target_is_fixed_asset
|
||||
) {
|
||||
this.show_stock_ledger();
|
||||
}
|
||||
|
||||
@@ -32,32 +34,32 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
|
||||
me.setup_warehouse_query();
|
||||
|
||||
me.frm.set_query("target_item_code", function() {
|
||||
me.frm.set_query("target_item_code", function () {
|
||||
if (me.frm.doc.entry_type == "Capitalization") {
|
||||
return erpnext.queries.item({"is_stock_item": 0, "is_fixed_asset": 1});
|
||||
return erpnext.queries.item({ is_stock_item: 0, is_fixed_asset: 1 });
|
||||
} else {
|
||||
return erpnext.queries.item({"is_stock_item": 1, "is_fixed_asset": 0});
|
||||
return erpnext.queries.item({ is_stock_item: 1, is_fixed_asset: 0 });
|
||||
}
|
||||
});
|
||||
|
||||
me.frm.set_query("target_asset", function() {
|
||||
me.frm.set_query("target_asset", function () {
|
||||
return {
|
||||
filters: {'is_composite_asset': 1, 'docstatus': 0 }
|
||||
}
|
||||
filters: { is_composite_asset: 1, docstatus: 0 },
|
||||
};
|
||||
});
|
||||
|
||||
me.frm.set_query("asset", "asset_items", function() {
|
||||
me.frm.set_query("asset", "asset_items", function () {
|
||||
var filters = {
|
||||
'status': ["not in", ["Draft", "Scrapped", "Sold", "Capitalized", "Decapitalized"]],
|
||||
'docstatus': 1
|
||||
status: ["not in", ["Draft", "Scrapped", "Sold", "Capitalized", "Decapitalized"]],
|
||||
docstatus: 1,
|
||||
};
|
||||
|
||||
if (me.frm.doc.target_asset) {
|
||||
filters['name'] = ['!=', me.frm.doc.target_asset];
|
||||
filters["name"] = ["!=", me.frm.doc.target_asset];
|
||||
}
|
||||
|
||||
return {
|
||||
filters: filters
|
||||
filters: filters,
|
||||
};
|
||||
});
|
||||
|
||||
@@ -65,58 +67,67 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
let row = locals[cdt][cdn];
|
||||
return {
|
||||
filters: {
|
||||
'item_code': row.item_code,
|
||||
'voucher_type': doc.doctype,
|
||||
'voucher_no': ["in", [doc.name, ""]],
|
||||
'is_cancelled': 0,
|
||||
}
|
||||
}
|
||||
item_code: row.item_code,
|
||||
voucher_type: doc.doctype,
|
||||
voucher_no: ["in", [doc.name, ""]],
|
||||
is_cancelled: 0,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
me.frm.set_query("item_code", "stock_items", function() {
|
||||
return erpnext.queries.item({"is_stock_item": 1});
|
||||
me.frm.set_query("item_code", "stock_items", function () {
|
||||
return erpnext.queries.item({ is_stock_item: 1 });
|
||||
});
|
||||
|
||||
me.frm.set_query("item_code", "service_items", function() {
|
||||
return erpnext.queries.item({"is_stock_item": 0, "is_fixed_asset": 0});
|
||||
me.frm.set_query("item_code", "service_items", function () {
|
||||
return erpnext.queries.item({ is_stock_item: 0, is_fixed_asset: 0 });
|
||||
});
|
||||
|
||||
me.frm.set_query('batch_no', 'stock_items', function(doc, cdt, cdn) {
|
||||
me.frm.set_query("batch_no", "stock_items", function (doc, cdt, cdn) {
|
||||
var item = locals[cdt][cdn];
|
||||
if (!item.item_code) {
|
||||
frappe.throw(__("Please enter Item Code to get Batch Number"));
|
||||
} else {
|
||||
var filters = {
|
||||
'item_code': item.item_code,
|
||||
'posting_date': me.frm.doc.posting_date || frappe.datetime.nowdate(),
|
||||
'warehouse': item.warehouse
|
||||
item_code: item.item_code,
|
||||
posting_date: me.frm.doc.posting_date || frappe.datetime.nowdate(),
|
||||
warehouse: item.warehouse,
|
||||
};
|
||||
|
||||
return {
|
||||
query: "erpnext.controllers.queries.get_batch_no",
|
||||
filters: filters
|
||||
filters: filters,
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
me.frm.set_query('expense_account', 'service_items', function() {
|
||||
me.frm.set_query("expense_account", "service_items", function () {
|
||||
return {
|
||||
filters: {
|
||||
"account_type": ['in', ["Tax", "Expense Account", "Income Account", "Expenses Included In Valuation", "Expenses Included In Asset Valuation"]],
|
||||
"is_group": 0,
|
||||
"company": me.frm.doc.company
|
||||
}
|
||||
account_type: [
|
||||
"in",
|
||||
[
|
||||
"Tax",
|
||||
"Expense Account",
|
||||
"Income Account",
|
||||
"Expenses Included In Valuation",
|
||||
"Expenses Included In Asset Valuation",
|
||||
],
|
||||
],
|
||||
is_group: 0,
|
||||
company: me.frm.doc.company,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
let sbb_field = me.frm.get_docfield('stock_items', 'serial_and_batch_bundle');
|
||||
let sbb_field = me.frm.get_docfield("stock_items", "serial_and_batch_bundle");
|
||||
if (sbb_field) {
|
||||
sbb_field.get_route_options_for_new_doc = (row) => {
|
||||
return {
|
||||
'item_code': row.doc.item_code,
|
||||
'warehouse': row.doc.warehouse,
|
||||
'voucher_type': me.frm.doc.doctype,
|
||||
}
|
||||
item_code: row.doc.item_code,
|
||||
warehouse: row.doc.warehouse,
|
||||
voucher_type: me.frm.doc.doctype,
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -126,7 +137,10 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
}
|
||||
|
||||
target_asset() {
|
||||
if (this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") {
|
||||
if (
|
||||
this.frm.doc.target_asset &&
|
||||
this.frm.doc.capitalization_method === "Choose a WIP composite asset"
|
||||
) {
|
||||
this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset);
|
||||
this.get_target_asset_details();
|
||||
}
|
||||
@@ -143,7 +157,7 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc && r.message) {
|
||||
if(r.message[0] && r.message[0].length) {
|
||||
if (r.message[0] && r.message[0].length) {
|
||||
me.frm.clear_table("stock_items");
|
||||
for (let item of r.message[0]) {
|
||||
me.frm.add_child("stock_items", item);
|
||||
@@ -160,7 +174,7 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -192,7 +206,7 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
if (this.frm.doc.posting_date) {
|
||||
frappe.run_serially([
|
||||
() => this.get_all_item_warehouse_details(),
|
||||
() => this.get_all_asset_values()
|
||||
() => this.get_all_asset_values(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -248,15 +262,15 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
}
|
||||
|
||||
stock_items_add(doc, cdt, cdn) {
|
||||
erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, 'stock_items');
|
||||
erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, "stock_items");
|
||||
}
|
||||
|
||||
asset_items_add(doc, cdt, cdn) {
|
||||
erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, 'asset_items');
|
||||
erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, "asset_items");
|
||||
}
|
||||
|
||||
serivce_items_add(doc, cdt, cdn) {
|
||||
erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, 'service_items');
|
||||
erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, "service_items");
|
||||
}
|
||||
|
||||
get_target_item_details() {
|
||||
@@ -274,7 +288,7 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
if (!r.exc) {
|
||||
me.frm.refresh_fields();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -294,7 +308,7 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
if (!r.exc) {
|
||||
me.frm.refresh_fields();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -316,13 +330,13 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
company: me.frm.doc.company,
|
||||
posting_date: me.frm.doc.posting_date,
|
||||
posting_time: me.frm.doc.posting_time,
|
||||
}
|
||||
},
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -343,13 +357,13 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
finance_book: row.finance_book || me.frm.doc.finance_book,
|
||||
posting_date: me.frm.doc.posting_date,
|
||||
posting_time: me.frm.doc.posting_time,
|
||||
}
|
||||
},
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -367,13 +381,13 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
qty: flt(row.qty),
|
||||
expense_account: row.expense_account,
|
||||
company: me.frm.doc.company,
|
||||
}
|
||||
},
|
||||
},
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -386,23 +400,23 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
child: item,
|
||||
args: {
|
||||
args: {
|
||||
'item_code': item.item_code,
|
||||
'warehouse': cstr(item.warehouse),
|
||||
'qty': flt(item.stock_qty),
|
||||
'serial_no': item.serial_no,
|
||||
'posting_date': me.frm.doc.posting_date,
|
||||
'posting_time': me.frm.doc.posting_time,
|
||||
'company': me.frm.doc.company,
|
||||
'voucher_type': me.frm.doc.doctype,
|
||||
'voucher_no': me.frm.doc.name,
|
||||
'allow_zero_valuation': 1
|
||||
}
|
||||
item_code: item.item_code,
|
||||
warehouse: cstr(item.warehouse),
|
||||
qty: flt(item.stock_qty),
|
||||
serial_no: item.serial_no,
|
||||
posting_date: me.frm.doc.posting_date,
|
||||
posting_time: me.frm.doc.posting_time,
|
||||
company: me.frm.doc.company,
|
||||
voucher_type: me.frm.doc.doctype,
|
||||
voucher_no: me.frm.doc.name,
|
||||
allow_zero_valuation: 1,
|
||||
},
|
||||
},
|
||||
callback: function(r) {
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -412,11 +426,11 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
return me.frm.call({
|
||||
method: "set_warehouse_details",
|
||||
doc: me.frm.doc,
|
||||
callback: function(r) {
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -425,11 +439,11 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
return me.frm.call({
|
||||
method: "set_asset_values",
|
||||
doc: me.frm.doc,
|
||||
callback: function(r) {
|
||||
callback: function (r) {
|
||||
if (!r.exc) {
|
||||
me.calculate_totals();
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -441,33 +455,38 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s
|
||||
me.frm.doc.service_items_total = 0;
|
||||
|
||||
$.each(me.frm.doc.stock_items || [], function (i, d) {
|
||||
d.amount = flt(flt(d.stock_qty) * flt(d.valuation_rate), precision('amount', d));
|
||||
d.amount = flt(flt(d.stock_qty) * flt(d.valuation_rate), precision("amount", d));
|
||||
me.frm.doc.stock_items_total += d.amount;
|
||||
});
|
||||
|
||||
$.each(me.frm.doc.asset_items || [], function (i, d) {
|
||||
d.asset_value = flt(flt(d.asset_value), precision('asset_value', d));
|
||||
d.asset_value = flt(flt(d.asset_value), precision("asset_value", d));
|
||||
me.frm.doc.asset_items_total += d.asset_value;
|
||||
});
|
||||
|
||||
$.each(me.frm.doc.service_items || [], function (i, d) {
|
||||
d.amount = flt(flt(d.qty) * flt(d.rate), precision('amount', d));
|
||||
d.amount = flt(flt(d.qty) * flt(d.rate), precision("amount", d));
|
||||
me.frm.doc.service_items_total += d.amount;
|
||||
});
|
||||
|
||||
me.frm.doc.stock_items_total = flt(me.frm.doc.stock_items_total, precision('stock_items_total'));
|
||||
me.frm.doc.asset_items_total = flt(me.frm.doc.asset_items_total, precision('asset_items_total'));
|
||||
me.frm.doc.service_items_total = flt(me.frm.doc.service_items_total, precision('service_items_total'));
|
||||
me.frm.doc.stock_items_total = flt(me.frm.doc.stock_items_total, precision("stock_items_total"));
|
||||
me.frm.doc.asset_items_total = flt(me.frm.doc.asset_items_total, precision("asset_items_total"));
|
||||
me.frm.doc.service_items_total = flt(
|
||||
me.frm.doc.service_items_total,
|
||||
precision("service_items_total")
|
||||
);
|
||||
|
||||
me.frm.doc.total_value = me.frm.doc.stock_items_total + me.frm.doc.asset_items_total + me.frm.doc.service_items_total;
|
||||
me.frm.doc.total_value = flt(me.frm.doc.total_value, precision('total_value'));
|
||||
me.frm.doc.total_value =
|
||||
me.frm.doc.stock_items_total + me.frm.doc.asset_items_total + me.frm.doc.service_items_total;
|
||||
me.frm.doc.total_value = flt(me.frm.doc.total_value, precision("total_value"));
|
||||
|
||||
me.frm.doc.target_qty = flt(me.frm.doc.target_qty, precision('target_qty'));
|
||||
me.frm.doc.target_incoming_rate = me.frm.doc.target_qty ? me.frm.doc.total_value / flt(me.frm.doc.target_qty)
|
||||
me.frm.doc.target_qty = flt(me.frm.doc.target_qty, precision("target_qty"));
|
||||
me.frm.doc.target_incoming_rate = me.frm.doc.target_qty
|
||||
? me.frm.doc.total_value / flt(me.frm.doc.target_qty)
|
||||
: me.frm.doc.total_value;
|
||||
|
||||
me.frm.refresh_fields();
|
||||
}
|
||||
};
|
||||
|
||||
cur_frm.cscript = new erpnext.assets.AssetCapitalization({frm: cur_frm});
|
||||
cur_frm.cscript = new erpnext.assets.AssetCapitalization({ frm: cur_frm });
|
||||
|
||||
@@ -1,56 +1,55 @@
|
||||
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Asset Category', {
|
||||
onload: function(frm) {
|
||||
frm.add_fetch('company_name', 'accumulated_depreciation_account', 'accumulated_depreciation_account');
|
||||
frm.add_fetch('company_name', 'depreciation_expense_account', 'depreciation_expense_account');
|
||||
frappe.ui.form.on("Asset Category", {
|
||||
onload: function (frm) {
|
||||
frm.add_fetch("company_name", "accumulated_depreciation_account", "accumulated_depreciation_account");
|
||||
frm.add_fetch("company_name", "depreciation_expense_account", "depreciation_expense_account");
|
||||
|
||||
frm.set_query('fixed_asset_account', 'accounts', function(doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
frm.set_query("fixed_asset_account", "accounts", function (doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
return {
|
||||
"filters": {
|
||||
"account_type": "Fixed Asset",
|
||||
"root_type": "Asset",
|
||||
"is_group": 0,
|
||||
"company": d.company_name
|
||||
}
|
||||
filters: {
|
||||
account_type: "Fixed Asset",
|
||||
root_type: "Asset",
|
||||
is_group: 0,
|
||||
company: d.company_name,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
frm.set_query('accumulated_depreciation_account', 'accounts', function(doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
frm.set_query("accumulated_depreciation_account", "accounts", function (doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
return {
|
||||
"filters": {
|
||||
"account_type": "Accumulated Depreciation",
|
||||
"is_group": 0,
|
||||
"company": d.company_name
|
||||
}
|
||||
filters: {
|
||||
account_type: "Accumulated Depreciation",
|
||||
is_group: 0,
|
||||
company: d.company_name,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
frm.set_query('depreciation_expense_account', 'accounts', function(doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
frm.set_query("depreciation_expense_account", "accounts", function (doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
return {
|
||||
"filters": {
|
||||
"account_type": "Depreciation",
|
||||
"root_type": ["in", ["Expense", "Income"]],
|
||||
"is_group": 0,
|
||||
"company": d.company_name
|
||||
}
|
||||
filters: {
|
||||
account_type: "Depreciation",
|
||||
root_type: ["in", ["Expense", "Income"]],
|
||||
is_group: 0,
|
||||
company: d.company_name,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
frm.set_query('capital_work_in_progress_account', 'accounts', function(doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
frm.set_query("capital_work_in_progress_account", "accounts", function (doc, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
return {
|
||||
"filters": {
|
||||
"account_type": "Capital Work in Progress",
|
||||
"is_group": 0,
|
||||
"company": d.company_name
|
||||
}
|
||||
filters: {
|
||||
account_type: "Capital Work in Progress",
|
||||
is_group: 0,
|
||||
company: d.company_name,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -2,52 +2,63 @@
|
||||
// For license information, please see license.txt
|
||||
frappe.provide("erpnext.asset");
|
||||
|
||||
frappe.ui.form.on('Asset Depreciation Schedule', {
|
||||
onload: function(frm) {
|
||||
frappe.ui.form.on("Asset Depreciation Schedule", {
|
||||
onload: function (frm) {
|
||||
frm.events.make_schedules_editable(frm);
|
||||
},
|
||||
|
||||
make_schedules_editable: function(frm) {
|
||||
make_schedules_editable: function (frm) {
|
||||
var is_manual_hence_editable = frm.doc.depreciation_method === "Manual" ? true : false;
|
||||
var is_shift_hence_editable = frm.doc.shift_based ? true : false;
|
||||
|
||||
frm.toggle_enable("depreciation_schedule", is_manual_hence_editable || is_shift_hence_editable);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable("schedule_date", is_manual_hence_editable);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable("depreciation_amount", is_manual_hence_editable);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable(
|
||||
"schedule_date",
|
||||
is_manual_hence_editable
|
||||
);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable(
|
||||
"depreciation_amount",
|
||||
is_manual_hence_editable
|
||||
);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable("shift", is_shift_hence_editable);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
frappe.ui.form.on('Depreciation Schedule', {
|
||||
make_depreciation_entry: function(frm, cdt, cdn) {
|
||||
frappe.ui.form.on("Depreciation Schedule", {
|
||||
make_depreciation_entry: function (frm, cdt, cdn) {
|
||||
var row = locals[cdt][cdn];
|
||||
if (!row.journal_entry) {
|
||||
frappe.call({
|
||||
method: "erpnext.assets.doctype.asset.depreciation.make_depreciation_entry",
|
||||
args: {
|
||||
"asset_depr_schedule_name": frm.doc.name,
|
||||
"date": row.schedule_date
|
||||
asset_depr_schedule_name: frm.doc.name,
|
||||
date: row.schedule_date,
|
||||
},
|
||||
callback: function(r) {
|
||||
callback: function (r) {
|
||||
frappe.model.sync(r.message);
|
||||
frm.refresh();
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
depreciation_amount: function(frm, cdt, cdn) {
|
||||
depreciation_amount: function (frm, cdt, cdn) {
|
||||
erpnext.asset.set_accumulated_depreciation(frm);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
erpnext.asset.set_accumulated_depreciation = function(frm) {
|
||||
if(frm.doc.depreciation_method != "Manual") return;
|
||||
erpnext.asset.set_accumulated_depreciation = function (frm) {
|
||||
if (frm.doc.depreciation_method != "Manual") return;
|
||||
|
||||
var accumulated_depreciation = flt(frm.doc.opening_accumulated_depreciation);
|
||||
|
||||
$.each(frm.doc.depreciation_schedule || [], function(i, row) {
|
||||
accumulated_depreciation += flt(row.depreciation_amount);
|
||||
frappe.model.set_value(row.doctype, row.name, "accumulated_depreciation_amount", accumulated_depreciation);
|
||||
})
|
||||
$.each(frm.doc.depreciation_schedule || [], function (i, row) {
|
||||
accumulated_depreciation += flt(row.depreciation_amount);
|
||||
frappe.model.set_value(
|
||||
row.doctype,
|
||||
row.name,
|
||||
"accumulated_depreciation_amount",
|
||||
accumulated_depreciation
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,49 +1,47 @@
|
||||
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Asset Maintenance', {
|
||||
frappe.ui.form.on("Asset Maintenance", {
|
||||
setup: (frm) => {
|
||||
frm.set_query("assign_to", "asset_maintenance_tasks", function(doc) {
|
||||
frm.set_query("assign_to", "asset_maintenance_tasks", function (doc) {
|
||||
return {
|
||||
query: "erpnext.assets.doctype.asset_maintenance.asset_maintenance.get_team_members",
|
||||
filters: {
|
||||
maintenance_team: doc.maintenance_team
|
||||
}
|
||||
maintenance_team: doc.maintenance_team,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
frm.set_indicator_formatter('maintenance_status',
|
||||
function(doc) {
|
||||
let indicator = 'blue';
|
||||
if (doc.maintenance_status == 'Overdue') {
|
||||
indicator = 'orange';
|
||||
}
|
||||
if (doc.maintenance_status == 'Cancelled') {
|
||||
indicator = 'red';
|
||||
}
|
||||
return indicator;
|
||||
frm.set_indicator_formatter("maintenance_status", function (doc) {
|
||||
let indicator = "blue";
|
||||
if (doc.maintenance_status == "Overdue") {
|
||||
indicator = "orange";
|
||||
}
|
||||
);
|
||||
if (doc.maintenance_status == "Cancelled") {
|
||||
indicator = "red";
|
||||
}
|
||||
return indicator;
|
||||
});
|
||||
},
|
||||
|
||||
refresh: (frm) => {
|
||||
if(!frm.is_new()) {
|
||||
frm.trigger('make_dashboard');
|
||||
if (!frm.is_new()) {
|
||||
frm.trigger("make_dashboard");
|
||||
}
|
||||
},
|
||||
make_dashboard: (frm) => {
|
||||
if(!frm.is_new()) {
|
||||
if (!frm.is_new()) {
|
||||
frappe.call({
|
||||
method: 'erpnext.assets.doctype.asset_maintenance.asset_maintenance.get_maintenance_log',
|
||||
args: {asset_name: frm.doc.asset_name},
|
||||
method: "erpnext.assets.doctype.asset_maintenance.asset_maintenance.get_maintenance_log",
|
||||
args: { asset_name: frm.doc.asset_name },
|
||||
callback: (r) => {
|
||||
if(!r.message) {
|
||||
if (!r.message) {
|
||||
return;
|
||||
}
|
||||
const section = frm.dashboard.add_section('', __("Maintenance Log"));
|
||||
var rows = $('<div></div>').appendTo(section);
|
||||
const section = frm.dashboard.add_section("", __("Maintenance Log"));
|
||||
var rows = $("<div></div>").appendTo(section);
|
||||
// show
|
||||
(r.message || []).forEach(function(d) {
|
||||
(r.message || []).forEach(function (d) {
|
||||
$(`<div class='row' style='margin-bottom: 10px;'>
|
||||
<div class='col-sm-3 small'>
|
||||
<a onclick="frappe.set_route('List', 'Asset Maintenance Log',
|
||||
@@ -54,47 +52,46 @@ frappe.ui.form.on('Asset Maintenance', {
|
||||
</div>`).appendTo(rows);
|
||||
});
|
||||
frm.dashboard.show();
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
frappe.ui.form.on('Asset Maintenance Task', {
|
||||
start_date: (frm, cdt, cdn) => {
|
||||
frappe.ui.form.on("Asset Maintenance Task", {
|
||||
start_date: (frm, cdt, cdn) => {
|
||||
get_next_due_date(frm, cdt, cdn);
|
||||
},
|
||||
periodicity: (frm, cdt, cdn) => {
|
||||
periodicity: (frm, cdt, cdn) => {
|
||||
get_next_due_date(frm, cdt, cdn);
|
||||
},
|
||||
last_completion_date: (frm, cdt, cdn) => {
|
||||
last_completion_date: (frm, cdt, cdn) => {
|
||||
get_next_due_date(frm, cdt, cdn);
|
||||
},
|
||||
end_date: (frm, cdt, cdn) => {
|
||||
end_date: (frm, cdt, cdn) => {
|
||||
get_next_due_date(frm, cdt, cdn);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
var get_next_due_date = function (frm, cdt, cdn) {
|
||||
var d = locals[cdt][cdn];
|
||||
if (d.start_date && d.periodicity) {
|
||||
return frappe.call({
|
||||
method: 'erpnext.assets.doctype.asset_maintenance.asset_maintenance.calculate_next_due_date',
|
||||
method: "erpnext.assets.doctype.asset_maintenance.asset_maintenance.calculate_next_due_date",
|
||||
args: {
|
||||
start_date: d.start_date,
|
||||
periodicity: d.periodicity,
|
||||
end_date: d.end_date,
|
||||
last_completion_date: d.last_completion_date,
|
||||
next_due_date: d.next_due_date
|
||||
next_due_date: d.next_due_date,
|
||||
},
|
||||
callback: function(r) {
|
||||
callback: function (r) {
|
||||
if (r.message) {
|
||||
frappe.model.set_value(cdt, cdn, "next_due_date", r.message);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
frappe.model.set_value(cdt, cdn, "next_due_date", "");
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Asset Maintenance Log', {
|
||||
frappe.ui.form.on("Asset Maintenance Log", {
|
||||
asset_maintenance: (frm) => {
|
||||
frm.set_query('task', function(doc) {
|
||||
frm.set_query("task", function (doc) {
|
||||
return {
|
||||
query: "erpnext.assets.doctype.asset_maintenance_log.asset_maintenance_log.get_maintenance_tasks",
|
||||
filters: {
|
||||
'asset_maintenance': doc.asset_maintenance
|
||||
}
|
||||
asset_maintenance: doc.asset_maintenance,
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -3,20 +3,20 @@
|
||||
|
||||
frappe.views.calendar["Asset Maintenance Log"] = {
|
||||
field_map: {
|
||||
"start": "due_date",
|
||||
"end": "due_date",
|
||||
"id": "name",
|
||||
"title": "task",
|
||||
"allDay": "allDay",
|
||||
"progress": "progress"
|
||||
start: "due_date",
|
||||
end: "due_date",
|
||||
id: "name",
|
||||
title: "task",
|
||||
allDay: "allDay",
|
||||
progress: "progress",
|
||||
},
|
||||
filters: [
|
||||
{
|
||||
"fieldtype": "Link",
|
||||
"fieldname": "asset_name",
|
||||
"options": "Asset Maintenance",
|
||||
"label": __("Asset Maintenance")
|
||||
}
|
||||
fieldtype: "Link",
|
||||
fieldname: "asset_name",
|
||||
options: "Asset Maintenance",
|
||||
label: __("Asset Maintenance"),
|
||||
},
|
||||
],
|
||||
get_events_method: "frappe.desk.calendar.get_events"
|
||||
get_events_method: "frappe.desk.calendar.get_events",
|
||||
};
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
frappe.listview_settings['Asset Maintenance Log'] = {
|
||||
frappe.listview_settings["Asset Maintenance Log"] = {
|
||||
add_fields: ["maintenance_status"],
|
||||
has_indicator_for_draft: 1,
|
||||
get_indicator: function(doc) {
|
||||
if (doc.maintenance_status=="Planned") {
|
||||
get_indicator: function (doc) {
|
||||
if (doc.maintenance_status == "Planned") {
|
||||
return [__(doc.maintenance_status), "orange", "status,=," + doc.maintenance_status];
|
||||
} else if (doc.maintenance_status=="Completed") {
|
||||
} else if (doc.maintenance_status == "Completed") {
|
||||
return [__(doc.maintenance_status), "green", "status,=," + doc.maintenance_status];
|
||||
} else if (doc.maintenance_status=="Cancelled") {
|
||||
} else if (doc.maintenance_status == "Cancelled") {
|
||||
return [__(doc.maintenance_status), "red", "status,=," + doc.maintenance_status];
|
||||
} else if (doc.maintenance_status=="Overdue") {
|
||||
} else if (doc.maintenance_status == "Overdue") {
|
||||
return [__(doc.maintenance_status), "red", "status,=," + doc.maintenance_status];
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Asset Maintenance Team', {
|
||||
refresh: function() {
|
||||
|
||||
}
|
||||
frappe.ui.form.on("Asset Maintenance Team", {
|
||||
refresh: function () {},
|
||||
});
|
||||
|
||||
@@ -1,104 +1,107 @@
|
||||
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Asset Movement', {
|
||||
frappe.ui.form.on("Asset Movement", {
|
||||
setup: (frm) => {
|
||||
frm.set_query("to_employee", "assets", (doc) => {
|
||||
return {
|
||||
filters: {
|
||||
company: doc.company
|
||||
}
|
||||
company: doc.company,
|
||||
},
|
||||
};
|
||||
})
|
||||
});
|
||||
frm.set_query("from_employee", "assets", (doc) => {
|
||||
return {
|
||||
filters: {
|
||||
company: doc.company
|
||||
}
|
||||
company: doc.company,
|
||||
},
|
||||
};
|
||||
})
|
||||
});
|
||||
frm.set_query("reference_name", (doc) => {
|
||||
return {
|
||||
filters: {
|
||||
company: doc.company,
|
||||
docstatus: 1
|
||||
}
|
||||
docstatus: 1,
|
||||
},
|
||||
};
|
||||
})
|
||||
});
|
||||
frm.set_query("reference_doctype", () => {
|
||||
return {
|
||||
filters: {
|
||||
name: ["in", ["Purchase Receipt", "Purchase Invoice"]]
|
||||
}
|
||||
name: ["in", ["Purchase Receipt", "Purchase Invoice"]],
|
||||
},
|
||||
};
|
||||
}),
|
||||
frm.set_query("asset", "assets", () => {
|
||||
return {
|
||||
filters: {
|
||||
status: ["not in", ["Draft"]]
|
||||
}
|
||||
}
|
||||
})
|
||||
frm.set_query("asset", "assets", () => {
|
||||
return {
|
||||
filters: {
|
||||
status: ["not in", ["Draft"]],
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
onload: (frm) => {
|
||||
frm.trigger('set_required_fields');
|
||||
frm.trigger("set_required_fields");
|
||||
},
|
||||
|
||||
purpose: (frm) => {
|
||||
frm.trigger('set_required_fields');
|
||||
frm.trigger("set_required_fields");
|
||||
},
|
||||
|
||||
set_required_fields: (frm, cdt, cdn) => {
|
||||
let fieldnames_to_be_altered;
|
||||
if (frm.doc.purpose === 'Transfer') {
|
||||
if (frm.doc.purpose === "Transfer") {
|
||||
fieldnames_to_be_altered = {
|
||||
target_location: { read_only: 0, reqd: 1 },
|
||||
source_location: { read_only: 1, reqd: 1 },
|
||||
from_employee: { read_only: 1, reqd: 0 },
|
||||
to_employee: { read_only: 1, reqd: 0 }
|
||||
to_employee: { read_only: 1, reqd: 0 },
|
||||
};
|
||||
}
|
||||
else if (frm.doc.purpose === 'Receipt') {
|
||||
} else if (frm.doc.purpose === "Receipt") {
|
||||
fieldnames_to_be_altered = {
|
||||
target_location: { read_only: 0, reqd: 1 },
|
||||
source_location: { read_only: 1, reqd: 0 },
|
||||
from_employee: { read_only: 0, reqd: 0 },
|
||||
to_employee: { read_only: 1, reqd: 0 }
|
||||
to_employee: { read_only: 1, reqd: 0 },
|
||||
};
|
||||
}
|
||||
else if (frm.doc.purpose === 'Issue') {
|
||||
} else if (frm.doc.purpose === "Issue") {
|
||||
fieldnames_to_be_altered = {
|
||||
target_location: { read_only: 1, reqd: 0 },
|
||||
source_location: { read_only: 1, reqd: 0 },
|
||||
from_employee: { read_only: 1, reqd: 0 },
|
||||
to_employee: { read_only: 0, reqd: 1 }
|
||||
to_employee: { read_only: 0, reqd: 1 },
|
||||
};
|
||||
}
|
||||
if (fieldnames_to_be_altered) {
|
||||
Object.keys(fieldnames_to_be_altered).forEach(fieldname => {
|
||||
Object.keys(fieldnames_to_be_altered).forEach((fieldname) => {
|
||||
let property_to_be_altered = fieldnames_to_be_altered[fieldname];
|
||||
Object.keys(property_to_be_altered).forEach(property => {
|
||||
Object.keys(property_to_be_altered).forEach((property) => {
|
||||
let value = property_to_be_altered[property];
|
||||
frm.fields_dict['assets'].grid.update_docfield_property(fieldname, property, value);
|
||||
frm.fields_dict["assets"].grid.update_docfield_property(fieldname, property, value);
|
||||
});
|
||||
});
|
||||
frm.refresh_field('assets');
|
||||
frm.refresh_field("assets");
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
frappe.ui.form.on('Asset Movement Item', {
|
||||
asset: function(frm, cdt, cdn) {
|
||||
frappe.ui.form.on("Asset Movement Item", {
|
||||
asset: function (frm, cdt, cdn) {
|
||||
// on manual entry of an asset auto sets their source location / employee
|
||||
const asset_name = locals[cdt][cdn].asset;
|
||||
if (asset_name){
|
||||
frappe.db.get_doc('Asset', asset_name).then((asset_doc) => {
|
||||
if(asset_doc.location) frappe.model.set_value(cdt, cdn, 'source_location', asset_doc.location);
|
||||
if(asset_doc.custodian) frappe.model.set_value(cdt, cdn, 'from_employee', asset_doc.custodian);
|
||||
}).catch((err) => {
|
||||
console.log(err); // eslint-disable-line
|
||||
});
|
||||
if (asset_name) {
|
||||
frappe.db
|
||||
.get_doc("Asset", asset_name)
|
||||
.then((asset_doc) => {
|
||||
if (asset_doc.location)
|
||||
frappe.model.set_value(cdt, cdn, "source_location", asset_doc.location);
|
||||
if (asset_doc.custodian)
|
||||
frappe.model.set_value(cdt, cdn, "from_employee", asset_doc.custodian);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err); // eslint-disable-line
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Asset Repair', {
|
||||
setup: function(frm) {
|
||||
frm.fields_dict.cost_center.get_query = function(doc) {
|
||||
frappe.ui.form.on("Asset Repair", {
|
||||
setup: function (frm) {
|
||||
frm.fields_dict.cost_center.get_query = function (doc) {
|
||||
return {
|
||||
filters: {
|
||||
'is_group': 0,
|
||||
'company': doc.company
|
||||
}
|
||||
is_group: 0,
|
||||
company: doc.company,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
frm.fields_dict.project.get_query = function(doc) {
|
||||
frm.fields_dict.project.get_query = function (doc) {
|
||||
return {
|
||||
filters: {
|
||||
'company': doc.company
|
||||
}
|
||||
company: doc.company,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
frm.fields_dict.warehouse.get_query = function(doc) {
|
||||
frm.fields_dict.warehouse.get_query = function (doc) {
|
||||
return {
|
||||
filters: {
|
||||
'is_group': 0,
|
||||
'company': doc.company
|
||||
}
|
||||
is_group: 0,
|
||||
company: doc.company,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -33,87 +33,87 @@ frappe.ui.form.on('Asset Repair', {
|
||||
let row = locals[cdt][cdn];
|
||||
return {
|
||||
filters: {
|
||||
'item_code': row.item_code,
|
||||
'voucher_type': doc.doctype,
|
||||
'voucher_no': ["in", [doc.name, ""]],
|
||||
'is_cancelled': 0,
|
||||
}
|
||||
}
|
||||
item_code: row.item_code,
|
||||
voucher_type: doc.doctype,
|
||||
voucher_no: ["in", [doc.name, ""]],
|
||||
is_cancelled: 0,
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
refresh: function(frm) {
|
||||
refresh: function (frm) {
|
||||
if (frm.doc.docstatus) {
|
||||
frm.add_custom_button(__("View General Ledger"), function() {
|
||||
frm.add_custom_button(__("View General Ledger"), function () {
|
||||
frappe.route_options = {
|
||||
"voucher_no": frm.doc.name
|
||||
voucher_no: frm.doc.name,
|
||||
};
|
||||
frappe.set_route("query-report", "General Ledger");
|
||||
});
|
||||
}
|
||||
|
||||
let sbb_field = frm.get_docfield('stock_items', 'serial_and_batch_bundle');
|
||||
let sbb_field = frm.get_docfield("stock_items", "serial_and_batch_bundle");
|
||||
if (sbb_field) {
|
||||
sbb_field.get_route_options_for_new_doc = (row) => {
|
||||
return {
|
||||
'item_code': row.doc.item_code,
|
||||
'voucher_type': frm.doc.doctype,
|
||||
}
|
||||
item_code: row.doc.item_code,
|
||||
voucher_type: frm.doc.doctype,
|
||||
};
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
repair_status: (frm) => {
|
||||
if (frm.doc.completion_date && frm.doc.repair_status == "Completed") {
|
||||
frappe.call ({
|
||||
frappe.call({
|
||||
method: "erpnext.assets.doctype.asset_repair.asset_repair.get_downtime",
|
||||
args: {
|
||||
"failure_date":frm.doc.failure_date,
|
||||
"completion_date":frm.doc.completion_date
|
||||
failure_date: frm.doc.failure_date,
|
||||
completion_date: frm.doc.completion_date,
|
||||
},
|
||||
callback: function(r) {
|
||||
if(r.message) {
|
||||
callback: function (r) {
|
||||
if (r.message) {
|
||||
frm.set_value("downtime", r.message + " Hrs");
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (frm.doc.repair_status == "Completed") {
|
||||
frm.set_value('completion_date', frappe.datetime.now_datetime());
|
||||
frm.set_value("completion_date", frappe.datetime.now_datetime());
|
||||
}
|
||||
},
|
||||
|
||||
stock_items_on_form_rendered() {
|
||||
erpnext.setup_serial_or_batch_no();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
frappe.ui.form.on('Asset Repair Consumed Item', {
|
||||
item_code: function(frm, cdt, cdn) {
|
||||
frappe.ui.form.on("Asset Repair Consumed Item", {
|
||||
item_code: function (frm, cdt, cdn) {
|
||||
var item = locals[cdt][cdn];
|
||||
|
||||
let item_args = {
|
||||
'item_code': item.item_code,
|
||||
'warehouse': frm.doc.warehouse,
|
||||
'qty': item.consumed_quantity,
|
||||
'serial_no': item.serial_no,
|
||||
'company': frm.doc.company,
|
||||
item_code: item.item_code,
|
||||
warehouse: frm.doc.warehouse,
|
||||
qty: item.consumed_quantity,
|
||||
serial_no: item.serial_no,
|
||||
company: frm.doc.company,
|
||||
};
|
||||
|
||||
frappe.call({
|
||||
method: 'erpnext.stock.utils.get_incoming_rate',
|
||||
method: "erpnext.stock.utils.get_incoming_rate",
|
||||
args: {
|
||||
args: item_args
|
||||
args: item_args,
|
||||
},
|
||||
callback: function (r) {
|
||||
frappe.model.set_value(cdt, cdn, "valuation_rate", r.message);
|
||||
},
|
||||
callback: function(r) {
|
||||
frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
consumed_quantity: function(frm, cdt, cdn) {
|
||||
consumed_quantity: function (frm, cdt, cdn) {
|
||||
var row = locals[cdt][cdn];
|
||||
frappe.model.set_value(cdt, cdn, 'total_value', row.consumed_quantity * row.valuation_rate);
|
||||
frappe.model.set_value(cdt, cdn, "total_value", row.consumed_quantity * row.valuation_rate);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
frappe.listview_settings['Asset Repair'] = {
|
||||
frappe.listview_settings["Asset Repair"] = {
|
||||
add_fields: ["repair_status"],
|
||||
get_indicator: function(doc) {
|
||||
if(doc.repair_status=="Pending") {
|
||||
get_indicator: function (doc) {
|
||||
if (doc.repair_status == "Pending") {
|
||||
return [__("Pending"), "orange"];
|
||||
} else if(doc.repair_status=="Completed") {
|
||||
} else if (doc.repair_status == "Completed") {
|
||||
return [__("Completed"), "green"];
|
||||
} else if(doc.repair_status=="Cancelled") {
|
||||
} else if (doc.repair_status == "Cancelled") {
|
||||
return [__("Cancelled"), "red"];
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
frappe.ui.form.on('Asset Shift Allocation', {
|
||||
onload: function(frm) {
|
||||
frappe.ui.form.on("Asset Shift Allocation", {
|
||||
onload: function (frm) {
|
||||
frm.events.make_schedules_editable(frm);
|
||||
},
|
||||
|
||||
make_schedules_editable: function(frm) {
|
||||
make_schedules_editable: function (frm) {
|
||||
frm.toggle_enable("depreciation_schedule", true);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable("schedule_date", false);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable("depreciation_amount", false);
|
||||
frm.fields_dict["depreciation_schedule"].grid.toggle_enable("shift", true);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -3,61 +3,61 @@
|
||||
|
||||
frappe.provide("erpnext.accounts.dimensions");
|
||||
|
||||
frappe.ui.form.on('Asset Value Adjustment', {
|
||||
setup: function(frm) {
|
||||
frm.add_fetch('company', 'cost_center', 'cost_center');
|
||||
frm.set_query('cost_center', function() {
|
||||
frappe.ui.form.on("Asset Value Adjustment", {
|
||||
setup: function (frm) {
|
||||
frm.add_fetch("company", "cost_center", "cost_center");
|
||||
frm.set_query("cost_center", function () {
|
||||
return {
|
||||
filters: {
|
||||
company: frm.doc.company,
|
||||
is_group: 0
|
||||
}
|
||||
}
|
||||
is_group: 0,
|
||||
},
|
||||
};
|
||||
});
|
||||
frm.set_query('asset', function() {
|
||||
frm.set_query("asset", function () {
|
||||
return {
|
||||
filters: {
|
||||
calculate_depreciation: 1,
|
||||
docstatus: 1
|
||||
}
|
||||
docstatus: 1,
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
onload: function(frm) {
|
||||
if(frm.is_new() && frm.doc.asset) {
|
||||
onload: function (frm) {
|
||||
if (frm.is_new() && frm.doc.asset) {
|
||||
frm.trigger("set_current_asset_value");
|
||||
}
|
||||
|
||||
erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype);
|
||||
},
|
||||
|
||||
company: function(frm) {
|
||||
company: function (frm) {
|
||||
erpnext.accounts.dimensions.update_dimension(frm, frm.doctype);
|
||||
},
|
||||
|
||||
asset: function(frm) {
|
||||
asset: function (frm) {
|
||||
frm.trigger("set_current_asset_value");
|
||||
},
|
||||
|
||||
finance_book: function(frm) {
|
||||
finance_book: function (frm) {
|
||||
frm.trigger("set_current_asset_value");
|
||||
},
|
||||
|
||||
set_current_asset_value: function(frm) {
|
||||
set_current_asset_value: function (frm) {
|
||||
if (frm.doc.asset) {
|
||||
frm.call({
|
||||
method: "erpnext.assets.doctype.asset.asset.get_asset_value_after_depreciation",
|
||||
args: {
|
||||
asset_name: frm.doc.asset,
|
||||
finance_book: frm.doc.finance_book
|
||||
finance_book: frm.doc.finance_book,
|
||||
},
|
||||
callback: function(r) {
|
||||
callback: function (r) {
|
||||
if (r.message) {
|
||||
frm.set_value('current_asset_value', r.message);
|
||||
frm.set_value("current_asset_value", r.message);
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Location', {
|
||||
frappe.ui.form.on("Location", {
|
||||
setup: function (frm) {
|
||||
frm.set_query("parent_location", function () {
|
||||
return {
|
||||
"filters": {
|
||||
"is_group": 1
|
||||
}
|
||||
filters: {
|
||||
is_group: 1,
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
@@ -15,10 +15,9 @@ frappe.ui.form.on('Location', {
|
||||
onload_post_render(frm) {
|
||||
if (!frm.doc.location && frm.doc.latitude && frm.doc.longitude) {
|
||||
frm.fields_dict.location.map.setView([frm.doc.latitude, frm.doc.longitude], 13);
|
||||
}
|
||||
else {
|
||||
frm.doc.latitude = frm.fields_dict.location.map.getCenter()['lat'];
|
||||
frm.doc.longitude = frm.fields_dict.location.map.getCenter()['lng'];
|
||||
} else {
|
||||
frm.doc.latitude = frm.fields_dict.location.map.getCenter()["lat"];
|
||||
frm.doc.longitude = frm.fields_dict.location.map.getCenter()["lng"];
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
frappe.treeview_settings["Location"] = {
|
||||
ignore_fields: ["parent_location"],
|
||||
get_tree_nodes: 'erpnext.assets.doctype.location.location.get_children',
|
||||
add_tree_node: 'erpnext.assets.doctype.location.location.add_node',
|
||||
get_tree_nodes: "erpnext.assets.doctype.location.location.get_children",
|
||||
add_tree_node: "erpnext.assets.doctype.location.location.add_node",
|
||||
filters: [
|
||||
{
|
||||
fieldname: "location",
|
||||
@@ -10,9 +10,9 @@ frappe.treeview_settings["Location"] = {
|
||||
label: __("Location"),
|
||||
get_query: function () {
|
||||
return {
|
||||
filters: [["Location", "is_group", "=", 1]]
|
||||
filters: [["Location", "is_group", "=", 1]],
|
||||
};
|
||||
}
|
||||
},
|
||||
},
|
||||
],
|
||||
breadcrumb: "Assets",
|
||||
@@ -24,10 +24,10 @@ frappe.treeview_settings["Location"] = {
|
||||
action: function () {
|
||||
frappe.new_doc("Location", true);
|
||||
},
|
||||
condition: 'frappe.boot.user.can_create.indexOf("Location") !== -1'
|
||||
}
|
||||
condition: 'frappe.boot.user.can_create.indexOf("Location") !== -1',
|
||||
},
|
||||
],
|
||||
onload: function (treeview) {
|
||||
treeview.make_tree();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on('Maintenance Team Member', {
|
||||
refresh: function() {
|
||||
|
||||
}
|
||||
frappe.ui.form.on("Maintenance Team Member", {
|
||||
refresh: function () {},
|
||||
});
|
||||
|
||||
@@ -1,105 +1,104 @@
|
||||
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
|
||||
frappe.query_reports["Fixed Asset Register"] = {
|
||||
"filters": [
|
||||
filters: [
|
||||
{
|
||||
fieldname:"company",
|
||||
fieldname: "company",
|
||||
label: __("Company"),
|
||||
fieldtype: "Link",
|
||||
options: "Company",
|
||||
default: frappe.defaults.get_user_default("Company"),
|
||||
reqd: 1
|
||||
reqd: 1,
|
||||
},
|
||||
{
|
||||
fieldname:"status",
|
||||
fieldname: "status",
|
||||
label: __("Status"),
|
||||
fieldtype: "Select",
|
||||
options: "\nIn Location\nDisposed",
|
||||
default: 'In Location'
|
||||
default: "In Location",
|
||||
},
|
||||
{
|
||||
fieldname:"asset_category",
|
||||
fieldname: "asset_category",
|
||||
label: __("Asset Category"),
|
||||
fieldtype: "Link",
|
||||
options: "Asset Category"
|
||||
options: "Asset Category",
|
||||
},
|
||||
{
|
||||
fieldname:"cost_center",
|
||||
fieldname: "cost_center",
|
||||
label: __("Cost Center"),
|
||||
fieldtype: "Link",
|
||||
options: "Cost Center"
|
||||
options: "Cost Center",
|
||||
},
|
||||
{
|
||||
fieldname:"group_by",
|
||||
fieldname: "group_by",
|
||||
label: __("Group By"),
|
||||
fieldtype: "Select",
|
||||
options: ["--Select a group--", "Asset Category", "Location"],
|
||||
default: "--Select a group--",
|
||||
reqd: 1
|
||||
reqd: 1,
|
||||
},
|
||||
{
|
||||
fieldname:"only_existing_assets",
|
||||
fieldname: "only_existing_assets",
|
||||
label: __("Only existing assets"),
|
||||
fieldtype: "Check"
|
||||
fieldtype: "Check",
|
||||
},
|
||||
{
|
||||
fieldname:"finance_book",
|
||||
fieldname: "finance_book",
|
||||
label: __("Finance Book"),
|
||||
fieldtype: "Link",
|
||||
options: "Finance Book",
|
||||
},
|
||||
{
|
||||
"fieldname": "include_default_book_assets",
|
||||
"label": __("Include Default FB Assets"),
|
||||
"fieldtype": "Check",
|
||||
"default": 1
|
||||
fieldname: "include_default_book_assets",
|
||||
label: __("Include Default FB Assets"),
|
||||
fieldtype: "Check",
|
||||
default: 1,
|
||||
},
|
||||
{
|
||||
"fieldname":"filter_based_on",
|
||||
"label": __("Period Based On"),
|
||||
"fieldtype": "Select",
|
||||
"options": ["--Select a period--", "Fiscal Year", "Date Range"],
|
||||
"default": "--Select a period--",
|
||||
fieldname: "filter_based_on",
|
||||
label: __("Period Based On"),
|
||||
fieldtype: "Select",
|
||||
options: ["--Select a period--", "Fiscal Year", "Date Range"],
|
||||
default: "--Select a period--",
|
||||
},
|
||||
{
|
||||
"fieldname":"from_date",
|
||||
"label": __("Start Date"),
|
||||
"fieldtype": "Date",
|
||||
"default": frappe.datetime.add_months(frappe.datetime.nowdate(), -12),
|
||||
"depends_on": "eval: doc.filter_based_on == 'Date Range'",
|
||||
fieldname: "from_date",
|
||||
label: __("Start Date"),
|
||||
fieldtype: "Date",
|
||||
default: frappe.datetime.add_months(frappe.datetime.nowdate(), -12),
|
||||
depends_on: "eval: doc.filter_based_on == 'Date Range'",
|
||||
},
|
||||
{
|
||||
"fieldname":"to_date",
|
||||
"label": __("End Date"),
|
||||
"fieldtype": "Date",
|
||||
"default": frappe.datetime.nowdate(),
|
||||
"depends_on": "eval: doc.filter_based_on == 'Date Range'",
|
||||
fieldname: "to_date",
|
||||
label: __("End Date"),
|
||||
fieldtype: "Date",
|
||||
default: frappe.datetime.nowdate(),
|
||||
depends_on: "eval: doc.filter_based_on == 'Date Range'",
|
||||
},
|
||||
{
|
||||
"fieldname":"from_fiscal_year",
|
||||
"label": __("Start Year"),
|
||||
"fieldtype": "Link",
|
||||
"options": "Fiscal Year",
|
||||
"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
|
||||
"depends_on": "eval: doc.filter_based_on == 'Fiscal Year'",
|
||||
fieldname: "from_fiscal_year",
|
||||
label: __("Start Year"),
|
||||
fieldtype: "Link",
|
||||
options: "Fiscal Year",
|
||||
default: erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
|
||||
depends_on: "eval: doc.filter_based_on == 'Fiscal Year'",
|
||||
},
|
||||
{
|
||||
"fieldname":"to_fiscal_year",
|
||||
"label": __("End Year"),
|
||||
"fieldtype": "Link",
|
||||
"options": "Fiscal Year",
|
||||
"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
|
||||
"depends_on": "eval: doc.filter_based_on == 'Fiscal Year'",
|
||||
fieldname: "to_fiscal_year",
|
||||
label: __("End Year"),
|
||||
fieldtype: "Link",
|
||||
options: "Fiscal Year",
|
||||
default: erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
|
||||
depends_on: "eval: doc.filter_based_on == 'Fiscal Year'",
|
||||
},
|
||||
{
|
||||
"fieldname":"date_based_on",
|
||||
"label": __("Date Based On"),
|
||||
"fieldtype": "Select",
|
||||
"options": ["Purchase Date", "Available For Use Date"],
|
||||
"default": "Purchase Date",
|
||||
"depends_on": "eval: doc.filter_based_on == 'Date Range' || doc.filter_based_on == 'Fiscal Year'",
|
||||
fieldname: "date_based_on",
|
||||
label: __("Date Based On"),
|
||||
fieldtype: "Select",
|
||||
options: ["Purchase Date", "Available For Use Date"],
|
||||
default: "Purchase Date",
|
||||
depends_on: "eval: doc.filter_based_on == 'Date Range' || doc.filter_based_on == 'Fiscal Year'",
|
||||
},
|
||||
]
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user