Esempio n. 1
0
        /// <summary>
        /// Modidie un mouvement (prépare les champs
        /// </summary>
        /// <param name="mouvement">le mouvement à modifié </param>
        public async Task ModifierMouvement(Mouvement mouvement)
        {
            IsModif             = true;
            IdMouvementSelect   = mouvement.Id;
            IdMouvementVirement = mouvement.IdMouvementVirement;
            Credit = mouvement.Credit;
            if (mouvement.Debit != 0)
            {
                Debit = mouvement.Debit;
            }
            else
            {
                Debit = null;
            }
            Numero                  = mouvement.Numero;
            DateMouvement           = mouvement.Date;
            Commentaire             = mouvement.Commentaire;
            SelectedTypeMouvement   = TypeMouvementListe[mouvement.ModeMouvement - 1];
            SelectedCategorieFmList = ContexteAppli.ListeCategoriesMouvement.SelectMany(varA => varA.SousCategorieList.Where(varB => varB.Id == mouvement.IdType && varB.IsSousCategPerso == mouvement.IsTypePerso)).FirstOrDefault();
            var idCompteMouvb = (App.ModeApp == AppareilEnum.ModeAppareilPrincipal)
                ? await _mouvementBusiness.GetIdCompteMouvementLieVirement(mouvement.IdMouvementVirement)
                : await RoamingMouvementBusiness.GetIdCompteMouvementLieVirement(mouvement.IdMouvementVirement);

            SelectedCompteVirement = _listeCompte.SelectMany(banque => banque.ListeCompte.Where(compte => compte.Id == idCompteMouvb)).FirstOrDefault();
        }
Esempio n. 2
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();
        }
Esempio n. 3
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() + " %";
        }
Esempio n. 4
0
 /// <summary>
 /// Change l'état passé d'un mouvement
 /// </summary>
 /// <param name="mouvement">le mouvement à modifié</param>
 /// <param name="isPasse">true si le mouvement est passé</param>
 /// <returns></returns>
 public async Task ChangePasseMouvement(Mouvement mouvement, bool isPasse)
 {
     if (mouvement != null)
     {
         if (App.ModeApp == AppareilEnum.ModeAppareilPrincipal)
         {
             await _mouvementBusiness.ChangePasseMouvement(mouvement.Id, isPasse);
         }
         else
         {
             await RoamingMouvementBusiness.ModifierPasseMouvement(mouvement.Id, isPasse);
         }
         ListeMouvements.FirstOrDefault(x => x.Id == mouvement.Id).IsPasse = isPasse;
     }
 }
Esempio n. 5
0
        /// <summary>
        /// Supprime un mouvement de la base
        /// </summary>
        /// <returns></returns>
        public async Task SupprimerMouvement()
        {
            if (IdMouvementSelect != null)
            {
                if (App.ModeApp == AppareilEnum.ModeAppareilPrincipal)
                {
                    await _mouvementBusiness.SupprimerMouvement(IdMouvementSelect.Value);
                }
                else
                {
                    await RoamingMouvementBusiness.SupprimerMouvementRoaming(IdMouvementSelect.Value);
                }
                await RecompterPage(null);
                await UpdateSoldeCompte();

                AnnulerMouvement();
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Charge en base les mouvements en roaming pui les efface
        /// </summary>
        public static async Task ChargerMouvementRoaming()
        {
            var listeMouvement = new List <Mouvement>(await RoamingMouvementBusiness.GetAllMouvement());

            //si des mouvements sont à charge
            if (listeMouvement.Count > 0)
            {
                var mouvementBusiness = new MouvementBusiness();
                await mouvementBusiness.Initialization;

                var listeIdMouvementAjouter = new List <int>();
                var listeIdRoamingIdBdd     = new Dictionary <int, int>();
                foreach (var mouvement in listeMouvement)
                {
                    var idRoaming = mouvement.Id;
                    var id        = await mouvementBusiness.SaveMouvementFmRoaming(mouvement);

                    await RoamingMouvementBusiness.SupprimerMouvementSimpleRoaming(idRoaming);

                    if (mouvement.IdMouvementVirement > 0 && mouvement.IdMouvementVirement > 0 && listeIdRoamingIdBdd.ContainsKey(mouvement.IdMouvementVirement))
                    {
                        await mouvementBusiness.AssocierMouvementVirement(listeIdRoamingIdBdd[mouvement.IdMouvementVirement], id);
                    }


                    if (id != 0)
                    {
                        listeIdMouvementAjouter.Add(id);
                        listeIdRoamingIdBdd.Add(idRoaming, id);
                    }
                }

                //on recalcul les soldes
                if (listeIdMouvementAjouter.Count > 0)
                {
                    await mouvementBusiness.RecalculSoldesComptes(listeIdMouvementAjouter);
                }
            }
        }
Esempio n. 7
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();
        }
Esempio n. 8
0
        /// <summary>
        /// Sauvegarde en base un nouveau mouvement
        /// </summary>
        public async Task SaveMouvement()
        {
            //on remet en positif si un nombre est négatif
            if (Credit != null && Credit != 0 && Credit < 0)
            {
                Credit *= -1;
            }

            if (Debit != null && Debit != 0 && Debit < 0)
            {
                Debit *= -1;
            }

            //ajout du mouvement
            var mouvement = new Mouvement
            {
                Id                  = IdMouvementSelect ?? 0,
                Commentaire         = Commentaire,
                Credit              = Credit ?? 0,
                Debit               = Debit ?? 0,
                Date                = DateMouvement,
                IdCompte            = Compte.Id,
                ModeMouvement       = SelectedTypeMouvement.Id,
                Numero              = Numero,
                IdType              = SelectedCategorieFmList?.Id ?? 0,
                IsTypePerso         = SelectedCategorieFmList?.IsSousCategPerso ?? false,
                IdMouvementVirement = IdMouvementVirement ?? 0,
            };


            if (App.ModeApp == AppareilEnum.ModeAppareilPrincipal)
            {
                if (SelectedCompteVirement != null && SelectedCompteVirement.Id != 0 && SelectedTypeMouvement.Id == 3)
                {
                    await _mouvementBusiness.SaveVirement(mouvement, SelectedCompteVirement.Id);
                }
                else
                {
                    await _mouvementBusiness.SaveMouvement(mouvement);
                }
            }
            else
            {
                if (SelectedCompteVirement != null && SelectedCompteVirement.Id != 0 && SelectedTypeMouvement.Id == 3)
                {
                    await RoamingMouvementBusiness.SaveVirement(mouvement, SelectedCompteVirement.Id);
                }
                else
                {
                    if (IdMouvementSelect == null)
                    {
                        await RoamingMouvementBusiness.AjouterMouvementRoaming(mouvement);
                    }
                    else
                    {
                        await RoamingMouvementBusiness.ModifierMouvementRoaming(mouvement);
                    }
                }
            }
            await RecompterPage(null);
            await UpdateSoldeCompte();

            AnnulerMouvement();
        }
Esempio n. 9
0
        /// <summary>
        /// Permet la navigation entre les pages en chargeant la liste des mouvements d'une page et en modifiant la visibilité des boutons de navigations
        /// </summary>
        /// <param name="page">indique la page sur laquelle naviguer (null si aucune)</param>
        /// <param name="goToPrevious">true pour aller à la page précédente</param>
        /// <param name="goToNext">true pour aller à la page suivante</param>
        /// <param name="listeRajout">une liste de mouvement à rajouter en plus des mouvements en base</param>
        public async Task ChangePage(int?page, bool goToPrevious, bool goToNext, List <Mouvement> listeRajout)
        {
            //Changement de la page page en cours
            if (page != null)
            {
                if (page <= NombrePages && page > 0)
                {
                    PageEnCours = page.Value;
                }
            }
            else
            {
                if (goToPrevious)
                {
                    PageEnCours--;
                }

                if (goToNext)
                {
                    PageEnCours++;
                }
            }

            //Changement de la visibilité
            IsPreviousEnabled = PageEnCours > 1;
            IsNextEnabled     = PageEnCours < NombrePages;

            //Chargement de la liste des mouvements
            ListeMouvements = new ObservableCollection <Mouvement>((App.ModeApp == AppareilEnum.ModeAppareilPrincipal) ?
                                                                   await _mouvementBusiness.GetListeMouvement(Compte.Id, PageEnCours, NbOccurencesMax, DateSoldeCompte, listeRajout) : await RoamingMouvementBusiness.GetMouvementsRoaming(Compte.Id));
        }