Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > เกี่ยวกับ SQL เเละ C# ครับ มีปัญหาครับ ช่วยหน่อยครับ



 

เกี่ยวกับ SQL เเละ C# ครับ มีปัญหาครับ ช่วยหน่อยครับ

 



Topic : 122136



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมได้เขียนโปรแกรมเกี่ยวกับระบบ Invoice เเละ Payment
อันนี้คือดาต้าเบสของผมครับ

DB

ผมต้องการที่จะทำระบบ จ่ายเงินของลูกค้า สมมุติลูกค้ามี Invoice อยู่ 3 อัน ตามตารางครับ

InvoiceID CustomerID InvoiceDtae InvoiceStatus 0001 1 25/3/2559 0 0002 1 25/3/2559 0 0003 1 25/3/2559 0

ในโปรแกรมของผมเวลา Query มาแสดงจะเอาข้อมูลจากตาราง Invoicedetail ในคอลั่ม Discount มาบวกกันเเล้วแสดง โดย Group by Invoices ผลของโปรแกรมคือ

InvoiceID InvoiceDtae SUM 0001 25/3/2559 50 0002 25/3/2559 60 0003 25/3/2559 70

เท่ากับลูกค้าสั่งสินค้าไป 180 บาท
ถ้าหากลูกค้าจ่ายเงินครบ 180 บาท คงไม่มีปัญหา ผมก็จะเขียนให้ UPDATE SUM เป็น 0 ทั้ง 3 Invoice เเต่ถ้าจ่ายไม่ครบ นั้นเเละครับคำถาม
หากจ่ายไม่ครบ สมมุติจ่าย 170 บาท คงเหลือ 10 ดูตามตาราง คือ InvoiceID 0001 กับ 0002 กับ 0003 บวกกันคือ 180 บาท ยังเหลืออีก 10 บาท ยังไม่ครับ อยากไห้ 10 นี้ไป UPDATE ใน colum SUM ครับ 0001=0, 0002=0, 0003=50+60+70-170
หรือจ่าย90บาทก็ให้อัพเดท 0001=0, 0002=20 , 0003=70

ขอบคุณมากครับ



Tag : .NET, MySQL, C#









ประวัติการแก้ไข
2016-03-26 14:07:17
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-03-26 14:04:23 By : mtts10448 View : 1511 Reply : 7
 

 

No. 1



โพสกระทู้ ( 281 )
บทความ ( 0 )



สถานะออฟไลน์


งั้นสร้างตารางไว้เก็บรายการชำระของลูกค้าและรายละเอียดการชำระ (เก็บเลขใบเสร็จและจำนวนเงินที่ชำระ) แยกไว้ต่างหากครับ

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

Payment
--รหัส
--จำนวนเงินที่นำมาชำระ
--ผลการอนุมัติ/ทำรายการ
--ผู้ทำรายการ
--เวลาที่ทำรายการ

Payment_Details
--เลขที่ invoice
--จำนวนเงินที่ชำระให้กับ invoice นี้

เช่น
ครั้งนี้จ่าย 150 บาทนะ
จ่าย 01 --> 70
จ่าย 02 --> 30
จา่ย 03 --> 50

เมื่อเพิ่มรายการนี้แล้วควรมีการอนุมัติอีกรอบเพื่อจะได้ตรวจสอบเงินที่รับชำระเข้ามาจริงๆด้วยนะครับ
หากผ่านการอนุมัติแล้วก็เอายอดเงินมาคำณวนว่าใบเสร็จไหนจ่ายเงินครบก็ปรับสถานะการจ่ายเงิน (ตัดจ่าย) ให้กับแต่ละใบเสร็จต่อไปครับ
(ตรงนี้อาจจะใช้ view ครับ รวมจำนวนเงินที่ชำระ กรุ๊ปตามเลขที่ invoice ที่ยังไม่ได้ตัดจ่าย)

เราจะได้ทราบว่ามี invoice ไหนบ้าง
--ที่ยังไม่ได้ชำระ หรือชำระครบแล้ว
--ชำระยังไม่ครบ แล้วขาดอีกเท่าไหร่
--มีการชำระมาตอนไหนบ้าง
--ใครเป็นคนตรวจสอบ/อนุมัติการชำระเงิน

