Files
erpnext/erpnext/stock/report/stock_ledger/stock_ledger.js
ravibharathi656 db4fc8545d fix: handle all searchfields in items
(cherry picked from commit ad559c3491)
2025-08-21 10:56:31 +00:00

140 lines
3.2 KiB
JavaScript

// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
frappe.query_reports["Stock Ledger"] = {
filters: [
{
fieldname: "company",
label: __("Company"),
fieldtype: "Link",
options: "Company",
default: frappe.defaults.get_user_default("Company"),
reqd: 1,
},
{
fieldname: "from_date",
label: __("From Date"),
fieldtype: "Date",
default: frappe.datetime.add_months(frappe.datetime.get_today(), -1),
reqd: 1,
},
{
fieldname: "to_date",
label: __("To Date"),
fieldtype: "Date",
default: frappe.datetime.get_today(),
reqd: 1,
},
{
fieldname: "warehouse",
label: __("Warehouses"),
fieldtype: "MultiSelectList",
options: "Warehouse",
get_data: function (txt) {
const company = frappe.query_report.get_filter_value("company");
return frappe.db.get_link_options("Warehouse", txt, {
company: company,
});
},
},
{
fieldname: "item_code",
label: __("Items"),
fieldtype: "MultiSelectList",
options: "Item",
get_data: async function (txt) {
let { message: data } = await frappe.call({
method: "erpnext.controllers.queries.item_query",
args: {
doctype: "Item",
txt: txt,
searchfield: "name",
start: 0,
page_len: 10,
filters: {},
as_dict: 1,
},
});
data = data.map(({ name, ...rest }) => {
return {
value: name,
description: Object.values(rest),
};
});
return data || [];
},
},
{
fieldname: "item_group",
label: __("Item Group"),
fieldtype: "Link",
options: "Item Group",
},
{
fieldname: "batch_no",
label: __("Batch No"),
fieldtype: "Link",
options: "Batch",
on_change() {
const batch_no = frappe.query_report.get_filter_value("batch_no");
if (batch_no) {
frappe.query_report.set_filter_value("segregate_serial_batch_bundle", 1);
} else {
frappe.query_report.set_filter_value("segregate_serial_batch_bundle", 0);
}
},
},
{
fieldname: "brand",
label: __("Brand"),
fieldtype: "Link",
options: "Brand",
},
{
fieldname: "voucher_no",
label: __("Voucher #"),
fieldtype: "Data",
},
{
fieldname: "project",
label: __("Project"),
fieldtype: "Link",
options: "Project",
},
{
fieldname: "include_uom",
label: __("Include UOM"),
fieldtype: "Link",
options: "UOM",
},
{
fieldname: "valuation_field_type",
label: __("Valuation Field Type"),
fieldtype: "Select",
width: "80",
options: "Currency\nFloat",
default: "Currency",
},
{
fieldname: "segregate_serial_batch_bundle",
label: __("Segregate Serial / Batch Bundle"),
fieldtype: "Check",
default: 0,
},
],
formatter: function (value, row, column, data, default_formatter) {
value = default_formatter(value, row, column, data);
if (column.fieldname == "out_qty" && data && data.out_qty < 0) {
value = "<span style='color:red'>" + value + "</span>";
} else if (column.fieldname == "in_qty" && data && data.in_qty > 0) {
value = "<span style='color:green'>" + value + "</span>";
}
return value;
},
};
erpnext.utils.add_inventory_dimensions("Stock Ledger", 10);