def lock(tallySheetId, body):
    request_body = RequestBody(body)
    tallySheetVersionId = request_body.get("lockedVersionId")

    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId)

    tally_sheet_version = TallySheetVersion.get_by_id(
        tallySheetVersionId=tallySheetVersionId, tallySheetId=tallySheetId)

    if tally_sheet_version is None:
        raise NotFoundException(
            message="Tally sheet version not found (tallySheetVersionId=%d)" %
            tallySheetVersionId,
            code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND)

    if not tally_sheet_version.isComplete:
        raise NotFoundException(
            message="Incomplete tally sheet version (tallySheetVersionId=%d)" %
            tallySheetVersionId,
            code=
            MESSAGE_CODE_TALLY_SHEET_INCOMPLETE_TALLY_SHEET_CANNOT_BE_LOCKED)

    tally_sheet.set_locked_version(tally_sheet_version)

    if tally_sheet.tallySheetCode in [
            TallySheetCodeEnum.CE_201, TallySheetCodeEnum.CE_201_PV
    ]:
        election = tally_sheet.submission.election
        electionId = election.parentElectionId
        countingCentreId = tally_sheet.areaId
        results = StatusCE201.get_status_records(electionId, countingCentreId)

        for item in results:
            item.status = "Verified"

    if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_41]:
        election = tally_sheet.submission.election
        electionId = election.parentElectionId
        countingCentreId = tally_sheet.areaId
        results = StatusPRE41.get_status_records(electionId, countingCentreId)

        for item in results:
            item.status = "Verified"

    if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_34_CO]:
        election = tally_sheet.submission.election
        electionId = election.parentElectionId
        countingCentreId = tally_sheet.areaId
        results = StatusPRE34.get_status_records(electionId, countingCentreId)

        for item in results:
            item.status = "Verified"

    db.session.commit()

    return TallySheetSchema().dump(tally_sheet).data, 201
def create(tallySheetId, body):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" % tallySheetId)

    request_body = RequestBody(body)
    tallySheetVersion = TallySheetVersionPRE41.create(
        tallySheetId=tallySheetId
    )

    tally_sheet_content = request_body.get("content")
    if tally_sheet_content is not None:
        for row in tally_sheet_content:
            party_count_body = RequestBody(row)
            tallySheetVersion.add_row(
                candidateId=party_count_body.get("candidateId"),
                count=party_count_body.get("count"),
                countInWords=party_count_body.get("countInWords")
            )

    tally_sheet_summary_body = request_body.get("summary")
    if tally_sheet_summary_body is not None:
        tallySheetVersion.add_invalid_vote_count(
            electionId=tallySheetVersion.submission.electionId,
            rejectedVoteCount=tally_sheet_summary_body.get("rejectedVoteCount")
        )

    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
def submit(tallySheetId, body):
    request_body = RequestBody(body)
    tallySheetVersionId = request_body.get("submittedVersionId")

    tally_sheet: TallySheetModel = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException(
            message="Tally sheet not found (tallySheetId=%d)" % tallySheetId,
            code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND
        )

    if tally_sheet.tallySheetCode not in [TallySheetCodeEnum.PRE_41, TallySheetCodeEnum.CE_201,
                                          TallySheetCodeEnum.CE_201_PV, TallySheetCodeEnum.PRE_34_CO]:
        raise ForbiddenException(
            message="Submit operation is not supported for this tally sheet type.",
            code=MESSAGE_CODE_TALLY_SHEET_SUBMIT_IS_NOT_SUPPORTED
        )

    tally_sheet_version = TallySheetVersion.get_by_id(tallySheetVersionId=tallySheetVersionId,
                                                      tallySheetId=tallySheetId)

    if tally_sheet_version is None:
        raise NotFoundException(
            message="Tally sheet version not found (tallySheetVersionId=%d)" % tallySheetVersionId,
            code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND
        )

    tally_sheet.set_submitted_version(tally_sheet_version)

    if tally_sheet.tallySheetCode in [TallySheetCodeEnum.CE_201, TallySheetCodeEnum.CE_201_PV]:
        election = tally_sheet.submission.election
        electionId = election.parentElectionId
        countingCentreId = tally_sheet.areaId
        results = StatusCE201.get_status_records(electionId, countingCentreId)

        for item in results:
            item.status = "Submitted"

    if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_41]:
        election = tally_sheet.submission.election
        electionId = election.parentElectionId
        countingCentreId = tally_sheet.areaId
        results = StatusPRE41.get_status_records(electionId, countingCentreId)

        for item in results:
            item.status = "Submitted"

    if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_34_CO]:
        election = tally_sheet.submission.election
        electionId = election.parentElectionId
        countingCentreId = tally_sheet.areaId
        results = StatusPRE34.get_status_records(electionId, countingCentreId)

        for item in results:
            item.status = "Submitted"

    db.session.commit()

    return TallySheetSchema().dump(tally_sheet).data, 201
