mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-19 01:18:43 +00:00
get_timesheets_list selected `timesheet.sales_invoice | detail.sales_invoice`, intending COALESCE (pick the parent timesheet's invoice, else the detail's) -- the original raw SQL was COALESCE(ts.sales_invoice, tsd.sales_invoice). pypika's `|` is a bitwise OR, not a coalesce: - Postgres: `varchar | varchar` -> "operator does not exist" (hard error). - MariaDB: bitwise OR coerces the operands to integers; with a NULL detail invoice the result is NULL, so the portal showed no invoice even when the timesheet was billed. Replace with Coalesce(table.sales_invoice, child_table.sales_invoice). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>