]> wagnertech.de Git - mfinanz.git/commitdiff
Merge branch 'master' of https://github.com/kivitendo/kivitendo-erp
authorAndreas Rudin <andreas.rudin@revamp-it.ch>
Fri, 24 Jun 2016 20:47:52 +0000 (22:47 +0200)
committerAndreas Rudin <andreas.rudin@revamp-it.ch>
Fri, 24 Jun 2016 20:47:52 +0000 (22:47 +0200)
SL/DB/Helper/FlattenToForm.pm
bin/mozilla/gl.pl

index a0daf4491c7ead6718bd2d92dbbad3bb9256aef3..7a3922c994efb4a9e02a46523a5d7991e8714d9b 100644 (file)
@@ -20,8 +20,10 @@ sub flatten_to_form {
 
   if ( $vc eq 'customer' ) {
     $form->{customer_id} = $self->customer_id;
+    $form->{customer}    = $self->customer->name if $self->customer;
   } else {
-    $form->{vendor_id} = $self->vendor_id;
+    $form->{vendor_id}   = $self->vendor_id;
+    $form->{vendor}      = $self->vendor->name if $self->vendor;
   };
 
   if (_has($self, 'transdate')) {
@@ -31,7 +33,7 @@ sub flatten_to_form {
     $form->{$transdate_idx} = $self->transdate->to_lxoffice;
   }
 
-  $form->{vc} = $vc if ref($self) =~ m{^SL::DB::(?:.*Invoice|Order)};
+  $form->{vc} = $vc if ref($self) =~ m{^SL::DB::(?:.*Invoice|.*Order)};
 
   my @vc_fields          = (qw(account_number bank bank_code bic business city contact country creditlimit
                                department_1 department_2 discount email fax gln homepage iban language name
index 8a8181917b68f283b1232e018f522f5a0b1b462d..608ae75e115977b950712562e65112fa3857ceb0 100644 (file)
@@ -42,7 +42,7 @@ use SL::GL;
 use SL::IS;
 use SL::PE;
 use SL::ReportGenerator;
-use SL::DBUtils qw(selectrow_query);
+use SL::DBUtils qw(selectrow_query selectall_hashref_query);
 
 require "bin/mozilla/common.pl";
 require "bin/mozilla/reportgenerator.pl";
@@ -165,7 +165,7 @@ sub prepare_transaction {
         $form->{totalcredit} += $ref->{amount};
         $form->{"credit_$i"} = $ref->{amount};
       }
-      $form->{"taxchart_$i"} = "0--0.00";
+      $form->{"taxchart_$i"} = $ref->{id}."--0.00000";
       $form->{"project_id_$i"} = $ref->{project_id};
       $i++;
     }
@@ -528,6 +528,11 @@ sub update {
   my $creditcount = 0;
   my ($debitcredit, $amount);
 
+  my $dbh = $form->dbconnect_noauto(\%myconfig);
+  my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", );
+  my $zerotaxes  = selectall_hashref_query($form, $dbh, "SELECT id FROM tax WHERE rate = 0", );
+  $dbh->disconnect;
+
   my @flds =
     qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
 
@@ -566,10 +571,10 @@ sub update {
         $form->{debitlock} = 1;
       }
       if ($debitcredit && $credittax) {
-        $form->{"taxchart_$i"} = "0--0.00";
+        $form->{"taxchart_$i"} = "$notax_id--0.00";
       }
       if (!$debitcredit && $debittax) {
-        $form->{"taxchart_$i"} = "0--0.00";
+        $form->{"taxchart_$i"} = "$notax_id--0.00";
       }
       $amount =
         ($form->{"debit_$i"} == 0)
@@ -577,11 +582,12 @@ sub update {
         : $form->{"debit_$i"};
       my $j = $#a;
       if (($debitcredit && $credittax) || (!$debitcredit && $debittax)) {
-        $form->{"taxchart_$i"} = "0--0.00";
+        $form->{"taxchart_$i"} = "$notax_id--0.00";
         $form->{"tax_$i"}      = 0;
       }
       my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
-      if ($taxkey > 1) {
+      my $iswithouttax = grep { $_->{id} == $taxkey } @{ $zerotaxes };
+      if (!$iswithouttax) {
         if ($debitcredit) {
           $debittax = 1;
         } else {
@@ -994,6 +1000,7 @@ sub post_transaction {
 
   my $dbh = $form->dbconnect_noauto(\%myconfig);
   my ($notax_id) = selectrow_query($form, $dbh, "SELECT id FROM tax WHERE taxkey = 0 LIMIT 1", );
+  my $zerotaxes  = selectall_hashref_query($form, $dbh, "SELECT id FROM tax WHERE rate = 0", );
   $dbh->disconnect;
 
   my @flds = qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
@@ -1050,7 +1057,8 @@ sub post_transaction {
       $form->{"tax_$i"}      = 0;
     }
     my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"});
-    if ($taxkey > 1) {
+    my $iswithouttax = grep { $_->{id} == $taxkey } @{ $zerotaxes };
+    if (!$iswithouttax) {
       if ($debitcredit) {
         $debittax = 1;
       } else {