def main():

    #    if not len(sys.argv) == 1:
    #        print ('usage: pce_grabar_detalles.py ')
    #        sys.exit(1)

    # Inicia contador de tiempo
    inicio = time.time()
    regUpdated = 0
    regRead = 0

    log2file("Inicio grabar detalles.")

    # Escribe el número de registros leidos
    nunContSinDet = (
        PceExpediente.select(PceExpediente.id_licitacion, PceExpediente.num_expediente, PceOrgano.descripcion)
        .where(PceExpediente.id_estado >> None)
        .count()
    )
    log2file("Hay " + str(nunContSinDet) + " contratos sin detalles.")

    # Lee de la BD contratos sin detalles
    contSinDet = (
        PceExpediente.select(PceExpediente.id_licitacion, PceExpediente.num_expediente, PceOrgano.descripcion)
        .where(PceExpediente.id_estado >> None)
        .join(PceOrgano)
        .naive()
    )

    # Para cada uno de ellos se leen los detalles y se graban en BD
    for contrato in contSinDet:
        try:
            detalles = detalleContrato(
                numExpediente=contrato.num_expediente, OrgContratacion=contrato.descripcion, driverType=2
            )

            regRead += 1

            nreg = grabarDetalleBD(contrato, detalles)
            regUpdated += nreg
            log2file("Procesado expediente  " + contrato.num_expediente + " id: " + str(contrato.id_licitacion))
        except:
            log2file("Error en expediente  " + contrato.num_expediente + " id: " + str(contrato.id_licitacion))
            var = traceback.format_exc()
            log2file("Error inesperado" + var)

    # Escribe el número de registros leidos
    log2file("Se han leido " + str(regRead) + " registros de la BD.")
    print("Se han leido ", str(regRead), " registros de la BD.")

    # Escribe el número de registros actualizados
    log2file("Se han actualizado " + str(regUpdated) + " registros de la BD.")

    # Escribe el tiempo tardado
    fin = time.time()
    tiempo_total = fin - inicio
    log2file("El proceso tardó :" + str(tiempo_total) + " s")