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")); }
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)); }
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")); }
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)); }