#!/usr/bin/perl -w
#
#
# This is the HTML form for selecting projects for QA Metrics
#
use lib qw(/tools/local/lib/perl5);
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use GD::Graph::linespoints;
$cgi= new CGI;
my @timedata = localtime(time);
#print "Content-type: text/html\n\n";
#print "@timedata[0]\n, @timedata[1]\n, @timedata[2]\n,@timedata[3]\n,@timedata[4]\n,@timedata[5]\n,@timedata[6]";
$day = @timedata[3];
$month = @timedata[4] + 1;
$year = 1900 + @timedata[5];
$def_start_date = '31/3/2009';
$today_date = join('/',$day,$month,$year);
$def_end_date = $today_date;
#print "Content-type: text/html\n\n";
#print "$def_end_date";
if (!$cgi->param) {
print $cgi->header;
print $cgi->start_html(-title=>'Project Selection', -style => {'src'=>'http://wwwin.telegent.com/sqametrics/style1.css'});
print $cgi->startform;
print $cgi->h3('Select Project to view QA Metrics');
print $cgi->br;
print $cgi->br;
print "Enter Start Date [dd/mm/yyyy]
";
print $cgi->textfield(-name=>'start_date',
-default=>$def_start_date,
-size=>9,
-maxlength=>80);
print $cgi->br;
print $cgi->br;
print "Enter End Date [dd/mm/yyyy]
";
print $cgi->textfield(-name=>'end_date',
-default=>$def_end_date,
-override=>true,
-size=>9,
-maxlength=>80);
print $cgi->br;
print $cgi->br;
print $cgi->br;
print "Select Project and DataType to View QA Metrics
";
print $cgi->br;
print $cgi->scrolling_list(-name=>'Projects',
-value=>[
'ARES',
'POSEIDON_SW',
'DEIMOS',
'MIMAS',
'JUPITER',
'POSEIDON',
'DIONYSUS'],
-size=>7,
-multiple=>'false',
-default=>'ARES');
print $cgi->br;
print $cgi->br;
print $cgi->br;
print "Select Check Box for Plotting Verified, Closed Bug Data
";
print $cgi->br;
print $cgi->checkbox(-name=>'verified_closed',
-checked=>0,
-value=> 'verified-closed');
print $cgi->br;
print $cgi->br;
print "Select from P1, P2, or P1+P2 Bugs Data
";
print $cgi->br;
print $cgi->radio_group(-name=>'P1P2_bugs',
-values=> ['P1', 'P2','P1-P2','Daily-Snapshot'],
-default=>['P1'],
-linebreak=>'true');
print $cgi->br;
print $cgi->submit(-value=>'Submit Project');
print $cgi->endform;
print $cgi->end_html;
}
else {
my $start_date = param('start_date');
my $end_date = param('end_date');
my $error_msg = "";
my $error_msg = &validate_date($start_date, $end_date, $today_date);
#print "Content-type: text/html\n\n";
#print $today_date;
# my $error_msg = "";
# if (!$start_date){
# $error_msg1 = "The Start Date Field is Blank. Please use Browser Back button and enter a Valid Start Date"};
# if (!$end_date){
# $error_msg2 = "The End Date Field is Blank. Please use Browser Back button and enter a Valid End Date"};
#
if(!$error_msg) {
#my $start_date_newfrmt = &date_format($start_date);
my @date_array = split(/\//, $start_date);
my $start_date_newfrmt = join('-', @date_array[2], @date_array[1], @date_array[0]);
my @date_array1 = split(/\//, $end_date);
my $end_date_newfrmt = join('-', @date_array1[2], @date_array1[1], @date_array1[0]);
my @selected = param('Projects');
my $turned_on = param('verified_closed');
#print "Content-type: text/html\n\n";
#print $turned_on;
my $which_radio_button = param('P1P2_bugs');
#
#Decide the rec_type based on the Radio button selection
if ($which_radio_button eq 'P1') {
$rec_type= '3';
$y_label = 'Open P1 Bugs';
} elsif ($which_radio_button eq 'P2') {
$rec_type = '4';
$y_label = 'Open P2 Bugs';
} elsif ($which_radio_button eq 'P1-P2') {
$rec_type = '2';
$y_label = 'Open P1-P2 Bugs';
} elsif ($which_radio_button eq 'Daily-Snapshot') {
$rec_type = '1';
$y_label = 'Daily-Snapshot';
};
my $project_name1 = @selected[0];
my $num_selected = @selected;
#
# Check what data types are selcted and set flags for plotting the data
#
#print "Content-type: text/html\n\n";
#print @selected[0],@turned_on[0], $new_flag, $open_flag, $reopen_flag, $closed_flag;
my $dbh = DBI->connect('dbi:mysql:bugz:bugzilla.telegent.com:3306', 'swqa', 'sImANten') or die "Connection Error: $DBI::errstr\n";
my $sql = "Select log_date, new_cnt, open_cnt, reopen_cnt, fixed_cnt, verified_cnt, closed_cnt from swqa.Poseidon where product like '%$project_name1%' and rec_type='$rec_type' and log_date between '$start_date_newfrmt' and '$end_date_newfrmt'";
my $sth = $dbh->prepare($sql);
$sth->execute or die "SQL Error: $DBI::errstr\n";
my @log_date = ();
my @new_bugs = ();
my @open_bugs = ();
my @reopen_bugs = ();
my @fixed_bugs = ();
my @verified_bugs = ();
my @closed_bugs = ();
while (my @row = $sth->fetchrow_array) {
# print "