Пример #1
0
        public override bool Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            while (ListeAchat.Count > 0)
            {
                ListeAchat[0].Supprimer();
            }

            while (ListeHeure.Count > 0)
            {
                ListeHeure[0].Supprimer();
            }

            Chantier.ListePoste.Remove(this);

            Bdd2.Supprimer(this);

            Chantier.CalculerMontant();

            return(true);
        }
Пример #2
0
        public Facture(Devis D)
        {
            Bdd2.Ajouter(this);

            Devis = D;

            int pNo = No;

            int pIndice = 0;

            // On recherche le numero et l'indice de la facture
            if (D.ListeFacture.Count > 0)
            {
                pNo     = D.ListeFacture[0].No;
                pIndice = Math.Max(D.ListeFacture.Max(x => x.Indice) + 1, D.ListeFacture.Count);
            }

            // Si on rajoute une facture, c'est que le devis est au moins validé
            if ((int)Devis.Statut < (int)StatutDevis_e.cValide)
            {
                Devis.Statut = StatutDevis_e.cValide;
            }

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Devis.Client.Societe.PrefixUtilisateurCourant;

            // On met à jour le no et l'indice après l'ajout de l'objet dans la base

            No = pNo; Indice = pIndice;

            MajLigne_Facture();
        }
Пример #3
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            SupprimerListe(_ListeDevis);
            SupprimerListe(_ListeAdresse_Client);

            Societe.ListeClient.Remove(this);

            try
            {
                // Suppression des dossiers s'il sont vide
                DirectoryInfo pDossier = Dossier;
                if (pDossier != null)
                {
                    List <DirectoryInfo> ListeDossier = new List <DirectoryInfo>(pDossier.GetDirectories());
                    List <FileInfo>      ListeFichier = new List <FileInfo>(pDossier.GetFiles());

                    if ((ListeDossier.Count == 0) && (ListeFichier.Count == 0))
                    {
                        Directory.Delete(pDossier.FullName, true);
                    }
                }
            }
            catch { }


            Bdd2.Supprimer <Client>(this);

            return(true);
        }
Пример #4
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            SupprimerListe(_ListeLigneFacture);

            if (Devis != null)
            {
                Devis.ListeFacture.Remove(this);
            }

            if (Devis.Client != null)
            {
                Devis.Client.ListeFacture.Remove(this);
            }

            Bdd2.Supprimer(this);

            if (Devis != null)
            {
                Devis.CalculerFacture();
            }

            return(true);
        }
Пример #5
0
        public Devis(Client C)
        {
            Bdd2.Ajouter(this);

            Client             = C;
            Prefix_Utilisateur = C.Societe.PrefixUtilisateurCourant;
        }
Пример #6
0
        public Adresse_Client(Client C)
        {
            Client = C;
            Bdd2.Ajouter(this);

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Client.Societe.PrefixUtilisateurCourant;
        }
Пример #7
0
        public Client(Societe S)
        {
            Bdd2.Ajouter(this);

            Societe = S;

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Societe.PrefixUtilisateurCourant;
        }
Пример #8
0
        public Heure(Devis D)
        {
            Bdd2.Ajouter(this);

            Devis = D;

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Devis.Client.Societe.PrefixUtilisateurCourant;
        }
