def ReporteClientesPDF(request): # Obtenemos los clientes de nuestra base de datos print("GET", request.GET) print("Secion", request.session) clientes = Cliente.objects.habilitados().filter( tools.paramsToFilter(request.session, Cliente)) print("Hola desde PDF", clientes) template = loader.get_template('GestionDeClientes/verHabilitados.html') contexto = { 'clientes': clientes, 'usuario': request.user, } var = 1 if (var == 1): # Indicamos el tipo de contenido a devolver, en este caso un pdf response = HttpResponse(content_type='application/pdf') # La clase io.BytesIO permite tratar un array de bytes como un fichero binario, se utiliza como almacenamiento temporal buffer = BytesIO() # Canvas nos permite hacer el reporte con coordenadas X y Y pdf = canvas.Canvas(buffer) # Llamo al método cabecera donde están definidos los datos que aparecen en la cabecera del reporte. cabecera(pdf) y = 500 tabla(pdf, y, clientes) print("Adentro", clientes) # Con show page hacemos un corte de página para pasar a la siguiente pdf.showPage() pdf.save() pdf = buffer.getvalue() buffer.close() response.write(pdf) return response return HttpResponse(template.render(contexto, request))
def verDeshabilitados(request): serviciosQuery = Servicio.objects.deshabilitados() serviciosQuery = serviciosQuery.filter( tools.paramsToFilter(request.GET, Servicio)) template = loader.get_template('GestionDeServicios/verDeshabilitados.html') paginator = Paginator(serviciosQuery, 1) page = request.GET.get('page') try: servicios = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. servicios = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. servicios = paginator.page(paginator.num_pages) context = { 'serviciosQuery': serviciosQuery, 'usuario': request.user, 'servicios': servicios, } return HttpResponse(template.render(context, request))
def listar(request): gestor = GestorListadoQueryset(orden=[ ["orden_fecha", "Fecha"], ["orden_importeTotal", "Importe Total"], ["orden_factura", "Factura"], ["orden_baja", "Baja"], ]) pagosQuery = Pago.objects.all() pagos = pagosQuery.filter(tools.paramsToFilter(request.GET, Pago)) gestor.cargar(request, pagos) gestor.ordenar() #[TODO] NO ANDA ESTE METODO. template = loader.get_template('GestionDePagos/listar.html') paginator = Paginator(pagosQuery, 1) page = request.GET.get('page') try: pagos = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. pagos = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. pagos = paginator.page(paginator.num_pages) contexto = { 'pagosQuery': pagosQuery, 'usuario': request.user, 'pagos': pagos, 'gestor': gestor, } return HttpResponse(template.render(contexto, request))
def ReporteClientesExcel(request): # Obtenemos todos los clientes de nuestra base de datos clientes = Cliente.objects.habilitados() clientes = clientes.filter(tools.paramsToFilter(request.GET, Cliente)) print(clientes) template = loader.get_template('GestionDeClientes/verHabilitados.html') contexto = { 'clientes': clientes, 'usuario': request.user, } var = 1 if (var == 1): # Creamos el libro de trabajo wb = Workbook() # Definimos como nuestra hoja de trabajo, la hoja activa, por defecto la primera del libro ws = wb.active # En la celda B1 ponemos el texto 'REPORTE DE CLIENTES' ws['B1'] = 'REPORTE DE CLIENTES' # Juntamos las celdas desde la B1 hasta la E1, formando una sola celda ws.merge_cells('B1:E1') # Creamos los encabezados desde la celda B3 hasta la E3 ws['B3'] = 'DNI' ws['C3'] = 'NOMBRES' ws['D3'] = 'APELLIDOS' ws['E3'] = 'DIRECCION' cont = 4 # Recorremos el conjunto de personas y vamos escribiendo cada uno de los datos en las celdas for cliente in clientes: ws.cell(row=cont, column=2).value = cliente.dniCuit ws.cell(row=cont, column=3).value = cliente.nombres ws.cell(row=cont, column=4).value = cliente.apellidos ws.cell(row=cont, column=5).value = cliente.direccion cont = cont + 1 # Establecemos el nombre del archivo nombre_archivo = "ReporteClientesExcel.xlsx" # Definimos que el tipo de respuesta a devolver es un archivo de microsoft excel response = HttpResponse(content_type="application/ms-excel") contenido = "attachment; filename={0}".format(nombre_archivo) response["Content-Disposition"] = contenido wb.save(response) return response return HttpResponse(template.render(contexto, request))
def listar(request): gestor = GestorListadoQueryset(orden=[ ["orden_tipo", "Tipo"], ["orden_cliente", "Cliente"], ["orden_fecha", "Fecha"], ["orden_total", "Total"], ["orden_recargo", "Recargo"], ["orden_descuento", "Descuento"], ]) facturasQuery = Factura.objects.all() facturasQuery = facturasQuery.filter( tools.paramsToFilter(request.GET, Factura)) gestor.cargar(request, facturasQuery) # gestor.ordenar()//[TODO] ARREGLAR. template = loader.get_template('GestionDeFacturas/listar.html') paginator = Paginator(facturasQuery, 3) page = request.GET.get('page') try: facturas = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. facturas = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. facturas = paginator.page(paginator.num_pages) contexto = { 'facturasQuery': facturasQuery, 'usuario': request.user, 'facturas': facturas, 'gestor': gestor, } return HttpResponse(template.render(contexto, request))
def verHabilitados(request): rubrosQuery = Rubro.objects.habilitados() rubrosQuery = rubrosQuery.filter(tools.paramsToFilter(request.GET, Rubro)) template = loader.get_template('GestionDeRubros/verHabilitados.html') paginator = Paginator(rubrosQuery, 3) page = request.GET.get('page') try: rubros = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. rubros = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. rubros = paginator.page(paginator.num_pages) contexto = { 'rubrosQuery': rubrosQuery, 'usuario': request.user, 'rubros': rubros, } return HttpResponse(template.render(contexto, request))