Erweiterung des <%include FILE%> Befehls um die Moeglichkeit
[kivitendo-erp.git] / SL / IS.pm
index 555fe39..d4d8c6f 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -106,12 +106,12 @@ sub invoice_details {
       push(@{ $form->{description} },   qq|$form->{"description_$i"}|);
       push(@{ $form->{qty} },
            $form->format_amount($myconfig, $form->{"qty_$i"}));
-      push(@{ $form->{unit} },         qq|$form->{"unit_$i"}|);
-      push(@{ $form->{deliverydate} }, qq|$form->{"deliverydate_$i"}|);
+      push(@{ $form->{unit} },            qq|$form->{"unit_$i"}|);
+      push(@{ $form->{deliverydate_oe} }, qq|$form->{"deliverydate_$i"}|);
 
-      push(@{ $form->{sellprice} }, $form->{"sellprice_$i"});
-      push(@{ $form->{ordnumber} }, $form->{"ordnumber_$i"});
-      push(@{ $form->{transdate} }, $form->{"transdate_$i"});
+      push(@{ $form->{sellprice} },    $form->{"sellprice_$i"});
+      push(@{ $form->{ordnumber_oe} }, qq|$form->{"ordnumber_$i"}|);
+      push(@{ $form->{transdate_oe} }, qq|$form->{"transdate_$i"}|);
 
       if ($form->{lizenzen}) {
         if ($form->{"licensenumber_$i"}) {
@@ -124,9 +124,7 @@ sub invoice_details {
           push(@{ $form->{licensenumber} }, $licensenumber);
           push(@{ $form->{validuntil} },
                $locale->date($myconfig, $validuntil, 0));
-          $licensenumber = "Lizenz: " . $licensenumber;
           $sth->finish;
-          push(@{ $form->{licensenumber} }, $licensenumber);
         } else {
           push(@{ $form->{licensenumber} }, "");
           push(@{ $form->{validuntil} },    "");
@@ -141,14 +139,18 @@ sub invoice_details {
       $dec = length $dec;
       my $decimalplaces = ($dec > 2) ? $dec : 2;
 
-      my $discount =
+      my $i_discount =
         $form->round_amount(
                             $sellprice * $form->parse_amount($myconfig,
                                                  $form->{"discount_$i"}) / 100,
                             $decimalplaces);
 
+      my $discount =
+        $form->round_amount($form->{"qty_$i"} * $i_discount, $decimalplaces);
+
       # keep a netprice as well, (sellprice - discount)
-      $form->{"netprice_$i"} = $sellprice - $discount;
+      $form->{"netprice_$i"} = $sellprice - $i_discount;
+
       push(@{ $form->{netprice} },
            ($form->{"netprice_$i"} != 0)
            ? $form->format_amount(
@@ -166,7 +168,8 @@ sub invoice_details {
         : " ";
       $linetotal = ($linetotal != 0) ? $linetotal : " ";
 
-      push(@{ $form->{discount} }, $discount);
+      push(@{ $form->{discount} },   $discount);
+      push(@{ $form->{p_discount} }, $form->{"discount_$i"});
 
       $form->{total} += $linetotal;
 
@@ -347,8 +350,6 @@ sub customer_details {
     $contact = "and cp.cp_id = $form->{cp_id}";
   }
 
-  $taxincluded = $form->{taxincluded};
-
   # get rest for the customer
   my $query = qq|SELECT ct.*, cp.*, ct.notes as customernotes
                  FROM customer ct
@@ -358,9 +359,10 @@ sub customer_details {
   $sth->execute || $form->dberror($query);
 
   $ref = $sth->fetchrow_hashref(NAME_lc);
-  map { $form->{$_} = $ref->{$_} } keys %$ref;
 
-  $form->{taxincluded} = $taxincluded;
+  # remove id and taxincluded before copy back
+  delete @$ref{qw(id taxincluded)};
+  map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   $sth->finish;
   $dbh->disconnect;
@@ -561,14 +563,15 @@ sub post_invoice {
       # save detail record in invoice table
       $query = qq|INSERT INTO invoice (trans_id, parts_id, description, qty,
                   sellprice, fxsellprice, discount, allocated, assemblyitem,
-                 unit, deliverydate, project_id, serialnumber, pricegroup_id)
+                 unit, deliverydate, project_id, serialnumber, pricegroup_id,
+                 ordnumber, transdate, cusordnumber)
                  VALUES ($form->{id}, $form->{"id_$i"},
                  '$form->{"description_$i"}', $form->{"qty_$i"},
                  $form->{"sellprice_$i"}, $fxsellprice,
                  $form->{"discount_$i"}, $allocated, 'f',
                  '$form->{"unit_$i"}', $deliverydate, (SELECT id from project where projectnumber = '$project_id'),
-                 '$form->{"serialnumber_$i"}',
-      '$pricegroup_id')|;
+                 '$form->{"serialnumber_$i"}', '$pricegroup_id',
+                 '$form->{"ordnumber_$i"}', '$form->{"transdate_$i"}', '$form->{"cusordnumber_$i"}')|;
       $dbh->do($query) || $form->dberror($query);
 
       if ($form->{lizenzen}) {
@@ -806,6 +809,8 @@ sub post_invoice {
   $form->{taxincluded} *= 1;
   my $datepaid = ($form->{paid})    ? qq|'$form->{datepaid}'| : "NULL";
   my $duedate  = ($form->{duedate}) ? qq|'$form->{duedate}'|  : "NULL";
+  my $deliverydate =
+    ($form->{deliverydate}) ? qq|'$form->{deliverydate}'| : "NULL";
 
   # fill in subject if there is none
   $form->{subject} = qq|$form->{label} $form->{invnumber}|
@@ -838,6 +843,7 @@ Message: $form->{message}\r| if $form->{message};
               paid = $form->{paid},
              datepaid = $datepaid,
              duedate = $duedate,
+              deliverydate = $deliverydate,
              invoice = '1',
              shippingpoint = '$form->{shippingpoint}',
              shipvia = '$form->{shipvia}',
@@ -1163,7 +1169,7 @@ sub retrieve_invoice {
 
     # retrieve invoice
     $query = qq|SELECT a.invnumber, a.ordnumber, a.quonumber, a.cusordnumber,
-                a.transdate AS invdate, a.paid,
+                a.transdate AS invdate, a.deliverydate, a.paid,
                 a.shippingpoint, a.shipvia, a.terms, a.notes, a.intnotes,
                a.duedate, a.taxincluded, a.curr AS currency,
                a.employee_id, e.name AS employee
@@ -1221,7 +1227,8 @@ sub retrieve_invoice {
                i.discount, i.parts_id AS id, i.unit, i.deliverydate,
                i.project_id, pr.projectnumber, i.serialnumber,
                p.partnumber, p.assembly, p.bin, p.notes AS partnotes, i.id AS invoice_pos,
-               pg.partsgroup, i.pricegroup_id, (SELECT pricegroup FROM pricegroup WHERE id=i.pricegroup_id) as pricegroup
+               pg.partsgroup, i.pricegroup_id, (SELECT pricegroup FROM pricegroup WHERE id=i.pricegroup_id) as pricegroup,
+               i.ordnumber, i.transdate, i.cusordnumber
                FROM invoice i
                JOIN parts p ON (i.parts_id = p.id)
                LEFT JOIN project pr ON (i.project_id = pr.id)