public CommandeProduit Add(CommandeProduit commandeProduit)
        {
            _contexte.CommandesProduits.Add(commandeProduit);
            _contexte.SaveChanges();

            return(commandeProduit);
        }
        public CommandeProduit Delete(CommandeProduit commandeProduit)
        {
            _contexte.CommandesProduits.Remove(commandeProduit);
            _contexte.SaveChanges();

            return(commandeProduit);
        }
예제 #3
0
        public async Task <ActionResult <CommandeProduit> > PostCommandeProduit(CommandeProduit commandeProduit)
        {
            _context.CommandeProduit.Add(commandeProduit);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCommandeProduit", new { id = commandeProduit.Id }, commandeProduit));
        }
예제 #4
0
        public async Task <IActionResult> PutCommandeProduit(long id, CommandeProduit commandeProduit)
        {
            if (id != commandeProduit.Id)
            {
                return(BadRequest());
            }

            _context.Entry(commandeProduit).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CommandeProduitExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #5
0
        public JsonResult SaveCommande(string idsession)
        {
            SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID);
            PanierModel        panier             = null;

            if (sessionUtilisateur != null && HttpContext.Application[idsession] != null)
            {
                panier = (PanierModel)HttpContext.Application[idsession];
            }
            try
            {
                Utilisateur utilisateur = db.Utilisateurs.First(p => p.IdSession == idsession);
                if (utilisateur != null && utilisateur.Solde > 0 && panier != null && panier.Count > 0)
                {
                    decimal prixTotal = 0;
                    prixTotal = panier.Montant;
                    if (prixTotal <= utilisateur.Solde)
                    {
                        Commande commande = new Commande();
                        commande.IdUtilisateur  = utilisateur.IdUtilisateur;
                        commande.IdRestaurant   = panier.IdRestaurant;
                        commande.Date           = DateTime.Now;
                        commande.Prix           = prixTotal;
                        commande.IdEtatCommande = 1;
                        utilisateur.Solde      -= prixTotal;
                        foreach (ItemPanier item in panier)
                        {
                            CommandeProduit commandeProduit = new CommandeProduit();
                            commandeProduit.IdProduit = item.GetIdProduit();
                            commandeProduit.Prix      = item.Prix;
                            commandeProduit.Quantite  = item.Quantite;
                            commande.CommandeProduits.Add(commandeProduit);
                            try
                            {
                                Produit produit = db.Produits.Find(commandeProduit.IdProduit);
                                if (produit.IdProduit == commandeProduit.IdProduit)
                                {
                                    produit.Quantite -= commandeProduit.Quantite;
                                }
                            }
                            catch (Exception ex)
                            {
                                string er = ex.Message;
                            }
                        }
                        db.Commandes.Add(commande);
                        db.SaveChanges();
                        HttpContext.Application.Clear();
                    }
                }
                return(Json(new { idutilisateur = utilisateur.IdUtilisateur }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                string er = ex.Message;
            }
            return(Json(JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Supprimer une CommandeProduit en base à partir du contexte et de son identifiant
        /// </summary>
        /// <param name="cmdproduitID">Identifiant de la CommandeProduit à supprimer</param>
        public void Supprimer(int cmdproduitID)
        {
            CommandeProduit deletedCmdProduit = _contexte.CommandeProduits.Where(cmdPrd => cmdPrd.Id == cmdproduitID).FirstOrDefault();

            if (deletedCmdProduit != null)
            {
                _contexte.CommandeProduits.Remove(deletedCmdProduit);
            }
            _contexte.SaveChanges();
        }
        public void UpdateCommandeProduitTest()
        {
            CreateCommandeProduit();
            Manager.Instance.AddCommandeProduit(this.commandeProduit);
            this.commandeProduit.Quantite = 1111;
            CommandeProduit commandeProduitUpdated = Manager.Instance.UpdateCommandeProduit(this.commandeProduit);

            Assert.AreEqual(1111, commandeProduitUpdated.Quantite);
            DeleteCommandeProduit();
        }
        /// <summary>
        /// Modifier une CommandeProduit déjà présent en base à partir du contexte
        /// </summary>
        /// <param name="changed">CommandeProduit à modifier</param>
        public void Modifier(CommandeProduit changed)
        {
            CommandeProduit cmdProduit = _contexte.CommandeProduits.Where(cmdPrd => cmdPrd.Id == changed.Id).FirstOrDefault();

            if (cmdProduit != null)
            {
                cmdProduit.Id         = changed.Id;
                cmdProduit.Quantite   = changed.Quantite;
                cmdProduit.CommandeId = changed.CommandeId;
                cmdProduit.Commande   = changed.Commande;
            }
            _contexte.SaveChanges();
        }
        public void DeleteCommandeProduitTest()
        {
            CreateCommandeProduit();
            Manager.Instance.AddCommandeProduit(this.commandeProduit);
            CommandeProduit commandeProduitTmp = this.commandeProduit;

            DeleteCommandeProduit();
            List <CommandeProduit> commandesProduits = Manager.Instance.GetAllCommandesProduits();

            if (commandesProduits.Count() > 0)
            {
                Assert.AreNotEqual(commandeProduitTmp, commandesProduits.Last());
            }
        }
        public CommandeProduit Update(CommandeProduit commandeProduit)
        {
            CommandeProduit cpDB = _contexte.CommandesProduits.Where(cp => cp.ProduitId == commandeProduit.ProduitId).Where(cp => cp.CommandeId == commandeProduit.CommandeId).FirstOrDefault();

            if (cpDB != null)
            {
                cpDB.Commande   = commandeProduit.Commande;
                cpDB.CommandeId = commandeProduit.CommandeId;
                cpDB.Produit    = commandeProduit.Produit;
                cpDB.ProduitId  = commandeProduit.ProduitId;
                cpDB.Quantite   = commandeProduit.Quantite;
            }
            _contexte.SaveChanges();

            return(cpDB);
        }
        private void CreateCommandeProduit()
        {
            this.client        = new Client();
            this.client.Actif  = false;
            this.client.Nom    = "TestCommandeProduit";
            this.client.Prenom = "TestCommandeProduit";
            Manager.Instance.AddClient(this.client);

            this.statut         = new Statut();
            this.statut.Libelle = "TestCommandeProduit";
            Manager.Instance.AddStatut(this.statut);

            this.commande             = new Commande();
            this.commande.Observation = "TestCommandeProduit";
            this.commande.ClientID    = this.client.Id;
            this.commande.StatutId    = this.statut.Id;
            Manager.Instance.AddCommande(this.commande);

            this.categorie         = new Categorie();
            this.categorie.Actif   = false;
            this.categorie.Libelle = "TestCommandeProduit";
            Manager.Instance.AddCategorie(this.categorie);

            this.produit             = new Produit();
            this.produit.Actif       = false;
            this.produit.Code        = 0;
            this.produit.Description = "TestCommandeProduit";
            this.produit.Libelle     = "TestCommandeProduit";
            this.produit.Prix        = 0;
            this.produit.Stock       = 0;
            this.produit.CategorieId = this.categorie.Id;
            Manager.Instance.AddProduit(this.produit);

            this.commandeProduit            = new CommandeProduit();
            this.commandeProduit.Quantite   = 0;
            this.commandeProduit.CommandeId = this.commande.Id;
            this.commandeProduit.ProduitId  = this.produit.Id;
        }
예제 #12
0
        public JsonResult SaveCommande(string idsession)
        {
            SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID);
            Panier             panier             = null;

            if (sessionUtilisateur != null && HttpContext.Application[idsession] != null)
            {
                panier = (Panier)HttpContext.Application[idsession];
            }

            try
            {
                Utilisateur utilisateur = db.Utilisateurs.First(p => p.IdSession == idsession);

                if (utilisateur != null && utilisateur.Solde > 0 && panier != null && panier.Count > 0)
                {
                    decimal prixTotal = 0;

                    // panier.GetTotal(); -> On fait appel à CalculPanier() à l'ajout ou à la suppression d'un item
                    prixTotal = panier.Total;

                    if (prixTotal <= utilisateur.Solde)
                    {
                        Commande commande = new Commande();
                        commande.IdUtilisateur  = utilisateur.IdUtilisateur;
                        commande.IdRestaurant   = panier.IdRestaurant;
                        commande.Date           = DateTime.Now;
                        commande.Prix           = prixTotal;
                        commande.IdEtatCommande = 1;

                        utilisateur.Solde -= prixTotal;

                        foreach (ItemPanier item in panier)
                        {
                            if (item is ProduitPanier)
                            {
                                CommandeProduit commandeProduit = new CommandeProduit();
                                commandeProduit.IdProduit = item.GetIdProduit();
                                commandeProduit.Prix      = item.Prix;
                                commandeProduit.Quantite  = item.Quantite;

                                commande.CommandeProduits.Add(commandeProduit);
                            }

                            else if (item is MenuPanier menuPanier)
                            {
                                List <ProduitPanier> produitPaniers = menuPanier.produits;
                                Menu menu = db.Menus.Find(item.GetIdMenu());

                                foreach (ProduitPanier produitPanier in produitPaniers)
                                {
                                    CommandeProduit commandeProduit = new CommandeProduit();
                                    commandeProduit.IdProduit = produitPanier.GetIdProduit();
                                    commandeProduit.Prix      = 0;
                                    commandeProduit.Quantite  = produitPanier.Quantite;
                                    commandeProduit.Menus.Add(menu);

                                    commande.CommandeProduits.Add(commandeProduit);
                                }

                                //
                            }

                            else if (item is ProduitComposePanier produitComposePanier)
                            {
                                List <ProduitPanier> produitPaniers = produitComposePanier.produits;
                                foreach (ProduitPanier produitPanier in produitPaniers)
                                {
                                    CommandeProduit commandeProduit = new CommandeProduit();
                                    commandeProduit.IdProduit = produitPanier.GetIdProduit();
                                    commandeProduit.Prix      = 0;
                                    commandeProduit.Quantite  = produitPanier.Quantite;

                                    commande.CommandeProduits.Add(commandeProduit);
                                }
                            }
                        }
                        commande.Prix = prixTotal;
                        db.Commandes.Add(commande);
                        db.SaveChanges();

                        HttpContext.Application.Clear();
                    }
                }
                return(Json(new { idutilisateur = utilisateur.IdUtilisateur }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                string er = ex.Message;
            }

            return(Json(JsonRequestBehavior.AllowGet));
        }
예제 #13
0
        //méthode de sauvegarde du panier en bdd
        public JsonResult SaveCommande(string idSession)
        {
            PanierModel panierModel = null;

            //à faire : gérer les messages associés au déroulé de l'action (succes, solde insufisant, panier vide...)
            string statementReturn = "errorProcess";

            SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(idSession);

            //on vérifie l'existence d'un utilisateur en session et on récupère son panier
            if (sessionUtilisateur != null && HttpContext.Application[idSession] != null)
            {
                panierModel = (PanierModel)HttpContext.Application[idSession];
            }

            //on récupère l'utilisateur en base de données
            Utilisateur utilisateur = db.Utilisateurs.First(u => u.IdSession == idSession);

            if (utilisateur != null && utilisateur.Solde > 0 && panierModel != null && panierModel.Count > 0)
            {
                decimal prixTotal = 0;

                //calcul du montant total de la commande
                panierModel.GetTotal();
                prixTotal = panierModel.Total;


                //on vérifie si le montant est inférieur au solde avant d'enregistrer la commande
                if (prixTotal > utilisateur.Solde)
                {
                    statementReturn = "soldeError";
                    return(Json(statementReturn, JsonRequestBehavior.AllowGet));
                }
                //on créé la commande
                Commande commande = new Commande();
                commande.IdUtilisateur  = utilisateur.IdUtilisateur;
                commande.IdRestaurant   = panierModel.IdRestaurant;
                commande.Date           = DateTime.Now;
                commande.Prix           = prixTotal;
                commande.IdEtatCommande = 1;
                commande.ClicEat        = false;

                utilisateur.Solde -= prixTotal;

                //on parcours tous les produits dans le panierModel pour les enregistrer en bdd
                foreach (ItemPanier itemPanier in panierModel)
                {
                    if (itemPanier is ProduitPanier)
                    {
                        CommandeProduit commandeProduit = new CommandeProduit();
                        commandeProduit.IdProduit = itemPanier.GetIdProduit();
                        commandeProduit.Prix      = itemPanier.Prix;
                        commandeProduit.Quantite  = itemPanier.Quantite;
                        commande.CommandeProduits.Add(commandeProduit);
                    }
                    else if (itemPanier is MenuPanier menuPanier)
                    {
                        List <ProduitPanier> produitPaniers = menuPanier.produits;
                        Menu menu = db.Menus.Find(itemPanier.GetIdMenu());

                        foreach (ProduitPanier itemProduit in produitPaniers)
                        {
                            CommandeProduit commandeProduit = new CommandeProduit();
                            commandeProduit.IdProduit = itemProduit.GetIdProduit();
                            commandeProduit.Prix      = itemProduit.Prix;
                            commandeProduit.Quantite  = itemProduit.Quantite;
                            commandeProduit.Menus.Add(menu);
                            commande.CommandeProduits.Add(commandeProduit);
                        }
                    }
                    else if (itemPanier is ProduitComposePanier produitComposePanier)
                    {
                        List <ProduitPanier> produitPaniers = produitComposePanier.produits;
                        foreach (ProduitPanier itemProduit in produitPaniers)
                        {
                            CommandeProduit commandeProduit = new CommandeProduit();
                            commandeProduit.IdProduit = itemPanier.GetIdProduit();
                            commandeProduit.Prix      = itemPanier.Prix;
                            commandeProduit.Quantite  = itemPanier.Quantite;
                            commande.CommandeProduits.Add(commandeProduit);
                        }
                    }
                }

                db.Commandes.Add(commande);
                db.SaveChanges();
                //le panier est vidé
                panierModel.Clear();

                statementReturn = "commmandeOk";
            }
            return(Json(statementReturn, JsonRequestBehavior.AllowGet));
        }
예제 #14
0
 /// <summary>
 /// Ajouter la CommandeProduit en base à partir du contexte
 /// </summary>
 /// <param name="cmdProduit">CommandeProduit à ajouter</param>
 /// <returns>Identifiant du CommandeProduit ajouté</returns>
 public int Ajouter(CommandeProduit cmdProduit)
 {
     _contexte.CommandeProduits.Add(cmdProduit);
     return(_contexte.SaveChanges());
 }
예제 #15
0
        public JsonResult SaveCommande(string idSession)
        {
            PanierModel panier      = (PanierModel)HttpContext.Application[idSession] ?? new PanierModel();
            Utilisateur utilisateur = ((CustomIdentity)User.Identity).Utilisateur;

            if (utilisateur == null)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json("Utilisateur non trouvé.", JsonRequestBehavior.AllowGet));
            }

            if (panier.Count == 0)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json("Votre panier est vide.", JsonRequestBehavior.AllowGet));
            }

            if (panier.Montant > utilisateur.Solde || utilisateur.Solde <= 0)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json("Votre solde est insuffisant.", JsonRequestBehavior.AllowGet));
            }


            foreach (ItemPanier itemPanier in panier)
            {
                /*if (itemPanier is ProduitPanier produitPanier)
                 * {
                 *
                 * }*/
            }

            utilisateur.Solde -= panier.Montant;


            Commande commande = new Commande()
            {
                IdUtilisateur  = utilisateur.IdUtilisateur,
                IdRestaurant   = panier.IdRestaurant,
                Date           = DateTime.Now,
                Prix           = panier.Montant,
                IdEtatCommande = 1
            };

            foreach (ProduitPanier produitPanier in panier)
            {
                CommandeProduit commandeProduit = new CommandeProduit()
                {
                    IdCommande = commande.IdCommande,
                    IdProduit  = produitPanier.IdProduit,
                    Prix       = produitPanier.Prix,
                    Quantite   = produitPanier.Quantite
                };

                commande.CommandeProduits.Add(commandeProduit);
            }

            db.Commandes.Add(commande);
            db.SaveChanges();

            panier.Clear();

            AddFLash(Utilities.FlashMessageType.Success, "Commande effectuée avec succès");
            return(Json("Commande effectuée avec succès", JsonRequestBehavior.AllowGet));
        }
