Browse Source

Jun 13: [FIX] Bug Fixed 'customer_product_qrcode'

pull/320/head
RisvanaCybro 11 months ago
parent
commit
0381231482
  1. 2
      customer_product_qrcode/__init__.py
  2. 2
      customer_product_qrcode/__manifest__.py
  3. 7
      customer_product_qrcode/doc/RELEASE_NOTES.md
  4. 35
      customer_product_qrcode/models/models.py
  5. 8
      customer_product_qrcode/views/view.xml

2
customer_product_qrcode/__init__.py

@ -28,5 +28,5 @@ def _set_qr(cr, registry):
env = api.Environment(cr, SUPERUSER_ID, {}) env = api.Environment(cr, SUPERUSER_ID, {})
for record in env['product.product'].search([]): for record in env['product.product'].search([]):
name = record.name.replace(" ", "") name = record.name.replace(" ", "")
record.sequence = 'DEF' + name.upper()+str(record.id) record.sequences= 'DEF' + name.upper()+str(record.id)
record.generate_qr() record.generate_qr()

2
customer_product_qrcode/__manifest__.py

@ -21,7 +21,7 @@
############################################################################# #############################################################################
{ {
'name': 'Customer and Product QR Code Generator', 'name': 'Customer and Product QR Code Generator',
'version': '16.0.1.0.0', 'version': '16.0.2.0.1',
'summary': 'Generate Unique QR Codes for Customers and Products', 'summary': 'Generate Unique QR Codes for Customers and Products',
'description': 'QR Code, QR Code Generator, Odoo QR Code Generator,' 'description': 'QR Code, QR Code Generator, Odoo QR Code Generator,'
' Customer QR Code, Product QR Code, QR, QR Code Odoo', ' Customer QR Code, Product QR Code, QR, QR Code Odoo',

7
customer_product_qrcode/doc/RELEASE_NOTES.md

@ -7,4 +7,9 @@
#### 29.05.2023 #### 29.05.2023
#### Version 16.0.1.0.1 #### Version 16.0.1.0.1
#### FIX #### FIX
- Fixed the issue in Save Function - Fixed the issue in Save Function
#### 13.06.2024
#### Version 16.0.2.0.1
#### FIX
- Fixed the issue in Sequence Creation

35
customer_product_qrcode/models/models.py

@ -37,7 +37,7 @@ class Partners(models.Model):
"""Extends the res.partner model to include QR code functionality.""" """Extends the res.partner model to include QR code functionality."""
_inherit = 'res.partner' _inherit = 'res.partner'
sequence = fields.Char(string="QR Sequence", readonly=True) sequences = fields.Char(string="QR Sequence", readonly=True)
qr = fields.Binary(string="QR Code") qr = fields.Binary(string="QR Code")
def init(self): def init(self):
@ -46,7 +46,10 @@ class Partners(models.Model):
for record in self.env['res.partner'].search( for record in self.env['res.partner'].search(
[('customer_rank', '=', True)]): [('customer_rank', '=', True)]):
name = record.name.replace(" ", "") name = record.name.replace(" ", "")
record.sequence = 'DEF' + name.upper() + str(record.id) print(name,'ssssssssssssssssssssss')
print(str(record.id),type(record.id),'cxxxxxxxxxxxxxxxxxxxx')
record.sequences = 'DEF' + name.upper() + str(record.id)
print(record.sequences,'ccccccccccccccc',type(record.sequences))
@api.model @api.model
def create(self, vals): def create(self, vals):
@ -58,22 +61,22 @@ class Partners(models.Model):
prefix = str(prefix) prefix = str(prefix)
seq = prefix + self.env['ir.sequence'].next_by_code( seq = prefix + self.env['ir.sequence'].next_by_code(
'res.partner') or '/' 'res.partner') or '/'
vals['sequence'] = seq vals['sequences'] = seq
return super(Partners, self).create(vals) return super(Partners, self).create(vals)
@api.depends('sequence') @api.depends('sequences')
def generate_qr(self): def generate_qr(self):
"""Generate a QR code based on the partner's sequence and store it in """Generate a QR code based on the partner's sequence and store it in
the 'qr' field of the partner record.""" the 'qr' field of the partner record."""
if qrcode and base64: if qrcode and base64:
if not self.sequence: if not self.sequences:
prefix = self.env['ir.config_parameter'].sudo().get_param( prefix = self.env['ir.config_parameter'].sudo().get_param(
'customer_product_qr.config.customer_prefix') 'customer_product_qr.config.customer_prefix')
if not prefix: if not prefix:
raise UserError( raise UserError(
_('Set A Customer Prefix In General Settings')) _('Set A Customer Prefix In General Settings'))
prefix = str(prefix) prefix = str(prefix)
self.sequence = prefix + self.env['ir.sequence'].next_by_code( self.sequences = prefix + self.env['ir.sequence'].next_by_code(
'res.partner') or '/' 'res.partner') or '/'
qr = qrcode.QRCode( qr = qrcode.QRCode(
version=1, version=1,
@ -81,7 +84,7 @@ class Partners(models.Model):
box_size=10, box_size=10,
border=4, border=4,
) )
qr.add_data(self.sequence) qr.add_data(self.sequences)
qr.make(fit=True) qr.make(fit=True)
img = qr.make_image() img = qr.make_image()
temp = BytesIO() temp = BytesIO()
@ -96,7 +99,7 @@ class Partners(models.Model):
_('Necessary Requirements To Run This Operation Is Not Satisfied')) _('Necessary Requirements To Run This Operation Is Not Satisfied'))
def get_partner_by_qr(self, **args): def get_partner_by_qr(self, **args):
return self.env['res.partner'].search([('sequence', '=', self.id), ], return self.env['res.partner'].search([('sequences', '=', self.id), ],
limit=1).id limit=1).id
@ -104,7 +107,7 @@ class Products(models.Model):
"""Extends the product.product model to include QR code functionality.""" """Extends the product.product model to include QR code functionality."""
_inherit = 'product.product' _inherit = 'product.product'
sequence = fields.Char(string="QR Sequence", readonly=True) sequences = fields.Char(string="QR Sequence", readonly=True)
qr = fields.Binary(string="QR Code") qr = fields.Binary(string="QR Code")
@api.model @api.model
@ -118,14 +121,14 @@ class Products(models.Model):
prefix = str(prefix) prefix = str(prefix)
seq = prefix + self.env['ir.sequence'].next_by_code( seq = prefix + self.env['ir.sequence'].next_by_code(
'product.product') or '/' 'product.product') or '/'
vals['sequence'] = seq vals['sequences'] = seq
qr = qrcode.QRCode( qr = qrcode.QRCode(
version=1, version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L, error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10, box_size=10,
border=4, border=4,
) )
qr.add_data(vals['sequence']) qr.add_data(vals['sequences'])
qr.make(fit=True) qr.make(fit=True)
img = qr.make_image() img = qr.make_image()
temp = BytesIO() temp = BytesIO()
@ -134,19 +137,19 @@ class Products(models.Model):
vals.update({'qr': qr_image}) vals.update({'qr': qr_image})
return super(Products, self).create(vals) return super(Products, self).create(vals)
@api.depends('sequence') @api.depends('sequences')
def generate_qr(self): def generate_qr(self):
"""Generate a QR code based on the product's sequence and store it in """Generate a QR code based on the product's sequence and store it in
the 'qr' field of the product.""" the 'qr' field of the product."""
if qrcode and base64: if qrcode and base64:
if not self.sequence: if not self.sequences:
prefix = self.env['ir.config_parameter'].sudo().get_param( prefix = self.env['ir.config_parameter'].sudo().get_param(
'customer_product_qr.config.product_prefix') 'customer_product_qr.config.product_prefix')
if not prefix: if not prefix:
raise UserError( raise UserError(
_('Set A Customer Prefix In General Settings')) _('Set A Customer Prefix In General Settings'))
prefix = str(prefix) prefix = str(prefix)
self.sequence = prefix + self.env['ir.sequence'].next_by_code( self.sequences = prefix + self.env['ir.sequence'].next_by_code(
'product.product') or '/' 'product.product') or '/'
qr = qrcode.QRCode( qr = qrcode.QRCode(
version=1, version=1,
@ -154,7 +157,7 @@ class Products(models.Model):
box_size=10, box_size=10,
border=4, border=4,
) )
qr.add_data(self.sequence) qr.add_data(self.sequences)
qr.make(fit=True) qr.make(fit=True)
img = qr.make_image() img = qr.make_image()
temp = BytesIO() temp = BytesIO()
@ -171,7 +174,7 @@ class Products(models.Model):
def get_product_by_qr(self, **args): def get_product_by_qr(self, **args):
"""Retrieve a product based on the provided QR sequence.""" """Retrieve a product based on the provided QR sequence."""
return self.env['product.product'].search( return self.env['product.product'].search(
[('sequence', '=', self.id), ], limit=1).id [('sequences', '=', self.id), ], limit=1).id
class ProductTemplate(models.Model): class ProductTemplate(models.Model):

8
customer_product_qrcode/views/view.xml

@ -9,12 +9,12 @@
<div name="button_box" position="inside"> <div name="button_box" position="inside">
<button name="generate_qr" type="object" class="btn-box" <button name="generate_qr" type="object" class="btn-box"
icon="fa-qrcode"> icon="fa-qrcode">
<field name="sequence" invisible="1"/> <field name="sequences" invisible="1"/>
Generate QR Generate QR
</button> </button>
</div> </div>
<field name="category_id" position="after"> <field name="category_id" position="after">
<field name="sequence"/> <field name="sequences"/>
</field> </field>
</field> </field>
</record> </record>
@ -26,12 +26,12 @@
<div name="button_box" position="inside"> <div name="button_box" position="inside">
<button name="generate_qr" type="object" class="btn-box" <button name="generate_qr" type="object" class="btn-box"
icon="fa-qrcode"> icon="fa-qrcode">
<field name="sequence" invisible="1"/> <field name="sequences" invisible="1"/>
Generate QR Generate QR
</button> </button>
</div> </div>
<field name="categ_id" position="after"> <field name="categ_id" position="after">
<field name="sequence"/> <field name="sequences"/>
</field> </field>
</field> </field>
</record> </record>

Loading…
Cancel
Save