/// <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; }
/// <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(); }
/// <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; }