Les meilleurs développeurs Symfony freelances sont sur Codeur.com

Développements récurrents en symfony2

 Fermé · 800 à 1 500 € · 2 offres · 931 vues · 11 interactions


Bonjour,

Nous avons développé une solution permettant la prise de commande à table dans les restaurants. Cette solution se compose d'une API centrale développée avec symfony2 et de différents front/middle/back (développés eux aussi avec symfony2 et nodejs). Je cherche un partenaire fiable et réactif, maîtrisant parfaitement Symfony2 (et idéalement nodejs) pour développer certaines fonctionnalités. Il s'agit de missions récurrentes car il y aura régulièrement de nouvelles fonctionnalités à ajouter.

Je propose 2 packs différents. Merci de me faire un devis avec le temps et le prix pour chacun partie des packs.

Pack 1 :
- Mise en place de la "gestion des rounds"
. Il faut ajouter un champs "ROUND" pour chaque plat. On lui attribuera un nombre entre 1 et 5 pour savoir à quel round il devra être envoyé. Ex : 1 pour les entrées, 2 pour les plats, 3 pour les desserts et 4 pour les cafés.
. Les plats du premier round sont envoyés en préparation dés que toutes les personnes d'une table ont envoyé leur commande.
. Les rounds suivants sont envoyés lorsque le serveur clique sur le bouton "envoyer la suite" présent sur chaque table dans le middle office.

- Editions des tickets de production (multi zone) :
. Il faut ajouter un champs "SPOT" à chaque plat pour savoir où les tickets de production doivent être envoyés (ex : "bar", "cuisine" ...)
. Lorsque que toutes les personnes d'une table ont envoyé leur commande, un ticket avec toutes les boissons (hors cafés, thés... à qui on a attribué un round >0) est généré et envoyé au bar (voir exemple joint). Un autre ticket est envoyé en cuisine avec TOUS les plats commandés. Ce ticket doit faire apparaitre les différents rounds (voir exemple joint)
. Lorsque le serveur appuie sur "envoyer la suite" dans le middle office, cela doit générer un nouveau ticket en cuisine avec les plats à préparer pour ce round (voir exemple joint)
. Une fois la première commande passée, dés qu'une personne commande autre chose, c'est rajouté au round prévu ou si ce round est déjà passé c'est envoyé aussitôt en cuisine. Dans tous les cas, les boissons sont envoyées aussitôt au bar (hors cafés, thés... à qui on a attribué un round >0)

Ces tickets doivent être mis en forme selon les exemples donnés et imprimés sur des imprimantes reliées en wifi (EPSON TM M30).

- Edition des factures
. Il faut rajouter un champs "TVA" pour chacun des plats. Ce champs permettra de connaitre la TVA qui lui est appliquée
. Dans le middle office du serveur, il faut rajouter un bouton "Imprimer la facture" pour chaque table.
. Lorsque le serveur appuie sur ce bouton, cela doit générer une facture au même format que les exemples joints (avec la TVA notament) et l'imprimer sur une des imprimantes reliées en wifi (EPSON TM M30)

Pack 2 :
- Export de la caisse de la journée
. Dans le backoffice du site, rajouter un formulaire pour pouvoir exporter les stats de la caisse sur une période donnée. Ce formulaire doit proposer une date de début, une date de fin et un bouton "Imprimer Stats"
. Quand le gérant appuie sur le bouton, cela doit générer un ticket reprenant le format donné en exemple et l'imprimer sur une des imprimantes reliées en wifi (EPSON TM M30)

- Gestion des anomalies
. Dans cette première version, il faut que l'on puisse détécter 2 types d'anomalies : un nombre trop grand de plats commandés par rapport au nombre de personnes, un délai trop long avant que toutes les personnes de la table aient commandé
. Il faut pour cela créer une tache qui sera éxécutée toutes les minutes via la crontab et qui insère une nouvelle anomalie dans la table existante

- Envoi des commandes vers l'API d'un partenaire
. Il faut rajouter un champs "CASH_REGISTER_ID" permettant de faire le lien entre un produit chez nous et un produit dans le logiciel de caisse partenaire
. Créer une fonction dans l'API qui permet de se connecter à l'API de CashPad et de leur envoyer la commande à leur format (à envoyer quand toutes les personnes d'une table ont fini de commander):
{
"id"​:"order‐id", //ID de la commande (fournie par le service externe)
"type"​:0, //Type(À emporter/Livraison/Sur place)
"state"​:30, //État de la commande
"comment"​:"Any comment if state is canceled",
"cancel_cause"​:null, //String si état annulé
"cancel_comment"​:null, //String si état annulé
"date_create"​:[Téléphone visible pour les membres Pro], //Date de la création de la commande(timestamp en secondes)
"date_order"​:[Téléphone visible pour les membres Pro], //Date programmée de la commande(date de pickup)
"date_update"​:[Téléphone visible pour les membres Pro], //Date de dernière modification
"nb_eaters"​:2, //Nombredepersonnes
"total"​:32, //Montant total
"items"​:[ //Liste des éléments de la commande
{
"name"​:"Menu Mafieux Poêlé",
"quantity"​:2,
"price"​:15.5,//Prix unitaire​ du menu (sans les suppléments)
"extras"​:null,
"pos_id"​:"71CD7DF9‐99D0‐41DE‐B5DE‐597CEBDC876C",//ID produit cashpad
"children"​:[ //Contenu du menu(si le produit est un menu)
{
"name"​:"Le Mafieux Poêlé",
"price"​:0,
"quantity"​:1, //Quantité par menu (ici 2 menus contenant chacun 1 Mafieux Poélé)
"pos_id"​:"F64F617F‐7EB1‐4162‐B994‐EB3F440127F6",
"extras"​:[ //Suppléments
{
"name"​:"Supplément bacon",
"price"​:0.5,
"quantity"​:1,//Quantité par produit
"pos_id"​:"3E40260D‐A2FA‐411E‐BE4E‐3825B816E634" //ID option
}
]
},
{
"name"​:"Frites à Tonton",
"price"​:0,
"quantity"​:1,
"pos_id"​:"C8E6BB13‐8AC2‐416C‐8CEF‐FC82BB46B5D3",
"extras"​:null
},
{
"name"​:"Evian",
"price"​:0,
"quantity"​:1,
"pos_id"​:"4466A543‐9729‐4874‐BBC7‐42B5E72303F1",
"extras"​:null
}
]
}
]
}

‐ Valeurs possibles pour state (tous les états ne sont pas forcément utiles dans tous les cas) :
10=>en attente de validation du restaurateur
20=>en attente de paiement en ligne
30=>confirmée par le restaurateur
40=>terminée
50=>annulée par le client ou restaurateur

Seules les commandes confirmées (state>=30) sont visibles dans la caisse

‐ Valeurs possibles pour type :
0=>À emporter
1=>Livraison
2=>Sur place

N'hésitez pas à revenir vers moi si vous avez besoin de précisions.

Merci et bonne soirée.

Frédéric

Budget indicatif : 800 à 1 500 €

Publication : 02 mars 2016 à 16h42

Profils recherchés : Développeur Symfony freelance , Développeur PHP freelance , Développeur Node.js freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

2 freelances ont répondu à ce projet

1 proposition de devis en moins de 2h

EdouardK Développeur Symfony
zephyrweb Agence de développement Symfony
Publier un projet similaire

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients