BuildInsert(); db_query($query); $staff_num = db_insert_id(); $form_message = getLanguageText('RECORD-INSERTED-MSG'); // Create a user account for this staff person if ($school_record['staff_userid'] == 'email' && strlen($email)) { $userid = $email; } else { if (strlen($first_name) > 0) { if (strlen($last_name) > 0) $userid = str_replace(' ','',strtolower(str_replace(".","",$first_name) . "." . str_replace(".","",$last_name))); else $userid = str_replace(' ','',strtolower(str_replace(".","",$first_name))); } else { $userid = str_replace(' ','',strtolower(str_replace(".","",$last_name))); } } $userid = str_replace("'","",$userid); // Check if this user id is already in use $query = "select * from users " . "where school_num = $school_num " . "and userid = '" . db_escape_string($userid) . "'"; $results = db_query($query); if (db_num_rows($results) > 0) { $error_message .= getLanguageText('MSG-ACCOUNT-EXISTS') . " ($userid)"; $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } $users_table = new Table("users"); $password = $userid; $type = 'Staff'; $status = 'Active'; $receive_emails = 'Y'; $email_reminders = 'Y'; $date_added = date("Y-m-d",time()); $language = $school_record['default_staff_language']; $query = $users_table->BuildInsert(); db_query($query); $user_num = db_insert_id(); $query = "update people set user_num = $user_num where record_num = $staff_num"; db_query($query); $form_message = getLanguageText('RECORD-INSERTED-MSG'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "edit": $next_naction = "update"; // Get current record $record_num = intval($_GET['record_num']); $query = "select * from $CurrentTable " . "where school_num = $school_num " . "and record_num = $record_num"; $results = db_query($query); if (db_num_rows($results) == 1) { $row = db_fetch_array($results); extract($row); $email = db_getVal("SELECT email FROM users WHERE record_num = $user_num"); include $FormFile; } else { $error_message = getLanguageText('ERRORMSG-NOT-FOUND'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } break; case "update": extract($_POST); // Validate the data entered if (strlen($last_name) == 0 && strlen($first_name) == 0) { $error_message = getLanguageText('MSG-MISSING-STAFF-NAME'); $naction = "edit"; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } // Check for an existing user id $curr_user_num = db_getVal("SELECT user_num FROM people WHERE school_num = $base_school_num AND record_num = $record_num"); if (!isset($active)) $active = 'Y'; $table = new Table("$CurrentTable"); $query = $table->BuildUpdate(); db_query($query); $form_message = getLanguageText('RECORD-UPDATED-MSG'); $naction = "list"; // Create a user account for this staff person if (!isset($user_num) || strlen($user_num) == 0 || $user_num == 0) { if ($curr_user_num > 0) db_query("DELETE FROM users WHERE school_num = $base_school_num AND record_num = $curr_user_num"); if ($school_record['staff_userid'] == 'email' && strlen($email)) { $userid = $email; } else { if (strlen($first_name) > 0) { if (strlen($last_name) > 0) $userid = str_replace(' ','',strtolower(str_replace(".","",$first_name) . "." . str_replace(".","",$last_name))); else $userid = str_replace(' ','',strtolower(str_replace(".","",$first_name))); } else { $userid = str_replace(' ','',strtolower(str_replace(".","",$last_name))); } } $userid = str_replace("'","",$userid); $query = "select * from users " . "where school_num = $school_num " . "and userid = '" . db_escape_string($userid) . "'"; $results = db_query($query); // Create a new user if necessary if (db_num_rows($results) == 0) { $users_table = new Table("users"); $password = $userid; $type = 'Staff'; $status = 'Active'; $receive_emails = 'Y'; $date_added = date("Y-m-d",time()); $query = $users_table->BuildInsert(); db_query($query); $user_num = db_insert_id(); $query = "update people set user_num = $user_num where record_num = $record_num"; db_query($query); } } else { if (strlen($first_name) > 0) { if (strlen($last_name) > 0) $userid = str_replace(' ','',strtolower(str_replace(".","",$first_name) . "." . str_replace(".","",$last_name))); else $userid = str_replace(' ','',strtolower(str_replace(".","",$first_name))); } else { $userid = str_replace(' ','',strtolower(str_replace(".","",$last_name))); } $userid = str_replace("'","",$userid); // Check if this user id is already in use $query = "select * from users " . "where school_num = $school_num " . "and userid = '" . db_escape_string($userid) . "' " . "and record_num != $user_num"; $results = db_query($query); if (db_num_rows($results) > 0) { $error_message .= getLanguageText('MSG-ACCOUNT-EXISTS') . " ($userid)"; $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } $set = "last_name = '" . db_escape_string($last_name) . "', first_name = '" . db_escape_string($first_name) . "'"; $set .= ", userid = '$userid'"; // Get original user record $results = db_query("SELECT * FROM users WHERE school_num = $school_num AND record_num = $user_num"); $ouser = db_fetch_assoc($results); // Update user account with email if there is one if (strlen($email) > 0 || strlen($ouser['email'])) { $set .= ", email = '" . db_escape_string($email) . "'"; } db_query("update users set $set where record_num = $user_num"); } $form_message = getLanguageText('RECORD-UPDATED-MSG'); $naction = "list"; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "delete-confirmed": $record_num = intval($_GET['record_num']); // Check if this person has orders in the system $num = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num AND status = 'Paid'"); if ($num > 0) { $error_message = getLanguageText('ERRORMSG-DELETE-WITH-PAID-ORDERS'); $naction = "list"; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } // Delete the user account for this staff person $query = "select user_num from people " . "where school_num = $school_num " . "and record_num = $record_num"; $user_num = db_getVal($query); if ($user_num) { $query = "delete from users " . "where school_num = $school_num " . "and record_num = $user_num"; db_query($query); $query = "delete from user_account " . "where school_num = $school_num " . "and user_num = $user_num"; db_query($query); } // Clear out and entries for this staff person in any classes db_query("UPDATE classes SET teacher1 = NULL WHERE school_num = $school_num AND teacher1 = $record_num"); db_query("UPDATE classes SET teacher2 = NULL WHERE school_num = $school_num AND teacher2 = $record_num"); db_query("UPDATE classes SET teacher3 = NULL WHERE school_num = $school_num AND teacher3 = $record_num"); db_query("UPDATE classes SET teacher4 = NULL WHERE school_num = $school_num AND teacher4 = $record_num"); db_query("UPDATE classes SET teacher5 = NULL WHERE school_num = $school_num AND teacher5 = $record_num"); // Delete the current record $query = "delete from people " . "where school_num = $school_num " . "and record_num = $record_num"; db_query($query); $form_message = getLanguageText('RECORD-DELETED-MSG'); $naction = "list"; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "upload": $num_fields = $_POST['num_fields']; $fields = explode(",",$_POST['fields']); // Get and process the data file $temp_name = $_FILES['filename']['tmp_name']; $file_name = str_replace(' ','_',$_FILES['filename']['name']); if (strlen($file_name) == 0) { $error_message = getLanguageText('MSG-NO-SOURCE-DATA-FILE'); $naction = "upload-form"; header("Location: /?action=$action&naction=$naction&error_message=".urlencode($error_message)); exit(); } // Validate the file type $finfo = finfo_open(FILEINFO_MIME_TYPE); $ftype = finfo_file($finfo,$temp_name); if ($ftype != "text/plain") { $error_message = getLanguageText('ERRORMSG-INVALID-FILE-FORMAT'); $naction = "upload-form"; header("Location: /?action=$action&naction=$naction&error_message=".urlencode($error_message)); exit(); } // Move file to temp folder if (!move_uploaded_file($temp_name,"temp/$school_num.staff.csv")) { $error_message = getLanguageText('MSG-ZERO-UPLOADED'); $new_naction = "upload-form"; break; } // Open and process the data file $fp = fopen("temp/$school_num.staff.csv","r"); $records = 0; $userid_source = $_POST['userid_source']; $password_source = $_POST['password_source']; $user_count = 0; $staff_count = 0; $error_count = 0; // Delete existing entries db_query("DELETE FROM people WHERE school_num = $base_school_num AND people_type = 'Staff'"); db_query("DELETE FROM users WHERE school_num = $base_school_num AND type = 'Staff'"); // Setup defaults for staff insert $people = new Table("people"); $added_date = date("Y-m-d",time()); $date_added = $added_date; $people_type = "Staff"; $class_num = 0; $status = "Verified"; $display = 'N'; $active = 'Y'; $menu_price_category = "Regular"; $staff_category = $school_record['default_staff_category']; while (($data = fgetcsv($fp,10000,",")) !== FALSE) { $numDataFields = count($data); if ($numDataFields == 0) continue; // Parse the data from the record for ($i = 0; $i < count($fields); $i++) { $fname = $fields[$i]; unset($$fname); if (array_key_exists($fname, $_POST) && strlen($_POST[$fname]) > 0) { $col = $_POST[$fname] - 1; $$fname = str_replace('$','',trim($data[$col])); } } // Ensure that there is at least a name if (strlen($first_name) == 0 || strlen($last_name) == 0) { continue; } // Process data to create user account and get user_num $user_num = 0; // Set userid switch ($userid_source) { case 'Email Address': $userid = $email; break; case 'From File': if (!isset($userid) || strlen($userid) == 0) { $error_message = getLanguageText('ERRORMSG-USERID-DATA-MISSING'); $naction = "upload-form"; header("Location: /?action=$action&naction=$naction&error_message=".urlencode($error_message)); exit(); } break; case 'First Name and Last Name': $userid = str_replace(' ','.',str_replace("'","",str_replace(' ','',strtolower($first_name)))) . '.' . str_replace(' ','.',str_replace("'","",str_replace(' ','',strtolower($last_name)))); break; } // Set password switch ($password_source) { case 'Email Address': $password = $email; break; case 'From File': if (!isset($password) || strlen($password) == 0) { $error_message = getLanguageText('ERRORMSG-PASSWORD-DATA-MISSING'); $naction = "upload-form"; header("Location: /?action=$action&naction=$naction&error_message=".urlencode($error_message)); exit(); } break; case 'First Name and Last Name': $password = str_replace(' ','.',str_replace("'","",str_replace(' ','',strtolower($first_name)))) . '.' . str_replace(' ','.',str_replace("'","",str_replace(' ','',strtolower($last_name)))); break; } // If category is set lookup the category number if (isset($category) && strlen($category)) { $num = db_getVal("SELECT record_num FROM staff_categories WHERE school_num = $school_num AND category_title = '" . db_escape_string($category) . "'"); if ($num > 0) $category = $num; else $category = $default_staff_category; } else $category = $default_staff_category; // Check if the user id already exists $userid = db_escape_string($userid); $password = db_escape_string($password); $email = db_escape_string($email); $default_language = $school_record['default_language']; $results = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND userid = '" . db_escape_string($userid) . "'"); if (db_num_rows($results) == 1) { $row = db_fetch_array($results); $user_num = $row['record_num']; } else { $fname = db_escape_string($first_name); $lname = db_escape_string($last_name); db_query("INSERT INTO users (school_num,userid,password,email,type,status,date_added,can_order,has_order,num_orders,balance_owing,account_balance,receive_emails,language,first_name,last_name) " . "VALUES ($base_school_num,'$userid','$password','$email','Staff','Active','$today','Yes','N',0,0.00,0.00,'Y','$default_language','$fname','$lname')"); $user_num = db_insert_id(); $user_count++; } // Check if this staff person is already in system $query = "SELECT * FROM people " . "WHERE school_num = $base_school_num " . "AND first_name = '" . db_escape_string($first_name) . "' " . "AND last_name = '" . db_escape_string($last_name) . "' " . "AND people_type = '$people_type'"; $results = db_query($query); if (db_num_rows($results) == 0) { // Create the staff people entry $school_num = $base_school_num; $query = $people->BuildInsert(); db_query($query); $staff_count++; } } $data = array(); $data[] = array(getLanguageText('TEXT-STAFF'),$staff_count); $data[] = array(getLanguageText('TEXT-USER-ACCOUNTS'),$user_count); $data[] = array(getLanguageText('TEXT-ERRORS'),$error_count); $columnHeaders = array(getLanguageText('TEXT-RESULT'),getLanguageText('TEXT-NUMBER')); $columnAlign = array('center','center'); $TableWidth = 450; listDataCustom($data,$columnHeaders,'',array(),'N',$columnAlign); break; case "set-price-category": $category = $_POST['category']; db_query("UPDATE people SET menu_price_category = '$category' WHERE school_num = $base_school_num AND people_type = 'Staff'"); $form_message = getLanguageText('RECORDS-UPDATED-MSG'); $naction = "list"; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "reset-passwords": db_query("UPDATE users SET password = userid WHERE school_num = $base_school_num AND type = 'Staff'"); $form_message = getLanguageText('RECORDS-UPDATED-MSG'); $naction = "list"; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); default: $naction = "list"; break; } // // List all records if naction is "list" // if ($naction == "list") { $scriptName = str_replace("/m/data1/app.hotlunches.net/","",__FILE__); include "help.docs.php"; if ($school_record['special_item_prices'] == 'Y') { ?> '')"); $num = 0; if ($num > 0) { $columnHeaders[] = getLanguageText('TEXT-DESCRIPTION'); $columnAlign[] = "left"; $description = 'Y'; } if ($school_record['special_item_prices'] != 'N') { $columnHeaders[] = getLanguageText('TEXT-MENU-PRICE-CATEGORY'); $columnAlign[] = "center"; } $div_text = $school_record['division_class_num_text']; $query = "SELECT p.*,category_title " . "FROM people AS p LEFT JOIN staff_categories AS sc ON (sc.school_num = $school_num AND sc.record_num = p.staff_category) " . "WHERE p.school_num = $school_num " . "AND people_type = 'Staff' " . "ORDER BY last_name,first_name"; $results = db_query($query); $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); // Format the name if (strlen($title)) $name = "$title $first_name $last_name"; else $name = "$first_name $last_name"; // Get and format userid $userid = ''; $ruser = db_query("SELECT * FROM users WHERE school_num = $school_num AND record_num = $user_num"); if (db_num_rows($ruser)) { $user = db_fetch_assoc($ruser); $userid = $user['userid']; $userid = "$userid"; // If there is an email address create a link for the name field if (strlen($user['email']) && strstr($user['email'],'@')) { $name = "$name"; } } // Check class number $nclasses = db_getVal("SELECT count(*) FROM classes WHERE school_num = $school_num AND record_num = $class_num"); if ($nclasses > 0) { // Get class info $classinfo = getClassInfo($class_num,'internal',0); } else { $class_num = db_getVal("SELECT record_num FROM classes " . "WHERE school_num = $school_num " . "AND (teacher1 = $record_num OR teacher2 = $record_num OR teacher3 = $record_num OR teacher4 = $record_num OR teacher5 = $record_num) " . "LIMIT 0,1"); if ($class_num) { db_query("UPDATE people SET class_num = $class_num WHERE school_num = $school_num AND record_num = $record_num"); $classinfo = getClassInfo($class_num,'internal',0); } else { db_query("UPDATE people SET class_num = 0 WHERE school_num = $school_num AND record_num = $record_num"); $classinfo = ""; } } if ($school_record['implement_meal_locations'] == 'Y') { $location = ""; if ($meal_location > 0) { if ($meal_location != $class_num) $location = "" . db_getVal("SELECT description FROM classes WHERE school_num = $base_school_num AND record_num = $meal_location") . ""; else $location = "" . getLanguageText('TEXT-CLASSROOM') . ""; } if (strlen($location)) $name .= "
$location"; } $numOrders = 0; $numOrders = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num"); if ($numOrders > 0) $name .= " ($numOrders)"; if ($school_record['special_item_prices'] == 'N') $data[] = array($name, $category_title, $userid, $classinfo, "record_num" => $record_num); else { $mcat = strtolower(str_replace(' ','',$menu_price_category)); $mclass = ''; if ($menu_price_category != 'Regular') $mclass = 'warning'; $menu_price_category = "" . $menu_price_category . ""; $data[] = array($name, $category_title, $userid, $classinfo, $menu_price_category, "record_num" => $record_num); } } $message_width = $default_data_width; include "form.messages.php"; echo("
\n"); echo("

$TitleText List

\n"); echo("
\n"); listData($data,$columnHeaders,$action,array(),'Y',$columnAlign); echo("\n"); } ?>
");' class='largeButton'>

: