Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
4533 Lượt xem

Hello guys,

In the create method of the sale.order class, in the python code, how would you detect if the sale order is created from the backend or the frontend?

Would you use the url?

In my company, sale orders created from the frontend must take a sequence and sale orders created from the backend must take an other sequence. 

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

Here is my override of the create method :


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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 4 16
3474
2
thg 6 21
2794
0
thg 3 15
3029
2
thg 3 15
5251
2
thg 8 24
1315