/// <summary> /// Retourne une liste de mouvement /// </summary> /// <param name="idCompte">l'id du compte dont on cherche les mouvements</param> /// <param name="page">info pour la limit</param> /// <param name="nbOccurences">info pour le nombre d'occurences à retourner</param> /// <param name="dateLimiteSoldeCompte">la date limite de récupération des mouvements</param> /// <param name="listeRajout">Une liste de mouvements à rajouter à la liste</param> /// <returns>la liste de mouvements</returns> public async Task <List <Mouvement> > GetListeMouvement(int idCompte, int page, int nbOccurences, DateTime dateLimiteSoldeCompte, List <Mouvement> listeRajout) { var devise = DeviseUtils.GetDiminutifDevise((await Bdd.Connection.Table <Compte>().Where(x => x.Id == idCompte).FirstOrDefaultAsync()).IdDevise); var resultBdd = await Bdd.Connection.Table <Mouvement>().Where(x => x.IdCompte == idCompte && x.Date <= dateLimiteSoldeCompte).OrderBy(x => x.Date).ToListAsync(); if (listeRajout != null && listeRajout.Any()) { resultBdd.AddRange(listeRajout); } var retour = resultBdd.Where(x => x.IdCompte == idCompte && x.Date <= dateLimiteSoldeCompte) .OrderBy(x => x.Date) .Skip((page - 1) * nbOccurences) .Take(nbOccurences) .ToList(); foreach (var mouv in retour) { mouv.MouvementChiffre = ((mouv.Credit > 0) ? "+" + mouv.Credit : "-" + mouv.Debit) + " " + devise; mouv.Type = ContexteAppli.ListeCategoriesMouvement.SelectMany( varA => varA.SousCategorieList.Where( varB => varB.Id == mouv.IdType && varB.IsSousCategPerso == mouv.IsTypePerso)) .FirstOrDefault(); } resultBdd.Clear(); return(retour); }
/// <summary> /// Converti les propriétés mmonaieA en monnaieB avec les devises de sélectionnées /// </summary> public void Convert() { if (MonnaieA != null) { MonnaieB = DeviseUtils.ConvertisseurMonnaie(SelectedDeviseA.Id, SelectedDeviseB.Id, MonnaieA.Value); } }
/// <summary> /// Retourne un compte de la base à partir de son id /// </summary> /// <param name="idCompte">l'id du compte</param> /// <returns>le compte</returns> public async Task <Compte> GetCompte(int idCompte) { var compte = await Bdd.Connection.Table <Compte>().Where(x => x.Id == idCompte).FirstOrDefaultAsync(); compte.DeviseToAffiche = DeviseUtils.GetDiminutifDevise(compte.IdDevise); compte.Solde = Math.Round(compte.Solde, 2); return(compte); }
private void Page_Loaded(object sender, RoutedEventArgs e) { if (_info.Mode == ModeOuvertureGestionCompteBanqueEnum.OuvertureAjouterBanque) { PaysComboBox.SelectedItem = DeviseUtils.GetPays("FR"); DeviseComboBox.SelectedIndex = 0; } }
/// <summary> /// Retourne la devise d'un compte /// </summary> /// <param name="idCompte">l'id du compte</param> /// <returns>la devise</returns> public static async Task <string> GetDevise(int idCompte) { await DemarrageRoaming(); var t = DeviseUtils.GetDiminutifDevise(_roamingCompte.ListeBanque.SelectMany( banque => banque.ListeCompte.Where(compte => compte.Id == idCompte)).FirstOrDefault().IdDevise); return(t); }
/// <summary> /// Change la langue de l'application /// </summary> /// <param name="langue">la nouvelle langue</param> public async Task ChangeLangueApplication(ListeLangues.LanguesStruct langue) { Strings.ListeLangues.ChangeLangueAppli(langue); await _applicationBusiness.ChangeIdLangue(langue); DeviseUtils.GeneratePays(); DeviseUtils.GenerateDevise(); await ContexteAppli.GenerateCategorieMouvement(); }
/// <summary> /// Retourne un compte contenu en roaming à partir de son id /// </summary> /// <param name="idCompte">l'id du compte</param> /// <returns>le compte</returns> public static async Task <Compte> GetCompte(int idCompte) { await DemarrageRoaming(); var compteRetour = _roamingCompte.ListeBanque.SelectMany( banque => banque.ListeCompte.Where(compte => compte.Id == idCompte)).FirstOrDefault(); compteRetour.DeviseToAffiche = DeviseUtils.GetDiminutifDevise(compteRetour.IdDevise); return(compteRetour); }
/// <summary> /// Retourne la liste des banques /// </summary> /// <returns></returns> public static async Task <List <Banque> > GetListeBanques() { await DemarrageRoaming(); foreach (var compte in _roamingCompte.ListeBanque.SelectMany(banque => banque.ListeCompte)) { compte.DeviseToAffiche = DeviseUtils.GetDiminutifDevise(compte.IdDevise); } return(_roamingCompte.ListeBanque); }
public override async sealed Task InitializeAsync() { ListePaysA = new ObservableCollection <Pays>(DeviseUtils.ListePays); ListePaysB = new ObservableCollection <Pays>(DeviseUtils.ListePays); SelectedPaysA = DeviseUtils.GetPays("FR"); SelectedPaysB = DeviseUtils.GetPays("FR"); ListeDeviseA = new ObservableCollection <Devise>(SelectedPaysA.Devises); ListeDeviseB = new ObservableCollection <Devise>(SelectedPaysB.Devises); SelectedDeviseA = SelectedPaysA.Devises[0]; SelectedDeviseB = SelectedPaysA.Devises[0]; MonnaieA = 0.0; MonnaieB = 0.0; }
public override sealed async Task InitializeAsync() { _compteBusiness = new CompteBusiness(); await _compteBusiness.Initialization; _banqueBusiness = new BanqueBusiness(); await _banqueBusiness.Initialization; ListeDevise = new ObservableCollection <Devise>(DeviseUtils.ListeDevises); ListePays = new ObservableCollection <Pays>(DeviseUtils.ListePays); SelectedPays = DeviseUtils.GetPays("FR"); SelectedDevise = DeviseUtils.GetDevise(DeviseUtils.IdEuro); }
/// <summary> /// Permet d'obtenir un résumé des comptes de chaque banque pour la page d'acceuil /// </summary> public async Task <List <Banque> > GetResumeCompte() { var listeBanque = await Bdd.Connection.Table <Banque>().ToListAsync(); foreach (var banque in listeBanque) { banque.ListeCompte = await Bdd.Connection.Table <Compte>().Where(x => x.IdBanque == banque.Id).ToListAsync(); foreach (var compte in banque.ListeCompte) { compte.DeviseToAffiche = DeviseUtils.GetDiminutifDevise(compte.IdDevise); } } return(listeBanque); }
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used such as when the application is launched to open a specific file. /// </summary> /// <param name="e">Details about the launch request and process.</param> protected override async void OnLaunched(LaunchActivatedEventArgs e) { #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { DebugSettings.EnableFrameRateCounter = true; } #endif var rootFrame = Window.Current.Content as Frame; if (rootFrame == null) { rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; rootFrame.Navigated += OnNavigated; Window.Current.Content = rootFrame; } SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested; SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = rootFrame.CanGoBack ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed; if (rootFrame.Content == null) { //Controle de l'éxistence de la base de donnée pour choisir quel mode de démarrage var sqlite = await ComSqlite.GetComSqlite(); var dbExist = await sqlite.CheckDbExist(); //Génération des données Utils DeviseUtils.GeneratePays(); DeviseUtils.GenerateDevise(); if (dbExist) { OpenShell(); } else { OpenDemarrageView(); } } Window.Current.Activate(); }
private async void ButtonAppPrincipal_Click(object sender, RoutedEventArgs e) { ButtonAppPrincipal.IsEnabled = false; ButtonAppSecondaire.IsEnabled = false; if (!await ViewModel.VerifCompteExistant()) { PaysComboBox.SelectedItem = DeviseUtils.GetPays("FR"); DeviseComboBox.SelectedIndex = 0; ChoixAppareilGrid.Visibility = Visibility.Collapsed; DonneesBanques.Visibility = Visibility.Visible; } else { await ViewModel.CreerAppareilPrincipal(false); App.OpenShell(); } }
/// <summary> /// Permet d'obtenir la liste des échéancier en base /// </summary> /// <returns>la liste des échéancier</returns> public async Task <List <Echeancier> > GetEcheancier() { var list = await Bdd.Connection.Table <Echeancier>().ToListAsync(); foreach (var echeancier in list) { var devise = DeviseUtils.GetDiminutifDevise((await Bdd.Connection.Table <Compte>().Where(x => x.Id == echeancier.IdCompte).FirstOrDefaultAsync()).IdDevise); echeancier.MouvementChiffre = ((echeancier.Credit > 0) ? "+" + echeancier.Credit : "-" + echeancier.Debit) + " " + devise; echeancier.Type = ContexteAppli.ListeCategoriesMouvement.SelectMany( varA => varA.SousCategorieList.Where( varB => varB.Id == echeancier.IdType && varB.IsSousCategPerso == echeancier.IsTypePerso)) .FirstOrDefault(); } return(list); }
/// <summary> /// Sauvegarde un virement /// </summary> /// <param name="mouvement">le mouvement d'origine du virement</param> /// <param name="idCompte">l'id du compte sur lequel s'effectue sur le virement</param> /// <returns>la task</returns> public static async Task SaveVirement(Mouvement mouvement, int idCompte) { await DemarrageRoaming(); var create = mouvement.Id == 0; Mouvement mouvementA; Mouvement mouvementB; //mise à jour if (!create) { await SupprimerMouvementRoaming(mouvement.Id); mouvement.Id = 0; } mouvementA = mouvement; var idA = await AjouterMouvementRoaming(mouvementA); var idDeviseA = (await RoamingCompteBusiness.GetCompte(mouvementA.IdCompte)).IdDevise; var idDeviseB = (await RoamingCompteBusiness.GetCompte(idCompte)).IdDevise; mouvementB = new Mouvement { Id = 0, Commentaire = mouvementA.Commentaire, Credit = DeviseUtils.ConvertisseurMonnaie(idDeviseA, idDeviseB, mouvementA.Debit), Debit = DeviseUtils.ConvertisseurMonnaie(idDeviseA, idDeviseB, mouvementA.Credit), Date = mouvementA.Date, IdCompte = idCompte, ModeMouvement = mouvementA.ModeMouvement, Numero = mouvementA.Numero, IdType = mouvementA.IdType, IsTypePerso = mouvementA.IsTypePerso, IdMouvementVirement = idA }; var idB = await AjouterMouvementRoaming(mouvementB); mouvementA.Id = idA; mouvementA.IdMouvementVirement = idB; await ModifierMouvementRoaming(mouvementA); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); TitreGrid.Background = App.AppShell.GetCouleur(); var param = (PassageInfoGestionCompteBanque)e.Parameter; ViewModel = new GestionCompteBanqueViewModel(param.Mode); await ViewModel.Initialization; if (param.Mode == ModeOuvertureGestionCompteBanqueEnum.OuvertureAjouterBanque) { InfoPageTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("AjouterBanqueText"); ValiderButton.Content = ResourceLoader.GetForCurrentView().GetString("AjouterText"); TitreTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("AjouterBanqueText"); SoldeTextBlock.Visibility = Visibility.Collapsed; SoldeGrid.Visibility = Visibility.Collapsed; } if (param.Mode == ModeOuvertureGestionCompteBanqueEnum.OuvertureModifierBanque) { InfoPageTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("ModifierBanqueText"); TitreTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("ModifierBanqueText"); ValiderButton.Content = ResourceLoader.GetForCurrentView().GetString("ModifierText"); ViewModel.Nom = param.BanqueInfo.Nom; ViewModel.IdElement = param.BanqueInfo.Id; SoldeTextBlock.Visibility = Visibility.Collapsed; SoldeGrid.Visibility = Visibility.Collapsed; DeviseTextBlock.Visibility = Visibility.Collapsed; DeviseComboBox.Visibility = Visibility.Collapsed; PaysComboBox.Visibility = Visibility.Collapsed; PaysTextBlock.Visibility = Visibility.Collapsed; ViewModel.SelectedDevise = DeviseUtils.GetDevise(param.BanqueInfo.IdDevise); } if (param.Mode == ModeOuvertureGestionCompteBanqueEnum.OuvertureAjouterCompte) { InfoPageTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("AjouterCompteText"); TitreTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("AjouterCompteText"); ValiderButton.Content = ResourceLoader.GetForCurrentView().GetString("AjouterText"); DeviseTextBlock.Visibility = Visibility.Collapsed; DeviseComboBox.Visibility = Visibility.Collapsed; PaysComboBox.Visibility = Visibility.Collapsed; PaysTextBlock.Visibility = Visibility.Collapsed; ViewModel.IdParent = param.BanqueInfo.Id; ViewModel.SelectedDevise = DeviseUtils.GetDevise(param.BanqueInfo.IdDevise); } if (param.Mode == ModeOuvertureGestionCompteBanqueEnum.OuvertureModifierCompte) { InfoPageTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("ModifierCompteText"); TitreTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("ModifierCompteText"); ValiderButton.Content = ResourceLoader.GetForCurrentView().GetString("ModifierText"); DeviseTextBlock.Visibility = Visibility.Collapsed; DeviseComboBox.Visibility = Visibility.Collapsed; PaysComboBox.Visibility = Visibility.Collapsed; PaysTextBlock.Visibility = Visibility.Collapsed; SoldeTextBlock.Visibility = Visibility.Collapsed; SoldeGrid.Visibility = Visibility.Collapsed; ViewModel.Nom = param.CompteInfo.Nom; ViewModel.IdElement = param.CompteInfo.Id; ViewModel.IdParent = param.CompteInfo.IdBanque; ViewModel.SelectedDevise = DeviseUtils.GetDevise(param.CompteInfo.IdDevise); } _info = param; _isLoad = true; }
/// <summary> /// Sauvegarde un virement /// </summary> /// <param name="mouvement">le mouvement d'origine du virement</param> /// <param name="idCompte">l'id du compte sur lequel s'effectue sur le virement</param> /// <returns>la task</returns> public async Task SaveVirement(Mouvement mouvement, int idCompte) { var create = mouvement.Id == 0; Mouvement mouvementA; Mouvement mouvementB; //mise à jour if (!create) { var mouvementAOld = await Bdd.Connection.Table <Mouvement>().Where(x => x.Id == mouvement.Id).FirstOrDefaultAsync(); var mouvementBOld = await Bdd.Connection.Table <Mouvement>() .Where(x => x.Id == mouvementAOld.IdMouvementVirement) .FirstOrDefaultAsync(); var idDeviseA = (await Bdd.Connection.Table <Compte>().Where(x => x.Id == mouvementAOld.IdCompte).FirstOrDefaultAsync()) .IdDevise; var idDeviseB = (await Bdd.Connection.Table <Compte>().Where(x => x.Id == idCompte).FirstOrDefaultAsync()) .IdDevise; await Bdd.DeleteDonnee(mouvementBOld); await CalculerSolde(null, mouvementBOld); mouvementA = mouvement; mouvementB = new Mouvement { Id = 0, Commentaire = mouvementA.Commentaire, Credit = DeviseUtils.ConvertisseurMonnaie(idDeviseA, idDeviseB, mouvementA.Debit), Debit = DeviseUtils.ConvertisseurMonnaie(idDeviseA, idDeviseB, mouvementA.Credit), Date = mouvementA.Date, IdCompte = idCompte, ModeMouvement = mouvementA.ModeMouvement, Numero = mouvementA.Numero, IdType = mouvementA.IdType, IsTypePerso = mouvementA.IsTypePerso }; var idMax = 0; var residR = (await Bdd.Connection.Table <Mouvement>().OrderByDescending(x => x.Id).FirstOrDefaultAsync()); if (residR != null) { idMax = residR.Id; } var mouvementBId = idMax + 1; mouvementA.IdMouvementVirement = mouvementBId; mouvementB.Id = mouvementBId; mouvementB.IdMouvementVirement = mouvementA.Id; await Bdd.UpdateDonnee(mouvementA); await CalculerSolde(mouvementA, mouvementAOld); await Bdd.AjouterDonnee(mouvementB); await CalculerSolde(mouvementB, null); } else //création { mouvementA = mouvement; var idDeviseA = (await Bdd.Connection.Table <Compte>().Where(x => x.Id == mouvementA.IdCompte).FirstOrDefaultAsync()) .IdDevise; var idDeviseB = (await Bdd.Connection.Table <Compte>().Where(x => x.Id == idCompte).FirstOrDefaultAsync()) .IdDevise; mouvementB = new Mouvement { Id = 0, Commentaire = mouvementA.Commentaire, Credit = DeviseUtils.ConvertisseurMonnaie(idDeviseA, idDeviseB, mouvementA.Debit), Debit = DeviseUtils.ConvertisseurMonnaie(idDeviseA, idDeviseB, mouvementA.Credit), Date = mouvementA.Date, IdCompte = idCompte, ModeMouvement = mouvementA.ModeMouvement, Numero = mouvementA.Numero, IdType = mouvementA.IdType, IsTypePerso = mouvementA.IsTypePerso }; var idMax = 0; var residR = (await Bdd.Connection.Table <Mouvement>().OrderByDescending(x => x.Id).FirstOrDefaultAsync()); if (residR != null) { idMax = residR.Id; } var mouvementAId = idMax + 1; var mouvementBId = idMax + 2; mouvementA.Id = mouvementAId; mouvementA.IdMouvementVirement = mouvementBId; mouvementB.Id = mouvementBId; mouvementB.IdMouvementVirement = mouvementAId; await Bdd.AjouterDonnee(mouvementA); await CalculerSolde(mouvementA, null); await Bdd.AjouterDonnee(mouvementB); await CalculerSolde(mouvementB, null); } }
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); }