Exemplo n.º 1
0
def invoice_pdf(request, companies=None):
    if companies is None:
        companies = Company.objects.all()
    form = InvoiceForm(companies, request.GET)
    if form.is_valid():
        lesson_attendees = LessonAttendee.objects.filter(
            lesson__real_end__range=(form.cleaned_data["start"], form.cleaned_data["end"])
        )
        lesson_attendees = lesson_attendees.filter(course_member__student__company__in=form.cleaned_data["companies"])
        pdf = InvoicePdfGenerator().generate(
            (lesson_attendees.all(), form.cleaned_data["start"], form.cleaned_data["end"])
        )
        return HttpResponse(pdf, "application/pdf")
    else:
        return HttpResponse(form.errors.as_ul)
Exemplo n.º 2
0
def book_invoice_dict(request, companies, acompanies):
    form = InvoiceForm(companies, request.GET)
    if form.is_valid():
        invoice_companies = set(form.cleaned_data["companies"])
        if acompanies is None:
            invoice_companies = (
                Company.objects.all() if not form.cleaned_data["companies"] else set(form.cleaned_data["companies"])
            )
        else:
            invoice_companies &= set(acompanies)
        ret_companies = Company.objects.book_invoice(
            companies=invoice_companies, start=form.cleaned_data["start"], end=form.cleaned_data["end"]
        )
        total_book_invoice_sum = sum([a.book_invoice_students_sum for a in ret_companies])
        context = {
            "object_list": ret_companies,
            "total_book_invoice_sum": total_book_invoice_sum,
            "show_students": form.cleaned_data["show_students"],
        }
    else:
        context = {"nolist": True, "object_list": companies}
    return context
Exemplo n.º 3
0
def invoice(
    request, companies=None, template="reports/invoice.html", extra_context=None, empty_when_no_companies=False
):
    acompanies = companies
    if companies is None:
        companies = Company.objects.all()
    if request.GET:
        form = InvoiceForm(companies, request.GET)
        if form.is_valid():
            invoice_companies = set(form.cleaned_data["companies"])
            if acompanies is None:
                invoice_companies = (
                    Company.objects.all() if not form.cleaned_data["companies"] else set(form.cleaned_data["companies"])
                )
            else:
                invoice_companies &= set(acompanies)
            ret_companies = Company.objects.invoice(
                companies=invoice_companies, start=form.cleaned_data["start"], end=form.cleaned_data["end"]
            )
            total_length = sum([a.invoice_length for a in ret_companies])
            total_price = sum([a.invoice_price for a in ret_companies])
            total_count = sum([a.invoice_count for a in ret_companies])
            context = {
                "object_list": ret_companies,
                "total_length": total_length,
                "total_price": total_price,
                "total_count": total_count,
                "show_students": form.cleaned_data["show_students"],
            }
        else:
            context = {"nolist": True, "object_list": companies}
    else:
        context = {"nolist": True, "object_list": companies}
        form = InvoiceForm(companies=companies, initial={"companies": ",".join(str(a.pk) for a in companies)})
    context["form"] = form
    if extra_context:
        context.update(extra_context)
    return render_to_response(template, RequestContext(request, context))