chore: add corrige adresse
This commit is contained in:
@@ -407,6 +407,51 @@ func (d *Database) GetCommandItemsByUsername(username string) ([]map[string]inte
|
||||
return items, nil
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// DELETE COMMAND ITEM - ADMIN ONLY
|
||||
// ============================================
|
||||
|
||||
func (d *Database) DeleteCommandItem(commandID, itemID int) error {
|
||||
log.Printf("🗑️ [DeleteCommandItem] START - commandID=%d, itemID=%d", commandID, itemID)
|
||||
|
||||
if err := validateCommandID(commandID); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := validateItemID(itemID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Récupérer le prix et la quantité avant suppression pour mettre à jour le total
|
||||
var prix, quantite float64
|
||||
checkQuery := `SELECT prix, quantite FROM command_items WHERE id = $1 AND command_id = $2`
|
||||
err := d.QueryRow(checkQuery, itemID, commandID).Scan(&prix, &quantite)
|
||||
if err == sql.ErrNoRows {
|
||||
return fmt.Errorf("item %d non trouvé dans la commande %d", itemID, commandID)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("erreur vérification item: %w", err)
|
||||
}
|
||||
|
||||
// Supprimer l'item
|
||||
_, err = d.Exec(`DELETE FROM command_items WHERE id = $1`, itemID)
|
||||
if err != nil {
|
||||
log.Printf("❌ Erreur DELETE command_items: %v", err)
|
||||
return fmt.Errorf("erreur suppression item: %w", err)
|
||||
}
|
||||
|
||||
// Recalculer le total de la commande
|
||||
_, err = d.Exec(
|
||||
`UPDATE commandes SET total_prix = GREATEST(0, total_prix - $1) WHERE id = $2`,
|
||||
prix*quantite, commandID,
|
||||
)
|
||||
if err != nil {
|
||||
log.Printf("⚠️ [DeleteCommandItem] Erreur maj total commande: %v", err)
|
||||
}
|
||||
|
||||
log.Printf("✅ [DeleteCommandItem] Item %d supprimé de la commande %d", itemID, commandID)
|
||||
return nil
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// UPDATE COMMAND ITEM STATUS - VERSION SÉCURISÉE
|
||||
// ============================================
|
||||
|
||||
Reference in New Issue
Block a user