Lab 2 · ทฤษฎีที่เกี่ยวข้อง: บทที่ 2

ตั้งค่า Master Data ใน Odoo

ก่อนทำธุรกรรมใด ๆ ต้องมี "ฐานข้อมูลอ้างอิง" ให้ระบบใช้ก่อน — Lab นี้สร้าง Company, Warehouse, Product, และ Contact ซึ่งเทียบเท่ากับ Organizational Data และ Master Data ที่เรียนในบทที่ 2

🎯
เป้าหมาย: ตั้งค่าบริษัท คลังสินค้า สินค้าอย่างน้อย 3 รายการ (แต่ละ material type) และผู้ติดต่อ (ลูกค้า+ซัพพลายเออร์) ให้พร้อมใช้ใน Lab 3-7

1Company Settings ≈ Client + Company Code

ไปที่ Settings → General Settings → Companies — ในองค์กรขนาดเล็กแบบ Lab นี้ จะมี Company เดียว (Odoo รองรับ multi-company แต่ไม่จำเป็นสำหรับ Lab) ตั้งชื่อบริษัท ที่อยู่ สกุลเงินหลัก (ตั้งเป็น THB) และประเทศ

จุดที่ Odoo ต่างจาก SAP อย่างมีนัยสำคัญ
SAP แยก Client (สูงสุด — รวมทั้งองค์กร) ออกจาก Company Code (แต่ละบริษัทลูก) อย่างเคร่งครัด — โครงสร้างข้อมูลเกือบทุกตัวต้องระบุว่าอยู่ใน company code ไหน Odoo ใช้โมเดล Company เดียวที่แบนกว่า (multi-company คือหลาย record ของ res.company ที่เชื่อมกันแบบลูกผสม ไม่ได้มีชั้น "client" แยกต่างหาก) — เวลาข้ามระบบ ให้คิดว่า Odoo Company ≈ SAP Company Code และ "instance/database" ทั้งฐานข้อมูลของ Odoo ≈ SAP Client

2Warehouse & Locations ≈ Plant + Storage Location

ขั้นตอน
  1. เปิดแอป Inventory → Configuration → Warehouses
  2. ดู Warehouse เริ่มต้นที่ระบบสร้างให้ (มักชื่อ "WH") — เทียบเท่า Plant ในบทที่ 2/4a
  3. ไปที่ Configuration → Locations เพื่อดูโครงสร้าง location แบบต้นไม้ที่ Odoo สร้างอัตโนมัติ: WH/Stock, WH/Input, WH/Output, WH/Quality Control — สังเกตว่า WH/Stock ≈ Storage Location แบบ unrestricted use, WH/Quality Control ≈ สถานะ in quality inspection ในบทที่ 4a
  4. ลองสร้าง location ย่อยใหม่ภายใต้ WH/Stock ชื่อ "Shelf A1" เพื่อจำลอง storage location ละเอียดระดับ SAP
ข้อสังเกตเชิงโครงสร้าง
Odoo ไม่แยก "สถานะสต็อก" (unrestricted/inspection/blocked) เป็น attribute ของ quantity เหมือน SAP แต่ใช้ Location ที่ต่างกัน แทนสถานะที่ต่างกัน — การย้ายวัสดุจาก "In Quality Inspection" ไป "Unrestricted Use" ใน Odoo คือการทำ Internal Transfer จาก WH/Quality Control ไป WH/Stock นั่นเอง เป็นตัวอย่างที่ดีของหลักการเดียวกัน (สถานะของวัสดุ) ที่ระบบสองระบบเลือกโมเดลข้อมูลต่างกันไปใช้แทน

3Product ≈ Material Master

เปิด Inventory → Products → Products (หรือ Sales/Purchase app ก็เข้าถึงรายการเดียวกันได้ — Odoo ใช้ product model เดียวข้ามทุกแอป) สร้างสินค้าอย่างน้อยสามรายการที่สะท้อน Material Type จากบทที่ 2:

สินค้าตัวอย่างProduct Type ใน Odooเทียบเท่า SAP Material Type
"Bicycle Frame — Aluminum"Storable ProductRaw Material (ซื้อจากซัพพลายเออร์ ใช้ในการผลิต)
"Touring Bike 350"Storable ProductFinished Goods (ผลิตเอง ขายให้ลูกค้า)
"Bike Maintenance Service"Serviceไม่มีคู่ตรงใน material type แต่ใกล้เคียง Service Material
ฟิลด์สำคัญที่ต้องตั้งสำหรับแต่ละสินค้า
  • Product Type = Storable Product (ติดตามสต็อก) — เทียบเท่าการมี material master กับ item category "L" (Stock Item) ในบทที่ 5a
  • Sales Price / Cost — เทียบเท่า pricing conditions บทที่ 3a/4a
  • Product Category — กำหนด valuation account ที่ผูกกับสินค้ากลุ่มนี้ (เทียบเท่า Valuation Class ในบทที่ 4a)
  • แท็บ Purchase — เพิ่ม Vendor Pricelist (เทียบเท่า Purchasing Info Record บทที่ 4a)

4Contacts ≈ Customer Master + Vendor Master (รวมเป็นหนึ่ง!)

ความต่างเชิงปรัชญาที่สำคัญที่สุดของ Lab นี้
SAP แยก Customer Master กับ Vendor Master เป็นสอง object คนละชนิดอย่างเด็ดขาด (บทที่ 3a และ 4a) — Odoo ใช้โมเดลเดียวคือ Contact (res.partner) แล้วติ๊กว่า contact รายนั้น "Is a Customer" และ/หรือ "Is a Vendor" ได้พร้อมกัน บริษัทเดียวกันจึงเป็นทั้งลูกค้าและซัพพลายเออร์ของเราได้ในเรคคอร์ดเดียว (พบได้จริงในธุรกิจที่ซื้อ-ขายกับคู่ค้ารายเดิม) — ข้อดีคือลดข้อมูลซ้ำซ้อน ข้อเสียคือ Odoo ไม่มี การแยกส่วนข้อมูลแบบ General/Accounting/Sales Area Data สามชั้นเหมือน Customer Master ของ SAP (บทที่ 3a) ทุกอย่างอยู่ในฟอร์มเดียว
ขั้นตอน
  1. เปิด Contacts app (หรือ Sales → Orders → Customers)
  2. สร้าง Contact ใหม่: "Rocky Mountain Bikes" — ติ๊ก Customer เท่านั้น
  3. สร้าง Contact ใหม่อีกอัน: "Spy Gear Supplies" — ติ๊ก Vendor เท่านั้น
  4. ในแท็บ Sales & Purchase ของแต่ละ Contact ตั้งค่า Payment Terms (เทียบเท่า payment terms ใน Accounting Data บทที่ 3a/4a)
  5. สังเกตฟิลด์ Credit Limit ในแท็บ Sales — เทียบเท่า Credit Management Master Record บทที่ 3a แต่ทำงานเป็นแค่ "คำเตือน" ไม่ใช่ hard block เหมือนกลไก Credit Control Area เต็มรูปแบบของ SAP

5Pricelist ≈ Pricing Conditions

เปิด Sales → Configuration → Pricelists (ต้องเปิดใช้งานฟีเจอร์ Pricelists ใน Settings ก่อน) — สร้าง Pricelist ใหม่ที่ให้ส่วนลด 5% สำหรับลูกค้ากลุ่มขายส่ง แล้วผูกกับ Contact "Rocky Mountain Bikes" ที่สร้างไว้ — นี่คือแนวคิดเดียวกับ Pricing Conditions ในบทที่ 3a (gross price, discount) แต่ Odoo รวมไว้เป็น object เดียวที่จัดการง่ายกว่าระบบ condition record หลายชั้นของ SAP

เช็คลิสต์ก่อนไป Lab 3
  • ตั้งค่า Company พร้อมสกุลเงิน THB
  • สำรวจโครงสร้าง Warehouse/Location และสร้าง location ย่อยอย่างน้อย 1 ตำแหน่ง
  • สร้างสินค้าอย่างน้อย 3 รายการ ครบทั้ง raw material, finished good, service
  • สร้าง Contact อย่างน้อย 1 Customer และ 1 Vendor
  • สร้าง Pricelist อย่างน้อย 1 รายการ