-    $query = qq|
-
--- between 0-30 days
-
-       SELECT $form->{ct}.id AS ctid, $form->{ct}.name,
-       street, zipcode, city, country, contact, email,
-       phone as customerphone, fax as customerfax, $form->{ct}number,
-       "invnumber", "transdate",
-       (amount - paid) as "c0", 0.00 as "c30", 0.00 as "c60", 0.00 as "c90",
-       "duedate", invoice, $form->{arap}.id,
-         (SELECT $buysell FROM exchangerate
-          WHERE $form->{arap}.curr = exchangerate.curr
-          AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate
-  FROM $form->{arap}, $form->{ct}
-  WHERE paid != amount
-  AND $form->{arap}.storno IS FALSE
-       AND $form->{arap}.$form->{ct}_id = $form->{ct}.id
-       AND $form->{ct}.id = $id
-       AND (
-               transdate <= (date '$form->{todate}' - interval '0 days')
-               AND transdate >= (date '$form->{todate}' - interval '30 days')
-           )
-
-       UNION
-
--- between 31-60 days
-
-       SELECT $form->{ct}.id AS ctid, $form->{ct}.name,
-       street, zipcode, city, country, contact, email,
-       phone as customerphone, fax as customerfax, $form->{ct}number,
-       "invnumber", "transdate",
-       0.00 as "c0", (amount - paid) as "c30", 0.00 as "c60", 0.00 as "c90",
-       "duedate", invoice, $form->{arap}.id,
-         (SELECT $buysell FROM exchangerate
-          WHERE $form->{arap}.curr = exchangerate.curr
-          AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate
-  FROM $form->{arap}, $form->{ct}
-  WHERE paid != amount
-  AND $form->{arap}.storno IS FALSE
-       AND $form->{arap}.$form->{ct}_id = $form->{ct}.id
-       AND $form->{ct}.id = $id
-       AND (
-               transdate < (date '$form->{todate}' - interval '30 days')
-               AND transdate >= (date '$form->{todate}' - interval '60 days')
-               )
-
-       UNION
-
--- between 61-90 days
-
-       SELECT $form->{ct}.id AS ctid, $form->{ct}.name,
-       street, zipcode, city, country, contact, email,
-       phone as customerphone, fax as customerfax, $form->{ct}number,
-       "invnumber", "transdate",
-       0.00 as "c0", 0.00 as "c30", (amount - paid) as "c60", 0.00 as "c90",
-       "duedate", invoice, $form->{arap}.id,
-         (SELECT $buysell FROM exchangerate
-          WHERE $form->{arap}.curr = exchangerate.curr
-          AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate
-       FROM $form->{arap}, $form->{ct}
-        WHERE paid != amount
-        AND $form->{arap}.storno IS FALSE
-       AND $form->{arap}.$form->{ct}_id = $form->{ct}.id
-       AND $form->{ct}.id = $id
-       AND (
-               transdate < (date '$form->{todate}' - interval '60 days')
-               AND transdate >= (date '$form->{todate}' - interval '90 days')
-               )
-
-       UNION
-
--- over 90 days
-
-       SELECT $form->{ct}.id AS ctid, $form->{ct}.name,
-       street, zipcode, city, country, contact, email,
-       phone as customerphone, fax as customerfax, $form->{ct}number,
-       "invnumber", "transdate",
-       0.00 as "c0", 0.00 as "c30", 0.00 as "c60", (amount - paid) as "c90",
-       "duedate", invoice, $form->{arap}.id,
-         (SELECT $buysell FROM exchangerate
-          WHERE $form->{arap}.curr = exchangerate.curr
-          AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate
-       FROM $form->{arap}, $form->{ct}
-        WHERE paid != amount
-        AND $form->{arap}.storno IS FALSE
-       AND $form->{arap}.$form->{ct}_id = $form->{ct}.id
-       AND $form->{ct}.id = $id
-       AND transdate < (date '$form->{todate}' - interval '90 days')
-
-       ORDER BY
-
-  ctid, transdate, invnumber
-
-               |;
-
-    my $sth = $dbh->prepare($query);
-    $sth->execute || $form->dberror;
-
-    while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
-      $ref->{module} = ($ref->{invoice}) ? $invoice : $form->{arap};