booking/work/files/print/static.php
2025-03-24 19:02:58 +03:00

476 lines
12 KiB
PHP

<?php
$inv_id = $_GET['inv_id'];
if (empty($inv_id)) {
$booking_id = $_GET['book_id'];
$get_invoices_has_book_sql = mysqli_query(
$db,
"SELECT `invoices_id` FROM `invoices_has_book` WHERE `book_id` = $booking_id LIMIT 1"
);
$invoices_has_book_row = mysqli_fetch_assoc($get_invoices_has_book_sql);
$inv_id = $invoices_has_book_row['invoices_id'];
}
$get_invoices_sql = mysqli_query(
$db,
"SELECT
`invoices`.`id`,
`invoices`.`number_style`,
`branch`.`pu_name`,
`branch`.`commercial_register_number_10`,
`invoices`.`price`,
`invoices`.`date_time`,
`user`.`name` AS `user_name`
FROM `invoices`
LEFT JOIN `user` ON `invoices`.`user_id` = `user`.`id`
LEFT JOIN `emplyee` ON `user`.`emplyee_id` = `emplyee`.`id`
LEFT JOIN `branch` ON `emplyee`.`branch_id` = `branch`.`id`
WHERE `invoices`.`id` = $inv_id"
);
$invoices_row = mysqli_fetch_assoc($get_invoices_sql);
$get_book_id_sql = mysqli_query(
$db,
"SELECT `book_id` FROM `invoices_has_book` WHERE `invoices_id` = $inv_id LIMIT 1"
);
$book_id_row = mysqli_fetch_assoc($get_book_id_sql);
$book_id = $book_id_row['book_id'];
$get_tretment_sql = mysqli_query(
$db,
"SELECT
`tretment`.`name`,
`tretment`.`number`
FROM `book`
LEFT JOIN `tretment` ON `book`.`tretment_id` = `tretment`.`id`
WHERE `book`.`id` = $book_id"
);
$tretment_row = mysqli_fetch_assoc($get_tretment_sql);
$get_invoices_has_book_sql = mysqli_query(
$db,
"SELECT
`invoices_details_has_how_pay`.`pay`,
`invoices_details_has_how_pay`.`how_pay_id`
FROM `invoices_details`
INNER JOIN `invoices_details_has_how_pay` ON `invoices_details_has_how_pay`.`invoices_details_id` = `invoices_details`.`id`
WHERE `invoices_details`.`invoices_id` = $inv_id"
);
$how_pay_arr = array();
while ($invoices_has_book_row = mysqli_fetch_assoc($get_invoices_has_book_sql)) {
$how_pay_arr[$invoices_has_book_row['how_pay_id']] = $invoices_has_book_row['pay'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>طباعة الفاتورة</title>
<!-- Normalize or reset CSS with your favorite library -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
<!-- Load paper.css for happy printing -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paper-css/0.3.0/paper.css">
<!-- Custom styles for this document -->
<link href="https://fonts.googleapis.com/css?family=Tangerine:700" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="assets/css/mo2_style.css">
<style>
body {
font-family: 'Cairo', sans-serif !important;
}
</style>
<style>
@page {
size: A4
}
body {
font-size: 21pt;
font-weight: 700;
}
.mo_border {
border-bottom: #000 solid 1px;
padding-bottom: 15px;
margin-bottom: 15px;
}
/*
@media print{
div#display {
display: flex;
height: auto;
width: 100%;
align-items: center;
}
}
*/
</style>
</head>
<body onload="print_f()" class="A4" dir="rtl" style="margin: 0 320px;">
<section>
<article>
<table width="100%" border="0">
<tbody>
<tr>
<td colspan="4" height="25px" align="center">
</td>
</tr>
<tr>
<td><img src="<?= $campany_info['logo-sm'] ?>" style="margin-left: 25px;width: 100%;"></td>
<td colspan="3">
<div class="mo_border">
<h3>
<?= $campany_info['company_name'] ?>
</h3>
</div>
<div class="mo_border"><b>الفرع</b> :
<?= $invoices_row['pu_name'] ?>
</div>
<div class="mo_border"><b>الرقم الضريبي</b> :
<?= $campany_info['vat_number'] ?>
</div>
<div class="mo_border"><b>السجل التجاري</b> :
<?= $invoices_row['commercial_register_number_10'] ?>
</div>
<!-- <div class="mo_border" style="display: flex;justify-content: space-between;"><span><b>الموظف</b> : <?= $invoices_row['user_name'] ?></span></div> -->
<div class="mo_border"><b>طريقة السداد</b> :
<?php
if ($how_pay_arr['1'] > 0) {
?>
كاش: <?=$how_pay_arr['1']?>
<?php
}
if ($how_pay_arr['2'] > 0) {
?>
شبكة: <?=$how_pay_arr['2']?>
<?php
}
if ($how_pay_arr['3'] > 0 || $how_pay_arr['4'] > 0) {
?>
رصيد: <?=$how_pay_arr['3'] + $how_pay_arr['4']?>
<?php
}
?>
</div>
</td>
</tr>
<tr>
<td colspan="4" height="25px" align="center">
</td>
</tr>
</tbody>
</table>
<div style="text-align: center;">
<h1>فاتورة ضريبية مبسطة</h1>
<h3>Simplified Tax Invoice</h3>
</div>
<table width="100%" border="0">
<tbody>
<tr>
<td colspan="4" height="25px" align="center">
</td>
</tr>
<tr>
<td class="mo_border"><b>رقم الفاتورة</b></td>
<td class="mo_border"><b>التاريخ</b></td>
<td class="mo_border"><b>الوقت</b></td>
<td class="mo_border"><b>العميل</b></td>
<td class="mo_border"><b>جوال العميل</b></td>
</tr>
<tr>
<td class="mo_border"><b>
<?= $invoices_row['number_style'] ?>
</b></td>
<td class="mo_border">
<?= date('d-m-y', strtotime($invoices_row['date_time'])) ?>
</td>
<td class="mo_border">
<?= date((date("H", strtotime($invoices_row['date_time'])) > 11) ? 'h:i \م' : 'h:i \ص', strtotime($invoices_row['date_time'])) ?>
</td>
<td class="mo_border">
<?= $tretment_row['name'] ?>
</td>
<td class="mo_border">0
<?= $tretment_row['number'] ?>
</td>
</tr>
</tbody>
</table>
<table width="100%" border="0">
<tbody>
<tr>
<td colspan="4" height="25px" align="center">
</td>
</tr>
<tr>
<td class="mo_border" width="9%"><b></b></td>
<td class="mo_border" width="35%"><b>نوع الخدمة</b></td>
<td class="mo_border" width="25%"><b>السعر</b></td>
<td class="mo_border" width="25%"><b>الإجمالي شامل الضريبة</b></td>
</tr>
<?php
$count = 1;
$invoices_details_id = 0;
$get_invoices_has_book_sql = mysqli_query(
$db,
"SELECT
`invoices_details`.`id`,
`services`.`name`,
`services`.`price`
FROM `invoices_has_book`
LEFT JOIN `book` ON `invoices_has_book`.`book_id` = `book`.`id`
LEFT JOIN `book_details` ON `book_details`.`book_id` = `book`.`id`
LEFT JOIN `services` ON `book_details`.`services_id` = `services`.`id`
LEFT JOIN `invoices_details` ON `invoices_details`.`invoices_id` = `invoices_has_book`.`invoices_id`
WHERE `invoices_has_book`.`invoices_id` = $inv_id
AND `book_details`.`id` IN (SELECT MAX(`id`) FROM `book_details` GROUP BY `book_details`.`book_id`)
AND `invoices_details`.`id` IN (SELECT MAX(`id`) FROM `invoices_details` GROUP BY `invoices_details`.`invoices_id`)"
);
$total = 0;
while ($invoices_has_book_row = mysqli_fetch_assoc($get_invoices_has_book_sql)) {
$invoices_details_id = $invoices_has_book_row['id'];
?>
<tr>
<td class="mo_border">
<?= $count ?>
</td>
<td class="mo_border">
<?= $invoices_has_book_row['name'] ?>
</td>
<td class="mo_border">
<?= round($invoices_has_book_row['price'], 2) ?>
</td>
<?php
if (!empty($vat)) {
?>
<td class="mo_border">
<?= round($invoices_has_book_row['price'] + ($invoices_has_book_row['price'] * $vat / 100), 2) ?>
</td>
<?php
}
?>
</tr>
<?php
$total += $invoices_has_book_row['price'];
$count++;
}
$get_invoices_discount_sql = mysqli_query(
$db,
"SELECT `discount` FROM `invoices_discount` WHERE `invoices_details_id` = $invoices_details_id "
);
$total_des = 0;
if (mysqli_num_rows($get_invoices_discount_sql) > 0) {
while ($invoices_discount_row = mysqli_fetch_assoc($get_invoices_discount_sql)) {
?>
<tr>
<td class="mo_border"></td>
<td class="mo_border">خصم</td>
<td class="mo_border">
<?= round($invoices_discount_row['discount'], 2) ?>-
</td>
<?php
if (!empty($vat)) {
?>
<td class="mo_border">
<?= round($invoices_discount_row['discount'] + ($invoices_discount_row['discount'] * $vat / 100), 2) ?>-
</td>
<?php
}
?>
</tr>
<?php
$total_des += $invoices_discount_row['discount'];
}
}
?>
<tr>
<td class="mo_border"></td>
<td class="mo_border">الإجمالي</td>
<td class="mo_border">
<?= round($total - $total_des, 2) ?>
</td>
<?php
if (!empty($vat)) {
?>
<td class="mo_border">
<?= round(($total - $total_des) + (($total - $total_des) * $vat / 100), 2) ?>
</td>
<?php
}
?>
</tr>
<tr>
<td colspan="4" height="75px" align="center">
</td>
</tr>
<?php
/*
* QR Encoding Functions
*/
function __getLength($value)
{
return strlen($value);
}
function __toHex($value)
{
return pack("H*", sprintf("%02X", $value));
}
function __toString($__tag, $__value, $__length)
{
$value = (string) $__value;
return __toHex($__tag) . __toHex($__length) . $value;
}
function __getTLV($dataToEncode)
{
$__TLVS = '';
for ($i = 0; $i < count($dataToEncode); $i++) {
$__tag = $dataToEncode[$i][0];
$__value = $dataToEncode[$i][1];
$__length = __getLength($__value);
$__TLVS .= __toString($__tag, $__value, $__length);
}
return $__TLVS;
}
$dataToEncode = [
[1, $campany_info['company_name']],
[2, $campany_info['vat_number']],
[3, date("Y-m-d\TH:i:s", strtotime($invoices_row['date_time']))],
[4, round(($total - $total_des) + (($total - $total_des) * $vat / 100), 2)],
[5, round((($total - $total_des) * $vat / 100), 2)]
];
$__TLV = __getTLV($dataToEncode);
$__QR = base64_encode($__TLV);
require_once '../../vendor/autoload.php';
use chillerlan\QRCode\QRCode;
use chillerlan\QRCode\QROptions;
// The data you want to encode
$data = $__QR;
// Set up QR code options
$options = new QROptions([
'version' => 8, // Adjust if necessary
'outputType' => QRCode::OUTPUT_IMAGE_PNG,
'eccLevel' => QRCode::ECC_L,
'scale' => 3, // Scale factor, adjust as needed
'imageBase64' => true, // Output as base64
]);
// Create a new instance of QRCode
$qrcode = new QRCode($options);
// Generate the QR code as base64
$qrCodeBase64 = $qrcode->render($data);
?>
<td colspan="4" align="center" height="35px">
<img src="<?= $qrCodeBase64 ?>"
width="215" height="215">
<br>
--- Check Closed ---
</td>
<tr>
<td colspan="4" align="center">
<h3>شكراً على زيارتكم</h3>
<h3></h3>
</td>
</tr>
<tr>
<td colspan="4" height="75px" align="center">
</td>
</tr>
<tr>
<td colspan="4" align="center">
<?= $campany_info['link'] ?>
</td>
</tr>
<tr>
<td style="direction: ltr;" colspan="4" height="35px" align="center">
<?= date('d-m-Y h:i A', strtotime($date_time)); ?>
</td>
</tr>
</tbody>
</table>
</article>
</section>
<script type="text/javascript">
window.onafterprint = function (e) {
closePrintView();
};
function print_f() {
window.print();
}
function closePrintView() {
window.close();
}
</script>
</body>
</html>