Unterscheidung Bankeinzug/Überweisung beim Verbuchen von Zahlungen
[kivitendo-erp.git] / SL / RP.pm
index 81637ca..99595c1 100644 (file)
--- a/SL/RP.pm
+++ b/SL/RP.pm
@@ -233,8 +233,8 @@ sub get_accounts {
            AND ac.trans_id IN
              (
                SELECT trans_id
-               FROM acc_trans
-               JOIN chart ON (chart_id = id)
+               FROM acc_trans a
+               JOIN chart c ON (a.chart_id = c.id)
                WHERE (link LIKE '%AR_paid%')
                $subwhere
              )
@@ -254,8 +254,8 @@ sub get_accounts {
            AND ac.trans_id IN
              (
                SELECT trans_id
-               FROM acc_trans
-               JOIN chart ON (chart_id = id)
+               FROM acc_trans a
+               JOIN chart c ON (a.chart_id = c.id)
                WHERE (link LIKE '%AP_paid%')
                $subwhere
              )
@@ -296,8 +296,8 @@ sub get_accounts {
            AND ac.trans_id IN
              (
                SELECT trans_id
-               FROM acc_trans
-               JOIN chart ON (chart_id = id)
+               FROM acc_trans a
+               JOIN chart c ON (a.chart_id = c.id)
                WHERE (link LIKE '%AR_paid%')
                $subwhere
              )
@@ -318,8 +318,8 @@ sub get_accounts {
            AND ac.trans_id IN
              (
                SELECT trans_id
-               FROM acc_trans
-               JOIN chart ON (chart_id = id)
+               FROM acc_trans a
+               JOIN chart c ON (a.chart_id = c.id)
                WHERE link LIKE '%AP_paid%'
                $subwhere
              )
@@ -519,7 +519,7 @@ sub get_accounts_g {
          JOIN ar a ON (a.id = ac.trans_id)
          $dpt_join
          WHERE $where $dpt_where
-           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans JOIN chart ON (chart_id = id) WHERE (link LIKE '%AR_paid%') $subwhere)
+           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans a JOIN chart c ON (a.chart_id = c.id) WHERE (link LIKE '%AR_paid%') $subwhere)
            $project
          GROUP BY c.$category
 */
@@ -531,7 +531,7 @@ sub get_accounts_g {
          JOIN ap a ON (a.id = ac.trans_id)
          $dpt_join
          WHERE $where $dpt_where
-           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans JOIN chart ON (chart_id = id) WHERE (link LIKE '%AP_paid%') $subwhere)
+           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans a JOIN chart c ON (a.chart_id = c.id) WHERE (link LIKE '%AP_paid%') $subwhere)
            $project
          GROUP BY c.$category
 
@@ -559,7 +559,7 @@ sub get_accounts_g {
          JOIN chart c on (p.income_accno_id = c.id)
          $dpt_join
          WHERE (c.category = 'I') $prwhere $dpt_where
-           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans JOIN chart ON (chart_id = id) WHERE (link LIKE '%AR_paid%') $subwhere)
+           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans a JOIN chart c ON (a.chart_id = c.id) WHERE (link LIKE '%AR_paid%') $subwhere)
            $project
          GROUP BY c.$category
 
@@ -572,7 +572,7 @@ sub get_accounts_g {
          JOIN chart c on (p.expense_accno_id = c.id)
          $dpt_join
          WHERE (c.category = 'E') $prwhere $dpt_where
-           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans JOIN chart ON (chart_id = id) WHERE (link LIKE '%AP_paid%') $subwhere)
+           AND ac.trans_id IN ( SELECT trans_id FROM acc_trans a JOIN chart c ON (a.chart_id = c.id) WHERE (link LIKE '%AP_paid%') $subwhere)
          $project
          GROUP BY c.$category
          |;
@@ -1182,9 +1182,19 @@ sub aging {
     $dpt_join = qq| JOIN department d ON (a.department_id = d.id) |;
     $where .= qq| AND (a.department_id = | . conv_i($department_id, 'NULL') . qq|)|;
   }
+  my $review_of_aging_list;
+  if ($form->{review_of_aging_list}) {
+    if ($form->{review_of_aging_list} =~ m "-"){
+      my @period = split(/-/, $form->{review_of_aging_list});
+      $review_of_aging_list = " AND $period[0] < date_part('days', now() - duedate) 
+                                AND date_part('days', now() - duedate)  < $period[1]";
+    } else {
+      $form->{review_of_aging_list} =~ s/[^0-9]//g;
+      $review_of_aging_list = " AND $form->{review_of_aging_list} < date_part('days', now() - duedate)"; 
+    }
+  }
 
   my $q_details = qq|
-    -- between 0-30 days
 
     SELECT ${ct}.id AS ctid, ${ct}.name,
       street, zipcode, city, country, contact, email,
@@ -1198,11 +1208,11 @@ sub aging {
          AND (exchangerate.transdate = ${arap}.transdate)) AS exchangerate
     FROM ${arap}, ${ct}
     WHERE ((paid != amount) OR (datepaid > (date $todate) AND datepaid is not null))
-      AND (${arap}.storno IS FALSE)
+      AND NOT COALESCE (${arap}.storno, 'f')
       AND (${arap}.${ct}_id = ${ct}.id)
       AND (${ct}.id = ?)
       AND (transdate <= (date $todate) $fromwhere )
-
+      $review_of_aging_list
     ORDER BY ctid, transdate, invnumber |;
 
   my $sth_details = prepare_query($form, $dbh, $q_details);
@@ -1334,8 +1344,8 @@ sub tax_report {
       AND ac.trans_id IN
         (
           SELECT trans_id
-          FROM acc_trans
-          JOIN chart ON (chart_id = id)
+          FROM acc_trans a
+          JOIN chart c ON (a.chart_id = c.id)
           WHERE (link LIKE '%${ARAP}_paid%')
           AND (transdate <= $todate)
         )