format("Y"); $month = $date->format("m"); $first = "{$year}-{$month}-01 03:00:00"; $second = new \DateTime($first); $second->modify("first day of next month"); $year = $second->format("Y"); $month = $second->format("m"); $second = "{$year}-{$month}-01 03:00:00"; $query = <<" . var_export($queryResult, true) . ""; // die; } $detailsQuery = <<<'SQL' SELECT book.id as booking_id, book.create_time as booking_registration_date, dd.day_date as booking_date, dd.day_time as booking_time, branch.branch_name as employee_branch, services.name as service_name, emplyee.name as employee_name, driver.name as driver_name, services.price as service_official_price, status.name as status_name FROM invoices_details INNER JOIN invoices_has_book ON invoices_has_book.invoices_id = invoices_details.invoices_id INNER JOIN book ON book.id = invoices_has_book.book_id INNER JOIN book_details dd ON dd.book_id = book.id INNER JOIN book_has_driver_for_points ON book_has_driver_for_points.book_id = book.id INNER JOIN emplyee as driver ON driver.id = book_has_driver_for_points.emplyee_id INNER JOIN services ON services.id = dd.services_id INNER JOIN branch ON branch.id = dd.branch_id INNER JOIN emplyee ON emplyee.id = dd.emplyee_id INNER JOIN status ON status.id = dd.status_id INNER JOIN invoices_details_has_how_pay ON invoices_details_has_how_pay.invoices_details_id = invoices_details.id INNER JOIN how_pay ON how_pay.id = invoices_details_has_how_pay.how_pay_id WHERE dd.id IN (SELECT MAX(book_details.id) FROM book_details WHERE book_id = dd.book_id GROUP BY book_id) AND dd.status_id IN (10, 12, 13, 16, 19, 22, 26) AND invoices_details.invoices_id = ? SQL; $finalResult = []; foreach ($queryResult as &$data) { $invoiceId = $data['invoice_id']; $stmt = mysqli_prepare($db, $detailsQuery); $error = mysqli_error($db); if (!empty($error)) { var_dump($error); die; } $stmt->bind_param('i', $invoiceId); $stmt->execute(); $result = $stmt->get_result(); $result = $result->fetch_all(MYSQLI_ASSOC); if (empty($result)) { continue; } else { $data['booking_details'] = $result; $finalResult[] = $data; } } $lastTableDate = null; $dayCount = 0; $servicePriceTotal = 0.0; $servicePriceTotalTaxed = 0.0; $paidTotal = 0.0; $discountTotal = 0.0; $deficit = 0.0; function printDayTotals(\DateTime $currentTableDate) { global $servicePriceTotal; global $servicePriceTotalTaxed; global $dayCount; global $paidTotal; global $discountTotal; global $lastTableDate; global $deficit; $total = round($servicePriceTotal, 2); $totalTaxed = round($servicePriceTotalTaxed, 2); $deficit = round($totalTaxed - $paidTotal - $discountTotal, 2); if ($servicePriceTotal > 0) { if ($deficit <= 0) { $deficit = abs($deficit); $print = << عدد الفواتير:

$dayCount

اجمالي الفواتير:

$paidTotal

اجمالي الخصومات:

$discountTotal

مجموع سعر الخدمات بدون الضريبة:

$total

مجموع سعر الخدمات مع الضريبة:

$totalTaxed

مبالغ إضافية دفعها العملاء:

$deficit

HTML; } else { $print = << عدد الفواتير:

$dayCount

اجمالي الفواتير:

$paidTotal

اجمالي الخصومات:

$discountTotal

مجموع سعر الخدمات بدون الضريبة:

$total

مجموع سعر الخدمات مع الضريبة:

$totalTaxed

خصم أموال لم يسجله النظام:

$deficit

HTML; } } else { $print = ""; } $dayCount = 0; $servicePriceTotal = 0.0; $servicePriceTotalTaxed = 0.0; $paidTotal = 0.0; $discountTotal = 0.0; $lastTableDate = $currentTableDate; echo $print; } ?> &$res): ?> format("Y-m-d"); $current = $currentTableDate->format("Y-m-d"); $currentHour = $currentTableDate->format('H'); if ($currentTableDate->format('H') < 3) { $currentTableDate->modify('-1 day'); $current = $currentTableDate->format('Y-m-d'); } if ($last != $current) { printDayTotals($currentTableDate); } $detailsCount = $res['booking_count']; $paidTotal += round($res['amount_paid'], 2); $discountTotal += round($res['discount'] * 1.15, 2); ?>
# معرف الفاتورة رقم الفاتورة اسم العميل تاريخ ووقت إنشاء الفاتورة اجمالي مبلغ الفاتورة بعد الخصم والضريبة الخصم طريقة الدفع ملاحظات الفاتورة تفاصيل الزيارة
رقم الحجز تاريخ إنشاء الحجز تاريخ الزيارة وقت الزيارة فرع خروج الفني اسم السائق اسم الخدمة اسم الفني سعر الخدمة الأساسي قبل الضريبة وقبل الخصم سعر الخدمة بعد الضريبة وقبل الخصم الحالة