0) { $query = "SELECT * FROM user_account " . "WHERE school_num = $school_num " . "AND user_num = $original_user_num " . "AND transaction_status = 'Open' " . "AND transaction_amount > 0 " . "AND abs(amount_paid) < transaction_amount"; $trx = db_query($query); $trx_history = ""; while ($row = db_fetch_assoc($trx)) { extract($row); $sname = ""; if ($schedule_num > 0) { $sname = "(" . db_getVal("SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num") . ") "; } $transaction_amount = '$' . number_format($transaction_amount,2); $trx_history .= "$transaction_type: $transaction_amount - $sname$note\n"; } } $query = $ubs->BuildInsert(); writeLog($query); writeLog("---------------------------"); db_query($query); $count++; } } $form_message = getLanguageText('MSG-USER-BALANCES-SAVED'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); case "delete": $dTitle = getLanguageText('TEXT-ALL-RECORDS'); include "delete.form.php"; break; case "delete-confirmed": db_query("DELETE FROM $CurrentTable WHERE school_num = $school_num"); $form_message = getLanguageText('MSG-USER-BALANCES-DELETED'); $naction = 'list'; header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message)); exit(); } $cMonth = date("m",time()); switch ($cMonth) { case '04': case '05': $days = 0; break; case '06': case '07': case '08': case '09': case '10': $days = 150; break; case '11': case '12': $days = 210; break; case '01': $days = 250; break; case '02': $days = 270; break; case '03': $days = 300; break; } $cutoff = date("Y-m-d",time() - 60 * 60 * 24 * 5); $numSaved = db_getVal("SELECT count(*) FROM user_balance_save WHERE school_num = $school_num"); $numPosted = db_getVal("SELECT count(*) FROM user_balance_save WHERE school_num = $school_num AND posted = 'Y'"); if ($numSaved > 0) $saved_date = db_getVal("SELECT max(saved_date) FROM user_balance_save WHERE school_num = $school_num"); if (isset($saved_date)) { $numParents = db_getVal("SELECT count(*) FROM users WHERE school_num = $base_school_num AND type = 'Parent' AND date_added < '$saved_date'"); } else { $numParents = db_getVal("SELECT count(*) FROM users WHERE school_num = $base_school_num AND type = 'Parent' AND date_added < '$cutoff'"); $numParents = db_getVal("SELECT count(*) FROM users WHERE school_num = $base_school_num AND type = 'Parent'"); } include "form.messages.php"; ?>
" . getLanguageText('TEXT-USER-ACCOUNT-BALANCES') . ": $numSaved ($saved_date)

\n"); ?> 0 && (!isset($saved_date) || $saved_date < $cutoff)) { ?> 0) { ?>

