class FooterRecord(record.Record): '''ClieOp3 footer record''' _fields = [ record.Filler('recordcode', 4, '9999'), record.Filler('variantcode', 1, 'A'), record.Filler('filler', 45), ]
class NameBeneficiaryRecord(record.Record): '''Name receiving party''' _fields = [ record.Filler('recordcode', 4, '0170'), record.Filler('variantcode', 1, 'B'), SWIFTField('name', 35), record.Filler('filler', 10), ]
class DescriptionRecord(record.Record): '''Description''' _fields = [ record.Filler('recordcode', 4, '0160'), record.Filler('variantcode', 1, 'A'), SWIFTField('description', 32), record.Filler('filler', 13), ]
class PaymentReferenceRecord(record.Record): '''Payment reference''' _fields = [ record.Filler('recordcode', 4, '0150'), record.Filler('variantcode', 1, 'A'), SWIFTFieldNoLeadingWhitespace('paymentreference', 16), record.Filler('filler', 29), ]
class NamePayerRecord(record.Record): '''Name payer''' _fields = [ record.Filler('recordcode', 4, '0110'), record.Filler('variantcode', 1, 'B'), SWIFTField('name', 35), record.Filler('filler', 10), ]
class FixedMessageRecord(record.Record): '''Fixed message''' _fields = [ record.Filler('recordcode', 4, '0020'), record.Filler('variantcode', 1, 'A'), SWIFTField('fixed_message', 32), record.Filler('filler', 13), ]
class PaymentReferenceRecord(record.Record): '''Payment reference''' _fields = [ record.Filler('recordcode', 4, '0150'), record.Filler('variantcode', 1, 'A'), record.Field('paymentreference', 16), record.Filler('filler', 29), ]
class BatchFooterRecord(record.Record): '''Closing record for batches''' _fields = [ record.Filler('recordcode', 4, '9990'), record.Filler('variantcode', 1, 'A'), record.NumberField('total_amount', 18), record.NumberField('total_accountnos', 10), record.NumberField('nr_posts', 7), record.Filler('filler', 10), ]
class TransactionRecord(record.Record): '''Transaction''' _fields = [ record.Filler('recordcode', 4, '0100'), record.Filler('variantcode', 1, 'A'), record.NumberField('transactiontype', 4), record.NumberField('amount', 12), record.NumberField('accountno_payer', 10), record.NumberField('accountno_beneficiary', 10), record.Filler('filler', 9), ]
class SenderRecord(record.Record): '''Ordering party''' _fields = [ record.Filler('recordcode', 4, '0030'), record.Filler('variantcode', 1, 'B'), # NAW = Name, Address, Residence record.Field('NAWcode', 1), record.DateField('preferred_execution_date', '%d%m%y', auto=True), SWIFTField('name_sender', 35), record.Field('testcode', 1), record.Filler('filler', 2), ]
class BatchHeaderRecord(record.Record): '''Header record preceding new batches''' _fields = [ record.Filler('recordcode', 4, '0010'), record.Field('variantcode', 1), record.Field('transactiongroup', 2), record.NumberField('accountno_sender', 10), record.NumberField('batch_tracer', 4), record.Filler('currency_order', 3, 'EUR'), SWIFTField('batch_id', 16), record.Filler('filler', 10), ]
class HeaderRecord(record.Record): #{{{ '''ClieOp3 header record''' _fields = [ record.Filler('recordcode', 4, '0001'), record.Filler('variantcode', 1, 'A'), record.DateField('creation_date', '%d%m%y', auto=True), record.Filler('filename', 8, 'CLIEOP03'), SWIFTField('sender_id', 5), record.Field('file_id', 4), record.Field('duplicatecode', 1), record.Filler('filler', 21), ] def __init__(self, id='1', seqno=1, duplicate=False): super(HeaderRecord, self).__init__() self.sender_id = id or '' self.file_id = '%02d%02d' % (self.creation_date.day, seqno) self.duplicatecode = duplicate and '2' or '1'
class OrderRecord(record.Record): '''Order details''' _fields = [ record.Filler('recordcode', 6, 'KAE092'), SWIFTField('name_transactioncode', 18), record.NumberField('total_amount', 13), record.Field('accountno_sender', 10), record.NumberField('total_accountnos', 5), record.NumberField('nr_posts', 6), record.Field('identification', 6), record.DateField('preferred_execution_date', '%y%m%d'), record.Field('batch_medium', 18), record.Filler('currency', 3, 'EUR'), record.Field('testcode', 1), ] def __init__(self, *args, **kwargs): super(OrderRecord, self).__init__(*args, **kwargs) self.batch_medium = 'DATACOM' self.name_transactioncode = self._transactioncode