def extract(_file, password):
    header_pattern = re.compile(constants.UNITED_BANK_HEADER_REGEX)
    file_end_pattern = re.compile(constants.UNITED_BANK_STATEMENT_END_REGEX)
    file_content = bsr_utils.get_file_content(_file, password)
    json_formatted_data = {constants.TRANSACTIONS_STR: []}
    is_transaction_started = False
    acc_details = ''
    i = 0
    if file_content == 'wrongpassword':
        return 'wrongpassword'
    elif file_content == 'pdfnotreadable':
        return 'pdfnotreadable'
    while i < len(file_content):
        line = file_content[i]
        if file_end_pattern.match(line):
            break
        if is_transaction_started:
            process_transaction(json_formatted_data, line,
                                constants.UNITED_BANK_TRANSACTION_REGEX,
                                constants.FEDERAL_BANK_DESC_REGEX)
        elif header_pattern.match(line):
            is_transaction_started = True
            i += 1
            put_opening_balance(json_formatted_data, file_content[i])
            bsr_utils.put_custum_acc_details(
                json_formatted_data, acc_details,
                constants.UNITED_BANK_ACCOUNT_DETAILS_REGEX)
        else:
            acc_details += line + '\n'
        i = i + 1
    return json_formatted_data
Ejemplo n.º 2
0
def extract(_file, password):
    header_pattern = re.compile(constants.SYNDICATE_BANK_HEADER_REGEX)
    file_content = bsr_utils.get_file_content(_file, password)
    json_formatted_data = {

        constants.TRANSACTIONS_STR: []
    }
    is_transaction_started = False
    acc_details = ''
    index = 0
    if file_content == 'wrongpassword':
        return 'wrongpassword'
    elif file_content == 'pdfnotreadable':
        return 'pdfnotreadable'
    while index < len(file_content):
        line = file_content[index]
        if is_transaction_started:
            process_transaction(json_formatted_data, line, constants.SYNDICATE_BANK_TRANSACTION_REGEX,
                                constants.FEDERAL_BANK_DESC_REGEX, constants.SYNDICATE_BANK_IGNORABLE_REGEXS)
        elif header_pattern.match(line):
            is_transaction_started = True
            index += 1
            bsr_utils.put_custum_acc_details(json_formatted_data, acc_details,
                                             constants.SYNDICATE_BANK_ACCOUNT_DETAILS_REGEX)
        else:
            acc_details += line + '\n'
        index = index + 1
    return json_formatted_data
def extract(_file, password):
    header_pattern = re.compile(business_constants.ICICI_BANK_HEADER_REGEX)
    file_content = bsr_utils.get_file_content(_file, password)
    json_formatted_data = {business_constants.TRANSACTIONS_STR: []}
    is_transaction_started = False
    acc_details = ''
    i = 0
    existing_desc = ''
    if file_content == 'wrongpassword':
        return 'wrongpassword'
    elif file_content == 'pdfnotreadable':
        return 'pdfnotreadable'
    while i < len(file_content):
        line = file_content[i]
        if is_transaction_started:
            existing_desc = process_transaction(
                json_formatted_data, line, existing_desc,
                business_constants.ICICI_BANK_TRANSACTION_REGEX,
                business_constants.ICICI_BANK_DESC_REGEX,
                business_constants.ICICI_BANK_IGNORABLE_REGEXS, True)
            transaction_pattern = re.compile(
                business_constants.ICICI_BANK_TRANSACTION_REGEX)
            # there must be transaction and existing desc should be empty
            if transaction_pattern and not existing_desc:
                i = i + 1
                line = file_content[i]
                existing_desc = process_transaction(
                    json_formatted_data, line, existing_desc,
                    business_constants.ICICI_BANK_TRANSACTION_REGEX,
                    business_constants.ICICI_BANK_DESC_REGEX,
                    business_constants.ICICI_BANK_IGNORABLE_REGEXS, False)
        elif header_pattern.match(line):
            i += 2
            is_transaction_started = True
            bsr_utils.put_custum_acc_details(
                json_formatted_data, acc_details,
                business_constants.ICICI_BANK_ACCOUNT_DETAILS_REGEX)
        else:
            acc_details += line + '\n'
        i += 1
    return json_formatted_data
