Skontobetraege wurden faelschlicherweise vom Nettobetrag berechnet
[kivitendo-erp.git] / bin / mozilla / ar.pl
index e2fcac3..11b73b2 100644 (file)
@@ -79,6 +79,7 @@ sub add {
     unless $form->{callback};
 
   &create_links;
+  AR->get_transdate(\%myconfig, $form);
   &display_form;
 
   $lxdebug->leave_sub();
@@ -121,7 +122,7 @@ sub create_links {
   $form->{rowcount}    = 1;
 
   # currencies
-  @curr = split /:/, $form->{currencies};
+  @curr = split(/:/, $form->{currencies});
   chomp $curr[0];
   $form->{defaultcurrency} = $curr[0];
 
@@ -251,9 +252,9 @@ sub create_links {
             "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
           $form->{"${key}_$i"} =
             "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
+          my $q_description = quotemeta($form->{acc_trans}{$key}->[$i-1]->{description});
           $form->{"select${key}"} =~
-            /<option value=\"($form->{acc_trans}{$key}->[$i-1]->{accno}--[^\"]*)\">$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}<\/option>\n/;
-          $test = $1;
+            /<option value=\"($form->{acc_trans}{$key}->[$i-1]->{accno}--[^\"]*)\">$form->{acc_trans}{$key}->[$i-1]->{accno}--${q_description}<\/option>\n/;
           $form->{"${key}_$k"} = $1;
           if ($akey eq 'amount') {
             $form->{"taxchart_$k"} = $form->{taxchart};
@@ -654,6 +655,7 @@ $jsscript
         </tr>
 ";
 
+  my @triggers = ();
   $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
   for $i (1 .. $form->{paidaccounts}) {
     print "
@@ -693,7 +695,8 @@ $jsscript
       qq|<td align=center><select name="AR_paid_$i">$form->{"selectAR_paid_$i"}</select></td>|;
     $column_data{exchangerate} = qq|<td align=center>$exchangerate</td>|;
     $column_data{datepaid}     =
-      qq|<td align=center><input name="datepaid_$i" size=11 value=$form->{"datepaid_$i"}></td>|;
+      qq|<td align=center><input name="datepaid_$i" size=11 value=$form->{"datepaid_$i"}>
+         <input type="button" name="datepaid_$i" id="trigger_datepaid_$i" value="?"></td>|;
     $column_data{source} =
       qq|<td align=center><input name="source_$i" size=11 value="$form->{"source_$i"}"></td>|;
     $column_data{memo} =
@@ -704,9 +707,12 @@ $jsscript
     print "
         </tr>
 ";
+    push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i");
   }
   map { $form->{$_} =~ s/\"/&quot;/g } qw(selectAR_paid);
-  print qq|
+
+  print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers) .
+    qq|
 <input type=hidden name=paidaccounts value=$form->{paidaccounts}>
 <input type=hidden name=selectAR_paid value="$form->{selectAR_paid}">
 
@@ -751,14 +757,14 @@ sub form_footer {
           <input class=submit type=submit name=action value="|
             . $locale->text('Delete') . qq|">
   |;
-  
+  }
       if ($transdate > $closedto) {
         print qq|
   <input class=submit type=submit name=action value="|
-          . $locale->text('Post as new') . qq|">
+          . $locale->text('Use As Template') . qq|">
   |;
       }
-    }
+    
   } else {
     if ($transdate > $closedto) {
       print qq|<input class=submit type=submit name=action value="|
@@ -969,6 +975,18 @@ sub post_as_new {
   $lxdebug->leave_sub();
 }
 
+sub use_as_template {
+  $lxdebug->enter_sub();
+
+  map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno);
+  $form->{paidaccounts} = 1;
+  $form->{rowcount}--;
+  $form->{invdate} = $form->current_date(\%myconfig);
+  &update;
+
+  $lxdebug->leave_sub();
+}
+
 sub delete {
   $lxdebug->enter_sub();
 
@@ -1284,9 +1302,11 @@ sub ar_transactions {
   }
 
   @columns = $form->sort_columns(
-    qw(transdate id invnumber ordnumber name netamount tax amount paid datepaid due duedate notes employee shippingpoint shipvia)
+    qw(transdate id type invnumber ordnumber name netamount tax amount paid datepaid due duedate notes employee shippingpoint shipvia)
   );
 
+  $form->{"l_type"} = "Y";
+
   foreach $item (@columns) {
     if ($form->{"l_$item"} eq "Y") {
       push @column_index, $item;
@@ -1314,6 +1334,8 @@ sub ar_transactions {
       "<th><a class=listheading href=$href&sort=duedate>"
     . $locale->text('Due Date')
     . "</a></th>";
+  $column_header{type} =
+      "<th class=\"listheading\">" . $locale->text('Type') . "</th>";
   $column_header{invnumber} =
       "<th><a class=listheading href=$href&sort=invnumber>"
     . $locale->text('Invoice')
@@ -1440,6 +1462,11 @@ sub ar_transactions {
 
     $column_data{invnumber} =
       "<td><a href=$module?action=edit&id=$ar->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ar->{invnumber}</a></td>";
+    $column_data{type} = "<td>" .
+      ($ar->{storno} ? $locale->text("Storno (one letter abbreviation)") :
+       $ar->{amount} < 0 ?
+       $locale->text("Credit note (one letter abbreviation)") :
+       $locale->text("Invoice (one letter abbreviation)")) . "</td>";
     $column_data{ordnumber} = "<td>$ar->{ordnumber}&nbsp;</td>";
     $column_data{name}      = "<td>$ar->{name}</td>";
     $ar->{notes} =~ s/\r\n/<br>/g;