Browse Source

Added seperate method to change user's credit and create a transaction

master
Niklas Brachmann 11 years ago
parent
commit
478a3246ad
  1. 22
      cash/models.py

22
cash/models.py

@ -27,6 +27,16 @@ class Account(models.Model): @@ -27,6 +27,16 @@ class Account(models.Model):
instance.account.card_number = instance.ldap_user.attrs['employeenumber'][0]
instance.account.save()
def change_credit(amount, subject, desc):
self.credit -= amount
self.save()
transaction = Transaction(account=self, subject=subject,
amount=(-amount), description=desc)
transaction.save()
def buy_products(self, products):
# TODO place it somewhere else
MAX_DEBIT = -3500
@ -37,10 +47,7 @@ class Account(models.Model): @@ -37,10 +47,7 @@ class Account(models.Model):
total_value = sum(map(lambda p: p.price * products[p], products.keys()))
if self.credit - total_value >= MAX_DEBIT:
self.credit -= total_value
self.save()
descr = ''
desc = ''
for product in products.keys():
amount = products[product]
@ -48,12 +55,9 @@ class Account(models.Model): @@ -48,12 +55,9 @@ class Account(models.Model):
count=amount, unit_price=product.price)
logentry.save()
descr += '%dx %s\n' % (amount, product.name)
transaction = Transaction(account=self, subject=BUY_SUBJECT,
amount=(-total_value), description=descr)
transaction.save()
desc += '%dx %s\n' % (amount, product.name)
self.change_credit(total_value, BUY_SUBJECT, desc)
return True
else:
return False

Loading…
Cancel
Save