Switzerland - ISR inpayment slip (PVR/BVR/ESR)

l10n_ch_payment_slip
REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/12.0/l10n_ch_payment_slip
VERSION
VERSION 3.3.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, GitHub, Akim Juillerat, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Iryna Vyshnevska, Iryna Vushnevska
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-switzerland
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-switzerland:
    - l10n_ch_base_bank
    - l10n_ch_fix_isr_reference
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_iban
    - l10n_ch
    - l10n_multilang
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
invoice_form_add_isr_ref account.invoice.form.isr.ref account.invoice xpath Inherits l10n_ch.isr_invoice_form
isr_batch_print_view ISR Batch Print Wizard isr.batch.print.wizard form New
l10n_ch_view_res_partner_bank_from_invoice_slip res.partner_bank.form.l10n_ch res.partner.bank xpath Inherits base.view_partner_bank_form
pay_slip_form pay slip form l10n_ch.payment_slip form New
pay_slip_lsit pay slip lsit l10n_ch.payment_slip tree New
res_config_settings_view_form res.config.settings.view.form.inherit.payment_slip res.config.settings xpath Inherits account.res_config_settings_view_form
Models touched (9)

New fields (4)
  • isr_reference Text
    compute='_compute_full_isr_name' oldname='bvr_reference' store=True string='ISR ref'
  • partner_bank_id Many2one → res.partner.bank
    help='The partner bank account to pay\nKeep empty to use the default' args: 'res.partner.bank', 'Bank Account'
  • reference Char
    copy=False
  • slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='invoice_id' string='Related slip'
Public methods (4)
  • action_invoice_draft(self)
    @api.multi
  • get_payment_move_line(self)
    Return the move line related to current invoice slips :return: recordset of `account.move.line` :rtype: :py:class:`openerp.model.Models`
  • invoice_validate(self)
    @api.multi
    Copy the ISR reference in the transaction_ref of move lines. For customers invoices: the ISR reference is computed using ``get_isr_ref()`` on the invoice or move lines. For suppliers invoices: the ISR reference is stored in the reference field of the invoice.
  • print_isr(self)
    @api.multi

New fields (2)
  • invoice_id Many2one → account.invoice
    index=True oldname='invoice' args: 'account.invoice'
  • payment_slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='move_line_id' readonly=True string='Payment Slips'
Public methods (0)

No public methods.

New fields (1)
  • report_type Selection
    selection_add=[('reportlab-pdf', 'Report renderer')]
Public methods (3)
  • merge_pdf_in_memory(self, docs)
  • merge_pdf_on_disk(self, docs)
  • render_reportlab_pdf(self, res_ids=None, data=None)
    @api.multi

New fields (2)
  • error_message Text
    readonly=True args: 'Errors'
  • invoice_ids Many2many → account.invoice
    comodel_name='account.invoice' string='Invoices'
Public methods (3)
  • check_generatable(self, invoices)
    @api.model
  • default_get(self, fields)
    @api.model
  • print_payment_slips(self)
    @api.multi

New fields (7)
  • a4_pdf Binary
    compute='_compute_a4_report' readonly=True args: 'Slip A4 PDF'
  • amount_total Float
    compute='_compute_amount' args: 'Total amount of ISR'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' readonly=True related='move_line_id.invoice_id' store=True string='Related invoice'
  • move_line_id Many2one → account.move.line
    ondelete='cascade' readonly=True string='Related move' args: 'account.move.line'
  • reference Char
    compute='_compute_ref' index=True store=True args: 'ISR Ref.'
  • scan_line Char
    compute='_compute_scan_line' readonly=True args: 'Scan Line'
  • slip_image Binary
    compute='_compute_payment_slip_image' readonly=True args: 'Slip Image'
Public methods (5)
  • create_slip_from_move_line(self, move_line)
    @api.model
    Generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Record of `account.move.line` :type move_line: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • font_absolute_path(self)
    @api.model
    Will get the ocrb font absolute path :return: path to the font
  • get_comm_partner(self)
    Determine wich partner should be display on the payment slip :return: corresponding `res.partner` record :rtype: :py:class:`openerp.models.Model`
  • get_slip_for_move_line(self, move_line)
    @api.model
    Return pyment slip related to move :param move: `account.move.line` record :type move: :py:class:`openerp.models.Model` :return: payment slip recordset related to move line :rtype: :py:class:`openerp.models.Model`
  • image_absolute_path(self, file_name)
    @api.model
    Will get image absolute path :param file_name: name of image :return: image path :rtype: str

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (13)
  • isr_add_horz Float
    help='Horiz. position in inch for address' oldname='bvr_add_horz' args: 'ISR horiz. position address (inch)'
  • isr_add_vert Float
    help='Vert. position in inch for address' oldname='bvr_add_vert' args: 'ISR vert. position for address (inch)'
  • isr_amount_line_horz Float
    default=0.0 help='Horiz. position in inch for amount line' oldname='bvr_amount_line_horz' args: 'ISR horiz. position for amount line (inch)'
  • isr_amount_line_vert Float
    default=0.0 help='Vert. position in inch for amount line' oldname='bvr_amount_line_vert' args: 'ISR vert. position for amount line (inch)'
  • isr_background Boolean
    oldname='bvr_background' args: 'Insert ISR background ?'
  • isr_delta_horz Float
    help='horiz. delta in inch 1.2 will print the ISR 1.2 inch on the left, negative value is possible' oldname='bvr_delta_horz' args: 'ISR Horz. Delta (inch)'
  • isr_delta_vert Float
    help='vert. delta in inch 1.2 will print the ISR 1.2 inch lower, negative value is possible' oldname='bvr_delta_vert' args: 'ISR Vert. Delta (inch)'
  • isr_header_partner_address Boolean
    default=False help='Enabling this will print partner address top-right on the page header' oldname='bvr_header_partner_address' args: 'Header partner address'
  • isr_scan_line_font_size Integer
    oldname='bvr_scan_line_font_size' args: 'ISR scan line font size (pt)'
  • isr_scan_line_horz Float
    help='Horiz. position in inch for scan line' oldname='bvr_scan_line_horz' args: 'ISR horiz. position for scan line(inch)'
  • isr_scan_line_letter_spacing Float
    oldname='bvr_scan_line_letter_spacing' args: 'ISR scan line letter spacing'
  • isr_scan_line_vert Float
    help='Vert. position in inch for scan line' oldname='bvr_scan_line_vert' args: 'ISR vert. position for scan line (inch)'
  • merge_mode Selection
    default='in_memory' required=True string='Payment Slips Merge Mode' args: [('in_memory', 'Merge Slips in Memory, faster but can exhaust memory'), ('on_disk', 'Merge Slips on Disk, slower but safer')]
Public methods (0)

No public methods.

New fields (13)
  • isr_add_horz Float
    readonly=False related='company_id.isr_add_horz'
  • isr_add_vert Float
    readonly=False related='company_id.isr_add_vert'
  • isr_amount_line_horz Float
    readonly=False related='company_id.isr_amount_line_horz'
  • isr_amount_line_vert Float
    readonly=False related='company_id.isr_amount_line_vert'
  • isr_background Boolean
    readonly=False related='company_id.isr_background'
  • isr_delta_horz Float
    readonly=False related='company_id.isr_delta_horz'
  • isr_delta_vert Float
    readonly=False related='company_id.isr_delta_vert'
  • isr_header_partner_address Boolean
    readonly=False related='company_id.isr_header_partner_address'
  • isr_scan_line_font_size Integer
    readonly=False related='company_id.isr_scan_line_font_size'
  • isr_scan_line_horz Float
    readonly=False related='company_id.isr_scan_line_horz'
  • isr_scan_line_letter_spacing Float
    readonly=False related='company_id.isr_scan_line_letter_spacing'
  • isr_scan_line_vert Float
    readonly=False related='company_id.isr_scan_line_vert'
  • merge_mode Selection
    readonly=False related='company_id.merge_mode'
Public methods (0)

No public methods.

New fields (4)
  • l10n_ch_isrb_id_number Char
    help='ISR-B Customer ID number for ISR. Used only when generating ISR reference through a bank. This will prefix your references. It is not necessary for standard ISR from Postfinance. e.g. 999999' args: 'ISR-B Internal ID'
  • print_account Boolean
    args: 'Print Account Number on ISR'
  • print_bank Boolean
    args: 'Print Bank on ISR'
  • print_partner Boolean
    args: 'Print Partner Address on ISR'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/11.0/l10n_ch_payment_slip
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Romain Deheele, Guewen Baconnier, Lorenzo Battistini, Alexandre Fayolle, Paulius Sladkevičius, Joel Grand-Guillaume, eLBati, Pedro M. Baeza, Nicolas Bessi, GitHub, Paul Catinean, Akim Juillerat, Stéphane Bidoul (ACSONE), Patrick Tombez, unknown, Alex Comba, Vincent Renaville, Nicolas Bessi (nbessi), OCA Transbot, vrenaville, Launchpad Translations on behalf of camptocamp, Thomas Winteler, oca-travis, Weblate, OCA-git-bot, dcoopennet, Iryna Vyshnevska, robin.keunen
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-reconcile:
    - base_transaction_id
OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
OCA/l10n-switzerland:
    - l10n_ch_base_bank
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
    - account_invoicing
    - base_iban
    - sale
    - sales_team
    - l10n_ch
    - l10n_multilang
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
invoice_form_add_isr_ref account.invoice.form.isr.ref account.invoice xpath Inherits account.invoice_form
isr_batch_print_view ISR Batch Print Wizard isr.batch.print.wizard form New
l10n_ch_view_res_partner_bank_from_invoice_slip res.partner_bank.form.l10n_ch res.partner.bank xpath Inherits base.view_partner_bank_form
pay_slip_form pay slip form l10n_ch.payment_slip form New
pay_slip_lsit pay slip lsit l10n_ch.payment_slip tree New
res_config_settings_view_form res.config.settings.view.form.inherit.payment_slip res.config.settings xpath Inherits account.res_config_settings_view_form
Models touched (9)

New fields (4)
  • isr_reference Text
    compute='_compute_full_isr_name' oldname='bvr_reference' store=True string='ISR ref'
  • partner_bank_id Many2one → res.partner.bank
    help='The partner bank account to pay\nKeep empty to use the default' args: 'res.partner.bank', 'Bank Account'
  • reference Char
    copy=False
  • slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='invoice_id' string='Related slip'
Public methods (4)
  • action_invoice_draft(self)
    @api.multi
  • get_payment_move_line(self)
    Return the move line related to current invoice slips :return: recordset of `account.move.line` :rtype: :py:class:`openerp.model.Models`
  • invoice_validate(self)
    @api.multi
    Copy the ISR reference in the transaction_ref of move lines. For customers invoices: the ISR reference is computed using ``get_isr_ref()`` on the invoice or move lines. For suppliers invoices: the ISR reference is stored in the reference field of the invoice.
  • print_isr(self)
    @api.multi

New fields (2)
  • invoice_id Many2one → account.invoice
    index=True oldname='invoice' args: 'account.invoice'
  • payment_slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='move_line_id' readonly=True string='Payment Slips'
Public methods (0)

No public methods.

New fields (1)
  • report_type Selection
    selection_add=[('reportlab-pdf', 'Report renderer')]
Public methods (3)
  • merge_pdf_in_memory(self, docs)
  • merge_pdf_on_disk(self, docs)
  • render_reportlab_pdf(self, res_ids=None, data=None)
    @api.multi

New fields (2)
  • error_message Text
    readonly=True args: 'Errors'
  • invoice_ids Many2many → account.invoice
    comodel_name='account.invoice' string='Invoices'
Public methods (3)
  • check_generatable(self, invoices)
    @api.model
  • default_get(self, fields)
    @api.model
  • print_payment_slips(self)
    @api.multi

New fields (7)
  • a4_pdf Binary
    compute='_compute_a4_report' readonly=True args: 'Slip A4 PDF'
  • amount_total Float
    compute='_compute_amount' args: 'Total amount of ISR'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' readonly=True related='move_line_id.invoice_id' store=True string='Related invoice'
  • move_line_id Many2one → account.move.line
    ondelete='cascade' readonly=True string='Related move' args: 'account.move.line'
  • reference Char
    compute='_compute_ref' index=True store=True args: 'ISR Ref.'
  • scan_line Char
    compute='_compute_scan_line' readonly=True args: 'Scan Line'
  • slip_image Binary
    compute='_compute_payment_slip_image' readonly=True args: 'Slip Image'
Public methods (5)
  • create_slip_from_move_line(self, move_line)
    @api.model
    Generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Record of `account.move.line` :type move_line: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • font_absolute_path(self)
    @api.model
    Will get the ocrb font absolute path :return: path to the font
  • get_comm_partner(self)
    Determine wich partner should be display on the payment slip :return: corresponding `res.partner` record :rtype: :py:class:`openerp.models.Model`
  • get_slip_for_move_line(self, move_line)
    @api.model
    Return pyment slip related to move :param move: `account.move.line` record :type move: :py:class:`openerp.models.Model` :return: payment slip recordset related to move line :rtype: :py:class:`openerp.models.Model`
  • image_absolute_path(self, file_name)
    @api.model
    Will get image absolute path :param file_name: name of image :return: image path :rtype: str

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (13)
  • isr_add_horz Float
    help='Horiz. position in inch for address' oldname='bvr_add_horz' args: 'ISR horiz. position address (inch)'
  • isr_add_vert Float
    help='Vert. position in inch for address' oldname='bvr_add_vert' args: 'ISR vert. position for address (inch)'
  • isr_amount_line_horz Float
    default=0.0 help='Horiz. position in inch for amount line' oldname='bvr_amount_line_horz' args: 'ISR horiz. position for amount line (inch)'
  • isr_amount_line_vert Float
    default=0.0 help='Vert. position in inch for amount line' oldname='bvr_amount_line_vert' args: 'ISR vert. position for amount line (inch)'
  • isr_background Boolean
    oldname='bvr_background' args: 'Insert ISR background ?'
  • isr_delta_horz Float
    help='horiz. delta in inch 1.2 will print the ISR 1.2 inch on the left, negative value is possible' oldname='bvr_delta_horz' args: 'ISR Horz. Delta (inch)'
  • isr_delta_vert Float
    help='vert. delta in inch 1.2 will print the ISR 1.2 inch lower, negative value is possible' oldname='bvr_delta_vert' args: 'ISR Vert. Delta (inch)'
  • isr_header_partner_address Boolean
    default=False help='Enabling this will print partner address top-right on the page header' oldname='bvr_header_partner_address' args: 'Header partner address'
  • isr_scan_line_font_size Integer
    oldname='bvr_scan_line_font_size' args: 'ISR scan line font size (pt)'
  • isr_scan_line_horz Float
    help='Horiz. position in inch for scan line' oldname='bvr_scan_line_horz' args: 'ISR horiz. position for scan line(inch)'
  • isr_scan_line_letter_spacing Float
    oldname='bvr_scan_line_letter_spacing' args: 'ISR scan line letter spacing'
  • isr_scan_line_vert Float
    help='Vert. position in inch for scan line' oldname='bvr_scan_line_vert' args: 'ISR vert. position for scan line (inch)'
  • merge_mode Selection
    default='in_memory' required=True string='Payment Slips Merge Mode' args: [('in_memory', 'Merge Slips in Memory, faster but can exhaust memory'), ('on_disk', 'Merge Slips on Disk, slower but safer')]
Public methods (0)

No public methods.

New fields (13)
  • isr_add_horz Float
    related='company_id.isr_add_horz'
  • isr_add_vert Float
    related='company_id.isr_add_vert'
  • isr_amount_line_horz Float
    related='company_id.isr_amount_line_horz'
  • isr_amount_line_vert Float
    related='company_id.isr_amount_line_vert'
  • isr_background Boolean
    related='company_id.isr_background'
  • isr_delta_horz Float
    related='company_id.isr_delta_horz'
  • isr_delta_vert Float
    related='company_id.isr_delta_vert'
  • isr_header_partner_address Boolean
    related='company_id.isr_header_partner_address'
  • isr_scan_line_font_size Integer
    related='company_id.isr_scan_line_font_size'
  • isr_scan_line_horz Float
    related='company_id.isr_scan_line_horz'
  • isr_scan_line_letter_spacing Float
    related='company_id.isr_scan_line_letter_spacing'
  • isr_scan_line_vert Float
    related='company_id.isr_scan_line_vert'
  • merge_mode Selection
    related='company_id.merge_mode'
Public methods (0)

No public methods.

New fields (3)
  • print_account Boolean
    args: 'Print Account Number on ISR'
  • print_bank Boolean
    args: 'Print Bank on ISR'
  • print_partner Boolean
    args: 'Print Partner Address on ISR'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/10.0/l10n_ch_payment_slip
VERSION
VERSION 1.1.6
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Pedro M. Baeza, GitHub, Akim Juillerat, Stéphane Bidoul (ACSONE), OCA Transbot, vrenaville, Emanuel Cino, mdietrichc2c, oca-travis, Weblate, OCA-git-bot, Simone Orsi
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-reconcile:
    - base_transaction_id
OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
OCA/l10n-switzerland:
    - l10n_ch_base_bank
odoo/odoo:
    - base
    - account
    - base_setup
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
    - base_iban
    - sale
    - sales_team
    - procurement
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
bvr_batch_print_view BVR Batch Print Wizard bvr.batch.print.wizard form New
company_form_view res.company.form.inherit.bvr res.company xpath Inherits base.view_company_form
invoice_form_add_bvr_ref account.invoice.form.bvr.ref account.invoice xpath Inherits account.invoice_form
l10n_ch_view_res_partner_bank_from_invoice_slip res.partner_bank.form.l10n_ch res.partner.bank xpath Inherits base.view_partner_bank_form
pay_slip_form pay slip form l10n_ch.payment_slip form New
pay_slip_lsit pay slip lsit l10n_ch.payment_slip tree New
v11_import_view V11 (BVR/ESR) Import Wizard v11.import.wizard form New
view_bank_statement_form account.bank.statement.form.inherit account.bank.statement div Inherits account.view_bank_statement_form
Models touched (9)

New fields (4)
  • bvr_reference Text
    compute='_compute_full_bvr_name' store=True string='BVR ref'
  • partner_bank_id Many2one → res.partner.bank
    help='The partner bank account to pay\nKeep empty to use the default' args: 'res.partner.bank', 'Bank Account'
  • reference Char
    copy=False
  • slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='invoice_id' string='Related slip'
Public methods (4)
  • action_invoice_draft(self)
    @api.multi
  • get_payment_move_line(self)
    Return the move line related to current invoice slips :return: recordset of `account.move.line` :rtype: :py:class:`openerp.model.Models`
  • invoice_validate(self)
    @api.multi
    Copy the BVR/ESR reference in the transaction_ref of move lines. For customers invoices: the BVR reference is computed using ``get_bvr_ref()`` on the invoice or move lines. For suppliers invoices: the BVR reference is stored in the reference field of the invoice.
  • print_bvr(self)
    @api.multi

New fields (2)
  • invoice_id Many2one → account.invoice
    index=True oldname='invoice' args: 'account.invoice'
  • payment_slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='move_line_id' readonly=True string='Payment Slips'
Public methods (0)

No public methods.

New fields (1)
  • report_type Selection
    selection_add=[('reportlab-pdf', 'Report renderer')]
Public methods (1)
  • render_report(self, res_ids, name, data)
    @api.multi
    Override to work with real pdf in testing and not html as we use reportlab as renderer

New fields (7)
  • a4_pdf Binary
    compute='_compute_a4_report' readonly=True args: 'Slip A4 PDF'
  • amount_total Float
    compute='_compute_amount' args: 'Total amount of BVR/ESR'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' readonly=True related='move_line_id.invoice_id' store=True string='Related invoice'
  • move_line_id Many2one → account.move.line
    ondelete='cascade' readonly=True string='Related move' args: 'account.move.line'
  • reference Char
    compute='_compute_ref' index=True store=True args: 'BVR/ESR Ref.'
  • scan_line Char
    compute='_compute_scan_line' readonly=True args: 'Scan Line'
  • slip_image Binary
    compute='_compute_payment_slip_image' readonly=True args: 'Slip Image'
Public methods (5)
  • create_slip_from_move_line(self, move_line)
    @api.model
    Generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Record of `account.move.line` :type move_line: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • font_absolute_path(self)
    @api.model
    Will get the ocrb font absolute path :return: path to the font
  • get_comm_partner(self)
    Determine wich partner should be display on the payment slip :return: corresponding `res.partner` record :rtype: :py:class:`openerp.models.Model`
  • get_slip_for_move_line(self, move_line)
    @api.model
    Return pyment slip related to move :param move: `account.move.line` record :type move: :py:class:`openerp.models.Model` :return: payment slip recordset related to move line :rtype: :py:class:`openerp.models.Model`
  • image_absolute_path(self, file_name)
    @api.model
    Will get image absolute path :param file_name: name of image :return: image path :rtype: str

New fields (0)

No new fields.

