function generateReceiptInfo($connection, $receiptID) { $info = getReceiptInfo($connection, $receiptID); $sales = array(); $items = trim($info['itemArray'], '#'); $items = explode('#', $items); $prices = trim($info['priceArray'], '#'); $prices = explode('#', $prices); foreach ($items as $key => $item) { if (strlen($item) == 0) { echo "WARNING : Found an empty entry in receipt #{$receiptID}, ignoring...\n"; continue; } $identifier = evalUID($item); if (isGS($item)) { $temp = getGSMerchInfo($connection, $identifier['artist'], $identifier['piece']); $sales[] = forceStringLength($item . LF . substr($temp['PieceTitle'], 0, 16), 26) . " \$" . number_format($prices[$key], 2); } else { $temp = getMerchInfo($connection, $identifier['artist'], $identifier['piece']); $sales[] = forceStringLength($item . LF . substr($temp['MerchTitle'], 0, 16), 26) . " \$" . number_format($prices[$key], 2); } } return $sales; }
// --- HIGH PRIORITY --- //TODO : Test this (seems unreliable) //TODO : Work around when it crashes // --- LOW PRIORITY --- //TODO : Fix the chmod 777 fix (likely with polkit) //TODO : Make a cron? // sendToPrinter($template); while (true) { $receipts = findUnprintedReceipts($connection); if (count($receipts) === 0) { //echo "Nothing to print, sleeping...\n"; sleep(2); } else { foreach ($receipts as $receipt) { $itemsSold = generateReceiptInfo($connection, $receipt); $receiptInfo = getReceiptInfo($connection, $receipt); $user = getUserInfo($connection, $receiptInfo['userID']); $user = $user['name']; $purchases = implode(LF . " " . str_repeat('*-', 15) . LF, $itemsSold); $transid = $receipt; $ttlitems = count($itemsSold); $total = $receiptInfo['price']; $paid = $receiptInfo['paid']; $change = floatval($receiptInfo['paid']) - floatval($receiptInfo['price']); $final_receipt = $template; $final_receipt = str_replace('%USER%', $user, $final_receipt); $final_receipt = str_replace('%PURCHASES%', $purchases, $final_receipt); $final_receipt = str_replace('%TRANSID%', $transid, $final_receipt); $final_receipt = str_replace('%TTLITEMS%', $ttlitems, $final_receipt); $final_receipt = str_replace('%TOTAL%', number_format($total, 2), $final_receipt); $final_receipt = str_replace('%PAID%', number_format($paid, 2), $final_receipt);