Esempio n. 1
0
  public Budget editBudgetCategoryAndInitialAmount(String category, String inputAmount) {
    Budget budget = getLatestBudget();
    BudgetsDAO budgetsDao = new BudgetsDAO(context);
    List<String> categories = Arrays.asList(budget.getCategories().split(","));
    List<String> initialAmounts = Arrays.asList(budget.getInitialAmounts().split(","));
    int targetIndex = categories.indexOf(category);

    if (inputAmount != null && !inputAmount.isEmpty()) {
      initialAmounts.set(targetIndex, inputAmount);
    }

    String categoriesStr = TextUtils.join(",", categories);
    String initialAmountsStr = TextUtils.join(",", initialAmounts);

    budget.setInitialAmounts(initialAmountsStr);
    budget.setCategories(categoriesStr);
    budget.setAmountStartedWith(calculateAmountStartedWith(budget));
    budget.setAmountAvailable(calculateAmountAvailable(budget));

    Date currentDateForComparison = Util.stringToDate(Util.getCurrentDateTime());
    Date latestDateForComparison = Util.stringToDate(budget.getDateCreated());

    if (currentDateForComparison.after(latestDateForComparison)) {
      budget.setDateCreated(Util.getCurrentDateTime());
      budgetsDao.createBudgetItem(budget);
    } else {
      budgetsDao.updateBudgetCategoryAndInitialAmount(budget);
    }

    return budget;
  }