def get(self, request, *args, **kwargs): # 全データ all_data = Data.get_all_data() # 支払い方法リスト methods = Method.list() # 支払い方法ごとの残高 methods_bd = [] for m in methods: d = Data.get_method_data(all_data, m.pk) # 銀行はチェック済みだけ if m.pk == Method.get_bank().pk: d = Data.get_checked_data(d) methods_bd.append({ 'pk': m.pk, 'name': m.name, 'balance': Data.get_income_sum(d) - Data.get_outgo_sum(d), 'year': CheckedDate.get(m.pk).date.year, 'month': CheckedDate.get(m.pk).date.month, 'day': CheckedDate.get(m.pk).date.day }) return HttpResponse(json.dumps(methods_bd))
def get(self, request, *args, **kwargs): now = datetime.now() # 全データ all_data = Data.get_all_data() # 現在銀行 banks = BankBalance.get_all() # クレカ確認日 credit_checked_date = CreditCheckedDate.get_all() today = date.today() for c in credit_checked_date: # 日付が過ぎていたらpriceを0にする if c.date <= today: c.price = 0 # 銀行残高 all_bank_data = Data.get_bank_data(all_data) checked_bank_data = Data.get_checked_data(all_bank_data) bank_written = Data.get_income_sum( checked_bank_data) - Data.get_outgo_sum(checked_bank_data) context = { 'year': now.year, 'banks': banks, 'credit_checked_date': credit_checked_date, 'bank_written': bank_written, } return render(request, "_several_checked_date.html", context)
def test_get_checked_data(self): base_data = Data.get_month_data(2000, 1) data = Data.get_checked_data(base_data) expects = [ "給与", "コンビニ", "その他1", "必需品2", "現金収入", "銀行収入", "PayPayチャージ", "電気代", "ガス代", "水道代", "立替分2" ] self._assert_list(data, expects)
def post(self, request, *args, **kwargs): written_bank_data = Data.get_checked_data( Data.get_bank_data(Data.get_all_data())) bank_sum = 0 bb = BankBalance.get_all() cc = CreditCheckedDate.get_all() # フォーマットチェック try: for b in bb: key = "bank-" + str(b.pk) if key in request.POST: int(request.POST.get(key)) for c in cc: key = "credit-" + str(c.pk) if key in request.POST: int(request.POST.get(key)) except ValueError: return HttpResponseBadRequest( json.dumps({"message": "invalid parameter"})) # 更新と計算 for b in bb: key = "bank-" + str(b.pk) if key in request.POST: value = int(request.POST.get(key)) BankBalance.set(b.pk, value) bank_sum += BankBalance.get_price(b.pk) for c in cc: key = "credit-" + str(c.pk) if key in request.POST: value = int(request.POST.get(key)) CreditCheckedDate.set_price(c.pk, value) bank_sum -= CreditCheckedDate.get_price(c.pk) return HttpResponse( json.dumps({ "balance": Data.get_income_sum(written_bank_data) - Data.get_outgo_sum(written_bank_data) - bank_sum }))
def test_get_checked_data_empty(self): base_data = Data.get_month_data(1999, 1) data = Data.get_checked_data(base_data) self.assertEqual(data.count(), 0)
def test_get_checked_data_nothing(self): base_data = Data.get_month_data(2000, 4) data = Data.get_checked_data(base_data) self.assertEqual(data.count(), 0)