updated schema with foreign keys, updated sample config to include new params

This commit is contained in:
Josh North 2015-02-20 02:03:11 -05:00
parent dc77dc7e65
commit d74c62649e

View File

@ -1,12 +1,12 @@
<?php <?php
//********** PLEASE EDIT THE FOLLOWING **********// //********** PLEASE EDIT THE FOLLOWING **********//
// Paths and directories must include a trailing slash!!! // Paths and directories must include a trailing slash!!!
$yaptc_dirpath = '/usr/share/nginx/html/yaptc/'; // Absolute directory path to the root of this program $yaptc_dirpath = '/usr/share/nginx/html/yaptc/'; // Absolute directory path to the root of this program
$yaptc_webpath = 'http://server-ip/yaptc/'; // Absolute URL to the root of this program $yaptc_webpath = 'http://server-ip/yaptc/'; // Absolute URL to the root of this program
$yaptc_appname = 'Timecard System'; // Program name to display in title bar $yaptc_appname = 'Timecard System'; // Program name to display in title bar
$yaptc_company = 'Widgets, Inc.'; // Your company name $yaptc_company = 'Widgets, Inc.'; // Your company name
$sql = new PDO('mysql:host=localhost;dbname=your_database;', 'your_user', 'your_password'); // Database connection string $yaptc_db = new PDO('mysql:host=localhost;dbname=YOUR_DATABASE;charset=utf8', 'YOUR_USER', 'YOUR_PASSWORD'); // Database connection string
$adminmessage = ''; // Message will display on all pages! $yaptc_adminmsg = ''; // Message will display on all pages!
//********** NO NEED TO EDIT PAST HERE **********// //********** NO NEED TO EDIT PAST HERE **********//
@ -17,6 +17,32 @@ $yaptc_incweb = $yaptc_webpath . 'includes/';
$yaptc_lib = $yaptc_dirpath . 'lib/'; $yaptc_lib = $yaptc_dirpath . 'lib/';
$yaptc_libweb = $yaptc_webpath . 'lib/'; $yaptc_libweb = $yaptc_webpath . 'lib/';
// db settings
$yaptc_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$yaptc_db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
// Get user list for users management page
function listUsers($yaptc_db) {
$stmt = $yaptc_db->query("SELECT users.id as userid, users.username as username, users.email as email, users.created as created, users.firstname as firstname, users.lastname as lastname, users.usertype as usertypeid, usertypes.typename as usertype
FROM yaptc.users
INNER JOIN usertypes ON users.usertype = usertypes.id
ORDER BY users.lastname ASC;");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// Update user profile
function updateUserProfile($yaptc_db, $userid, $firstname, $lastname, $email)
{
$stmt = $yaptc_db->prepare("UPDATE users SET firstname = :firstname, lastname = :lastname, email = :email WHERE id = :userid;");
$stmt->execute(array(
':userid' => $userid,
':firstname' => $firstname,
':lastname' => $lastname,
':email' => $email
));
}
// Get login status - returns true or false // Get login status - returns true or false
function getSessionStatus() function getSessionStatus()
{ {
@ -37,11 +63,11 @@ function killSession()
} }
// Get user access level. Call with $sql passed or it will not work correctly // Get user access level. Call with $sql passed or it will not work correctly
function getSessionAccess($sql) function getSessionAccess($yaptc_db)
{ {
if (isset($_SESSION['user_id'])) { if (isset($_SESSION['user_id'])) {
$query3 = "SELECT users.id as userid, usertypes.typename AS usertype FROM users, usertypes WHERE users.id = :id"; $query3 = "SELECT users.id as userid, usertypes.typename AS usertype FROM users, usertypes WHERE users.id = :id";
$stmt3 = $sql->prepare($query3); $stmt3 = $yaptc_db->prepare($query3);
$stmt3->execute(array( $stmt3->execute(array(
':id' => $_SESSION['user_id'] ':id' => $_SESSION['user_id']
)); ));
@ -50,4 +76,16 @@ function getSessionAccess($sql)
} }
} }
// Report - Weekly Hours by Week then User
function reportWeeklyByUser($yaptc_db) {
$stmt = $yaptc_db->query("SELECT YEAR(punches.intime) AS g_year, WEEK(punches.intime) AS g_week, ROUND(SUM(TIME_TO_SEC(TIMEDIFF(punches.outtime, punches.intime))/3600),2) AS punchhours, punches.id as punchid, users.id as user, users.username as username, users.firstname as firstname, users.lastname as lastname, punches.intime as intime, punches.outtime as outtime, punches.notes as notes, punches.modified as modified FROM punches INNER JOIN users ON punches.userid = users.id GROUP BY g_year, g_week, users.username;");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// Report - Monthly Hours by Month then User
function reportMonthlyByUser($yaptc_db) {
$stmt = $yaptc_db->query("SELECT YEAR(punches.intime) AS g_year, MONTHNAME(punches.intime) AS g_month, ROUND(SUM(TIME_TO_SEC(TIMEDIFF(punches.outtime, punches.intime))/3600),2) AS punchhours, punches.id as punchid, users.id as user, users.username as username, users.firstname as firstname, users.lastname as lastname, punches.intime as intime, punches.outtime as outtime, punches.notes as notes, punches.modified as modified FROM punches INNER JOIN users ON punches.userid = users.id GROUP BY g_year, g_month, users.username;");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
?> ?>