openflexy

This commit is contained in:
2026-08-12 19:31:01 +02:00
parent 8e68820ba1
commit 8936ed1008
2 changed files with 26 additions and 19 deletions
+9 -16
View File
@@ -2,11 +2,9 @@
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
include('Connections/bkngstm.php');
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die(json_encode(['error' => 'Connessione al database fallita']));
}
@@ -38,22 +36,17 @@ if (isset($_GET['idorder'])) {
$expiry_row = $expiry_lessons_result->fetch_assoc();
$expirylessons = $expiry_row['expirylessons'];
// Calcola la data della expirylessons-esima lezione
$expiry_date_query = "SELECT dateschedule FROM serviceschedule WHERE idservice = ? AND dateschedule >= ? ORDER BY dateschedule LIMIT ?, 1";
$stmt_expiry_date = $conn->prepare($expiry_date_query);
$offset = $expirylessons - 1;
$stmt_expiry_date->bind_param("isi", $service_id, $first_lesson_date, $offset);
$stmt_expiry_date->execute();
$expiry_date_result = $stmt_expiry_date->get_result();
if ($expiry_date_result->num_rows > 0) {
$date_row = $expiry_date_result->fetch_assoc();
$expireon = $date_row['dateschedule'];
// expirylessons = numero di SETTIMANE di validità (es. 12 ticket -> 15 settimane)
// La scadenza si calcola SEMPRE dalla prima lezione, a prescindere
// dalle date presenti in calendario.
try {
$base = new DateTime($first_lesson_date);
$base->modify('+' . (int)$expirylessons . ' weeks');
$expireon = $base->format('Y-m-d');
echo json_encode(['expiry_date' => $expireon]);
} else {
echo json_encode(['error' => 'Non abbastanza lezioni disponibili per calcolare la scadenza']);
} catch (Exception $ex) {
echo json_encode(['error' => 'Data prima lezione non valida']);
}
$stmt_expiry_date->close();
} else {
echo json_encode(['error' => 'Nessun record in expiryparameter per quantityclass: ' . $quantity_class]);
}
+17 -3
View File
@@ -89,11 +89,20 @@ $stmt_schedule->bind_param("is", $service_id, $first_lesson_date);
$stmt_schedule->execute();
$service_schedule_result = $stmt_schedule->get_result();
if ($service_schedule_result->num_rows > 0) {
$is_openflexy = false;
$stmt_svc_name = $conn->prepare("SELECT servicename FROM service WHERE idservice = ?");
$stmt_svc_name->bind_param("i", $service_id);
$stmt_svc_name->execute();
if ($svc_row = $stmt_svc_name->get_result()->fetch_assoc()) {
$is_openflexy = (strcasecmp(trim($svc_row['servicename']), 'OpenFlexy') === 0);
}
$stmt_svc_name->close();
if ($is_openflexy || $service_schedule_result->num_rows > 0) {
echo "Record per l'ordine ID: $order_id\n";
$inserted_count = 0;
while ($schedule_row = $service_schedule_result->fetch_assoc()) {
while (!$is_openflexy && $schedule_row = $service_schedule_result->fetch_assoc()) {
if ($inserted_count >= $quantity_class) {
break;
}
@@ -255,7 +264,12 @@ if ($service_schedule_result->num_rows > 0) {
$mail->Subject = "YogiBook - Prenotazioni effettuate per il tuo ordine $ordern";
$mail->Body = str_replace(['{messageedit}', '{buttonedit}'], [$messageedit, $buttonedit], $htmlContent); // Se il template ha placeholders, altrimenti usa direttamente $messageedit come Body
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
try {
$mail->send();
} catch (Exception $e) {
// la mail non deve bloccare la finalizzazione dell'ordine
error_log('OpenFlexy/propaga - invio mail fallito: ' . $e->getMessage());
}
header("Location: orderbooklist.php");
exit();