From 54cfeaf35797bcda23fd569f111d686093a94891 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Tue, 23 Jun 2026 18:45:26 +0530 Subject: [PATCH] fix(selling): compare the selling Check field with 1, not a Python bool (Postgres) Customer-wise Item Price builds `ip.selling.eq(True)`, which renders `WHERE "selling" = true`. `selling` is a Check field (smallint on Postgres), and PostgreSQL has no `smallint = boolean` operator: operator does not exist: smallint = boolean MariaDB accepts it because `true` aliases to `1`. Comparing with the integer `1` (`ip.selling.eq(1)`) selects identical rows on MariaDB and is valid on PostgreSQL. --- .../report/customer_wise_item_price/customer_wise_item_price.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py b/erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py index f6783abfbe5..2cd286edb7b 100644 --- a/erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py +++ b/erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.py @@ -62,7 +62,7 @@ def fetch_item_prices( or_conditions = [] if items: and_conditions.append(ip.item_code.isin([x.item_code for x in items])) - and_conditions.append(ip.selling.eq(True)) + and_conditions.append(ip.selling.eq(1)) or_conditions.append(ip.customer.isnull()) or_conditions.append(ip.price_list.isnull())