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")
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 })
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 } )
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 })
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")
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")
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")
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")
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 })
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")
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