IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

gestion tickets restaurant


Sujet :

Modélisation

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion tickets restaurant
    bonsoir
    je me propose de créer une petite base de données pour gerer les carnets de restaurant donnés au personnel
    il s'agit donc de carnets de 22 tickets numerotés (series uniques bien sur)
    mes soucis
    --eviter qu'une personne beneficie de plusieurs carnets par moi
    -- comment créer une requete qui me permet de retrouver un numero quelconque d'un ticket à qui il appartient ( se trouvant donc dans le carnet qui lui a été donné)
    merci beaucoup
    et avec une legere avance meilleurs voeus de noel et nouvel an
    bien amicalement

  2. #2
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonjour,

    les tickets restaurants possèdent un code barre représentant (entre autre) le numéro de série de chacun.

    L'idée serait alors de scanner le premier, d'indiquer à qui il appartient et d'associer les 21 numéro suivants à la même personne (pas besoin de re-scanner)

    Il existe de nombreux exemples et tuto sur l'acquisition du code barre sur le forum.

    Au pire, il faudra saisir le premier numéro à la main !!

    Retrouver le propriétaire d'un ticket ne posera aucun problème.

    Attention : Normalement, un salarié reçoit un ticket par jour travaillé... et on ne travaille pas le même nombre de jour chaque mois. Prévoir donc de choisir le nombre de ticket réellement donné chaque mois !

    Bon noël.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion ticket restaurant
    Citation Envoyé par curt Voir le message
    Bonjour,

    les tickets restaurants possèdent un code barre représentant (entre autre) le numéro de série de chacun.

    L'idée serait alors de scanner le premier, d'indiquer à qui il appartient et d'associer les 21 numéro suivants à la même personne (pas besoin de re-scanner)

    Il existe de nombreux exemples et tuto sur l'acquisition du code barre sur le forum.

    Au pire, il faudra saisir le premier numéro à la main !!

    Retrouver le propriétaire d'un ticket ne posera aucun problème.

    Attention : Normalement, un salarié reçoit un ticket par jour travaillé... et on ne travaille pas le même nombre de jour chaque mois. Prévoir donc de choisir le nombre de ticket réellement donné chaque mois !

    Bon noël.
    Curt
    bonjour curt
    merci pour reponse
    mais de la où je vous ecris (tunisie) il n'y pas de code barre sur ces tickets que je voudrais gérer
    donc ce que j'ai :
    -/ des agents qui ont droit à 22 tickets par moi pendant 10 mois car en été nous travaillons ( à cause de la chaleur) en séance unique de 06h par jour donc pas de tickets restaurant
    -/ il s'agit donc de carnet de 22 tickets numerotés en se suivant comme exemple du 0007741080 au 0007741101
    -/ chaque agent a un matricule bien à lui donc servant de clé unique

    voila mon souci où il reside

    merci pour aide
    bien amicalement

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    bonsoir Samira, Curt,

    Je verrais bien un pt’it schéma du genre :

    Penser à rajouter un index « sans doublon » sur NumSerie.

    Citation Envoyé par samraessia
    -- comment créer une requete qui me permet de retrouver un numero quelconque d'un ticket à qui il appartient ( se trouvant donc dans le carnet qui lui a été donné)
    Une simple requête de sélection SELECT (à construire avec les assistants) avec les jointures sur les tables Ticket---DonnerCarnet---Personnel avec un critère sur le NumSerie devrait faire l’affaire.

    Citation Envoyé par samraessia
    --eviter qu'une personne beneficie de plusieurs carnets par mois
    Tu peux exploiter une requête qui compte le nombre de carnets par personne après avoir opéré un regroupement par mois (et par année). A construire aussi avec les assistants :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY idPersonnel, Month([DateDonnerCarnet]), Year([DateDonnerCarnet])

    ou exploiter dans un formulaire une requête du genre (ici avec des paramètres):
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(idCarnet) AS NbreCarnets FROM DonnerCarnet
    WHERE idPersonnel=[Numero du Personnel ?] AND
     Month([DateDonnerCarnet])=[Numero Mois ?] AND
     Year([DateDonnerCarnet])=[Année ?]);

    Voila…

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion ticket restaurant
    Citation Envoyé par f-leb Voir le message
    bonsoir Samira, Curt,

    Je verrais bien un pt’it schéma du genre :

    Penser à rajouter un index « sans doublon » sur NumSerie.


    Une simple requête de sélection SELECT (à construire avec les assistants) avec les jointures sur les tables Ticket---DonnerCarnet---Personnel avec un critère sur le NumSerie devrait faire l’affaire.


    Tu peux exploiter une requête qui compte le nombre de carnets par personne après avoir opéré un regroupement par mois (et par année). A construire aussi avec les assistants :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY idPersonnel, Month([DateDonnerCarnet]), Year([DateDonnerCarnet])

    ou exploiter dans un formulaire une requête du genre (ici avec des paramètres):
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(idCarnet) AS NbreCarnets FROM DonnerCarnet
    WHERE idPersonnel=[Numero du Personnel ?] AND
     Month([DateDonnerCarnet])=[Numero Mois ?] AND
     Year([DateDonnerCarnet])=[Année ?]);

    Voila…
    bonsoir f leb
    merci bien
    ca me parait tres sympa
    juste qq détails avant de tester
    dois je saisir chaque numero de ticket dans une ligne soit autant de ticketsxcarnet
    ou je pourais juste saisir debut premier numero ticket ---- fin numero de tcket
    car en definitive il n y a pas de "ID carnet" c'est juste des numero de ticket
    nos carnets sont surement tres differents des votres à moins de donner un champ clé numroauto pour chaque carnet
    qu'en pensez vous
    je bloque dans ma tete surtout comment je dois saisir les 22 tickets
    a vous lire
    a+ meilleurs voeux

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion ticket restaurant
    Citation Envoyé par samraessia Voir le message
    bonsoir f leb
    merci bien
    ca me parait tres sympa
    juste qq détails avant de tester
    dois je saisir chaque numero de ticket dans une ligne soit autant de ticketsxcarnet
    ou je pourais juste saisir debut premier numero ticket ---- fin numero de tcket
    car en definitive il n y a pas de "ID carnet" c'est juste des numero de ticket
    nos carnets sont surement tres differents des votres à moins de donner un champ clé numroauto pour chaque carnet
    qu'en pensez vous
    je bloque dans ma tete surtout comment je dois saisir les 22 tickets
    a vous lire
    a+ meilleurs voeux
    rebonjour
    je vous livre un détail car je ne l'ai pas precisé ailleurs
    actuellement voila comment je procede sur une feuille de papier lol
    entete du papier mois xxxxx année xxxx
    matricule agent --- nom prenom ---ticket num à num --- signature agent
    00000 xxxxxxxxx du x au z (22)
    clé unique pas de doublon dans
    les numeros

    merci
    bien amicalement

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Ça pourrait donner quelque chose comme :

    - NumPremierTicket est le numéro du premier ticket constituant le carnet;
    - qtteTicket est le nombre de tickets aux numéros consécutifs constituant le carnet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NumPremierTicket   qtteTicket    idPersonnel    DateDonnerCarnet
        7741080           22              1            01/12/2009
        7741102           22              2            01/12/2009
    ...
    L’agent (idPersonnel=1) s’est vu confiés 22 tickets allant de 7741080 à 7741080+22-1=7741101 le 01/12/2009
    L’agent(idPersonnel=2), les 22 tickets de 7741102 à 7741123 etc…

    La requête paramétrée suivante permet alors de retrouver le propriétaire d’un ticket :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT NumMatricule, Nom, Prenom, DateDonnerCarnet
    FROM Personnel INNER JOIN DonnerCarnet 
    ON Personnel.idPersonnel = DonnerCarnet.idPersonnel
    WHERE [Numéro Ticket ?] Between [NumPremierTicket] AND [NumPremierTicket]+[qtteTicket]-1;

  8. #8
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion ticket restaurant
    Citation Envoyé par f-leb Voir le message
    Bonjour,

    Ça pourrait donner quelque chose comme :

    - NumPremierTicket est le numéro du premier ticket constituant le carnet;
    - qtteTicket est le nombre de tickets aux numéros consécutifs constituant le carnet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NumPremierTicket   qtteTicket    idPersonnel    DateDonnerCarnet
        7741080           22              1            01/12/2009
        7741102           22              2            01/12/2009
    ...
    L’agent (idPersonnel=1) s’est vu confiés 22 tickets allant de 7741080 à 7741080+22-1=7741101 le 01/12/2009
    L’agent(idPersonnel=2), les 22 tickets de 7741102 à 7741123 etc…

    La requête paramétrée suivante permet alors de retrouver le propriétaire d’un ticket :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT NumMatricule, Nom, Prenom, DateDonnerCarnet
    FROM Personnel INNER JOIN DonnerCarnet 
    ON Personnel.idPersonnel = DonnerCarnet.idPersonnel
    WHERE [Numéro Ticket ?] Between [NumPremierTicket] AND [NumPremierTicket]+[qtteTicket]-1;
    bonjour f leb
    ca me parait tres interessant en effet
    ca correspondrait exactement a ce que je suis entrain de faire sur papier

    deja pour la table personnel on peut supprimer le champ id personnel car le matricule est deja une clé unique et nous permet de situer un et unique agent

    juste qelque chose me chiffone pour la quantité ticket de la table donnerticket , quand je met 22 ca multiplie quoi ou remplit quel champ de la table??
    je suis tres novice , desolée

    autrement ca me plait beaucoup cette derniere approche , car il suffirait d'ajouter une table à une autre base de données que je suis entrain de developper pour des gestions de stage de formation , la table personnel existe deja donc
    a te lire donc pour que je comprenne mieux la logique du champ "qtteTicket"
    merci merci beaucoup
    meilleurs voeux encore
    a+

  9. #9
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion ticket restaurant
    Citation Envoyé par samraessia Voir le message
    bonjour f leb
    ca me parait tres interessant en effet
    ca correspondrait exactement a ce que je suis entrain de faire sur papier

    deja pour la table personnel on peut supprimer le champ id personnel car le matricule est deja une clé unique et nous permet de situer un et unique agent

    juste qelque chose me chiffone pour la quantité ticket de la table donnerticket , quand je met 22 ca multiplie quoi ou remplit quel champ de la table??
    je suis tres novice , desolée

    autrement ca me plait beaucoup cette derniere approche , car il suffirait d'ajouter une table à une autre base de données que je suis entrain de developper pour des gestions de stage de formation , la table personnel existe deja donc
    a te lire donc pour que je comprenne mieux la logique du champ "qtteTicket"
    merci merci beaucoup
    meilleurs voeux encore
    a+
    rebonjour f leb

    je ne vois pas non plus l'interdiction a un idpersonnel d'avoir plusieurs carnets par mois , car chaque persoone n'a pas le droit d'avoir plus de 22 tickets par mois

    vraiment desolée d'abuser de votre gentillesse
    samira

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    Re,

    Citation Envoyé par samraessia
    …juste quelque chose me chiffonne pour la quantité ticket de la table donnerticket , quand je met 22 ca multiplie quoi ou remplit quel champ de la table??
    Rien de spécial, ça ne fait rien d’autres que de stocker la valeur numérique 22 dans le champ [qtteTicket] de la table.
    Un jour, tu pourrais très bien avoir (exceptionnellement) à rentrer [qtteTicket]=1 si tu donnes un seul ticket (ce n’est qu’un exemple).

    Je me sers de ce champ pour, par exemple, retrouver le propriétaire d’un ticket :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECTWHERE [Numéro Ticket ?] Between [NumPremierTicket] AND [NumPremierTicket]+[qtteTicket]-1;

    Citation Envoyé par samraessia
    …je ne vois pas non plus l'interdiction à un idpersonnel d'avoir plusieurs carnets par mois, car chaque personne n'a pas le droit d'avoir plus de 22 tickets par mois
    Il n’y en a pas. D’ailleurs tu peux aussi remarquer que rien n’empêche de donner le même numéro de ticket à plusieurs personnes !!

    Ce sont des contraintes qu’il faudra programmer en VBA dans ton formulaire de saisie et qui exploitent des requêtes, des fonctions...

    Exemple : pour compter la quantité de tickets déjà donnés pour le mois en cours à une personne donnée: (date en cours retournée par l’horloge système du PC avec la fonction VBA, Date() )
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Sum(qtteTicket) AS SommeQtteTicket FROM DonnerCarnet
    WHERE (idPersonnel=[Numéro agent ?] AND Month([DateDonnerCarnet])=Month(Date()) AND Year([DateDonnerCarnet])=Year(Date());
    Si la requête retourne SommeQtteTicket=22, la programmation doit empêcher la saisie d’un carnet supplémentaire pour ce personnel…

    Exemple : pour obtenir le prochain numéro de ticket disponible, (ou avec la fonction DMax )
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Max([NumPremierTicket]+[qtteTicket]) AS ProchainNumeroTicket FROM DonnerCarnet

    Bref, un peu de requêtes, de VBA, de manipulations dans les formulaires,… ce n’est pas très difficile mais ça ne s’invente pas.
    Commence par construire ton formulaire, puis prépare les requêtes nécessaires avec les assistants (voir comment créer des requêtes simples ) ).

    En parcourant les tutoriels, FAQ tu pourras t’initier à la programmation… et bien sûr tu peux compter sur le forum pour résoudre les difficultés rencontrées

  11. #11
    Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut gestion ticket restaurant
    Citation Envoyé par f-leb Voir le message
    Re,


    Rien de spécial, ça ne fait rien d’autres que de stocker la valeur numérique 22 dans le champ [qtteTicket] de la table.
    Un jour, tu pourrais très bien avoir (exceptionnellement) à rentrer [qtteTicket]=1 si tu donnes un seul ticket (ce n’est qu’un exemple).

    Je me sers de ce champ pour, par exemple, retrouver le propriétaire d’un ticket :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECTWHERE [Numéro Ticket ?] Between [NumPremierTicket] AND [NumPremierTicket]+[qtteTicket]-1;


    Il n’y en a pas. D’ailleurs tu peux aussi remarquer que rien n’empêche de donner le même numéro de ticket à plusieurs personnes !!

    Ce sont des contraintes qu’il faudra programmer en VBA dans ton formulaire de saisie et qui exploitent des requêtes, des fonctions...

    Exemple : pour compter la quantité de tickets déjà donnés pour le mois en cours à une personne donnée: (date en cours retournée par l’horloge système du PC avec la fonction VBA, Date() )
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Sum(qtteTicket) AS SommeQtteTicket FROM DonnerCarnet
    WHERE (idPersonnel=[Numéro agent ?] AND Month([DateDonnerCarnet])=Month(Date()) AND Year([DateDonnerCarnet])=Year(Date());
    Si la requête retourne SommeQtteTicket=22, la programmation doit empêcher la saisie d’un carnet supplémentaire pour ce personnel…

    Exemple : pour obtenir le prochain numéro de ticket disponible, (ou avec la fonction DMax )
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Max([NumPremierTicket]+[qtteTicket]) AS ProchainNumeroTicket FROM DonnerCarnet

    Bref, un peu de requêtes, de VBA, de manipulations dans les formulaires,… ce n’est pas très difficile mais ça ne s’invente pas.
    Commence par construire ton formulaire, puis prépare les requêtes nécessaires avec les assistants (voir comment créer des requêtes simples ) ).

    En parcourant les tutoriels, FAQ tu pourras t’initier à la programmation… et bien sûr tu peux compter sur le forum pour résoudre les difficultés rencontrées
    attn f leb

    tres sincerement merci beaucoup
    deja c'est une excellente base pour moi
    comme ce n'es pas moi qui gere les numeros de tickets , ce n'est pas aussi important , l'imprimerie s'occupe de cela
    ensuite l'administration me donne exactement le nombre de carnets qu'il faut que je distribue moi
    c'etait une envie de meticulosité de ma part et surement une envie de maitriser comme tu dis le vba et contarintes etc etc
    j'ai testé ce que tu m'a donné et deja j'ai un listing des carnets par matricule ce qui est deja bien dans l'etat
    je vais aussi m'en inspirer pour les stages de formations pour le personnel
    tu pourrais dans un elan de gentillesse cette fin d'année m'en proposer un petit truc
    personnel inscrit a un stage pendant une durée
    stage=nom stage-dte debut -dte fin-date de validitée formation (année formation+2ans)-numero ODD (ordre de deplacement) etc
    tres bonne année
    et un GRAND MERCI à vous tous chaleureux avec un peu de soleil tunisien
    a+

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    allez, dans mon élan…

    Citation Envoyé par samraessia
    personnel inscrit a un stage pendant une durée
    stage=nom stage-dte debut -dte fin-date de validitée formation (année formation+2ans)-numero ODD (ordre de deplacement) etc
    Peut-être avec une table Inscription(idInscription, dateInscription,NumODD,…, #idPersonnel, #idStage)
    Personnel-1--------Inscription--------1-Stage

    Citation Envoyé par samraessia
    …avec un peu de soleil tunisien
    Je prends…bonne année à toi.

    PS : un p’tit tag pour clore la discussion…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tickets restaurant apprenti
    Par noelle85 dans le forum Paie
    Réponses: 8
    Dernier message: 08/02/2011, 23h02
  2. Gestion de restaurant
    Par yousra01 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 26/12/2010, 09h16
  3. Développement d'un extranet de gestion de restauration scolaire
    Par kimjoa dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 22/07/2010, 00h17
  4. Attribution des Ticket restaurant
    Par lionel84 dans le forum SSII
    Réponses: 0
    Dernier message: 14/05/2010, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo