Commit Graph

37 Commits

Author SHA1 Message Date
Mihir Kandoi
0b4e52e8d7 fix(buying): make Purchase Order Analysis GROUP BY Postgres-valid
get_data() grouped only by Purchase Order Item while selecting Purchase
Order parent columns. MariaDB allows this loose GROUP BY; Postgres rejects
it with "column ... must appear in the GROUP BY clause".

Add the Purchase Order PK (po.name) to the GROUP BY. po.name is 1:1 with
the already-grouped po_item.name, so groups are unchanged and the result
is identical on MariaDB.

Adds a test (no test file existed) that runs the report and asserts the PO
is listed, exercising the GROUP BY on both engines.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 04:40:35 +05:30
Mihir Kandoi
935746e752 Revert "refactor(selling, buying): make raw SQL portable to PostgreSQL (parity rollout 1/9)" 2026-06-16 23:28:53 +05:30
Mihir Kandoi
be0f571d62 refactor(selling, buying): make raw SQL portable to PostgreSQL
Convert the MariaDB-only raw `frappe.db.sql` in the Selling and Buying
modules to the cross-database query builder / ORM, and fix the few
non-portable constructs that remain. Every change is a no-op on MariaDB
(identical rendered SQL / identical results) and only brings PostgreSQL —
which is standards-strict where MySQL is lax — in line.

Patterns addressed in these modules:

- Strict GROUP BY — PostgreSQL rejects SELECTing a non-aggregated column
  that isn't functionally dependent on the grouped key. Sales Order
  Analysis, Sales Analytics, Purchase Order Analysis and Procurement
  Tracker now group by the PK (1:1 with the existing key, so no behaviour
  change) or aggregate genuinely-independent columns.
- App clock vs DB clock — Sales Order Analysis computed delay against the
  database CURRENT_DATE, which differs from the app's today by a day when
  the DB runs a different timezone; switched to `nowdate()` (deterministic,
  identical on both DBs).
- Portable date math / functions — DATEDIFF and friends via the db-aware
  query-builder functions.
- Raw SQL → query builder for the remaining self-contained selling/buying
  reads (POS item search, customer naming suffix, packing-items
  availability, customer credit/acquisition reports).

Part of the staged MariaDB↔PostgreSQL parity rollout (module 1 of 9).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 19:06:19 +05:30
Mihir Kandoi
ca568a01f5 fix: autofixes by semgrep 2026-01-01 21:56:12 +05:30
Ayush Marhatta
a243abb5fd fix: typo 2025-06-03 17:32:28 +05:45
Ayush Marhatta
49f23513e0 fix: use user default for company instead of global default in purchase order analysis report 2025-06-02 18:21:07 +05:45
Ninad1306
936d7d4342 fix(report): filter sales / purchase orders based on date filters 2025-02-25 17:13:09 +05:30
Ninad1306
3b2879d3a1 fix(report): allow Closed purchase orders to be visible 2025-02-24 12:42:05 +05:30
venkat102
8785342fce fix(report): add options to multiselectlist fields 2025-02-08 22:55:20 +05:30
Vishnu VS
d6980a9493 fix(report): Purchase Order Analysis pymysql.err (#44957) 2024-12-31 12:21:57 +05:30
Navin R C
48b49cdea4 fix: SQL syntax error in Purchase Receipt query for empty filters (#44636)
fix(po-analysis): handle SQL error due to empty data in IN() clause

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2024-12-13 10:19:38 +00:00
mahsem
342a398bec fix: add labels for translation in purchase_order_analysis.py 2024-12-05 08:41:02 +01:00
rohitwaghchaure
2ab7ec5437 fix: billed qty and received amount in PO analysis report (#44349) 2024-11-26 18:07:43 +05:30
rohitwaghchaure
fb846ffa12 fix: incorrect Received Qty Amount in Purchase Order Analysis (#42852) 2024-08-21 15:22:19 +05:30
rohitwaghchaure
cb522f8f22 fix: performance issue for the report Purchase Order Analysis report (#42503) 2024-07-28 23:41:00 +05:30
rohitwaghchaure
67bf9bec47 fix: Purchase Order Analysis Report Data (#42387) 2024-07-18 19:52:30 +05:30
Nihantra C. Patel
0c76a8cc9e fix: Billed Qty and Qty to Bill Calculation in Purchase Order Analysis (#42100) 2024-07-09 14:53:04 +05:30
Akhil Narang
3effaf21ef refactor(treewide): formatting and ruff fixes, + manually enabled F401
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-27 16:06:04 +05:30
Ankush Menat
ec74a5e566 style: format js files 2024-03-10 19:45:40 +05:30
David Arnold
f73685f4f6 Merge remote-tracking branch 'origin/develop' into feat/so-po-advance-payment-status 2023-12-20 12:47:48 +01:00
barredterra
eb9ee3f79b refactor: simplify conditional logic
Command: `sourcery review --fix --enable de-morgan .`
2023-12-05 11:22:55 +01:00
David Arnold
c78fdaae90 Merge remote-tracking branch 'upstream/develop' into feat/so-po-advance-payment-status 2023-10-30 17:25:08 +01:00
David Arnold
8b21ca2db9 fixup! feat(payment): add advance payment status to advance payment doctypes to better track advance payments 2023-10-17 00:12:19 +02:00
HarryPaulo
8a72f4f58a fix: billed_qty to show a sum of all invoiced qty from the purchase order item. 2023-10-16 18:12:10 -03:00
Deepesh Garg
924cdef6d9 ci: add eslint and update linting confs 2023-07-14 18:53:02 +05:30
Sagar Sharma
a5b3f8cae9 refactor: rewrite Purchase Order Analysis Report queries in QB 2022-10-07 17:30:01 +05:30
hrzzz
8b1ff96e30 fix: translation for filter status on report 2022-06-21 15:10:19 -03:00
Ankush Menat
494bd9ef78 style: format code with black 2022-03-28 18:52:46 +05:30
Ankush Menat
6098e92ba9 chore: remove utf-8 compat code 2021-11-05 11:16:29 +05:30
Noah Jacob
857d87da97 fix: replaced "=" with "in" for multiple statuses in query #28193
fix: replaced "=" with "in" for multiple statuses in query
2021-11-02 17:52:45 +05:30
Rohit Waghchaure
c1f9997a67 fix: added project name in the purchase order analysis 2021-09-29 23:26:19 +05:30
Chillar Anand
915b34391c chore: Clean up imports (#27302)
* chore: Added isort to pre-commit config

* chore: Sort imports with isort

* chore: Clean up imports with pycln

* chore: Sort imports with isort

* chore: Fix import issues

* chore: Clean up sider issues

* chore: Remove import errors from flake8 ignore list

* chore: Clean up lint issues
2021-09-02 16:44:59 +05:30
Ankush Menat
4551d7d602 chore: mass trailing whitespace and EOF fixes 2021-08-19 13:43:28 +05:30
marination
75c65fd1b1 fix: Handle empty chart state and change desk dashboard 2020-05-15 23:47:51 +05:30
marination
a74d433cd8 fix: Fixed Dashboard Charts, modified fixtures and minor changes 2020-05-15 23:37:48 +05:30
marination
e4fc5ba83c fix: Report conditional query simplification. 2020-05-12 18:58:54 +05:30
marination
cc989b62bd feat: Buying Desk, Dashboard and Reports 2020-05-05 23:58:08 +05:30