Merge pull request #32347 from s-aga-r/refactor/stock/report/incorrect-stock-value
refactor: rewrite `Incorrect Stock Value Report` queries in `QB`
This commit is contained in:
commit
a80e8726e7
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
from frappe.query_builder import Field
|
||||||
|
from frappe.query_builder.functions import Min, Timestamp
|
||||||
from frappe.utils import add_days, getdate, today
|
from frappe.utils import add_days, getdate, today
|
||||||
|
|
||||||
import erpnext
|
import erpnext
|
||||||
@ -28,7 +30,7 @@ def execute(filters=None):
|
|||||||
def get_unsync_date(filters):
|
def get_unsync_date(filters):
|
||||||
date = filters.from_date
|
date = filters.from_date
|
||||||
if not date:
|
if not date:
|
||||||
date = frappe.db.sql(""" SELECT min(posting_date) from `tabStock Ledger Entry`""")
|
date = (frappe.qb.from_("Stock Ledger Entry").select(Min(Field("posting_date")))).run()
|
||||||
date = date[0][0]
|
date = date[0][0]
|
||||||
|
|
||||||
if not date:
|
if not date:
|
||||||
@ -54,22 +56,27 @@ def get_data(report_filters):
|
|||||||
result = []
|
result = []
|
||||||
|
|
||||||
voucher_wise_dict = {}
|
voucher_wise_dict = {}
|
||||||
data = frappe.db.sql(
|
sle = frappe.qb.DocType("Stock Ledger Entry")
|
||||||
"""
|
data = (
|
||||||
SELECT
|
frappe.qb.from_(sle)
|
||||||
name, posting_date, posting_time, voucher_type, voucher_no,
|
.select(
|
||||||
stock_value_difference, stock_value, warehouse, item_code
|
sle.name,
|
||||||
FROM
|
sle.posting_date,
|
||||||
`tabStock Ledger Entry`
|
sle.posting_time,
|
||||||
WHERE
|
sle.voucher_type,
|
||||||
posting_date
|
sle.voucher_no,
|
||||||
= %s and company = %s
|
sle.stock_value_difference,
|
||||||
and is_cancelled = 0
|
sle.stock_value,
|
||||||
ORDER BY timestamp(posting_date, posting_time) asc, creation asc
|
sle.warehouse,
|
||||||
""",
|
sle.item_code,
|
||||||
(from_date, report_filters.company),
|
)
|
||||||
as_dict=1,
|
.where(
|
||||||
)
|
(sle.posting_date == from_date)
|
||||||
|
& (sle.company == report_filters.company)
|
||||||
|
& (sle.is_cancelled == 0)
|
||||||
|
)
|
||||||
|
.orderby(Timestamp(sle.posting_date, sle.posting_time), sle.creation)
|
||||||
|
).run(as_dict=True)
|
||||||
|
|
||||||
for d in data:
|
for d in data:
|
||||||
voucher_wise_dict.setdefault((d.item_code, d.warehouse), []).append(d)
|
voucher_wise_dict.setdefault((d.item_code, d.warehouse), []).append(d)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user