Merge branch 'master' of ssh://lx-office.linet-services.de/~/lx-office-erp
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 29 Dec 2010 16:07:20 +0000 (17:07 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 29 Dec 2010 16:07:20 +0000 (17:07 +0100)
SL/DO.pm
SL/IS.pm
bin/mozilla/do.pl

index d657cca..fe2318c 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -1053,6 +1053,7 @@ sub transfer_in_out {
       'oe_id'                  => $form->{id},
       'shippingdate'           => 'current_date',
       'transfer_type'          => $params{direction} eq 'in' ? 'stock' : 'shipped',
+      'project_id'             => $request->{project_id},
     };
   }
 
index 3896277..3b031bd 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -1377,6 +1377,20 @@ sub delete_invoice {
 
   my @values = (conv_i($form->{id}));
 
+  # Falls wir ein Storno haben, müssen zwei Felder in der stornierten Rechnung wieder
+  # zurückgesetzt werden. Vgl:
+  #  id | storno | storno_id |  paid   |  amount   
+  #----+--------+-----------+---------+-----------
+  # 18 | f      |           | 0.00000 | 119.00000
+  # ZU:
+  # 18 | t      |           |  119.00000 |  119.00000
+  #
+  if($form->{storno}){
+    # storno_id auslesen und korrigieren
+    my ($invoice_id) = selectfirst_array_query($form, $dbh, qq|SELECT storno_id FROM ar WHERE id = ?|,@values);
+    do_query($form, $dbh, qq|UPDATE ar SET storno = 'f', paid = 0 WHERE id = ?|, $invoice_id);
+  }
+
   # delete AR record
   do_query($form, $dbh, qq|DELETE FROM ar WHERE id = ?|, @values);
 
index 8299a1a..796118a 100644 (file)
@@ -1310,6 +1310,7 @@ sub transfer_out {
       foreach my $request (@{ DO->unpack_stock_information('packed' => $form->{"stock_out_$i"}) }) {
         $request->{parts_id} = $form->{"id_$i"};
         $request->{base_qty} = $request->{qty} * $units->{$request->{unit}}->{factor} / $base_unit_factor;
+        $request->{project_id} = $form->{"project_id_$i"} ? $form->{"project_id_$i"} : $form->{globalproject_id}; 
 
         my $map_key          = join '--', ($form->{"id_$i"}, @{$request}{qw(warehouse_id bin_id chargenumber bestbefore)});
 
@@ -1383,7 +1384,6 @@ sub transfer_out {
       ::end_of_request();
     }
   }
-
   DO->transfer_in_out('direction' => 'out',
                       'requests'  => \@all_requests);