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

Công nghệ phần mềm Đề ti quản lý hiệu thuốc pts cầu giấy , hà nội

68 6 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 đề Quản Lý Hiệu Thuốc PTS Cầu Giấy
Tác giả Phạm Thái Sơn
Người hướng dẫn Lê Thị Trang Linh
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Chuyên Đề
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 68
Dung lượng 5,28 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU DỰ ÁN PHẦN MỀM (9)
    • 1.1. Khảo sát hệ thống (9)
      • 1.1.1. Khảo sát hiện trạng (9)
      • 1.1.2. Đánh giá hiện trạng (9)
    • 1.2. Xác định bài toán cần giải quyết (9)
    • 1.3 Phân tích và đặc tả các nghiệp vụ của hệ thống (10)
      • 1.3.1. Bộ phận quản lí (10)
      • 1.3.2 Bộ phận tiếp nhận yêu cầu (10)
      • 1.3.3. Bộ phận thu ngân (10)
      • 1.3.4. Bộ phận quản lý kho thuốc (10)
    • 1.4. Xác định các yêu cầu của hệ thống (11)
      • 1.4.1. Yêu cầu chức năng (11)
      • 1.4.2. Yêu cầu phi chức năng (11)
  • CHƯƠNG 2: QUẢN LÍ DỰ ÁN (12)
    • 2.1. Ước lượng dự án (12)
      • 2.1.1. Ước lượng chi phí (12)
      • 2.1.2. Ước lượng thời gian (13)
      • 2.1.1. Ước lượng người tham gia (14)
  • CHƯƠNG 3: PHÂN TÍCH (16)
    • 3.1 Xác định các Actor và Use case tổng quát của hệ thống (16)
      • 3.1.1 Các Actor (16)
      • 3.1.2 Use case tổng quát của hệ thống (17)
    • 3.2 Phân tích, thiết kế từng chức năng của hệ thống (17)
      • 3.2.1 Chức năng đăng nhập (17)
        • 3.2.1.1 Biểu đồ use case chức năng đăng nhập (17)
        • 3.2.1.2 Biểu đồ hoạt động chức năng đăng nhập (19)
      • 3.2.2 Chức năng quản lý bán thuốc (20)
        • 3.2.1.1 Biểu đồ use case chức năng quản lý bán thuốc (20)
        • 3.2.2.2 Biểu đồ hoạt động chức năng quản lý bán thuốc (21)
      • 3.2.3 Chức năng quản lý nhân viên (22)
        • 3.2.3.1 Biểu đồ use case chức năng quản lý nhân viên (22)
        • 3.2.3.2 Biểu đồ hoạt động chức năng quản lý nhân viên (25)
      • 3.2.4 Chức năng quản lý khách hàng (29)
        • 3.2.4.1 Biểu đồ use case chức năng quản lý khách hàng (29)
        • 3.2.4.2 Biểu đồ hoạt động chức năng quản lý khách hàng (31)
      • 3.2.5 Chức năng quản lý thuốc (35)
        • 3.2.5.1 Biểu đồ use case chức năng quản lý thuốc (35)
        • 3.2.5.2 Biểu đồ hoạt động chức năng quản lý thuốc (37)
      • 3.2.6 Chức năng quản lý đơn thuốc (41)
        • 3.2.6.1 Biểu đồ use case chức năng quản lý đơn thuốc (41)
        • 3.2.6.2 Biểu đồ hoạt động chức năng quản lý đơn thuốc (43)
  • CHƯƠNG 4: THIẾT KẾ GIAO DIỆN (46)
    • 4.1 Thiết kế giao diện (46)
      • 4.1.1 Giao diện đăng nhập (46)
      • 4.1.3 Giao diện quản lý thuốc (47)
      • 4.1.4 Giao diện quản lý tài khoản ( quản lý nhân viên) (48)
      • 4.1.5 Giao diện quản lý đơn thuốc (48)
      • 4.1.6 Quản lý khách hàng (48)
    • 4.2 Thiết kế lưu trữ (49)
      • 4.2.1 Diagram (49)
      • 4.2.2 Bảng khách hàng (50)
      • 4.2.3 Bảng nhân viên (50)
      • 4.2.4 Bảng tài khoản (50)
      • 4.2.5 Bảng thuốc (51)
      • 4.2.6 Bảng đơn thuốc (51)
      • 4.2.7 Bảng thi tiết đơn thuốc (51)
  • CHƯƠNG 5 LẬP TRÌNH (52)
    • 5.1 Ngôn ngữ lập trình (52)
    • 5.2 Lập trình (52)
      • 5.2.1 Form đăng nhập (52)
      • 5.2.2 Form chính (53)
        • 5.2.2.1 Load User Control (53)
        • 5.2.2.2 User Control cửa hàng (54)
        • 5.2.2.3: User Control khách hàng (58)
      • 5.2.3 Form Control thuốc (61)
  • CHƯƠNG 6 KIỂM THỬ (63)
    • 3.1 Kiểm thử (63)
      • 3.1.3. Thiết kế kiểm tra (64)
      • 3.1.4. Thực hiện kiểm thử (64)
      • 3.1.5. Kế hoạch kiểm thử (64)
    • 3.2 Testcase (64)
      • 3.2.1 Thêm mới khách hàng (64)
      • 3.2.2 Xoá khách hàng (65)
  • KẾT LUẬN (66)

Nội dung

+ Bước 2: Hệ thống hiển thị form bán hàng giúp người dùng thao tác + Bước 3: Người dùng tạo chọn đơn thuốc mới + Bước 4: Hệ thống lấy thông tin truy vấn từ cơ sở dữ liệu để khởi tạo đơn

GIỚI THIỆU DỰ ÁN PHẦN MỀM

Khảo sát hệ thống

HIệu thuốc PTS là nơi bán thuốc phục vụ cho nhân dân trong đường Hoàng Quốc Việt

Thời gian mở cửa : từ 7h sáng đến 21h đêm

Nhân viên gồm : 1 Người quản lý, Dược sĩ.

Nhà thuốc đóng vai trò quan trọng trong việc lưu trữ và quản lý thuốc phục vụ nhu cầu của khách hàng Nhân viên nhà thuốc thực hiện các nhiệm vụ chính như quản lý kho thuốc, bán thuốc và cập nhật thông tin về tình hình tồn kho.

Qua quá trình khảo sát thực tế em nhận thấy:

Hiệu thuốc PTS tại Hà Nội đang tiến hành nâng cấp cơ sở vật chất và trang thiết bị để đáp ứng nhu cầu mua thuốc ngày càng tăng của người dân Sự gia tăng này đòi hỏi lượng thuốc được bổ sung nhiều hơn, tuy nhiên, việc quản lý thủ công trên sổ sách sẽ gặp khó khăn, tốn thời gian và công sức, đồng thời không đạt hiệu quả cao.

Xác định bài toán cần giải quyết

Nhà thuốc tổ chức lưu trữ, sắp xếp các thông tin về thuốc được nhập từ các nhà cung cấp sau khi được kiểm duyệt.

Tùy thuộc vào thời điểm và nhu cầu bổ sung thuốc trong kho, Dược Sĩ sẽ trình kế hoạch lên người quản lý để duyệt Nếu được chấp thuận, Dược Sĩ sẽ liên hệ với nhà cung cấp và đề xuất lựa chọn cho người quản lý Sau khi nhận được sự đồng ý, quá trình ký hợp đồng với nhà cung cấp sẽ được tiến hành, hoàn tất việc đặt mua thuốc.

