/// <summary>
 /// Constructeur de la classe
 /// </summary>
 /// <param name="_personToEdit"></param>
 public frmEditIndividu(IElement _personToEdit, SchoolClass _schoolClass, ModeAppel _modeAppel)
 {
     Log.Debug("Formulaire [Editer Individu] {ELM:" + _personToEdit.FirstName + " - SCHOOL:" +_schoolClass.SchoolName + " - MODE:" + _modeAppel.ToString() + "}");
     m_person = (Person)_personToEdit;
     m_schoolClass = _schoolClass;
     InitializeComponent();
     lblErreur.Visible = false;
     p_modeAppel = _modeAppel;
 }
 /// <summary>
 /// Supprime un individu dans la liste
 /// </summary>
 /// <param name="_delPerson"></param>
 public void deleteIndividu(Person _delPerson)
 {
     string _class = _delPerson.Class;
     p_appClass.School.ListElement.Remove(_delPerson);
     // On ne supprime plus la classe si il n'y a plus d'individus
     //if (ClassOutils.getNbEleves(p_appClass.School.getListPerson(String.Empty), _class) == 0)
     //{
     //    p_appClass.School.ListeClass.Remove(_class);
     //}
     if (p_appClass.School.ListElement.Count == 0) { p_appClass.School.ListLoaded = false; }
     p_appClass.School.IsChanged = true;
 }
Esempio n. 3
0
        /// <summary>
        /// Evénement lors du clic sur le bouton Ajout Prof
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddProf_Click(object sender, EventArgs e)
        {
            int _lastSelected = 0;
            InfosClasse _infoClass = (InfosClasse)cmbClasse.SelectedItem;
            // Si la classe est nulle on est dans le cas d'une création sans liste
            if (_infoClass == null) { _infoClass = new InfosClasse(); }

            // On ajoute une Person
            Person _newPerson = new Person();
            _newPerson.Class = _infoClass.nameClass;
            _newPerson.ClassId = _infoClass.idClass;
            _newPerson.TypePerson = Constantes.cstProf;   // on crée un Prof
            int _maxId = ClassOutils.getMaxId(p_applClass.School.getListFromType(Constantes.cstIndividu));
            _newPerson.NumElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement);
            _newPerson.Name = "P" + _newPerson.NumElement.ToString("D4");
            _newPerson.FirstName = String.Empty;
            _newPerson.Id = _maxId.ToString("D4");
            _newPerson.InfosPDV.IsGratis = true;    // Pour les PROFS, la photo est gratuite par défaut
            ListePersons.frmEditIndividu frmEdit = new ListePersons.frmEditIndividu(_newPerson, p_applClass.School, ModeAppel.Create);
            if (frmEdit.ShowDialog(this) == DialogResult.OK)
            {
                // On ajoute le Groupe dans la Session.
                // Il faut aussi l'ajouter dans la liste des éléments
                p_applClass.School.ListElement.Add(_newPerson);
                p_applClass.School.IsChanged = true;
                ClassOutils.saveSchoolFile(p_applClass);
                p_SessionBase.Content.ListElement.Add(_newPerson);

                // Dans le cas où on est en double vue on duplique l'élément
                if (p_applClass.School.DoubleView && p_SessionBase.Content.TypeSession == Constantes.cstIndividu)
                {
                    IElement _newElement = (IElement)_newPerson.Clone();
                    _newElement.Id = _newPerson.Id + "B";
                    _newElement.FirstName += "(BIS)";
                    _newElement.Photos = new List<FilePhoto>();
                    p_SessionBase.Content.ListElement.Add(_newElement);
                }
                // Il faut trier la liste pour etre cohérent à la liste affichée
                p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList();
                _lastSelected = this.searchElement(_newPerson);
                this.ClearListe();
                this.ChargeListe(p_SessionBase.Content.ListElement);
            }
            if (lstPupils.Items.Count > 0)
            {
                lstPupils.Items[_lastSelected].Selected = true;
                lstPupils.Items[_lastSelected].EnsureVisible();
            }
            this.actualiseCompteurs();
        }