Esempio n. 4
0
def create_empty(tallySheetId):
    tallySheet, tallySheetVersion = TallySheet.create_empty_version(
        tallySheetId=tallySheetId
    )
    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
Esempio n. 5
0
def create_empty_and_get_html(tallySheetId):
    tallySheet, tallySheetVersion = TallySheet.create_empty_version(
        tallySheetId=tallySheetId
    )
    db.session.commit()

    return Response(tallySheetVersion.html(), mimetype='text/html')
def _cache_get_all(user_access_area_ids,
                   electionId=None,
                   areaId=None,
                   tallySheetCode=None,
                   voteType=None,
                   partyId=None,
                   limit=None,
                   offset=None):
    tally_sheets = TallySheet.get_all(electionId=electionId,
                                      areaId=areaId,
                                      tallySheetCode=tallySheetCode,
                                      voteType=voteType,
                                      partyId=partyId,
                                      limit=limit,
                                      offset=offset)

    tally_sheet_response_list = []
    for tally_sheet_index in range(len(tally_sheets)):
        tally_sheet = tally_sheets[tally_sheet_index]
        refactor_tally_sheet(tally_sheet)
        tally_sheet_response_list_item = dict(
            TallySheetSchema_1(only=[
                "tallySheetId", "tallySheetCode", "templateId", "template",
                "electionId", "areaId", "metaDataList", "workflowInstanceId"
            ]).dump(tally_sheet).data)
        tally_sheet_response_list.append(tally_sheet_response_list_item)

    return tally_sheet_response_list
def workflow(tallySheetId, body):
    request_body = RequestBody(body)
    workflowActionId = request_body.get("workflowActionId")
    tallySheetVersionId = request_body.get("tallySheetVersionId")

    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId,
                                code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    extended_tally_sheet: ExtendedTallySheet = tally_sheet.get_extended_tally_sheet(
    )
    extended_tally_sheet.execute_workflow_action(
        workflowActionId=workflowActionId,
        tallySheetVersionId=tallySheetVersionId)

    db.session.commit()

    tally_sheet_response = TallySheetSchema_1().dump(
        refactor_tally_sheet(tally_sheet)).data
    _append_latest_workflow_instance_to_cached_tally_sheets(
        cached_tally_sheets=[tally_sheet_response])
    _append_latest_version_ids_to_cached_tally_sheets(
        cached_tally_sheets=[tally_sheet_response])

    return tally_sheet_response
def upload_workflow_proof_file(body):
    request_body = RequestBody(body)
    tallySheetId = request_body.get("tallySheetId")

    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId,
                                code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    body["proofId"] = tally_sheet.workflowInstance.proofId
    ProofApi.upload_file(body=body)

    extended_tally_sheet: ExtendedTallySheet = tally_sheet.get_extended_tally_sheet(
    )
    extended_tally_sheet.execute_tally_sheet_proof_upload()

    tally_sheet_response = TallySheetSchema_1().dump(
        refactor_tally_sheet(tally_sheet)).data
    _append_latest_workflow_instance_to_cached_tally_sheets(
        cached_tally_sheets=[tally_sheet_response])
    _append_latest_version_ids_to_cached_tally_sheets(
        cached_tally_sheets=[tally_sheet_response])

    return tally_sheet_response
def release(tallySheetId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId)

    # TODO refactor
    tally_sheet.submissionProof.close()

    tally_sheet.set_released_version()

    db.session.commit()

    try:
        result_push_service.release_results(
            tally_sheet=tally_sheet,
            tally_sheet_version_id=tally_sheet.releasedVersionId)
    except:  # rollback release flag
        print("Result push service failed. Check the url configuration.")
        tally_sheet.releasedVersionId = None
        tally_sheet.releasedStampId = None
        db.session.commit()
        return "Push Service Failed. Please check configuration and try again.", 500

    return TallySheetSchema().dump(tally_sheet).data, 201
