Testversion is -> template
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 25 Sep 2009 17:13:07 +0000 (19:13 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 29 Oct 2009 14:04:48 +0000 (15:04 +0100)
bin/mozilla/is.pl
locale/de/is
templates/webpages/generic/multibox.html
templates/webpages/is/form_header_de.html [new file with mode: 0644]
templates/webpages/is/form_header_master.html [new file with mode: 0644]

index 177b0e3..0e67ed4 100644 (file)
@@ -303,6 +303,9 @@ sub form_header {
 
   $main::auth->assert('invoice_edit');
 
+  our %TMPL_VAR = ();
+  my @custom_hiddens;
+
   $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
   $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
 
@@ -340,473 +343,263 @@ sub form_header {
                    "projects"      => { "key"    => "ALL_PROJECTS",
                                         "all"    => 0,
                                         "old_id" => \@old_project_ids },
-                   "employees"     => "ALL_SALESMEN",
+                   "employees"     => "ALL_EMPLOYEES",
+                   "salesmen"      => "ALL_SALESMEN",
                    "taxzones"      => "ALL_TAXZONES",
                    "currencies"    => "ALL_CURRENCIES",
                    "customers"     => "ALL_CUSTOMERS",
                    "price_factors" => "ALL_PRICE_FACTORS");
 
-  my %labels;
-  my @values = (undef);
-  foreach my $item (@{ $form->{"ALL_CONTACTS"} }) {
-    push(@values, $item->{"cp_id"});
-    $labels{$item->{"cp_id"}} = join(',', $item->{"cp_name"}, $item->{"cp_givenname"}) .  ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : "");
-  }
-  my $contact;
-  if (scalar @values > 1) {
-    $contact = qq|
-    <tr>
-      <th align="right">| . $locale->text('Contact Person') . qq|</th>
-      <td>| .  NTI($cgi->popup_menu('-name' => 'cp_id', '-values' => \@values, '-style' => 'width: 250px',
-                                    '-labels' => \%labels, '-default' => $form->{"cp_id"})) . qq|
-      </td>
-    </tr>|;
-  }
-
-  %labels = ();
-  @values = ();
-  foreach my $item (@{ $form->{"ALL_SALESMEN"} }) {
-    push(@values, $item->{"id"});
-    $labels{$item->{id}} = $item->{name} ne "" ? $item->{name} : $item->{login};
-  }
-
-  my $employees = qq|
-    <tr>
-      <th align="right">| . $locale->text('Employee') . qq|</th>
-      <td>| . NTI($cgi->popup_menu('-name' => 'employee_id', '-default' => $form->{"employee_id"},
-                                   '-values' => \@values, '-labels' => \%labels)) . qq|
-      </td>
-    </tr>|;
-
-
-  %labels = ();
-  @values = ();
-  foreach my $item (@{ $form->{"ALL_CUSTOMERS"} }) {
-    push(@values, $item->{name}.qq|--|.$item->{"id"});
-    $labels{$item->{name}.qq|--|.$item->{"id"}} = $item->{"name"};
-  }
-
-  $form->{selectcustomer} = ($myconfig{vclimit} > scalar(@values));
-
-  my $customers = qq|
-      <th align="right">| . $locale->text('Customer') . qq|</th>
-      <td>| .
-        (($myconfig{vclimit} <=  scalar(@values))
-              ? qq|<input type="text" value="| . H($form->{customer}) . qq|" name="customer">|
-              : (NTI($cgi->popup_menu('-name' => 'customer', '-default' => $form->{oldcustomer},
-                             '-onChange' => 'document.getElementById(\'update_button\').click();',
-                             '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')))) . qq|
-        <input type="button" value="| . $locale->text('Details (one letter abbreviation)') . qq|" onclick="show_vc_details('customer')">
-      </td>|;
-
-  %labels = ();
-  @values = ("");
-  foreach my $item (@{ $form->{"ALL_SHIPTO"} }) {
-    push(@values, $item->{"shipto_id"});
-    $labels{$item->{"shipto_id"}} = join "; ", grep { $_ } map { $item->{"shipto${_}" } } qw(name department_1 street city);
-  }
-
-  my $shipto;
-  if (scalar @values > 1) {
-    $shipto = qq|
-    <tr>
-      <th align="right">| . $locale->text('Shipping Address') . qq|</th>
-      <td>| . NTI($cgi->popup_menu('-name' => 'shipto_id', '-values' => \@values, '-style' => 'width: 250px',
-                                   '-labels' => \%labels, '-default' => $form->{"shipto_id"})). qq|
-      </td>|;
-  }
-
-  %labels = ();
-  @values = ();
-  foreach my $item (@{ $form->{"ALL_CURRENCIES"} }) {
-    push(@values, $item);
-    $labels{$item} = $item;
-  }
+  $TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
+  $TMPL_VAR{shipto_labels}         = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) };
+  $TMPL_VAR{contact_labels}        = sub { join(', ', $_[0]->{"cp_name"}, $_[0]->{"cp_givenname"}) . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") };
+  $TMPL_VAR{department_labels}     = sub { "$_[0]->{description}--$_[0]->{id}" };
+
+  # customer
+  $TMPL_VAR{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
+  $TMPL_VAR{vclimit} = $myconfig{vclimit};
+  $TMPL_VAR{vc_select} = "customer_or_vendor_selection_window('$form->{vc}', '', @{[ $form->{vc} eq 'vendor' ? 1 : 0 ]}, 0)";
+  push @custom_hiddens, "$form->{vc}_id";
+  push @custom_hiddens, "old$form->{vc}";
+  push @custom_hiddens, "select$form->{vc}";
+
+  # currencies and exchangerate
+  my @values = map { $_       } @{ $form->{ALL_CURRENCIES} };
+  my %labels = map { $_ => $_ } @{ $form->{ALL_CURRENCIES} };
+  $form->{currency}            = $form->{defaultcurrency} unless $form->{currency};
+  $TMPL_VAR{show_exchangerate} = $form->{currency} ne $form->{defaultcurrency};
+  $TMPL_VAR{currencies}        = NTI($cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"},
+                                                      '-values' => \@values, '-labels' => \%labels)) if scalar @values;
+  push @custom_hiddens, "forex";
+  push @custom_hiddens, "exchangerate" if $form->{forex};
+
+  $TMPL_VAR{creditwarning} = ($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update};
+  $TMPL_VAR{is_credit_remaining_negativ} = $form->{creditremaining} =~ /-/;
 
-  $form->{currency}        = $form->{defaultcurrency} unless $form->{currency};
-  my $currencies;
-  if (scalar @values) {
-    $currencies = qq|
-    <tr>
-      <th align="right">| . $locale->text('Currency') . qq|</th>
-      <td>| . NTI($cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"},
-                                   '-values' => \@values, '-labels' => \%labels)) . qq|
-      </td>
-    </tr>|;
-  }
-
-  %labels = ();
-  @values = ("");
-  foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
-    push(@values, $item->{"id"});
-    $labels{$item->{"id"}} = $item->{"projectnumber"};
-  }
-  my $globalprojectnumber = NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values,
-                                                 '-labels' => \%labels,
-                                                 '-default' => $form->{"globalproject_id"}));
-
-  %labels = ();
-  @values = ();
-  foreach my $item (@{ $form->{ALL_SALESMEN} }) {
-    push(@values, $item->{id});
-    $labels{$item->{id}} = $item->{name} ne "" ? $item->{name} : $item->{login};
-  }
-
-  my $salesman =
-    qq|<tr> <th align="right">| . $locale->text('Salesman') . qq|</th>
-         <td>| . NTI($cgi->popup_menu('-name' => 'salesman_id', '-values' => \@values, '-labels' => \%labels,
-                                      '-default' => $form->{salesman_id} ? $form->{salesman_id} : $form->{employee_id})) . qq|
-         </td>
-       </tr>|;
-
-  %labels = ();
-  @values = ();
-  foreach my $item (@{ $form->{"ALL_TAXZONES"} }) {
-    push(@values, $item->{"id"});
-    $labels{$item->{"id"}} = $item->{"description"};
-  }
-
-  my $taxzone;
-  if (!$form->{"id"}) {
-    $taxzone = qq|
-    <tr>
-      <th align="right">| . $locale->text('Steuersatz') . qq|</th>
-      <td>| . NTI($cgi->popup_menu('-name' => 'taxzone_id', '-default' => $form->{"taxzone_id"},
-                                   '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px',)) . qq|
-      </td>
-    </tr>|;
+  $form->{fokus} = "invoice.customer";
 
-  } else {
-    $taxzone = qq|
-    <tr>
-      <th align="right">| . $locale->text('Steuersatz') . qq|</th>
-      <td>
-        <input type="hidden" name="taxzone_id" value="| . H($form->{"taxzone_id"}) . qq|">
-        | . H($labels{$form->{"taxzone_id"}}) . qq|
-      </td>
-    </tr>|;
-  }
+  my $follow_up_vc         =  $form->{customer};
+  $follow_up_vc            =~ s/--\d*\s*$//;
+  $TMPL_VAR{customer_name} = $follow_up_vc;
 
