Skip to content

xpcn2015/slip-test

Repository files navigation

โปรแกรมสรุปยอดขายรายวัน

โปรแกรมสำหรับคำนวณและสรุปยอดขายจากการชำระเงินประเภทต่างๆ พร้อมฟีเจอร์ส่งออกไฟล์ Excel และการบันทึกข้อมูลในฐานข้อมูล MySQL

AI Generated project, used for studying codebase only

โครงสร้างไฟล์

slip2/
├── main.py              # ไฟล์หลักสำหรับเริ่มต้นโปรแกรม
├── gui.py               # ส่วนติดต่อผู้ใช้งาน (GUI) และการจัดการหน้าตา
├── calculation.py       # ฟังก์ชันคำนวณยอดเงินและวันที่
├── output.py           # ฟังก์ชันแสดงผลและจัดรูปแบบข้อมูล
├── exportExcel.py      # ฟังก์ชันส่งออกข้อมูลไปยัง Excel
├── database.py         # ฟังก์ชันจัดการฐานข้อมูล MySQL และ CRUD
├── unrefactored.py     # ไฟล์เดิมก่อนการ refactor (สำหรับอ้างอิง)
└── README.md           # ไฟล์นี้

การติดตั้ง Dependencies

สำหรับการส่งออก Excel:

pip install openpyxl

สำหรับฐานข้อมูล MySQL:

pip install mysql-connector-python

วิธีใช้งาน

เริ่มต้นโปรแกรม:

python main.py

ขั้นตอนการใช้งาน:

  1. เลือกจำนวนสลิปสำหรับแต่ละประเภทการชำระเงิน (เงินสด, โอน, เครดิต)
  2. กรอกยอดเงินในช่องที่ปรากฏขึ้น
  3. คลิกปุ่ม "สรุปยอด" เพื่อคำนวณผลรวม
  4. ดูผลลัพธ์ในช่องด้านขวา

เมนูเพิ่มเติม:

เมนู "ไฟล์":

  • ส่งออกไป Excel: บันทึกผลลัพธ์เป็นไฟล์ Excel
  • ออกจากโปรแกรม: ปิดโปรแกรม

เมนู "ฐานข้อมูล":

  • บันทึกลงฐานข้อมูล: เก็บข้อมูลในฐานข้อมูล MySQL
  • จัดการฐานข้อมูล: เปิดหน้าต่างสำหรับตั้งค่าและจัดการฐานข้อมูล

เมนู "ช่วยเหลือ":

  • วิธีใช้งาน: แสดงคำแนะนำการใช้งาน
  • เกี่ยวกับโปรแกรม: ข้อมูลเกี่ยวกับโปรแกรม

คุณสมบัติที่เพิ่มใหม่

1. การส่งออกไฟล์ Excel (exportExcel.py)

  • ส่งออกข้อมูลสรุปยอดขายเป็นไฟล์ Excel พร้อมการจัดรูปแบบ
  • รองรับการเลือกที่บันทึกไฟล์
  • ตรวจสอบการติดตั้ง openpyxl อัตโนมัติ

2. ฐานข้อมูล MySQL (database.py)

  • บันทึกและดึงข้อมูลยอดขายจากฐานข้อมูล MySQL
  • สร้างฐานข้อมูลและตารางอัตโนมัติถ้ายังไม่มี
  • หน้าต่างจัดการฐานข้อมูลแยกต่างหาก
  • ฟีเจอร์ล้างข้อมูลทั้งหมด

3. การแก้ไขบั๊ก

  • แก้ไขปัญหาช่องว่างที่เหลือหลังจากล้างข้อมูล
  • ปรับปรุงการจัดการ GUI ให้เสถียรมากขึ้น

4. โครงสร้างโค้ดที่ดีขึ้น

  • แยกโค้ดตามหน้าที่ชัดเจน
  • คอมเมนต์ภาษาไทยสำหรับผู้เริ่มต้น
  • ลบ emoji ออกจากโค้ดเพื่อความเรียบร้อย

การตั้งค่าฐานข้อมูล

ข้อมูลการเชื่อมต่อ default:

  • Host: localhost
  • Port: 3306
  • User: root
  • Password: (ว่าง)
  • Database: sales_summary

โครงสร้างตาราง:

CREATE TABLE sales_summary (
    id INT AUTO_INCREMENT PRIMARY KEY,
    sale_date DATE NOT NULL,
    cash_amount DECIMAL(10,2) DEFAULT 0.00,
    transfer_amount DECIMAL(10,2) DEFAULT 0.00,
    credit_amount DECIMAL(10,2) DEFAULT 0.00,
    total_amount DECIMAL(10,2) DEFAULT 0.00,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

การแก้ไขปัญหา

ไม่สามารถส่งออก Excel ได้:

pip install openpyxl

ไม่สามารถเชื่อมต่อฐานข้อมูลได้:

  1. ติดตั้ง MySQL Server
  2. ติดตั้ง Python connector:
pip install mysql-connector-python
  1. ตรวจสอบการตั้งค่าผ่านเมนู "ฐานข้อมูล > จัดการฐานข้อมูล"

หมายเหตุสำหรับผู้เริ่มต้น

  • ไฟล์แต่ละไฟล์มีหน้าที่เฉพาะ ไม่ควรแก้ไขโดยไม่เข้าใจ
  • คอมเมนต์ในโค้ดอธิบายการทำงานของแต่ละฟังก์ชัน
  • สามารถใช้งานได้โดยไม่ต้องติดตั้ง Excel หรือ MySQL (จะมีการแจ้งเตือน)
  • การบันทึกการตั้งค่าฐานข้อมูลจะเก็บในไฟล์ database_config.json

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages