예제 #1
0
    def get(self, request, *args, **kwargs):

        reload(sys)
        datos_id = self.kwargs['pk']
        sys.setdefaultencoding("utf-8")
        pdf = class_report.PDFBV(orientation='P', unit='mm', format='letter')

        pdf.alias_nb_pages()
        pdf.add_page()
        pdf.set_fill_color(157, 188, 201)
        pdf.set_text_color(24, 29, 31)
        pdf.set_margins(10, 10, 10)

        pdf.set_font('Arial', 'B', 12)
        pdf.set_text_color(27, 128, 172)
        # pdf.cell(250, 5, 'Patriotas BVA 200', '', 1, 'C', 0)

        patrullero = Datos.objects.all()
        patrullero_f = patrullero.filter(usuario_id=datos_id)
        patrullero_v = patrullero_f.values('cedula', 'p_nombre', 's_nombre',
                                           'p_apellido', 's_apellido', 'cargo')

        cedula = '{:,}'.format(patrullero_v[0]['cedula']).replace(",", ".")

        print cedula

        m_x = 20

        pdf.set_x(m_x)
        pdf.set_text_color(0, 0, 0)
        pdf.set_font('Arial', 'B', 11)  # Fuente de la Letra
        pdf.cell(15, 5, 'Cedula:', 0, 0, 'L', 0)
        pdf.set_font('Arial', '', 11)  # Fuente de la Letra
        pdf.cell(22, 5, str(patrullero_v[0]['cedula']), 0, 0, 'L', 0)

        s_nombre_p = ''
        if patrullero_v[0]['s_nombre'] is not None:
            s_nombre_p = patrullero_v[0]['s_nombre']

        s_apellido_p = ''
        if patrullero_v[0]['s_apellido'] is not None:
            s_apellido_p = patrullero_v[0]['s_apellido']

        pdf.set_text_color(0, 0, 0)
        pdf.set_font('Arial', 'B', 11)  # Fuente de la Letra
        pdf.cell(17, 5, 'Nombre:', 0, 0, 'L', 0)
        pdf.set_font('Arial', '', 11)  # Fuente de la Letra
        pdf.cell(
            10, 5,
            str(patrullero_v[0]['p_nombre'] + ' ' + s_nombre_p + ' ' +
                patrullero_v[0]['p_apellido'] + ' ' +
                s_apellido_p).decode("UTF-8"), 0, 0, 'L', 0)

        pdf.ln(15)
        pdf.set_font('Arial', 'B', 11)  # Fuente de la Letra
        pdf.cell(180, 5, 'Lista 1X10', 0, 0, 'C', 0)
        pdf.ln()

        pdf.set_x(m_x)
        pdf.set_text_color(0, 0, 0)
        pdf.set_fill_color(217, 237, 247)
        pdf.set_font('Arial', 'B', 8)  # Fuente de la Letra
        pdf.cell(10, 5, 'Nº'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
        pdf.cell(18, 5, 'Cédula'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
        pdf.cell(70, 5, 'Nombre'.decode("UTF-8"), 'LTRB', 0, 'L', 1)
        pdf.cell(80, 5, 'Cargo', 'LTRB', 1, 'L', 1)

        datos = UnoDiezInti.objects.all()
        datos_i = datos.filter(usuario_id=datos_id)
        datos_v = datos_i.values(
            "datos_id", 'datos__cedula', 'datos__p_nombre', 'datos__s_nombre',
            'datos__p_apellido', 'datos__s_apellido', 'datos__cargo',
            'datos__departamento').distinct().order_by('datos__cedula')

        i = 1
        j = 1
        for d in datos_v:

            if j == 45:
                pdf.add_page()
                pdf.set_x(m_x)
                pdf.set_text_color(0, 0, 0)
                pdf.set_fill_color(217, 237, 247)
                pdf.set_font('Arial', 'B', 8)  # Fuente de la Letra
                pdf.cell(10, 5, 'Nº'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
                pdf.cell(18, 5, 'Cédula'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
                pdf.cell(70, 5, 'Nombre'.decode("UTF-8"), 'LTRB', 0, 'L', 1)
                pdf.cell(80, 5, 'Cargo', 'LTRB', 1, 'L', 1)
                j = 1

            resto = i % 2
            s_nombre = ''
            if d['datos__s_nombre'] is not None:
                s_nombre = d['datos__s_nombre']

            s_apellido = ''
            if d['datos__s_apellido'] is not None:
                s_apellido = d['datos__s_apellido']

            pdf.set_x(m_x)
            pdf.set_fill_color(255, 255, 255)

            if resto == 0:
                pdf.set_fill_color(239, 239, 239)

            pdf.set_font('Arial', '', 8)  # Fuente de la Letra
            pdf.cell(10, 5, str(i), 'LTRB', 0, 'R', 1)
            pdf.cell(18, 5, str(d['datos__cedula']), 'LTRB', 0, 'R', 1)
            pdf.cell(
                70, 5,
                str(d['datos__p_nombre']).decode("UTF-8") + ' ' +
                str(s_nombre).decode("UTF-8") + ' ' +
                str(d['datos__p_apellido']).decode("UTF-8") + ' ' +
                str(s_apellido).decode("UTF-8"), 'LTRB', 0, 'L', 1)
            pdf.cell(80, 5, str(d['datos__cargo']), 'LTRB', 1, 'L', 1)

            i += 1
            j += 1
        arch = 'patrullero'
        ruta_reporte = settings.MEDIA_PDF
        archivo = ruta_reporte + 'patriotas.pdf'
        pdf.output(archivo, 'F')
        archivo = open(archivo, "r")
        response = HttpResponse(archivo.read(), content_type='application/pdf')
        response['Content-Disposition'] = 'inline; filename="' + str(
            arch) + '.pdf"'
        return response
예제 #2
0
    def get(self, request, *args, **kwargs):

        reload(sys)

        sys.setdefaultencoding("utf-8")
        pdf = class_report.PDFBV(orientation='P', unit='mm', format='letter')

        pdf.set_author('Marcel Arcuri')
        pdf.alias_nb_pages()
        pdf.add_page()
        pdf.set_fill_color(157, 188, 201)
        pdf.set_text_color(24, 29, 31)
        pdf.set_margins(10, 10, 10)

        pdf.set_font('Arial', 'B', 12)
        pdf.set_text_color(27, 128, 172)
        # pdf.cell(250, 5, 'Patriotas BVA 200', '', 1, 'C', 0)
        pdf.ln()

        pdf.set_x(40)
        pdf.set_text_color(0, 0, 0)
        pdf.set_fill_color(217, 237, 247)
        pdf.set_font('Arial', 'B', 8)  # Fuente de la Letra
        pdf.cell(10, 5, 'Nº'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
        pdf.cell(18, 5, 'Cédula'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
        pdf.cell(80, 5, 'Nombre'.decode("UTF-8"), 'LTRB', 0, 'L', 1)
        pdf.cell(22, 5, 'Cant Patrullas', 'LTRB', 1, 'L', 1)
        datos = UnoDiezInti.objects.all()
        datos_v = datos.values("datos_id", 'datos__cedula', 'datos__p_nombre',
                               'datos__s_nombre', 'datos__p_apellido',
                               'datos__s_apellido').annotate(
                                   total=Count("datos_id")).order_by('-total')

        i = 1
        j = 1
        for d in datos_v:

            if j == 45:
                pdf.add_page()
                pdf.set_x(40)
                pdf.set_text_color(0, 0, 0)
                pdf.set_fill_color(217, 237, 247)
                pdf.set_font('Arial', 'B', 8)  # Fuente de la Letra
                pdf.cell(10, 5, 'Nº'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
                pdf.cell(18, 5, 'Cédula'.decode("UTF-8"), 'LTRB', 0, 'C', 1)
                pdf.cell(80, 5, 'Nombre'.decode("UTF-8"), 'LTRB', 0, 'L', 1)
                pdf.cell(22, 5, 'Cant Patrullas', 'LTRB', 1, 'L', 1)
                j = 1

            resto = i % 2
            s_nombre = ''
            if d['datos__s_nombre'] is not None:
                s_nombre = d['datos__s_nombre']

            s_apellido = ''
            if d['datos__s_apellido'] is not None:
                s_apellido = d['datos__s_apellido']

            pdf.set_x(40)
            pdf.set_fill_color(255, 255, 255)

            if resto == 0:
                pdf.set_fill_color(239, 239, 239)

            pdf.set_font('Arial', '', 8)  # Fuente de la Letra
            pdf.cell(10, 5, str(i), 'LTRB', 0, 'R', 1)
            pdf.cell(18, 5, str(d['datos__cedula']), 'LTRB', 0, 'R', 1)
            pdf.cell(
                80, 5,
                str(d['datos__p_nombre']).decode("UTF-8") + ' ' +
                str(s_nombre).decode("UTF-8") + ' ' +
                str(d['datos__p_apellido']).decode("UTF-8") + ' ' +
                str(s_apellido).decode("UTF-8"), 'LTRB', 0, 'L', 1)
            pdf.cell(22, 5, str(d['total']), 'LTRB', 1, 'R', 1)
            i += 1
            j += 1
        arch = 'patrullero'
        ruta_reporte = settings.MEDIA_PDF
        archivo = ruta_reporte + 'patriotas.pdf'
        pdf.output(archivo, 'F')
        archivo = open(archivo, "r")
        response = HttpResponse(archivo.read(), content_type='application/pdf')
        response['Content-Disposition'] = 'inline; filename="' + str(
            arch) + '.pdf"'
        return response