Sau khi ký hợp đồng mua thuốc với nhà cung cấp, Dược sĩ sẽ đảm nhận trách nhiệm nhập thuốc và thanh toán hóa đơn Tiếp theo, Dược sĩ sẽ báo cáo kết quả cho người quản lý, hoàn tất quy trình mua thuốc.

Sau khi mua thuốc , dược sĩ sẽ tiến hành kiểm tra , phân loại thuốc , sắp xếp , sau đó tiến hành lưu trữ thuốc.

Theo định kì hoặc thời điểm dược sĩ thực hiện thống kê , lập báo cáo lên người quản lý.

Phân tích và đặc tả các nghiệp vụ của hệ thống

- Điều phối hoạt động của hiệu thuốc

- Nắm được tình hình mua bán, doanh thu của hiệu thuốc

- Quản lí nhân viên, kiểm tra các sai sót nếu có

- Kiểm tra các hóa đơn để tiến hành nhập, xuất tiền

- Quản lí nhập, xuất cho thuốc

- Quản lí lượt khác hàng ra vào hiệu thuốc dựa trên số lượng hóa đơn đã thanh toán.

1.3.2 Bộ phận tiếp nhận yêu cầu

- Tiếp nhận việc đặt thuốc của khách hàng

- Trực tiếp hỏi khách hàng về bệnh và thuốc mà khách hàng muốn đặt

- Tư vấn về thuốc cho khách hàng

- Giới thiệu và đưa ra lời khuyên về các đơn thuốc

- Ghi lại đơn thuốc mà khách hàng chọn rồi chuyển đến bộ phận thu ngân

- Tiếp nhận các đơn hàng của khách hàng từ bộ phận phục vụ

- Tiến hành thanh toán, in hóa đơn cho khách hàng

- Nhận tiền và trả tiền thừa cho khách (nếu có)

- Ghi nhận lại số lượng mặt hàng bán được và thống kê báo cáo cho bộ phận quản lí sau mỗi ca làm việc

- Thống kê tài chính của cửa hàng

1.3.4 Bộ phận quản lý kho thuốc

- Quản lý số lượng thuốc thường xuyên và báo cáo cho quản lý

- Cập nhật các loại thuốc mới

- Tiêu hủy thuốc đã quá hạn

Xác định các yêu cầu của hệ thống

- Quản lí nhà cung cấp

1.4.2 Yêu cầu phi chức năng

- Đăng nhập: Khi sử dụng hệ thống nhân viên tại cửa hàng phải đăng nhập, khi tạo hoá đơn, thanh toán, sẽ biết nhân viên nào làm

- Đăng kí: Nhân viên chưa có tài khoản sẽ phải đăng kí.

- Cập nhật sản thuốc: Nhân viên làm việc tại hiệu thuốc sẽ cập nhật lại hàng nhập mỗi ngày thêm

- Cập nhật hoá đơn: Nhân viên làm việc tại hiệu thuốc sẽ tạo mới hoá đơn

- Cập nhật số lượng: Nhân viên làm việc tại hiệu thuốc sẽ cập nhật lại số lượng thuốc trong kho mỗi ngày sau nhập hàng

- Thanh toán: Sau khi khách hàng chọn được thuốc nhân viên sẽ giúp khách hàng thanh toán tại cửa hàng

-Thông kê doanh thu: Tính toán tổng số thuốc và đơn thuốc bán được bao nhiêu thu lại bao nhiêu

QUẢN LÍ DỰ ÁN

Ước lượng dự án

Hệ thống quản lý bán hàng giúp kiểm soát hiệu quả tình hình kinh doanh và hoạt động của nhân viên tại cửa hàng Phần mềm này không chỉ nâng cao hiệu suất công việc mà còn thúc đẩy hoạt động kinh doanh, mang lại sự tiện lợi và chính xác trong quản lý Nhờ đó, cửa hàng có thể xây dựng uy tín và tối đa hóa doanh thu.

Giai đoạn Công việc chính Mô tả công việc Chi phí

Khảo sát yêu cầu dự án

Thu nhập các dữ liệu cần thiết về dự án

Bắt đầu dự án Triển khai và thiết lập project cho dự án

Lập kế hoạch phạm vi dự án Lập kế hoạch chi tiết cho phạm vi làm việc

Viết báo cáo tổng kết dự án

Tổng kết lại toàn bộ quá trình quản lý dự án

Phân tích và thiết kế hệ thống Đặc tả chi tiết yêu cầu của khách hàng

Mô tả chi tiết những yêu cầu, chức năng cần có của phần mềm

Mô tả hệ thống thông qua sơ đồ usecase và trình tự

Xây dựng sơ đồ usecase và trình tự bằng phần mềm draw.io

Thiết kế cơ sở dữ liệu Xây dựng các trường dữ liệu cần thiết cho phần mềm

Thiết kế giao diện cho phần mềm Xây dựng các chức năng chính cho phần mềm bán hàng

Module thống kê sản phẩm

Thiết kế các module Xây dựng chức năng cùng các sự kiện

Xây dựng code Xử lí các tính năng khi thao tác 600.000VNĐ Kiểm thử cho module

Kiểm tra giao diện, độ chính xác và tìm các lỗi trong hệ thống

Kiểm tra giao diện, độ chính xác và tìm các lỗi trong hệ thống

Viết báo cáo hoàn thiện Trình bày báo cáo chi tiết khi thiết kế module

Tích hợp và hoàn thành sản phầm

Tích hợp các module đã thiết kế Lắp ghép các module lại với nhau cho hoàn chỉnh

Kiểm thử phần mềm Test lại toàn bộ hệ thống đã xây dựng 100.000VNĐ Fix code Tìm kiếm các lỗi phát sinh trong quá trình thực thi

-Ước lượng khả dĩ nhất (ML-Most Likely): Thời gian cần để hoàn thành công việc trong điều kiện "bình thường" hay "hợp lý".

-Ước lượng lạc quan nhất (MO-Most Optimistic): Thời gian cần để hoàn thành công việc trong điều kiện "tốt nhất" hay "lý tưởng" (không có trở ngại nào).

-Ước lượng bi quan nhất (MP-Most Pessimistic): Thời gian cần để hoàn thành công việc một cách "tồi nhất" (đầy trở ngại).

-Ước lượng cuối cùng tính theo công thức:

-Thời gian lãng phí cho mỗi công việc thông thường từ (7%-10%) EST cuối cùng = EST + EST*8% Đơn vị tính: Ngày

Tên công việc MO LM MP EST % EST Cuối cùng

2.1.1.Ước lượng người tham gia

- Số lượng người tham gia 1 người

2.2.Lập lịch và theo dõi

Nhiệm vụ Thời gian Hoàn thành Chưa hoàn thành Quản lí dự án Ngày 1

Phân tích thiết kế hệ thống Ngày 2

Module thống kê sản phầm Ngày 3

Tích hợp và hoàn thành sản phẩm Ngày 4

Ngày 5Bảo trì phần mềm Ngày 6

PHÂN TÍCH

Xác định các Actor và Use case tổng quát của hệ thống

1 Người quản lý - Đăng nhập

3 Thực tập sinh - Đăng nhập

3.1.2 Use case tổng quát của hệ thống

Hình 3.1.2 Use case tổng quát của hệ thống

Phân tích, thiết kế từng chức năng của hệ thống

3.2.1.1 Biểu đồ use case chức năng đăng nhập: a) Biểu đồ use case chức năng đăng nhập:

Hình 3.1.1.1 use case chức năng đăng nhập b) Đặc tả use case đăng nhập, đăng xuất a Mô tả tóm tắt

Tên ca sử dụng: Đăng nhập hệ thống

Mục đích: Mô tả cách một người sử dụng đăng nhập vào hệ thống.

Tác nhân: Người quản lý, dược sĩ, thực tập sinh b Các luồng sự kiện

Ca sử dụng này bắt đầu khi tác nhân muốn đăng nhập vào hệ thống.

Hệ thống yêu cầu tác nhân nhập tài khoản và mật khẩu đăng nhập.

Tác nhân nhập tên đăng nhập và mật khẩu đăng nhập của mình.

Hệ thống xác nhận tài khoản và mật khẩu đăng nhập có hợp lệ không, nếu không hợp lệ thì thực hiện luồng A1.

Hệ thống ghi lại quá trình đăng nhập.

Luồng A1: Nhập sai tài khoản/mật khẩuđăng nhập

- Hệ thống hiển thị một thông báo lỗi.

- Người sử dụng có thể chọn hoặc là đăng nhập lại hoặc là huỷ bỏ đăng nhập, khi đó ca sử dụng kết thúc. c Tiền điều kiện

Nếu việc đăng nhập thành công, người sử dụng sẽ đăng nhập được vào hệ thống.

3.2.1.2 Biểu đồ hoạt động chức năng đăng nhập

Hình 3.1.1.2 Biểu đồ hoạt động chức năng đăng nhập

+ Bước 1: Người dùng yêu cầu đăng nhập vào hệ thống.

+ Bước 2: Hệ thống hiển thi giao diện đăng nhập cho người dùng nhập

+ Bước 3: Người dùng nhập tài khoản hoặc mật khẩu vào form

+ Bước 4: Hệ thống kiểm tra dữ liệu nhập vào

~ So sánh dữ liệu khớp với database chuyển sang b5

~ Dữ liệu không khớp quay lại b3

+ Bước 5: Hệ thổng hiển thi giao diện trang chủ cho người dùng sử dụng.

3.2.2 Chức năng quản lý bán thuốc

3.2.1.1 Biểu đồ use case chức năng quản lý bán thuốc: a) Biểu đồ use case chức năng quản lý bán thuốc:

Hình 3.2.1.1 Biểu đồ use case chức năng quản lý bán thuốc b) Đặc tả use case quản lý bán thuốc: a Mô tả tóm tắt

Tên ca sử dụng: Quản lý bán thuốc.

- Giúp người dùng có thể quản lí được việc bán thuốc dễ dàng hơn.

- Dữ liệu được sao lưu 1 cách dễ dàng hơn

Tác nhân: Người quản lý, dược sĩ, thực tập sinh b Các luồng sự kiện

Ca sử dụng này bắt đầu khi người dùng bán thuốc.

Hệ thống hiển thị các lựa chọn:

3.2.2.2 Biểu đồ hoạt động chức năng quản lý bán thuốc

Hình 2.2.2.2.c Biểu đồ hoạt động chức năng quản lý bán thuốc

+ Bước 1: Người dùng yêu cầu bán thuốc

+ Bước 2: Hệ thống hiển thị form bán hàng giúp người dùng thao tác

+ Bước 3: Người dùng tạo chọn đơn thuốc mới

+ Bước 4: Hệ thống lấy thông tin truy vấn từ cơ sở dữ liệu để khởi tạo đơn thuốc , hiển thị dữ liệu lên màn hình cho người dùng

+ Bước 5: Người dùng chọn loại thuốc cần mua

+ Bước 6: Hệ thống lấy dữ liệu của thuốc mà người dùng chọn lưu vào list chi tiết hóa đơn tạm thời, hiển thị lên bảng cho người dùng

+ Bước 7: Người dùng nhập số lượng sản phẩm của thuốc

+ Bước 8: Hệ thống kiểm tra dữ liệu sản phẩm so sánh với số lượng lưu trong BD

~ Nếu hợp lệ thực hiện yêu cầu chuyển sang bước 9.

~ Nếu không hợp lệ hủy bỏ yêu cầu quay lại bước 7

+ Bước 9: Người dùng xác nhận yêu cầu đơn hàng ( thanh toán )

+ Bước 10: Hệ thống lấy dữ liệu vừa tạo lưu vào bảng hóa đơn và chi tiết hóa đơn trong cơ sở dữ liệu.

3.2.3 Chức năng quản lý nhân viên

3.2.3.1 Biểu đồ use case chức năng quản lý nhân viên a) Biểu đồ use case chức năng quản nhân viên:

Hình 2.2.3.1 Biểu đồ use case chức năng quản lý nhân viên b) Đặc tả use case quản lý nhân viên a Mô tả tóm tắt

Tên ca sử dụng: Duy trì thông tin nhân viên

Mục đích: Quản lý thông tin của nhân viên

Tác nhân : Người quản lý b Các luồng sự kiện

Ca sử dụng này bắt đầu khi người quản lý chọn Quản lý thông tin về nhân viên

Hệ thống hiển thị các lựa chọn:

Hệ thống yêu cầu người quản lý lựa chọn chức năng mà họ muốn thực hiện.

- Nếu người quản lý lựa chọn “Thêm TT nhân viên ” thì luồng sự kiện con

ThêmTT sẽ được thực hiện.

- Nếu người quản lý lựa chọn “Xoá TT nhân viên ” thì luồng sự kiện con XoáTT sẽ được thực hiện.

- Nếu người quản lý chọn “Sửa TT nhân viên ” thì luồng sự kiện con SửaTT sẽ được thực hiện.

- Nếu người quản lý chọn “Thoát” thì luồng sự kiện con Thoát sẽ được thực hiện.

- Nếu đã có người dùng trên, thực hiện luồng A2.

- Hệ thống hiển thị một danh sách các người dùng và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý nhập thông tin người quản lý mới và chọn Thêm

- Nếu người quảng lý chọn Huỷ (không thêm mới nữa), ca sử dụng bắt đầu lại.

- Hệ thống sẽ thêm thông tin quản lý mới vào csdl.

- Hệ thống hiển thị một danh sách các người quản lý và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý lựa chọn một người quản lý và xác nhận xoá Người quản lý chọn Huỷ (không xoá nữa), ca sử dụng bắt đầu lại.

- Hệ thống xoá bỏ thông tin người dùng đó trong csdl.

- Hệ thống hiển thị danh sách các người dùng và các ô ghi thông tin có trong danh sách

- Người quản lý lựa chọn một người dùng

- Người quản lý nhập thông tin người dùng ở các ô thông tin và chọn Sửa.

- Hệ thống sẽ sửa thông tin người dùng trong csdl.

- Người quản lý thoát khỏi hệ thống

3.2.3.2 Biểu đồ hoạt động chức năng quản lý nhân viên a) Biểu đồ hoạt động chức năng thêm nhân viên:

