Quick and dirty voucher use report
Dumps a list of voucher code, invoice id, invoice details in a listreport.
This commit is contained in:
parent
8c0d42ee7f
commit
653cd80891
1 changed files with 19 additions and 1 deletions
|
@ -9,7 +9,7 @@ from django.contrib.auth.decorators import user_passes_test
|
|||
from django.contrib.auth.models import User
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import models
|
||||
from django.db.models import F, Q
|
||||
from django.db.models import F, Q, Subquery, OuterRef
|
||||
from django.db.models import Count, Max, Sum
|
||||
from django.db.models import Case, When, Value
|
||||
from django.db.models.fields.related import RelatedField
|
||||
|
@ -314,6 +314,24 @@ def limits(request, form):
|
|||
headings = ["Discount", "Quantity"]
|
||||
reports.append(ListReport('Discounts', headings, data))
|
||||
|
||||
vprod=Subquery(conditions.VoucherFlag.objects.filter(
|
||||
voucher__code__in=OuterRef("cart__vouchers__code")).values("products"))
|
||||
vcat=Subquery(conditions.VoucherFlag.objects.filter(
|
||||
voucher__code__in=OuterRef("cart__vouchers__code")).values("categories"))
|
||||
invoices_using_vouchers=commerce.Invoice.objects.filter((
|
||||
Q(lineitem__product__in=vprod)|
|
||||
Q(lineitem__product__category__in=vcat)
|
||||
)).filter(
|
||||
status=commerce.Invoice.STATUS_PAID).order_by(
|
||||
"cart__vouchers__code").select_related("user")
|
||||
|
||||
vouchers = []
|
||||
for inv in invoices_using_vouchers:
|
||||
code=inv.cart.vouchers.all().values("code")[0]["code"]
|
||||
vouchers.append((code,inv.id,inv))
|
||||
voucher_headings = ["Code","Invoice#","Details"]
|
||||
reports.append(ListReport('Vouchers', voucher_headings, vouchers))
|
||||
|
||||
return reports
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue