Beispiel #1
0
        /// <summary>
        /// Constructeur du Formulaire
        /// </summary>
        /// <param name="_applClass"></param>
        public aPropos(ApplClass _applClass)
        {
            int len;
            p_applClass = _applClass;
            InitializeComponent();
            string _textActiv;
            if (_applClass.InfoReg.ModeTrial) { _textActiv = "Version d'évaluation."; }
            else { _textActiv = "Version activée."; }

            for (int i = 0; i < p_applClass.InfoReg.ComputerID.Length && i < 25; i += 5)
            {
                _Boxes[i / 5] = new FilterTextBox();
                len = (i + 5) > p_applClass.InfoReg.ComputerID.Length ? p_applClass.InfoReg.ComputerID.Length - i : 5;
                _Boxes[i / 5].Text = p_applClass.InfoReg.ComputerID.Substring(i, len);
            }

            this.Text = String.Format("À propos de {0}", AssemblyAccess.AssemblyTitle);
            this.labelProductName.Text = AssemblyAccess.AssemblyProduct;
            this.labelVersion.Text = String.Format("Version {0}", AssemblyAccess.AssemblyVersion);
            this.labelCopyright.Text = AssemblyAccess.AssemblyCopyright;
            this.labelCompanyName.Text = AssemblyAccess.AssemblyCompany;
            this.textBoxDescription.Text = AssemblyAccess.AssemblyDescription + Environment.NewLine + Environment.NewLine;
            this.textBoxDescription.Text += "Activation ID : " + Environment.NewLine + GetBoxes + Environment.NewLine + Environment.NewLine;
            this.textBoxDescription.Text += "Expiration : " + p_applClass.InfoReg.DateExp + Environment.NewLine;
            if (p_applClass.InfoReg.ModeTrial) { this.textBoxDescription.Text += _textActiv + Environment.NewLine; }
            if (p_applClass.InfoReg.RegType.Equals(RegistrationType.Full)) { this.textBoxDescription.Text += "Version complète" + Environment.NewLine; }
            if (!p_applClass.InfoReg.ModeTrial) { btnActivate.Visible = false; }
        }
        /// <summary>
        /// Constructeur Formulaire
        /// </summary>
        /// <param name="_applClass"></param>
        public frmPreExport(ApplClass _applClass)
        {
            p_applClass = _applClass;
            InitializeComponent();

            treeView.Nodes.Clear();

            TreeNode nodRoot = treeView.Nodes.Add(p_applClass.RootDir);

            TreeNode nodLab = new TreeNode(p_applClass.Param.SelectDirectory);

            TreeNode nodIndiv = new TreeNode(p_applClass.Param.IndivDirectory);
            TreeNode nodGroup = new TreeNode(p_applClass.Param.GroupDirectory);

            nodIndiv.Nodes.Add("{Nom de la Classe}");
            TreeNode nodFratries = new TreeNode(Constantes.cstFratrie);
            nodIndiv.Nodes.Add(nodFratries);

            nodGroup.Nodes.Add("{Nom de la Classe}");

            nodLab.Nodes.Add(nodIndiv);
            nodLab.Nodes.Add(nodGroup);
            nodRoot.Nodes.Add(nodLab);

            treeView.ExpandAll();

            this.loadInfos();
        }
 /// <summary>
 /// Constructeur du Formulaire
 /// </summary>
 public frmListeIndividus(ApplClass _applClass)
 {
     Log.Debug("Formulaire [Liste des individus]");
     p_appClass = _applClass;
     InitializeComponent();
     this.refreshList();
     this.treeView.ContextMenuStrip = ctxMenuIndividu;
 }
 /// <summary>
 /// Constructeur du formulaire
 /// </summary>
 /// <param name="_applClass"></param>
 public frmExport(ApplClass _applClass)
 {
     p_applClass = _applClass;
     //p_clsReport = new clsReport2(p_applClass);
     InitializeComponent();
     _nbcopiedFiles = 0;
     _nbTotalFiles = 0;
     p_nbClass = p_applClass.School.ListClass.Count;
     btnExplore.Enabled = false;
 }
 /// <summary>
 /// Constructeur du formulaire
 /// </summary>
 /// <param name="_applClass"></param>
 public frmEditClasse(ApplClass _applClass)
 {
     Log.Debug("Formulaire [Editer la Classe]");
     InitializeComponent();
     m_applClass = _applClass;
     cmbClasse.Items.Add("Créer une nouvelle classe...");
     // Chargement de la liste des Classes
     foreach (InfosClasse _class in m_applClass.School.ListClass) { cmbClasse.Items.Add(_class); }
     if (cmbClasse.Items.Count > 0) { cmbClasse.SelectedIndex = 0; }
 }
Beispiel #6
0
 /// <summary>
 /// Constructeur de la classe
 /// </summary>
 /// <param name="_applCls"></param>
 public frmParam(ApplClass _applCls)
 {
     Log.Debug("Formulaire [Paramétrage]");
     InitializeComponent();
     p_param = _applCls.Param;
     this.loadTabDirectory();    // Charge les éléments de l'onglet Répertoires
     this.loadTabImages();       // Charge les éléments de l'onglets Images
     this.loadTabDivers();      // Charge les éléments de l'onglets DropBox
     this.loadTabInterface();    // Charge les éléments de l'onglets Interface
 }
        /// <summary>
        /// Constructeur du Formulaire de Notes
        /// </summary>
        /// <param name="_applClass"></param>
        /// <param name="_element"></param>
        public frmEnterNotes(ApplClass _applClass, IElement _element)
        {
            p_applClass = _applClass;
            p_element = _element;
            InitializeComponent();
            txtClass.Text = _element.Class;
            txtName.Text = _element.Name;
            txtPrenom.Text = _element.FirstName;
            chkIgnore.Checked = _element.InfosPDV.Ignore;
            #region Mode Fratrie
            // Si on est en mode Fratrie, on affiche la listBox pour le rattachement
            if (_element.ClassId.Equals(99999))
            {
                p_modeFratrie = true;
                // Charger la liste des classes...
                for (int i=0; i<p_applClass.School.ListClass.Count; i++) {
                    InfosClasse _infoClass = p_applClass.School.ListClass[i];
                    // Chargement de la checkedListbox
                    CCBoxItem item = new CCBoxItem(_infoClass.nameClass, _infoClass.idClass);
                    chkListClass.Items.Add(item);
                }
                // If more then 5 items, add a scroll bar to the dropdown.
                chkListClass.MaxDropDownItems = 5;
                // Make the "Name" property the one to display, rather than the ToString() representation.
                chkListClass.DisplayMember = "Name";
                chkListClass.ValueSeparator = ";";

                for (int i = 0; i < p_applClass.School.ListClass.Count; i++)
                {
                    InfosClasse _infoClass = p_applClass.School.ListClass[i];
                    // Si la classe a été sélectionnée, on check
                    if (_element.InfosPDV.ListClassID.Contains(_infoClass.idClass.ToString())) { chkListClass.SetItemChecked(i, true); }
                    // Pour assurer la compatibilité avec l'ancienne version
                    if (_element.InfosPDV.FSClassID != 0)
                    {
                        if (_element.InfosPDV.FSClassID.Equals(_infoClass.idClass)) { chkListClass.SetItemChecked(i, true); }
                    }
                }
            }
            else
            {
                p_modeFratrie = false;
                chkListClass.Visible = false;
                lblRatClass.Visible = false;
            }
            #endregion

            // Si c'est un Prof, on place la CheckBox en ReadOnly
            chkGratis.Enabled = !ClassOutils.isElementIsProf(_element);
            chkGratis.Checked = _element.InfosPDV.IsGratis;
            nbExemplaires.Value = _element.InfosPDV.NbExemplaires;
            txtComment.Text = _element.InfosPDV.Commentaires;
        }
        /// <summary>
        /// Initialisation
        /// </summary>
        public frmPdVMain(ApplClass _applClass)
        {
            InitializeComponent();
            p_applClass = _applClass;
            p_nbPhoto = 0;
            currentColumn = 0;
            currentRow = 0;
            p_numItemSelected = 0;
            p_datePDV = DateTime.Now;

            lvwColumnSorter = new ListViewItemComparer(2);
            this.lstPupils.ListViewItemSorter = lvwColumnSorter;
        }
        /// <summary>
        /// Constructeur du Formulaire
        /// </summary>
        /// <param name="_element"></param>
        /// <param name="_numSelected"></param>
        /// <param name="_controlList"></param>
        /// <param name="_session"></param>
        /// <param name="_applClass"></param>
        public frmSelectView(IElement _element, int _numSelected, List<PhotoControl> _controlList, ISession _session, ApplClass _applClass)
        {
            Log.Debug("Formulaire [Sélection photographe] Elément {ID:" + _element.Id + " - NAME:" + _element.Name + " - FIRSTNAME:" + _element.FirstName + "}");
            p_listPhoto = new List<PhotoControl>();
            p_listPhoto = _controlList;
            p_nbPhoto = p_listPhoto.Count;
            currentColumn = 0;
            currentRow = 0;
            p_session = _session;
            p_element = _element;
            p_applClass = _applClass;
            if (_numSelected.Equals(0)) { p_numPhotoSelected = 1; }
            else { p_numPhotoSelected = _numSelected; }
            InitializeComponent();

            this.Text = String.Format("Affichage des photos pour {0} {1}", _element.Name, _element.FirstName);
            this.SuspendLayout();
            p_isLoadOk = true;

            // Pour chaque photo de l'élément, on affiche dans le tableau
            foreach (PhotoControl _photo in p_listPhoto)
            {
                ClassOutils.WaitCursor();
                if (_photo.InError) { p_isLoadOk = false; }
                //On ajoute le PictureBox dans le Panel
                _photo.PhotoDeleted += __photo_PhotoDeleted;
                _photo.PhotoDetached += __photo_PhotoDetached;
                _photo.PhotoSelected += _photo_PhotoSelected;
                _photo.ActiveMenu = true;
                tblPhoto.Controls.Add(_photo, currentColumn, currentRow);
                _photo.Dock = DockStyle.Fill;

                // On gère les colonnes, lignes
                currentColumn++;
                if (currentColumn >= 4)
                {
                    currentColumn = 0;
                    currentRow++;
                }
                // On contrôle des données EXIF
                if ((p_applClass.Param.CtrlAperture && (_photo.Aperture != "F/" + p_applClass.Param.ApertureValue))
                    || (p_applClass.Param.CtrlSpeed && (_photo.Speed != "1/" + p_applClass.Param.SpeedValue))
                    || (p_applClass.Param.CtrlImageSize && (_photo.ImageSize < p_applClass.Param.MinImageSize)))
                {
                    _photo.InvalidEXIF();
                }
                ClassOutils.DefaultCursor();
            }
            this.SelectPhoto(p_numPhotoSelected);
            this.ResumeLayout();
        }
Beispiel #10
0
 /// <summary>
 /// Constructeur de la classe
 /// </summary>
 /// <param name="_applClass"></param>
 public frmEdit(ApplClass _applClass)
 {
     Classes.ClassOutils.DefaultCursor();
     p_sessionExiste = false;
     InitializeComponent();
     m_applClass = _applClass;
     // Si l'objet School est null ==> on est en mode création
     // Sinon, on est en mode édition
     if (m_applClass.School == null) {
         m_applClass.School = new SchoolClass();
         this.resetSchoolInfo();
         txtPxFullKit.Text = "0,00";
         txtPxFS.Text = "0,00";
         txtPxGroup.Text = "0,00";
         this.Text = "Créer une nouvelle école";
     }
     else {
         this.initSchoolInfo();
         this.Text = "Editer une école";
     }
 }
        /// <summary>
        /// Constructeur du formulaire
        /// </summary>
        /// <param name="_session"></param>
        /// <param name="_applClass"></param>
        public frmRealized(ISession _session, ApplClass _applClass)
        {
            Log.Debug("Formulaire [Déjà Fait]");
            p_sessionBase = _session;
            p_applClass = _applClass;
            InitializeComponent();

            radBtnFilter1.Checked = true;
            typeFilter = "R";

            txtClasss.Text = p_sessionBase.Content.InfoClass.nameClass;
            txtSchoolName.Text = p_applClass.School.SchoolName;

            int _nbTotal = p_sessionBase.Content.ListElement.Count;
            int _nbDone = p_sessionBase.Content.NbDone;
            int _nbAbsent = p_sessionBase.Content.NbAbsents;
            lblCptDone.Text = _nbDone.ToString("D3") + " / " + _nbTotal.ToString("D3");
            lblNbAbsent.Text = _nbAbsent.ToString("D3");

            this.initPanel();
        }
Beispiel #12
0
        /// <summary>
        /// Méthode permettant de générer le rapport
        /// </summary>
        /// <param name="_applClass"></param>
        public static void generateReport(ApplClass _applClass)
        {
            string _dateSession = DateTime.Now.ToString("dd-MM-yyyy");

            try
            {
                clsReport _reportCls = new clsReport(_applClass);

                // On balaye toutes les sessions Individuels
                _reportCls.NumRow = 3;
                _reportCls.NumRowProdLab = 3;
                Log.Debug("Reporting Sessions Individuels.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstIndividu)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessIndiv = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _dateSession = _sessIndiv.DateSession;
                        Log.Debug("--- Nom Classe : " + _applClass.SessionInfoList[_indSession].ClassName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null) { 
                            if (!_infoClass.isIgnore) 
                            {
                                List<IElement> p_listElement = getListIndivPassed(_sessIndiv);
                                _reportCls.createReportIndiv(p_listElement, _sessIndiv.InfoClass.nameClass + " " + _sessIndiv.InfoClass.PrefixeGroup + " (" + _sessIndiv.Effectif.ToString() + " effectif renseigné)", "Elèves passés");
                            }
                        }
                    }
                }

                _reportCls.NumRow = 3;
                Log.Debug("Reporting Sessions Individuels Absents.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstIndividu)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessIndiv = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        Log.Debug("--- Nom Classe : " + _applClass.SessionInfoList[_indSession].ClassName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null) 
                        {
                            if (!_infoClass.isIgnore)
                            {
                                List<IElement> p_listElement = getListIndivMissed(_sessIndiv);
                                _reportCls.createReportIndiv(p_listElement, _sessIndiv.InfoClass.nameClass + " " + _sessIndiv.InfoClass.PrefixeGroup, "Elèves absents");
                            }
                        }
                    }
                }

                _reportCls.NumRow = 3;
                Log.Debug("Reporting Sessions Individuels Multi.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstIndividu)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessIndiv = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        Log.Debug("--- Nom Classe : " + _applClass.SessionInfoList[_indSession].ClassName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null)
                        {
                            if (!_infoClass.isIgnore)
                            {
                                List<IElement> p_listElement = getListIndivMulti(_sessIndiv);
                                _reportCls.createReportIndiv(p_listElement, _sessIndiv.InfoClass.nameClass + " " + _sessIndiv.InfoClass.PrefixeGroup, "Elèves (multi-exemplaires)");
                            }
                        }
                    }
                }
                
                _reportCls.NumRow = 3;
                // On balaye toutes les sessions Groupes
                Log.Debug("Reporting Sessions Groupes.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstGroup)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessGroup = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null) { if (!_infoClass.isIgnore) { _reportCls.createReportGroup(_sessGroup); } }
                    }
                }
                _reportCls.NumRow = 3;
                Log.Debug("Reporting Sessions Fratries Rattachées.");
                // On balaye toutes les sessions Fratries
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstFratrie)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessFratries = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _reportCls.createReportFratrieRatt(_sessFratries);
                    }
                }
                _reportCls.NumRow = 3;
                Log.Debug("Reporting Sessions Fratries Seules.");
                // On balaye toutes les sessions Fratries
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstFratrie)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessFratries = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _reportCls.createReportFratrieSeules(_sessFratries);
                    }
                }
                // Création du Feuillet Général
                Log.Debug("Reporting Feuillet général.");
                _reportCls.createSheetInfo(_dateSession);

                // Création du Feuillet Facturation
                Log.Debug("Reporting Feuillet Facturation.");
                _reportCls.createSheetFacturation();

                // Sauvegarde du fichier EXCEL
                _reportCls.saveExcel();

                // Génération du trombinoscope
                Log.Debug("Génération du trombinoscope.");
                reportingTools.generateTrombi(_applClass, false);
            }
            catch (Exception _exc)
            {
                Log.Error("Erreur lors de la création du rapport.", _exc);
                System.Windows.Forms.MessageBox.Show("Une erreur est survenue lors de la création du rapport.\r\nMessage : " + _exc.Message, "Anomalie !", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.RightAlign);
            }
        }