-  # set option selected
+# set option selected
   foreach my $item (qw(AR customer currency department employee)) {
     $form->{"select$item"} =~ s/ selected//;
     $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
 
-  my $creditwarning = (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) ? 1 : 0;
+  $TMPL_VAR{is_type_credit_note} = $form->{type} eq "credit_note";
+  $TMPL_VAR{is_format_html} = $form->{format} eq 'html';
+  $TMPL_VAR{dateformat} = $myconfig{dateformat};
+  $TMPL_VAR{numberformat} = $myconfig{numberformat};
 
-  $form->{exchangerate}    = $form->format_amount(\%myconfig, $form->{exchangerate});
-  $form->{creditlimit}     = $form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0");
-  $form->{creditremaining} = $form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0");
+  # hiddens
+  $TMPL_VAR{HIDDEN} = [qw(
+    id action type media format queued printed emailed title vc discount
+    creditlimit creditremaining tradediscount business closedto locked shipped storno storno_id
+    max_dunning_level dunning_amount
+    shiptoname shiptostreet shiptozipcode shiptocity shiptocountry  shiptocontact shiptophone shiptofax
+    shiptoemail shiptodepartment_1 shiptodepartment_2 message email subject cc bcc taxaccounts cursor_fokus
+    convert_from_do_ids convert_from_oe_ids
+  ), @custom_hiddens,
+  map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}];
 
-  my $exchangerate = "";
-  if ($form->{currency} ne $form->{defaultcurrency}) {
-    if ($form->{forex}) {
-      $exchangerate .= qq|<th align="right">| . $locale->text('Exchangerate') . qq|</th>
-                          <td>$form->{exchangerate}<input type="hidden" name="exchangerate" value="$form->{exchangerate}"></td>|;
-    } else {
-      $exchangerate .= qq|<th align="right">| . $locale->text('Exchangerate') . qq|</th>
-                          <td><input name="exchangerate" size="10" value="$form->{exchangerate}"></td>|;
-    }
-  }
-  $exchangerate .= qq|\n<input type="hidden" name="forex" value="$form->{forex}">\n|;
-
-  my $department = qq|
-              <tr>
-               <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
-               <td colspan="3"><select name="department" style="width: 250px">$form->{selectdepartment}</select>
-                  <input type="hidden" name="selectdepartment" value="$form->{selectdepartment}">
-               </td>
-             </tr>
-| if $form->{selectdepartment};
-
-  my $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
-
-  my $business;
-  if ($form->{business}) {
-    $business = qq|
-             <tr>
-          <th align="right">| . $locale->text('Customer type') . qq|</th>
-          <td>$form->{business}; | . $locale->text('Trade Discount') . qq| |
-      . $form->format_amount(\%myconfig, $form->{tradediscount} * 100)
-      . qq| %</td>
-        </tr>
-|;
-  }
-
-  my $dunning;
-  if ($form->{max_dunning_level}) {
-    $dunning = qq|
-      <tr>
-        <th align="right">| . $locale->text('Max. Dunning Level') . qq|:</th>
-        <td>
-          <b>$form->{max_dunning_level}</b>;
-          | . $locale->text('Dunning Amount') . qq|: <b>|
-        . $form->format_amount(\%myconfig, $form->{dunning_amount},2)
-        . qq|</b>
-        </td>
-      </tr>
-|;
-  }
-
-  $form->{fokus} = "invoice.customer";
-
-  # use JavaScript Calendar or not
   $form->{jsscript} = 1;
