mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-10 03:49:24 +00:00
Refactor and migration corrections
This commit is contained in:
@ -12,18 +12,18 @@ from counter.models import Customer, Product, Selling, Counter
|
||||
def balance_ecocups(apps, schema_editor):
|
||||
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():
|
||||
if selling.product.id == settings.SITH_RECORD_PRODUCT:
|
||||
customer.recorded_products -= selling.quantity
|
||||
elif selling.product.id == settings.SITH_UNRECORD_PRODUCT:
|
||||
for selling in customer.buyings.filter(product__id__in=[settings.SITH_ECOCUP_CONS, settings.SITH_ECOCUP_DECO]).all():
|
||||
if selling.product.is_record_product:
|
||||
customer.recorded_products += selling.quantity
|
||||
if customer.recorded_products > settings.SITH_RECORD_LIMIT:
|
||||
qt = customer.recorded_products - settings.SITH_RECORD_LIMIT
|
||||
cons = Product.objects.get(id=settings.SITH_RECORD_PRODUCT)
|
||||
Selling(label=_("Record regularization"), product=cons, unit_price=cons.selling_price,
|
||||
elif selling.product.is_unrecord_product:
|
||||
customer.recorded_products -= selling.quantity
|
||||
if customer.recorded_products < -settings.SITH_ECOCUP_LIMIT:
|
||||
qt = -(customer.recorded_products + settings.SITH_ECOCUP_LIMIT)
|
||||
cons = Product.objects.get(id=settings.SITH_ECOCUP_CONS)
|
||||
Selling(label=_("Ecocup regularization"), product=cons, unit_price=cons.selling_price,
|
||||
club=cons.club, counter=Counter.objects.filter(name='Foyer').first(),
|
||||
quantity=qt, seller=User.objects.get(id=0), customer=customer).save(allow_negative=True)
|
||||
customer.recorded_products -= qt
|
||||
customer.recorded_products += qt
|
||||
customer.save()
|
||||
|
||||
|
||||
|
@ -63,10 +63,10 @@ class Customer(models.Model):
|
||||
|
||||
@property
|
||||
def can_record(self):
|
||||
return self.recorded_products > -settings.SITH_RECORD_LIMIT
|
||||
return self.recorded_products > -settings.SITH_ECOCUP_LIMIT
|
||||
|
||||
def can_record_more(self, number):
|
||||
return self.recorded_products - number >= -settings.SITH_RECORD_LIMIT
|
||||
return self.recorded_products - number >= -settings.SITH_ECOCUP_LIMIT
|
||||
|
||||
@property
|
||||
def can_buy(self):
|
||||
@ -80,8 +80,8 @@ class Customer(models.Model):
|
||||
letter = random.choice(string.ascii_lowercase)
|
||||
return number + letter
|
||||
|
||||
def save(self, allow_negative=False, is_purchase=False, *args, **kwargs):
|
||||
if self.amount < 0 and (is_purchase and not allow_negative):
|
||||
def save(self, allow_negative=False, is_selling=False, *args, **kwargs):
|
||||
if self.amount < 0 and (is_selling and not allow_negative):
|
||||
raise ValidationError(_("Not enough money"))
|
||||
super(Customer, self).save(*args, **kwargs)
|
||||
|
||||
@ -153,11 +153,11 @@ class Product(models.Model):
|
||||
|
||||
@property
|
||||
def is_record_product(self):
|
||||
return settings.SITH_RECORD_PRODUCT == self.id
|
||||
return settings.SITH_ECOCUP_CONS == self.id
|
||||
|
||||
@property
|
||||
def is_unrecord_product(self):
|
||||
return settings.SITH_UNRECORD_PRODUCT == self.id
|
||||
return settings.SITH_ECOCUP_DECO == self.id
|
||||
|
||||
def is_owned_by(self, user):
|
||||
"""
|
||||
@ -398,7 +398,7 @@ class Selling(models.Model):
|
||||
self.full_clean()
|
||||
if not self.is_validated:
|
||||
self.customer.amount -= self.quantity * self.unit_price
|
||||
self.customer.save(allow_negative=allow_negative, is_purchase=True)
|
||||
self.customer.save(allow_negative=allow_negative, is_selling=True)
|
||||
self.is_validated = True
|
||||
u = User.objects.filter(id=self.customer.user.id).first()
|
||||
if u.was_subscribed:
|
||||
|
Reference in New Issue
Block a user