mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-20 10:45:29 +00:00
fix: warehouse type filter for stock reports
(cherry picked from commit 4250ac821f)
This commit is contained in:
committed by
Mergify
parent
3bb26fde2b
commit
48351d6da8
@@ -40,16 +40,25 @@ frappe.query_reports["Batch-Wise Balance History"] = {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
fieldname: "warehouse_type",
|
||||||
|
label: __("Warehouse Type"),
|
||||||
|
fieldtype: "Link",
|
||||||
|
width: "80",
|
||||||
|
options: "Warehouse Type",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
fieldname: "warehouse",
|
fieldname: "warehouse",
|
||||||
label: __("Warehouse"),
|
label: __("Warehouse"),
|
||||||
fieldtype: "Link",
|
fieldtype: "Link",
|
||||||
options: "Warehouse",
|
options: "Warehouse",
|
||||||
get_query: function () {
|
get_query: function () {
|
||||||
|
let warehouse_type = frappe.query_report.get_filter_value("warehouse_type");
|
||||||
let company = frappe.query_report.get_filter_value("company");
|
let company = frappe.query_report.get_filter_value("company");
|
||||||
return {
|
return {
|
||||||
filters: {
|
filters: {
|
||||||
company: company,
|
...(warehouse_type && { warehouse_type }),
|
||||||
|
...(company && { company }),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -121,6 +121,16 @@ def get_stock_ledger_entries_for_batch_no(filters):
|
|||||||
)
|
)
|
||||||
|
|
||||||
query = apply_warehouse_filter(query, sle, filters)
|
query = apply_warehouse_filter(query, sle, filters)
|
||||||
|
if filters.warehouse_type and not filters.warehouse:
|
||||||
|
warehouses = frappe.get_all(
|
||||||
|
"Warehouse",
|
||||||
|
filters={"warehouse_type": filters.warehouse_type, "is_group": 0},
|
||||||
|
pluck="name",
|
||||||
|
)
|
||||||
|
|
||||||
|
if warehouses:
|
||||||
|
query = query.where(sle.warehouse.isin(warehouses))
|
||||||
|
|
||||||
for field in ["item_code", "batch_no", "company"]:
|
for field in ["item_code", "batch_no", "company"]:
|
||||||
if filters.get(field):
|
if filters.get(field):
|
||||||
query = query.where(sle[field] == filters.get(field))
|
query = query.where(sle[field] == filters.get(field))
|
||||||
@@ -154,6 +164,16 @@ def get_stock_ledger_entries_for_batch_bundle(filters):
|
|||||||
)
|
)
|
||||||
|
|
||||||
query = apply_warehouse_filter(query, sle, filters)
|
query = apply_warehouse_filter(query, sle, filters)
|
||||||
|
if filters.warehouse_type and not filters.warehouse:
|
||||||
|
warehouses = frappe.get_all(
|
||||||
|
"Warehouse",
|
||||||
|
filters={"warehouse_type": filters.warehouse_type, "is_group": 0},
|
||||||
|
pluck="name",
|
||||||
|
)
|
||||||
|
|
||||||
|
if warehouses:
|
||||||
|
query = query.where(sle.warehouse.isin(warehouses))
|
||||||
|
|
||||||
for field in ["item_code", "batch_no", "company"]:
|
for field in ["item_code", "batch_no", "company"]:
|
||||||
if filters.get(field):
|
if filters.get(field):
|
||||||
if field == "batch_no":
|
if field == "batch_no":
|
||||||
|
|||||||
@@ -18,15 +18,24 @@ frappe.query_reports["Stock Ageing"] = {
|
|||||||
default: frappe.datetime.get_today(),
|
default: frappe.datetime.get_today(),
|
||||||
reqd: 1,
|
reqd: 1,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
fieldname: "warehouse_type",
|
||||||
|
label: __("Warehouse Type"),
|
||||||
|
fieldtype: "Link",
|
||||||
|
width: "80",
|
||||||
|
options: "Warehouse Type",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
fieldname: "warehouse",
|
fieldname: "warehouse",
|
||||||
label: __("Warehouse"),
|
label: __("Warehouse"),
|
||||||
fieldtype: "Link",
|
fieldtype: "Link",
|
||||||
options: "Warehouse",
|
options: "Warehouse",
|
||||||
get_query: () => {
|
get_query: () => {
|
||||||
const company = frappe.query_report.get_filter_value("company");
|
let warehouse_type = frappe.query_report.get_filter_value("warehouse_type");
|
||||||
|
let company = frappe.query_report.get_filter_value("company");
|
||||||
return {
|
return {
|
||||||
filters: {
|
filters: {
|
||||||
|
...(warehouse_type && { warehouse_type }),
|
||||||
...(company && { company }),
|
...(company && { company }),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -434,6 +434,15 @@ class FIFOSlots:
|
|||||||
|
|
||||||
if self.filters.get("warehouse"):
|
if self.filters.get("warehouse"):
|
||||||
sle_query = self.__get_warehouse_conditions(sle, sle_query)
|
sle_query = self.__get_warehouse_conditions(sle, sle_query)
|
||||||
|
elif self.filters.get("warehouse_type"):
|
||||||
|
warehouses = frappe.get_all(
|
||||||
|
"Warehouse",
|
||||||
|
filters={"warehouse_type": self.filters.get("warehouse_type"), "is_group": 0},
|
||||||
|
pluck="name",
|
||||||
|
)
|
||||||
|
|
||||||
|
if warehouses:
|
||||||
|
sle_query = sle_query.where(sle.warehouse.isin(warehouses))
|
||||||
|
|
||||||
sle_query = sle_query.orderby(sle.posting_date, sle.posting_time, sle.creation, sle.actual_qty)
|
sle_query = sle_query.orderby(sle.posting_date, sle.posting_time, sle.creation, sle.actual_qty)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user