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";
                 }
             }
         }
     }
 }
Esempio n. 2
0
        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";
            }
        }
Esempio n. 3
0
        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)");
            }
        }