Beispiel #1
0
        protected void gridView_OnRowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "responsable")
            {
                ResponsablesBLL respoBLL = new ResponsablesBLL();

                Evenement evt = new Evenement();
                evt.id_evenement = int.Parse(ViewState["evenementId"].ToString());

                Personne responsable = new Personne();
                responsable.id_personne = int.Parse(Session["personneID"].ToString());

                //On récupère l'id de la personne sélectionnée
                int    indexClique        = Convert.ToInt32(e.CommandArgument);
                String idDeLaLigneCliquee = gridview_personnesSansResponsables.DataKeys[indexClique].Value.ToString();

                Personne responsableDe = new Personne();
                responsableDe.id_personne = int.Parse(idDeLaLigneCliquee);

                ResponsablesDAL respo = new ResponsablesDAL();

                bool success = respoBLL.devenirResponsable(responsable, responsableDe, evt);

                if (success)
                {
                    ViewState["listePersonnesChargee"] = "false";

                    ChargerPersonnesSansRespo();
                }
                else
                {
                    FailureText.Text = "Echec de la prise de responsabilité";
                }
            }
        }
Beispiel #2
0
        private void ChargerPersonnesSansRespo()
        {
            ResponsablesBLL respoBLL = new ResponsablesBLL();

            Personne personneConnectee = new Personne();

            personneConnectee.id_personne = int.Parse(Session["personneID"].ToString());

            Evenement evt = new Evenement();

            evt.id_evenement = int.Parse(ViewState["evenementId"].ToString());

            gridview_personnesSansResponsables.DataSource = respoBLL.getListePersonnesSansResponsables(personneConnectee, evt);

            gridview_personnesSansResponsables.DataBind();

            chargerPersonnesDontOnEstResponsable();
        }
Beispiel #3
0
        private void chargerPersonnesDontOnEstResponsable()
        {
            if ((ViewState["listePersonnesChargee"] == null || ViewState["listePersonnesChargee"].ToString() != "true") && ViewState["evenementId"] != null)
            {
                ResponsablesBLL respoBLL = new ResponsablesBLL();

                Personne personneConnectee = new Personne();
                personneConnectee.id_personne = int.Parse(Session["personneID"].ToString());

                Evenement evt = new Evenement();
                evt.id_evenement = int.Parse(ViewState["evenementId"].ToString());

                List <Personne> listePersonnesRetour = respoBLL.getListeInfosResponsabilite(personneConnectee, evt);

                DataTable retour = new DataTable();

                retour.Columns.Add("ID");
                retour.Columns.Add("nom");

                DataRow dr2 = retour.NewRow();
                dr2["ID"]  = "0";
                dr2["nom"] = "--";
                retour.Rows.Add(dr2);

                //List<String> truc = new List<String>();
                foreach (Personne pers in listePersonnesRetour)
                {
                    DataRow dr = retour.NewRow();
                    dr["ID"]  = pers.id_personne;
                    dr["nom"] = pers.prenom + " " + pers.nom.ToUpper();

                    retour.Rows.Add(dr);
                }

                listePersonnes.DataValueField = "ID";
                listePersonnes.DataTextField  = "nom";

                listePersonnes.DataSource = retour;
                listePersonnes.DataBind();
                ViewState["listePersonnesChargee"] = "true";
            }
        }
