if ($isadmin == 1) {
$result = mysql_query('SELECT p.id, p.name FROM project p WHERE p.status = 0 ORDER BY p.name');
} else {
$result = mysql_query('SELECT p.id, p.name FROM project p, userpermissions u WHERE u.userid=' . $userid . ' AND u.project=p.id AND p.status = 0 ORDER BY p.name');
}
if (mysql_num_rows($result) == 0) {
?>
Sorry, but you don't have access to any projects.
} else {
?>
Please select a project to enter time:
while ($row = mysql_fetch_assoc($result)) {
altrows();
?>
foot();
} else if ($_REQUEST['do'] == 'viewco') {
if (preg_match("/[^0-9]/", $_REQUEST['project']) > 0) {
?>Invalid project ID
exit;
}
head();
nav();
$projresult = mysql_query('SELECT p.name, p.status, p.id FROM project p WHERE p.status = 0 AND p.id=' . $_REQUEST['project']);
$projrow = mysql_fetch_assoc($projresult);
$page = $projrow['name'];
breadcrumb();
?>
=$projrow['name']?>
$result = mysql_query('SELECT c.id, c.name, c.status FROM company c WHERE c.status = 0 AND c.project=' . $_REQUEST['project'] . ' ORDER BY c.name');
if (mysql_num_rows($result) == 0) {
?>
Sorry, but there are no companies assigned to the ' echo $projrow['name']; ?>' project.
} else {
?>
Please select a company to enter time:
while ($row = mysql_fetch_assoc($result)) {
altrows();
?>
foot();
}
else if ($_REQUEST['do'] == 'viewtime') {
if (preg_match("/[^0-9]/", $_REQUEST['project']) > 0) {
?>Invalid project ID
exit;
}
if (preg_match("/[^0-9]/", $_REQUEST['company']) > 0) {
?>Invalid company ID
exit;
}
head();
nav();
$projresult = mysql_query('SELECT p.name, p.id, p.status FROM project p WHERE p.status = 0 AND p.id=' . $_REQUEST['project']);
$projrow = mysql_fetch_assoc($projresult);
$compresult = mysql_query('SELECT c.name, c.id, c.status FROM company c WHERE c.status = 0 AND c.id=' . $_REQUEST['company']);
$comprow = mysql_fetch_assoc($compresult);
$secondarypage = '' . $projrow['name'] . '';
$page = $comprow['name'];
breadcrumb();
?>
Time Entry for echo $projrow['name']; ?> : echo $comprow['name']; ?>
Please select a date to add time for:
foot();
}
else if ($_REQUEST['do'] == 'entertime') {
head();
nav();
$projresult = mysql_query('SELECT p.id, p.name FROM project p WHERE p.id=' . $_REQUEST['project']);
$projrow = mysql_fetch_assoc($projresult);
$compresult = mysql_query('SELECT c.name FROM company c WHERE c.id=' . $_REQUEST['company']);
$comprow = mysql_fetch_assoc($compresult);
$secondarypage = '' . $projrow['name'] . '';
$page = 'Enter time for ' . $comprow['name'];
breadcrumb();
?>
Timecard for echo date('l, F j, Y',strtotime($_REQUEST['date'])); ?>
if ($_REQUEST['doentertime'] == 1) {
// we're making a time entry
// make sure our data is valid
$error = 0;
if (preg_match("/[^0-9]/", $_REQUEST['start_hr']) > 0) $error = 1;
if (preg_match("/[^0-9]/", $_REQUEST['start_min']) > 0) $error = 1;
if (preg_match("/[^0-9]/", $_REQUEST['finish_hr']) > 0) $error = 1;
if (preg_match("/[^0-9]/", $_REQUEST['finish_min']) > 0) $error = 1;
if ($_REQUEST['start_hr'] < 1 || $_REQUEST['start_hr'] > 12) $error = 1;
if ($_REQUEST['finish_hr'] < 1 || $_REQUEST['finish_hr'] > 12) $error = 1;
if ($_REQUEST['start_min'] < 0 || $_REQUEST['start_min'] > 59) $error = 1;
if ($_REQUEST['finish_min'] < 0 || $_REQUEST['finish_min'] > 59) $error = 1;
// this needs a check to make sure that the employee in question doesn't already have
// a time record that conflicts
if ($error == 0) {
// now convert 12 hour to 24 hour
if ($_REQUEST['start_hr'] == 12 && $_REQUEST['start_ampm'] == 'am') $_REQUEST['start_hr'] = 0;
if ($_REQUEST['start_hr'] < 12 && $_REQUEST['start_ampm'] == 'pm') $_REQUEST['start_hr'] = $_REQUEST['start_hr'] + 12;
if ($_REQUEST['finish_hr'] == 12 && $_REQUEST['finish_ampm'] == 'am') $_REQUEST['finish_hr'] = 0;
if ($_REQUEST['finish_hr'] < 12 && $_REQUEST['finish_ampm'] == 'pm') $_REQUEST['finish_hr'] = $_REQUEST['finish_hr'] + 12;
// we can insert our data
$update = mysql_query('INSERT INTO timecard(employee, company, start, finish, code, enteredby, notes) VALUES(' . $_REQUEST['employee'] .
', ' . $_REQUEST['company'] . ', "' . $_REQUEST['date'] . ' ' . $_REQUEST['start_hr'] . ':' . $_REQUEST['start_min'] . ':00"' .
', "' . $_REQUEST['date'] . ' ' . $_REQUEST['finish_hr'] . ':' . $_REQUEST['finish_min'] . ':00", ' . $_REQUEST['code'] . ', ' . $userid .
', "' . addslashes($_REQUEST['notes']) . '");');
if ($update == 0) $error = 1;
}
if ($error == 1) {
echo "
There was an error entering your request. Please try again.
";
}
}
?>
Employee
Start
End
Code
Notes
Options
// see if we have any time records for today for this project and company
$tcresults = mysql_query('SELECT t.id, DATE_FORMAT(t.start, \'%h:%i %p\') as starttime, DATE_FORMAT(t.finish, \'%h:%i %p\') as finishtime, t.code, t.notes, cd.name, e.lastname, e.firstname, e.id AS eid FROM timecard t, employee e, company c, codes cd WHERE t.start >= "' . $_REQUEST['date'] . ' 00:00:00" AND t.finish <= "' . $_REQUEST['date'] . ' 23:59:59" AND c.id=' . $_REQUEST['company'] . ' AND e.company=c.id AND e.id=t.employee AND t.code=cd.code ORDER BY e.lastname, e.firstname, t.start ASC');
if (mysql_num_rows($tcresults) == 0) {
?>
There is no time entered for this day.
} else {
$rowstyle = 1;
while ($row = mysql_fetch_assoc($tcresults)) {
if ($lastid != $row['eid']) {
altrows();
?>
if ($isadmin == 1) {
$result = mysql_query('SELECT p.id, p.name FROM project p WHERE p.status=0 ORDER BY p.name');
} else {
$result = mysql_query('SELECT p.id, p.name FROM project p, userpermissions u WHERE u.userid=' . $userid . ' AND u.project=p.id AND p.status=0 ORDER BY p.name');
}
if (mysql_num_rows($result) == 0) {
?>
Sorry, but you don't have access to any projects.
} else {
?>
Please select a project to view payroll reports for:
while ($row = mysql_fetch_assoc($result)) {
altrows();
?>
if ($isadmin == 1) {
$result = mysql_query('SELECT p.id, p.name FROM project p WHERE p.status=1 ORDER BY p.name');
} else {
$result = mysql_query('SELECT p.id, p.name FROM project p, userpermissions u WHERE u.userid=' . $userid . ' AND u.project=p.id AND p.status=1 ORDER BY p.name');
}
if (mysql_num_rows($result) == 0) {
?>
Sorry, but you don't have access to any projects.
} else {
?>
Please select a project to view payroll reports for:
while ($row = mysql_fetch_assoc($result)) {
altrows();
?>
foot();
} else if ($_REQUEST['do'] == 'prreport_project') {
if (preg_match("/[^0-9]/", $_REQUEST['project']) > 0) {
?>Invalid project ID
exit;
}
head();
nav();
$projresult = mysql_query('SELECT p.name FROM project p WHERE p.id=' . $_REQUEST['project']);
$projrow = mysql_fetch_assoc($projresult);
$result = mysql_query('SELECT c.id, c.name FROM company c WHERE c.project=' . $_REQUEST['project'] . ' AND c.status = 0 ORDER BY c.name');
$secondarypage = 'Projects';
$page = 'Timecard Reports for' . $projrow['name'];
breadcrumb();
?>
Timecard Reports for =$projrow['name']?>
if (mysql_num_rows($result) == 0) {
?>
Sorry, but there are no companies assigned to the ' echo $projrow['name']; ?>' project.
} else {
?>
Please select a reporting period:
// figure out our start date
$projdata = mysql_fetch_assoc(mysql_query('SELECT FROM_UNIXTIME(startdate, "%a %m-%d-%Y") AS startdate FROM project WHERE id=' . $_REQUEST['project']));
$startdow = substr($projdata['startdate'], 0, 3);
$addto = 0;
if ($startdow == 'Sun') { $addto = 4; }
if ($startdow == 'Mon') { $addto = 3; }
if ($startdow == 'Tue') { $addto = 2; }
if ($startdow == 'Wed') { $addto = 1; }
if ($startdow == 'Thu') { $addto = 0; }
if ($startdow == 'Fri') { $addto = 6; }
if ($startdow == 'Sat') { $addto = 5; }
if ($addto != 0) {
$startday = mysql_fetch_assoc(mysql_query('SELECT DATE_FORMAT(DATE_ADD(FROM_UNIXTIME(startdate), INTERVAL ' . $addto . ' DAY), "%m-%d-%Y") AS startdate
FROM project WHERE id=' . $_REQUEST['project']));
} else {
$startday = mysql_fetch_assoc(mysql_query('SELECT FROM_UNIXTIME(startdate, "%m-%d-%Y") AS startdate FROM project WHERE id=' . $_REQUEST['project']));
}
// now we need a list of dates from the beginning to the end (or today)
$result = mysql_query('SELECT enddate FROM timecard_payperiods WHERE enddate >= "' . $startday['startdate'] . ' 00:00:00" AND enddate <= DATE_ADD(NOW(), INTERVAL 1 WEEK) ORDER BY enddate DESC');
if (mysql_num_rows($result) > 0) {
?>
}
?>
}
?>
if ($isadmin == 1) {
$result = mysql_query('SELECT c.id, c.name FROM company c WHERE c.project=' . $_REQUEST['project'] . ' ORDER BY c.name');?>
Print All Timecard Reports for =$projrow['name']?>
if (mysql_num_rows($result) == 0) {
?>
Sorry, but there are no companies assigned to the ' echo $projrow['name']; ?>' project.
} else {
?>
}
?>
}
foot();
}
else if ($_REQUEST['do'] == 'prreport_report') {
if (preg_match("/[^0-9]/", $_REQUEST['company']) > 0) {
?>Invalid company ID
exit;
}
if (preg_match("/[^0-9]/", $_REQUEST['project']) > 0) {
?>Invalid project ID
exit;
}
if (preg_match("/[^0-9\-]/", $_REQUEST['period']) > 0) {
?>Invalid pay period
exit;
}
head();
nav();
// we have our end date
$enddate = $_REQUEST['period'];
$row = mysql_fetch_assoc(mysql_query('SELECT DATE_SUB("' . $enddate . ' 00:00:00", INTERVAL 6 DAY) AS startdate'));
$startdate = substr($row['startdate'], 0, 10);
// now grab timecard records
// first we need a list of employee IDs that have records for our given time period
// since PHP blows so much we have to cycle through row by row instead of pulling the whole array at once
$result = mysql_query('SELECT DISTINCT t.employee FROM timecard t, employee e WHERE e.id=t.employee AND e.company = ' .
$_REQUEST['company'] . ' AND t.start >= "' . $startdate . ' 00:00:00" AND t.finish <= "' . $enddate . ' 23:59:59"
ORDER BY e.lastname ASC, e.firstname ASC');
if (mysql_num_rows($result) > 0) {
// dump out our users into an array of their own
// so we can cycle through later
while ($row = mysql_fetch_assoc($result)) {
$employees[] = $row['employee'];
}
$CompanyInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM company WHERE id="' . $_REQUEST['company'] . '"'));
$ProjectInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM project WHERE id="' . $_REQUEST['project'] . '"'));
$secondarypage = 'Projects > ' . $ProjectInfo['name'] . '';
$page = 'Timecard Report for ' . $CompanyInfo['name'];
breadcrumb();
// start our table
?>
// now cycle through day-by-day and come up with a nice round total for each day, for this employee
// we'll convert the DB timestamps to epoch, then divide out to come up with a decimal hours total
$totalhrs = 0;
for ($k = 0; $k < 7; $k++) {
echo '
';
$daytotal = 0;
if ($k == 0) {
// start date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $startdate . ' 00:00:00"
AND finish <= "' . $startdate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
$day = $row['start'];
$date = date('Y-m-d', $day);
}
} else if ($k == 6) {
// end date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $enddate . ' 00:00:00"
AND finish <= "' . $enddate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
$day = $row['start'];
$date = date('Y-m-d', $day);
}
} else {
// in between
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= DATE_ADD("' . $startdate . ' 00:00:00", INTERVAL ' . $k . ' DAY)
AND finish <= DATE_ADD("' . $startdate . ' 23:59:59", INTERVAL ' . $k . ' DAY)');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$day = $row['start'];
$date = date('Y-m-d', $day);
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
}
if ($daytotal > 0) {
$daytotal = $daytotal - 1800;
$totalhrs = $totalhrs - 1800;
}
$dayhrs = sprintf("%01.2f", (($daytotal / 60) / 60));
if ($daytotal > 0) {
echo '' . $dayhrs . "
} else {
$CompanyInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM company WHERE id="' . $_REQUEST['company'] . '"'));
$ProjectInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM project WHERE id="' . $_REQUEST['project'] . '"'));
$secondarypage = 'Projects > ' . $ProjectInfo['name'] . '';
$page = 'Timecard Report for ' . $CompanyInfo['name'];
breadcrumb();
?>
=$CompanyInfo['name']?> has no time records for the selected pay period.
}
foot();
} else if ($_REQUEST['do'] == 'print') {
if (preg_match("/[^0-9]/", $_REQUEST['company']) > 0) {
?>Invalid company ID
exit;
}
if (preg_match("/[^0-9]/", $_REQUEST['project']) > 0) {
?>Invalid project ID
exit;
}
if (preg_match("/[^0-9\-]/", $_REQUEST['period']) > 0) {
?>Invalid pay period
exit;
}
// we have our end date
$enddate = $_REQUEST['period'];
$row = mysql_fetch_assoc(mysql_query('SELECT DATE_SUB("' . $enddate . ' 00:00:00", INTERVAL 6 DAY) AS startdate'));
$startdate = substr($row['startdate'], 0, 10);
// now grab timecard records
// first we need a list of employee IDs that have records for our given time period
// since PHP blows so much we have to cycle through row by row instead of pulling the whole array at once
$result = mysql_query('SELECT DISTINCT t.employee FROM timecard t, employee e WHERE e.id=t.employee AND e.company = ' .
$_REQUEST['company'] . ' AND t.start >= "' . $startdate . ' 00:00:00" AND t.finish <= "' . $enddate . ' 23:59:59"
ORDER BY e.lastname ASC, e.firstname ASC');
if (mysql_num_rows($result) > 0) {
// dump out our users into an array of their own
// so we can cycle through later
while ($row = mysql_fetch_assoc($result)) {
$employees[] = $row['employee'];
}
$CompanyInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM company WHERE id="' . $_REQUEST['company'] . '"'));
$ProjectInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM project WHERE id="' . $_REQUEST['project'] . '"'));
// start our table
$title = $ProjectInfo['name'] . " | " . $CompanyInfo['name'] . " | " . $startdate . " through " . $enddate;
phead();
?>
// now cycle through day-by-day and come up with a nice round total for each day, for this employee
// we'll convert the DB timestamps to epoch, then divide out to come up with a decimal hours total
$totalhrs = 0;
for ($k = 0; $k < 7; $k++) {
echo '
';
$daytotal = 0;
if ($k == 0) {
// start date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $startdate . ' 00:00:00"
AND finish <= "' . $startdate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
} else if ($k == 6) {
// end date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $enddate . ' 00:00:00"
AND finish <= "' . $enddate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
} else {
// in between
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= DATE_ADD("' . $startdate . ' 00:00:00", INTERVAL ' . $k . ' DAY)
AND finish <= DATE_ADD("' . $startdate . ' 23:59:59", INTERVAL ' . $k . ' DAY)');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
}
if ($daytotal > 0) {
$daytotal = $daytotal - 1800;
$totalhrs = $totalhrs - 1800;
}
$dayhrs = sprintf("%01.2f", (($daytotal / 60) / 60));
echo $dayhrs . "
}
pfoot();
} else if ($_REQUEST['do'] == 'print_sub') {
if (preg_match("/[^0-9]/", $_REQUEST['company']) > 0) {
?>Invalid company ID
exit;
}
if (preg_match("/[^0-9]/", $_REQUEST['project']) > 0) {
?>Invalid project ID
exit;
}
if (preg_match("/[^0-9\-]/", $_REQUEST['period']) > 0) {
?>Invalid pay period
exit;
}
// we have our end date
$enddate = $_REQUEST['period'];
$row = mysql_fetch_assoc(mysql_query('SELECT DATE_SUB("' . $enddate . ' 00:00:00", INTERVAL 6 DAY) AS startdate'));
$startdate = substr($row['startdate'], 0, 10);
// now grab timecard records
// first we need a list of employee IDs that have records for our given time period
// since PHP blows so much we have to cycle through row by row instead of pulling the whole array at once
$result = mysql_query('SELECT DISTINCT t.employee FROM timecard t, employee e WHERE e.id=t.employee AND e.company = ' .
$_REQUEST['company'] . ' AND t.start >= "' . $startdate . ' 00:00:00" AND t.finish <= "' . $enddate . ' 23:59:59"
ORDER BY e.lastname ASC, e.firstname ASC');
if (mysql_num_rows($result) > 0) {
// dump out our users into an array of their own
// so we can cycle through later
while ($row = mysql_fetch_assoc($result)) {
$employees[] = $row['employee'];
}
$CompanyInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM company WHERE id="' . $_REQUEST['company'] . '"'));
$ProjectInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM project WHERE id="' . $_REQUEST['project'] . '"'));
$title = $ProjectInfo['name'] . " | " . $CompanyInfo['name'] . " | " . $startdate . " through " . $enddate;
phead();
// start our table
?>
// now cycle through day-by-day and come up with a nice round total for each day, for this employee
// we'll convert the DB timestamps to epoch, then divide out to come up with a decimal hours total
$totalhrs = 0;
for ($k = 0; $k < 7; $k++) {
echo '
';
$daytotal = 0;
if ($k == 0) {
// start date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $startdate . ' 00:00:00"
AND finish <= "' . $startdate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
} else if ($k == 6) {
// end date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $enddate . ' 00:00:00"
AND finish <= "' . $enddate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
} else {
// in between
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= DATE_ADD("' . $startdate . ' 00:00:00", INTERVAL ' . $k . ' DAY)
AND finish <= DATE_ADD("' . $startdate . ' 23:59:59", INTERVAL ' . $k . ' DAY)');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
}
if ($daytotal > 0) {
$daytotal = $daytotal - 1800;
$totalhrs = $totalhrs - 1800;
}
$dayhrs = sprintf("%01.2f", (($daytotal / 60) / 60));
echo $dayhrs . "
}
pfoot();
}
if ($_REQUEST['do'] == 'printall') {
phead();
$period = mysql_query('SELECT * FROM `timecard_payperiods`
ORDER BY `enddate` ASC');
while ($p = mysql_fetch_assoc($period)) {
// we have our end date
$enddate = substr($p['enddate'], 0, -9);
$row = mysql_fetch_assoc(mysql_query('SELECT DATE_SUB("' . $enddate . ' 00:00:00", INTERVAL 6 DAY) AS startdate'));
$startdate = substr($row['startdate'], 0, 10);
// now grab timecard records
// first we need a list of employee IDs that have records for our given time period
// since PHP blows so much we have to cycle through row by row instead of pulling the whole array at once
$result = mysql_query('SELECT DISTINCT t.employee FROM timecard t, employee e WHERE e.id=t.employee AND e.company = ' .
$_REQUEST['company'] . ' AND t.start >= "' . $startdate . ' 00:00:00" AND t.finish <= "' . $enddate . ' 23:59:59"
ORDER BY e.lastname ASC, e.firstname ASC');
if (mysql_num_rows($result) > 0) {
// dump out our users into an array of their own
// so we can cycle through later
while ($row = mysql_fetch_assoc($result)) {
$employees[] = $row['employee'];
}
$CompanyInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM company WHERE id="' . $_REQUEST['company'] . '"'));
$ProjectInfo = mysql_fetch_assoc(mysql_query('SELECT * FROM project WHERE id="' . $_REQUEST['project'] . '"'));
// start our table
$title = $ProjectInfo['name'] . " | " . $CompanyInfo['name'] . " | " . $startdate . " through " . $enddate;
?>
// now cycle through day-by-day and come up with a nice round total for each day, for this employee
// we'll convert the DB timestamps to epoch, then divide out to come up with a decimal hours total
$totalhrs = 0;
for ($k = 0; $k < 7; $k++) {
echo '
';
$daytotal = 0;
if ($k == 0) {
// start date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $startdate . ' 00:00:00"
AND finish <= "' . $startdate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
} else if ($k == 6) {
// end date
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= "' . $enddate . ' 00:00:00"
AND finish <= "' . $enddate . ' 23:59:59"');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
} else {
// in between
$result = mysql_query('SELECT UNIX_TIMESTAMP(start) AS start, UNIX_TIMESTAMP(finish) AS finish
FROM timecard WHERE employee=' . $employee . ' AND company=' . $_REQUEST['company'] .
' AND start >= DATE_ADD("' . $startdate . ' 00:00:00", INTERVAL ' . $k . ' DAY)
AND finish <= DATE_ADD("' . $startdate . ' 23:59:59", INTERVAL ' . $k . ' DAY)');
while ($row = mysql_fetch_assoc($result)) {
$difference = $row['finish'] - $row['start'];
$daytotal = $daytotal + $difference;
$totalhrs = $totalhrs + $difference;
}
}
if ($daytotal > 0) {
$daytotal = $daytotal - 1800;
$totalhrs = $totalhrs - 1800;
}
$dayhrs = sprintf("%01.2f", (($daytotal / 60) / 60));
echo $dayhrs . "
// see if we have any time records for today for this project and company
$tcresults = mysql_query('SELECT t.id, DATE_FORMAT(t.start, \'%a\') as date, UNIX_TIMESTAMP(t.start) as starttime, UNIX_TIMESTAMP(t.finish) as finishtime, t.code, t.notes, cd.name, e.lastname, e.firstname, e.id AS eid
FROM timecard t, employee e, company c, codes cd
WHERE t.start >= "' . $startdate . ' 00:00:00" AND t.finish <= "' . $enddate . ' 23:59:59" AND c.id=' . $_REQUEST['company'] . ' AND e.company=c.id AND e.id=t.employee AND t.code=cd.code
ORDER BY e.lastname, e.firstname, t.code, t.start ASC');
if (mysql_num_rows($tcresults) == 0) {
?>
// see if we have any time records for today for this project and company
$tcresults = mysql_query('SELECT t.id, DATE_FORMAT(t.start, \'%a\') as date, UNIX_TIMESTAMP(t.start) as starttime, UNIX_TIMESTAMP(t.finish) as finishtime, t.code, t.notes, cd.name, e.lastname, e.firstname, e.id AS eid
FROM timecard t, employee e, company c, codes cd
WHERE t.start >= "' . $startdate . ' 00:00:00" AND t.finish <= "' . $enddate . ' 23:59:59" AND c.id=' . $_REQUEST['company'] . ' AND e.company=c.id AND e.id=t.employee AND t.code=cd.code
ORDER BY e.lastname, e.firstname, t.code, t.start ASC');
while ($row = mysql_fetch_assoc($tcresults)) {
$daytime = $row['finishtime'] - $row['starttime'];
$hours = sprintf("%01.2f", (($daytime / 60) / 60));
if ($lastid != $row['eid']) {
?>