|
|
@ -12,7 +12,7 @@ class GenerateReceipt {
|
|
|
|
|
|
|
|
|
|
|
|
const RECEIPT_TYPE_TRANSACTION = 1;
|
|
|
|
const RECEIPT_TYPE_TRANSACTION = 1;
|
|
|
|
const RECEIPT_TYPE_X = 2;
|
|
|
|
const RECEIPT_TYPE_X = 2;
|
|
|
|
const RECEIPT_TYPE_Y = 3;
|
|
|
|
const RECEIPT_TYPE_Z = 3;
|
|
|
|
|
|
|
|
|
|
|
|
static function transactionReceipt($transaction) {
|
|
|
|
static function transactionReceipt($transaction) {
|
|
|
|
global $database;
|
|
|
|
global $database;
|
|
|
@ -107,6 +107,7 @@ class GenerateReceipt {
|
|
|
|
'transactions.cashid' => $cash['cashid'],
|
|
|
|
'transactions.cashid' => $cash['cashid'],
|
|
|
|
]
|
|
|
|
]
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
|
|
|
|
$transactioncount = $database->count('transactions', ['cashid' => $cash['cashid']]);
|
|
|
|
foreach ($paymenttypes as $t) {
|
|
|
|
foreach ($paymenttypes as $t) {
|
|
|
|
$balance[$t['type']] = 0.0;
|
|
|
|
$balance[$t['type']] = 0.0;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -118,6 +119,7 @@ class GenerateReceipt {
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Date:", "", date(DATETIME_FORMAT)));
|
|
|
|
$receipt->appendLine(new ReceiptLine("Date:", "", date(DATETIME_FORMAT)));
|
|
|
|
$receipt->appendLine(new ReceiptLine("Register:", "", $registername));
|
|
|
|
$receipt->appendLine(new ReceiptLine("Register:", "", $registername));
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Transactions:", "", $transactioncount));
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendBlank();
|
|
|
|
$receipt->appendBlank();
|
|
|
|
$receipt->appendBreak();
|
|
|
|
$receipt->appendBreak();
|
|
|
@ -143,16 +145,72 @@ class GenerateReceipt {
|
|
|
|
return $receipt;
|
|
|
|
return $receipt;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static function getReceipt($type, $transaction = null, $register = null, $cashid = null) {
|
|
|
|
static function zReceipt($cashid) {
|
|
|
|
|
|
|
|
global $database;
|
|
|
|
|
|
|
|
$receipt = new Receipt();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$cash = $database->get('cash_drawer', ['open', 'close', 'start_amount', 'end_amount', 'cashid', 'registerid'], ['cashid' => $cashid]);
|
|
|
|
|
|
|
|
$registername = $database->get('registers', 'registername', ['registerid' => $cash['registerid']]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$balance = [];
|
|
|
|
|
|
|
|
$paymenttypes = $database->select('payment_types', ['typename (type)', 'text']);
|
|
|
|
|
|
|
|
$payments = $database->select("payments", [
|
|
|
|
|
|
|
|
"[>]transactions" => ['txid' => 'txid'],
|
|
|
|
|
|
|
|
"[>]payment_types" => ['type' => 'typeid']
|
|
|
|
|
|
|
|
], ['amount', 'typename (type)'], [
|
|
|
|
|
|
|
|
'AND' => [
|
|
|
|
|
|
|
|
'transactions.cashid' => $cash['cashid'],
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
$transactioncount = $database->count('transactions', ['cashid' => $cashid]);
|
|
|
|
|
|
|
|
foreach ($paymenttypes as $t) {
|
|
|
|
|
|
|
|
$balance[$t['type']] = 0.0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($payments as $p) {
|
|
|
|
|
|
|
|
$balance[$p['type']] += $p['amount'];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendHeader(new ReceiptLine(lang("z report", false), "", "", ReceiptLine::LINEFORMAT_BOLD | ReceiptLine::LINEFORMAT_CENTER));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Date:", "", date(DATETIME_FORMAT)));
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Register:", "", $registername));
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Transactions:", "", $transactioncount));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendBlank();
|
|
|
|
|
|
|
|
$receipt->appendBreak();
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Opening", "", "", ReceiptLine::LINEFORMAT_CENTER));
|
|
|
|
|
|
|
|
$receipt->appendBreak();
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Date:", "", date(DATETIME_FORMAT, strtotime($cash['open']))));
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Cash:", "", '$' . number_format($cash['start_amount'], 2)));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendBlank();
|
|
|
|
|
|
|
|
$receipt->appendBreak();
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Closing", "", "", ReceiptLine::LINEFORMAT_CENTER));
|
|
|
|
|
|
|
|
$receipt->appendBreak();
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Date:", "", date(DATETIME_FORMAT, strtotime($cash['close']))));
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Cash:", "", '$' . number_format($cash['end_amount'], 2)));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$receipt->appendBlank();
|
|
|
|
|
|
|
|
$receipt->appendBreak();
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine("Sales", "", "", ReceiptLine::LINEFORMAT_CENTER));
|
|
|
|
|
|
|
|
$receipt->appendBreak();
|
|
|
|
|
|
|
|
foreach ($paymenttypes as $t) {
|
|
|
|
|
|
|
|
$receipt->appendLine(new ReceiptLine(lang($t['text'], false) . ":", "", '$' . number_format($balance[$t['type']], 2)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return $receipt;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static function getReceipt($type, $data) {
|
|
|
|
switch ($type) {
|
|
|
|
switch ($type) {
|
|
|
|
case GenerateReceipt::RECEIPT_TYPE_X:
|
|
|
|
case GenerateReceipt::RECEIPT_TYPE_X:
|
|
|
|
return GenerateReceipt::xReceipt($register);
|
|
|
|
return GenerateReceipt::xReceipt($data);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case GenerateReceipt::RECEIPT_TYPE_Y:
|
|
|
|
case GenerateReceipt::RECEIPT_TYPE_Z:
|
|
|
|
return GenerateReceipt::Receipt($register, $cashid);
|
|
|
|
return GenerateReceipt::zReceipt($data);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case GenerateReceipt::RECEIPT_TYPE_TRANSACTION:
|
|
|
|
case GenerateReceipt::RECEIPT_TYPE_TRANSACTION:
|
|
|
|
return GenerateReceipt::transactionReceipt($transaction);
|
|
|
|
return GenerateReceipt::transactionReceipt($data);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
return new Receipt();
|
|
|
|
return new Receipt();
|
|
|
|