Benutzerdefinierte Variablen für Projekte implementiert.
[kivitendo-erp.git] / bin / mozilla / ar.pl
index 88a9b97..e057163 100644 (file)
@@ -261,13 +261,8 @@ sub form_header {
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
 
-  $form->{exchangerate} = $exchangerate
-    if (
-        $form->{forex} = (
-                     $exchangerate =
-                       $form->check_exchangerate(
-                       \%myconfig, $form->{currency}, $form->{transdate}, 'buy'
-                       )));
+  $form->{forex}        = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{transdate}, 'buy');
+  $form->{exchangerate} = $form->{forex} if $form->{forex};
 
   # format amounts
   $form->{exchangerate} =
@@ -961,13 +956,8 @@ sub update {
   $form->{rowcount} = $count + 1;
   map { $form->{invtotal} += $form->{"amount_$_"} } (1 .. $form->{rowcount});
 
-  $form->{exchangerate} = $exchangerate
-    if (
-        $form->{forex} = (
-                     $exchangerate =
-                       $form->check_exchangerate(
-                       \%myconfig, $form->{currency}, $form->{transdate}, 'buy'
-                       )));
+  $form->{forex}        = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{transdate}, 'buy');
+  $form->{exchangerate} = $form->{forex} if $form->{forex};
 
   $form->{invdate} = $form->{transdate};
   my $save_AR = $form->{AR};
@@ -986,13 +976,8 @@ sub update {
 
       $totalpaid += $form->{"paid_$i"};
 
-      $form->{"exchangerate_$i"} = $exchangerate
-        if (
-            $form->{"forex_$i"} = (
-                 $exchangerate =
-                   $form->check_exchangerate(
-                   \%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'buy'
-                   )));
+      $form->{"forex_$i"}        = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'buy');
+      $form->{"exchangerate_$i"} = $form->{"forex_$i"} if $form->{"forex_$i"};
     }
   }
 
@@ -1024,7 +1009,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);
+      $form->error($locale->text('Cannot post payment for a closed period!')) if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
 #        $form->{"exchangerate_$i"} = $form->{exchangerate} if ($invdate == $datepaid);
@@ -1065,7 +1050,7 @@ sub post {
 
   my $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
   my $transdate = $form->datetonum($form->{transdate}, \%myconfig);
-  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
 
   $form->error($locale->text('Zero amount posting!')) 
     unless grep $_*1, map $form->parse_amount(\%myconfig, $form->{"amount_$_"}), 1..$form->{rowcount};
@@ -1082,7 +1067,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} if ($transdate == $datepaid);
@@ -1392,7 +1377,7 @@ sub search {
              <tr>
                <td align=right><input name="l_notes" class=checkbox type=checkbox value=Y></td>
                <td nowrap>| . $locale->text('Notes') . qq|</td>
-               <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+               <td align=right><input name="l_salesman" class=checkbox type=checkbox value=Y></td>
                <td nowrap>| . $locale->text('Salesperson') . qq|</td>
                <td align=right><input name="l_shippingpoint" class=checkbox type=checkbox value=Y></td>
                <td nowrap>| . $locale->text('Shipping Point') . qq|</td>
@@ -1400,10 +1385,12 @@ sub search {
                <td nowrap>| . $locale->text('Ship via') . qq|</td>
              </tr>
              <tr>
-               <td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td><td> |
-    .             $locale->text('Ertrag') . qq|</td>
-               <td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td><td> |
-    .             $locale->text('Ertrag prozentual') . qq|</td>
+               <td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td>
+                <td nowrap> | . $locale->text('Ertrag') . qq|</td>
+               <td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td>
+                <td nowrap> | . $locale->text('Ertrag prozentual') . qq|</td>
+               <td align=right><input name="l_employee" class=checkbox type=checkbox value=Y></td>
+               <td nowrap>| . $locale->text('Employee') . qq|</td>
              </tr>
              <tr>
                <td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
@@ -1470,7 +1457,7 @@ sub ar_transactions {
   $form->{customer} = $form->unescape($form->{customer});
   ($form->{customer}, $form->{customer_id}) = split(/--/, $form->{customer});
 
-  $form->{sort} ||= 'transdate';
+  report_generator_set_default_sort('transdate', 1);
 
   AR->ar_transactions(\%myconfig, \%$form);
 
@@ -1480,7 +1467,7 @@ sub ar_transactions {
 
   @columns =
     qw(transdate id type invnumber ordnumber name netamount tax amount paid
-       datepaid due duedate transaction_description notes employee shippingpoint shipvia
+       datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia
        marge_total marge_percent globalprojectnumber);
 
   my @hidden_variables = map { "l_${_}" } @columns;
@@ -1504,7 +1491,8 @@ sub ar_transactions {
     'duedate'                 => { 'text' => $locale->text('Due Date'), },
     'transaction_description' => { 'text' => $locale->text('Transaction description'), },
     'notes'                   => { 'text' => $locale->text('Notes'), },
-    'employee'                => { 'text' => $locale->text('Salesperson'), },
+    'salesman'                => { 'text' => $locale->text('Salesperson'), },
+    'employee'                => { 'text' => $locale->text('Employee'), },
     'shippingpoint'           => { 'text' => $locale->text('Shipping Point'), },
     'shipvia'                 => { 'text' => $locale->text('Ship via'), },
     'globalprojectnumber'     => { 'text' => $locale->text('Project Number'), },
@@ -1512,9 +1500,9 @@ sub ar_transactions {
     'marge_percent'           => { 'text' => $locale->text('Ertrag prozentual'), },
   );
 
-  foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid
-                       employee shippingpoint shipvia)) {
-    $column_defs{$name}->{link} = $href . "&sort=$name";
+  foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid employee shippingpoint shipvia)) {
+    my $sortdir                 = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
+    $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
   }
 
   my %column_alignment = map { $_ => 'right' } qw(netamount tax amount paid due);
@@ -1527,7 +1515,7 @@ sub ar_transactions {
 
   $report->set_export_options('ar_transactions', @hidden_variables);
 
-  $report->set_sort_indicator($form->{sort}, 1);
+  $report->set_sort_indicator($form->{sort}, $form->{sortdir});
 
   my @options;
   if ($form->{customer}) {