Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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
            }))
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
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)