//Lister articles dans la fenetre vente public static void ListerArticles(NouvelleVente frm) { frm.LblTxtQuantite.Text = ""; if (!frm.TxtArticle.Text.Equals("")) { var sim = new SIM_Context(); Utilisateur user = frm.Session["utilisateur"] as Utilisateur; var result = from a in sim.Stocks where a.numFiliale == user.numFiliale && a.Article.nom.ToUpper().StartsWith(frm.TxtArticle.Text.ToUpper()) && a.qteEnStock > 0 select new { NumArticle = a.numArticle, NomArticle = a.Article.nom, Description = a.Article.description, PrixVente = a.Article.prixVente, QuantiteEnStock = a.qteEnStock }; if (result.Count() > 0) { frm.GridArticle.DataSource = result.ToList(); frm.GridArticle.DataBind(); } } }
//Initialiser la vente public static void InitialiserVente(NouvelleVente frm) { Utilisateur user = frm.Session["utilisateur"] as Utilisateur; Vente vente = new Vente(); vente.numFiliale = user.numFiliale; vente.nomUtilisateur = user.nomUtilisateur; frm.Session["vente"] = vente; }
//Ajouter une ligne vente dans la vente encours public static void Ajouter(NouvelleVente frm) { try { int numArticle = int.Parse(frm.TxtNumArticle.Text); int quantite = int.Parse(frm.TxtQuantite.Text); double prixVente = double.Parse(frm.TxtPrixVente.Text); Utilisateur user = frm.Session["utilisateur"] as Utilisateur; Vente vente = frm.Session["vente"] as Vente; int qteStock = GetQuantiteEnStock(numArticle, user.numFiliale); if (qteStock > 0 && qteStock >= quantite) { //Récuperer une ligne vente encours LigneVente ligne = RechercherLigneVente(numArticle, vente.LigneVentes); if (ligne == null) { vente.LigneVentes.Add( new LigneVente { numArticle = numArticle, quantite = quantite, prix = prixVente } ); vente.montant += prixVente * quantite; frm.TxtMontant.Text = vente.montant.ToString(); } else { ligne.quantite += quantite; vente.montant += prixVente * quantite; frm.TxtMontant.Text = vente.montant.ToString(); } frm.GridLigneVente.DataSource = vente.LigneVentes; frm.GridLigneVente.DataBind(); frm.LblTxtQuantite.Text = "Ajout avec succes!"; } else { //Message : Qte en stock frm.LblTxtQuantite.Text = "Quantité en stock insufisante!"; } } catch (Exception) { frm.LblTxtQuantite.Text = "En numérique obligatoire!"; } }
//Valider une vente public static void ValiderVente(NouvelleVente frm) { try { Utilisateur user = frm.Session["utilisateur"] as Utilisateur; Vente vente = frm.Session["vente"] as Vente; string sms = "Commande en urgence pour les articles suivants : "; bool temoinMsg = false; using (var sim = new SIM_Context()) { foreach (LigneVente l in vente.LigneVentes) { //Mise à jour de la quantite en stock //Stock stock = sim.Stocks.Find(new object[] { l.numArticle, user.numFiliale});//Douteux? Stock stock = (from s in sim.Stocks where s.numArticle == l.numArticle && s.numFiliale == user.numFiliale select s ).Single(); stock.qteEnStock -= l.quantite; if (stock.qteEnStock == stock.qteMoyenneMin) { sms += "(" + stock.numArticle + "," + stock.Article.nom + ") "; temoinMsg = true; } } vente.dateVente = DateTime.Now; vente = sim.Ventes.Add(vente); int ok = sim.SaveChanges(); frm.TxtNumVente.Text = vente.numVente.ToString(); frm.TxtDateVente.Text = vente.dateVente.ToShortDateString(); //Notification if (temoinMsg) { Sms.SendSms(sms); } //Message: La vente a été éffectuée avec succès frm.LblResultatValiderNouvelVente.Text = "La vente a été éffectuée avec succès"; } } catch (Exception ex) { frm.LblResultatValiderNouvelVente.Text = "Erreur dans le formulaire de vente. SVP appeler le support techniques"; } }