test(stock): order get_sle by posting_datetime, not MySQL timestamp()

test_stock_entry.get_sle ordered by `timestamp(posting_date, posting_time)`, a
MySQL-only two-arg function that errors on Postgres ("function timestamp(date, time)
does not exist"), so every test using get_sle (test_fifo, test_stock_entry_qty, ...)
failed to run on Postgres. Order by the precomputed `posting_datetime` column instead
(identical value on MariaDB, valid on both engines).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mihir Kandoi
2026-06-21 11:00:50 +05:30
parent 3d9b704730
commit 1772ccc61a

View File

@@ -47,8 +47,9 @@ def get_sle(**args):
values.append(value)
return frappe.db.sql(
# posting_datetime is the precomputed date+time column; MySQL-only timestamp(date,time) errors on Postgres
"""select * from `tabStock Ledger Entry` %s
order by timestamp(posting_date, posting_time) desc, creation desc limit 1"""
order by posting_datetime desc, creation desc limit 1"""
% condition,
values,
as_dict=1,