diff --git a/__init__.py b/__init__.py index 46616f9..4570639 100644 --- a/__init__.py +++ b/__init__.py @@ -4,6 +4,7 @@ from . import ncf_manager from . import sequence from . import configuration from . import party +from . import report def register(): Pool.register( @@ -17,3 +18,6 @@ def register(): party.PartyNcfType, party.Party, module='ncf_manager', type_='model') + Pool.register( + report.InvoiceReport, + module='ncf_manager', type_='report') diff --git a/invoice.fodt b/invoice.fodt new file mode 100644 index 0000000..4855077 --- /dev/null +++ b/invoice.fodt @@ -0,0 +1,3261 @@ + + + + LibreOffice/26.2.1.2$MacOSX_X86_64 LibreOffice_project/8399f6259d8c87f40e7255cdb3c9b958f5e089482012-11-15T15:00:351P0D + + + 54878 + 0 + 37102 + 16522 + true + false + + + view2 + 21911 + 65701 + 0 + 54878 + 37100 + 71399 + 0 + 1 + false + 100 + false + false + -1884,161,1920,1017;1;,,,; + false + false + false + false + false + + + + + 0 + true + false + false + false + true + false + true + false + + true + true + false + false + false + false + false + false + false + false + false + false + false + true + 0 + false + false + false + false + false + false + true + true + false + false + false + false + false + true + false + 882034 + true + true + true + false + false + false + false + false + false + false + true + true + false + false + true + false + 7691572 + 0 + + false + false + true + false + false + false + true + false + false + false + false + false + false + true + false + false + + true + false + true + false + true + false + false + false + false + false + false + 0 + true + false + true + false + false + false + false + 1 + false + true + false + true + high-resolution + + false + true + false + + + false + true + true + false + false + true + false + false + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <if test="invoice.company.header"> + <for each="line in invoice.company.header.split('\n')"> + <line> + </for> + </if> + + + + + + + + + + + + + + + + + + + + + <invoice.company.rec_name><invoice.company.party.tax_identifier.type_string>: <invoice.company.party.tax_identifier.code><invoice.company.party.addresses[0].street> <invoice.company.party.addresses[0].name><invoice.company.party.addresses[0].neighborhood.rec_name>. <invoice.company.party.addresses[0].borough.rec_name>, <invoice.company.party.addresses[0].subdivision.rec_name>. <invoice.company.party.addresses[0].country.rec_name>. <invoice.company.party.addresses[0].postal_code><invoice.company.party.email><invoice.company.party.website><invoice.company.party.phone> + + + <if test="invoice.type == 'in'"> + <choose test=""> + <when test="invoice.state == 'draft'"> + Draft Invoice + </when> + <when test="invoice.state == 'validated'"> + Pro Forma Invoice + </when> + <when test="invoice.total_amount < 0"> + <ncf_type_name.upper()> + NCF: <invoice.ncf_number> + NCF modificado: <invoice.ncf_number_modified> + </when> + <otherwise test=""> + <ncf_type_name.upper()> + NCF: <invoice.ncf_number> + Válida hasta: <format_date(invoice.expiration_date, invoice.party.lang)> + </otherwise> + </choose> + Documento # <invoice.number and ' ' + invoice.number or ''> + Date: <format_date(invoice.invoice_date or today, invoice.party.lang)> + </if> + + <if test="invoice.type == 'out'"> + <choose test=""> + <when test="invoice.state == 'draft'"> + Draft Invoice + </when> + <when test="invoice.state == 'validated'"> + Pro Forma Invoice + </when> + <when test="invoice.total_amount < 0"> + <ncf_type_name.upper()> + NCF: <invoice.ncf_number and ' ' + invoice.ncf_number or ''> + NCF modificado: <invoice.ncf_number_modified> + </when> + <otherwise test=""> + <ncf_type_name.upper()> + NCF: <invoice.ncf_number> + Válida hasta: <format_date(invoice.expiration_date, invoice.party.lang)> + </otherwise> + </choose> + Documento # <invoice.number and ' ' + invoice.number or ''> + Date: <format_date(invoice.invoice_date or today, invoice.party.lang)> + </if> + + + + + + + + <if test="invoice.company.footer"> + <for each="line in invoice.company.footer.split('\n')"> + <line> + </for> + </if> + + + + + + + + + + + + + + + + + + + <replace text:p="set_lang(invoice.party.lang)"> + <choose test=""> + <when test="invoice.type == 'out'"> + <if test="invoice.party_tax_identifier"> + <invoice.party.name> + <invoice.party_tax_identifier.type_string.upper()>DEL CLIENTE: <invoice.party_tax_identifier.code> + </if> + </when> + <when test="invoice.type == 'in'"> + <if test="invoice.party_tax_identifier"> + <invoice.party.name> + <invoice.party_tax_identifier.type_string.upper()>DEL PROVEEDOR: <invoice.party_tax_identifier.code> + </if> + </when> + </choose> + <for each="line in invoice.invoice_address.full_address.split('\n')"> + <line> + </for> + <invoice.party.phone> + + + <for each="line in invoice.lines_to_pay"> + <if test="not line.reconciliation"> + + + + + + Moneda: + + + <invoice.currency.name.capitalize()> + + + + + Monto a Pagar: + + + <line.amount_second_currency and format_currency(line.amount_second_currency, invoice.party.lang, invoice.currency) or format_currency(line.debit - line.credit, invoice.party.lang, invoice.currency)> + + + + + Condición de Pago: + + + <invoice.payment_term.name> + + + + + Fecha Límite de Pago: + + + <format_date(line.maturity_date, invoice.party.lang)> + + + + </if> + </for> + + + + Description: <invoice.description or ''> + Reference: <invoice.reference or ''> + <if test="invoice.type == 'in'"> + + + + + + + + + + Description + + + Quantity + + + Unit Price + + + Amount + + + ITBIS + + + + + + <for each="line in invoice.lines"> + + + + + + + + + <choose test=""> + + + + + + + + + <when test="line.type == 'line'"> + + + + + + + + + <if test="line.description"> + <for each="description in line.description.split('\n')"> + <description> + </for> + </if> + + + <format_number_symbol(line.quantity, invoice.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, invoice.party.lang)> + + + <format_currency(line.unit_price, invoice.party.lang, invoice.currency)> + + + <format_currency(line.amount, invoice.party.lang, invoice.currency)> + + + <format_currency(line.itbis, invoice.party.lang, invoice.currency)> + + + + + </when> + + + + + + + + + <when test="line.type == 'subtotal'"> + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + + + + + + + + + + + </when> + + + + + + + + + <when test="line.type == 'title'"> + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + + + + + + + + + </when> + + + + + + + + + <otherwise test=""> + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + + + + + + + + + </otherwise> + + + + + + + + + </choose> + + + + + + + + + </for> + + + + + + + + + + + + + + + + + + + + + + Tax + + + Base + + + Amount + + + + + <for each="tax in invoice.taxes"> + + + + + + + <'[' + '%s' % tax.sequence_number + ']'><tax.description or ''> + + + <format_currency(tax.base, invoice.party.lang, invoice.currency)> + + + <format_currency(tax.amount, invoice.party.lang, invoice.currency)> + + + + + <if test="tax.legal_notice"> + + + + + + + <for each="line in tax.legal_notice.split('\n')"> + <line> + </for> + + + + + + + </if> + + + + + + + </for> + + + + + + + + <if test="invoice.comment"> + + + + + + + OBSERVACIONES + + + + + + + + + + + <for each="comment in (invoice.comment or '').split('\n')"> + <comment> + </for> + + + + + + </if> + + + + + + + + Sub-Total: + + + <format_currency(invoice.untaxed_amount, invoice.party.lang, invoice.currency)> + + + + + <if test="invoice.isr_withholding > 0"> + + + + + + ISR: + + + <format_currency(invoice.isr_withholding, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + <if test="invoice.isc_invoiced > 0"> + + + + + + ISC: + + + <format_currency(invoice.isc_invoiced, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + <if test="invoice.cdt_invoiced > 0"> + + + + + + CDT: + + + <format_currency(invoice.cdt_invoiced, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + <if test="invoice.tip > 0"> + + + + + + Propina: + + + <format_currency(invoice.tip, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + ITBIS: + + + <format_currency(invoice.itbis_invoiced, invoice.party.lang, invoice.currency)> + + + + + Total: + + + <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)> + + + + Original: Emisor Copia: Proveedor + + + + + iVBORw0KGgoAAAANSUhEUgAAAcgAAAHHCAYAAAA798g/AAAACXBIWXMAAC4jAAAuIwF4pT92 + AAAgAElEQVR4nO2dMXLjurfm0a/+uf1WYP9XYHXNAqyOphS1bjiR1Zkyq1dgOX9VLWfOWk6m + Jms6ctjyCq6UT9W1VjDWCjwFvw/uYxgkARKkCOr7VbnubVsCSRDAh3NwcPDp5eVFpcRomg2U + UsdJ3TQhhJDnh9vxOqVa6KxAjqbZUCmlf07xc96B2yKEEFKfR6XUE35WD7fjVRfrtDMCCctw + DFGkGBJCyGGhRVMLZdYVS3OvAjmaZtoynEEYT/Z2I4QQQrrEVgulUmrxcDt+2td97UUgR9Ns + DGGkpUgIIaQIbVkuH27Hy7ZrqVWBHE2ziVJqHmAt7pRSa5jdz/j/5BZ6CSHk0BEBlua/Q/z/ + kWfVaKty3qZQtiKQsBgXnsJ4D0FcUQgJIaTfQDhNUOZXj4dtTSgbFUg8+MLDlfpqQmNx9rmx + GyKEENJZRtPsGDEpE0/dmDVpSDUmkKNppl2pVwUf2UEU97oISwghpHuIIM5JiRv2+uF2PG/i + AaILJKxGLXxnOR/Zwapc0FokhBBSBKzKGX7yhHKjhTS2NRlVIBGEsyh4iGsKIyGEkFCEUOZ5 + JndwuUZbm4wmkKNppm/qIufPj1B3ulIJIYRUBq7XZcEa5d3D7XgSo4ZrCyRUPcu52R2ijRa1 + LkIIIYS8154Ztg26PJbaKBvX9VbWEkiI4ypnvXGDG6TVSAghJDqwJrMCDRrWEcnKAlkijtFM + XEIIIaSIgiW+WiL5H1W+VCKO3ymOhBBC2gKa881xOa1RK2hWMMEWZIk4fttHvjxCCCEEOyl+ + OiqikiVZxYLM2+NIcSSEELI3oEFfECAqOYN2BREkkKNptsjJlUdxJIQQsndw+LJrme8rNMwb + bxcrEo7/cvyJ4kgIIaRTFLhbvTXLSyARSrt27Df5zj2OhBBCugj2Sv6wbk27Xwc+WxB9XaxL + hzjeURwJIYR0FWjUnXV7R9g7WUqpQEKB7Sw5G+TEI4QQQrrMDJolOcOJU4UUulgLXKufeZgx + IYSQFMApU39bt1rqai2zIF0nc1xTHAkhhKQCNOu7dbtH0Lhcci3I0TQbKqV+W7/ePNyOB2wV + hBBCUmM0zdaOffxfsDXkA0UWpMs/y3VHQgghqeLSsNy1SKdAwnq0A3Pu8lSWEEII6TrQMDuq + 9Rya5yeQOYpaGvFDCCGEdBxvffsgkIj2cVmPPNeREEJI0kDLXFbkh/galwUZ5KMlhBBCEsMr + xuadQOIoq7H1GVqPhBBCekOOFXlhnxtpW5Bjx75HJiInhBDSN1za9s5AdAmkZMvIVUIIIX0D + 2ra1HsstkDAt7bMevRK6EkIIIQlia9xX6WaVFqRrHwjdq4QQQvpKoZv1P1y/BFvmXCWEENJX + oHG2m/XNWCyyILn2SAghpO/Ybtb3Agmf64n1IQokIYSQvmNr3YlZhzQWpOuEDgokIYSQvuNa + SnzVRCOQtnt1x+QAhBBC+g60bmc95qsmGoE8tf7I4BxCCCGHgq15r5pIgSSEEHLoFArksfXH + 50OvLUIIIQeDrXnvBPLM+iMtSEIIIYfCh0hWVXBgMi1IQgghB02eQBJCCCEUSEIIIYT8QScL + oEASQgg5aHKOdRxQIAkhhBAHFEhCCCHEAQWSEEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWS + EEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWSEEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWS + EEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWSEEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWS + EEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWSEEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWS + EEIIcUCBJIQQQhxQIAkhhBAHFEhCCCHEAQWSEEIIcfCvFCtlNM0GSqm5UupUKXWGX++UUmv8 + /7P++8PteF1QDCGEEJJLcgI5mmZaFFdKqSPrT/rf5+LfQ6XUccu3RwghpCek6GIdO8TRxdFo + mg3bvz1CCCF9IEWBpFVICCGkcRikQwghhDigQBJCCCEOKJCEEEKIAwokIYQQ4oACSQghhDig + QBJCCCEOKJCEEEKIAwokIYQQ4oACSQghhDigQBJCCCEOKJCEEEKIAwokIYQQ4oACSQghhDig + QBJCCCEOKJCEEEKIAwokIYQQ4oACSQghhDigQBJCCCEOKJCEEEKIAwokIYQQ4oACSQghhDig + QBJCCCEOKJCEEEKIAwokIYQQ4uBfrJTDZjTNjpVSA6XUUCl1ih/NeU7FbJRSz0qpJ/ys9c/D + 7fjpUCpyNM1OUWem3lRBfUlM3a1Rd6uH2/G6nbvuFqNpNkTd6To89qi/nag30+ZWB1hnpt2Z + vnpS8jVTb6bdrdHunlu67aShQB4go2k2VkqNMUCVdTCbM/z73YA2mmZb3fGUUlkfO2DNOjN8 + qLvRNNuh3l7rrq8TDUzEJqhDn8mEzRG+p38uUKb+zz3aXNbDNneK+qpaZ0rUm+arKHsr+moW + 5477x6eXlxddWS/Wk33p6uxsNM3mSqkrz4939jnaZjTN9Kxzhs521PDld+h8y5Trv+U6M9xj + sF+2dL1GgdUzMaLWMHdKqUXKVjkmEmO0uzOPr8RA99cl6u5gPEE2Lh2kQPYcDFDzGjPQumzQ + 8ZIZ8DtQZxo9w19gkpGcZbTnOnzUopzSYA9hnOGnrcmYi3v014MbN106SBdrT+nIIK8wC/45 + mmavnb/LHa9Ddabgxv2h60xPClOZYGCgX7RkMeah398/o2l2o99nlycYHRJGg3bDfh1NMy2U + s0O2KBWjWPuH7nCjaaYH098dGegNWih/j6ZZhkGhM3S4zhSEUk8wVliT6iyYYDztWRwllzoo + Ba7yzoH6WsMj1gVxlGih/Aceu4OFAtkjOjhAudAd7wn3uncQfNP1OlMQ7jUs8c6BgfR3Bwd6 + PcH4ezTNJh24l1esCVnVgK+2uBpNs3XXJ2dNQYHsCR0eoFwcwZrc62A/mmbaFfgrkTpTuM8f + GFw7A+7HNy5gX/zsQr3Bml0lMCGTnGFyNu7OLbUDBbIHJDJAudjLYI8Z/AouuBS5wKx+765q + vL9UBvuLfYokvCarFqNTY6InZ7+6ZIm3AYN0EgYDZBMdzmwudjGIbHHpQUs93I5b6XgN1pkS + iQBsjhu4ni5Pr0sO9xWE0oA4buHutvHZEO+Lbm/PD7fjVr0XEJafDRRd1Fdj1pvhJ/prL7Yh + lUGBTJTIA/3GbBpGhpLCAdfKvjOOcA+tiGTkOttadVYa7Scy8JgsMnXvY28iCfd4XXHcYP+d + V1YckX2nbpu71BZ4W4N8ZHG8F23OKyIcbl3ZX+tOcA9GJLkPMlF0NKjMjFGBLQanZd1Qbgz8 + kwih6jdNzewjiWPUDdWi3iY1Z/r3D7fj1taHIFS/K349Sh2i7uY1RFrfx7DppAI168rwiDqL + ki1IZIWqO8H5q09ZeJgooCfUdG1tsTcs+uwv0p6ubw3dW50JRWN1ZoCVMa8hlI1NLiR4x+uK + 93mHvXXRrF0I5aLiu9083I4b2wIiAnKq9oVHtLtGxrBUJhlt4dJBBukkBgbSqg36Wrtamhro + 9cD3cDueY+3jvmIxi9gh5ZhUVRXHRuvMgPIHuF4VLlvaOlNFxHeYrE5iu4K1FQrr+S9cJ4Sz + pvb5YSKRVRTHLepr2OQEH3Wnx5PPEONQ9LMtu7avOSYUyIQQs+VQdIf7rMWrjbUqCKUetL5X + +PoR3ElRgGhUifDdtFln6v0E4zPeWSiNJmGARRQa+bvBBKNRTw5cfcMK9XbV0B6/ZQ0ru/H6 + kmgLUItxxcnZGSZNvYQCmRbLCjNSM0C17gZ5uB1rMf9SYWZ/HiOcHGJRRWzv9+k6wnUHeHch + HFWcQPkSWvYG9dhKurIa9RZ1gMcaXxWPxbcmrGxfMDmrYolfdjVbUV0okImAqMHQNGh3GKD2 + losSM+FhhU63iGANzSrM4u+09bvv/J24/hDvMISLJlytKDOk/e320fZwvUlge7uIZUVWnJTt + 4K3Ye1SosMSD+2tDt7RXKJAJgE4XOsvd7HM2KsHMPjTK8ggCVwkMeKGu1bu29mP6gHc327dF + BELrZW8Ts4rtLVadhQaodS7QBfcSKpJRvD5dgwKZBqGdbiNOuu8EsCRD1yRnNazI0AHvsUvi + aBCWZMja2nlMKxLvICQw7HrfAz7a203AV2pvk8GkLHRSN+tiFCjuKfRZercWSYHsOGLrhC87 + nIXXuSN+sCYZEi13VGXgwkAVMqBvYwyQTYF3GXp/Mbd8hEwctljL6gLzACvoKIIFFDqRveny + ZnvcW8gk46Rv+VopkN0ntNPNO74vKXQQqjLQhw7QnZxQSPBOQ6IMv0aMzgx5Z52xIoSL2pfK + gzsmsiH1tGk73V1F5oHei165WSmQ3SekwT3CSussiGgMGejPQgZ6DFQhA91NQskkFoGDVe0B + GPXpm31o2zWLCPfja0XWyUw1CZzIJiEkFSYZMSdme4cC2WHgrgiJwkxlDSBUxEMELyTX5C6l + dRMMViH3G8PdFVJGVydn3qJdY+02RPDuUso+g8jWkKWR3rhZKZDdJqSh3aViCWGgD9m+EDJo + BQ3oXXet2sAi8rUiTyLsTwv5flfzcoZYtcECCYspJMdvisEsIffcGzcrBbLbhAz2qWXWDxlM + vQYtuAND3GSp7t0Kue+6s3lfgdy0lRAgFFhrvpOKKhOK0IlsJ+upCEy+feswaFmky1AgOwpc + Pb6uwk1qSdnhtgmJMPQZuEJm/3epWY+CRi0iC9/kAF0/1cG3fzQtkCkfERUyMevUNrOqUCC7 + S0gDS7XThYi6z37IkDpL9pgeCLtvMvjQ7EtvBFoBXZ+g+d5flfypvnW8Tfx0oehen65Dgewu + hzDYhwwWPvXhPfvvwTl23vdfI/AkRCC7HnTi7dYMWbcNrNukj96Da9g3q1MvcrNSILuL76y0 + s2s/HsQeVH3rrMrRPl0jZLCtOlh5ZzFKYB9pbG+FoQ9BTCH41mOdg8k7AwWyg/TMtVVEyKBa + OGgdUJ29gkmRb9BE1YAJ38G/DxOOqoSIaR8OFvbuOy2dT9ooFMhu0ifXVi6Be8HKBuuDqDML + 3+fo5VFEFWjCPegrAruEPT2SpizxTkKB7CYhg30fOl0MQuos1ehVG1+B7E1mk5r4vvcmBvZe + TMrgSveNPk9+YkaB7CaHaA2VUTYR8K6zxCMJJb6ToyqRmcSPQ7TOD2XMoUCmTsJ7+ULXKGgp + f4R1sn989yr3ZVKmAixxWpCE1KAXe6X2iPfkqMa5moTY+FqQXIMkpAYhGUjKOuXBuboiBzkR + QiwokGQvwL0asleqTAxoIcWHFj45aCiQZF/8V8B1tx4h8pVTqhHSAowkThAKZOKkuLY0mmb/ + Wyn1PwK+UpiBJLQO+nSga8PQKi8gsB2xzSXIvw69AjpKSGTqIJUIOQiZPhHgfwV+tewUgdD1 + tVNGgHrRi3RhDRIiepxsJAgFspuEBF90fmaKmbY+RHUWEBZv8Dk/L1Qgk5lUkN7AyUaCUCC7 + SYh101p0orAAh9h8voG1+5RzzwP8VN2ovvM8ybyKQJICQk60OGCCgph0nQZGHpM9Q4HsINpi + Gk29E/+3EmmIAXNlWYBmVtxUgMzMM38lBTI+dAnGZ3hIWWj6AIN0uovvCQlnLQWdLCu4R+ug + Xau+B0GHuq/aqrOU4SSinNDJKbfNJAYFsruErJGFbLgPpsKexbpocZz4lFHjSJ1G66wHcAJR + TmgdfWVGo7SgQHaXEIH0EpMatGlNXPuKI6gqkE3XWerQgiynyto6J2YJQYHsKDhxwvdYmbOG + DydtKyH6t4fbsU9QjqTqc58xEKUQJl4ooEZ/48QsISiQ3cY7Uscz2rMqTQcW6GjYzwFrjq/A + XVVnIJ/V+G5v4cTBi6p1dN6Hk/YPBQpktwkRyMY6HkLT7xsoegeXatXw97rPe8FgHScUyHLq + 1FGTk1kSEQpkh3m4HWuB3AbcYVnGmTpMYOnFQD/TNx3kUMGlKomxnhNktR4ItHDKqVNHtCIT + gQLZfUIGcL2u1sjsVB/MrC09CNsdtqH4rpFuYYF+hytVC+MywmHPMQRSD1YMnHgPB+8C4IKu + mvzCsGREa/dhooDuswhM0XY1mmYrBPlEB+uE70QbHd3lcnry3OgfDEQt1r5MPVidRhDs5Ik0 + +PedGBOIE/RtBu10GApkx9GD9mia6Y50FXCnmXbhtJXWCsLSdm7TmAPLEe6fa28csH2IVUcX + mMzSzd9R6GJNg0XgWuQRRLKXLhwE1nyNXKx2T3Og4j69QtD2YibN+Mn1yO5CgUwAWGihWxK0 + C+eppyH7TUUBXhyySGKgpnu1mCa2BmXcWtNNKJCJgIjW0K0Wr67DPs1QMYO/8Pz4fUBOW4MW + yd5a3yVw+0EBaHuXDRSt++nfo2lG93bHoECmxSQgctSgO9/vpqJb90DIVpasYp19xcTiYGb1 + CHpi9pxiQvpQ6MRMwd3a5FYtEggFMiHgaq1qDero1nXK1iQGcd+1xy22kjxVDKo4g0j2PtuO + OOeT5NfRIMBzodvesOK+4Uv0U7pcOwAFMjEQmfqt4l2fwZrMUssgg0E8ZH3w7bNwT99UuKy2 + vn+kPrHw4P9w7TEftL2QrFam7Q0reC8U+ql2uS64V3K/UCATBGHhVQZ8g7bC/tEh5ilskscg + YR/WXMTOtogebsczJDiogplYrPq2ToSgpP/ZgVvpJKLt+U4g3tqe8PhUEUmF9U4daLdkSsT9 + wH2QiaIHfHReX7ePi3Nkktlhhqx/Vl3aMI+BIQsMrZ+7nkEfozWavhoCVevM1NfC1Bes0+RA + vS657pgPvAbLQOt6Idue9vignJAJnuQI7VUHj21wP1lTCTjIe/oukAMMiH1lic3tdfdlvXVC + 9d8DwwYd+inSSR7PoUkLsAYzqRA1uHm4Heeup0UQSWUNWgoBGaa+Xuusi1l5MKEaYq9jnefv + O0PtLagwefjguVBxRNKg+/kPuP23os2tmsxadcj0XSB/dOAeUuQs8mZo1eJEpTSoJpJISs7t + wVQ87xaD2L753YF7SIWqVvUkb2IUUSQNJ6L9vmbZsvqYbxTtquaBAb2GLlbSJ258c9BCJPVn + fzb8/CcMgDkI7svc7RDJU4hk1AmoA1+R10sGT0x354ZBOqQvbBCI4w0Ghc+BafwIsdn4biUS + p+LUCbKLDQOAcqBAkj6wq7o/FGujXRuwSDrsilyreWAy96Ujk7NeB2rUgQJJUudVHOsExWBW + P4M1WSUDSl+pui3mUDBtr1Igm14O0GejKqWua2wFqcu2rVN/UoQCSVJmW2eAstHlIAPKlwMX + yh2SUcz2OHB3nU2stocgmVN4Mdqub1qPBVAgSapoARs0MfvFzN4IZWiC+NQxA/8SVjlT0H3k + PubETL33YhiLsi3XK4NzCkgxinUVeHgw6Rd6hj1rI+oOEbErRB6OEYjRdPThvtgiwcK7etXW + DbYnFEVFprL/ru7e1EfUUWOHg2NSoi3KObJcmZ8YW0NsNhVF/mD2W6YokGsMkk00GNJdNshS + 0vqMFxuwtSW1gFgOxU/qWzjukZklt161NY3sQa6kDc7N8R1lUeGgbZNlatmkMLrAtpFXFygm + KeYnVvajqvsfV55jcPLW6aeXlxdd+S/W77+03RhCQJYV/XKZyLe/rDDjX3c1M40Bg9cpfo4R + FdsGxwEWrVlTNdl+VqF9HJODiYgYfoZFlUyQB97VrGTsWIs66uSzYQw8Fu8iJIr7GYJfef3R + Ywxepra30qWDSQokIeTt+K9fPlXxcDv+xCojJB+XDjJIh5B08bVUq5xLSMjBQ4EkJF183Wqd + dU8T0mUokISki68FyeUSQipAgSQkQRAk4RvJzWOQCKkABZKQNPFKjg1oQRJSAQokIWniK5Bb + HqRLSDUokIQkxmiaTQLcq7QeCakIBZKQ9AjJgMJk1IRUhAJJSELAevRNb7erky2FkEOHAklI + Ioym2XFg3lOe1EBIDSiQhKTDMjBJP4+qIqQGFEhCEmA0zWaBJ1HcMXqVkHpQIAnpOFh3/BF4 + l1WPMiKEAAokIR0G4vgz8A5pPRISAQokIR0FhxSHiuMO5x0SQmryL1YgId0CBxMvK54cP+ny + 4dKEpEQvBBIDyimO/3nCCfSVTwJHOP1AnJawrnuAtDh1/jjGKflIVj1AmfrenuhWSxu0O239 + XVV8kDvueyQkHkkLJERi4Zppj6bZVgcqPNyOvfeCiX1mF46/7fC3ha+wiQFv5grPH02zO9yj + t7BhTWpubRa/wt8e9bXqTA5I+2CCN8lrJ55s6FrtLmYSX3eiTdrl08vLi355L9ZVv3T9RQYE + L2jRGJeJGsR25TFAbVBeoahBHHV5ZyXlaeEdlokaylt6hvp/C5kYkPZBextCGMvaSBk7DL50 + rXYQiONr/364HR8fen10FZcOJmlBjqbZOCB44RzCMi4o79RTHBUGs0y7TPMGpABxVLjmCuUV + ieQiYB/cz9E0e/Zxt2Ggzq2bjrNO5LT8AVzr0nVf1VK0MRMsimN3GaCtMnFDYqTqYg1taF+1 + qBYIRmiGkjO4s/L2ms0CrYIjPNPQ9UesX35w+5aw1MJfIOIDPHdd64Xsjy28GY271DEpNWvy + evK1UH8mlzP5Nz2BtD0YaMPHdh80yxAPt+O5eu8peVeG/XskTljZzy7u04wRM6z3Z+Izp9Zx + Ye+WTeCdOjX35KiLoeirr3WB+1GmXnLqZqKfw3quCcqw6+XtOax7M9+dWb83y0PPGJfenhv3 + duwoy9TTu2WZgt+ba3xYFhpNs7lsF30huW0egcmaJc71GTTiKtGCRes9VdaCztEwY5V3lGcZ + Blq4pJtoV/+gaXHUbWU0zfQ1fmGt+8pMDNEX/1FKXaIPncPL8VMM5IY5Jm22i/E1KAmioyAK + Xx3nXdq/H8PzYvcZE+RkLPUr2X+wdeYf8SxXQsDkvV5hbLDrQgvZb/Fdk8Dhh0zmEFA3+nO/ + 8Pm855CYybLdt2f4veu5TVn2Oxnjvuyy8n5vruE6i/SqQjKLzpPiPkinleVBnghWdS8eiU79 + Bn5X1X2W92whKcYkec9WJxiE7J+7Ft2qZiKlXbnf9bqMHoAhHsZauFdKfVZK/Sc+oz97AavC + YNzKUqyOxb/zJodFHOWIpBNYUpf42x2e5V28hTUBty1Is8yhn+8G3/9sXwt1Y5aAfOrmtWzP + 55hb/zVMcn6vhDB+NZZuKNa7mjkmOr0kRYE89fiMk5wG2KUXHfte8spLdc3x0NGD618Pt+NW + 9jpisncm1jm1i24F95o5tPnx4Xb86ubV9wQXm7RcjGCYCdlMWGYL8fuq/TpEJM19fUcdrhzB + iFJgLsy94r9mmUM/7wzfd1nw5jqldRP6HHDPatf6ibE6hahvXMGVcBXf4Z8/4L4NRU6qjyp6 + tZKDmXQOE7pW0+MG62Jt7nM0Ho3MIQRvf7O/JNbYjiAsctDXg+vcEhxV0YJUEAtfkTxR1jqh + RAjNoxAUI5hGwJ0iZGHu40Mkuawb60+bgOcw9zSz/p27/qcnBOKZXK7uMt4mF+bah2BFpiiQ + lTfD58z2Ys/E65QX+17y6moT+TqkOfSg9m9YLF2MVPW5JzPgmwH6QoiH+V2VOACFgftNXOp4 + mITQLMX/jy0hiPYOrHJnqAuf58hg1Z9hTVWL+rZsaxdE0kwoXOuIefcpvQULTCAOwopMUSCr + 7s+8z/l91Rn5LsedsUYjrELeveTdexl5dcVsK93GrHH9G67AfWVIMhNKWySUaFsfBloRcLLD + vUtr0xbEuekvluVkXy9PMJ5RvhHJogC+nfqzFmnf81B8dyIE3AiBeQdFwXQGU29ldfNObIWV + V/gc+J6xFs2aqu/pLeY5ZP3adWvX/ZsVPZpmUry9RTZVkhNI4YMPxel+QAe+i1UeqLJJ/7Fg + IKwSOl00o1zQiuwcO7RDvcZ4DItxr6kD4c41wrPWg7sWErFFSEEwlmKtbiLaq/mvGVCfrIH8 + Bs9oBGUg/l9bR3NEjg5FWS6XrhTJIkwZeh1ugWcx4i3v69yyaGcQYjNRXeHehjliaa7jUzf2 + s0w8J8QLI/hl1qO+R9zrXDzXWtTlhZk0YH3SCN/aClo6wfff/m1H35o6xU8da74TpLoGGTpz + uStZN5iLxubDJm+PlPqzKB4iQLuiZ8K9h4p4UXlmQHkMLJPEw6xz6TWdzxDFSQdzqU7Qlk8Q + mfkb+w+1sH3DZ7TL9B9kIvkJQd0gMvNYrP2t8b1rtHnTh94EEm3zGv/WWwf+H65pynQKgY9I + WsEqlyj3N8ThHPf0nw+340/mR7gkZ6gL4168wvf/toXAo24ei8YPUee5WFZkmfW4EltTlMnZ + C2+XDN55wXYec4+ZKPubVS/m+exr/xY/yWfzSjJRgBaM0TT7ZkXB5XGHWVlReU+YSWYeeyw3 + nltNhoGp5gqtBf0Mo+nr2FmWMGCHDb6FrmgzoIhE76QFUsvFiUF0AEvBJNzP8Lcl9kjO8PtT + WIlLY9FAIO8td/8CgT/GxbiU1qMWD5Q7Ee6+lbXRfQWrbi3u9Rn9eClciY9yoEY/WiCSe4gy + /i8+58qzPMb9Pok+Y747wGZ8PX7cyH7kUzfi2fOeY1ESc7GQ70OwRp2b38v6XclJGOpjZU2o + MxHIZL7zTuzwfEPxfu4drtnkBTLZXKzqT+j1PEc0thAK7xl5SXLxLRp30EntcGu4khvs0ICD + gi/QOec5whuc/JwQQog7F2vSAmkQx1MZah/9ZCUBeK6bsQRrFW8zrAjHZ9mWX63jswgh5JDp + rUASQgghdXDpIBMFEEIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkIIIQ4okIQQQogDCiQh + hBDigAJJCCGEOKBAEkIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkIIIQ4okGoJT6AAACAA + SURBVIQQQogDCiQhhBDigAJJCCGEOKBAEkIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkII + IQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkII + IQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkII + IQ4okIQQQogDCiQhhBDi4F+sFOLLaJodK6UGSqlj/DwppdYPt+NnViIhpG9QID0YTbOXkk89 + 4r9rpVT2cDteRb7m9cPteB74vceH2/Gw7n2gzFOllL7+Rc7f75VSixjPTQghXYECGYdzlKL/ + ezmaZhul1CyiYEwgUK0zmmb62gul1FHBtb/qn9E0u3m4Hc/2cI+nqCPN8uF2/NTw9Ya4nv7v + ifjTI66/rFiuLlPX31msMj2vq70BYzzTufjTTim1qjL5EWWOUU+y/dxjIhnlmUbTbAzPhmZV + t9+NptkA9615KrvP0TQL7ZulZcZC3Fvj/aKPUCCbQQ9wv0fT7FukjnCiB8+2OpUBA89P69db + PbgppZ4x8MkBdfCxlFbQAnmFC63g+m2iPvTzLS0Bk+i6OB9NMy1y+n2tI5RrytTiNY7tzsYA + OsuZAB2Jyc/dw+144viMXd4xyssrU4kyZ3imyu8L11ta16o7Mc3ExOcR5RdxVfJ3G58ya4O6 + abxf9BkKZCAPt+NPrm8Iq0K6IRejabaKNHObtdGpDLDK5PV2GPQzx+cWGPT2RVvCPLZEbCsG + nYEYpPVnVrpuygQN9beyBvgNJiDH4nrnKHMYWSTtwd1cW1mTn4vRNFMeIjkLKNPU06DGM5V5 + N4LAhOEkVnl7Zl8T1t5AgYwE3Dq6s2sB+YVSj+AaLZ15e3CGwbGtdT458GhxHLosIoj/GBZO + jOeswjh+kYVoC2Au3wVm6wsxQTrCv8vqRFo/G9vyRL0aK/7Ms8wq3OGZ3iZzEO9MiLQWyWVA + G3SVaSw+M6E6qfpMmJQ618WrgOets0Sw8fx+W0FtbfeL3kGBjIy2sLQ7SnTcKIEyYBbBfVQK + XH7SIpyXuQu1+1dby03fm0SI0rn/t2rjDJiCBTTRVpZ491pQZnnWEcTP3PvO5W5EvSohkrrM + ha/71gNz3Q/vTt8LRGgtrCqfNrjJc52iLvSEamnV07yCp2VR8ZnzsF21oTx3JVAN7uvLDtxK + 0lAgm0F2/hjumnuxbnPawmK7nAVvH27HXgNRG0EAlqU6iOle82Dh4QqcWVbNoEBQpNDO8uoP + IinFdBbRihwUvTf9vHA7GoEum/BlnhHXM1g45v0NQ5YQIADGst3VbQdYbzf1u03NzYpJremn + pz1yE+8VJgpIA7nu10Y0q3TNxJ6l1+XUBK60LI7KZ50Mn3ks+xwGNDOI7TwCsOSkJZrrzHNS + IwW+sM59LVvUk2zXpz7fU++3HSmIWa21eeGJUBDbvUSM1+RY9AuKYyQokAmAwXOHOx2jQzcC + XGpyEMw6VkNPECD5s/P43r7Ie1fSAiytYwjPBv88wntqhQY9A1XLlevjswhrejMhKvNEoz2f + Hf1i24H7Shq6WJtBzoZjNdIl1hSO0KGbmuXKgXfbtb1TmCy8sxiw9tnmOmQIeYO3jDD0nYTI + gJki121UrAlZzMlI8EQPEwOzPn6PNf/K0ZqwRk3U7UYvJ7Q5+YgFJlDv7huu8dAtKERAC7IZ + gqwDT6Srs8loUdnJmBknEIiJFOs8l6P8jG89y8+1GcIvXbox24Qs13ciZiZHu5oRp3Z5KlJ5 + pEdQICNjBVOoWGt4sOTM2tYJrtMEclbPjcXhyEH2zrVuCavljYA9gPJ9eK/Z1QGCL70VsbLf + zKy1stKJpLVHcVHXu2EF5twxVSKxoYs1Iuj0P0SJ15FdlHqA+I3/bypxgNwIT4EMAO//zV1X + YJFIcSsN6DFg24X5Z+MuZYjjSojSnZ0oomK5A0t0bzwTKpj63PrmJi4ozw7MiWY9mgxB1jti + vuIEoUDWQJxuMbAW+hU6fdR1Qt25RtPMhKC3kTiAApkDBnljbQ/g9jaTiw0SKyRzyoloywaT + m9UEw0TJs4t6W1nJEXz6idyjGMN7Iq3ReaR3dVywHr7XfMWkGhTIQDxO9tgiG0pTwiX3pLWS + OIA4yUtQ8N1j32hjUcg1GAjvhCRae0bwS2ZlaCrNL2u5Qu8jJSM3m+g3vvt8PZDelx3Wn+09 + iZdI2UeRTACuQcZlk5eVJBbWlo+v9noW2Ts/dLrBkkjIKAE2Lb17PbjrRAWLOtuLsGb+27Ic + h2VLEA25QqUgxhYq/Vz/frgdH+vj5h5ux/odfbGi2S9TjJQ9RCiQ4VyLnxtrDUnPIP/Wg0nD + 9yDLT3FTcx9YWm3hXk5ccJpLXjuI5bqOKZBP1vNci32XJ7C4nqpsqbAy8Sghjj5JBWaRA3Nk + EN1NpMms2Xd44xJ9XGNgbZFhv00AulgDca0rOhIwX+IUj6Y22S9EMMhr4gCe6t8ursw3joTl + uh08O9pMLIGMlY/VREnb9zm3juI6EieK+B7ltbRS73kdm6XcexRjB+ZEESmfg8mRsm8iDjI4 + xykm0d4hiQ8FMgIiAbNcoF80lYUGnc0kRI+dOGAj1lJ66b6FZVdqCfkMfNbnXQnLr5BcPPoE + xpRp5eEsIvjgZT2AWwnLzQk1henuHJMFlZfoveh+xf/HcIXOZQaetieVSGog87yaem30HZLq + UCDjomeI/6BEvVdx3KAVOReDzySiQMpBo6/rm4Mmt0loCwmiYgbCiTX4yTr2XtcrcG/ayQny + qOROFNaPCeL5WuS1ENtDZNBK0OHheFZ50slcbHGxke10Yq3vzYSVdml9Ls+Sle9kYJ1SM6tp + 9WXiPuR1Gn2HpBpcg4wI3FT3osTGFuIbTBwgOz8DCaqTm4jbGmDPAq4gB9RW82xiHU2uoRVZ + 4FkdcQTyWY9EIm7Xj4wSPbH+njcBKSpP3rt97boRyIcwAe0NtCDjsxJrkU2nA2sicYAcvPt6 + Ivmsha0Wcp3RVY9vrraAI8zkhEV+fo1IyZB7qsK6zMpxZJKqIo6Hwj7eIQmAAhkf6QJpNNsJ + EgeYNcMzuJY2gVaJzbujjRp2E++FlgIjyta31tZalI+ISKF9e09wdXbF9SZd/ddVxREW6yef + z1pJuXPXOR9ux77lDcXE8zF0LboE58SsY++QALpYI2MPvnVOGvDE3tNVK/AAlsxG/Cra2YMH + hlPMcn7nOwDLz+1j0lLoEsSGfiP6tdPB9RT5DhnB2nEokM0gBaZRgcQM3axHfY20riFn/RdM + RlCJspMqpMBdlG3Ch+vSRGBu294eYAUdqZz9g3LwpzhaoA6ld4cWY8ehQDZD4fqT7iijaaY3 + Xb9g1l0XKWiFp4lri1ZcOy+wZ2kFZPictDDAnrfQayWDrzfAOqli56o/K8hKeWxjkH+PtqYX + 0P6k4N3lfKbKGZfJ4zOBtPZgqryTXki3oEA2Q1mgi0yUHCt1lu9Btvbp6R9Ax5WdWa9vLvOs + HAjCymG9ll4rMfRe13XRgIiJgDzRpWgPpKyTq7z0Y5h4GMtjF+sINfALa3i54PpyPT3v82/t + 48AG/zX6gBPHtpdoSQpIszBIpxmkQLoCdaIG72CfWmZtys5DDsK51qZeP8KAbe5Vlz3EYGos + 5FNL7G28rpUYZxgQl9i0bTZ6D7HfUb6DwuwvCLK6F1HPOj3dtRFVsXlctpdJA+JzBWHX95rh + 2sdwE88st+D3gojbt8+Via6LhNcsj5CDd5ZTh3YfmUU+Bo80BAWyGd4NYI6UUtsGBGPuKZBP + AdceWzPfEyunZsxrpcQRNntfFmxe33gG30ysOr6CYLk+e9NgRLF5tz8Lnuk64OSLK4/P2KRu + VfnUIbe9JARdrA3gCGCw3ayy90RZqHckKchDXrvw83oW/HA7HiAJcxE7JLe217O8r5UIi4L1 + N4kWkoGPpYfPDEvK3WFgbeKIpC8ehzbrCd1fjErN5ZtH4gb99y8Ux7SgBemHzwZeG/kdO7v/ + TK9lYc0mr8NUueZMrE85B2dtAeDaQ9+1LNzvAgI4FGtNTxD4zCUGVa5VEbnxv7HoTpFr1eQi + HYh112dRF0HuM1HuAhalmVCZMpdNrelhMjeEO3fs2IYQknS/SpuNwVJMNGO4LuWmfZ9JzhJH + gsWow5jIeuGWkgp8enl5cR0C/KXhk+oJIYSQzuDSQbpYCSGEEAcUSEIIIcQBBZIQQghxQIEk + hBBCHFAgCSGEEAcUSEIIIcQBBZIQQghxQIEkhBBCHFAgCSGEEAcUSEIIIcQBBZIQQghxQIEk + hBBCHFAgCSGEEAcUSEIIIcQBBZIQQghxQIEkhBBCHFAgCSGEEAcUSEIIIcQBBZIQQghxQIEk + hBBCHFAgCSGEEAcUSEIIIcQBBZIQQghxQIEkhBBCHFAgCSGEEAcUSEIIIcTBv1gp7TCaZgOl + 1HGNi60fbsfPMW52NM1OlVKn+OfTw+34qaVqIISQZKBAtsdCKXVe42pflFKrSHc7UUpd4f+v + lVLzSOXWRoj3UIs3BLzSc4+mmZ6QDFDWGmWtK5Y1wH0N8B4anVjgeuaata7X1bL2xWiaDfEM + z5h4VmoTpP9QIEkngDDqScRX+35G02yn//ZwO/YScgjjHBOBI+tvW/17X9HFYLpUSp2IX1/h + b3dKqVlEy17f9ww/8r7N9R5xvdIBvaGyJjn1oMuaV53IOK6n6/x3yHcebsefPMqdO+rWtAld + F1lb99XUM5K4cA2yPZaw1uyfO3EHjzmfuYY11Utglaxd4gj0gHY1mmZrDNa54O96oL60B0Kg + B/jfo2k2KatLfOa3JQqSC/1ecP+1QBlPEB3XfSt4IP4uu/eYZQFTVl49nPvW6T7QbWI0zVYF + 9aGf69domi27eP9kf9CCbImH27Gz82EmeYF/rnytpL4gBM0MXFtYf2ZCMBH1c4a/zQoef4XP + aXb4vLGSZkKEf46m2XOe1YD38lP86hEW7jPcc3Pcs/7JtCjVtCSPrTpYiPseWpbPQg/4Ba7N + orLkvfuUpQLK+ulRVijbCJNDubyxw7+NtSvb14WehD3cjhceZca4rybKIhGhQJJ9Iwf+jRYD + S2hWetBSSv3Avy9H02zhGoRH02wmxDGvrKUYEJfatZsjbHJCc/dwO5bWkSnHiPGJh3D78t0x + QOvrZWIicSRcyEVcOyZcpqx1pLKWKMtYlz5lhbCsM2m0JqA7tAnpVl7BujSToR+6fjxEvtZ9 + NVgWiQhdrGTfyMHUuZ4HwdiIXw1z7lkOMpOcsiawBhXE4cNgPppmYzHgbyxxNOU8W9+9LHP/ + lqAH5M951gsGdSnA44LiTFnOQReDv/x+UVmaLwVl2fVQVlbb2G3iw5orvDv34lcUK/IKBZLs + GyNE25IgD+kKPbX/iPUvY4nelQSfvBs0HX+Xg3yuuw3XkGvIlS0nLVplATMYyHf4Z97aom9Z + K5+yxGfL/r71KatNsBZrXKubkiAc38kHOSAokKQrhKzBuFyiclArjEbEgG4s0jOH5ScFuLAs + S0DbGFhjbkmIWVYX19DkhKUwAAdWtbEij+CaJQcO1yATB4P7GAETZm+XFgCfdZTKiD2GsRIY + lEWCyr+7LJq3Aa0sXB9kYr1yaAnh237VsmfTlhq2CZzU3OfqSx03rk3MsrqIFDnfNmGCuIYR + 9x2TRKEFmTBwKz4hwOASA/RXBLT8g31fTbHGFoi6Voix5I7ytgnAVWYGrq3tPsTfjWvv8WMJ + TuTglyfO25zf27zdT4wtH3lgr6gMQqpT1rEoy/c5i8oyk4NaZUXmLZrZc7Lo0ybIAUGBTBSI + yc+SNZ+rJkTSCmI5qSkK0vW1sN2d+Lf8jEtE5Xd8BVsOmHn3n7fvr4gmrTK5TlZ3z55sF3XL + inlfUbDapFebsES079Y18YAu1gRx7NG7QaaZJ5H1xKSSu0LYesz1JjtIpvJgoqM2IfZnEHvt + snzNdINBbiksgW85ASPSlebl7kVd5d3/o7GIsL8xt+5g1ckEB4MmXHPYwnKJf2489+r5llVn + G4Vsa5uioKYa1ziFoA8sC3qRt7/YeqchSw0bXKPUXV7xvhovi8SDApkmssN8kx0Ia2ZzDP5m + 4JpHDiCxBaDuWudE7PEzmW7uhfDoaMuxZyqzKuuhtgW5FgPkuMQCsQev2paHlUx+gAmPsWbv + QvZbOsqaiAH4PiTy1qesWGn3BGNXejhc9ye8Ga7rVhVI3/u3kzfY9zVBm/Upr6ysmWNPL2kB + ulgTAx3PDJaPebNLWAUmjD8vhVslYFFd47s3dYOBUN6pta4m73kZ4DoNsZTztjnIgI4ZhOED + 2CTfRGCOSXH3G+vJ5n3rJAKhImSXZQRNl+U7gDdRli/Gs7CDCN+L96bQTlx9IEb6v6LJznnJ + fZ17Bgb5lHUWUBaJCAUyPbz26AEZPBI1bF0LsE6e/HA7jpE95s3yzfnzJVyvsUPvncIOS1Um + E8jkmpYWTGSjMRlabiLfVx4/kI82Rj2YsmJ4FmKWZbODl+QYIjzGZEruP/3aUB7YMpEtu69z + WH8++JTFBAYtQxdresjBcdBk1GRbiECct0hViKVME2Zcr66UZ1U5K/jeRKRjO0Ni77e9k+Jz + 3+CWu8wppwpLy409xMToDD+6Hm48JydlZekk3XYqvTbKKuJJeCg+rJ+b7D1oN6bNzFsIEPK9 + LyXa7TxnIlulrBmz/LQLBTIhMCB8OLrIk07u64LAZ8KNeIOjk56RK3VuHYN1hSTjedZzlOhD + BPEMrXuTwrhDarxl7Jk9XNbSul1hXXlm5aRdle35LChrIgK9LlCWz2Z6n7J8E34XXcenTs02 + pyMTTS2EJkZQ2jsPQ8B9zTBxODJJB+z18xpljT33+ZII0MWaFtJa3MEN6PvTuUwnWNtbCQHS + bqZ3+ViRNm1suZvmBetD0SxqDLYDWIn3op61iA9yBKWxSQhE51r8qo4I6Xv/Ln5VWeQdZUVx + u3tc99lam5Mu3qrroW/tp+raupnciV9Vdok7yuL+zBahBZkuepaeejqspbCIr4ssGO22g0V3 + IpKMG4FYBVrT9ppsbnIBMUAVWVdSrBuNNNTuZViSxmo6rTGQL1DWicMC21tZgayEC1Ii30NI + P4mVS3YV0e0uy3IGjJFmoAVJ9gKsx7cz+jzXFeVn8vY++s6wY4qaTHPXligY6g6Ysqy67umY + ZfmSF2gl34PXvViTplqZiiJPlGRZFMgWoUCmRZ8OVQ1JCG5wZjqxBkNfgQzOtOLCStnmm+au + Ll1NMr6P9lkkGK6gKt+y6tZxUxME5odtEQpkQliutNTXIuRsPcbAasTpJG/fooVcr6oz6MiI + zbaCJ2K++5gWyT6sG1kXdjuS25x8tqDINllXiIKzO3mWRVqEApkeb/vzEt/iUSUxdNEMX5ZX + uM3ASvq988zQk4cMSNmHQNa1dGJOVGJPenyQ79p+j/LfPgIZa9IUu6x9TMIOHkWBTBLZQUrX + 7bQLcDTNgqIdzUZ4nSkmL1pUh/brrQE1NmjLAXToeRq/vJYtDDKIZlZSnvc5gUVge4fMalRZ + FPCeSuvAyqS0cWWvqVGW8/49yxpbh183LpCo/7dTXBzXzERGmosiz4J14PZ9zXc5s+qijgs/ + WlkkHApkeshT5QsziMDCfKrgkjOb9i9c1hgGmp8IsvnpKW7vwAAks9Wsisqx0rrt7Jm0ozzn + pAB1YiJed0WfK8pYg3qXkbN1tzYMUAdFg/jAut+8CVKVsoomUT5lyYlGrX2hut6LJmfKXf8f + runYBuKcDPnWBe4r87ivH+JXznbhWdbQpyzSHNzmkRi602PmbDrOTwxeC2NN4N/2ABKCzC/q + 6sC2cFQ9wUJ3+L/x/2dIJzeTG6HF4CXvKS8fqSzvAllIZqJe7EwkiwJL4RgZa+6QuOBJvT/B + QW4tuI40szd1sLDepzmhZWZZOUXuttCyiixpWdZS1IWrrNz8wIHo+h2jrS+ttj2ztlDcFLjJ + 5Ub7c6QInIlnMNuFjjzKUpg4Pjnq1dXn7kreUV5Z9ok8PmWRBqBAJgj2nA3EIH2FDDOPGNjt + qL1Odiycxv9NZGE5QboyBevOtSftW95A4SjvAkK5cdTJnefWkgshti58y/HlSLxPc/iwfS7l + xvMUjibLenbU6SbyqTFHmAj+wDs8dtz/XVHKPUwoh+K0mK/wvGywpi3b2MbT+vWpV9+Uez5l + PdJ63A90sSYKOp+dJPvcGrR0x/pcIe3Xvfh/l4UlZ9i1glxgbXx2nERvi6P++18e6dD03/9y + nIYgufEYvJ5Ktm3szOkaJeV4gTq8tu77xDFYamt1UHRyRkBZN2VlmWs6yvpQpxGPZFpbmZMU + rifvf4e6KK1/WPdDq42dWW3s3uP+zX0V1avvfa0D3jePutoTn15eXrRJ/2Jd/kvNyD7iCdwp + Zo3wKTQ4QLh2pNtzDbeU0+1nnev34Zq4J13mc54gietGO4wZgR5DR5Rmac5RR1nHol6Mm3hd + 4lZ1lWPOPTT39IwJwrKJQQv3berBvCNzzSzw3jtZVqT7r1T/5pxGq01kIeNdzPvaR72S3Hfx + QQcpkIQQQg4elw7SxUoIIYQ4oEASQgghDiiQhBBCiAMKJCGEEOKAAkkIIYQ4oEASQgghDiiQ + hBBCiAMKJCGEEOKgl7lYkf3EZMoIzk5DCCGE9EYgkbJpITL3y79tcSJDjFMGDg597mPJM/c2 + NRYSXZ/i2ZgP80+6trJcowebLu2Q+0vf6IVAYhDLck5/UEgA/BNH5wzZKIM59/jCV5y6cCeP + mEoZtKvfeITTuucc9ojTQ20TnrBuekLya5Bwp/62xHGHkxh21sdPREJg0gwXZYcfJ4RMAJ97 + eDIp5QLnHrLvfaRP/aV3JG1BolG9O3oJrtSF+MwAbteqhwe3CtxXrwNJ5HMGo/BwO/5kl4M6 + nonzKc/wXgbx74B0DOfBBo42cYQT/Q9qosH+kjapW5ATy3Ic2mcf6qOYIDSfHRZlFzGnkich + 6OpPHev7/iZ+fQaXdsrIY7zolg8gp02cQxwOmh73l96RukDK08vvis4lxN8GHOiaA0FQ1+IC + SZ+CjjMov+OZeKJ7BdAmNuKb42iFJw7q5rt4ihldrd0idYGUi+GlEao6OIcBOs0Ca92c3H4E + l3HKz6MPWJ4ziKIWQYddHxLweL31F04gukWfEgVEOdWeREEOiOzwhBQjl4XYXzpEnxIFDKyA + ncrAzfG2VuIKQvAFkXsmeq8xC9a65+cid3MLaGv+EpfxCsqImdwB2zM0a5flZ13L+Zk6iOtX + ajtl91+hnFptuG1itQXR9/bdH8qQ7+bg+kuX+fTy8qIr4MW6R2dkWtfAhlzjZr3Dwndl4A6c + IarMpnC/0miaLSBQugHN0KgWjj1RjyhnLb4rN14PRODRo/je0pXoAI17hn1VEh2QtIgRCSvb + hysqr+w7Sql/53VgBCZMsAVH8qGerO8NxMx7hrVlEyUpA7du9PsQ38kc17p21ZN1jXf1b19f + 3yeeZebYclT6HjDBmTm+r9fvJig/w0DlbAvqjyjMXQkzytqwL3hOE0RWOlaMptla9Km/sLbr + +/wKbWFeEC1rv4cZ2pTsx1v8vXF3b8P9xdRRW/1l6RgPnf0ldVw6mLqLVQ4SF3WiwEbTTDeY + nzniqDz2Kw0ghkM0rFXOhuFzlCP3hJmN1+dWYz0XPx/2kEFYfzvEUaGcKz2J2NPCvwzMcN37 + MQbOK0dnV3juvwvWMI+tulmhHuzB9VK3C/FOXNe6ymk79jXy/qafZYlnsa9v3sNC5SC2K7m+ + f4Z6WOD5nG1B/RnQ1mirrqQZ+vfrNiNJMYEzfWpXII55z6/wzL9z2oJ8DwO8hx+Ofqzf+68O + r4nLyXBRf/nRQn9ZiP7iGg/z+kvvSFogMYuWDcsIQpW9VrLR3SG67Bv+33BmrRe4MHuajjBr + vUY5W/HZIysryxOew05u8Ch+3s0oR9NsDEGXn9XX+su653OPe24CaaW4BvRMDpy452+odymu + Pz0G9F8oy9T3tVXfV5hMmXdiIlNlXdeJIMzEnrY7R7tRGHjyNspn1kB0j/u7E89xmfPdV1D2 + Sgx4W9EebsSz6na+bGPSJCx2Q96gurLagr7fL6hH2b8XJckG5tZ7+AvvWraFnxXHhzZxtfeY + /WVZ0l8uMWbY/UV+5iAibvuwBjm2OpiZbT7CtRXiUrmDK0eK0RKuXCNGr5Zqic//CI12KNxZ + S4jaL1HOq7sLQv9qDUu38cPt2NmR0TCl9fzd2v+ZweIwA6a+VtaGeymHd4MaZrnGut6hnqRr + aAFLwAx2mUcGJLu+5/AKmInPWc5nnlFHR3A3VakjI0rfhOtziVn2UjzrzN4uYtWFcrkgrbrI + Yynuw3alZrgX00/OICaNbF2BiE2svbx39h5l9cdda/qufj9jR/9bCqt4XpAH1rzrz9YSxtIa + I+YdTFggJ5TvhKeB/uIan+z+oq/XVH9JhuSjWPHyhph1Ss7hUnmC374MPTBNXMKHQU9aBGWd + a2c1LFNOBuvAUNXVJRMk3LsGHnQgOWNv2yVSFBQh72XsWjfBerKZsZ54uMYmjrU1e81q7PiM + 7OB1XI/f7XVBtCX5blzly79/d01iUBd2+34DFoMZQLeudUb8W9bhZSQLYAGvjfnRz/yPEMcd + nuvD+xPrjgZn/8NnjAV8UXLf13Z7wrPL6NDzDlqRMfqLsSSr9he77ZV9pvdJH3qxzQNWmO5E + /3a4tk6QFPipqFN4WFfy72XWTNG+uRjRdHJQyRU+a4/VWctZTJyDGKxoM0t9LAnweDcwFHzu + MSc4Qb6z+5zBN8YMeOuapKiSdoVB7M0lmlcGKAqskYPhIq/toY5k/4ixHndmrZXLpQo9YJ8W + PJcMJMpN9IHnkfWY1493ecsJePfy2ZPYTtFQf9nk1LUsW/eXsj7Ve3p1iQhuIwAADFBJREFU + HiQ6wUREsclorxO4Xp1RdB6ERP411ojgvjLPtPUIX8+sLRdthbvnTSLk4FaY3EFbZKNpZlzb + rkAkQ96gId9Z3nPHCFmvGvEt66LOOrEcDH0mesYVN4ywPr2x6lBGYZ8hKMhp9Vj3vQ6w6uy1 + TcOqJEJ3YT17l8i7H/n7wnerx7XR9O0jRf0lr5y2+ksy9ClRwBuwKPVM+tQRjBEUoKA7LWZx + 3rPthrP1SOHxGZjlZ7rgEpH34CPWb0EaHc7jWfV9y+eps61KTpjK7iV2e9Du3KH4OUaAzZu7 + ryD6W17/ByKy837K1mBVWXuyRDovWr1r1OkvPIGmJr0USAn26wyFSB4VBSdoMdQL3nDJvqCz + /vLsoG0gG73PwFwWTdoGT6578Ny8nRu80APeBumqG9mtQbC0PVgWlmu7QG3gBhxaKdRcfa6R + 65ewqfXtdnC2ec+96UylGZHeC6T6M/hIV5IrYGCMAAMjhnbnTaFjdQkZmSk7beigyBSCCQIh + lqJYFCi3gdXp+1Oad7mArroI8yzFUEuXAhmRXq1BlpCJyLp3g7S1/ULB2szwozPjPFmny5MC + HHvVKHIHCNbEtuhvOnH9IMdSfk4pFV5s4H6WG/bZXzrCwQgkUlB9+L1jT2GUdFwHjpwNb626 + 3AZakVxHSZuVFRjjGvzbdP130U0v27jdXzaBVuTBn7cZk4NwsSq3VWOQoeaP2AvZZXGUM22f + gUV+pq2ZaVFU5ZsLyDPoRg5ofXMf1Q5Asiyv0vZgBcu0sWxQFBT0ts+1hfswyGw0XUH2F9uS + fhuL2F/a52AE0p6lif+Xg0rR2kZXZmay0ftYV6FRcLXAACw7vF2n8h4K6xRlyTyefevwsi7K + 3mVRXcmECmUiKa/TxoRJvjP7GWS2m8b3JVrX6IQbM7C/FLYRlPWWcYdn39YnaYHUyXt9tmzg + M3ITrc++OZtOCCQavRwQy+5LBiS1sc4ztza/2wORvIeyrTMh+/tSRNZFUWT1ccA+0NIMKjnf + awTLwrVdhfJvXgJZU0hlHTvbk07e0PJ2Iru/2O8kpI460V/E1rjkSd2C1B3uqehliJMCpBsn + L/uMsxzMyruyzUNZs8yiUyLmlvu40RklMsPIpNofBmskaTDurdyUX45JTZ3IxU6CupCTnTyR + LNvML+smN4k06toI7a7FQfTNY2O976WVQq7MQppZwXQ2uZNljBEystp1qsgSOZf/bmMPoaO/ + fHj/VhsJ6S97EUhxwtCvPpz40QcX6xFeRobZ35uLCS9rbc1cbyyhkA3pws5hiIZnN7ZWZpgF + 7rKFJTKuswztZNGNNVbMGDPrdJG7gsjEdx3ZnrE7JjVlKbZSRg6KP6RI4oij0kTlqBuznnmE + OrUTXtvZZ3JT0jWA082K69tJ9j8IgO4HaF8/Sm7t0nWsGMqUk4jrnMminCA3JpAF/SVP1Hz6 + izzndLPHgwlaqcO26FMU61czO3ZFq4I7cxioAdGtj2J2+ROCYwqZiOz3Rmi/ooE/2eVFJsN1 + dKPLzCGlemCBAJrZ9BVmyOaeh9Zs+SaWwDgOFXVReHi1znKE+z9D3eoZ+x0G0mMrGfuuqVMn + ugC2QtwJEfyB9re23uGj9W8bMxk8wufMAcvPWGeXIrtp+cBbeTbqu8Fd3wfarmkLOh3kvVh7 + s++9LLjmEuWt0J4Glnva+eyOrRZRiNRfluJED5/+ss8zL3uVzCN1C/KzdV5cETcFjXBsRfSd + wPVxKcTRdr9+bciSlDPdM1iBH8K8MUP85vjslTWQfpgUNMgWRz75dNChVecXuPdLq7PbR/v0 + DsdpHUfW8UZ/la0XwiIaWuc+XqJO34njHmb2RYE6ytEWvoq2LO/9viRSV6a3M+1JiuNj3rPD + mpXBe21Y1yH9xR6jutpf5LtOfqtc0hYkGsIQLpSJtWVDiXWWZZEFBYtsaCUzVuhQmTmNYDTN + vllukXXO/xfxJET9QwPCbPEUVpM8/NZ5DBey/8wcQRwbnCoSw9VSNglZIaGC97UwIA1gLU2s + NWLz3or2oz6L+8pbW637map/szGfy20jehIDd+oEIrJG8u3XOvUJHIE3ZACXnN0XtugHMSzH + wjbsYF3UhkRbmFkHDBju4RIu84JkqL+51R+26Atl69gzjAFPNde8D7W/KNTfKX6SX4P89PLy + 4nIDfEl1zQeukgEaYKUZDAaZp7zvF2QEiUrodcwgmqLFJd7bE8PTP4KB0awpX/sIHSZap3X6 + wr7AhLW0LVgZrt7VS1k/Th3fOiJ+uHSwdwJJSB+xBPJ7ydmRB0ORQBISgksHDylRACEpI4Mf + mKuTkBagQBKyRwLOJpVBYnSpEdICFEhC9ktm7721QfCK3ONGgSSkBSiQhOwfvfd24bImscYm + 19W4xkZISxzSeZCEdBm9n22Czf1rrDnam9yLsq0QQiJDgSRkv8yxd8xkkrnISS1XmG2FEBIf + ulgJ2SN6O9XD7XiArEj3jjvRm7L/ojjmYjauPzJ4icSGFiQhHQBZXl6zt6Sc8KFtTDatw3pq + 0hYUSEI6BoWRkG5AFyshhBDigAJJCCGEOKBAEkIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBA + EkIIIQ4okIQQQogDCiQhhBDigAJJCCGEOKBAEkIIIQ4okIQQQg6a0TQ7dTz/MwWSEELIofNB + IPWhARRIQgghxAEFkhBCCHGQJ5AufywhhBDSR5yaZwTykQJJCCHkQLE171UT8yzIAVsJIYSQ + A6HQglxZv6cFSQgh5FCwNe9VE41APll/PGOzIIQQciCcW4/5qolGINd2HYym2ZAtgxBCSJ8Z + TTPXkuIfgdQbIh0f4DokIYSQvvPBGHy4Hb9zsSpHJCstSEIIIX3H1ro3LZQCaQfqfGWzIIQQ + 0nNsrXvTQimQmV0Ho2k2ZssghBDSR3I07k0L3wQS65Bb64MUSEIIIX3F1ridjMmxEwXYVuTF + aJods2kQQgjpE9C2C+uR3mmgLZBLx/NP2CoIIYT0DJeHdCH/8U4gc9ysM7YKQgghPWNuPc7W + 3vLoysW6sP59MppmtCIJIYT0AgTnnFjPYmufUyC1m3Vn/Y4CSQghpC/YntGda4nxg0A+3I6f + HUp6TiuSEEJI6sB6tHOvLqF978g77soVrGP7awkhhJDU+OBKzfmdWyAfbsc6Ueu19Wu9FkmR + JIQQkiTQMHvt8Qaa94E8C1JBUe21yNlomvGsSEIIIUkB7XKtPeYafrkCCX+s/cWjHPcrIYQQ + 0mWW0DDJ3LX2aPj08vJS+DyjabZ2HKD8/eF27PTZEkIIIV1iNM205fjDuqXNw+248FjHIher + wRW9+iPnkElCCCGkM0CrbHFUPtsXSwUSmQXsgB3NinlaCSGEdBVolH2Uo+bazprjotTFahhN + s5Vj78hGHzZZ5MMlhBBC2kaIo71E+PhwO7YPSXbi42I1jB1RrWcM2iGEENJBlg5x3IUc4+gt + kLASXar7dTTNKJKEEEI6ATTpq+NegjyeIRakWY/85vjTBUWSEELIvoEW2ec8ar75rDtKvNcg + JcjL+tPxp0dtvnJNkhBCSJtgzTHPctTiGGzEBVmQBlzoxvGnc0S3MtsOIYSQVoDmrHLE8a6K + OKqqAqn+WyRnOds/9KLoejTNvKKECCGEkKpAa1wJbRTyrFY+iaqyQKr/Fsl5zpqkTufzm8nN + CSGENAU05rcjhZyCW9XOvRpEpTVIG6xJLnJuUu+VnIQujhJCCCE5mjPI2cahsJVjVtWtKoki + kOrPDWeOo0QMN2WJYQkhhJACnTnGiRxXOR/ZIlA0ikEWTSBVeRSRiqnshBBCDocST6VqYhdF + VIE0IHP6vOBBtvh7RouSEEKICxhdY+hFnndyB+9k9BOmGhFI9SfsdunI3yrZ4TOLvBOdCSGE + HBbicONJgaGlYDVOmtKPxgTSMJpmY5jFeepv2EAsM4olIYQcFhDFMUTRFXwj2WK5LmuykhoX + SAPCcWclswHDFps+9c+aEbCEENIvENg5QI7voYcRpeB1XMDr2PjyXGsCqf74kycQSp/KkGgL + 89k622uN3xFCCOkexxBBwxC/K7MQbbYQxmWbcSutCqQErtdJQcQrIYSQw+Yey2572fmwN4E0 + BPqdCSGE9JvOxKPsXSAlcMEOxQ8FkxBC+s1GxJysurT1r1MC6QKJaE+tH1XRj00IIaRdTPyI + RluEbz8Pt2MZU9ItlFL/H4mmT2UVADSFAAAAAElFTkSuQmCC + + + + + + <invoice.create_uid.name or ''> + + + + + Firma del proveedor Firma del emisor + + + </if> + + + + + <if test="invoice.type == 'out'"> + + + + + + + + + + Description + + + Quantity + + + Unit Price + + + Amount + + + ITBIS + + + + + + <for each="line in invoice.lines"> + + + + + + + + + <choose test=""> + + + + + + + + + <when test="line.type == 'line'"> + + + + + + + + + <if test="line.description"> + <for each="description in line.description.split('\n')"> + <description> + </for> + </if> + + + <format_number_symbol(line.quantity, invoice.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, invoice.party.lang)> + + + <format_currency(line.unit_price, invoice.party.lang, invoice.currency)> + + + <format_currency(line.amount, invoice.party.lang, invoice.currency)> + + + <format_currency(line.itbis, invoice.party.lang, invoice.currency)> + + + + + </when> + + + + + + + + + <when test="line.type == 'subtotal'"> + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + + + + + + + + + + + </when> + + + + + + + + + <when test="line.type == 'title'"> + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + + + + + + + + + </when> + + + + + + + + + <otherwise test=""> + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + + + + + + + + + </otherwise> + + + + + + + + + </choose> + + + + + + + + + </for> + + + + + + + + + + + + + + + + + + + + + + Tax + + + Base + + + Amount + + + + + <for each="tax in invoice.taxes"> + + + + + + + <'[' + '%s' % tax.sequence_number + ']'><tax.description or ''> + + + <format_currency(tax.base, invoice.party.lang, invoice.currency)> + + + <format_currency(tax.amount, invoice.party.lang, invoice.currency)> + + + + + <if test="tax.legal_notice"> + + + + + + + <for each="line in tax.legal_notice.split('\n')"> + <line> + </for> + + + + + + + </if> + + + + + + + </for> + + + + + + + + <if test="invoice.comment"> + + + + + + + OBSERVACIONES + + + + + + + + + + + <for each="comment in (invoice.comment or '').split('\n')"> + <comment> + </for> + + + + + + </if> + + + + + + + + Sub-Total: + + + <format_currency(invoice.untaxed_amount, invoice.party.lang, invoice.currency)> + + + + + <if test="invoice.isr_withholding > 0"> + + + + + + ISR: + + + <format_currency(invoice.isr_withholding, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + <if test="invoice.isc_invoiced > 0"> + + + + + + ISC: + + + <format_currency(invoice.isc_invoiced, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + <if test="invoice.cdt_invoiced > 0"> + + + + + + CDT: + + + <format_currency(invoice.cdt_invoiced, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + <if test="invoice.tip > 0"> + + + + + + Propina: + + + <format_currency(invoice.cdt_invoiced, invoice.party.lang, invoice.currency)> + + + + + </if> + + + + + + ITBIS: + + + <format_currency(invoice.itbis_invoiced, invoice.party.lang, invoice.currency)> + + + + + Total: + + + <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)> + + + + Original: Cliente Copia: Vendedor + + + + + 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 + + + + + + + + <invoice.create_uid.name or ''> + + + + + Preparado por Recibido por + + + Para su comodidad, pueden hacer el pago de su(s) factura(s) por transferencia, a una de las siguientes cuentas:- Banco BHD León: Cuenta Corriente # 10119650011- Banco Popular Dominicano: Cuenta Corriente # 809516529- Banco de Reservas: Cuenta de Ahorro # 9603995228 + </if> + + + \ No newline at end of file diff --git a/invoice.xml b/invoice.xml index 9aec675..7747954 100755 --- a/invoice.xml +++ b/invoice.xml @@ -27,6 +27,17 @@ this repository contains the full copyright notices and license terms. --> invoice_line_tree + + + Factura + + account.invoice + account.invoice + ncf_manager/invoice.fodt + odt + pdf + + diff --git a/locale/es_419.po b/locale/es_419.po index 2a3faa3..d029381 100644 --- a/locale/es_419.po +++ b/locale/es_419.po @@ -119,6 +119,10 @@ msgstr "Gestión de NCF" # Class: Invoice # Model: account.invoice +msgctxt "model:ir.action,name:report_invoice" +msgid "Factura" +msgstr "Factura" + msgctxt "field:account.invoice,expiration_date:" msgid "Expiration Date" msgstr "Fecha de Vencimiento" diff --git a/report.py b/report.py new file mode 100644 index 0000000..eae9910 --- /dev/null +++ b/report.py @@ -0,0 +1,20 @@ +from trytond.pool import PoolMeta + + +class InvoiceReport(metaclass=PoolMeta): + """Add the NCF label required by the fiscal invoice template.""" + __name__ = 'account.invoice' + + @classmethod + def get_context(cls, records, header, data): + context = super().get_context(records, header, data) + invoice = context['invoice'] + context['ncf_type_name'] = cls._get_ncf_type_name(invoice) + return context + + @staticmethod + def _get_ncf_type_name(invoice): + if not invoice.ncf_type: + return '' + return invoice.__class__._ncf_type_label_map().get( + invoice.ncf_type, '') diff --git a/setup.py b/setup.py index 3554dad..66ae055 100755 --- a/setup.py +++ b/setup.py @@ -83,7 +83,7 @@ setup(name=name, ), package_data={ 'trytond.modules.ncf_manager': (info.get('xml', []) - + ['tryton.cfg', 'view/*.xml', 'locale/*.po', + + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt', 'icons/*.svg', 'tests/*.rst']), }, classifiers=[ diff --git a/tests/test_module.py b/tests/test_module.py index 15113c5..6503598 100644 --- a/tests/test_module.py +++ b/tests/test_module.py @@ -1,10 +1,32 @@ +from pathlib import Path + from trytond.tests.test_tryton import ModuleTestCase +from trytond.modules.ncf_manager.report import InvoiceReport + class NcfManagerTestCase(ModuleTestCase): "Test Ncf Manager module" module = 'ncf_manager' + def test_fiscal_report_overrides_single_invoice_action(self): + report_xml = (Path(__file__).parent.parent / 'invoice.xml').read_text() + self.assertIn('id="account_invoice.report_invoice"', report_xml) + self.assertIn('ncf_manager/invoice.fodt', report_xml) + self.assertNotIn('ir.action.keyword', report_xml) + + def test_fiscal_report_resolves_ncf_label(self): + class Invoice: + ncf_type = '31' + + @staticmethod + def _ncf_type_label_map(): + return {'31': 'Factura de Crédito Fiscal'} + + self.assertEqual( + InvoiceReport._get_ncf_type_name(Invoice()), + 'Factura de Crédito Fiscal') + del ModuleTestCase diff --git a/tryton.cfg b/tryton.cfg index 6d7e017..1d1a889 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=7.0.1 +version=7.0.2 depends: account_invoice_do xml: