From cb5abd9358525e74355a0f4b64a89627501013f0 Mon Sep 17 00:00:00 2001 From: Arsen Mirzaev Tatyano-Muradovich Date: Sun, 7 Apr 2024 05:28:15 +0700 Subject: [PATCH] resolved #84 --- mirzaev/ebala/system/models/payments.php | 48 +++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/mirzaev/ebala/system/models/payments.php b/mirzaev/ebala/system/models/payments.php index 3810d2f..ae14ac0 100755 --- a/mirzaev/ebala/system/models/payments.php +++ b/mirzaev/ebala/system/models/payments.php @@ -431,6 +431,15 @@ final class payments extends core // Инициализация счётчика строк $row = 9; + // Инициализация буфера объединённых данных всех магазинов + $total = [ + 'workers' => 0, + 'hours' => 0, + 'hour' => [], + 'payment' => 0, + 'vat' => 0 + ]; + foreach ($merged as $id => $dates) { // Перебор магазинов @@ -491,10 +500,17 @@ final class payments extends core ->setCellValue("E$row", '') ->setCellValue("F$row", $result['workers']) ->setCellValue("G$row", $result['hours']) - ->setCellValue("H$row", array_sum($result['hour']) / count($result['hour'])) + ->setCellValue("H$row", $hour = array_sum($result['hour']) / count($result['hour'])) ->setCellValue("I$row", $result['payment']) ->setCellValue("J$row", $result['vat']); + // Запись в буфер объединённых данных всех магазинов + $total['workers'] += $result['workers']; + $total['hours'] += $result['hours']; + $total['hour'][] = $hour; + $total['payment'] += $result['payment']; + $total['vat'] += $result['vat']; + // Запись цвета строки с общими данными магазина $spreadsheet ->getActiveSheet() @@ -508,6 +524,36 @@ final class payments extends core } } + // Запись строки с общими данными всех магазинов + $spreadsheet + ->setActiveSheetIndex(0) + ->setCellValue("A$row", "Итого") + ->setCellValue("B$row", '') + ->setCellValue("C$row", '') + ->setCellValue("D$row", '') + ->setCellValue("E$row", '') + ->setCellValue("F$row", $total['workers']) + ->setCellValue("G$row", $total['hours']) + ->setCellValue("H$row", array_sum($total['hour']) / count($total['hour'])) + ->setCellValue("I$row", $total['payment']) + ->setCellValue("J$row", $total['vat']); + + // Запись цвета строки с общими данными всех магазинов + $spreadsheet + ->getActiveSheet() + ->getStyle("A$row:J$row") + ->getFill() + ->setFillType(Fill::FILL_SOLID) + ->getStartColor() + ->setARGB('ffdfe4ec'); + + // Запись жирного текста для строки с общими данными всех магазинов + $spreadsheet + ->getActiveSheet() + ->getStyle("A$row:J$row") + ->getFont() + ->setBold(true); + // Write to output buffer IOFactory::createWriter($spreadsheet, 'Xlsx')->save('php://output');