"; $flag_icon = "Flag as Posted"; $query = "SELECT * " . "FROM user_balance_save " . "WHERE school_num = $school_num " . "ORDER BY $OrderBy"; logQuery($school_num,"user_balance_save",$query,"user-balances list"); $balances = db_query($query); $data = array(); $count = 0; $confirm = getLanguageText('TEXT-CONFIRM-STATUS-CHANGE'); while ($row = db_fetch_array($balances)) { extract($row); $rnum = $record_num; $name = "$first_name $last_name"; $obalance = $balance; if (isset($posted_method) && $posted_method == 'Manual') $balance = "$balance"; $commands = ""; $ewhere = ""; if (strlen($email)) $ewhere .= "email = '".db_escape_string($email)."' "; if (strlen($ewhere)) $ewhere .= "OR "; $ewhere .= "userid = '".db_escape_string($original_userid)."' "; $fname = db_escape_string($first_name); $lname = db_escape_string($last_name); $fwhere = ""; if (strlen($fname) || strlen($lname)) $fwhere = "(first_name = '$fname' AND last_name = '$lname') "; if (strlen($fwhere)) $fwhere .= "OR "; $fwhere .= $ewhere; // Lookup in users table for a matching name or email $userFound = false; $query = "SELECT * FROM users " . "WHERE school_num = $base_school_num " . "AND type IN ('Parent','Guest','Administration Team','Schedule Team','Financial Team','Staff') " . "AND ($fwhere)"; $results = db_query($query); if (db_num_rows($results)) { $r = db_fetch_assoc($results); $userFound = true; $unum = $r['record_num']; $eclass = 'notice'; if ($posted == 'N') $eclass = 'error'; else { $transaction_type = 'Charge Adjustment'; if ($obalance < 0) $transaction_type = 'Credit Adjustment'; $note = $school_record['previous_balances_post_message']; $query = "SELECT * FROM user_account " . "WHERE school_num = $school_num " . "AND user_num = $unum " . "AND note = '$note' " . "AND transaction_type = '$transaction_type' " . "AND transaction_amount = $obalance"; $res = db_query($query); if (db_num_rows($res) == 0) $balance = "$obalance"; } $original_userid = "$original_userid"; // $commands = "$post_icon "; } $commands .= "$flag_icon"; $ptime = ""; if ($posted == 'Y') $ptime = date("Y-m-d H:ia",$posted_time); if (strlen($email)) $email = "$email"; $data[$count] = array($original_userid,$original_type,$name,$email,$balance_year,$balance,$posted,$ptime,$commands); $count++; } $columnHeaders = array('UserID','Type','Name','Email','Year','Balance','Posted','Posted Time',''); $columnAlign = array('left','left','left','left','center','right','center','center','center'); listDataCustom($data,$columnHeaders,$action,array(),'N',$columnAlign); echo("
\n"); echo("

"); if ($school_record['previous_balances_post'] == 'Post Manually' || $_SESSION['UserInfo']['type'] == 'SuperUser') { $msg = getLanguageText('TEXT-USER-BALANCE-POST-MSG') . "\\n --> " . getLanguageText('TEXT-CONTINUE'); echo("" . getLanguageText('TEXT-POST-USER-BALANCES') . ""); if ($_SESSION['UserInfo']['type'] == 'SuperUser') { $cyear = date("Y",time()); $msg = "Clear balance posted flags for $cyear"; echo("Unpost Balances"); $msg = "Post Balances to Current DB"; if ($currentDBMode != 'Current') echo("Post Balances to Current DB"); } } echo("" . getLanguageText('TEXT-GENERATE-CSV') . ""); echo("

