Update: 2026-05-15 15:06:01

This commit is contained in:
Hamza-Ayed
2026-05-15 15:06:02 +03:00
parent 7ee897ff3d
commit 51119e3201

View File

@@ -113,6 +113,20 @@ $dec = function($val) {
return ($result !== false && $result !== null) ? $result : (string)$val;
};
// Robust download helper for QR codes
$downloadUrl = function($url) {
$data = @file_get_contents($url);
if ($data === false && function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$data = curl_exec($ch);
curl_close($ch);
}
return $data;
};
// ══════════════════════════════════════════
// BUILD SPREADSHEET
// ══════════════════════════════════════════
@@ -169,6 +183,25 @@ $summarySheet->getStyle("J1")->applyFromArray([
'alignment' => ['horizontal' => Alignment::HORIZONTAL_LEFT, 'vertical' => Alignment::VERTICAL_CENTER],
]);
// --- Add QR Code to Summary Header ---
try {
$summaryUrl = "https://musadaq.intaleqapp.com/";
$qrApiUrl = "https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=" . urlencode($summaryUrl);
$qrData = $downloadUrl($qrApiUrl);
if ($qrData) {
$tmpQr = tempnam(sys_get_temp_dir(), 'qr_sum_');
file_put_contents($tmpQr, $qrData);
$drawingQr = new Drawing();
$drawingQr->setName('Musadaq QR');
$drawingQr->setPath($tmpQr);
$drawingQr->setHeight(38);
$drawingQr->setCoordinates('I1');
$drawingQr->setOffsetX(40);
$drawingQr->setOffsetY(5);
$drawingQr->setWorksheet($summarySheet);
}
} catch(\Exception $e) {}
// Summary Meta Info
$companyNameFilter = 'جميع الشركات';
if ($companyId) {
@@ -309,19 +342,23 @@ foreach ($invoices as $invIdx => $inv) {
]);
// --- Add Verification QR Code ---
try {
$verifyUrl = "https://musadaq.intaleqapp.com/index.php?route=v1/verify&id=" . $inv['id'];
$qrApiUrl = "https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=" . urlencode($verifyUrl);
// Download QR to temp file
$tmpQr = tempnam(sys_get_temp_dir(), 'qr_');
file_put_contents($tmpQr, file_get_contents($qrApiUrl));
$qrData = $downloadUrl($qrApiUrl);
if ($qrData) {
$tmpQr = tempnam(sys_get_temp_dir(), 'qr_inv_');
file_put_contents($tmpQr, $qrData);
$drawingQr = new Drawing();
$drawingQr->setName('Verification QR');
$drawingQr->setPath($tmpQr);
$drawingQr->setHeight(70);
$drawingQr->setCoordinates('H' . ($invRow + 2)); // Place below the headers area
$drawingQr->setHeight(38);
$drawingQr->setCoordinates('H' . $invRow);
$drawingQr->setOffsetX(40);
$drawingQr->setOffsetY(5);
$drawingQr->setWorksheet($sheet);
}
} catch(\Exception $e) {}
$invRow++;