Untitled

 avatar
unknown
actionscript
2 years ago
1.5 kB
6
Indexable
"""
Есть табличка, в которой храним историю балансов номеров телефонов.


Актуальный баланс номера содержится в записи с is_current=True
При изменении баланса номера мы создаем новую запись, с is_current=True, а у старой записи ставим is_current=False


Нужно написать функцию, которая увеличит баланс номера на определенную величину.
"""


class BalanceHistory(models.Model):
    number = models.CharField( verbose_name="Номер")
    value = models.DecimalField(verbose_name="Значение")
    is_current = models.BooleanField(default=False, verbose_name="True для актуального баланса")


    @classmethod
    def change_balance(cls, number, value_diff):
        q = BalanceHistory.objects.filter(number=number, is_corrent=True)
        if q:
            q.value += value_diff








"""
Пример:


id   number        value     is_current
 3   9091111111    100      False
 2   9091111111    200      True
 1   9092222222    50       True


"""

BalanceHistory.change_balance(9091111111, 300)


"""
Стало


id   number        value     is_current
 4   9091111111    500      True
 3   9091111111    100      False
 2   9091111111    200      False
 1   9092222222    50       True
"""
Editor is loading...