Ejemplo 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"));
        }
Ejemplo 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));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Permet de récupérer l'instance du singleton
 /// </summary>
 /// <returns></returns>
 public static CaisseManager GetCaisseManagerInstance()
 {
     if (_instance == null) {
         lock (instanceLock) {
             //on vérifie encore, au cas où l'instance aurait été créée entretemps.
             if (_instance == null) {
                 _instance = new CaisseManager();
             }
         }
     }
     return _instance;
 }
Ejemplo n.º 4
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"));
        }
        public ActionResult Create([Bind(Include = "Id,ForfaitId,ClientId,DateDebut,DateFin,ResteAPayer,DateSuspension,Montant,Date,UserId,SommePaye")] Abonnement abonnement, string reglement)
        {
            if (ModelState.IsValid)
            {
                abonnement.Id     = Guid.NewGuid();
                abonnement.UserId = User.Identity.GetUserId();
                var forfait = db.Forfaits.Find(abonnement.ForfaitId);

                if (forfait == null)
                {
                    ModelState.AddModelError("QuantitePrise", "La quantité de produit à louer n'est pas disponible");
                    ViewBag.ProduitId = new SelectList(db.Produits, "ID", "Nom", abonnement.ForfaitId);
                    return(View(abonnement));
                }

                abonnement.Montant     = forfait.Montant;
                abonnement.SommePaye   = forfait.Montant;
                abonnement.ResteAPayer = 0;
                abonnement.Date        = DateTime.Now;
                abonnement.DateFin     = abonnement.DateDebut.AddDays(forfait.Duree);
                abonnement.Suspendu    = false;
                abonnement.UserId      = User.Identity.GetUserId();
                //abonnement.ResteAPayer = abonnement.Montant - abonnement.SommePaye;

                //if (abonnement.ResteAPayer < 0)
                //{
                //    abonnement.ResteAPayer = 0;
                //}
                abonnement.DateSuspension = abonnement.DateFin;
                db.Operations.Add(abonnement);
                db.SaveChanges();
                var    caisseManager = new CaisseManager(db);
                string raison        = "Reglement abonnement";
                caisseManager.reglerAbonnement(abonnement.SommePaye, abonnement, raison, reglement);
                return(RedirectToAction("Index"));
            }

            ViewBag.ClientId  = new SelectList(db.Clients, "ID", "Nom");
            ViewBag.ProduitId = new SelectList(db.Produits, "ID", "Nom", abonnement.ForfaitId);
            return(View(abonnement));
        }
Ejemplo n.º 6
0
 void Start()
 {
     _CaisseManager = CaisseManager.GetCaisseManagerInstance();
 }