Druckerauswahl war nicht korrekt bei leerer Druckermenge.
[kivitendo-erp.git] / bin / mozilla / ap.pl
index b729cf0..0351205 100644 (file)
@@ -298,12 +298,13 @@ selectvendor } </select>|
   map({ push(@old_project_ids, $form->{"project_id_$_"})
           if ($form->{"project_id_$_"}); } (1..$form->{"rowcount"}));
 
-  $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
-                                   "all" => 0,
-                                   "old_id" => \@old_project_ids },
-                   "charts" => { "key" => "ALL_CHARTS",
-                                 "transdate" => $form->{transdate} },
-                   "taxcharts" => "ALL_TAXCHARTS");
+  $form->get_lists("projects"  => { "key"       => "ALL_PROJECTS",
+                                    "all"       => 0,
+                                    "old_id"    => \@old_project_ids },
+                   "charts"    => { "key"       => "ALL_CHARTS",
+                                    "transdate" => $form->{transdate} },
+                   "taxcharts" => { "key"       => "ALL_TAXCHARTS",
+                                    "module"    => "AP" },);
 
   map({ $_->{link_split} = [ split(/:/, $_->{link}) ]; }
       @{ $form->{ALL_CHARTS} });
@@ -361,12 +362,12 @@ selectvendor } </select>|
 
     # with JavaScript Calendar
     $button1 = qq|
-       <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\"> $readonly</td>
+       <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\" $readonly></td>
        <td><input type=button name=transdate id="trigger1" value=|
       . $locale->text('button') . qq|></td>
        |;
     $button2 = qq|
-       <td><input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\"> $readonly</td>
+       <td><input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\" $readonly></td>
        <td><input type=button name=duedate id="trigger2" value=|
       . $locale->text('button') . qq|></td></td>
      |;
@@ -379,9 +380,9 @@ selectvendor } </select>|
 
     # without JavaScript Calendar
     $button1 =
-      qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\"> $readonly</td>|;
+      qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\" $readonly></td>|;
     $button2 =
-      qq|<td><input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\"> $readonly</td>|;
+      qq|<td><input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\" $readonly></td>|;
   }
 
   my $follow_up_vc         =  $form->{vendor};
@@ -498,8 +499,6 @@ $jsscript
     . $locale->text('Amount') . qq|</th>
           <th class=listheading style="width:10%">|
     . $locale->text('Tax') . qq|</th>
-          <th class=listheading style="width:5%">|
-    . $locale->text('Korrektur') . qq|</th>
           <th class=listheading style="width:10%">|
     . $locale->text('Taxkey') . qq|</th>
           <th class=listheading style="width:10%">|
@@ -555,8 +554,6 @@ $jsscript
                            '-default' => $selected_taxchart))
       . qq|</td>|;
 
