ข้ามไปที่เนื้อหาหลัก

ความผิดพลาด : ตอน โฟลว์ชาร์ตสำคัญนะ

"เมื่อเขาต้องแก้โค๊ดระบบคุมสต๊อควัสดุคงเหลือ แต่ด้วยความมั่นใจจริงเขียนต่อแบบไม่มีการวางแผนทำโฟลว์ชาร์ตก่อนใดๆ สุดท้ายเงื่อนไขหลุดกระจาย ตกม้าตายตอนจบ"


ขณะที่กำลังเขียนโค๊ดตามรายการที่ต้องแก้ไขเพิ่มเติมในส่วนต่างๆอยู่นั้น เสียงหัวหน้าก็ดังขึ้นมาจากด้านหลังเล่นเอาขวัญกระเจิง

"ทำไมเรียกรายงานวัสดุคงเหลือไม่ตรงกันสักทีเนี่ย ทำหลายรอบแล้วนะ ตัดยังไงก็ไม่ลดสักที ไม่พอยังไปโผล่ในบรรทัดใหม่แล้วยอดติดลบอีก เพี้ยนแล้วๆไม่มียอดใครจะไปเบิกได้"

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


เหลือราคาไหน ตัดที่ราคานั้น


"พี่ว่าน้องต้องปรับระบบครั้งใหญ่แล้วนะ เวลาเบิกจ่ายวัสดุก็ยาก ราคาโผล่มาให้เลือกเยอะแยะ ไม่รู้จะตัดราคาไหนก่อนราคาไหนหลัง"

ผมได้แต่ตอบรับคำไปพลางคิดไปว่าเป็นเพราะอะไร และในไม่กี่วินาทีต่อมาก็คิดขึ้นได้ ไอ้การตัดสต๊อกนี่ยอมรับเลยครับว่ายังไม่เป็นสากลเท่าไหร่ แต่นั่นก็เป็นวิธีที่ช่วยตัดให้ราคามันตรงกับวัสดุที่มีอยู่จริงได้


"พี่ครับ ผมว่าคงจะเป็นที่ขั้นตอนการเบิกระบุสถานที่เก็บวัสดุไม่ตรงกันน่ะครับ เดี๋ยวผมจะตรวจสอบให้อีกที"

ผมใช้เวลาเกือบสองชั่วโมงในการค้นหาข้อผิดพลาดแล้วก็สรุปได้ว่า

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

และอีกหลายๆจุดที่เกี่ยวกับสถานที่เก็บนี่เอง

สุดท้ายเลยต้องมานั่งเขียน Flowchart เพื่อตรวจสอบเงื่อนไขและการทำงานทั้งการนำเข้าวัสดุ การเบิกใช้วัสดุ และการเรียกรายงานขึ้นมาใหม่ เพื่อใช้ยืนยันความถูกต้องของกระบวนการที่คิดไว้


และในที่สุดก็จัดการได้เป็นที่น่าพอใจ จะเหลือก็แต่เพียงการตัดสต๊อกแบบ FIFO ที่จะต้องเขียนโค๊ดใหม่ เพื่อวนลูปตรวจสอบจำนวนวัสดุในแต่ละ LOT ว่าพอกับการเบิกในครั้งนั้นๆหรือไม่ ถ้าไม่พอก็ตัดเพิ่มจาก LOT ต่อไปเรื่อยๆ


ถ้าสามารถจัดการกับขั้นตอนนี้ได้ ต่อไปก็คงจะเรียกรายงานได้สวยงามกว่านี้แน่นอน "ขอให้ทุกท่านทนใช้ไปก่อนนะครับ"


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ร้อยละ ทศนิยม 2 ตำแหน่งบวกคืน ไม่เท่ากับ 100 และ ปัญหาการคำนวณเลขทศนิยม เมื่อปัดเศษแล้วค่าที่บวกคืนไม่เท่าเดิม

กรณีนี้เป็นการทดสอบคำนวณเลขที่ต้องหารครึ่ง ตัวอย่างเช่น 2.33 / 2 = 1.165 กรณีนี้ถ้าเก็บค่านี้ในฐานข้อมูลที่กำหนดให้มีทศนิยมเพียง 2 หลัก ในฟิลด์ 2 ฟิลด์ซึ่งแต่ละฟิลด์จะถูกปัดขึ้นเป็น 1.7 เมื่อนำมาบวกกลับ 1.17 + 1.17 = 2.34 ถ้าอย่างนั้นเราก็ต้องกำหนดให้ฟิลด์ที่ใช้เก็บข้อมูลสามารถเก็บเลขทศนิยมได้หลายๆตัว ก็จะเก็บเลขทั้งสามหลักไว้ในฐานข้อมูลเลย 1.165 + 1.165 จะได้ 2.33 พอดี แต่ตอนเราแสดงรายงาน ก็จำเป็นจะต้องแสดงเลขทศนิยมเพียงแค่ 2 หลักอยู่ดี แล้วเราจะทำอย่างไรล่ะทีนี้ ก็เก็บมันเป็นเลขทศนิยมเต็มจำนวนซะแล้วตอนแสดงก็ต้องปัดเศษอยู่ดี เพราะค่า 1.165 ถ้าใช้ฟังก์ชั่นปัดเศษลง ก็จะเหลือ 1.16 แต่ถ้าปัดขึ้นก็จะเป็น 1.17 ซึ่งตัวเลขทั้งสองตัว เมื่อนำมารวมกัน ยังไงๆ ก็ไม่เท่ากับ 2.33 อยู่ดี (1.16+1.16 = 2.32,    1.17+1.17 = 2.34 ) อีกตัวอย่างนึงครับเป็นการถอด VAT ราคาสินค้า การคิดค่าทศนิยม แล้วผลรวมเพี้ยน เนื่องจากการปัดเศษ แล้วยอดเกินบ้าง ขาดบ้าง ตัวอย่างการถอด VAT ซื้อของมา 573.50 บาท ถอด VAT ออกมาได้ (573.50*7) / 100 = 40.145 ราคาสินค้า จะได้เป็น 573.50 - 40.145 = 533.3

FPDF ภาษาไทย กับ วรรณยุกต์ลอย

สำหรับงานเขียนโปรแกรมเว็บแอพฯ ด้วย PHP ที่ต้องทำการส่งออกข้อมูลเป็นไฟล์เอกสาร PDF นั้น เมื่อลองค้นดูแล้วก็เจอกับ FPDF เป็นคลาสที่เขียนขึ้นมาสำหรับงานนี้โดยเฉพาะ แต่กับภาษาไทยแล้วก็ต้องเจอกับปัญหาสุดคลาสสิคคือ รองรับภาษาไทยไม่ร้อยเปอร์เซ็นต์ ^^" บทความที่สอนการใช้งานเบื้องต้นที่ครอบคลุมการทำงานของ FPDF http://www.select2web.com/category/fpdf จะมีบทความแนะนำการใช้ฟอนต์ภาษไทยอยู่ที่ลิงค์นี้ http://www.select2web.com/fpdf/fpdf-lesson-10.html ดาวน์โหลดและสร้างฟอนต์มาใช้เอง http://witkub.blogspot.com/2011/11/fpdf.html สำหรับวิธีแก้ไขปัญหาวรรณยุกต์ลอย ลองดูวิธีจากที่นี่ http://punnawatt.blogspot.com/2009/07/pdf.html สุดท้ายแล้วลองทดลองมาหมด ก็ยังไม่ได้คำตอบที่ตรงใจครับ เพราะไม่สามารถแก้สระลอยได้อย่างแท้จริง เพราะเงื่อนไขข้อมูลจริงไม่อาจจะทำให้เหมือนในตัวอย่างได้ ก็เลยถอดใจเรื่องวรรณยุกต์ลอย นอกจากปัญหาเรื่องวรรณยุกต์ลอย แล้วฟอนต์บางตัวก็เกิดปัญหาวรรณยุกต์ซ้อนทับกันด้วย เช่นคำว่า "นี้" เมื่อผลลัพธ์ออกมา สระอี และวรรณยุกต์โท จะทับกัน สรุป 1. ดาวน์โหล

FPDI มาทำให้การสร้างเอกสาร PDF ด้วย PHP ง่ายขึ้นกันเถอะ

เคยใช้กันรึยังครับ เหมาะสำหรับงานสร้างแบบฟอร์ม PDF แล้วกรอกข้อมูลตามแบบฟอร์มทีหลัง หลักการคือโหลด PDF เข้ามา แล้วก็เขียนไฟล์ใหม่ขึ้นมา ส่วนที่มันไดนามิกมากๆ คงไม่เหมาะเท่าไหร่ ถ้าให้มองการทำงานของไลบรารี่ตัวนี้ ก็เหมือนกับที่เราสั่งทำใบเสร็จรับเงิน แล้วกรอกข้อมูลทีหลังนั่นเอง 1. สร้าง PDF เปล่าๆ ที่มีแค่ส่วนหัว และส่วนท้าย 2. เติมข้อมูลรายการลงในส่วนกลาง ถ้าเกินจำนวนแถวที่กำหนดให้ขึ้นหน้าใหม่ http://www.setasign.com/products/fpdi/about/ ตัวอย่างในลิงค์ต่อไปนี้ จะเป็นการนำข้อความในไฟล utf8test.txt ไปแทรกในไฟล์ logo.pdf http://www.setasign.com/products/fpdi/demos/tcpdf-demo/ PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด  "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding.phpcodemania.com

PHP CI MANIA