Whitespace Purge
[kivitendo-erp.git] / bin / mozilla / ir.pl
index 239a859..6c9c8a8 100644 (file)
@@ -71,7 +71,7 @@ sub edit {
   # show history button
   $form->{javascript} = qq|<script type=text/javascript src=js/show_history.js></script>|;
   #/show hhistory button
-  
+
   $form->{title} = $locale->text('Edit Vendor Invoice');
 
   &invoice_links;
@@ -116,7 +116,7 @@ sub invoice_links {
   IR->get_vendor(\%myconfig, \%$form);
   IR->retrieve_invoice(\%myconfig, \%$form);
   $form->{cp_id} = $cp_id;
+
   if ($payment_id) {
     $form->{payment_id} = $payment_id;
   }
@@ -226,6 +226,8 @@ sub form_header {
 
   $auth->assert('vendor_invoice_edit');
 
+  push @{ $form->{AJAX} }, CGI::Ajax->new('set_duedate_vendor' => "$form->{script}?action=set_duedate_vendor");
+
   # set option selected
   foreach $item (qw(AP vendor currency department)) {
     $form->{"select$item"} =~ s/ selected//;
@@ -291,7 +293,7 @@ sub form_header {
   }
   my $globalprojectnumber = NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values, '-labels' => \%labels,
                                                  '-default' => $form->{"globalproject_id"}));
+
   %labels = ();
   @values = ();
   my $i = 0;
@@ -299,7 +301,7 @@ sub form_header {
     push(@values, $item);
     $labels{$item} = $item;
   }
-  
+
   $form->{currency} = $form->{defaultcurrency} unless $form->{currency};
   my $currencies;
   if (scalar @values) {
@@ -345,7 +347,7 @@ sub form_header {
               : (NTI($cgi->popup_menu('-name' => 'vendor', '-default' => $form->{oldvendor},
                                       '-onChange' => 'document.getElementById(\'update_button\').click();',
                                       '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')))) . qq|
-        <input type="button" value="?" onclick="show_vc_details('vendor')">
+        <input type="button" value="| . $locale->text('Details (one letter abbreviation)') . qq|" onclick="show_vc_details('vendor')">
       </td>|;
 
   %labels = ();
@@ -389,15 +391,22 @@ sub form_header {
   $jsscript = "";
 
   $button1 = qq|
-     <td><input name=invdate id=invdate size=11 title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\">
-         <input type=button name=invdate id="trigger1" value=| . $locale->text('button') . qq|></td>\n|;
+     <td nowrap>
+         <input name=invdate id=invdate size=11 title="$myconfig{dateformat}" value="$form->{invdate}" onBlur=\"check_right_date_format(this)\"
+                onChange="if (this.value) set_duedate_vendor(['invdate__' + this.value, 'old_duedate__' + document.getElementsByName('duedate')[0].value, 'vendor_id__' + document.getElementsByName('vendor_id')[0].value],['duedate'])">
+         <input type=button name=invdate id="trigger1" value="?">
+     </td>\n|;
+
+#, 'old_duedate__'' + document.getElementsByName('duedate')[0].value, 'vendor_id__' + document.getElementsByName('vendor_id')[0].value],['duedate'])">
   $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 id="trigger2" value=| . $locale->text('button') . qq|></td>\n|;
+     <td width="13" nowrap>
+          <input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value="$form->{duedate}"  onBlur=\"check_right_date_format(this)\">
+          <input type=button name=duedate id="trigger2" value=| . $locale->text('button') . qq|>
+     </td>\n|;
 
   #write Trigger
   $jsscript =
-    Form->write_trigger(\%myconfig, "2", 
+    Form->write_trigger(\%myconfig, "2",
                         "invdate", "BL", "trigger1",
                         "duedate", "BL", "trigger2");
 
@@ -418,13 +427,14 @@ sub form_header {
   $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
   print qq|
 <body onLoad="$onload">
-
-<form method=post action=$form->{script}>
+<script type="text/javascript" src="js/common.js"></script>
+<form method="post" action="ir.pl" name="Form">
 |;
 
   $form->hide_form(qw(id title vc type level creditlimit creditremaining closedto locked shippted storno storno_id
                       max_dunning_level dunning_amount vendor_id oldvendor selectvendor taxaccounts
-                      fxgain_accno fxloss_accno taxpart taxservice),
+                      fxgain_accno fxloss_accno taxpart taxservice cursor_fokus
+                      convert_from_oe_ids convert_from_do_ids),
                       map { $_.'_rate', $_.'_description' } split / /, $form->{taxaccounts} );
 
   print qq|<p>$form->{saved_message}</p>| if $form->{saved_message};
@@ -459,7 +469,7 @@ sub form_header {
          <td align=right>
            <table>
      $employees
-             <tr>   
+             <tr>
                <th align=right nowrap>| . $locale->text('Invoice Number') . qq|</th>
                <td><input name=invnumber size=11 value="$form->{invnumber}"></td>
              </tr>
@@ -767,9 +777,9 @@ sub form_footer {
       qq|<td align=center><input name="datepaid_$i" id="datepaid_$i" size=11 title="$myconfig{dateformat}" value="$form->{"datepaid_$i"}" onBlur=\"check_right_date_format(this)\">
          <input type="button" name="datepaid_$i" id="trigger_datepaid_$i" value="?"></td>|;
     $column_data{"source_$i"} =
-      qq|<td align=center><input name="source_$i" size=11 value=$form->{"source_$i"}></td>|;
+      qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
     $column_data{"memo_$i"} =
-      qq|<td align=center><input name="memo_$i" size=11 value=$form->{"memo_$i"}></td>|;
+      qq|<td align=center><input name="memo_$i" size=11 value="$form->{"memo_$i"}"></td>|;
 
     map { print qq|$column_data{"${_}_$i"}\n| } @column_index;
 
@@ -859,9 +869,9 @@ 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="| 
+  # 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
@@ -879,7 +889,7 @@ sub mark_as_paid {
 
   $auth->assert('vendor_invoice_edit');
 
-  &mark_as_paid_common(\%myconfig,"ap");  
+  &mark_as_paid_common(\%myconfig,"ap");
 
   $lxdebug->leave_sub();
 }
@@ -893,14 +903,14 @@ sub update {
 
   &check_name(vendor);
 
-  $form->{exchangerate} = $exchangerate if
-    $form->{forex} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'sell');
+  $form->{forex}        = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'sell');
+  $form->{exchangerate} = $form->{forex} if $form->{forex};
 
   for $i (1 .. $form->{paidaccounts}) {
     next unless $form->{"paid_$i"};
     map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(paid exchangerate);
-    $form->{"exchangerate_$i"} = $exchangerate if
-      $form->{"forex_$i"} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'sell');
+    $form->{"forex_$i"}        = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'sell');
+    $form->{"exchangerate_$i"} = $form->{"forex_$i"} if $form->{"forex_$i"};
   }
 
   $i            = $form->{rowcount};
@@ -996,15 +1006,15 @@ sub storno {
   # Payments must not be recorded for the new storno invoice.
   $form->{paidaccounts} = 0;
   map { my $key = $_; delete $form->{$key} if grep { $key =~ /^$_/ } qw(datepaid_ source_ memo_ paid_ exchangerate_ AR_paid_) } keys %{ $form };
-  
+
   # saving the history
   if(!exists $form->{addition} && $form->{id} ne "") {
-    $form->{snumbers} = qq|invnumber_| . $form->{invnumber};  
+    $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} = "";
@@ -1043,7 +1053,7 @@ sub post_payment {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
@@ -1081,8 +1091,9 @@ sub post {
 
   $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
 
-  $form->isblank("invdate", $locale->text('Invoice Date missing!'));
-  $form->isblank("vendor",  $locale->text('Vendor missing!'));
+  $form->isblank("invdate",   $locale->text('Invoice Date missing!'));
+  $form->isblank("vendor",    $locale->text('Vendor missing!'));
+  $form->isblank("invnumber", $locale->text('Invnumber missing!'));
 
   $form->{invnumber} =~ s/^\s*//g;
   $form->{invnumber} =~ s/\s*$//g;
@@ -1099,7 +1110,7 @@ sub post {
   $invdate  = $form->datetonum($form->{invdate},  \%myconfig);
 
   $form->error($locale->text('Cannot post invoice for a closed period!'))
-    if ($invdate <= $closedto);
+    if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
   $form->isblank("exchangerate", $locale->text('Exchangerate missing!'))
     if ($form->{currency} ne $form->{defaultcurrency});
@@ -1111,7 +1122,7 @@ sub post {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
@@ -1124,7 +1135,7 @@ sub post {
 
   ($form->{AP})      = split /--/, $form->{AP};
   ($form->{AP_paid}) = split /--/, $form->{AP_paid};
-  $form->{storno}    = 0;
+  $form->{storno}  ||= 0;
 
   $form->{id} = 0 if $form->{postasnew};
 
@@ -1133,7 +1144,7 @@ sub post {
   if (IR->post_invoice(\%myconfig, \%$form)){
        # saving the history
        if(!exists $form->{addition} && $form->{id} ne "") {
-      $form->{snumbers} = qq|invnumber_| . $form->{invnumber};  
+      $form->{snumbers} = qq|invnumber_| . $form->{invnumber};
       $form->{addition} = "POSTED";
                #$form->{what_done} = $locale->text("Rechnungsnummer") . qq| | . $form->{invnumber};
                $form->save_history($form->dbconnect(\%myconfig));
@@ -1193,14 +1204,24 @@ sub yes {
   if (IR->delete_invoice(\%myconfig, \%$form)) {
     # saving the history
     if(!exists $form->{addition}) {
-      $form->{snumbers} = qq|invnumber_| . $form->{invnumber};  
+      $form->{snumbers} = qq|invnumber_| . $form->{invnumber};
          $form->{addition} = "DELETED";
          $form->save_history($form->dbconnect(\%myconfig));
     }
-    # /saving the history 
+    # /saving the history
     $form->redirect($locale->text('Invoice deleted!'));
   }
   $form->error($locale->text('Cannot delete invoice!'));
 
   $lxdebug->leave_sub();
 }
+
+sub set_duedate_vendor {
+  $lxdebug->enter_sub();
+
+  print $form->ajax_response_header(), IR->get_duedate('vendor_id' => $form->{vendor_id},
+                                                       'invdate'   => $form->{invdate},
+                                                       'default'   => $form->{old_duedate});
+
+  $lxdebug->leave_sub();
+}