Browse Source

Добавил логику для административных услуг внутреннего пользования. Единственное отличие - они действуют не 1 месяц, а 10 лет

devel
Dmitry 9 years ago
parent
commit
9b0e3b0574
  1. 20
      tariff_app/custom_tariffs.py
  2. 24
      tariff_app/migrations/0004_auto_20170416_0350.py
  3. 1
      tariff_app/models.py

20
tariff_app/custom_tariffs.py

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from datetime import timedelta
from datetime import timedelta, datetime
from django.utils import timezone
from .base_intr import TariffBase
from calendar import monthrange
@ -23,7 +23,7 @@ class TariffDefault(TariffBase):
time_diff = nw - self.abon_tariff.time_start if self.abon_tariff.time_start else timedelta(0)
# времени в этом месяце
curr_month_time = timezone.datetime(nw.year, nw.month if nw.month == 12 else nw.month + 1, 1) - timedelta(days=1)
curr_month_time = datetime(nw.year, nw.month if nw.month == 12 else nw.month + 1, 1) - timedelta(days=1)
curr_month_time = timedelta(days=curr_month_time.day)
# Сколько это в процентах от всего месяца (k - коеффициент)
@ -38,7 +38,7 @@ class TariffDefault(TariffBase):
def calc_deadline(self):
nw = timezone.now()
last_day = monthrange(nw.year, nw.month)[1]
last_month_date = timezone.datetime(year=nw.year, month=nw.month, day=last_day,
last_month_date = datetime(year=nw.year, month=nw.month, day=last_day,
hour=23, minute=59, second=59)
return timezone.make_aware(last_month_date)
@ -59,13 +59,19 @@ class TariffDp(TariffDefault):
return 'Как в IS'
class TariffCp(TariffDefault):
def calc_amount(self):
return 12.6
# Как в IS только не на время, а на 10 лет
class TariffCp(TariffDp):
def calc_deadline(self):
# делаем время окончания услуги на 10 лет вперёд
nw = timezone.now()
long_long_time = datetime(year=nw.year+10, month=nw.month, day=nw.day,
hour=23, minute=59, second=59)
return timezone.make_aware(long_long_time)
@staticmethod
def description():
return 'Пользовательский'
return 'Для внутреннего пользования'
# Первый - всегда по умолчанию

24
tariff_app/migrations/0004_auto_20170416_0350.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2017-04-16 00:50
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tariff_app', '0003_tariff_is_admin'),
]
operations = [
migrations.RemoveField(
model_name='tariff',
name='time_of_action',
),
migrations.AlterField(
model_name='tariff',
name='calc_type',
field=models.CharField(choices=[('Df', 'Базовый расчётный функционал'), ('Dp', 'Как в IS'), ('Cp', 'Для внутреннего пользования')], default='Df', max_length=2),
),
]

1
tariff_app/models.py

@ -19,7 +19,6 @@ class Tariff(models.Model):
speedIn = models.FloatField(default=0.0)
speedOut = models.FloatField(default=0.0)
amount = models.FloatField(default=0.0)
time_of_action = models.IntegerField(default=30)
calc_type = models.CharField(max_length=2, default=TARIFF_CHOICES[0][0], choices=_TariffChoicesAdapter())
is_admin = models.BooleanField(default=False)

Loading…
Cancel
Save