Merge von 833,836-838 aus unstable: Lieferdatum in Rechnungen
authorStephan Köhler <s.koehler@linet-services.de>
Thu, 26 Jan 2006 16:34:11 +0000 (16:34 +0000)
committerStephan Köhler <s.koehler@linet-services.de>
Thu, 26 Jan 2006 16:34:11 +0000 (16:34 +0000)
-833
Lieferdatum in Rechnungen.
Lieferdatum wird nicht auf automatisch gesetzt und ist zur Zeit auch nicht vom Programm erfordert.
Es wird bei der Konvertierung von und in Auftraege beibehalten.
-836
Aenderung von write_trigger zusammen mit einem Aufruf im alten Format
hat einen Javascript-Fehler beim Waren erfassen erzeugt.
Fixed.
-837
Export des Lieferdatums fuer gedruckte Rechnungen.
Die Variable ist <%deliverydate%>.
Anbei Rechnungen mit Lieferdatum in tex und html.
(Sollte sich jemand anschauen der weiss wie die auszusehen haben)
-838
Doku Update zu r837

12 files changed:
SL/Form.pm
SL/IS.pm
SL/OE.pm
bin/mozilla/ic.pl
bin/mozilla/io.pl
bin/mozilla/is.pl
bin/mozilla/oe.pl
doc/latex-template-variablen.html
sql/Pg-upgrade-2.1.1-2.1.2.sql
sql/lx-office.sql
templates/German-invoice.html
templates/German-invoice.tex

index c70e35a..f82a70f 100644 (file)
@@ -412,14 +412,14 @@ function fokus(){document.$self->{fokus}.focus();}
   $main::lxdebug->leave_sub();
 }
 
-# write Trigger JavaScript-Code ($qty = 1 - only one Trigger)
+# write Trigger JavaScript-Code ($qty = quantity of Triggers)
+# changed it to accept an arbitrary number of triggers - sschoeling
 sub write_trigger {
   $main::lxdebug->enter_sub();
 
-  my ($self,         $myconfig, $qty,
-      $inputField_1, $align_1,  $button_1,
-      $inputField_2, $align_2,  $button_2)
-    = @_;
+  my $self     = shift;
+  my $myconfig = shift;
+  my $qty      = shift;
 
   # set dateform for jsscript
   # default
@@ -448,35 +448,21 @@ sub write_trigger {
     }
   }
 
