import torrus 1.0.9
[freeside.git] / rt / lib / RT / Report / Tickets / Entry.pm
index e06fa8c..78e4cab 100644 (file)
@@ -1,8 +1,8 @@
 # BEGIN BPS TAGGED BLOCK {{{
 # 
 # COPYRIGHT:
-#  
-# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC 
+# 
+# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
 #                                          <jesse@bestpractical.com>
 # 
 # (Except where explicitly superseded by other copyright notices)
 # those contributions and any derivatives thereof.
 # 
 # END BPS TAGGED BLOCK }}}
+
 package RT::Report::Tickets::Entry;
 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 $@;
+};
+
+eval "require RT::Report::Tickets::Entry_Local";
+if ($@ && $@ !~ qr{^Can't locate RT/Report/Tickets/Entry_Local.pm}) {
+    die $@;
+};
 
 1;