Beispiel #13
0
 /// <summary>
 /// Constructeur de la classe de reporting Excel
 /// </summary>
 /// <param name="_applClass"></param>
 public clsTrombi(ApplClass _applClass)
 {
     Log.Debug("Création de la classe Trombi.");
     p_appClass = _applClass;
     p_pdfDocument = new PdfDocument();
 }
 /// <summary>
 /// Constructeur du formulaire d'aperçu
 /// </summary>
 /// <param name="_element"></param>
 /// <param name="_applClass"></param>
 public frmPreview(IElement _element, ApplClass _applClass)
 {
     p_applClass = _applClass;
     p_element = _element;
     InitializeComponent();
 }
 /// <summary>
 /// Initialise la session
 /// </summary>
 /// <param name="_applClass"></param>
 public void InitSession(ApplClass _applClass)
 {
 }
Beispiel #16
0
 /// <summary>
 /// Constructeur de la classe de reporting Excel
 /// </summary>
 /// <param name="_applClass"></param>
 public clsReport(ApplClass _applClass) 
 {
     Log.Debug("Création de la classe Report.");
     p_appClass = _applClass;
     p_fileStream = new FileStream(Path.Combine(ClassOutils.GetPathStart, "Reports", "PdVReports_Template.xls"), FileMode.Open, FileAccess.Read);
     // On charge le classeur complet
     p_templateWorkbook = new HSSFWorkbook(p_fileStream, true);
 }
Beispiel #17
0
        /// <summary>
        /// Méthode permettant de générer le fichier des premières ventes
        /// </summary>
        /// <param name="_applClass"></param>
        public static void generateFirstVente(ApplClass _applClass)
        {
            string _dateSession = DateTime.Now.ToString("dd-MM-yyyy");

            try
            {
                clsVente _venteCls = new clsVente(_applClass);

                // On balaye toutes les sessions Individuels
                _venteCls.NumRow = 2;
                Log.Debug("Première vente.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstIndividu)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessIndiv = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _dateSession = _sessIndiv.DateSession;
                        Log.Debug("--- Nom Classe : " + _applClass.SessionInfoList[_indSession].ClassName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null)
                        {
                            if (!_infoClass.isIgnore)
                            {
                                List<IElement> p_listElement = getListIndivPassed(_sessIndiv);
                                _venteCls.createReportProdLab(p_listElement, _infoClass);
                            }
                        }
                    }
                }
                Log.Debug("Reporting Sessions Fratries Rattachées.");
                // On balaye toutes les sessions Fratries
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstFratrie)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessFratries = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _venteCls.createReportFratrieRatt(_sessFratries);
                    }
                }
                Log.Debug("Reporting Sessions Fratries Seules.");
                // On balaye toutes les sessions Fratries
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstFratrie)
                    {
                        Log.Debug("--- Reporting Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessFratries = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _venteCls.createReportFratrieSeules(_sessFratries);
                    }
                }

                Log.Debug("Reporting Groupes Supplémentaires.");
                _venteCls.createGroupesSuppl();

                // Sauvegarde du fichier EXCEL
                _venteCls.saveExcel();
            }
            catch (Exception _exc)
            {
                Log.Error("Erreur lors de la création du fichier des premières ventes.", _exc);
                System.Windows.Forms.MessageBox.Show("Une erreur est survenue lors de la création des premières ventes.\r\nMessage : " + _exc.Message, "Anomalie !", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.RightAlign);
            }
        }
