รูปภาพแจ้งข่าว ทางเว็บบอร์ด openerpthailand.org ได้เปลี่ยนระบบเว็บบอร์ด ใหม่เป็น phpBB 3.1
  1. บุคคลทั่วไป จะไม่สามารถเข้าอ่านกระทู้บางบอร์ด แนะนำให้ท่าน สมัครสมาชิกคลิกตามลิงค์นี้
  2. สมาชิกใหม่ ถ้ายังไม่ได้แนะนำตัวจะไม่สามารถ ตั้งกระทู้ และ ดาวน์โหลด ไฟล์จากเว็บบอร์ดได้ ท่านจำเป็นต้องแนะนำตัวที่หมวดนี้
  3. ถ้ามีปัญหาการใช้งาน หรือ ข้อเสนอแนะใดๆ แนะนำได้ที่นี่
  4. ปุ่มรูปหัวใจใต้โพส แต่ละโพส ท่านสามารถกดเพื่อสื่อถึงคนโพสนั้นถูกใจท่าน
  5. ห้ามลง E-mail, เบอร์โทรส่วนตัว, Line id หรือข้อมูลส่วนตัวอื่นๆ เพื่อป้องกันการแอบอ้างและโฆษณาแฝง โดยสามารถติดต่อสมาชิกท่านอื่นผ่านระบบ PM ของบอร์ด
  6. ท่านสามารถปิดการแจ้งนี้ได้ ที่มุมขวาของกล่องข้อความนี้

บุคคลทั่วไปสามาเข้าสู่ระบบ ด้วย Account ของ FaceBook ได้แล้ว คลิกที่นี่ได้เลย

สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

หมวดนี้สำหรับนักพัฒนา Customize & Develop ปรับแต่งแก้ไขโค้ด รายงาน พัฒนาโมดูล ปรึกษาโค้ด ได้ที่หมวดนี้
กฎการใช้บอร์ด
หมวดนี้สำหรับนักพัฒนา
ลงโค้ดอย่าลืมครอบโค้ด เพื่อการแสดงผลที่อ่านง่ายสำหรับคนตอบ
ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

โพสต์โดย ntnw » อังคาร 02 มิ.ย. 2015 7:28 pm

ช่วยดู code ให้ด้วยครับ หรือมีวิธีไหนที่ดีกว่านี้
ใน xml
<button name="price_change" string="Refresh" type="object"/>

ใน .py

โค้ด: เลือกทั้งหมด

    def price_change(self, cr, uid, ids, context=None):
        price = self.browse(cr, uid, ids, context=context).sqm_price + self.browse(cr, uid, ids, context=context).process_cost
        return self.write(cr, uid, ids, {'price_unit': price}, context=context)


รูปแนบครับ คืออยากให้ เมื่อกดปุ่ม "Refresh" แล้วให้เอาราคา Glass Price + กับ ราคา Process Cost แล้วนำไป updated ใส่ใน Price Unit
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

kitcle
โพสต์: 258
ลงทะเบียนเมื่อ: เสาร์ 22 ธ.ค. 2012 8:15 am

Re: สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

โพสต์โดย kitcle » อังคาร 02 มิ.ย. 2015 8:30 pm

ให้ Coding ประมาณนี้ครับ
;)

โค้ด: เลือกทั้งหมด


    def price_change(self, cr, uid, ids, context=None):
      obj = self.browse(cr, uid, ids[0], context=context)
      if obj:
         price = obj.sqm_price +  obj.process_cost
         return self.write(cr, uid, ids, {'price_unit': price}, context=context)   
      return True
[b][color=#008000]รับปรึกษาปัญหาเทคนิค[/color] *** สายเซ็นผิดกฏ *** [/b]

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

โพสต์โดย ntnw » อังคาร 02 มิ.ย. 2015 9:19 pm

ลองแล้ว นิ่ง ครับ ไม่มีอะไรเปลี่ยนแปลง

โค้ด: เลือกทั้งหมด

'sqm_price': fields.float('Glass Price', required=True, digits_compute= dp.get_precision('Product Price'), readonly=True, states={'draft': [('readonly', False)]}),
'price_unit': fields.float('Price Unit', required=True, digits_compute= dp.get_precision('Product Price'), readonly=True, states={'draft': [('readonly', False)]}),
'process_cost':fields.function(_get_process_cost, string='Process Cost', type='float', store=True,),


เอา Field มาให้ดู
ลองทำ on_change แก้ไขอะไรซักอย่างแล้วส่งค่า sqm_price กับ process_cost ไป บวกกัน ได้ครับ แต่ทำโดย ไม่มี change ให้กดปุ่มเรียก function เลย นิ่งสนิท

kitcle
โพสต์: 258
ลงทะเบียนเมื่อ: เสาร์ 22 ธ.ค. 2012 8:15 am

Re: สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

โพสต์โดย kitcle » อังคาร 02 มิ.ย. 2015 10:11 pm

'process_cost':fields.function(_get_process_cost, string='Process Cost', type='float', store=True,),

ฟิลด์ จะต้อง มีการ แก้ไข อะไรสักอย่าง ให้ edit change ของ พารามิเตอร์ก่อนครับถึงมีการเปลี่ยนแปลงค่า .. เพราะ ฟิลด์ฟังกชั่น เชทค่าเป็น Store =True

โค้ด: เลือกทั้งหมด

    def price_change(self, cr, uid, ids, context=None):
      obj = self.browse(cr, uid, ids[0], context=context)
      if obj:
         price = obj.sqm_price + 1
         return self.write(cr, uid, ids, {'price_unit': price}, context=context)   
      return True
[b][color=#008000]รับปรึกษาปัญหาเทคนิค[/color] *** สายเซ็นผิดกฏ *** [/b]

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

โพสต์โดย ntnw » พุธ 03 มิ.ย. 2015 9:00 am

ไม่แน่ใจว่าเกิดจากอะไรแน่ เพราะ field Price_unit เป็น float ธรรมดา ไม่ได้เป็น Function และลอง update โดย ใช้
Price_unit = 10
เลย โดยไม่ผ่านตัวแปลหรือสูตรใด ๆ ก็ไม่ผ่าน มันนิ่งมาก
จะลองหาวิธีดูอีกซักวัน ถ้าไม่ได้

สงสัยต้องยอมให้ update ที่ subtotoal เลย ข้อเสียคือ มันต้องไปตามแก้เรื่องราคา ที่ invoice ด้วย ถ้าไม่ update price_unit เสียแต่ตอนนี้

ภาพประจำตัวสมาชิก
chbbk
โพสต์: 1362
ลงทะเบียนเมื่อ: จันทร์ 08 ก.ย. 2014 10:42 am

Re: สร้าง button + function เพื่อให้ update filed ไม่ผ่าน

โพสต์โดย chbbk » พุธ 03 มิ.ย. 2015 10:52 am

ลอง log ดูค่าก่อนสั่ง write ดูค่ะว่าค่ามาถูกต้องมั้ย และมันเข้า write ของโมเดลนั้นจริงหรือเปล่า


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 4 และ บุคคลทั่วไป 0 ท่าน