-  my $jsscript = "";
-  my ($button1, $button2, $button3);
-  if ($form->{type} eq "credit_note") {
-    $button1 = qq|
-      <td nowrap><input name="invdate" id="invdate" size="11" title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\">
-       <input type="button" name="invdate_button" id="trigger1" value="|
-      . $locale->text('button') . qq|"></td>|;
-
-    #write Trigger
-    $jsscript =
-      Form->write_trigger(\%myconfig,     "1",
-                          "invdate",      "BL",
-                          "trigger1");
-  } else {
-    $button1 = qq|
-      <td nowrap><input name="invdate" id="invdate" size="11" title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\">
-       <input type="button" name="invdate_button" id="trigger1" value="|
-      . $locale->text('button') . qq|"></td>
-      |;
-    $button2 = qq|
-      <td width="13"><input name="duedate" id="duedate" size="11" title="$myconfig{dateformat}" value="$form->{duedate}" onBlur=\"check_right_date_format(this)\">
-       <input type="button" name="duedate_button" id="trigger2" value="|
-      . $locale->text('button') . qq|"></td>
-    |;
-    $button3 = qq|
-      <td width="13"><input name="deliverydate" id="deliverydate" size="11" title="$myconfig{dateformat}" value="$form->{deliverydate}" onBlur=\"check_right_date_format(this)\">
-       <input type="button" name="deliverydate_button" id="trigger3" value="|
-      . $locale->text('button') . qq|"></td>
-    |;
-
-    #write Trigger
-    $jsscript =
-      Form->write_trigger(\%myconfig,     "3",
-                          "invdate",      "BL", "trigger1",
-                          "duedate",      "BL", "trigger2",
-                          "deliverydate", "BL", "trigger3");
-  }
-
-  my $credittext = $locale->text('Credit Limit exceeded!!!');
-
-  my $follow_up_vc         =  $form->{customer};
-  $follow_up_vc            =~ s/--\d*\s*$//;
-  my $follow_up_trans_info =  "$form->{invnumber} ($follow_up_vc)";
-
-  my $onload = ($form->{resubmit} && ($form->{format} eq "html")) ? qq|window.open('about:blank','Beleg'); document.invoice.target = 'Beleg';document.invoice.submit()|
-          : ($form->{resubmit})                                ? qq|document.invoice.submit()|
-          : ($creditwarning)                                   ? qq|alert('$credittext')|
-          :                                                      "focus()";
-  $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
-  $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
-
-  $form->{javascript} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
-  $form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|;
-
-  $jsscript .=
-    $form->write_trigger(\%myconfig, 2,
-                         "orddate", "BL", "trigger_orddate",
-                         "quodate", "BL", "trigger_quodate");
-  # show history button js
-  $form->{javascript} .= qq|<script type="text/javascript" src="js/show_history.js"></script>|;
-  #/show history button js
-  $form->header;
-
-  print qq|
-<body onLoad="$onload">
-<script type="text/javascript" src="js/common.js"></script>
-<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
-<script type="text/javascript" src="js/vendor_selection.js"></script>
-<script type="text/javascript" src="js/calculate_qty.js"></script>
-<script type="text/javascript" src="js/follow_up.js"></script>
-
-<form method="post" name="invoice" action="$form->{script}">
-| ;
-
-  $form->hide_form(qw(id action type media format queued printed emailed title vc discount
-                      creditlimit creditremaining tradediscount business closedto locked shipped storno storno_id
-                      max_dunning_level dunning_amount
-                      shiptoname shiptostreet shiptozipcode shiptocity shiptocountry  shiptocontact shiptophone shiptofax
-                      shiptoemail shiptodepartment_1 shiptodepartment_2 message email subject cc bcc taxaccounts cursor_fokus
-                      convert_from_do_ids convert_from_oe_ids),
-                      map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts} );
-
-  print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
-
-  print qq|
-
-<input type="hidden" name="follow_up_trans_id_1" value="| . H($form->{id}) . qq|">
-<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
-<input type="hidden" name="follow_up_trans_info_1" value="| . H($follow_up_trans_info) . qq|">
-<input type="hidden" name="follow_up_rowcount" value="1">
-
-<input type="hidden" name="lizenzen" value="$main::lizenzen">
-
-<div class="listtop" width="100%">$form->{title}</div>
-
-<table width="100%">
-  <tr>
-    <td valign="top">
-      <table>
-        <tr>
-          $customers
-          <input type="hidden" name="customer_klass" value="| . H($form->{customer_klass}) . qq|">
-          <input type="hidden" name="customer_id" value="| . H($form->{customer_id}) . qq|">
-          <input type="hidden" name="oldcustomer" value="| . H($form->{oldcustomer}) . qq|">
-          <input type="hidden" name="selectcustomer" value="| . H($form->{selectcustomer}) . qq|">
-        </tr>
-        $contact
-        $shipto
-        <tr>
-          <td align="right">| . $locale->text('Credit Limit') . qq|</td>
-          <td>$form->{creditlimit}; | . $locale->text('Remaining') . qq| <span class="plus$n">$form->{creditremaining}</span></td>
-        </tr>
-        $dunning
-        $business
-             <tr>
-               <th align="right" nowrap>| . $locale->text('Record in') . qq|</th>
-               <td colspan="3"><select name="AR" style="width:250px;">$form->{selectAR}</select></td>
-               <input type="hidden" name="selectAR" value="$form->{selectAR}">
-             </tr>
-              $taxzone
-             $department
-             <tr>
-    $currencies
-               <input type="hidden" name="fxgain_accno" value="$form->{fxgain_accno}">
-               <input type="hidden" name="fxloss_accno" value="$form->{fxloss_accno}">
-               $exchangerate
-             </tr>
-             <tr>
-               <th align="right" nowrap>| . $locale->text('Shipping Point') . qq|</th>
-               <td colspan="3"> | .
-               $cgi->textfield("-name" => "shippingpoint", "-size" => 35, "-value" => $form->{shippingpoint}) .
-         qq|   </td>
-             </tr>
-             <tr>
-               <th align="right" nowrap>| . $locale->text('Ship via') . qq|</th>
-               <td colspan="3"> | .
-               $cgi->textfield("-name" => "shipvia", "-size" => 35, "-value" => $form->{shipvia}) .
-         qq|   </td>
-             </tr>
-              <tr>
-                <th align="right">| . $locale->text('Transaction description') . qq|</th>
-                <td colspan="3">| . $cgi->textfield("-name" => "transaction_description", "-size" => 35, "-value" => $form->{transaction_description}) . qq|</td>
-              </tr>|;
-#               <tr>
-#                 <td colspan=4>
-#                   <table>
-#                     <tr>
-#                       <td colspan=2>
-#                         <button type="button" onclick="delivery_customer_selection_window('delivery_customer_string','delivery_customer_id')">| . $locale->text('Choose Customer') . qq|</button>
-#                       </td>
-#                       <td colspan=2><input type=hidden name=delivery_customer_id value="$form->{delivery_customer_id}">
-#                       <input size=45 id=delivery_customer_string name=delivery_customer_string value="$form->{delivery_customer_string}"></td>
-#                     </tr>
-#                     <tr>
-#                       <td colspan=2>
-#                         <button type="button" onclick="vendor_selection_window('delivery_vendor_string','delivery_vendor_id')">| . $locale->text('Choose Vendor') . qq|</button>
-#                       </td>
-#                       <td colspan=2><input type=hidden name=delivery_vendor_id value="$form->{delivery_vendor_id}">
-#                       <input size=45 id=delivery_vendor_string name=delivery_vendor_string value="$form->{delivery_vendor_string}"></td>
-#                     </tr>
-#                   </table>
-#                 </td>
-#               </tr>
-print qq|          </table>
-         </td>
-         <td align="right" valign="top">
-           <table>
-             $employees
-        $salesman
-|;
-
-#ergänzung in der maske um das feld Lieferscheinnummer (Delivery Order Number), meiner meinung nach sinnvoll ueber dem feld lieferscheindatum 12.02.2009 jb
-if ($form->{type} eq "credit_note") {
-print qq|     <tr>
-               <th align="right" nowrap>| . $locale->text('Credit Note Number') . qq|</th>
-               <td> |.
-               $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
-      qq|      </td>
-             </tr>
-             <tr>
-               <th align="right">| . $locale->text('Credit Note Date') . qq|</th>
-                $button1
-             </tr>|;
-} else {
-print qq|     <tr>
-               <th align="right" nowrap>| . $locale->text('Invoice Number') . qq|</th>
-               <td> |.
-               $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
-      qq|      </td>
-             </tr>
-             <tr>
-               <th align="right">| . $locale->text('Invoice Date') . qq|</th>
-                $button1
-             </tr>
-             <tr>
-               <th align="right">| . $locale->text('Due Date') . qq|</th>
-                $button2
-             </tr>
-             <tr>
-               <th align="right" nowrap>| . $locale->text('Delivery Order Number') . qq|</th>
-               <td> |.
-               $cgi->textfield("-name" => "donumber", "-size" => 11, "-value" => $form->{donumber}) .
-      qq|      </td>
-             </tr>
-             <tr>
-               <th align="right">| . $locale->text('Delivery Date') . qq|</th>
-                $button3
-             </tr>|;
-}
-print qq|     <tr>
-               <th align="right" nowrap>| . $locale->text('Order Number') . qq|</th>
-               <td> |.
-               $cgi->textfield("-name" => "ordnumber", "-size" => 11, "-value" => $form->{ordnumber}) .
-      qq|      </td>
-             </tr>
-        <tr>
-          <th align="right" nowrap>| . $locale->text('Order Date') . qq|</th>
-          <td><input name="orddate" id="orddate" size="11" title="$myconfig{dateformat}" value="| . Q($form->{orddate}) . qq|" onBlur=\"check_right_date_format(this)\">
-           <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
-        </tr>
-             <tr>
-               <th align="right" nowrap>| . $locale->text('Quotation Number') . qq|</th>
-               <td> |.
-               $cgi->textfield("-name" => "quonumber", "-size" => 11, "-value" => $form->{quonumber}) .
-      qq|      </td>
-             </tr>
-        <tr>
-          <th align="right" nowrap>| . $locale->text('Quotation Date') . qq|</th>
-          <td><input name="quodate" id="quodate" size="11" title="$myconfig{dateformat}" value="| . Q($form->{quodate}) . qq|" onBlur=\"check_right_date_format(this)\">
-           <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
-        </tr>
-             <tr>
-               <th align="right" nowrap>| . $locale->text('Customer Order Number') . qq|</th>
-               <td> |.
-               $cgi->textfield("-name" => "cusordnumber", "-size" => 11, "-value" => $form->{cusordnumber}) .
-      qq|      </td>
-             </tr>
-             <tr>
-          <th align="right" nowrap>| . $locale->text('Project Number') . qq|</th>
-          <td>$globalprojectnumber</td>
-             </tr>
-           </table>
-          </td>
-       </tr>
-      </table>
-    </td>
-  </tr>
-  <tr>
-    <td>
-    </td>
-  </tr>
-  $jsscript
-|;
-  print qq|<input type="hidden" name="webdav" value="$main::webdav">|;
+  $form->header();
+
+#  print qq|
+#<body onLoad="$onload">
+#<script type="text/javascript" src="js/common.js"></script>
+#<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
+#<script type="text/javascript" src="js/vendor_selection.js"></script>
+#<script type="text/javascript" src="js/calculate_qty.js"></script>
+#<script type="text/javascript" src="js/follow_up.js"></script>
+#
+#<form method="post" name="invoice" action="$form->{script}">
+#| ;
+#
+#  $form->hide_form(qw(id action type media format queued printed emailed title vc discount
+#                      creditlimit creditremaining tradediscount business closedto locked shipped storno storno_id
+#                      max_dunning_level dunning_amount
+#                      shiptoname shiptostreet shiptozipcode shiptocity shiptocountry  shiptocontact shiptophone shiptofax
+#                      shiptoemail shiptodepartment_1 shiptodepartment_2 message email subject cc bcc taxaccounts cursor_fokus
+#                      convert_from_do_ids convert_from_oe_ids),
+#                      map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts} );
+#
+#  print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
+#
+#  print qq|
+#
+#<input type="hidden" name="follow_up_trans_id_1" value="| . H($form->{id}) . qq|">
+#<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+#<input type="hidden" name="follow_up_trans_info_1" value="| . H($follow_up_trans_info) . qq|">
+#<input type="hidden" name="follow_up_rowcount" value="1">
+#
+#<input type="hidden" name="lizenzen" value="$lizenzen">
+#
+#<div class="listtop" width="100%">$form->{title}</div>
+#
+#<table width="100%">
+#  <tr>
+#    <td valign="top">
+#      <table>
+#        <tr>
+#          $customers
+#          <input type="hidden" name="customer_klass" value="| . H($form->{customer_klass}) . qq|">
+#          <input type="hidden" name="customer_id" value="| . H($form->{customer_id}) . qq|">
+#          <input type="hidden" name="oldcustomer" value="| . H($form->{oldcustomer}) . qq|">
+#          <input type="hidden" name="selectcustomer" value="| . H($form->{selectcustomer}) . qq|">
+#        </tr>
+#        $contact
+#        $shipto
+#        <tr>
+#          <td align="right">| . $locale->text('Credit Limit') . qq|</td>
+#          <td>$form->{creditlimit}; | . $locale->text('Remaining') . qq| <span class="plus$n">$form->{creditremaining}</span></td>
+#        </tr>
+#        $dunning
+#        $business
+#            <tr>
+#              <th align="right" nowrap>| . $locale->text('Record in') . qq|</th>
+#              <td colspan="3"><select name="AR" style="width:250px;">$form->{selectAR}</select></td>
+#              <input type="hidden" name="selectAR" value="$form->{selectAR}">
+#            </tr>
+#              $taxzone
+#            $department
+#            <tr>
+#    $currencies
+#              <input type="hidden" name="fxgain_accno" value="$form->{fxgain_accno}">
+#              <input type="hidden" name="fxloss_accno" value="$form->{fxloss_accno}">
+#              $exchangerate
+#            </tr>
+#            <tr>
+#              <th align="right" nowrap>| . $locale->text('Shipping Point') . qq|</th>
+#              <td colspan="3"> | .
+#              $cgi->textfield("-name" => "shippingpoint", "-size" => 35, "-value" => $form->{shippingpoint}) .
+#                qq|   </td>
+#            </tr>
+#            <tr>
+#              <th align="right" nowrap>| . $locale->text('Ship via') . qq|</th>
+#              <td colspan="3"> | .
+#              $cgi->textfield("-name" => "shipvia", "-size" => 35, "-value" => $form->{shipvia}) .
+#        qq|   </td>
+#            </tr>
+#              <tr>
+#                <th align="right">| . $locale->text('Transaction description') . qq|</th>
+#                <td colspan="3">| . $cgi->textfield("-name" => "transaction_description", "-size" => 35, "-value" => $form->{transaction_description}) . qq|</td>
+#              </tr>|;
+##               <tr>
+##                 <td colspan=4>
+##                   <table>
+##                     <tr>
+##                       <td colspan=2>
+##                         <button type="button" onclick="delivery_customer_selection_window('delivery_customer_string','delivery_customer_id')">| . $locale->text('Choose Customer') . qq|</button>
+##                       </td>
+##                       <td colspan=2><input type=hidden name=delivery_customer_id value="$form->{delivery_customer_id}">
+##                       <input size=45 id=delivery_customer_string name=delivery_customer_string value="$form->{delivery_customer_string}"></td>
+##                     </tr>
+##                     <tr>
+##                       <td colspan=2>
+##                         <button type="button" onclick="vendor_selection_window('delivery_vendor_string','delivery_vendor_id')">| . $locale->text('Choose Vendor') . qq|</button>
+##                       </td>
+##                       <td colspan=2><input type=hidden name=delivery_vendor_id value="$form->{delivery_vendor_id}">
+##                       <input size=45 id=delivery_vendor_string name=delivery_vendor_string value="$form->{delivery_vendor_string}"></td>
+##                     </tr>
+##                   </table>
+##                 </td>
+##               </tr>
+#print qq|         </table>
+#        </td>
+#        <td align="right" valign="top">
+#          <table>
+#            $employees
+#        $salesman
+#|;
+#
+##ergänzung in der maske um das feld Lieferscheinnummer (Delivery Order Number), meiner meinung nach sinnvoll ueber dem feld lieferscheindatum 12.02.2009 jb
+#if ($form->{type} eq "credit_note") {
+#print qq|     <tr>
+#              <th align="right" nowrap>| . $locale->text('Credit Note Number') . qq|</th>
+#              <td> |.
+#              $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
+#      qq|     </td>
+#            </tr>
+#            <tr>
+#              <th align="right">| . $locale->text('Credit Note Date') . qq|</th>
+#                $button1
+#            </tr>|;
+#} else {
+#print qq|     <tr>
+#              <th align="right" nowrap>| . $locale->text('Invoice Number') . qq|</th>
+#              <td> |.
+#              $cgi->textfield("-name" => "invnumber", "-size" => 11, "-value" => $form->{invnumber}) .
+#      qq|     </td>
+#            </tr>
+#            <tr>
+#              <th align="right">| . $locale->text('Invoice Date') . qq|</th>
+#                $button1
+#            </tr>
+#            <tr>
+#              <th align="right">| . $locale->text('Due Date') . qq|</th>
+#                $button2
+#            </tr>
+#            <tr>
+#              <th align="right" nowrap>| . $locale->text('Delivery Order Number') . qq|</th>
+#              <td> |.
+#              $cgi->textfield("-name" => "donumber", "-size" => 11, "-value" => $form->{donumber}) .
+#      qq|     </td>
+#            </tr>
+#            <tr>
+#              <th align="right">| . $locale->text('Delivery Date') . qq|</th>
+#                $button3
+#            </tr>|;
+#}
+#print qq|     <tr>
+#              <th align="right" nowrap>| . $locale->text('Order Number') . qq|</th>
+#              <td> |.
+#              $cgi->textfield("-name" => "ordnumber", "-size" => 11, "-value" => $form->{ordnumber}) .
+#      qq|     </td>
+#            </tr>
+#        <tr>
+#          <th align="right" nowrap>| . $locale->text('Order Date') . qq|</th>
+#          <td><input name="orddate" id="orddate" size="11" title="$myconfig{dateformat}" value="| . Q($form->{orddate}) . qq|" onBlur=\"check_right_date_format(this)\">
+#           <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+#        </tr>
+#            <tr>
+#              <th align="right" nowrap>| . $locale->text('Quotation Number') . qq|</th>
+#              <td> |.
+#              $cgi->textfield("-name" => "quonumber", "-size" => 11, "-value" => $form->{quonumber}) .
+#      qq|     </td>
+#            </tr>
+#        <tr>
+#          <th align="right" nowrap>| . $locale->text('Quotation Date') . qq|</th>
+#          <td><input name="quodate" id="quodate" size="11" title="$myconfig{dateformat}" value="| . Q($form->{quodate}) . qq|" onBlur=\"check_right_date_format(this)\">
+#           <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+#        </tr>
+#            <tr>
+#              <th align="right" nowrap>| . $locale->text('Customer Order Number') . qq|</th>
+#              <td> |.
+#              $cgi->textfield("-name" => "cusordnumber", "-size" => 11, "-value" => $form->{cusordnumber}) .
+#      qq|     </td>
+#            </tr>
+#            <tr>
+#          <th align="right" nowrap>| . $locale->text('Project Number') . qq|</th>
+#          <td>$globalprojectnumber</td>
+#            </tr>
+#          </table>
+#          </td>
+#      </tr>
+#      </table>
+#    </td>
+#  </tr>
+#  <tr>
+#    <td>
+#    </td>
+#  </tr>
+#  $jsscript
+#|;
+#  print qq|<input type="hidden" name="webdav" value="$webdav">|;
+
+  print $form->parse_html_template("is/form_header", \%TMPL_VAR);
 
   $main::lxdebug->leave_sub();
 }
