Saldenbilanz und Projektbuchungen auf die Verwendung von ReportGenerator umgestellt.
[kivitendo-erp.git] / bin / mozilla / ir.pl
index 136d679..77f911d 100644 (file)
@@ -46,6 +46,7 @@ require "bin/mozilla/drafts.pl";
 
 sub add {
   $lxdebug->enter_sub();
+  $form->{"Watchdog::invdate,duedate,vendor,vendor_id"} = 1;
 
   return $lxdebug->leave_sub() if (load_draft_maybe());
 
@@ -122,13 +123,6 @@ sub invoice_links {
 
   $form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}";
 
-  # vendors
-  if (@{ $form->{all_vendor} }) {
-    $form->{vendor} = "$form->{vendor}--$form->{vendor_id}";
-    map { $form->{selectvendor} .= "<option>$_->{name}--$_->{id}\n" }
-      (@{ $form->{all_vendor} });
-  }
-
   # departments
   if ($form->{all_departments}) {
     $form->{selectdepartment} = "<option>\n";
@@ -227,15 +221,19 @@ sub form_header {
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
 
+  if ($form->{old_employee_id}) {
+    $form->{employee_id} = $form->{old_employee_id};
+  }
+  if ($form->{old_salesman_id}) {
+    $form->{salesman_id} = $form->{old_salesman_id};
+  }
+
+  $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+
+
   $form->{radier} =
     ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
 
-  #quote selectvendor Bug 133
-  $form->{"selectvendor"} = $form->quote($form->{"selectvendor"});
-
-  #substitute \n and \r to \s (bug 543)
-  $form->{"selectvendor"} =~ s/[\n\r]/&nbsp;/g;
-  
   $form->{exchangerate} =
     $form->format_amount(\%myconfig, $form->{exchangerate});
 
@@ -291,7 +289,7 @@ sub form_header {
     <tr>
       <th align="right">| . $locale->text('Contact Person') . qq|</th>
       <td>| .
-      NTI($cgi->popup_menu('-name' => 'cp_id', '-values' => \@values,
+      NTI($cgi->popup_menu('-name' => 'cp_id', '-values' => \@values, '-style' => 'width: 250px',
                            '-labels' => \%labels, '-default' => $form->{"cp_id"}))
       . qq|
       </td>
@@ -345,20 +343,26 @@ sub form_header {
                              '-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"};
+    $labels{$item->{name}.qq|--|.$item->{"id"}} = $item->{"name"};
   }
+
+  $form->{selectvendor} = ($myconfig{vclimit} > scalar(@values));
+
   my $vendors = qq|
       <th align="right">| . $locale->text('Vendor') . qq|</th>
       <td>| .
-        NTI($cgi->popup_menu('-name' => 'vendor', '-default' => $form->{"vendor"},
+        (($myconfig{vclimit} <=  scalar(@values))
+              ? qq|<input type="text" value="| . H($form->{vendor}) . qq|" name="vendor">|
+              : (NTI($cgi->popup_menu('-name' => 'vendor', '-default' => $form->{oldvendor},
                              '-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('vendor')">
       </td>|;
 
   %labels = ();
@@ -374,7 +378,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>|;
 
@@ -392,7 +396,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>
@@ -422,6 +426,7 @@ sub form_header {
 
   $form->{"javascript"} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
   $form->{"javascript"} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
+  $form->{javascript}   .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|;
 
   $jsscript .=
     $form->write_trigger(\%myconfig, 2,
@@ -436,24 +441,15 @@ sub form_header {
 <body onLoad="$onload">
 
 <form method=post action=$form->{script}>
+|;
 
-<input type=hidden name=id value=$form->{id}>
-<input type=hidden name=title value="$form->{title}">
-<input type=hidden name=vc value="vendor">
-<input type=hidden name=type value=$form->{type}>
-<input type=hidden name=level value=$form->{level}>
-
-<input type=hidden name=creditlimit value=$form->{creditlimit}>
-<input type=hidden name=creditremaining value=$form->{creditremaining}>
-
-<input type=hidden name=closedto value=$form->{closedto}>
-<input type=hidden name=locked value=$form->{locked}>
+  $form->hide_form(qw(id title vc type level creditlimit creditremaining
+                      closedto locked shippted storno storno_id
+                      max_dunning_level dunning_amount));
 
-<input type=hidden name=shipped value=$form->{shipped}>
-<input type=hidden name=storno value=$form->{storno}>
-<input type=hidden name=storno_id value=$form->{storno_id}>
+  print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
 
-| . ($form->{saved_message} ? qq|<p>$form->{saved_message}</p>| : "") . qq|
+  print qq|
 
 <div class="listtop" width="100%">$form->{title}</div>
 
@@ -464,7 +460,7 @@ sub form_header {
         $vendors
         <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">
+        <input type="hidden" name="selectvendor" value= "$form->{selectvendor}">
         $contact
         <tr>
           <td align="right">| . $locale->text('Credit Limit') . qq|</td>
@@ -472,7 +468,7 @@ sub form_header {
         </tr>
              <tr>
                <th align="right">| . $locale->text('Record in') . qq|</th>
-               <td colspan="3"><select name="AP">$form->{selectAP}</select></td>
+               <td colspan="3"><select name="AP" style="width: 250px">$form->{selectAP}</select></td>
                <input type="hidden" name="selectAP" value="$form->{selectAP}">
              </tr>
               $taxzone
@@ -737,7 +733,9 @@ sub form_footer {
        </tr>
 |;
 
-  my @triggers = ();
+  my @triggers  = ();
+  my $totalpaid = 0;
+
   $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
   for $i (1 .. $form->{paidaccounts}) {
 
@@ -749,6 +747,8 @@ sub form_footer {
     $form->{"selectAP_paid_$i"} =~
       s/option>\Q$form->{"AP_paid_$i"}\E/option selected>$form->{"AP_paid_$i"}/;
 
+    $totalpaid += $form->{"paid_$i"};
+
     # format amounts
     if ($form->{"paid_$i"}) {
       $form->{"paid_$i"} =
@@ -792,7 +792,22 @@ sub form_footer {
     push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i");
   }
 
+  my $paid_missing = $form->{oldinvtotal} - $totalpaid;
+
   print qq|
+        <tr>
+          <td></td>
+          <td></td>
+          <td align="center">| . $locale->text('Total') . qq|</td>
+          <td align="center">| . H($form->format_amount(\%myconfig, $totalpaid, 2)) . qq|</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td align="center">| . $locale->text('Missing amount') . qq|</td>
+          <td align="center">| . H($form->format_amount(\%myconfig, $paid_missing, 2)) . qq|</td>
+        </tr>
+
            <input type=hidden name=oldinvtotal value=$form->{oldinvtotal}>
            <input type=hidden name=paidaccounts value=$form->{paidaccounts}>
            <input type=hidden name=selectAP_paid value="$form->{selectAP_paid}">
@@ -854,7 +869,12 @@ sub form_footer {
          . qq|">|;
   }
   # /button for saving history
-
+  # mark_as_paid button 
+  if($form->{id} ne "") {  
+    print qq|<input type="submit" class="submit" name="action" value="| 
+          . $locale->text('mark as paid') . qq|">|;
+  }
+  # /mark_as_paid button
 print qq|</form>
 
 </body>
@@ -864,6 +884,12 @@ print qq|</form>
   $lxdebug->leave_sub();
 }
 
+sub mark_as_paid {
+  $lxdebug->enter_sub();
+  &mark_as_paid_common(\%myconfig,"ap");  
+  $lxdebug->leave_sub();
+}
+
 sub update {
   $lxdebug->enter_sub();
 
@@ -1035,6 +1061,8 @@ sub use_as_template {
 
 sub post_payment {
   $lxdebug->enter_sub();
+
+  $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
   for $i (1 .. $form->{paidaccounts}) {
     if ($form->{"paid_$i"}) {
       $datepaid = $form->datetonum($form->{"datepaid_$i"}, \%myconfig);
@@ -1056,19 +1084,19 @@ sub post_payment {
   ($form->{AP})      = split /--/, $form->{AP};
   ($form->{AP_paid}) = split /--/, $form->{AP_paid};
   if (IR->post_payment(\%myconfig, \%$form)){
-       
-       if(!exists $form->{addition} && $form->{id} ne "") {
+       if (!exists $form->{addition} && $form->{id} ne "") {
                # saving the history
-      $form->{snumbers} = qq|invnumber_| . $form->{invnumber};  
+      $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!'));
+               # /saving the history
        }
+
+    $form->redirect($locale->text('Payment posted!'));
   }
-    $form->error($locale->text('Cannot post payment!'));
 
+  $form->error($locale->text('Cannot post payment!'));
 
   $lxdebug->leave_sub();
 }
@@ -1076,6 +1104,8 @@ sub post_payment {
 sub post {
   $lxdebug->enter_sub();
 
+  $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+
   $form->isblank("invdate", $locale->text('Invoice Date missing!'));
   $form->isblank("vendor",  $locale->text('Vendor missing!'));
 
@@ -1119,6 +1149,7 @@ sub post {
 
   ($form->{AP})      = split /--/, $form->{AP};
   ($form->{AP_paid}) = split /--/, $form->{AP_paid};
+  $form->{storno}    = 0;
 
   $form->{id} = 0 if $form->{postasnew};