You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.4 KiB
Python
88 lines
2.4 KiB
Python
from django.shortcuts import render, get_object_or_404
|
|
from django.utils import timezone
|
|
from datetime import timedelta
|
|
from .models import *
|
|
from django.http import JsonResponse, HttpResponse
|
|
from django.template.loader import get_template
|
|
|
|
|
|
# LISTING
|
|
def items(request, *args, **kwargs):
|
|
products = Item.objects.filter(type='Product').order_by('-id')
|
|
services = Item.objects.filter(type='Service').order_by('-id')
|
|
context = {
|
|
'products': products,
|
|
'services': services,
|
|
|
|
}
|
|
return render(request, 'listing_pages/items.html', context)
|
|
|
|
|
|
def orders(request, *args, **kwargs):
|
|
orders = Order.objects.all().order_by('-id')
|
|
context = {
|
|
'orders': orders,
|
|
}
|
|
return render(request, 'listing_pages/orders.html', context)
|
|
|
|
|
|
def invoices(request, *args, **kwargs):
|
|
invoices = Invoice.objects.all().order_by('-id')
|
|
|
|
context = {
|
|
'invoices': invoices,
|
|
}
|
|
|
|
return render(request, 'listing_pages/invoices.html', context)
|
|
|
|
|
|
#DETAILS
|
|
def invoice_details(request, order_id):
|
|
order = get_object_or_404(Order, id=order_id)
|
|
|
|
context = {
|
|
'order' : order,
|
|
}
|
|
|
|
return render(request, 'details_templates/invoice-details.html', context)
|
|
|
|
|
|
|
|
|
|
|
|
# TO FETCH THE ITEMS RELATED TO TH SELECTED CUSTOMER AND THE ITEMS THAT ARE NOT RELATED TO A CUSTOMER
|
|
def fetch_customer_items(request, customer_id):
|
|
customer = get_object_or_404(CustomerProfile, id=customer_id)
|
|
|
|
items_related_to_customer = Item.objects.filter(customer=customer)
|
|
|
|
items_without_customer = Item.objects.filter(customer__isnull=True)
|
|
|
|
data = {
|
|
'items_related_to_customer': list(items_related_to_customer.values('id', 'title')),
|
|
'items_without_customer': list(items_without_customer.values('id', 'title')),
|
|
}
|
|
|
|
return JsonResponse(data)
|
|
|
|
|
|
def fetch_customer_businesses(request, customer_id):
|
|
try:
|
|
customer_profile = CustomerProfile.objects.get(id=customer_id)
|
|
except CustomerProfile.DoesNotExist:
|
|
customer_profile = None
|
|
|
|
if customer_profile:
|
|
businesses = Business.objects.filter(customer=customer_profile)
|
|
# Create a list to hold dictionary representations of each business
|
|
business_data = []
|
|
for business in businesses:
|
|
business_data.append({
|
|
'id': business.id,
|
|
'name': business.name,
|
|
})
|
|
else:
|
|
business_data = None
|
|
|
|
return JsonResponse({'businesses': business_data})
|