]> wagnertech.de Git - mfinanz.git/blobdiff - SL/IS.pm
Bessere Formatierung
[mfinanz.git] / SL / IS.pm
index b8dd8ee6e6e7e4c01f86aa77a612a174fe704363..196d6dff2d7ad2b9e162195c0d9806fc4e9656af 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -707,9 +707,13 @@ sub post_invoice {
         }
       }
 
-      # get pricegroup_id and save it
+      # Get pricegroup_id and save it. Unfortunately the interface
+      # also uses ID "0" for signalling that none is selected, but "0"
+      # must not be stored in the database. Therefore we cannot simply
+      # use conv_i().
       ($null, my $pricegroup_id) = split(/--/, $form->{"sellprice_pg_$i"});
       $pricegroup_id *= 1;
+      $pricegroup_id  = undef if !$pricegroup_id;
 
       my ($invoice_id) = selectfirst_array_query($form, $dbh, qq|SELECT nextval('invoiceid')|);
 
@@ -729,7 +733,7 @@ sub post_invoice {
                  $form->{"sellprice_$i"}, $fxsellprice,
                  $form->{"discount_$i"}, $allocated, 'f',
                  $form->{"unit_$i"}, conv_date($form->{"reqdate_$i"}), conv_i($form->{"project_id_$i"}),
-                 $form->{"serialnumber_$i"}, conv_i($pricegroup_id),
+                 $form->{"serialnumber_$i"}, $pricegroup_id,
                  $form->{"ordnumber_$i"}, conv_date($form->{"transdate_$i"}),
                  $form->{"cusordnumber_$i"}, $baseqty, $form->{"subtotal_$i"} ? 't' : 'f',
                  $form->{"marge_percent_$i"}, $form->{"marge_absolut_$i"},
@@ -859,7 +863,13 @@ sub post_invoice {
         $query =
           qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, tax_id, taxkey, project_id)
              VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                     (SELECT tax_id FROM taxkeys WHERE taxkey_id= (SELECT taxkey_id  FROM chart WHERE accno = ?) AND startdate <= ? ORDER BY startdate DESC LIMIT 1),
+                     (SELECT tax_id 
+                      FROM taxkeys 
+                      WHERE chart_id= (SELECT id  
+                                       FROM chart 
+                                       WHERE accno = ?) 
+                      AND startdate <= ? 
+                      ORDER BY startdate DESC LIMIT 1),
                      (SELECT taxkey_id  FROM chart WHERE accno = ?), ?)|;
         @values = (conv_i($trans_id), $accno, $form->{amount}{$trans_id}{$accno}, conv_date($form->{invdate}), $accno, conv_date($taxdate), $accno, conv_i($project_id));
         do_query($form, $dbh, $query, @values);
@@ -874,7 +884,13 @@ sub post_invoice {
         $query =
           qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, tax_id, taxkey, project_id)
              VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                     (SELECT tax_id FROM taxkeys WHERE taxkey_id= (SELECT taxkey_id  FROM chart WHERE accno = ?) AND startdate <= ? ORDER BY startdate DESC LIMIT 1),
+                     (SELECT tax_id 
+                      FROM taxkeys 
+                      WHERE chart_id= (SELECT id 
+                                       FROM chart 
+                                       WHERE accno = ?) 
+                      AND startdate <= ? 
+                      ORDER BY startdate DESC LIMIT 1),
                      (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|;
         @values = (conv_i($trans_id), $accno, $form->{amount}{$trans_id}{$accno}, conv_date($form->{invdate}), $accno, conv_date($taxdate), $accno, conv_i($project_id));
         do_query($form, $dbh, $query, @values);
@@ -924,7 +940,13 @@ sub post_invoice {
         $query =
         qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, tax_id, taxkey, project_id)
            VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                   (SELECT tax_id FROM taxkeys WHERE taxkey_id= (SELECT taxkey_id  FROM chart WHERE accno = ?) AND startdate <= ? ORDER BY startdate DESC LIMIT 1),
+                   (SELECT tax_id 
+                    FROM taxkeys 
+                    WHERE chart_id= (SELECT id  
+                                     FROM chart 
+                                     WHERE accno = ?) 
+                    AND startdate <= ? 
+                    ORDER BY startdate DESC LIMIT 1),
                    (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|;
         @values = (conv_i($form->{"id"}), $form->{AR}, $amount, $form->{"datepaid_$i"}, $form->{AR}, conv_date($taxdate), $form->{AR}, $project_id);
         do_query($form, $dbh, $query, @values);
@@ -937,7 +959,13 @@ sub post_invoice {
       $query =
       qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, source, memo, tax_id, taxkey, project_id)
          VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?, ?,
-                 (SELECT tax_id FROM taxkeys WHERE taxkey_id= (SELECT taxkey_id  FROM chart WHERE accno = ?) AND startdate <= ? ORDER BY startdate DESC LIMIT 1),
+                 (SELECT tax_id 
+                  FROM taxkeys 
+                  WHERE chart_id= (SELECT id  
+                                   FROM chart 
+                                   WHERE accno = ?) 
+                  AND startdate <= ? 
+                  ORDER BY startdate DESC LIMIT 1),
                  (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|;
       @values = (conv_i($form->{"id"}), $accno, $form->{"paid_$i"}, $form->{"datepaid_$i"},
                  $gldate, $form->{"source_$i"}, $form->{"memo_$i"}, $accno, conv_date($taxdate), $accno, $project_id);
@@ -982,7 +1010,13 @@ sub post_invoice {
         $query =
           qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, cleared, fx_transaction, tax_id, taxkey, project_id)
              VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, '0', '1',
-                 (SELECT tax_id FROM taxkeys WHERE taxkey_id= (SELECT taxkey_id  FROM chart WHERE accno = ?) AND startdate <= ? ORDER BY startdate DESC LIMIT 1),
+                 (SELECT tax_id 
+                  FROM taxkeys 
+                  WHERE chart_id= (SELECT id  
+                                   FROM chart 
+                                   WHERE accno = ?) 
+                  AND startdate <= ? 
+                  ORDER BY startdate DESC LIMIT 1),
                  (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|;
         @values = (conv_i($form->{"id"}), $accno, $form->{fx}{$accno}{$transdate}, conv_date($transdate), $accno, conv_date($taxdate), $accno, conv_i($project_id));
         do_query($form, $dbh, $query, @values);