Odoo
Cyllo

# Generate Barcodes (Abstract)

This module extends Cyllo functionality, allowing user to generate barcode depending on a given barcode rule for any Model.

For example, if the barcode pattern is “20…..{NNNDD}”:

- the EAN13 code will begin with ‘20’,
- followed by 5 digits (named Barcode Base in this module),
- followed by 5 others digits to define the variable price with 2 decimals,
- the last digit (the 13rd digit) is the control digit (i.e. the checksum).

This module is an abstract module. You can configure Barcode Rule, but to enable this feature, you need to install an extra module for a given model. This repository provide ‘barcodes_generator_product’ and ‘barcodes_generator_partner’ module to generate barcode for product or partner model. Alternatively, you can develop a custom module for a custom model. See ‘Inheritance’ parts. If you want to generate barcode for another model, you can create a custom module that depend on ‘barcodes_generator_abstract’ and inherit your model like that: class MyModel(models.Model):

                            class MyModel(models.Model):
        _name = 'my.model'
        _inherit = ['my.model', 'barcode.generate.mixin']

    class barcode_rule(models.Model):
        _inherit = 'barcode.rule'

        generate_model = fields.Selection(selection_add=[('my.model', 'My Model')])

With this module, it is possible to:

- Affect a pattern (barcode.rule) to a model
- Define a Barcode base:
    - manually, if the base of the barcode must be set by a user (typically an internal code defined in your company).
    - automatically by a sequence, if you want to let Cyllo increment a sequence (typical case of a customer number incrementation).
- Generate a barcode, based on the defined pattern and the barcode base

##### Easy To Configure

This module very easy to configure. We can set barcode for different models

##### Easy To Generate
Barcode

This module helps to generate the barcode. We can generate barcode manually or automated

##### Configuration

To configure this module, you need to:

- Go to Settings / Technical / Sequences & Identifiers / Barcode Nomenclatures
- Select a Nomenclature
- Create or select a rule

##### For manual generation, set:

Go to a Customer/Contact form,

- Go to Settings / Technical / Sequences & Identifiers / Barcode Nomenclatures
- Select a Nomenclature
- Create or select a rule

##### For automatic generation, set:

Go to a Customer/Contact form,

- ‘Base managed by Sequence’ in ‘Generate Type’
- Set the model
- Generate a new sequence by button, or affect a existing one

Disabled tab content

## Depending Module

This module use an extra python library named ‘python-barcode’ you should install to make barcode generation works properly.