pingen.com integration

pingen
REPOSITORY
REPOSITORYOCA/report-print-send
GIT
GIThttps://github.com/OCA/report-print-send.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/report-print-send/tree/16.0/pingen
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSAkim Juillerat, Weblate, OCA-git-bot, Anna Janiszewska, oca-ci, Kevin Luna
WEBSITE
WEBSITEhttps://github.com/OCA/report-print-send
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base_setup
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES oauthlib
requests_oauthlib
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.inherit res.config.settings xpath Inherits base_setup.res_config_settings_view_form
view_attachment_form ir.attachment.pingen.view ir.attachment xpath Inherits base.view_attachment_form
view_pingen_document_form pingen.document.form pingen.document form New
view_pingen_document_search pingen.document.search pingen.document search New
view_pingen_document_tree pingen.document.tree pingen.document tree New
Models touched (4)

New fields (2)
  • pingen_document_ids One2many → pingen.document
    readonly=True string='Pingen Document' args: 'pingen.document', 'attachment_id'
  • send_to_pingen Boolean
    args: 'Send to Pingen.com'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)

New fields (17)
  • attachment_id Many2one → ir.attachment
    ondelete='cascade' readonly=True required=True args: 'ir.attachment', 'Document'
  • auto_send Boolean
    default=True help='Defines if a document is merely uploaded or also sent'
  • company_id Many2one
    related='attachment_id.company_id'
  • cost Float
    readonly=True
  • country_id Many2one → res.country
    readonly=True args: 'res.country', 'Country'
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency', 'Currency'
  • delivery_product Selection
    default='cheap' args: [('fast', 'fast'), ('cheap', 'cheap'), ('bulk', 'bulk'), ('track', 'track'), ('sign', 'sign'), ('atpost_economy', 'atpost_economy'), ('atpost_priority', 'atpost_priority'), ('postag_a', 'postag_a'), ('postag_b', 'postag_b'), ('postag_b2', 'postag_b2'), ('postag_registered', 'postag_registered'), ('postag_aplus', 'postag_aplus'), ('dpag_standard', 'dpag_standard'), ('dpag_economy', 'dpag_economy'), ('indpost_mail', 'indpost_mail'), ('indpost_speedmail', 'indpost_speedmail'), ('nlpost_priority', 'nlpost_priority'), ('dhl_priority', 'dhl_priority')], 'Delivery product'
  • last_error_message Text
    readonly=True args: 'Error Message'
  • pages Integer
    readonly=True
  • parsed_address Text
    readonly=True
  • pingen_status Char
    readonly=True
  • pingen_uuid Char
    readonly=True
  • print_mode Selection
    default='simplex' args: [('simplex', 'Simplex'), ('duplex', 'Duplex')], 'Print mode'
  • print_spectrum Selection
    default='grayscale' args: [('grayscale', 'Grayscale'), ('color', 'Color')]
  • push_date Datetime
    readonly=True
  • send_date Datetime
    readonly=True args: 'Date of sending'
  • state Selection
    default='pending' readonly=True required=True args: [('pending', 'Pending'), ('pushed', 'Pushed'), ('sendcenter', 'In Sendcenter'), ('sent', 'Sent'), ('error_undeliverable', 'Undeliverable'), ('error', 'Connection Error'), ('pingen_error', 'Pingen Error'), ('canceled', 'Canceled')]
Public methods (4)
  • ask_pingen_send(self)
    For a document already pushed to pingen, ask to send it. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • push_to_pingen(self)
    Push a document to pingen.com Convert errors to osv.except_osv to be handled by the client. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • resolve_error(self)
    A document as resolved, put in the correct state
  • update_post_infos(self)
    Update the informations from pingen of a document in the Sendcenter Wrapper method for multiple ids (when triggered from button for instance) for public interface.

New fields (6)
  • pingen_client_secretid Char
    size=80
  • pingen_clientid Char
    size=20
  • pingen_organization Char
    args: 'Pingen organization ID'
  • pingen_ssl_verify Boolean
    default=True
  • pingen_staging Boolean
  • pingen_webhook_secret Char
Public methods (0)

No public methods.

New fields (6)
  • pingen_client_secretid Char
    readonly=False related='company_id.pingen_client_secretid' string='Pingen Client Secret ID'
  • pingen_clientid Char
    readonly=False related='company_id.pingen_clientid' string='Pingen Client ID'
  • pingen_organization Char
    readonly=False related='company_id.pingen_organization' string='Pingen organization'
  • pingen_ssl_verify Boolean
    readonly=False related='company_id.pingen_ssl_verify' string='Pingen SSL Verification'
  • pingen_staging Boolean
    readonly=False related='company_id.pingen_staging' string='Pingen Staging'
  • pingen_webhook_secret Char
    readonly=False related='company_id.pingen_webhook_secret' string='Pingen webhook secret'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/report-print-send
GIT
GIThttps://github.com/OCA/report-print-send.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/report-print-send/tree/10.0/pingen
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, Akim Juillerat, Stéphane Bidoul (ACSONE), oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base_setup
    - base
    - web_kanban
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
base_config_settings_inherit base.config.settings.inherit base.config.settings group Inherits base_setup.view_general_configuration
view_attachment_form ir.attachment.pingen.view ir.attachment xpath Inherits base.view_attachment_form
view_pingen_document_form pingen.document.form pingen.document form New
view_pingen_document_search pingen.document.search pingen.document search New
view_pingen_document_tree pingen.document.tree pingen.document tree New
Models touched (4)

New fields (2)
  • pingen_staging Boolean
    related='company_id.pingen_staging'
  • pingen_token Char
    related='company_id.pingen_token'
Public methods (0)

No public methods.

New fields (5)
  • pingen_color Selection
    default='0' args: [('0', 'B/W'), ('1', 'Color')], 'Type of print'
  • pingen_document_ids One2many → pingen.document
    readonly=True string='Pingen Document' args: 'pingen.document', 'attachment_id'
  • pingen_send Boolean
    default=True help='Defines if a document is merely uploaded or also sent' args: 'Send'
  • pingen_speed Selection
    default='2' help='Defines the sending speed if the document is automatically sent' args: [('1', 'Priority'), ('2', 'Economy')], 'Speed'
  • send_to_pingen Boolean
    args: 'Send to Pingen.com'
Public methods (2)
  • create(self, vals)
    @api.model
  • write(self, vals)
    @api.multi

New fields (13)
  • attachment_id Many2one → ir.attachment
    ondelete='cascade' readonly=True required=True args: 'ir.attachment', 'Document'
  • cost Float
    readonly=True args: 'Cost'
  • country_id Many2one → res.country
    readonly=True args: 'res.country', 'Country'
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency', 'Currency'
  • last_error_message Text
    readonly=True args: 'Error Message'
  • pages Integer
    readonly=True args: 'Pages'
  • parsed_address Text
    readonly=True args: 'Parsed Address'
  • pingen_id Integer
    help='ID of the document in the Pingen Documents' readonly=True args: 'Pingen ID'
  • post_id Integer
    help='ID of the document in the Pingen Sendcenter' readonly=True args: 'Pingen Post ID'
  • post_status Char
    readonly=True size=128 args: 'Post Status'
  • push_date Datetime
    readonly=True args: 'Push Date'
  • send_date Datetime
    readonly=True args: 'Date of sending'
  • state Selection
    default='pending' readonly=True required=True string='State' args: [('pending', 'Pending'), ('pushed', 'Pushed'), ('sendcenter', 'In Sendcenter'), ('sent', 'Sent'), ('error', 'Connection Error'), ('pingen_error', 'Pingen Error'), ('canceled', 'Canceled')]
Public methods (4)
  • ask_pingen_send(self)
    For a document already pushed to pingen, ask to send it. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • push_to_pingen(self)
    Push a document to pingen.com Convert errors to osv.except_osv to be handled by the client. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • resolve_error(self)
    A document as resolved, put in the correct state
  • update_post_infos(self)
    Update the informations from pingen of a document in the Sendcenter Wrapper method for multiple ids (when triggered from button for instance) for public interface.

New fields (2)
  • pingen_staging Boolean
    args: 'Pingen Staging'
  • pingen_token Char
    size=32 args: 'Pingen Token'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/report-print-send
