Пример #1
0
def read(data):
    lines = data.splitlines()
    line_count = len(lines)

    current_line = lines.pop(0)
    if Record.valid(current_line, FILE_HEADER_RECORD):
        current_line = lines.pop(0)

    records = []
    if not Record.valid(current_line, ACCOUNT_HEADER_RECORD):
        raise BaseException('Expected account header record at line %d' %
            (line_count - len(lines)))

    record = Record.extract(current_line, ACCOUNT_HEADER_RECORD)
    records.append(record)
    current_line = lines.pop(0)
    while lines:
        if Record.valid(current_line, MOVE_RECORD):
            record = Record.extract(current_line, MOVE_RECORD)
        elif Record.valid(current_line, MOVE_CONCEPT_RECORD):
            record = Record.extract(current_line, MOVE_CONCEPT_RECORD)
        elif Record.valid(current_line, MOVE_AMOUNT_EQUIVALENCE_RECORD):
            record = Record.extract(current_line, MOVE_AMOUNT_EQUIVALENCE_RECORD)
        elif Record.valid(current_line, ACCOUNT_FOOTER_RECORD):
            record = Record.extract(current_line, ACCOUNT_FOOTER_RECORD)
            records.append(record)
            break
        else:
            raise BaseException('Invalid data at line %d' %
                (line_count - len(lines)))
        records.append(record)
        current_line = lines.pop(0)

    return records
Пример #2
0
def read(data):
    lines = data.splitlines()
    records = []

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, FILE_HEADER_RECORD))

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, ORDER_HEADER_RECORD))

    current_line = lines.pop(0)
    while lines:
        if Record.valid(current_line, INDIVIDUAL_1_RECORD):
            record = Record.extract(current_line, INDIVIDUAL_1_RECORD)
        elif Record.valid(current_line, INDIVIDUAL_2_RECORD):
            record = Record.extract(current_line, INDIVIDUAL_2_RECORD)
        elif Record.valid(current_line, INDIVIDUAL_3_RECORD):
            record = Record.extract(current_line, INDIVIDUAL_3_RECORD)
        elif Record.valid(current_line, ORDER_FOOTER_RECORD):
            record = Record.extract(current_line, ORDER_FOOTER_RECORD)
        elif Record.valid(current_line, FILE_FOOTER_RECORD):
            record = Record.extract(current_line, FILE_FOOTER_RECORD)
        else:
            record = Record.extract(current_line, INDIVIDUAL_2_RECORD)
            raise BaseException('Invalid record: "%s"' % current_line)
        records.append(record)
        current_line = lines.pop(0)
    return records
Пример #3
0
def read(data):
    lines = data.splitlines()
    records = []

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, PRESENTER_HEADER_RECORD))

    current_line = lines.pop(0)
    while lines:
        if Record.valid(current_line, DETAIL_RECORD):
            record = Record.extract(current_line, DETAIL_RECORD)
        else:
            raise Exception('Invalid record: %s' % current_line)
        records.append(record)
        current_line = lines.pop(0)
    return records
Пример #4
0
def read(data):
    lines = data.splitlines()
    records = []

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, PRESENTER_HEADER_RECORD))

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, ORDERING_HEADER_RECORD))

    current_line = lines.pop(0)
    while lines:
        if Record.valid(current_line, REQUIRED_INDIVIDUAL_RECORD):
            record = Record.extract(current_line, REQUIRED_INDIVIDUAL_RECORD)
        elif Record.valid(current_line, OPTIONAL_INDIVIDUAL_RECORD):
            record = Record.extract(current_line, OPTIONAL_INDIVIDUAL_RECORD)
        elif Record.valid(current_line, ADDRESS_INDIVIDUAL_RECORD):
            record = Record.extract(current_line, ADDRESS_INDIVIDUAL_RECORD)
        elif Record.valid(current_line, ORDERING_FOOTER_RECORD):
            record = Record.extract(current_line, ORDERING_FOOTER_RECORD)
        elif Record.valid(current_line, PRESENTER_FOOTER_RECORD):
            record = Record.extract(current_line, PRESENTER_FOOTER_RECORD)
        else:
            raise BaseException('Invalid record: "%s"' % current_line)
        records.append(record)
        current_line = lines.pop(0)
    return records
Пример #5
0
def read(data):
    lines = data.splitlines()
    records = []

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, ORDERING_HEADER_RECORD))

# Por cada registro de Transferencias o Nóminas se constituirán
# obligatoriamente los registros tipo de Dato 010, 011, 012, 014 y,
# opcionalmente, el 013, 016 y 017.

# Por cada registro de Cheques Bancarios, Pagarés o Pagos Certificados se
# constituirán obligatoriamente los registros tipos de Dato 010, 011 y,
# opcionalmente, 012, 013, 014, 015, 016, 017 y 018. Los registros tipo de Dato
# 012, 013, 014 y 015 serán obligatorios para emisiones con carta.

    current_line = lines.pop(0)
    while lines:
        if Record.valid(current_line, ORDERING_HEADER_002_RECORD):
            record = Record.extract(current_line, ORDERING_HEADER_002_RECORD)
        elif Record.valid(current_line, ORDERING_HEADER_003_RECORD):
            record = Record.extract(current_line, ORDERING_HEADER_003_RECORD)
        elif Record.valid(current_line, ORDERING_HEADER_004_RECORD):
            record = Record.extract(current_line, ORDERING_HEADER_004_RECORD)
        elif Record.valid(current_line, NATIONAL_HEADER_RECORD):
            record = Record.extract(current_line, NATIONAL_HEADER_RECORD)
        elif Record.valid(current_line, DETAIL_001_RECORD):
            record = Record.extract(current_line, DETAIL_001_RECORD)
        elif Record.valid(current_line, DETAIL_002_RECORD):
            record = Record.extract(current_line, DETAIL_002_RECORD)
        elif Record.valid(current_line, DETAIL_003_RECORD):
            record = Record.extract(current_line, DETAIL_003_RECORD)
        elif Record.valid(current_line, DETAIL_004_RECORD):
            record = Record.extract(current_line, DETAIL_004_RECORD)
        elif Record.valid(current_line, DETAIL_005_RECORD):
            record = Record.extract(current_line, DETAIL_005_RECORD)
        elif Record.valid(current_line, DETAIL_006_RECORD):
            record = Record.extract(current_line, DETAIL_006_RECORD)
        elif Record.valid(current_line, DETAIL_007_RECORD):
            record = Record.extract(current_line, DETAIL_007_RECORD)
        elif Record.valid(current_line, NATIONAL_FOOTER_RECORD):
            record = Record.extract(current_line, NATIONAL_FOOTER_RECORD)
        elif Record.valid(current_line, ORDERING_FOOTER_RECORD):
            record = Record.extract(current_line, ORDERING_FOOTER_RECORD)
        else:
            raise BaseException('Invalid record: "%s"' % current_line)
        records.append(record)
        current_line = lines.pop(0)
    return records
Пример #6
0
def read(data):
    lines = data.splitlines()
    records = []
    current_line = lines.pop(0)
    records.append(Record.extract(current_line, RECORD))
    return records