mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 08:54:45 +00:00
Merge branch 'version-13-hotfix' into mergify/bp/version-13-hotfix/pr-33444
This commit is contained in:
@@ -81,6 +81,7 @@ class TestItem(FrappeTestCase):
|
|||||||
def test_get_item_details(self):
|
def test_get_item_details(self):
|
||||||
# delete modified item price record and make as per test_records
|
# delete modified item price record and make as per test_records
|
||||||
frappe.db.sql("""delete from `tabItem Price`""")
|
frappe.db.sql("""delete from `tabItem Price`""")
|
||||||
|
frappe.db.sql("""delete from `tabBin`""")
|
||||||
|
|
||||||
to_check = {
|
to_check = {
|
||||||
"item_code": "_Test Item",
|
"item_code": "_Test Item",
|
||||||
@@ -101,9 +102,26 @@ class TestItem(FrappeTestCase):
|
|||||||
"batch_no": None,
|
"batch_no": None,
|
||||||
"uom": "_Test UOM",
|
"uom": "_Test UOM",
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
|
"reserved_qty": 1,
|
||||||
|
"actual_qty": 5,
|
||||||
|
"ordered_qty": 10,
|
||||||
|
"projected_qty": 14,
|
||||||
}
|
}
|
||||||
|
|
||||||
make_test_objects("Item Price")
|
make_test_objects("Item Price")
|
||||||
|
make_test_objects(
|
||||||
|
"Bin",
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"item_code": "_Test Item",
|
||||||
|
"warehouse": "_Test Warehouse - _TC",
|
||||||
|
"reserved_qty": 1,
|
||||||
|
"actual_qty": 5,
|
||||||
|
"ordered_qty": 10,
|
||||||
|
"projected_qty": 14,
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
company = "_Test Company"
|
company = "_Test Company"
|
||||||
currency = frappe.get_cached_value("Company", company, "default_currency")
|
currency = frappe.get_cached_value("Company", company, "default_currency")
|
||||||
@@ -127,7 +145,7 @@ class TestItem(FrappeTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
for key, value in to_check.items():
|
for key, value in to_check.items():
|
||||||
self.assertEqual(value, details.get(key))
|
self.assertEqual(value, details.get(key), key)
|
||||||
|
|
||||||
def test_item_tax_template(self):
|
def test_item_tax_template(self):
|
||||||
expected_item_tax_template = [
|
expected_item_tax_template = [
|
||||||
|
|||||||
@@ -9,18 +9,7 @@ import frappe
|
|||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
from frappe.query_builder.functions import Sum
|
from frappe.query_builder.functions import Sum
|
||||||
from frappe.utils import (
|
from frappe.utils import cint, comma_or, cstr, flt, format_time, formatdate, getdate, nowdate
|
||||||
add_days,
|
|
||||||
cint,
|
|
||||||
comma_or,
|
|
||||||
cstr,
|
|
||||||
flt,
|
|
||||||
format_time,
|
|
||||||
formatdate,
|
|
||||||
getdate,
|
|
||||||
nowdate,
|
|
||||||
today,
|
|
||||||
)
|
|
||||||
from six import iteritems, itervalues, string_types
|
from six import iteritems, itervalues, string_types
|
||||||
|
|
||||||
import erpnext
|
import erpnext
|
||||||
@@ -2565,4 +2554,3 @@ def get_supplied_items(purchase_order):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return supplied_item_details
|
return supplied_item_details
|
||||||
|
|
||||||
|
|||||||
@@ -1161,7 +1161,7 @@ def get_projected_qty(item_code, warehouse):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_bin_details(item_code, warehouse, company=None, include_child_warehouses=False):
|
def get_bin_details(item_code, warehouse, company=None, include_child_warehouses=False):
|
||||||
bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0}
|
bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0, "ordered_qty": 0}
|
||||||
|
|
||||||
if warehouse:
|
if warehouse:
|
||||||
from frappe.query_builder.functions import Coalesce, Sum
|
from frappe.query_builder.functions import Coalesce, Sum
|
||||||
@@ -1177,12 +1177,14 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses
|
|||||||
Coalesce(Sum(bin.projected_qty), 0).as_("projected_qty"),
|
Coalesce(Sum(bin.projected_qty), 0).as_("projected_qty"),
|
||||||
Coalesce(Sum(bin.actual_qty), 0).as_("actual_qty"),
|
Coalesce(Sum(bin.actual_qty), 0).as_("actual_qty"),
|
||||||
Coalesce(Sum(bin.reserved_qty), 0).as_("reserved_qty"),
|
Coalesce(Sum(bin.reserved_qty), 0).as_("reserved_qty"),
|
||||||
|
Coalesce(Sum(bin.ordered_qty), 0).as_("ordered_qty"),
|
||||||
)
|
)
|
||||||
.where((bin.item_code == item_code) & (bin.warehouse.isin(warehouses)))
|
.where((bin.item_code == item_code) & (bin.warehouse.isin(warehouses)))
|
||||||
).run(as_dict=True)[0]
|
).run(as_dict=True)[0]
|
||||||
|
|
||||||
if company:
|
if company:
|
||||||
bin_details["company_total_stock"] = get_company_total_stock(item_code, company)
|
bin_details["company_total_stock"] = get_company_total_stock(item_code, company)
|
||||||
|
|
||||||
return bin_details
|
return bin_details
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user