index ff1936e..cac628f 100644 (file)
@@ -64,7 +64,6 @@ $self->{texts} = {
   'Confirm!'                    => 'Bestätigen Sie!',
   'Confirmation'                => 'Auftragsbestätigung',
   'Contact'                     => 'Kontakt',
-  'Contact Person'              => 'Ansprechpartner',
   'Continue'                    => 'Weiter',
   'Country'                     => 'Land',
   'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
@@ -80,11 +79,9 @@ $self->{texts} = {
   'Create and edit sales quotations' => 'Angebote erfassen und bearbeiten',
   'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
   'Credit Limit'                => 'Kreditlimit',
-  'Credit Limit exceeded!!!'    => 'Kreditlimit überschritten!',
   'Credit Note'                 => 'Gutschrift',
   'Credit Note Date'            => 'Gutschriftdatum',
   'Credit Note Number'          => 'Gutschriftnummer',
-  'Currency'                    => 'Währung',
   'Customer'                    => 'Kunde',
   'Customer Number'             => 'Kundennummer',
   'Customer Order Number'       => 'Bestellnummer des Kunden',
@@ -92,7 +89,6 @@ $self->{texts} = {
   'Customer missing!'           => 'Kundenname fehlt!',
   'Customer not on file or locked!' => 'Dieser Kunde existiert nicht oder ist gesperrt.',
   'Customer not on file!'       => 'Kunde ist nicht in der Datenbank!',
-  'Customer type'               => 'Kundentyp',
   'DATEV Export'                => 'DATEV-Export',
   'DELETED'                     => 'Gelöscht',
   'DR'                          => 'S',
@@ -110,13 +106,11 @@ $self->{texts} = {
   'Department'                  => 'Abteilung',
   'Dependency loop detected:'   => 'Schleife in den Abh&auml;ngigkeiten entdeckt:',
   'Description'                 => 'Beschreibung',
-  'Details (one letter abbreviation)' => 'D',
   'Directory'                   => 'Verzeichnis',
   'Discount'                    => 'Rabatt',
   'Draft saved.'                => 'Entwurf gespeichert.',
   'Due Date'                    => 'Fälligkeitsdatum',
   'Dunning'                     => 'Mahnung',
-  'Dunning Amount'              => 'gemahnter Betrag',
   'E-mail'                      => 'eMail',
   'E-mail address missing!'     => 'E-Mail-Adresse fehlt!',
   'EK'                          => 'EK',
@@ -125,17 +119,14 @@ $self->{texts} = {
   'Edit Sales Invoice'          => 'Rechnung bearbeiten',
   'Edit Storno Credit Note'     => 'Storno Gutschrift bearbeiten',
   'Edit Storno Invoice'         => 'Stornorechnung bearbeiten',
-  'Employee'                    => 'Bearbeiter',
   'Enter longdescription'       => 'Langtext eingeben',
   'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
   'Ertrag'                      => 'Ertrag',
   'Ertrag prozentual'           => 'Ertrag prozentual',
   'Exch'                        => 'Wechselkurs.',
-  'Exchangerate'                => 'Wechselkurs',
   'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs für die Bezahlung!',
   'Exchangerate missing!'       => 'Es fehlt der Wechselkurs!',
   'Extended'                    => 'Gesamt',
-  'Falsches Datumsformat!'      => 'Falsches Datumsformat!',
   'Fax'                         => 'Fax',
   'Feb'                         => 'Feb',
   'February'                    => 'Februar',
@@ -171,7 +162,6 @@ $self->{texts} = {
   'Mark as paid?'               => 'Als bezahlt markieren?',
   'Marked as paid'              => 'Als bezahlt markiert',
   'Master Data'                 => 'Stammdaten',
-  'Max. Dunning Level'          => 'höchste Mahnstufe',
   'May'                         => 'Mai',
   'May '                        => 'Mai',
   'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
@@ -266,7 +256,6 @@ $self->{texts} = {
   'Sales Invoice'               => 'Rechnung',
   'Sales Order'                 => 'Kundenauftrag',
   'Sales quotation'             => 'Angebot',
-  'Salesman'                    => 'Verkäufer/in',
   'Save draft'                  => 'Entwurf speichern',
   'Screen'                      => 'Bildschirm',
   'Select a Customer'           => 'Endkunde auswählen',
@@ -289,7 +278,6 @@ $self->{texts} = {
   'Show details'                => 'Details anzeigen',
   'Skip'                        => 'Überspringen',
   'Source'                      => 'Beleg',
-  'Steuersatz'                  => 'Steuersatz',
   'Storno'                      => 'Storno',
   'Storno Invoice'              => 'Stornorechnung',
   'Storno Packing List'         => 'Stornolieferschein',
@@ -308,7 +296,6 @@ $self->{texts} = {
   'There are #1 unfinished follow-ups of which #2 are due.' => 'Es gibt #1 Wiedervorlage(n), von denen #2 f&auml;llig ist/sind.',
   'To (email)'                  => 'An',
   'Total'                       => 'Summe',
-  'Trade Discount'              => 'Rabatt',
   'Transaction description'     => 'Vorgangsbezeichnung',
   'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
   'Transfer To Stock'           => 'Lagereingang',
@@ -333,7 +320,6 @@ $self->{texts} = {
   'Zipcode'                     => 'PLZ',
   '[email]'                     => '[email]',
   'bin_list'                    => 'Lagerliste',
-  'button'                      => '?',
   'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schl&uuml;sselwort "DB_config" fehlt.',
   'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schl&uuml;ssel "LDAP_config" fehlt.',
   'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Fehlende Parameter in "DB_config". Ben&ouml;tigte Parameter sind "host", "db" und "user".',
@@ -356,7 +342,6 @@ $self->{texts} = {
   'sent'                        => 'gesendet',
   'sent to printer'             => 'an Drucker geschickt',
   'vendor'                      => 'Lieferant',
-  'wrongformat'                 => 'Falsches Format',
   'yes'                         => 'ja',
 };
 
index b78f1bc..7225b03 100644 (file)
@@ -23,6 +23,7 @@
     select        : java function call for a selection popup or other magic
     allow_textbox : allow to display a textbox instead of a drop down box if there are more entries than 'limit' entries.
     limit         : defines the limit of entries, after which a textbox is generated. defaults to vclimit, or, failing to find that, 200.
+    readonly      : softly prevents modification
 -%]
 [%- DEFAULT
   limit      = limit   != '' ? limit   : vclimit != '' ? vclimit : 200
@@ -44,6 +45,7 @@
  [%- IF id       %] id="[%       HTML.escape(id)       %]"[% END -%]
  [%- IF default  %] value="[%    HTML.escape(default)  %]"[% END -%]
  [%- IF style    %] style="[%    HTML.escape(style)    %]"[% END -%]
+ [%- IF readonly %] readonly[% END -%]
 [%- -%]>
 [%- IF select -%]
   <input type="button" onclick="[% select %]" value="?">
@@ -54,6 +56,7 @@
  [%- IF id       %] id="[%       HTML.escape(id)       %]"[% END -%]
  [%- IF style    %] style="[%    HTML.escape(style)    %]"[% END -%]
  [%- IF onChange %] onChange="[% HTML.escape(onChange) %]"[% END -%]
+ [%- IF readonly %] disabled[% END -%]
 [%- -%]>
   [%- IF show_empty %]
   <option value=""></option>
diff --git a/templates/webpages/is/form_header_de.html b/templates/webpages/is/form_header_de.html
new file mode 100644 (file)
index 0000000..1a9de35
--- /dev/null
@@ -0,0 +1,312 @@
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- SET follow_up_trans_info = invnumber _ ' (' _ customer_name _ ')' %]
+<body>
+<script type="text/javascript" src="js/common.js"></script>
+<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
+<script type="text/javascript" src="js/vendor_selection.js"></script>
+<script type="text/javascript" src="js/calculate_qty.js"></script>
+<script type="text/javascript" src="js/follow_up.js"></script>
+
+<form method="post" name="invoice" action="[% script %]">
+
+<p>[% saved_message %]</p>
+
+[%- FOREACH key = HIDDENS %]
+<input type="hidden" name="[% HTML.escape(key) %]" value="[% HTML.escape($key)  %]">
+[%- END %]
+<input type="hidden" name="follow_up_trans_id_1" value="[% id %]">
+<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+<input type="hidden" name="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
+<input type="hidden" name="follow_up_rowcount" value="1">
+
+<input type="hidden" name="lizenzen" value="[% lizenzen %]">
+
+<p><div class="listtop" width="100%">[% title %]</div></p>
+
+<table width="100%">
+  <tr>
+    <td valign="top">
+      <table>
+        <tr>
+          <th align="right">Kunde</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name          = 'customer',
+                 style         = 'width: 250px',
+                 DATA          = ALL_CUSTOMERS,
+                 id_sub        = 'vc_keys',
+                 label_key     = 'name',
+                 select        = vc_select,
+                 limit         = vclimit,
+                 allow_textbox = 1,
+                 onChange      = "document.getElementById('update_button').click();" -%]
+            <input type="button" value="D" onclick="show_vc_details('[% HTML.escape(vc) %]')">
+          </td>
+          <input type="hidden" name="customer_klass" value="[% HTML.escape(customer_klass) %]">
+          <input type="hidden" name="customer_id" value="[% HTML.escape(customer_id) %]">
+          <input type="hidden" name="oldcustomer" value="[% HTML.escape(oldcustomer) %]">
+          <input type="hidden" name="selectcustomer" value="[% HTML.escape(selectcustomer) %]">
+        </tr>
+[%- IF ALL_CONTACTS.size %]
+        <tr>
+          <th align="right">Ansprechpartner</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'cp_id',
+                 style      = 'width: 250px',
+                 DATA       = ALL_CONTACTS,
+                 id_key     = 'cp_id',
+                 label_sub  = 'contact_labels',
+                 show_empty = 1 -%]
+          </td>
+        </tr>
+[%- END %]
+[%- IF ALL_SHIPTO.size %]
+        <tr>
+          <th align="right">Lieferadresse</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'shipto_id',
+                 style      = 'width: 250px',
+                 DATA       = ALL_SHIPTO,
+                 id_key     = 'shipto_id',
+                 label_sub  = 'shipto_labels',
+                 show_empty = 1,
+                 onChange   = "document.getElementById('update_button').click();" -%]
+          </td>
+        </tr>
+[%- END %]
+        <tr>
+          <td align="right">Kreditlimit</td>
+          <td>
+            [% LxERP.format_amount(creditlimit, 0, '0') %]; Rest
+            <span class="plus[% IF is_credit_remaining_negativ %]0[% ELSE %]1[% END %]">[% LxERP.format_amount(creditremaining,0 ,'0') %]</span>
+          </td>
+        </tr>
+[%- IF max_dunning_level %]
+        <tr>
+          <th align="right">höchste Mahnstufe:</th>
+          <td>
+            <b>[% max_dunning_level %]</b>; gemahnter Betrag: <b>[% LxERP.format_amount(dunning_amount,2) %]</b>
+          </td>
+        </tr>
+[%- END %]
+[%- IF business %]
+        <tr>
+          <th align="right">Kundentyp</th>
+          <td>[% business %]; Rabatt [% LxERP.format_amount(tradediscount * 100) %] %</td>
+        </tr>
+[%- END %]
+        <tr>
+          <th align="right" nowrap>Buchen auf</th>
+          <td colspan="3"><select name="AR" style="width:250px;">[% selectAR %]</select></td>
+          <input type="hidden" name="selectAR" value="[% selectAR %]">
+        </tr>
+        <tr>
+          <th align="right">Steuersatz</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'taxzone_id'
+                 stype      = '250px'
+                 DATA       = ALL_TAXZONES
+                 id_key     = 'id'
+                 readonly   = (id ? 1 : 0)
+                 label_key  = 'description' -%]
+          </td>
+        </tr>
+[%- IF ALL_DEPARTMENTS %]
+        <tr>
+          <th align="right" nowrap>Abteilung</th>
+          <td colspan="3">
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'department_id',
+                 style      = 'width: 250px',
+                 DATA       = ALL_DEPARTMENTS,
+                 id_key     = 'id',
+                 label_sub  = 'department_labels',
+                 show_empty = 1 -%]
+          </td>
+        </tr>
+[%- END %]
+[%- IF currencies %]
+        <tr>
+          <th align="right">Währung</th>
+          <td>[% currencies %]</td>
+        </tr>
+[%- END %]
+        <input type="hidden" name="fxgain_accno" value="[% fxgain_accno %]">
+        <input type="hidden" name="fxloss_accno" value="[% fxloss_accno %]">
+[%- IF show_exchangerate %]
+        <tr>
+          <th align="right">Wechselkurs</th>
+          <td>
+           [%- IF forex %]
+            [% LxERP.format_amount(exchangerate, 2) %]
+           [%- ELSE %]
+            <input name="exchangerate" size="10" value="[% HTML.escape(LxERP.format_amount(exchangerate)) %]">
+           [%- END %]
+          </td>
+        </tr>
+[%- END %]
+        <tr>
+          <th align="right" nowrap>Versandort</th>
+          <td colspan="3"><input size='35' name="shippingpoint" value="[% HTML.escape(shippingpoint) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap>Transportmittel</th>
+          <td colspan="3"><input size='35' name="shipvia" value="[% HTML.escape(shipvia) %]"></td>
+        </tr>
+        <tr>
+          <th align="right">Vorgangsbezeichnung</th>
+          <td colspan="3"><input size='35' name="transaction_description" value="[% HTML.escape(transaction_description) %]"></td>
+        </tr>
+      </table>
+    </td>
+    <td align="right" valign="top">
+      <table>
+        <tr>
+          <th align="right">Bearbeiter</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'employee_id',
+                 DATA       = ALL_EMPLOYEES,
+                 id_key     = 'id',
+                 label_sub  = 'sales_employee_labels' -%]
+          </td>
+        </tr>
+[%- IF ALL_SALESMEN.size %]
+        <tr>
+          <th align="right">Verkäufer/in</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'salesman_id',
+                 default    = salesman_id ? salesman_id : employee_id,
+                 DATA       = ALL_SALESMEN,
+                 id_key     = 'id',
+                 label_sub  = 'sales_employee_labels' -%]
+          </td>
+        </tr>
+[%- END %]
+
+[%- IF is_type_credit_note %]
+        <tr>
+          <th align="right" nowrap>Gutschriftnummer</th>
+          <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right">Gutschriftdatum</th>
+          <td nowrap>
+            <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+            <input type="button" name="invdate_button" id="trigger1" value="?">
+          </td>
+        </tr>
+[%- ELSE %]
+        <tr>
+          <th align="right" nowrap>Rechnungsnummer</th>
+          <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right">Rechnungsdatum</th>
+          <td nowrap>
+            <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+            <input type="button" name="invdate_button" id="trigger1" value="?">
+          </td>
+        </tr>
+        <tr>
+          <th align="right">Fälligkeitsdatum</th>
+          <td width="13">
+            <input name="duedate" id="duedate" size="11" title="[% dateformat %]" value="[% duedate %]" onBlur="check_right_date_format(this)">
+            <input type="button" name="duedate_button" id="trigger2" value="?">
+          </td>
+        </tr>
+        <tr>
+        <th align="right" nowrap>Lieferscheinnummer</th>
+          <td colspan="3"><input size='11' name="donumber" value="[% HTML.escape(donumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right">Lieferdatum</th>
+            <td width="13">
+              <input name="deliverydate" id="deliverydate" size="11" title="[% dateformat %]" value="[% deliverydate %]" onBlur="check_right_date_format(this)">
+              <input type="button" name="deliverydate_button" id="trigger3" value="?">
+            </td>
+        </tr>
+[%- END %]
+
+        <tr>
+          <th align="right" nowrap>Auftragsnummer</th>
+          <td colspan="3"><input size='11' name="ordnumber" value="[% HTML.escape(ordnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap>Auftragsdatum</th>
+          <td><input name="orddate" id="orddate" size="11" title="[% dateformat %]" value="[% orddate %]" onBlur="check_right_date_format(this)">
+          <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap>Angebotsnummer</th>
+          <td colspan="3"><input size='11' name="quonumber" value="[% HTML.escape(quonumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap>Angebotsdatum</th>
+          <td><input name="quodate" id="quodate" size="11" title="[% dateformat %]" value="[% quodate %]" onBlur="check_right_date_format(this)">
+           <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap>Bestellnummer des Kunden</th>
+          <td colspan="3"><input size='11' name="cusordnumber" value="[% HTML.escape(cusordnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap>Projektnummer</th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'globalproject_id',
+                 DATA       = ALL_PROJECTS,
+                 id_key     = 'id',
+                 label_key  = 'projectnumber',
+                 show_empty = 1,
+                 onChange   = "document.getElementById('update_button').click();" -%]
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+    </td>
+  </tr>
+  <tr>
+    <td>
+    </td>
+  </tr>
+  [% jsscript %]
+  <script type="text/javascript" src="js/show_form_details.js"></script>
+  <script type="text/javascript" src="js/show_vc_details.js"></script>
+  <script type="text/javascript" src="js/show_history.js"></script>
+  <script type="text/javascript" src="js/jquery.js"></script>
+  <script type="text/javascript">
+   <!--
+     Calendar.setup({ inputField : "invdate",      ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
+[% IF !is_type_credit_note %]
+     Calendar.setup({ inputField : "duedate",      ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+     Calendar.setup({ inputField : "deliverydate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger3" });
+[% END %]
+     Calendar.setup({ inputField : "orddate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_orddate" });
+     Calendar.setup({ inputField : "quodate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_quodate" });
+     $('document').ready(function(){
+[% IF resubmit && is_format_html %]
+       window.open('about:blank','Beleg');
+       document.invoice.target = 'Beleg';
+       document.invoice.submit();
+[% ELSIF resubmit %]
+       document.invoice.submit();
+[% ELSIF creditwarning != '' %]
+       alert('Kreditlimit überschritten!');
+[% ELSE %]
+       focus();
+[% END %]
+       setupDateFormat('[% dateformat %]', 'Falsches Datumsformat!');
+       setupPoints('[% numberformat %]', 'Falsches Format');
+     });
+   //-->
+  </script>
+
+  <input type="hidden" name="webdav" value="[% webdav %]">
diff --git a/templates/webpages/is/form_header_master.html b/templates/webpages/is/form_header_master.html
new file mode 100644 (file)
index 0000000..6cd00d1
--- /dev/null
@@ -0,0 +1,312 @@
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- SET follow_up_trans_info = invnumber _ ' (' _ customer_name _ ')' %]
+<body>
+<script type="text/javascript" src="js/common.js"></script>
+<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
+<script type="text/javascript" src="js/vendor_selection.js"></script>
+<script type="text/javascript" src="js/calculate_qty.js"></script>
+<script type="text/javascript" src="js/follow_up.js"></script>
+
+<form method="post" name="invoice" action="[% script %]">
+
+<p>[% saved_message %]</p>
+
+[%- FOREACH key = HIDDENS %]
+<input type="hidden" name="[% HTML.escape(key) %]" value="[% HTML.escape($key)  %]">
+[%- END %]
+<input type="hidden" name="follow_up_trans_id_1" value="[% id %]">
+<input type="hidden" name="follow_up_trans_type_1" value="sales_invoice">
+<input type="hidden" name="follow_up_trans_info_1" value="[% HTML.escape(follow_up_trans_info) %]">
+<input type="hidden" name="follow_up_rowcount" value="1">
+
+<input type="hidden" name="lizenzen" value="[% lizenzen %]">
+
+<p><div class="listtop" width="100%">[% title %]</div></p>
+
+<table width="100%">
+  <tr>
+    <td valign="top">
+      <table>
+        <tr>
+          <th align="right"><translate>Customer</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name          = 'customer',
+                 style         = 'width: 250px',
+                 DATA          = ALL_CUSTOMERS,
+                 id_sub        = 'vc_keys',
+                 label_key     = 'name',
+                 select        = vc_select,
+                 limit         = vclimit,
+                 allow_textbox = 1,
+                 onChange      = "document.getElementById('update_button').click();" -%]
+            <input type="button" value="<translate>Details (one letter abbreviation)</translate>" onclick="show_vc_details('[% HTML.escape(vc) %]')">
+          </td>
+          <input type="hidden" name="customer_klass" value="[% HTML.escape(customer_klass) %]">
+          <input type="hidden" name="customer_id" value="[% HTML.escape(customer_id) %]">
+          <input type="hidden" name="oldcustomer" value="[% HTML.escape(oldcustomer) %]">
+          <input type="hidden" name="selectcustomer" value="[% HTML.escape(selectcustomer) %]">
+        </tr>
+[%- IF ALL_CONTACTS.size %]
+        <tr>
+          <th align="right"><translate>Contact Person</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'cp_id',
+                 style      = 'width: 250px',
+                 DATA       = ALL_CONTACTS,
+                 id_key     = 'cp_id',
+                 label_sub  = 'contact_labels',
+                 show_empty = 1 -%]
+          </td>
+        </tr>
+[%- END %]
+[%- IF ALL_SHIPTO.size %]
+        <tr>
+          <th align="right"><translate>Shipping Address</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'shipto_id',
+                 style      = 'width: 250px',
+                 DATA       = ALL_SHIPTO,
+                 id_key     = 'shipto_id',
+                 label_sub  = 'shipto_labels',
+                 show_empty = 1,
+                 onChange   = "document.getElementById('update_button').click();" -%]
+          </td>
+        </tr>
+[%- END %]
+        <tr>
+          <td align="right"><translate>Credit Limit</translate></td>
+          <td>
+            [% LxERP.format_amount(creditlimit, 0, '0') %]; <translate>Remaining</translate>
+            <span class="plus[% IF is_credit_remaining_negativ %]0[% ELSE %]1[% END %]">[% LxERP.format_amount(creditremaining,0 ,'0') %]</span>
+          </td>
+        </tr>
+[%- IF max_dunning_level %]
+        <tr>
+          <th align="right"><translate>Max. Dunning Level</translate>:</th>
+          <td>
+            <b>[% max_dunning_level %]</b>; <translate>Dunning Amount</translate>: <b>[% LxERP.format_amount(dunning_amount,2) %]</b>
+          </td>
+        </tr>
+[%- END %]
+[%- IF business %]
+        <tr>
+          <th align="right"><translate>Customer type</translate></th>
+          <td>[% business %]; <translate>Trade Discount</translate> [% LxERP.format_amount(tradediscount * 100) %] %</td>
+        </tr>
+[%- END %]
+        <tr>
+          <th align="right" nowrap><translate>Record in</translate></th>
+          <td colspan="3"><select name="AR" style="width:250px;">[% selectAR %]</select></td>
+          <input type="hidden" name="selectAR" value="[% selectAR %]">
+        </tr>
+        <tr>
+          <th align="right"><translate>Steuersatz</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'taxzone_id'
+                 stype      = '250px'
+                 DATA       = ALL_TAXZONES
+                 id_key     = 'id'
+                 readonly   = (id ? 1 : 0)
+                 label_key  = 'description' -%]
+          </td>
+        </tr>
+[%- IF ALL_DEPARTMENTS %]
+        <tr>
+          <th align="right" nowrap><translate>Department</translate></th>
+          <td colspan="3">
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'department_id',
+                 style      = 'width: 250px',
+                 DATA       = ALL_DEPARTMENTS,
+                 id_key     = 'id',
+                 label_sub  = 'department_labels',
+                 show_empty = 1 -%]
+          </td>
+        </tr>
+[%- END %]
+[%- IF currencies %]
+        <tr>
+          <th align="right"><translate>Currency</translate></th>
+          <td>[% currencies %]</td>
+        </tr>
+[%- END %]
+        <input type="hidden" name="fxgain_accno" value="[% fxgain_accno %]">
+        <input type="hidden" name="fxloss_accno" value="[% fxloss_accno %]">
+[%- IF show_exchangerate %]
+        <tr>
+          <th align="right"><translate>Exchangerate</translate></th>
+          <td>
+           [%- IF forex %]
+            [% LxERP.format_amount(exchangerate, 2) %]
+           [%- ELSE %]
+            <input name="exchangerate" size="10" value="[% HTML.escape(LxERP.format_amount(exchangerate)) %]">
+           [%- END %]
+          </td>
+        </tr>
+[%- END %]
+        <tr>
+          <th align="right" nowrap><translate>Shipping Point</translate></th>
+          <td colspan="3"><input size='35' name="shippingpoint" value="[% HTML.escape(shippingpoint) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap><translate>Ship via</translate></th>
+          <td colspan="3"><input size='35' name="shipvia" value="[% HTML.escape(shipvia) %]"></td>
+        </tr>
+        <tr>
+          <th align="right"><translate>Transaction description</translate></th>
+          <td colspan="3"><input size='35' name="transaction_description" value="[% HTML.escape(transaction_description) %]"></td>
+        </tr>
+      </table>
+    </td>
+    <td align="right" valign="top">
+      <table>
+        <tr>
+          <th align="right"><translate>Employee</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'employee_id',
+                 DATA       = ALL_EMPLOYEES,
+                 id_key     = 'id',
+                 label_sub  = 'sales_employee_labels' -%]
+          </td>
+        </tr>
+[%- IF ALL_SALESMEN.size %]
+        <tr>
+          <th align="right"><translate>Salesman</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'salesman_id',
+                 default    = salesman_id ? salesman_id : employee_id,
+                 DATA       = ALL_SALESMEN,
+                 id_key     = 'id',
+                 label_sub  = 'sales_employee_labels' -%]
+          </td>
+        </tr>
+[%- END %]
+
+[%- IF is_type_credit_note %]
+        <tr>
+          <th align="right" nowrap><translate>Credit Note Number</translate></th>
+          <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right"><translate>Credit Note Date</translate></th>
+          <td nowrap>
+            <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+            <input type="button" name="invdate_button" id="trigger1" value="<translate>button</translate>">
+          </td>
+        </tr>
+[%- ELSE %]
+        <tr>
+          <th align="right" nowrap><translate>Invoice Number</translate></th>
+          <td colspan="3"><input size='11' name="invnumber" value="[% HTML.escape(invnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right"><translate>Invoice Date</translate></th>
+          <td nowrap>
+            <input name="invdate" id="invdate" size="11" title="[% dateformat %]" value="[% invdate %]" onBlur="check_right_date_format(this)">
+            <input type="button" name="invdate_button" id="trigger1" value="<translate>button</translate>">
+          </td>
+        </tr>
+        <tr>
+          <th align="right"><translate>Due Date</translate></th>
+          <td width="13">
+            <input name="duedate" id="duedate" size="11" title="[% dateformat %]" value="[% duedate %]" onBlur="check_right_date_format(this)">
+            <input type="button" name="duedate_button" id="trigger2" value="<translate>button</translate>">
+          </td>
+        </tr>
+        <tr>
+        <th align="right" nowrap><translate>Delivery Order Number</translate></th>
+          <td colspan="3"><input size='11' name="donumber" value="[% HTML.escape(donumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right"><translate>Delivery Date</translate></th>
+            <td width="13">
+              <input name="deliverydate" id="deliverydate" size="11" title="[% dateformat %]" value="[% deliverydate %]" onBlur="check_right_date_format(this)">
+              <input type="button" name="deliverydate_button" id="trigger3" value="<translate>button</translate>">
+            </td>
+        </tr>
+[%- END %]
+
+        <tr>
+          <th align="right" nowrap><translate>Order Number</translate></th>
+          <td colspan="3"><input size='11' name="ordnumber" value="[% HTML.escape(ordnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap><translate>Order Date</translate></th>
+          <td><input name="orddate" id="orddate" size="11" title="[% dateformat %]" value="[% orddate %]" onBlur="check_right_date_format(this)">
+          <input type="button" name="b_orddate" id="trigger_orddate" value="?"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap><translate>Quotation Number</translate></th>
+          <td colspan="3"><input size='11' name="quonumber" value="[% HTML.escape(quonumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap><translate>Quotation Date</translate></th>
+          <td><input name="quodate" id="quodate" size="11" title="[% dateformat %]" value="[% quodate %]" onBlur="check_right_date_format(this)">
+           <input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap><translate>Customer Order Number</translate></th>
+          <td colspan="3"><input size='11' name="cusordnumber" value="[% HTML.escape(cusordnumber) %]"></td>
+        </tr>
+        <tr>
+          <th align="right" nowrap><translate>Project Number</translate></th>
+          <td>
+            [%- INCLUDE 'generic/multibox.html'
+                 name       = 'globalproject_id',
+                 DATA       = ALL_PROJECTS,
+                 id_key     = 'id',
+                 label_key  = 'projectnumber',
+                 show_empty = 1,
+                 onChange   = "document.getElementById('update_button').click();" -%]
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+    </td>
+  </tr>
+  <tr>
+    <td>
+    </td>
+  </tr>
+  [% jsscript %]
+  <script type="text/javascript" src="js/show_form_details.js"></script>
+  <script type="text/javascript" src="js/show_vc_details.js"></script>
+  <script type="text/javascript" src="js/show_history.js"></script>
+  <script type="text/javascript" src="js/jquery.js"></script>
+  <script type="text/javascript">
+   <!--
+     Calendar.setup({ inputField : "invdate",      ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" });
+[% IF !is_type_credit_note %]
+     Calendar.setup({ inputField : "duedate",      ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger2" });
+     Calendar.setup({ inputField : "deliverydate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger3" });
+[% END %]
+     Calendar.setup({ inputField : "orddate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_orddate" });
+     Calendar.setup({ inputField : "quodate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger_quodate" });
+     $('document').ready(function(){
+[% IF resubmit && is_format_html %]
+       window.open('about:blank','Beleg');
+       document.invoice.target = 'Beleg';
+       document.invoice.submit();
+[% ELSIF resubmit %]
+       document.invoice.submit();
+[% ELSIF creditwarning != '' %]
+       alert('<translate>Credit Limit exceeded!!!</translate>');
+[% ELSE %]
+       focus();
+[% END %]
+       setupDateFormat('[% dateformat %]', '<translate>Falsches Datumsformat!</translate>');
+       setupPoints('[% numberformat %]', '<translate>wrongformat</translate>');
+     });
+   //-->
+  </script>
+
+  <input type="hidden" name="webdav" value="[% webdav %]">