-  $trigger_1 = qq|
+  while ($#_ >= 2) {
+    push @triggers, qq|
        Calendar.setup(
       {
-      inputField : "$inputField_1",
+      inputField : "|.(shift).qq|",
       ifFormat :"$ifFormat",
-      align : "$align_1", 
-      button : "$button_1"
+      align : "|.(shift).qq|", 
+      button : "|.(shift).qq|"
       }
       );
        |;
-
-  if ($qty == 2) {
-    $trigger_2 = qq|
-       Calendar.setup(
-       {
-      inputField : "$inputField_2",
-      ifFormat :"$ifFormat",
-      align : "$align_2", 
-      button : "$button_2"
-      }
-      );
-        |;
   }
   $jsscript = qq|
        <script type="text/javascript">
-       <!--
-       $trigger_1
-       $trigger_2
-        //-->
+       <!--|.join("", @triggers).qq|//-->
         </script>
         |;
 
index 9c4f50b..a5b00f0 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -805,8 +805,9 @@ sub post_invoice {
   # set values which could be empty to 0
   $form->{terms}       *= 1;
   $form->{taxincluded} *= 1;
-  my $datepaid = ($form->{paid})    ? qq|'$form->{datepaid}'| : "NULL";
-  my $duedate  = ($form->{duedate}) ? qq|'$form->{duedate}'|  : "NULL";
+  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}|
@@ -839,6 +840,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}',
@@ -1164,7 +1166,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
index 5350065..4662f50 100644 (file)
--- a/SL/OE.pm
+++ b/SL/OE.pm
@@ -628,6 +628,10 @@ sub retrieve {
 
   ($form->{currency}) = split /:/, $form->{currencies};
 
+  # set reqdate if this is an invoice->order conversion. If someone knows a better check to ensure 
+  # we come from invoices, feel free.
+  $form->{reqdate} = $form->{deliverydate} if ($form->{deliverydate} and $form->{callback} =~ /action=ar_transactions/);
+
   if ($form->{id} or @ids) {
 
     # retrieve order for single id
index df6e2ca..f6134db 100644 (file)
@@ -2228,8 +2228,7 @@ sub form_header {
 
     #write Trigger
     $jsscript =
-      Form->write_trigger(\%myconfig, "1", "priceupdate", "BL", "trigger1", "",
-                          "", "");
+      Form->write_trigger(\%myconfig, "1", "priceupdate", "BL", "trigger1");
   } else {
 
     # without JavaScript Calendar
index 31322f0..6901623 100644 (file)
@@ -1586,7 +1586,7 @@ sub print_form {
   }
 
   map { $form->{$_} = $locale->date(\%myconfig, $form->{$_}, 1) }
-    ("${inv}date", "${due}date", "shippingdate");
+    ("${inv}date", "${due}date", "shippingdate", "deliverydate");
 
   @a = qw(name street zipcode city country);
 
@@ -1616,7 +1616,7 @@ sub print_form {
   push @a,
     qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptoemail shippingpoint shipvia company address signature employee contact department_1 department_2);
 
-  push @a, ("${inv}date", "${due}date", email, cc, bcc);
+  push @a, ("${inv}date", "${due}date", "deliverydate", email, cc, bcc);
 
   $form->format_string(@a);
 
index 314f68b..3e77049 100644 (file)
@@ -334,11 +334,17 @@ sub form_header {
        <td width="4"><input type=button name=duedate id="trigger2" value=|
       . $locale->text('button') . qq|></td></td>
      |;
+    $button3 = qq|
+       <td width="13"><input name=deliverydate id=deliverydate size=11 title="$myconfig{dateformat}" value=$form->{deliverydate}></td>
+       <td width="4"><input type=button name=deliverydate id="trigger3" value=|
+      . $locale->text('button') . qq|></td></td>
+     |;
 
     #write Trigger
     $jsscript =
-      Form->write_trigger(\%myconfig, "2", "invdate", "BL", "trigger1",
-                          "duedate", "BL", "trigger2");
+      Form->write_trigger(\%myconfig, "3", "invdate",      "BL", "trigger1",
+                                           "duedate",      "BL", "trigger2",
+                                           "deliverydate", "BL", "trigger3");
   } else {
 
     # without JavaScript Calendar
@@ -470,6 +476,10 @@ sub form_header {
                <th align=right>| . $locale->text('Due Date') . qq|</th>
                 $button2
              </tr>
+             <tr>
+               <th align=right>| . $locale->text('Delivery Date') . qq|</th>
+                $button3
+             </tr>
              <tr>
                <th align=right nowrap>| . $locale->text('Order Number') . qq|</th>
                <td><input name=ordnumber size=11 value="$form->{ordnumber}"></td>
index f9907cb..d05745b 100644 (file)
@@ -1809,6 +1809,8 @@ sub invoice {
     $form->isblank("ordnumber", $locale->text('Order Number missing!')) if ( +{ map { $form->{"ordnumber_$_"}, 1 } ( 1 .. $form->{rowcount}-1 ) }->{''} );
     $form->isblank("transdate", $locale->text('Order Date missing!'))   if ( +{ map { $form->{"transdate_$_"}, 1 } ( 1 .. $form->{rowcount}-1 ) }->{''} );
 
+    # also copy deliverydate from the order
+    $form->{deliverydate} = $form->{reqdate} if $form->{reqdate};
   } else {
     $form->isblank("quonumber", $locale->text('Quotation Number missing!'));
     $form->isblank("transdate", $locale->text('Quotation Date missing!'));
index e19eb6d..516cbc0 100644 (file)
@@ -474,7 +474,7 @@ td {
     <td>Angebotsnummer</td>
    </tr>
    <tr>
-    <td><code>shippingdate</code></td>
+    <td><code>deliverydate</code></td>
     <td>Lieferdatum</td>
    </tr>
    <tr>
index 5887b35..068ee23 100644 (file)
@@ -256,5 +256,8 @@ alter table invoice add column cusordnumber text;
 --
 -- add unqiue constraint to project
 ALTER TABLE project ADD constraint project_projectnumber_key UNIQUE(projectnumber);
+--
+-- add column deliverydate to ar
+ALTER TABLE ar ADD COLUMN deliverydate date;
 
 update defaults set version = '2.1.2';
index 7626726..9caa7bd 100644 (file)
@@ -285,6 +285,7 @@ CREATE TABLE "ar" (
        "paid" numeric (15,5),
        "datepaid" date,
        "duedate" date,
+       "deliverydate" date,
        "invoice" boolean DEFAULT 'f',
        "shippingpoint" text,
        "terms" smallint DEFAULT 0,
index 249a0ac..2858f4f 100644 (file)
@@ -49,6 +49,9 @@
       <th align=right>Nummer</th><td>&nbsp;</td><td><%invnumber%></td></tr>
     </tr>
   
+    <tr>
+      <th align=right>Lieferdatum</th><td>&nbsp;</td><td><%deliverydate%></td></tr>
+    </tr>
 <!--
     <tr>
       <th align=right>Clerk:</th><td>&nbsp;</td><td><%username%></td>
index bd27f77..9f93e03 100644 (file)
@@ -88,6 +88,7 @@
 \begin{tabular}[t]{l@{\hspace{0.3cm}}l}
   \textbf{Datum} & <%invdate%> \\
   \textbf{Nummer} & <%invnumber%> \\
+  \textbf{Lieferdatum} & <%deliverydate%> \\
 \end{tabular}
 
 \vspace{1cm}