';
echo '
';
echo round_table('

',
1) . '
';
echo spacer(1, 10);
for ($i = 0; $i < 5; $i++)
{
$month_cap = date('F', mktime(1, 1, 1, substr($month_val, 0, 2))) .
', ' . substr($month_val, 2, 4);
echo round_table(
'',
1);
echo spacer(1, 10);
$month_val = get_next_month($month_val);
}
echo '';
echo round_table('

', 1) . '
';
###################
# Show year total #
###################
$year_total = 0.0;
for ($i = 1; $i < 13; $i++)
{
$tips = get_tips($i, $_SESSION['year'], $userID);
for ($j = 0; $j < 31; $j++)
$year_total += $tips[$j];
$checks = get_checks($i, $_SESSION['year'], $userID);
$year_total += $checks['amount1'];
$year_total += $checks['amount2'];
}
$reportLink = sprintf('
%s report',
$MY_SERVER,
$_SESSION['year'],
$_SESSION['year']
);
echo spacer(1,20);
echo '' .
round_table($_SESSION['year'] . ' total: $' . $year_total . $reportLink, 1) . '
';
echo spacer(1, 30);
echo '' . round_table('
Logout', 1) . '
';
echo '';
}
/* Returns calendar HTML */
function calendar($month, $year, $tipVals, $showStats)
{
$day_captions = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
$dateStamp = mktime(0, 0, 0, $month, 1, $year);
$dow = date('w', $dateStamp); /* 0-6 */
$ret = '
';
return $ret;
}
/* Returns statistics HTML */
function stats($month, $year, $tipVals)
{
$MAX_HEIGHT = 100;
$day_captions = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
$dayCounts = array();
$tipTotals = array();
for ($i = 0; $i < 7; $i++)
{
$dayCounts[] = 0;
$tipTotals[] = 0.0;
}
$dateStamp = mktime(0, 0, 0, $month, 1, $year);
$dow = date('w', $dateStamp); /* 0-6 */
for ($i = 0; $i < 31; $i++)
{
if (isset($tipVals[$i]))
{
$dayCounts[$dow]++;
$tipTotals[$dow] += $tipVals[$i];
}
$dow = ($dow + 1) % 7;
}
$tipAverages = array();
for ($i = 0; $i < 7; $i++)
$tipAverages[$i] = $tipTotals[$i] / $dayCounts[$dow];
$max = $tipAverages[0];
if ($max == 0)
$max = 1;
for ($i = 0; $i < 7; $i++)
if ($tipAverages[$i] > $max)
$max = $tipAverages[$i];
$ret = '';
$ret .= '$' . ((int) $max) . ' - | ';
for ($i = 0; $i < 7; $i++)
$ret .= ' | ';
$ret .= '
$' .
((int)($max / 2)) . ' - |
$0 - | ';
for ($i = 0; $i < 7; $i++)
$ret .= '' . $day_captions[$i] . ' | ';
$ret .= '
';
return $ret;
}
/* Initialization */
if (!isset($_SESSION['year']))
$_SESSION['year'] = date('Y');
if (!isset($_SESSION['month']))
$_SESSION['month'] = date('m');
$userID = get_userID($_SESSION['user']);
/* Handle POST form input */
if ($_POST['action'] == 'change_month')
{
if (preg_match('/^\d{6}$/', $_POST['new_month']))
{
$_SESSION['month'] = substr($_POST['new_month'], 0, 2);
$_SESSION['year'] = substr($_POST['new_month'], 2, 4);
}
}
elseif ($_POST['action'] == 'save_tips')
{
$dbc = connect_db();
for ($i = 0; $i < 31; $i++)
{
if (isset($_POST['tip' . $i]))
{
$val = $_POST['tip' . $i];
if (preg_match('/^\d*\.?\d{0,2}$/', $val))
{
$day = $i + 1;
if (strlen($day) < 2)
$day = "0$day";
do_query("DELETE FROM `tips` WHERE `date` = '$_SESSION[year]-$_SESSION[month]-$day' AND `user` = '$userID'", $dbc);
if ($val != 0)
do_query("INSERT INTO `tips` VALUES('', $userID, '$_SESSION[year]-$_SESSION[month]-$day', '$val')", $dbc);
}
}
}
mysql_close($dbc);
}
elseif ($_POST['action'] == 'save_checks')
{
$dbc = connect_db();
$pattern = '/^\d*\.?\d{0,2}$/';
$h = $_POST['hours1'];
$a = $_POST['amount1'];
if (preg_match($pattern, $h) && preg_match($pattern, $a))
{
do_query("DELETE FROM `checks` WHERE `date` = '$_SESSION[year]-$_SESSION[month]-15' AND `user` = '$userID'", $dbc);
if ( ($h != 0) || ($a != 0) )
do_query("INSERT INTO `checks` VALUES('', '$userID', '$_SESSION[year]-$_SESSION[month]-15', '$h', '$a')", $dbc);
}
$h = $_POST['hours2'];
$a = $_POST['amount2'];
if (preg_match($pattern, $h) && preg_match($pattern, $a))
{
$dim = date('t', mktime(1, 1, 1, $_SESSION['month'], 1, $_SESSION['year']));
do_query("DELETE FROM `checks` WHERE `date` = '$_SESSION[year]-$_SESSION[month]-$dim' AND `user` = '$userID'", $dbc);
if ( ($h != 0) || ($a != 0) )
do_query("INSERT INTO `checks` VALUES('', '$userID', '$_SESSION[year]-$_SESSION[month]-$dim', '$h', '$a')", $dbc);
}
mysql_close($dbc);
}
/* Set us up some variables for user later on */
$thisMonth = date('F', mktime(0, 0, 0, $_SESSION['month']));
$thisYear = date('Y', mktime(0, 0, 0, 1, 1, $_SESSION['year']));
$nextMonth = sprintf('%02d', (($_SESSION['month'] % 12) + 1)) . (($_SESSION['month'] == 12) ? $thisYear + 1 : $thisYear);
$prevMonth = sprintf('%02d', ((($_SESSION['month'] + 10) % 12) + 1)) . (($_SESSION['month'] == 1) ? $thisYear - 1 : $thisYear);
$showTips = ( isset($_POST['show_tips']) && ($_POST['show_tips'] == 1) ) ? 1 : 0;
$showStats = ( isset($_POST['show_stats']) && ($_POST['show_stats'] == 1) ) ? 1 : 0;
$navMonth = $_POST['nav_month'];
$navMonth = ( isset($navMonth) && $navMonth >= 0 && $navMonth < 5 ) ? $navMonth : 3;
?>
|
$thisMonth, $thisYear |
|
EOE
);
?>
Edit Tips >>>
<<< Hide Tips
EOE
. calendar($_SESSION['month'], $_SESSION['year'], $tips, $showStats) . <<< EOE
<<< Hide Stats
EOE
. stats($_SESSION['month'], $_SESSION['year'], $tips) . <<< EOE
EOE
. '' .
'
' .
'' .
"$thisMonth Total: $" . ($tip1_total + $tip2_total + $checks['amount1'] + $checks['amount2']) .
'
'
,
0);
echo '
';
echo footer();
?>