def _cache_letter_pdf(user_access_area_ids, tally_sheet_id,
                      tally_sheet_version_id):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tally_sheet_id)

    if tally_sheet is None:
        raise NotFoundException(
            message="Tally sheet not found (tallySheetId=%d)" % tally_sheet_id,
            code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    tally_sheet_version = TallySheetVersion.get_by_id(
        tallySheetId=tally_sheet_id,
        tallySheetVersionId=tally_sheet_version_id)

    if tally_sheet_version is None:
        raise NotFoundException(
            message="Tally sheet version not found (tallySheetVersionId=%d)" %
            tally_sheet_version_id,
            code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND)

    file_response = FileApi.get_download_file(
        fileId=tally_sheet_version.get_exported_letter_pdf_file_id(
            tallySheetId=tally_sheet_id,
            tallySheetVersionId=tally_sheet_version_id))

    db.session.commit()

    return file_response
Esempio n. 11
0
def getAll(electionId=None, officeId=None, tallySheetCode=None):
    result = TallySheet.get_all(
        electionId=electionId,
        officeId=officeId,
        tallySheetCode=tallySheetCode
    )

    return TallySheetSchema(many=True).dump(result).data
def get_by_id(tallySheetId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                          tallySheetId)

    return TallySheetSchema().dump(tally_sheet).data
def getAll(electionId=None, areaId=None, tallySheetCode=None):
    result = TallySheet.get_all(electionId=electionId,
                                areaId=areaId,
                                tallySheetCode=tallySheetCode)

    result = get_paginated_query(result).all()

    return TallySheetSchema(many=True).dump(result).data
Esempio n. 14
0
def get_all(tallySheetId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" %
                                tallySheetId)

    result = TallySheetVersionPRE21.get_all(tallySheetId=tallySheetId)

    return TallySheetVersionPRE21Schema(many=True).dump(result).data
def create(tallySheetId):
    tallySheet, tallySheetVersion = TallySheet.create_latest_version(
        tallySheetId=tallySheetId, tallySheetCode=TallySheetCodeEnum.PRE_30_PD)

    countingCentres = tallySheetVersion.submission.area.get_associated_areas(
        areaType=AreaTypeEnum.CountingCentre,
        electionId=tallySheetVersion.submission.electionId)

    query = db.session.query(
        TallySheetVersionRow_PRE_41.Model.candidateId,
        Submission.Model.areaId,
        func.sum(TallySheetVersionRow_PRE_41.Model.count).label("count"),
    ).join(
        SubmissionVersion.Model, SubmissionVersion.Model.submissionVersionId ==
        TallySheetVersionRow_PRE_41.Model.tallySheetVersionId).join(
            Submission.Model, Submission.Model.submissionId ==
            SubmissionVersion.Model.submissionId).filter(
                TallySheetVersionRow_PRE_41.Model.tallySheetVersionId ==
                Submission.Model.lockedVersionId,
                Submission.Model.areaId.in_([
                    area.areaId for area in countingCentres
                ])).group_by(TallySheetVersionRow_PRE_41.Model.candidateId,
                             Submission.Model.areaId).order_by(
                                 TallySheetVersionRow_PRE_41.Model.candidateId,
                                 Submission.Model.areaId).all()

    for row in query:
        tallySheetVersion.add_row(candidateId=row.candidateId,
                                  countingCentreId=row.areaId,
                                  count=row.count)

    rejected_vote_count_query = db.session.query(
        Submission.Model.areaId,
        func.sum(TallySheetVersionRow_RejectedVoteCount.Model.rejectedVoteCount
                 ).label("rejectedVoteCount"),
    ).join(
        TallySheet.Model,
        TallySheet.Model.tallySheetId == Submission.Model.submissionId).join(
            TallySheetVersionRow_RejectedVoteCount.Model,
            TallySheetVersionRow_RejectedVoteCount.Model.tallySheetVersionId ==
            Submission.Model.lockedVersionId).filter(
                Submission.Model.areaId.in_([
                    area.areaId for area in countingCentres
                ]), TallySheet.Model.tallySheetCode ==
                TallySheetCodeEnum.PRE_41).group_by(
                    Submission.Model.areaId).order_by(
                        Submission.Model.areaId).all()

    for row in rejected_vote_count_query:
        tallySheetVersion.add_invalid_vote_count(
            electionId=tallySheetVersion.submission.electionId,
            areaId=row.areaId,
            rejectedVoteCount=row.rejectedVoteCount)

    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
def create(tallySheetId):
    tallySheet, tallySheetVersion = TallySheet.create_latest_version(
        tallySheetId=tallySheetId,
        tallySheetCode=TallySheetCodeEnum.PRE_ALL_ISLAND_RESULTS)
    tallySheetVersion.set_complete(
    )  # TODO: valid before setting complete. Refer to PRE_30_PD

    electoralDistricts = db.session.query(Area.Model.areaId).filter(
        Area.Model.areaType == AreaTypeEnum.ElectoralDistrict,
        Area.Model.electionId ==
        tallySheetVersion.submission.electionId).all()

    query = db.session.query(
        TallySheetVersionRow_PRE_30_ED.Model.candidateId,
        func.sum(TallySheetVersionRow_PRE_30_ED.Model.count).label("count"),
    ).join(
        SubmissionVersion.Model, SubmissionVersion.Model.submissionVersionId ==
        TallySheetVersionRow_PRE_30_ED.Model.tallySheetVersionId).join(
            Submission.Model, Submission.Model.submissionId ==
            SubmissionVersion.Model.submissionId).filter(
                TallySheetVersionRow_PRE_30_ED.Model.tallySheetVersionId ==
                Submission.Model.lockedVersionId,
                Submission.Model.areaId.in_([
                    area.areaId for area in electoralDistricts
                ])).group_by(
                    TallySheetVersionRow_PRE_30_ED.Model.candidateId).order_by(
                        TallySheetVersionRow_PRE_30_ED.Model.candidateId).all(
                        )

    for row in query:
        tallySheetVersion.add_row(candidateId=row.candidateId, count=row.count)

    rejected_vote_count_query = db.session.query(
        func.count(Submission.Model.areaId).label("areaCount"),
        func.sum(TallySheetVersionRow_RejectedVoteCount.Model.rejectedVoteCount
                 ).label("rejectedVoteCount"),
    ).join(
        TallySheet.Model,
        TallySheet.Model.tallySheetId == Submission.Model.submissionId).join(
            TallySheetVersionRow_RejectedVoteCount.Model,
            TallySheetVersionRow_RejectedVoteCount.Model.tallySheetVersionId ==
            Submission.Model.lockedVersionId).filter(
                Submission.Model.areaId.in_([
                    area.areaId for area in electoralDistricts
                ]), TallySheet.Model.tallySheetCode ==
                TallySheetCodeEnum.PRE_30_ED).order_by(
                    Submission.Model.areaId).all()

    for row in rejected_vote_count_query:
        if row.areaCount > 0:
            tallySheetVersion.add_invalid_vote_count(
                electionId=tallySheetVersion.submission.electionId,
                rejectedVoteCount=row.rejectedVoteCount)

    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
def get_by_id(tallySheetId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        NotFoundException(message="Tally sheet not found (tallySheetId=%s)" %
                          tallySheetId,
                          code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    return TallySheetSchema().dump(tally_sheet).data
Esempio n. 18
0
def create(tallySheetId, body):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" %
                                tallySheetId)

    request_body = RequestBody(body)

    tallySheet, tallySheetVersion = TallySheet.create_latest_version(
        tallySheetId=tallySheetId, tallySheetCode=TallySheetCodeEnum.PRE_34_CO)

    tally_sheet_content = request_body.get("content")
    print(request_body.body)
    if tally_sheet_content is not None:
        for row in tally_sheet_content:
            party_count_body = RequestBody(row)
            row = tallySheetVersion.add_row(
                candidateId=party_count_body.get("candidateId"),
                notCountedBallotPapers=party_count_body.get(
                    "notCountedBallotPapers"),
                remainingBallotPapers=party_count_body.get(
                    "remainingBallotPapers"))
            # Lets add the preferences for the above row
            preferences = party_count_body.get("preferences")
            for preference in preferences:
                print(preference)
                TallySheetVersionRow_PRE_34_CO_PREFERENCES.create(
                    tallySheetVersionRowId=row.tallySheetVersionRowId,
                    candidateId=preference.get('candidateId'),
                    no2ndPreferences=preference.get('no2rdPreferences'),
                    no3rdPreferences=preference.get('no3rdPreferences'))

    tally_sheet_summary_body = request_body.get("summary")
    if tally_sheet_summary_body is not None:
        tallySheetVersion.add_invalid_vote_count(
            electionId=tallySheetVersion.submission.electionId,
            rejectedVoteCount=tally_sheet_summary_body.get(
                "rejectedVoteCount"))

    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
def get_workflow_logs(tallySheetId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId,
                                code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    workflow_logs = tally_sheet.workflowInstance.logs

    return WorkflowInstanceLogSchema(many=True).dump(workflow_logs).data
Esempio n. 20
0
def get_all(tallySheetId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" %
                                tallySheetId)

    result = TallySheetVersion.get_all(tallySheetId=tallySheetId)

    result = get_paginated_query(result).all()

    return TallySheetVersion_CE_201_PV_Schema(many=True).dump(result).data
Esempio n. 21
0
def create(tallySheetId, body):
    request_body = RequestBody(body)

    tallySheet, tallySheetVersion = TallySheet.create_latest_version(
        tallySheetId=tallySheetId,
        content=request_body.get("content")
    )

    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
def get_workflow_proof_download_file(tallySheetId, fileId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId,
                                code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    # TODO validate fileId

    return FileApi.get_download_file(fileId=fileId)
def get_by_id(tallySheetId, tallySheetVersionId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" % tallySheetId)

    result = get_tally_sheet_version_class(tallySheet.tallySheetCode).Model.query.filter(
        Model.tallySheetVersionId == tallySheetVersionId,
        Model.tallySheetId == tallySheetId
    ).one_or_none()

    return result
Esempio n. 24
0
def get_by_id(tallySheetId, tallySheetVersionId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException(
            message="Tally sheet not found (tallySheetId=%d)" % tallySheetId,
            code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    result = TallySheetVersion.get_by_id(
        tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId)

    return TallySheetVersionSchema().dump(result).data
def unlock(tallySheetId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        raise NotFoundException("Tally sheet not found (tallySheetId=%d)" %
                                tallySheetId)

    tally_sheet.set_locked_version(None)

    db.session.commit()

    return TallySheetSchema().dump(tally_sheet).data, 201
Esempio n. 26
0
def get_all(tallySheetId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException(
            message="Tally sheet not found (tallySheetId=%d)" % tallySheetId,
            code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    result = TallySheetVersion.get_all(tallySheetId=tallySheetId)

    result = get_paginated_query(result).all()

    return TallySheetVersion_CE_201_PV_Schema(many=True).dump(result).data
def get_by_id(tallySheetId, tallySheetVersionId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" % tallySheetId)
    elif tallySheet.tallySheetCode is not TallySheetCodeEnum.CE_201_PV:
        raise NotFoundException("Requested version not found. (tallySheetId=%d)" % tallySheetId)

    result = Model.query.filter(
        Model.tallySheetVersionId == tallySheetVersionId
    ).one_or_none()

    return result
def get_by_id(tallySheetId):
    tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId)

    if tally_sheet is None:
        NotFoundException(message="Tally sheet not found (tallySheetId=%s)" %
                          tallySheetId,
                          code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

    extended_tally_sheet: ExtendedTallySheet = tally_sheet.get_extended_tally_sheet(
    )
    extended_tally_sheet.execute_tally_sheet_get()

    return TallySheetSchema_1().dump(tally_sheet).data
Esempio n. 29
0
    def __init__(self, tallySheetId):
        tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
        if tallySheet is None:
            raise NotFoundException(
                "Tally sheet not found. (tallySheetId=%d)" % tallySheetId)

        submissionVersion = SubmissionVersion.create(submissionId=tallySheetId)

        super(TallySheetVersionModel, self).__init__(
            tallySheetVersionId=submissionVersion.submissionVersionId)

        db.session.add(self)
        db.session.commit()
    def get_by_id(cls, tallySheetId, tallySheetVersionId):
        tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
        if tallySheet is None:
            raise NotFoundException(
                message="Tally sheet not found. (tallySheetId=%d)" %
                tallySheetId,
                code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND)

        tallySheetVersion = Model.query.filter(
            Model.tallySheetVersionId == tallySheetVersionId,
            Model.tallySheetId == tallySheetId).one_or_none()

        return tallySheetVersion