Make possible to not send and not create the Facturae automatically and

allow to do it manually. Or send by any of the services selected or
create only the file and do not send.
This commit is contained in:
Bernat Brunet 2023-08-18 12:50:23 +02:00
parent 90773042c3
commit d7488ed6d9
4 changed files with 35 additions and 17 deletions

View File

@ -77,7 +77,8 @@ class ConfigurationFacturae(ModelSQL, CompanyValueMixin):
facturae_certificate = fields.Many2One('certificate', "Factura-e Certificate", facturae_certificate = fields.Many2One('certificate', "Factura-e Certificate",
help='Certificate to sign Factura-e') help='Certificate to sign Factura-e')
facturae_service = fields.Selection([ facturae_service = fields.Selection([
(None, 'Only Generate Facturae'), (None, 'None'),
('only_file', 'Only Generate Facturae'),
], "Factura-e Service") ], "Factura-e Service")
@staticmethod @staticmethod

View File

@ -255,24 +255,24 @@ class Invoice(metaclass=PoolMeta):
config = Configuration(1) config = Configuration(1)
transaction = Transaction() transaction = Transaction()
if not self.invoice_facturae:
facturae_content = self.get_facturae()
self._validate_facturae(facturae_content)
if backend.name != 'sqlite':
invoice_facturae = self._sign_facturae(facturae_content,
'default', certificate)
else:
invoice_facturae = facturae_content
self.invoice_facturae = invoice_facturae
self.save()
# send facturae to service # send facturae to service
if not service and config.facturae_service: if not service and config.facturae_service:
service = config.facturae_service service = config.facturae_service
if self.invoice_facturae and service: if not self.invoice_facturae:
with transaction.set_context( facturae_content = self.get_facturae()
queue_scheduled_at=config.invoice_facturae_after): self._validate_facturae(facturae_content)
Invoice.__queue__.send_facturae(self, service) if backend.name != 'sqlite':
invoice_facturae = self._sign_facturae(facturae_content,
'default', certificate)
else:
invoice_facturae = facturae_content
self.invoice_facturae = invoice_facturae
self.save()
if self.invoice_facturae and service and service != 'only_file':
with transaction.set_context(
queue_scheduled_at=config.invoice_facturae_after):
Invoice.__queue__.send_facturae(self, service)
def send_facturae(self, service): def send_facturae(self, service):
Invoice = Pool().get('account.invoice') Invoice = Pool().get('account.invoice')
@ -816,7 +816,8 @@ class GenerateFacturaeStart(ModelView):
'Generate Factura-e file - Start' 'Generate Factura-e file - Start'
__name__ = 'account.invoice.generate_facturae.start' __name__ = 'account.invoice.generate_facturae.start'
service = fields.Selection([ service = fields.Selection([
(None, 'Only generate facturae'), (None, 'None'),
('only_file', 'Only Generate Facturae'),
], 'Factura-e Service') ], 'Factura-e Service')
certificate = fields.Many2One('certificate', certificate = fields.Many2One('certificate',
'Factura-e Certificate', depends=['service']) 'Factura-e Certificate', depends=['service'])

View File

@ -895,6 +895,14 @@ msgctxt "selection:account.configuration.facturae,facturae_service:"
msgid "Only Generate Facturae" msgid "Only Generate Facturae"
msgstr "Només genera la Factura-e" msgstr "Només genera la Factura-e"
msgctxt "selection:account.configuration.facturae,service:"
msgid "None"
msgstr "Cap"
msgctxt "selection:account.invoice.generate_facturae.start,service:" msgctxt "selection:account.invoice.generate_facturae.start,service:"
msgid "Only Generate Facturae" msgid "Only Generate Facturae"
msgstr "Només genera la Factura-e" msgstr "Només genera la Factura-e"
msgctxt "selection:account.invoice.generate_facturae.start,service:"
msgid "None"
msgstr "Cap"

View File

@ -889,6 +889,14 @@ msgctxt "selection:account.configuration.facturae,service:"
msgid "Only Generate Facturae" msgid "Only Generate Facturae"
msgstr "Solo genera la Factura-e" msgstr "Solo genera la Factura-e"
msgctxt "selection:account.configuration.facturae,service:"
msgid "None"
msgstr "Ninguno"
msgctxt "selection:account.invoice.generate_facturae.start,service:" msgctxt "selection:account.invoice.generate_facturae.start,service:"
msgid "Only Generate Facturae" msgid "Only Generate Facturae"
msgstr "Solo genera la Factura-e" msgstr "Solo genera la Factura-e"
msgctxt "selection:account.invoice.generate_facturae.start,service:"
msgid "None"
msgstr "Ninguno"