Browse Source

added debit limit to admin, use default when null

master
Fr3deric 5 years ago
parent
commit
3b00fd0561
  1. 5
      cashonly/core/admin.py
  2. 20
      cashonly/core/migrations/0003_debit_limit_null_default.py
  3. 4
      cashonly/core/models.py
  4. 7
      cashonly/core/services.py

5
cashonly/core/admin.py

@ -32,12 +32,13 @@ class AccountForm(forms.ModelForm): @@ -32,12 +32,13 @@ class AccountForm(forms.ModelForm):
class AccountAdmin(admin.ModelAdmin):
list_display = ('user', 'card_number', 'credit', 'transaction_link')
list_display = ('user', 'card_number', 'credit', 'debit_limit',
'transaction_link')
form = AccountForm
readonly_fields = ('user', 'credit',)
fieldsets = (
(None, {
'fields': ('user', 'card_number', 'credit'),
'fields': ('user', 'card_number', 'credit', 'debit_limit'),
}),
(ugettext_lazy('credit change'), {
'fields': ('credit_change', 'credit_change_comment'),

20
cashonly/core/migrations/0003_debit_limit_null_default.py

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-02-17 21:54
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cashonly_core', '0002_account_debit_limit'),
]
operations = [
migrations.AlterField(
model_name='account',
name='debit_limit',
field=models.DecimalField(blank=True, decimal_places=2, default=None, max_digits=5, null=True, verbose_name='debit limit'),
),
]

4
cashonly/core/models.py

@ -35,7 +35,9 @@ class Account(models.Model): @@ -35,7 +35,9 @@ class Account(models.Model):
verbose_name=_('debit limit'),
max_digits=5,
decimal_places=2,
default=settings.CASHONLY_DEFAULT_DEBIT_LIMIT,
default=None,
blank=True,
null=True,
)
def __str__(self):

7
cashonly/core/services.py

@ -5,6 +5,7 @@ from django.utils.translation import ugettext_noop @@ -5,6 +5,7 @@ from django.utils.translation import ugettext_noop
from django.db.models.signals import pre_save, post_save, pre_delete
from django.dispatch import receiver
from django.db import transaction
from django.conf import settings
import PIL.Image
import io
@ -44,7 +45,11 @@ class AccountManager: @@ -44,7 +45,11 @@ class AccountManager:
total_value = sum(map(lambda p: p.price * products[p],
products.keys()))
if self.account.credit - total_value >= self.account.debit_limit * -1:
if self.account.debit_limit is not None:
debit_limit = self.account.debit_limit
else:
debit_limit = settings.CASHONLY_DEFAULT_DEBIT_LIMIT
if self.account.credit - total_value >= debit_limit * -1:
desc = ''
for product in products.keys():
if not product.active:

Loading…
Cancel
Save