Druck: Bei template-toolkit auch die globals setzen
[kivitendo-erp.git] / SL / DN.pm
index 976a238..2bead22 100644 (file)
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -211,7 +211,7 @@ sub create_invoice_for_fees {
   $query =
     qq|INSERT INTO ar (id,          invnumber, transdate, gldate, customer_id,
                        taxincluded, amount,    netamount, paid,   duedate,
-                       invoice,     currency_id,      notes,
+                       invoice,     currency_id, taxzone_id,      notes,
                        employee_id)
        VALUES (
          ?,                     -- id
@@ -232,6 +232,14 @@ sub create_invoice_for_fees {
          (SELECT duedate FROM dunning WHERE dunning_id = ? LIMIT 1),
          'f',                   -- invoice
          (SELECT id FROM currencies WHERE name = ?), -- curr
+         --taxzone_id:
+         (SELECT taxzone_id FROM customer WHERE id =
+          (SELECT ar.customer_id
+           FROM dunning dn
+           LEFT JOIN ar ON (dn.trans_id = ar.id)
+           WHERE dn.dunning_id = ?
+           LIMIT 1)
+         ),
          ?,                     -- notes
          -- employee_id:
          (SELECT id FROM employee WHERE login = ?)
@@ -243,8 +251,9 @@ sub create_invoice_for_fees {
              $amount,
              $dunning_id,       # duedate
              $curr,             # default currency
+             $dunning_id,       # taxzone_id
              sprintf($main::locale->text('Automatically created invoice for fee and interest for dunning %s'), $dunning_id), # notes
-             $form->{login});   # employee_id
+             $::myconfig{login});   # employee_id
   do_query($form, $dbh, $query, @values);
 
   $query =
@@ -514,11 +523,16 @@ sub get_invoices {
        WHERE dunning_level = (SELECT MAX(dunning_level) FROM dunning_config)|;
   my ($id_for_max_dunning_level) = selectrow_query($form, $dbh, $query);
 
+  if (!$form->{l_include_direct_debit}) {
+    $where .= qq| AND NOT COALESCE(a.direct_debit, FALSE) |;
+  }
+
   $query =
     qq|SELECT
-         a.id, a.ordnumber, a.transdate, a.invnumber, a.amount, a.language_id,
+         a.id, a.invoice, a.ordnumber, a.transdate, a.invnumber, a.amount, a.language_id,
          ct.name AS customername, a.customer_id, a.duedate,
          a.amount - a.paid AS open_amount,
+         a.direct_debit,
 
          cfg.dunning_description, cfg.dunning_level,
 
@@ -873,7 +887,7 @@ sub print_dunning {
 
   push @{ $form->{DUNNING_PDFS} }, $filename;
   push @{ $form->{DUNNING_PDFS_EMAIL} }, { 'filename' => "${spool}/$filename",
-                                           'name'     => "dunning_${dunning_id}.pdf" };
+                                           'name'     => $form->get_formname_translation('dunning') . "_${dunning_id}.pdf" };
 
   $form->parse_template($myconfig);
 
@@ -926,7 +940,7 @@ sub print_invoice_for_fees {
   map { $form->{$_} = $ref->{$_} } keys %{ $ref };
 
   $query = qq|SELECT * FROM employee WHERE login = ?|;
-  $ref = selectfirst_hashref_query($form, $dbh, $query, $form->{login});
+  $ref = selectfirst_hashref_query($form, $dbh, $query, $::myconfig{login});
   map { $form->{"employee_${_}"} = $ref->{$_} } keys %{ $ref };
 
   $query = qq|SELECT * FROM acc_trans WHERE trans_id = ? ORDER BY acc_trans_id ASC|;