"); break; case "unpost": $cyear = date("Y",time()); $query = "UPDATE user_balance_save SET posted = 'N', posted_time = NULL WHERE school_num = $school_num"; logQuery($school_num,"user_balance_save",$query,"user-balances unpost"); db_query($query); break; case "post-forward": $balances = array(); $cyear = date("Y",time()); $query = "SELECT * FROM user_balance_save WHERE school_num = $school_num"; logQuery($school_num,"user_balance_save",$query,"user-balances post-forward"); $results = db_query($query); if (db_num_rows($results)) { while ($row = db_fetch_assoc($results)) { $balances[] = $row; } db_query("use hotlunch"); $table = new Table("user_balance_save"); db_query("DELETE FROM user_balance_save WHERE school_num = $school_num"); for ($i = 0; $i < count($balances); $i++) { extract($balances[$i]); $query = $table->BuildInsert($balances[$i]); $query .= " ON DUPLICATE KEY UPDATE balance = $balance, balance_year = '$balance_year'"; logQuery($school_num,"user_balance_save",$query,"user-balances post-forward"); db_query($query); } } header("Location: /?action=user-balances"); exit(); case "post-matching": $rwhere = ""; $rnum = 0; if (array_key_exists('rnum',$_GET)) $rnum = $_GET['rnum']; if ($rnum > 0) { $rwhere = "AND record_num = $rnum "; } $query = "SELECT original_userid,original_type,first_name,last_name,email,balance_year,balance,posted,posted_time,record_num " . "FROM user_balance_save " . "WHERE school_num = $school_num " . "AND posted = 'N' " . $rwhere . "ORDER BY $OrderBy"; logQuery($school_num,"user_balance_save",$query,"user-balances post-matching-users"); $balances = db_query($query); // User account defaults $ua = new Table("user_account"); $note = $school_record['previous_balances_post_message']; $entered_time = time(); $transaction_datetime = date("Y-m-d H:i:s",$entered_time); $data = array(); $count = 0; $posted_count = 0; while ($row = db_fetch_assoc($balances)) { extract($row); $rnum = $record_num; $name = "$first_name $last_name"; $ewhere = ""; if (strlen($email)) { $ewhere = "email = '".db_escape_string($email)."'"; $email = "$email"; } $fname = db_escape_string($first_name); $lname = db_escape_string($last_name); $fwhere = ""; if (strlen($fname) || strlen($lname)) $fwhere = "(first_name = '$fname' AND last_name = '$lname') "; if (strlen($fwhere)) $fwhere .= "OR "; $fwhere .= $ewhere; // Lookup in users table for a matching name or email $query = "SELECT * FROM users " . "WHERE school_num = $base_school_num " . "AND type IN ('Parent','Guest','Administration Team','Schedule Team','Financial Team','Staff') " . "AND ($fwhere)"; $results = db_query($query); $new_name = ""; $paction = ""; if (db_num_rows($results)) { $row = db_fetch_assoc($results); $user_num = $row['record_num']; $new_name = $row['first_name'] . ' ' . $row['last_name']; $paction = "->"; // Post saved balance $transaction_type = 'Charge Adjustment'; if ($balance < 0) $transaction_type = 'Credit Adjustment'; $transaction_amount = $balance; // Create a new transaction $query = $ua->BuildInsert(); db_query($query); $trx_num = db_insert_id(); // Update the saved balance record $query = "UPDATE user_balance_save SET posted = 'Y', posted_time = $entered_time, posted_method = 'Post', user_num = $user_num, trx_num = $trx_num " . "WHERE school_num = $school_num AND record_num = $rnum"; logQuery($school_num,"user_balance_save",$query,"user-balances post-matching-users"); db_query($query); if ($school_record['balance_post_limit'] > 0.00 && $balance > $school_record['balance_post_limit']) { $query = "UPDATE users SET can_order = 'Balance' WHERE school_num = $school_num AND record_num = $user_num"; db_query($query); } $posted_count++; } $data[$count] = array($original_type,$name,$email,$balance_year,$balance,$paction,$new_name); $count++; } echo("

" . getLanguageText('TEXT-BALANCES-POSTED') . ": $posted_count

\n"); $columnHeaders = array('Type','Name','Email','Year','Balance','','New Name'); $columnAlign = array('left','left','left','center','right','center','left'); listDataCustom($data,$columnHeaders,$action,array(),'N',$columnAlign); break; case "flag": $rnum = $_GET['rnum']; $entered_time = time(); if ($rnum > 0) { $query = "SELECT * FROM user_balance_save WHERE school_num = $school_num AND record_num = $rnum"; $results = db_query($query); if (db_num_rows($results)) { $row = db_fetch_assoc($results); if ($row['posted'] != 'Y') { $query = "UPDATE user_balance_save SET posted = 'Y', posted_time = $entered_time, user_num = $user_num WHERE school_num = $school_num AND record_num = $rnum"; logQuery($school_num,"user_balance_save",$query,"user-balances flag-manually-y"); db_query($query); } else { $query = "UPDATE user_balance_save SET posted = 'N', posted_time = 0, user_num = 0 WHERE school_num = $school_num AND record_num = $rnum"; logQuery($school_num,"user_balance_save",$query,"user-balances flag-manually-n"); db_query($query); } } header("Location: /?action=user-balances&naction=list&form_message=".urlencode(getLanguageText('TEXT-TRANSACTION-POSTED'))); exit(); } break; } endTemplate(); ?>