Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/admin/ajax_generate_serce.php
<?php
ini_set('display_errors', 0); // Wyłącz wyświetlanie błędów w przeglądarce
ini_set('log_errors', 1); // Włącz logowanie błędów
error_reporting(E_ALL);

ini_set('error_log', __DIR__ . '/heart_php_errors.log'); // Ustaw ścieżkę do pliku logu błędów

require('./classes/the_mysql.class.php');

header('Content-Type: application/json; charset=utf-8');


  $mysql = new MySQL();

// Zamiast sztywnych wartości pobieramy z $_POST:
if (!isset($_POST['serca_wzor'], $_POST['serca_imie'], $_POST['serca_data'], $_POST['serca_ilosc'])) {
    echo json_encode([
        'success' => false,
        'message' => 'Brak wymaganych parametrów (serca_wzor, serca_imie, serca_data, serca_ilosc).'
    ]);
    exit;
}

$pattern = $_POST['serca_wzor'];
$name    = $_POST['serca_imie'];
$date    = $_POST['serca_data'];
$amount  = (int)$_POST['serca_ilosc'];
$id_zamowienia    = $_POST['generuj_skladke_idzamowienia'];


// Możesz też pobrać login z hidden, np.:
$login = isset($_POST['generuj_skladke_nick']) ? $_POST['generuj_skladke_nick'] : 'DefaultLogin';

// Wygeneruj link do QR - przykład:
$qrlink = "https://mail.google.com/mail/u/0/#search/".$login;

// Adres twojego serwera Flask
$flaskUrl = "http://91.231.182.79:8080/generate"; 

// Przygotuj dane do wysłania do Flaska
$postData = [
    "name"    => $name,
    "date"    => $date,
    "pattern" => $pattern,
    "login"   => $login,
    "amount"  => $amount,
    "qrlink"  => $qrlink
];

// Tablica odpowiedzi
$responseArray = [
    "success" => false,
    "message" => "",
    "zip_url" => "",
    "php_zip_path" => "",
    "extract_dir" => ""
];

// 1) Wyślij zapytanie POST do Flask
$ch = curl_init($flaskUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

// Sprawdź czy cURL się nie wysypał
if ($response === false) {
    $responseArray['success'] = false;
    $responseArray['message'] = 'Błąd cURL: ' . curl_error($ch);
    echo json_encode($responseArray);
    exit;
}

$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpcode !== 200) {
    $responseArray['success'] = false;
    $responseArray['message'] = "Błąd po stronie Flask, kod HTTP: $httpcode\nOdpowiedź: $response";
    echo json_encode($responseArray);
    exit;
}

// 2) Parsuj JSON z Flask
$data = json_decode($response, true);
if (!$data || !isset($data['success'])) {
    $responseArray['success'] = false;
    $responseArray['message'] = "Błąd dekodowania JSON lub brak pola 'success'. Otrzymano: $response";
    echo json_encode($responseArray);
    exit;
}

if (!$data['success']) {
    $responseArray['success'] = false;
    $responseArray['message'] = "Generowanie nie powiodło się: " . $data['message'];
    echo json_encode($responseArray);
    exit;
}

// 3) Mamy zip_url w odpowiedzi
$zipUrl = $data['zip_url'];
$responseArray['zip_url'] = $zipUrl;

// 4) Pobierz ZIP z Flask
$downloadUrl = "http://91.231.182.79:8080" . $zipUrl; 
$localZipPath = __DIR__ . "/pobrane_hearts.zip";

$fp = fopen($localZipPath, 'w+');
$ch2 = curl_init($downloadUrl);
curl_setopt($ch2, CURLOPT_FILE, $fp);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch2);
curl_close($ch2);
fclose($fp);

$responseArray['php_zip_path'] = $localZipPath;

// 5) Rozpakowanie ZIP
$zip = new ZipArchive;
if ($zip->open($localZipPath) === TRUE) {
    $extractDir = __DIR__ . "/skladki/upload/AUTOGEN_73x66";
    if (!is_dir($extractDir)) {
        mkdir($extractDir, 0777, true);
    }
    $zip->extractTo($extractDir);
    $zip->close();

    $responseArray['success'] = true;
    $responseArray['message'] = "Pomyślnie wygenerowano i pobrano ZIP.";

try {


        
        $mysql->sqlInsertArray('skladki_wzory', 
            [
                'filename' => 'serce',
                'rodzaj' => 'serce_7',
                'id_zamowienia' => $id_zamowienia,
                'count' => $amount,
                'logs' => ''
            ]);

} catch (Exception $e) {
    error_log("Błąd złapany: " . $e->getMessage());
    $responseArray['success'] = false;
    $responseArray['message'] = "Błąd systemu: " . $e->getMessage();
    echo json_encode($responseArray);
    exit;
}




    $responseArray['extract_dir'] = $extractDir;

} else {
    $responseArray['success'] = false;
    $responseArray['message'] = "Nie udało się otworzyć ZIP.";
}

// Wyślij dane jako JSON:
echo json_encode($responseArray);
exit;