fixed orders and riprogrammazione con scadenza

This commit is contained in:
2025-09-05 15:59:30 +02:00
parent 9254d420d2
commit 2d83c9da13
3 changed files with 1046 additions and 933 deletions
+34 -26
View File
@@ -195,44 +195,52 @@ if ($service_schedule_result->num_rows > 0) {
}
$stmt_schedule->close();
// Recupera il numero di settimane da expiryparameter
$expiry_class_query = "SELECT quantityclass, first_lesson_date FROM orderbook WHERE idorderbook = ?";
$stmt_expiry = $conn->prepare($expiry_class_query);
$stmt_expiry->bind_param("i", $order_id);
$stmt_expiry->execute();
$expiry_class_result = $stmt_expiry->get_result();
// Recupera il numero di lezioni da expiryparameter (ora expirylessons)
$expiry_lessons_query = "SELECT expirylessons FROM expiryparameter WHERE quantityclass = ?";
$stmt_expiry_lessons = $conn->prepare($expiry_lessons_query);
$stmt_expiry_lessons->bind_param("i", $quantity_class);
$stmt_expiry_lessons->execute();
$expiry_lessons_result = $stmt_expiry_lessons->get_result();
if ($expiry_class_result && $expiry_class_result->num_rows > 0) {
$row = $expiry_class_result->fetch_assoc();
$quantity_class = $row['quantityclass'];
$first_lesson_date = $row['first_lesson_date'];
if ($expiry_lessons_result && $expiry_lessons_result->num_rows > 0) {
$expiry_row = $expiry_lessons_result->fetch_assoc();
$expirylessons = $expiry_row['expirylessons'];
$expiry_weeks_query = "SELECT expiryweeks FROM expiryparameter WHERE quantityclass = ?";
$stmt_expiry_weeks = $conn->prepare($expiry_weeks_query);
$stmt_expiry_weeks->bind_param("i", $quantity_class);
$stmt_expiry_weeks->execute();
$expiry_weeks_result = $stmt_expiry_weeks->get_result();
// Calcola la data della expirylessons-esima lezione disponibile
$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; // Per prendere la n-esima riga (0-based offset)
$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_weeks_result && $expiry_weeks_result->num_rows > 0) {
$expiry_row = $expiry_weeks_result->fetch_assoc();
$expiry_weeks = $expiry_row['expiryweeks'];
if ($expiry_date_result->num_rows > 0) {
$date_row = $expiry_date_result->fetch_assoc();
$expireon = $date_row['dateschedule'];
// Aggiorna la colonna expireon in orderbook basandosi su first_lesson_date
$update_expiry_query = "UPDATE orderbook SET expireon = DATE_ADD(first_lesson_date, INTERVAL ? WEEK) WHERE idorderbook = ?";
// Aggiorna expireon in orderbook
$update_expiry_query = "UPDATE orderbook SET expireon = ? WHERE idorderbook = ?";
$stmt_update_expiry = $conn->prepare($update_expiry_query);
$stmt_update_expiry->bind_param("ii", $expiry_weeks, $order_id);
$stmt_update_expiry->bind_param("si", $expireon, $order_id);
$stmt_update_expiry->execute();
$stmt_update_expiry->close();
echo "Aggiornata la colonna expireon per l'ordine ID: $order_id\n";
echo "Aggiornata la colonna expireon per l'ordine ID: $order_id (scadenza alla lezione n. $expirylessons: $expireon)\n";
} else {
echo "Nessun record trovato in expiryparameter per quantityclass: $quantity_class\n";
// Non abbastanza lezioni: imposta a NULL o gestisci come preferisci
$update_expiry_query = "UPDATE orderbook SET expireon = NULL WHERE idorderbook = ?";
$stmt_update_expiry = $conn->prepare($update_expiry_query);
$stmt_update_expiry->bind_param("i", $order_id);
$stmt_update_expiry->execute();
$stmt_update_expiry->close();
echo "Non abbastanza lezioni disponibili per calcolare la scadenza per l'ordine ID: $order_id\n";
}
$stmt_expiry_weeks->close();
$stmt_expiry_date->close();
} else {
echo "Nessun record trovato in orderbook per l'ordine ID: $order_id\n";
echo "Nessun record trovato in expiryparameter per quantityclass: $quantity_class\n";
}
$stmt_expiry->close();
$stmt_expiry_lessons->close();
// Recupera il numero da expiryparameter per maxreschedule
$reschedule_number_query = "SELECT reschedulenumber FROM expiryparameter WHERE quantityclass = ?";