Mahnungen erzeugen - nach Abteilung filtern und anzeigen
authorG. Richardson <grichardson@kivitec.de>
Sat, 10 Aug 2019 15:05:57 +0000 (17:05 +0200)
committerG. Richardson <grichardson@kivitec.de>
Sun, 11 Aug 2019 09:34:20 +0000 (11:34 +0200)
SL/DN.pm
bin/mozilla/dn.pl
doc/changelog
templates/webpages/dunning/add.html
templates/webpages/dunning/show_invoices.html

index 5d0ee14..4c8001a 100644 (file)
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -534,6 +534,11 @@ sub get_invoices {
     push(@values, like($form->{customer}));
   }
 
+  if ($form->{department_id}) {
+    $where .= qq| AND (a.department_id = ?)|;
+    push(@values, $form->{department_id});
+  }
+
   my %columns = (
     "ordnumber" => "a.ordnumber",
     "invnumber" => "a.invnumber",
@@ -573,6 +578,7 @@ sub get_invoices {
          ct.name AS customername, a.customer_id, a.duedate,
          a.amount - a.paid AS open_amount,
          a.direct_debit,
+         dep.description as departmentname,
 
          cfg.dunning_description, cfg.dunning_level,
 
@@ -590,6 +596,7 @@ sub get_invoices {
        FROM ar a
 
        LEFT JOIN customer ct ON (a.customer_id = ct.id)
+       LEFT JOIN department dep ON (a.department_id = dep.id)
        LEFT JOIN dunning_config cfg ON (a.dunning_config_id = cfg.id)
        LEFT JOIN dunning_config nextcfg ON
          (nextcfg.id =
index c16f6c3..0b2b27c 100644 (file)
@@ -103,8 +103,10 @@ sub add {
 
   DN->get_config(\%myconfig, \%$form);
 
+  $form->get_lists("departments" => "ALL_DEPARTMENTS");
+
   $form->{SHOW_DUNNING_LEVEL_SELECTION} = $form->{DUNNING}         && scalar @{ $form->{DUNNING} };
-  $form->{SHOW_DEPARTMENT_SELECTION}    = $form->{all_departments} && scalar @{ $form->{all_departments} || [] };
+  $form->{SHOW_DEPARTMENT_SELECTION}    = $form->{ALL_DEPARTMENTS} && scalar @{ $form->{ALL_DEPARTMENTS} || [] };
 
   $form->{title}    = $locale->text('Start Dunning Process');
 
@@ -362,6 +364,7 @@ sub show_dunning {
     'checkbox'            => { 'text' => '', 'visible' => 'HTML' },
     'dunning_description' => { 'text' => $locale->text('Dunning Level') },
     'customername'        => { 'text' => $locale->text('Customername') },
+    'departmentname'      => { 'text' => $locale->text('Department') },
     'language'            => { 'text' => $locale->text('Language') },
     'invnumber'           => { 'text' => $locale->text('Invnumber') },
     'transdate'           => { 'text' => $locale->text('Invdate') },
index 2762eaa..9757519 100644 (file)
@@ -14,6 +14,10 @@ Mittelgroße neue Features:
 
 - Part Controller - neuer Tab mit Lagerinformationen - was ist wo gelagert
 
+Kleinere neue Features und Detailverbesserungen:
+
+- Mahnungen nach Abteilung filtern
+
 2019-08-07 - Release 3.5.4
 
 
index ab1c44a..1451e02 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE T8 %]
+[%- USE T8 %][%- USE L %]
 [% USE HTML %]<script type="text/javascript" src="js/common.js"></script>
 <h1>[% title %]</h1>
 
     </td>
    </tr>
 
+   [% IF SHOW_DEPARTMENT_SELECTION %]
+    <tr>
+     <th align="right">[% 'Department' | $T8 %]</th>
+     <td colspan="3">
+     [% L.select_tag('department_id', ALL_DEPARTMENTS, title_key = 'description', with_empty = 1, style=style) %]
+     </td>
+    </tr>
+   [% END %]
+
    [% IF SHOW_DUNNING_LEVEL_SELECTION %]
     <tr>
      <th align="right">[% 'Next Dunning Level' | $T8 %]</th>
index 51fbb32..8036ade 100644 (file)
@@ -30,6 +30,7 @@
    </th>
 
    <th class="listheading">[% 'Customername' | $T8 %]</th>
+   <th class="listheading">[% 'Department' | $T8 %]</th>
    <th class="listheading">[% 'Language' | $T8 %]</th>
    <th class="listheading">[% 'Invno.' | $T8 %]</th>
    <th class="listheading">[% 'Invdate' | $T8 %]</th>
@@ -63,6 +64,7 @@
      <td><input type="checkbox" name="active_[% loop.count %]" value="1" [% IF row.active %]checked[% END %]></td>
      <td><input type="checkbox" name="email_[% loop.count %]" value="1" [% IF row.email %]checked[% END %]></td>
      <td><input type="hidden" name="customername_[% loop.count %]" size="6" value="[% HTML.escape(row.customername) %]">[% HTML.escape(row.customername) %]</td>
+     <td><input type="hidden" name="department_[% loop.count %]" size="6" value="[% HTML.escape(row.departmentname) %]">[% HTML.escape(row.departmentname) %]</td>
      <td><input type="hidden" name="language_id_[% loop.count %]" size="6" value="[% HTML.escape(row.language_id) %]">[% HTML.escape(row.language) %]</td>
      <td>
       <input type="hidden" name="invnumber_[% loop.count %]" size="6" value="[% HTML.escape(row.invnumber) %]">