//Ajout d'une ligne de bon de distribution public static void Ajouter(NouvelleBonDistribution frm) { try { int numArticle = int.Parse(frm.TxtNumArticle.Text); int quantite = int.Parse(frm.TxtQuantite.Text); //Avant d'aller plus loin, verifier si l'article est en stock ou possede la qte demandée Article article = GestionArticle.Rechercher(numArticle); if (article != null) { StockCentral stockCentral = article.StockCentral; if (stockCentral != null) { if (stockCentral.qte >= quantite) { BonDistribution bonDistribution = frm.Session["bonDistribution"] as BonDistribution; LigneBonDistribution ligne = RechercherLigneBonDistribution(numArticle, bonDistribution.LigneBonDistributions); if (ligne == null) { ligne = new LigneBonDistribution { numArticle = numArticle, quantite = quantite, //Article=article }; bonDistribution.LigneBonDistributions.Add(ligne); } else { ligne.quantite += quantite; } frm.GridViewDistribution.DataSource = bonDistribution.LigneBonDistributions; frm.GridViewDistribution.DataBind(); frm.TxtNumArticle.Text = ""; frm.TxtNom.Text = ""; frm.TxtQuantite.Text = ""; frm.LblResultatEnregistrer.Text = ""; frm.LblResultatTxtQuantite.Text = "Article a été ajouté dans la liste bon distribution"; } else { //Message: Quantite insufisante, la quantite en etock est : stockCentral.qte frm.LblResultatTxtQuantite.Text = "Quantite insufisante! La quantite en etock est : " + stockCentral.qte; } } else { //Message: Cet article n'est pas en stock, Veuillez commander SVP! frm.LblResultatTxtQuantite.Text = "Cet article n'est pas en stock, Veuillez commander SVP!"; } } } catch (Exception e) { frm.LblResultatTxtQuantite.Text = "Champ oblitatoire et en numérique!"; } }
protected void btnRecevoir_Click(object sender, EventArgs e) { //A deplacer dans le controleur approprie BonDistribution bnd = null; using (var sim = new SIM_Context()) { bnd = sim.BonDistributions.Find(int.Parse(this.DDLNumBonDistribution.SelectedItem.Text)); if (bnd != null) { foreach (LigneBonDistribution l in bnd.LigneBonDistributions) { //Rechercher le stock de l'article dans la filiale var result = from s in l.Article.Stocks where s.numArticle == l.numArticle && s.numFiliale == bnd.numFiliale select s; if (result.Count() == 0)//Premiere distribution de l'article dans cette filiale { l.Article.Stocks.Add( new Stock { numArticle = l.numArticle, numFiliale = bnd.numFiliale, qteEnStock = l.quantite, qteMoyenneMin = 0 } ); } else //Le stock de cet article existe deja dans cette filiale { result.Single().qteEnStock += l.quantite; //Peux pas distribuer un article deux fois!!!!! pour la meme filiale } } sim.SaveChanges(); //Message de confirmation! LblResultatRecevoirBonDistribution.Text = "Le bon a été reçu avec succes!"; BtnRecevoir.Enabled = false; //efface le bon recu!(juste pour demonstration pour simuler la reception correct!!!) //sim.NotificationBonDistributions.Remove(sim.NotificationBonDistributions.Find(bnd.numBonDistribution)); sim.BonDistributions.Remove(bnd); sim.SaveChanges(); } } }
public static void Enregistrer(NouvelleBonDistribution frm) { //L'utilisateur en cours Utilisateur utilisateur = frm.Session["utilisateur"] as Utilisateur; //Mon fammeux objet bon distribution BonDistribution bnd = frm.Session["bonDistribution"] as BonDistribution; //Recuperer la filiale Filiale filiale = GestionFiliale.Rechercher(frm.CmbFiliale.SelectedValue); //Completion de l'objet bondistribution bnd.numFiliale = filiale.numFiliale; bnd.dateBonDistribution = DateTime.Now; bnd.nomUtilisateur = utilisateur.nomUtilisateur; //bnd.Filiale = filiale; bnd.NotificationBonDistributions.Add( new NotificationBonDistribution { message = "Un bon de distribution vous a été envoyé", dateNotification = DateTime.Now, etat = "0"//0: Nom, lu 1: Lu } ); using (var sim = new SIM_Context()) { //Mise à jour de la quantite du stock centrale pour chaque article distribué foreach (LigneBonDistribution l in bnd.LigneBonDistributions) { sim.Articles.Find(l.numArticle).StockCentral.qte -= l.quantite; } //Sauvegarde du bon de distribution bnd = sim.BonDistributions.Add(bnd); int result = sim.SaveChanges(); //Affichage numero bon de distribution frm.TxtNumBonDistribution.Text = bnd.numBonDistribution.ToString(); //Mise à jour du grid frm.GridViewDistribution.DataSource = bnd.LigneBonDistributions; frm.GridViewDistribution.DataBind(); frm.BtnEnregistrer.Enabled = false; frm.Session.Remove("bonDistribution"); frm.LblResultatEnregistrer.Text = "Bon de distribution enregistré avec succes!"; frm.LblResultatTxtQuantite.Text = ""; //Message de confirmation : Le bon de distribution a été sauvegardé avec succès! } }
protected void btnRechercher_Click(object sender, EventArgs e) { try { //A deplacer dans le controleur approprie BonDistribution bnd = null; using (var sim = new SIM_Context()) { bnd = sim.BonDistributions.Find(int.Parse(this.DDLNumBonDistribution.SelectedItem.Text)); if (bnd != null) { //this.TxtNumBondistribution.Text = bnd.numBonDistribution.ToString(); this.TxtNomFiliale.Text = bnd.Filiale.nom; this.TxtDateBonDistribution.Text = bnd.dateBonDistribution.ToShortDateString(); this.GridBonDistribution.DataSource = (from b in bnd.LigneBonDistributions select new { NumeroArticle = b.numArticle, NomArticle = b.Article.nom, Description = b.Article.description, Quantite = b.quantite } ).ToList(); this.GridBonDistribution.DataBind(); } else { lblResultatNumeroBonDistribution.Text = "Bon de distribution n'existe pas"; return; } lblResultatNumeroBonDistribution.Text = ""; BtnRecevoir.Enabled = true; BtnImprimer.Enabled = true; BtnRechercher.Enabled = false; DDLNumBonDistribution.Enabled = false; } } catch (Exception) { lblResultatNumeroBonDistribution.Text = "Champ obligatoire en numérique!"; } }
//Supprimer une ligne du bon de distribution public static void supprimmerLigne(NouvelleBonDistribution frm, int numArticle) { BonDistribution bonDistribution = frm.Session["bonDistribution"] as BonDistribution; LigneBonDistribution ligne = RechercherLigneBonDistribution(numArticle, bonDistribution.LigneBonDistributions); if (ligne != null) { //Suppression de la ligne bonDistribution.LigneBonDistributions.Remove(ligne); //Mise à jour du grid frm.GridViewDistribution.DataSource = bonDistribution.LigneBonDistributions; frm.GridViewDistribution.DataBind(); } else { //Erreur systeme grave!!!!!! à ne pas traiter dans la page } }
//Initilatisation du bon de distribution public static void InitialiserBon(NouvelleBonDistribution frm) { BonDistribution bonDistribution = new BonDistribution(); frm.Session["bonDistribution"] = bonDistribution; }