Whitespace.
[kivitendo-erp.git] / bin / mozilla / ir.pl
index 2858e22..440ee6e 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,20 +391,27 @@ 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");
 
   my $follow_up_vc         =  $form->{vendor};
-  $follow_up_vc            =~ s/--.*?//;
+  $follow_up_vc            =~ s/--\d*\s*$//;
   my $follow_up_trans_info =  "$form->{invnumber} ($follow_up_vc)";
 
   $form->{javascript} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
@@ -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;
 
@@ -816,7 +826,7 @@ sub form_footer {
 |;
 
   if ($form->{id}) {
-    my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap");
+    my $show_storno = !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && (($totalpaid == 0) || ($totalpaid eq ""));
 
     print qq|<input class=submit type=submit name=action value="|
       . $locale->text('Post Payment') . qq|">
@@ -847,7 +857,7 @@ sub form_footer {
   }
 
   print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers);
-  $form->hide_form(qw(rowcount callback draft_id draft_description));
+  $form->hide_form(qw(rowcount callback draft_id draft_description vendor_discount));
 
   # button for saving history
   if($form->{id} ne "") {
@@ -859,14 +869,13 @@ 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
 print qq|</form>
-
 </body>
 </html>
 |;
@@ -879,7 +888,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();
 }
@@ -931,6 +940,9 @@ sub update {
         # override sellprice if there is one entered
         $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
 
+       # ergaenzung fuer bug 736 Lieferanten-Rabatt auch in Einkaufsrechnungen vorbelegen jb
+        $form->{"discount_$i"} = $form->format_amount(\%myconfig, 
+                                                     $form->{vendor_discount} * 100 );
         map { $form->{item_list}[$i]{$_} =~ s/\"/&quot;/g } qw(partnumber description unit);
         map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] };
 
@@ -996,15 +1008,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 +1055,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}
@@ -1100,7 +1112,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});
@@ -1112,7 +1124,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}
@@ -1125,7 +1137,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};
 
@@ -1134,7 +1146,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));
@@ -1194,14 +1206,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();
+}