Пример #9
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            foreach (Facture F in _ListeFacture)
            {
                Client.ListeFacture.Remove(F);
            }

            SupprimerListe(_ListePoste);
            SupprimerListe(_ListeFacture);
            SupprimerListe(_ListeAchat);
            SupprimerListe(_ListeHeure);

            try
            {
                // Suppression des dossiers s'il sont vide
                DirectoryInfo pDossierIndice = DossierIndice;
                if (pDossierIndice != null)
                {
                    List <DirectoryInfo> ListeDossierIndice = new List <DirectoryInfo>(pDossierIndice.GetDirectories());
                    List <FileInfo>      ListeFichier       = new List <FileInfo>(pDossierIndice.GetFiles());

                    if ((ListeDossierIndice.Count == 0) && (ListeFichier.Count == 1) && (ListeFichier[0].Name == Properties.Settings.Default.NomFichierInfos))
                    {
                        Directory.Delete(pDossierIndice.FullName, true);
                    }

                    DirectoryInfo pDossier = Dossier;
                    if (pDossier != null)
                    {
                        List <DirectoryInfo> ListeDossier = new List <DirectoryInfo>(pDossier.GetDirectories());
                        ListeFichier = new List <FileInfo>(pDossier.GetFiles());
                        if ((ListeDossier.Count == 0) && (ListeFichier.Count == 0))
                        {
                            Directory.Delete(pDossier.FullName);
                        }
                    }
                }
            }
            catch { }

            if (Client != null)
            {
                Client.ListeDevis.Remove(this);
            }

            Bdd2.Supprimer(this);

            return(true);
        }
 private void Enregistrer_Click(object sender, RoutedEventArgs e)
 {
     if (Bdd2.DoitEtreEnregistre)
     {
         Bdd2.Enregistrer();
         xDerniereSvg.Text = "Dernière sauvegarde à " + DateTime.Now.Hour + "h" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
     }
     else
     {
         xDerniereSvg.Text = "Base de donnée à jour";
     }
 }
Пример #11
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            Societe.ListeFournisseur.Remove(this);

            Bdd2.Supprimer(this);

            return(true);
        }
Пример #12
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            Devis.ListeHeure.Remove(this);

            Bdd2.Supprimer <Heure>(this);

            return(true);
        }
Пример #13
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            Societe.ListeUtilisateur.Remove(this);

            Bdd2.Supprimer <Utilisateur>(this);

            return(true);
        }
Пример #14
0
        protected bool SetPropGestion <U, V>(ref U field, U value, V Objet, [CallerMemberName] string propertyName = "")
            where V : ObjetGestion
        {
            var maj = base.SetWpf(ref field, value, propertyName);

            if (maj && EstSvgDansLaBase)
            {
                Bdd2.Maj(Objet, T);
                return(true);
            }

            return(maj);
        }
Пример #15
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            Devis.ListeAchat.Remove(this);
            Devis.CalculerAchat();

            Bdd2.Supprimer <Achat>(this);

            return(true);
        }
Пример #16
0
        private void Afficher_Toutes_Les_Factures_Click(object sender, RoutedEventArgs e)
        {
            Svg_Binding();

            ToggleButton Bt = sender as ToggleButton;

            if (Bt.IsChecked == true)
            {
                xListeFactureClient.ItemsSource = Bdd2.Liste <Facture>();
            }
            else if (Bt.IsChecked == false)
            {
                xListeFactureClient.SetBinding(ListBox.ItemsSourceProperty, FactureExpItem.ParentBindingBase);
            }
        }
Пример #17
0
        public override bool Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            Poste.ListeHeure.Remove(this);

            Bdd2.Supprimer(this);

            Poste.CalculerHeure();

            return(true);
        }
Пример #18
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            if (Client != null)
            {
                Client.ListeAdresse_Client.Remove(this);
            }

            Bdd2.Supprimer <Adresse_Client>(this);

            return(true);
        }
Пример #19
0
        protected bool Set <U, V>(ref U field, U value, V Objet, [CallerMemberName] string propertyName = "")
            where V : ObjetGestion
        {
            if (EqualityComparer <U> .Default.Equals(field, value))
            {
                return(false);
            }

            field = value;
            MajRef();
            OnPropertyChanged(propertyName);
            if (EstSvgDansLaBase)
            {
                Bdd2.Maj(Objet, T);
            }
            return(true);
        }
Пример #20
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            if (Supprimable)
            {
                Societe.ListeFamille.Remove(this);

                Bdd2.Supprimer <Famille>(this);
                return(true);
            }

            return(false);
        }
