trytond-account_payment_con.../template/n68.txt

82 lines
3.0 KiB
Plaintext

{% include ${group._get_confirming_template_paths()['base'] + '/base.txt'} %}\
{% def format_number(value, length_, precision) %}\
${'%s%s' % (str(int(divmod(abs(value), 1)[0]))[:length_].zfill(length_), str(divmod(abs(value), 1)[1])[2:precision + 2].ljust(precision, '0'))}\
{% end %}\
{% def invoice_type(payment) %}\
${'credit_note' if payment.line.origin.total_amount < 0 else 'invoice'}\
{% end %}\
${fill('03', 2)}\
${fill('59', 2)}\
${fill(group.company.party.tax_identifier and group.company.party.tax_identifier.code[2:] or group.company.party.code, 9, norm=True)}\
${fill('000', 3)}\
${fillblank(12)}\
${fill('001', 3)}\
${datetime.datetime.now().strftime('%d%m%y') or fillblank(6)}\
${fillblank(9)}\
${fill(group.journal.confirming_bank_account_number.number.replace(' ', ''), 24)}\
${fillblank(30)}
{% for payment in group.payments %}\
{% with address=payment.party.address_get('invoice') %}\
{% for i in range(6) %}\
${fill('06', 2)}\
${fill('59', 2)}\
${fill(group.company.party.tax_identifier and group.company.party.tax_identifier.code[2:] or group.company.party.code, 9, norm=True)}\
${fill('000', 3)}\
${fill(payment.party.tax_identifier and payment.party.tax_identifier.code[2:] or payment.party.code, 12)}\
{% if i == 0 %}\
${fill('010', 3)}\
${fill(payment.party.name, 40)}\
${fillblank(29)}
{% end %}\
{% if i == 1 %}\
${fill('011', 3)}\
${fill((address.street or u'').replace('\n', ' ') or u'', 45)}\
${fillblank(24)}
{% end %}\
{% if i == 2 %}\
${fill('012', 3)}\
${fill(address.postal_code or u'', 5)}\
${fill(address.city or u'', 40)}\
${fillblank(24)}
{% end %}\
{% if i == 3 %}\
${fill('013', 3)}\
${fill(address.country and address.country.code != 'ES' and address.postal_code or u'', 9)}\
${fill(address.subdivision and address.subdivision.name or u'', 30)}\
${fill(address.country and address.country.name or u'', 20)}\
${fillblank(10)}
{% end %}\
{% if i == 4 %}\
${fill('014', 3)}\
${str(payment.id).zfill(7) + str(int('9000' + str(payment.id)) % 7)}\
${payment.date.strftime('%d%m%Y')}\
${format_number(payment.amount, 10, 2)}\
0\
${fillblank(2)}\
${fillblank(6)}\
${fillblank(32)}
{% end %}\
{% if i == 5 %}\
${fill('015', 3)}\
${str(payment.id).zfill(7) + str(int('9000' + str(payment.id)) % 7)}\
${fill(payment.line and payment.line.origin and (payment.line.origin.reference or payment.line.origin.number) or payment.description or '', 12)}\
${payment.line and payment.line.origin and payment.line.origin.invoice_date.strftime('%d%m%Y') or datetime.datetime.now().strftime('%d%m%Y') or fillblank(8)}\
${format_number(payment.amount, 10, 2)}\
${'D' if payment.amount < 0 else 'H' }\
${fill(payment.description, 26)}\
${fillblank(2)}
{% end %}\
{% end %}\
{% end %}\
{% end %}\
${fill('08', 2)}\
${fill('59', 2)}\
${fill(group.company.party.tax_identifier and group.company.party.tax_identifier.code[2:] or group.company.party.code, 9, norm=True)}\
${fill('000', 3)}\
${fillblank(12)}\
${fillblank(3)}\
${format_number(sum(p.amount for p in group.payments if p.amount), 10, 2)}\
${format_number(2 + len(group.payments) * 6, 10, 0)}\
${fillblank(42)}\
${fillblank(5)}