1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài xây dựng hệ thống quản lý bán hàng

31 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Quản Lý Bán Hàng
Tác giả Nguyễn Minh Thư, Phạm Thị Thương, Bùi Mạnh Tiến, Đoàn Phạm Ngọc Thư, Nguyễn Thị Minh Thư
Người hướng dẫn Th.s Cù Nguyên Giáp
Trường học Trường Đại Học Thương Mại
Chuyên ngành Hệ Thống Thông Tin Kinh Tế Và Thương Mại Điện Tử
Thể loại bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 2,13 MB

Nội dung

Việc quản lý của hệ thốngsẽ được kiểm soát trong tất cả các khâu: Nhập hàng, quản lý đơn hàng, quản lý kho hàng, quản lý nhân viên,chăm sóc khách hàng..... Từ ý tưởng áp dụng công nghệ t

Trang 1

TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HỆ THỐNG THÔNG TIN KINH TẾ VÀ THƯƠNG MẠI ĐIỆN TỬ

- - 

BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

ĐỀ TÀI: XÂY DỰNG HỆ THỐNG QUẢN LÝ BÁN HÀNG

Nhóm: 13

Mã lớp học phần: 232_INFO4111_01

Giáo viên hướng dẫn: Th.s Cù Nguyên Giáp

Hà Nội, Ngày 19 Tháng 03 Năm 2024

Trang 2

Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc

Hà Nội, ngày 20 tháng 2 năm 2024

Biên bản họp nhóm (Lần 1)

1 Thời gian: 21h ngày 20 tháng 2 năm 2024

2 Địa điểm: phòng họp meet

Thảo luận chọn ra nhóm trưởng và đề tài thảo luận.

Cuộc họp kết thúc vào lúc 21h30 cùng ngày.

Thư kí

Thương Phạm Thị Thương

Nhóm trưởng

Thư Nguyễn Minh Thư

Trang 3

Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc

Hà Nội, ngày 25 tháng 2 năm 2024

Biên bản họp nhóm (Lần 2)

1 Thời gian: 21h ngày 25 tháng 2 năm 2024

2 Địa điểm: phòng họp meet

Phân chia công việc và tiến hành làm thảo luận.

Cuộc họp kết thúc vào lúc 22 giờ cùng ngày.

Cộng hòa xã hội chủ nghĩa Việt Nam

Trang 4

Độc lập – Tự do – Hạnh phúc

Hà Nội, ngày 05 tháng 3 năm 2024

Biên bản họp nhóm (Lần 3)

1 Thời gian: 21h ngày 05 tháng 03 năm 2024

2 Địa điểm: phòng họp meet

Thảo luận về đề tài: Xác định và xây dựng một số lớp trên python phục vụ các chức năng

cơ bản trong hệ thống thông tin quản lý bán hàng Tổng hợp các phần code và tiến hành chạy chương trình nhưng vẫn chưa ra được kết quả nhưng mong đợi.

Các thành viên tiếp tục hoàn thiện bài.

Cuộc họp kết thúc vào lúc 21h30 cùng ngày.

BẢNG PHÂN CHIA CÔNG VIỆC

Trang 5

STT MSV HỌ TÊN CÔNG VIỆC

ĐÁNH GIÁ CỦA THÀNH VIÊN

ĐÁNH GIÁ CỦA NHÓM TRƯỞNG

Trang 6

Trong thời đại bùng nổ công nghệ 4.0 như hiện nay, một hệ thống giúp quản lý việc bán hàng là không thể thiếu trong hoạt động kinh doanh của doanh nghiệp Hệ thống này chính là những phần mềm quản lý bán hàng, giúp cho người dùng đặc biệt là các doanh nghiệp kiểm soát được hàng hóa một cách chặt chẽ hơn Việc quản lý của hệ thống

sẽ được kiểm soát trong tất cả các khâu: Nhập hàng, quản lý đơn hàng, quản lý kho hàng, quản lý nhân viên,chăm sóc khách hàng

Qua thời gian nghiên cứu và tìm hiểu, với mức độ phức tạp và quy mô ứng dụng cộng thêm vào đó là vấn đề về thời gian cho nên em đã quyết định chọn đề tài “Xây dựng

hệ thống quản lý bán hàng” tìm hiểu ngôn ngữ lập trình Python.

Từ ý tưởng áp dụng công nghệ thông tin vào việc quản lý, bớt phần gánh nặng về

sổ sách cũng như đầu óc con người, đề tài này hướng đến xây dựng một hệ thống quản lý bán hàng áp dụng cho các công ty hay cửa hàng, giúp dễ dàng hơn trong công việc quản

lý bán hàng của công ty hay cửa hàng mình Do thời gian có hạn nên bài làm còn gặp phải một số hạn chế, việc trình bày bằng văn bản còn thiếu sót Rất mong nhận được sự thông cảm của thầy.

Trang 7

I.TỔNG QUAN

1.1 Mô tả bài toán và đặc tả đề tài:

1.1.1 Mô tả bài toán

- Quản lý bán hàng trong các doanh nghiệp là công việc quan trọng, đòi hỏi bộ phận quản lý phải tiến hành nhiều nghiệp vụ phức tạp.

- Việc ứng dụng CNTT đã mang lại bước đột phá mới cho công tác quản lý bán hàng, giúp doanh nghiệp nắm bắt thông tin về hàng hóa, vật tư, thông tin khách hàng, và trạng thái các đơn đặt hàng một cách chính xác và kịp thời Từ đó người quản lý có thể đưa ra các kế hoạch và quyết định đúng đắn, giảm chi phí và tăng khả năng cạnh tranh, nâng cao kết quả hoạt động sản xuất kinh doanh.

1.1.2 Đặc tả bài toán

Quy trình bán hàng của cửa hàng được bắt đầu từ khi nhận được hàng hóa từ nhà cung cấp, nhân viên sẽ thực hiện tạo mã sản phẩm và nhập thông tin sản phẩm vào hệ thống để lưu trữ Trong quá trình bán hàng, nhân viên có thể thêm, bớt hoặc thay đổi các thông tin về sản phẩm dựa vào thực tế

Mỗi khách hàng khi thực hiện hoạt động mua hàng lần đầu tại cửa hàng sẽ được cung cấp một mã khách hàng để phục vụ cho các lần mua hàng tiếp theo Các thông tin của khách hàng khi được khách hàng cung cấp cũng sẽ được lưu trữ vào hệ thống phục vụ cho các hoạt động ưu đãi của cửa hàng

Khi thực hiện thanh toán, nhân viên sẽ thực hiện tạo một mã hóa đơn riêng cho mỗi hóa đơn Ở lớp này sẽ lưu trữ các thông tin về hóa đơn như: ngày thực hiện giao dịch, danh sách sản phẩm mua (được lưu trữ trong chi tiết hóa đơn), tổng tiền, …Các hóa đơn sẽ được lưu trữ trong một khoảng thời gian nhất định.

II, Thiết kế lớp và xây dựng chương trình chính

2.1 Các Class của một đối tượng

a, Class ConNguoi

Trang 8

- Thuộc tính: + ten (Tên)

+ sdt (Số điện thoại)

+ diachi (Địa chỉ)

- Phương thức: hàm khởi tạo ( int ), trả về chuỗi ( str )

b, Class NhanVien

Class NhanVien kế thừa Class connguoi

- Thuộc tính: + ma_nv (Mã nhân viên)

+ ten (Tên nhân viên)

Trang 9

+ loai_sp (Loại sản phẩm)

+ dongia (Đơn giá)

- Phương thức: hàm khởi tạo ( int ), trả về chuỗi ( str )

e, Class HoaDon

- Thuộc tính: + ma_hd (Mã hóa đơn)

+ ma_kh (Mã khách hàng)

+ ma_nv (Mã nhân viên)

+ date_created (Ngày tạo)

+ total_amount: Đưa ra tổng giá trị hóa đơn được tính bằng tổng số lượng*đơn giá của tất cả sản phẩm cùng hóa đơn trong chi tiết hóa đơn có cùng mã hóa đơn)

- Phương thức: + hàm khởi tạo ( int ), trả về chuỗi ( str )

+ dongia (Đơn giá)

+ Phương thức: hàm khởi tạo ( int ), trả về chuỗi ( str )

2.2 Các Class Quản Lý

a, Class QuanLyNhanVien:

- Chức năng giúp đối tượng NhanVien tương tác với database

