...
 
Commits (26)
# -*- coding: utf-8 -*-
from . import models
# -*- coding: utf-8 -*-
{
"name": "l10n_mx_facturae_cer",
"version": "1.0.1",
"author": "OpenPyme",
"category": "Localization/Mexico",
"website": "http://www.openpyme.mx",
"license": "AGPL-3",
"depends": ["account"],
"demo": ["demo/l10n_mx_facturae_cer_demo.xml"],
"data": [
"security/l10n_mx_facturae_cer_security.xml",
"security/ir.model.access.csv",
"views/res_company.xml",
"views/res_company_facturae_certificate.xml",
],
"installable": True,
"external_dependencies": {"python": ["M2Crypto"], "bin": ["openssl"]},
}
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * l10n_mx_facturae_cer
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-08 03:15+0000\n"
"PO-Revision-Date: 2013-11-13 06:18+0000\n"
"Last-Translator: Federico Manuel Echeverri Choux <echeverrifm@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-02-14 07:51+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,serial_number:0
msgid "Number of serie of the certificate"
msgstr "Número de serie del Certificado"
#. module: l10n_mx_facturae_cer
#: code:addons/l10n_mx_facturae_cer/res_company.py:168
#, python-format
msgid ""
"You certificate file, key file or password is incorrect.\n"
"Verify uppercase and lowercase"
msgstr ""
"El archivo del Certificado, archivo del Key o la contraseña son "
"incorrectos.\n"
"Verifique mayúsculas y minúsculas"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_password:0
msgid "This password is proportionate by the SAT"
msgstr "La contraseña proporcionada por el SAT"
#. module: l10n_mx_facturae_cer
#: field:account.invoice,certificate_id:0
msgid "Invoice Certificate"
msgstr "Certificado de la Factura"
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
msgid "Group By..."
msgstr "Agrupar Por..."
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_key_file:0
msgid "Certificate Key File"
msgstr "Archivo KEY del Certificado"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: field:res.company,certificate_ids:0
#: view:res.company.facturae.certificate:0
msgid "Certificates"
msgstr "Certificados"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_key_file_pem:0
msgid "This file is generated with the file.key"
msgstr "El Archivo generado con el archivo.key"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "General Information of Certificate"
msgstr "Información General del Certificado"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_file:0
msgid "Certificate File"
msgstr "Archivo del Certificado"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,active:0
msgid "Indicate if this certificate is active"
msgstr "Indica si el certificado esta activo"
#. module: l10n_mx_facturae_cer
#: help:res.company,invoice_out_refund_sequence_id:0
msgid "The sequence used for invoice out refund numbers."
msgstr "Secuencia usada para los numeros de notas de credito"
#. module: l10n_mx_facturae_cer
#: help:res.company,certificate_id:0
msgid ""
"Serial Number of the certificate active and inside of dates in "
"this company"
msgstr ""
"Número de serie del certificado activo y dentro de las fechas de esta empresa"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Certificates PEM FORMAT (Transformed)"
msgstr "Certificados en FORMATO PEM (Transformado)"
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
#: field:res.company.facturae.certificate,company_id:0
msgid "Company"
msgstr "Compañia"
#. module: l10n_mx_facturae_cer
#: field:res.company,certificate_id:0
msgid "Certificate Current"
msgstr "Certificado Actual"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,serial_number:0
msgid "Serial Number"
msgstr "Numero de Serial"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,active:0
msgid "Active"
msgstr "Activo"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Certificates DER FORMAT (Original)"
msgstr "Certificados en FORMATO DER (Original)"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,fname_xslt:0
msgid "File XML Parser (.xslt)"
msgstr "Archivo Analizador del XML (.xslt)"
#. module: l10n_mx_facturae_cer
#: help:res.company,certificate_ids:0
msgid "Certificates configurated in this company"
msgstr "Certificados configurados en esta compañia"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
msgid "Certificados SAT"
msgstr "Certificados SAT"
#. module: l10n_mx_facturae_cer
#: field:res.company,invoice_out_refund_sequence_id:0
msgid "Invoice Out Refund Sequence"
msgstr "Secuencia de la Nota de Credito"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_file_pem:0
msgid "Certificate File PEM"
msgstr "Archivo del Certificado PEM"
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,name:l10n_mx_facturae_cer.action_res_company_facturae_certificate_tree
#: model:ir.ui.menu,name:l10n_mx_facturae_cer.menu_res_company_facturae_certificate
msgid "FacturaE Certificate"
msgstr "Certificado FacturaE"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,date_start:0
msgid "Date start the certificate before the SAT"
msgstr "Fecha del inicio del certificado ante el SAT"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,company_id:0
msgid "Company where you add this certificate"
msgstr "Compañia donde se agregara este certificado"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_file_pem:0
msgid "This file is generated with the file.cer"
msgstr "Este archivo se genera con la file.cer"
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_res_company
msgid "Companies"
msgstr "Compañías"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,date_end:0
msgid "Date end of validity of the certificate"
msgstr "Fecha de final de validacion del certificado"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Extra Information"
msgstr "Información Extra"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_key_file_pem:0
msgid "Certificate Key File PEM"
msgstr "Archivo KEY del Certificado PEM"
#. module: l10n_mx_facturae_cer
#: field:res.company,invoice_out_sequence_id:0
msgid "Invoice Out Sequence"
msgstr "Secuencia de Factura de Salida"
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,name:l10n_mx_facturae_cer.certificates_form_config_action
msgid "Configure Certificates to Electronic Invoice"
msgstr "Configuración del los Certificados para la Factura Electronica"
#. module: l10n_mx_facturae_cer
#: code:addons/l10n_mx_facturae_cer/res_company.py:167
#, python-format
msgid "Warning!"
msgstr "Warning!"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,fname_xslt:0
msgid "Folder in server with XSLT file"
msgstr "Carpeta en el servidor con el archiovo XSLT"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Get Certificate Info"
msgstr "Obtener la información del Certificado"
#. module: l10n_mx_facturae_cer
#: help:res.company,invoice_out_sequence_id:0
msgid "The sequence used for invoice out numbers."
msgstr "Secuencia usada para el numero de factura"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_file:0
msgid "This file .cer is proportionate by the SAT"
msgstr "Este archivo .cer es proporcionado por el SAT"
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,help:l10n_mx_facturae_cer.certificates_form_config_action
msgid "Configure yours certificates for Electronic Invoice."
msgstr "Configure los certificados para la Factura Electrónica."
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,date_end:0
msgid "Date End"
msgstr "Fecha Final"
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_res_company_facturae_certificate
msgid "res.company.facturae.certificate"
msgstr "res.company.facturae.certificate"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_password:0
msgid "Certificate Password"
msgstr "Contraseña de Certificado"
#. module: l10n_mx_facturae_cer
#: help:account.invoice,certificate_id:0
msgid "Id of the certificate used for the invoice"
msgstr "Id del Certificado utilizado en esta Factura"
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
msgid "Inactive"
msgstr "Inactivo"
#. module: l10n_mx_facturae_cer
#: view:res.company:0
msgid "For configurate sequence, access to sequence of Sale Journal."
msgstr "Para configurar la secuencia, acceda a la secuencia de Sale Journal."
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,date_start:0
msgid "Date Start"
msgstr "Fecha Inicial"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_key_file:0
msgid "This file .key is proportionate by the SAT"
msgstr "Este archivo.key es proporcionada por el SAT"
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * l10n_mx_facturae_cer
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-08 03:15+0000\n"
"PO-Revision-Date: 2013-08-07 16:39+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-02-14 07:51+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,serial_number:0
msgid "Number of serie of the certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: code:addons/l10n_mx_facturae_cer/res_company.py:168
#, python-format
msgid ""
"You certificate file, key file or password is incorrect.\n"
"Verify uppercase and lowercase"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_password:0
msgid "This password is proportionate by the SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:account.invoice,certificate_id:0
msgid "Invoice Certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
msgid "Group By..."
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_key_file:0
msgid "Certificate Key File"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: field:res.company,certificate_ids:0
#: view:res.company.facturae.certificate:0
msgid "Certificates"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_key_file_pem:0
msgid "This file is generated with the file.key"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "General Information of Certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_file:0
msgid "Certificate File"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,active:0
msgid "Indicate if this certificate is active"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,invoice_out_refund_sequence_id:0
msgid "The sequence used for invoice out refund numbers."
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,certificate_id:0
msgid ""
"Serial Number of the certificate active and inside of dates in "
"this company"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Certificates PEM FORMAT (Transformed)"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
#: field:res.company.facturae.certificate,company_id:0
msgid "Company"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company,certificate_id:0
msgid "Certificate Current"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,serial_number:0
msgid "Serial Number"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,active:0
msgid "Active"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Certificates DER FORMAT (Original)"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,fname_xslt:0
msgid "File XML Parser (.xslt)"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,certificate_ids:0
msgid "Certificates configurated in this company"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
msgid "Certificados SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company,invoice_out_refund_sequence_id:0
msgid "Invoice Out Refund Sequence"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_file_pem:0
msgid "Certificate File PEM"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,name:l10n_mx_facturae_cer.action_res_company_facturae_certificate_tree
#: model:ir.ui.menu,name:l10n_mx_facturae_cer.menu_res_company_facturae_certificate
msgid "FacturaE Certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,date_start:0
msgid "Date start the certificate before the SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,company_id:0
msgid "Company where you add this certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_file_pem:0
msgid "This file is generated with the file.cer"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_res_company
msgid "Companies"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,date_end:0
msgid "Date end of validity of the certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Extra Information"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_key_file_pem:0
msgid "Certificate Key File PEM"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company,invoice_out_sequence_id:0
msgid "Invoice Out Sequence"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,name:l10n_mx_facturae_cer.certificates_form_config_action
msgid "Configure Certificates to Electronic Invoice"
msgstr ""
#. module: l10n_mx_facturae_cer
#: code:addons/l10n_mx_facturae_cer/res_company.py:167
#, python-format
msgid "Warning!"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,fname_xslt:0
msgid "Folder in server with XSLT file"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Get Certificate Info"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,invoice_out_sequence_id:0
msgid "The sequence used for invoice out numbers."
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_file:0
msgid "This file .cer is proportionate by the SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,help:l10n_mx_facturae_cer.certificates_form_config_action
msgid "Configure yours certificates for Electronic Invoice."
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,date_end:0
msgid "Date End"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_res_company_facturae_certificate
msgid "res.company.facturae.certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_password:0
msgid "Certificate Password"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:account.invoice,certificate_id:0
msgid "Id of the certificate used for the invoice"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
msgid "Inactive"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
msgid "For configurate sequence, access to sequence of Sale Journal."
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,date_start:0
msgid "Date Start"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_key_file:0
msgid "This file .key is proportionate by the SAT"
msgstr ""
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * l10n_mx_facturae_cer
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-08 03:15+0000\n"
"PO-Revision-Date: 2013-08-07 16:41+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-02-14 07:51+0000\n"
"X-Generator: Launchpad (build 16916)\n"
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,serial_number:0
msgid "Number of serie of the certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: code:addons/l10n_mx_facturae_cer/res_company.py:168
#, python-format
msgid ""
"You certificate file, key file or password is incorrect.\n"
"Verify uppercase and lowercase"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_password:0
msgid "This password is proportionate by the SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:account.invoice,certificate_id:0
msgid "Invoice Certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
msgid "Group By..."
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_key_file:0
msgid "Certificate Key File"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: field:res.company,certificate_ids:0
#: view:res.company.facturae.certificate:0
msgid "Certificates"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_key_file_pem:0
msgid "This file is generated with the file.key"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "General Information of Certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_file:0
msgid "Certificate File"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,active:0
msgid "Indicate if this certificate is active"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,invoice_out_refund_sequence_id:0
msgid "The sequence used for invoice out refund numbers."
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,certificate_id:0
msgid ""
"Serial Number of the certificate active and inside of dates in "
"this company"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Certificates PEM FORMAT (Transformed)"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
#: field:res.company.facturae.certificate,company_id:0
msgid "Company"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company,certificate_id:0
msgid "Certificate Current"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,serial_number:0
msgid "Serial Number"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,active:0
msgid "Active"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Certificates DER FORMAT (Original)"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,fname_xslt:0
msgid "File XML Parser (.xslt)"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,certificate_ids:0
msgid "Certificates configurated in this company"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
msgid "Certificados SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company,invoice_out_refund_sequence_id:0
msgid "Invoice Out Refund Sequence"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_file_pem:0
msgid "Certificate File PEM"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,name:l10n_mx_facturae_cer.action_res_company_facturae_certificate_tree
#: model:ir.ui.menu,name:l10n_mx_facturae_cer.menu_res_company_facturae_certificate
msgid "FacturaE Certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,date_start:0
msgid "Date start the certificate before the SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,company_id:0
msgid "Company where you add this certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_file_pem:0
msgid "This file is generated with the file.cer"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_res_company
msgid "Companies"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,date_end:0
msgid "Date end of validity of the certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Extra Information"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_key_file_pem:0
msgid "Certificate Key File PEM"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company,invoice_out_sequence_id:0
msgid "Invoice Out Sequence"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,name:l10n_mx_facturae_cer.certificates_form_config_action
msgid "Configure Certificates to Electronic Invoice"
msgstr ""
#. module: l10n_mx_facturae_cer
#: code:addons/l10n_mx_facturae_cer/res_company.py:167
#, python-format
msgid "Warning!"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,fname_xslt:0
msgid "Folder in server with XSLT file"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
#: view:res.company.facturae.certificate:0
msgid "Get Certificate Info"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company,invoice_out_sequence_id:0
msgid "The sequence used for invoice out numbers."
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_file:0
msgid "This file .cer is proportionate by the SAT"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.actions.act_window,help:l10n_mx_facturae_cer.certificates_form_config_action
msgid "Configure yours certificates for Electronic Invoice."
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,date_end:0
msgid "Date End"
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_res_company_facturae_certificate
msgid "res.company.facturae.certificate"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,certificate_password:0
msgid "Certificate Password"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:account.invoice,certificate_id:0
msgid "Id of the certificate used for the invoice"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company.facturae.certificate:0
msgid "Inactive"
msgstr ""
#. module: l10n_mx_facturae_cer
#: view:res.company:0
msgid "For configurate sequence, access to sequence of Sale Journal."
msgstr ""
#. module: l10n_mx_facturae_cer
#: model:ir.model,name:l10n_mx_facturae_cer.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: l10n_mx_facturae_cer
#: field:res.company.facturae.certificate,date_start:0
msgid "Date Start"
msgstr ""
#. module: l10n_mx_facturae_cer
#: help:res.company.facturae.certificate,certificate_key_file:0
msgid "This file .key is proportionate by the SAT"
msgstr ""
# -*- coding: utf-8 -*-
from . import res_company
from . import res_company_facturae_certificate
# -*- coding: utf-8 -*-
import time
from openerp import api, fields, models
class ResCompany(models.Model):
_inherit = "res.company"
certificate_ids = fields.One2many(
"res.company.facturae.certificate",
"company_id",
"Certificates",
help="Certificates configurated in this company",
)
invoice_out_sequence_id = fields.Many2one(
"ir.sequence",
"Invoice Out Sequence",
help="The sequence used for invoice out numbers.",
)
invoice_out_refund_sequence_id = fields.Many2one(
"ir.sequence",
"Invoice Out Refund Sequence",
help="The sequence used for invoice out refund numbers.",
)
certificate_id = fields.Many2one(
comodel_name="res.company.facturae.certificate",
string="Certificate Current",
compute="_compute_certificate_id",
help="Serial Number of the certificate active and inside of "
"dates in this company",
)
@api.one
def _compute_certificate_id(self):
cert_obj = self.env["res.company.facturae.certificate"]
date = time.strftime("%Y-%m-%d")
domain = [
("company_id", "=", self.id),
("date_start", "<=", date),
("date_end", ">=", date),
("active", "=", True),
]
self.certificate_id = cert_obj.search(domain, limit=1)
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_l10n_mx_facturae_groups_res_company_facturae_certificate_manager,l10n_mx_facturae_groups_res_company_facturae_certificate_manager,model_res_company_facturae_certificate,account.group_account_manager,1,1,1,1
access_ir_attachment_facturae_mx_config_user,ir_attachment_facturae_mx_user,model_res_company_facturae_certificate,account.group_account_invoice,1,0,0,0
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="res_company_view_form" model="ir.ui.view" >
<field name="name">res.company.view.form</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@string='Configuration']" position="after">
<page string="Certificados CFDI">
<label for="certificate_id" string="Current certificate" />
<field name="certificate_id" nolabel="1" class="oe_inline"/>
<group string="Other certificates">
<field name="certificate_ids" nolabel="1" context="{'default_company_id': active_id}" />
</group>
</page>
</xpath>
</field>
</record>
</data>
</openerp>
......@@ -10,17 +10,21 @@
"depends": [
"email_template",
"document",
"l10n_mx_facturae_cer",
"l10n_mx_params_pac",
"mail",
"report_aeroo",
],
"demo": ["demo/l10n_mx_facturae_cer_demo.xml"],
"data": [
"security/fiel_facturae_security.xml",
"security/ir.model.access.csv",
"security/l10n_mx_facturae_cer_security.xml",
"views/account_config_settings.xml",
"views/account_journal.xml",
"views/ir_attachment_facturae.xml",
"views/ir_attachment_facturae_config.xml",
"views/res_company.xml",
"views/res_company_facturae_certificate.xml",
"views/res_company_facturae_fiel.xml"
],
"installable": True,
"external_dependencies": {"python": ["M2Crypto", "xmlsec"]},
......
# -*- coding: utf-8 -*-
from . import constants, pyxmldsig, xml
from . import constants, pyxmldsig, utils, xml
# -*- coding: utf-8 -*-
import base64
import logging
import subprocess
import tempfile
from openerp.exceptions import Warning as UserError
from openerp.tools.translate import _
import M2Crypto as m2
_logger = logging.getLogger(__name__)
class PkiUtils(object):
"""Util class to get PEM from DER cert & key """
def __init__(self, cert, key, passwd):
self.key = key
self.passwd = passwd
self.key_pem = self._get_key_pem()
self.cert_der = self._get_cer_der(cert)
@classmethod
def _get_cer_der(cls, cert):
"get cer in DER encode"
cer_der_decode = base64.decodestring(cert)
try:
cert_der = m2.X509.load_cert_der_string(cer_der_decode)
except m2.X509.X509Error:
_logger.warning(m2.X509.X509Error.message)
raise UserError(
_(
"You are trying to upload an known format file."
" File must be encoded as DER. "
"For further information review log"
)
)
else:
return cert_der
def _get_key_pem(self):
"""Get key in pem encode from der encode """
private_key_file_pem = tempfile.NamedTemporaryFile()
with tempfile.NamedTemporaryFile() as private_key_file_der:
private_key_file_der.write(base64.decodestring(self.key))
private_key_file_der.flush()
subprocess.call(
"openssl pkcs8 -inform DER -outform PEM"
' -in "%s" -passin pass:%s -out %s'
% (
private_key_file_der.name,
self.passwd,
private_key_file_pem.name,
),
shell=True,
)
key_pem = private_key_file_pem.read()
private_key_file_pem.close()
return key_pem
def get_key_pem(self):
return self.key_pem
def get_cert_pem(self):
return self.cert_der.as_pem()
def _get_module_from_key(self):
"""Helper file to read module from private key"""
file_module = tempfile.NamedTemporaryFile()
key_module = ""
with tempfile.NamedTemporaryFile() as key_pem_file:
key_pem_file.write(self.key_pem)
key_pem_file.flush()
cmd = 'openssl rsa -noout -modulus -in "%s" -out %s' % (
key_pem_file.name,
file_module.name,
)
subprocess.call(cmd, shell=True)
key_module = file_module.read().replace("Modulus=", "")
file_module.close()
return key_module
def validate_cert_key(self):
"""Compare modules to know if certificate and key match"""
cert_module = self.cert_der.get_pubkey().get_modulus()
key_module = self._get_module_from_key()
if cert_module.strip() != key_module.strip():
raise UserError(
_(
"The certificate and private key that you are loading "
"do not match"
)
)
def get_cer_der(self):
return self.cert_der
# -*- coding: utf-8 -*-
from openupgradelib import openupgrade as tools
from openerp import SUPERUSER_ID
@tools.migrate(use_env=True, uid=SUPERUSER_ID)
def migrate(env, installed_version):
# Merge module l10n_mx_facturae_cer into l10n_mx_ir_attachment_facturae
tools.update_module_names(
env.cr,
[("l10n_mx_facturae_cer", "l10n_mx_ir_attachment_facturae")],
merge_modules=True)
......@@ -2,7 +2,10 @@
from . import base_cfdi_mixin
from . import res_company
from . import res_company_facturae_certificate
from . import account_config_settings
from . import account_journal
from . import ir_attachment
from . import ir_attachment_facturae
from . import ir_attachment_facturae_config
from . import res_company_facturae_fiel
# -*- coding: utf-8 -*-
import logging
from openerp import api, fields, models
_logger = logging.getLogger(__name__)
class AccountConfigSettings(models.TransientModel):
_inherit = "account.config.settings"
pac_ids = fields.Many2many(
"params.pac", string="Pacs", related="company_id.pac_ids"
)
certificate_ids = fields.One2many(
"res.company.facturae.certificate",
string="Certificates",
related="company_id.certificate_ids",
help="Certificates configurated in this company",
)
certificate_id = fields.Many2one(
comodel_name="res.company.facturae.certificate",
string="Certificate Current",
related="company_id.certificate_id",
help="Serial Number of the certificate active and inside of "
"dates in this company",
)
fiel_id = fields.Many2one(
"res.company.facturae.fiel",
string="Fiel Current",
related="company_id.fiel_id",
help="Serial number of the fiel active and inside of dates in" "this company",
)
fiel_ids = fields.One2many(
"res.company.facturae.fiel",
string="Fiels",
related="company_id.fiel_ids",
help="Fiels configurated in this company",
)
group_show_fiel = fields.Boolean(
"Data for FIEL", implied_group="account.group_account_user"
)
@api.model
def default_get(self, fields_list):
res = super(AccountConfigSettings, self).default_get(fields_list)
ir_model_data = self.env["ir.model.data"]
account_user = ir_model_data.get_object_reference(
"account", "group_account_user"
)
download_cfdi = ir_model_data.get_object_reference(
"l10n_mx_ir_attachment_facturae", "group_download_cfdi"
)
if res.get("group_show_fiel"):
res_groups = self.env["res.groups"].browse([account_user[1]])
res_groups["implied_ids"] = [(4, download_cfdi[1])]
else:
res_groups = self.env["res.groups"].browse([account_user[1]])
res_groups["implied_ids"] = [(2, download_cfdi[1])]
return res
# -*- coding: utf-8 -*-
from openerp import fields, models
import logging
import time
from openerp import api, fields, models
_logger = logging.getLogger(__name__)
class ResCompany(models.Model):
_inherit = "res.company"
pac_ids = fields.Many2many("params.pac", string="Pacs")
certificate_ids = fields.One2many(
"res.company.facturae.certificate",
"company_id",
"Certificates",
help="Certificates configurated in this company",
)
certificate_id = fields.Many2one(
comodel_name="res.company.facturae.certificate",
string="Certificate Current",
compute="_compute_certificate_id",
help="Serial Number of the certificate active and inside of "
"dates in this company",
)
fiel_id = fields.Many2one(
"res.company.facturae.fiel",
string="Fiel Current",
compute="_compute_fiel_id",
help="Serial number of the fiel active and inside of dates in"
"this company",
)
fiel_ids = fields.One2many(
"res.company.facturae.fiel",
"company_id",
help="Fiels configurated in this company",
)
@api.multi
def _compute_certificate_id(self):
for company in self:
cert_obj = self.env["res.company.facturae.certificate"]
date = time.strftime("%Y-%m-%d")
domain = [
("company_id", "=", company.id),
("date_start", "<=", date),
("date_end", ">=", date),
("active", "=", True),
]
company.certificate_id = cert_obj.search(domain, limit=1)
class AccountConfigSettings(models.TransientModel):
_inherit = "account.config.settings"
@api.multi
def _compute_fiel_id(self):
for company in self:
fiel_obj = self.env["res.company.facturae.fiel"]
date = time.strftime("%Y-%m-%d")
domain = [
("company_id", "=", company.id),
("date_start", "<=", date),
("date_end", ">=", date),
("active", "=", True),
]
company.fiel_id = fiel_obj.search(domain, limit=1)
pac_ids = fields.Many2many(
"params.pac", string="Pacs", related="company_id.pac_ids"
)
@api.model
def _get_info(self, vals):
"""Function uses to get such values as: end certificate date,
start certificate date and serial number """
cer_der = vals._load_certificate_and_private_key(vals)
# Get serial number from certificate
serial_number = cer_der.get_serial_number()
# but what really they are a long type
# But they are ASCII characters
serial_number = "{0:x}".format(serial_number).decode("hex")
# Time in datetime object
date_start = cer_der.get_not_before().get_datetime()
date_end = cer_der.get_not_after().get_datetime()
# Transform into string
date_start = date_start.strftime("%Y-%m-%d")
date_end = date_end.strftime("%Y-%m-%d")
# Write values
vals.write(
{
"date_start": date_start,
"date_end": date_end,
"serial_number": serial_number,
}
)
# -*- coding: utf-8 -*-
import base64
import logging
import subprocess
import tempfile
import M2Crypto as m2
from openerp import api, fields, models
from openerp.exceptions import Warning as UserError
from openerp.tools.translate import _
from ..lib.utils import PkiUtils
_logger = logging.getLogger(__name__)
......@@ -20,6 +15,7 @@ class ResCompanyFacturaeCertificate(models.Model):
_rec_name = "serial_number"
@api.model
def _default_company_id(self):
res_company_obj = self.env["res.company"]
company = res_company_obj._company_default_get(
......@@ -31,7 +27,7 @@ class ResCompanyFacturaeCertificate(models.Model):
"res.company",
"Company",
required=True,
default=_default_company_id,
default=lambda self: self._default_company_id(),
help="Company where you add this certificate",
)
certificate_file = fields.Binary(
......@@ -63,101 +59,30 @@ class ResCompanyFacturaeCertificate(models.Model):
fname_xslt = fields.Char(
"File XML Parser (.xslt)", help="Folder in server with XSLT file"
)
active = fields.Boolean(default=True, help="Indicate if this certificate is active")
active = fields.Boolean(
default=True, help="Indicate if this certificate is active"
)
@api.model
@api.returns("self", lambda value: value.id)
def create(self, vals):
res = super(ResCompanyFacturaeCertificate, self).create(vals)
company = self.env["res.company"]
company._get_info(res)
return res
def _load_certificate_and_private_key(self):
def _load_certificate_and_private_key(self, vals):
"""Verify certificate and key files to be loaded are right
If they are right return files in der format to be parsed
"""
try:
# Certificate must be in DER format
cer_der_decode = base64.decodestring(self.certificate_file)
cer_der = m2.X509.load_cert_der_string(cer_der_decode)
cer_pem = cer_der.as_pem()
# Get public key from certificate in order to compare with
# public key from private key and know if they are the same
cert_module = cer_der.get_pubkey().get_modulus()
except m2.X509.X509Error:
_logger.warning(m2.X509.X509Error.message)
raise UserError(
_(
"You are trying to upload an known format file."
" File must be encoded as DER. "
"For further information review log"
)
)
# TODO: find a way to perform next task using M2Crypto
# Transform DER private key into PEM format
private_key_file_pem = tempfile.NamedTemporaryFile()
# Helper file to read module from private key
file_module = tempfile.NamedTemporaryFile()
with tempfile.NamedTemporaryFile() as private_key_file_der:
private_key_file_der.write(base64.decodestring(self.certificate_key_file))
private_key_file_der.flush()
subprocess.call(
"openssl pkcs8 -inform DER -outform PEM"
' -in "%s" -passin pass:%s -out %s'
% (
private_key_file_der.name,
self.certificate_password,
private_key_file_pem.name,
),
shell=True,
)
key_pem = private_key_file_pem.read()
cmd = 'openssl rsa -noout -modulus -in "%s" -out %s' % (
private_key_file_pem.name,
file_module.name,
pkutils = PkiUtils(
vals.certificate_file, vals.certificate_key_file, vals.certificate_password
)
subprocess.call(cmd, shell=True)
key_module = file_module.read().replace("Modulus=", "")
# Close files and destroy them
private_key_file_pem.close()
file_module.close()
# Compare modules to know if certificate and key match
if cert_module.strip() != key_module.strip():
raise UserError(
_(
"The certificate and private key that you are loading "
"do not match"
)
)
pkutils.validate_cert_key()
cer_pem = pkutils.get_cert_pem()
key_pem = pkutils.get_key_pem()
# Save certificate as PEM and KEY as PEM too
self.write(
vals.write(
{"certificate_file_pem": cer_pem, "certificate_key_file_pem": key_pem}
)
return cer_der
@api.one
def get_certificate_info(self):
self._get_certificate_info()
def _get_certificate_info(self):
"""Function uses to get such values as: end certificate date,
start certificate date and serial number """
if (
not self.certificate_file
and not self.certificate_key_file
and not self.certificate_password
):
return
cer_der = self._load_certificate_and_private_key()
# Get serial number from certificate
serial_number = cer_der.get_serial_number()
# but what really they are a long type
# But they are ASCII characters
serial_number = "{0:x}".format(serial_number).decode("hex")
# Time in datetime object
date_start = cer_der.get_not_before().get_datetime()
date_end = cer_der.get_not_after().get_datetime()
# Transform into string
date_start = date_start.strftime("%Y-%m-%d")
date_end = date_end.strftime("%Y-%m-%d")
# Write values
self.write(
{
"date_start": date_start,
"date_end": date_end,
"serial_number": serial_number,
}
)
return pkutils.get_cer_der()
# -*- coding: utf-8 -*-
# Copyright 2019 OpenPyme
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import base64
import hashlib
import M2Crypto as m2
from openerp import api, fields, models
from ..lib.utils import PkiUtils
class ResCompanyFacturaeFiel(models.Model):
_name = "res.company.facturae.fiel"
_description = "Company Facturae Fiel"
_rec_name = "serial_number"
@api.model
def _default_company_id(self):
res_company_obj = self.env["res.company"]
company = res_company_obj._company_default_get("res.company.facturae.fiel")
return company
company_id = fields.Many2one(
"res.company",
"Company",
required=True,
default=lambda self: self._default_company_id(),
help="Company where you add this fiel",
)
fiel_file = fields.Binary(
string="file of fiel",
filters="*.cer,*.certificate,*.cert",
required=True,
help="File .cert of the FIEL",
)
fiel_key_file = fields.Binary(
string="file KEY of fiel",
filters="*.key",
required=True,
help="File .key of the FIEL",
)
fiel_password = fields.Char(
string="Password of fiel",
size=64,
invisible=False,
required=True,
help="Password for login to SAT",
)
fiel_file_pem = fields.Binary(
string="file of fiel PEM",
filters="*.pem,*.cer,*.certificate,*.cert",
help="This file is generated with the file.cer",
)
fiel_key_pem = fields.Binary(
string="file KEY of fiel PEM",
filters="*.pem,*.key",
help="This file is generated with the file.key",
)
date_start = fields.Date(help="Date start the fiel before the SAT")
date_end = fields.Date(help="Date end of validity of the fiel")
serial_number = fields.Char(help="Number of serie of the fiel")
active = fields.Boolean(default=True, help="Indicate if this fiel is active")
@api.model
@api.returns("self", lambda value: value.id)
def create(self, vals):
res = super(ResCompanyFacturaeFiel, self).create(vals)
company = self.env["res.company"]
company._get_info(res)
return res
def _load_certificate_and_private_key(self, vals):
"""Verify fiel and key files to be loaded are right
If they are right return files in der format to be parsed
"""
pkutils = PkiUtils(vals.fiel_file, vals.fiel_key_file, vals.fiel_password)
pkutils.validate_cert_key()
cer_pem = pkutils.get_cert_pem()
key_pem = pkutils.get_key_pem()
# Save fiel as PEM and KEY as PEM too
vals.write({"fiel_file_pem": cer_pem, "fiel_key_pem": key_pem})
return pkutils.get_cer_der()
@api.multi
def _get_fiel(self):
"""
this function gets the FIEL associated with the company.
:return: FIEL of the comapany.
"""
self.ensure_one()
company_id = self.env.user.company_id
fiel = company_id.fiel_id
return fiel
@api.multi
def _firmar_xml(self, xml):
"""
function to sign XML in string format.
:param xml: XML in string format.
:return: XML information signed and encoded to base64.
"""
self.ensure_one()
keys = m2.RSA.load_key_string(self.fiel_key_pem)
digest = hashlib.new("sha1", xml).digest()
digital_signature = base64.b64encode(keys.sign(digest, "sha1"))
return digital_signature
@api.multi
def _certificate_base64(self):
"""
function that encodes base64 the faithful certificate in PEM format.
:return: certificate in base64 format.
"""
cert = m2.X509.load_cert_string(self.fiel_file_pem, 1)
certificate = base64.b64encode(cert.as_der())
return certificate
@api.multi
def _cretificate_issuer(self):
cert = m2.X509.load_cert_string(self.fiel_file_pem, 1)
certificate = cert.get_issuer()
certificate = certificate.as_text()
return certificate
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="group_download_cfdi" model="res.groups">
<field name="name">CFDI's Download</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
</data>
</openerp>
......@@ -2,3 +2,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_ir_attachment_facturae_mx_manager,ir_attachment_facturae_mx_manager,model_ir_attachment_facturae_mx,account.group_account_user,1,1,1,1
access_ir_attachment_facturae_mx_user,ir_attachment_facturae_mx_user,model_ir_attachment_facturae_mx,account.group_account_invoice,1,1,1,0
access_ir_attachment_facturae_mx_config_user,ir_attachment_facturae_mx_user,model_ir_attachment_facturae_mx_config,account.group_account_invoice,1,0,0,0
access_l10n_mx_facturae_groups_res_company_facturae_certificate_manager,l10n_mx_facturae_groups_res_company_facturae_certificate_manager,model_res_company_facturae_certificate,account.group_account_manager,1,1,1,1
access_ir_attachment_facturae_mx_config_user2,ir_attachment_facturae_mx_user,model_res_company_facturae_certificate,account.group_account_invoice,1,0,0,0
<?xml version="1.0"?>
<openerp>
<data>
<record id="account_settings_view_form" model="ir.ui.view" >
<field name="name">account.settings.view.form</field>
<field name="model">account.config.settings</field>
<field name="inherit_id" ref="account.view_account_config_settings" />
<field name="arch" type="xml">
<field name="sale_journal_id" position="before">
<separator string="Electronic invoicing (MX)"/>
<group name="l10n_mx_cfdi">
<label for="id" string="MX PAC"/>
<div>
<div>
<label for="id" string="Configure the Authorized Certification Provider (PAC)."/>
</div>
<div>
<field name="pac_ids"/>
</div>
</div>
</group>
<group name="l10n_mx_certificate">
<label for="id" string="Config Certificate"/>
<div>
<div>
<label for="id" string="Configure your certificates."/>
</div>
<div>
<label for="certificate_id" string="Current certificate:" />
<field name="certificate_id" string="Current certificate" class="oe_inline" />
</div>
<div>
<field name="certificate_ids"/>
</div>
</div>
</group>
<group>
<label for="id" string="FIEL"/>
<div>
<field name="group_show_fiel" class="oe_inline" />
<label for="group_show_fiel" string="Show form for data of FIEL" />
</div>
</group>
<group name="l10n_mx_fiel" groups="account.group_account_user">
<label for="id" string="Config Fiel"/>
<div>
<div>
<label for="id" string="Add your FIEL files and password to download the CFDI's and Test the login to SAT."/>
</div>
<div>
<label for="fiel_id" string="Current FIEL:" />
<field name="fiel_id" string="Current fiel" class="oe_inline" />
</div>
<div>
<field name="fiel_ids"/>
</div>
</div>
</group>
</field>
</field>
</record>
</data>
</openerp>
<?xml version="1.0"?>
<openerp>
<data>
<record id="account_settings_view_form" model="ir.ui.view" >
<field name="name">account.settings.view.form</field>
<field name="model">account.config.settings</field>
<field name="inherit_id" ref="account.view_account_config_settings" />
<field name="arch" type="xml">
<field name="sale_journal_id" position="before">
<separator string="Electronic invoicing (MX)"/>
<group name="l10n_mx_cfdi">
<label for="id" string="MX PAC"/>
<div>
<div>
<label for="id" string="Configure the Authorized Certification Provider (PAC)."/>
<field name="pac_ids"/>
</div>
</div>
</group>
</field>
</field>
</record>
</data>
</openerp>
......@@ -8,7 +8,6 @@
<field name="arch" type="xml">
<form string="Certificates">
<header>
<button name="get_certificate_info" string="Validate" type="object" class="oe_highlight" />
</header>
<sheet string="Certificates">
<group string="Certificates DER FORMAT (Original)" colspan="4">
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 OpenPyme
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<openerp>
<data>
<record model="ir.ui.view" id="res_company_facturae_fiel_form_view">
<field name="name">res.company.facturae.fiel.form</field>
<field name="model">res.company.facturae.fiel</field>
<field name="arch" type="xml">
<form>
<header>
</header>
<sheet>
<group string="Fiels DER FORMAT (Original)" colspan="4">
<field name="fiel_file" colspan="4"/>
<field name="fiel_key_file" colspan="4"/>
<newline/>
<field name="fiel_password" password="True" colspan="4"/>
</group>
<group string="General Information of Fiels" colspan="4">
<field name="serial_number" colspan="4"/>
<newline/>
<field name="date_start" colspan="4"/>
<newline/>
<field name="date_end" colspan="4"/>
<newline/>
<field name="company_id" widget="selection" groups="base.group_multi_company" colspan="4"/>
<newline/>
<field name="active" colspan="4"/>
</group>
<group string="Fiels PEM FORMAT (Transformed)" colspan="4">
<field name="fiel_file_pem" colspan="4"/>
<field name="fiel_key_pem" colspan="4"/>
</group>
</sheet>
<div class="oe_chatter"></div>
</form>
</field>
</record>
<record model="ir.ui.view" id="res_company_facturae_fiel_search_view">
<field name="name">res.company.facturae.fiel.search</field>
<field name="model">res.company.facturae.fiel</field>
<field name="arch" type="xml">
<search string="Fiels">
<filter string="Inactive" icon="terp-personal+" domain="[('active','=',False)]"/>
<field name="serial_number"/>
<field name="company_id"/>
<field name="active"/>
<newline/>
<group expand="0" string="Group By...">
<filter string="Company" icon="terp-partner" domain="[]" context="{'group_by':'company_id'}"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="res_company_facturae_fiel_tree_view">
<field name="name">res.company.facturae.fiel.tree</field>
<field name="model">res.company.facturae.fiel</field>
<field name="arch" type="xml">
<tree>
<field name="serial_number"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="active"/>
<field name="company_id"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="res_company_facturae_fiel_act_window">
<field name="name">Company Facturae Fiel</field> <!-- TODO -->
<field name="res_model">res.company.facturae.fiel</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
</data>
</openerp>