Skip to Content
Odoo เมนู
  • ลงชื่อเข้าใช้
  • ทดลองใช้ฟรี
  • แอป
    การเงิน
    • ระบบบัญชี
    • ระบบการออกใบแจ้งหนี้
    • ระบบบัญชีรายจ่าย
    • ระบบการจัดการข้อมูลผ่านสเปรดชีต (BI)
    • เอกสาร
    • ระบบลงลายเซ็น
    การขาย
    • ลูกค้าสัมพันธ์
    • การขาย
    • POS ร้านค้า
    • POS ร้านอาหาร
    • ระบบสมัครสมาชิก
    • การเช่า
    การจัดการเว็บไซต์
    • เครื่องมือสร้างเว็บไซต์
    • ระบบการขายออนไลน์
    • บล็อก
    • ฟอรั่ม
    • ไลฟ์แชท
    • ระบบการอบรมออนไลน์
    ซัพพลายเชน
    • คลังสินค้า
    • ระบบการผลิต
    • PLM
    • ระบบการจัดซื้อ
    • การซ่อมบำรุง
    • ระบบจัดการคุณภาพ
    ทรัพยากรบุคคล
    • ข้อมูลพนักงาน
    • ระบบสรรหาบุคลากร
    • ระบบการลา
    • การประเมิน
    • ระบบการแนะนำพนักงาน
    • ระบบจัดการยานพาหนะ
    การตลาด
    • โซเชียลมาร์เก็ตติ้ง
    • การตลาดผ่านอีเมล
    • ระบบการตลาดผ่าน SMS
    • ระบบการจัดงานอีเวนต์
    • การตลาดแบบอัตโนมัติ
    • ระบบแบบสำรวจ
    การบริการ
    • โปรเจกต์
    • ระบบบันทึกเวลา
    • ระบบการจัดการบริการภาคสนาม
    • ระบบดูแลช่วยเหลือ
    • การวางแผน
    • การนัดหมาย
    ประสิทธิผล
    • ระบบแสดงความคิดเห็น
    • ระบบการอนุมัติ
    • ไอโอที
    • VoIP
    • คลังข้อมูล
    • WhatsApp
    แอปพลิเคชันของบุคคลที่สาม Odoo สตูดิโอ แพลตฟอร์มคลาวด์ของ Odoo
  • อุตสาหกรรม
    การค้าปลีก
    • ร้านขายหนังสือ
    • ร้านขายเสื้อผ้า
    • ร้านขายเฟอร์นิเจอร์
    • ร้านขายของชำ
    • ร้านขายฮาร์ดแวร์
    • ร้านขายของเล่น
    Food & Hospitality
    • บาร์และผับ
    • ร้านอาหาร
    • อาหารฟาสต์ฟู้ด
    • Guest House
    • ตัวแทนจำหน่ายเครื่องดื่ม
    • Hotel
    Real Estate
    • Real Estate Agency
    • บริษัทสถาปัตยกรรม
    • บริษัทรับเหมา
    • การจัดการอสังหาริมทรัพย์
    • การจัดสวน
    • สมาคมเจ้าของอสังหาริมทรัพย์
    Consulting
    • Accounting Firm
    • Odoo พาร์ทเนอร์
    • เอเจนซี่การตลาด
    • สำนักงานกฎหมาย
    • บริการสรรหาบุคลากร
    • การตรวจสอบและการรับรอง
    ระบบการผลิต
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • ของขวัญขององค์กร
    สุขภาพ & ฟิตเนส
    • ชมรมกีฬา
    • ร้านขายแว่นตา
    • ฟิตเนส
    • ผู้ประกอบวิชาชีพด้านสุขภาพ
    • ร้านขายยา
    • ร้านทำผม
    Trades
    • ช่างซ่อม
    • ฮาร์ดแวร์และการสนับสนุนด้านไอที
    • Solar Energy Systems
    • ช่างทำรองเท้า
    • บริการทำความสะอาด
    • HVAC Services
    Others
    • Nonprofit Organization
    • สำนักงานสิ่งแวดล้อม
    • ร้านเช่าป้ายโฆษณา
    • การถ่ายภาพ
    • ร้านเช่าจักรยาน
    • ตัวแทนจำหน่ายซอฟต์แวร์
    Browse all Industries
  • คอมมูนิตี้
    ศึกษา
    • บทเรียน
    • เอกสารกำกับโปรแกรม
    • การรับรอง
    • การฝึกอบรม
    • บล็อก
    • พอดแคสต์
    เพิ่มศักยภาพให้กับการศึกษา
    • โปรแกรมการศึกษา
    • Scale Up! Business Game
    • เยี่ยมชม 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
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
All Posts คน เหรียญรางวัล
แท็ก (View all)
odoo accounting v14 pos v15
เกี่ยวกับฟอรั่มนี้
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
All Posts คน เหรียญรางวัล
แท็ก (View all)
odoo accounting v14 pos v15
เกี่ยวกับฟอรั่มนี้
ช่วยเหลือ

how to store data in a table temporarily but manually

ติดตาม

รับการแจ้งเตือนเมื่อมีกิจกรรมในโพสต์นี้

คำถามนี้ถูกตั้งค่าสถานะ
modelscreatesale.order.linesale.order
2 ตอบกลับ
3451 มุมมอง
อวตาร
random_mai

How do i store a temporary (NewId) in sale.order.line table? Here is my scenario:

Before converting a quotation to sales order, i need to insert a default product id manually in sales order line upon creation of a quotation. However, it is returning an error: "Missing required field". I checked it and it was "order_id" field from sale.order.line. 


Sample code:

# Create SO line - from sales.order (this function will be called when there are changes in default product line)

@api.onchange('default_product_line')

def .....(self):

for line in record.default_product_line:

      params = {

            'order_id': self.id, # causing error because quotation is not saved yet, still in draft

            'name': line.name,

            'product_uom_qty': line.qty,

            'price_unit': line.price_unit,

            'product_id': line.product_id.id

      }

      self.env['sale.order.line'].create(params)




How can i store sale order line temporarily if a quotation state is still draft?

0
อวตาร
ละทิ้ง
Axel Mendoza

Please provide more details, I don't see clear exactly what you are doing that have the missing order_id field, how and where? post some code...

random_mai
ผู้เขียน

Updated the details

Axel Mendoza

I'm sure that I will get errors if I try to run the code you post, why did you put it like that? what it's the value of the record variable?

อวตาร
shubham shiroya
คำตอบที่ดีที่สุด
  1. Add a One2many field in the sale.order model to store the temporary sale order lines.

  2. Modify the onchange method to add the temporary sale order lines to the One2many field.

  3. When converting the quotation to a sales order, copy the temporary sale order lines from the One2many field to the actual sale order lines.

Here's the updated code:

  1. Add a One2many field in the sale.order model:

class SaleOrder(models.Model):

_inherit = 'sale.order'


temp_order_lines = fields.One2many('sale.order.line', 'order_id_temp', string='Temporary Order Lines')


Modify the onchange method to add the temporary sale order lines to the temp_order_lines field:

@api.onchange('default_product_line')

def add_temp_order_lines(self):

temp_lines = []

for line in self.default_product_line:

temp_lines.append((0, 0, {

'name': line.name,

'product_uom_qty': line.qty,

'price_unit': line.price_unit,

'product_id': line.product_id.id

}))

self.temp_order_lines = temp_lines


When converting the quotation to a sales order, copy the temporary sale order lines to the actual sale order lines:

def convert_to_sales_order(self):

# Create the sales order

sale_order_vals = {

# Add other required fields for the sales order

}

sale_order = self.env['sale.order'].create(sale_order_vals)


# Copy temporary sale order lines to actual sale order lines

for temp_line in self.temp_order_lines:

sale_order_line_vals = {

'order_id': sale_order.id,

'name': temp_line.name,

'product_uom_qty': temp_line.product_uom_qty,

'price_unit': temp_line.price_unit,

'product_id': temp_line.product_id.id,

# Add other required fields for the sales order line

}

self.env['sale.order.line'].create(sale_order_line_vals)


# Optionally, you can remove the temporary sale order lines from the quotation

self.temp_order_lines = [(5, 0, 0)]


return sale_order


0
อวตาร
ละทิ้ง
อวตาร
Axel Mendoza
คำตอบที่ดีที่สุด

Here is how you could do it

      self.write({'order_line': [(0,0, {

            'name': line.name,

            'product_uom_qty': line.qty,

            'price_unit': line.price_unit,

            'product_id': line.product_id.id

      })]})

The idea it's that you don't need to create anything in the database, since it's an onchange you need to return the change of the data. In this case you are adding a new line to the sale order that will be showing in the browser and saved into the database once you save the sale order form

0
อวตาร
ละทิ้ง
สนุกกับการพูดคุยนี้ใช่ไหม? เข้าร่วมเลย!

สร้างบัญชีวันนี้เพื่อเพลิดเพลินไปกับฟีเจอร์พิเศษและมีส่วนร่วมกับคอมมูนิตี้ที่ยอดเยี่ยมของเรา!

ลงชื่อ
Related Posts ตอบกลับ มุมมอง กิจกรรม
Merge Same Item in Sale Order Line แก้ไขแล้ว
sale.order.line sale.order
อวตาร
อวตาร
อวตาร
2
ม.ค. 24
6254
Combine inline editing with more detailed form view
sale.order.line sale.order
อวตาร
0
มิ.ย. 23
2746
ValueError: <class 'ValueError'>: "Expected singleton: sale.order.line(<NewId ref='virtual_117'>, <NewId ref='virtual_131'>)"
sale.order.line sale.order
อวตาร
อวตาร
1
ธ.ค. 22
4180
How to update a custom field as "Margin" default from sale.order does, when some product of sale.order.line is updated/deleted.
sale.order.line sale.order
อวตาร
0
เม.ย. 22
3215
How to count stockable product in orderline in Quotations แก้ไขแล้ว
sale.order.line sale.order
อวตาร
อวตาร
1
เม.ย. 19
6815
คอมมูนิตี้
  • บทเรียน
  • เอกสารกำกับโปรแกรม
  • ฟอรั่ม
โอเพนซอร์ส
  • ดาวน์โหลด
  • Github
  • Runbot
  • การแปล
บริการ
  • โฮสติ้ง odoo.sh เซิร์ฟเวอร์
  • การสนับสนุน
  • อัปเกรด
  • การพัฒนาที่กำหนดเอง
  • การศึกษา
  • ค้นหานักบัญชี
  • ค้นหาพาร์ทเนอร์
  • ร่วมเป็นพาร์ทเนอร์
เกี่ยวกับเรา
  • บริษัทของเรา
  • ทรัพย์สินในรูปของเครื่องหมายการค้า
  • ติดต่อเรา
  • งาน
  • ระบบการจัดงานอีเวนต์
  • พอดแคสต์
  • บล็อก
  • ลูกค้า
  • กฎหมาย • ความเป็นส่วนตัว
  • ความปลอดภัย
الْعَرَبيّة 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 เป็นชุดแอปธุรกิจแบบเปิดที่ครอบคลุมทุกความต้องการของบริษัทของคุณ อาธิ CRM eCommerce ระบบบัญชี ระบบสินค้าคงคลัง ระบบการขายหน้าร้าน โปรเจกต์ และ อีกมากมาย

ความเหนือกว่าอันเป็นเอกลักษณ์ของ 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