Với sự phát triển của tin học và công nghệ thông tin như hiện nay thì việc ứng dụng tin học vào tất cả các lĩnh vực của đời sống xã hội là điều tất yếu. Mục đích nhằm tăng tốc độ xử lí tự động, đồng thời giảm xử lí thủ công của con người.
Kỹ thuật số có thể làm thay đổiquy trình sản xuất và quy trình kinh doanh của mỗi doanh nghiệp. Nó có thể giải phóng nhân viên khỏi những quy trình chậm chạp, cứng nhắc của việc xử lý giấy tờ hành chính. Việc thay thế những quy trình xử lý giấy tờ bằng quy trình xử lý kỹ thuật số sẽ giải phóng người nhân viên tri thức để họ có thể làm những công việc có lợi hơn.
36 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1745 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Chương trinh quản lí bán hàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n lý bán hàng “ nhằm hoàn thiện hơn quá trình quản lý là hết sức cần thiết .
Công việc chính của quá trình của quản lý bán hàng là thiết kế nên một chương trình nhập liệu vào máy tính và quản lý và xử lý các chỉ tiêu từ các số liệu được nhập.
Xét thấy khả năng và trình độ bản thân phù hợp, hơn nữa đề tài có thể đáp ứng kịp thời phục vụ cho công việc quản lý bán hàng, nên em đã quyết định chọn đề tài này.
2. Mục đích nghiên cứu của đề tài.
Đề tài này được nghiên cứu trên cơ sở phân tích thực trạng của vấn đề bán hàng ở một trung tâm thương mại, kết hợp với nghiên cứu các vấn đề:
Nhập số liệu
Xử lí số liệu
Kết xuất báo cáo
3. Khả năng áp dụng và vị trí của đề tài.
Chương trình có khả năng áp dụng cho các trung tâm thương mại vừa và nhỏ
Chương trình có khả năng nhập vào các hoá đơn và in ra các hoá đơn, kết xuất nhanh các báo cáo:
Báo cáo tồn kho
Báo cáo lợi nhuận
Báo cáo doanh thu từng gian hàng
....
4. Phương án và giải pháp để thực hiện đề tài.
4.1 Phương pháp tổng hợp số liệu.
Phương pháp này đòi hỏi phải xây dựng nhiệm vụ cho từng bộ phận của chương trình nhưng phải đảm bảo lôgic toán học trong hệ thống để sau này có thể xây dựng được các mảng cơ bản trên từng nhiệm vụ đó.
Ưu điểm : Phương pháp này cho phép đưa dần hệ thống vào làm việc theo từng giai đoạn và nhanh chóng thu được kết quả.
Nhược điểm : Các thông tin dễ bị trùng lặp dẫn đến các thao tác không cần thiết.
4.2 Phương pháp phân tích số liệu
Phương pháp này có nhiệm vụ đầu tiên là phải xây dựng bảo đảm hệ thống hoàn chỉnh sau đó xây dựng các chương trình làm việc và thiết lập các mảng làm việc cho chương trình đó.
Ưu điểm : Phương pháp này cho phép tránh được việc thiết lập các mảng làm việc một cách thủ công.
Nhược điểm : Hệ thống chỉ hoạt động khi đưa vào đồng thời toàn bộ các mảng này vào sử dụng.
4.3 Phương pháp tổng hợp và phân tích
Đây là phương pháp kết hợp đồng thời cả hai phương pháp trên. Tiến hành đồng thời việc xây dựngcác mảng cơ bản và các thao tác cũng như các nhiệm vụ cần thiết. Phương pháp yêu cầ phải tổ chức chặt chẽ đảm bảo tính nhất quán của thông tin trong hệ thống.
4.4 Ngôn ngữ viết chương trình
Lựa chọn ngôn ngữ lập trình đóng vai trò quan trọng đối với sự thành công của chương trình. Mỗi ngôn ngữ đều có những điểm mạnh và điểm yếu riêng. Việc lựa chọn ngôn ngữ lập trình dựa trên nhiều yếu tố khách quan và chủ quan như : khả năng của người sử dụng, thói quen của người sử dụng, yêu cầu về môi trường làm việc nhu cầu thực tế của công việc đòi hỏi người làm chương trình phải lựa chọn ngôn ngữ thích hợp...
Chương trình :
“Quản lí bán hàng”
Được thực hiện trên ngôn ngữ Visual Basic với Hệ quản trị cơ sở dữ liệu Microsoft Access.
Đây là ngôn ngữ lập trình hướng đối tượng (Object Oriented Programing Language), là một ngôn ngữ mới có nhiều tính năng ưu việt dễ sử dụng với nhiều hỗ trợ sử dụng khác với ngôn ngữ lập trình thủ tục (Procedure Programing Language) truyền thống.
Ngôn ngữ Visual Basic đã được cải tiến và phát triển đến phiên bản thứ 6 và trở thành một hệ thống mở. Nó có khả năng sử dụng cơ sở dữ liệu của các phần mềm Quản trị cơ sở dữ liệu khác nhau như: Microsoft Access, Visual Foxpro, Database, Oracle ... Và đặc biệt là sử dụng các cơ sở dữ liệu của SQL Server dành cho các ứng dụng trên mạng.
Đặc biệt, phần lớn các ứng dụng sử dụng tại Trung tâm tính toán trung ương trước đây được phát triển trên các phần mềm quản trị cơ sở dữ liệu đồng thời : Foxpro For Windows và Foxpro For Dos trong việc nhập và xử lí số liệu thống kê , vì vậy việc sử dụng ngôn ngữ Visual Basic sẽ tạo điều kiện dễ dàng cho việc cập nhật cơ sở dữ liệu cho chương trình từ các cuộc điều tra khác nhau mà không phải mất nhiều công sức làm lại từ đầu.
Ngoài ra, ngôn ngữ Visual Basic còn có các ưu điểm vượt trội so với các ngôn ngữ lập trình khác như sau:
* Visual Basic gắn liền với khái niệm lập trình trực quan nên khi thiết kế ta có thể nhìn thấy ngay kết quả qua từng thao tác và giao diện khi chương trình thực hiện. Visual Basic cung cấp nhiều công cụ để sử dụng thiết kế những ứng dụng có giao diện rất đẹp tạo cảm giác gần gũi , dễ hiểu, dễ sử dụng cho người dùng.
* Việc xây dựng, thiết kế chương trình có thể xác định được thời gian cần thiết để thực hiên vì được thiết kế theo từng module, đảm bảo cho yêu cầu xây dựng chương trình trong thời gian ngắn đáp ứng kịp thời nhu cầu về tiến độ.
* Dễ thực hiện , dễ bảo trì và phát triển trong tương lai.
Hệ quản trị cơ sơ dữ liệu Microsoft Access là hệ quản trị dữ liệu được dụng phổ biến và thông dụng nhất hiện nay nó cho phép tạo lập và lưu trũ dữ liệu ở qui mô lớn. Dễ tra cứu bảo trì. Đặc biệt với các thư viện liên kết động với đặc tính mở của nó thông qua ADO và ADOBC .Access cho phép làm việc với nhiều ngôn ngữ lập trình thông dụng và mạnh nhất hiện nay.
4.5 Giải pháp về phần cứng để thực hiện chương trình.
CPU Pentium II trở lên.
Màn hình VGA.
Chuột.
64 Mb RAM.
300 Mb đĩa cứng còn trống
Phần II : Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích hệ thống thông tin quản lý.
Sơ đồ ngữ cảnh, sơ đồ luông thông tin (IFD), sơ đồ luông dữ liệu(DFD)
Sơ đồ ngữ cảnh.
Ban Quản lý
Gian hàng 1
Kho hàng
Gian hàng 2
Gian hàng 3
...........
Gian hàng 50
Sơ đồ luồng dữ liệu (DFD)
b1
d1
c1
a1
c2
3.0
Cập nhật danh mục KH
Ban quản lý
Khách hàng
d2
c3
c4
a2
a4
1.0
Cập nhật phiếu nhập xuất
Phiếu thu chi
Phiếu NX
a3
3.0
Cập nhật danh mục KH
f3
3.0
Cập nhật danh mục KH
c5
Danh muc KH
a5
f2
f2
Danh mục hang hóa
e2
e2
e3
f1
3.0
Cập nhật danh mục KH
4.0
Báo cáo hang hoá
Ban quản lý
f3
e1
Cập nhật phiếu xuất:
a1 nhà cung cấp giao hàng hoặc khách hàng mua hàng
a2 lưu phiếu nhập xuất
a3 yêu cầu nhập danh mục hàng hoá (nếu là hàng hoá mới)
a4 cập nhật danh mục khách hàng(nếu là khách hàng mới)
a5 lưu thông tin hàng hoá mới
Điều chỉnh phiếu nhập – xuất
b1 Ban quản lý yêu cầu điều chỉnh phiếu nhập xuất(do nhập sai)
b2 lấy phiếu nhập xuất cần điều chỉnh từ kho lưu ra điều chỉnh theo yêu cầu và lưu lại.
Báo cáo tồn kho
e1 ban quản lý yêu cầu báo cáo tồn kho
e2 lấy số tồn từ danh mục HH và tình hình nhập xuất từ kho dữ liệu phiếu nhập xuất để xác định số tồn kho cuối kỳ.
e3 gửi ban quản lý báo cáo tồn kho
Cập nhật phiếu thu chi
c1 ban quản lý yêu cầu trả nợ cho nhà cung cấp( yêu cầu lập phiếu chi)
c2 khách hàng trả nợ ( yêu cầu lạp phiếu thu)
c3 lưu phiếu thu chi đã lập.
c4 yêu cầu cập nhật danh mục khách hàng(nếu là khách hàng mới)
Điều chỉnh phiếu thu chi
d1 ban quản lý yêu cầu điều chỉnh phiếu thu chi(do nhập sai sót)
d2 Lờy phiếu thu chi cần điều chỉnh tử kho ra điều chỉnh theo yêu cầu và lưu lại.
Báo cáo công nợ.
f1 ban quản lý yêu cầu báo cáo công nợ.
f2 Lấy số nợ đầu kỳ từ danh mục khách hàng và tình hình nhập xuất từ kho dữ liệu phiếu nhập xuất, tình hình thu chi từ kho dữ liệu phiếu thu chi để xác định tăng giảm nợ trong kỳ và cuối kỳ.
f3 Gửi ban quản lý báo cáo công nợ.
sơ đồ quan hệ giữa các thực thể
Phiếu thu chi
Danh mục khách hàng
Danh mục tài khoản
Phiếu nhập xuất kho
Chi tiết dm
Hàng hoá
Danh mục
Hàng hoá
: Quan hệ 1 – n
Danh mục khách hàng có thể là khách hàng mua hoặc nhà cung cấp do có nhiều trường giống nhau nên ta có thể dùng một thực thể hay hai thực thể.
Phiếu nhập kho và xuất kho có thể dùng chung một thực thể.
Phiếu thu chi gần như trùng nhau về các tông tin nên ta có thể sử dụng một thực thể.
. Chuẩn hoá dữ liệu xác định các thực thể
Chuẩn hoá từ phiếu nhập xuất kho ban đầu:
Phiếu nhập xuất kho
Chuẩn dạng 1
Chuẩn dạng 2
Chuẩn dạng 3
Mã số phiếu
Ngày
Mã khách hàng
Địa chỉ
Lý do
Phí
Mã hàng
Số lượng
Đơn giá
Mã số phiếu
Mã khách hàng
Ngày
Lý do
Phí
Tên khách hàng
Địa chỉ
Mã số phiếu
Mã hàng
Số lượng
Đơn giá
Mã số phiếu
Mã khách hàng
Ngày
Lý do
Phí
Mã số phiếu
Ma hàng
Số lượng
đơn gía
Thành tiền
Mã khách hàng
Mã số phiếu thu chi
Tên khách hàng
Địa chỉ
Nợ đầu kỳ
Mã hàng
Tên hàng
Quy cách
Đơn vị tính
Đơn gía bán
Số lượng tồn
Tg tồn
Mã số phiếu
Mã khách hàng
Ngày
Lý do
Phí
Mã số phiếu
Mã hàng
Số lượng
đơn giá
thành tiền
Mã khách hàng
Mã số phiếu thu chi
Tên khách hang
Địa chỉ
Nợ đầu kỳ
Mã hàng
Tên hàng
Quy cách
Đơn vị tính
Đơn giá bán
Số lượng tồn
Tg tồn
Mã số phiếu thu chi
Mã khách hàng
Lý do
Đơn giá
Ngày
Số tiền
Thông tin đầu vào & đầu ra của hệ thống quản lý.
Các luồng thông tin vào.
Thông tin vào là các hoá đơn nhập, hoá đơn bán hàng.
Thông tin ra từ hệ thống.
Thông tin ra là những thông tin đã xử lý và tổng hợp từ các thông tin vào. Thông tin ra chính là kết quả hoạt động của hệ thống. Nó phục vụ cho nhu cầu về thông tin của những người sử dụng hệ thống này và đáp ứng nhu cầu của cơ quan. Thông tin ra càng có chất lượng cao tức là đáp ứng tốt nhu cầu về thông tin của người sử dụng, nâng cao hiệu quả quản lý thì càng chứng tỏ hệ thống hoạt động tốt.
Thông tin ra là các báo cáo:
Báo cáo tồn kho
Báo cáo lợi nhuận
Báo cáo doanh thu từng gian hàng
Báo cáo doanh số từng nhân viên.
Thiết kế chương trình.
Thiết kế cơ sở dữ liệu.
Cơ sở dữ liệu là nơi lưu trữ lâu dài các tệp dữ liệu của hệ thống ở bộ nhớ ngoài. các dữ liệu này phải tổ chức tôt theo hai tiêu chí:
Hợp lý , nghĩa là phải đủ dùng và không thừa;
Truy nhập thuận lợi, nghĩa là tim kiếm, cập nhật , bổ xung và loại bỏ các thông tin sao cho nhanh chóng và tiện dùng.
ở giai đoạn phân tích, ta đã nghiên cứu dữ liệu theo tiêu chí hợp lý(đủ và không thừa). Kết quả là đã thành lập được lược đồ luồng dữ liệu và đã chuẩn hoá dữ liệu qua 3 bước chuẩn hoá . Sang giai đoạn này, ta phải biến đổi lược đồ khái niệm nói trên thành lược đồ vật lý, tức là một cấu trúc lưu trữ thực sự của dữ liệu trong bộ nhớ ngoài. Cờu trúc này thường được lựa chọn trong số các dạng sau:
Các tệp tuần tự.
Các tệp tuần tự có chỉ dẫn.
Các tệp trực truy,
Các tệp đảo ngược
Các bảng băm
Các mạng sử dụng con trỏ
Các cây
Các quan hệ
Thông qua các lý do trên ta tách việc thiết kế dưc liẹu thành hai bước:
Thiết kế lược đồ lôgic của dữ liệu
Thành lập lược đồ vật lý của dữ liệu
Thành lập lược đồ lôgic
Lược đồ bán hàng:
Ma_KH
Ten_KH
Dien_thoai
Dia_chi
Ma_HDB
Ngay_ban
Nguoi_ban
Khach_hang
Gian_hang
Ma_HDB
Ma_hang
Gia
So_luong
Giam_gia
Khách hàng
Mua
Hàng
Lược đồ mua hàng:
Ma_NCC
Ten_NCC
Dien_thoai
Dia_chi
Loai_hang
Ma_HDN
Ngay_Nhap
Nguoi_Nhap
Nha_CC
Ma_HDB
Ma_hang
Gia
So_luong
Chiet_khau
Nhà CC
Bán
Hàng
Thành lập lược đồ vật lý
Dựa trên cơ sở lược đồ lôgic ta tiến hành xây dựng lược đồ vật lý cho chương trinh “ quản lý ban hang”. Lược đồ vật lý là cấu trúc lưu trữ thực sự của dữ liệu trong bộ nhớ ngoài, phụ thuộc theo cấu hình của hệ thống.
Chương trình gồm các bảng chính:
Hoá đơn bán hàng
Chi tiết HDB
Hoá đơn nhập hàng
Chi tiet HDN
Hàng hoá
Nhân viên
Gian hàng
...
Giao diện và các thành phần của chương trình chương trình
Giao diện chương trình gồm 1 Form chính; các From, các báo cáo và các thành phần khác của chương trình có thể được truy nhập từ menu của From chính.
Các From của chương trình.
From Chính
Chứa các menu:
Xử lý hoá đơn
Hoá đơn bán hàng
Hoá đơn nhập hàng
Thoát
Báo cáo tổng hợp
Doanh số bán hang(gian hàng, toàn bộ trung tâm)
Hàng nhập
Hàng tồn kho
Doanh số của mỗi nhân viên
Lợi nhuận
Hệ thống
Điều chỉnh hệ thống
danh mục
Trợ giúp
Hướng dẫn sử dụng
Thông tin về phần mềm
From hoá đơn bán hàng
From hoá đơn nhập hàng
Form danh mục
From điều chỉnh
Từ Form này ta có thể truy nhập Form XemHDB va Form XemHDN.
Các báo cáo của chương trình
Doanh số bán hàng của mỗi gian hàng
Báo cáo doanh số bán hàng của toàn bộ trung tâm
Báo cáohàngnhập
Báo cáo tồn kho
Báo cáo doanh số của mỗi nhân viên
Báo cáo lợi nhuận
Các thuật toán của chương trình.
thuật toán đăng nhập
Bắt đầu
Nhập tên người dùng & mật khẩu
Có
Có tiếp tiếp tục không
Kiểm tra sự hợp lệ của tên người dùng & mật khẩu
Sai
ĐúNG
Thực hiện các công việc cần làm của người sử dụng theo quyền hạn người sử dụng
Không
Kết thúc
Thuật toán nhập dữ liệu
Bắt đầu
Tạo bản ghi rỗng
Tiến hành nhập dữ liệu
Kiểm tra sự hợp lệ của tên người dùng & mật khẩu
Có
Không
Kết thúc
Thuật toán sửa dữ liệu
Bắt đầu
Nhập mã bản ghi muốn sửa
Có tồn tại bản ghi này không
Hiện bản ghi cần sửa
Thông
Báo
Sửa dữ liệu bản ghi
Có sửa tiếp không
Có
Không
Kết thúc
Thuật toán tìm kiếm thông tin
Bắt đầu
Nhập mã bản ghi cần tìm
Có
Kiểm tra bản ghi này có hay không theo mã bản ghi?
Có tiếp tục không ?
Không
Có
Không
Hiện thông tin tìm thấy
Kết thúc
Cài đặt và bảo trì hệ thống
4.1 Cài đặt hệ thống.
Các phương pháp cài đặt hệ thống bao gôm:
Cài đặt trực tiếp.
Cài đặt song song.
Cài đặt thí điểm.
Cài đặt chuyển đổi theo giai đoạn.
Hướng dẫn - đào tạo người sử dụng:
Đào tạo người sử dụng hệ thống thông tin.
Hỗ trợ người sử dụng hệ thôngs thông tin.
4.2 Bảo trì hệ thống.
Là giai đoạn chiếm chi phí lớn nhất trong chu kỳ sống của một hệ thống.Bắt đầu từ khi phần mềm được cài đặt nhằm tiến triển hệ thống.Về mặt chức năng để hỗ trợ tốt hơn nhu cầu thay đổi về các bước của quá trình bảo trì.
Các kiểu bảo trì
Bảo trì hiệu chỉnh (Giải quyết lỗi thiết kế và lỗi lập trình còn tiềm ẩn trong hệ thống sau khi cài đặt).
Bảo trì thích nghi: Sửa đổi hệ thống để phù hợp với các thay đổi của môi trường.
Bảo trì hoàn thiện: Cải tiến hệ thống theo nhu cầu mới.
Bảo trì phòng ngừa: Phòng ngừa các thay đổi trong tương lai.
Quản trị bảo trì hệ thống
Quản lý bán hàng
Đo lường hiệu quả bảo trì hệ thống (Số lượng lỗi,khoảng thời gian giữa các lỗi, kiểu lỗi).
Kiểm soát các yêu cầu bảo trì.
4.3 Đánh giá sau cài đặt
Đánh giá dự án xem có đúng thời gian, tiến độ không.
Đánh giá hệ thống: Xem xét hệ thống có đạt mục tiêu đề ra không (Đánh giá sau một thời gian hoạt động).
Báo cáo tổng kết dự án
Dự án hoàn thành đúng kế hoạch, đáp ứng nhu cầu kế hoạch.
Tài liệu về hệ thống hiện tại, các yêu cầu BT
Yêu cầu bảo trì phân công NS
Chuyển đổi các yêu cầu
Quản trị các yêu cầu bảo trì
Thiết kế công việc
Yêu cầu thay đổi
Hồ sơ dự án
Hệ thống hiện tại
Hệ thống mới
Yêu cầubảo trì
Các đặc tả Yêu cầu
Thiết kế các thay đổi
Triển khai các thay đổi
Kết luận
Với sự phát triển của tin học và công nghệ thông tin như hiện nay thì việc ứng dụng tin học vào tất cả các lĩnh vực của đời sống xã hội là điều tất yếu. Mục đích nhằm tăng tốc độ xử lí tự động, đồng thời giảm xử lí thủ công của con người.
Kỹ thuật số có thể làm thay đổiquy trình sản xuất và quy trình kinh doanh của mỗi doanh nghiệp. Nó có thể giải phóng nhân viên khỏi những quy trình chậm chạp, cứng nhắc của việc xử lý giấy tờ hành chính. Việc thay thế những quy trình xử lý giấy tờ bằng quy trình xử lý kỹ thuật số sẽ giải phóng người nhân viên tri thức để họ có thể làm những công việc có lợi hơn.
Chương trình “ quản lý Bán hàng ”được xây dựng dựa trên cơ sở nhu cầu thực tế của công tác quản lý trong các cơ quan hành chính sự nghiệp hiện nay.
Chương trình đã thực hiện tốt được một số công việc cơ bản của ngành thống kê như:
+ Nhập, xử lí, lưu trữ dữ liệu nhập .
+ In nhanh các hoá đơn, báo cáo theo yêu cầu cấp trên và người sử dụng.
Trong điều kiện kiến thức còn hạn chế, lại chưa có nhiều điều kiện tiếp xúc với thực tế công việc. Hơn nữa, thời gian xây dựng chương trình ngắn nên trong chương trình khó tránh khỏi những thiếu sót. Với mục đích thực hiện chương trình một cách hoàn thiện, có thể sử dụng phục vụ cho công tác bán hàng ở các siêu thị hay ở các trung tâm thương mại vừa và nhỏ một cách đầy đủ và thuận lợi theo đúng mong muốn của bản thân và nhu cầu thực tế công việc.
Em rất mong nhận được sự thông cảm và góp ý quý báu của thầy cô giáo, các bạn, các cán bộ chuyên trách về lĩnh vực quản lý bán hàng và những người tâm huyết với vấn đề này. Đó cũng là một cách để chương trình ngày càng hữu ích và hoàn thiện, ứng dụng được vào thực tế cuộc sống.
DANH MụC CáC TàI LIệU THAM KHảO
1- PTS Hàn Viết Thuận, Giáo trình “ Cấu trúc dữ liệu và giải thuật ”, Nhà xuất bản Thống kê -Hà nội 1999.
2- TS Trương Văn Tú & TS Trần Thị Song Minh, Giáo trình “ Hệ thống thông tin quản lí “ Nhà xuất bản thống kê- Hà nội 2000.
3- ThS Trần Công Uẩn, Giáo trình “ Cơ sở dữ liệu SQL – Access ”, Nhà xuất bản Thống kê- Hà nội 2000 .
4- “ Phân tích và thiết kế hệ thông tin “ – Nguyễn Văn Ba, ĐHBK Hà Nội, Nhà xuất bản Đại học quốc gia Hà Nội - 2002
5- “ Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu “, Nguyễn Thị Ngọc Mai(Chủ biên), Nhà xuất bản giáo dục.
6- Tập 1, Tập 2 “ Microsoft Access 2000 lập trình ứng dụng cơ sở dữ liệu”, Nguyễn Đình Tê (Chủ biên), Nhà xuất bản giáo dục.
Phụ Lục
(Một số đoạn code chính của chương trình)
‘Tạo mới hoá đơn
Private Sub cmdTaoMoi_Click()
On Error GoTo loi
choise = 1
save = False
txtNgayban.Enabled = True
CboNguoiBan.Enabled = True
cboGianhang.Enabled = True
CboKhachHang.Enabled = True
frago.Enabled = False
fraHH.Enabled = True
CmdXoa.Enabled = True
cmdTaoMoi.Enabled = False
cmdSua.Enabled = False
cmdluu.Enabled = True
cmdIn.Enabled = False
TxtSoHD.Enabled = True
TxtSoHD.Text = ""
CboKhachHang.Text = ""
CboTenhang.Text = ""
txtGia.Text = ""
TxtSoluong.Text = ""
lblCong.Caption = ""
lblThue.Caption = ""
LblTongCong.Caption = ""
str = "select * from chitiethdb where ma_hdb like '0'"
DEqlbh.Commands.Item("Q_hdb").CommandText = str
grdHDB.DataMember = "Q_hdb"
DEqlbh.rsQ_HDB.Close
grdHDB.Refresh
TxtSoHD.SetFocus
loi:
End Sub
‘Sửa hoá đơn
Private Sub cmdSua_Click()
On Error GoTo loi
choise = 2
save = True
ma_tg = TxtSoHD.Text
txtNgayban.Enabled = True
CboNguoiBan.Enabled = True
cboGianhang.Enabled = True
CboKhachHang.Enabled = True
CmdXoa.Enabled = False
TxtSoHD.Enabled = True
frago.Enabled = False
fraHH.Enabled = True
cmdIn.Enabled = False
cmdluu.Enabled = True
TxtSoHD.SetFocus
cmdTaoMoi.Enabled = False
cmdSua.Enabled = False
loi:
End Sub
‘Lưu hoá đơn
Private Sub cmdluu_Click()
On Error GoTo loi
Dim str1 As String
Dim rshd As ADODB.Recordset
Dim rs1 As ADODB.Recordset
Set rshd = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
str = "select * from hdb where ma_hdb = '" & TxtSoHD & "'"
rshd.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText
If CboKhachHang.Text "" Then
str1 = "select * from khachhang where ten_kh = '" & CboKhachHang.Text & "'"
rs1.Open str1, cn, adOpenKeyset, adLockReadOnly, adCmdText
If rs1.BOF = True And rs1.EOF = True Then
Dim rsKH As ADODB.Recordset
Set rsKH = New ADODB.Recordset
str1 = "select max(ma_kh) as ma from khachhang"
rsKH.Open str1, cn, adOpenKeyset, adLockReadOnly, adCmdText
Dim n As Long
n = CLng(rsKH.Fields("ma")) + 1
rsKH.Close
str1 = "select * from khachhang"
rsKH.Open str1, cn, adOpenKeyset, adLockOptimistic, adCmdText
rsKH.AddNew
rsKH.Fields("ma_kh") = CStr(n)
rsKH.Fields("ten_kh") = CboKhachHang.Text
rsKH.Update
rsKH.Close
rshd.Fields("khach_hang") = CStr(n)
Else
rshd.Fields("khach_hang") = rs1.Fields("ma_kh")
End If
rshd.Update
rs1.Close
Else
MsgBox "Chưa nhập tên khách hàng"
CboKhachHang.SetFocus
rshd.Close
Exit Sub
End If
If CboNguoiBan.Text "" Then
str1 = "select * from nhanvien where ten_nv = '" & CboNguoiBan.Text & "'"
rs1.Open str1, cn, adOpenKeyset, adLockReadOnly, adCmdText
rshd.Fields("nguoi_ban") = rs1.Fields("ma_nv")
rshd.Update
rs1.Close
Else
MsgBox "Chưa nhập người bán", vbInformation, "Thông báo"
CboNguoiBan.SetFocus
rshd.Close
Exit Sub
End If
If IsDate(txtNgayban) = True Then
rshd.Fields("ngay_ban") = CVDate(txtNgayban)
rshd.Update
Else
MsgBox "Nhập ngày không hợp lệ", vbInformation, "Thông báo"
txtNgayban.SetFocus
rshd.Close
Exit Sub
End If
If cboGianhang.Text "" Then
rshd.Fields("quay") = cboGianhang.Text
rshd.Update
Else
MsgBox "Chưa nhập gian hàng ", vbInformation, "thong báo"
cboGianhang.SetFocus
rshd.Close
Exit Sub
End If
rshd.Update
rshd.Close
str = "select count(ma_hdb) from HDB"
rshd.Open str, cn, adOpenKeyset, adLockReadOnly, adCmdText
rshd.Close
Set rshd = Nothing
TxtSoHD.Enabled = False
txtNgayban.Enabled = False
CboNguoiBan.Enabled = False
cboGianhang.Enabled = False
CboKhachHang.Enabled = False
frago.Enabled = True
cmdluu.Enabled = False
fraHH.Enabled = False
cmdIn.Enabled = True
cmdSua.Enabled = True
cmdTaoMoi.Enabled = True
CmdXoa.Enabled = True
cmdTaoMoi.SetFocus
save = True
adoHoadon.Refresh
loi:
End Sub
‘Xoá hoá đơn
Private Sub cmdXoa_Click()
On Error GoTo loi
If MsgBox("Bạn chắc chắn muốn xoá", vbYesNo, "Cảnh Báo") = vbYes Then
txtNgayban.Enabled = False
CboNguoiBan.Enabled = False
cboGianhang.Enabled = False
CboKhachHang.Enabled = False
frago.Enabled = True
fraHH.Enabled = False
cmdTaoMoi.Enabled = True
cmdSua.Enabled = True
cmdluu.Enabled = False
cmdIn.Enabled = True
save = True
Call Xoa
Call cmdDau_Click
End If
loi:
End Sub
‘Thêm hàng
Private Sub cmdBoxung_Click()
On Error GoTo loi
If CboTenhang.Text = "" Then
MsgBox " Chưa có hàng !", vbInformation, "Thông báo"
Exit Sub
End If
Dim rsGrd As ADODB.Recordset
Set rsGrd = New ADODB.Recordset
Dim rsHH As ADODB.Recordset
Dim rsChitietHDB As ADODB.Recordset
Set rsHH = New ADODB.Recordset
Set rsChitietHDB = New ADODB.Recordset
str = "select * from hangHoa where ten_hang = '" & CboTenhang.Text & "'"
rsHH.Open str, cn, adOpenKeyset, adLockReadOnly, adCmdText
str = "select * from chitiethdb where ma_hdb = '" & TxtSoHD & "'" & _
" and ma_hang = '" & rsHH.Fields("ma_hang") & "'"
rsChitietHDB.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText
'Kiểm tra tính duy nhất của hàng hoá nhập vào hoá đơn
If rsChitietHDB.BOF = True And rsChitietHDB.EOF = True Then
rsChitietHDB.Close
str = "select * from ChitietHDB "
rsChitietHDB.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText
rsChitietHDB.AddNew
rsChitietHDB.Fields("ma_hdb") = TxtSoHD
rsChitietHDB.Fields("ma_hang") = rsHH.Fields("ma_hang")
If txtGia "" Then
rsChitietHDB.Fields("gia_ban_thuc") = Val(txtGia)
Else
rsChitietHDB.Fields("gia_ban_thuc") = rsHH.Fields("gia_ban")
End If
If Val(TxtSoluong) > 0 Then
rsChitietHDB.Fields("so_luong") = Val(TxtSoluong)
Else
rsChitietHDB.Fields("so_luong") = 1
End If
rsChitietHDB.Update
rsHH.Close
rsChitietHDB.Close
Else
If txtGia "" Then
rsChitietHDB.Fields("gia_ban_thuc") = Val(txtGia)
Else
rsChitietHDB.Fields("gia_ban_thuc") = rsHH.Fields("gia_ban")
End If
If Val(TxtSoluong) > 0 Then
rsChitietHDB.Fields("so_luong") = Val(TxtSoluong)
Else
rsChitietHDB.Fields("so_luong") = 1
End If
rsChitietHDB.Update
rsHH.Close
rsChitietHDB.Close
End If
str = "select ma_hdb, sum(gia_ban_thuc*1000*so_luong*(1-giam_gia)) " & _
" as cong from hanghoa, chitietHDB " & _
" where hanghoa.ma_hang = chitietHDB.ma_hang " & _
" and chitiethdb.ma_hdb = '" & TxtSoHD.Text & "'" & _
" group by chitiethdb.ma_hdb "
rsGrd.Open str, cn, adOpenKeyset, adLockReadOnly, adCmdText
lblCong.Caption = rsGrd.Fields("cong")
lblThue.Caption = rsGrd.Fields("cong") * 0.1
LblTongCong.Caption = rsGrd.Fields("cong") * 1.1
lblchu.Caption = SoSangChu.chuyenso(LblTongCong.Caption)
rsGrd.Close
str = "select count(ma_hdb) from chitiethdb"
rsGrd.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText
rsGrd.Close
' Hiển thị trên Grid
str = "select Ten_hang, DV_tinh, gia_ban_thuc, so_luong, giam_gia, " & _
" gia_ban_thuc*so_luong*(1- giam_gia) as TT " & _
" from hanghoa, chitietHDB " & _
" where hanghoa.ma_hang = chitietHDB.ma_hang " & _
" and chitiethdb.ma_hdb like " & """" & TxtSoHD & """"
DEqlbh.Commands.Item("Q_HDB").CommandText = str
grdHDB.DataMember = "Q_HDB"
DEqlbh.rsQ_HDB.Close
loi:
End Sub
‘ In hoá đơn
Private Sub cmdIn_Click()
On Error GoTo loi
DEqlbh.Qhdb (TxtSoHD)
rptHDB.Show
cmdIn.Enabled = False
loi:
End Sub
‘ Tim kiếm
Private Sub Cmdtim_Click()
On Error GoTo loi
adoHoadon.Recordset.MoveFirst
Do While adoHoadon.Recordset.Fields("ma_hdb") txtTim.Text And adoHoadon.Recordset.EOF = False
adoHoadon.Recordset.MoveNext
Loop
Dim rsGrd As ADODB.Recordset
Set rsGrd = New ADODB.Recordset
str = "select ma_hdb, sum(gia_ban_thuc*1000*so_luong*(1-giam_gia)) as cong " & _
" from hanghoa, chitietHDB " & _
" where hanghoa.ma_hang = chitietHDB.ma_hang " & _
" and chitiethdb.ma_hdb = '" & TxtSoHD.Text & "'" & _
" group by chitiethdb.ma_hdb "
rsGrd.Open str, cn, adOpenKeyset, adLockReadOnly, adCmdText
lblCong.Caption = rsGrd.Fields("cong")
lblThue.Caption = rsGrd.Fields("cong") * 0.1
LblTongCong.Caption = rsGrd.Fields("cong") * 1.1
lblchu.Caption = SoSangChu.chuyenso(LblTongCong.Caption)
rsGrd.Close
If adoHoadon.Recordset.Fields("quay") "" Then
cboGianhang.Text = adoHoadon.Recordset.Fields("quay")
End If
str = "select Ten_hang, DV_tinh, gia_ban_thuc, so_luong, giam_gia, " & _
" gia_ban_thuc*1000*so_luong*(1- giam_gia) as TT " & _
" from hanghoa, chitietHDB " & _
" where hanghoa.ma_hang =
Các file đính kèm theo tài liệu này:
- 35533.doc