218 lines
12 KiB
XML
218 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<template id="l10n_mx_fiscal_regime_receptor">
|
|
<t t-set="invoice_partner" t-value="o.partner_id if o.partner_id.type == 'invoice' else o.partner_id.commercial_partner_id"/>
|
|
<t t-if="invoice_partner.l10n_mx_edi_fiscal_regime or o.l10n_mx_edi_cfdi_to_public">
|
|
<div name="l10n_mx_fiscal_regime_receptor">
|
|
<span>Fiscal Regime: </span>
|
|
<span t-if="not o.l10n_mx_edi_cfdi_to_public" t-field="invoice_partner.l10n_mx_edi_fiscal_regime">601</span>
|
|
<span t-else="">Without fiscal obligations</span>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
<template id="report_invoice_document" inherit_id="account.report_invoice_document" primary="True">
|
|
<xpath expr="//div[hasclass('row')]//div[@id='partner_vat_address_not_same_as_shipping']" position="after">
|
|
<span t-if="o.company_id.vat != o.l10n_mx_edi_cfdi_supplier_rfc" name="l10n_mx_edi_cfdi_supplier_rfc">
|
|
<span>XML VAT: </span>
|
|
<span t-out="o.l10n_mx_edi_cfdi_supplier_rfc">EKU9003173C9</span>
|
|
</span>
|
|
<t t-call="l10n_mx_edi.l10n_mx_fiscal_regime_receptor"/>
|
|
<div name="identification_no" t-if="o.l10n_mx_edi_cfdi_to_public and
|
|
o.partner_id.country_code != 'MX' and o.partner_id.vat">
|
|
<span>Identification No.: </span>
|
|
<span t-field="o.partner_id.vat"/>
|
|
</div>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('row')]//div[@id='partner_vat_address_not_same_as_shipping']//span" position="attributes">
|
|
<attribute name="t-field"/>
|
|
<attribute name="t-out">o.l10n_mx_edi_cfdi_customer_rfc or o.partner_id.vat</attribute>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('row')]//div[@id='partner_vat_address_same_as_shipping']" position="after">
|
|
<span t-if="o.company_id.vat != o.l10n_mx_edi_cfdi_supplier_rfc" name="l10n_mx_edi_cfdi_supplier_rfc">
|
|
<span>XML VAT: </span>
|
|
<span t-field="o.l10n_mx_edi_cfdi_supplier_rfc">EKU9003173C9</span>
|
|
</span>
|
|
<t t-call="l10n_mx_edi.l10n_mx_fiscal_regime_receptor"/>
|
|
<div name="identification_no" t-if="o.l10n_mx_edi_cfdi_to_public and
|
|
o.partner_id.country_code != 'MX' and o.partner_id.vat">
|
|
<span>Identification No.: </span>
|
|
<span t-field="o.partner_id.vat"/>
|
|
</div>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('row')]//div[@id='partner_vat_address_same_as_shipping']//span" position="attributes">
|
|
<attribute name="t-field"/>
|
|
<attribute name="t-out">o.l10n_mx_edi_cfdi_customer_rfc or o.partner_id.vat</attribute>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('row')]//div[@id='partner_vat_no_shipping']" position="after">
|
|
<span t-if="o.company_id.vat != o.l10n_mx_edi_cfdi_supplier_rfc" name="l10n_mx_edi_cfdi_supplier_rfc">
|
|
<span>XML VAT: </span>
|
|
<span t-out="o.l10n_mx_edi_cfdi_supplier_rfc">EKU9003173C9</span>
|
|
</span>
|
|
<t t-call="l10n_mx_edi.l10n_mx_fiscal_regime_receptor"/>
|
|
<div name="identification_no" t-if="o.l10n_mx_edi_cfdi_to_public and
|
|
o.partner_id.country_code != 'MX' and o.partner_id.vat">
|
|
<span>Identification No.: </span>
|
|
<span t-field="o.partner_id.vat"/>
|
|
</div>
|
|
</xpath>
|
|
<xpath expr="//div[hasclass('row')]//div[@id='partner_vat_no_shipping']//span" position="attributes">
|
|
<attribute name="t-field"/>
|
|
<attribute name="t-out">o.l10n_mx_edi_cfdi_customer_rfc or o.partner_id.vat</attribute>
|
|
</xpath>
|
|
|
|
<xpath expr="//div[@name='customer_code']" position="after">
|
|
<t t-set="cfdi_values" t-value="o._l10n_mx_edi_get_extra_invoice_report_values()"/>
|
|
<t t-set="original_o_grid_layout" t-value="o_grid_layout"/>
|
|
<t t-set="o_grid_layout" t-value="'col'"/>
|
|
<t t-if="cfdi_values.get('usage')">
|
|
<div name="cfdi_values['usage']" t-att-class="o_grid_layout">
|
|
<strong>Usage</strong>
|
|
<div><span t-out="cfdi_values['usage']">S01</span><span> - </span><span t-out="cfdi_values['usage_desc']">Without fiscal effects</span></div>
|
|
</div>
|
|
</t>
|
|
<t t-if="cfdi_values.get('payment_way')">
|
|
<div name="l10n_mx_edi_cfdi_payment_way" t-att-class="o_grid_layout">
|
|
<strong>Payment Way:</strong>
|
|
<div t-out="cfdi_values['payment_way']">01 - Efectivo</div>
|
|
</div>
|
|
</t>
|
|
<div name="l10n_mx_edi_cfdi_payment_method" t-att-class="o_grid_layout">
|
|
<strong>Payment Method:</strong>
|
|
<div t-out="cfdi_values.get('payment_method')">PUE</div>
|
|
</div>
|
|
<div name="l10n_mx_edi_cfdi_bank_account" t-if="cfdi_values.get('bank_account')" t-att-class="o_grid_layout">
|
|
<strong>Bank Account:</strong>
|
|
<div t-out="cfdi_values['bank_account']">No identificado</div>
|
|
</div>
|
|
<t t-set="o_grid_layout" t-value="original_o_grid_layout"/>
|
|
</xpath>
|
|
|
|
<xpath expr="//div[@id='informations']" position="after">
|
|
<t t-if="cfdi_values['cfdi_relation_data']">
|
|
<div class="row mt-3 mb-1" id="cfdi_relation_data">
|
|
<div class="col-2 fw-bold">CFDI Related: </div>
|
|
<div class="col">
|
|
<table id="cfdi_relation_table" class="text-start table table-borderless">
|
|
<thead>
|
|
<tr>
|
|
<th name="th_uuid">UUID</th>
|
|
<th name="th_relation_type">Relation</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<t t-foreach="cfdi_values['cfdi_relation_data']" t-as="cfdi_related">
|
|
<tr>
|
|
<td name="td_uuid">
|
|
<span t-out="cfdi_related['uuid']" id="uuid"/>
|
|
</td>
|
|
<td name="td_relation_type">
|
|
<span t-out="cfdi_related['relation_type']"/>
|
|
</td>
|
|
</tr>
|
|
</t>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</xpath>
|
|
|
|
<!-- Add new column on invoice lines: Predial Account -->
|
|
<xpath expr="//table[@name='invoice_line_table']//th[@name='th_quantity']" position="before">
|
|
<t t-set="has_l10n_mx_edi_predial_account" t-value="any(line.product_id.l10n_mx_edi_predial_account for line in o.invoice_line_ids)"/>
|
|
<th t-if="has_l10n_mx_edi_predial_account" class="text-end" name="th_predial_account">
|
|
<span>Predial Account</span>
|
|
</th>
|
|
</xpath>
|
|
<xpath expr="//table[@name='invoice_line_table']//td[@name='td_quantity']" position="before">
|
|
<td t-if="has_l10n_mx_edi_predial_account" t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}" name="td_predial_account">
|
|
<span t-out="line.product_id.l10n_mx_edi_predial_account"></span>
|
|
</td>
|
|
</xpath>
|
|
|
|
<!-- Add new column on invoice lines: Product Code -->
|
|
<xpath expr="//table[@name='invoice_line_table']//th[@name='th_quantity']" position="before">
|
|
<th class="text-end" name="th_product_unspsc_code">
|
|
<span>Product code</span>
|
|
</th>
|
|
</xpath>
|
|
<xpath expr="//table[@name='invoice_line_table']//td[@name='td_quantity']" position="before">
|
|
<td t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}" name="td_product_unspsc_code">
|
|
<span t-out="line._get_product_unspsc_code()"></span>
|
|
</td>
|
|
</xpath>
|
|
|
|
<!-- Add new column on invoice lines: Unit Code -->
|
|
<xpath expr="//table[@name='invoice_line_table']//th[@name='th_discount']" position="after">
|
|
<th class="text-end" name="th_product_uom_unspsc_code">
|
|
<span>Unit code</span>
|
|
</th>
|
|
</xpath>
|
|
<xpath expr="//table[@name='invoice_line_table']//td[@name='td_discount']" position="after">
|
|
<td t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}" name="td_product_uom_unspsc_code">
|
|
<span t-out="line._get_uom_unspsc_code()"></span>
|
|
</td>
|
|
</xpath>
|
|
|
|
<xpath expr="//t/tr/t[@t-set='line_colspan']" position="attributes">
|
|
<attribute name="t-value">5 + (1 if display_discount else 0) + (1 if display_taxes and not line.tax_ids else 0) + (1 if has_l10n_mx_edi_predial_account else 0)</attribute>
|
|
</xpath>
|
|
<xpath expr="//t/t/t[@t-else='']/t[@t-set='line_colspan']" position="attributes">
|
|
<attribute name="t-value">5 + (1 if display_discount else 0) + (1 if display_taxes and not grouped_line.get('taxes') else 0) + (1 if has_l10n_mx_edi_predial_account else 0)</attribute>
|
|
</xpath>
|
|
|
|
<xpath expr="//div[@id='payment_term']" position="after">
|
|
<t t-set="cfdi_values" t-value="o._l10n_mx_edi_get_extra_invoice_report_values()"/>
|
|
<div class="row col-12" id='complement'>
|
|
<div class="barcode col-3">
|
|
<img alt="Barcode" t-att-src="cfdi_values.get('barcode_src')"/>
|
|
</div>
|
|
<div class="complement-details col-9">
|
|
<div class="digital-stamp">
|
|
<span>Digital stamp of the emitter</span>
|
|
</div>
|
|
<div class="digital-stamp-content">
|
|
<span t-out="cfdi_values.get('sello')">No identificado</span>
|
|
</div>
|
|
<div class="digital-stamp">
|
|
<span>Digital stamp SAT</span>
|
|
</div>
|
|
<div class="digital-stamp-content">
|
|
<span t-out="cfdi_values.get('sello_sat')">No identificado</span>
|
|
</div>
|
|
<div class="digital-stamp">
|
|
<span>Original chain complement of digital certification SAT</span>
|
|
</div>
|
|
<div class="digital-stamp-content">
|
|
<span class="nowrap" t-out="cfdi_values.get('cadena')">No identificado</span>
|
|
</div>
|
|
<div class="digital-stamp">
|
|
<span>Extra Info</span>
|
|
</div>
|
|
<div class="digital-stamp-content">
|
|
<span>Emitter certificate:</span> <span t-out="cfdi_values.get('certificate_number')">30001000000500003416</span>
|
|
<span> | SAT Certificate:</span> <span t-out="cfdi_values.get('certificate_sat_number')">30001000000500003442</span>
|
|
<span> | Expedition place:</span> <span t-out="cfdi_values.get('expedition')">20928</span>
|
|
<span> | Fiscal Regime:</span><span t-out="cfdi_values.get('fiscal_regime')">601</span>
|
|
<span> | Emission Date:</span> <span t-out="cfdi_values.get('emission_date_str')">2023-09-12</span>
|
|
<span> | Certification Date:</span> <span t-out="cfdi_values.get('stamp_date')">2023-09-12</span>
|
|
<span> | Fiscal Folio:</span> <span t-out="cfdi_values.get('uuid')">No identificado</span>
|
|
</div>
|
|
<div class="digital-stamp-content text-center">
|
|
<strong>This document is a printed representation of a CFDI</strong>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</xpath>
|
|
</template>
|
|
|
|
<!-- Workaround for Studio reports, see odoo/odoo#60660 -->
|
|
<template id="report_invoice" inherit_id="account.report_invoice">
|
|
<xpath expr='//t[@t-call="account.report_invoice_document"]' position="after">
|
|
<t t-elif="o._get_name_invoice_report() == 'l10n_mx_edi.report_invoice_document'"
|
|
t-call="l10n_mx_edi.report_invoice_document"
|
|
t-lang="lang"/>
|
|
</xpath>
|
|
</template>
|
|
</odoo>
|