- Phương thức: + display_list ( Tạo danh sách nhân viên)

+ add_new (Thêm nhân viên)

+ delete_by_ma_nv (Xóa nhân viên bởi mã nhân viên)

Trang 10

+ update_by_ma_nv (Cập nhật thông tin nhân viên theo mã nhân viên)

+ get_by_ma_nv (Lấy thông tin nhaan viên từ cơ sở dữ liệu) + get_all (Lấy ra danh sách tất cả nhân viên trong cơ sở dữ liệu)

b, Class QuanLyKhachHang:

- Chức năng giúp đối tượng KhacHang tương tác với database

- Phương thức: + display_list ( Tạo danh sách khách hàng)

+ add_new (Thêm khách hàng)

+ delete_by_ma_kh (Xóa khách hàng bởi mã khách hàng) + update_by_ma_kh (Cập nhật thông tin khách hàng theo mã khách hàng)

+ get_by_ma_kh (Lấy thông tin khách hàng từ cơ sở dữ liệu) + get_all (Lấy ra danh sách tất cả khách hàng trong cơ sở dữ liệu)

c, Class QuanLySanPham:

- Chức năng giúp đối tượng SanPham tương tác với database

- Phương thức: + display_list ( Tạo danh sách sản phẩm)

+ add_new (Thêm sản phẩm)

+ delete_by_ma_sp (Xóa nhân viên bởi mã sản phẩm)

+ update_by_ma_sp (Cập nhật thông tin sản phẩm theo mã sản phẩm)

+ get_by_ma_nv (Lấy thông tin sản phẩm từ cơ sở dữ liệu) + get_all (Lấy ra danh sách tất cả sản phẩm trong cơ sở dữ liệu)

d, Class QuanLyHoaDon:

- Chức năng giúp đối tượng HoaDon tương tác với database

- Phương thức: + display_list ( Tạo danh sách hóa đơn)

Trang 11

+ add_new (Thêm hóa đơn)

+ delete_by_ma_hd (Xóa hóa đơn bởi mã hóa đơn)

+ update_by_ma_hd (Cập nhật thông tin hóa đơn theo mã hóa đơn) + get_by_ma_hd (Lấy thông tin hóa đơn từ cơ sở dữ liệu) + get_all (Lấy ra danh sách tất cả hóa đơn trong cơ sở dữ liệu)

e, Class QuanLyChiTietHoaDon:

- Chức năng giúp đối tượng ChiTietHoaDon tương tác với database

- Phương thức: + display_list ( Tạo danh sách chi tiết hóa đơn)

+ add_new (Thêm chi tiết hóa đơn)

+ delete_by_ma_hd_ma_sp (Xóa nhân viên bởi mã nhân viên) + update_by_ma_hd_ma_sp (Cập nhật thông tin chi tiết hóa đơn theo mã hóa đơn và mã sản phẩm)

+ get_by_ma_hd_ma_sp (Lấy thông tin nhaan viên từ cơ sở dữ

Chương trình quản lý bán hàng gồm 6 chức năng:

a, Quản lý nhân viên:

- Hiển thị danh sách nhân viên

- Thêm nhân viên mới

- Xóa nhân viên

- Cập nhật thông tin nhân viên

d, Quản lý hóa đơn:

- Hiển thị danh sách hóa đơn

- Thêm hóa đơn mới

- Xóa hóa đơn

- Cập nhật thông tin hóa đơn

b, Quản lý khách hàng: e, Quản lý chi tiết hóa đơn

Trang 12

- Hiển thị danh sách khách hàng

- Thêm khách hàng mới

- Xóa khách hàng

- Cập nhật thông tin khách hàng

- Hiển thị danh sách hóa đơn

- Thêm chi tiết hóa đơn

- Xóa chi tiết hóa đơn

- Cập nhật thông tin chi tiết hóa đơn

3.2 Xây dựng cơ sở dữ liệu

Xây dựng cơ sở dữ liệu “qlbanhang” với các bảng sau:

a, Bảng nhanvien:

- Lưu trữ dữ liệu của đối tượng NhanVien

Column Name Lưu trữ

Trang 13

Column Name Lưu trữ

- Lưu trữ dữ liệu đối tượng SanPham

Column Name Lưu trữ

- Lưu trữ dữ liệu đối tượng HoaDon

Column Name Lưu trữ

Trang 14

- Lưu trữ dữ liệu đối tượng ChiTietHoaDon

Column Name Lưu trữ

  def init (self, ten, sdt, diachi):

    self ten = ten

4.2 Class NhanVien và QuanLyNhanVien

from connguoi import ConNguoi

class NhanVien ConNguoi( ):

  def init (self, ma_nv, ten, sdt, diachi, chucvu, luongthang):

    self ma_nv = ma_nv

    super(). init (ten, sdt, diachi)

    self chucvu = chucvu

    self luongthang = luongthang

  def display_list(nhanviens):

    for nhanvienin nhanviens:

Trang 15

      print(nhanvien)

  @staticmethod

  def add_new(conn, ma_nv, ten, sdt, diachi, chucvu, luongthang):

    cursor = conn.cursor()

  def delete_by_ma_nv(conn, ma_nv):

    cursor = conn.cursor()

    cursor.execute("DELETE FROM nhanvien WHERE MaNV = %s", (ma_nv,))

      "UPDATE nhanvien SET Ten = %s, SDT = %s, DiaChi = %s, ChucVu

= %s, LuongThang = %s WHERE MaNV = %s"

      (ten, sdt, diachi, chucvu, luongthang, ma_nv))

    conn.commit()

  @staticmethod

  def get_by_ma_nv(conn, ma_nv):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM nhanvien WHERE MaNV = ?", (ma_nv,))

    employee = cursor.fetchone()

    cursor.close()

    return employee

  @staticmethod

  def get_all(conn):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM nhanvien")

    rows = cursor.fetchall()

    nhanviens = []

    for rowin rows:

      nhanvien = NhanVien(row[], row[], row[], row[], row[],

row[])

      nhanviens.append(nhanvien)

Trang 16

    return nhanviens

4.3 Class KhachHang và QuanLyKhachHang

from connguoi import ConNguoi

from HoaDon import HoaDon

from HoaDon import QuanLyHoaDon

class KhachHang ConNguoi( ):

  sodonhangdathuchien= 0

  def init (self, ma_kh, ten, sdt, diachi, loaikhachhang,

sodonhangdathuchien):

    super(). init (ten, sdt, diachi)

    self ma_kh = ma_kh

    self loaikhachhang = loaikhachhang

    self sodonhangdathuchien sodonhangdathuchien =

  def str (self):

    return "Mã khách hàng: {self ma_kh }\n"+ super(). str () +

f"Loại khách hàng: {self loaikhachhang }\nSố# đơn hàng đã thực hiện: {self sodonhangdathuchien }\n"

class QuanLyKhachHang:

  @staticmethod

  def display_list(khachhangs):

    for khachhangin khachhangs:

      print(khachhang)

  @staticmethod

  def add_new(conn, ma_kh, ten, sdt, diachi, loaikhachhang,

sodonhangdathuchien):

    cursor = conn.cursor()

    cursor.execute("INSERT INTO khachhang (MaKH, Ten, SDT, DiaChi, LoaiKH, SoDonHangDaThucHien) VALUES (%s, %s, %s, %s, %s, %s)",

           (ma_kh, ten, sdt, diachi, loaikhachhang,

sodonhangdathuchien))

    conn.commit()

  @staticmethod

  def delete_by_ma_khach_hang(conn, ma_kh):

    cursor = conn.cursor()

    cursor.execute("DELETE FROM khachhang WHERE MaKH = %s", (ma_kh))

    conn.commit()

  @staticmethod

Trang 17

  def update_by_ma_khach_hang(conn, ma_kh, ten, sdt, diachi,

loaikhachhang):

    cursor = conn.cursor()

    cursor.execute("UPDATE khachhang SET Ten = %s, SDT = %s, DiaChi =

%s, LoaiKH = %s WHERE MaKH = %s"

           (ten, sdt, diachi, loaikhachhang, ma_kh))

    conn.commit()

  @staticmethod

  def update_so_don_hang_da_thuc_hien(conn, ma_kh):

    cursor = conn.cursor()

    cursor.execute("SELECT COUNT(*) FROM hoadon WHERE MaKH = %s",

(ma_kh))

    sodonhangdathuchien = cursor.fetchone()[ ]0

    cursor.execute("UPDATE khachhang SET SoDonHangDaThucHien = %s WHERE MaKH = %s", (sodonhangdathuchien, ma_kh))

    conn.commit()

  @staticmethod

  def get_by_ma_khach_hang(conn, ma_kh):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM khachhang WHERE MaKH = ?", (ma_kh))

    customer = cursor.fetchone()

    cursor.close()

    return customer

  @staticmethod

  def get_all(conn):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM khachhang")

    rows = cursor.fetchall()

    khachhangs = []

    for rowin rows:

      khachhang = KhachHang(row[], row[], row[], row[], row[ ])4

      khachhang sodonhangdathuchien = row[] # Cập nhật số# đơn hàng đã thực hiện từ cơ sơ* dữ liệu

      khachhangs.append(khachhang)

    return khachhangs

4.4 Class SanPham và QuanLySanPham

class SanPham:

  def init (self, ma_sp, ten_sp, loai_sp, dongia):

    self ma_sp = ma_sp

    self ten_sp = ten_sp

    self loai_sp = loai_sp

Trang 18

    self dongia = dongia

  def str (self):

    return "Mã sa*n phẩ*m: {self ma_sp }\nTên sa*n phẩ*m: {self ten_sp }

nLoại sa*n phẩ*m: {self loai_sp }\nĐơn giá: {self dongia }\n"

class QuanLySanPham:

  @staticmethod

  def display_list(sanphams):

    for sanpham in sanphams:

      print(sanpham)

  @staticmethod

  def add_new(conn, ma_sp, ten_sp, loai_sp, dongia):

    cursor = conn.cursor()

    cursor.execute("INSERT INTO sanpham (MaSP, TenSP, LoaiSP, DonGia)VALUES (%s, %s, %s, %s)",

           (ma_sp, ten_sp, loai_sp, dongia))

    conn.commit()

  @staticmethod

  def delete_by_ma_sp(conn, ma_sp):

    cursor = conn.cursor()

    cursor.execute("DELETE FROM sanpham WHERE MaSP = %s", (ma_sp,))

    conn.commit()

  @staticmethod

  def update_by_ma_sp(conn, ma_sp, ten_sp, loai_sp, dongia):

    cursor = conn.cursor()

    cursor.execute("UPDATE sanpham SET TenSP = %s, LoaiSP = %s, DonGia = %s WHERE MaSP = %s"

           (ten_sp, loai_sp, dongia, ma_sp))

    conn.commit()

  def get_by_ma_sp(conn, ma_sp):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM sanpham WHERE MaSP = ?", (ma_sp,))

    product = cursor.fetchone()

    cursor.close()

    return product

  @staticmethod

  def get_all(conn):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM sanpham")

Trang 19

    rows = cursor.fetchall()

    sanphams = []

    for rowin rows:

      sanpham = SanPham(row[ ], row[ ], row[], row[ ])3

      sanphams.append(sanpham)

    return sanphams

4.5 Class HoaDon và QuanLyHoaDon

fromdatetime importdatetime

from chitiethoadon import ChiTietHoaDon

from chitiethoadon import QuanLyChiTietHoaDon

class HoaDon:

  def init (self, ma_hd, ma_kh, ma_nv, date_created, total_amount):

    self ma_hd = ma_hd

    self ma_kh = ma_kh

    self ma_nv = ma_nv

    self date_created = date_created

    self total_amount = total_amount

  def str(self):

    return {

      'ma_hd': self ma_hd ,

      'ma_khach_hang': self ma_kh ,

      'ma_nhan_vien': self.ma_nv,

      'date_created': self.date_created,

      'total_amount': self.total_amount

    }

  @staticmethod

  def calculate_total(conn, ma_hd):

    cursor = conn.cursor()

    try:

      cursor.execute("SELECT SUM(SoLuong * DonGia) FROM

chitiethoadon WHERE MaHD = %s", (ma_hd))

      total_amount = cursor.fetchone()[ ]0

      if total_amount is not None:

        cursor.execute("UPDATE hoadon SET TotalAmount = %s WHERE MaHD = %s", (total_amount, ma_hd))

        conn.commit()

    finally:

      cursor.close()

  def str (self):

Ngày đăng: 23/01/2025, 12:17