Public methods (3)
  • get_pdf(self, docids, report_name, html=None, data=None)
    @api.multi
  • merge_pdf_in_memory(self, docs)
  • merge_pdf_on_disk(self, docs)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (13)
  • bvr_add_horz Float
    help='Horiz. position in inch for address' args: 'BVR horiz. position address (inch)'
  • bvr_add_vert Float
    help='Vert. position in inch for address' args: 'BVR vert. position for address (inch)'
  • bvr_amount_line_horz Float
    default=0.0 help='Horiz. position in inch for amount line' args: 'BVR horiz. position for amount line (inch)'
  • bvr_amount_line_vert Float
    default=0.0 help='Vert. position in inch for amount line' args: 'BVR vert. position for amount line (inch)'
  • bvr_background Boolean
    args: 'Insert BVR background ?'
  • bvr_delta_horz Float
    help='horiz. delta in inch 1.2 will print the bvr 1.2 inch lefter, negative value is possible' args: 'BVR Horz. Delta (inch)'
  • bvr_delta_vert Float
    help='vert. delta in inch 1.2 will print the bvr 1.2 inch lower, negative value is possible' args: 'BVR Vert. Delta (inch)'
  • bvr_header_partner_address Boolean
    default=False help='Enabling this will print partner address top-right on the page header' args: 'Header partner address'
  • bvr_scan_line_font_size Integer
    args: 'BVR scan line font size (pt)'
  • bvr_scan_line_horz Float
    help='Horiz. position in inch for scan line' args: 'BVR horiz. position for scan line(inch)'
  • bvr_scan_line_letter_spacing Float
    args: 'BVR scan line letter spacing'
  • bvr_scan_line_vert Float
    help='Vert. position in inch for scan line' args: 'BVR vert. position for scan line (inch)'
  • merge_mode Selection
    default='in_memory' required=True string='Payment Slips Merge Mode' args: [('in_memory', 'Merge Slips in Memory, faster but can exhaust memory'), ('on_disk', 'Merge Slips on Disk, slower but safer')]
Public methods (0)

No public methods.

New fields (3)
  • print_account Boolean
    args: 'Print Account Number on BVR'
  • print_bank Boolean
    args: 'Print Bank on BVR'
  • print_partner Boolean
    args: 'Print Partner Address on BVR'
Public methods (0)

No public methods.

New fields (3)
  • total_amount Float
    args: 'Total amount of V11'
  • total_cost Float
    args: 'Total cost of V11'
  • v11file Binary
    args: 'V11 File'
Public methods (1)
  • import_v11(self)
    @api.multi
    Import v11 file and transfor it into statement lines :returns: action dict :rtype: dict
REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/9.0/l10n_ch_payment_slip
VERSION
VERSION 2.2.1
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Guewen Baconnier, Matthieu Dietrich, Pedro M. Baeza, GitHub, Akim Juillerat, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, dcoopennet, Louis Bettens
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-reconcile:
    - base_transaction_id
OCA/bank-payment:
    - account_payment_partner
    - account_payment_mode
OCA/l10n-switzerland:
    - l10n_ch_base_bank
odoo/odoo:
    - base
    - account
    - base_setup
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
    - base_iban
    - sale
    - sales_team
    - procurement
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
company_form_view res.company.form.inherit.bvr res.company xpath Inherits base.view_company_form
invoice_form_add_bvr_ref account.invoice.form.bvr.ref account.invoice xpath Inherits account.invoice_form
l10n_ch_view_res_partner_bank_from_invoice_slip res.partner_bank.form.l10n_ch res.partner.bank xpath Inherits base.view_partner_bank_form
pay_slip_form pay slip form l10n_ch.payment_slip form New
pay_slip_lsit pay slip lsit l10n_ch.payment_slip tree New
v11_import_view V11 (BVR/ESR) Import Wizard v11.import.wizard form New
view_bank_statement_form account.bank.statement.form.inherit account.bank.statement div Inherits account.view_bank_statement_form
Models touched (10)

New fields (4)
  • bvr_reference Text
    compute='_compute_full_bvr_name' store=True string='BVR ref'
  • partner_bank_id Many2one → res.partner.bank
    help='The partner bank account to pay\nKeep empty to use the default' args: 'res.partner.bank', 'Bank Account'
  • reference Char
    copy=False
  • slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='invoice_id' string='Related slip'
Public methods (3)
  • get_payment_move_line(self)
    Return the move line related to current invoice slips :return: recordset of `account.move.line` :rtype: :py:class:`openerp.model.Models`
  • invoice_validate(self)
    @api.multi
    Copy the BVR/ESR reference in the transaction_ref of move lines. For customers invoices: the BVR reference is computed using ``get_bvr_ref()`` on the invoice or move lines. For suppliers invoices: the BVR reference is stored in the reference field of the invoice.
  • print_bvr(self)
    @api.multi

New fields (2)
  • invoice_id Many2one → account.invoice
    index=True oldname='invoice' args: 'account.invoice'
  • payment_slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='move_line_id' readonly=True string='Payment Slips'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • render_report(self, cr, uid, res_ids, name, data, context=None)
    Override to work with real pdf in testing and not html as we use reportlab as renderer

New fields (7)
  • a4_pdf Binary
    compute='draw_a4_report' readonly=True args: 'Slip A4 PDF'
  • amount_total Float
    compute='compute_amount' args: 'Total amount of BVR/ESR'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' readonly=True related='move_line_id.invoice_id' store=True string='Related invoice'
  • move_line_id Many2one → account.move.line
    ondelete='cascade' readonly=True string='Related move' args: 'account.move.line'
  • reference Char
    compute='compute_ref' index=True store=True args: 'BVR/ESR Ref.'
  • scan_line Char
    compute='compute_scan_line' readonly=True args: 'Scan Line'
  • slip_image Binary
    compute='draw_payment_slip_image' readonly=True args: 'Slip Image'
Public methods (12)
  • compute_amount(self)
    @api.depends('move_line_id', 'move_line_id.debit', 'move_line_id.credit')
    Return the total amount of payment slip If you need to override please use :py:meth:`_compute_amount_hook` :return: total amount of payment slip :rtype: float
  • compute_pay_slips_from_invoices(self, invoices)
    @api.model
    Generate ```l10n_ch.payment_slip``` from ```account.invoice``` recordset :param move_lines: Recordset of `account.invoice` :type move_lines: :py:class:`openerp.models.Model`
  • compute_pay_slips_from_move_lines(self, move_lines)
    @api.model
    Get or generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Recordset of `account.move.line` :type move_lines: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • compute_ref(self)
    @api.depends('move_line_id', 'move_line_id.invoice_id.number')
    Retrieve ESR/BVR reference from move line in order to print it Returns False when no BVR reference should be generated. No reference is generated when a transaction reference already exists for the line (likely been generated by a payment service).
  • compute_scan_line(self)
    @api.depends('amount_total', 'reference', 'move_line_id', 'move_line_id.debit', 'move_line_id.credit')
    Compute the payment slip scan line to be used by scanners :return: scan line :rtype: str
  • create_slip_from_move_line(self, move_line)
    @api.model
    Generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Record of `account.move.line` :type move_line: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • draw_a4_report(self)
    Draw an a4 format slip in PDF
  • draw_payment_slip_image(self)
    Draw an us letter format slip in PNG
  • font_absolute_path(self)
    @api.model
    Will get the ocrb font absolute path :return: path to the font
  • get_comm_partner(self)
    Determine wich partner should be display on the payment slip :return: corresponding `res.partner` record :rtype: :py:class:`openerp.models.Model`
  • get_slip_for_move_line(self, move_line)
    @api.model
    Return pyment slip related to move :param move: `account.move.line` record :type move: :py:class:`openerp.models.Model` :return: payment slip recordset related to move line :rtype: :py:class:`openerp.models.Model`
  • image_absolute_path(self, file_name)
    @api.model
    Will get image absolute path :param file_name: name of image :return: image path :rtype: str

New fields (0)

No new fields.

Public methods (2)
  • get_pdf(self, cr, uid, ids, report_name, html=None, data=None, context=None)
    @api.v7
  • get_pdf(self, records, report_name, html=None, data=None)
    @api.v8

New fields (0)

No new fields.

Public methods (2)
  • merge_pdf_in_memory(self, docs)
  • merge_pdf_on_disk(self, docs)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (12)
  • bvr_add_horz Float
    help='Horiz. position in inch for address' args: 'BVR horiz. position address (inch)'
  • bvr_add_vert Float
    help='Vert. position in inch for address' args: 'BVR vert. position for address (inch)'
  • bvr_amount_line_horz Float
    default=0.0 help='Horiz. position in inch for amount line' args: 'BVR horiz. position for amount line (inch)'
  • bvr_amount_line_vert Float
    default=0.0 help='Vert. position in inch for amount line' args: 'BVR vert. position for amount line (inch)'
  • bvr_background Boolean
    args: 'Insert BVR background ?'
  • bvr_delta_horz Float
    help='horiz. delta in inch 1.2 will print the bvr 1.2 inch lefter, negative value is possible' args: 'BVR Horz. Delta (inch)'
  • bvr_delta_vert Float
    help='vert. delta in inch 1.2 will print the bvr 1.2 inch lower, negative value is possible' args: 'BVR Vert. Delta (inch)'
  • bvr_scan_line_font_size Integer
    args: 'BVR scan line font size (pt)'
  • bvr_scan_line_horz Float
    help='Horiz. position in inch for scan line' args: 'BVR horiz. position for scan line(inch)'
  • bvr_scan_line_letter_spacing Float
    args: 'BVR scan line letter spacing'
  • bvr_scan_line_vert Float
    help='Vert. position in inch for scan line' args: 'BVR vert. position for scan line (inch)'
  • merge_mode Selection
    default='in_memory' required=True string='Payment Slips Merge Mode' args: [('in_memory', 'Merge Slips in Memory, faster but can exhaust memory'), ('on_disk', 'Merge Slips on Disk, slower but safer')]
Public methods (0)

No public methods.

New fields (3)
  • print_account Boolean
    args: 'Print Account Number on BVR'
  • print_bank Boolean
    args: 'Print Bank on BVR'
  • print_partner Boolean
    args: 'Print Partner Address on BVR'
Public methods (0)

No public methods.

New fields (3)
  • total_amount Float
    args: 'Total amount of V11'
  • total_cost Float
    args: 'Total cost of V11'
  • v11file Binary
    args: 'V11 File'
Public methods (1)
  • import_v11(self)
    @api.multi
    Import v11 file and transfor it into statement lines :returns: action dict :rtype: dict
REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/8.0/l10n_ch_payment_slip
VERSION
VERSION 3.0.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Guewen Baconnier, Lorenzo Battistini, Alexandre Fayolle, Paulius Sladkevičius, eLBati, Nicolas Bessi, Paul Catinean, Stéphane Bidoul (ACSONE), Alex Comba, Nicolas Bessi (nbessi), OCA Transbot, vrenaville, OCA-git-bot, SimoRubi
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:28
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-reconcile:
    - base_transaction_id
OCA/l10n-switzerland:
    - l10n_ch_base_bank
odoo/odoo:
    - base
    - account
    - base_setup
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
    - account_payment
    - account_voucher
    - stock_account
    - stock
    - procurement
    - web_kanban_gauge
    - web_kanban_sparkline
    - sale_stock
    - sale
    - sales_team
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
company_form_view res.company.form.inherit.bvr res.company xpath Inherits base.view_company_form
invoice_form_add_bvr_ref account.invoice.supplier.form.bvr.ref account.invoice field Inherits account.invoice_form
l10nch_view_res_partner_bank_from_invoice_slip res.partner_bank.form.l10n_ch res.partner.bank group Inherits base.view_partner_bank_form
pay_slip_form pay slip form l10n_ch.payment_slip form New
pay_slip_lsit pay slip lsit l10n_ch.payment_slip tree New
v11_import_view V11 (BVR/ESR) Import Wizard v11.import.wizard form New
view_bank_statement_form account.bank.statement.form.inherit account.bank.statement div Inherits account.view_bank_statement_form
Models touched (11)

New fields (5)
  • bvr_reference Text
    compute='_compute_full_bvr_name' store=True string='BVR ref'
  • partner_bank_id Many2one → res.partner.bank
    help='The partner bank account to pay\nKeep empty to use the default' args: 'res.partner.bank', 'Bank Account'
  • reference Char
    copy=False
  • reference_type Selection
    required=True string='Reference Type' args: _get_reference_type
  • slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='invoice_id' string='Related slip'
Public methods (2)
  • action_number(self)
    @api.multi
    Copy the BVR/ESR reference in the transaction_ref of move lines. For customers invoices: the BVR reference is computed using ``get_bvr_ref()`` on the invoice or move lines. For suppliers invoices: the BVR reference is stored in the reference field of the invoice.
  • get_payment_move_line(self)
    Return the move line related to current invoice slips :return: recordset of `account.move.line` :rtype: :py:class:`openerp.model.Models`

New fields (2)
  • payment_slip_ids One2many → l10n_ch.payment_slip
    comodel_name='l10n_ch.payment_slip' inverse_name='move_line_id' readonly=True string='Payment Slips'
  • transaction_ref Char
    args: 'Transaction Ref.'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • render_report(self, cr, uid, res_ids, name, data, context=None)
    Override to work with real pdf in testing and not html as we use reportlab as renderer

New fields (7)
  • a4_pdf Binary
    compute='_compute_a4_report' readonly=True args: 'Slip A4 PDF'
  • amount_total Float
    compute='_compute_amount' args: 'Total amount of BVR/ESR'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' readonly=True related='move_line_id.invoice' store=True string='Related invoice'
  • move_line_id Many2one → account.move.line
    ondelete='cascade' readonly=True string='Related move' args: 'account.move.line'
  • reference Char
    compute='_compute_ref' index=True store=True args: 'BVR/ESR Ref.'
  • scan_line Char
    compute='_compute_scan_line' readonly=True args: 'Scan Line'
  • slip_image Binary
    compute='_compute_payment_slip_image' readonly=True args: 'Slip Image'
Public methods (7)
  • compute_pay_slips_from_invoices(self, invoices)
    @api.model
    Generate ```l10n_ch.payment_slip``` from ```account.invoice``` recordset :param move_lines: Recordset of `account.invoice` :type move_lines: :py:class:`openerp.models.Model`
  • compute_pay_slips_from_move_lines(self, move_lines)
    @api.model
    Get or generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Recordset of `account.move.line` :type move_lines: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • create_slip_from_move_line(self, move_line)
    @api.model
    Generate `l10n_ch.payment_slip` from `account.move.line` recordset :param move_lines: Record of `account.move.line` :type move_line: :py:class:`openerp.models.Model` :return: Recordset of `l10n_ch.payment_slip` :rtype: :py:class:`openerp.models.Model`
  • font_absolute_path(self)
    @api.model
    Will get the ocrb font absolute path :return: path to the font
  • get_comm_partner(self)
    Determine wich partner should be display on the payment slip :return: corresponding `res.partner` record :rtype: :py:class:`openerp.models.Model`
  • get_slip_for_move_line(self, move_line)
    @api.model
    Return pyment slip related to move :param move: `account.move.line` record :type move: :py:class:`openerp.models.Model` :return: payment slip recordset related to move line :rtype: :py:class:`openerp.models.Model`
  • image_absolute_path(self, file_name)
    @api.model
    Will get image absolute path :param file_name: name of image :return: image path :rtype: str

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals)
    @api.model@api.returns('self', <expr>)
    In case of BVR we will search the transaction ref instead of ref for communication field

New fields (0)

No new fields.

Public methods (2)
  • get_pdf(self, cr, uid, ids, report_name, html=None, data=None, context=None)
    @api.v7
  • get_pdf(self, records, report_name, html=None, data=None)
    @api.v8

New fields (0)

No new fields.