การรับชำระมีหลายรูปแบบนะครับ ศึกษาธุรกิจก่อนออกแบบเพื่อให้สอดคล้องและรองรับกับงานจะดีที่สุดครับ
--เงินสด
--บัตรเครดิต
--เช็ค
--โอน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-26 23:54:35 By : deksoke
 


 

No. 2



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


คุบคุณครับพอเห็นเเนวทางเเเล้วครับแต่ยังนึกโค้ดไม่ออกครับ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-27 09:41:39 By : mtts10448
 

 

No. 3



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


พอเข้าใจแนวทางเเล้วครับ แต่ปัญหาคือจะเขียน c# หรือ SQL ยังไงให้มัน INSERT ใน Payment รันตาม InvoiceID แบบครั้งเดียว หลายๆ row ตาม Invoice เช่น
มี
001 = 70
002 = 30
003 = 50
เท่ากับ 150
ลูกค้าจ่ายเงินสดมาแค่ 130 บาท จะรันยังไงให้ ใน Payment เป็น
001 = 70
002 = 30
003 = 30
โดยกดปุ่มเพียงครั้งเดียวครับไม่ต้องกดเลือก Invoice
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-27 10:15:29 By : mtts10448
 


 

No. 4



โพสกระทู้ ( 281 )
บทความ ( 0 )



สถานะออฟไลน์


รับ id หลังจาก insert
sql get auto increment value after insert

หลังจาก insert ไปที่ payment แล้วก็เอา id ที่ได้
ไปวนลูป insert ต่อที่ payment_details ครับ
หากเกิดข้อผิดพลาดให้ rollback ถอยข้อมูลกลับทั้ง payment และ payment_details --ตรงนี้ใช้ transaction ช่วยนะครับ



ลูกค้าจ่ายเงินสดมาแค่ 130 บาท จะรันยังไงให้ ใน Payment เป็น
001 = 70
002 = 30
003 = 30
โดยกดปุ่มเพียงครั้งเดียวครับไม่ต้องกดเลือก Invoice

หากจะให้ใส่ตัวเลขชำระออโต้ ต้องคุยกันยาวหน่อยว่าทางยูสเซอร์อยากได้แบบไหน
บางทีลูกค้าที่จ่ายไม่ครบแล้วแบ่งจ่ายเนี่ย เค้าไม่ได้จ่ายตามใบเสร็จ 1 2 3 นะครับ
มีเงินพอจ่ายครบใบที่ 2 ก็เอามาจ่ายก่อน อย่างนี้ก็มี ซึ่งตรงนี้ถามยูสเซอร์ก่อนดีกว่ามั้ยเด๋วทำไปแล้วได้กลับมาแก้อีกนะครับ

ถ้าเอาแบบง่ายๆก็
อาจจะเรียงลำดับความสำคัญตามเลขที่ใบ invoice ก่อน-หลังก็ดีครับ แล้วนำจำนวนเงินที่ค้างชำระมาหักจากยอดชำระที่ลูกค้าจ่ายมา


ประวัติการแก้ไข
2016-03-27 16:13:26
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-27 16:06:57 By : deksoke
 


 

No. 5



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


อย่างที่บอกครับ มีเงินเท่าไหร่จ่ายเท่านั้น ไม่ตรงตาม ที่สั่งซื้อเลยครับ จะทำอย่าไรดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-27 22:00:17 By : mtts10448
 


 

No. 6



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


สงสัยเป็นร้านค้าเล็กๆ
ปกติบริษัททั่วๆ ไป ไม่รับการจ่ายแบบนี้
ต้องชำระใบแจ้งหนี้เต็มจำนวน เป็นใบๆ
เช่น ถ้ามีสามใบ อาจชำระสองใบแรกก่อนก็ได้ ต้องชำระ 110
0001 25/3/2559 50
0002 25/3/2559 60
0003 25/3/2559 70
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-28 09:10:46 By : watcharop
 


 

No. 7



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


ใช่ครับเป็นร้านค้าเล็กๆครับ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-28 11:38:49 By : mtts10448
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เกี่ยวกับ SQL เเละ C# ครับ มีปัญหาครับ ช่วยหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่