/** @param $codes tender code(s) or department(s) @param $label label(s) for codes @param $listEach Boolean - True List each transaction - False List the sum of the transactions @return string A section of the report for the tender or department. */ private static function trTotal($codes, $label, $listEach = False, $reportIfNone = True) { global $CORE_LOCAL; $db_a = self::$db_a; $blank = str_repeat(' ', 13); // Names padded on right with blanks. %10s? $fieldNames = " " . substr("Time" . $blank, 0, 10) . substr("Lane" . $blank, 0, 8) . substr("Trans #" . $blank, 0, 10) . substr("Emp #" . $blank, 0, 8) . substr("Mem #" . $blank, 0, 11) . substr("Amount" . $blank, 0, 14) . "\n"; if (is_array($codes)) { $codes = "'" . implode("','", $codes) . "'"; } elseif (!is_numeric($codes)) { $codes = "'" . $codes . "'"; } $codeField = !is_numeric($codes) ? 'trans_subtype' : 'department'; if ($listEach === False) { $tenderQ = "SELECT -SUM(total) AS net, COUNT(total)" . " FROM " . self::$tTable . " d" . " WHERE register_no=" . $CORE_LOCAL->get('laneno') . " AND {$codeField} IN({$codes}) AND " . self::$tDate . " >= '" . self::$shiftCutoff . "'" . self::$excl; } else { $tenderQ = "SELECT " . self::$tDate . ",register_no,emp_no,trans_no,card_no,total" . " FROM " . self::$tTable . " d" . " WHERE register_no=" . $CORE_LOCAL->get('laneno') . " AND {$codeField} IN({$codes}) AND " . self::$tDate . " >= '" . self::$shiftCutoff . "'" . self::$excl; " ORDER BY " . self::$tDate; } $tenderR = $db_a->query($tenderQ); $tender = $db_a->fetch_array($tenderR); $numRows = $db_a->num_rows($tenderR); $ret = ''; // Reports even if 0. reportIfNone if (!$reportIfNone && $numRows == 0) { return ''; } if ($listEach === False) { $ret = " " . substr($label . $blank . $blank, 0, 20) . substr($blank . number_format($tender[0], 2), -8) . substr($blank . $tender[1], -8) . "\n"; } else { $sum = 0; $ret = ReceiptLib::centerString($label) . "\n"; $ret .= ReceiptLib::centerString(self::$dashLine) . "1\n"; $ret .= $fieldNames; for ($i = 0; $i < $numRows; $i++) { $row = $db_a->fetch_array($tenderR); $timeStamp = TenderReport::timeStamp($row["self::{$tDate}"]); $ret .= " " . substr($timeStamp . $blank, 0, 10) . substr($row["register_no"] . $blank, 0, 9) . substr($row["trans_no"] . $blank, 0, 8) . substr($blank . $row['emp_no'], -8) . substr($blank . $row["card_no"], -6) . substr($blank . number_format($row["total"], 2), -14) . "\n"; $sum += $row["total"]; } $ret .= ReceiptLib::centerString(self::$dashLine) . "2\n"; $ret .= substr($blank . $blank . $blank . "Count: " . $numRows . " Total: " . number_format($sum, 2), -55) . "\n"; $ret .= str_repeat("\n", 3); } return $ret; // trTotal() }
function trTotal($k, $label, $i = False) { $db_a = Database::mDataConnect(); $blank = " "; $fieldNames = " " . substr("Time" . $blank, 0, 10) . substr("Lane" . $blank, 0, 8) . substr("Trans #" . $blank, 0, 8) . substr("Emp #" . $blank, 0, 10) . substr("Mem #" . $blank, 0, 10) . substr("Amount" . $blank, 0, 12) . "\n"; $shiftCutoff = date('Y-m-d 00:00:00'); $lookup = $db_a->query("SELECT MAX(datetime) FROM dtransactions \n WHERE DATE(datetime) = CURDATE() AND upc='ENDOFSHIFT' AND \n register_no=" . CoreLocal::get('laneno')); if ($db_a->num_rows($lookup) > 0) { $row = $db_a->fetch_row($lookup); if ($row[0] != '') { $shiftCutoff = $row[0]; } } if (is_array($k)) { $k = "'" . implode("','", $k) . "'"; } elseif (!is_numeric($k)) { if ($k[0] == '#') { $k = substr($k, 1); $q = 'card_no'; } else { $k = "'" . $k . "'"; $q = 'trans_subtype'; } } else { $q = 'department'; } // $q = (!is_numeric($k)) ? 'trans_subtype' : 'department'; if ($i === False) { $tenderQ = "SELECT -SUM(total) AS net, COUNT(total) FROM dlog \n WHERE register_no=" . CoreLocal::get('laneno') . " AND {$q} IN({$k}) AND tdate >= '{$shiftCutoff}' AND emp_no <> 9999"; } else { $tenderQ = "SELECT tdate,register_no,emp_no,trans_no,card_no,total FROM dlog \n WHERE register_no=" . CoreLocal::get('laneno') . " and {$q} IN({$k}) AND tdate >= '{$shiftCutoff}' AND emp_no <> 9999 order by tdate"; } $tenderR = $db_a->query($tenderQ); $tender = $db_a->fetch_array($tenderR); $num_rows = $db_a->num_rows($tenderR); if ($i === False) { $ret = " " . substr($label . $blank . $blank, 0, 20) . substr($blank . number_format($tender[0], 2), -8) . substr($blank . $tender[1], -8) . "\n"; } else { $sum = 0; $ret = ReceiptLib::centerString($label) . "\n"; $ret .= ReceiptLib::centerString("------------------------------------------------------"); $ret .= $fieldNames; // for ($i = 0; $i < $num_rows; $i++) { while ($row = $db_a->fetch_array($tenderR)) { // $row = $db_a->fetch_array($tenderR); $timeStamp = TenderReport::timeStamp($row["tdate"]); $ret .= " " . substr($timeStamp . $blank, 0, 10) . substr($row["register_no"] . $blank, 0, 9) . substr($row["trans_no"] . $blank, 0, 8) . substr($blank . $row['emp_no'], -5) . substr($blank . $row["card_no"], -6) . substr($blank . number_format($row["total"], 2), -12) . "\n"; $sum += $row["total"]; } $ret .= ReceiptLib::centerString("------------------------------------------------------"); $ret .= substr($blank . $blank . $blank . "Count: " . $num_rows . " Total: " . number_format($sum, 2), -56) . "\n"; $ret .= str_repeat("\n", 3); } return $ret; }