หน้า 1 จากทั้งหมด 3

Odoo V8 ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พุธ 16 ก.ย. 2015 9:22 am
โดย noktualek
ลองตั้งชื่อซ้ำ โดยใช้ข้อมูลเหมือน ๆ กันปรากฏว่าซ้ำกันได้
- ทำยังไงไม่ให้ซ้ำกันครับ
- มีข้อดีอย่างไรบ้าง
- ที่เป็นข้อเสียคือ มีข้อมูลซ้ำ ๆ อาจจะเกิดปัญหาอื่น ๆ ตามมา

เดียวขอลองส่วนอื่น ๆ ด้วยว่าซ้ำกันได้อีกหรือเปล่า

ขอบคุณครับ

Re: ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พุธ 16 ก.ย. 2015 3:03 pm
โดย kitcle
เพราะตัว standard ของ class res_partner() มันทำมาง่ายๆครับ
ไม่อยากให้ซ้ำก็ต้องใช้ code ล่างนี้เสริมเข้าไป

_sql_constraints = [('name_uniq','unique(name)', 'Customer's name must be unique!')]

------------------------------------------------------------------------------
คลาสอื่นๆ มันก้ซ้ำได้หมดแหล่ะครับ เพราะเขาทำมาตรฐานมา ไม่ได้ เคร่งว่า Name จะเป็น Primary key
odoo ใช้ Filed id เป็น PK

ข้อเสีย คือ ยกตัวอย่างง่ายๆ คุณสร้างใบสั่งขาย อ้างอิง id : 1 name: ลูกค้า ก

3 วันต่อมา มีคนไปเปลี่ยน name ลูกค้า ก. เป็น xxxx และเมื่อกลับไป reprint เอกสารเดิม ชื่อลูกค้าเปลี่ยนไปแล้ว ทั้งๆที่ ยังอ้างอิง id : 1 เหมือนเดิม

หากคุณใช้ตัว odoo standard ตัวเอกสารที่เป็นกระดาษ hard copy คุณก็จะไม่เหมือนกัน ...เพราะฉะนั้น erp บางค่าย เข้า customize ให้ยก clone กลุ่มฟิลด์ ไปอยู่ในตารางงานขายด้วย

Re: ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พุธ 16 ก.ย. 2015 4:11 pm
โดย chaiyapon
ข้อดีคือ แก้ไขได้ครับ เพราะไม่ใช่ Primary key

Re: ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พุธ 16 ก.ย. 2015 7:53 pm
โดย noktualek
chaiyapon เขียน:ข้อดีคือ แก้ไขได้ครับ เพราะไม่ใช่ Primary key

ไม่ทราบว่าหากเราใช้ ชื่อ เป็น primary key จะแก้ไขชื่อทีหลังไม่ได้แล้วเหรอครับ แล้วโปรแกรมในท้องตลาดบ้านเรา ทำไมค่า default ชื่อ ต่าง ๆ ห้ามซ้ำกันครับ

ขอบคุณครับ

Re: ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พุธ 16 ก.ย. 2015 8:08 pm
โดย noktualek
ไปลองเล่นมา ดูเหมือนว่าการใช้ชื่อไร ซ้ำ ๆ กัน จะเกิดปัญหามากกว่าผลดี นะครับ หากข้อมูล เยอะ ๆ เช่น
- ค้นหายาก
- update ข้อมูล ผิดที่
- key แล้ว key อีก
- ทำงานซ้ำซ้อน และต้องมาแก้ไข หรือลบทีหลัง
- ข้อมูลมากขึ้นโดยไม่จำเป็น

อันนี้ลองไปเล่นมา
1 ชื่อสินค้า ซ้ำกันไปมาได้ ในร้านอาจจะมีสินค้าแค่ 2 ตัว อาจ key ซ้ำขึ้นมาอีก หากมีเป็น 100,000 รายการคงยากที่จะจัดการว่า มีตัวไหนซ้ำกัน ซ้ำกันที่ไหน !!

2 ชื่อลูกค้าซ้ำ หากเรียกเก็บเงินผิดคน หรือถูกคนแต่อยู่คนละบิล คนละคน ก็คงยุ่งยากน่าดู ต้องมานั่งหาลูกค้าชื่อนี้ เราไป คลิ๊กเลือกชื่ออันไหน เพราะอย่าลืมว่า เราอาจจะไม่ได้ใช้งานแค่คนเดียว ..

3 ทำรายการ สินค้าตัวเดียว แต่ระบบ แยกคนละบันทัด ไม่รวมกันเป็น สินค้าตัวเดียว ทั้ง ๆ ที่ตัวเดียว รวมถึง ชื่อสินค้าซ้ำ เมื่อมารวม ๆ กันในบิล เดียว ยากแก่การตรวจสอบ การนับจำนวนของ มากเลยครับ


ไม่ทราบว่ายังมีส่วนอื่น ที่มีปัญหาในการใช้งานอีกหรือเปล่าครับ เหมือน odoo ตั้งใจให้ระบบเป็นแบบนี้ จริง ๆ เหรอครับ เหมือนจะเป็นข้อเสีย มากกว่าข้อดี อีกนะครับ แล้วที่เขาขึ้นระบบจริง ๆ เป็นแบบนี้ ด้วยป่าวครับ

ขอบคุณครับ

Re: Odoo V8 ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พฤหัสฯ. 17 ก.ย. 2015 1:48 am
โดย kitcle
แล้วที่เขาขึ้นระบบจริง ๆ เป็นแบบนี้ ด้วยป่าวครับ

- ขึ้นระบบจริงๆ จะแตกต่างจากตัว standard มากอยู่เหมือนกัน เช่น สินค้า จะต้องมี รหัสสินค้า ที่ต้องกำหนดให้ require = True
และสั่งให้ห้ามซ้ำกันด้วยคำสั่ง _sql_constraints = [ ]

- จากนั้น ในช่อง Name ก็จะใช้ฟังก์ชั่น def name_get(self, cr, user, ids, context=None): ในการ Concatenate Fileds มาแสดง
กล่าวคือ name_get() จะนำหลายๆฟิลด์ มารวมกันแสดงใน คอลัมน์ Name เช่นผมอยากให้ช่อง Name แสดง รหัสสินคา้ : ชื่อสินค้า
เพราะฉะนั้น ช่อง Name ไม่มีทางซ้ำกันแน่นอน เพราะมีรหัสสินค้า กำกับติดมาด้วย รวมถึงการค้นหา

-name_get() และ _sql_constraints = [ ] เอาไปประยุกต์ใช้แทบทุกงานของ odoo ครับ


ตัว Standard ที่ปล่อยมาให้พร้อมใช้ฟรี มันอาจจะไม่ตอบโจทย์ในชีวิตจริงเหมือน erp ใหญ่ดังๆ อื่น ๆ..ที่ฉีกซองเติมน้ำร้อนแล้วทานได้เลย แต่ถ้าพูดถึง Framework ลูกล่อลูกชนการ coding โดยส่วนตัวก็ผ่านการ อิมพลิเมนต์ โปรแกรมใหญ่มา กล้ายื่นยันว่า odoo โคตรยีดหยุ่นและน่าทึ่งสุดๆในลูกเล่นการ coding แล้วครับในบรรดาการพัฒนา

ยกตัวอย่างการ Concatenate ของชื่อลูกค้า

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

    def name_get(self, cr, uid, ids, context=None):
        if context is None:
            context = {}
        if isinstance(ids, (int, long)):
            ids = [ids]
        res = []
        for record in self.browse(cr, uid, ids, context=context):
            name = record.name
            if record.parent_id and not record.is_company:
                name = "%s, %s" % (record.parent_name, name)
            if context.get('show_address_only'):
                name = self._display_address(cr, uid, record, without_company=True, context=context)
            if context.get('show_address'):
                name = name + "\n" + self._display_address(cr, uid, record, without_company=True, context=context)
            name = name.replace('\n\n','\n')
            name = name.replace('\n\n','\n')
            if context.get('show_email') and record.email:
                name = "%s <%s>" % (name, record.email)
            res.append((record.id, name))
        return res

Re: Odoo V8 ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พฤหัสฯ. 17 ก.ย. 2015 7:51 am
โดย noktualek
ดังนั้นพอจะสรุปได้ว่า odoo standard หากนำไปใช้งานจริง ๆ ย่อมมีปัญหาอื่น ๆ อีกมากมายในเรื่องของข้อมูลที่ซ้ำกัน ซึ่งแบบนี้ไม่น่าจะตอบโจทย์เรื่องการนำไปใช้ฟรีได้ ต้องให้ผู้เชี่ยวชาญมาพัฒนาเท่านั้น ผู้ที่สนใจอยากนำไปใช้งานเอง เพื่อประหยัดงบ คงไม่น่าใช้งานได้ นอกจากมีสินค้า ลูกค้า ที่สามารถตรวจสอบด้วยตัวเองได้ว่าซ้ำกันหรือไม่

ลองไปทดสอบ
- odoo รุ่นทดลองใช้บนเว็บของ odoo เลยที่เป็น demo ก็เป็นแบบเดียวกัน ข้อมูลสินค้า ชื่อลูกค้า ชื่อสินค้าที่ซ้ำกันได้ กันใน invoice, ใน slip ของ pos ก็ยังมีชื่อสินค้าที่ซ้ำกันอีก ซึ่งรุ่น demo สำหรับบนเว็บ ไว้สำหรับใช้งานจริง ๆ ก็ยังเป็น
- พอดีทดสอบแค่เล็ก ๆ น้อย ๆ ไม่ได้ไปถึงผู้จัดจำหน่ายสินค้า ซึ่งคิดว่าคงซ้ำกันได้อีก

แอบแปลกใจว่า
- ตัวโปรแกรมทำไมมีค่า default เป็นแบบนี้ ตัว free trail ที่ให้เช่าใช้งานจริงของ odoo ที่เป็น demo (ไปลองเล่นมา) ก็เป็นแบบนี้ด้วย แล้วเขาใช้งานกันไปแบบนี้จริงๆ เหรอ
- นอกจากข้อมูลที่ซ้ำกันได้แล้ว มีหัวข้ออะไรอีกบ้างครับที่ยังเป็นปัญหาหลัก ๆ ของ odoo
- มี addon ที่ช่วยจัดการในส่วนนี้ป่าวครับ
- กำลังมองว่า odoo เหมือนจะฟรี แต่หากให้ใช้งานได้จริง ๆ ต้องว่าจ้างโปรแกรมเมอร์เขียนโปรแกรมให้ใหม่เท่านั้น

ขอบคุณครับ

Re: Odoo V8 ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พฤหัสฯ. 17 ก.ย. 2015 10:00 am
โดย chaiyapon
ขอเสริมจากการใช้งานจริงนะครับใน ระบบจัดซื้อ+stock เรื่องของข้อมูลซ้ำก็ตามที่คุณ noktuaklek บอกครับว่าผู้ใช้ต้องเข้าใจระบบครับเพราะข้อมูลในตัวตรางสินค้า หน่วยสินค้า คลังสินค้า อื่นๆที่เป็นตารางหลักสามารถใช้ชื่อซ้ำกันได้หมดครับ เนื่องจาก odoo ใช้ Filed id เป็น PK ตามที่คุณ kitcle บอกครับ วิธีแก้ปัญหาของผมคือมีหนึ่งคนเป็นคนคีย์ข้อมูลเหล่านี้ครับซึ่งต้องมีความเข้าใจในตัวระบบ ผมให้เจ้าของแต่ละแผนกเป็นผู้รับผิดชอบครับ อย่างจัดซื้อ จะมีหน้าที่บันทึกข้อมูลวัตถุดิบครับ ฝ่ายขายดูแลข้อมูลสินค้าครับก่อนที่จะบันทึกข้อมูลก็ให้เอาชื่อไปว่างที่ช่องค้นหาก่อนครับว่ามีซ้ำกันหรือไม่ ครับ ปัจจุบันยังไม่พบปัญหาเรื่องข้อมูลซ้ำครับ

ถามว่า หากเราใช้ ชื่อ เป็น primary key จะแก้ไขชื่อทีหลังไม่ได้แล้วเหรอครับ ถูกต้องครับไม่สามารถแก้ไขได้ เพราะ primary key ห้ามแก้ไขครับถ้าแก้ได้มั่วกันไปใหญ่ครับ ส่วนว่าทำไมโปรแกรมในท้องตลาดบ้านเราค่า default ชื่อ ต่าง ๆ ห้ามซ้ำกัน อันดับแรกก็ป้องกันข้อมูลซ้ำกันครับ แต่แก้ไขได้เพราะชื่อส่วนใหญ่ไม่ใช่ primary key ครับ

- ตัวโปรแกรมทำไมมีค่า default เป็นแบบนี้ ตัว free trail ที่ให้เช่าใช้งานจริงของ odoo ที่เป็น demo (ไปลองเล่นมา) ก็เป็นแบบนี้ด้วย แล้วเขาใช้งานกันไปแบบนี้จริงๆ เหรอ
*** ความคิดส่วนตัวผมคิดว่ามีนะครับที่ใช้งานแบบนี้ ที่จริงเป็นมาตั้งแต่ v.6 v.7 odoo ส่วนตัวที่เสียตังค์ซื้อผมคิดว่าก็น่าจะเป็นนะครับ อีกอย่างขึ้นอยู่กับความต้องการของผู้ใช้งานด้วย
- นอกจากข้อมูลที่ซ้ำกันได้แล้ว มีหัวข้ออะไรอีกบ้างครับที่ยังเป็นปัญหาหลัก ๆ ของ odoo
*** สำหรับผมคงไม่ใช้ปัญหานะครับแต่เป็นเรื่องของการตอบโจทย์ความต้องการมากกว่าครับ เหมือนที่คุณ kitcle ว่าครับ ODOO คงไม่ใช่อะไรที่ฉีกซองเติมน้ำร้อนแล้วทานได้เลย แต่เป็น แบบว่าเส้นเล็กไม่ตกไม่งอกเอาหมูผักเยอะๆ ประมาณนี้ครับ ต้องเอาปรับใช้เองพอสมควรครับ
- มี addon ที่ช่วยจัดการในส่วนนี้ป่าวครับ
*** ตอนนี้ยังไม่มีครับแต่ข้างหน้าก็อาจไม่แน่เพราะ addon ดีๆออกมาเรื่อยๆครับหรือจะแก้แบบ คุณ kitcle แนะนำก็ได้นะครับ
- กำลังมองว่า odoo เหมือนจะฟรี แต่หากให้ใช้งานได้จริง ๆ ต้องว่าจ้างโปรแกรมเมอร์เขียนโปรแกรมให้ใหม่เท่านั้น
*** ถามว่าต้องจ้างไหมขึ้นอยู่กับความต้องการของผู้ใช้ครับว่า ต้องการเพิ่มมากน้อยแค่ไหน หรือจะอบรมพื้นฐานเรื่อง code ในบอร์ดก็คนรับอยู่นะครับ ผมมอง opensoft ขนาดนี้นะตอนนี้คงไม่มีตัวไหนสู้ odoo ได้ ในเรื่องค่าใช้จ่าย ห่างกันประมาณ 10 เท่าครับ

ปล.ทั้งหมดมาจากความรู้อันน้อยนิดและความคิดเห็นส่วนตัวครับ ผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วย (เป็นโพสต์ที่ยาวที่สุดของผม)

Re: Odoo V8 ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พฤหัสฯ. 17 ก.ย. 2015 2:39 pm
โดย kitcle
คุณ chaiyapon ตอบแทน และขยันพิมพ์ แทนผมได้ดีมากๆ ^_^

ขยันสอบถามหัวข้อ Technical เยอะๆครับ ผมจะได้เข้ามาตอบบ้าง 555

Re: Odoo V8 ทำไม ชื่อ customer จึงซ้ำกันได้ครับ

โพสต์แล้ว: พฤหัสฯ. 17 ก.ย. 2015 3:07 pm
โดย noktualek
chaiyapon เขียน:ขอเสริมจากการใช้งานจริงนะครับใน ระบบจัดซื้อ+stock เรื่องของข้อมูลซ้ำก็ตามที่คุณ noktuaklek บอกครับว่าผู้ใช้ต้องเข้าใจระบบครับเพราะข้อมูลในตัวตรางสินค้า หน่วยสินค้า คลังสินค้า อื่นๆที่เป็นตารางหลักสามารถใช้ชื่อซ้ำกันได้หมดครับ เนื่องจาก odoo ใช้ Filed id เป็น PK ตามที่คุณ kitcle บอกครับ วิธีแก้ปัญหาของผมคือมีหนึ่งคนเป็นคนคีย์ข้อมูลเหล่านี้ครับซึ่งต้องมีความเข้าใจในตัวระบบ ผมให้เจ้าของแต่ละแผนกเป็นผู้รับผิดชอบครับ อย่างจัดซื้อ จะมีหน้าที่บันทึกข้อมูลวัตถุดิบครับ ฝ่ายขายดูแลข้อมูลสินค้าครับก่อนที่จะบันทึกข้อมูลก็ให้เอาชื่อไปว่างที่ช่องค้นหาก่อนครับว่ามีซ้ำกันหรือไม่ ครับ ปัจจุบันยังไม่พบปัญหาเรื่องข้อมูลซ้ำครับ

ถามว่า หากเราใช้ ชื่อ เป็น primary key จะแก้ไขชื่อทีหลังไม่ได้แล้วเหรอครับ ถูกต้องครับไม่สามารถแก้ไขได้ เพราะ primary key ห้ามแก้ไขครับถ้าแก้ได้มั่วกันไปใหญ่ครับ ส่วนว่าทำไมโปรแกรมในท้องตลาดบ้านเราค่า default ชื่อ ต่าง ๆ ห้ามซ้ำกัน อันดับแรกก็ป้องกันข้อมูลซ้ำกันครับ แต่แก้ไขได้เพราะชื่อส่วนใหญ่ไม่ใช่ primary key ครับ

- ตัวโปรแกรมทำไมมีค่า default เป็นแบบนี้ ตัว free trail ที่ให้เช่าใช้งานจริงของ odoo ที่เป็น demo (ไปลองเล่นมา) ก็เป็นแบบนี้ด้วย แล้วเขาใช้งานกันไปแบบนี้จริงๆ เหรอ
*** ความคิดส่วนตัวผมคิดว่ามีนะครับที่ใช้งานแบบนี้ ที่จริงเป็นมาตั้งแต่ v.6 v.7 odoo ส่วนตัวที่เสียตังค์ซื้อผมคิดว่าก็น่าจะเป็นนะครับ อีกอย่างขึ้นอยู่กับความต้องการของผู้ใช้งานด้วย
- นอกจากข้อมูลที่ซ้ำกันได้แล้ว มีหัวข้ออะไรอีกบ้างครับที่ยังเป็นปัญหาหลัก ๆ ของ odoo
*** สำหรับผมคงไม่ใช้ปัญหานะครับแต่เป็นเรื่องของการตอบโจทย์ความต้องการมากกว่าครับ เหมือนที่คุณ kitcle ว่าครับ ODOO คงไม่ใช่อะไรที่ฉีกซองเติมน้ำร้อนแล้วทานได้เลย แต่เป็น แบบว่าเส้นเล็กไม่ตกไม่งอกเอาหมูผักเยอะๆ ประมาณนี้ครับ ต้องเอาปรับใช้เองพอสมควรครับ
- มี addon ที่ช่วยจัดการในส่วนนี้ป่าวครับ
*** ตอนนี้ยังไม่มีครับแต่ข้างหน้าก็อาจไม่แน่เพราะ addon ดีๆออกมาเรื่อยๆครับหรือจะแก้แบบ คุณ kitcle แนะนำก็ได้นะครับ
- กำลังมองว่า odoo เหมือนจะฟรี แต่หากให้ใช้งานได้จริง ๆ ต้องว่าจ้างโปรแกรมเมอร์เขียนโปรแกรมให้ใหม่เท่านั้น
*** ถามว่าต้องจ้างไหมขึ้นอยู่กับความต้องการของผู้ใช้ครับว่า ต้องการเพิ่มมากน้อยแค่ไหน หรือจะอบรมพื้นฐานเรื่อง code ในบอร์ดก็คนรับอยู่นะครับ ผมมอง opensoft ขนาดนี้นะตอนนี้คงไม่มีตัวไหนสู้ odoo ได้ ในเรื่องค่าใช้จ่าย ห่างกันประมาณ 10 เท่าครับ

ปล.ทั้งหมดมาจากความรู้อันน้อยนิดและความคิดเห็นส่วนตัวครับ ผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วย (เป็นโพสต์ที่ยาวที่สุดของผม)


ขอบคุณครับนะครับ อธิบายได้เข้าใจง่ายดี เรื่องของคุณสมบัติของโปรแกรมและวิธีป้องกันปัญหา
- ข้อมูลซ้ำ
- การใช้คนในการจัดการป้องกันปัญหาของจุดที่โปรแกรมไม่มีคุณสมบัติป้องกัน

ซึ่งความคิดของผมนั้น ปัญหาข้อมูลซ้ำกันได้เป็นแหล่งผิดพลาดของข้อมูล ระบบควรทำเป็นค่า default ในการป้องกันไว้ ซึ่งโปรแกรมอื่น ๆ ในท้องตลาดเขาก็ทำจุดนี้ได้ดี

มองเหมือน odoo จะเอาใจคนใช้งานด้วยการรวบรวมสิ่งต่าง ๆ ให้เป็น odoo จนลืมรายละเอียดบางส่วนที่สำคัญเปล่าครับ แต่ก็ดีนะครับ รู้ไว้ก่อนว่าจะเป็นปัญหา ก็หาวิธีป้องกัน ด้วยการให้ความรู้ผู้ใช้ หรือว่าจ้างโปรแกรมเมอร์เขียนป้องกัน

พอดีกำลังหาโปรแกรม ไว้สำหรับ POS นะครับ เห็น odoo ฟรีเลยศึกษา เดียวคงรอ version ถัดไป แทน แต่ไม่รู้ว่า version 9 ตัวนี้จะฟรี หรือเสียเงิน ดูทิศทางแล้ว ใช้ได้ฟรี ๆ นี้คงเป็นไปได้ แต่ข้อจำกัดเยอะ

ปล
ก่อนเพิ่มชื่อต่าง ๆ ต้องค้นหาก่อนเหรอครับ แบบนี้ไม่เป็นการทำงานซ้ำซ้อนและทำให้เสียเวลาเหรอครับเพราะ แทนที่พิมพ์ข้อมลได้เลย ต้อง
1 คลิ๊ก ช่องค้นหา
2 พิมพ์
3 กดค้นหา
4 หากไม่เจอ ไปช่องเพิ่มรายการอีกครั้ง
5 ให้พิมพ์ใหม่
6 บันทึก

ซึ่งปกติหากมีส่วนของการป้องกันข้อมูลไว้แล้ว เราทำแค่
1 คลิกช่องเพิ่มรายการได้เลย
2 พิมพ์
3 กด save หากซ้ำโปรแกรมก็จะแจ้งว่าบันทึกไม่ได้
ขอบคุณครับ