예제 #16
0
        public void AddCommandeProduit(CommandeProduit cp)
        {
            CommandeProduitCommand cpc = new CommandeProduitCommand(contexte);

            cpc.Add(cp);
        }
예제 #17
0
        public void DeleteCommandeProduit(CommandeProduit cp)
        {
            CommandeProduitCommand cpc = new CommandeProduitCommand(contexte);

            cpc.Delete(cp);
        }
예제 #18
0
        public CommandeProduit UpdateCommandeProduit(CommandeProduit cp)
        {
            CommandeProduitCommand cpc = new CommandeProduitCommand(contexte);

            return(cpc.Update(cp));
        }
예제 #19
0
        public JsonResult SaveCommande(string idSession)
        {
            PanierModel panierModel = null;

            SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID);

            string message = "";

            //On vérifie l'existence d'un utilisateur en session
            if (sessionUtilisateur != null)
            {
                //On récupère son panier
                if (HttpContext.Application[idSession] != null)
                {
                    panierModel = (PanierModel)HttpContext.Application[idSession];
                }
            }

            //On récupère l'utilisateur en base de données à partir de son idsession
            Utilisateur utilisateur = db.Utilisateurs.First(u => u.IdSession == idSession);

            if (utilisateur != null && utilisateur.Solde > 0 && panierModel != null && panierModel.Count > 0)
            {
                decimal prixTotal    = 0;
                int     idRestaurant = 0;

                //Calcul du montant de la commande
                panierModel.GetMontant();
                prixTotal = panierModel.Montant;

                //On vérifie si le montant de la commande est inférieur au solde avant de sauvegarder la commande
                if (prixTotal <= utilisateur.Solde)
                {
                    //On crée la commande
                    Commande commande = new Commande();
                    commande.IdUtilisateur  = utilisateur.IdUtilisateur;
                    commande.IdRestaurant   = panierModel.IdRestaurant;
                    commande.Date           = DateTime.Now;
                    commande.Prix           = prixTotal;
                    commande.IdEtatCommande = 1;

                    utilisateur.Solde -= prixTotal;


                    //On parcourt tous les produits dans le panierModel pour les enregistrer en bdd
                    foreach (ItemPanier itemPanier in panierModel)
                    {
                        if (itemPanier is ProduitPanier)
                        {
                            CommandeProduit commandeProduit = new CommandeProduit();

                            commandeProduit.IdProduit = itemPanier.GetIdProduit();
                            commandeProduit.Prix      = itemPanier.Prix;
                            commandeProduit.Quantite  = itemPanier.Quantite;

                            commande.CommandeProduits.Add(commandeProduit);
                        }

                        else if (itemPanier is MenuPanier menuPanier)
                        {
                            List <ProduitPanier> produitPaniers = menuPanier.produits;
                            Menu menu = db.Menus.Find(itemPanier.GetIdMenu());

                            foreach (ProduitPanier itemProduits in produitPaniers)
                            {
                                CommandeProduit commandeProduit = new CommandeProduit();

                                commandeProduit.IdProduit = itemPanier.GetIdProduit();
                                commandeProduit.Prix      = itemPanier.Prix;
                                commandeProduit.Quantite  = itemPanier.Quantite;
                                commandeProduit.Menus.Add(menu);
                                commande.CommandeProduits.Add(commandeProduit);
                            }
                        }

                        else if (itemPanier is ProduitComposePanier produitComposePanier)
                        {
                            List <ProduitPanier> produitPaniers = produitComposePanier.produits;
                            Menu menu = db.Menus.Find(itemPanier.GetIdMenu());

                            foreach (ProduitPanier itemProduits in produitPaniers)
                            {
                                CommandeProduit commandeProduit = new CommandeProduit();

                                commandeProduit.IdProduit = itemPanier.GetIdProduit();
                                commandeProduit.Prix      = itemPanier.Prix;
                                commandeProduit.Quantite  = itemPanier.Quantite;
                                commandeProduit.Menus.Add(menu);
                                commande.CommandeProduits.Add(commandeProduit);
                            }
                        }
                    }

                    db.Commandes.Add(commande);
                    db.SaveChanges();
                }
            }

            return(Json(message, JsonRequestBehavior.AllowGet));
        }
