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
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
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
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
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
def read(data): lines = data.splitlines() records = [] current_line = lines.pop(0) records.append(Record.extract(current_line, RECORD)) return records