In below example I have written Python script to configure barcode. It will print one barcode on each page based on quantity available of selected products. Like below python code in .py file :
import logging
from openerp.osv import fields, orm
_logger = logging.getLogger(__name__)
try:
from reportlab.graphics.barcode import getCodes
except ImportError:
_logger.warning('unable to import reportlab')
def _get_code(self, cr, uid, context=None):
"""get availble code """
return [(r, r) for r in getCodes()]
class tr_barcode_config(orm.Model):
_name = 'tr.barcode.config'
_columns = {
'res_model': fields.many2one('ir.model', 'Object',
domain=[('barcode_model', '=', True)],
required=True),
'field': fields.many2one('ir.model.fields', 'Field',
domain=[('ttype', '=', 'char')],
required=True),
'width': fields.integer("Width",
help="Leave Blank or 0(ZERO) for default size"),
'height': fields.integer("Height",
help="Leave Blank or 0(ZERO) for default size"),
'hr_form': fields.boolean("Human Readable",
help="To generate Barcode In Human readable form"),
'barcode_type': fields.selection(_get_code, 'Type', required=True),
}
_sql_constraints = [
('res_model_uniq',
'unique(res_model)',
'You can have only one config by model !'),
]
0 Comment(s)