Widget Scanner Odoo 14

Assalamualaikum warahmatullahi wabarakatuh.
Bismillah... pada kesempatan kali saya ini membagikan modul hasil R&D yaitu membuat modul scanner barcode maupun QRcode, pada modul ini saya menggunakan library Zxing. modulnya bisa di download disini .

langsung saja gimana cara menggunkan modul ini. untuk dapat menggunkan modul ini ada sedikit tambahan teknikal sesuai kebutuhan. pada study kasus disini saya inherit pada model sale.order menambahkan field char scanner. modul ini ketika mendapatkan hasil dari scanner akan tertrigger onchange pada field yg diberikan widget="qrscanner", disini kan bisa menambakan logika sesui kebutuhan.
from odoo import models, fields, api

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    scanner = fields.Char('Scanner')

    @api.onchange('scanner')
    def _onchange_qr_code(self):
       if self.scanner:
            return {
                'warning' : {
                    'title' : 'Success',
                    'message' : 'Hasil Scanner %s' % (self.scanner)
                }
            }
           
<odoo>
    <data>
        <record id="view_order_form_inherit_sale" model="ir.ui.view">
            <field name="name">sale.order.view.form.inherit</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_order_form"/>
            <field name="arch" type="xml">
                <field name="payment_term_id" position="after">
                    <field name="scanner" widget="qrscanner"/>
                </field>
            </field>
        </record>
    </data>
</odoo>

Hasilnya seperti berikut ini :



Sekian sharing dari saya, wasalamualaikum warahmatullahi wabarakatuh.

Membuat Timestamp Pada Log Odoo Sesuai Timezone