and x.circ_lib in (XX)
and b.billing_ts < current_timestamp - ? * '1 day'::interval
and not b.voided
+ and not exists (
+ select set.id from actor.usr_setting set where set.usr = x.usr and set.name='circ.collections.exempt' and set.value = 'true'
+ )
group by 1,2
union all
and x.billing_location in (XX)
and b.billing_ts < current_timestamp - ? * '1 day'::interval
and not b.voided
+ and not exists (
+ select set.id from actor.usr_setting set where set.usr = x.usr and set.name='circ.collections.exempt' and set.value = 'true'
+ )
group by 1,2
union all
and x.pickup_lib in (XX)
and b.billing_ts < current_timestamp - ? * '1 day'::interval
and not b.voided
+ and not exists (
+ select set.id from actor.usr_setting set where set.usr = x.usr and set.name='circ.collections.exempt' and set.value = 'true'
+ )
group by 1,2
) full_list
left join money.payment p on (full_list.id = p.xact)