fixing collection-finder method
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 6 Jul 2006 16:39:08 +0000 (16:39 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 6 Jul 2006 16:39:08 +0000 (16:39 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4907 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/money.pm

index fc62b0d..2ad7ac0 100644 (file)
@@ -20,17 +20,16 @@ sub new_collections {
        my $SQL = <<"   SQL";
                SELECT  lt.usr,
                        MAX(bl.billing_ts) AS last_pertinent_billing,
-                       SUM(bl.amount) - SUM(COALESCE(pm.amount,0)) AS threshold_amount
+                       SUM(bl.amount) - SUM((SELECT SUM(amount) FROM money.payment WHERE xact = lt.id)) AS threshold_amount
                  FROM  ( SELECT id,usr,billing_location AS location FROM money.grocery
                                UNION ALL
                          SELECT id,usr,circ_lib AS location FROM action.circulation ) AS lt
                        JOIN $descendants d ON (lt.location = d.id)
-                       JOIN money.billing bl ON (lt.id = bl.xact)
-                       LEFT JOIN money.payment pm ON (lt.id = pm.xact)
+                       JOIN money.billing bl ON (lt.id = bl.xact AND bl.voided IS FALSE)
                        LEFT JOIN money.collections_tracker cl USING (usr,location)
                  WHERE AGE(bl.billing_ts) > ?
                        AND cl.usr IS NULL
-                 GROUP BY lt.usr HAVING (SUM(bl.amount) - SUM(COALESCE(pm.amount,0))) > ? 
+                 GROUP BY lt.usr HAVING (SUM(bl.amount) - SUM((SELECT SUM(amount) FROM money.payment WHERE xact = lt.id))) > ? 
        SQL
 
        my @l_ids;