예제 #1
0
 public EmploisDuTemps(DateTime _dateDebut, DateTime _dateFin, Destinataire _dest)
 {
     this.DateDebut    = _dateDebut;
     this.DateFin      = _dateFin;
     this.Destinataire = _dest;
     this.ListSessions = this.Destinataire.GetSessions(this.DateDebut, this.DateFin);
 }
    private void click_supprimer(object sender, EventArgs e)
    {
        Button     btn        = (Button)sender;
        PPProduits produits   = new PPProduits();
        Produit    aSupprimer = produits.Values.Where(x => x.NoProduit == long.Parse(btn.ID.ToString().Split('s')[1])).ToList().First();
        //je peux récupérer l'id a supprimer avec le code ci-haut
        bool                   panier      = false;
        bool                   commande    = false;
        string                 sortie      = aSupprimer.NoProduit.ToString() + " ---> ";
        PPArticlesEnPanier     paniers     = new PPArticlesEnPanier();
        List <ArticleEnPanier> listePanier = paniers.Values.Where(x => x.NoProduit == aSupprimer.NoProduit).ToList();

        if (listePanier.Count() != 0)
        {
            //Dans panier
            panier = true;
        }

        PPDetailsCommandes      detailsCommandes = new PPDetailsCommandes();
        List <DetailsCommandes> listeCommande    = detailsCommandes.Values.Where(x => x.NoProduit == aSupprimer.NoProduit).ToList();

        if (listeCommande.Count() != 0)
        {
            //Dans commande
            commande = true;
        }

        if (!panier && !commande)
        {
            //null part
            //panelTable.LblDyn("", "On peut supprimer le produit");
            produits.Remove(aSupprimer);
            produits.Update();
            File.Delete(Server.MapPath("~/Pictures/") + aSupprimer.Photo);
            Response.Redirect(Request.RawUrl);
        }
        else if (panier && !commande)
        {
            //panier mais pas commande
            PPMessages      ppM = new PPMessages();
            PPDestinataires ppd = new PPDestinataires();
            PPVendeurs      ppv = new PPVendeurs();
            long            noM = ppM.NextId();
            //@Marc ici on envoie un courriel a tous les clients ayant eu un panier pour le produit
            int     noV     = int.Parse(Session.GetVendeur().NoVendeur.ToString());
            Vendeur venMess = ppv.Values.Find(v => v.NoVendeur == aSupprimer.NoVendeur);
            Message m       = new Message(null)
            {
                NoMsg        = (int)noM,
                DescMsg      = $"Un des produits dans votre panier ({aSupprimer.Nom}) de {venMess.NomAffaires} fut supprimé.",
                objet        = "Un des produits dans votre panier fut supprimé.",
                Lieu         = 2,
                dateEnvoi    = DateTime.Now,
                NoExpediteur = noV
            };
            ppM.Add(m);
            ppM.Update();


            //supprimer les paniers liés a ce produit
            foreach (ArticleEnPanier article in listePanier)
            {
                Destinataire d = new Destinataire(null)
                {
                    NoDestinataire = (int)article.NoClient,
                    NoMsg          = (int)noM,
                    EtatLu         = 0,
                    Lieu           = 1
                };
                ppd.Add(d);
                ppd.Update();
                paniers.Remove(article);
            }
            paniers.Update();
            //supprimer le produit en question
            produits.Remove(aSupprimer);
            produits.Update();
            File.Delete(Server.MapPath("~/Pictures/") + aSupprimer.Photo);



            Response.Redirect(Request.RawUrl);


            //panelTable.LblDyn("", "Retirer des paniers, aviser le vendeur : nb Panier : " + listePanier.Count().ToString());
        }
        else if (!panier && commande)
        {
            //a revoir car pas vraiment supprimé... lol
            //dans commande mais pas panier
            aSupprimer.Disponibilité = false;
            aSupprimer.NombreItems   = -1;
            produits.NotifyUpdatedOutside(aSupprimer);
            produits.Update();
            Response.Redirect(Request.RawUrl);
            //panelTable.LblDyn("", "Reste au catalogue, qte devient 0 et dispo = non");
        }
        else if (panier && commande)
        {
            //partout
            PPMessages      ppM = new PPMessages();
            PPDestinataires ppd = new PPDestinataires();
            PPVendeurs      ppv = new PPVendeurs();
            long            noM = ppM.NextId();

            int     noV     = int.Parse(Session.GetVendeur().NoVendeur.ToString());
            Vendeur venMess = ppv.Values.Find(v => v.NoVendeur == aSupprimer.NoVendeur);
            Message m       = new Message(null)
            {
                NoMsg        = (int)noM,
                DescMsg      = $"Un des produits dans votre panier ({aSupprimer.Nom}) de {venMess.NomAffaires} fut supprimé.",
                objet        = "Un des produits dans votre panier fut supprimé.",
                Lieu         = 2,
                dateEnvoi    = DateTime.Now,
                NoExpediteur = noV
            };
            ppM.Add(m);
            ppM.Update();


            //supprime les paniers
            foreach (ArticleEnPanier article in listePanier)
            {
                Destinataire d = new Destinataire(null)
                {
                    NoDestinataire = (int)article.NoClient,
                    NoMsg          = (int)noM,
                    EtatLu         = 0,
                    Lieu           = 1
                };
                ppd.Add(d);
                ppd.Update();
                paniers.Remove(article);
            }
            paniers.Update();

            //change le statut a cause des commandes
            aSupprimer.Disponibilité = false;
            aSupprimer.NombreItems   = -1;
            produits.NotifyUpdatedOutside(aSupprimer);
            produits.Update();

            //@Marc ici on envoie un courriel a tous les clients ayant eu un panier pour le produit


            Response.Redirect(Request.RawUrl);
            //panelTable.LblDyn("", "Retirer panier et Mettre Qte a 0 et dispo = non");
        }
    }