Kundenstatistik: erster commit ohne Webtemplates
[kivitendo-erp.git] / SL / Controller / YearEndTransactions.pm
index 75998c5..a81fa3b 100644 (file)
@@ -15,6 +15,8 @@ use SL::DB::GLTransaction;
 use SL::DB::AccTransaction;
 use SL::DB::Helper::AccountingPeriod qw(get_balance_starting_date);
 
+use SL::Presenter::Tag qw(checkbox_tag);
+
 use Rose::Object::MakeMethods::Generic (
   'scalar --get_set_init' => [ qw(charts charts9000 cbob_chart cb_date cb_startdate ob_date cb_reference ob_reference cb_description ob_description) ],
 );
@@ -29,6 +31,8 @@ sub action_filter {
   $self->cb_reference(t8('CB Transaction'))   if !$self->cb_reference;
   $self->ob_description(t8('OB Transaction')) if !$self->ob_description;
   $self->cb_description(t8('CB Transaction')) if !$self->cb_description;
+
+  $self->setup_filter_action_bar;
   $self->render('gl/yearend_filter',
                 title               => t8('CB/OB Transactions'),
                 make_title_of_chart => sub { $_[0]->accno.' '.$_[0]->description }
@@ -52,6 +56,8 @@ sub action_list {
     allow_csv_export     => 0,
     title                => $::locale->text('CB/OB Transactions'),
   );
+
+  $self->setup_list_action_bar;
   $report->generate_with_headers();
   $main::lxdebug->leave_sub();
 }
@@ -106,7 +112,7 @@ sub prepare_report {
   my $idx = 1;
 
   my %column_defs = (
-    'ids'         => { raw_header_data => $self->presenter->checkbox_tag("", id => "check_all",
+    'ids'         => { raw_header_data => checkbox_tag("", id => "check_all",
                                                                           checkall => "[data-checkall=1]"), 'align' => 'center' },
     'chart'       => { text => $::locale->text('Account'), },
     'description' => { text => $::locale->text('Description'), },
@@ -148,7 +154,7 @@ sub prepare_report {
       my $chart_id = $chart->id;
       my $row = { map { $_ => { 'data' => '' } } @columns };
       $row->{ids}  = {
-        'raw_data' => $self->presenter->checkbox_tag("multi_id_${idx}", value => $chart_id, "data-checkall" => 1),
+        'raw_data' => checkbox_tag("multi_id_${idx}", value => $chart_id, "data-checkall" => 1),
         'valign'   => 'center',
         'align'    => 'center',
       };
@@ -205,7 +211,7 @@ sub get_balance {
   #$main::lxdebug->message(LXDebug->DEBUG2(),"get_balance from=".$self->cb_startdate->to_kivitendo." to=".$self->cb_date->to_kivitendo);
   my $balance = $chart->get_balance(fromdate => $self->cb_startdate, todate => $self->cb_date);
   $main::lxdebug->leave_sub();
-  return 0 unless $balance != 0;
+  return 0 if !defined $balance || $balance == 0;
   return $balance;
 }
 
@@ -270,4 +276,38 @@ sub init_charts {
   SL::DB::Manager::Chart->get_all(  query => [ \ "accno not like '9%'"], sort_by => 'accno ASC' );
 }
 
+sub setup_filter_action_bar {
+  my ($self) = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Continue'),
+        submit    => [ '#filter_form', { action => 'YearEndTransactions/list' } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
+sub setup_list_action_bar {
+  my ($self) = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Post'),
+        submit    => [ '#form', { action => 'YearEndTransactions/generate' } ],
+        tooltip   => t8('generate cb/ob transactions for selected charts'),
+        confirm   => t8('Are you sure to generate cb/ob transactions?'),
+        accesskey => 'enter',
+      ],
+      action => [
+        t8('Back'),
+        call => [ 'kivi.history_back' ],
+      ],
+    );
+  }
+}
+
 1;