示例#1
0
文件: pedido.py 项目: pacoqueen/cican
def go_from_peticion(peticion):
    """
    Construye el PDF a partir de un objeto peticion y no de sus datos
    sueltos.
    """
    obra = peticion.obra
    cliente = obra.cliente
    direccion = obra.direccion
    if not direccion:
        direccion = pclases.Direccion.get_direccion_por_defecto()
    ciudad = direccion.ciudad
    provincia = ciudad.provincia
    datos_peticion = {"hoja": peticion.id, 
                      "fecha pedido": 
                        fecha.str_fecha(peticion.fechaSolicitud), 
                      "fecha recogida":  
                        fecha.str_fecha(peticion.fechaRecogida), 
                      "hora": fecha.str_hora_corta(peticion.horaRecogida), 
                      "observaciones": peticion.observaciones, 
                      "recibido por": 
                        peticion.usuario and peticion.usuario.nombre or ""}
    strobra = obra and obra.nombre or ""
    if obra and obra.direccion:
        strobra += "({0})".format(obra.direccion.get_direccion_completa())
    datos_obra = {"cliente": cliente and cliente.nombre or "", 
                  "obra": obra, 
                  "solicitante": peticion and peticion.solicitante or "",
                  "persona de contacto": peticion and peticion.contacto 
                    and peticion.contacto.get_nombre_completo() or ""}
    datos_material = {"material": peticion.material 
                        and peticion.material.nombre or ""}
    datos_ensayo = [e.nombre for e in peticion.ensayos]
    try:
        dde = pclases.get_dde()
        datos_de_la_empresa = [os.path.join("imagenes", dde.logo),
                               #dde.nombre +
                               # (dde.cif and " (" + dde.str_cif_o_nif() +": " 
                               #  + dde.cif + ")" or ""),
                               dde.direccion,
                               "%s %s (%s), %s" % (dde.cp,
                                                   dde.ciudad,
                                                   dde.provincia,
                                                   dde.pais),
                               ]
        if dde.fax:
            if dde.fax.strip() == dde.telefono.strip():
                datos_de_la_empresa.append("Telf. y fax: %s" % dde.telefono)
            else:
                datos_de_la_empresa.append("Telf.: %s" % (dde.telefono))
                datos_de_la_empresa.append("Fax: %s" % (dde.fax))
        #if dde.email:
        #    datos_de_la_empresa.append(dde.email)
    except IndexError:
        datos_de_la_empresa = [None]
    nomarchivo = os.path.join(gettempdir(),
                              "peticion_{0}_{1}.pdf".format(
                                peticion.id, give_me_the_name_baby()))
    return go("Peticion {0}".format(peticion.id), 
              nomarchivo,
              datos_de_la_empresa,
              datos_peticion,
              datos_obra, 
              datos_material,
              datos_ensayo)