aboutsummaryrefslogtreecommitdiff
path: root/app/dispatch/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/dispatch/views.py')
-rw-r--r--app/dispatch/views.py84
1 files changed, 83 insertions, 1 deletions
diff --git a/app/dispatch/views.py b/app/dispatch/views.py
index 65d2811..75e7a06 100644
--- a/app/dispatch/views.py
+++ b/app/dispatch/views.py
@@ -10,12 +10,13 @@ from django.views.generic import TemplateView,ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.core.urlresolvers import reverse_lazy
-from dispatch.models import Customer, Load, Paperwork
+from dispatch.models import Customer, Load, Paperwork, Invoice, Settings
from dispatch.forms import AddPaperworkForm
from django.contrib.auth.models import User
from django.contrib.auth.mixins import UserPassesTestMixin
# from django.http import HttpResponseRedirect
from .misc import get_week_dates, split_loads_by_day
+import datetime
import re, os
def home(request):
@@ -30,9 +31,12 @@ class LoadDateSort(DetailView):
loads = self.get_object().load_set.filter(date__range=(week_dates['start_date'],
week_dates['end_date'])).prefetch_related('customer')
+ context['loads_nosplit'] = loads.order_by('date')
+
context['loads'] = split_loads_by_day(loads,week_dates['start_date'],
week_dates['end_date'])
+
context['week_dates'] = week_dates
return context
@@ -274,3 +278,81 @@ def PaperworkDownload(request, load_id, pk):
return response
except Exception as e:
print(e)
+
+
+
+# Invoice
+class InvoiceList(FilteredListView):
+ template_name = "dispatch/invoice/list.html"
+ model = Invoice
+
+class InvoiceDetail(DetailView):
+ template_name = "dispatch/invoice/detail.html"
+ model = Invoice
+
+def InvoiceGenerateForDates(request, pk):
+ driver = User.objects.get(pk=pk)
+
+ # I fucking hate dates and time. What a clusterfuck
+ start_date = request.GET.get('date', datetime.datetime.now())
+ if isinstance(start_date, str):
+ start_date = datetime.datetime.strptime(start_date, '%m/%d/%Y')
+ due_date = start_date + datetime.timedelta(days=30)
+ wk = get_week_dates(datetime.datetime.strftime(start_date, "%m/%d/%Y"))
+
+ inv = Invoice(user=driver, invoice_date=start_date, due_date=due_date)
+
+ inv.populate_bill_to()
+ inv.populate_owner()
+ inv.set_invoice_id()
+
+ inv.save()
+
+ inv.populate_items(start_date=wk['start_date'], end_date=wk['end_date'])
+
+ return redirect(reverse('invoice_list'))
+
+ # print(start_date)
+ # print(wk)
+ # print(driver)
+ # print(inv)
+
+
+
+
+# class InvoiceEdit(UserPassesTestMixin, UpdateView):
+# template_name = "dispatch/invoice/edit.html"
+# model = Invoice
+# fields = ['invoice_date','due_date']
+#
+# def test_func(self):
+# # Seems a little hacky at first but it works!
+# return self.request.user.is_superuser or \
+# self.get_object().user.pk is self.request.user.pk
+#
+# class InvoiceCreate(CreateView):
+# template_name = "dispatch/invoice/create.html"
+# model = Invoice
+# fields = ['invoice_date', 'due_date']
+#
+# def get(self,request):
+# if request.user.is_superuser:
+# self.fields.insert(1,'user')
+# return super(LoadCreate, self).get(request)
+#
+# def form_valid(self, form):
+# if not self.request.user.is_superuser:
+# load = form.save(commit=False)
+# load.user = self.request.user
+# return super(LoadCreate, self).form_valid(form)
+
+class InvoiceDelete(UserPassesTestMixin, DeleteView):
+ template_name = "dispatch/invoice/list.html"
+ model = Invoice
+ success_url = reverse_lazy('invoice_list')
+
+ def test_func(self):
+ print (self.request.user.is_superuser)
+ print(self.get_object().user.pk is self.request.user.pk)
+ return self.request.user.is_superuser or \
+ self.get_object().user.pk is self.request.user.pk