]> wagnertech.de Git - mfinanz.git/blobdiff - SL/IR.pm
Pflichtenhefte: beim Kopieren, Einfügen zusätzliche Artikel berücksichtigen
[mfinanz.git] / SL / IR.pm
index c13d84b1c7b0f2e19988e0d1a9de892a98cf4242..b36e6065a9f53799f49a77459cc3b17364129f04 100644 (file)
--- a/SL/IR.pm
+++ b/SL/IR.pm
@@ -46,6 +46,7 @@ use SL::HTML::Restrict;
 use SL::IO;
 use SL::MoreCommon;
 use SL::DB::Default;
+use SL::DB::TaxZone;
 use List::Util qw(min);
 
 use strict;
@@ -80,7 +81,7 @@ sub post_invoice {
       &reverse_invoice($dbh, $form);
     } else {
       ($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('glid')|);
-      do_query($form, $dbh, qq|INSERT INTO ap (id, invnumber, currency_id) VALUES (?, '', (SELECT id FROM currencies WHERE name=?))|, $form->{id}, $form->{currency});
+      do_query($form, $dbh, qq|INSERT INTO ap (id, invnumber, currency_id, taxzone_id) VALUES (?, '', (SELECT id FROM currencies WHERE name=?), ?)|, $form->{id}, $form->{currency}, $form->{taxzone_id});
     }
   }
 
@@ -672,6 +673,7 @@ sub post_invoice {
 
   # set values which could be empty
   my $taxzone_id         = $form->{taxzone_id} * 1;
+  $taxzone_id = SL::DB::Manager::TaxZone->get_default->id unless SL::DB::Manager::TaxZone->find_by(id => $taxzone_id);
 
   # Seit neuestem wird die department_id schon übergeben UND $form->department nicht mehr
   # korrekt zusammengebaut. Sehr wahrscheinlich beim Umstieg auf T8 kaputt gegangen
@@ -682,8 +684,6 @@ sub post_invoice {
   }
   $form->{invnumber}     = $form->{id} unless $form->{invnumber};
 
-  $taxzone_id = 0 if (3 < $taxzone_id) || (0 > $taxzone_id);
-
   # save AP record
   $query = qq|UPDATE ap SET
                 invnumber    = ?, ordnumber   = ?, quonumber     = ?, transdate   = ?,
@@ -963,9 +963,9 @@ sub retrieve_invoice {
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   my $transdate  = $form->{invdate} ? $dbh->quote($form->{invdate}) : "current_date";
-  my $taxzone_id = $form->{taxzone_id} * 1;
 
-  $taxzone_id = 0 if ((3 < $taxzone_id) || (0 > $taxzone_id));
+  my $taxzone_id = $form->{taxzone_id} * 1;
+  $taxzone_id = SL::DB::Manager::TaxZone->get_default->id unless SL::DB::Manager::TaxZone->find_by(id => $taxzone_id);
 
   # retrieve individual items
   $query =
@@ -1219,7 +1219,7 @@ sub retrieve_item {
   }
 
   my $taxzone_id = $form->{taxzone_id} * 1;
-  $taxzone_id    = 0 if ((3 < $taxzone_id) || (0 > $taxzone_id));
+  $taxzone_id = SL::DB::Manager::TaxZone->get_default->id unless SL::DB::Manager::TaxZone->find_by(id => $taxzone_id);
 
   my $query =
     qq|SELECT