X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fdn.pl;h=8008f25cac4137e391db24bc115d44c4cb61b93c;hb=88f11e29e4262e1e567f5b48e10bfe51eb5759ea;hp=9cac44e3a6b8d6e6ea5c41dd36dd35270f37955b;hpb=593a71851023f5b248fff933d6cc00ff4cfce90d;p=kivitendo-erp.git diff --git a/bin/mozilla/dn.pl b/bin/mozilla/dn.pl index 9cac44e3a..8008f25ca 100644 --- a/bin/mozilla/dn.pl +++ b/bin/mozilla/dn.pl @@ -31,11 +31,14 @@ # #====================================================================== -use POSIX; +use POSIX qw(strftime); use SL::IS; use SL::PE; use SL::DN; +use SL::DB::Dunning; +use SL::Helper::Flash qw(flash); +use SL::Locale::String qw(t8); use SL::ReportGenerator; require "bin/mozilla/common.pl"; @@ -298,7 +301,7 @@ sub search { $form->get_lists("customers" => "ALL_CUSTOMERS", "departments" => "ALL_DEPARTMENTS"); - $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]); + $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]); DN->get_config(\%myconfig, \%$form); @@ -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