# Récapitulatif des Fonctionnalités - StayManager

**Version:** 1.0  
**Date:** Novembre 2025  
**Application:** StayManager - Système de Gestion Hôtelière

---

## Table des Matières

1. [Vue d'ensemble](#vue-densemble)
2. [Modules Principaux](#modules-principaux)
3. [Détail des Fonctionnalités par Module](#détail-des-fonctionnalités-par-module)
4. [Actions Rapides](#actions-rapides)
5. [Statistiques et Rapports](#statistiques-et-rapports)
6. [Gestion des Permissions](#gestion-des-permissions)

---

## Vue d'ensemble

StayManager est une application web complète de gestion hôtelière développée en PHP avec une architecture MVC moderne. Elle offre une solution intégrée pour la gestion des réservations, des chambres, des clients, des paiements, de la restauration, du personnel et bien plus encore.

### Technologies Utilisées
- **Backend:** PHP 8 avec PDO
- **Base de données:** MySQL
- **Frontend:** Bootstrap 5, Font Awesome 6, JavaScript ES6
- **Architecture:** MVC (Modèle-Vue-Contrôleur)

---

## Modules Principaux

### 1. Dashboard
**URL:** `/dashboard_dynamic.php`  
**Permission:** `admin.dashboard`

#### Sous-menus:
- **Dashboard Standard** (`/dashboard_dynamic.php`)
- **Dashboard Simple** (`/dashboard_simple.php`)

**Fonctionnalités:**
- Vue d'ensemble des statistiques en temps réel
- Accès rapide aux modules principaux
- Graphiques et indicateurs de performance
- Notifications et alertes

---

### 2. Séjours (Réservations)
**URL:** `/reservations.php`  
**Permission:** `bookings.view`

**Fonctionnalités:**
- Création, modification et suppression de réservations
- Check-in/Check-out automatisés
- Attribution manuelle ou automatique des chambres
- Suivi du statut des réservations (confirmée, en attente, annulée, etc.)
- Calcul automatique des montants (nuitées, taxes, remises)
- Recherche et filtrage avancés
- Export Excel/PDF
- Historique des réservations par client

---

### 3. Événements
**URL:** `/events.php`  
**Permission:** `events.view`

**Fonctionnalités:**
- Gestion des réservations de salles d'événements
- Types d'événements (mariages, séminaires, anniversaires, etc.)
- Gestion des salles disponibles
- Calcul automatique des coûts
- Suivi des participants
- Planning des événements

---

### 4. Clients
**URL:** `/clients.php`  
**Permission:** `clients.view`

**Fonctionnalités:**
- Base de données centralisée des clients
- Création, modification et suppression de clients
- Calcul automatique de l'âge
- Historique des séjours et factures
- Catégorisation (particulier, société, groupe)
- Recherche avancée
- Export des données clients

---

### 5. Chambres
**URL:** `/rooms.php`  
**Permission:** `bookings.view`

**Fonctionnalités:**
- Gestion des chambres (création, modification, suppression)
- Types de chambres paramétrables (Standard, Supérieur, Premium, Mini Suite)
- Statuts des chambres (disponible, occupée, réservée, maintenance)
- Gestion des étages et capacités
- Prix par nuit configurable
- Recherche et filtrage

---

### 6. Planning Chambres
**URL:** `/room_planning.php`  
**Permission:** `bookings.view`

**Fonctionnalités:**
- Vue calendaire des réservations
- Visualisation de l'occupation des chambres
- Planification des check-in/check-out
- Identification des conflits de réservation
- Vue d'ensemble de la disponibilité

---

### 7. Réservations Groupées
**URL:** `/group_reservations.php`  
**Permission:** `bookings.view`

**Fonctionnalités:**
- Gestion des réservations de groupe
- Attribution d'un représentant de groupe
- Gestion des participants multiples
- Calcul automatique des montants groupés
- Suivi des paiements groupés

---

### 8. Rapports
**URL:** `/reports.php`  
**Permission:** `reports.view`

#### Sous-menus:
- **Chiffre d'Affaires** (`/reports.php?report=revenue`)
- **Transactions Annulées** (`/reports.php?report=cancelled_transactions`)
- **Rapport d'Occupation** (`/reports.php?report=occupation`)
- **Rapport Restauration** (`/reports.php?report=restaurant`)
- **Rapport Événements** (`/reports.php?report=events`)

**Fonctionnalités:**
- Génération de rapports financiers
- Rapports d'occupation des chambres
- Rapports de restauration
- Rapports d'événements
- Export PDF et Excel
- Graphiques et visualisations
- Filtres par période (quotidien, hebdomadaire, mensuel, annuel)

---

### 9. Notifications
**URL:** `/notifications.php`  
**Permission:** `admin.dashboard`

**Fonctionnalités:**
- Centre de notifications
- Alertes système
- Notifications personnalisées
- Historique des notifications

---

### 10. Modules (Nouveaux Modules)

#### 10.1. Restaurant
**URL:** `/restaurant.php`  
**Permission:** `restaurant.view`

**Fonctionnalités:**
- Gestion des factures restaurant
- Consultation des factures existantes
- Historique des factures
- Recherche et filtrage

#### 10.2. Menus Restaurant
**URL:** `/restaurant_menus.php`  
**Permission:** `restaurant_menus.view`

**Fonctionnalités:**
- Création et gestion des menus
- Définition des ingrédients par menu
- Gestion des prix
- Association avec les articles d'inventaire
- Gestion des unités (pièce, kg, litre, etc.)

#### 10.3. Commandes Restaurant
**URL:** `/restaurant_orders.php`  
**Permission:** `restaurant_orders.view`

**Fonctionnalités:**
- Création de commandes (bons de commande)
- Ajout de menus et articles individuels
- Validation des commandes avec impact sur le stock
- Génération de factures à partir des commandes validées
- Suivi du statut des commandes (en attente, confirmée, préparée, prête, livrée, annulée)
- Impression des bons de commande
- Impression des factures

#### 10.4. Cuisine
**URL:** `/kitchen_orders.php`  
**Permission:** `kitchen.view`

**Sous-menus:**
- **Commandes Cuisine** (`/kitchen_orders.php`)
- **Sorties de Stock** (`/kitchen_stock_exits.php`)

**Fonctionnalités:**
- Visualisation des commandes en cours
- Mise à jour du statut des commandes (préparation en cours, prêt)
- Gestion des sorties de stock pour la cuisine
- Impact sur l'inventaire

#### 10.5. Paiements
**URL:** `/payments.php`  
**Permission:** `payments.view`

**Fonctionnalités:**
- Gestion des paiements
- Suivi des encaissements
- Historique des paiements
- Recherche et filtrage

#### 10.6. Caisse
**URL:** `/cash_register.php`  
**Permission:** `cash_register.view`

**Sous-menus:**
- **Gestion Caisse** (`/cash_register.php`)
- **Récapitulatifs Sessions** (`/cash_register.php?action=session_recap`)
- **Détails Transactions** (`/cash_register.php?action=transaction_details`)

**Fonctionnalités:**
- Gestion des caisses par emplacement (Réception, Restaurant, Événements)
- Ouverture et fermeture de sessions de caisse
- Enregistrement des transactions (encaissements et décaissements)
- Multiples modes de paiement (espèces, carte, mobile money, virement)
- Gestion des factures impayées
- Paiement partiel ou total des factures
- Génération de reçus
- Récapitulatifs de sessions
- Détails des transactions par période
- Calcul automatique des écarts
- Impression des récapitulatifs

#### 10.7. Relevés de Compte
**URL:** `/cash_register.php?action=client_transaction_details`  
**Permission:** `cash_register.view`

**Fonctionnalités:**
- Recherche des transactions par client (optionnel)
- Recherche par numéro de facture/réservation
- Recherche par type de facture (reservations, event_bookings, restaurant_invoices, restaurant_orders)
- Recherche par période de dates
- Affichage du cumul des règlements effectués
- Relevé de compte détaillé par facture avec toutes les transactions
- Liste détaillée de toutes les transactions
- Impression/export

#### 10.8. Stock (Inventaire)
**URL:** `/inventory.php`  
**Permission:** `inventory.view`

**Fonctionnalités:**
- Gestion des articles d'inventaire
- Création, modification et suppression d'articles
- Suivi des quantités en stock
- Alertes de stock faible
- Mouvements de stock (entrées, sorties)
- Gestion des fournisseurs
- Calcul des marges
- Export Excel avec design amélioré
- Recherche et filtrage avancés

---

### 11. Utilisateurs
**URL:** `/users.php` et `/roles.php`  
**Permission:** `users.view`, `roles.view`

#### Sous-menus:
- **Utilisateurs** (`/users.php`)
- **Nouvel Utilisateur** (`/users.php?action=create`)
- **Rôles** (`/roles.php`)
- **Nouveau Rôle** (`/roles.php?action=create`)

**Fonctionnalités:**
- Gestion des utilisateurs (création, modification, suppression)
- Gestion des rôles et permissions
- Attribution de permissions granulaires
- Activation/désactivation des comptes utilisateurs
- Recherche et filtrage

---

## Actions Rapides

Les actions rapides sont disponibles depuis le dashboard et permettent un accès direct aux fonctionnalités les plus utilisées:

1. **Nouvelle Réservation** (`/reservations.php?action=create`)
2. **Réservation Groupe** (`/group_reservations.php?action=create`)
3. **Facture Restaurant** (`/restaurant_orders.php?action=create`)
4. **Nouveau Menu** (`/restaurant_menus.php?action=create`)
5. **Nouvelle Commande** (`/restaurant_orders.php?action=create`)
6. **Planning Chambres** (`/room_planning.php`)
7. **Ouvrir Caisse** (`/cash_register.php?action=open_session`)
8. **Nouveau Paiement** (`/payments.php?action=create`)
9. **Ajouter Stock** (`/inventory.php?action=create`)
10. **Nouveau Client** (`/clients.php?action=create`)
11. **Gérer Chambres** (`/rooms.php?action=create`)
12. **Nouvel Événement** (`/event_bookings.php?action=create`)

---

## Statistiques et Rapports

Le dashboard affiche plusieurs statistiques en temps réel:

1. **Réservations Aujourd'hui** - Nombre de réservations du jour
2. **Chiffre d'Affaires Restaurant** - Revenus restaurant en temps réel
3. **Menus Disponibles** - Nombre de menus actifs
4. **Commandes en Attente** - Commandes non validées
5. **Sessions Caisse Ouvertes** - Nombre de caisses actives
6. **Paiements Aujourd'hui** - Transactions du jour
7. **Articles Stock Faible** - Alertes de stock
8. **Clients Actifs** - Clients avec réservations actives ou récentes
9. **Chambres Occupées** - Taux d'occupation
10. **Événements Aujourd'hui** - Événements du jour

---

## Gestion des Permissions

### Système de Permissions

StayManager utilise un système de permissions dynamique et granulaire qui permet de contrôler l'accès aux différentes fonctionnalités selon les rôles des utilisateurs.

### Privilège "All"

Le privilège "all" donne accès complet à toutes les fonctionnalités de l'application. Il est généralement attribué à l'administrateur système.

### Permissions par Catégorie

#### Gestion des Réservations
- `bookings.view` - Voir les réservations
- `bookings.create` - Créer des réservations
- `bookings.edit` - Modifier les réservations
- `bookings.delete` - Supprimer les réservations
- `bookings.checkin` - Enregistrer les arrivées
- `bookings.checkout` - Enregistrer les départs

#### Gestion des Clients
- `clients.view` - Voir les clients
- `clients.create` - Créer des clients
- `clients.edit` - Modifier les clients
- `clients.delete` - Supprimer les clients

#### Gestion des Événements
- `events.view` - Voir les événements
- `events.create` - Créer des événements
- `events.edit` - Modifier les événements
- `events.delete` - Supprimer les événements

#### Restaurant
- `restaurant.view` - Voir le module restaurant
- `restaurant.create` - Créer des factures restaurant
- `restaurant.edit` - Modifier les factures restaurant
- `restaurant.delete` - Supprimer les factures restaurant
- `restaurant_menus.view` - Voir les menus restaurant
- `restaurant_menus.create` - Créer des menus
- `restaurant_menus.edit` - Modifier les menus
- `restaurant_menus.delete` - Supprimer les menus
- `restaurant_orders.view` - Voir les commandes restaurant
- `restaurant_orders.create` - Créer des commandes
- `restaurant_orders.edit` - Modifier les commandes
- `restaurant_orders.validate` - Valider les commandes
- `restaurant_orders.cancel` - Annuler les commandes

#### Cuisine
- `kitchen.view` - Voir le module cuisine
- `kitchen.manage` - Gérer les commandes cuisine
- `kitchen.stock_exit` - Gérer les sorties de stock

#### Caisse
- `cash_register.view` - Voir le module caisse
- `cash_register.create` - Créer des transactions
- `cash_register.edit` - Modifier les transactions
- `cash_register.delete` - Supprimer les transactions
- `cash_register.open` - Ouvrir la caisse
- `cash_register.close` - Fermer la caisse
- `cash_register.session_recap` - Voir les récapitulatifs de session
- `cash_register.transaction_details` - Voir les détails de transactions
- `cash_register.client_transaction_details` - Voir les relevés de compte

#### Inventaire
- `inventory.view` - Voir l'inventaire
- `inventory.create` - Créer des articles
- `inventory.edit` - Modifier les articles
- `inventory.delete` - Supprimer les articles
- `inventory.update_stock` - Mettre à jour le stock

#### Rapports
- `reports.view` - Voir les rapports
- `reports.export` - Exporter les rapports

#### Utilisateurs et Rôles
- `users.view` - Voir les utilisateurs
- `users.create` - Créer des utilisateurs
- `users.edit` - Modifier les utilisateurs
- `users.delete` - Supprimer les utilisateurs
- `roles.view` - Voir les rôles
- `roles.create` - Créer des rôles
- `roles.edit` - Modifier les rôles
- `roles.delete` - Supprimer les rôles

---

## Fonctionnalités Transversales

### Recherche et Filtrage
- Tous les modules principaux disposent de fonctionnalités de recherche et de filtrage avancées
- Recherche par nom, date, statut, etc.
- Filtres multiples combinables

### Export de Données
- Export Excel avec design amélioré (bordures, couleurs, totaux)
- Export PDF pour les rapports et factures
- Formatage correct des caractères spéciaux

### Impression
- Impression des factures, reçus, bons de commande
- Impression des rapports
- Impression des relevés de compte
- Styles d'impression optimisés

### Notifications et Alertes
- Alertes de stock faible
- Notifications de réservations
- Alertes système
- Notifications personnalisées

### Historique et Traçabilité
- Historique complet des transactions
- Traçabilité des mouvements de stock
- Historique des modifications
- Logs des actions utilisateurs

---

## Conclusion

StayManager offre une solution complète et intégrée pour la gestion hôtelière, couvrant tous les aspects de l'exploitation : réservations, clients, chambres, événements, restauration, caisse, inventaire, et administration. Le système de permissions granulaire permet une gestion fine des accès selon les rôles des utilisateurs.

---

**Document généré automatiquement**  
**StayManager v1.0**  
**Novembre 2025**