예제 #20
0
        public bool SaveCommande(Panier panier, Utilisateur utilisateur)
        {
            try
            {
                decimal prixTotal = 0;

                // panier.GetTotal(); -> On fait appel à CalculPanier() à l'ajout ou à la suppression d'un item
                prixTotal = panier.Total;

                if (prixTotal <= utilisateur.Solde)
                {
                    Commande commande = new Commande();
                    commande.IdUtilisateur  = utilisateur.IdUtilisateur;
                    commande.IdRestaurant   = panier.IdRestaurant;
                    commande.DateCommande   = DateTime.Now;
                    commande.Prix           = prixTotal;
                    commande.IdEtatCommande = 1;

                    utilisateur.Solde -= prixTotal;

                    foreach (ItemPanier item in panier)
                    {
                        if (item is ProduitPanier)
                        {
                            CommandeProduit commandeProduit = new CommandeProduit();
                            commandeProduit.IdProduit = item.GetIdProduit();
                            commandeProduit.Prix      = item.Prix;
                            commandeProduit.Quantite  = item.Quantite;

                            commande.CommandeProduits.Add(commandeProduit);
                        }

                        else if (item is MenuPanier menuPanier)
                        {
                            List <ProduitPanier> produitPaniers = menuPanier.produits;
                            Menu menu = db.Menus.Find(item.GetIdMenu());

                            foreach (ProduitPanier produitPanier in produitPaniers)
                            {
                                CommandeProduit commandeProduit = new CommandeProduit();
                                commandeProduit.IdProduit = produitPanier.IdProduit;
                                commandeProduit.Prix      = 0;
                                commandeProduit.Quantite  = 1;
                                commandeProduit.Menus.Add(menu);
                                //commandeProduit.Menus.FirstOrDefault().IdMenu = item.GetIdMenu();

                                commande.CommandeProduits.Add(commandeProduit);
                            }
                        }

                        else if (item is ProduitComposePanier produitComposePanier)
                        {
                            List <ProduitPanier> produitPaniers = produitComposePanier.produits;
                            foreach (ProduitPanier produitPanier in produitPaniers)
                            {
                                CommandeProduit commandeProduit = new CommandeProduit();
                                commandeProduit.IdProduit = item.GetIdProduit();
                                commandeProduit.Prix      = item.Prix;
                                commandeProduit.Quantite  = item.Quantite;

                                commande.CommandeProduits.Add(commandeProduit);
                            }
                        }
                    }

                    db.Commandes.Add(commande);
                    db.SaveChanges();
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }