กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
749 5
URL.หัวข้อ /
URL
Code การตัด Stock แบบวิธี Fifo
รบกวนถามอาจารย์ช่วยบอก Code การตัดสต๊อกบบ Fifo (เข้าก่อน ออกก่อน) ด้วยครับ
หลักการก็คือ
Table 1 (รับ)
วันที่ เลขที่เอกสาร เลขที่สต๊อก จำนวน ราคา
1 1 1 10 10
2 2 2 5 19
3 3 1 5 9
Table 2 (จ่าย)
ถ้ามีลูกค้าต้องการมาซื้อของสต๊อกเลขที่ 1 ในวันที่ 4 จำนวน 7 ชิ้น ก็ให้นำสต๊อกในวันที่รับ วันที่ 1 มาจ่ายก่อนโดยบันทึกรายละเอียดลงแต่ละ Field ลงใน Table 2
และในวันที่ 5 ลูกค้ามาซื้อของสต๊อกเลขที่ 1 อีกจำนวน 7 ชิ้น ก็ให้นำสต๊อกวันที่รับวันที่ 1 ที่เหลือมาจ่ายก่อนและส่วนที่ขาดให้นำจำนวนของสต๊อกที่รับในวันที่ 3 มาจ่าย โดยบันทึกรายละเอียดลงแต่ละ Field ลงใน Table 2 เช่นเดียวกันโดยแยกแต่ละราคาไว้คนละ Record
และในวันที่ 6 ลูกค้ามาซื้อของสต๊อกเลขที่ 1 อีกจำนวน 5 ชิ้น ก็ให้นำสต๊อกวันที่รับวันที่ 3 ที่เหลือมาจ่ายโดยบันทึกรายละเอียดลงแต่ละ Field ลงใน Table 2 เช่นเดียวกัน
ขอบพระคุณมากครับ
หลักการก็คือ
Table 1 (รับ)
วันที่ เลขที่เอกสาร เลขที่สต๊อก จำนวน ราคา
1 1 1 10 10
2 2 2 5 19
3 3 1 5 9
Table 2 (จ่าย)
ถ้ามีลูกค้าต้องการมาซื้อของสต๊อกเลขที่ 1 ในวันที่ 4 จำนวน 7 ชิ้น ก็ให้นำสต๊อกในวันที่รับ วันที่ 1 มาจ่ายก่อนโดยบันทึกรายละเอียดลงแต่ละ Field ลงใน Table 2
และในวันที่ 5 ลูกค้ามาซื้อของสต๊อกเลขที่ 1 อีกจำนวน 7 ชิ้น ก็ให้นำสต๊อกวันที่รับวันที่ 1 ที่เหลือมาจ่ายก่อนและส่วนที่ขาดให้นำจำนวนของสต๊อกที่รับในวันที่ 3 มาจ่าย โดยบันทึกรายละเอียดลงแต่ละ Field ลงใน Table 2 เช่นเดียวกันโดยแยกแต่ละราคาไว้คนละ Record
และในวันที่ 6 ลูกค้ามาซื้อของสต๊อกเลขที่ 1 อีกจำนวน 5 ชิ้น ก็ให้นำสต๊อกวันที่รับวันที่ 3 ที่เหลือมาจ่ายโดยบันทึกรายละเอียดลงแต่ละ Field ลงใน Table 2 เช่นเดียวกัน
ขอบพระคุณมากครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00405
คงจะสร้าง Combo Box ให้แสดงรายของ Item โดยให้แสดงรายการที่เข้ามาก่อนไว้ข้างบน ถ้าต้องใช้ Item จาก 2 รายการ คงต้องให้เลือกที่ละรายการ จนครบตามจำนวนที่สั่งซื้อ แล้วนำจำนวนที่ซื้อไปคูณกับราคา
แต่เวลาออกใบเสร็จให้ลูกค้า ก็ออกแค่ Item เดียว แต่ราคาต่อหน่วยจะเท่ากับราคาทั้งหมด หารด้วย จำนวนที่ซื้อ
ไม่ทราบว่าผมเข้าใจหลักการถูกหรือเปล่าครับ
2 @R00406
ถ้าเราต้องไปเลือกที่ Combox ทีละรายการ น่าจะเกิดการผิดพลาดได้และก็ไม่สะดวกในการใช้งาน อยากได้ประมาณว่าตอนออกใบกำกับภาษีว่าขายไปจำนวนเท่าใดก็ให้ตัดสต๊อกจำนวนเท่านั้นตามวิธีของ Fifo เลยครับและก็มีการคำนวณต้นทุนขายของแต่ละจำนวนที่ตัดเก็บไว้ด้วยครับ แต่เวลาที่ออกใบกำกับให้ลูกค้าก็ออกแค่ Item เดียวครับ
3 @R00408
ลองดูในตัวอย่างที่ http://agserver.kku.ac.th/basiceng/FIFO.zip
โดยในฟอร์ม frmSelling จะมีปุ่มให้คลิกเมื่อขายสินค้าตัวใดตัวหนึ่ง
Private Sub cmdSubmit_Click()
Dim dbs As Database, rst1 As Recordset, rst2 As Recordset, rst3 As Recordset
Dim qdf As QueryDef
Dim I As Integer, J As Integer, MyQTY As Integer, MyQTY1 As Integer
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("Query1")
qdf.Parameters!MyStock = Me.StockID
MyQTY = Me.QTY
Set rst2 = qdf.OpenRecordset
If Not rst2.EOF Then
rst2.MoveLast
rst2.MoveFirst
For J = 1 To rst2.RecordCount
If MyQTY > rst2("QTY") - rst2("Balance") Then
MyQTY1 = rst2("QTY") - rst2("Balance")
rst2.Edit
rst2("Balance") = rst2("QTY")
rst2.Update
MyQTY = MyQTY - MyQTY1
rst2.MoveNext
Else
rst2.Edit
rst2("Balance") = MyQTY
rst2.Update
Exit Sub
End If
Next J
Else
MsgBox "ไม่มีสินค้าในสต๊อก", vbOKOnly, "Sorry!."
End If
qdf.Close
rst2.Close
dbs.Close
Set qdf = Nothing
Set rst2 = Nothing
Set dbs = Nothing
End Sub
ในตัวอย่างยังไม่มีสิ่งต่อไปนี้
1. การตรวจดูว่ามีสินค้าในสต๊อกมากพอตามจำนวนที่ต้องการหรือไม่
ให้ใช้ DSum เข้าช่วยนะครับ
2. การเก็บประวัติการขายไปไว้ใน Table2
ให้ใช้
Set rst3 = dbs.Openrecordset("Table2")
rst3.Add
rst3("StockID") = rst2("StockID")
....
rst3.Update
3. การคำนวณหา UnitStock ที่จะออกใบเสร็จให้ลูกค้า
ก็คงเอาราคารวมทั้งหมดมาหารด้วยจำนวนที่ซื้อ ก็จะได้ UnitCost ตัวใหม่
ลองทำส่วนที่เหลือดูนะครับ ผมว่ามันท้าทายดี
4 @R00412
แก้ไขครับ
จากสีแดงเป็นสีน้ำเงินครับ
Else
rst2.Edit
rst2("Balance") = MyQTY
rst2.Update
Exit Sub
End If
...
เป็น
...
Else
rst2.Edit
rst2("Balance") = rst2("Balance") + MyQTY
rst2.Update
Exit Sub
End If
...
5 @R00416
ขอบคุณอาจารย์มากครับ แล้วผมจะนำไปศึกษาและทำเพิ่มเติมดูครับ
Time: 0.1038s