def update_tax_ratio(self, ratio, year, user): query = TaxRatio.query(TaxRatio.year == year) update = False for taxratio in query.fetch(2): if taxratio.user == user: taxratio.ratio = ratio else: taxratio.ratio = 1 - ratio logging.debug("saving ratio %s for user %s" % (str(taxratio), user)) taxratio.put() update = True if not update: taxratioa = TaxRatio(user=user, ratio=ratio, year=year) logging.debug("saving %s" % str(taxratioa)) taxratioa.put() taxratiob = TaxRatio(user=users_helper.get_other_nickname(), ratio=1 - ratio, year=year) logging.debug("saving %s" % str(taxratiob)) taxratiob.put() else: # update balance with this new tax ratio for month in range(1, 12): user_expenses = UserExpenses.get_user_expenses(month, year) UserExpenses.compute_balance(user_expenses, month, year)
def get_tax_ratio(cls, user, year): query = TaxRatio.query(TaxRatio.user == user, TaxRatio.year == year) tax_ratio = query.get() if tax_ratio is None: return 0.5 return tax_ratio.ratio