OdooWiki OCA HUB

Barcode action launcher

barcode_action folder_open OCA/server-ux open_in_new
Extra Tools Licencia: AGPL-3

Este módulo permite utilizar códigos de barras como lanzadores de acciones.

La acción lanzará una función que utiliza el código de barras para devolver una acción.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Permite a los usuarios escanear un código de barras para desencadenar una acción en Odoo, como abrir el partner cuya Internal Reference coincida con el código escaneado. Se proporciona un menú de demostración "Find partners".

Este módulo convierte los códigos de barras en lanzadores de acciones. Añade una pequeña pantalla emergente (el asistente barcode.action) que espera la lectura de un código de barras y luego llama a una función en un modelo elegido, usando el código escaneado como entrada. La función devuelve una acción de Odoo, que se abre automáticamente.

Dónde aparece: - Un menú de demostración "Find partners" en Administration abre el lanzador de códigos de barras para partners. - El asistente muestra un mensaje verde mientras espera una lectura y un mensaje de advertencia rojo cuando algo va mal (por ejemplo, no se encuentra ningún partner).

Comportamiento de negocio mostrado en el código: - El modelo partner incorpora un método que busca un partner por su Internal Reference (ref) igual al código de barras escaneado. - Si se encuentra un partner, Odoo abre el formulario de ese partner. - Si ningún partner coincide, se muestra una ventana emergente de advertencia indicando que no se puede encontrar el partner con esa Internal Reference.

El módulo depende de la app estándar barcodes y añade un campo barcode handler usado en el formulario del asistente. También define un modelo barcode.action con campos para el modelo destino, el id de registro, el método, el estado y el mensaje de estado. El acceso se concede a todos los usuarios internos. No se añaden trabajos programados, correos electrónicos ni informes.

Depende de

barcodes

Lo necesitan otros módulos

Menús que añade

Find partners
Modelos y campos (2)
  • res.partner · amplía un modelo existente
  • barcode.action · modelo nuevomodel, state, method, res_id, status

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 8 confirmadas, 1 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0

Las acciones deben configurarse con los siguientes datos en el contexto: * model: Modelo donde podemos encontrar el método (obligatorio) * method: Método a ejecutar (obligatorio) * res_id: Id como base (opcional)

El método debe devolver una acción. Instalar este módulo con datos de demostración instalará una aplicación de demostración que permite al administrador del sistema encontrar un partner por la referencia externa codificada en un código de barras.

Vaya a Settings / Find partners y escanee un código de barras que contenga la referencia interna de un partner existente. Tan pronto como lea el código de barras, el sistema le redirigirá a la vista de formulario de ese partner.

Implementación técnica de este ejemplo:

Acción:

Código Python:

import json from odoo import api, models, _ from odoo.tools.safe_eval import safe_eval

class ResPartner(models.Model): _inherit = 'res.partner'

@api.multi def find_res_partner_by_ref_using_barcode(self, barcode): partner = self.search([('ref', '=', barcode)], limit=1) if not partner: action = self.env.ref('res_partner_find') result = action.read()[0] context = safe_eval(result['context']) context.update({ 'default_state': 'warning', 'default_status': _('Partner with Internal Reference ' '%s cannot be found') % barcode }) result['context'] = json.dumps(context) return result action = self.env.ref('base.action_partner_form') result = action.read()[0] res = self.env.ref('base.view_partner_form', False) result['views'] = [(res and res.id or False, 'form')] result['res_id'] = partner.id return result

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.