Ejemplo n.º 1
0
def build_tabla_contenido(dic_material, lineas_ensayo, dic_peticion):
    """
    Devuelve una lista de párrafos y líneas horizontales con las cuatro filas 
    de material, ensayos, observaciones y persona que recogió el pedido. 
    Extrae los datos que necesita de los diccionarios recibidos.
    """
    linea = LineaHorizontal(ANCHO)# - MARGEN_IZQUIERDO - MARGEN_IZQUIERDO - 1*cm) 
    # Para que la última línea de "recibido" esté pegada al fondo de la página 
    # hay que meter espacio en observaciones (dejando, de paso, espacio para 
    # anotaciones a boli). Como la página se construye dinámicamente, tengo 
    # que estimar el espacio que falta en función a la información escrita 
    # hasta ahora.
    #restante = 2*cm
    # TODO: Empiezo con una estimación al azar. Ya afinaré o acabaré 
    # metiendo la línea "Recibido" como pie de página igual que hice con 
    # los totales de factura_multipag.
    #espacio = Spacer(ANCHO, restante)
    estilos["Normal"].leading = 8
    estilos["Normal"].leftIndent = 10
    estilos["BodyText"].leftIndent = 30
    #estilos["Normal"].fontSize -= 2
    material0 = Paragraph("<u>MATERIAL A ENSAYAR:</u>", estilos["Normal"])
    material1 = Paragraph(escribe(dic_material["material"]), 
                          estilos["BodyText"])
    #material = Table([[material0], [material1]], hAlign = enums.TA_LEFT, 
    #    colWidths = (ANCHO))
    #material.setStyle(TableStyle([
    #    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    #    ('LINEABOVE', (0, 0), (-1, 0), 1, colors.black),  
    #    ('LINEBELOW', (0, 1), (-1, 1), 1, colors.black),  
    #    ]))
    ensayos0 = Paragraph("<u>ENSAYOS SOLICITADOS:</u>", estilos["Normal"])
    ensayos1 = []   # Después se "aplanará"
    if not lineas_ensayo:
        lineas_ensayo = [""]    # Que haya al menos un huequín que haga bonito.
    for ensayo in lineas_ensayo:
        ensayos1.append(Paragraph(escribe(ensayo), estilos["BodyText"]))
    observaciones0 = Paragraph("<u>OBSERVACIONES:</u>", estilos["Normal"])
    observaciones1 = Paragraph(escribe(dic_peticion["observaciones"]), 
                               estilos["BodyText"])
    recibido0 = Paragraph("Recibido por:", estilos["Normal"])
    recibido1 = Paragraph(escribe(dic_peticion["recibido por"]), 
                          estilos["BodyText"])
    res = [linea, Spacer(1, 0.05*cm), material0, material1, Spacer(1, 0.2*cm),
           linea, Spacer(1, 0.05*cm), ensayos0, ensayos1, Spacer(1, 0.2*cm),
           linea, Spacer(1, 0.05*cm), observaciones0, observaciones1]
           # , espacio, linea, recibido0, 
           # recibido1, Spacer(1, 0.2*cm), linea]
    recibido = TablaFija(MARGEN_IZQUIERDO + 4*cm, 1*cm, 
        [[recibido0], [recibido1]], hAlign = enums.TA_LEFT, 
        colWidths = (ANCHO)
        ) 
    recibido.setStyle(TableStyle([
        ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
        ('LINEABOVE', (0, 0), (-1, 0), 1, colors.black),  
        ('LINEBELOW', (0, 1), (-1, 1), 1, colors.black),  
        ]))
    res.append(recibido)
    return res
Ejemplo n.º 2
0
def build_datos_cliente(dobra, dpedido):
    """
    Escribe los datos de los diccionarios recibidos en una lista de párrafos.
    """
    estilos["h4"].spaceAfter = 0
    estilos["h4"].spaceBefore = 2
    #estilos["h4"].fontSize -= 2
    cliente = Paragraph(escribe("CLIENTE: {cliente}".format(**dobra)), 
                        estilos["h4"])
    obra = Paragraph(escribe("OBRA: {obra}".format(**dobra)), 
                     estilos["h4"])
    solicitante = Paragraph(escribe(
                                "SOLICITANTE: {solicitante}".format(**dobra)), 
                            estilos["h4"])
    contacto = Paragraph(escribe(
        "PERSONA DE CONTACTO: {persona de contacto}".format(**dobra)), 
        estilos["h4"])
    fecha = Paragraph("FECHA: {fecha recogida}".format(**dpedido), 
                      estilos["h4"])
    res = [cliente, obra, solicitante, contacto, fecha]
    return res