private void btnRetourDVD_Click(object sender, EventArgs e) { if (dgvDVD.SelectedRows.Count <= 0) { MessageBox.Show("Veuillez sélectionner au moins un DVD à rentrer avant d'effectuer cette action SVP."); } else { int i, j = 0; for (i = 0; i < dgvDVD.SelectedRows.Count; i++) { C_T_DVD TmpDVD = new G_T_DVD(sChConn).Lire_ID((int)dgvDVD.SelectedRows[i].Cells[0].Value); if (TmpDVD.D_Emprunt) // On vérifie que le DVD n'a pas déjà été retourné { new G_T_DVD(sChConn).Modifier(TmpDVD.Id_DVD, TmpDVD.D_Nom, false, TmpDVD.D_Genre, TmpDVD.D_Emprunt_Max, TmpDVD.D_Amende_p_J, TmpDVD.D_Synopsis); // On change le bool d'emprunt du DVD à false => le DVD est à nouveau disponible foreach (C_T_Quantite TmpQuantite in lQuantite) { if (TmpQuantite.Id_DVD == TmpDVD.Id_DVD && TmpQuantite.Q_Retour == null) // Important de confirmer les 2 conditions pour ne pas modifier la date de rentrée d'un autre emprunt { new G_T_Quantite(sChConn).Modifier(TmpQuantite.Id_Quantite, TmpQuantite.Id_Emprunt, TmpQuantite.Id_DVD, DateTime.Today); // On met la date du jour comme date de rentrée } } } else { j++; } } MessageBox.Show((i - j) + " DVD récupérés"); RemplirDGVDVD(); Modified = true; } }
private void RemplirListeDVD() { lbDVDEmprunt.Items.Clear(); List <C_T_DVD> lTmpDVD = new G_T_DVD(sChConn).Lire("Id_DVD"); foreach (C_T_DVD TmpDVD in lTmpDVD) { // On n'ajoute que les DVD qui ne sont pas en prêt if (!TmpDVD.D_Emprunt) { lbDVDEmprunt.Items.Add(TmpDVD.D_Nom.ToString() + " (ID=" + TmpDVD.Id_DVD + ")"); } } }
private void RemplirDonnees() { SelectedActeur = new G_T_Acteur(sChConn).Lire_ID(SelectedActeur.Id_Acteur); this.Text = "Acteur n°" + SelectedActeur.Id_Acteur; tbNomActeur.Text = SelectedActeur.A_Nom; tbPrenomActeur.Text = SelectedActeur.A_Prenom; InternetLink = SelectedActeur.A_Bio; // Liste de films lbListeFilms.Items.Clear(); List <C_T_Liste_Acteurs> lTmplActeurs = new G_T_Liste_Acteurs(sChConn).Lire("Id_Liste_Acteurs"); foreach (C_T_Liste_Acteurs TmplActeurs in lTmplActeurs) { if (TmplActeurs.Id_Acteur == SelectedActeur.Id_Acteur) { C_T_DVD TmpDVD = new G_T_DVD(sChConn).Lire_ID((int)TmplActeurs.Id_DVD); lbListeFilms.Items.Add(TmpDVD.D_Nom.ToString()); } } }
private void AfficherNotifs() // Une ligne = 148 char { rtbInfos.Text = ""; if (!cbAfficherpDVD.Checked) // Tri par client { List <C_T_Client> lTmpClient = new G_T_Client(sChConn).Lire("Id_Client"); foreach (C_T_Client TmpClient in lTmpClient) { double TmpAmende = new EcranAccueil(sChConn).CalculerAmende(TmpClient.Id_Client); bool TmpRetardCot = new EcranAccueil(sChConn).CalculerRetardCot((DateTime)TmpClient.C_Cotisation); if (TmpAmende > 0 || TmpRetardCot) // Le client a un retard { string TmpString, TmpString2; bool FirstLine = true; TmpString = TmpClient.C_Nom + " " + TmpClient.C_Prenom + "(ID=" + TmpClient.Id_Client.ToString() + ") "; int stringlen = TmpString.Length; if (TmpRetardCot) // Retard de cotisation { DateTime DateCot = (DateTime)TmpClient.C_Cotisation; TimeSpan TpsRetard = DateTime.Today - DateCot.AddDays(1); TmpString2 = " En retard de cotisation de " + TpsRetard.Days.ToString() + " jours"; TmpString2 = TmpString2.PadLeft(148 - stringlen, '-'); // On s'assure que le string complet prendra l'ensemble de la rtb TmpString += TmpString2; rtbInfos.Text += TmpString; rtbInfos.Text += "\n"; FirstLine = false; } if (TmpAmende > 0) { List <C_T_Emprunt> lTmpEmprunt = new G_T_Emprunt(sChConn).Lire("Id_Emprunt"); // Charge tous les emprunts foreach (C_T_Emprunt TmpEmprunt in lTmpEmprunt) // Parcourt tous les emprunts { if (TmpEmprunt.Id_Client == TmpClient.Id_Client) // Si Id client de l'emprunt parcouru == Id client sélectionné... { List <C_T_Quantite> lTmpQuantite = new G_T_Quantite(sChConn).Lire("Id_Quantite"); // Charge toutes les quantités foreach (C_T_Quantite TmpQuantite in lTmpQuantite) // Parcourt toutes les quantités { if (TmpQuantite.Id_Emprunt == TmpEmprunt.Id_Emprunt) // Si Id Quantité parcouru == Id Emprunt questionné... { if (TmpQuantite.Q_Retour == null) // Si la date de retour == null (=> DVD non retourné)... { List <C_T_DVD> lTmpDVD = new G_T_DVD(sChConn).Lire("Id_DVD"); // Charge tous les DVD foreach (C_T_DVD TmpDVD in lTmpDVD) // Parcourt tous les DVD { if (TmpDVD.Id_DVD == TmpQuantite.Id_DVD) // Si IDs identiques => DVD repris dans l'emprunt { DateTime DateLimite = (DateTime)TmpEmprunt.E_Emprunt; // On récupère la date de l'emprunt... DateLimite.AddDays((double)TmpDVD.D_Emprunt_Max); // Et on y ajoute la durée max d'emprunt du DVD pour déterminer la date limite de retour de ce DVD TimeSpan tspan = DateTime.Today.Subtract(DateLimite); // On détermine la durée de temps entre aujourd'hui et la date limite de retour... int retard = tspan.Days - 1; // Et on la transforme en un nombre de jour => si > 0, retard; sinon encore dans les temps ( -1 sinon il compte le jour limite de rentrée) if (retard > 0) // Si retard > 0 => retard => Amende à appliquer ! { TmpString2 = " Retard pour le retour de " + TmpDVD.D_Nom + " (ID=" + TmpDVD.Id_DVD + ") de " + retard.ToString() + " jours => amende = " + (retard * TmpDVD.D_Amende_p_J).ToString() + "€ (" + TmpDVD.D_Amende_p_J.ToString() + "€ par jour)."; TmpString2 = TmpString2.PadLeft(148 - stringlen, '-'); // On s'assure que le string complet prendra l'ensemble de la rtb if (FirstLine) { TmpString += TmpString2; rtbInfos.Text += TmpString; FirstLine = false; } else { TmpString2 = TmpString2.PadLeft(148); rtbInfos.Text += TmpString2; } rtbInfos.Text += "\n"; } } } } } } } } } rtbInfos.Text += "\n"; // On saute une ligne avant de passer au client suivant } } } else // Tri par DVD { List <C_T_Quantite> lTmpQuantite = new G_T_Quantite(sChConn).Lire("Id_Quantite"); foreach (C_T_Quantite TmpQuantite in lTmpQuantite) { if (TmpQuantite.Q_Retour == null) // => DVD non rentré { C_T_Emprunt TmpEmprunt = new G_T_Emprunt(sChConn).Lire_ID((int)TmpQuantite.Id_Emprunt); // On charge l'emprunt lié C_T_DVD TmpDVD = new G_T_DVD(sChConn).Lire_ID((int)TmpQuantite.Id_DVD); // et le DVD DateTime DateEmprunt = (DateTime)TmpEmprunt.E_Emprunt; // Et la date de l'emprunt if (DateTime.Today > DateEmprunt.AddDays((double)TmpDVD.D_Emprunt_Max)) // Le DVD est en retard de retour { TimeSpan tspan = DateTime.Today.Subtract(DateEmprunt.AddDays((double)TmpDVD.D_Emprunt_Max)); // On détermine la durée de temps entre aujourd'hui et la date limite de retour... int retard = tspan.Days - 1; // Et on la transforme en un nombre de jour (-1 sinon il compte le jour limite de rentrée) string TmpString = "\"" + TmpDVD.D_Nom + "\" aurait du être rentré il y a " + retard.ToString() + " jours. Il a été emprunté par "; int StringLen = TmpString.Length; C_T_Client TmpClient = new G_T_Client(sChConn).Lire_ID((int)TmpEmprunt.Id_Client); string TmpString2 = " " + TmpClient.C_Nom + " " + TmpClient.C_Prenom + "."; TmpString2.PadLeft(148 - StringLen, '-'); TmpString += TmpString2; rtbInfos.Text += TmpString; rtbInfos.Text += "\n\n"; } } } } }
private void RemplirListeTendance() { lbTendances.Items.Clear(); lDVDEntries = new List <NameAndEntries>(); List <C_T_Quantite> lTmpQuantite = new G_T_Quantite(sChConn).Lire("Id_Emprunt"); foreach (C_T_Quantite TmpQuantite in lTmpQuantite) { bool Trouve = false; C_T_DVD TmpDVD = new G_T_DVD(sChConn).Lire_ID((int)TmpQuantite.Id_DVD); for (int i = 0; i < lDVDEntries.Count; i++) { if (lDVDEntries[i].Name == TmpDVD.D_Nom) { C_T_Emprunt TmpEmprunt = new G_T_Emprunt(sChConn).Lire_ID((int)TmpQuantite.Id_Emprunt); switch (Filtre) { default: case 0: // Tous lDVDEntries[i].Entries++; Trouve = true; break; case 1: // mois if (TmpEmprunt.E_Emprunt >= DateTime.Today.AddMonths(-1)) { lDVDEntries[i].Entries++; } Trouve = true; break; case 2: // Semaine if (TmpEmprunt.E_Emprunt >= DateTime.Today.AddDays(-7)) { lDVDEntries[i].Entries++; } Trouve = true; break; case 3: // Ajd if (TmpEmprunt.E_Emprunt >= DateTime.Today) { lDVDEntries[i].Entries++; } Trouve = true; break; } break; } } if (!Trouve) { //lDVDEntries.Add(new NameAndEntries(TmpDVD.D_Nom)); C_T_Emprunt TmpEmprunt = new G_T_Emprunt(sChConn).Lire_ID((int)TmpQuantite.Id_Emprunt); switch (Filtre) { default: case 0: // Tous lDVDEntries.Add(new NameAndEntries(TmpDVD.D_Nom)); Trouve = true; break; case 1: // mois if (TmpEmprunt.E_Emprunt >= DateTime.Today.AddMonths(-1)) { lDVDEntries.Add(new NameAndEntries(TmpDVD.D_Nom)); } Trouve = true; break; case 2: // Semaine if (TmpEmprunt.E_Emprunt >= DateTime.Today.AddDays(-7)) { lDVDEntries.Add(new NameAndEntries(TmpDVD.D_Nom)); } Trouve = true; break; case 3: // Ajd if (TmpEmprunt.E_Emprunt >= DateTime.Today) { lDVDEntries.Add(new NameAndEntries(TmpDVD.D_Nom)); } Trouve = true; break; } } } lDVDEntries = lDVDEntries.OrderBy(x => x.Entries).ToList(); for (int i = lDVDEntries.Count - 1; i >= 0; i--) // Liste ordonnée par ordre croissant => On la charge à l'envers { lbTendances.Items.Add(lDVDEntries[i].Name + " (" + lDVDEntries[i].Entries.ToString() + " emprunts)"); } }