Esempio n. 4
0
        /// <summary>
        /// Evénement lors du clic sur le bouton Ajout Eleve
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddEleve_Click(object sender, EventArgs e)
        {
            int _numElement;
            int _lastSelected = 0;
            InfosClasse _infoClass = (InfosClasse)cmbClasse.SelectedItem;
            // Si la classe est nulle on est dans le cas d'une création sans liste
            if (_infoClass == null) { _infoClass = new InfosClasse(); }

            switch (tabPriseDeVue.SelectedIndex)
            {
                case 0:
                    // On ajoute une Person
                    Person _newPerson = new Person();
                    _newPerson.Class = _infoClass.nameClass;
                    _newPerson.ClassId = _infoClass.idClass;
                    // Si la classe est toppé come gratuite, on ajoute tous les éléments en Gratuit
                    if (_infoClass.allGratis) { _newPerson.InfosPDV.IsGratis = true; }
                    _newPerson.TypePerson = Constantes.cstEleve;   // Par défaut, on crée un élève
                    int _maxId = ClassOutils.getMaxId(p_applClass.School.getListFromType(Constantes.cstIndividu));
                    _newPerson.Id = _maxId.ToString("D4");
                    _numElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement);
                    _newPerson.NumElement = _numElement;
                    _newPerson.Name = "E" + _numElement.ToString("D4");
                    _newPerson.FirstName = String.Empty;
                    ListePersons.frmEditIndividu frmEdit = new ListePersons.frmEditIndividu(_newPerson, p_applClass.School, ModeAppel.Create);
                    if (frmEdit.ShowDialog(this) == DialogResult.OK)
                    {
                        // On ajoute le Groupe dans la Session.
                        // Il faut aussi l'ajouter dans la liste des éléments
                        p_applClass.School.ListElement.Add(_newPerson);
                        p_applClass.School.IsChanged = true;
                        ClassOutils.saveSchoolFile(p_applClass);
                        p_SessionBase.Content.ListElement.Add(_newPerson);

                        // Dans le cas où on est en double vue on duplique l'élément
                        if (p_applClass.School.DoubleView && p_SessionBase.Content.TypeSession == Constantes.cstIndividu)
                        {
                            _maxId++;
                            IElement _newElement = (IElement)_newPerson.Clone();
                            _newElement.Id = _newPerson.Id + "B";
                            _newElement.FirstName += "(BIS)";
                            _newElement.Photos = new List<FilePhoto>();
                            _newElement.InfosPDV = new InfoPdV();
                            p_SessionBase.Content.ListElement.Add(_newElement);
                        }
                        // Il faut trier la liste pour etre cohérent à la liste affichée
                        p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList();
                        _lastSelected = this.searchElement(_newPerson);
                        this.ClearListe();
                        this.ChargeListe(p_SessionBase.Content.ListElement);
                    }
                    break;
                case 1:
                    // On ajoute un Group
                    Group _newGroup = new Group();
                    _newGroup.Class = _infoClass.nameClass;
                    _newGroup.ClassId = _infoClass.idClass;
                    // Si la classe est toppé come gratuite, on ajoute tous les éléments en Gratuit
                    if (_infoClass.allGratis) { _newGroup.InfosPDV.IsGratis = true; }
                    _newGroup.TypePerson = Constantes.cstGroup;   // Par défaut, on crée un élève
                    int _maxGrpId = ClassOutils.getMaxId(p_SessionBase.Content.ListElement);
                    _newGroup.NumElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement);
                    _newGroup.Id = _maxGrpId.ToString("D4");
                    _newGroup.Name = "G" + _newGroup.NumElement.ToString("D4");
                    _newGroup.FirstName = String.Empty;
                    ListePersons.frmEditGroupe frmEditGrp = new ListePersons.frmEditGroupe(_newGroup, p_applClass.School, ModeAppel.Create);
                    if (frmEditGrp.ShowDialog(this) == DialogResult.OK)
                    {
                        // On ajoute le Groupe dans la Session.
                        // Il faut aussi l'ajouter dans la liste des éléments
                        p_applClass.School.ListElement.Add(_newGroup);
                        p_applClass.School.IsChanged = true;
                        ClassOutils.saveSchoolFile(p_applClass);
                        p_SessionBase.Content.ListElement.Add(_newGroup);
                        // Il faut trier la liste pour etre cohérent à la liste affichée
                        p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList();
                        _lastSelected = this.searchElement(_newGroup);
                        this.ClearListe();
                        this.ChargeListe(p_SessionBase.Content.ListElement);
                    }
                    break;
                case 2:
                    // On ajoute une Fratrie
                    Person _newFratrie = new Person();
                    _newFratrie.Class = Constantes.cstFratrie;
                    _newFratrie.ClassId = 99999;
                    _newFratrie.TypePerson = Constantes.cstEleve;   // Une Fratrie est un Elève
                    int _maxFraId = ClassOutils.getMaxId(p_SessionBase.Content.ListElement);
                    _newFratrie.NumElement = ClassOutils.getMaxNumElement(p_SessionBase.Content.ListElement);
                    _newFratrie.Id = _maxFraId.ToString("D4");
                    _newFratrie.Name = "F" + _newFratrie.NumElement.ToString("D4");
                    _newFratrie.FirstName = String.Empty;
                    ListePersons.frmEditGroupe frmEditFratrie = new ListePersons.frmEditGroupe(_newFratrie, p_applClass.School, ModeAppel.Create);
                    if (frmEditFratrie.ShowDialog(this) == DialogResult.OK)
                    {
                        // On ajoute le Groupe dans la Session.
                        // Il faut aussi l'ajouter dans la liste des éléments
                        p_applClass.School.ListElement.Add(_newFratrie);
                        p_applClass.School.IsChanged = true;
                        ClassOutils.saveSchoolFile(p_applClass);
                        p_SessionBase.Content.ListElement.Add(_newFratrie);
                        // Il faut trier la liste pour etre cohérent à la liste affichée
                        p_SessionBase.Content.ListElement = p_SessionBase.Content.ListElement.OrderBy(o => o.KeyAsc).ToList();
                        _lastSelected = this.searchElement(_newFratrie);
                        this.ClearListe();
                        this.ChargeListe(p_SessionBase.Content.ListElement);
                    }
                    break;
            }
            if (lstPupils.Items.Count > 0)
            {
                lstPupils.Items[_lastSelected].Selected = true;
                lstPupils.Items[_lastSelected].EnsureVisible();
            }
            this.actualiseCompteurs();
        }
        /// <summary>
        /// Valider
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnValider_Click(object sender, EventArgs e)
        {
            string _msgDump = String.Empty;
            progBar.Visible = true;
            lblNum.Visible = true;
            int nbAnomalies = 0;
            Log.Debug("Valider l'import...");
            m_numId = 0;

            Log.Debug("Importer {" + p_dataTable.Rows.Count.ToString() + "} lignes ...");
            progBar.Maximum = p_dataTable.Rows.Count;
            if (cmbClasse.SelectedIndex == -1
                || cmbFirstName.SelectedIndex == -1
                || cmbName.SelectedIndex == -1)
            {
                lblErreur.Text = "Veuillez sélectionner les correspondances...";
                this.DialogResult = DialogResult.None;
            }
            else
            {
                p_listPerson = new List<IElement>();
                Log.Debug("Importer {" + p_dataTable.Rows.Count.ToString() + "} lignes ...");
                for (int i = 0; i <= p_dataTable.Rows.Count - 1; i++)
                {
                    if (p_dataTable.Rows[i][cmbClasse.SelectedIndex - 1] != DBNull.Value)
                    {
                        try
                        {
                            m_numId++;
                            Person _person = new Person();
                            _person.Id = m_numId.ToString("D4");
                            _person.NumElement = m_numId;
                            _person.Class = ClassOutils.cleanString((string)p_dataTable.Rows[i][cmbClasse.SelectedIndex - 1]);
                            p_schoolClass.addClass(_person.Class, String.Empty, false, false);
                            _person.ClassId = p_schoolClass.GetIdClasse(_person.Class);
                            _person.FirstName = ClassOutils.cleanString((string)p_dataTable.Rows[i][cmbFirstName.SelectedIndex - 1]);
                            _person.Name = ClassOutils.cleanString((string)p_dataTable.Rows[i][cmbName.SelectedIndex - 1]);
                            _person.TypePerson = Constantes.cstEleve;
                            p_listPerson.Add(_person);
                            // On ajoute la Classe
                            //p_schoolClass.addClass(_person.Class, String.Empty);
                        }
                        catch (Exception _exception)
                        {
                            nbAnomalies++;
                            Log.Debug("Anomalie lors de l'import : ligne " + i.ToString() + "..." + _exception.Message);
                        }
                    }
                }
                if (nbAnomalies > 0)
                {
                    MessageBox.Show("Attention, plusieurs lignes non conformes ont été ignorées");
                    ClassOutils.writeDumpFile(_msgDump, "Import_");
                }
                // Il faut au préalable supprimer tous les individus puis injecter les nouveaux
                p_schoolClass.ReplaceList(p_listPerson, Constantes.cstIndividu);
                Button _bn = (Button)sender;
                _bn.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
        }
 /// <summary>
 /// Ajoute un individu dans la liste 
 /// </summary>
 /// <param name="_newPerson"></param>
 public void addIndividu(Person _newPerson)
 {
     p_appClass.School.ListElement.Add(_newPerson);
     p_appClass.School.ListLoaded = true;
     p_appClass.School.IsChanged = true;
 }
 /// <summary>
 /// Ajout d'un individu
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAdd_Click(object sender, EventArgs e)
 {
     Person _newPerson = new Person();
     _newPerson.TypePerson = Constantes.cstEleve;   // Par défaut, on crée un élève
     int _maxId = ClassOutils.getMaxId(p_appClass.School.getListPerson(Constantes.cstEleve));
     _newPerson.Id = _maxId.ToString("D4");
     ListePersons.frmEditIndividu frmEdit = new ListePersons.frmEditIndividu(_newPerson, p_appClass.School, ModeAppel.Create);
     if (frmEdit.ShowDialog(this) == DialogResult.OK) { this.addIndividu(_newPerson); this.refreshList(); }
 }
 /// <summary>
 /// Ajouter un élève depuis le menu contextuel
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void addToolStripMenuItem_Click(object sender, EventArgs e)
 {
     string _nodeValue;
     if (this.treeView.SelectedNode.Parent == null) { _nodeValue = this.treeView.SelectedNode.Text; }
     else { _nodeValue = this.treeView.SelectedNode.Parent.Text; }
     Person _newPerson = new Person();
     _newPerson.TypePerson = Constantes.cstEleve;   // Par défaut, on crée un élève
     _newPerson.Class = _nodeValue;
     _newPerson.ClassId = p_appClass.School.GetIdClasse(_nodeValue);
     int _maxId = ClassOutils.getMaxId(p_appClass.School.getListPerson(Constantes.cstEleve));
     _newPerson.Id = _maxId.ToString("D4");
     _newPerson.NumElement = _maxId;
     Log.Debug("Ouverture du Formulaire [Ajouter un élève] {CLASS:" + _nodeValue + "}");
     ListePersons.frmEditIndividu frmEdit = new ListePersons.frmEditIndividu(_newPerson, p_appClass.School, ModeAppel.Create);
     if (frmEdit.ShowDialog(this) == DialogResult.OK) { this.addIndividu(_newPerson); this.refreshList(); }
 }
 /// <summary>
 /// Met à jour un individu dans la liste 
 /// </summary>
 /// <param name="_newPerson"></param>
 public void updateIndividu(Person _newPerson)
 {
     // OLD FORMAT
     //p_appClass.School.refreshListClass();
     p_appClass.School.IsChanged = true;
 }