private void btApercu_Click(object sender, EventArgs e) // 99% Ready - CREATION FACTURE { if (dateTimePicker_fin.Value == DateTime.Now) { MessageBox.Show("Vous ne pouvez pas générer une facture incluant aujourd'hui!", "Au plus tard hier", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Ctrl_EncodageFactures controle = new Ctrl_EncodageFactures(); // capturer la periode de la facture définie DateTime debut = dateTimePicker_debut.Value; DateTime fin = dateTimePicker_fin.Value; // capturer l'index de la ligne cliqué int i = dGdVw_DetailFamille.CurrentRow.Index; // capturer la ligne cliqué DataGridViewRow lineSelected = dGdVw_DetailFamille.Rows[i]; // initialisation des variables dont source est la ligne cliquée string codeClient = lineSelected.Cells[0].Value.ToString(); string nomClient = lineSelected.Cells[1].Value.ToString(); string prenomClient = lineSelected.Cells[2].Value.ToString(); string adresseClient = lineSelected.Cells[4].Value.ToString(); string villeClient = lineSelected.Cells[5].Value.ToString(); string paysClient = lineSelected.Cells[6].Value.ToString(); // initialiser le nouveau numéro de Facture int numeroFacture = controle.get_dernierNumeroFactureDisponible(); // créer objet Facture ApercuFacture facture = new ApercuFacture(); // créer facture avec Apercufacture.cs et récupérer chemin d'accès (path) de la facture créé String pathNouvelleFacture = facture.facture(lesEnfants, numeroFacture, debut, fin, codeClient, nomClient, prenomClient, adresseClient, villeClient, paysClient); // teste si le fichier a bien été creer if (pathNouvelleFacture.LastIndexOf(".pdf") == -1) { // si je ne reçois pas un path, alors message d'erreur MessageBox.Show(pathNouvelleFacture); } else { // si je reçois un path, c'est ok // MessageBox.Show("La création à bien été éffectué à l'adresse: " + pathNouvelleFacture); // afficher facture avec programme externe if (facture.affichageFacture(pathNouvelleFacture, true)) { // sauvegarder facture controle.saveFacture(pathNouvelleFacture, (float.Parse(label_prix.Text.Trim(new char[] { '€' })) * (1 + (controle.get_TVA() / 100))).ToString(), dateTimePicker_debut.Value.ToString("yyyyMMdd"), dateTimePicker_fin.Value.ToString("yyyyMMdd"), numeroFacture, codeClient); path_facture = pathNouvelleFacture; btEnvoi.Enabled = true; } } } }
public void filtre(object sender, EventArgs e) // 99% READY - FILTRE TUTEUR / ENFANT POUR DATAGRIDVIEW-MEMBRE { // création de l'objet pour filtrer dataGridView Ctrl_EncodageFactures controle = new Ctrl_EncodageFactures(); // appelle la méthode liée à la procédure stockée controle.filtreParNomParTel(ref dGdVw_DetailFamille, txtBx_RechNom.Text, txtBx_RechNumTel.Text); // charge directement la liste des enfants dGdVw_DetailFamille_CellClick(null, null); }
private void dGdVw_DetailFamille_CellClick(object sender, DataGridViewCellEventArgs e) // 99% READY - Remplir DGV-Membre - Gestion date dernière clôture { // vider le tabcontrol et le recap tuteur tabDetail.TabPages.Clear(); initialiserRecapTuteur(); // débloquer zone selection periode groupBox1_selectperiode.Enabled = true; // capturer l'index de la ligne sélectionnée int indexLigne = dGdVw_DetailFamille.CurrentRow.Index; // création objet pour remplir datagridview Ctrl_EncodageFactures controle = new Ctrl_EncodageFactures(); // appelle méthode qui affiche les tuteurs controle.afficheListeEnfantSelonSelection(ref dgv_enfant_facturation, ref dGdVw_DetailFamille, indexLigne); // pour adapter la largeur de colonnes dgv_enfant_facturation.AutoResizeColumns(); dgv_enfant_facturation.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dgv_enfant_facturation.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; // appelle methode qui recherche la date dernière clôture label_dateCloture.Text = controle.get_DateCloture(ref dGdVw_DetailFamille, indexLigne); // mettre à jour les dateTimePicker du formulaire DateTime laDate; // pour y placer la date converti de puis la textbox if (DateTime.TryParse(label_dateCloture.Text, out laDate)) // renvoie "true" si la conversion en date est possible et affecte le résultat de la conversion à la variable "laDate" { //Attention d'abord fixer le min date avec la value! (car si la value est en dessous du min date=> plantage //On initialise d'abord pour éviter tout conflit dateTimePicker_debut.MinDate = DateTime.Parse("1979/01/01"); dateTimePicker_fin.MinDate = DateTime.Now.AddDays(-1); dateTimePicker_fin.MaxDate = DateTime.Now.AddDays(10); if (laDate == DateTime.Now) { dateTimePicker_debut.MinDate = laDate; } else { dateTimePicker_debut.MinDate = laDate.AddDays(1); } dateTimePicker_debut.Value = laDate.AddDays(1); // initialisation à un jour après dernière date de clôture dateTimePicker_fin.MinDate = dateTimePicker_debut.Value; dateTimePicker_fin.Value = dateTimePicker_debut.Value.AddDays(1); // initialisation sur le lendemain de la cloturation } else { /* A MODIFIER SELON COMMENTAIRE */ dateTimePicker_debut.Value = DateTime.Now.AddDays(-5); // <- C'est faux, doit être initialisé au dernier repas déjà consommé s'il existe !! } }
private void button_visualiser_Click(object sender, EventArgs e) // 99% READY - Gestion visualisation des détails enfants pour le tuteur { Ctrl_EncodageFactures controle = new Ctrl_EncodageFactures(); lesEnfants.Clear(); // la ligne du tuteur sélectionné DataGridViewRow ligneTuteur = dGdVw_DetailFamille.Rows[dGdVw_DetailFamille.CurrentRow.Index]; // Periode du récapitulatif selon les dateTimePicker date_debut = dateTimePicker_debut.Value.ToString("yyyy-MM-dd"); date_fin = dateTimePicker_fin.Value.ToString("yyyy-MM-dd"); if (DateTime.Compare(dateTimePicker_debut.Value, dateTimePicker_fin.Value) == 1) { MessageBox.Show("Date de fin inférieure à la date de début."); } // afficher dans le titre du groupbox le tuteur concerné groupBox_recap.Text = "Récap pour le tuteur : " + ligneTuteur.Cells[1].Value.ToString() + " " + ligneTuteur.Cells[2].Value.ToString(); // reset des pages du tabcontrol tabDetail.TabPages.Clear(); // initialiser recap tuteur initialiserRecapTuteur(); for (int i = 0; i < dgv_enfant_facturation.Rows.Count; i++) // TRAITEMENT INDIVIDUEL PAR ENFANT { //====Création de datagridView====================================================== DataGridView dataGridView_historique = new DataGridView(); // Nouveau DataGridView pour afficher l'historique de chaque élève dataGridView_historique.ReadOnly = true; // juste la lecture dans le datagrid sans modification dataGridView_historique.Size = new System.Drawing.Size(460, 187); // la taille de datagridview dataGridView_historique.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; // pour afficher tout la ligne dans le datagridview //================================================================================== // capturer l'identifiant de l'enfant int id_enfant = 0; Int32.TryParse(dgv_enfant_facturation.Rows[i].Cells[0].Value.ToString(), out id_enfant); // le nom de l'onglet du tab string nomPrenomEnfant = dgv_enfant_facturation.Rows[i].Cells[1].Value.ToString() + " " + dgv_enfant_facturation.Rows[i].Cells[2].Value.ToString(); // créer le tab par enfant TabPage myTabPage = new TabPage(nomPrenomEnfant); // Nouvel onglet et le title pour afficher le nom et le prenom sur l'onglet tabDetail.TabPages.Add(myTabPage); // J'ajoute l'onglet au tabcontrol DetailsEnfant unEnfant = new DetailsEnfant(id_enfant, date_debut, date_fin); DataTable details = controle.convertList(unEnfant.get_details()); if (details.Rows.Count > 0) { details.Columns[0].ColumnName = "Type de repas"; details.Columns[1].ColumnName = "Consomé le"; details.Columns[2].ColumnName = "Prix"; foreach (DataRow row in details.Rows) { switch (row["Type de repas"].ToString()) { case "1": row["Type de repas"] = "******"; break; case "2": row["Type de repas"] = "******"; break; case "3": row["Type de repas"] = "******"; break; default: row["Type de repas"] = "******"; break; } } // Binding datagirdview with datatable dataGridView_historique.DataSource = details; // ajouter le dgv généré dans le tab myTabPage.Controls.Add(dataGridView_historique); // J'ajoute le DataGridView à mon onglet fraichement crée avec les données chargés // Affichage du recap tuteur // nombre de repas label_chaud1.Text = (int.Parse(label_chaud1.Text) + unEnfant.get_nbRepas(1)).ToString(); label_chaud2.Text = (int.Parse(label_chaud2.Text) + unEnfant.get_nbRepas(2)).ToString(); label_froid.Text = (int.Parse(label_froid.Text) + unEnfant.get_nbRepas(3)).ToString(); label_aucun.Text = (int.Parse(label_aucun.Text) + unEnfant.get_nbRepas(4)).ToString(); // total par type de repas label_Total_Chaud1.Text = (float.Parse(label_Total_Chaud1.Text.ToString().Trim(new char[] { '€' })) + unEnfant.get_totalPriceLunchType(1)).ToString() + " €"; label_Total_Chaud2.Text = (float.Parse(label_Total_Chaud2.Text.ToString().Trim(new char[] { '€' })) + unEnfant.get_totalPriceLunchType(2)).ToString() + " €"; label_Total_Froid.Text = (float.Parse(label_Total_Froid.Text.ToString().Trim(new char[] { '€' })) + unEnfant.get_totalPriceLunchType(3)).ToString() + " €"; label_Total_Aucun.Text = (float.Parse(label_Total_Aucun.Text.ToString().Trim(new char[] { '€' })) + unEnfant.get_totalPriceLunchType(4)).ToString() + " €"; // total global label_prix.Text = (float.Parse(label_prix.Text.ToString().Trim(new char[] { '€' })) + unEnfant.get_totalPriceLunch()).ToString() + " €"; // Je conserve l'enfant en mémoire pour la création de facture lesEnfants.Add(unEnfant); } } // gestion bouton "aperçu" if (label_prix.Text != "0 €") { btApercu.Enabled = true; } }