Einkaufs- und Verkaufsmasken: Die potenziell langen Drop-Down-Boxen auf der linken...
[kivitendo-erp.git] / bin / mozilla / oe.pl
index 4678c2b..899d263 100644 (file)
@@ -162,9 +162,8 @@ sub order_links {
                 ($form->{vc} eq 'customer') ? "AR" : "AP");
 
   # retrieve order/quotation
-  $form->{webdav} = $webdav;
-  # set jscalendar
-  $form->{jscalendar} = $jscalendar;
+  $form->{webdav}   = $webdav;
+  $form->{jsscript} = 1;
 
   my $editing = $form->{id};
 
@@ -331,36 +330,24 @@ sub form_header {
        shiptophone shiptofax shiptodepartment_1 shiptodepartment_2);
 
   # use JavaScript Calendar or not
-  $form->{jsscript} = $form->{jscalendar};
+  $form->{jsscript} = 1;
   $jsscript = "";
 
-  if ($form->{jsscript}) {
-
-    # with JavaScript Calendar
-    $button1 = qq|
-       <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\"></td>
-       <td><input type=button name=transdate id="trigger1" value=|
-      . $locale->text('button') . qq|></td>
-      |;
-    $button2 = qq|
-       <td width="13"><input name=reqdate id=reqdate size=11 title="$myconfig{dateformat}" value="$form->{reqdate}" onBlur=\"check_right_date_format(this)\"></td>
-       <td width="4"><input type=button name=reqdate name=reqdate id="trigger2" value=|
-      . $locale->text('button') . qq|></td>
-     |;
-
-    #write Trigger
-    $jsscript =
-      Form->write_trigger(\%myconfig, "2", "transdate", "BL", "trigger1",
-                          "reqdate", "BL", "trigger2");
-
-  } else {
-
-    # without JavaScript Calendar
-    $button1 = qq|
-                              <td><input name="transdate" id="transdate" size="11" title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\"></td>|;
-    $button2 = qq|
-                              <td width="13"><input name="reqdate" id="reqdate" size="11" title="$myconfig{dateformat}" value="$form->{reqdate}" onBlur=\"check_right_date_format(this)\"></td>|;
-  }
+  $button1 = qq|
+     <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" onBlur=\"check_right_date_format(this)\">
+      <input type=button name=transdate id="trigger1" value=|
+    . $locale->text('button') . qq|></td>
+    |;
+  $button2 = qq|
+     <td width="13"><input name=reqdate id=reqdate size=11 title="$myconfig{dateformat}" value="$form->{reqdate}" onBlur=\"check_right_date_format(this)\">
+      <input type=button name=reqdate name=reqdate id="trigger2" value=|
+    . $locale->text('button') . qq|></td>
+   |;
+
+  #write Trigger
+  $jsscript =
+    Form->write_trigger(\%myconfig, "2", "transdate", "BL", "trigger1",
+                        "reqdate", "BL", "trigger2");
 
   my @tmp;
 
@@ -422,9 +409,19 @@ sub form_header {
     $labels{$item->{"cp_id"}} = $item->{"cp_name"} .
       ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : "");
   }
-  my $contact =
-    NTI($cgi->popup_menu('-name' => 'cp_id', '-values' => \@values,
-                         '-labels' => \%labels, '-default' => $form->{"cp_id"}));
+
+  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 = ();
@@ -435,6 +432,7 @@ sub form_header {
   }
 
   $vc = qq|
+      <input type="hidden" name="$form->{vc}_id" value="| . H($form->{"$form->{vc}_id"}) . qq|">
       <input type="hidden" name="old$form->{vc}" value="| . H($form->{"old$form->{vc}"}) . qq|">
       <th align="right">| . $locale->text(ucfirst($form->{vc})) . qq|</th>
       <td>| . 
@@ -442,7 +440,8 @@ sub form_header {
               ? qq|<input type="text" value="| . H($form->{"old$form->{vc}"}) . qq|" name="$form->{vc}">| 
               : (NTI($cgi->popup_menu('-name' => "$form->{vc}", '-default' => $form->{"old$form->{vc}"}, 
                              '-onChange' => 'document.getElementById(\'update_button\').click();',
-                             '-values' => \@values, '-labels' => \%labels)))) . qq|
+                             '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')))) . qq|
+        <input type="button" value="?" onclick="show_vc_details('$form->{vc}')">
       </td><input type=hidden name="select$form->{vc}" value="| .
     Q($form->{"select$form->{vc}"}) . qq|">|;
 