Public methods (2)
  • merge_pdf_in_memory(self, docs)
  • merge_pdf_on_disk(self, docs)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (12)
  • bvr_add_horz Float
    help='Horiz. position in inch for address' args: 'BVR horiz. position address (inch)'
  • bvr_add_vert Float
    help='Vert. position in inch for address' args: 'BVR vert. position for address (inch)'
  • bvr_amount_line_horz Float
    default=0.0 help='Horiz. position in inch for amount line' args: 'BVR horiz. position for amount line (inch)'
  • bvr_amount_line_vert Float
    default=0.0 help='Vert. position in inch for amount line' args: 'BVR vert. position for amount line (inch)'
  • bvr_background Boolean
    args: 'Insert BVR background ?'
  • bvr_delta_horz Float
    help='horiz. delta in inch 1.2 will print the bvr 1.2 inch lefter, negative value is possible' args: 'BVR Horz. Delta (inch)'
  • bvr_delta_vert Float
    help='vert. delta in inch 1.2 will print the bvr 1.2 inch lower, negative value is possible' args: 'BVR Vert. Delta (inch)'
  • bvr_scan_line_font_size Integer
    args: 'BVR scan line font size (pt)'
  • bvr_scan_line_horz Float
    help='Horiz. position in inch for scan line' args: 'BVR horiz. position for scan line(inch)'
  • bvr_scan_line_letter_spacing Float
    args: 'BVR scan line letter spacing'
  • bvr_scan_line_vert Float
    help='Vert. position in inch for scan line' args: 'BVR vert. position for scan line (inch)'
  • merge_mode Selection
    default='in_memory' required=True string='Payment Slips Merge Mode' args: [('in_memory', 'Merge Slips in Memory, faster but can exhaust memory'), ('on_disk', 'Merge Slips on Disk, slower but safer')]
Public methods (0)

No public methods.

New fields (3)
  • print_account Boolean
    args: 'Print Account Number on BVR'
  • print_bank Boolean
    args: 'Print Bank on BVR'
  • print_partner Boolean
    args: 'Print Partner Address on BVR'
Public methods (0)

No public methods.

New fields (3)
  • total_amount Float
    args: 'Total amount of V11'
  • total_cost Float
    args: 'Total cost of V11'
  • v11file Binary
    args: 'V11 File'
Public methods (1)
  • import_v11(self)
    @api.multi
    Import v11 file and transfor it into statement lines :returns: action dict :rtype: dict
REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/7.0/l10n_ch_payment_slip
VERSION
VERSION 1.2
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSYannick Vaucher, Romain Deheele, Guewen Baconnier, Alexandre Fayolle, Matthieu Dietrich, Joel Grand-Guillaume, Nicolas Bessi, unknown, Vincent Renaville, OCA Transbot, moylop260, Cyril Sester, Launchpad Translations on behalf of camptocamp, Michael Volz, Hervé Martinet, Thomas Winteler
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-switzerland:
    - l10n_ch_base_bank
odoo/odoo:
    - base
    - report_webkit
    - account
    - base_setup
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Swiss Payment slip known as ESR/BVR
===================================

This addon allows you to print the ESR/BVR report. As the reports are made
with webkit report system, you'll need the wkhtmltopdf lirary installed on
your system (http://wkhtmltopdf.org/).

Be sure to have the proper version (32 or 64 bit) installed and in
your system path or define the path in

    "Settings -> Technical -> Parameters -> System Parameters -> webkit_path".

You can adjust the print out of ESR/BVR, which depend on each printer,
for every company in the "BVR Data" tab.
This is especialy useful when using pre-printed paper.
An option also allow you to print the ESR/BVR in background when using
white paper.

This module will also allows you to reconcile from V11 files provided
by financial institutes.

To do so, use the wizard provided in bank statement.

If voucher is installed importing V11 files will generate a voucher
if possible in statement lines.

This module also adds transaction_ref field on entries in order to manage
reconciliation in multi payment context (unique reference needed on
account.move.line). Many BVR can now be printed from on invoice for each
payment terms.

In the future, this field may be removed from this addon
but will remain in the data model via new banking addons dependence.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
bvr_import_view BVR Import Wizard bvr.import.wizard form New
company_form_view res.company.form.inherit.bvr res.company xpath Inherits base.view_company_form
invoice_form_add_bvr_ref account.invoice.supplier.form.bvr.ref account.invoice field Inherits account.invoice_form
l10nch_view_res_partner_bank_from_invoice_slip res.partner_bank.form.l10n_ch res.partner.bank group Inherits base.view_partner_bank_form
view_bank_statement_form account.bank.statement.form.inherit account.bank.statement div Inherits account.view_bank_statement_form
Models touched (7)

New fields (0)

No new fields.

Public methods (2)
  • action_number(self, cr, uid, ids, context=None)
    Copy the BVR/ESR reference in the transaction_ref of move lines. For customers invoices: the BVR reference is computed using ``get_bvr_ref()`` on the invoice or move lines. For suppliers invoices: the BVR reference is stored in the reference field of the invoice.
  • copy(self, cr, uid, inv_id, default=None, context=None)

New fields (0)

No new fields.

Public methods (1)
  • get_bvr_ref(self, cr, uid, move_line_id, context=None)
    Retrieve ESR/BVR reference from move line in order to print it Returns False when no BVR reference should be generated. No reference is generated when a transaction reference already exists for the line (likely been generated by a payment service).

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • import_bvr(self, cursor, uid, ids, context=None)
  • import_v11(self, cursor, uid, ids, data, context=None)
    Import v11 file and transfor it into statement lines

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.