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

Lập trình hướng đối tượng nhóm 13 (1) (auto recovered)

31 0 0

Đ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

Định dạng
Số trang 31
Dung lượng 2,06 MB

Nội dung

Đị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.. Địa điểm: phòng họp mee

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_01Giá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.

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

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 Trao đổi ý kiến, mỗi người đưa ra những góp ý của mình.

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.

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 Nguyễn Minh Thư

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

Trang 5

STTMSVHỌ TÊNCÔNG VIỆC

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ảnlý 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ặpphả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ã + 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 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 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

Trang 13

Column NameLưu trữ

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

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

Trang 14

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

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 str (self):

returnf"Mã NV: {self ma_nv }\n" + super(). str () + f"Chức vụ: {self chucvu }\nLương tháng: {self luongthang }\n"

class QuanLyNhanVien: @staticmethod defdisplay_list(nhanviens): fornhanvien innhanviens:

Trang 15

@staticmethod

defadd_new(conn ma_nv ten sdt diachi chucvu luongthang, , , , , , ): cursor conn = cursor()

defdelete_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

defget_by_ma_nv(conn ma_nv, ): cursor conn = cursor()

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

cursor.close() returnemployee @staticmethod defget_all(conn): cursor conn = cursor()

cursor.execute("SELECT * FROM nhanvien") rows cursor = fetchall()

nhanviens = [] forrow inrows:

nhanvien = NhanVien(row[0], row[1], row[2], row[3], row[4], row[5])

nhanviens.append(nhanvien)

Trang 16

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):

returnf"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

defdisplay_list(khachhangs): forkhachhang inkhachhangs: print(khachhang) @staticmethod

defadd_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

defdelete_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

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

defupdate_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

defget_by_ma_khach_hang(conn ma_kh, ): cursor conn = cursor()

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

cursor.close() returncustomer @staticmethod defget_all(conn): cursor conn = cursor()

cursor.execute("SELECT * FROM khachhang") rows cursor = fetchall()

khachhangs = [] forrow inrows:

khachhang = KhachHang(row[0], row[1], row[2], row[3], row[ ])4 khachhang sodonhangdathuchien = row[5] # Cập nhật số# đơn hàng đã thực hiện từ cơ sơ* dữ liệu

khachhangs.append(khachhang) returnkhachhangs

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

def str (self):

returnf"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 defdisplay_list(sanphams): forsanpham insanphams: print(sanpham) @staticmethod

defadd_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

defdelete_by_ma_sp(conn ma_sp, ): cursor conn = cursor()

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

@staticmethod

defupdate_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()

defget_by_ma_sp(conn ma_sp, ): cursor conn = cursor()

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

cursor.close() returnproduct @staticmethod defget_all(conn): cursor conn = cursor()

cursor.execute("SELECT * FROM sanpham")

Trang 19

sanphams = [] forrow inrows:

sanpham = SanPham(row[0], row[1], row[2], row[ ])3 sanphams.append(sanpham)

returnsanphams

4.5 Class HoaDon và QuanLyHoaDon

from datetime import datetime

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

defcalculate_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 iftotal_amountisnot None:

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

conn.commit() finally:

cursor.close() def str (self):

Trang 20

{self ma_nv }\nNgày tạo: {self date_created }\nTố*ng cộng: {self total_amount }\n"

class QuanLyHoaDon: @staticmethod defdisplay_list(hoadons): forhoadon inhoadons: print(hoadon) @staticmethod

defadd_new(conn ma_hd ma_kh ma_nv date_created, , , , ): cursor conn = cursor()

cursor.execute("INSERT INTO hoadon (MaHD, MaKH, MaNV, DateCreated) VALUES (%s %s %s %s)", , , ,

(ma_hd ma_kh ma_nv date_created, , , )) conn.commit()

@staticmethod

defdelete_by_ma_hd(conn ma_hd, ): cursor conn = cursor()

cursor.execute("DELETE FROM hoadon WHERE MaHD = %s", (ma_hd,)) conn.commit()

@staticmethod

defupdate_by_ma_hd(conn ma_hd ma_kh ma_nv date_created, , , , ): cursor conn = cursor()

cursor.execute("UPDATE hoadon SET MaKH = %s, MaNV = %s, DateCreated = %s WHERE MaHD = %s",

(ma_kh ma_nv date_created ma_hd, , , )) conn.commit()

@staticmethod

defcalculate_total(conn ma_hd, ): cursor conn = cursor()

cursor.execute("SELECT SUM(SoLuong * DonGia) FROM chitiethoadon WHERE MaHD = %s", (ma_hd,))

total_amount cursor = fetchone()[ ]0 iftotal_amountis not None:

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

conn.commit() defget_by_ma_hd(conn ma_hd, ):

Ngày đăng: 10/04/2024, 16:50

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w