//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!"; } }
//Rechercher une ligne de vente dans la vente encours private static LigneVente RechercherLigneVente(int numArt, ICollection <LigneVente> ligneVente) { LigneVente ligne = null; IEnumerable <LigneVente> result = from l in ligneVente where l.numArticle == numArt select l; if (result.Count() > 0) { ligne = result.Single(); } return(ligne); }
protected void btnAjouter_Click(object sender, EventArgs e) { LigneVente p = new LigneVente(); p.idApp = int.Parse(cbbApprovisionnement.SelectedValue.ToString()); p.idP = int.Parse(cbbProduit.SelectedValue.ToString()); p.idV = int.Parse(cbbVente.SelectedValue.ToString()); p.qte = decimal.Parse(txtQte.Text); p.puV = decimal.Parse(txtPuV.Text); db.LigneVente.Add(p); Produit pd = db.Produit.FirstOrDefault((r => r.idP == p.idP)); pd.qteP = (decimal)pd.qteP - (decimal)p.qte; //db.Produit.Add(pd); db.SaveChanges(); Server.Transfer("frmLigneVente.aspx"); }