มีงานหนึ่งที่ผมเขียนขึ้นมา คือระบบบริหารงานขายรถยนต์ มันเริ่มตั้งแต่ การตลาดจองรถ ได้แล้วเอามาลงในระบบ ให้เซลล์ขอล้อกเพื่อไปคุยกับลูกค้า ผ่านไปหนึ่งวันถ้าลูกค้าไม่ยอมจอง ก็จะปล่อยรถคันนั้นเข้าสู่ระบบให้เซลล์อื่นล้อกต่อไป โดยจะมีสิทธิ์ล้อกกันได้แค่คนละครั้ง ในหนึ่งเดือนเซลล์มีสิทธิ์ล้อก 4 สิทธิ์ ผ่านไปครึ่งเดือนถ้าไม่ใช้จะตัดทิ้ง 2 สิทธิ์ เซลล์บางท่านที่ขายดี สามารถขอเพิ่มสิทธิ์ผ่านระบบได้
เมื่อลูกค้าจอง ทางการตลาดก็จะสั่งสีรถไปทางสำนักงานใหญ่ แล้วเอารถคันที่เซลล์ล้อกไว้มาจัดสรรให้
รถจะมีสถานะตัวมันเองอยู่ 8 สถานะคือ
n+1 คือเป็นรถที่จะได้เดือนหน้า
n คือรถที่จะได้เดือนนี้
firm คือรถที่ยืนยันสีไปแล้วกับทางสำนักงานใหญ่
week คือรถที่ทราบว่าจะต้องลงสัปดาห์ที่เท่าไหร่ในเดือนปัจจุบัน
d/n คือรถที่ทราบวันลงแน่นอน
stock คือรถที่ลงแล้วและทราบเลขเครื่องเลขโครง
out คือรถที่ถูกจัดสรรค์ให้เซลล์แล้ว
unit paid คือรถที่ขายไปเรียบร้อย
รถพวกนี้เราไม่ได้ทราบสถานะมันทีเดียว แต่จะทยอยทราบ สำนักงานใหญ่จะส่งเอกสารมาเป็นระลอกๆ เราก็เอาข้อมูลที่ได้มาลงในระบบ แล้วมันจะคำณวนให้เองว่าสถานะอยู่ตรงไหน
เซลล์ได้รถก็จะซื้อของตกแต่งในระบบ ยืมป้ายแดงมาจากแคชเชียร์ เซลล์ทำใบปล่อยรถ การเงินเข้ามาออกใบเสร็จให้ ปล่อยรถไปแล้ว ทางฝ่ายทะเบียนก็เข้าสู่กระบวนการ ส่งจดป้ายป้ายทะเบียน ทวงป้ายแดงจากลูกค้า
ติดตามหลังการขาย 3 ระยะ CRM มาติดตามลูกค้าอีกระลอกเพื่อยืนยันว่าได้ของครบ เซลล์บริการดี ถ้ามีปัญหาระบบก็จะกระจายข้อความไปหาผู้ที่เกี่ยวข้อง เพื่อให้ช่วยกันตรวจสอบ
ในโปรแกรมนี้จะประกอบไปด้วย
-ระบบสต้อกรถ ของการตลาด
-ระบบล้อกรถ ของเซลล์
-ระบบจองรถ ของเซลล์
-ระบบคิว
-ระบบสต้อกของตกแต่งรถ ของ vdqi
-ระบบติดตั้งอุปกรณ์รถใหม่ และของแถม ของเซลล์
-ระบบปล่อยรถ ของเซลล์
-ระบบทะเบียน ของฝ่ายทะเบียน
-ระบบป้ายแดง ของแคชเชียร์
-ระบบใบเสร็จ ของการเงิน
-ระบบติดตามหลังการขาย ของเซลล์
-ระบบติดตามหลังการขายของ crl
-ระบบกระจายข่าวเมื่อเกิดปัญหาหลังการขาย
-ระบบรายงานต่างๆ
-ระบบติดตามเข้าเช็กระยะ
-ระบบแอดมิน
วันหนึ่งการตลาดได้จัดรถที่ถูกขายไปแล้ว ให้กับเซลล์คนหนึ่ง เซลล์ก็ไปสัญญากับลูกค้าเป็นดิบดี ต่อมาการตลาดตรวจพบว่า รถคันนี้ถูกขายไปแล้วนี่นา จึงแจ้งไปยังลูกค้าเพื่อขอโทษ ลูกค้าจะฆ่าเสียให้ได้
ผมหาบักของโปรแกรมไม่พบว่ารถที่ถูกขายไปแล้ว มันหลุดเข้าสู่ stock ได้อีกอย่างไร ทำไมมันหลุดมาได้แค่คันเดียว คันอื่นไม่ยอมเป็น
จนเมื่อวันนี้มาพบโค้ดตัวเองว่า ลืมเบรก
เอาเป็นว่าเป้าหมายบทความนี้ ก็เพื่อให้ท่านตระหนักถึงเบรก บ้างอย่าเหยียบคันเร่งจนลืมเบรก เดี๋ยวเหตุการณ์จะเหมือนข้างบน ลูกค้าจะฟ้อง สคบ เอา ตัวอย่างด้านล่างอาจจะไม่สัมพันธ์กับเหตุการณ์ด้านบนนัก คืออาจจะจินตนาการไม่ถูกว่ามันโยงกันได้อย่าง ท่านก็ไม่ต้องคิดมาก
ดูตัวอย่างนี้นะครับ
<?php switch( 1 ) { case 1: echo 'one'; case 2: echo 'two'; case 3: echo 'three'; } ?> |
ท่านคิดว่าผลลัพธ์มันจะออกมาเป็นอะไร ? น่าจะ one เนอะ
แต่ไม่ใช่เลย ผลลัพธ์ที่ออกมา เป็น onetwothree อย่าเชื่อผมทันที ลองเอาโค้ดนี้ไปรันดู
ลองสังเกตุดูนะครับ เมื่อมันพิจารณา case 1: ว่าเข้าเคสนี้ มันก็เอ็กโค่ค่า one ออกมา บรรทัดต่อมาแทนที่มันจะพิจารณาอีกครั้งว่า เข้า case 2: หรือเปล่า มันไม่พิจารณา มันข้ามไปเลย จนมาถึงบรรทัด echo ‘two’ แล้วก็บรรทัด echo ‘three’
แค่ลืมเบรกเคสแรกเท่านั้น มันทำหมดทุกเคสเลย โปรแกรมก็ไม่ได้ฟ้องเสียด้วยว่า มันเออเร่อ เพราะมันไม่เออเร่อ
ฉะนั้นท่านพึงสำเหนียกเสมอว่า เหยียบคันเร่งอย่าลืมเบรก
<?php switch( 1 ) { case 1: echo 'one'; break; case 2: echo 'two'; break; case 3: echo 'three'; break; } ?> |
ผลลัพธ์ที่ได้คือ one
caeru says:
25/09/2553 at 25/09/2553
ผมก่อกำลัง develop ระบบเกี่ยวกับพวกนี้อยู่เลยครับ เคยเจอปัญหสเกี่ยวกับพวกนี้อยู่เหมือนกัน ยังไงถ้าผมติดปัญหา ก่อความกวนขอคำแนะนำด้วยน่ะครับ ^^
minddezign says:
27/09/2553 at 27/09/2553
พี่ทูไม่เคยเปลี่ยน ….
เจอปัญหาดีๆมาแชร์น้องๆอยู่เสมอ
non says:
27/09/2553 at 27/09/2553
ปัญหานี้ผมพบสมัยเรียนภาษาซีเลยครับ 55 มีพี่คนนึงแกบอกผมว่า สิ่งสำคัญคือพื้นฐานนี่แหล่ะต่อให้เก่งแค่ไหน ถ้าพื้นฐานยังไม่ดีปัญหาง่ายๆที่แก้ได้ง่ายๆก็จะเสียเวลาและยุ่งยากในการแก้ทีหลัง
หนังสือ says:
06/11/2553 at 06/11/2553
เรื่องลืมนี่ไม่เป็นผลดีจริงๆ ดีนะที่หาเจอ ปัญหาแบบนี้ต้องนั่งไล่ทีละบรรทัดปวดหัวมากมาย