Exemple #1
0
 def get(self, request, *args, **kwargs):
     ymd: str = request.GET['ymd']
     selectedRows: str = request.GET['selectedRows']
     orderLocationCode: str = request.GET['orderLocationCode']
     location = Location.objects.get(code=orderLocationCode)
     moneyMark: str = request.GET['moneyMark']
     yyyymmdd = "{}/{}/{}".format(ymd[0:4], ymd[4:6], ymd[6:])
     orders = create_pdf_selected_orders(selectedRows.split(','))
     sumTotalCount, sumSupplyPrice, sumVat, sumTotal = create_pdf_sum(
         orders)
     sumData = {
         'sumTotalCount': sumTotalCount['sumTotalCount'],
         'sumSupplyPrice': sumSupplyPrice['sumSupplyPrice'],
         'sumVat': sumVat['sumVat'],
         'sumTotal': sumTotal,
         'moneyMark': moneyMark
     }
     context_dict = {
         "yyyymmdd": yyyymmdd,
         "orders": orders,
         "sumData": sumData,
         "location": location,
     }
     pdf = render_to_pdf('invoice/주문거래명세표.html', context_dict)
     if pdf:
         response = HttpResponse(pdf, content_type='application/pdf')
         filename = "invoice.pdf"
         content = "inline; filename=%s" % (filename)
         download = request.GET.get("download")
         if download:
             content = "attachment; filename=%s" % (filename)
         response['Content-Disposition'] = content
         return response
     return HttpResponse("Not found")
Exemple #2
0
def pdf_meals(request):
    if request.user.is_anonymous() or not can_read(request.user):
        data = {
            'login_form': AuthenticationForm(request),
            'static_version': STATIC_VERSION,
            'is_debug': settings.DEBUG,
        }
        return render(request, 'login.html', data)

    if request.method == 'GET':
        date_from = request.GET.get('date_from', None)
        date_to = request.GET.get('date_to', None)
        if not date_from or not date_to:
            return HttpResponseBadRequest(
                "bad request: missing date_from or date_to")
        meals = Meal.get_meals_sum(date_from, date_to)
        dates = generate_dates_list(to_datetime(date_from + ' 00:00:00'),
                                    to_datetime(date_to + ' 00:00:00'),
                                    '%Y-%m-%d')
        return render_to_pdf(
            'pdf/pdf_meals.html',
            'strava_' + str(date_from) + '_' + str(date_to), {
                'pagesize':
                'A4',
                'title':
                'beMyGuest v Sampore | Strava | ' + str(date_from) + '_' +
                str(date_to),
                'meals':
                meals,
                'dates':
                dates
            })
Exemple #3
0
def pdf_meals(request):
    if request.user.is_anonymous() or not can_read(request.user):
        data = {
            'login_form': AuthenticationForm(request),
            'static_version': STATIC_VERSION,
            'is_debug' : settings.DEBUG,
        }
        return render(request, 'login.html', data)

    if request.method == 'GET':
        date_from = request.GET.get('date_from', None)
        date_to = request.GET.get('date_to', None)
        if not date_from or not date_to:
            return HttpResponseBadRequest("bad request: missing date_from or date_to")
        meals = Meal.get_meals_sum(date_from, date_to)
        dates = generate_dates_list(to_datetime(date_from + ' 00:00:00'), to_datetime(date_to + ' 00:00:00'), '%Y-%m-%d')
        return render_to_pdf(
                'pdf/pdf_meals.html',
                'strava_' + str(date_from) + '_' + str(date_to),
                {
                    'pagesize': 'A4',
                    'title': 'beMyGuest v Sampore | Strava | ' + str(date_from) + '_' + str(date_to),
                    'meals': meals,
                    'dates': dates
                }
            )
Exemple #4
0
def pdf_occupation(request):
    if request.user.is_anonymous() or not can_read(request.user):
        data = {
            'login_form': AuthenticationForm(request),
            'static_version': STATIC_VERSION,
            'is_debug': settings.DEBUG,
        }
        return render(request, 'login.html', data)

    if request.method == 'GET':
        date_from = request.GET.get('date_from', None)
        date_to = request.GET.get('date_to', None)
        out = request.GET.get('out', None)
        if not date_from or not date_to:
            return HttpResponseBadRequest(
                "bad request: missing date_from or date_to")
        occupation = RoomReservation.get_occupation(
            to_datetime(date_from + ' 00:00:00'),
            to_datetime(date_to + ' 23:59:59'))
        dates = generate_dates_list(to_datetime(date_from + ' 00:00:00'),
                                    to_datetime(date_to + ' 00:00:00'),
                                    '%Y-%m-%d')
        rooms = []
        for house in House.objects.all().prefetch_related(
                Prefetch('rooms', queryset=Room.objects.all())):
            for room in house.rooms.all():
                rooms.append(serialize_room(room))
        if (out == 'pdf'):
            return render_to_pdf(
                'pdf/pdf_occupation.html',
                'obsadenost_' + str(date_from) + '_' + str(date_to), {
                    'pagesize':
                    'A4',
                    'title':
                    'beMyGuest v Sampore | Obsadenost | ' + str(date_from) +
                    '_' + str(date_to),
                    'occupation':
                    occupation,
                    'dates':
                    dates,
                    'rooms':
                    rooms
                })
        else:
            return render(
                request, 'pdf/pdf_occupation.html', {
                    'pagesize':
                    'A4',
                    'title':
                    'beMyGuest v Sampore | Obsadenost | ' + str(date_from) +
                    '_' + str(date_to),
                    'occupation':
                    occupation,
                    'dates':
                    dates,
                    'rooms':
                    rooms
                })
Exemple #5
0
    def get(self, request, *args, **kwargs):
        ymd = request.GET['ymd']
        yyyymmdd = "{}/{}/{}".format(ymd[0:4], ymd[4:6], ymd[6:])
        orderLocationCode = request.GET['orderLocationCode']
        moneyMark = request.GET['moneyMark']
        location = Location.objects.get(code=orderLocationCode)
        egg_location = Location.objects.filter(
            codeName=location.codeName).filter(type='07').first()
        orders = create_pdf_orders(ymd, location)

        if egg_location:
            eggs = Egg.objects.filter(ymd=ymd).filter(locationCode=egg_location) \
                .values('code', 'codeName', 'price') \
                .annotate(specialTag=Value('', CharField())) \
                .annotate(memo=F('memo')) \
                .annotate(totalCount=ABS(Sum('count'))) \
                .annotate(
                pricePerEa=ExpressionWrapper(Round(F('price') / F('totalCount')), output_field=IntegerField())) \
                .annotate(totalPrice=F('price')) \
                .annotate(vat=Value(1, IntegerField())) \
                .annotate(supplyPrice=ExpressionWrapper(Round(F('totalPrice') / F('vat')), output_field=IntegerField())) \
                .annotate(vatPrice=F('totalPrice') - F('supplyPrice'))
            orders = orders.union(eggs)

        sumTotalCount, sumSupplyPrice, sumVat, sumTotal = create_pdf_sum(
            orders)
        sumData = {
            'sumTotalCount': sumTotalCount['sumTotalCount'],
            'sumSupplyPrice': sumSupplyPrice['sumSupplyPrice'],
            'sumVat': sumVat['sumVat'],
            'sumTotal': sumTotal,
            'moneyMark': moneyMark
        }
        context_dict = {
            "yyyymmdd": yyyymmdd,
            "orders": orders,
            "sumData": sumData,
            "location": location,
        }
        pdf = render_to_pdf('invoice/주문거래명세표.html', context_dict)
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "invoice.pdf"
            content = "inline; filename=%s" % (filename)
            download = request.GET.get("download")
            if download:
                content = "attachment; filename=%s" % (filename)
            response['Content-Disposition'] = content
            return response
        return HttpResponse("Not found")
Exemple #6
0
    def get(self, request, *args, **kwargs):
        template = get_template('report/report_user.html')
        context = {
            'students' : CurriculoAluno.objects.all()
        }
        html = template.render(context)

        pdf = render_to_pdf('report/report_user.html', context)
        if pdf:
            reponse = HttpResponse(pdf, content_type='application/pdf')
            filename = "Invoice_%s.pdf" %("12341231")
            content = "inline; filename='%s'" % (filename)

            download = request.GET.get("download")
            if download:
                content = "attachement; filename='%s'" % (filename)
            reponse['Content-Disposition'] = content
            return reponse
        return  HttpResponse("Not Found")
Exemple #7
0
    def get(self, request, *args, **kwargs):
        template = get_template('plano_de_curso.html')
        context = {
            "plano": PlanoDisciplina.objects.all()[0],
        }
        html = template.render(context)

        pdf = render_to_pdf('plano_de_curso.html', context)
        if pdf:
            reponse = HttpResponse(pdf, content_type='application/pdf')
            filename = "Invoice_%s.pdf" % ("plano_de_curso")
            content = "inline; filename='%s'" % (filename)

            download = request.GET.get("download")
            if download:
                content = "attachement; filename='%s'" % (filename)
            reponse['Content-Disposition'] = content
            return reponse
        return HttpResponse("Not Found")
Exemple #8
0
 def get(self, request, *args, **kwargs):
     template = get_template('reports/cheque-regularizado.html')
     queryset = Cheque.objects.filter(estado_cheque='Regularizado')
     context = {
         "queryset": queryset,
         "data": timezone.now()
     }
     html = template.render(context)
     pdf = render_to_pdf('reports/cheque-regularizado.html', context)
     if pdf:
         response = HttpResponse(pdf, content_type='application/pdf')
         filename = "Cheques_%s.pdf" %("12341231")
         content = "inline; filename='%s'" %(filename)
         download = request.GET.get("download")
         if download:
             content = "attachment; filename='%s'" %(filename)
         response['Content-Disposition'] = content
         return response
     return HttpResponse("Not found")
Exemple #9
0
def pdf_occupation(request):
    if request.user.is_anonymous() or not can_read(request.user):
        data = {
            'login_form': AuthenticationForm(request),
            'static_version': STATIC_VERSION,
            'is_debug' : settings.DEBUG,
        }
        return render(request, 'login.html', data)

    if request.method == 'GET':
        date_from = request.GET.get('date_from', None)
        date_to = request.GET.get('date_to', None)
        out = request.GET.get('out', None)
        if not date_from or not date_to:
            return HttpResponseBadRequest("bad request: missing date_from or date_to")
        occupation = RoomReservation.get_occupation(to_datetime(date_from + ' 00:00:00'), to_datetime(date_to + ' 23:59:59'))
        dates = generate_dates_list(to_datetime(date_from + ' 00:00:00'), to_datetime(date_to + ' 00:00:00'), '%Y-%m-%d')
        rooms = []
        for house in House.objects.all().prefetch_related(Prefetch('rooms', queryset=Room.objects.all())):
            for room in house.rooms.all():
                rooms.append(serialize_room(room))
        if (out == 'pdf'):
            return render_to_pdf(
                    'pdf/pdf_occupation.html',
                    'obsadenost_' + str(date_from) + '_' + str(date_to),
                    {
                        'pagesize': 'A4',
                        'title': 'beMyGuest v Sampore | Obsadenost | ' + str(date_from) + '_' + str(date_to),
                        'occupation': occupation,
                        'dates': dates,
                        'rooms': rooms
                    }
                )
        else:
            return render(request, 'pdf/pdf_occupation.html', {
                    'pagesize': 'A4',
                    'title': 'beMyGuest v Sampore | Obsadenost | ' + str(date_from) + '_' + str(date_to),
                    'occupation': occupation,
                    'dates': dates,
                    'rooms': rooms
                })
