QUERY PLAN
Limit (cost=1878.71..1878.76 rows=20 width=313)
-> Sort (cost=1878.71..1881.93 rows=1290 width=313)
Sort Key: (CASE WHEN (t0.id IS NOT NULL) THEN t0.remind_date ELSE sc.signed_at END) DESC
-> Hash Left Join (cost=1581.85..1844.38 rows=1290 width=313)
Hash Cond: (sc.id = ovsub.id)
-> Hash Left Join (cost=1252.56..1472.99 rows=1290 width=120)
Hash Cond: (sc.id = tcollect.contract_id)
-> Hash Left Join (cost=797.81..1014.84 rows=1290 width=112)
Hash Cond: (c.sales_rep = sgr.sales_id)
-> Hash Left Join (cost=795.66..1001.19 rows=1290 width=116)
Hash Cond: (sc.id = sci.contract_id)
-> Hash Right Join (cost=585.80..787.93 rows=1290 width=84)
Hash Cond: (p.id = sc.from_project)
-> Seq Scan on tbl_projects p (cost=0.00..177.60 rows=3160 width=8)
-> Hash (cost=569.67..569.67 rows=1290 width=84)
-> Hash Right Join (cost=550.15..569.67 rows=1290 width=84)
Hash Cond: (t0.contract_id = sc.id)
-> HashAggregate (cost=327.14..333.40 rows=626 width=41)
Group Key: t0.id
-> Hash Join (cost=290.91..325.57 rows=626 width=32)
Hash Cond: (t0.contract_id = t1.id)
-> Seq Scan on tbl_sales_contract_payment_collection_remind_dates t0 (cost=0.00..23.93 rows=1193 width=32)
-> Hash (cost=279.54..279.54 rows=909 width=4)
-> Hash Join (cost=206.79..279.54 rows=909 width=4)
Hash Cond: (t1.from_project = p_1.id)
-> Seq Scan on tbl_sales_contracts t1 (cost=0.00..68.32 rows=1686 width=8)
Filter: (need_analysis AND (from_project IS NOT NULL))
-> Hash (cost=185.50..185.50 rows=1703 width=4)
-> Seq Scan on tbl_projects p_1 (cost=0.00..185.50 rows=1703 width=4)
Filter: (project_status = 3)
-> Hash (cost=206.88..206.88 rows=1290 width=56)
-> Hash Left Join (cost=133.96..206.88 rows=1290 width=56)
Hash Cond: (sc.client_id = c.id)
Filter: ((c.sales_rep = ANY ('{1001,5049,5301,5022,5209,5026,5293,5309,5356,5329,5299,5303,5302,5332,5047,1026,5096,5070,5448,5420,1029,5037,5087,1008,5048,5043,5045,5230,5031,5088,5208,1003,5467,5294,5357,5044,1030,5076,5300,5027,5089,5311,5066,5069,5364,1009,5295,1013,5128,5203,1025,5032,5075,5476,1004,5072,5033,5359,5412,5409,5229,1005,5304,5449,5358,1006,5093}'::integer[])) OR (c.sales_rep IS NULL))
-> Seq Scan on tbl_sales_contracts sc (cost=0.00..68.32 rows=1720 width=52)
Filter: build_by_project
-> Hash (cost=108.98..108.98 rows=1998 width=8)
-> Seq Scan on tbl_clients c (cost=0.00..108.98 rows=1998 width=8)
-> Hash (cost=188.42..188.42 rows=1715 width=36)
-> Subquery Scan on sci (cost=149.84..188.42 rows=1715 width=36)
-> HashAggregate (cost=149.84..171.27 rows=1715 width=36)
Group Key: t0_1.id
-> Hash Right Join (cost=89.76..139.68 rows=2032 width=17)
Hash Cond: (t1_1.contract_id = t0_1.id)
-> Seq Scan on tbl_sales_contract_invoices t1_1 (cost=0.00..44.52 rows=2052 width=10)
-> Hash (cost=68.32..68.32 rows=1715 width=11)
-> Seq Scan on tbl_sales_contracts t0_1 (cost=0.00..68.32 rows=1715 width=11)
Filter: need_analysis
-> Hash (cost=1.51..1.51 rows=51 width=4)
-> Seq Scan on tbl_sales_group_relationships sgr (cost=0.00..1.51 rows=51 width=4)
-> Hash (cost=433.11..433.11 rows=1732 width=12)
-> Subquery Scan on tcollect (cost=398.47..433.11 rows=1732 width=12)
-> HashAggregate (cost=398.47..415.79 rows=1732 width=44)
Group Key: t0_2.id
-> Hash Right Join (cost=180.78..387.67 rows=2160 width=36)
Hash Cond: ("*SELECT* 1".contract_id = t0_2.id)
-> Append (cost=90.81..270.41 rows=2160 width=124)
-> Subquery Scan on "*SELECT* 1" (cost=90.81..175.49 rows=2153 width=83)
-> Hash Join (cost=90.81..148.58 rows=2153 width=79)
Hash Cond: (r.erp_collect_ticket_id = t.id)
-> Seq Scan on tbl_erp_collect_ticket_settles r (cost=0.00..35.94 rows=2160 width=18)
Filter: (sales_contract_id IS NOT NULL)
-> Hash (cost=63.45..63.45 rows=2189 width=37)
-> Seq Scan on tbl_erp_collect_tickets t (cost=0.00..63.45 rows=2189 width=37)
Filter: (status = ANY ('{2,5}'::integer[]))
-> Nested Loop (cost=0.29..9.33 rows=1 width=95)
-> Seq Scan on tbl_erp_cash_cost_ticket_sales_contract_settles r_1 (cost=0.00..1.02 rows=1 width=17)
Filter: (sales_contract_id IS NOT NULL)
-> Index Scan using tbl_erp_cash_cost_tickets_pkey on tbl_erp_cash_cost_tickets t_1 (cost=0.29..8.30 rows=1 width=46)
Index Cond: (id = r_1.erp_cash_cost_ticket_id)
Filter: (is_payment_settle AND (status = ANY ('{2,5}'::integer[])))
-> Nested Loop (cost=0.28..85.52 rows=6 width=116)
-> Seq Scan on tbl_erp_payment_ticket_settles r_2 (cost=0.00..39.65 rows=6 width=18)
Filter: (sales_contract_id IS NOT NULL)
-> Index Scan using tbl_erp_payment_tickets_pkey on tbl_erp_payment_tickets t_2 (cost=0.28..7.63 rows=1 width=40)
Index Cond: (id = r_2.erp_payment_ticket_id)
Filter: (is_payment_settle AND (status = ANY ('{2,5}'::integer[])))
-> Hash (cost=68.32..68.32 rows=1732 width=4)
-> Seq Scan on tbl_sales_contracts t0_2 (cost=0.00..68.32 rows=1732 width=4)
-> Hash (cost=326.74..326.74 rows=204 width=36)
-> Subquery Scan on ovsub (cost=322.15..326.74 rows=204 width=36)
-> HashAggregate (cost=322.15..324.70 rows=204 width=36)
Group Key: t1_2.id
-> Hash Join (cost=127.23..321.13 rows=204 width=10)
Hash Cond: (p_2.id = t1_2.from_project)
-> Seq Scan on tbl_projects p_2 (cost=0.00..185.50 rows=1703 width=4)
Filter: (project_status = 3)
-> Hash (cost=122.50..122.50 rows=379 width=14)
-> Hash Join (cost=37.74..122.50 rows=379 width=14)
Hash Cond: (t1_2.id = t0_3.contract_id)
-> Seq Scan on tbl_sales_contracts t1_2 (cost=0.00..68.32 rows=1686 width=8)
Filter: (need_analysis AND (from_project IS NOT NULL))
-> Hash (cost=32.88..32.88 rows=389 width=10)
-> Seq Scan on tbl_sales_contract_payment_collection_remind_dates t0_3 (cost=0.00..32.88 rows=389 width=10)
Filter: (((status = 1) AND (overdue_days IS NOT NULL)) OR ((status = 0) AND (remind_date <= '2026-06-23'::date)))