Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
4693 Tampilan

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. 

Avatar
Buang
Penulis Jawaban Terbai

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

Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
0
Apr 16
3691
2
Jun 21
3001
0
Mar 15
3225
2
Mar 15
5464
2
Agu 24
1582