Beim Wechsel des Lieferanten das Konto und den Steuerschlüssel richtig vorbelegen.
[kivitendo-erp.git] / bin / mozilla / ap.pl
index 070748b..75631fa 100644 (file)
@@ -800,10 +800,9 @@ $follow_ups_block
                 <input class=submit type=submit name=action value="| . $locale->text('Delete') . qq|">
 |;
     }
-
     # ToDO: - insert a global check for stornos, so that a storno is only possible a limited time after saving it
     print qq| <input class=submit type=submit name=action value="| . $locale->text('Storno') . qq|"> |
-      if ($form->{id} && !IS->has_storno(\%myconfig, $form, 'ap') && !IS->is_storno(\%myconfig, $form, 'ap', $form->{id}));
+      if ($form->{id} && !IS->has_storno(\%myconfig, $form, 'ap') && !IS->is_storno(\%myconfig, $form, 'ap', $form->{id}) && (($total_paid == 0) || ($total_paid eq "")));
 
     print qq| <input class=submit type=submit name=action value="| . $locale->text('Post Payment') . qq|">
               <input class=submit type=submit name=action value="| . $locale->text('Use As Template') . qq|">
@@ -856,7 +855,7 @@ sub update {
   map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
     qw(exchangerate creditlimit creditremaining);
 
-  @flds  = qw(amount AP_amount projectnumber oldprojectnumber project_id);
+  @flds  = qw(amount AP_amount projectnumber oldprojectnumber project_id taxchart);
   $count = 0;
   for $i (1 .. $form->{rowcount}) {
     $form->{"amount_$i"} =
@@ -890,9 +889,16 @@ sub update {
   $form->{exchangerate} = $form->{forex} if $form->{forex};
 
   $form->{invdate} = $form->{transdate};
-  $save_AP = $form->{AP};
+  my %saved_variables = map +( $_ => $form->{$_} ), qw(AP AP_amount_1 taxchart_1);
+
   &check_name("vendor");
-  $form->{AP} = $save_AP;
+
+  $form->{AP} = $saved_variables{AP};
+  if ($saved_variables{AP_amount_1} =~ m/.--./) {
+    map { $form->{$_} = $saved_variables{$_} } qw(AP_amount_1 taxchart_1);
+  } else {
+    delete $form->{taxchart_1};
+  }
 
   $form->{rowcount} = $count + 1;
 
@@ -1420,7 +1426,7 @@ sub ap_transactions {
   $report->set_columns(%column_defs);
   $report->set_column_order(@columns);
 
-  $report->set_export_options('ap_transactions', @hidden_variables);
+  $report->set_export_options('ap_transactions', @hidden_variables, qw(sort sortdir));
 
   $report->set_sort_indicator($form->{sort}, $form->{sortdir});
 
@@ -1440,7 +1446,7 @@ sub ap_transactions {
                        'raw_bottom_info_text' => $form->parse_html_template('ap/ap_transactions_bottom'),
                        'output_format'        => 'HTML',
                        'title'                => $form->{title},
-                       'attachment_basename'  => $locale->text('invoice_list') . strftime('_%Y%m%d', localtime time),
+                       'attachment_basename'  => $locale->text('vendor_invoice_list') . strftime('_%Y%m%d', localtime time),
     );
   $report->set_options_from_form();
 
@@ -1514,40 +1520,6 @@ sub ap_transactions {
   $lxdebug->leave_sub();
 }
 
-
-sub vendor_invoice {
-  $lxdebug->enter_sub();
-
-  $auth->assert('invoice_edit');
-
-
-  $form->{script} = 'ir.pl';
-  $script         = "ir";
-  $form->{type} = "invoice";
-  $locale = new Locale "$myconfig{countrycode}", "$script";
-
-  require "bin/mozilla/$form->{script}";
-  &add;
-
-  $lxdebug->leave_sub();
-}
-
-sub ap_transaction {
-  $lxdebug->enter_sub();
-
-  $auth->assert('general_ledger');
-
-
-  $form->{script} = 'ap.pl';
-  $script         = "ap";
-  $locale = new Locale "$myconfig{countrycode}", "$script";
-
-  require "bin/mozilla/$form->{script}";
-  &add;
-
-  $lxdebug->leave_sub();
-}
-
 sub storno {
   $lxdebug->enter_sub();