Lieferanten-/Kundenauswahlmenu angepasst, so dass nicht immer die komplette Auswahlli...
[kivitendo-erp.git] / bin / mozilla / ir.pl
index 64a9093..284b2fe 100644 (file)
@@ -120,11 +120,6 @@ sub invoice_links {
     $form->{taxzone_id} = $taxzone_id;
   }
 
-  # currencies
-  @curr = split(/:/, $form->{currencies});
-  chomp $curr[0];
-  $form->{defaultcurrency} = $curr[0];
-
   map { $form->{selectcurrency} .= "<option>$_\n" } @curr;
 
   $form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}";
@@ -228,7 +223,7 @@ sub form_header {
   $lxdebug->enter_sub();
 
   # set option selected
-  foreach $item (qw(AP vendor currency department)) {
+  foreach $item (qw(AP vendor currency department employee)) {
     $form->{"select$item"} =~ s/ selected//;
     $form->{"select$item"} =~
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
@@ -279,7 +274,10 @@ sub form_header {
                    "projects" => { "key" => "ALL_PROJECTS",
                                    "all" => 0,
                                    "old_id" => \@old_project_ids },
-                   "taxzones" => "ALL_TAXZONES");
+                   "taxzones" => "ALL_TAXZONES",
+                   "employees" => "ALL_SALESMEN",
+                   "currencies" => "ALL_CURRENCIES",
+                   "vendors" => "ALL_VENDORS");
 
   my %labels;
   my @values = (undef);
@@ -302,6 +300,55 @@ sub form_header {
     NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values,
                          '-labels' => \%labels,
                          '-default' => $form->{"globalproject_id"}));
+  %labels = ();
+  @values = ();
+  my $i = 0;
+  foreach my $item (@{ $form->{"ALL_CURRENCIES"} }) {
+    push(@values, $item);
+    $labels{$item} = $item;
+  }
+  
+  $form->{currency}        = $form->{defaultcurrency} unless $form->{currency};
+  my $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 = ();
+  my $i = 0;
+  foreach my $item (@{ $form->{"ALL_SALESMEN"} }) {
+    push(@values, $item->{"id"});
+    $labels{$item->{"id"}} = $item->{"name"};
+  }
+  my $employees = qq|
+      <tr>
+      <th align="right">| . $locale->text('Employee') . qq|</th>
+      <td>| .
+        NTI($cgi->popup_menu('-name' => 'employee', '-default' => $form->{"employee"},
+                             '-values' => \@values, '-labels' => \%labels)) . qq|
+      </td>
+      </tr>|;
+  
+  %labels = ();
+  @values = ();
+  my $i = 0;
+  foreach my $item (@{ $form->{"ALL_VENDORS"} }) {
+    push(@values, $item->{name}.qq|--|.$item->{"id"});
+    $labels{$item->{"id"}} = $item->{"name"}.qq|--|.$item->{"id"};
+  }
+  my $vendors = qq|
+      <th align="right">| . $locale->text('Vendor') . qq|</th>
+      <td>| .
+        NTI($cgi->popup_menu('-name' => 'vendor', '-default' => $form->{"vendor"},
+                             '-onChange' => 'document.getElementById(\'update_button\').click();',
+                             '-values' => \@values, '-labels' => \%labels)) . qq|
+      </td>|;
 
   %labels = ();
   @values = ();
@@ -331,19 +378,11 @@ sub form_header {
     </tr>|;
   }
 
-  $vendor =
-    ($form->{selectvendor})
-    ? qq|<select name="vendor"
-onchange="document.getElementById('update_button').click();">| .
-    qq|$form->{selectvendor}</select>\n<input type=hidden name="selectvendor" value="| .
-    Q($form->{selectvendor}) . qq|">|
-    : qq|<input name=vendor value="$form->{vendor}" size=35>|;
-
   $department = qq|
               <tr>
              <th align="right" nowrap>| . $locale->text('Department') . qq|</th>
-             <td colspan=3><select name=department>$form->{selectdepartment}</select>
-             <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
+             <td colspan="3"><select name="department">$form->{selectdepartment}</select>
+             <input type="hidden" name="selectdepartment" value="$form->{selectdepartment}">
              </td>
            </tr>
 | if $form->{selectdepartment};
@@ -427,20 +466,18 @@ onchange="document.getElementById('update_button').click();">| .
          <td>
            <table>
              <tr>
-               <th align=right nowrap>| . $locale->text('Vendor') . qq|</th>
-               <td colspan=3>$vendor</td>
-
+    $vendors
                 <th align=richt nowrap>|
     . $locale->text('Contact Person') . qq|</th>
                 <td colspan=3>$contact</td>
 
-                <input type=hidden name=vendor_id value=$form->{vendor_id}>
-               <input type=hidden name=oldvendor value="$form->{oldvendor}">
-
+                <input type="hidden" name="vendor_id" value="$form->{vendor_id}">
+               <input type="hidden" name="oldvendor" value="$form->{oldvendor}">
+    <input type="hidden" name="selectvendor" value= "1">
              </tr>
              <tr>
                <td></td>
-               <td colspan=3>
+               <td>
                  <table>
                    <tr>
                      <th nowrap>| . $locale->text('Credit Limit') . qq|</th>
@@ -450,24 +487,24 @@ onchange="document.getElementById('update_button').click();">| .
                      <td class="plus$n">$form->{creditremaining}</td>
                    </tr>
                  </table>
-               </td>
+               </td>  
              <tr>
-               <th align=right>| . $locale->text('Record in') . qq|</th>
-               <td colspan=3><select name=AP>$form->{selectAP}</select></td>
-               <input type=hidden name=selectAP value="$form->{selectAP}">
+               <th align="right">| . $locale->text('Record in') . qq|</th>
+               <td colspan="3"><select name="AP">$form->{selectAP}</select></td>
+               <input type="hidden" name="selectAP" value="$form->{selectAP}">
              </tr>
               $taxzone
               $department
              <tr>
-               <th align=right nowrap>| . $locale->text('Currency') . qq|</th>
-               <td><select name=currency>$form->{selectcurrency}</select></td>
+    $currencies
                $exchangerate
              </tr>
            </table>
          </td>
          <td align=right>
            <table>
-             <tr>
+     $employees
+             <tr>   
                <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
                <td><input name=invnumber size=11 value="$form->{invnumber}"></td>
              </tr>
@@ -507,8 +544,6 @@ onchange="document.getElementById('update_button').click();">| .
 
 $jsscript
 
-<input type=hidden name=selectcurrency value="$form->{selectcurrency}">
-<input type=hidden name=defaultcurrency value=$form->{defaultcurrency}>
 <input type=hidden name=fxgain_accno value=$form->{fxgain_accno}>
 <input type=hidden name=fxloss_accno value=$form->{fxloss_accno}>
 <input type=hidden name=webdav value=$webdav>
@@ -652,7 +687,7 @@ sub form_footer {
            <table width=100%>
              $subtotal
              $tax
-             <tr>0
+             <tr>
                <th align=right>| . $locale->text('Total') . qq|</th>
                <td align=right>$form->{invtotal}</td>
              </tr>
@@ -826,17 +861,8 @@ sub form_footer {
                        '-class' => 'submit'));
   }
 
