Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7919|回复: 1
打印 上一主题 下一主题

自定义popup弹出对话框显示错误信息

[复制链接]

4

主题

9

帖子

92

积分

注册会员

Rank: 2

积分
92
跳转到指定楼层
楼主
发表于 2016-1-16 10:20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 agilit_ch 于 2016-1-15 21:28 编辑

在accounting模块的customer invoice(客户发票)中,添加了customer_invoice_number发票号码, 此字段必须是唯一的对于给定的客户,如果用户输入的发票号码在数据库中已经存在,我希望弹出一个对话框(popup)来告诉用户他输入的发票号码重复。
解决方法有两个:
1.   通过给customer_invoice_number 定义sql_constraint为unique,当输入重复时,openerp会自动抛出 Exception(异常), 但这种方法回中断work flow,系统回滚到transaction之前的状态
2.   定义osv.osv_memory类,如unique_warning,该类中有对话框相应的信息和方法warning,如title,message等。 生成wizard的同时用xml来定义对话框显示的内容,  当用户输入发票号码后保存时,检查输入的号码是否已存在,如果是,在write或create方法(override)中用self.pool.get('unique_warning').warning(),    warning方法负责生成对话框对象并将此对象于xml(ir.ui.view)关联

以上是algorithme,代码等待下周上班再来实现。愿于对openerp感兴趣的交流体会cheng.qiang@hotmail.com
Faire ce que l'on n'aime pas.
回复

使用道具 举报

4

主题

9

帖子

92

积分

注册会员

Rank: 2

积分
92
沙发
 楼主| 发表于 2016-1-31 04:56:01 | 只看该作者
本帖最后由 agilit_ch 于 2016-1-30 15:57 编辑

自己顶一下:
第三种方法: 在addons/warning/warning.py   onchange_invoice_number():
result={}
.........
if invoice number existe:
warning = {
                'title': 'Duplicate of Supplier invoice number' ,
                'message': 'There is already supplier invoice number with ****!'
                }
return result
运行后输入重复发票号码,会弹出带信息的对话框
Faire ce que l'on n'aime pas.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-5-3 03:38 , Processed in 0.011168 second(s), 8 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表