Comment fonctionnent les outils de home.grupodomingo.io : d'où viennent les chiffres, où vivent les données, comment ils sont calculés et qui peut y accéder. — Mise à jour : 26 septembre 2026.
Tous les outils internes de Grupo Domingo et de Rosario sont réunis à une seule adresse, home.grupodomingo.io, avec une seule connexion Google et une seule liste d'accès.
| Outil | Adresse | Où vivent les données | Qui y accède |
|---|---|---|---|
| Portail | / | lit les autres outils (aucune donnée propre) | toute personne de la liste d'accès |
| Dashboard | /dashboard/ | Google Sheet « P&L Dashboard », via le Worker du dashboard | droit Dashboard (tout / lecture) |
| Privatisations | /privatisations/ | Firestore (demandes, config) + scripts Gmail / Agenda / Qonto | droit Privatisations |
| Réconciliation | /reconciliation/ | Google Sheet de caisse, via le Worker de caisse | droit Réconciliation (Théo, Adrien) |
| Clôture de caisse | /caisse/ | même Sheet de caisse (onglet « Clôtures ») | code PIN, sans compte Google |
| Maintenance | /maintenance/ | Firestore (tickets, equipements…) | droit Maintenance (direction / staff) |
| Admin | /admin/ | Firestore (cards) + Google Drive | droit Admin (4 niveaux) |
| Rapport quotidien | /summary/ | rien n'est stocké : envoi par e-mail (EmailJS) | formulaire libre |
| Accès | /acces/ | Firestore (allowlist) | Admin complet |
Toutes les pages sont publiques au sens où leur code peut être lu par n'importe qui : elles ne contiennent donc aucune donnée (client, salarié, chiffre) ni aucun secret. Les données ne sont renvoyées qu'après vérification de la connexion, côté serveur.
On se connecte une fois avec son compte Google (projet Firebase admin-5b42f) ; la connexion est reprise par tous les outils du même appareil. Un compte Google est nécessaire : une adresse non Gmail (Hotmail, etc.) doit d'abord être rattachée à un compte Google.
Une fiche par adresse, gérée depuis la page Accès. C'est la seule source des droits, pour tous les outils.
| Outil | Vérification | Délai d'effet d'une coupure |
|---|---|---|
| Maintenance, Privatisations, Admin, Accès | règles de la base Firestore, à chaque lecture | immédiat |
| Dashboard, bandeau du portail | Worker du dashboard : relit la fiche à l'ouverture, puis session signée de 12 h | à la prochaine ouverture (12 h au plus) |
| Réconciliation, tuile du portail | Worker de caisse : relit la fiche, mémorisée 5 min | 5 min au plus |
| Clôture de caisse | code PIN vérifié par le Worker à chaque appel | au changement du code |
La vérification faite dans la page ne sert qu'à afficher un message clair : la vraie barrière est toujours côté serveur (règles de la base ou Worker), car le code d'une page peut être modifié par n'importe qui.
Le code de tous les outils est dans un seul dépôt GitHub privé (grupo-domingo). Cloudflare Pages publie le dossier site/ environ une minute après chaque envoi ; chaque version reste consultable et peut être rétablie. Les Workers Cloudflare et les scripts Apps Script, eux, se mettent à jour à la main, par copier-coller. Les anciennes adresses (dashboard.grupodomingo.io, *.web.app…) redirigent vers home.grupodomingo.io.
Sur téléphone, chaque outil s'installe sur l'écran d'accueil (Safari ▸ Partager ▸ Sur l'écran d'accueil) ; le bouton ← Portail, en bas à gauche, ramène à l'accueil.
Une vue d'ensemble de la journée. N'affiche que les outils auxquels la personne a droit, et se rafraîchit seul toutes les 10 minutes (et au retour sur l'onglet).
CA semaine = même définition que le dashboard (Lightspeed + privatisations retenues). Période : du lundi au dernier jour connu (le CA d'un jour arrive le lendemain), comparée aux mêmes jours de la semaine précédente. Écart affiché en % et en €. Le lundi matin, avant les premiers chiffres, on montre la semaine passée complète contre celle d'avant.
Ticket moyen = CA ÷ (couverts + convives des privatisations retenues), sur la même période ; écart en % et en €.
Note Google = moyenne de tous les avis (même calcul que le dashboard), à 3 décimales ; écart en points avec la note à la fin de la semaine passée.
Tuile Privatisations = nombre de fiches au statut « Nouvelle demande » ; nombre de privatisations confirmées à venir (date ≥ aujourd'hui) et date de la prochaine.
Tuile Réconciliation = espèces mises au coffre depuis le dernier dépôt (inclus), date et montant de ce dépôt ; alerte au-delà de 7 jours sans dépôt.
Tuile Maintenance = tickets ouverts (tout sauf Résolu, Facturé, Sans suite), dont « à trier » ; pastille rouge s'il y a un ticket urgent.
Six sources alimentent un Google Sheet « pivot » privé, que le dashboard lit à travers un Cloudflare Worker.
Chaque jour, Lightspeed envoie un e-mail « Votre rapport Lightspeed Restaurant » (depuis no.reply@lightspeedhq.com) avec plusieurs fichiers .xls en pièce jointe. Un Apps Script les récupère automatiquement.
| Fichier | Contient | Utilisé pour |
|---|---|---|
shift_report | CA net midi / soir / total, couverts, ticket moyen | KPI principaux |
business_export | CA par catégorie (cuisine, tapas, alcool, boissons, bouteilles), modes de paiement | Cuisine vs Boissons, ticket food/boissons |
product_breakdown | Ventes par article | Top 10 produits |
cancellations | Annulations (montant, motif, article…) | Bloc Annulations |
discounts | Rabais % et offerts (par catégorie / produit) | Bloc Annulations (Rabais / Offert) |
Export .xlsx des heures travaillées. On n'utilise que l'onglet « détails » : une ligne par employé / par jour / par poste, avec la colonne Heures Travaillées (déjà nette de pause). Le poste de chaque ligne est classé en Salle ou Cuisine via une table de correspondance.
Comment l'obtenir : dans Skello → Rapports → Télécharger par semaine, puis déposer le fichier dans le dossier Drive Skello ↗ (chaque lundi, pour la semaine précédente). Le script majHeuresRH le lit automatiquement, remplit l'onglet Heures_RH, puis déplace le fichier traité dans le sous-dossier « Traités ».
L'API publique Google Places ne renvoie que 5 avis et la note arrondie à 0,1. Pour avoir le détail par jour, on passe par Outscraper (API tierce, payante à l'avis) : un Apps Script récupère les avis récents et écrit dans l'onglet Note_Jour la répartition par étoile de chaque jour (colonnes Nb_1…Nb_5) en plus de la note moyenne et du nombre d'avis. La note affichée dans le dashboard est ensuite recalculée par nos soins à partir de ces comptages (Σ étoiles ÷ Σ avis), et les graphes ventilent les avis par étoile.
Économie de crédits : la synchro quotidienne n'utilise le paramètre cutoff que pour ne récupérer que les avis postérieurs au dernier jour déjà enregistré (0–3 avis/jour au lieu de 50). Un backfillNoteJour reconstruit tout l'historique en une fois (coûteux, à lancer une seule fois).
Depuis le 25 août 2026, la source n'est plus un Google Sheet saisi à la main mais l'API de l'outil de suivi des privatisations, interrogée chaque jour par majPrivatisations qui remplit l'onglet Privatisations_Detail. On y trouve : date de l'événement, client, créneau, type (Privatisation / Formule groupe), nombre de convives, CA cuisine / alcools HT, et le détail des règlements avec leur origine. Seules les demandes « Confirmé » et déjà passées sont comptées (voir §8).
L'ancien Sheet portait des dates sans année et un marqueur « Lightspeed » posé au jugé. L'API porte le statut réel et l'origine de chaque paiement : l'exclusion des prestations déjà encaissées repose donc sur la donnée, et non plus sur une convention.
Les relevés fournisseurs n'entrent dans Pennylane qu'une fois par mois : le coût matière réel est donc invisible pendant le mois. importFacturesLivraisons lit chaque jour les factures PDF reçues de Primeur Mondial, Natoora, Beaugrain, Broko, Armara et Boréal Hygiène, les fait extraire par l'API Claude (modèle Haiku, ~0,35 $/mois) et écrit l'onglet Livraisons_Detail.
Ces chiffres ne s'additionnent JAMAIS à ceux de Pennylane. Ils l'anticipent. Le P&L reste alimenté par Pennylane à partir des relevés mensuels ; les livraisons servent au bouton LIV des Ajustements et à l'onglet Livraisons, tous deux indicatifs.
La comptabilité Pennylane fournit les coûts du P&L : factures fournisseurs, catégorisées par sous-catégorie analytique. Un Apps Script les synchronise chaque jour et les agrège (voir §9). Un outil auditFactures permet de vérifier que toutes les factures de la période sont bien comptées (voir §9).
Un Google Sheet « pivot » unique, désormais privé : seul le Cloudflare Worker y accède, avec ses propres identifiants (voir §2).
| Onglet | Granularité | Alimenté par |
|---|---|---|
KPI_Journaliers | 1 ligne / jour | Script Lightspeed |
Top10_Journaliers | 1 ligne / produit / jour | Script Lightspeed |
Google_Rating | 1 ligne / jour (note globale) | Script Lightspeed (Places API) — secondaire |
Note_Jour | 1 ligne / jour · note moyenne, nb avis, répartition par étoile (Nb_1…Nb_5) | Script Outscraper |
Heures_RH | Date · Équipe · Heures | Script Skello (majHeuresRH) |
Annulations_Detail | 1 ligne / article annulé (Somme ≠ 0) | Script Lightspeed |
Rabais_Detail | 1 ligne / produit · Type Rabais ou Offert | Script Lightspeed |
Pennylane_Factures | mémoire brute : 1 ligne / facture × sous-catégorie | Script Pennylane (synchro) |
Couts_Mensuels | Mois × Ligne × Sous-catégorie × Fournisseur | Agrégats Pennylane |
Factures_Mois | Ligne × Fournisseur × Mois (7 derniers mois) | Agrégats Pennylane |
Couts_Historique | coûts ≤ mai 2026 (détail sous-cat), figé depuis l'Excel | Import Excel (une fois) |
Mapping_Categories | Sous-catégorie → Ligne P&L → Source (Auto/Manuel/Exclu) | Manuel |
Saisies_Manuelles | clé → valeur (ajustements du P&L, partagés) | Cloudflare Worker (dashboard) |
Privatisations_Detail | 1 ligne / événement confirmé · Type, Origine, et colonnes _Retenu | Script majPrivatisations (API) |
Livraisons_Detail | 1 ligne / facture de livraison lue par e-mail | Script importFacturesLivraisons |
Audit_Factures | factures à traiter (non comptées / à classer) | Outil auditFactures |
Tout est désormais dans ce seul classeur : le Sheet externe des privatisations n'est plus lu depuis le 25 août 2026.
Déclencheur chaque matin (idéalement 10–11h, quand l'e-mail de la veille est arrivé). Il cherche les e-mails Lightspeed des 4 derniers jours, regroupe les pièces jointes .xls par date de rapport, et importe chaque jour encore absent (il rattrape donc automatiquement un jour manqué). Les fichiers sont convertis via l'API Drive, parsés, et ajoutés (jamais d'écrasement) dans KPI_Journaliers, Top10_Journaliers, Annulations_Detail et Rabais_Detail. Un anti-doublon (date normalisée en texte) + un verrou empêchent d'importer deux fois le même jour, même si deux exécutions se chevauchent. Il met aussi à jour la note Google globale (Google_Rating). Un utilitaire dedupeDailyTabs nettoie d'éventuels doublons déjà présents.
majNoteJourDéclencheur quotidien. Appelle l'API Outscraper avec le place_id, récupère les nouveaux avis (paramètre cutoff pour économiser les crédits), agrège la répartition par étoile de chaque jour et met à jour Note_Jour (upsert : seuls les jours concernés sont réécrits).
majHeuresRH)Déclencheur hebdomadaire (lundi). Scanne le dossier Drive Skello ↗, lit l'onglet « détails » de chaque nouveau fichier, croise chaque poste avec la table Salle / Cuisine, somme les heures par jour et par équipe, écrit Heures_RH, puis déplace le fichier traité dans « Traités ».
dailyPennylane)Déclencheur quotidien. Enchaîne : synchro incrémentale des nouvelles factures, re-scan des 3 derniers mois (pour capter les changements d'imputation, qui ne modifient pas l'updated_at), puis recalcul des agrégats Couts_Mensuels et Factures_Mois (voir §9).
majPrivatisations)Déclencheur quotidien. Interroge l'API de l'outil de privatisations, applique les règles d'exclusion du §8 et réécrit entièrement Privatisations_Detail. diagPrivatisations fait le même calcul sans rien écrire et affiche l'impact mois par mois — à lancer avant toute bascule.
importFacturesLivraisons)Déclencheur quotidien, vers 20h-21h. Cherche dans Gmail les PDF des six fournisseurs suivis sur une fenêtre de 45 jours, écarte les relances et les relevés redondants avant tout appel payant, puis fait lire chaque facture par l'API Claude. Double anti-doublon : identifiant du message + nom du fichier, puis fournisseur + numéro + type. backfillLivraisons3Mois rattrape trois mois d'un coup ; diagLivraisonsDates et runListerPieces diagnostiquent sans rien dépenser.
CA net = CA Lightspeed + CA des privatisations confirmées et déjà passées. Le « déjà passé » s'arrête au dernier jour de données réelles Lightspeed (pour ne pas compter d'événements futurs).
Événementiel — la règle anti-double-comptage. Une prestation déjà encaissée en salle est dans Lightspeed : la recompter doublerait le CA. Deux critères, dans cet ordre.
1. Si un règlement est renseigné, c'est son origine qui tranche : Caisse → exclu (déjà dans Lightspeed), Facture → compté. Règlement mixte : répartition au prorata du TTC encaissé en caisse.
2. Si aucun règlement n'est renseigné, c'est le type qui décide : une Formule groupe est servie en salle et tapée dans Lightspeed comme une table normale → exclue ; une Privatisation est facturée à part → comptée.
L'exclusion est visible et non silencieuse : les lignes concernées figurent dans Privatisations_Detail avec 0 € dans les colonnes _Retenu, et leur Type et Origine sont affichés. Le dashboard ne lit que les colonnes _Retenu.
Couverts (KPI) = total Lightspeed. Pour les tickets moyens des répartitions ci-dessous, les convives des événements (# pax) sont en revanche ajoutés, répartis midi / soir.
Répartitions du CA — Déjeuner/Dîner, Cuisine/Boissons et Clients/Événements agrègent Lightspeed + privatisations et somment toutes les trois au CA total (clients + événements). Le créneau déjeuner/dîner des privatisations vient de la colonne dédiée du Sheet Privatisations ; cuisine/alcool de leurs colonnes HT.
Ticket moyen = CA net ÷ couverts. Les tickets des répartitions sont calculés sur ces totaux agrégés : TM Déjeuner = CA déjeuner (Lightspeed + événements midi) ÷ couverts déjeuner, etc. ; TM Événement = CA événements ÷ # pax ; TM Clients = CA Lightspeed ÷ couverts Lightspeed.
Taux de remplissage = couverts ÷ (89 × nombre de services réellement écoulés). Capacité de référence : 89 couverts par service, 2 services / jour. Un jour où seul le déjeuner a eu lieu compte donc pour 1 service (89), pas 2.
CA annualisé = CA net ÷ nombre de jours × 360.
Note Google actuelle = recalculée par nos soins à partir de la répartition par étoile de Note_Jour : Σ(étoile × nb) ÷ Σ(nb) sur tous les avis, affichée à 3 décimales (avec plus de 1 300 avis, un avis de plus ne déplace la moyenne que d'environ 0,002). Les graphes ventilent le nombre d'avis par étoile (1★→5★). Évolution hebdo = note cumulée à la fin de cette semaine − note cumulée à la fin de la semaine précédente, en points.
Annulations = somme des lignes du fichier cancellations dont le montant ≠ 0 (les « comptes rappelés » à 0 sont ignorés) ; montant compté en valeur absolue.
RH · CA par heure = CA du jour ÷ heures travaillées (total, et par équipe salle / cuisine), les heures Skello étant réparties par poste.
Le sous-onglet P&L mensuel reconstitue un compte de résultat : Chiffre d'affaires → F&B cost → Staff cost → Marge brute → coûts d'exploitation (variables, fixes, loyer, maintenance, non catégorisé) → EBITDA → Remboursement prêts → Cash-flow → Amortissements → Cash net. Trois colonnes : les deux derniers mois clôturés et le mois calendaire en cours — seul ce dernier est mis en surbrillance « projeté ». Un mini-calendrier (échelle mois) et des flèches permettent de remonter dans le passé ; un clic sur une ligne déplie le détail par sous-catégorie, puis par fournisseur.
Couts_Historique), avec le détail par sous-catégorie. Ils restent ajustables (voir ci-dessous).Couts_Mensuels).Le P&L affiche exactement les valeurs saisies dans l'onglet Ajustements — ni plus, ni moins, sans clé de répartition. Pour chaque fournisseur (mois Pennylane) ou sous-catégorie (mois clôturé), la valeur retenue est modifiable : par défaut le réel (Pennylane à date extrapolé, ou Excel pour un mois clôturé), et 0 = exclu. Une catégorie = la somme de ses lignes. On choisit n'importe quel mois via le mini-calendrier ; pour un mois clôturé, la même structure de saisie que les mois Pennylane est proposée (ventes, salaires, loyer, prêts, stock), pré-remplie avec les chiffres d'origine.
Chaque fournisseur porte un tag de sous-catégorie et est ventilé dans ses vraies sous-catégories au prorata du réel Pennylane (un fournisseur multi-catégories, ex. FOODFLOW, est réparti, pas forcé dans une seule case). La colonne « Factures à date » reste un miroir dynamique de Pennylane (jamais figée). Une croix rouge retire de la liste un fournisseur qu'on ne réutilisera plus (ses valeurs passées restent dans le P&L).
Enregistrement. Chaque saisie est envoyée en ligne automatiquement (Worker → onglet Saisies_Manuelles), avec un délai d'1,2 s pour ne pas déclencher une requête par caractère frappé. Le bouton « Valider les ajustements » force l'envoi immédiat et attend la réponse : en cas de refus, une boîte de dialogue le dit explicitement. Un fournisseur non modifié reste en extrapolation vivante et continue de suivre Pennylane ; seule une valeur modifiée est figée.
Un Apps Script (dailyPennylane) tourne chaque jour et enchaîne trois étapes : (1) synchro incrémentale des nouvelles factures via l'API (repérées par leur updated_at), gardées en mémoire dans l'onglet Pennylane_Factures sans tout retélécharger ; (2) un re-scan des 3 derniers mois qui relit systématiquement l'imputation de chaque facture récente — indispensable car modifier une période d'imputation dans Pennylane ne change pas le updated_at, donc la synchro incrémentale seule raterait ces changements ; (3) le recalcul des agrégats Couts_Mensuels (P&L) et Factures_Mois (détail fournisseur). Les factures archivées sont exclues. La date retenue est la date d'imputation comptable (étalée au prorata des jours si la période couvre plusieurs mois), sinon la date de facture. Le bouton ↻ Actualiser du dashboard déclenche cette synchro à la demande.
Pour le mois calendaire en cours, les valeurs par défaut estiment la fin de mois : ventes (part Lightspeed + événementiel) et coûts par fournisseur sont extrapolés au prorata des jours écoulés (bouton « % »), avec un bouton « M-1 » pour reprendre le mois précédent. Les fournisseurs des 3 derniers mois sont listés par catégorie (Food, Beverage, Staff, Coûts variables/fixes, Maintenance, Amortissements, À catégoriser).
Un troisième bouton, « LIV », reprend le cumul des factures de livraison reçues par e-mail pour ce fournisseur et l'extrapole au mois entier. Il est particulièrement utile pour ceux dont le relevé n'entre dans Pennylane qu'en fin de mois : leur « Factures à date » y reste à zéro, et le prorata classique ne sert alors à rien. Chiffre indicatif — il remplace la valeur retenue, il ne s'y ajoute jamais.
auditFactures écrit un onglet Audit_Factures qui liste les factures de la période à traiter (non catégorisées, ou sans date → jamais comptées).Le suivi des demandes de privatisation et des formules groupe, de la première demande au paiement.
Chaque demande est une fiche de la base Firestore (collection demandes) : client, date, espace, convives, historique des échanges, chiffrage et paiements. Les réglages (modèles d'e-mails, menu, tarifs, invités de l'agenda) sont dans config. Chaque modification est enregistrée automatiquement moins d'une seconde après la saisie, et apparaît en temps réel chez les autres. Les demandes du formulaire du site rosario arrivent directement dans la base (anti-doublon par adresse, date et espace).
| Statut | Couleur |
|---|---|
| Nouvelle demande | bleu |
| À répondre | rouge |
| En attente client | vert |
| Relancé | vert clair |
| Confirmé | vert |
| Archivée | gris |
Depuis le 25/09/2026, aucun statut ne change tout seul : ni recalcul d'après les e-mails, ni archivage automatique après la date. Seule l'alerte « à relancer » est calculée — elle ne modifie rien : fiche « En attente client » ou « Relancé », dont le dernier échange est un message envoyé par nous il y a plus de 7 jours.
Privatisations_Detail.Les scripts n'acceptent que des appels portant un jeton de connexion @grupodomingo.io vérifié ou leur clé (dispositif « Garde »).
Rapproche ce qui a été encaissé (Lightspeed) de ce qui a été reçu (Sunday, banque, espèces), prépare les dépôts d'espèces et répartit les pourboires.
Un Google Sheet de caisse privé, lu et écrit par le Worker de caisse. Onglets principaux : Clôtures (saisies du formulaire de caisse, seule source des données d'espèces), Journalier (une ligne par jour : CB et QR côté Lightspeed et côté Sunday, pourboires CB), Dépôts, Repartitions_Pourboires, Ajustements_Pourboires, ReconciliationTable (par table), Transactions (détail des paiements, conservé 30 jours) et Encaissements_Prestataire.
| Fichier | Où le trouver |
|---|---|
| Lightspeed (.csv) | Tous les rapports ▸ Paiements ▸ Période personnalisée (le rapport « Tickets » est refusé) |
| Sunday (.csv) | Opérations ▸ Paiements ▸ Période personnalisée (seuls les paiements « Réussi » comptent) |
| Relevé BNP (.csv) | Compte ▸ Historique ▸ Exporter en CSV — lu à chaque fois, jamais enregistré |
| Skello (.xlsx) | export des heures par semaine, pour la répartition des pourboires |
Journée d'exploitation : un paiement fait avant 6 h du matin compte pour la veille.
Période d'un dépôt = du lendemain du dernier dépôt jusqu'à hier.
Dépôt théorique = ventes espèces (saisies à la clôture) − dépenses − variation des espèces en caisse sur la période.
Dépôt réel = dépôt théorique arrondi à la dizaine inférieure ; la différence reste en caisse.
Écart de caisse = total mis au coffre − dépôt théorique : positif = pourboire caisse ; négatif = manquant (alerte au-delà de 20 €).
CB et QR = Lightspeed − Sunday, par jour ; « OK » jusqu'à 5 € d'écart. Le détail par table montre les tables où les deux ne concordent pas.
Banque = versements attendus de chaque prestataire comparés au relevé : exact à 2 centimes près, « à confirmer » jusqu'à 2 € ou 0,5 %, écart au-delà (Sunday QR : attendu = brut − 1,71 % de commission).
Continuité = fonds d'ouverture du jour comparé aux espèces comptées la veille ; une différence est signalée (diagnostic seulement).
Cagnotte de pourboires = somme, depuis le dernier versement, des écarts de chaque jour (espèces comptées − fonds théorique après coffre), corrigée des ruptures de continuité, + ajustements manuels. Part de chacun = cagnotte × ses heures ÷ total des heures (heures Skello).
Dépôts (période, dépôt théorique et réel, pourboires, manquants…). Seul le dernier dépôt peut être supprimé.Repartitions_Pourboires ; une deuxième répartition à la même date est refusée.La bulle d'aide envoie les chiffres de la période (et, les jours où CB ou QR s'écartent de plus de 5 €, le détail des paiements) à l'IA Claude, qui répond en français. Rien n'est modifié par l'assistant.
Le formulaire rempli à chaque fin de service, souvent sur l'iPad. Accès par code PIN, sans compte Google.
Montant à mettre au coffre (proposé) = recette espèces − dépannage, arrondi à la dizaine inférieure.
Nouveau fonds de caisse théorique = fonds d'ouverture + recette espèces − dépannage − montant mis au coffre.
Écart = espèces comptées − nouveau fonds théorique : positif = pourboires ; négatif = manque (en rouge).
L'envoi ajoute une ligne à l'onglet Clôtures du Sheet de caisse, qui alimente la Réconciliation. La liste des responsables se gère depuis le formulaire (« Gérer la liste »).
Les pannes, les achats et l'entretien du restaurant, en français, espagnol et anglais.
| Direction voit | Staff voit | |
|---|---|---|
| À trier | Envoyé à la direction | ouvert |
| Traité en interne | Théo s'en occupe | ouvert |
| En attente de pièce | Pièce commandée | ouvert |
| Validé · à commander | Validé par Théo | ouvert |
| Commandé | Commandé | ouvert |
| Prestataire contacté | Prestataire prévenu | ouvert |
| Intervention planifiée | Intervention prévue | ouvert |
| Résolu · Facturé | Réglé | clos |
| Sans suite | Sans suite | clos |
Niveau d'un ticket : 0 = pas encore trié, 1 = traité en interne, 2 = prestataire engagé. L'escalade prépare le message au prestataire, à envoyer soi-même. Chaque étape est horodatée (date et heure réelles depuis le 26/09/2026 ; les tickets plus anciens portent « 10/09 »).
Données : base Firestore (tickets, équipements, consommables, emplacements, prestataires, entretien, échéances, équipe). Le staff ne voit ni l'équipe, ni les échéances non partagées.
Le coffre-fort administratif des deux sociétés, Rosario (SASU) et Grupo Domingo (SAS).
Onglets : société, dirigeants, banque, signatures, clés (qui détient quoi — Rosario uniquement), documents, contacts clés, fiches dirigeants, mots de passe. Fiches dans la base Firestore ; les documents sont dans Google Drive (dossiers « Admin – Rosario » et « Admin – Grupo Domingo »).
Formulaire de fin de service (en anglais) : responsable, date, service ; CA net HT, couverts et ticket moyen calculé ; no-shows, walk-ins et taux de no-show ; satisfaction, équipe salle et cuisine ; difficultés, réussites, résumé. Il est envoyé par e-mail (service EmailJS) aux destinataires fixés dans le modèle d'e-mail ; rien n'est enregistré dans une base. Accès libre, sans connexion.
| unités | Quantité vendue d'un article sur la période. |
| # pax | Nombre de convives d'un événement privatisé. |
| Clients | Activité « normale » (Lightspeed), par opposition aux Événements (privatisations). |
| CA net | Chiffre d'affaires hors taxes, encaissé. |
| Retenu | Part du CA d'une privatisation comptée dans le dashboard (0 € si déjà encaissée en caisse). |
| S-1 | La semaine précédente, sur les mêmes jours. |
| Worker | Petit programme hébergé par Cloudflare, seul à accéder aux classeurs Google ; il vérifie qui demande avant de répondre. |
| Apps Script | Script Google rattaché au compte de Théo (ou d'Adrien), qui lit Gmail, l'agenda, Drive ou les classeurs. |