Some changes have been made
This commit is contained in:
@@ -36,19 +36,21 @@ def create_device(request):
|
||||
|
||||
|
||||
@login_required
|
||||
@role_required(["employee"])
|
||||
@role_required(["businessman"])
|
||||
def create_income(request):
|
||||
if request.method == "POST":
|
||||
form = IncomeForm(request.POST, user=request.user)
|
||||
if form.is_valid():
|
||||
income = form.save(commit=False)
|
||||
if request.user.role == "employee":
|
||||
income.amount = None
|
||||
income.save()
|
||||
form.save()
|
||||
return redirect("income_list")
|
||||
else:
|
||||
form = IncomeForm(user=request.user)
|
||||
return render(request, "common/create/income_create.html", {"form": form})
|
||||
|
||||
return render(
|
||||
request,
|
||||
"common/create/income_create.html",
|
||||
{"form": form, "title": "Kirim qo'shish"}
|
||||
)
|
||||
|
||||
@login_required
|
||||
@role_required(['manager', 'businessman'])
|
||||
|
||||
@@ -110,30 +110,43 @@ def toy_movement_list(request):
|
||||
return render(request, "common/lists/toy_movement_list.html", context)
|
||||
|
||||
@login_required
|
||||
@role_required(["manager", "businessman"])
|
||||
@role_required(["businessman"])
|
||||
def income_list(request):
|
||||
|
||||
if request.user.role == "businessman":
|
||||
incomes = Income.objects.all()
|
||||
elif request.user.role == "manager":
|
||||
incomes = Income.objects.filter(warehouse__region=request.user.region)
|
||||
|
||||
return render(request, "common/create/income_create.html", {"incomes": incomes})
|
||||
return render(
|
||||
request,
|
||||
"common/lists/income_list.html", # ✅ correct template
|
||||
{
|
||||
"incomes": incomes,
|
||||
"role": request.user.role, # ✅ important
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@role_required(["employee"])
|
||||
@role_required(["employee", "businessman", "manager"])
|
||||
def device_payment_list(request):
|
||||
# Employee only sees devices in his region
|
||||
devices = Device.objects.filter(
|
||||
district__region=request.user.region
|
||||
).order_by("due_date")
|
||||
user = request.user
|
||||
|
||||
if user.role == "employee":
|
||||
# Employee only sees devices in his region
|
||||
devices = Device.objects.filter(
|
||||
district__region=user.region
|
||||
).order_by("due_date")
|
||||
else:
|
||||
# Businessman and manager see ALL devices
|
||||
devices = Device.objects.all().order_by("due_date")
|
||||
|
||||
return render(
|
||||
request,
|
||||
"common/lists/device_payment_list.html",
|
||||
{
|
||||
"devices": devices,
|
||||
"title": "Arendalar"
|
||||
"title": "Arendalar",
|
||||
"is_employee": user.role == "employee",
|
||||
}
|
||||
)
|
||||
|
||||
@@ -167,3 +180,30 @@ def report_list(request):
|
||||
"title": "Hisobotlar"
|
||||
}
|
||||
)
|
||||
|
||||
@login_required
|
||||
@role_required(["employee"])
|
||||
def toy_movement_statistics(request):
|
||||
movements = ToyMovement.objects.select_related("device").order_by("-created_at")
|
||||
|
||||
# Date filtering
|
||||
date_from = request.GET.get("date_from")
|
||||
date_to = request.GET.get("date_to")
|
||||
device_id = request.GET.get("device")
|
||||
|
||||
if date_from:
|
||||
movements = movements.filter(created_at__date__gte=date_from)
|
||||
if date_to:
|
||||
movements = movements.filter(created_at__date__lte=date_to)
|
||||
if device_id:
|
||||
movements = movements.filter(device_id=device_id)
|
||||
|
||||
devices = Device.objects.all().order_by("address")
|
||||
|
||||
return render(request, "common/lists/toy_movement_statistics.html", {
|
||||
"movements": movements,
|
||||
"devices": devices,
|
||||
"date_from": date_from or "",
|
||||
"date_to": date_to or "",
|
||||
"selected_device": device_id or "",
|
||||
})
|
||||
Reference in New Issue
Block a user