]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Mahnungen löschen
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 17 Sep 2015 11:10:33 +0000 (13:10 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 Sep 2015 11:10:11 +0000 (13:10 +0200)
bin/mozilla/dn.pl
locale/de/all
templates/webpages/dunning/search.html
templates/webpages/dunning/show_dunning_bottom.html

index 6b2cad0e66848a91aae829ff28866750c7615319..e418fa28fff78e7f3c3281898f164eb9c443dabe 100644 (file)
@@ -36,6 +36,9 @@ use POSIX qw(strftime);
 use SL::IS;
 use SL::PE;
 use SL::DN;
+use SL::DB::Dunning;
+use SL::Helper::Flash;
+use SL::Locale::String qw(t8);
 use SL::ReportGenerator;
 
 require "bin/mozilla/common.pl";
@@ -473,6 +476,29 @@ sub print_dunning {
   $main::lxdebug->leave_sub();
 }
 
+sub delete {
+  $main::auth->assert('dunning_edit');
+
+  my @dunning_ids = map { $::form->{"dunning_id_$_"} } grep { $::form->{"selected_$_"} } (1..$::form->{rowcount});
+
+  if (!scalar @dunning_ids) {
+    $::form->error($::locale->text('No dunnings have been selected for printing.'));
+  }
+
+  my $dunnings = SL::DB::Manager::Dunning->get_all(query => [ dunning_id => \@dunning_ids ]);
+
+  SL::DB::Dunning->new->db->with_transaction(sub {
+    for my $dunning (@$dunnings) {
+      SL::DB::Manager::Invoice->find_by(id => $dunning->trans_id)->update_attributes(dunning_config_id => undef);
+      $dunning->delete;
+    }
+  });
+
+  flash('info', t8('#1 dunnings have been deleted', scalar @$dunnings));
+
+  search();
+}
+
 sub print_multiple {
   $main::lxdebug->enter_sub();
 
@@ -526,4 +552,14 @@ sub continue {
   call_sub($main::form->{nextsub});
 }
 
+sub dispatcher {
+  foreach my $action (qw(delete print_multiple)) {
+    if ($::form->{"action_${action}"}) {
+      call_sub($action);
+      return;
+    }
+  }
+
+  $::form->error($::locale->text('No action defined.'));
+}
 # end of main
index 512329a4f603b1a7591a9b2245e712fbdd9e2b14..74ca6749bb8636c57af08135943293a14fc3b087 100755 (executable)
@@ -17,6 +17,7 @@ $self->{texts} = {
   '#1 (custom variable)'        => '#1 (benutzerdefinierte Variable)',
   '#1 MD'                       => '#1 PT',
   '#1 additional part(s)'       => '#1 zusätzliche(r) Artikel',
+  '#1 dunnings have been deleted' => '#1 Mahnung(en) wurden gelöscht',
   '#1 h'                        => '#1 h',
   '#1 of #2 importable objects were imported.' => '#1 von #2 importierbaren Objekten wurden importiert.',
   '#1 prices were updated.'     => '#1 Preise wurden aktualisiert.',
@@ -2931,6 +2932,7 @@ $self->{texts} = {
   'This requirement spec is currently linked to the following project:' => 'Dieses Pflichtenheft ist mit dem folgenden Projekt verknüpft:',
   'This requirement spec is currently not linked to a project.' => 'Dieses Pflichtenheft ist noch nicht mit einem Projekt verknüpft.',
   'This requires you to manually correct entries for which an automatic conversion failed and to check those for which it succeeded.' => 'Dies erfordert, dass Sie diejenigen Einträge manuell korrigieren, für die die automatische Umstellung fehlschlug, sowie dass Sie diejenigen überprüfen, für die die Umstellung erfolgreich war.',
+  'This resets the dunning process for the selected invoices. Posted dunning invoices will not be changed!' => 'Hiermit wird der Mahnprozess für die ausgewählten Rechnungen zurückgesetzt. Bereits gebuchte Rechnungen über Mahngebühren werden nicht geändert!',
   'This sales order has an active configuration for periodic invoices. If you save then all subsequently created invoices will contain those changes as well, but not those that have already been created. Do you want to continue?' => 'Dieser Auftrag besitzt eine aktive Konfiguration für wiederkehrende Rechnungen. Wenn Sie jetzt speichern, so werden alle zukünftig hieraus erzeugten Rechnungen die Änderungen enthalten, nicht aber die bereits erzeugten Rechnungen. Wollen Sie speichern?',
   'This status output will be refreshed every five seconds.' => 'Diese Statusausgabe wird alle fünf Sekunden aktualisiert.',
   'This transaction has to be split into several transactions manually.' => 'Diese Buchung muss manuell in mehrere Buchungen aufgeteilt werden.',
index 1c24756811bbf542f3071905a46462ce16647913..83b59c6b3e268a4dd9046664fbbd4855af906256 100644 (file)
@@ -3,7 +3,7 @@
 [%- USE L %]
 <h1>[% title %]</h1>
 
- <script type="text/javascript" src="js/common.js"></script>
+[% PROCESS 'common/flash.html' %]
 
  <form method="post" name="search" action="dn.pl">
 
index f0b225e64df10eac9e947f17f7941380110d1ab9..92556809025d089452de314d8faff49100783036 100644 (file)
@@ -1,5 +1,8 @@
 [%- USE T8 %]
-[% USE HTML %]  <input type="hidden" name="rowcount" value="[% rowcount %]">
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- USE L %]
+<input type="hidden" name="rowcount" value="[% rowcount %]">
 
   <p>
     <input type="checkbox" id='force_lang' name="force_lang" size="6" value="1">
@@ -9,9 +12,9 @@
 
   <p>
    [% 'Dunnings' | $T8 %]<br>
-   <input type="hidden" name="print_nextsub" value="print_multiple">
-   <input type="hidden" name="action" value="print">
-   <input type="submit" class="submit" value="[%- 'Print' | $T8 %]">
+   [% L.hidden_tag('action', 'dispatcher') %]
+   <input type="submit" class="submit" name='action_print_multiple' value="[%- 'Print' | $T8 %]">
+   [% L.submit_tag('action_delete', LxERP.t8('Delete'), confirm=LxERP.t8('This resets the dunning process for the selected invoices. Posted dunning invoices will not be changed!')) %]
   </p>
 
  </form>