Hình 3.2.3.2.a Biểu đồ hoạt động chức năng quản lý thêm nhân viên

+ Bước 1: Người dùng yêu cầu thêm nhân viên

+ Bước 2: Hiển thị form nhập thông tin nhân viên

+ Bước 3: Hệ thống kiểm tra xem thông tin nhân viên so sánh với cơ sở dữ liệu

~ Thông tin nhân viên không hợp lệ quay lại b2

~ Thông tin nhân viên hợp lệ chuyển sang b4

+ Bước 4: Hệ thống yêu cầu người dùng xác nhận lưu thông tin nhân viên vào cơ sở dữ liệu

~ Người dùng xác nhận thêm chuyển sang b6.

~ Người dùng không xác nhận thêm thoát khỏi chương trình.

+ Bước 6: Hệ thống thêm dữ liệu nhân viên vừa tạo vào trong database. b) Biểu đồ hoạt động chức năng sửa nhân viên:

Hình 3.2.3.2.b Biểu đồ hoạt động chức năng quản lý sửa nhân viên

+ Bước 1: Người dùng yêu cầu sửa thông tin nhân viên

+ Bước 2: Hệ thống truy vấn dữ liệu danh sách nhân viên trong cơ sở dữ liệu hiển thị lên màn hình cho người dùng.

+ Bước 3: Người dùng chọn nhân viên muốn sửa

+ Bước 4: Hệ thống truy vấn dữ liệu từ bảng hiển thị lên form sửa thông nhân viên + Bước 5 :Người dùng nhập thông tin nhân viên vào form điền

+ Bước 6: Hệ thống kiểm tra thông tin nhân viên so sánh với cơ sở dữ liệu và xét các điều kiện ràng buộc

~ Thông tin nhân viên không hợp lệ quay lại b5

~ Thông tin nhân viên hợp lệ chuyển sang b7

+ Bước 7: Người dùng xác nhận sửa lại thông tin nhân viên

+ Bước 8: Hệ thống sửa dữ liệu nhân viên trong database. c) Biểu đồ hoạt động chức năng xóa nhân viên:

Hình 3.2.3.2.c Biểu đồ hoạt động chức năng quản lý xóa nhân viên

+ Bước 1: Người dùng yêu cầu xóa thông tin nhân viên khỏi cơ sở dữ liệu của hiệu thuốc

+ Bước 2: Hệ thống truy vấn lấy danh sách nhân viên từ cơ sở dữ liệu hiển thị thông tin lên bảng cho người dùng

+ Bước 3: Người dùng chọn nhân viên muốn xóa trong bảng

+ Bước 4: Hệ thống kiểm tra xem thông tin nhân viên

~ Có đang chứa dữ liệu tương đương thông tin nhân viên còn tồn tại quay lại b3

~ Không chứa dữ liệu tương đương thông tin nhân viên còn tồn tại chuyển sang b5 + Bước 5: Hệ thống yêu cầu xác nhận xóa thông tin nhân viên

~ Người dùng xác nhận xóa chuyển sang b7.

~ Người dùng không xác nhận xóa thoát khỏi chương trình.

+ Bước 7: Hệ thống xóa dữ liệu nhân viên khỏi database

3.2.4 Chức năng quản lý khách hàng

3.2.4.1 Biểu đồ use case chức năng quản lý khách hàng a) Biểu đồ use case chức năng quản lý khách hàng:

Hình 2.2.4.1 Biểu đồ use case chức năng quản lý khách hàng b) Đặc tả use case quản lý khách hàng a Mô tả tóm tắt

Tên ca sử dụng: Duy trì thông tin khách hàng

Mục đích: Quản lý thông tin của khách hàng.

Tác nhân : Người quản lý b Các luồng sự kiện

Ca sử dụng này bắt đầu khi người quản lý chọn Quản lý thông tin về khách hàng

Hệ thống hiển thị các lựa chọn:

Hệ thống yêu cầu người quản lý lựa chọn chức năng mà họ muốn thực hiện.

- Nếu người quản lý lựa chọn “Thêm TT khách hàng” thì luồng sự kiện con

ThêmTT sẽ được thực hiện.

- Nếu người quản lý lựa chọn “Xoá TT khách hàng” thì luồng sự kiện con XoáTT sẽ được thực hiện.

- Nếu người quản lý chọn “Sửa TT khách hàng” thì luồng sự kiện con SửaTT sẽ được thực hiện.

- Nếu người quản lý chọn “Thoát” thì luồng sự kiện con Thoát sẽ được thực hiện.

- Nếu đã có người dùng trên, thực hiện luồng A2.

- Hệ thống hiển thị một danh sách các người dùng và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý nhập thông tin người quản lý mới và chọn Thêm

- Nếu người quảng lý chọn Huỷ (không thêm mới nữa), ca sử dụng bắt đầu lại.

- Hệ thống sẽ thêm thông tin quản lý mới vào csdl.

- Hệ thống hiển thị một danh sách các người quản lý và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý lựa chọn một người quản lý và xác nhận xoá Người quản lý chọn Huỷ (không xoá nữa), ca sử dụng bắt đầu lại.

- Hệ thống xoá bỏ thông tin người dùng đó trong csdl.

- Hệ thống hiển thị danh sách các người dùng và các ô ghi thông tin có trong danh sách

- Người quản lý lựa chọn một người dùng

- Người quản lý nhập thông tin người dùng ở các ô thông tin và chọn Sửa.

- Hệ thống sẽ sửa thông tin người dùng trong csdl.

- Người quản lý thoát khỏi hệ thống

3.2.4.2 Biểu đồ hoạt động chức năng quản lý khách hàng a) Biểu đồ hoạt động chức năng thêm khách hàng:

Hình 3.2.4.2.a Biểu đồ hoạt động chức năng quản lý thêm khách hàng

+ Bước 1: Người dùng yêu cầu thêm khách hàng

+ Bước 2: Hiển thị form nhập thông tin khách hàng

+ Bước 3: Hệ thống kiểm tra xem thông tin khách hàng so sánh với cơ sở dữ liệu

~ Thông tin khách hàng không hợp lệ quay lại b2

~ Thông tin khách hàng hợp lệ chuyển sang b4

+ Bước 4: Hệ thống yêu cầu người dùng xác nhận lưu thông tin khách hàng vào cơ sở dữ liệu

~ Người dùng xác nhận thêm chuyển sang b6.

~ Người dùng không xác nhận thêm thoát khỏi chương trình.

+ Bước 6: Hệ thống thêm dữ liệu khách hàng vừa tạo vào trong database. b) Biểu đồ hoạt động chức năng sửa thông tin khách hàng:

Hình 3.2.4.2.b Biểu đồ hoạt động chức năng quản lý sửa khách hàng

+ Bước 1: Người dùng yêu cầu sửa thông tin khách hàng

+ Bước 2: Hệ thống truy vấn dữ liệu danh sách khách hàng trong cơ sở dữ liệu hiển thị lên màn hình cho người dùng.

+ Bước 3: Người dùng chọn khách hàng muốn sửa

+ Bước 4: Hệ thống truy vấn dữ liệu từ bảng hiển thị lên form sửa thông khách hàng

+ Bước 5 :Người dùng nhập thông tin khách hàng vào form điền

+ Bước 6: Hệ thống kiểm tra thông tin khách hàng so sánh với cơ sở dữ liệu và xét các điều kiện ràng buộc

