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))
Beispiel #2
0
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))