init
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
require_once 'includes/db.php';
|
||||
require_once 'includes/auth.php';
|
||||
checkAuth();
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['order_ids'])) {
|
||||
$ids = $_POST['order_ids'];
|
||||
|
||||
// Tworzenie znaków zapytania do zapytania SQL (np. ?, ?, ?)
|
||||
$placeholders = str_repeat('?,', count($ids) - 1) . '?';
|
||||
|
||||
// Pobieranie zaznaczonych rekordów
|
||||
$sql = "SELECT * FROM " . DB_PREFIX . "orders WHERE id IN ($placeholders) ORDER BY id DESC";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute($ids);
|
||||
$orders = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Ustawienia nagłówków dla przeglądarki, by wymusić pobieranie pliku
|
||||
header('Content-Type: text/csv; charset=utf-8');
|
||||
header('Content-Disposition: attachment; filename=zamowienia_' . date('Ymd_Hi') . '.csv');
|
||||
|
||||
// Wymuszenie BOM (dzięki temu Excel od razu poprawnie przeczyta polskie znaki w UTF-8)
|
||||
echo "\xEF\xBB\xBF";
|
||||
|
||||
$output = fopen('php://output', 'w');
|
||||
|
||||
// Zapisanie nagłówków kolumn (zwróć uwagę na średniki, które lubi polski Excel)
|
||||
fputcsv($output, ['ID', 'Produkt', 'Part Number', 'Ilosc', 'Miejsce zakupu', 'Cena szt.', 'Data dostawy', 'Odbiorca', 'Adres dostawy', 'Status', 'Notatki'], ';');
|
||||
|
||||
// Zapisywanie danych
|
||||
foreach ($orders as $o) {
|
||||
fputcsv($output, [
|
||||
$o['id'],
|
||||
$o['product_name'],
|
||||
$o['part_number'],
|
||||
$o['quantity'],
|
||||
$o['purchase_place'],
|
||||
number_format($o['price_per_unit'], 2, ',', ''), // Cena z przecinkiem dla Excela
|
||||
$o['delivery_date'],
|
||||
$o['recipient'],
|
||||
$o['delivery_address'],
|
||||
$o['status'],
|
||||
$o['notes']
|
||||
], ';');
|
||||
}
|
||||
|
||||
fclose($output);
|
||||
exit();
|
||||
}
|
||||
|
||||
// Jeśli ktoś wszedł tu bezpośrednio lub nic nie zaznaczył, wracamy do indexu
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
?>
|
||||
Reference in New Issue
Block a user