~ Thông tin khách hàng không hợp lệ quay lại b5

~ Thông tin khách hàng hợp lệ chuyển sang b7

+ Bước 7: Người dùng xác nhận sửa lại thông tin khách hàng

+ Bước 8: Hệ thống sửa dữ liệu khách hàng trong database. c) Biểu đồ hoạt động chức năng xóa khách hàng:

Hình 3.2.4.2.c Biểu đồ hoạt động chức năng quản lý xóa khách hàng

+ Bước 1: Người dùng yêu cầu xóa thông tin khách hàng khỏi cơ sở dữ liệu của hiệu thuốc

+ Bước 2: Hệ thống truy vấn lấy danh sách khách hàng từ cơ sở dữ liệu hiển thị thông tin lên bảng cho người dùng

+ Bước 3: Người dùng chọn khách hàng muốn xóa trong bảng

+ Bước 4: Hệ thống kiểm tra xem thông tin khách hàng

~ Có đang chứa dữ liệu tương đương thông tin khách hàng còn tồn tại quay lại b3

~ Không chứa dữ liệu tương đương thông tin khách hàng còn tồn tại chuyển sang b5

+ Bước 5: Hệ thống yêu cầu xác nhận xóa thông tin khách hàng

~ Người dùng xác nhận xóa chuyển sang b7.

~ Người dùng không xác nhận xóa thoát khỏi chương trình.

+ Bước 7: Hệ thống xóa dữ liệu khách hàng khỏi database

3.2.5 Chức năng quản lý thuốc

3.2.5.1 Biểu đồ use case chức năng quản lý thuốc a) Biểu đồ use case chức năng quản lý thuốc:

Hình 2.2.4.1 Biểu đồ use case chức năng quản lý thuốc b) Đặc tả use case quản lý thuốc a Mô tả tóm tắt

Tên ca sử dụng: Duy trì thông tin thuốc

Mục đích: Quản lý thông tin của thuốc.

Tác nhân : Người quản lý b Các luồng sự kiện

Ca sử dụng này bắt đầu khi người quản lý chọn Quản lý thông tin về thuốc

Hệ thống hiển thị các lựa chọn:

Hệ thống yêu cầu người quản lý lựa chọn chức năng mà họ muốn thực hiện.

- Nếu người quản lý lựa chọn “Thêm TT thuốc” thì luồng sự kiện con ThêmTT sẽ được thực hiện.

- Nếu người quản lý lựa chọn “Xoá TT thuốc” thì luồng sự kiện con XoáTT sẽ được thực hiện.

- Nếu người quản lý chọn “Sửa TT thuốc” thì luồng sự kiện con SửaTT sẽ được thực hiện.

- Nếu người quản lý chọn “Thoát” thì luồng sự kiện con Thoát sẽ được thực hiện.

- Nếu đã có người dùng trên, thực hiện luồng A2.

- Hệ thống hiển thị một danh sách các người dùng và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý nhập thông tin người quản lý mới và chọn Thêm

- Nếu người quảng lý chọn Huỷ (không thêm mới nữa), ca sử dụng bắt đầu lại.

- Hệ thống sẽ thêm thông tin quản lý mới vào csdl.

- Hệ thống hiển thị một danh sách các người quản lý và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý lựa chọn một người quản lý và xác nhận xoá Người quản lý chọn Huỷ (không xoá nữa), ca sử dụng bắt đầu lại.

- Hệ thống xoá bỏ thông tin người dùng đó trong csdl.

- Hệ thống hiển thị danh sách các người dùng và các ô ghi thông tin có trong danh sách

- Người quản lý lựa chọn một người dùng

- Người quản lý nhập thông tin người dùng ở các ô thông tin và chọn Sửa.

- Hệ thống sẽ sửa thông tin người dùng trong csdl.

- Người quản lý thoát khỏi hệ thống

3.2.5.2 Biểu đồ hoạt động chức năng quản lý thuốc a) Biểu đồ hoạt động chức năng thêm thông tin thuốc:

Hình 3.2.5.2.a Biểu đồ hoạt động chức năng quản lý thêm thuốc

+ Bước 1: Người dùng yêu cầu thêm thông tin thuốc

+ Bước 2: Hiển thị form nhập thông tin thuốc

+ Bước 3: Hệ thống kiểm tra xem thông tin thuốc so sánh với cơ sở dữ liệu

~ Thông tin thuốc không hợp lệ quay lại b2

~ Thông tin thuốc hợp lệ chuyển sang b4

+ Bước 4: Hệ thống yêu cầu người dùng xác nhận lưu thông tin thuốc vào cơ sở dữ liệu

~ Người dùng xác nhận thêm chuyển sang b6.

~ Người dùng không xác nhận thêm thoát khỏi chương trình.

+ Bước 6: Hệ thống thêm dữ liệu thuốc vừa tạo vào trong database. b) Biểu đồ hoạt động chức năng sửa thông tin thuốc:

Hình 3.2.5.2.b Biểu đồ hoạt động chức năng quản lý sửa thuốc

+ Bước 1: Người dùng yêu cầu sửa thông tin thuốc

+ Bước 2: Hệ thống truy vấn dữ liệu danh sách thuốc trong cơ sở dữ liệu hiển thị lên màn hình cho người dùng.

+ Bước 3: Người dùng chọn thuốc muốn sửa

+ Bước 4: Hệ thống truy vấn dữ liệu từ bảng hiển thị lên form sửa thông thuốc + Bước 5 :Người dùng nhập thông tin thuốc vào form điền

+ Bước 6: Hệ thống kiểm tra thông tin thuốc so sánh với cơ sở dữ liệu và xét các điều kiện ràng buộc

~ Thông tin khách hàng không hợp lệ quay lại b5

~ Thông tin khách hàng hợp lệ chuyển sang b7

+ Bước 7: Người dùng xác nhận sửa lại thông tin thuốc

+ Bước 8: Hệ thống sửa dữ liệu thuốc trong database. c) Biểu đồ hoạt động chức năng xóa thông tin thuốc:

Hình 3.2.5.2.c Biểu đồ hoạt động chức năng quản lý xóa thuốc

+ Bước 1: Người dùng yêu cầu xóa thông tin thuốc khỏi cơ sở dữ liệu của hiệu thuốc

+ Bước 2: Hệ thống truy vấn lấy danh sách thuốc từ cơ sở dữ liệu hiển thị thông tin lên bảng cho người dùng

+ Bước 3: Người dùng chọn thuốc muốn xóa trong bảng

+ Bước 4: Hệ thống kiểm tra xem thông tin thuốc

~ Có đang chứa dữ liệu tương đương thông tin thuốc còn tồn tại quay lại b3

~ Không chứa dữ liệu tương đương thông tin thuốc còn tồn tại chuyển sang b5 + Bước 5: Hệ thống yêu cầu xác nhận xóa thông tin thuốc

~ Người dùng xác nhận xóa chuyển sang b7.

~ Người dùng không xác nhận xóa thoát khỏi chương trình. + Bước 7: Hệ thống xóa dữ liệu thuốc khỏi database

3.2.6 Chức năng quản lý đơn thuốc

3.2.6.1 Biểu đồ use case chức năng quản lý đơn thuốc a) Biểu đồ use case chức năng quản lý đơn thuốc:

Hình 2.2.4.1 Biểu đồ use case chức năng quản lý đơn thuốc b) Đặc tả use case quản lý đơn thuốc a Mô tả tóm tắt

Tên ca sử dụng: Duy trì thông tin đơn thuốc

Mục đích: Quản lý thông tin của đơn thuốc.

Tác nhân : Người quản lý b Các luồng sự kiện

Ca sử dụng này bắt đầu khi người quản lý chọn Quản lý thông tin về đơn thuốc

Hệ thống hiển thị các lựa chọn:

Hệ thống yêu cầu người quản lý lựa chọn chức năng mà họ muốn thực hiện.

- Nếu người quản lý lựa chọn “Xoá TT đơn thuốc” thì luồng sự kiện con XoáTT sẽ được thực hiện.

- Nếu người quản lý chọn “Sửa TT đơn thuốc” thì luồng sự kiện con SửaTT sẽ được thực hiện.

- Nếu người quản lý chọn “Thoát” thì luồng sự kiện con Thoát sẽ được thực hiện.

- Nếu đã có người dùng trên, thực hiện luồng A2.

- Hệ thống hiển thị một danh sách các người dùng và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý nhập thông tin người quản lý mới và chọn Thêm

- Nếu người quảng lý chọn Huỷ (không thêm mới nữa), ca sử dụng bắt đầu lại.

- Hệ thống sẽ thêm thông tin quản lý mới vào csdl.

- Hệ thống hiển thị một danh sách các người quản lý và các ô ghi thông tin có trong danh sách đó để người quản lý kiểm tra.

- Người quản lý lựa chọn một người quản lý và xác nhận xoá Người quản lý chọn Huỷ (không xoá nữa), ca sử dụng bắt đầu lại.

- Hệ thống xoá bỏ thông tin người dùng đó trong csdl.

- Hệ thống hiển thị danh sách các người dùng và các ô ghi thông tin có trong danh sách

- Người quản lý lựa chọn một người dùng

- Người quản lý nhập thông tin người dùng ở các ô thông tin và chọn Sửa.

- Hệ thống sẽ sửa thông tin người dùng trong csdl.

- Người quản lý thoát khỏi hệ thống

3.2.6.2 Biểu đồ hoạt động chức năng quản lý đơn thuốc a) Biểu đồ hoạt động chức năng sửa thông tin đơn thuốc:

Hình 3.2.5.2.b Biểu đồ hoạt động chức năng quản lý sửa đơn thuốc

+ Bước 1: Người dùng yêu cầu sửa thông tin đơn thuốc

+ Bước 2: Hệ thống truy vấn dữ liệu danh sách đơn thuốc trong cơ sở dữ liệu hiển thị lên màn hình cho người dùng.

+ Bước 3: Người dùng chọn đơn thuốc muốn sửa

+ Bước 4: Hệ thống truy vấn dữ liệu từ bảng hiển thị lên form sửa thông tin đơn thuốc

+ Bước 5 :Người dùng nhập thông tin đơn thuốc vào form điền

+ Bước 6: Hệ thống kiểm tra thông tin đơn thuốc so sánh với cơ sở dữ liệu và xét các điều kiện ràng buộc

~ Thông tin đơn thuốc không hợp lệ quay lại b5

~ Thông tin đơn thuốc hợp lệ chuyển sang b7

+ Bước 7: Người dùng xác nhận sửa lại thông tin đơn thuốc

+ Bước 8: Hệ thống sửa dữ liệu đơn thuốc trong database. b) Biểu đồ hoạt động chức năng xóa thông tin đơn thuốc:

Hình 3.2.5.2.c Biểu đồ hoạt động chức năng quản lý xóa đơn thuốc

+ Bước 1: Người dùng yêu cầu xóa thông tin đơn thuốc khỏi cơ sở dữ liệu của hiệu thuốc

+ Bước 2: Hệ thống truy vấn lấy danh sách đơn thuốc từ cơ sở dữ liệu hiển thị thông tin lên bảng cho người dùng

+ Bước 3: Người dùng chọn đơn thuốc muốn xóa trong bảng

+ Bước 4: Hệ thống kiểm tra xem thông tin đơn thuốc

~ Có đang chứa dữ liệu tương đương thông tin đơn thuốc còn tồn tại quay lại b3

~ Không chứa dữ liệu tương đương thông tin đơn thuốc còn tồn tại chuyển sang b5 + Bước 5: Hệ thống yêu cầu xác nhận xóa thông tin đơn thuốc

~ Người dùng xác nhận xóa chuyển sang b7.

~ Người dùng không xác nhận xóa thoát khỏi chương trình.

+ Bước 7: Hệ thống xóa dữ liệu đơn thuốc khỏi databas

THIẾT KẾ GIAO DIỆN

Thiết kế giao diện

4.1.2 Giao diện quản lý bán thuốc

4.1.3 Giao diện quản lý thuốc

4.1.4 Giao diện quản lý tài khoản ( quản lý nhân viên)

4.1.5 Giao diện quản lý đơn thuốc

Thiết kế lưu trữ

4.2.7 Bảng thi tiết đơn thuốc

LẬP TRÌNH

Ngôn ngữ lập trình

- C# có rấất nhiềều u đi m n i b t nh : ư ể ổ ậ ư

+ Gấền gũi v i các ngôn ng l p trình thông d ng nh C++, Java, Pascal ớ ữ ậ ụ ư

+ Xấy d ng d a trền nềền t ng c a các ngôn ng l p trình m nh nền th a h ự ự ả ủ ữ ậ ạ ừ ưở ng nh ng u đi m c a ữ ư ể ủ chúng.

+ C i tiềấn các khuyềất đi m c a C/C++ nh con tr , hi u ng ph , … ả ể ủ ư ỏ ệ ứ ụ

+ Dềễ dàng tiềấp c n, dềễ phát tri n ậ ể

+ Đ ượ ự c s chôấng l ng c a NET Framework ư ủ

- Công c hôễ tr Visual Studio ụ ợ

- H qu n tr c s d li u SQL Server ệ ả ị ơ ở ữ ệ

Lập trình

5.2.1 Form đăng nhập public partial class Login : Form

} private void buttonExit_Click(object sender, EventArgs e)

} private void buttonLogin_Click(object sender, EventArgs e)

{ int Soluong = TaiKhoanController.getLogin(txtTK.Text, txtMK.Text); if (Soluong == 1)

{ frmAdmin frm = new frmAdmin(); this.Hide(); frm.ShowDialog(); this.Show();

List nhanvien = NhanVienController.getLogin(txtTK.Text, txtMK.Text); if(nhanvien.Count == 1)

{ frmAdmin frm = new frmAdmin(nhanvien[0].TenNV1, nhanvien[0].MaNV1); this.Hide(); frm.ShowDialog(); this.Show();

MessageBox.Show("Tài kho n ho c m t kh u sai"); ả ặ ậ ẩ

MessageBox.Show("Loi: " +ex.Message);

} private void Login_FormClosing(object sender, FormClosingEventArgs e) { if(MessageBox.Show("B n có mu n thoát ch ạ ố ươ ng trình không?", "Thông báo", MessageBoxButtons.OKCancel) != System.Windows.Forms.DialogResult.OK)

} private void panel2_Paint(object sender, PaintEventArgs e)

5.2.2.1 Load User Control public partial class frmAdmin : Form

InitializeComponent(); ctrSanPham ctrSanPham = new ctrSanPham(); panelMain.Controls.Add(ctrSanPham);

} private string _MaNV; public frmAdmin(string TenNV, string MaNV) : this()

} private void btnHoaDon_Click(object sender, EventArgs e)

