コード例 #1
0
        public ActionResult AddEditExpenses(int itemId)
        {
            BudgetReport model = new BudgetReport();

            if (itemId > 0)
            {
                model = objexpense.GetExpenseData(itemId);
            }
            return(PartialView("_expenseForm", model));
        }
コード例 #2
0
 internal void GetBudgetTemplate()
 {
     try
     {
         AppSettingsReader setting = new AppSettingsReader();
         string            report  = (string)setting.GetValue("BudgetReport", typeof(string));
         BudgetReport.Open(report);
     }
     catch (Exception ex)
     {
         new Error(ex).ShowDialog();
     }
 }
コード例 #3
0
 // CONSTRUCTORS
 public ExcelForm()
 {
     InitializeComponent();
     Source                   = Source.DivisionAccounts;
     Provider                 = Provider.SQLite;
     DbData                   = new DataBuilder(Source, Provider);
     BindingSource            = new BindingSource();
     Table                    = DbData.Table;
     BindingSource.DataSource = Table;
     ProgramElements          = DbData.ProgramElements;
     Ninja                    = new FormData(Source, Provider);
     BudgetTemplate           = GetInternalFilePath();
     BudgetReport.Open(BudgetTemplate);
 }
コード例 #4
0
 public ActionResult Create(BudgetReport newExpense)
 {
     if (ModelState.IsValid)
     {
         if (newExpense.ItemId > 0)
         {
             objexpense.UpdateBudget(newExpense);
         }
         else
         {
             objexpense.AddBudget(newExpense);
         }
     }
     return(RedirectToAction("Index"));
 }
コード例 #5
0
ファイル: Program.cs プロジェクト: Binett/BudgetCalculator
        private static void Main(string[] args)
        {
            if (args is null)
            {
                throw new ArgumentNullException(nameof(args));
            }

            //Skapa en ecocontroller.
            EconomicController ecoController = new EconomicController();

            //För in data i ecocontrollern
            ecoController.AddEconomicObjectToList("Giraffe", EconomicType.Saving, 9999.9);
            ecoController.AddEconomicObjectToList("Income", EconomicType.Income, 5000);
            ecoController.AddEconomicObjectToList(" ", EconomicType.Expense, double.MaxValue);
            ecoController.AddEconomicObjectToList(null, EconomicType.Income, -2222.222);

            //Skapa en rapport med ecocontrollern
            BudgetReport report = new BudgetReport(ecoController);

            //Skapa en writer
            WriteToFile writer = new WriteToFile();

            //Skriv errorloggern till fil
            writer.WriteStringToFile("the error log", ErrorLogger.GetSummarizedLogAsString());

            //Ta bort giraffen, för dyr.
            ecoController.RemoveEconomicObjectFromList("Giraffe");

            //Lägg till lite grejjer
            ecoController.AddEconomicObjectToList("Salary", EconomicType.Income, 14000);
            ecoController.AddEconomicObjectToList("Rent", EconomicType.Expense, 2000);
            ecoController.AddEconomicObjectToList("Subscription", EconomicType.Expense, 99);
            ecoController.AddEconomicObjectToList("Food", EconomicType.Expense, 1500);
            ecoController.AddEconomicObjectToList("Savings", EconomicType.Saving, 0.1);

            //Ny rapport
            report = new BudgetReport(ecoController);

            //Skicka till consolen
            Console.WriteLine(report.GetCalculatedDataToString());

            //Skriv rapporten till fil
            writer.WriteStringToFile("Private economy report", report.GetCalculatedDataToString());
        }
コード例 #6
0
 public ActionResult BudgetReport([Bind(Prefix = "")] BudgetReport report)
 {
     return(viewReport(report));
 }
コード例 #7
0
        public void UpdateChart()
        {
            if (this.MyMoney == null || !this.IsVisible)
            {
                return;
            }

            BudgetReport report = new BudgetReport(null, this.money);
            ObservableCollection <BudgetData> list = new ObservableCollection <BudgetData>();

            if (CategoryFilter == null)
            {
                Dictionary <string, BudgetData> totals = new Dictionary <string, BudgetData>();

                decimal sum = 0; // for new average

                // then we need to do all categories and compute the totals.
                foreach (Category rc in money.Categories.GetRootCategories())
                {
                    if (rc.Type != CategoryType.Expense)
                    {
                        continue;
                    }

                    report.CategoryFilter = rc;
                    foreach (BudgetData b in report.Compute())
                    {
                        BudgetData total = null;
                        if (!totals.TryGetValue(b.Name, out total))
                        {
                            totals[b.Name] = b;
                        }
                        else
                        {
                            total.Merge(b);
                            sum += (decimal)b.Average;
                        }
                    }
                }

                if (totals.Count > 0)
                {
                    decimal average = sum / totals.Count;
                    foreach (BudgetData data in totals.Values)
                    {
                        data.Average = (double)average;
                    }
                }

                ComputeLinearRegression(totals.Values);
                list = new ObservableCollection <BudgetData>(from b in totals.Values orderby b.BudgetDate ascending select b);
            }
            else
            {
                report.CategoryFilter = this.CategoryFilter;
                IEnumerable <BudgetData> result = report.Compute();
                ComputeLinearRegression(result);
                // Now update the observable collection.
                list = new ObservableCollection <BudgetData>(from b in result orderby b.BudgetDate ascending select b);
            }

            // compute cumulative totals.
            double budgetTotal = 0;
            double actualTotal = 0;

            foreach (BudgetData d in list)
            {
                budgetTotal       += d.Budget;
                actualTotal       += d.Actual;
                d.BudgetCumulative = budgetTotal;
                d.ActualCumulative = actualTotal;
            }

            try
            {
                BudgetSeries.ItemsSource           = list;
                ActualSeries.ItemsSource           = list;
                AverageSeries.ItemsSource          = list;
                BudgetCumulativeSeries.ItemsSource = list;
                ActualCumulativeSeries.ItemsSource = list;
                LineChart.InvalidateArrange();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.ToString());
            }
        }