Skip ke Konten
Odoo Menu
  • Login
  • Uji coba gratis
  • Aplikasi
    Keuangan
    • Akuntansi
    • Faktur
    • Pengeluaran
    • Spreadsheet (BI)
    • Dokumen
    • Tanda Tangan
    Sales
    • CRM
    • Sales
    • POS Toko
    • POS Restoran
    • Langganan
    • Rental
    Website
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Rantai Pasokan
    • Inventaris
    • Manufaktur
    • PLM
    • Purchase
    • Maintenance
    • Kualitas
    Sumber Daya Manusia
    • Karyawan
    • Rekrutmen
    • Cuti
    • Appraisal
    • Referensi
    • Armada
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Acara
    • Otomatisasi Marketing
    • Survei
    Layanan
    • Project
    • Timesheet
    • Layanan Lapangan
    • Meja Bantuan
    • Planning
    • Appointment
    Produktivitas
    • Diskusi
    • Approval
    • IoT
    • VoIP
    • Pengetahuan
    • WhatsApp
    Aplikasi pihak ketiga Odoo Studio Platform Odoo Cloud
  • Industri-Industri
    Retail
    • Toko Buku
    • Toko Baju
    • Toko Furnitur
    • Toko Kelontong
    • Toko Hardware
    • Toko Mainan
    Makanan & Hospitality
    • Bar dan Pub
    • Restoran
    • Fast Food
    • Rumah Tamu
    • Distributor Minuman
    • Hotel
    Real Estate
    • Agensi Real Estate
    • Firma Arsitektur
    • Konstruksi
    • Estate Management
    • Perkebunan
    • Asosiasi Pemilik Properti
    Konsultansi
    • Firma Akuntansi
    • Mitra Odoo
    • Agensi Marketing
    • Firma huku
    • Talent Acquisition
    • Audit & Sertifikasi
    Manufaktur
    • Tekstil
    • Logam
    • Perabotan
    • Makanan
    • Brewery
    • Corporate Gift
    Kesehatan & Fitness
    • Sports Club
    • Toko Kacamata
    • Fitness Center
    • Wellness Practitioners
    • Farmasi
    • Salon Rambut
    Perdagangan
    • Handyman
    • IT Hardware & Support
    • Sistem-Sistem Energi Surya
    • Pembuat Sepatu
    • Cleaning Service
    • Layanan HVAC
    Lainnya
    • Organisasi Nirlaba
    • Agen Lingkungan
    • Rental Billboard
    • Fotografi
    • Penyewaan Sepeda
    • Reseller Software
    Browse semua Industri
  • Komunitas
    Belajar
    • Tutorial-tutorial
    • Dokumentasi
    • Sertifikasi
    • Pelatihan
    • Blog
    • Podcast
    Empower Education
    • Program Edukasi
    • Game Bisnis 'Scale Up!'
    • Kunjungi Odoo
    Dapatkan Softwarenya
    • Download
    • Bandingkan Edisi
    • Daftar Rilis
    Kolaborasi
    • Github
    • Forum
    • Acara
    • Terjemahan
    • Menjadi Partner
    • Layanan untuk Partner
    • Daftarkan perusahaan Akuntansi Anda.
    Dapatkan Layanan
    • Temukan Mitra
    • Temukan Akuntan
    • Temui penasihat
    • Layanan Implementasi
    • Referensi Pelanggan
    • Bantuan
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Dapatkan demo
  • Harga
  • Bantuan

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

  • CRM
  • e-Commerce
  • Akuntansi
  • Inventaris
  • PoS
  • Project
  • MRP
All apps
Anda harus terdaftar untuk dapat berinteraksi di komunitas.
Semua Post Orang Lencana-Lencana
Label (Lihat semua)
odoo accounting v14 pos v15
Mengenai forum ini
Anda harus terdaftar untuk dapat berinteraksi di komunitas.
Semua Post Orang Lencana-Lencana
Label (Lihat semua)
odoo accounting v14 pos v15
Mengenai forum ini
Help

Client order ref on delivery orders

Langganan

Dapatkan notifikasi saat terdapat aktivitas pada post ini

Pertanyaan ini telah diberikan tanda
sale.ordervaluestock.picking
3 Replies
9283 Tampilan
Avatar
Roberto Barreiro

I'm working under odoo v8, and i'm trying to pass the client_order_ref from sale orders to delivery orders. I could create a new field on delivery orders, called client_order_ref, but I can't pass the value of this field from sale order to delivery order, my custom field is always empty.

Code of my module:

from openerp.osv import fields, osv

class stock_picking(osv.osv):
        _inherit = "stock.picking"
        _columns = {
                'client_order_ref': fields.char('Reference/Description', copy=True),
        }

class sale_order(osv.osv):
        _inherit = "sale.order"

        def _prepare_order_line_procurement(self, cr, uid, order, line, group_id=False, context=None):
                date_planned = self._get_date_planned(cr, uid, order, line, order.date_order, context=context)
                return {
                        'client_order_ref': order.client_order_ref,  # I tried with 'blabla' instead order.client_order_ref and field is still empty
                        'name': line.name,
                        'origin': order.name,
                        'date_planned': date_planned,
                        'product_id': line.product_id.id,
                        'product_qty': line.product_uom_qty,
                        'product_uom': line.product_uom.id,
                        'product_uos_qty': (line.product_uos and line.product_uos_qty) or line.product_uom_qty,
                        'product_uos': (line.product_uos and line.product_uos.id) or line.product_uom.id,
                        'company_id': order.company_id.id,
                        'group_id': group_id,
                        'invoice_state': (order.order_policy == 'picking') and '2binvoiced' or 'none',
                        'sale_line_id': line.id
                }

The code of my view

<openerp>
<data>
        <record id="client_order_ref_stock_view_picking_form" model="ir.ui.view">
                <field name="name">client.order.ref.stock.view.picking.form</field>
                <field name="model">stock.picking</field>
                <field name="type">form</field>
                <field name="inherit_id" ref="stock.view_picking_form"/>
                <field name="arch" type="xml">
                        <field name="origin" position="before">
                                <field name="client_order_ref"/>
                        </field>
                </field>
        </record>
</data>
</openerp>

1
Avatar
Buang
Roberto Barreiro
Penulis

