Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7315|回复: 1

如何在sale.order类中监测销售订单是从前端或是后端创建的?

[复制链接]

4

主题

16

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2015-11-1 14:15:15 | 显示全部楼层 |阅读模式
如题,如何在sale.order类的create()方法中监测销售订单是从前端(网页)或是后端(直接操作数据库)创建的?

要通过url判断吗?
在我们公司,前端创建的销售订单和后端创建的销售订单分别使用不同的序列号。
回复

使用道具 举报

6

主题

20

帖子

62

积分

版主

Rank: 7Rank: 7Rank: 7

积分
62
发表于 2015-11-1 14:36:29 | 显示全部楼层
可以考虑这么写,
def create(self, cr, uid, vals, context=None):
    if context is None:
        context = {}
    urlll = str(request.httprequest.url)

    if 'sale.order' not in urlll:
        if vals.get('name', '/') == '/':
            vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'sale.order.web', context=context) or '/'
        if vals.get('partner_id') and any(f not in vals for f in ['partner_invoice_id', 'partner_shipping_id', 'pricelist_id', 'fiscal_position']):
            defaults = self.onchange_partner_id(cr, uid, [], vals['partner_id'], context=context)['value']
            if not vals.get('fiscal_position') and vals.get('partner_shipping_id'):
                delivery_onchange = self.onchange_delivery_id(cr, uid, [], vals.get('company_id'), None, vals['partner_id'], vals.get('partner_shipping_id'), context=context)
                defaults.update(delivery_onchange['value'])
           vals = dict(defaults, **vals)

    ctx = dict(context or {}, mail_create_nolog=True)
    new_id = super(sale_order, self).create(cr, uid, vals, context=ctx)
    self.message_post(cr, uid, [new_id], body=_("Quotation created"), context=ctx)
    return new_id
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 18:41 , Processed in 0.012900 second(s), 8 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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