-  print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers) .
-    qq|
-
-<input type=hidden name=rowcount value=$form->{rowcount}>
-
-<input name=callback type=hidden value="$form->{callback}">
-
-<input type=hidden name=password value=$form->{password}>
-|
-  . $cgi->hidden('-name' => 'draft_id', '-default' => [$form->{draft_id}])
-  . $cgi->hidden('-name' => 'draft_description', '-default' => [$form->{draft_description}]);
+  print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers);
+  $form->hide_form(qw(rowcount callback draft_id draft_description login password));
 
   # button for saving history
   if($form->{id} ne "") {
@@ -990,12 +1016,20 @@ sub storno {
   invoice_links();
   prepare_invoice();
   relink_accounts();
-
+  
+  # saving the history
+  if(!exists $form->{addition} && $form->{id} ne "") {
+    $form->{snumbers} = qq|invnumber_| . $form->{invnumber};  
+    $form->{addition} = "CANCELED";
+    $form->save_history($form->dbconnect(\%myconfig));
+  }
+  # /saving the history
+  
   $form->{storno_id} = $form->{id};
   $form->{storno} = 1;
   $form->{id} = "";
   $form->{invnumber} = "Storno zu " . $form->{invnumber};
-
+  $form->{rowcount}++;
   &post();
   $lxdebug->leave_sub();
 
@@ -1041,6 +1075,7 @@ sub post_payment {
                # saving the history
       $form->{snumbers} = qq|invnumber_| . $form->{invnumber};  
                $form->{addition} = "PAYMENT POSTED";
+      $form->{what_done} = $form->{currency} . qq| | . $form->{paid} . qq| | . $locale->text("POSTED");
                $form->save_history($form->dbconnect(\%myconfig));
                # /saving the history 
                $form->redirect($locale->text(' Payment posted!'));