Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
1 Răspunde
4685 Vizualizări

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. 

Imagine profil
Abandonează
Autor Cel mai bun răspuns

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

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
0
apr. 16
3689
2
iun. 21
2992
0
mar. 15
3223
2
mar. 15
5453
2
aug. 24
1558