ActionBar: Verwendung bei »offene Forderungen/Verbindlichkeiten«
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 18 Jan 2017 14:49:10 +0000 (15:49 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 28 Feb 2017 09:44:02 +0000 (10:44 +0100)
SL/Form.pm
bin/mozilla/rp.pl
locale/de/all
templates/webpages/rp/aging_ar_bottom.html
templates/webpages/rp/aging_ar_top.html
templates/webpages/rp/e_mail.html [deleted file]
templates/webpages/rp/print_options.html
templates/webpages/rp/report.html

index 55817db..362268d 100644 (file)
@@ -1293,6 +1293,7 @@ sub get_formname_translation {
     dunning                 => $main::locale->text('Dunning'),
     letter                  => $main::locale->text('Letter'),
     ic_supply               => $main::locale->text('Intra-Community supply'),
+    statement               => $main::locale->text('Statement'),
   );
 
   $main::lxdebug->leave_sub();
index a4ba678..e6543fe 100644 (file)
@@ -43,6 +43,7 @@ use SL::DB::Project;
 use SL::DB::Customer;
 use SL::RP;
 use SL::Iconv;
+use SL::Locale::String qw(t8);
 use SL::ReportGenerator;
 use Data::Dumper;
 use List::MoreUtils qw(any);
@@ -164,6 +165,7 @@ sub report {
   my $is_trial_balance       = $::form->{report} eq "trial_balance";
   my $is_aging               = $::form->{report} =~ /^a[rp]_aging$/;
   my $is_payments            = $::form->{report} =~ /(receipts|payments)$/;
+  my $format                 = 'html';
 
   my ($label, $nextsub, $vc);
   if ($is_aging) {
@@ -174,6 +176,8 @@ sub report {
     $nextsub = "generate_$::form->{report}";
 
     $vc = qq|<input name=$::form->{vc} size=35 class="initial_focus">|;
+
+    $format = 'pdf';
   }
 
   my ($selection, $paymentaccounts);
@@ -189,6 +193,8 @@ sub report {
     }
   }
 
+  setup_rp_report_action_bar();
+
   $::form->header;
   print $::form->parse_html_template('rp/report', {
     paymentaccounts        => $paymentaccounts,
@@ -206,6 +212,7 @@ sub report {
     is_income_statement    => $is_income_statement,
     is_erfolgsrechnung     => $is_erfolgsrechnung,
     is_projects            => $is_projects,
+    format                 => $format,
   });
 
   $::lxdebug->leave_sub;
@@ -1001,7 +1008,7 @@ sub aging {
   my @columns = qw(statement ct invnumber transdate duedate amount open);
 
   my %column_defs = (
-    'statement' => { 'text' => '', 'visible' => $form->{ct} eq 'customer' ? 'HTML' : 0, },
+    'statement' => { raw_header_data => $::request->presenter->checkbox_tag("checkall", checkall => '[name^=statement_]'), 'visible' => $form->{ct} eq 'customer' ? 'HTML' : 0, align => "center" },
     'ct'        => { 'text' => $form->{ct} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), },
     'invnumber' => { 'text' => $locale->text('Invoice'), },
     'transdate' => { 'text' => $locale->text('Date'), },
@@ -1112,62 +1119,12 @@ sub aging {
                          'raw_bottom_info_text' => $raw_bottom_info_text);
   }
 
+  setup_rp_aging_action_bar(arap => $form->{arap});
   $report->generate_with_headers();
 
   $main::lxdebug->leave_sub();
 }
 
-sub select_all {
-  $main::lxdebug->enter_sub();
-
-  my $form     = $main::form;
-  my %myconfig = %main::myconfig;
-  my $locale   = $main::locale;
-
-  RP->aging(\%myconfig, \%$form);
-
-  map { $_->{checked} = "checked" } @{ $form->{AG} };
-
-  &aging;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub e_mail {
-  $::lxdebug->enter_sub;
-  $::auth->assert('general_ledger');
-
-  # get name and email addresses
-  my $selected = 0;
-  for my $i (1 .. $::form->{rowcount}) {
-    next unless $::form->{"statement_$i"};
-    $::form->{"$::form->{ct}_id"} = $::form->{"$::form->{ct}_id_$i"};
-    RP->get_customer(\%::myconfig, $::form);
-    $selected = 1;
-    last;
-  }
-
-  $::form->error($::locale->text('Nothing selected!')) unless $selected;
-
-  $::form->{media} = "email";
-
-  # save all other variables
-  my @hidden_values;
-  for my $key (keys %$::form) {
-    next if any { $key eq $_ } qw(login password action email cc bcc subject message type sendmode format header);
-    next unless '' eq ref $::form->{$key};
-    push @hidden_values, $key;
-  }
-
-  $::form->header;
-  print $::form->parse_html_template('rp/e_mail', {
-    print_options => print_options(inline => 1),
-    hidden_values => \@hidden_values,
-  });
-
-  $::lxdebug->leave_sub;
-}
-
 sub send_email {
   $main::lxdebug->enter_sub();
 
@@ -1184,6 +1141,11 @@ sub send_email {
 
   $form->{"statement_1"} = 1;
 
+  my $email_form  = delete $form->{email_form};
+  my %field_names = (to => 'email');
+
+  $form->{ $field_names{$_} // $_ } = $email_form->{$_} for keys %{ $email_form };
+
   $form->{media} = 'email';
   print_form();
 
@@ -1910,4 +1872,42 @@ sub hotfix_reformat_date {
   $main::lxdebug->leave_sub();
 
 }
+
+sub setup_rp_aging_action_bar {
+  my %params = @_;
+
+  return unless $params{arap} eq 'ar';
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      combobox => [
+        action => [
+          t8('Print'),
+          call   => [ 'kivi.SalesPurchase.show_print_dialog' ],
+          checks => [ [ 'kivi.check_if_entries_selected', '[name^=statement_]' ] ],
+        ],
+        action => [
+          t8('E Mail'),
+          call   => [ 'kivi.SalesPurchase.show_email_dialog', 'send_email' ],
+          checks => [ [ 'kivi.check_if_entries_selected', '[name^=statement_]' ] ],
+        ],
+      ],
+    );
+  }
+}
+
+sub setup_rp_report_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Continue'),
+        submit    => [ '#form', { action => 'continue' } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
 1;
index d376e64..fe65edf 100755 (executable)
@@ -1055,7 +1055,6 @@ $self->{texts} = {
   'E-Mail'                      => 'E-Mail',
   'E-Mail-Journal'              => 'E-Mail-Journal',
   'E-mail'                      => 'E-Mail',
-  'E-mail Statement to'         => 'Fälligkeitsabrechnung als E-Mail an',
   'E-mail address missing!'     => 'E-Mail-Adresse fehlt!',
   'EAN'                         => 'EAN',
   'EAN-Code'                    => 'EAN-Code',
@@ -2561,7 +2560,6 @@ $self->{texts} = {
   'Select a customer'           => 'Einen Kunden ausw&auml;hlen',
   'Select a period'             => 'Bitte Zeitraum auswählen',
   'Select a vendor'             => 'Einen Lieferanten ausw&auml;hlen',
-  'Select all'                  => 'Alle auswählen',
   'Select charts for which the CB/OB transactions want to be posted.' => 'Wählen Sie Konten aus, zu welchen SB/EB-Buchungen erstellt werden sollen.',
   'Select federal state...'     => 'Bundesland auswählen...',
   'Select file to upload'       => 'Datei zum Hochladen auswählen',
index d148e22..398c792 100644 (file)
@@ -1,7 +1,5 @@
 [%- USE T8 %]
-[% USE HTML %] <input type="hidden" name="rowcount" value="[% HTML.escape(row_idx) %]">
-
- [% PRINT_OPTIONS %]
+[% USE HTML %][%- USE L -%] <input type="hidden" name="rowcount" value="[% HTML.escape(row_idx) %]">
 
  <input type="hidden" name="todate" value="[% HTML.escape(todate) %]">
  <input type="hidden" name="title" value="[% HTML.escape(title) %]">
  <input type="hidden" name="customer" value="[% HTML.escape(customer) %]">
  <input type="hidden" name="vendor" value="[% HTML.escape(vendor) %]">
  <input type="hidden" name="department" value="[% HTML.escape(department) %]">
+ [% L.hidden_tag("formname", "statement") %]
 
- [% 'Statement' | $T8 %]
- <br>
- <input class="submit" type="submit" name="action" value="[% 'Select all' | $T8 %]">
- <input class="submit" type="submit" name="action" value="[% 'Print' | $T8 %]">
- <input class="submit" type="submit" name="action" value="[% 'E-mail' | $T8 %]">
+<div id="email_inputs" class="hidden"></div>
+<div id="print_options" class="hidden">
+ [% PRINT_OPTIONS %]
+</div>
+</form>
 
 </form>
+<div id="print_dialog" class="hidden">
+ [%- PROCESS 'common/_print_dialog.html' %]
+</div>
index 066ac98..cae322a 100644 (file)
@@ -1 +1 @@
-<form method="post" action="rp.pl">
+<form method="post" action="rp.pl" id="form">
diff --git a/templates/webpages/rp/e_mail.html b/templates/webpages/rp/e_mail.html
deleted file mode 100644 (file)
index 3c20bb8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-[%- USE HTML %]
-[%- USE L %]
-[%- USE LxERP %]
-[%- USE T8 %]
-
-<h1>[% 'E-mail Statement to' | $T8 %] [% $ct %]</h1>
-
-<form method=post action='[% script %]'>
-
-<table>
-  <tr>
-    <th align=right nowrap>[% 'E-mail' | $T8 %]</th>
-    <td><input name=email size=30 value="[% email %]"></td>
-    <th align=right nowrap>[% 'Cc' | $T8 %]</th>
-    <td><input name=cc size=30 value="[% cc %]"></td>
-  </tr>
-  <tr>
-    <th align=right nowrap>[% 'Subject' | $T8 %]</th>
-    <td><input name=subject size=30 value="[% subject %]"></td>
-[% IF AUTH.assert('email_bcc', 'may_fail') %]
-    <th align=right nowrap=true>[% 'Bcc' | $T8 %]</th>
-    <td><input name=bcc size=30 value="[% bcc | $T8 %]"></td>
-[%- END %]
-  </tr>
-</table>
-<table width=100%>
-  <tr>
-    <th align=left nowrap>[% 'Message' | $T8 %]</th>
-  </tr>
-  <tr>
-    <td><textarea name=message rows=15 cols=60 wrap=soft>[% message %]</textarea></td>
-  </tr>
-</table>
-[% print_options %]
-<hr size=3 noshade>
-
-<input type=hidden name=nextsub value=send_email>
-[%- FOREACH var = hidden_values %]
-[% L.hidden_tag(var, $var) %]
-[%- END %]
-
-<br>
-<input name=action class=submit type=submit value="[% 'Continue' | $T8 %]">
-</form>
-
index 33a34b8..d824f2e 100644 (file)
@@ -5,12 +5,12 @@
 <table>
   <tr>
     <td>
-     <select name=type>
+     <select name="type" id="type">
       <option value=statement [% PD.statement %]>[% 'Statement' | $T8 %]</option>
      </select>
     </td>
     <td>
-     <select name=format>
+     <select name="format" id="format">
       <option value=html [% DF.html %]>[% 'HTML' | $T8 %]</option>
       <option value=pdf [% DF.pdf %]>[% 'PDF' | $T8 %]</option>
       <option value=postscript [% DF.postscript %]>[% 'Postscript' | $T8 %]</option>
index b122652..162c59c 100644 (file)
 
 <h1>[% title %]</h1>
 
-<form method=post action='[% script %]'>
+<form method='post' action='[% script %]' id='form'>
 
 <input type=hidden name=title value="[% title %]">
 
     </td>
   </tr>
   <input type=hidden name=type value=statement>
-  <input type=hidden name=format value=html>
+  [% L.hidden_tag("format", format) %]
   <input type=hidden name=media value=screen>
 
   <input type=hidden name=nextsub value='[% nextsub %]'>
   </tr>
 [%- END %]
 </table>
-
-<hr size=3 noshade>
-<br>
-<input type=submit class=submit name=action value="[% 'Continue' | $T8 %]">
-
 </form>
 
 <script type="text/javascript">
@@ -398,4 +393,3 @@ function set_from_to(duetyp, year) {
   return true;
 }
 </script>
-