Odoo18-Base/addons/l10n_es_edi_facturae/models/certificate.py

24 lines
639 B
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
import base64
from cryptography import x509
from odoo import fields, models
class Certificate(models.Model):
_inherit = 'certificate.certificate'
scope = fields.Selection(
selection_add=[
('facturae', 'Facturae')
],
)
def _l10n_es_edi_facturae_get_issuer(self):
self.ensure_one()
cert = x509.load_pem_x509_certificate(base64.b64decode(self.pem_certificate))
rfc4514_attr = dict(element.rfc4514_string().split("=", 1) for element in cert.issuer.rdns)
return f"CN={rfc4514_attr['CN']}, OU={rfc4514_attr['OU']}, O={rfc4514_attr['O']}, C={rfc4514_attr['C']}"