/// <summary> /// Enregistre les données du mois. /// </summary> /// <param name="month">Mois à sauvegarder.</param> /// <param name="year">Année à sauvegarder.</param> public void finalizeMonthDialogs(DateTime date) { List<MonthlySave> allMonthlySaves = getMonthlySaves(); if (allMonthlySaves == null) // Si première save { allMonthlySaves = new List<MonthlySave>(); } MonthlySave existingSave = MonthlySave.findMonthlySave(allMonthlySaves, date); if (existingSave == null) // Cas normal : Première sauvegarde pour le mois. { finalizeMonth(allMonthlySaves, date); MessageBox.Show(Const.MSG_FINALIZE, Const.MSG_TITLE_SAVE); } else //Si une save existe { // Si souhaite écraser if (MessageBox.Show(Const.MSG_REPLACE, Const.ERROR, MessageBoxButtons.YesNo) == DialogResult.Yes) { allMonthlySaves.Remove(existingSave); finalizeMonth(allMonthlySaves, date); MessageBox.Show(Const.MSG_REPLACE_YES, Const.MSG_TITLE_REPLACE, MessageBoxButtons.OK); } // Si ne souhaite pas écraser else { MessageBox.Show(Const.MSG_REPLACE_NO, Const.MSG_TITLE_REPLACE, MessageBoxButtons.OK); } } }
public bool deleteMonthlySave(DateTime monthToDelete) { List<MonthlySave> allSaves = getMonthlySaves(); MonthlySave monthlySave = MonthlySave.findMonthlySave(allSaves, formatDate(monthToDelete)); bool ok = allSaves.Remove(monthlySave); Serialise.Save(Const.FILE_MONTHLYRECAP, allSaves); return ok; }
public void finalizeMonth(List <MonthlySave> allMonthlySaves, DateTime date) { MonthlySave montlySave = new MonthlySave(date, data.allBudgets); allMonthlySaves.Add(montlySave); Serialise.Save(Const.FILE_MONTHLYRECAP, allMonthlySaves); saveData(); }
/// <summary> /// Charge les données dans le formulaire principal /// </summary> /// <param name="monthlySave"></param> public void loadMontlySave(DateTime dateToLoad) { MonthlySave monthlySave = MonthlySave.findMonthlySave(getMonthlySaves(), dateToLoad); data.allBudgets.Clear(); data.allAccounts.Clear(); foreach (Budget budget in monthlySave.allBudgets) { data.allBudgets.Add(budget); data.allAccounts.Add(budget.account); } frmMain.loadMonthlySave(monthlySave.Date); }
public List<DataMonthlySave> dataMonthlySave(DateTime monthToLoad) { var allDataMonthlySave = new List<DataMonthlySave>(); foreach (Budget budget in MonthlySave.findMonthlySave(getMonthlySaves(), monthToLoad).allBudgets) { allDataMonthlySave.Add(new DataMonthlySave( accountName: budget.name, expensesA: budget.account.userA.expenses, expensesB: budget.account.userB.expenses)); } return allDataMonthlySave; }
/// <summary> /// Crée les objets d'affichage pour l'affichage de la grille. /// </summary> /// <param name="saveRef"></param> private void displayGrid(MonthlySave saveRef = null) { var gridData = new List <DataAnalysis>(); foreach (DistinctBudget budget in controler.getSortedBudgets()) { gridData.Add(new DataAnalysis(budget, saveRef)); } DataAnalysis totalRow = new DataAnalysis(); gridData.Add(totalRow); grdBudgets.DataSource = gridData; grdBudgets.Visible = true; bool isNull = MonthlySave.isNull(saveRef); grdBudgets.Columns[2].Visible = !isNull; // mois de ref grdBudgets.Columns[4].Visible = !isNull; // Evolution grdBudgets.Columns[2].HeaderText = ($"{Const.MONTHLYEXPENSES_HEADER} {dtpDateRef.Value.ToString("MMMM")} {dtpDateRef.Value.ToString("yyyy")}"); setHoverText(); }
/// <summary> /// Affiche la grille en fonction de l'option sélectionnée. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOK_Click(object sender, EventArgs e) { DataAnalysis.Clear(); DistinctBudget.Clear(); MonthlySave saveRef = null; if (chkMonthRef.Checked) { List <MonthlySave> allMonthlySaves = controler.getMonthlySaves(); saveRef = MonthlySave.findMonthlySave(allMonthlySaves, controler.formatDate(dtpDateRef.Value)); } switch (cboAnalysisMode.SelectedIndex) { case 0: controler.sortBudgets(controler.formatDate(dtpDateStart.Value), controler.formatDate(dtpDateEnd.Value)); break; case 1: controler.sortBudgets(year: dtpYear.Value.Year); break; case 2: controler.sortBudgets(); break; } displayGrid(saveRef); }
// Constructeurs /// <summary> /// Constructeur des lignes pour liaison en datasource /// </summary> /// <param name="distinctBudget">Groupe de budgets du même nom. = Une ligne.</param> /// <param name="saveRef">Sauvegarde de référence si sélectionnée, sinon null.</param> public DataAnalysis(DistinctBudget distinctBudget, MonthlySave saveRef = null) { budget = distinctBudget.name; double total = distinctBudget.total(); double avg = total / distinctBudget.occurence(); avg = Math.Round(avg, 2); if (saveRef != null) { foreach (Budget budget in saveRef.allBudgets) { if (budget.name.ToUpper() == distinctBudget.name.ToUpper()) { double expenses = budget.account.userA.expenses + budget.account.userB.expenses; expensesMonthRef += expenses; expensesRef = expenses + "€"; evolution = distinctBudget.calculateEvolution(avg, budget).ToString() + "%"; break; } } if (evolution == null) { evolution = "-"; } if (expensesRef == null) { expensesRef = "-"; } } average = avg + "€"; proportion = Math.Round((total / DistinctBudget.getTotalExpenses()) * 100, 2).ToString() + "%"; this.total = total + "€"; Items.Add(this); }
/// <summary> /// Vérifie si une date existe. /// </summary> /// <returns>True si une date est trouvée, false sinon.</returns> public bool checkForASave(DateTime date) { date = formatDate(date); return (MonthlySave.findMonthlySave(getMonthlySaves(), date) != null); }
/// <summary> /// Récupère la save la plus récente. /// </summary> /// <returns></returns> public MonthlySave getMostRecentSave() { return MonthlySave.getMostRecentSave(getMonthlySaves()); }
/// <summary> /// Récupère la date de la save la plus récente. /// </summary> /// <returns></returns> public DateTime getMaxDate() { return MonthlySave.getMaxDate(getMonthlySaves()); }