Ejemplo n.º 4
0
def extract(_file, password):
    header_pattern = re.compile(constants.INDIAN_OVERSEAS_BANK_HEADER_REGEX)
    file_end_pattern = re.compile(constants.INDIAN_OVERSEAS_BANK_STATEMENT_END_REGEX)
    file_content = bsr_utils.get_file_content(_file, password)
    json_formatted_data = {
        constants.TRANSACTIONS_STR: []
    }
    is_transaction_started = False
    acc_details = ''
    i = 0
    if file_content == 'wrongpassword':
        return 'wrongpassword'
    elif file_content == 'pdfnotreadable':
        return 'pdfnotreadable'
    while i < len(file_content):
        if i == 0:
            i = i + 2
        line = file_content[i]
        if file_end_pattern.match(line):
            break
        elif is_transaction_started:
            process_transaction(json_formatted_data, i, constants.INDIAN_OVERSEAS_BANK_TRANSACTION_REGEX, file_content,
                                constants.INDIAN_OVERSEAS_BANK_DESC_REGEX)
        elif header_pattern.match(line):
            is_transaction_started = True
            bsr_utils.put_custum_acc_details(json_formatted_data, acc_details,
                                             constants.INDIAN_OVERSEAS_BANK_ACCOUNT_DETAILS_REGEX)
        else:
            acc_details += line + '\n'
        i = i + 1
    j = len(json_formatted_data[constants.TRANSACTIONS_STR]) - 2
    while j >= 0:
        opening_balance = bsr_utils.get_rev_opening_balance(j, json_formatted_data)
        transaction_type = bsr_utils.get_custom_transaction_type(opening_balance,
                                                                 json_formatted_data[constants.TRANSACTIONS_STR][j][
                                                                     constants.CLOSING_BALANCE_STR])
        json_formatted_data[constants.TRANSACTIONS_STR][j + 1][constants.TRANSACTION_TYPE_STR] = transaction_type
        j -= 1

    return json_formatted_data
def extract(_file, password):
    header_pattern = re.compile(constants.BANDHAN_BANK_HEADER_REGEX)
    file_end_pattern = re.compile(constants.BANDHAN_BANK_STATEMENT_END_REGEX)
    file_content = bsr_utils.get_file_content(file)
    json_formatted_data = {
        constants.TRANSACTIONS_STR: []
    }
    is_transaction_started = False
    acc_details = ''
    if file_content == 'wrongpassword':
        return 'wrongpassword'
    elif file_content == 'pdfnotreadable':
        return 'pdfnotreadable'
    i = len(file_content) - 1
    while i > 0:
        line = file_content[i]
        if file_end_pattern.match(line):
            line = file_content[i + 1]
            json_formatted_data.update(
                {constants.OPENING_BALANCE_STR: line.split()[0]}
            )
            break
        i -= 1
    i = 0
    while i < len(file_content):
        line = file_content[i]
        if file_end_pattern.match(line):
            break
        elif is_transaction_started:
            process_transaction(json_formatted_data, line, constants.BANDHAN_BANK_TRANSACTION_REGEX,
                                constants.BANDHAN_BANK_DESC_REGEX, constants.BANDHAN_BANK_IGNORABLE_REGEXS)
        elif header_pattern.match(line):
            is_transaction_started = True
            bsr_utils.put_custum_acc_details(json_formatted_data, acc_details,
                                             constants.BANDHAN_BANK_ACCOUNT_DETAILS_REGEX)
        else:
            acc_details += line + '\n'
        i = i + 1
    return json_formatted_data
Ejemplo n.º 6
0
def extract(_file, password):
    header_pattern = re.compile(constants.ANDHRA_BANK_TWO_HEADER_REGEX)
    file_end_pattern = re.compile(constants.ANDHRA_BANK_STATEMENT_END_REGEX)
    file_content = bsr_utils.get_file_content(_file, password)
    json_formatted_data = {constants.TRANSACTIONS_STR: []}
    is_transaction_started = False
    acc_details = ''
    if file_content == 'wrongpassword':
        return 'wrongpassword'
    elif file_content == 'pdfnotreadable':
        return 'pdfnotreadable'
    for line in file_content:
        if file_end_pattern.match(line):
            break
        elif is_transaction_started:
            process_transaction(json_formatted_data, line,
                                constants.ANDHRA_BANK_TWO_TRANSACTION_REGEX,
                                constants.ANDHRA_BANK_DESC_REGEX,
                                constants.ANDHRA_BANK_IGNORABLE_REGEXS)
        elif header_pattern.match(line):
            is_transaction_started = True
            bsr_utils.put_custum_acc_details(
                json_formatted_data, acc_details,
                constants.ANDHRA_BANK_TWO_ACCOUNT_DETAILS_REGEX)
        else:
            acc_details += line + '\n'
    j = len(json_formatted_data[constants.TRANSACTIONS_STR]) - 2
    while j >= 0:
        opening_balance = bsr_utils.get_rev_opening_balance(
            j, json_formatted_data)
        transaction_type = bsr_utils.get_transaction_type(
            opening_balance, json_formatted_data[constants.TRANSACTIONS_STR][j]
            [constants.CLOSING_BALANCE_STR])
        json_formatted_data[constants.TRANSACTIONS_STR][j][
            constants.TRANSACTION_TYPE_STR] = transaction_type
        j -= 1
    # print (json.dumps(json_formatted_data))
    return json_formatted_data