<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def getProgressPercentage(self):
 """Returns the progress percentage of this worksheet """

        state = api.get_workflow_status_of(self)
        if state == "verified":
            return 100

        steps = 0
        query = dict(getWorksheetUID=api.get_uid(self))
        analyses = api.search(query, CATALOG_ANALYSIS_LISTING)
        max_steps = len(analyses) * 2
        for analysis in analyses:
            an_state = analysis.review_state
            if an_state in ["rejected", "retracted", "cancelled"]:
                steps += 2
            elif an_state in ["verified", "published"]:
                steps += 2
            elif an_state == "to_be_verified":
                steps += 1
        if steps == 0:
            return 0
        if steps > max_steps:
            return 100
        return (steps * 100)/max_steps