Пример #21
0
        public void MainWindow_Closing(object sender, CancelEventArgs e)
        {
            MessageBoxResult R = MessageBoxResult.No;

            if (Bdd2.DoitEtreEnregistre)
            {
                R = MessageBox.Show("Voulez vous enregistrer la base ?", "Info", MessageBoxButton.YesNo);
            }

            if (R == MessageBoxResult.Yes)
            {
                Bdd2.Enregistrer();
            }

            Bdd2.Deconnecter();

            WindowParam.SauverParametre(this);
        }
Пример #22
0
        public Achat(Devis D)
        {
            Bdd2.Ajouter(this);

            Devis = D;

            // On initialise le fournisseur
            ListeObservable <Fournisseur> F = Devis.Client.Societe.ListeFournisseur;

            if ((F != null) && (F.Count > 0))
            {
                Fournisseur = F[0];
            }


            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Devis.Client.Societe.PrefixUtilisateurCourant;
        }
Пример #23
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            while (ListePoste.Count > 0)
            {
                ListePoste[0].Supprimer();
            }

            Societe.ListeChantier.Remove(this);

            Bdd2.Supprimer(this);

            return(true);
        }
Пример #24
0
        protected bool SetObjetGestion <U, V>(ref U field, U value, V Objet, [CallerMemberName] string propertyName = "")
            where U : ObjetGestion
            where V : ObjetGestion
        {
            Boolean test = true;

            if ((value == null) || (value != null && !value.EstCharge) || !Objet.EstCharge)
            {
                test = false;
            }

            var maj = base.SetWpf(ref field, value, propertyName);

            if (maj && EstSvgDansLaBase)
            {
                Bdd2.Maj(Objet, T);
            }

            return(test);
        }
Пример #25
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            if (Facture != null)
            {
                Facture.ListeLigneFacture.Remove(this);
            }

            if (Poste != null)
            {
                Poste.ListeLigneFacture.Remove(this);
                Poste.CalculerFacture();
            }

            Bdd2.Supprimer <Ligne_Facture>(this);
            return(true);
        }
Пример #26
0
        public override Boolean Supprimer()
        {
            if (!EstCharge)
            {
                return(false);
            }

            if (Poste != null)
            {
                Poste.ListeLignePoste.Remove(this);
            }

            Bdd2.Supprimer <Ligne_Poste>(this);

            if (Poste != null)
            {
                Poste.Calculer();
            }

            return(true);
        }
Пример #27
0
        private Boolean Start()
        {
            Log.Entete();

            Bdd2.Version(3);

            String        BaseSelectionnee;
            List <String> ListeBase = Bdd2.ListeBase();

            if (ListeBase.Count == 1)
            {
                BaseSelectionnee = ListeBase[0];
            }
            else
            {
                SelectionnerBase Fenetre = new SelectionnerBase(ListeBase);
                Fenetre.ShowDialog();
                BaseSelectionnee = Fenetre.BaseSelectionnee;
            }

            if (!Bdd2.Initialiser(BaseSelectionnee))
            {
                Log.Message("Impossible de se connecter à la base");
                MessageBox.Show("Impossible de se connecter à la base");
                return(false);
            }

            xConnexionCourante.Text = BaseSelectionnee + ", connecté à l'adresse : " + Bdd2.ConnexionCourante;

            pSociete = Bdd2.Liste <Societe>()[0];

            this.DataContext = pSociete;

            TrierListe <Chantier>(xListeChantier);

            _RechercherChantier             = new RechercheTexte <Chantier>(xListeChantier, false);
            xRechercherChantier.DataContext = _RechercherChantier;

            return(true);
        }
Пример #28
0
        protected bool SetObjetGestion <U, V>(ref U field, U value, V Objet, Boolean ForcerUpdate = false, [CallerMemberName] string propertyName = "")
            where U : ObjetGestion
            where V : ObjetGestion
        {
            Boolean test = true;

            if ((value == null) || (value != null && !value.EstCharge) || !Objet.EstCharge)
            {
                test = false;
            }

            if (ForcerUpdate || !EqualityComparer <U> .Default.Equals(field, value))
            {
                field = value;
                MajRef();
                OnPropertyChanged(propertyName);
                if (EstSvgDansLaBase)
                {
                    Bdd2.Maj(Objet, T);
                }
            }

            return(test);
        }
