mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-21 15:32:14 +00:00
Fixed issue with calculating the balance on an invoice
Improvements to the invoice importer
This commit is contained in:
@@ -329,10 +329,12 @@ class Invoice(models.Model):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def payment_total(self):
|
def payment_total(self):
|
||||||
total = self.payment_set.aggregate(models.Sum('amount'))
|
sum = self.payment_set.aggregate(models.Sum('amount'))['amount__sum']
|
||||||
# for payment in self.payment_set.all():
|
# for payment in self.payment_set.all():
|
||||||
# total += payment.amount
|
# total += payment.amount
|
||||||
return total
|
if sum:
|
||||||
|
return sum
|
||||||
|
return 0
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def balance(self):
|
def balance(self):
|
||||||
|
|||||||
92
importer.py
92
importer.py
@@ -254,31 +254,28 @@ def import_eventitem(delete=True):
|
|||||||
def import_nonrigs(delete=False):
|
def import_nonrigs(delete=False):
|
||||||
if (delete):
|
if (delete):
|
||||||
try:
|
try:
|
||||||
models.Event.objects.get(is_rig=False).delete()
|
models.Event.objects.filter(is_rig=False).delete()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
cursor = setup_cursor()
|
cursor = setup_cursor()
|
||||||
if cursor is None:
|
if cursor is None:
|
||||||
return
|
return
|
||||||
sql = """SELECT id, name, start_date, start_time, end_date, end_time, description, user_id FROM non_rigs WHERE active = 1;"""
|
sql = """SELECT name, start_date, start_time, end_date, end_time, description, user_id FROM non_rigs WHERE active = 1;"""
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
for row in cursor.fetchall():
|
for row in cursor.fetchall():
|
||||||
print(row)
|
print(row)
|
||||||
mic = models.Profile.objects.get(pk=row[6])
|
mic = models.Profile.objects.get(pk=row[6])
|
||||||
with transaction.atomic(), reversion.create_revision():
|
object = models.Event()
|
||||||
try:
|
object.name = row[0]
|
||||||
object = models.Event.objects.get(pk=row[0])
|
object.start_date = row[1]
|
||||||
except ObjectDoesNotExist:
|
object.start_time = row[2]
|
||||||
object = models.Event()
|
object.end_date = row[3]
|
||||||
object.name = row[1]
|
object.end_time = row[4]
|
||||||
object.start_date = row[2]
|
object.description = row[5]
|
||||||
object.start_time = row[3]
|
object.is_rig = False
|
||||||
object.end_date = row[4]
|
object.mic = mic
|
||||||
object.end_time = row[5]
|
print(object)
|
||||||
object.description = row[6]
|
object.save()
|
||||||
object.mic = row[7]
|
|
||||||
print(object)
|
|
||||||
object.save()
|
|
||||||
|
|
||||||
|
|
||||||
def import_invoices(delete=False):
|
def import_invoices(delete=False):
|
||||||
@@ -295,10 +292,13 @@ def import_invoices(delete=False):
|
|||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
for row in cursor.fetchall():
|
for row in cursor.fetchall():
|
||||||
print(row)
|
print(row)
|
||||||
|
print row[1]
|
||||||
try:
|
try:
|
||||||
event = models.Event.objects.get(pk=row[1])
|
event = models.Event.objects.get(pk=row[1])
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
|
print "Event %d not found" % row[1]
|
||||||
continue
|
continue
|
||||||
|
print(event)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
invoice = models.Invoice.objects.get(event=event)
|
invoice = models.Invoice.objects.get(event=event)
|
||||||
@@ -307,42 +307,46 @@ def import_invoices(delete=False):
|
|||||||
invoice.save()
|
invoice.save()
|
||||||
invoice.invoice_date = row[2]
|
invoice.invoice_date = row[2]
|
||||||
invoice.save()
|
invoice.save()
|
||||||
|
print(invoice)
|
||||||
|
|
||||||
try:
|
if row[3]:
|
||||||
payment = models.Payment.objects.get(invoice=invoice)
|
try:
|
||||||
except ObjectDoesNotExist:
|
payment = models.Payment.objects.get(invoice=invoice)
|
||||||
payment = models.Payment(invoice=invoice)
|
except ObjectDoesNotExist:
|
||||||
if row[4] >= event.sum_total:
|
payment = models.Payment(invoice=invoice)
|
||||||
payment.amount = event.sum_total
|
if row[4] >= event.sum_total:
|
||||||
else:
|
payment.amount = event.sum_total
|
||||||
payment.amount = row[4]
|
else:
|
||||||
payment.date = row[3]
|
payment.amount = row[4]
|
||||||
payment.save()
|
payment.date = row[3]
|
||||||
|
payment.save()
|
||||||
|
print(payment)
|
||||||
|
|
||||||
if invoice.invoice_date < (datetime.date.today() - datetime.timedelta(days=365)) and invoice.balance:
|
if invoice.invoice_date < (datetime.date.today() - datetime.timedelta(days=365)) and invoice.balance:
|
||||||
p2 = models.Payment(amount=invoice.balance)
|
p2 = models.Payment(amount=invoice.balance)
|
||||||
payment.method = payment.ADJUSTMENT
|
p2.invoice = invoice
|
||||||
payment.date = datetime.date.today()
|
p2.method = payment.ADJUSTMENT
|
||||||
payment.save()
|
p2.date = datetime.date.today()
|
||||||
|
p2.save()
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def main():
|
def main():
|
||||||
processs = []
|
# processs = []
|
||||||
processs.append(Process(target=import_users))
|
# processs.append(Process(target=import_users))
|
||||||
processs.append(Process(target=import_people, args=(True,)))
|
# processs.append(Process(target=import_people, args=(True,)))
|
||||||
processs.append(Process(target=import_organisations, args=(True,)))
|
# processs.append(Process(target=import_organisations, args=(True,)))
|
||||||
processs.append(Process(target=import_vat_rates, args=(True,)))
|
# processs.append(Process(target=import_vat_rates, args=(True,)))
|
||||||
processs.append(Process(target=import_venues, args=(True,)))
|
# processs.append(Process(target=import_venues, args=(True,)))
|
||||||
|
#
|
||||||
# Start all processs
|
# # Start all processs
|
||||||
[x.start() for x in processs]
|
# [x.start() for x in processs]
|
||||||
# Wait for all processs to finish
|
# # Wait for all processs to finish
|
||||||
[x.join() for x in processs]
|
# [x.join() for x in processs]
|
||||||
|
#
|
||||||
import_rigs(True)
|
# import_rigs(True)
|
||||||
import_eventitem(True)
|
# import_eventitem(True)
|
||||||
import_nonrigs(True)
|
|
||||||
import_invoices(True)
|
import_invoices(True)
|
||||||
|
# import_nonrigs(False)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user