From 2aa4151f93aa284fff2f37a066b4b9c4efc8118d Mon Sep 17 00:00:00 2001 From: agb80 <atin81@gmail.com> Date: Wed, 25 Oct 2017 18:09:33 -0500 Subject: [PATCH 1/2] feat(account.voucher): implement CFDI complemento de pagos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add option to sign account.voucher objects also known as Complemento de Pagos or Recibo Electrónico Closes #7 --- l10n_mx_facturae/__openerp__.py | 2 + .../data/ir_attachment_facturae_config.xml | 9 ++ l10n_mx_facturae/models/__init__.py | 1 + l10n_mx_facturae/models/account_invoice.py | 15 +-- l10n_mx_facturae/models/account_voucher.py | 84 ++++++++++++ l10n_mx_facturae/report/account_invoice.xml | 126 +++++++++--------- .../report/account_invoice_33.odt | Bin 27101 -> 26010 bytes ..._print_invoice.odt => account_voucher.odt} | Bin l10n_mx_facturae/report/account_voucher.xml | 47 +++++++ .../templates/account_invoice_33.txt | 4 +- .../templates/account_voucher_33.txt | 94 +++++++++++++ l10n_mx_facturae/views/account_voucher.xml | 57 ++++++++ 12 files changed, 365 insertions(+), 74 deletions(-) create mode 100644 l10n_mx_facturae/models/account_voucher.py rename l10n_mx_facturae/report/{account_print_invoice.odt => account_voucher.odt} (100%) create mode 100644 l10n_mx_facturae/report/account_voucher.xml create mode 100644 l10n_mx_facturae/templates/account_voucher_33.txt create mode 100644 l10n_mx_facturae/views/account_voucher.xml diff --git a/l10n_mx_facturae/__openerp__.py b/l10n_mx_facturae/__openerp__.py index 1eabee2907..4c458e99c5 100644 --- a/l10n_mx_facturae/__openerp__.py +++ b/l10n_mx_facturae/__openerp__.py @@ -21,8 +21,10 @@ ], 'data': [ 'views/account_invoice.xml', + 'views/account_voucher.xml', 'views/res_partner.xml', 'report/account_invoice.xml', + 'report/account_voucher.xml', 'data/email_template.xml', 'data/ir_attachment_facturae_config.xml', ], diff --git a/l10n_mx_facturae/data/ir_attachment_facturae_config.xml b/l10n_mx_facturae/data/ir_attachment_facturae_config.xml index 817eecf650..1f97cb2d85 100644 --- a/l10n_mx_facturae/data/ir_attachment_facturae_config.xml +++ b/l10n_mx_facturae/data/ir_attachment_facturae_config.xml @@ -21,6 +21,15 @@ <field name="template_pdf_cancel">invoice.report.aaero</field> <field name="email_template_id" ref="email_template_template_facturae_mx"/> </record> + <record id="ir_attachment_facturae_mx_config_account_voucher_33" model="ir.attachment.facturae.mx.config"> + <field name="model">account.voucher</field> + <field name="version">3.3</field> + <field name="template_xml_sign">account.voucher.cfdi.xml.33</field> + <field name="template_xml_cancel">Aun.no.hay.uno</field> + <field name="template_pdf_sign">account.voucher.cfdi.pdf</field> + <field name="template_pdf_cancel">account.voucher.cfdi.pdf</field> + <field name="email_template_id" ref="email_template_template_facturae_mx"/> + </record> </data> </openerp> diff --git a/l10n_mx_facturae/models/__init__.py b/l10n_mx_facturae/models/__init__.py index 9db21c3b3e..58e8d343b7 100644 --- a/l10n_mx_facturae/models/__init__.py +++ b/l10n_mx_facturae/models/__init__.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from . import account_invoice +from . import account_voucher from . import email_template from . import res_partner diff --git a/l10n_mx_facturae/models/account_invoice.py b/l10n_mx_facturae/models/account_invoice.py index 9131cf22b3..4cc90ae1d7 100644 --- a/l10n_mx_facturae/models/account_invoice.py +++ b/l10n_mx_facturae/models/account_invoice.py @@ -2,7 +2,6 @@ import logging from datetime import datetime - from pytz import timezone, UTC from openerp import api, fields, models @@ -30,9 +29,8 @@ class AccountInvoice(models.Model): if self.state == 'draft': return '' fname = '_'.join([ - self.company_id.partner_id.vat_split or - self.company_id.partner_id.vat, self.number or - self.internal_number, + self.company_id.partner_id.vat_split, + self.number or self.internal_number, ]) return fname @@ -63,7 +61,7 @@ class AccountInvoice(models.Model): """ self.ensure_one() try: - code = self.payment_type[0].code + code = self.payment_type_ids[0].code except IndexError: code = '99' return code @@ -88,10 +86,9 @@ class AccountInvoice(models.Model): def total(self): self.ensure_one() return ( - self.subtotal - - self.descuento - + self.impuestos['total_traslados'] - - self.impuestos['total_retenciones'] + self.subtotal - self.descuento + + self.impuestos['total_traslados'] - + self.impuestos['total_retenciones'] ) @property diff --git a/l10n_mx_facturae/models/account_voucher.py b/l10n_mx_facturae/models/account_voucher.py new file mode 100644 index 0000000000..054415d8fa --- /dev/null +++ b/l10n_mx_facturae/models/account_voucher.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- + +from openerp import api, models + + +class AccountVoucher(models.Model): + _name = 'account.voucher' + _inherit = [ + 'account.voucher', + 'base.cfdi', + ] + + @api.multi + def sign_voucher(self): + """Create CFDI for selected vouchers""" + # Only vouchers to sign are the receipts + receipts = self.filtered(lambda r: r.type == 'receipt') + # Get only receipts that doesn't have a CFDI yet and create it + receipts.filtered(lambda r: not r.cfdi_id.exists()).create_cfdi() + + @property + def doctos_relacionados(self): + """Return a list with all related invoices to this payment""" + self.ensure_one() + + # Get all records from account.move.line related to this voucher but + # affecting an account different than the selected for this voucher + move_lines = self.move_ids.filtered( + lambda x: x.account_id != self.account_id, + ) + # Get all lines form partial and full reconciliations + temp_lines = move_lines.mapped('reconcile_partial_id.line_partial_ids') + temp_lines |= move_lines.mapped('reconcile_id.line_id') + + # Get invoices related to this voucher + invoices = (temp_lines - move_lines).mapped('invoice') + return invoices + + @api.multi + def numparcialidad(self, invoice): + """Computes payment number based on all payments done to invoice""" + return len(invoice.mapped('payment_ids')) - 1 + + @api.multi + def impsaldoant(self, invoice): + """Computes amount_residual for invoice before current voucher""" + self.ensure_one() + # Original residual amount for given invoice + amount_residual = invoice.amount_total + + # Get payments done to given invoice in vouchers older than current + payments = invoice.mapped('payment_ids') - self.move_ids + payments = payments.filtered(lambda r: r.date < self.date) + + for payment in payments: + amount_currency = abs(payment.amount_currency) or 0.0 + # If amount_currency exists it means we are dealing with a multi + # currency payment, and thus we need to sum amount_currency to + # amount_paid instead of normal debit - credit + if amount_currency: + amount_residual -= amount_currency + else: + amount_residual -= abs(payment.debit - payment.credit) + return self.currency_id.cfdi_round(amount_residual) + + @api.multi + def imppagado(self, invoice): + """Computes total amount payment on this voucher for given invoice""" + self.ensure_one() + + amount_paid = 0.0 + # Get payments done in this voucher for given invoice + payments = invoice.mapped('payment_ids') & self.move_ids + + for payment in payments: + amount_currency = abs(payment.amount_currency) or 0.0 + # If amount_currency exists it means we are dealing with a multi + # currency payment, and thus we need to sum amount_currency to + # amount_paid instead of normal debit - credit + if amount_currency: + amount_paid += amount_currency + else: + amount_paid += abs(payment.debit - payment.credit) + return self.currency_id.cfdi_round(amount_paid) diff --git a/l10n_mx_facturae/report/account_invoice.xml b/l10n_mx_facturae/report/account_invoice.xml index 782331c287..3031ec6ef3 100644 --- a/l10n_mx_facturae/report/account_invoice.xml +++ b/l10n_mx_facturae/report/account_invoice.xml @@ -1,68 +1,68 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <!-- XML invoice report definition --> - <data> - <record id="l10n_mx_facturae_template_xml" model="report.templates.aeroo"> - <field name="name">Defaut XML Invoice Report teplate</field> - <field name="model">account.invoice</field> - <field name="report_name">invoice.report.aaero.xml</field> - <field name="report_rml">l10n_mx_facturae/templates/account_invoice_32.txt</field> - <field name="tml_source">file</field> - </record> - <record id="l10n_mx_facturae_report_aeroo_xml" model="ir.actions.report.xml"> - <field name="name">Invoice XML Report aero</field> - <field name="type">ir.actions.report.xml</field> - <field name="model">account.invoice</field> - <field name="report_name">invoice.report.aaero.xml</field> - <field name="report_type">aeroo</field> - <field name="in_format">genshi-raw</field> - <field name="out_format" ref="report_aeroo.report_mimetypes_raw" /> - <field name="aeroo_templates_ids" - eval="[(6, 0, [l10n_mx_facturae_template_xml])]" /> - <field name="parser_state">default</field> - </record> +<!-- XML invoice report definition --> +<data> + <record id="l10n_mx_facturae_template_xml" model="report.templates.aeroo"> + <field name="name">Defaut XML Invoice Report teplate</field> + <field name="model">account.invoice</field> + <field name="report_name">invoice.report.aaero.xml</field> + <field name="report_rml">l10n_mx_facturae/templates/account_invoice_32.txt</field> + <field name="tml_source">file</field> + </record> + <record id="l10n_mx_facturae_report_aeroo_xml" model="ir.actions.report.xml"> + <field name="name">Invoice XML Report aero</field> + <field name="type">ir.actions.report.xml</field> + <field name="model">account.invoice</field> + <field name="report_name">invoice.report.aaero.xml</field> + <field name="report_type">aeroo</field> + <field name="in_format">genshi-raw</field> + <field name="out_format" ref="report_aeroo.report_mimetypes_raw" /> + <field name="aeroo_templates_ids" + eval="[(6, 0, [l10n_mx_facturae_template_xml])]" /> + <field name="parser_state">default</field> + </record> - <record id="report_templates_aeroo_account_invoice_cfdi_33" model="report.templates.aeroo"> - <field name="name">Account Invoice XML CFDI 3.3</field> - <field name="model">account.invoice</field> - <field name="report_name">account.invoice.cfdi.33</field> - <field name="report_rml">l10n_mx_facturae/templates/account_invoice_33.txt</field> - <field name="tml_source">file</field> - </record> - <record id="ir_actions_report_xml_account_invioice_cfdi_33" model="ir.actions.report.xml"> - <field name="name">Account Invoice XML CFDI 3.3</field> - <field name="type">ir.actions.report.xml</field> - <field name="model">account.invoice</field> - <field name="report_name">account.invoice.cfdi.xml.33</field> - <field name="report_type">aeroo</field> - <field name="in_format">genshi-raw</field> - <field name="out_format" ref="report_aeroo.report_mimetypes_raw" /> - <field name="aeroo_templates_ids" - eval="[(6, 0, [report_templates_aeroo_account_invoice_cfdi_33])]" /> - <field name="parser_state">default</field> - </record> - </data> + <record id="report_templates_aeroo_account_invoice_cfdi_33" model="report.templates.aeroo"> + <field name="name">Account Invoice XML CFDI 3.3</field> + <field name="model">account.invoice</field> + <field name="report_name">account.invoice.cfdi.33</field> + <field name="report_rml">l10n_mx_facturae/templates/account_invoice_33.txt</field> + <field name="tml_source">file</field> + </record> + <record id="ir_actions_report_xml_account_invioice_cfdi_33" model="ir.actions.report.xml"> + <field name="name">Account Invoice XML CFDI 3.3</field> + <field name="type">ir.actions.report.xml</field> + <field name="model">account.invoice</field> + <field name="report_name">account.invoice.cfdi.xml.33</field> + <field name="report_type">aeroo</field> + <field name="in_format">genshi-raw</field> + <field name="out_format" ref="report_aeroo.report_mimetypes_raw" /> + <field name="aeroo_templates_ids" + eval="[(6, 0, [report_templates_aeroo_account_invoice_cfdi_33])]" /> + <field name="parser_state">default</field> + </record> +</data> - <!-- PDF invoice report definition --> - <data noupdate="1"> - <record id="l10n_mx_facturae_template" model="report.templates.aeroo"> - <field name="name">Defaut Invoice Report teplate</field> - <field name="model">account.invoice</field> - <field name="report_name">invoice.report.aaero</field> - <field name="report_rml">l10n_mx_facturae/report/account_print_invoice.odt</field> - <field name="tml_source">file</field> - </record> - <record id="l10n_mx_facturae_report_aeroo" model="ir.actions.report.xml"> - <field name="name">Invoice Report aero</field> - <field name="type">ir.actions.report.xml</field> - <field name="model">account.invoice</field> - <field name="report_name">invoice.report.aaero</field> - <field name="report_type">aeroo</field> - <field name="in_format">oo-odt</field> - <field name="out_format" ref="report_aeroo.report_mimetypes_pdf_odt" /> - <field name="aeroo_templates_ids" eval="[(6, 0, [l10n_mx_facturae_template])]" /> - <field name="parser_state">default</field> - <field name="tml_source">file</field> - </record> - </data> +<!-- PDF invoice report definition --> +<data noupdate="1"> + <record id="l10n_mx_facturae_template" model="report.templates.aeroo"> + <field name="name">Defaut Invoice Report teplate</field> + <field name="model">account.invoice</field> + <field name="report_name">invoice.report.aaero</field> + <field name="report_rml">l10n_mx_facturae/report/account_invoice_33.odt</field> + <field name="tml_source">file</field> + </record> + <record id="l10n_mx_facturae_report_aeroo" model="ir.actions.report.xml"> + <field name="name">Invoice Report aero</field> + <field name="type">ir.actions.report.xml</field> + <field name="model">account.invoice</field> + <field name="report_name">invoice.report.aaero</field> + <field name="report_type">aeroo</field> + <field name="in_format">oo-odt</field> + <field name="out_format" ref="report_aeroo.report_mimetypes_pdf_odt" /> + <field name="aeroo_templates_ids" eval="[(6, 0, [l10n_mx_facturae_template])]" /> + <field name="parser_state">default</field> + <field name="tml_source">file</field> + </record> +</data> </openerp> diff --git a/l10n_mx_facturae/report/account_invoice_33.odt b/l10n_mx_facturae/report/account_invoice_33.odt index 5cd99497218f377113e97703291460595838f3df..fbc71528e584656782e7f38858cdbc1f5abb5a98 100644 GIT binary patch delta 24175 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 A;Q#;t delta 25301 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 diff --git a/l10n_mx_facturae/report/account_print_invoice.odt b/l10n_mx_facturae/report/account_voucher.odt similarity index 100% rename from l10n_mx_facturae/report/account_print_invoice.odt rename to l10n_mx_facturae/report/account_voucher.odt diff --git a/l10n_mx_facturae/report/account_voucher.xml b/l10n_mx_facturae/report/account_voucher.xml new file mode 100644 index 0000000000..f914f7248d --- /dev/null +++ b/l10n_mx_facturae/report/account_voucher.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> +<data> + <!-- XML invoice report definition --> + <record id="report_templates_aeroo_account_voucher_cfdi_33" model="report.templates.aeroo"> + <field name="name">Account Invoice XML CFDI 3.3</field> + <field name="model">account.voucher</field> + <field name="report_name">account.voucher.cfdi.33</field> + <field name="report_rml">l10n_mx_facturae/templates/account_voucher_33.txt</field> + <field name="tml_source">file</field> + </record> + <record id="ir_actions_report_xml_account_voucher_cfdi_33" model="ir.actions.report.xml"> + <field name="name">Account Voucher XML CFDI 3.3</field> + <field name="type">ir.actions.report.xml</field> + <field name="model">account.voucher</field> + <field name="report_name">account.voucher.cfdi.xml.33</field> + <field name="report_type">aeroo</field> + <field name="in_format">genshi-raw</field> + <field name="out_format" ref="report_aeroo.report_mimetypes_raw" /> + <field name="aeroo_templates_ids" + eval="[(6, 0, [report_templates_aeroo_account_voucher_cfdi_33])]" /> + <field name="parser_state">default</field> + </record> +</data> + +<data noupdate="1"> + <!-- PDF invoice report definition --> + <record id="report_templates_aeroo_account_voucher_cfdi_33" model="report.templates.aeroo"> + <field name="name">Defaut Voucher PDF</field> + <field name="model">account.voucher</field> + <field name="report_name">account.voucher.cfdi.33.pdf</field> + <field name="report_rml">l10n_mx_facturae/report/account_voucher.odt</field> + <field name="tml_source">file</field> + </record> + <record id="ir_actions_report_xml_account_voucher_cfdi_33" model="ir.actions.report.xml"> + <field name="name">Account Voucher CFDI PDF</field> + <field name="type">ir.actions.report.xml</field> + <field name="model">account.voucher</field> + <field name="report_name">account.voucher.cfdi.pdf</field> + <field name="report_type">aeroo</field> + <field name="in_format">oo-odt</field> + <field name="out_format" ref="report_aeroo.report_mimetypes_pdf_odt" /> + <field name="aeroo_templates_ids" eval="[(6, 0, [report_templates_aeroo_account_voucher_cfdi_33])]" /> + <field name="tml_source">file</field> + </record> +</data> +</openerp> diff --git a/l10n_mx_facturae/templates/account_invoice_33.txt b/l10n_mx_facturae/templates/account_invoice_33.txt index 8e48f5051a..3647867003 100644 --- a/l10n_mx_facturae/templates/account_invoice_33.txt +++ b/l10n_mx_facturae/templates/account_invoice_33.txt @@ -44,7 +44,7 @@ {% when '' %}${ validationerror(_('Missing VAT number for company')) }{% end %} {% otherwise %}Rfc="${ html_escape(o.company_id.partner_id.vat_split) }"{% end %} {% end %} - Nombre="${ o.company_id.name }" + Nombre="${ html_escape(o.company_id.name) }" RegimenFiscal="$o.company_id.account_position_id.code"/> <cfdi:Receptor {% choose o.partner_id.vat_split %} @@ -141,7 +141,7 @@ {% if taxes %} <cfdi:Impuestos TotalImpuestosTrasladados="${ '{0:.2f}'.format(taxes.total_traslados) }" - {% if taxes.retenciones %} + {% if taxes.total_retenciones %} TotalImpuestosRetenidos="${ '{0:.2f}'.format(abs(taxes.total_retenciones)) }" {% end %}> {% if taxes.traslados %} diff --git a/l10n_mx_facturae/templates/account_voucher_33.txt b/l10n_mx_facturae/templates/account_voucher_33.txt new file mode 100644 index 0000000000..a9752d80c1 --- /dev/null +++ b/l10n_mx_facturae/templates/account_voucher_33.txt @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +{% python setLang(o.create_uid.lang or 'en_US') %} +<cfdi:Comprobante + xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd" + xmlns:cfdi="http://www.sat.gob.mx/cfd/3" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:pago10="http://www.sat.gob.mx/Pagos" + Version="3.3" + {% if o.journal_id.sequence_id.prefix %} + Serie="$o.serie" + {% end %} + Folio="$o.folio" + Fecha="${ format_datetime(o.cfdi_datetime, '%Y-%m-%dT%H:%M:%S') }" + Sello="@" + NoCertificado="@" + Certificado="@" + SubTotal="0" + Moneda="XXX" + Total="0" + TipoDeComprobante="P" + LugarExpedicion="${ o.company_id.zip }" > + <cfdi:Emisor + {% choose o.company_id.partner_id.vat_split %} + {% when False %}${ validationerror(_('Missing VAT number for company')) }{% end %} + {% otherwise %}Rfc="${ html_escape(o.company_id.partner_id.vat_split) }"{% end %} + {% end %} + Nombre="${ html_escape(o.company_id.name) }" + RegimenFiscal="$o.company_id.account_position_id.code"/> + <cfdi:Receptor + {% choose o.partner_id.vat_split %} + {% when False %}${ validationerror(_('Missing VAT number for receiver')) }{% end %} + {% otherwise %}Rfc="${ html_escape(o.partner_id.vat_split) }"{% end %} + {% end %} + {% if o.partner_id.vat_split not in ('XAXX010101000', 'XEXX010101000') %} + Nombre="${ html_escape(o.partner_id.name) }" + {% end %} + {% if o.partner_id.country_id and o.partner_id.country_id.code != 'MX' %} + ResidenciaFiscal="$o.partner_id.country_id.code3" + NumRegIdTrib="${ html_escape(o.partner_id.vat) }" + {% end %} + UsoCFDI="P01" /> + <cfdi:Conceptos> + <cfdi:Concepto + ClaveProdServ="84111506" + Cantidad="1" + ClaveUnidad="ACT" + Descripcion="Pago" + ValorUnitario="0" + Importe="0" /> + </cfdi:Conceptos> + <cfdi:Complemento> + <pago10:Pagos Version="1.0"> + <pago10:Pago + FechaPago="${ format_date(o.date, '%Y-%m-%dT%H:%M:%S') }" + {% choose o.payment_type_id.code %} + {% when False %}${ validationerror(_('Missing payment method for voucher')) }{% end %} + {% when '99' %}${ validationerror(_('Payment method must be different than 99.')) }{% end %} + {% otherwise %}FormaDePagoP="${ o.payment_type_id.code }"{% end %} + {% end %} + MonedaP="${ o.currency_id.name }" + {% if o.currency_id.name != 'MXN' %} + TipoCambio="${ o.currency_rate }" + {% end %} + Monto="${ o.currency_id.cfdi_round(o.amount) }" + NumOperacion="${ o.number }" > + {% for invoice in o.doctos_relacionados %} + <pago10:DoctoRelacionado + IdDocumento="${ invoice.cfdi_folio_fiscal }" + MonedaDR="${ invoice.currency_id.name }" + {% if invoice.currency_id != o.currency_id %} + {% choose invoice.currency_id.name %} + {% when 'MXN' %}TipoCambioDR="1"{% end %} + {% otherwise %}TipoCambioDR="${ invoice.currency_rate }"{% end %} + {% end %} + {% end %} + {% choose invoice.payment_term.payment_method_id.code %} + {% when False %}MetodoDePagoDR="PUE"{% end %} + {% otherwise %} + MetodoDePagoDR="$invoice.payment_term.payment_method_id.code" + {% if invoice.payment_term.payment_method_id.code == 'PPD' %} + NumParcialidad="${ o.numparcialidad(invoice) }" + ImpSaldoAnt="${ o.impsaldoant(invoice) }" + ImpSaldoInsoluto="${ o.impsaldoant(invoice) - o.imppagado(invoice) }" + {% end %} + {% end %} + {% end %} + {% if invoice.payment_term.payment_method_id.code == 'PPD' or len(o.doctos_relacionados) > 1 %} + ImpPagado="${ o.imppagado(invoice) }" + {% end %} /> + {% end %} + </pago10:Pago> + </pago10:Pagos> + </cfdi:Complemento> +</cfdi:Comprobante> diff --git a/l10n_mx_facturae/views/account_voucher.xml b/l10n_mx_facturae/views/account_voucher.xml new file mode 100644 index 0000000000..2011dc0b35 --- /dev/null +++ b/l10n_mx_facturae/views/account_voucher.xml @@ -0,0 +1,57 @@ +<?xml version="1.0"?> +<openerp> +<data> + + <record id="account_voucher_action_sign" model="ir.actions.server"> + <field name="name">Sign Vouchers</field> + <field name="type">ir.actions.server</field> + <field name="model_id" ref="model_account_voucher"/> + <field name="state">code</field> + <field name="code">self.sign_voucher(cr, uid, context.get('active_ids', []), context=context)</field> + </record> + + <record id="ir_values_action_sign" model="ir.values"> + <field name="name">Sign Vouchers</field> + <field name="action_id" ref="account_voucher_action_sign"/> + <field name="value" eval="'ir.actions.server,' + str(ref('account_voucher_action_sign'))"/> + <field name="key">action</field> + <field name="model_id" ref="model_account_voucher"/> + <field name="model">account.voucher</field> + <field name="key2">client_action_multi</field> + </record> + + <record id="account_voucher_view_form" model="ir.ui.view"> + <field name="name">account.voucher.view.form</field> + <field name="model">account.voucher</field> + <field name="inherit_id" ref="account_voucher.view_vendor_receipt_form"/> + <field name="arch" type="xml"> + <button name="proforma_voucher" position="after"> + <button name="sign_voucher" type="object" string="Sign" class="oe_highlight" attrs="{'invisible':['|',('state','!=','posted'),('cfdi_state','in',['signed', 'done'])]}"/> + </button> + <xpath expr="//sheet/h1" position="after"> + <h4 attrs="{'invisible': [('number','=',False)]}" collspan="2"> + <field string="Fiscal Number" name="cfdi_id" readonly="1"/> + <field name="cfdi_state" invisible="1"/> + </h4> + </xpath> + </field> + </record> + + <record id="account_voucher_view_search" model="ir.ui.view"> + <field name="name">account.voucher.view.search</field> + <field name="model">account.voucher</field> + <field name="inherit_id" ref="account_voucher.view_voucher_filter_customer_pay"/> + <field name="arch" type="xml"> + <field name="partner_id" position="after"> + <field name="cfdi_id" string="UUID" /> + </field> + <filter string="Posted" position="after"> + <separator/> + <filter string="Unsigned" domain="[('cfdi_id','=',False)]" help="Not Signed Vouchers"/> + <filter string="Signed" domain="[('cfdi_id','!=',False)]" help="Signed Vouchers"/> + </filter> + </field> + </record> + +</data> +</openerp> -- GitLab From dcc6144258f6031946485e843ff90949912e427f Mon Sep 17 00:00:00 2001 From: agb80 <atin81@gmail.com> Date: Sat, 28 Oct 2017 15:20:40 -0500 Subject: [PATCH 2/2] refactor(account.invoice): stop using replace on views Stop using replace views as it's a bad practice that can lead into several troubles. Instead override attributes as needed. Also created an issue on account module to copy changes done in options for field `res_partner`: account/account#11 --- l10n_mx_facturae/views/account_invoice.xml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/l10n_mx_facturae/views/account_invoice.xml b/l10n_mx_facturae/views/account_invoice.xml index 757710f093..8ea0f3e20d 100644 --- a/l10n_mx_facturae/views/account_invoice.xml +++ b/l10n_mx_facturae/views/account_invoice.xml @@ -22,12 +22,10 @@ attrs="{'readonly': [('state', 'in', ('paid', 'open', 'cancel'))]}" options="{'no_create':True}"/> </field> - <xpath expr="//field[@name='partner_id']" position="replace"> - <field string="Customer" name="partner_id" - on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" - groups="base.group_user" context="{'search_default_customer':1, 'show_address': 1, 'default_is_company': 1}" - options="{'always_reload': True,'no_quick_create': True}" - domain="[('customer', '=', True), ('is_company', '=', True)]"/> + <xpath expr="//field[@name='partner_id']" position="attributes"> + <attribute name="context">{'search_default_customer':1, 'show_address': 1, 'default_is_company': 1}</attribute> + <attribute name="domain">[('customer', '=', True), ('is_company', '=', True)]</attribute> + <attribute name="options">{'always_reload': True,'no_quick_create': True}</attribute> </xpath> </field> </record> -- GitLab