// 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); }
// 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); } } }
// 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); } }
// 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); } }
// 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); } }
// 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(); }
// 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(); } }
// 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 } }
// 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); } }
// 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 } }
// 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(); } }
// 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(); } } }
// 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(); }
// 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); } }
// 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); } }
// 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; } } }
// 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 } }
// 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"); }
// 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); } }
// 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); } }
// event. Click sur le boutton 'ActualiserBtn' private void ActualiserBtn_Click(object sender, EventArgs e) { ClassGlobal.getClientTravailPaiement(); }
// 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); }