mirror of
https://github.com/pretix/pretix.git
synced 2025-12-06 21:42:49 +00:00
* Flexible invoice transmission
* UI work
* Add peppol and output
* API support
* Profile integration
* Simplify form for individuals
* Remove sent_to_customer usage
* more steps
* Revert "Bank transfer: Allow to send the invoice direclty to the accounting department (#2975)"
This reverts commit cea6c340be.
* minor fixes
* Fixes after rebase
* update stati
* Backend view
* Transmit and show status
* status, retransmission
* API retransmission
* More fields
* API docs
* Plugin docs
* Update migration
* Add missing license headers
* Remove dead code, fix current tests
* Run isort
* Update regex
* Rebase migration
* Fix migration
* Add tests, fix bugs
* Rebase migration
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io>
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io>
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io>
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io>
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io>
* Make migration reversible
* Add TransmissionType.enforce_transmission
* Fix registries API usage after rebase
* Remove code I forgot to delete
* Update transmission status display depending on type
* Add testmode_supported
* Update src/pretix/static/pretixbase/js/addressform.js
Co-authored-by: luelista <weller@rami.io>
* Update src/pretix/static/pretixbase/js/addressform.js
Co-authored-by: luelista <weller@rami.io>
* Update src/pretix/static/pretixbase/js/addressform.js
Co-authored-by: luelista <weller@rami.io>
* New mechanism for non-required invoice forms
* Update src/pretix/base/invoicing/transmission.py
Co-authored-by: luelista <weller@rami.io>
* Declare testmode_supported for email
* Make transmission_email_other an implementation detail
* Fix failing tests and add new ones
* Update src/pretix/base/services/invoices.py
Co-authored-by: luelista <weller@rami.io>
* Add emails to email history
* Fix comma error
* More generic default email text
* Cleanup
* Remove "email invoices" button and refine logic
* Rebase migration
* Fix edge case
---------
Co-authored-by: luelista <weller@rami.io>
66 lines
1.9 KiB
ReStructuredText
66 lines
1.9 KiB
ReStructuredText
.. highlight:: python
|
|
:linenothreshold: 5
|
|
|
|
Writing an invoice transmission plugin
|
|
======================================
|
|
|
|
An invoice transmission provider transports an invoice from the sender to the recipient.
|
|
There are pre-defined types of invoice transmission in pretix, currently ``"email"``, ``"peppol"``, and ``"it_sdi"``.
|
|
You can find more information about them at :ref:`rest-transmission-types`.
|
|
|
|
New transmission types can not be added by plugins but need to be added to pretix itself.
|
|
However, plugins can provide implementations for the actual transmission.
|
|
Please read :ref:`Creating a plugin <pluginsetup>` first, if you haven't already.
|
|
|
|
Output registration
|
|
-------------------
|
|
|
|
New invoice transmission providers can be registered through the :ref:`registry <registries>` mechanism
|
|
|
|
.. code-block:: python
|
|
|
|
from pretix.base.invoicing.transmission import transmission_providers, TransmissionProvider
|
|
|
|
@transmission_providers.new()
|
|
class SdiTransmissionProvider(TransmissionProvider):
|
|
identifier = "fatturapa_providerabc"
|
|
type = "it_sdi"
|
|
verbose_name = _("FatturaPA through provider ABC")
|
|
...
|
|
|
|
|
|
The provider class
|
|
------------------
|
|
|
|
.. class:: pretix.base.invoicing.transmission.TransmissionProvider
|
|
|
|
.. autoattribute:: identifier
|
|
|
|
This is an abstract attribute, you **must** override this!
|
|
|
|
.. autoattribute:: type
|
|
|
|
This is an abstract attribute, you **must** override this!
|
|
|
|
.. autoattribute:: verbose_name
|
|
|
|
This is an abstract attribute, you **must** override this!
|
|
|
|
.. autoattribute:: priority
|
|
|
|
.. autoattribute:: testmode_supported
|
|
|
|
.. automethod:: is_ready
|
|
|
|
This is an abstract method, you **must** override this!
|
|
|
|
.. automethod:: is_available
|
|
|
|
This is an abstract method, you **must** override this!
|
|
|
|
.. automethod:: transmit
|
|
|
|
This is an abstract method, you **must** override this!
|
|
|
|
.. automethod:: settings_url
|