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, {})
for record in env['product.product'].search([]):
name = record.name.replace(" ", "")
record.sequence = 'DEF' + name.upper()+str(record.id)
record.sequences= 'DEF' + name.upper()+str(record.id)
record.generate_qr()

2
customer_product_qrcode/__manifest__.py

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

8
customer_product_qrcode/views/view.xml

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

Loading…
Cancel
Save