Пример #29
0
        public Ligne_Poste(Poste P)
        {
            Bdd2.Ajouter(this);

            Poste = P;

            // On initialise la famille
            ListeObservable <Famille> F = Poste.Devis.Client.Societe.ListeFamille;

            if ((F != null) && (F.Count > 0))
            {
                Famille = F[0];
            }

            // On rajoute le prefix après pour être sûr qu'il ne sera pas ecrasé par une valeur par defaut
            Prefix_Utilisateur = Poste.Devis.Client.Societe.PrefixUtilisateurCourant;

            No = P.ListeLignePoste.Count + 1;

            Init    = true;
            Famille = F[0];

            Init = true;
        }
Пример #30
0
        public Boolean Analyser(DateTime dateDebut, DateTime dateFin)
        {
            _ListeAnalyseChantier = new ListeObservable <AnalyseChantier>();

            if (dateFin <= dateDebut)
            {
                return(false);
            }

            if ((dateFin - dateDebut).TotalDays < 32)
            {
                _DateValeur = String.Format("{0}", dateDebut.ToString("MMM yy")).UpperCaseFirstCharacter();
            }
            else
            {
                _DateValeur = String.Format("de {0} à {1}", dateDebut.ToString("MMM yy"), dateFin.ToString("MMM yy"));
            }

            var format = "yyyy-MM-dd HH:mm:ss";
            var filtre = String.Format("datevaleur >= '{0}' AND datevaleur < '{1}' ",
                                       dateDebut.ToString(format),
                                       dateFin.ToString(format)
                                       );
            var lstAchat = Bdd2.ListeFiltre <Achat>(filtre);
            var lstHeure = Bdd2.ListeFiltre <Heure>(filtre);

            if ((lstAchat.Count + lstHeure.Count) == 0)
            {
                return(false);
            }

            // Permet de précharger les parents et de limiter le nombre de requetes Sql
            var lstPostes = Bdd2.Parents <Poste, Achat>(lstAchat);

            foreach (var poste in Bdd2.Parents <Poste, Heure>(lstHeure))
            {
                lstPostes.Add(poste);
            }

            Bdd2.Parents <Chantier, Poste>(lstPostes);
            // fin du préchargement

            var dicAnalysePoste = new Dictionary <int, AnalysePoste>();

            foreach (var achat in lstAchat)
            {
                var          pst = achat.Poste;
                AnalysePoste ap;

                if (dicAnalysePoste.ContainsKey(pst.Id))
                {
                    ap = dicAnalysePoste[pst.Id];
                }
                else
                {
                    dicAnalysePoste.Add(pst.Id, ap = new AnalysePoste(pst));
                }

                ap.AjouterAchat(achat);
            }

            foreach (var heure in lstHeure)
            {
                var pst = heure.Poste;;

                AnalysePoste ap;

                if (dicAnalysePoste.ContainsKey(pst.Id))
                {
                    ap = dicAnalysePoste[pst.Id];
                }
                else
                {
                    dicAnalysePoste.Add(pst.Id, ap = new AnalysePoste(pst));
                }

                ap.AjouterHeure(heure);
            }

            var dicAnalyseChantier = new Dictionary <int, AnalyseChantier>();

            foreach (var analysePoste in dicAnalysePoste.Values)
            {
                var cht = analysePoste.Poste.Chantier;

                AnalyseChantier ac;

                if (dicAnalyseChantier.ContainsKey(cht.Id))
                {
                    ac = dicAnalyseChantier[cht.Id];
                }
                else
                {
                    dicAnalyseChantier.Add(cht.Id, ac = new AnalyseChantier(cht));
                }

                analysePoste.AnalyseChantier = ac;
                ac.AjouterAnalysePoste(analysePoste);
            }

            foreach (var analyseChantier in dicAnalyseChantier.Values)
            {
                analyseChantier.AnalysePeriode = this;
                this.AjouterAnalyseChantier(analyseChantier);
            }

            return(true);
        }