|
|
|
ผมกำลังทำโปรเจค PHP เป็น ระบบ POS ผมอยากทราบว่าจะทำการพักบิลสินค้ายังไง |
|
|
|
|
|
|
|
การพักบิล คืออะไรครับ
|
|
|
|
|
Date :
2015-05-23 15:11:48 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เวลาขายสินค้า ถ้าลูกค้ายังไม่คิดตังแต่เรา ทำการยิงบาร์โค๊ดสินค้าไว้แล้ว เราต้องทำการ พักบิล นั้นไว้ก่อน เพื่อคิดลูกค้าคนต่อไปอ่ะครับ
|
|
|
|
|
Date :
2015-05-23 22:41:21 |
By :
kuanblock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การยิงบาร์โค้ดแล้วได้ id และรายละเอียดสินค้านั้นมา คุณก็เก็บลง db สิครับ
เหมือน shopping cart นั่นแหละ เก็บไว้ในตารางสักตารางที่สร้างมาเฉพาะเลย เช่น user_cart
ทีนี้ลูกค้าแต่ละคนที่หยิบของมาวาง ยิงบาร์โค้ดแล้ว ต้องการพักไปหยิบอย่างอื่น คุณก็แค่ทำแท็บเพิ่มหรืออะไรก็เรื่องของคุณ ให้มันเป็นอีกหน้าจอของลูกค้าอีกคน แค่นี้ก็ได้แล้ว ไม่เห็นต้องมีอะไรพิเศษ?
พอลูกค้าคนที่พักอยู่กลับมาจ่าย เราก็ดำเนินการต่อไปจนเสร็จแล้วปรับสถานะเป็นจ่ายแล้ว หรือย้ายทั้งหมดไปไว้ในตาราง รายการซื้อแล้ว อะไรแบบนี้ แล้วก็จบแท็บนั้นไปซะ.
|
|
|
|
|
Date :
2015-05-24 11:05:48 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ระบบ POS จริง ๆ แล้วไม่ได้คิดยากขนาดนั้นครับ
เพราะการยิงสินค้า แต่ละครั้ง แต่ละเจ้าก่อนจะกดคิดเงิน มันจะคิดระบบ ID BILLING ขึ้นมาควบคุมก่อน พร้อมใส่ Status ของแต่ละ BILLING
ผมจะยกตัวอย่างให้เห็นภาพง่าย ๆนะครับ
เปิดร้านมา มีลูกค้าเข้าร้าน เปิดระบบมาปั๊บ ระบบจะจัดคิวเอา ID BILLING มาไว้รอที่หน้าหลักแล้ว
เวลาเรายิงสินค้า หนึ่ง สอง หรือสามเข้าไป เราจะให้มันจะไปเก็บไว้ใน ฐานข้อมูลหรือเราจะพักไว้เป็น SESSION แล้วแต่สะดวก
พอเรากด จ่ายเงินกี่บาท ระบบจะทำการเซฟเข้าฐานข้อมูล พร้อมทั้งคำนวนเงินทอนอะไรให้เสร็จสรรพ
และทำการ สร้าง ID BILLING ใหม่ขึ้นมารอรับการยิงต่อไป
เมื่อเราจะทำการพักบิล มันก็แค่บอกให้ระบบทราบว่า โอเค เปิดบิลใหม่ แบบยังไม่จ่ายเงิน ID BILLING เก่านะ
ก็แค่สั่งให้ระบบมัน Gen IDBILLING ใหม่ มา แล้วก็ยิง ๆ จ่ายเงิน
พอกดปุ่มมาหา BILLING ที่ยังไม่จ่ายเงิน ก็มาดู Status มันอีกรอบว่า อันใหนยังไม่ได้จ่าย พอกดปั้บ ก็ไปดึงข้อมูลของ ID BILLING นี้มา
เห็นไม๊ ง่ายขึ้นหรือยัง .. นี่เอามาจากระบบที่ใช้งานอยู่เลย แหะๆ เผยแพร่สู่กัน
|
|
|
|
|
Date :
2015-05-24 16:06:18 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันอยู่ที่การออกแบบครับ เอาที่เข้าใจง่ายๆเลยนะ
ถ้าเก็บแบบเซสซั่น -- > รวบรวมรายการ -- > สร้างบิล --> เสร็จ
ถ้าเก็บแบบลงDB -- > สร้างบิล--> รวบรวมรายการ --> เสร็จ
ข้อดีข้อเสียมันก็ต่างกันนะ.. ถ้าจะเอามาพักบิลได้ก็แนะนำเก็บรายการลง DB ก่อนนี่เหละ แต่จะมีข้อเสียคือ บิลเสียจะเยอะ เช่น
ลูกค้าA เข้าร้าน เปิดบิล INV-0001 --> ระหว่างรอรายการลูกค้าB มาพอดี พักหน้าจอไปเปิดบิลให้ลูกค้าB INV-0002 ลูกค้าB ชำระเสร็จ หันกลับมาลูกค้า A หาย จะลบบิลทิ้งก็ไม่ได้ เพราะเลขมันรันไปแล้วจะทำให้เลขที่บิลกระโดด จำใจต้องตัดเป็นบิลเสียไป ทำให้เกิดความไม่สวยงามในทางบัญชี ประมาณนี้ครับ
|
|
|
|
|
Date :
2015-05-24 17:09:53 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะอย่างนั้นไงครับ ถึงได้มีการ Generate Billing ID
เมื่อทำการยกเลิก ก็คือยกเลิกเฉพาะรายการสินค้าที่จำหน่ายไปครับ
ส่วน BILLING ID นั้น ไม่ได้ถูกยกเลิกไปครับ
การทำระบบ POS มันคิดขั้นเดียว ชั้นเดียวไม่ได้ครับ เพราะมันซับซ้อน และความต้องการหลากหลายจริง ๆ
เมื่อยกเลิกรายการซื้อไป ระบบจะยกเลิกสินค้าที่ยิงไปทั้งหมด แต่ BILLING ID นั้น จะยังคงอยู่
ระบบจะนำไปใช้ต่อในรายการต่อไปได้น่ะครับ
|
|
|
|
|
Date :
2015-05-25 08:43:23 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|