Files

37 lines
1.5 KiB
Python

from datetime import date
from django.shortcuts import redirect
from django.contrib import messages
from django.views.generic import TemplateView
from web_project import TemplateLayout
from apps.transactions.models import Transaction
from apps.transactions.forms import TransactionForm
from django.contrib.auth.mixins import PermissionRequiredMixin
class TransactionAddView(PermissionRequiredMixin, TemplateView):
permission_required = ("transactions.add_transaction")
def get_context_data(self, **kwargs):
context = TemplateLayout.init(self, super().get_context_data(**kwargs))
context['current_date'] = date.today().strftime("%Y-%m-%d")
return context
def post(self, request):
form = TransactionForm(request.POST)
if form.is_valid():
if not self.transaction_exists(form.cleaned_data):
form.save()
messages.success(request, 'Transaction Added')
else:
messages.error(request, 'Transaction already exists')
else:
messages.error(request, 'Transaction Failed')
return redirect('transactions')
def transaction_exists(self, cleaned_data):
return Transaction.objects.filter(
customer__iexact=cleaned_data['customer'],
transaction_date=cleaned_data['transaction_date'],
due_date=cleaned_data['due_date'],
total=cleaned_data['total'],
status=cleaned_data['status']
).exists()