Debitorenrechnungen: Bei Zahlungseingängen ist für jede Zeile eine Projektnummer...
[kivitendo-erp.git] / bin / mozilla / ir.pl
index 466d44b..6744764 100644 (file)
@@ -36,6 +36,7 @@ use SL::PE;
 
 require "$form->{path}/io.pl";
 require "$form->{path}/arap.pl";
+require "$form->{path}/common.pl";
 
 1;
 
@@ -219,7 +220,7 @@ sub form_header {
   $lxdebug->enter_sub();
 
   # set option selected
-  foreach $item (qw(AP vendor currency department contact)) {
+  foreach $item (qw(AP vendor currency department)) {
     $form->{"select$item"} =~ s/ selected//;
     $form->{"select$item"} =~
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
@@ -239,20 +240,6 @@ sub form_header {
   $form->{creditremaining} =
     $form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0");
 
-  #build contacts
-  if ($form->{all_contacts}) {
-
-    $form->{selectcontact} = "";
-    foreach $item (@{ $form->{all_contacts} }) {
-      if ($form->{cp_id} == $item->{cp_id}) {
-        $form->{selectcontact} .=
-          "<option selected>$item->{cp_name}--$item->{cp_id}";
-      } else {
-        $form->{selectcontact} .= "<option>$item->{cp_name}--$item->{cp_id}";
-      }
-    }
-  }
-
   $exchangerate = "";
   if ($form->{currency} ne $form->{defaultcurrency}) {
     if ($form->{forex}) {
@@ -273,6 +260,35 @@ sub form_header {
 <input type=hidden name=forex value=$form->{forex}>
 |;
 
+  my @old_project_ids = ($form->{"globalproject_id"});
+  map({ push(@old_project_ids, $form->{"project_id_$_"})
+          if ($form->{"project_id_$_"}); } (1..$form->{"rowcount"}));
+
+  $form->get_lists("contacts" => "ALL_CONTACTS",
+                   "projects" => { "key" => "ALL_PROJECTS",
+                                   "all" => 0,
+                                   "old_id" => \@old_project_ids });
+
+  my (%labels, @values);
+  foreach my $item (@{ $form->{"ALL_CONTACTS"} }) {
+    push(@values, $item->{"cp_id"});
+    $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"}));
+
+  %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"}));
 
   if (@{ $form->{TAXZONE} }) {
     $form->{selecttaxzone} = "";
@@ -308,11 +324,6 @@ sub form_header {
     ? qq|<select name=vendor>$form->{selectvendor}</select>\n<input type=hidden name="selectvendor" value="$form->{selectvendor}">|
     : qq|<input name=vendor value="$form->{vendor}" size=35>|;
 
-  $contact =
-    ($form->{selectcontact})
-    ? qq|<select name=contact>$form->{selectcontact}</select>\n<input type=hidden name="selectcontact" value="$form->{selectcontact}">|
-    : qq|<input name=contact value="$form->{contact}" size=35>|;
-
   $department = qq|
               <tr>
              <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
@@ -356,6 +367,11 @@ sub form_header {
 
   $form->{"javascript"} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
 
+  $jsscript .=
+    $form->write_trigger(\%myconfig, 2,
+                         "orddate", "BL", "trigger_orddate",
+                         "quodate", "BL", "trigger_quodate");
+
   $form->header;
 
   print qq|
@@ -448,7 +464,21 @@ sub form_header {
                <td><input name=ordnumber size=11 value="$form->{ordnumber}"></td>
 <input type=hidden name=quonumber value="$form->{quonumber}">
              </tr>
-           </table>
+        <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|"></td>
+          <td><input type="button" name="b_orddate" id="trigger_orddate" value="?"></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|"></td>
+          <td><input type="button" name="b_quodate" id="trigger_quodate" value="?"></td>
+        </tr>
+             <tr>
+          <th align="right" nowrap>| . $locale->text('Project Number') . qq|</th>
+          <td>$globalprojectnumber</td>
+             </tr>
+     </table>
          </td>
        </tr>
       </table>
@@ -798,8 +828,6 @@ sub update {
 
   &check_name(vendor);
 
-  &check_project;
-
   $form->{exchangerate} = $exchangerate
     if (
         $form->{forex} = (