import rt 3.8.8
[freeside.git] / rt / lib / RT / Report / Tickets / Entry.pm
index 49c1a92..78e4cab 100644 (file)
@@ -52,6 +52,33 @@ use base qw/RT::Record/;
 # XXX TODO: how the heck do we acl a report?
 sub CurrentUserHasRight {1}
 
+=head2 LabelValue
+
+If you're pulling a value out of this collection and using it as a label,
+you may want the "cleaned up" version.  This includes scrubbing 1970 dates
+and ensuring that dates are in local not DB timezones.
+
+=cut
+
+sub LabelValue {
+    my $self  = shift;
+    my $field = shift;
+    my $value = $self->__Value( $field );
+
+    if ( $field =~ /(Daily|Monthly|Annually|Hourly)$/ ) {
+        my $re;
+        # it's not just 1970-01-01 00:00:00 because of timezone shifts
+        # and conversion from UTC to user's TZ
+        $re = qr{19(?:70-01-01|69-12-31) [0-9]{2}} if $field =~ /Hourly$/;
+        $re = qr{19(?:70-01-01|69-12-31)} if $field =~ /Daily$/;
+        $re = qr{19(?:70-01|69-12)} if $field =~ /Monthly$/;
+        $re = qr{19(?:70|69)} if $field =~ /Annually$/;
+        $value =~ s/^$re/Not Set/;
+    }
+
+    return $value;
+}
+
 eval "require RT::Report::Tickets::Entry_Vendor";
 if ($@ && $@ !~ qr{^Can't locate RT/Report/Tickets/Entry_Vendor.pm}) {
     die $@;