<& /Elements/Header, Title => $title &> <& /Tools/Reports/Elements/Tabs, current_tab => "Tools/Reports/$thispage", Title => $title &>
<& /Elements/SelectDate, Name => "StartDate", ShowTime => 0, Default => '' &> <& /Elements/SelectDate, Name => "EndDate", ShowTime => 0, Default => '' &> <& /Elements/SelectBoolean, Name => "Detailed", True => "Full Details", False => "Summary", TrueVal => 'true', FalseVal => 'false', Default => $Detailed &> <& /Elements/SelectFromList, Name => 'ChartStyle', Default => $ChartStyle, Data => \@ChartList &> <& /Elements/Submit&>

<% $Report |n %>

<%args> $StartDate => undef $EndDate => undef $Detailed => 'false' $ChartStyle => 0 <%once> use Data::Dumper; use Date::Format; my $thispage = "WorkByClassification.html"; my $title = loc("Tickets worked on in one month, grouped by classification"); my @Months = qw(none January February March April May June July August September October November December); my @ChartList = qw(bars hbars pie points lines); <%init> # Generate a list of data my $dateobj = RT::Date->new($RT::SystemUser); my $cimg = ''; my %data; my $Report = ''; $ChartStyle = int($ChartStyle); # Make sure it's an integer! if ($StartDate or $EndDate) { if ($StartDate) { $dateobj->Set(Format => 'unknown', Value => "$StartDate 00:00:00UTC"); $StartDate = $dateobj->ISO(); } if ($EndDate) { $dateobj->Set(Format => 'unknown', Value => "$EndDate 00:00:00UTC"); $EndDate = $dateobj->ISO(); } my $CF = RT::CustomField->new($session{'CurrentUser'}); $CF->LoadByName(Name => 'Classification'); my $values = $CF->Values(); while (my $v = $values->Next()) { my $Tickets = RT::Tickets->new($session{'CurrentUser'}); if ($StartDate) { $Tickets->LimitTransactionDate(OPERATOR => '>', VALUE => $StartDate); } if ($EndDate) { $Tickets->LimitTransactionDate(OPERATOR => '<', VALUE => $EndDate); } $Tickets->LimitCustomField(CUSTOMFIELD => $CF->id, VALUE => $v->Name, OPERATOR => '='); if ($Detailed eq 'true') { $data{$v->Name} += $Tickets->Count; } else { $data{$v->Category} += $Tickets->Count; } } while (my ($key,$value) = each(%data)) { $cimg .= "&Keys=$key&Values=$value"; } if ($cimg) { $Report = "\n"; $Report .= "\n\n"; while (my ($key,$value) = each(%data)) { $Report .= "\n"; } $Report .= "
Group/ClassificationNumber of Tickets
" . $key . "" . $value . "
"; } } %# Local Variables: %# mode:perl %# End: