|
|
|
@ -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 |
|
|
|
|