示例#1
0
        // event. Load du formulaire
        private void main_Load(object sender, EventArgs e)
        {
            try
            {
                // on crée le dossier qui contiendra toutes les pieces de nos clients s'il n'exsite pas
                if (!Directory.Exists(ClassGlobal.AppPath + "\\" + ClassGlobal.PiecesSaveFolder))
                {
                    Directory.CreateDirectory(ClassGlobal.AppPath + "\\" + ClassGlobal.PiecesSaveFolder);
                }

                // on récupère la langue actuelle + on effectue les changements si nécessaire
                if (ClassGlobal.getDefaultLanguage() == "ar")
                {
                    arabeToolStripMenuItem_Click(sender, e);
                }
                else
                {
                    françaisToolStripMenuItem_Click(sender, e);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
            }

            // connexion à la bdd + récupération des tables (je ne l'ai pas mis dans la close try{}catch(){} car cette fonction/méthode utilise déjà une)
            ClassGlobal.getAllTables(InfosToolStripStatusLabel);
        }
示例#2
0
        // event. CellContentClick de la Paiement dataGridView
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView senderGrid = (DataGridView)sender;

            // si click sur un des bouttons supprimerPaiement
            if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0 && e.ColumnIndex == 0)
            {
                try
                {
                    if (MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Confirmer_Suppression_Paiement", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, ClassGlobal.msgBoxOptions) == DialogResult.Yes)
                    {
                        // on récupère l'id du paiement séléctionné
                        int paiementId = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["id"].Value);

                        // on boucle sur la dataTable Paiement
                        for (int i = 0; i < ClassGlobal.ds.Tables["Paiement"].Rows.Count; i++)
                        {
                            // si clé primaire trouvé
                            if (Convert.ToInt32(ClassGlobal.ds.Tables["Paiement"].Rows[i]["id"]) == paiementId)
                            {
                                // suppression du paiement
                                ClassGlobal.ds.Tables["Paiement"].Rows[i].Delete();
                                ClassGlobal.appliquerChangement(ClassGlobal.daPaiement, "Paiement");
                                break; // on sort de la boucle for
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                }
            }
        }
示例#3
0
 // event. Click sur le boutton 'arabeToolStripMenuItem'
 private void arabeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         if (arabeToolStripMenuItem.Checked == false)
         {
             françaisToolStripMenuItem.Checked = false;
             arabeToolStripMenuItem.Checked    = true;
             // changement de la langue à l'arabe
             ClassGlobal.cul = CultureInfo.CreateSpecificCulture("ar");
             // enregistrement de la langue actuelle
             ClassGlobal.setDefaultLanguage("ar");
             // messagesBox => RightToLeft
             ClassGlobal.msgBoxOptions = MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading;
             // messagesBox buttons text
             MessageBoxManager.Yes = ClassGlobal.resManager.GetString("MessageBox_YES", ClassGlobal.cul);
             MessageBoxManager.No  = ClassGlobal.resManager.GetString("MessageBox_NO", ClassGlobal.cul);
             MessageBoxManager.Register();
             // main form => RightToLeft
             this.RightToLeft = RightToLeft.Yes;
             // modification du texte des controls
             switchLanguage();
             // on informe les fenêtres enfants
             this.OnLanguageChanged(sender, e);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#4
0
 // event. Click sur le boutton 'françaisToolStripMenuItem'
 private void françaisToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         if (françaisToolStripMenuItem.Checked == false)
         {
             françaisToolStripMenuItem.Checked = true;
             arabeToolStripMenuItem.Checked    = false;
             // changement de la langue au français
             ClassGlobal.cul = CultureInfo.CreateSpecificCulture("fr");
             // enregistrement de la langue actuelle
             ClassGlobal.setDefaultLanguage("fr");
             // messagesBox => état normal
             ClassGlobal.msgBoxOptions = new MessageBoxOptions();
             // messageBox buttons text => état normal
             MessageBoxManager.Unregister();
             // main form => état normal
             this.RightToLeft = RightToLeft.No;
             // modification du texte des controls
             switchLanguage();
             // on informe les fenêtres enfants
             this.OnLanguageChanged(sender, e);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
 // event. Click sur le boutton 'SupprimerBtn'
 private void SupprimerBtn_Click(object sender, EventArgs e)
 {
     try
     {
         // si jamais la combobox est vide
         if (TravailCombo.Items.Count == 0)
         {
             throw new Exception(ClassGlobal.resManager.GetString("MessageBox_Rien_A_Supprimer", ClassGlobal.cul));
         }
         else if (MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Confirmer_Suppression_Travail", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, ClassGlobal.msgBoxOptions) == DialogResult.Yes)
         {
             // on boucle sur la dataTable Travail
             for (int i = 0; i < ClassGlobal.ds.Tables["Travail"].Rows.Count; i++)
             {
                 // si clé primaire trouvé
                 if (ClassGlobal.ds.Tables["Travail"].Rows[i]["id"].ToString() == TravailCombo.SelectedValue.ToString())
                 {
                     // suppression
                     ClassGlobal.ds.Tables["Travail"].Rows[i].Delete();
                     ClassGlobal.appliquerChangement(ClassGlobal.daTravail, "Travail");
                     MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Travail_Supprimé", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                     // mise à jour de la dataTable Client (pour supprimer les clients en relation avec ce travail)
                     ClassGlobal.getClient();
                     break; // on sort de la boucle for
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#6
0
 // event. Click sur le boutton 'EnregistrerPaiementBtn'
 private void EnregistrerPaiementBtn_Click(object sender, EventArgs e)
 {
     try
     {
         // si le montant est vide
         if (MontantMaskedTextBox.Text.Length == 0)
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Montant_Obligatoire", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             MontantMaskedTextBox.Focus();
         }
         else // si nn, c'est bon
         {
             // ajout du paiement
             ClassGlobal.ds.Tables["Paiement"].Rows.Add(null, ClassGlobal.ds.Tables["Client"].Rows[position]["id"], MontantMaskedTextBox.Text, DatePaiementDateTimePicker.Value);
             ClassGlobal.appliquerChangement(ClassGlobal.daPaiement, "Paiement");
             //MessageBox.Show("Paiement enregistré !", ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information);
             // mise à jour de la dataTable Paiement (pour avoir les bon ids, afin de pouvoir supprimer un paiement)
             ClassGlobal.getPaiement();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#7
0
        // event. Click on 'A propos' in '?' of MenuStrip1
        private void àProposToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Form fen = new About();

            fen.RightToLeft = ClassGlobal.getDefaultLanguage() == "ar" ? RightToLeft.Yes : RightToLeft.No;
            fen.Text        = ClassGlobal.resManager.GetString("A_propos_Sub_Menu", ClassGlobal.cul);
            fen.ShowDialog();
        }
示例#8
0
 // event. Load du formulaire
 private void RechercherNomClient_Load(object sender, EventArgs e)
 {
     // on change la langue si l'arabe est séléctionné
     if (ClassGlobal.getDefaultLanguage() == "ar")
     {
         switchLanguage();
     }
 }
示例#9
0
        // event. Load du formulaire
        private void ListeClients_Load(object sender, EventArgs e)
        {
            try
            {
                if (ClassGlobal.isConnectedToDb) // si on est déjà connecté à la base de données
                {
                    // si la dataTable Client est vide
                    if (ClassGlobal.ds.Tables["Client"].Rows.Count == 0)
                    {
                        throw new Exception(ClassGlobal.resManager.GetString("MessageBox_Aucun_Client", ClassGlobal.cul));
                    }

                    // remplissage de la combobox 'TravailCombo'
                    TravailCombo.DataSource    = ClassGlobal.ds.Tables["Travail"];
                    TravailCombo.DisplayMember = "description";
                    TravailCombo.ValueMember   = "id";

                    // initialisation du DataView
                    dv = new DataView(ClassGlobal.ds.Tables["Paiement"]);
                    // affichage du DataView dans la DataGridView
                    dataGridView1.DataSource            = dv;
                    dataGridView1.Columns["id"].Visible = dataGridView1.Columns["id_client"].Visible = false;
                    setDataGridviewFormat();
                    // ajout des bouttons supprimer dans la dataGridView des paiements
                    DeleteButtonColumn supprimerPaiementBtnColumn = new DeleteButtonColumn();
                    dataGridView1.Columns.Add(supprimerPaiementBtnColumn);

                    // image initiale de la pictureBox1 (La photo)
                    pictureBox1.InitialImage = GestionClient.Properties.Resources.load;

                    // on affiche le premier client
                    move();

                    // on séléctionne le boutton 'Suivant'
                    SuivantBtn.Select();

                    // on change la langue si l'arabe est séléctionné
                    if (ClassGlobal.getDefaultLanguage() == "ar")
                    {
                        switchLanguage();
                    }
                }
                else
                {
                    throw new Exception(ClassGlobal.resManager.GetString("MessageBox_Connexion_Non_Etablie", ClassGlobal.cul));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                this.BeginInvoke(new MethodInvoker(this.Close)); // on empêche l'ouverture de la fenêtre
            }
        }
示例#10
0
        // event. Click sur le boutton 'SupprimerPiece'
        private void SupprimerPieceBtn_Click(object sender, EventArgs e)
        {
            try
            {
                // s'il n'y a aucune pièce
                if (piecesPbList.Count == 0)
                {
                    throw new Exception(ClassGlobal.resManager.GetString("MessageBox_Aucune_Piece", ClassGlobal.cul));
                }
                else // si nn
                {
                    // on parcourt toutes les pieces
                    for (int i = 0; i < piecesPbList.Count; i++)
                    {
                        // si on trouve qu'une piece est séléctionnée
                        if (piecesPbList[i].BackColor == SystemColors.Highlight && piecesPbList[i].Padding.All == 3)
                        {
                            if (MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Confirmer_Suppression_Piece", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, ClassGlobal.msgBoxOptions) == DialogResult.Yes)
                            {
                                // on parcourt la dataTable 'Pieces'
                                for (int p = 0; p < ClassGlobal.ds.Tables["Pieces"].Rows.Count; p++)
                                {
                                    // si on trouve que la clé primaire (id) == tag de l'image ou on a sauvegardé l'id nous aussi
                                    if (ClassGlobal.ds.Tables["Pieces"].Rows[p]["id"].ToString() == piecesPbList[i].Tag.ToString())
                                    {
                                        // suppression de l'image
                                        File.Delete(piecesPbList[i].ImageLocation);
                                        // suppression de la piece de la table 'Pieces'
                                        ClassGlobal.ds.Tables["Pieces"].Rows[p].Delete();
                                        ClassGlobal.appliquerChangement(ClassGlobal.daPieces, "Pieces");
                                        // raffraichissement des pieces
                                        showPieces(currentClientId);
                                        break; // on sort de la 2ème boucle
                                    }
                                }
                            }

                            // on sort de la fonction
                            return;
                        }
                    }

                    // si nn, aucune piece n'est séléctionnée
                    MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Selectionner_Piece", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
            }
        }
示例#11
0
        // event. Load du formulaire
        private void ListeClients_Load(object sender, EventArgs e)
        {
            try
            {
                if (ClassGlobal.isConnectedToDb) // si on est déjà connecté à la base de données
                {
                    // si la dataTable Client est vide
                    if (ClassGlobal.ds.Tables["Client"].Rows.Count == 0)
                    {
                        throw new Exception(ClassGlobal.resManager.GetString("MessageBox_Aucun_Client", ClassGlobal.cul));
                    }

                    // remplissage de la combobox 'TravailCombo'
                    TravailCombo.DataSource    = ClassGlobal.ds.Tables["Travail"];
                    TravailCombo.DisplayMember = "description";
                    TravailCombo.ValueMember   = "id";

                    // on récupère la dataTable ClientTravailPaiement
                    ClassGlobal.getClientTravailPaiement();

                    // on crée un DataView pour pouvoir filtrer
                    dv = new DataView(ClassGlobal.ds.Tables["ClientTravailPaiement"]);

                    // font/police de la dataGridView
                    dataGridView1.Font = new Font("Times New Roman", 11.0F, FontStyle.Italic);

                    // remplissage de la dataGridView
                    dataGridView1.DataSource = dv;
                    setDataGridViewFormat();

                    // on remplace les valeurs null par '-'
                    dataGridView1.DefaultCellStyle.NullValue = "-";

                    // on change la langue si l'arabe est séléctionné
                    if (ClassGlobal.getDefaultLanguage() == "ar")
                    {
                        switchLanguage();
                    }
                }
                else
                {
                    throw new Exception(ClassGlobal.resManager.GetString("MessageBox_Connexion_Non_Etablie", ClassGlobal.cul));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                this.BeginInvoke(new MethodInvoker(this.Close)); // on empêche l'ouverture de la fenêtre
            }
        }
示例#12
0
        // event. Click on boutton 'Rechercher'
        private void RechercherBtn_Click(object sender, EventArgs e)
        {
            // on affecte la position actuelle à 'searchFoundedPosition' de la ClassGlobal
            ClassGlobal.searchFoundedPosition = position;
            // on affiche la fenêtre de recherche
            Form fen = new RechercherNomClient();

            fen.RightToLeft = ClassGlobal.getDefaultLanguage() == "ar" ? RightToLeft.Yes : RightToLeft.No;
            fen.ShowDialog();
            // on affiche le client trouvé, si trouvé biensur
            if (ClassGlobal.searchFoundedPosition != position)
            {
                position = ClassGlobal.searchFoundedPosition;
                move();
            }
        }
示例#13
0
 // event. Load du formulaire
 private void AjouterTravail_Load(object sender, EventArgs e)
 {
     if (!ClassGlobal.isConnectedToDb) // si on n'est pas connecté à la base de données
     {
         MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Connexion_Non_Etablie", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
         this.BeginInvoke(new MethodInvoker(this.Close)); // on empêche l'ouverture de la fenêtre
     }
     else
     {
         // on change la langue si l'arabe est séléctionné
         if (ClassGlobal.getDefaultLanguage() == "ar")
         {
             switchLanguage();
         }
     }
 }
示例#14
0
        // addPieceAs(...) : ajoute la pièce spécifiée selon le type spécifié
        private void addPieceAs(string emplacementPiece, string typePiece)
        {
            // on récupère le chemin ou on va pouvoir stocker l'image
            string imageFolderName = ClassGlobal.PiecesSaveFolder + "\\" + currentClientId + "_";// +NomTextBox.Text;
            // on récupère le nom de l'image
            string imageFileName = emplacementPiece.Remove(0, emplacementPiece.LastIndexOf('\\') + 1);
            // on copie l'image dans le répertoire de notre base de données
            string destinationFileName = imageFolderName + "\\" + DateTime.Now.ToString().Replace("/", "-").Replace(":", "-").Replace(" ", "_") + "_" + imageFileName;

            File.Copy(emplacementPiece, ClassGlobal.AppPath + "\\" + destinationFileName, true);
            // on ajoute la photo en tant que Piece
            ClassGlobal.ds.Tables["Pieces"].Rows.Add(null, currentClientId, destinationFileName, typePiece);
            ClassGlobal.appliquerChangement(ClassGlobal.daPieces, "Pieces");
            // mise à jour de la dataTable 'Pieces' (pour avoir les bon ids des pièces)
            ClassGlobal.getPieces();
        }
示例#15
0
 // event. Click on boutton 'Modifier'
 private void ModifierBtn_Click(object sender, EventArgs e)
 {
     try
     {
         // si le nom est vide
         if (NomTextBox.Text.Length == 0)
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Nom_Obligatoire", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             NomTextBox.Focus();
         }
         // si nn si nom en double
         else if (checkDoubleClientNameNotCurrent(NomTextBox.Text, position))
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Nom_D_un_Autre_Client", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             //NomTextBox.Text = ""; // on vide le textbox du nom
             NomTextBox.SelectAll(); // on séléctionne le nom au cas l'utilisateur veut bien le supprimer
             NomTextBox.Focus();
         }
         else // si nn, c'est bon
         {
             // on parcourt la dataTable Client
             for (int i = 0; i < ClassGlobal.ds.Tables["Client"].Rows.Count; i++)
             {
                 // si clé primaire trouvée
                 if (Convert.ToInt32(ClassGlobal.ds.Tables["Client"].Rows[i]["id"]) == currentClientId)
                 {
                     // modification
                     ClassGlobal.ds.Tables["Client"].Rows[position]["nom"]        = NomTextBox.Text;
                     ClassGlobal.ds.Tables["Client"].Rows[position]["id_travail"] = TravailCombo.SelectedValue;
                     if (DateNaissMaskedTextBox.MaskCompleted)
                     {
                         ClassGlobal.ds.Tables["Client"].Rows[position]["date_naissance"] = DateNaissMaskedTextBox.Text;
                     }
                     ClassGlobal.ds.Tables["Client"].Rows[position]["numero_telephone"] = NumTelMaskedTextBox.Text.Replace(" ", string.Empty);
                     ClassGlobal.ds.Tables["Client"].Rows[position]["email"]            = EmailTextBox.Text;
                     ClassGlobal.appliquerChangement(ClassGlobal.daClient, "Client");
                     MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Client_Modifié", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                     break; // on sort de la boucle
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#16
0
 // event. Click on boutton 'Supprimer'
 private void SupprimerBtn_Click(object sender, EventArgs e)
 {
     try
     {
         if (MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Confirmer_Suppression_Client", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, ClassGlobal.msgBoxOptions) == DialogResult.Yes)
         {
             // on boucle sur la dataTable Client
             for (int i = 0; i < ClassGlobal.ds.Tables["Client"].Rows.Count; i++)
             {
                 // si clé primaire trouvé
                 if (Convert.ToInt32(ClassGlobal.ds.Tables["Client"].Rows[i]["id"]) == currentClientId)
                 {
                     // suppression du client
                     ClassGlobal.ds.Tables["Client"].Rows[i].Delete();
                     ClassGlobal.appliquerChangement(ClassGlobal.daClient, "Client");
                     // suppression du dossier du client (!@ avec tout son contenu)
                     string clientFolderName = ClassGlobal.PiecesSaveFolder + "\\" + currentClientId + "_";
                     if (Directory.Exists(clientFolderName))
                     {
                         Directory.Delete(clientFolderName, true);
                     }
                     // si on peu faire un retour en arrière
                     if (ClassGlobal.ds.Tables["Client"].Rows.Count > 0)
                     {
                         // on revient en arrière (simulation d'un click sur 'Précédent')
                         PrécédentBtn_Click(sender, e);
                         MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Client_Supprimé", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                     }
                     else
                     {
                         MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Client_Supprimé_Plus_Fermeture", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                         this.Close();
                     }
                     break; // on sort de la boucle for
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#17
0
 // event. Click du boutton 'NouveauTravailBtn'
 private void NouveauTravailBtn_Click(object sender, EventArgs e)
 {
     // on ouvre l'interface de création de travail
     if (!ClassGlobal.isAjouterTravailOpened)
     {
         // on sauvegarde le nombre d'item actuel dans la 'TravailCombo'
         int travailItemsNbr = TravailCombo.Items.Count;
         // on ouvre la fenêtre d'ajout de travail
         ClassGlobal.isAjouterTravailOpened = true;
         Form fen = new AjouterTravail(false);
         fen.RightToLeft = ClassGlobal.getDefaultLanguage() == "ar" ? RightToLeft.Yes : RightToLeft.No;
         fen.ShowDialog();
         // après fermeture
         if (TravailCombo.Items.Count > travailItemsNbr) // si un travail a été ajouté, on le séléctionne
         {
             TravailCombo.SelectedIndex = TravailCombo.Items.Count - 1;
         }
     }
 }
示例#18
0
        // event. Load du formulaire
        private void SupprimerTravail_Load(object sender, EventArgs e)
        {
            if (ClassGlobal.isConnectedToDb) // si on est connecté à la base de données
            {
                // remplissage de la combobox 'TravailCombo'
                TravailCombo.DataSource    = ClassGlobal.ds.Tables["Travail"];
                TravailCombo.DisplayMember = "description";
                TravailCombo.ValueMember   = "id";

                // on change la langue si l'arabe est séléctionné
                if (ClassGlobal.getDefaultLanguage() == "ar")
                {
                    switchLanguage();
                }
            }
            else
            {
                MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Connexion_Non_Etablie", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
                this.BeginInvoke(new MethodInvoker(this.Close)); // on empêche l'ouverture de la fenêtre
            }
        }
示例#19
0
        // updatePiece(...) : met à jour une pièce, en la copyant dans la bdd et en changeant son emplacement + suppression de l'ancienne
        private void updatePiece(string nouveauEmplacement, int pieceIndex)
        {
            // on récupère le chemin ou on va pouvoir stocker l'image
            string imageFolderName = ClassGlobal.PiecesSaveFolder + "\\" + currentClientId + "_";// +NomTextBox.Text;
            // on récupère le nom de l'image
            string imageFileName = nouveauEmplacement.Remove(0, nouveauEmplacement.LastIndexOf('\\') + 1);
            // on copie l'image dans le répertoire de notre base de données
            string destinationFileName = imageFolderName + "\\" + DateTime.Now.ToString().Replace("/", "-").Replace(":", "-").Replace(" ", "_") + "_" + imageFileName;

            File.Copy(nouveauEmplacement, ClassGlobal.AppPath + "\\" + destinationFileName, true);
            // suppression de l'ancienne image de notre base de données
            string oldImage = ClassGlobal.AppPath + "\\" + ClassGlobal.ds.Tables["Pieces"].Rows[pieceIndex]["emplacement"].ToString();

            if (File.Exists(oldImage))
            {
                File.Delete(oldImage);
            }
            // on modifie l'emplacement de la pièce et on applique les changements à la Table Pieces
            ClassGlobal.ds.Tables["Pieces"].Rows[pieceIndex]["emplacement"] = destinationFileName;
            ClassGlobal.appliquerChangement(ClassGlobal.daPieces, "Pieces");
        }
示例#20
0
 // event. Click sur le boutton 'AjouterBtn'
 private void AjouterBtn_Click(object sender, EventArgs e)
 {
     try
     {
         // si la description est vide
         if (DescriptionTextBox.Text.Length == 0)
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Description_Obligatoire", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             DescriptionTextBox.Focus();
         }
         // si nn si travail en double
         else if (checkDoubleTravailDescription(DescriptionTextBox.Text))
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Description_Double", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             DescriptionTextBox.SelectAll(); // on séléctionne la description au cas l'utilisateur veut bien la supprimer
             DescriptionTextBox.Focus();
         }
         else // si nn, c'est bon
         {
             // ajout du travail
             ClassGlobal.ds.Tables["Travail"].Rows.Add(null, DescriptionTextBox.Text);
             ClassGlobal.appliquerChangement(ClassGlobal.daTravail, "Travail");
             if (showConfirmationMsg)
             {
                 MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Travail_Ajouté", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             }
             // mise à jour de la dataTable Travail (pour avoir les bon ids)
             ClassGlobal.getTravail();
             // fermeture de la fenêtre
             this.Close();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#21
0
 // event. Click du boutton 'AjouterClientBtn'
 private void AjouterClientBtn_Click(object sender, EventArgs e)
 {
     try
     {
         // si le nom est vide
         if (NomTextBox.Text.Length == 0)
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Nom_Obligatoire", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             NomTextBox.Focus();
         }
         // si nn si nom en double
         else if (checkDoubleClientName(NomTextBox.Text))
         {
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Nom_Double", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             //NomTextBox.Text = ""; // on vide le textbox du nom
             NomTextBox.SelectAll(); // on séléctionne le nom au cas l'utilisateur veut bien le supprimer
             NomTextBox.Focus();
         }
         // si nn si aucun travail existant
         else if (TravailCombo.Items.Count == 0)
         {
             NouveauTravailBtn_Click(sender, e);
         }
         // si nn, c'est bon
         else
         {
             // ajout du client
             string dateNaissance = null;
             if (DateNaissMaskedTextBox.MaskCompleted)
             {
                 dateNaissance = DateNaissMaskedTextBox.Text;
             }
             ClassGlobal.ds.Tables["Client"].Rows.Add(null, NomTextBox.Text, HommeFemmeCombo.Text, TravailCombo.SelectedValue, dateNaissance, NumTelMaskedTextBox.Text.Replace(" ", string.Empty), EmailTextBox.Text, DateTime.Now.ToString());
             ClassGlobal.appliquerChangement(ClassGlobal.daClient, "Client");
             // mise à jour de la dataTable Client (pour avoir les bon ids)
             ClassGlobal.getClient();
             // on récupère l'id du client
             int clientId = getClientIdByName(NomTextBox.Text);
             // on récupère le chemin ou on va pouvoir stocker l'image
             string imageFolderName = ClassGlobal.PiecesSaveFolder + "\\" + clientId + "_";// +NomTextBox.Text;
             // on crée le dossier qui contienra les pieces du client (dont l'image) s'il n'exsite pas
             if (!Directory.Exists(ClassGlobal.AppPath + "\\" + imageFolderName))
             {
                 Directory.CreateDirectory(ClassGlobal.AppPath + "\\" + imageFolderName);
             }
             // ajout de la photo (si choisi)
             if (isImageChoosed)
             {
                 // on récupère le nom de l'image
                 string imageFileName = pictureBox1.ImageLocation.Remove(0, pictureBox1.ImageLocation.LastIndexOf('\\') + 1);
                 // on copie l'image dans le répertoire de notre base de données
                 string destinationFileName = imageFolderName + "\\" + DateTime.Now.ToString().Replace("/", "-").Replace(":", "-").Replace(" ", "_") + "_" + imageFileName;
                 File.Copy(pictureBox1.ImageLocation, ClassGlobal.AppPath + "\\" + destinationFileName, true);
                 // on ajoute la photo en tant que Piece ('Photo')
                 ClassGlobal.ds.Tables["Pieces"].Rows.Add(null, clientId, destinationFileName, "Photo");
                 ClassGlobal.appliquerChangement(ClassGlobal.daPieces, "Pieces");
                 // mise à jour de la dataTable Pieces (pour avoir les bon ids, afin de pouvoir modifier la photo après)
                 ClassGlobal.getPieces();
             }
             MessageBox.Show(ClassGlobal.resManager.GetString("MessageBox_Client_Ajouté", ClassGlobal.cul), ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
             // fermeture de la fenêtre
             this.Close();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, ClassGlobal.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, ClassGlobal.msgBoxOptions);
     }
 }
示例#22
0
 // event. Click sur le boutton 'ActualiserBtn'
 private void ActualiserBtn_Click(object sender, EventArgs e)
 {
     ClassGlobal.getClientTravailPaiement();
 }
示例#23
0
 // event. Click on 'Connexion à la base de données' in 'Application' of MenuStrip1
 private void connexionÀLaBaseDeDonnéesToolStripMenuItem_Click(object sender, EventArgs e)
 {
     ClassGlobal.getAllTables(InfosToolStripStatusLabel);
 }