mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 14:13:21 +00:00
Allow negative amount for customer
This commit is contained in:
parent
d60e14a303
commit
240b68f98d
@ -11,6 +11,7 @@ from counter.models import Customer, Product, Selling, Counter
|
|||||||
|
|
||||||
def balance_ecocups(apps, schema_editor):
|
def balance_ecocups(apps, schema_editor):
|
||||||
for customer in Customer.objects.all():
|
for customer in Customer.objects.all():
|
||||||
|
customer.recorded_products = 0
|
||||||
for selling in customer.buyings.filter(product__id__in=[settings.SITH_RECORD_PRODUCT, settings.SITH_UNRECORD_PRODUCT]).all():
|
for selling in customer.buyings.filter(product__id__in=[settings.SITH_RECORD_PRODUCT, settings.SITH_UNRECORD_PRODUCT]).all():
|
||||||
if selling.product.id == settings.SITH_RECORD_PRODUCT:
|
if selling.product.id == settings.SITH_RECORD_PRODUCT:
|
||||||
customer.recorded_products -= selling.quantity
|
customer.recorded_products -= selling.quantity
|
||||||
@ -21,7 +22,7 @@ def balance_ecocups(apps, schema_editor):
|
|||||||
cons = Product.objects.get(id=settings.SITH_RECORD_PRODUCT)
|
cons = Product.objects.get(id=settings.SITH_RECORD_PRODUCT)
|
||||||
Selling(label=_("Record regularization"), product=cons, unit_price=cons.selling_price,
|
Selling(label=_("Record regularization"), product=cons, unit_price=cons.selling_price,
|
||||||
club=cons.club, counter=Counter.objects.filter(name='Foyer').first(),
|
club=cons.club, counter=Counter.objects.filter(name='Foyer').first(),
|
||||||
quantity=qt, seller=User.objects.get(id=0), customer=customer).save()
|
quantity=qt, seller=User.objects.get(id=0), customer=customer).save(allow_negative=True)
|
||||||
customer.recorded_products -= qt
|
customer.recorded_products -= qt
|
||||||
customer.save()
|
customer.save()
|
||||||
|
|
||||||
|
@ -80,8 +80,8 @@ class Customer(models.Model):
|
|||||||
letter = random.choice(string.ascii_lowercase)
|
letter = random.choice(string.ascii_lowercase)
|
||||||
return number + letter
|
return number + letter
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, allow_negative=False, is_purchase=False, *args, **kwargs):
|
||||||
if self.amount < 0:
|
if self.amount < 0 and (is_purchase and not allow_negative):
|
||||||
raise ValidationError(_("Not enough money"))
|
raise ValidationError(_("Not enough money"))
|
||||||
super(Customer, self).save(*args, **kwargs)
|
super(Customer, self).save(*args, **kwargs)
|
||||||
|
|
||||||
@ -392,13 +392,13 @@ class Selling(models.Model):
|
|||||||
html_message=message_html
|
html_message=message_html
|
||||||
)
|
)
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, allow_negative=False, *args, **kwargs):
|
||||||
if not self.date:
|
if not self.date:
|
||||||
self.date = timezone.now()
|
self.date = timezone.now()
|
||||||
self.full_clean()
|
self.full_clean()
|
||||||
if not self.is_validated:
|
if not self.is_validated:
|
||||||
self.customer.amount -= self.quantity * self.unit_price
|
self.customer.amount -= self.quantity * self.unit_price
|
||||||
self.customer.save()
|
self.customer.save(allow_negative=allow_negative, is_purchase=True)
|
||||||
self.is_validated = True
|
self.is_validated = True
|
||||||
u = User.objects.filter(id=self.customer.user.id).first()
|
u = User.objects.filter(id=self.customer.user.id).first()
|
||||||
if u.was_subscribed:
|
if u.was_subscribed:
|
||||||
|
Loading…
Reference in New Issue
Block a user