Exemple #10
0
 def get(self, request, *args, **kwargs):
     ymd = request.GET['ymd']
     yyyymmdd = "{}/{}/{}".format(ymd[0:4], ymd[4:6], ymd[6:])
     locationCode = request.GET['locationCode']
     moneyMark = request.GET['moneyMark']
     location = Location.objects.get(code=locationCode)
     eggs = Egg.objects.filter(ymd=ymd).filter(locationCode=location) \
         .values('code', 'codeName', 'price', 'memo') \
         .annotate(totalCount=ABS('count'))
     sumTotalCount = eggs.aggregate(sumTotalCount=Sum('totalCount'))
     sumSupplyPrice = 0
     sumVat = 0
     sumTotal = eggs.aggregate(sumTotalPrice=Sum('price'))
     sumData = {
         'sumTotalCount': sumTotalCount['sumTotalCount'],
         'sumSupplyPrice': sumSupplyPrice,
         'sumVat': sumVat,
         'sumTotal': sumTotal['sumTotalPrice'],
         'moneyMark': moneyMark
     }
     context_dict = {
         "yyyymmdd": yyyymmdd,
         "eggs": eggs,
         "sumData": sumData,
         "location": location,
     }
     pdf = render_to_pdf('invoice/원란거래명세표.html', context_dict)
     if pdf:
         response = HttpResponse(pdf, content_type='application/pdf')
         filename = "invoice.pdf"
         content = "inline; filename=%s" % (filename)
         download = request.GET.get("download")
         if download:
             content = "attachment; filename=%s" % (filename)
         response['Content-Disposition'] = content
         return response
     return HttpResponse("Not found")
Exemple #11
0
    def get(self, request, *args, **kwargs):
        # Authenticate by forcing JWT from ?code=...
        request.META['HTTP_AUTHORIZATION'] = "Bearer " + request.GET.get(
            'code', '')
        jwtAuth = JWTAuthentication()
        authUser = jwtAuth.authenticate(request)

        if authUser is None:
            return errorResponse("Valid Code Required", [],
                                 httpStatus=status.HTTP_401_UNAUTHORIZED)
        request.user = authUser[0]

        # Get order
        order_pk = self.kwargs.get('order_pk', None)
        try:
            order = Order.objects.all() \
               .filter(owner__pk=request.user.pk, status__in=OrderStatus.VALIDATED_LIST.value) \
               .prefetch_related('orderlines', 'orderlines__orderlineitems', 'orderlines__item',
                'orderlines__orderlineitems__orderlinefields', 'orderlines__orderlineitems__orderlinefields__field') \
               .get(pk=order_pk)
        except Order.DoesNotExist as e:
            return errorResponse('La commande est introuvable', [],
                                 httpStatus=status.HTTP_404_NOT_FOUND)

        # Process tickets
        tickets = list()
        for orderline in order.orderlines.all():
            for orderlineitem in orderline.orderlineitems.all():
                # Process QRCode
                qr_buffer = BytesIO()
                code = data_to_qrcode(orderlineitem.id)
                code.save(qr_buffer)
                qr_code = base64.b64encode(
                    qr_buffer.getvalue()).decode("utf-8")

                # Add Nom et Prénom to orderline
                for orderlinefield in orderlineitem.orderlinefields.all():
                    if orderlinefield.field.name == 'Nom':
                        first_name = orderlinefield.value
                        continue
                    if orderlinefield.field.name == 'Prénom':
                        last_name = orderlinefield.value

                # Add a ticket with this data
                tickets.append({
                    'nom': first_name,
                    'prenom': last_name,
                    'qr_code': qr_code,
                    'item': orderline.item,
                    'uuid': orderlineitem.id,
                })
        data = {'tickets': tickets, 'order': order}

        # Render template
        template = 'pdf/template_order.html'
        if request.GET.get('type', 'pdf') == 'html':
            response = render(request, template, data)
        else:
            pdf = render_to_pdf(template, data)
            response = HttpResponse(pdf, content_type='application/pdf')
            if request.GET.get('action', 'download') != 'view':
                response[
                    'Content-Disposition'] = 'attachment;filename="commande_' + order.sale.name + '_' + order_pk + '.pdf"'

        return response