-    my $korrektur = $form->{"korrektur_$i"} ? 'checked' : '';
-
     my $projectnumber =
       NTI($cgi->popup_menu('-name' => "project_id_$i",
                            '-values' => \@project_values,
@@ -567,8 +564,7 @@ $jsscript
        <tr>
           <td>$selectAP_amount</td>
           <td><input name="amount_$i" size=10 value=$form->{"amount_$i"}></td>
-          <td><input name="tax_$i" size=10 value=$form->{"tax_$i"}></td>
-          <td><input type="checkbox" name="korrektur_$i" value="1" "$korrektur"></td>
+          <td><input type="hidden" name="tax_$i" value="$form->{"tax_$i"}">$form->{"tax_$i"}</td>
           $tax
           <td>$projectnumber</td>
        </tr>
@@ -804,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|">
@@ -869,17 +864,15 @@ sub update {
     if ($form->{"amount_$i"}) {
       push @a, {};
       $j = $#a;
-      if (!$form->{"korrektur_$i"}) {
-        ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
-        if ($taxkey > 1) {
-          if ($form->{taxincluded}) {
-            $form->{"tax_$i"} = $form->{"amount_$i"} / ($rate + 1) * $rate;
-          } else {
-            $form->{"tax_$i"} = $form->{"amount_$i"} * $rate;
-          }
+      ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
+      if ($taxkey > 1) {
+        if ($form->{taxincluded}) {
+          $form->{"tax_$i"} = $form->{"amount_$i"} / ($rate + 1) * $rate;
         } else {
-          $form->{"tax_$i"} = 0;
+          $form->{"tax_$i"} = $form->{"amount_$i"} * $rate;
         }
+      } else {
+        $form->{"tax_$i"} = 0;
       }
       $form->{"tax_$i"} = $form->round_amount($form->{"tax_$i"}, 2);
 
@@ -1413,7 +1406,7 @@ sub ap_transactions {
     'globalprojectnumber'     => { 'text' => $locale->text('Project Number'), },
   );
 
-  foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid employee shippingpoint shipvia)) {
+  foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid employee shippingpoint shipvia transaction_description)) {
     my $sortdir                 = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
     $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
   }
@@ -1426,48 +1419,27 @@ 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});
 
   my @options;
-  if ($form->{vendor}) {
-    push @options, $locale->text('Vendor') . " : $form->{vendor}";
-  }
-  if ($form->{department}) {
-    ($department) = split /--/, $form->{department};
-    push @options, $locale->text('Department') . " : $department";
-  }
-  if ($form->{invnumber}) {
-    push @options, $locale->text('Invoice Number') . " : $form->{invnumber}";
-  }
-  if ($form->{ordnumber}) {
-    push @options, $locale->text('Order Number') . " : $form->{ordnumber}";
-  }
-  if ($form->{notes}) {
-    push @options, $locale->text('Notes') . " : $form->{notes}";
-  }
-  if ($form->{transaction_description}) {
-    push @options, $locale->text('Transaction description') . " : $form->{transaction_description}";
-  }
-  if ($form->{transdatefrom}) {
-    push @options, $locale->text('From') . "&nbsp;" . $locale->date(\%myconfig, $form->{transdatefrom}, 1);
-  }
-  if ($form->{transdateto}) {
-    push @options, $locale->text('Bis') . "&nbsp;" . $locale->date(\%myconfig, $form->{transdateto}, 1);
-  }
-  if ($form->{open}) {
-    push @options, $locale->text('Open');
-  }
-  if ($form->{closed}) {
-    push @options, $locale->text('Closed');
-  }
+  push @options, $locale->text('Vendor')                  . " : $form->{vendor}"                         if ($form->{vendor});
+  push @options, $locale->text('Department')              . " : " . (split /--/, $form->{department})[0] if ($form->{department});
+  push @options, $locale->text('Invoice Number')          . " : $form->{invnumber}"                      if ($form->{invnumber});
+  push @options, $locale->text('Order Number')            . " : $form->{ordnumber}"                      if ($form->{ordnumber});
+  push @options, $locale->text('Notes')                   . " : $form->{notes}"                          if ($form->{notes});
+  push @options, $locale->text('Transaction description') . " : $form->{transaction_description}"        if ($form->{transaction_description});
+  push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1)      if ($form->{transdatefrom});
+  push @options, $locale->text('Bis')  . " " . $locale->date(\%myconfig, $form->{transdateto},   1)      if ($form->{transdateto});
+  push @options, $locale->text('Open')                                                                   if ($form->{open});
+  push @options, $locale->text('Closed')                                                                 if ($form->{closed});
 
   $report->set_options('top_info_text'        => join("\n", @options),
                        '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();
 
@@ -1493,9 +1465,20 @@ sub ap_transactions {
 
     map { $ap->{$_} = $form->format_amount(\%myconfig, $ap->{$_}, 2) } qw(netamount tax amount paid due);
 
-    $ap->{type} =
-      $ap->{invoice} ? $locale->text("Invoice (one letter abbreviation)") :
-                       $locale->text("AP Transaction (abbreviation)");
+    my $is_storno  = $ap->{storno} &&  $ap->{storno_id};
+    my $has_storno = $ap->{storno} && !$ap->{storno_id};
+
+    if ($ap->{invoice}) {
+      $ap->{type} =
+          $has_storno       ? $locale->text("Invoice with Storno (abbreviation)")
+        : $is_storno        ? $locale->text("Storno (one letter abbreviation)")
+        :                     $locale->text("Invoice (one letter abbreviation)");
+    } else {
+      $ap->{type} =
+          $has_storno       ? $locale->text("AP Transaction with Storno (abbreviation)")
+        : $is_storno        ? $locale->text("AP Transaction Storno (one letter abbreviation)")
+        :                     $locale->text("AP Transaction (abbreviation)");
+    }
 
     my $row = { };