示例#1
0
        private MonthlyExpenses calculateMonthlyExpenses(MonthlyExpenses monthly, string fileName)
        {
            fileName = fileName + ".sqlite";

            if (File.Exists(Path.Combine(folderPath, fileName)))
            {
                connection = db.createDBConnection(Path.Combine(folderPath, fileName), connection);
                db.connectToDB(connection);
                string           sql        = "SELECT * from dailyExpenses";
                SQLiteCommand    sqlCommand = new SQLiteCommand(sql, connection);
                SQLiteDataReader reader     = sqlCommand.ExecuteReader();
                while (reader.Read())
                {
                    dailyExpenses temp = new dailyExpenses();
                    temp.date = reader["date"].ToString();
                    temp.transportationExpense = Convert.ToDouble(reader["transportation"]);
                    temp.mealExpense           = Convert.ToDouble(reader["meal"]);
                    temp.othersExpense         = Convert.ToDouble(reader["others"]);
                    monthly.daily.Add(temp);
                    monthly.mealExpense           += temp.mealExpense;
                    monthly.othersExpense         += temp.othersExpense;
                    monthly.transportationExpense += temp.transportationExpense;
                }
            }
            else
            {
                monthly.mealExpense           = 0.0;
                monthly.othersExpense         = 0.0;
                monthly.transportationExpense = 0.0;
            }

            return(monthly);
        }
示例#2
0
        float convertCategoriesToPercentage(double categoryExpenses, MonthlyExpenses expenses)
        {
            float total      = (float)expenses.mealExpense + (float)expenses.othersExpense + (float)expenses.transportationExpense;
            float percentage = (float)categoryExpenses / total * 100;

            return(percentage);
        }
示例#3
0
        public void Add(Expense expense)
        {
            Validate(expense);

            ReservedForExpenses[expense.Name] = 0;
            MonthlyExpenses.Add(expense);
        }
示例#4
0
 private void Validate(Expense expense)
 {
     if (MonthlyExpenses.Any(e => e.Name.ToLower() == expense.Name.ToLower()))
     {
         throw new ArgumentException("Can't add expense {0} because an expanse with a matching name exists", expense.Name);
     }
 }
示例#5
0
        public IActionResult Upsert(int?id = 0)
        {
            MonthlyExpenses Expenses = new MonthlyExpenses();
            JsonResult      result   = new JsonResult(new { });

            if (id == 0)
            {
                result.Value = new { Data = true, message = "Its Insert Call" };
                return(result);
            }
            Expenses = _unitOfWork.MonthlyExpenses.Get(id);
            if (Expenses == null)
            {
                result.Value = new { Data = "Not Found" };
                return(result);
            }
            result.Value = new { Data = Expenses, message = "Its Update Call" };
            return(result);
        }
        public ActionResult Update(DateTime date, string name, string category, double amount, int?dueDate)
        {
            if (!dueDates.Any(n => n.Name == name))
            {
                var newExpenseDueDate = new ExpenseDetails {
                    Name = name, DueDate = dueDate
                };
                db.Save(newExpenseDueDate);
            }

            var formData = new MonthlyExpenses {
                Date = date, Name = name, Category = category, Amount = amount
            };

            db.Save(formData);

            var returnYear = date.Year > DateTime.Now.Year ? DateTime.Now.Year : date.Year;

            return(RedirectToAction("YearSummary/" + returnYear));
        }
示例#7
0
        public void computeMonthlyChart(int month, int year)
        {
            MonthlyExpenses monthExpense = new MonthlyExpenses();
            string          filename     = generateDailyFilename(month, year);

            textBox1.Text = "Current Month Expenses Chart";
            monthExpense  = calculateMonthlyExpenses(monthExpense, filename);

            if (monthExpense.transportationExpense == 0.0 && monthExpense.mealExpense == 0.0 && monthExpense.othersExpense == 0.0)
            {
                // do nothing
            }
            else
            {
                clearAllPieInfo();
                createPieInfo("Transportation", convertCategoriesToPercentage(monthExpense.transportationExpense, monthExpense), Color.Aqua);
                createPieInfo("Meal", convertCategoriesToPercentage(monthExpense.mealExpense, monthExpense), Color.Red);
                createPieInfo("Others", convertCategoriesToPercentage(monthExpense.othersExpense, monthExpense), Color.Purple);
            }
        }
示例#8
0
        public IActionResult Upsert(MonthlyExpenses Expenses)
        {
            JsonResult result = new JsonResult(new { });

            if (Expenses.ExpensesId == 0)
            {
                Expenses.CreatedById = 2;
                Expenses.CreatedDate = DateTime.Now;
                _unitOfWork.MonthlyExpenses.Add(Expenses);
            }
            else
            {
                Expenses.CreatedById = 2;
                Expenses.CreatedDate = DateTime.Now;
                _unitOfWork.MonthlyExpenses.Update(Expenses);
            }
            _unitOfWork.Save();
            result.Value = new { Data = true };
            return(result);
        }
示例#9
0
        static void Main(string[] args)
        {
            var rooms = new CompositeAsset();

            rooms.Add(new Room {
                MonthlyRent = 10000
            });
            rooms.Add(new Room {
                MonthlyRent = 15000
            });
            rooms.Add(new Room {
                MonthlyRent = 9000
            });

            var gruppe1 = new CompositeAsset();

            gruppe1.Add(new CEO {
                HiredDate = new DateTime(), HoursWorkedThisMonth = 300, MontlySalary = 100000
            });
            gruppe1.Add(new StudentEmployee {
                HiredDate = new DateTime(), HourRate = 120, HoursWorkedThisMonth = 100
            });
            gruppe1.Add(new StudentEmployee {
                HiredDate = new DateTime(), HourRate = 10, HoursWorkedThisMonth = 400
            });

            var assets = new CompositeAsset();

            assets.Add(rooms);
            assets.Add(gruppe1);

            var monthlycacl = new MonthlyExpenses();

            monthlycacl.ShowMonthly(assets);

            var dates = new HiredDates();

            dates.PrintDates(assets);
            //var Employees = new Employees();

            //var Emp1 = new Employee("Kalle", 5.400, 20, 100);
            //var Emp2 = new Employee("Kasper", 15293.1, 40, 5);
            //var Emp3 = new Employee("Kristian", 100.0, 14, 10);
            //var Emp4 = new Leader("Peter", 500.0, 20, 130);

            //Employees.AddEmployee(Emp1);
            //Employees.AddEmployee(Emp2);
            //Employees.AddEmployee(Emp3);
            //Employees.AddEmployee(Emp4);

            //var SalaryRepport = new SalaryRepport();
            //var VacationRepport = new VacationRepport();
            //var SickRepport = new SickRepport();

            //Employees.Accept(SalaryRepport);
            //Console.WriteLine("");
            //Employees.Accept(VacationRepport);
            //Console.WriteLine("");
            //Employees.Accept(SickRepport);

            //Emp4.Accept(SalaryRepport);

            //Console.ReadKey();
        }
示例#10
0
 public decimal MonthlyTotal()
 {
     return(MonthlyExpenses.Sum(expense => expense.Amount)
            + MonthlyTransfers.Sum(transfer => transfer.Amount));
 }