fixed orders and riprogrammazione con scadenza
This commit is contained in:
@@ -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 = ?";
|
||||
|
||||
Reference in New Issue
Block a user