{ panelMain.Controls.Clear(); ctrHoaDon ctrHoaDon = new ctrHoaDon(); panelMain.Controls.Add(ctrHoaDon);

} private void btnNhanVien_click(object sender, EventArgs e)

{ panelMain.Controls.Clear(); ctrNhanVien ctrNhanVien = new ctrNhanVien(); panelMain.Controls.Add(ctrNhanVien);

} private void btnKhachHang_Click(object sender, EventArgs e)

{ panelMain.Controls.Clear(); ctrKhachHang ctrKhachHang = new ctrKhachHang(true); panelMain.Controls.Add(ctrKhachHang);

} private void btnSanPham_Click(object sender, EventArgs e)

{ panelMain.Controls.Clear(); ctrSanPham ctrSanPham = new ctrSanPham(); panelMain.Controls.Add(ctrSanPham);

} private void btnCuaHang_click(object sender, EventArgs e)

{ panelMain.Controls.Clear(); ctrCuaHang ctrCuaHang = new ctrCuaHang(_MaNV); panelMain.Controls.Add(ctrCuaHang);

5.2.2.2 User Control cửa hàng public partial class ctrCuaHang : UserControl

{ private Bitmap MyImage; private static List listCTHoaDon = new List(); private static double gThanhTien; public ctrCuaHang(string MaNV)

InitializeComponent(); getDataSanPham(); getDataCTHoaDon(); txtMaNV.Text = MaNV; dtpNgayBan.Value = DateTime.Today;

{ txtMaHD.Text = ""; txtMaKH.Text = ""; txtMaSP.Text = ""; txtTongTien.Text = ""; txtThanhTien.Text = ""; txtMaKH.Enabled = true; listCTHoaDon.Clear();

{ string con_str = "Data Source=(local); Initial Catalog=QuanLyHieuThuoc; Integrated Security=SSPI;";

SqlConnection conn = new SqlConnection(con_str); string Query = "select * from Thuoc";

SqlDataAdapter da = new SqlDataAdapter(Query, conn); da.Fill(ds, "KhachHang"); dgvSanPham.DataSource = ds.Tables["KhachHang"]; conn.Close();

List listSanPham = SanPhamController.getAll(); dgvSanPham.DataSource = listSanPham; dgvSanPham.Columns["GiaNhap1"].Visible = false;

The product table is organized with the following columns: the first column is labeled "Product Code," the second column is "Product Name," the third column displays "Image," and the fourth column shows "Selling Price." Additionally, the fifth column is titled "Product Quantity."

MessageBox.Show("Loi c a getdata Thuoc: " + ex.Message); ủ

{ dgvCTHoaDon.DataSource = null; dgvCTHoaDon.DataSource = listCTHoaDon; dgvCTHoaDon.Columns[0].HeaderText = "Mã hoá đ n"; ơ dgvCTHoaDon.Columns[1].HeaderText = "Mã s n ph m "; ả ẩ dgvCTHoaDon.Columns[2].HeaderText = "S l ố ượ ng s n ph m mua"; ả ẩ dgvCTHoaDon.Columns[3].HeaderText = "Thành ti n"; ề

MessageBox.Show("Loi c a getdata hoa don: " + ex.Message); ủ

} public void ShowMyImage(string text)

Bitmap("E:\\C#\\cnpm\\HieuThuoc\\ShopGuitarCauGiay\\Image\\" + text);

//pictureBox1.ClientSize = new Size(100, 100); pictureBox1.Image = MyImage;

MessageBox.Show("L i show image: " + ex); ỗ ở

} private void dgvSanPham_CellClick(object sender, DataGridViewCellEventArgs e) { try

{ int row = e.RowIndex; if (row >= 0)

{ btnAddProductList.Enabled = true; txtMaSP.Text =

(string)dgvSanPham.Rows[row].Cells[0].Value.ToString(); txtThanhTien.Text =

(string)dgvSanPham.Rows[row].Cells[4].Value.ToString(); gThanhTien = double.Parse(dgvSanPham.Rows[row].Cells[4].Value.ToString()); txtSoLuong.Value = 1; string text = (string)dgvSanPham.Rows[row].Cells[2].Value.ToString(); ShowMyImage(text);

MessageBox.Show("L i ch n dgv s n ph m : " + ex.Message); ỗ ở ọ ả ẩ throw;

} private void button2_Click(object sender, EventArgs e)

{ btnThanhToan.Enabled = true; txtMaHD.Text = HoaDonController.createHoaDon();

} private void btnAddProductsList_Click(object sender, EventArgs e)

In the code snippet, a new instance of the `ChiTietHoaDon` class is created, and its properties are populated with values from user inputs, including the invoice number, product code, quantity, and total amount This object is then added to a list of invoice details Subsequently, the `getDataCTHoaDon` function is called to retrieve the updated data A variable `tongtien` is initialized to zero, and a loop is set up to iterate through the list of invoice details.

} txtTongTien.Text = tongtien.ToString(); btnAddProductList.Enabled = false; txtMaKH.Enabled = false;

MessageBox.Show("L i thêm hoá đ n: " +ex.Message); ỗ ở ơ

} private void txtSoLuong_Click(object sender, EventArgs e)

{ int a = (int)txtSoLuong.Value; txtThanhTien.Text = (a * gThanhTien).ToString();

} private void btnThanhToan_CLick(object sender, EventArgs e)

{ btnThanhToan.Enabled = false; int ktra = HoaDonController.insertHoaDon(txtMaHD.Text, txtMaNV.Text, txtMaKH.Text, dtpNgayBan.Value.Date, txtTongTien.Text); if (ktra == 1)

{ int thanhtoan = 0; for (int i = 0; i < listCTHoaDon.Count; i++)

{ string maHD = listCTHoaDon[i].MaHD1; string maSP = listCTHoaDon[i].MaSP1; int soluong = listCTHoaDon[i].SoLuong1; double thanhtien = listCTHoaDon[i].ThanhTien1; thanhtoan = ChiTietHoaDonController.insertCTHoaDon(maHD, maSP, soluong, thanhtien);

MessageBox.Show("Thanh toán thành công"); else

MessageBox.Show("Thanh toán không thành công");

MessageBox.Show("L i button thanh toan: "+ ex.Message); ỗ ở

} private void dgvCTHoaDon_CellContentClick(object sender,

} private void label2_Click(object sender, EventArgs e)

} private void txtMaNV_TextChanged(object sender, EventArgs e)

} private void pictureBox1_Click(object sender, EventArgs e)

} private void dgvSanPham_CellContentClick(object sender, DataGridViewCellEventArgs e)

5.2.2.3: User Control khách hàng public partial class ctrKhachHang : UserControl

InitializeComponent(); getDataSet(); btnXoa.Enabled = false; txtMaKH.Enabled = false;

List listKhachHang = KhachHangController.getAll(); dgvKhachHang.DataSource = listKhachHang; dgvKhachHang.Columns[0].HeaderText = "Mã khách hàng"; dgvKhachHang.Columns[1].HeaderText = "Tên khách hàng"; dgvKhachHang.Columns[2].HeaderText = "Đia chỉ"; dgvKhachHang.Columns[3].HeaderText = "SDT";

MessageBox.Show("Loi: " + ex.Message);

} private void btnThemMoi_Click(object sender, EventArgs e)

{ string MaKH = KhachHangController.createMaKH(); string TenKH = txtTenKH.Text; string DiaChi = txtDiaChi.Text; string SDT = txtSDT.Text;

KhachHangController.insertKhachHang(MaKH, TenKH, DiaChi, SDT); getDataSet();

MessageBox.Show("Lỗi ở thêm mới: " + ex.Message);

} private void dgvKhachHang_CellClick(object sender, DataGridViewCellEventArgs e) { int row = e.RowIndex; if (row >= 0)

The code snippet enables the edit and delete buttons while populating the customer details in the text fields It retrieves the customer ID, name, address, and phone number from the selected row in the customer data grid view, ensuring a seamless user experience for managing customer information.

} private void btnSua_Click(object sender, EventArgs e)

{ int a = KhachHangController.updateKhachHang(txtMaKH.Text, txtTenKH.Text, txtDiaChi.Text, txtSDT.Text); getDataSet(); if (a == 1)

MessageBox.Show("Sửa thành công"); else

MessageBox.Show("Sửa thất bại");

MessageBox.Show("Lỗi: " + ex.Message);

} private void btnXoa_Click(object sender, EventArgs e)

{ int a = KhachHangController.deleteKhachHang(txtMaKH.Text); getDataSet(); if (a == 1)

MessageBox.Show("Xoá thành công"); else

MessageBox.Show("Xoá thất bại");

MessageBox.Show("Lỗi: " + ex.Message);

5.2.3 Form Control thuốc public partial class ctrSanPham : UserControl

List listSanPham = SanPhamController.getAllAdmin(); dgvSanPham.DataSource = listSanPham;

//dgvSanPham.Columns[0].HeaderText = "Mã s n ph m"; ả ẩ //dgvSanPham.Columns[1].HeaderText = "Tên s n ph m"; ả ả //dgvSanPham.Columns[2].HeaderText = "Giá nh p"; ậ

//dgvSanPham.Columns[3].HeaderText = "Giá bán";

//dgvSanPham.Columns[4].HeaderText = "S l ố ượ ng";

//dgvSanPham.Columns[5].HeaderText = "Hình nh"; ả

MessageBox.Show("Loi: " + ex.Message);

} private void btnAddProduct_Click(object sender, EventArgs e)

{ txtMaSP.Text = SanPhamController.createMaSP(); int a = SanPhamController.insertSanPham(txtMaSP.Text, txtTenSP.Text, txtGiaNhap.Text, txtGiaBan.Text, txtSoLuong.Text, txtImage.Text); if(a == 1)

MessageBox.Show("Thêm thanh công");

MessageBox.Show("L i thêm s n ph m: "+ex.Message); ỗ ở ả ẩ

} private void btnUpdate_Click(object sender, EventArgs e)

{ int a = SanPhamController.updateSanPham(txtMaSP.Text, txtTenSP.Text, txtGiaNhap.Text, txtGiaBan.Text, txtSoLuong.Text, txtImage.Text); if (a == 1)

MessageBox.Show("S a không thành công"); ử getDataSet();

MessageBox.Show("L i update s n ph m: "+ex.Message); ỗ ở ả ẩ

} private void btnDelete_Click(object sender, EventArgs e)

{ int a = SanPhamController.deleteSanPham(txtMaSP.Text); if (a == 1)

MessageBox.Show("Xoá thành công");

MessageBox.Show("L i xoá s n ph m: " + ex.Message); ỗ ở ả ẩ

} private void dgvSanPham_CellClick(object sender, DataGridViewCellEventArgs e) { int row = e.RowIndex; if (row >= 0)

The code snippet retrieves product details from a data grid view, assigning values to various text fields It extracts the product ID, name, purchase price, selling price, quantity, and image path from the selected row Specifically, it assigns the product ID to `txtMaSP`, the product name to `txtTenSP`, the purchase price to `txtGiaNhap`, the selling price to `txtGiaBan`, the quantity to `txtSoLuong`, and the image path to `txtImage` This process ensures that all relevant product information is displayed for further use.

} private void label2_Click(object sender, EventArgs e)

KIỂM THỬ

Kiểm thử

Đầu vào Công việc Kết quả

Kế hoạch dự án, các tài liệu mô tả nghiệp vụ

-Xây dựng công cụ tạo dữ liệu.

-Tạo dữ liệu kiểm tra hệ thống cho chương trình/ công cụ kiểm

Môi trường kiểm thử sẵn sàng thử -Xây dựng môi trường phần cứng -Xây dựng môi trường phần mềm

3.1.3 Thiết kế kiểm tra: Đầu vào Công việc Kết quả

Tài liệu, prototype (Nếu có)

-Phân tích yêu cầu -Lập tình huống kiểm thử

Tình huống kiểm thử được phê duyệt

3.1.4 Thực hiện kiểm thử: Đầu vào Công việc Kết quả

Kế hoạch kiểm thử, tình huống kiểm thử, môi trường kiểm thử đã sẵn sàng.

- Tạo dữ liệu mô phỏng

- Thực hiện kiểm thử theo tình huống kiểm thử

- Báo cáo kết quả kiểm thử.

- Tình huống kiểm thử được cập nhật (nếu có)

Modul Mô tả Thời gian thực hiện

Người dùng thêm mới khách hàng.

Testcase

Kiểu test Kiểm tra Điều kiện Các bước Kết quả

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

Kiểm tra thêm thông tin với đầu vào đầy đủ

Từ màn hình chính của nhân viên chọn chức năng thêm mới khách hàng

1.Nhập đầy đủ thông tin vào các trường

Lấy lại dữ liệu vào Datagridvi ew

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

Kiểm tra thêm thông tin với đầu vào không đầy đủ

Từ màn hình chính nhân viên chọn chức năng cập nhật khách hàng

1.Nhập thông tin vào các trường

2.Bỏ trống 1 hoặc 1 vài trường

“Không được bỏ trống dữ liệu”

Con trỏ focus về textbox chưa nhập thông tin.

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

Kiểm thử bất bình thường

Kiểm tra thêm thông tin với đầu vào sai định dạng

Từ màn hình chính nhân viên chọn chức năng cập nhật khách hàng

1.Nhập thông tin vào các trường

2.Nhập sái dịnh dạng 1 hoặc 1 vài trường

“Lỗi, kiểm tra lại định dạng thông tin” Con trỏ focus về nơi sai thông tin

Kiểm tra Điều kiện Các bước Kết quả

Kiểm tra xóa khách hàng khi đã chọn 1 khách hàng trong bảng

Từ màn hình chính nhân viên chọn chức năng xoá khách hàng

1.Chọn sách muốn xóa trong Datagridview

Lấy lại dữ liệu vào Datagridvie w

Kiểm thử bất bình thường

Kiểm tra khách hàng khi chưa chọn 1 khách hàng trong

Từ màn hình chính nhân viên chọn chức năng xoá khách hàng

Không cho phép click vào button Xóa khi chưa chọn sách trong bảng. bảng

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

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN