ต้องรบกวนผู้มากประสบการณ์ หาดูในอากู๋ แล้ว ไม่เจอ อะไรที่พอใช้ได้
อ้างอิงจากระทู้นี้ viewtopic.php?t=2595 ซึ่งเป็นเรื่องของการเปลี่ยน BOM ตลอดเวลา
ตอนนี้ผมได้ Solution ที่เหมาะสมแล้ว
1. สร้าง Model (Table) ใหม่ชื่อ sale_order_line_bom เหมือน Sale_Order_Line (อาจตัดบาง Field ที่ไม่ได้ใช้ออก) แล้วเพิ่ม Field ชื่อ order_line_id เข้าไป เพื่อใช้เป็น many2one กับ sale_order_line
2. สร้าง view ชื่อ sale_order_line_bom_view.xml เพื่อรับค่าที่จะใส่เข้าไปใน table
3. ที่ view (sale order) เพิ่ม ปุ่ม ชื่อ BOM เพื่อเปิด view ในข้อ 2 (ได้ตามรูป)
คำถาม
1. จะ code อย่างไร เพื่อให้เปิด view ในข้อ 2 ขึ้นมา เท่าที่ดูใน อากู๋ แล้วลองทำตามได้ตามด้านล่างแต่ทำแล้วไม่ผ่าน
@api.multi
def button_line_bom(self):
view = {
'name': _('Sale Order Line BOM'),
'view_type': 'form',
'view_mode': 'form',
'res_model': 'sale.order.line.bom',
'view_id': False,
'type': 'ir.actions.act_window',
'target': 'new',
'readonly': True,
'res_id': self.id,
}
return view
2. ถ้าทำข้อ 1 ผ่านแล้ว เมื่อกดปุ่ม "BOM" จะทำอย่างไรให้ Field ชื่อ order_id และ order_line_id ใส่ค่าตาม sale_order อัตโนมัติ
ขอบคุณครับ
แจ้งข่าว ทางเว็บบอร์ด openerpthailand.org ได้เปลี่ยนระบบเว็บบอร์ด ใหม่เป็น phpBB 3.1- บุคคลทั่วไป จะไม่สามารถเข้าอ่านกระทู้บางบอร์ด แนะนำให้ท่าน สมัครสมาชิกคลิกตามลิงค์นี้
- สมาชิกใหม่ ถ้ายังไม่ได้แนะนำตัวจะไม่สามารถ ตั้งกระทู้ และ ดาวน์โหลด ไฟล์จากเว็บบอร์ดได้ ท่านจำเป็นต้องแนะนำตัวที่หมวดนี้
- ถ้ามีปัญหาการใช้งาน หรือ ข้อเสนอแนะใดๆ แนะนำได้ที่นี่
- ปุ่มรูปหัวใจใต้โพส แต่ละโพส ท่านสามารถกดเพื่อสื่อถึงคนโพสนั้นถูกใจท่าน
- ห้ามลง E-mail, เบอร์โทรส่วนตัว, Line id หรือข้อมูลส่วนตัวอื่นๆ เพื่อป้องกันการแอบอ้างและโฆษณาแฝง โดยสามารถติดต่อสมาชิกท่านอื่นผ่านระบบ PM ของบอร์ด
- ท่านสามารถปิดการแจ้งนี้ได้ ที่มุมขวาของกล่องข้อความนี้
บุคคลทั่วไปสามาเข้าสู่ระบบ ด้วย Account ของ FaceBook ได้แล้ว คลิกที่นี่ได้เลย
วิธีการ สร้าง button เพื่อเปิด view พร้อมอ้างอิงเลขที่ sale order
กฎการใช้บอร์ด
หมวดนี้สำหรับนักพัฒนา
ลงโค้ดอย่าลืมครอบโค้ด เพื่อการแสดงผลที่อ่านง่ายสำหรับคนตอบ
หมวดนี้สำหรับนักพัฒนา
ลงโค้ดอย่าลืมครอบโค้ด เพื่อการแสดงผลที่อ่านง่ายสำหรับคนตอบ
วิธีการ สร้าง button เพื่อเปิด view พร้อมอ้างอิงเลขที่ sale order
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้
Re: วิธีการ สร้าง button เพื่อเปิด view พร้อมอ้างอิงเลขที่ sale order
มันมี 2 ทางเลือก ที่คุณจะง่ายต่อการติดต่อกับผู้ใช้
ทางเลือกที่ 1 :
เมาส์คลิกที่ current row แล้ว popup windows product properties ขึ้นมา ในรูปแบบของ formview ใน ฟอร์มวิวจะมี one2many---- โยงไปที่ bom_ids
ทางเลือกที่ 2 :
เมาส์คลิกที่ ปุ่ม "BOM" แล้วไปเรียก Action view มาใช้ ซึ่งตัว Action นี้จะผูกกับ formview ไหน
คุณเลือกทางไหนครับ ? ไว้ผมจะมาลงโค๊ด ให้เป็นแนวทาง
ทางเลือกที่ 1 :
เมาส์คลิกที่ current row แล้ว popup windows product properties ขึ้นมา ในรูปแบบของ formview ใน ฟอร์มวิวจะมี one2many---- โยงไปที่ bom_ids
ทางเลือกที่ 2 :
เมาส์คลิกที่ ปุ่ม "BOM" แล้วไปเรียก Action view มาใช้ ซึ่งตัว Action นี้จะผูกกับ formview ไหน
คุณเลือกทางไหนครับ ? ไว้ผมจะมาลงโค๊ด ให้เป็นแนวทาง
[b][color=#008000]รับปรึกษาปัญหาเทคนิค[/color] *** สายเซ็นผิดกฏ *** [/b]
Re: วิธีการ สร้าง button เพื่อเปิด view พร้อมอ้างอิงเลขที่ sale order
ขอบคุณครับ
สำหรับ ชุดนี้อยากได้ แนวทาง กดปุ่ม มากกว่า แต่จริงๆ ก็ได้ทั้ง 2 แบบ เพราะผลออกมาเหมือนกัน
จะรอศึกษา code นะครับ
สำหรับ ชุดนี้อยากได้ แนวทาง กดปุ่ม มากกว่า แต่จริงๆ ก็ได้ทั้ง 2 แบบ เพราะผลออกมาเหมือนกัน
จะรอศึกษา code นะครับ
Re: วิธีการ สร้าง button เพื่อเปิด view พร้อมอ้างอิงเลขที่ sale order
logic ที่ว่า 1 product -->สามารถมี Bom มากกว่า 1 รายการ
เพราะฉะนั้นจะให้ popup เป็น form view เลยก็ไม่ได้ เลยจะต้องสั่งให้แสดงเป็น tree ก่อน
1. ที่ class 'sale.order.line' ใส่โค๊ดดังนี้
*******************************************************************************************************************
2. ที่ sale_view.xml ใส่โค๊ดเพิ่มเติมใน tag <button name="action_view_bom" type="object" string="BOM" />
ได้ล่ะครับ ไว้วันหลัง ผมจะมาเพิ่มอีกวิธี คือ คลิกที่ current row เกริ่นก่อนว่า หลักการไม่ต่างกันมากครับ
เพราะฉะนั้นจะให้ popup เป็น form view เลยก็ไม่ได้ เลยจะต้องสั่งให้แสดงเป็น tree ก่อน
1. ที่ class 'sale.order.line' ใส่โค๊ดดังนี้
โค้ด: เลือกทั้งหมด
def action_view_bom(self, cr, uid, ids, context=None):
tmpl_obj = self.pool.get("product.template")
products = set()
for product in self.browse(cr, uid, ids, context=context):
products.add(product.product_tmpl_id.id)
result = tmpl_obj._get_act_window_dict(cr, uid, 'mrp.product_open_bom', context=context)
# bom specific to this variant or global to template
domain = [
'|',
('product_id', 'in', ids),
'&',
('product_id', '=', False),
('product_tmpl_id', 'in', list(products)),
]
result['context'] = "{}"
result['domain'] = str(domain)
result['target'] = "new"
return result *******************************************************************************************************************
2. ที่ sale_view.xml ใส่โค๊ดเพิ่มเติมใน tag <button name="action_view_bom" type="object" string="BOM" />
ได้ล่ะครับ ไว้วันหลัง ผมจะมาเพิ่มอีกวิธี คือ คลิกที่ current row เกริ่นก่อนว่า หลักการไม่ต่างกันมากครับ
[b][color=#008000]รับปรึกษาปัญหาเทคนิค[/color] *** สายเซ็นผิดกฏ *** [/b]
ผู้ใช้งานขณะนี้
กำลังดูบอร์ดนี้: 4 และ บุคคลทั่วไป 0 ท่าน
Log in with LINE
