Exemplo n.º 1
0
        /// <summary>
        /// Recalcul la solde d'un compte après l'ajout ou la modification d'un mouvement
        /// </summary>
        /// <param name="mouvement">le mouvement (null pour une suppresion de mouvement)</param>
        /// <param name="oldMouvement">l'ancien mouvement (null si ajout)</param>
        /// <returns>la task</returns>
        private async Task CalculerSolde(Mouvement mouvement, Mouvement oldMouvement)
        {
            var idCompte = mouvement?.IdCompte ?? oldMouvement.IdCompte;
            var compte   = (await Bdd.Connection.Table <Compte>().Where(x => x.Id == idCompte).FirstOrDefaultAsync());

            //si c'est une modification, on efface la prise en compte de l'ancienne valeur
            if (oldMouvement != null)
            {
                if (oldMouvement.Credit > 0)
                {
                    compte.Solde -= oldMouvement.Credit;
                }
                else
                {
                    compte.Solde += oldMouvement.Debit;
                }
            }

            if (mouvement != null)
            {
                //ajout de la nouvelle valeur
                if (mouvement.Credit > 0)
                {
                    compte.Solde += mouvement.Credit;
                }
                else
                {
                    compte.Solde -= mouvement.Debit;
                }
            }

            await Bdd.UpdateDonnee(compte);

            await RoamingCompteBusiness.ModifierCompte(compte);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Carge la liste des compte pour un virement
        /// </summary>
        /// <returns>la task</returns>
        private async Task GenereComptesVirement()
        {
            var tmp = new List <GroupInfoList <Compte> >();

            _listeCompte = (App.ModeApp == AppareilEnum.ModeAppareilPrincipal)
                ? await _banqueBusiness.GetListeBanqueCompteVirement(Compte.Id)
                : await RoamingCompteBusiness.GetListeBanqueCompteVirement(Compte.Id);

            var groupeb = new GroupInfoList <Compte> {
                Key = ResourceLoader.GetForCurrentView().GetString("AucunText")
            };

            groupeb.Add(new Compte {
                Id = 0, Nom = ResourceLoader.GetForCurrentView().GetString("AucunText")
            });
            tmp.Add(groupeb);

            foreach (var banque in _listeCompte)
            {
                var groupe = new GroupInfoList <Compte> {
                    Key = banque.Nom
                };
                groupe.AddRange(banque.ListeCompte);
                if (groupe.Count > 0)
                {
                    tmp.Add(groupe);
                }
            }

            ListeCompteVirement.Source = tmp;
        }
Exemplo n.º 3
0
 /// <summary>
 /// Et à jour le solde du compte affiché
 /// </summary>
 /// <returns></returns>
 public async Task UpdateSoldeCompte()
 {
     if (App.ModeApp == AppareilEnum.ModeAppareilPrincipal)
     {
         Compte = await _compteBusiness.GetCompte(Compte.Id);
     }
     else
     {
         Compte = await RoamingCompteBusiness.GetCompte(Compte.Id);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Met à jour le nom et la devise d'un compte
        /// </summary>
        /// <param name="compte">le compte à mettre à jour</param>
        /// <returns>la task</returns>
        public async Task ModifierCompte(Compte compte)
        {
            //mise à jour du compte
            var res = await Bdd.Connection.Table <Compte>().Where(x => x.Id == compte.Id).FirstOrDefaultAsync();

            res.IdDevise = compte.IdDevise;
            res.Nom      = compte.Nom;
            await Bdd.UpdateDonnee(res);

            await RoamingCompteBusiness.ModifierCompte(compte);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Réinitialise l'application et fait retourner sur la page d'acceuil
        /// </summary>
        /// <param name="reinitRoaming">indique si les données roaming doivent être effacé</param>
        public async Task ReinitAppli(bool reinitRoaming)
        {
            await _applicationBusiness.DeleteDatabase();

            if (reinitRoaming)
            {
                await RoamingCompteBusiness.DeleteRoaming();

                await RoamingMouvementBusiness.DeleteRoaming();
            }
            App.OpenDemarrageView();
        }
Exemplo n.º 6
0
        /// <summary>
        /// Recalcul les infos d'espace pour le romaing
        /// </summary>
        private async Task CalculerEspaceDispo()
        {
            var espaceTotal = await RoamingUtils.GetEspaceRoamingOccupePourcent();

            EspaceDispoTextBlock.Text       = ResourceLoader.GetForCurrentView().GetString("EspaceDispo") + " " + espaceTotal + " %";
            EspaceDispoTextBlock.Foreground = espaceTotal >= ContexteStatic.EspaceMaxAutoriseRoaming ? new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)) : new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
            EspaceCompteOccupe.Text         = await RoamingCompteBusiness.GetEspaceFichierOccupePourcent() + " %";

            EspaceMouvementOccupe.Text = await RoamingMouvementBusiness.GetEspaceFichierOccupePourcent() + " %";

            EcheancierCheckBox.Content = await RoamingEcheancierBusiness.GetEspaceFichierOccupePourcent() + " %";

            CategorieCheckBox.Content = await RoamingCategorieBusiness.GetEspaceFichierOccupePourcent() + " %";
        }
Exemplo n.º 7
0
        /// <summary>
        /// Ajoute un compte en base
        /// </summary>
        /// <param name="compte">le compte à ajouter</param>
        /// <returns>la task</returns>
        public async Task <int> AjouterCompte(Compte compte)
        {
            var compteId = await Bdd.Connection.Table <Compte>().OrderByDescending(x => x.Id).FirstOrDefaultAsync();

            var id = 1;

            if (compteId != null)
            {
                id = compteId.Id + 1;
            }
            compte.Id = id;
            await Bdd.AjouterDonnee(compte);

            await RoamingCompteBusiness.AjouterCompte(compte);

            return(compte.Id);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Supprime une banque de la base de donnée et du roaming
        /// </summary>
        /// <param name="banque">la banque à supprimer</param>
        /// <returns>la task</returns>
        public async Task SupprimerBanque(Banque banque)
        {
            var comptes = await Bdd.Connection.Table <Compte>().Where(x => x.IdBanque == banque.Id).ToListAsync();

            var compteBusiness = new CompteBusiness();
            await compteBusiness.Initialization;

            foreach (var compte in comptes)
            {
                await compteBusiness.SupprimerCompte(compte);
            }

            if (await Bdd.DeleteDonnee(banque) > 0)
            {
                await RoamingCompteBusiness.SupprimerBanque(banque);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Ajoute une banque en base
        /// </summary>
        /// <param name="banque">la banque à ajouter</param>
        /// <returns>la task</returns>
        public async Task <Banque> AjouterBanque(Banque banque)
        {
            var banqueId = await Bdd.Connection.Table <Banque>().OrderByDescending(x => x.Id).FirstOrDefaultAsync();

            var id = 1;

            if (banqueId != null)
            {
                id = banqueId.Id + 1;
            }
            banque.Id = id;
            await Bdd.AjouterDonnee(banque);

            await RoamingCompteBusiness.AjouterBanque(banque);

            return(banque);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Supprimer un compte de la base puis du roaming
        /// </summary>
        /// <param name="compte">le compte à supprimer</param>
        /// <returns>la task</returns>
        public async Task SupprimerCompte(Compte compte)
        {
            if (await Bdd.DeleteDonnee(compte) > 0)
            {
                //supression du compte
                await SupprimerMouvementsCompte(compte.Id);

                //supression des échéanciers lié au compte
                var echeancierBusiness = new EcheancierBusiness();
                await echeancierBusiness.Initialization;
                var listeEcheancier =
                    await
                    Bdd.Connection.Table <Echeancier>()
                    .Where(x => x.IdCompte == compte.Id || x.IdCompteVirement == compte.Id).ToListAsync();

                await echeancierBusiness.SupprimerEcheancier(listeEcheancier);

                //supression en roaming
                await RoamingCompteBusiness.SupprimerCompte(compte);
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Recalcul le solde de chaques comptes
        /// </summary>
        /// <param name="listeIdMouvement">la liste des mouvements pour le recalcul</param>
        /// <returns>la task</returns>
        public async Task RecalculSoldesComptes(List <int> listeIdMouvement)
        {
            foreach (var idMouvement in listeIdMouvement)
            {
                var mouvement = await Bdd.Connection.Table <Mouvement>().Where(x => x.Id == idMouvement).FirstOrDefaultAsync();

                var compte = (await Bdd.Connection.Table <Compte>().Where(x => x.Id == mouvement.IdCompte).FirstOrDefaultAsync());

                if (mouvement.Credit > 0)
                {
                    compte.Solde += mouvement.Credit;
                }
                else
                {
                    compte.Solde -= mouvement.Debit;
                }

                await Bdd.UpdateDonnee(compte);

                await RoamingCompteBusiness.ModifierCompte(compte);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Modifie une banque en base et en romaing ainsi que la liste des comptes pour les devises
        /// </summary>
        /// <param name="banque">la banque à modifier</param>
        /// <returns>la task</returns>
        public async Task ModifierBanque(Banque banque)
        {
            //mise à jour de la banque
            var res = await Bdd.Connection.Table <Banque>().Where(x => x.Id == banque.Id).FirstOrDefaultAsync();

            res.IdDevise = banque.IdDevise;
            res.Nom      = banque.Nom;
            await Bdd.UpdateDonnee(res);

            await RoamingCompteBusiness.ModifierBanque(banque);

            //mise à jour de la devise de chaque comptes
            var resCompte = await Bdd.Connection.Table <Compte>().Where(x => x.IdBanque == banque.Id).ToListAsync();

            foreach (var compte in resCompte)
            {
                compte.IdDevise = banque.IdDevise;
                await Bdd.UpdateDonnee(compte);

                await RoamingCompteBusiness.ModifierCompte(compte);
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Efface toute les données devant être restauré
        /// </summary>
        /// <returns>la task</returns>
        public async Task DeleteForRestauration()
        {
            await Bdd.Connection.DropTableAsync <Banque>();

            await Bdd.Connection.DropTableAsync <Compte>();

            await Bdd.Connection.DropTableAsync <Echeancier>();

            await Bdd.Connection.DropTableAsync <Mouvement>();

            await Bdd.Connection.DropTableAsync <Categorie>();

            await Bdd.Connection.DropTableAsync <SousCategorie>();

            await Bdd.Connection.DropTableAsync <SoldeInitial>();

            await Bdd.Connection.CreateTableAsync <Banque>();

            await Bdd.Connection.CreateTableAsync <Compte>();

            await Bdd.Connection.CreateTableAsync <Echeancier>();

            await Bdd.Connection.CreateTableAsync <Mouvement>();

            await Bdd.Connection.CreateTableAsync <Categorie>();

            await Bdd.Connection.CreateTableAsync <SousCategorie>();

            await Bdd.Connection.CreateTableAsync <SoldeInitial>();

            await RoamingCategorieBusiness.DeleteRoaming();

            await RoamingCompteBusiness.DeleteRoaming();

            await RoamingEcheancierBusiness.DeleteRoaming();

            await RoamingMouvementBusiness.DeleteRoaming();
        }
Exemplo n.º 14
0
        public sealed override async Task InitializeAsync()
        {
            _compteBusiness = new CompteBusiness();
            await _compteBusiness.Initialization;

            _banqueBusiness = new BanqueBusiness();
            await _banqueBusiness.Initialization;

            ListeBanque = (App.ModeApp.Equals(AppareilEnum.ModeAppareilPrincipal))? await _compteBusiness.GetResumeCompte(): await RoamingCompteBusiness.GetListeBanques();

            //calcul des sommes de chaque banque et du total
            foreach (var banque in ListeBanque)
            {
                var somme = banque.ListeCompte.Sum(compte => compte.Solde);
                banque.SoldeBanque = StringUtils.SeparerNombreEspace(somme.ToString(CultureInfo.InvariantCulture)) + " " + DeviseUtils.GetDevise(banque.IdDevise).Signe;
            }
            Visible = App.ModeApp.Equals(AppareilEnum.ModeAppareilPrincipal);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Ajoute un compte provenant des données de restauration
        /// </summary>
        /// <param name="compte">le compte à ajouter</param>
        /// <returns>la task</returns>
        public async Task AjouterCompteFmRestauration(Compte compte)
        {
            await Bdd.AjouterDonnee(compte);

            await RoamingCompteBusiness.AjouterCompte(compte);
        }
Exemplo n.º 16
0
 /// <summary>
 /// Vérifie si des comptes existent déjà
 /// </summary>
 /// <returns></returns>
 public async Task <bool> VerifCompteExistant()
 {
     return((await RoamingCompteBusiness.GetListeBanques()).Count > 0);
 }
Exemplo n.º 17
0
        /// <summary>
        /// Ajoute une banque en base
        /// </summary>
        /// <param name="banque">la banque à ajouter</param>
        /// <returns>la task</returns>
        public async Task AjouterBanqueFmRestauration(Banque banque)
        {
            await Bdd.AjouterDonnee(banque);

            await RoamingCompteBusiness.AjouterBanque(banque);
        }
Exemplo n.º 18
0
        /// <summary>
        /// Créer la base de donnée à partir des données présentes dans le fihier Roaming
        /// </summary>
        /// <returns>las task</returns>
        public async Task CreerBaseDeDonneeFromRoaming(AppareilEnum appareil)
        {
            //creer la base
            await CreerBase(appareil);

            if (appareil == AppareilEnum.ModeAppareilPrincipal)
            {
                //ajout des banques et des comptes
                var listeBanques = await RoamingCompteBusiness.GetListeBanques();

                foreach (var banque in listeBanques)
                {
                    // ajout de la banque
                    var banqueId = await Bdd.Connection.Table <Banque>().OrderByDescending(x => x.Id).FirstOrDefaultAsync();

                    var idbanque = 1;
                    if (banqueId != null)
                    {
                        idbanque = banqueId.Id + 1;
                    }
                    banque.Id = idbanque;
                    await Bdd.AjouterDonnee(banque);

                    //ajout des comtpes
                    foreach (var compte in banque.ListeCompte)
                    {
                        var compteId = await Bdd.Connection.Table <Compte>().OrderByDescending(x => x.Id).FirstOrDefaultAsync();

                        var id = 1;
                        if (compteId != null)
                        {
                            id = compteId.Id + 1;
                        }
                        compte.Id       = id;
                        compte.IdBanque = banque.Id;
                        await Bdd.AjouterDonnee(compte);
                    }
                }

                //Ajout des échéanciers
                var listeEcheancier = await RoamingEcheancierBusiness.GetAllEcheancier();

                foreach (var echeancier in listeEcheancier)
                {
                    await Bdd.AjouterDonnee(echeancier);
                }

                //ajout des catégories perso
                var listeCategorie = await RoamingCategorieBusiness.GetCategorieRoaming();

                foreach (var category in listeCategorie)
                {
                    await Bdd.AjouterDonnee(category);
                }

                var listeSousCategorie = await RoamingCategorieBusiness.GetSousCategorieRoaming();

                foreach (var sousCategory in listeSousCategorie)
                {
                    await Bdd.AjouterDonnee(sousCategory);
                }
            }
        }