Skip to Content
Odoo मेन्यू
  • Sign in
  • मुफ़्त में आज़माएं
  • ऐप्लिकेशन
    फ़ाइनेंस
    • अकाउंटिंग
    • इनवॉइसिंग
    • एक्सपेंस
    • स्प्रेडशीट (बीआई)
    • डॉक्यूमेंट्स
    • साइन
    सेल्स
    • सीआरएम
    • सेल्स
    • पीओएस शॉप
    • पीओएस रेस्टोरेंट
    • सब्सक्रिप्शन
    • रेंटल
    वेबसाइट
    • वेबसाइट बिल्डर
    • ई-कॉमर्स
    • ब्लॉग
    • फ़ोरम
    • लाइव चैट
    • ई-लर्निंग
    सप्लाई चेन
    • इन्वेंट्री
    • मैन्युफ़ैक्चरिंग
    • पीएलएम
    • परचेज़
    • मेंटेनेंस
    • क्वालिटी
    मानव संसाधन
    • कर्मचारी
    • रिक्रूटमेंट
    • टाइम ऑफ़
    • अप्रेज़ल
    • रेफ़रल
    • फ़्लीट
    मार्केटिंग
    • सोशल मार्केटिंग
    • ईमेल मार्केटिंग
    • एसएमएस मार्केटिंग
    • इवेंट
    • मार्केटिंग ऑटोमेशन
    • सर्वे
    सेवाएं
    • प्रोजेक्ट
    • टाइमशीट
    • फ़ील्ड सर्विस
    • हेल्पडेस्क
    • प्लानिंग
    • अपॉइंटमेंट
    प्रॉडक्टिविटी
    • डिस्कस
    • अप्रूवल
    • आईओटी
    • वीओआईपी
    • नॉलेज
    • WhatsApp
    तीसरे पक्ष के ऐप्लिकेशन Odoo स्टूडियो Odoo क्लाउड प्लेटफ़ॉर्म
  • इंडस्ट्री
    रीटेल
    • बुक स्टोर
    • क्लोदिंग स्टोर
    • फ़र्नीचर स्टोर
    • ग्रॉसरी स्टोर
    • हार्डवेयर स्टोर
    • टॉय स्टोर
    Food & Hospitality
    • बार और पब
    • रेस्टोरेंट
    • फ़ास्ट फ़ूड
    • Guest House
    • बेवरिज डिस्ट्रीब्यूटर
    • होटल
    रियल एस्टेट
    • Real Estate Agency
    • आर्किटेक्चर फ़र्म
    • कंसट्रक्शन
    • एस्टेट मैनेजमेंट
    • गार्ड्निंग
    • प्रॉपर्टी ओनर असोसिएशन
    कंसल्टिंग
    • अकाउंटिंग फ़र्म
    • Odoo पार्टनर
    • मार्केटिंग एजेंसी
    • लॉ फ़र्म
    • टैलेंट ऐक्विज़िशन
    • ऑडिट & सर्टिफ़िकेशन
    मैन्युफ़ैक्चरिंग
    • टेक्सटाइल
    • Metal
    • फ़र्नीचर
    • फ़ूड
    • Brewery
    • कॉर्पोरेट गिफ़्ट
    हेल्थ & फिटनेस
    • स्पोर्ट्स क्लब
    • आईवियर स्टोर
    • फिटनेस सेंटर
    • वेलनेस प्रैक्टिशनर
    • फॉर्मेसी
    • हेयर सैलून
    Trades
    • Handyman
    • आईटी हॉर्डवेयर और सपोर्ट
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    अन्य
    • Nonprofit Organization
    • एन्वायरमेंटल एजेंसी
    • बिलबोर्ड रेंटल
    • फ़ोटोग्राफी
    • बाइक लीजिंग
    • सॉफ़्टवेयर रीसेलर
    Browse all Industries
  • कम्यूनिटी
    सीखें
    • ट्यूटोरियल्स
    • दस्तावेज़
    • सर्टिफ़िकेशन
    • ट्रेनिंग
    • ब्लॉग
    • पॉडकास्ट
    शिक्षा को बढ़ावा दें
    • एजुकेशन प्रोग्राम
    • स्केल अप! बिजनेस गेम
    • Odoo के ऑफ़िस में आएं
    सॉफ़्टवेयर पाएं
    • डाउनलोड
    • वर्शन की तुलना करें
    • रिलीज़
    साथ मिलकर काम करें
    • Github
    • फ़ोरम
    • इवेंट
    • अनुवाद
    • पार्टनर बनें
    • Services for Partners
    • अपना अकाउंटिंग फ़र्म रजिस्टर करें
    सेवाएं पाएं
    • पार्टनर ढूंढें
    • अकाउंटेंट खोजें
    • सलाहकार की मदद लें
    • इम्प्लिमेंटेशन सेवाएं
    • कस्टमर रेफ़रेंस
    • सहायता
    • अपग्रेड
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    डेमो देखें
  • कीमत
  • सहायता

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • सीआरएम
  • e-Commerce
  • लेखांकन
  • इन्वेंटरी
  • PoS
  • प्रोजेक्ट
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
टैग (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
टैग (View all)
odoo accounting v14 pos v15
About this forum
Help

Invalid field error on code for stock.picking

Subscribe

Get notified when there's activity on this post

This question has been flagged
stock_picking
13463 Views
Avatar
Elevenmidia

I am making some changes on a specific module that raises an error when added to a recent addons package. The code works fine for a previous version of some addons, but when I add this module to a update list of addons I get an execution error and I get stuck on this problem.

The error is:

ValueError: Invalid field 'discharge_id' in leaf "<osv.ExtendedLeaf: ('discharge_id', 'in', [18]) on stock_picking (ctx: )>"

I believe if I put some parts of the code you can help me solve this.

The class for the main form:

class discharge_note(osv.osv):
    _name = 'discharge.note'
    _description = 'Discharge Note'
    _inherit = 'mail.thread'
    _columns = {
                'name': fields.char('Reference', size=32, states={'confirmed': [('readonly', True)], 'done': [('readonly', True)]}),
                'date': fields.datetime('Discharge Date'),
                'user_id': fields.many2one('res.users', 'Responsible', states={'confirmed': [('readonly', True)], 'done': [('readonly', True)]}),
                'description': fields.text('Description',),
                'company_id': fields.many2one('res.company', 'Company', required=True),
                'line_ids' : fields.one2many('discharge.note.line', 'discharge_id', 'Products to Discharge'),
                'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', states={'confirmed': [('readonly', True)], 'done': [('readonly', True)]}),
                'location_id': fields.related('warehouse_id', 'disc_local_id', type='many2one', relation='stock.location', string='Warehouse Location', store=True, readonly=True),
                'state': fields.selection([('draft','New'),('confirmed','Waiting Availability'),('done','Delivery Done')], 'Status', track_visibility='onchange', required=True),
                'ship_id': fields.many2one('ship', 'Ship'),
                'picking_in_ids' : fields.one2many('stock.picking.in','discharge_id','Delivery Orders',),
                'notes' : fields.char('Notes', size=255)
    }

The class for the lines on document:

class discharge_note_line(osv.osv):
    _name = "discharge.note.line"
    _description="Stock Discharge Line"
    _rec_name = 'product_id'

    _columns = {
        'product_id': fields.many2one('product.product', 'Product' ),
        'product_uom_id': fields.many2one('product.uom', 'Product Unit of Measure'),
        'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure')),
        'discharge_id' : fields.many2one('discharge.note', 'Discharge Note', ondelete='cascade'),
        'company_id': fields.related('discharge_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
    }

The stock.picking and stock_picking_in classes:

class stock_picking(osv.osv):
    _name = "stock.picking"
    _inherit = "stock.picking"

    def do_partial(self, cr, uid, ids, partial_data, context=None):
        picking_in_obj = self.pool.get('stock.picking.in')
        res = super(stock_picking, self).do_partial(cr, uid, ids, partial_data, context=context)
        note_ids = set()
        ids = picking_in_obj.search(cr, uid, [('type', '=', 'in'), ('id', 'in', ids)])
        for picking in picking_in_obj.browse(cr, uid, ids):
            if picking.discharge_note_id:
                note_ids.add(picking.discharge_note_id.id)
        if note_ids:
            self.pool.get('discharge.note').write(cr, uid, note_ids, {'state': 'done'}, context)
        return res


class stock_picking_in(osv.osv):
    _name = "stock.picking.in"
    _inherit = "stock.picking.in"

    _columns = {
                'discharge_note_id' : fields.many2one('discharge.note', 'Discharge Note'),
                }

I believe all code runs from here (method set_status_done):

   def set_status_done(self, cr, uid, ids, context=None):
        picking_in_obj = self.pool.get('stock.picking.in')
        partial_picking_obj = self.pool.get('stock.partial.picking')
        for note in self.browse(cr, uid, ids, context):
            picking_in_ids = [picking.id for picking in note.picking_in_ids]
            picking_in_obj.draft_validate(cr, uid, picking_in_ids, context=context)
            # draft_validate sets the context for creating a partial picking
            partial_fields = ('picking_id', 'move_ids', 'date')
            partial_values = partial_picking_obj.default_get(cr, uid, partial_fields, context)
            partial_values['move_ids'] = [(0, 0, v) for v in partial_values['move_ids']]
            partial_id = partial_picking_obj.create(cr, uid, partial_values, context)
            partial_picking_obj.do_partial(cr, uid, [partial_id], context)
        return self.write(cr, uid, ids, {'state': 'done'})

Anyone can help me please?

Thank you very much

0
Avatar
Discard
Nehal

Have you put domain for discharge_id in xml or somewhere? This might be due to wrong domain of discharge_id.Have you passed context/domain in action window?

Elevenmidia
Author

Thank you Nehal. I will check that and than post the results.

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
what is the use of stock.picking, stock.picking.out and stock.picking.in Solved
stock_picking
Avatar
Avatar
1
नव॰ 24
20193
Batch picking lists
stock_picking
Avatar
Avatar
Avatar
3
दिस॰ 19
7583
Can't get Backorder_id in Custom module Odoo 11
stock_picking
Avatar
Avatar
1
मई 19
3910
What is Stock Picking Type and how to edit them? Solved
stock_picking
Avatar
Avatar
1
दिस॰ 23
24840
AccessError: ('AccessError', 'No value found for stock.issue(3,).nurse_id')
stock_picking
Avatar
Avatar
2
दिस॰ 15
4851
कम्यूनिटी
  • ट्यूटोरियल्स
  • दस्तावेज़
  • फ़ोरम
ओपन सोर्स
  • डाउनलोड
  • Github
  • रनबॉट
  • अनुवाद
सेवाएं
  • Odoo.sh Hosting
  • सहायता
  • अपग्रेड
  • कस्टम डेवलपमेंट्स
  • शिक्षा
  • अकाउंटेंट खोजें
  • पार्टनर ढूंढें
  • पार्टनर बनें
हमारे बारे में
  • हमारी कंपनी
  • ब्रांड ऐसेट
  • संपर्क करें
  • नौकरियां
  • इवेंट
  • पॉडकास्ट
  • ब्लॉग
  • ग्राहक
  • लीगल • गोपनीयता
  • सुरक्षा
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo, बिज़नेस से जुड़े ऐप्लिकेशन का एक कलेक्शन है जो ओपन सोर्स पर आधारित है. इसमें आपकी कंपनी की हर ज़रूरत के लिए ऐप्लिकेशन हैं. जैसे, सीआरएम, ई-कॉमर्स, अकाउंटिंग, इन्वेंट्री, पॉइंट ऑफ़ सेल, प्रोजेक्ट मैनेजमेंट वगैरह.

Odoo की सबसे बड़ी खासियत है कि यह इस्तेमाल करने में बहुत आसान है और यह पूरी तरह से इंटिग्रेट किया हुआ है.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now