@@ -456,7 +455,7 @@ sub form_header {
   $payments = qq|
     <th align="right">| . $locale->text('Payment Terms') . qq|</th>
     <td>| .
-    NTI($cgi->popup_menu('-name' => 'payment_id', '-values' => \@values,
+    NTI($cgi->popup_menu('-name' => 'payment_id', '-values' => \@values, '-style' => 'width: 250px',
                          '-labels' => \%labels, '-default' => $form->{payment_id}))
     . qq|</td>|;
 
@@ -464,16 +463,19 @@ sub form_header {
   @values = ("");
   foreach my $item (@{ $form->{"ALL_SHIPTO"} }) {
     push(@values, $item->{"shipto_id"});
-    $labels{$item->{"shipto_id"}} =
-      $item->{"shiptoname"} . " " . $item->{"shiptodepartment_1"};
+    $labels{$item->{"shipto_id"}} = join "; ", grep { $_ } map { $item->{"shipto${_}" } } qw(name department_1 street city);
   }
 
-  my $shipto = qq|
-               <th align=right>| . $locale->text('Shipping Address') . qq|</th>
-               <td>| .
-    NTI($cgi->popup_menu('-name' => 'shipto_id', '-values' => \@values,
-                         '-labels' => \%labels, '-default' => $form->{"shipto_id"}))
+  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 = ("");
@@ -533,7 +535,7 @@ sub form_header {
       <th align="right">| . $locale->text('Steuersatz') . qq|</th>
       <td>| .
         NTI($cgi->popup_menu('-name' => 'taxzone_id', '-default' => $form->{"taxzone_id"},
-                             '-values' => \@values, '-labels' => \%labels)) . qq|
+                             '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')) . qq|
       </td>
     </tr>|;
 
@@ -544,9 +546,11 @@ sub form_header {
     push(@values, $item);
     $labels{$item} = $item;
   }
-  
-  $form->{currency}        = $form->{defaultcurrency} unless $form->{currency};
-  my $currencies = qq|
+
+  $form->{currency} = $form->{defaultcurrency} unless $form->{currency};
+  my $currencies;
+  if (scalar @values) {
+    $currencies = qq|
     <tr>
       <th align="right">| . $locale->text('Currency') . qq|</th>
       <td>| .
@@ -554,7 +558,7 @@ sub form_header {
                              '-values' => \@values, '-labels' => \%labels)) . qq|
       </td>
     </tr>|;
-
+  }
 
   $form->{exchangerate} =
     $form->format_amount(\%myconfig, $form->{exchangerate});
@@ -593,32 +597,25 @@ sub form_header {
   if ($form->{business}) {
     $business = qq|
              <tr>
-               <th align=right>| . $locale->text('Business') . qq|</th>
-               <td>$form->{business}</td>
-               <th align=right>| . $locale->text('Trade Discount') . qq|</th>
-               <td>|
+          <th align="right">| . ($form->{vc} eq "customer" ? $locale->text('Customer type') : $locale->text('Vendor type')) . qq|</th>
+          <td>$form->{business}; | . $locale->text('Trade Discount') . qq| |
       . $form->format_amount(\%myconfig, $form->{tradediscount} * 100)
       . qq| %</td>
-             </tr>
+        </tr>
 |;
   }
 
   if ($form->{max_dunning_level}) {
     $dunning = qq|
-             <tr>
-                <td colspan=4>
-                <table>
-                  <tr>
-               <th align=right>| . $locale->text('Max. Dunning Level') . qq|:</th>
-               <td><b>$form->{max_dunning_level}</b></td>
-               <th align=right>| . $locale->text('Dunning Amount') . qq|:</th>
-               <td><b>|
-      . $form->format_amount(\%myconfig, $form->{dunning_amount},2)
-      . qq|</b></td>
-             </tr>
-              </table>
-             </td>
-            </tr>
+      <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>
 |;
   }
 
@@ -652,20 +649,11 @@ sub form_header {
     $n = ($form->{creditremaining} =~ /-/) ? "0" : "1";
 
     $creditremaining = qq|
-             <tr>
-               <td></td>
-               <td colspan=3>
-                 <table>
-                   <tr>
-                     <th nowrap>| . $locale->text('Credit Limit') . qq|</th>
-                     <td>$form->{creditlimit}</td>
-                     <td width=20%></td>
-                     <th nowrap>| . $locale->text('Remaining') . qq|</th>
-                     <td class="plus$n" nowrap>$form->{creditremaining}</td>
-                   </tr>
-                 </table>
-               </td>
-                $shipto
+        $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>
              </tr>
 |;
   } else {
@@ -712,7 +700,7 @@ sub form_header {
   $department = qq|
               <tr>
                <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
-               <td colspan=3><select name=department>$form->{selectdepartment}</select>
+               <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};
@@ -751,41 +739,26 @@ sub form_header {
   # show history button js
   $form->{javascript} .= qq|<script type="text/javascript" src="js/show_history.js"></script>|;
   #/show history button js
+  $form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|;
+
   $form->header;
 
   print qq|
 <body onLoad="$onload">
 
 <form method=post name=oe action=$form->{script}>
+
  <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>
+|;
 
-<input type=hidden name=id value=$form->{id}>
-<input type=hidden name=action value=$form->{action}>
-
-<input type=hidden name=type value=$form->{type}>
-<input type=hidden name=formname value=$form->{formname}>
-<input type=hidden name=media value=$form->{media}>
-<input type=hidden name=format value=$form->{format}>
-<input type=hidden name=proforma value=$form->{proforma}>
-
-<input type=hidden name=queued value="$form->{queued}">
-<input type=hidden name=printed value="$form->{printed}">
-<input type=hidden name=emailed value="$form->{emailed}">
-
-<input type=hidden name=vc value=$form->{vc}>
-
-<input type=hidden name=title value="$form->{title}">
-
-<input type=hidden name=discount value=$form->{discount}>
-<input type=hidden name=creditlimit value=$form->{creditlimit}>
-<input type=hidden name=creditremaining value=$form->{creditremaining}>
+  $form->hide_form(qw(id action type vc formname media format proforma queued printed emailed
+                      title discount creditlimit creditremaining tradediscount business
+                      max_dunning_level dunning_amount));
 
-<input type=hidden name=tradediscount value=$form->{tradediscount}>
-<input type=hidden name=business value=$form->{business}>
-<input type=hidden name=webdav value=$webdav>
+  print qq|
 
 <table width=100%>
   <tr class=listtop>
@@ -800,10 +773,7 @@ sub form_header {
            <table width=100%>
              <tr>
         $vc
-                <th align=richt nowrap>|
-    . $locale->text('Contact Person') . qq|</th>
-                <td colspan=3>$contact</td>
-             </tr>
+        $contact
              $creditremaining
              $business
               $dunning
@@ -1070,9 +1040,7 @@ sub form_footer {
 
     print $webdav_list;
   }
-  print qq|
-<input type=hidden name=jscalendar value=$form->{jscalendar}>
-|;
+
   print qq|
   <tr>
     <td>
@@ -1399,34 +1367,24 @@ sub search {
   }
 
   # use JavaScript Calendar or not
-  $form->{jsscript} = $jscalendar;
+  $form->{jsscript} = 1;
   $jsscript = "";
-  if ($form->{jsscript}) {
-
-    # with JavaScript Calendar
-    $button1 = qq|
-       <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
-       <input type=button name=transdatefrom id="trigger3" value=|
-      . $locale->text('button') . qq|></td>
-      |;
-    $button2 = qq|
-       <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
-       <input type=button name=transdateto name=transdateto id="trigger4" value=|
-      . $locale->text('button') . qq|></td>
-     |;
-
-    #write Trigger
-    $jsscript =
-      Form->write_trigger(\%myconfig, "2", "transdatefrom", "BR", "trigger3",
-                          "transdateto", "BL", "trigger4");
-  } else {
 
-    # without JavaScript Calendar
-    $button1 = qq|
-                              <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
-    $button2 = qq|
-                              <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\></td>|;
-  }
+  $button1 = qq|
+     <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
+     <input type=button name=transdatefrom id="trigger3" value=|
+    . $locale->text('button') . qq|></td>
+    |;
+  $button2 = qq|
+     <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
+     <input type=button name=transdateto name=transdateto id="trigger4" value=|
+    . $locale->text('button') . qq|></td>
+   |;
+
+  #write Trigger
+  $jsscript =
+    Form->write_trigger(\%myconfig, "2", "transdatefrom", "BR", "trigger3",
+                        "transdateto", "BL", "trigger4");
 
   my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";