Esempio n. 1
0
        public ActionResult Edit(AchatCreateVM achat)
        {
            if (ModelState.IsValid)
            {
                StockManager stockManager = new StockManager(db);
                Achat        oldAchat     = db.Achats.Where(v => v.Id == achat.ID).Include(v => v.Details.Select(d => d.Produit)).First();
                //Restitution du stock
                foreach (var detail in oldAchat.Details)
                {
                    stockManager.RemoveStock(detail.ProduitID.Value, detail.QuantiteAchetee, OperationType.Vente);
                }
                //Annulation des reglements
                var caisseManager = new CaisseManager(db);
                caisseManager.AnnulerReglementsAchat(oldAchat, "suppression");
                //Suppression des anciens details
                oldAchat.Montant = 0;
                oldAchat.Montant = achat.MontantPaye;
                oldAchat.UserId  = User.Identity.GetUserId();
                for (int i = 0; i < oldAchat.Details.Count; i++)
                {
                    db.DetailsAchat.Remove(oldAchat.Details[i]);
                }
                db.SaveChanges();
                //Enregistrement des nouveaux details commande
                double total = 0;
                foreach (var detail in achat.Details)
                {
                    if (detail.Quantite > 0)
                    {
                        oldAchat.Details.Add(new DetailAchat()
                        {
                            Produit         = db.Produits.Find(detail.ProduitId),
                            QuantiteAchetee = detail.Quantite,
                            ProduitID       = detail.ProduitId,
                            ID        = Guid.NewGuid(),
                            PrixAchat = db.Produits.Find(detail.ProduitId).PrixAchat
                        });
                    }
                    //Sortie de stock
                    stockManager.AddStock(detail.ProduitId, detail.Quantite, OperationType.Achat);
                    total += detail.Quantite * db.Produits.Find(detail.ProduitId).PrixVente;
                }

                //Reglements

                oldAchat.Montant = total;
                //oldAchat.MontantRestant = total;
                db.SaveChanges();
                //caisseManager.reglerAchat(achat.MontantPaye, oldAchat, "Paiement de vente");
                //return RedirectToAction("Confirmer", new { id = oldAchat.Id });
            }

            //ViewBag.ClientId = new SelectList(db.Clients, "ID", "Nom", achat.ClientId);
            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
        public ActionResult Edit(VenteVM vente, Guid clientId, string reglement)
        {
            if (ModelState.IsValid)
            {
                StockManager stockManager = new StockManager(db);
                Vente        oldVente     = db.Ventes.Where(v => v.Id == vente.Id).Include(v => v.Details.Select(d => d.Produit)).First();
                //Restitution du stock
                foreach (var detail in oldVente.Details)
                {
                    stockManager.AddStock(detail.ProduitID, detail.QuantiteVendue, OperationType.Vente);
                }
                //Annulation des reglements
                var caisseManager = new CaisseManager(db);
                caisseManager.AnnulerReglementsVente(oldVente, "suppression");
                //Suppression des anciens details
                oldVente.Montant        = 0;
                oldVente.MontantRegle   = 0;
                oldVente.MontantRestant = 0;
                for (int i = 0; i < oldVente.Details.Count; i++)
                {
                    db.DetailsVente.Remove(oldVente.Details[i]);
                }
                db.SaveChanges();
                //Enregistrement des nouveaux details commande
                double total = 0;
                foreach (var detail in vente.Details)
                {
                    if (detail.Quantite > 0)
                    {
                        oldVente.Details.Add(new DetailVente()
                        {
                            Produit        = db.Produits.Find(detail.ProduitId),
                            QuantiteVendue = detail.Quantite,
                            ProduitID      = detail.ProduitId,
                            ID             = Guid.NewGuid()
                        });
                    }
                    //Sortie de stock
                    stockManager.RemoveStock(detail.ProduitId, detail.Quantite, OperationType.Vente);
                    total += detail.Quantite * db.Produits.Find(detail.ProduitId).PrixVente;
                }

                //Reglements

                oldVente.Montant        = total;
                oldVente.MontantRestant = total;
                db.SaveChanges();
                caisseManager.reglerVente(vente.MontantPaye, oldVente, "Paiement de vente", reglement);
                return(RedirectToAction("Confirmer", new { id = oldVente.Id }));
            }

            ViewBag.ClientId = new SelectList(db.Clients, "ID", "Nom", vente.ClientId);
            return(View(vente));
        }
Esempio n. 3
0
        public ActionResult DeleteConfirmed(Guid id)
        {
            StockManager manager = new StockManager(db);
            Vente        vente   = db.Operations.OfType <Vente>().Include(v => v.Details).FirstOrDefault(o => o.Id == id);

            foreach (var detail in vente.Details)
            {
                manager.AddStock(detail.ProduitID, detail.QuantiteVendue, OperationType.Vente);
            }
            var caisseManager = new CaisseManager(db);

            caisseManager.AnnulerReglementsVente(vente, "suppression");
            db.Operations.Remove(vente);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 4
0
        public ActionResult Create(AchatCreateVM achatVM)
        {
            if (ModelState.IsValid)
            {
                //Mettre a jour les infos vides et affecter le stock

                var achat = new Achat()
                {
                    Id          = Guid.NewGuid(),
                    Montant     = achatVM.MontantPaye,
                    Date        = DateTime.Now,
                    Fournisseur = achatVM.Fournisseur,
                    NumFacture  = achatVM.NumFactureFournisseur,
                    Details     = new List <DetailAchat>(),
                    UserId      = User.Identity.GetUserId()
                };

                foreach (var detailVM in achatVM.Details)
                {
                    if (detailVM.Quantite > 0)
                    {
                        var produit = db.Produits.Find(detailVM.ProduitId);

                        var detail = new DetailAchat()
                        {
                            ID              = Guid.NewGuid(),
                            AchatId         = achat.Id,
                            ProduitID       = produit.ID,
                            Produit         = produit,
                            PrixAchat       = detailVM.Prix,
                            QuantiteAchetee = detailVM.Quantite
                        };

                        achat.Details.Add(detail);

                        stockManager.AddStock(produit.ID, detail.QuantiteAchetee, OperationType.Achat);
                    }
                }
                db.Achats.Add(achat);
                //db.Operations.Add(achat);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(achatVM));
        }