Beispiel #18
0
        /// <summary>
        /// Génère le Trombinoscope
        /// </summary>
        /// <param name="_applClass"></param>
        /// <param name="_withShowPdf"></param>
        public static void generateTrombi(ApplClass _applClass, bool _withShowPdf)
        {
            string _dateSession = DateTime.Now.ToString("dd-MM-yyyy");

            try
            {
                clsTrombi _trombiCls = new clsTrombi(_applClass);

                // On balaye toutes les sessions Individuels
                Log.Debug("Trombi Sessions Individuels.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstIndividu)
                    {
                        Log.Debug("--- Trombi Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessIndiv = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _dateSession = _sessIndiv.DateSession;
                        Log.Debug("--- Nom Classe : " + _applClass.SessionInfoList[_indSession].ClassName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null)
                        {
                            if (!_infoClass.isIgnore)
                            {
                                List<IElement> p_listElement = getListIndiv(_sessIndiv);
                                _trombiCls.createTrombiIndiv(p_listElement, _sessIndiv.InfoClass.nameClass + " " + _sessIndiv.InfoClass.PrefixeGroup);
                            }
                        }
                    }
                }
                // On balaye toutes les sessions Groupes
                Log.Debug("Trombi Sessions Groupes.");
                for (int _indSession = 0; _indSession < _applClass.SessionInfoList.Count; _indSession++)
                {
                    if (_applClass.SessionInfoList[_indSession].TypeSession == Constantes.cstGroup)
                    {
                        Log.Debug("--- Trombi Sessions : " + _applClass.SessionInfoList[_indSession].SessionFileName);
                        SessionContent _sessIndiv = loadSessionFile(_applClass.SessionInfoList[_indSession].SessionFileName);
                        _dateSession = _sessIndiv.DateSession;
                        Log.Debug("--- Nom Classe : " + _applClass.SessionInfoList[_indSession].ClassName);
                        InfosClasse _infoClass = _applClass.School.GetClasse(_applClass.SessionInfoList[_indSession].ClassName);
                        if (_infoClass != null)
                        {
                            if (!_infoClass.isIgnore)
                            {
                                _trombiCls.createTrombiGroup(_sessIndiv);
                            }
                        }
                    }
                }
                // Génération du PDF
                string _newFile = _trombiCls.generatePDF();
                if (_withShowPdf) { Process.Start(Path.Combine(_applClass.RootDir, "Reports", _newFile)); }
            }
            catch (Exception _exc)
            {
                Log.Error("Erreur lors de la création du trombinoscope.", _exc);
                System.Windows.Forms.MessageBox.Show("Une erreur est survenue lors de la création du trombinoscope.\r\nMessage : " + _exc.Message, "Anomalie !", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.RightAlign);
            }

        }
        /// <summary>
        /// Initialisation de la Session Individuelle
        /// </summary>
        public void InitSession(ApplClass _applClass, InfosClasse _classSession, string _typeSession, DateTime _dateSession)
        {
            Log.Debug("Initialisation de la Session : " + _classSession.nameClass + " {" + _typeSession + "}");
            p_typeSession = _typeSession;
            #region Gestion du fichier
            FileInfo _file = this.getFileName(p_typeSession, _classSession.idClass, _applClass.DataDir, _dateSession);
            _fileName = _file.FullName;
            // Si le fichier de la session existe, on le lit
            // Sinon, on le créé
            if (_file.Exists)
            {
                #region Chargement Fichier session
                try
                {
                    Stream stream = File.Open(_fileName, FileMode.Open);
                    BinaryFormatter bFormatter = new BinaryFormatter();
                    p_sessionContent = (SessionContent)bFormatter.Deserialize(stream);
                    stream.Close();
                }
                catch (Exception e)
                {
                    Log.Error("Erreur chargement de la Session", e);
                    System.Windows.Forms.MessageBox.Show("Une erreur est survenue lors du chargement de la Session de Base.\r\nMessage : " + e.Message, "Anomalie lors du chargement !", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.RightAlign);
                    throw;
                }
                #endregion
            }
            else
            {
                #region Création de la Session
                Log.Info("Création de la Session");
                p_sessionContent = new SessionContent();
                p_sessionContent.InfoClass = _classSession;
                p_sessionContent.Effectif = 0;
                // On crée la liste des éléments à partir de la liste des élèves (et Profs)
                p_sessionContent.DateSession = _dateSession.ToString("dd-MM-yyyy");
                p_sessionContent.TypeSession = p_typeSession;
                p_sessionContent.ListElement = new List<IElement>();
                // On balaye l'ensemble des Individus
                int _newId = ClassOutils.getMaxId(_applClass.School.getListFromType(Constantes.cstIndividu));

                // A ce niveau-ci, dans le cadre d'une session Fratrie, il faut initialiser la liste avec la liste des noms des élèves
                if (_typeSession.Equals(Constantes.cstFratrie))
                {
                    Log.Info("Session FRATRIE");
                    _newId = 1;
                    // On créé une liste triée... et on renomme les doublons façon Windows
                    List<IElement> __sortedList = new List<IElement>(_applClass.School.getListFromType(Constantes.cstIndividu).Count);

                    _applClass.School.getListFromType(Constantes.cstIndividu).ForEach(item => { __sortedList.Add((IElement)item.Clone()); });

                    __sortedList = __sortedList.OrderBy(o => o.Name).ToList();
                    string _nameKey = "";
                    int numDoub = 0;
                    for (int _ind = 0; _ind <= __sortedList.Count - 1; _ind++)
                    {
                        if (_nameKey != __sortedList[_ind].Name)
                        {
                            numDoub = 0;
                            _nameKey = __sortedList[_ind].Name;
                        }
                        else
                        {
                            numDoub++;
                            __sortedList[_ind].Name += " (" + numDoub.ToString() + ")";
                        }
                    }

                    // On récupère l'ensemble des élèves
                    foreach (IElement _element in __sortedList)
                    {
                        if (!((Person)_element).TypePerson.Equals(Constantes.cstProf))
                        {
                            Person _newElement = (Person)_element.Clone();
                            _newElement.FirstName = String.Empty;
                            _newElement.Id = _newId.ToString("D4");
                            _newElement.Photos = new List<FilePhoto>();
                            _newElement.InfosPDV = new InfoPdV();
                            _newElement.NumElement = _newId;
                            _newElement.Passed = false;
                            _newElement.Absent = Constantes.cstNon;
                            _newElement.Class = _classSession.nameClass;
                            _newElement.ClassId = _classSession.idClass;
                            // Il faut vérifier que l'élément n'existe pas déjà (en cas de doublons)
                            // Si il existe, on flag le second...
                            p_sessionContent.ListElement.Add(_newElement);
                            _newId++;
                        }
                    }
                }
                else
                {
                    Log.Info("Session Individuels");
                    foreach (IElement _element in _applClass.School.getListFromType(p_typeSession))
                    {
                        if (_element.ClassId.Equals(_classSession.idClass))
                        {
                            _element.Passed = false;
                            _element.Photos = new List<FilePhoto>();
                            _element.Class = _classSession.nameClass;
                            p_sessionContent.ListElement.Add(_element);
                            // Dans le cas où on est en double vue on duplique l'élément
                            if (_applClass.School.DoubleView && p_sessionContent.TypeSession == Constantes.cstIndividu)
                            {
                                IElement _newElement = (IElement)_element.Clone();
                                //_newElement.Id = (_newId++).ToString("D4");
                                _newElement.Id = _newElement.Id + "B";
                                //_newElement.Name += "_BIS";
                                _newElement.FirstName += "(BIS)";
                                _newElement.Photos = new List<FilePhoto>();
                                _newElement.InfosPDV = new InfoPdV();
                                p_sessionContent.ListElement.Add(_newElement);
                            }
                        }
                    }
                }
                Log.Debug("Nb Eléments dans la nouvelle session = ");
                #endregion
            }

            if (p_sessionContent.InfoClass == null) { p_sessionContent.InfoClass = _classSession; }
            // On met à jour les infos Class
            p_sessionContent.InfoClass.PrefixeGroup = _classSession.PrefixeGroup;

            p_sessionContent.InfoClass = _classSession;

            // En cas de renumérotation de la classe on modifie les noms de classe
            foreach (IElement _element in p_sessionContent.ListElement)
            {
                // On met à jour le nom de la classe si elle a changé...
                if (!_element.Class.Equals(_classSession.nameClass))
                {
                    _element.Class = _classSession.nameClass;
                    foreach (FilePhoto _photo in _element.Photos) { _photo.ClassName = _classSession.nameClass; }
                }

            }

            // Il faut maintenant fusionner la liste des individus de la session avec celle de l'école pour resynchroniser les deux...
            // On balaye l'ensemble des Individus
            // pour les fratries, on fait un traitement spécifique
            // Il faut balayer tous les élèves et si le nom n'esxiste pas dans la liste des fratries, on l'ajoute
            Log.Info("Fusion des individus de la session avec la liste des élèves de l'école ...");
            if (_typeSession.Equals(Constantes.cstFratrie))
            {
                #region Synchronisation Fratries
                foreach (IElement _element in _applClass.School.getListPerson(Constantes.cstEleve))
                {
                    if (!this.IsFratrieExist(_element))
                    {
                        Person _newElement = (Person)_element.Clone();
                        int _maxFraId = ClassOutils.getMaxId(p_sessionContent.ListElement);
                        _newElement.Id = _maxFraId.ToString("D4");
                        _newElement.FirstName = String.Empty;
                        _newElement.Photos = new List<FilePhoto>();
                        _newElement.InfosPDV = new InfoPdV();
                        _newElement.NumElement = _maxFraId;
                        _newElement.Class = _classSession.nameClass;
                        _newElement.ClassId = _classSession.idClass;
                        _newElement.Passed = false;
                        _newElement.Absent = Constantes.cstNon;
                        p_sessionContent.ListElement.Add(_newElement);
                    }
                }
                #endregion
            }
            else
            {
                #region Synchronisation Individus

                foreach (IElement _element in _applClass.School.getListFromType(p_typeSession))
                {
                    if (_element.ClassId.Equals(_classSession.idClass))
                    {
                        if (!this.IsElementExist(_element))
                        {
                            _element.Passed = false;
                            _element.Photos = new List<FilePhoto>();
                            _element.Class = _classSession.nameClass;
                            p_sessionContent.ListElement.Add(_element);
                            // Dans le cas où on est en double vue on duplique l'élément
                            if (_applClass.School.DoubleView && p_sessionContent.TypeSession == Constantes.cstIndividu)
                            {
                                IElement _newElement = (IElement)_element.Clone();
                                int _maxId = ClassOutils.getMaxId(p_sessionContent.ListElement);
                                _maxId++;
                                //_newElement.Id = _maxId.ToString("D4");
                                _newElement.Id = _element.Id + "B";
                                //_newElement.Name += "_BIS";
                                _newElement.FirstName += "(BIS)";
                                _newElement.Photos = new List<FilePhoto>();
                                _newElement.InfosPDV = new InfoPdV();
                                p_sessionContent.ListElement.Add(_newElement);
                            }
                        }
                        else
                        {
                            // On met à jour le nom de la classe si elle a changé...
                            if (!_element.Class.Equals(_classSession.nameClass)) { _element.Class = _classSession.nameClass; }
                        }
                    }
                }
                #endregion
            }
            Log.Info("Nb total Eléments = ");
            // On trie la liste finale
            p_sessionContent.ListElement = p_sessionContent.ListElement.OrderBy(o => o.KeyAsc).ToList();
            #endregion
        }
 public frmListPDV(ApplClass _applClass)
 {
     p_applClass = _applClass;
     InitializeComponent();
 }
Beispiel #21
0
 /// <summary>
 /// Chargement de l'application principale
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmAppli_Load(object sender, EventArgs e)
 {
     frmLoading _frmLoading = new frmLoading();
     _frmLoading.Show();
     _frmLoading.SetAction("Initialisation...");
     p_applClass = new ApplClass();
     p_applClass.InfoReg = p_infoReg;
     this.Text = AssemblyAccess.AssemblyTitle + " [v" + AssemblyAccess.AssemblyVersion + "]" + " : " + AssemblyAccess.AssemblyDescription;
     this.enabledEdit();
     _frmLoading.SetAction("Paramétrage...");
     this.initParam();
     this.initImgParam();
     _frmLoading.SetAction("Vérification de la mise à jour automatique...");
     LabCommonLab.frmNewVersion.CheckForUpdate(Assembly.GetExecutingAssembly().GetName().Name, Assembly.GetExecutingAssembly().GetName().Version, p_infoReg.RType.ToString());
     _frmLoading.Close();
 }