Files
enterprise-addons/l10n_mx_edi/views/report_invoice.xml
T

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>