- 0 < ( select count(*) from cust_bill
- where cust_main.custnum = cust_bill.custnum
- and 0 < charged
- - coalesce(
- ( select sum(amount) from cust_bill_pay
- where cust_bill.invnum = cust_bill_pay.invnum )
- ,0
- )
- - coalesce(
- ( select sum(amount) from cust_credit_bill
- where cust_bill.invnum = cust_credit_bill.invnum )
- ,0
- )
- and 0 < ( select count(*) from part_bill_event
- where payby = cust_main.payby
- and ( disabled is null or disabled = '' )
- and seconds <= $time - cust_bill._date
- and 0 = ( select count(*) from cust_bill_event
- where cust_bill.invnum = cust_bill_event.invnum
- and part_bill_event.eventpart = cust_bill_event.eventpart
- and status = 'done'
- )
-
- )
- )
+ EXISTS(
+ SELECT 1 FROM cust_bill
+ WHERE cust_main.custnum = cust_bill.custnum
+ AND 0 < charged
+ - COALESCE(
+ ( SELECT SUM(amount) FROM cust_bill_pay
+ WHERE cust_bill.invnum = cust_bill_pay.invnum
+ ),0
+ )
+ - COALESCE(
+ ( SELECT SUM(amount) FROM cust_credit_bill
+ WHERE cust_bill.invnum = cust_credit_bill.invnum
+ ),0
+ )
+ AND EXISTS(
+ SELECT 1 FROM part_bill_event
+ WHERE payby = cust_main.payby
+ AND ( disabled is null or disabled = '' )
+ AND seconds <= $time - cust_bill._date
+ AND NOT EXISTS (
+ SELECT 1 FROM cust_bill_event
+ WHERE cust_bill.invnum = cust_bill_event.invnum
+ AND part_bill_event.eventpart = cust_bill_event.eventpart
+ AND status = 'done'
+ )
+ )
+ )