surplus: Erfassungsdatum bei Stammdatensuche Kunden/Lieferanten ...
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Thu, 12 Feb 2015 08:25:00 +0000 (09:25 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Thu, 23 Apr 2015 16:03:31 +0000 (18:03 +0200)
... im Bericht anzeigen und danach filtern.

Conflicts:

SL/CT.pm
bin/mozilla/ct.pl
templates/webpages/ct/search.html

Übernahme aus Kundenprojekt.

SL/CT.pm
bin/mozilla/ct.pl
templates/webpages/ct/search.html

index 44adb40..8f8aa41 100644 (file)
--- a/SL/CT.pm
+++ b/SL/CT.pm
@@ -76,6 +76,7 @@ sub search {
       "city"               => "ct.city",
       "country"            => "ct.country",
       "discount"           => "ct.discount",
+      "insertdate"         => "ct.itime",
       "salesman"           => "e.name",
       "payment"            => "pt.description"
     );
@@ -92,7 +93,7 @@ sub search {
   }
   my $sortdir   = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
 
-  if ($sortorder !~ /(business|id|discount)/ && !$join_records) {
+  if ($sortorder !~ /(business|id|discount|itime)/ && !$join_records) {
     $sortorder  = "lower($sortorder) ${sortdir}";
   } else {
     $sortorder .= " ${sortdir}";
@@ -176,6 +177,16 @@ sub search {
     push(@values, conv_i($form->{salesman_id}));
   }
 
+  if($form->{insertdatefrom}) {
+    $where .= qq| AND (ct.itime::DATE >= ?)|;
+    push@values, conv_date($form->{insertdatefrom});
+  }
+
+  if($form->{insertdateto}) {
+    $where .= qq| AND (ct.itime::DATE <= ?)|;
+    push @values, conv_date($form->{insertdateto});
+  }
+
   # Nur Kunden finden, bei denen ich selber der Verkäufer bin
   # Gilt nicht für Lieferanten
   if ($cv eq 'customer' &&   !$main::auth->assert('customer_vendor_all_edit', 1)) {
@@ -203,7 +214,7 @@ sub search {
   }
 
   my $query =
-    qq|SELECT ct.*, b.description AS business, e.name as salesman, |.
+    qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
     qq|  pt.description as payment | .
     (qq|, NULL AS invnumber, NULL AS ordnumber, NULL AS quonumber, NULL AS invid, NULL AS module, NULL AS formtype, NULL AS closed | x!! $join_records) .
     qq|FROM $cv ct | .
@@ -223,7 +234,7 @@ sub search {
       push(@values, @saved_values);
       $query .=
         qq| UNION | .
-        qq|SELECT ct.*, b.description AS business, e.name as salesman, |.
+        qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
         qq|  pt.description as payment, | .
         qq|  a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, | .
         qq|  '$module' AS module, 'invoice' AS formtype, | .
@@ -240,7 +251,7 @@ sub search {
       push(@values, @saved_values);
       $query .=
         qq| UNION | .
-        qq|SELECT ct.*, b.description AS business, e.name as salesman, |.
+        qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
         qq|  pt.description as payment, | .
         qq|  ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
         qq|  'oe' AS module, 'order' AS formtype, o.closed | .
@@ -256,7 +267,7 @@ sub search {
       push(@values, @saved_values);
       $query .=
         qq| UNION | .
-        qq|SELECT ct.*, b.description AS business, e.name as salesman, | .
+        qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
         qq|  pt.description as payment, | .
         qq|  ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
         qq|  'oe' AS module, 'quotation' AS formtype, o.closed | .
index 5a2dbd6..f7cb99b 100644 (file)
@@ -160,11 +160,17 @@ sub list_names {
     }
   }
 
+  if ( $form->{insertdatefrom} or $form->{insertdateto} ) {
+    push @options, $locale->text('Insert Date');
+    push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{insertdatefrom}, 1) if $form->{insertdatefrom};
+    push @options, $locale->text('Bis')  . " " . $locale->date(\%myconfig, $form->{insertdateto},   1) if $form->{insertdateto};
+  };
+
   my @columns = (
     'id',        'name',    "$form->{db}number",   'contact',   'phone',    'discount',
     'fax',       'email',   'taxnumber',           'street',    'zipcode' , 'city',
     'business',  'payment', 'invnumber', 'ordnumber',           'quonumber', 'salesman',
-    'country'
+    'country',   'insertdate'
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
@@ -194,6 +200,7 @@ sub list_names {
     'salesman'          => { 'text' => $locale->text('Salesman'), },
     'discount'          => { 'text' => $locale->text('Discount'), },
     'payment'           => { 'text' => $locale->text('Payment Terms'), },
+    'insertdate'        => { 'text' => $locale->text('Insert Date'), },
     %column_defs_cvars,
   );
 
@@ -201,7 +208,7 @@ sub list_names {
 
   my @hidden_variables  = ( qw(
       db status obsolete name contact email cp_name addr_street addr_zipcode
-      addr_city addr_country business_id salesman_id
+      addr_city addr_country business_id salesman_id insertdateto insertdatefrom
     ), "$form->{db}number",
     map({ "cvar_$_->{name}" } @searchable_custom_variables),
     map({'cvar_'. $_->{name} .'_qtyop'} grep({$_->{type} eq 'number'} @searchable_custom_variables)),
index 933a7d1..21c86c0 100644 (file)
    </tr>
    [% END %]
 
+   <tr>
+    <th align="right">[% 'Insert Date' | $T8 %] [% 'From' | $T8 %]</th>
+    <td>
+      [% L.date_tag('insertdatefrom') %]
+    </td>
+    <th align="right">[% 'Bis' | $T8 %]</th>
+    <td>
+      [% L.date_tag('insertdateto') %]
+    </td>
+   </tr>
+
    [% CUSTOM_VARIABLES_FILTER_CODE %]
 
    <tr>
@@ -86,7 +97,7 @@
 
    <tr>
     <th align="right" nowrap>[% 'Include in Report' | $T8 %]</th>
-    <td>
+    <td colspan="5">
      <table border="0">
       <tr>
        <td>
         <input name="l_payment" id="l_payment" type="checkbox" class="checkbox" value="Y">
         <label for="l_payment">[% 'Payment Terms' | $T8 %]</label>
        </td>
+       <td>
+        <input name="l_insertdate" id="l_insertdate" class="checkbox" type="checkbox" value="Y">
+        <label for="l_insertdate">[% 'Insert Date' | $T8 %]</label>
+       </td>
       [% IF IS_CUSTOMER %]
       <td>
        <input name="l_salesman" id="l_salesman" type="checkbox" class="checkbox" value="Y">