0 " . "AND deleted != 'Y' " . "AND transaction_num = $payment_trx " . "ORDER BY record_num LIMIT 0,1"; writeLog("query: $query\n"); $results = db_query($query); $row = db_fetch_assoc($results); $unallocated_amount = $row['posted_amount']; $unallocated_trx = $row['transaction_num']; $unallocated_rnum = $row['record_num']; writeLog("unallocated_amount: $unallocated_amount\n"); writeLog("unallocated_trx: $unallocated_trx\n"); writeLog("unallocated_rnum: $unallocated_rnum\n"); // Get payment transaction $query = "SELECT * FROM user_account " . "WHERE school_num = $school_num " . "AND user_num = $user_num " . "AND record_num = $payment_trx"; writeLog("query: $query\n"); $results = db_query($query); $row = db_fetch_assoc($results); $transaction_type = $row['transaction_type']; $payment_method = $row['payment_method']; if ($transaction_type != 'Payment') $payment_method = $transaction_type; // Get the transaction to post to $query = "SELECT * FROM user_account " . "WHERE school_num = $school_num " . "AND user_num = $user_num " . "AND record_num = $trx_num"; writeLog("query: $query\n"); $results = db_query($query); $row = db_fetch_assoc($results); $transaction_amount = $row['transaction_amount']; $amount_paid = $row['amount_paid']; $transaction_type = $row['transaction_type']; $order_num = $row['order_num']; $owing = $transaction_amount - $amount_paid; writeLog("transaction_amount: $transaction_amount\n"); writeLog("amount_paid: $amount_paid\n"); writeLog("owing: $owing\n"); $now = time(); if ($owing > $unallocated_amount) { // Update existing detail transaction $query = "UPDATE user_account_detail " . "SET posted_to_transaction = $trx_num, " . "entered_time = $now " . "WHERE school_num = $school_num " . "AND record_num = $unallocated_rnum"; writeLog("query: $query\n"); db_query($query); // Update user account transaction $query = "UPDATE user_account " . "SET amount_paid = amount_paid + $unallocated_amount " . "WHERE school_num = $school_num " . "AND record_num = $trx_num"; writeLog("query: $query\n"); db_query($query); // Update order header if ($transaction_type == 'Order' && $order_num > 0) { $today = date("Y-m-d",$now); $query = "UPDATE hotlunch_order_header " . "SET paid_date = '$today', " . "payment_method = '$payment_method', " . "amount_paid = amount_paid + $unallocated_amount " . "WHERE school_num = $school_num " . "AND record_num = $order_num"; writeLog("query: $query\n"); db_query($query); } $return_data["account_balance"] = 0; } else { // Update existing detail transaction $query = "UPDATE user_account_detail " . "SET posted_to_transaction = $trx_num, " . "posted_amount = $owing, " . "entered_time = $now " . "WHERE school_num = $school_num " . "AND record_num = $unallocated_rnum"; writeLog("query: $query\n"); db_query($query); // Save remaining balance $balance = $unallocated_amount - $owing; $query = "INSERT INTO user_account_detail (school_num,user_num,transaction_num,posted_to_transaction,posted_amount,posted_schedule,entered_time,deleted) " . "VALUES ($school_num, $user_num, $trx_num, 0, $balance, 0, $now, 'N')"; // Close the transaction $query = "UPDATE user_account " . "SET amount_paid = amount_paid + $owing, " . "transaction_status = 'Closed' " . "WHERE school_num = $school_num " . "AND record_num = $trx_num"; writeLog("query: $query\n"); db_query($query); // Update order header if ($transaction_type == 'Order' && $order_num > 0) { $today = date("Y-m-d",$now); $query = "UPDATE hotlunch_order_header " . "SET paid_date = '$today', " . "payment_method = '$payment_method', " . "amount_paid = order_total, " . "status = 'Paid' " . "WHERE school_num = $school_num " . "AND record_num = $order_num"; writeLog("query: $query\n"); db_query($query); } $return_data["account_balance"] = $balance; } writeLog("complete\n"); echo(json_encode($return_data)); ?>