Beispiel #4
0
        protected void chargerResponsable()
        {
            ResponsablesBLL respBLL = new ResponsablesBLL();

            Evenement evt = new Evenement();

            evt.id_evenement = int.Parse(ViewState["evenementId"].ToString());

            Personne personneSelectionnee = new Personne();

            personneSelectionnee.id_personne = int.Parse(listeParticipantAyantListe.SelectedItem.Value);

            Personne responsable = respBLL.getInfosResponsableDe(personneSelectionnee, evt);

            if (responsable != null)
            {
                lbl_responsable.Text = "Le responsable du cadeau est : " + responsable.prenom + " " + responsable.nom.ToUpper();
            }
            else
            {
                lbl_responsable.Text = listeParticipantAyantListe.SelectedItem.Text + " n'a pas encore de responsable.";
            }
        }
        /// <summary>
        /// Charge l'ensemble des participations dans la datagrid
        /// </summary>
        /// <param name="p"></param>
        public void chargerTableauParticipations(string evenementId)
        {
            List <ListeIdeesCadeaux> listeIdeesCadeaux  = null;
            List <Participation>     listeParticipation = null;

            try
            {
                //Récupérer l'ensemble des listes actives pour cet évènement
                Evenement evt = new Evenement();
                evt.id_evenement = int.Parse(evenementId);
                ListeIdeesCadeauxBLL listeBLL = new ListeIdeesCadeauxBLL();

                listeIdeesCadeaux = listeBLL.getAllListeIdeesCadeaux(evt);

                //Récupérer l'ensemble des participations de la personne connectée pour cet évènement
                Participation parti = new Participation();
                parti.id_personne = int.Parse(Session["personneID"].ToString());

                ParticipationsBLL partService = new ParticipationsBLL();

                listeParticipation = partService.getAllParticipations(parti, evt);

                //Merger les deux infos dans une DataTable pour s'en servir de DataSource
                DataTable dtMerge = new DataTable();
                dtMerge = preparerTable(dtMerge);

                //Représente la liste des responsables avec l'argent que la personne connectée doit
                Dictionary <int, long> mapDette = new Dictionary <int, long>();
                //Représente la liste des sous que doivent les personnes pour les listes où l'utilisateur connecté est responsable
                Dictionary <int, long> mapCredit = new Dictionary <int, long>();
                //Représente la liste des noms par id, pour éviter de refaire une requête
                Dictionary <int, string> mapNoms = new Dictionary <int, string>();
                HashSet <int>            setCle  = new HashSet <int>();

                //On parcourt les listes actives
                foreach (ListeIdeesCadeaux liste in listeIdeesCadeaux)
                {
                    ResponsablesBLL respoService = new ResponsablesBLL();

                    //On cherche le responsable de la liste
                    Personne responsable = respoService.getInfosResponsableDe(liste.listeIdeesCadeauxPour, liste.listePourEvenement);

                    if (responsable != null)
                    {
                        //Si on est responsable de cette liste, on va ajouter les participations des autres
                        if (responsable.id_personne == int.Parse(Session["personneID"].ToString()))
                        {
                            List <Participation> listeParticipationAListe = new List <Participation>();
                            listeParticipationAListe = partService.getListeParticipation(liste);

                            foreach (Participation particAListe in listeParticipationAListe)
                            {
                                //S'il ne s'agit pas de notre propre participation
                                if (particAListe.id_personne != responsable.id_personne)
                                {
                                    //Si la personne devant de l'argent n'existait pas encore, on la créé avec la participation
                                    if (!mapCredit.ContainsKey(particAListe.id_personne))
                                    {
                                        mapCredit.Add(particAListe.id_personne, particAListe.participation);
                                        setCle.Add(particAListe.id_personne);
                                        if (!mapNoms.ContainsKey(particAListe.id_personne))
                                        {
                                            mapNoms.Add(particAListe.id_personne, particAListe.personne.prenom + " " + particAListe.personne.nom.ToUpper());
                                        }
                                    }
                                    //si on devait de l'argent au responsable, on ajoute la nouvelle participation
                                    else
                                    {
                                        mapCredit[particAListe.id_personne] = mapCredit[particAListe.id_personne] + particAListe.participation;
                                    }
                                }
                            }
                        }
                        //Si on n'est pas responsable, on ajoute ce qu'on doit au responsable
                        else
                        {
                            foreach (Participation part in listeParticipation)
                            {
                                if (part.id_liste == liste.id_listeIdeesCadeaux)
                                {
                                    //Si le responsable n'existait pas encore, on le créé avec la participation
                                    if (!mapDette.ContainsKey(responsable.id_personne))
                                    {
                                        mapDette.Add(responsable.id_personne, part.participation);
                                        setCle.Add(responsable.id_personne);
                                        if (!mapNoms.ContainsKey(responsable.id_personne))
                                        {
                                            mapNoms.Add(responsable.id_personne, responsable.prenom + " " + responsable.nom.ToUpper());
                                        }
                                    }
                                    //si on devait de l'argent au responsable, on ajoute la nouvelle participation
                                    else
                                    {
                                        mapDette[responsable.id_personne] = mapDette[responsable.id_personne] + part.participation;
                                    }
                                }
                            }
                        }
                    }
                }

                foreach (int key in setCle)
                {
                    DataRow row = dtMerge.NewRow();

                    row["id"]       = key;
                    row["personne"] = mapNoms[key];
                    row["jedois"]   = mapDette.ContainsKey(key) ? mapDette[key] : 0;
                    row["onmedoit"] = mapCredit.ContainsKey(key) ? mapCredit[key] : 0;

                    dtMerge.Rows.Add(row);
                }

                //ATTENTION : Penser qu'on doit l'argent au responsable de la liste, et pas à celui pour qui est la liste !


                gridView_listeDettes.DataSource = dtMerge;
                gridView_listeDettes.DataBind();
            }
            catch (Exception e)
            {
                FailureText.Text = "Erreur dans la récupération du tableau";
                SuccessText.Text = "";
            }
        }