private void RemplirListeClients(int ID) { lbClientEmprunt.Items.Clear(); List <C_T_Client> lTmpClient = new G_T_Client(sChConn).Lire("Id_Client"); int i = 0; foreach (C_T_Client TmpClient in lTmpClient) { // On n'ajoute que les clients qui n'ont aucun retard dans a liste d'emprunt if (!new EcranAccueil(sChConn).CalculerRetardCot((DateTime)TmpClient.C_Cotisation) && new EcranAccueil(sChConn).CalculerAmende(TmpClient.Id_Client) == 0) { lbClientEmprunt.Items.Add(TmpClient.C_Nom.ToString() + " " + TmpClient.C_Prenom.ToString() + " (ID=" + TmpClient.Id_Client + ")"); if (TmpClient.Id_Client == ID) { lbClientEmprunt.SetSelected(i, true); } i++; } } }
private void RemplirDonnees() { SelectedDVD = new G_T_DVD(sChConn).Lire_ID(SelectedDVD.Id_DVD); this.Text = "DVD n°" + SelectedDVD.Id_DVD; tbNomFilm.Text = SelectedDVD.D_Nom; tbGenre.Text = SelectedDVD.D_Genre; InternetLink = SelectedDVD.D_Synopsis; nudEmpruntMax.Value = (decimal)SelectedDVD.D_Emprunt_Max; nudAmende_p_j.Value = (decimal)SelectedDVD.D_Amende_p_J; // Acteurs lbActeurs.Items.Clear(); if (!Modifying) // On n'est pas en train de modifier les données => On n'affiche que les acteurs qui jouent dans le film { lActeursActu = new List <string>(); List <C_T_Liste_Acteurs> lTmplActeur = new G_T_Liste_Acteurs(sChConn).Lire("A_Nom"); // Toutes les listes d'acteurs NbrActeurs = 0; foreach (C_T_Liste_Acteurs TmplActeur in lTmplActeur) { if ((int)TmplActeur.Id_DVD == SelectedDVD.Id_DVD) { C_T_Acteur TmpActeur = new G_T_Acteur(sChConn).Lire_ID((int)TmplActeur.Id_Acteur); lbActeurs.Items.Add(TmpActeur.A_Nom + " " + TmpActeur.A_Prenom + " (ID=" + TmpActeur.Id_Acteur + ")"); lActeursActu.Add(TmpActeur.A_Nom + " " + TmpActeur.A_Prenom + " (ID=" + TmpActeur.Id_Acteur + ")"); NbrActeurs++; } } } else // On est en train de modifier les données => Il faut afficher tous les acteurs de la base de données { List <C_T_Acteur> lTmpActeur = new G_T_Acteur(sChConn).Lire("A_Nom"); foreach (C_T_Acteur TmpActeur in lTmpActeur) { string TmpStringActeur = TmpActeur.A_Nom + " " + TmpActeur.A_Prenom + " (ID=" + TmpActeur.Id_Acteur + ")"; lbActeurs.Items.Add(TmpStringActeur); if (lActeursActu != null) { foreach (string Acteur in lActeursActu) { if (Acteur == TmpStringActeur) { lbActeurs.SetSelected(lbActeurs.Items.Count - 1, true); } } } } } //Emprunt actuel et précédents lbClients_precedents.Items.Clear(); List <C_T_Quantite> lTmpQuantite = new G_T_Quantite(sChConn).Lire("Id_Emprunt"); foreach (C_T_Quantite TmpQuantite in lTmpQuantite) { if (TmpQuantite.Id_DVD == SelectedDVD.Id_DVD) { C_T_Emprunt TmpEmprunt = new G_T_Emprunt(sChConn).Lire_ID((int)TmpQuantite.Id_Emprunt); C_T_Client TmpClient = new G_T_Client(sChConn).Lire_ID((int)TmpEmprunt.Id_Client); // On remonte à la source pour récupérer le client if (TmpQuantite.Q_Retour == null) // Le DVD est actuellement emprunté par ce client { tbClient_actuel.Text = TmpClient.C_Nom.ToUpper() + " " + TmpClient.C_Prenom + " (ID=" + TmpClient.Id_Client + ")"; } else { lbClients_precedents.Items.Add(TmpClient.C_Nom.ToUpper() + " " + TmpClient.C_Prenom + " (ID=" + TmpClient.Id_Client + ")"); } } } if (!SelectedDVD.D_Emprunt) { tbClient_actuel.Text = "N/A"; } }
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"; } } } } }