GIT
GIThttps://github.com/OCA/report-print-send.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/report-print-send/tree/9.0/pingen
VERSION
VERSION 1.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSStéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Integration with pingen.com
===========================

What is pingen.com
------------------

Pingen.com is a paid online service.
It sends uploaded documents by letter post.

Scope of the integration
------------------------

One can decide, per document / attachment, if it should be pushed
to pingen.com. The documents are pushed asynchronously.

A second cron updates the informations of the documents from pingen.com, so we
know which of them have been sent.

Configuration
-------------

The authentication token is configured on the company's view. You can also
tick a checkbox if the staging environment (https://stage-api.pingen.com)
should be used.

The setup of the 2 crons can be changed as well:

 * Run Pingen Document Push
 * Run Pingen Document Update

Usage
-----

On the attachment view, a new pingen.com tab has been added.
You can tick a box to push the document to pingen.com.

There is 3 additional options:

 * Send: the document will not be only uploaded, but will be also be sent
 * Speed: priority or economy
 * Type of print: color or black and white

Once the configuration is done and the attachment saved, a Pingen Document
is created. You can directly access to the latter on the Link on the right on
the attachment view.

You can find them in `Settings > Customization > Low Level Objets > Pingen
Documents` or in the more convenient `Documents` menu if you have installed the
`document` module.

Errors
------

Sometimes, pingen.com will refuse to send a document because it does not meet
its requirements. In such case, the document's state becomes "Pingen Error" and
you will need to manually handle the case, either from the pingen.com backend,
or by changing the document on OpenERP and resolving the error on the Pingen
Document.

When a connection error occurs, the action will be retried on the next scheduler
run.

Dependencies
------------

 * Require the Python library `requests <http://docs.python-requests.org/>`_
 * The PDF files sent to pingen.com have to respect some `formatting rules
   <https://stage-app.pingen.com/resources/pingen_requirements_v1_en.pdf>`_.
 * The address must be in a format accepted by pingen.com: the last line
   is the country in English or German.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_attachment_form ir.attachment.pingen.view ir.attachment page Inherits base.view_attachment_form
view_company_inherit_form res.company.form.inherit res.company page Inherits base.view_company_form
view_pingen_document_form pingen.document.form pingen.document form New
view_pingen_document_search pingen.document.search pingen.document search New
view_pingen_document_tree pingen.document.tree pingen.document tree New
Models touched (3)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (4)
  • ask_pingen_send(self, cr, uid, ids, context=None)
    For a document already pushed to pingen, ask to send it. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • push_to_pingen(self, cr, uid, ids, context=None)
    Push a document to pingen.com Convert errors to osv.except_osv to be handled by the client. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • resolve_error(self, cr, uid, ids, context=None)
    A document as resolved, put in the correct state
  • update_post_infos(self, cr, uid, ids, context=None)
    Update the informations from pingen of a document in the Sendcenter Wrapper method for multiple ids (when triggered from button for instance) for public interface.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/report-print-send
GIT
GIThttps://github.com/OCA/report-print-send.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/report-print-send/tree/8.0/pingen
VERSION
VERSION 1.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Integration with pingen.com
===========================

What is pingen.com
------------------

Pingen.com is a paid online service.
It sends uploaded documents by letter post.

Scope of the integration
------------------------

One can decide, per document / attachment, if it should be pushed
to pingen.com. The documents are pushed asynchronously.

A second cron updates the informations of the documents from pingen.com, so we
know which of them have been sent.

Configuration
-------------

The authentication token is configured on the company's view. You can also
tick a checkbox if the staging environment (https://stage-api.pingen.com)
should be used.

The setup of the 2 crons can be changed as well:

 * Run Pingen Document Push
 * Run Pingen Document Update

Usage
-----

On the attachment view, a new pingen.com tab has been added.
You can tick a box to push the document to pingen.com.

There is 3 additional options:

 * Send: the document will not be only uploaded, but will be also be sent
 * Speed: priority or economy
 * Type of print: color or black and white

Once the configuration is done and the attachment saved, a Pingen Document
is created. You can directly access to the latter on the Link on the right on
the attachment view.

You can find them in `Settings > Customization > Low Level Objets > Pingen
Documents` or in the more convenient `Documents` menu if you have installed the
`document` module.

Errors
------

Sometimes, pingen.com will refuse to send a document because it does not meet
its requirements. In such case, the document's state becomes "Pingen Error" and
you will need to manually handle the case, either from the pingen.com backend,
or by changing the document on OpenERP and resolving the error on the Pingen
Document.

When a connection error occurs, the action will be retried on the next scheduler
run.

Dependencies
------------

 * Require the Python library `requests <http://docs.python-requests.org/>`_
 * The PDF files sent to pingen.com have to respect some `formatting rules
   <https://stage-app.pingen.com/resources/pingen_requirements_v1_en.pdf>`_.
 * The address must be in a format accepted by pingen.com: the last line
   is the country in English or German.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_attachment_form ir.attachment.pingen.view ir.attachment page Inherits base.view_attachment_form
view_company_inherit_form res.company.form.inherit res.company page Inherits base.view_company_form
view_pingen_document_form pingen.document.form pingen.document form New
view_pingen_document_search pingen.document.search pingen.document search New
view_pingen_document_tree pingen.document.tree pingen.document tree New
Models touched (3)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (4)
  • ask_pingen_send(self, cr, uid, ids, context=None)
    For a document already pushed to pingen, ask to send it. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • push_to_pingen(self, cr, uid, ids, context=None)
    Push a document to pingen.com Convert errors to osv.except_osv to be handled by the client. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • resolve_error(self, cr, uid, ids, context=None)
    A document as resolved, put in the correct state
  • update_post_infos(self, cr, uid, ids, context=None)
    Update the informations from pingen of a document in the Sendcenter Wrapper method for multiple ids (when triggered from button for instance) for public interface.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/report-print-send
GIT
GIThttps://github.com/OCA/report-print-send.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/report-print-send/tree/7.0/pingen
VERSION
VERSION 1.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Guewen Baconnier, Alexandre Fayolle, Laetitia Gangloff, Launchpad Translations on behalf of report-print-send-core-editors
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Integration with pingen.com
===========================

What is pingen.com
------------------

Pingen.com is a paid online service.
It sends uploaded documents by letter post.

Scope of the integration
------------------------

One can decide, per document / attachment, if it should be pushed
to pingen.com. The documents are pushed asynchronously.

A second cron updates the informations of the documents from pingen.com, so we
know which of them have been sent.

Configuration
-------------

The authentication token is configured on the company's view. You can also
tick a checkbox if the staging environment (https://stage-api.pingen.com)
should be used.

The setup of the 2 crons can be changed as well:

 * Run Pingen Document Push
 * Run Pingen Document Update

Usage
-----

On the attachment view, a new pingen.com tab has been added.
You can tick a box to push the document to pingen.com.

There is 3 additional options:

 * Send: the document will not be only uploaded, but will be also be sent
 * Speed: priority or economy
 * Type of print: color or black and white

Once the configuration is done and the attachment saved, a Pingen Document
is created. You can directly access to the latter on the Link on the right on
the attachment view.

You can find them in `Settings > Customization > Low Level Objets > Pingen
Documents` or in the more convenient `Documents` menu if you have installed the
`document` module.

Errors
------

Sometimes, pingen.com will refuse to send a document because it does not meet
its requirements. In such case, the document's state becomes "Pingen Error" and
you will need to manually handle the case, either from the pingen.com backend,
or by changing the document on OpenERP and resolving the error on the Pingen
Document.

When a connection error occurs, the action will be retried on the next
scheduler run.

Dependencies
------------

 * Require the Python library `requests <http://docs.python-requests.org/>`_
 * The PDF files sent to pingen.com have to respect some `formatting rules
   <https://stage-app.pingen.com/resources/pingen_requirements_v1_en.pdf>`_.
 * The address must be in a format accepted by pingen.com: the last line
   is the country in English or German.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_attachment_form ir.attachment.pingen.view ir.attachment page Inherits base.view_attachment_form
view_company_inherit_form res.company.form.inherit res.company page Inherits base.view_company_form
view_pingen_document_form pingen.document.form pingen.document form New
view_pingen_document_search pingen.document.search pingen.document search New
view_pingen_document_tree pingen.document.tree pingen.document tree New
Models touched (3)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (4)
  • ask_pingen_send(self, cr, uid, ids, context=None)
    For a document already pushed to pingen, ask to send it. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • push_to_pingen(self, cr, uid, ids, context=None)
    Push a document to pingen.com Convert errors to osv.except_osv to be handled by the client. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • resolve_error(self, cr, uid, ids, context=None)
    A document as resolved, put in the correct state
  • update_post_infos(self, cr, uid, ids, context=None)
    Update the informations from pingen of a document in the Sendcenter Wrapper method for multiple ids (when triggered from button for instance) for public interface.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/report-print-send
GIT
GIThttps://github.com/OCA/report-print-send.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/report-print-send/tree/6.1/pingen
VERSION
VERSION 1.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSCamptocamp
COMMITTERS
COMMITTERSAlexandre Fayolle, Nicolas Bessi, Guewen Baconnier @ Camptocamp, Launchpad Translations on behalf of report-print-send-core-editors
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:04:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Integration with pingen.com
===========================

What is pingen.com
------------------

Pingen.com is a paid online service.
It sends uploaded documents by letter post.

Scope of the integration
------------------------

One can decide, per document / attachment, if it should be pushed
to pingen.com. The documents are pushed asynchronously.

A second cron updates the informations of the documents from pingen.com, so we
know which of them have been sent.

Configuration
-------------

The authentication token is configured on the company's view. You can also
tick a checkbox if the staging environment (https://stage-api.pingen.com)
should be used.

The setup of the 2 crons can be changed as well:

 * Run Pingen Document Push
 * Run Pingen Document Update

Usage
-----

On the attachment view, a new pingen.com tab has been added.
You can tick a box to push the document to pingen.com.

There is 3 additional options:

 * Send: the document will not be only uploaded, but will be also be sent
 * Speed: priority or economy
 * Type of print: color or black and white

Once the configuration is done and the attachment saved, a Pingen Document
is created. You can directly access to the latter on the Link on the right on
the attachment view.

You can find them in `Settings > Customization > Low Level Objets > Pingen
Documents` or in the more convenient `Documents` menu if you have installed the
`document` module.

Errors
------

Sometimes, pingen.com will refuse to send a document because it does not meet
its requirements. In such case, the document's state becomes "Pingen Error" and
you will need to manually handle the case, either from the pingen.com backend,
or by changing the document on OpenERP and resolving the error on the Pingen
Document.

When a connection error occurs, the action will be retried on the next scheduler
run.

Dependencies
------------

 * Require the Python library `requests <http://docs.python-requests.org/>`_
 * The PDF files sent to pingen.com have to respect some `formatting rules
   <https://stage-app.pingen.com/resources/pingen_requirements_v1_en.pdf>`_.
 * The address must be in a format accepted by pingen.com: the last line
   is the country in English or German.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_attachment_form ir.attachment.pingen.view ir.attachment page Inherits base.view_attachment_form
view_company_inherit_form res.company.form.inherit res.company page Inherits base.view_company_form
view_pingen_document_form pingen.document.form pingen.document form New
view_pingen_document_search pingen.document.search pingen.document search New
view_pingen_document_tree pingen.document.tree pingen.document tree New
Models touched (3)

New fields (0)

No new fields.

Public methods (2)
  • create(self, cr, uid, vals, context=None)
  • write(self, cr, uid, ids, vals, context=None)

New fields (0)

No new fields.

Public methods (4)
  • ask_pingen_send(self, cr, uid, ids, context=None)
    For a document already pushed to pingen, ask to send it. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • push_to_pingen(self, cr, uid, ids, context=None)
    Push a document to pingen.com Convert errors to osv.except_osv to be handled by the client. Wrapper method for multiple ids (when triggered from button for instance) for public interface.
  • resolve_error(self, cr, uid, ids, context=None)
    A document as resolved, put in the correct state
  • update_post_infos(self, cr, uid, ids, context=None)
    Update the informations from pingen of a document in the Sendcenter Wrapper method for multiple ids (when triggered from button for instance) for public interface.

New fields (0)

No new fields.

Public methods (0)

No public methods.