I tried this with the same result, the custom flied still is empty: def _prepare_order_line_procurement(self, cr, uid, order, line, group_id=False, context=None): vals = super(sale_order, self)._prepare_order_line_procurement(cr, uid, order, line, group_i$ vals.update({'client_order_ref': 'blabla'}) return vals

Avatar
Roberto Barreiro
Penulis Jawaban Terbai

Thanks to Emipro Technologies, he puts me on the path and I could make it works with this code:

class stock_move(osv.osv):
    _inherit = "stock.move"

    def _picking_assign(self, cr, uid, move_ids, procurement_group, location_from, location_to, context=None):

        # Call super function
        res = super(stock_move, self)._picking_assign(cr, uid, move_ids, procurement_group, location_from, location_to, context=context)

        # Get move id
        move = self.browse(cr, uid, move_ids, context=context)[0]

        # Get the values from the move
        order_obj = self.pool.get("sale.order")
        order_id = order_obj.search(cr, uid, [('name','=', move.origin)], context=context)
        vals = order_obj.read(cr, uid, order_id, ['client_order_ref'])

        # Get client reference from move values
        for value in vals:
            if value.has_key('client_order_ref'):
                order_ref = value['client_order_ref']
        # If exists client reference update stock picking client_order_ref field
        if order_ref:
            stock_pick_obj = self.pool.get("stock.picking")
            stock_pick_id = stock_pick_obj.search(cr, uid, [('origin', '=', move.origin)], context=context)
            stock_pick_obj.write(cr, uid, stock_pick_id, {'client_order_ref': order_ref}, context=context)
        return

 

3
Avatar
Buang
Avatar
Emipro Technologies Pvt. Ltd.
Jawaban Terbai

@Roberto

you have added the field in the 'stock.picking' model and you are writing/extending your code for creating a procurement line.
You should override _picking_assign method of stock.move model and try to fit in your code in it.

In this method new picking is getting created try look into that

Hope this helps

1
Avatar
Buang
Roberto Barreiro
Penulis

Thanks for your answer, i think i'm near, but I can't take the last step. I have this code: class stock_move(osv.osv): _inherit = "stock.move" def _picking_assign(self, cr, uid, move_ids, procurement_group, location_from, location_to, context=None): move = self.browse(cr, uid, move_ids, context=context)[0] order_obj = self.pool.get("sale.order") order_id = order_obj.search(cr, uid, [('name','=', move.origin)]) client_reference = order_obj.read(cr, uid, order_id, 'client_order_ref', context=None) res = super(stock_move, self)._picking_assign(cr, uid, move_ids, procurement_group, location_from, location_$ res.update({'client_order_ref': client_reference}) return res But i fails on this line "res.update({'client_order_ref': client_reference})". The error is this: ValueError: "'bool' object has no attribute 'update'" while evaluating u'action_ship_create()'

Roberto Barreiro
Penulis

Sorry, i don't know how to post my code on a comment.

Emipro Technologies Pvt. Ltd.

@Roberto This method returns a "boolean" value so you can't use "update()" method on it. You will have to copy full method from that core module and paste it in your module and then you have to fit in your code. That means you will be totally overriding that method. Let me know if that works or not.

Roberto Barreiro
Penulis

Thanks dude! Finally i could do it.

Roberto Barreiro
Penulis

But I didn't like the solution of copy-paste-modify. It takes me a few days, but I could use super for mantain original code, and make my own code to update the record created by _picking_assign

Avatar
Santi
Jawaban Terbai

I have tried Roberto's code and it works for passing one field, but I would like to pass multiple custom fields instead of only one. How can I acheive this with the minimal code possible?

EDIT 16/03/2015 23:19:


I got it working yesterday with this code, through trial and error...but I'm sure I'm missing something, and I'm afraid I might get some error sooner or later...so if there's any suggestions, they'd be highly appreciated:

The 4 fields I want to pass are:

'x_work_order_id',

'x_installation_id',

'x_tc_type_id',

'client_order_ref'


class stock_move(osv.osv):
    _inherit = "stock.move"
    def _picking_assign(self, cr, uid, move_ids, procurement_group, location_from, location_to, context=None):
        # Call super function
        res = super(stock_move, self)._picking_assign(cr, uid, move_ids, procurement_group, location_from, location_to, context=context)
# Get move id move = self.browse(cr, uid, move_ids, context=context)[0]
# Get the values from the move order_obj = self.pool.get("sale.order") order_id = order_obj.search(cr, uid, [('name','=', move.origin)], context=context) vals = order_obj.read(cr, uid, order_id, [ 'x_work_order_id', 'x_installation_id', 'x_tc_type_id',         'client_order_ref' ])
# Get client reference from move values for value in vals: x_work_order_id = value['x_work_order_id'] x_installation_id = value['x_installation_id'] x_tc_type_id = value['x_tc_type_id'] x_client_order_ref = value['client_order_ref']
# If exists client reference update stock picking x_work_order_id field if x_work_order_id: stock_pick_obj = self.pool.get("stock.picking") stock_pick_id = stock_pick_obj.search(cr, uid, [('origin', '=', move.origin)], context=context) stock_pick_obj.write(cr, uid, stock_pick_id, { 'x_work_order_id': x_work_order_id, 'x_installation_id': x_installation_id, 'x_tc_type_id': x_tc_type_id, 'x_client_order_ref': x_client_order_ref }, context=context) return stock_move ()

0
Avatar
Buang
Roberto Barreiro
Penulis

Try this before the stock_pick_obj.write function, and change it with the parameters of this example: vals = {'your_field_1' : your_value_1, 'your_field_2' : your_value_2, 'your_flied_3' : your_value_3} stock_pick_obj.write(cr, uid, stock_pick_id, vals, context=context)

Santi

I tried your suggestion, but it didn't work, I'm sure some extra code is necessary...

Santi

I tried your suggestion, but it didn't work, I'm sure some extra code is necessary...

Menikmati diskusi? Jangan hanya membaca, ikuti!

Buat akun sekarang untuk menikmati fitur eksklufi dan agar terlibat dengan komunitas kami!

Daftar
Post Terkait Replies Tampilan Aktivitas
Where are Stock Picking created from Sale Order?
sale.order stock.picking
Avatar
Avatar
1
Apr 25
2459
Confirm sale order without creating delivery in Odoo16
sale.order stock.picking
Avatar
0
Mei 23
3766
How can I find the 'create' method for stock.picking ?
sale.order 8.0 stock.picking
Avatar
Avatar
1
Jan 25
7953
How do I pass a custom field value from sale.order to stock.picking in Odoo 11? Diselesaikan
sale.order stock.picking odoo11community
Avatar
Avatar
3
Mar 25
10136
How to copy field value from sales.order.line to stock.move when order confirm [Odoo 10]
sale.order.line sale.order stock.move stock.picking
Avatar
0
Sep 17
5088
Komunitas
  • Tutorial-tutorial
  • Dokumentasi
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Terjemahan
Layanan
  • Odoo.sh Hosting
  • Bantuan
  • Peningkatan
  • Custom Development
  • Pendidikan
  • Temukan Akuntan
  • Temukan Mitra
  • Menjadi Partner
Tentang Kami
  • Perusahaan kami
  • Aset Merek
  • Hubungi kami
  • Tugas
  • Acara
  • Podcast
  • Blog
  • Pelanggan
  • Hukum • Privasi
  • Keamanan
الْعَرَبيّة 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 adalah rangkaian aplikasi bisnis open source yang mencakup semua kebutuhan perusahaan Anda: CRM, eCommerce, akuntansi, inventaris, point of sale, manajemen project, dan seterusnya.

Mudah digunakan dan terintegrasi penuh pada saat yang sama adalah value proposition unik 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