fix: batch qty calculation (backport #45367) (#45388)

fix: batch qty calculation

(cherry picked from commit f07a71a882)

Co-authored-by: Rohit Waghchaure <rohitw1991@gmail.com>
(cherry picked from commit 767529f0ec)
This commit is contained in:
mergify[bot]
2025-01-23 11:17:14 +05:30
committed by Mergify
parent 89f7834517
commit 42f7ee905c
2 changed files with 12 additions and 1 deletions

View File

@@ -835,7 +835,8 @@ class TestPOSInvoice(unittest.TestCase):
{
"item_code": item.name,
"warehouse": pos_inv2.items[0].warehouse,
"voucher_type": "Delivery Note",
"voucher_type": "POS Invoice",
"voucher_no": pos_inv2.name,
"qty": 2,
"avg_rate": 300,
"batches": frappe._dict({"TestBatch 01": 2}),

View File

@@ -6,6 +6,7 @@ from frappe.model.naming import make_autoname
from frappe.query_builder.functions import CombineDatetime, Sum, Timestamp
from frappe.utils import add_days, cint, cstr, flt, get_link_to_form, now, nowtime, today
from pypika import Order
from pypika.terms import ExistsCriterion
from erpnext.stock.deprecated_serial_batch import (
DeprecatedBatchNoValuation,
@@ -650,6 +651,7 @@ class BatchNoValuation(DeprecatedBatchNoValuation):
parent = frappe.qb.DocType("Serial and Batch Bundle")
child = frappe.qb.DocType("Serial and Batch Entry")
sle = frappe.qb.DocType("Stock Ledger Entry")
timestamp_condition = ""
if self.sle.posting_date:
@@ -682,6 +684,14 @@ class BatchNoValuation(DeprecatedBatchNoValuation):
& (parent.docstatus == 1)
& (parent.is_cancelled == 0)
& (parent.type_of_transaction.isin(["Inward", "Outward"]))
& (
ExistsCriterion(
frappe.qb.from_(sle)
.select(sle.name)
.where((parent.name == sle.serial_and_batch_bundle) & (sle.is_cancelled == 0))
)
| (parent.voucher_type == "POS Invoice")
)
)
.groupby(child.batch_no)
)