Beispiel #1
0
        /// <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);
                }
            }
        }
Beispiel #2
0
 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);
        }
Beispiel #5
0
        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;
        }
Beispiel #6
0
        /// <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();
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        // 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);
        }
Beispiel #9
0
 /// <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);
 }
Beispiel #10
0
 /// <summary>
 /// Récupère la save la plus récente.
 /// </summary>
 /// <returns></returns>
 public MonthlySave getMostRecentSave()
 {
     return MonthlySave.getMostRecentSave(getMonthlySaves());
 }
Beispiel #11
0
 /// <summary>
 /// Récupère la date de la save la plus récente.
 /// </summary>
 /// <returns></returns>
 public DateTime getMaxDate()
 {
     return MonthlySave.getMaxDate(getMonthlySaves());
 }