 |
|
ใบรับสินค้า เมื่อรับสินค้าครบทุกรายการแล้ว จะให้มัน Update สถานะใบสั่งซื้อ ช่วยดูโค้ดให้หน่อยครับ |
|
 |
|
|
 |
 |
|

เมื่อเราทำการรับสินค้าทั้ง 3 รายการที่ Listview ด้านบน โดยที่รับครบตามจำนวนสั่งซื้อ เช่นสั่งซื้อ 10 รับ 10 จะให้มันไป Update ตาราง Orders ฟิวด์ StatusOrder = '2' แต่ถ้ารับแค่บางรายการ เช่น รับรหัส 5501002 แค่รายการเด่ว หรือรับทั้ง 3 รายการ แต่รับแค่ครึ่งนึงของการสั่งซื้อ เช่น สั่งซื้อ 10 รับ 5 ให้มันไป Update ตาราง Orders ฟิวด์ StatusOrder = '1' ช่วยดูโค้ดให้หน่อยครับ หรือถ้าตกหล่นโค้ดไป แนะนำด้วยครับ
โค้ดครับ --->
Code (VB.NET)
If LvReceived.Items.Count = 0 Then
MessageBox.Show("กรุณาเลือกรายการที่จะรับก่อนครับ!!!", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If MessageBox.Show("คุณต้องการบันทึกการรับสินค้าใช่หรือไม่", "ผลการตรวจสอบ", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
Exit Sub
End If
With cn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
For i As Integer = 0 To LvReceived.Items.Count - 1
'/////Update จำนวนรับ ลง ตาราง OrderDetail
Dim UpRe As String = ""
UpRe = ("Update OrderDetail")
UpRe &= (" set NumberToReceived = NumberToReceived + " & LvReceived.Items(i).SubItems(4).Text & " where ProductID = @ProID And OrderID = @OrderID")
With cm
.CommandType = CommandType.Text
.CommandText = UpRe
.Connection = cn
.Parameters.Clear()
.Parameters.Add("@ProID", SqlDbType.NVarChar, 10).Value = LvReceived.Items(i).SubItems(1).Text
.Parameters.Add("@OrderID", SqlDbType.NVarChar, 10).Value = cbbShowOrder.SelectedValue
.ExecuteNonQuery()
End With
'///////Update จำนวนสินค้าที่รับ + ของเก่า ลงตาราง Product
Dim UpPro As String = ""
UpPro = ("Update Products")
UpPro &= (" set Stock = Stock + " & LvReceived.Items(i).SubItems(4).Text & " where ProductID = @ProID")
With cm
.CommandType = CommandType.Text
.CommandText = UpPro
.Connection = cn
.Parameters.Clear()
.Parameters.Add("@ProID", SqlDbType.NVarChar, 10).Value = LvReceived.Items(i).SubItems(1).Text
.ExecuteNonQuery()
End With
'/////Update ค้างรับ
Dim UpReceivedable As String = ""
UpReceivedable = ("Update OrderDetail")
UpReceivedable &= (" SET Receivable = " & LvReceived.Items(i).SubItems(5).Text & " where ProductID = @ProID And OrderID = @OrderID")
With cm
.CommandType = CommandType.Text
.CommandText = UpReceivedable
.Connection = cn
.Parameters.Clear()
.Parameters.Add("@ProID", SqlDbType.NVarChar, 10).Value = LvReceived.Items(i).SubItems(1).Text
.Parameters.Add("@OrderID", SqlDbType.NVarChar, 10).Value = cbbShowOrder.SelectedValue
.ExecuteNonQuery()
End With
Next
'////////////Update Status////////////////
Dim sql1 As String = ""
For K As Integer = 0 To LvOrders.Items.Count - 1
If LvOrders.Items(K).SubItems(7).Text = 0 Then
sql1 = "update Orders set StatusOrder='2' where OrderID ='" & cbbShowOrder.Text & "'"
With cm
.Parameters.Clear()
.CommandText = sql1
.Connection = cn
.ExecuteNonQuery()
End With
End If
Next
MessageBox.Show("บันทึกการรับเรียบร้อยแล้วครับ!!")
Tag : .NET, VB.NET
|
|
 |
 |
 |
 |
Date :
2012-01-29 20:24:05 |
By :
l3kaing |
View :
2444 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
น่าจะครบนะครับ ..
คือผมติดตรงอัพเดพสถานะอ่ะครับ
พอจะม่โค้ดแนะนำไหมครับ เด่วจะเอาไปประยุกต์ใช้ดูครับ
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2012-01-30 10:13:46 |
By :
l3kaing |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ติดตรงที่ว่า รับครบหรือไม่ครบมันก็อัพเดพเป็น = '2' [2 = รับสินค้าครบแล้ว] [1 = รับแล้ว แต่ยังไม่ครบ]
ฟิวด์ Receivable คือ จำนวนค้างรับ
ถ้าสินค้าในใบสั่งซื้อ 0001 Receivable [ค้างรับ] = 0 ทุกรายการจริง ให้ อัพเดพสถานะ คือ StatusOrder[สถานะใบสั่งซื้อ] = "2" แต่ถ้าไม่ครบให้อัพเดพ StatusOrder[สถานะใบสั่งซื้อ] = "1" ประมาณนี้ครับ
Dim sql As String = ""
Dim s As String = ""
sql = "select Receivable From OrderDetail Where Receivable = 0 "
sql &= " And OrderID = '" & cbbShowOrder.Text & "'"
da = New SqlDataAdapter(sql, cn)
ds = New DataSet
da.Fill(ds, "Re")
If ds.Tables("Re").Rows.Count <> 0 Then
s = "update Orders set StatusOrder='1' where OrderID ='" & cbbShowOrder.Text & "'"
With cm
.Parameters.Clear()
.CommandText = s
.Connection = cn
.ExecuteNonQuery()
End With
ElseIf ds.Tables("Re").Rows.Count = 0 Then
s = "update Orders set StatusOrder='2' where OrderID ='" & cbbShowOrder.Text & "'"
With cm
.Parameters.Clear()
.CommandText = s
.Connection = cn
.ExecuteNonQuery()
End With
End If
|
 |
 |
 |
 |
Date :
2012-01-30 15:40:53 |
By :
l3kaing |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ช่วยทีครับพี่ mr.win
|
 |
 |
 |
 |
Date :
2012-01-30 23:34:48 |
By :
l3kaing |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|