mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-02 03:39:11 +00:00
refactor: Batch & Bundle get Stock ledger for snos v2
(cherry picked from commit a074d81754)
This commit is contained in:
@@ -2988,10 +2988,6 @@ def get_stock_ledgers_for_serial_nos(kwargs):
|
|||||||
stock_ledger_entry = frappe.qb.DocType("Stock Ledger Entry")
|
stock_ledger_entry = frappe.qb.DocType("Stock Ledger Entry")
|
||||||
serial_batch_entry = frappe.qb.DocType("Serial and Batch Entry")
|
serial_batch_entry = frappe.qb.DocType("Serial and Batch Entry")
|
||||||
|
|
||||||
serial_nos = kwargs.get("serial_nos") or kwargs.get("serial_no")
|
|
||||||
if serial_nos and not isinstance(serial_nos, list):
|
|
||||||
serial_nos = [serial_nos]
|
|
||||||
|
|
||||||
query = (
|
query = (
|
||||||
frappe.qb.from_(stock_ledger_entry)
|
frappe.qb.from_(stock_ledger_entry)
|
||||||
.select(
|
.select(
|
||||||
@@ -3000,15 +2996,19 @@ def get_stock_ledgers_for_serial_nos(kwargs):
|
|||||||
stock_ledger_entry.serial_and_batch_bundle,
|
stock_ledger_entry.serial_and_batch_bundle,
|
||||||
)
|
)
|
||||||
.where(stock_ledger_entry.is_cancelled == 0)
|
.where(stock_ledger_entry.is_cancelled == 0)
|
||||||
|
.orderby(stock_ledger_entry.posting_datetime)
|
||||||
|
.orderby(stock_ledger_entry.creation)
|
||||||
)
|
)
|
||||||
|
|
||||||
if kwargs.get("posting_date"):
|
if kwargs.get("posting_datetime"):
|
||||||
if kwargs.get("posting_time") is None:
|
timestamp_condition = stock_ledger_entry.posting_datetime <= kwargs.posting_datetime
|
||||||
kwargs.posting_time = nowtime()
|
|
||||||
|
|
||||||
timestamp_condition = CombineDatetime(
|
if kwargs.get("creation"):
|
||||||
stock_ledger_entry.posting_date, stock_ledger_entry.posting_time
|
timestamp_condition = stock_ledger_entry.posting_datetime < kwargs.posting_datetime
|
||||||
) <= CombineDatetime(kwargs.posting_date, kwargs.posting_time)
|
|
||||||
|
timestamp_condition |= (stock_ledger_entry.posting_datetime == kwargs.posting_datetime) & (
|
||||||
|
stock_ledger_entry.creation < kwargs.creation
|
||||||
|
)
|
||||||
|
|
||||||
query = query.where(timestamp_condition)
|
query = query.where(timestamp_condition)
|
||||||
|
|
||||||
@@ -3021,6 +3021,10 @@ def get_stock_ledgers_for_serial_nos(kwargs):
|
|||||||
else:
|
else:
|
||||||
query = query.where(stock_ledger_entry[field] == kwargs.get(field))
|
query = query.where(stock_ledger_entry[field] == kwargs.get(field))
|
||||||
|
|
||||||
|
serial_nos = kwargs.get("serial_nos") or kwargs.get("serial_no")
|
||||||
|
if serial_nos and not isinstance(serial_nos, list):
|
||||||
|
serial_nos = [serial_nos]
|
||||||
|
|
||||||
if serial_nos:
|
if serial_nos:
|
||||||
query = (
|
query = (
|
||||||
query.left_join(serial_batch_entry)
|
query.left_join(serial_batch_entry)
|
||||||
@@ -3038,7 +3042,10 @@ def get_stock_ledgers_for_serial_nos(kwargs):
|
|||||||
|
|
||||||
query = query.where(bundle_match | direct_match)
|
query = query.where(bundle_match | direct_match)
|
||||||
|
|
||||||
if kwargs.voucher_no:
|
if kwargs.ignore_voucher_detail_no:
|
||||||
|
query = query.where(stock_ledger_entry.voucher_detail_no != kwargs.ignore_voucher_detail_no)
|
||||||
|
|
||||||
|
elif kwargs.voucher_no:
|
||||||
query = query.where(stock_ledger_entry.voucher_no != kwargs.voucher_no)
|
query = query.where(stock_ledger_entry.voucher_no != kwargs.voucher_no)
|
||||||
|
|
||||||
return query.run(as_dict=True)
|
return query.run(as_dict=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user