date_range = parseReportDateRange();
if (request.date_range_type == "select_range")
client.date_range_label = "for the "+request.date_range_select+"
";
else if (request.date_range_type == "user_range")
client.date_range_label = "for "+request.from_date+" through "+
request.to_date+"
";
if (!(request.do_detail == "yes")) {
writeln(""+request.summary+" Summary Report
");
writeln("
");
writeln(client.date_range_label);
writeTableHeader(request.summary,(request.summary != "Project"))
if (request.summary == "Employee")
writeReport("select id,fullname,firstname,lastname from user order by "+
"lastname,firstname", "select sum(hours),billable from "+
"hours,project where project_id=project.id and user_id=",
date_range,true);
if (request.summary == "Group")
writeReport("select id,name from group order by name",
"select sum(hours),billable from hours,project,group_people "+
"where project_id=project.id and hours.user_id=group_people.user_id "+
"and group_id=",date_range,true);
if (request.summary == "Project")
writeReport("select id,name from project order by name",
"select sum(hours),billable from hours,project where "+
"project_id=project.id and project_id=",date_range,false);
if (request.summary == "Category")
writeReport("select id,name from category order by name",
"select sum(hours),billable from hours,project,category where "+
"project_id=project.id and category_id=category.id and category_id=",
date_range,true);
writeln("");
}
else if (request.do_detail == "yes") {
item = request[request.detail];
if (request.detail == "Employee")
query = database.cursor("select fullname from user where id="+item);
else
query = database.cursor("select name from "+request.detail.toLowerCase()+
" where id="+item);
if (! query.next())
redirect("db_down.html");
item_name = query[0] + " ";
query.close();
group_by = request[request.detail+"_by"];
if (group_by == "All") group_by = "All Entries";
multi_hrs_col = (! (request.detail == "Project" || group_by == "Project" || group_by == "Date"));
writeln("
"+request.detail+" Detail Report
");
writeln(client.date_range_label);
writeln("
");
writeln("
"+item_name+"
");
if (group_by != "All Entries")
writeTableHeader(group_by, multi_hrs_col);
if (request.detail == "Employee") {
from_add = "";
where_add = " hours.user_id="+item+" and ";
}
if (request.detail == "Group") {
from_add = ",group_people ";
where_add = "hours.user_id=group_people.user_id and group_id="+item+" and ";
}
if (request.detail == "Project") {
from_add = "";
where_add = "project_id="+item+" and ";
}
if (request.detail == "Category") {
from_add = "";
where_add = " category_id="+item+" and ";
}
if (group_by == "Employee") {
if (request.detail == "Group")
writeReport("select id,fullname,firstname,lastname from "+
"user,group_people where active='Y' and id=group_people.user_id "+
"and group_id="+item+" order by lastname,firstname",
"select sum(hours),billable from hours,project"+from_add+
" where project_id=project.id and "+where_add+" hours.user_id=",
date_range,multi_hrs_col);
else
writeReport("select id,fullname,firstname,lastname from user order by "+
"lastname,firstname", "select sum(hours),billable from hours,project"+
from_add+" where project_id=project.id and "+where_add+
" hours.user_id=",date_range,multi_hrs_col);
}
if (group_by == "Group")
writeReport("select id,name from group order by name",
"select sum(hours),billable from hours,project,group_people"+from_add+
" where project_id=project.id and hours.user_id=group_people.user_id"+
" and "+where_add+" group_id=",date_range,multi_hrs_col);
if (group_by == "Project")
writeReport("select id,name from project order by name",
"select sum(hours),billable from hours,project"+from_add+
" where project_id=project.id and "+where_add+" project_id=",
date_range,false);
if (group_by == "Category")
writeReport("select id,name from category order by name",
"select sum(hours),billable from hours,project"+from_add+
" where project_id=project.id and "+where_add+" category_id=",
date_range,multi_hrs_col);
if (group_by == "Date")
writeDateReport(from_add,where_add,date_range);
if (group_by == "All Entries")
writeAllEntriesReport(item,date_range);
if (group_by != "All Entries")
writeln("");
}