GIỚI THIỆU ỨNG DỤNG QUẢN LÝ KHO HÀNG
Mục tiêu đề tài
Tìm hiểu, nghiên cứu việc quản lý kho hàng tại cửa hàng rượu Thành Vang
Tại địa chỉ 112 Lý Thường Kiệt, chúng tôi tiến hành thu thập thông tin, báo cáo và tài liệu liên quan đến quản lý kho hàng của cửa hàng Qua việc phân tích và thiết kế hệ thống thông tin quản lý kho, chúng tôi sẽ phát triển một ứng dụng hiệu quả để quản lý kho hàng cho cửa hàng.
Giới thiệu về cửa hàng
Cửa hàng rượu bia Thành Vang:
- Lĩnh vực hoạt động: cung cấp các loại rượu, bia.
- Chuyên kinh doanh: rượu vang các hãng Penfolds, Champagne Bollinger, Champagne Taitinger, Baron Phillippe de Rothschild,….
- Địa chỉ: 112 Lý Thường Kiệt, Hồng Bàng, Hải Phòng.
Mô tả hoạt động của hệ thống
Cửa hàng Thành Vang chuyên cung cấp rượu và bia, với nhiều kho lưu trữ hàng hóa để đảm bảo nguồn cung luôn sẵn sàng phục vụ khách hàng Tuy nhiên, việc quản lý các kho hàng, đặc biệt khi chúng nằm xa nhau, trở nên phức tạp Do đó, cửa hàng cần áp dụng giải pháp quản lý kho để giảm bớt sự phức tạp trong công việc và nâng cao hiệu quả hoạt động.
Khi nhập hàng, thủ kho lập phiếu nhập kho và kiểm kê hàng hóa, đồng thời đưa hàng vào kho Toàn bộ hàng trong kho đã được thống kê vào sổ hàng Hàng nhập được phân loại theo quy ước nhóm hàng, và thông tin như mã hàng, tên hàng, đơn vị, số lượng, đơn giá được lưu lại thành hồ sơ Nếu mặt hàng đã tồn tại trong kho, không cần tạo mới, nhưng mặt hàng mới sẽ được khởi tạo trong danh mục hàng Cuối cùng, hàng nhập vào kho sẽ được cập nhật vào sổ nhập hàng, và thủ kho sẽ cập nhật lại lượng hàng trong sổ hàng trong kho.
Khi xuất hàng, thủ kho cần kiểm tra số lượng hàng trong hệ thống để đảm bảo đủ cho việc xuất Nếu kho có đủ hàng, quy trình xuất kho sẽ diễn ra bình thường, với hàng tồn lâu nhất được xuất trước và thông tin sẽ được ghi chép vào sổ xuất hàng Sau khi xuất, thủ kho cập nhật lượng hàng còn lại vào sổ hàng trong kho Trong trường hợp kho không đủ hàng, thủ kho sẽ yêu cầu chuyển hàng từ kho khác cho đến khi đủ số lượng cần thiết Ví dụ, nếu kho A cần xuất 200 chai rượu vang Pháp và có đủ hàng, thủ kho sẽ lập phiếu xuất kho và ghi lại thông tin vào sổ xuất hàng, sau đó thống kê lại lượng hàng trong kho.
Thủ kho kiểm tra hệ thống để yêu cầu chuyển 500 chai rượu Vodka từ kho khác đến kho B do kho hiện tại không đủ hàng Sau khi thực hiện nghiệp vụ "luân chuyển kho" và nhận đủ hàng, thủ kho tiến hành xuất hàng bình thường.
Trong quy trình luân chuyển kho, khi các kho nhận yêu cầu chuyển hàng đến kho chỉ định, thủ kho đã kiểm tra và đảm bảo đủ lượng hàng, do đó không xảy ra tình trạng thiếu hàng Phiếu chuyển kho được lập trước và khi hàng được chuyển đến kho chỉ định, thủ kho sẽ cập nhật lại số lượng hàng trong các kho Thông tin về hàng chuyển được ghi lại trong sổ chuyển kho, và do hàng có thể đã qua nhiều kho khác nhau, hệ thống sẽ lưu lại lịch sử chuyển hàng để theo dõi.
Hệ thống quản lý kho cho phép thủ kho thực hiện các thao tác như tạo, sửa và xóa kho Khi một kho mới được tạo, thông tin sẽ được lưu vào hồ sơ kho và cập nhật sổ kho Đối với kho đã được sửa, thông tin sẽ được cập nhật tương ứng Việc xóa kho chỉ được thực hiện khi kho không còn hoạt động và không lưu trữ hàng hóa nữa Dựa trên số liệu thống kê, thủ kho có thể lập báo cáo theo yêu cầu từ lãnh đạo.
TÌM HIỂU VỀ LẬP TRÌNH WEB TRÊN NỀN TẢNG PHP/SQL
World Wide Web và HTML
World Wide Web (WWW) là dịch vụ phổ biến nhất trên Internet, chiếm 85% các giao dịch trực tuyến Số lượng website trên toàn cầu đã đạt mức khổng lồ, cho phép người dùng truy cập thông tin văn bản, hình ảnh, âm thanh và video từ khắp nơi trên thế giới Qua đó, các công ty có thể giảm thiểu chi phí in ấn và phân phát tài liệu cho khách hàng một cách hiệu quả.
Có nhiều cách để tạo trang web, có thể tạo trang web trên bất kì chương trình xử lí văn bản nào:
- Tạo web bằng cách viết mã nguồn bởi một trình soạn thảo văn bản như: Notepad, WordPad, là những chương trình soạn thảo văn bản có sẵn trong Window.
- Thiết kế bằng cách dùng web Wizard và công cụ của Word 97, Word 2000.
Thiết kế web hiệu quả có thể được thực hiện bằng các phần mềm chuyên nghiệp như FrontPage, Dreamweaver và Nescape Editor Dreamweaver, với khả năng tự động cung cấp mã lệnh HTML, giúp quá trình thiết kế trang web trở nên dễ dàng và nhanh chóng hơn Để tạo ra một ứng dụng web hoàn chỉnh và có tính thương mại, việc kết hợp giữa Client Script và Server Script cùng với cơ sở dữ liệu như MS Access, SQL Server, MySQL, hoặc Oracle là cần thiết Khi triển khai ứng dụng web trên mạng, ngoài yêu cầu về cấu hình phần cứng, cần có một trình chủ web, hay còn gọi là web Server.
2.1.1.3 Trình duyệt web (web Client hay web Browser)
Trình duyệt Web là phần mềm cho phép người dùng truy xuất dữ liệu trên Internet, thực hiện nhiệm vụ gửi yêu cầu đến các Web Server và nhận dữ liệu cần thiết để hiển thị Để sử dụng dịch vụ WWW, người dùng cần có một trình duyệt Web và kết nối Internet thông qua nhà cung cấp dịch vụ ISP Một số trình duyệt phổ biến hiện nay bao gồm Microsoft Internet Explorer, Google Chrome và Mozilla Firefox.
Webserver là một máy tính kết nối Internet, chạy phần mềm chuyên dụng để xử lý các nhiệm vụ như tìm kiếm trang web, xử lý dữ liệu và kiểm tra tính hợp lệ của thông tin Nó cũng lưu trữ cơ sở dữ liệu và cung cấp dịch vụ Web, đảm bảo hoạt động hiệu quả cho người dùng.
Webserver hỗ trợ các các công nghệ khác nhau:
- IIS (Internet Information Service): Hỗ trợ ASP, mở rộng hỗ trợ PHP.
- Tomcat: Hỗ trợ JSP (Java Servlet Page).
Web tĩnh là loại tài liệu được phân phát đơn giản từ hệ thống file của Server, với định dạng bao gồm các siêu liên kết, trang định dạng Text và hình ảnh đơn giản Ưu điểm của web tĩnh là cơ sở dữ liệu nhỏ, giúp phân phát dữ liệu hiệu quả và nhanh chóng đáp ứng nhu cầu của Client, thích hợp khi thông tin không thay đổi Tuy nhiên, nhược điểm của nó là không đáp ứng được yêu cầu phức tạp của người sử dụng và thiếu tính linh hoạt Hoạt động của trang Web tĩnh được thể hiện rõ ràng qua những đặc điểm này.
Website động kết hợp nội dung của trang Web tĩnh với khả năng tương tác với cơ sở dữ liệu (CSDL) để đáp ứng nhu cầu phức tạp Khi nhận yêu cầu từ Web Client, như truy vấn từ CSDL trên Server, ứng dụng Internet Server sẽ thực hiện truy vấn, tạo trang HTML chứa kết quả và gửi lại cho người dùng.
2.1.2.1 Cấu trúc chung của một trang HTML
Tiêu đề của trang Web
2.1.2.2 Các thẻ HTML cơ bản
- Thẻ tạo đầu mục trang.
Thẻ là yếu tố bắt buộc trong HTML, giúp tạo tiêu đề cho trang web hiển thị trên thanh tiêu đề của trình duyệt Tiêu đề này đóng vai trò quan trọng trong việc trình bày nội dung và thu hút người dùng mỗi khi họ truy cập vào trang web.
Thẻ trong HTML chứa tất cả thông tin có thể hiển thị trên trang web Tất cả các nội dung khai báo trong thẻ này đều có thể nhìn thấy trực tiếp trên giao diện của trang.
- Thẻ
tạo một đoạn mới.
- Thẻ thay đổi phông chữ, kích cỡ và màu kí tự.
Thẻ được sử dụng để định dạng bảng trên trang web, và sau khi khai báo thẻ này, cần phải khai báo các thẻ hàng và thẻ cột cùng với các thuộc tính tương ứng của chúng.
- Thẻ cho phép chèn hình ảnh vào trang web Thẻ này thuộc loại thẻ không có thẻ đóng.
Thẻ là thẻ HTML quan trọng dùng để tạo liên kết giữa các trang web, cho phép kết nối đến địa chỉ Internet, email, Intranet (URL) và các tệp trong mạng cục bộ (UNC).
Thẻ cho phép người dùng nhập dữ liệu hoặc thực hiện các hành động, bao gồm nhiều loại như: text, password, submit, button, reset, checkbox, radio, hidden và image.
- Thẻ < textarea> < \textarea> cho phép người dùng nhập liệu với rất nhiều dòng Với thẻ này không thể giới hạn chiều dài lớn nhất trên trang Web.
Thẻ trong HTML cho phép người dùng chọn các phần tử từ một danh sách đã được định nghĩa Khi thẻ chỉ cho phép chọn một phần tử, nó hoạt động giống như một combobox Ngược lại, nếu thẻ cho phép người dùng chọn nhiều phần tử cùng lúc, nó sẽ được gọi là listbox.
Thẻ trong HTML được sử dụng để gửi dữ liệu người dùng từ trang web lên máy chủ, thông qua hai phương thức chính là POST và GET Mỗi trang web có thể chứa nhiều thẻ khác nhau, tuy nhiên, các thẻ này không được lồng vào nhau Mỗi thẻ cần được chỉ định hành động (action) để xác định trang nhận dữ liệu.
Ngôn ngữ PHP và MySQL
PHP, viết tắt của “Personal Home Page”, được Rasmus Lerdorf phát triển vào năm 1994 Nhờ tính hữu dụng và khả năng mở rộng, PHP đã nhanh chóng được áp dụng trong môi trường chuyên nghiệp và trở thành “PHP: Hypertext Preprocessor” PHP thực chất là một ngôn ngữ kịch bản nhúng trong HTML, cho phép mã PHP được chèn vào các trang HTML một cách linh hoạt.
PHP là ngôn ngữ lập trình mạnh mẽ, hoạt động chủ yếu trên máy chủ (Server-Side) và có khả năng chạy trên nhiều hệ điều hành khác nhau (cross-platform) Điều này có nghĩa là tất cả các thao tác trong PHP diễn ra trên máy chủ, và mã kịch bản PHP có thể hoạt động trơn tru trên các máy chủ khác mà không cần chỉnh sửa hoặc chỉ cần sửa đổi rất ít Tính linh hoạt này giúp PHP trở thành một lựa chọn phổ biến cho phát triển web.
Để sử dụng ngôn ngữ PHP cho một trang web, trang đó cần xử lý thông tin và trả về kết quả dưới dạng HTML PHP khác với các ngôn ngữ lập trình khác ở chỗ nó chỉ thực hiện các tác vụ khi có sự kiện xảy ra, chẳng hạn như khi người dùng gửi biểu mẫu hoặc truy cập một URL.
2.2.1.2 Lý do nên dùng PHP Để thiết kế web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc dù cấu hình và tính năng khác nhau nhưng chúng vẵn đưa ra những kết quả giống nhau Chúng ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java, Perl, và một số loại khác nữa Vậy tại sao chúng ta lại nên chọn PHP? Rất đơn giản, có những lí do sau mà khi lập trình web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này:
- PHP được sử dụng làm web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp khác.
PHP có khả năng tích hợp mạnh mẽ với hầu hết các cơ sở dữ liệu hiện có, mang lại tính linh hoạt và bền vững Điều này giúp phát triển các ứng dụng mà không bị giới hạn, đáp ứng nhu cầu ngày càng cao của người dùng.
PHP là một ngôn ngữ lập trình mã nguồn mở, mang lại lợi ích miễn phí cho người sử dụng Sự phát triển liên tục của PHP được thúc đẩy bởi cộng đồng các nhà phát triển web, những người luôn nỗ lực cải tiến và khắc phục các lỗi trong các chương trình, giúp nâng cao hiệu suất và tính ổn định của ngôn ngữ này.
PHP là ngôn ngữ lập trình vừa thân thiện với người mới bắt đầu, vừa mạnh mẽ để đáp ứng nhu cầu của các lập trình viên chuyên nghiệp Nó có khả năng thực hiện xuất sắc mọi ý tưởng mà lập trình viên mong muốn.
PHP đã nhanh chóng bắt kịp ASP, trở thành một trong những ngôn ngữ kịch bản phổ biến nhất hiện nay, với sự hiện diện trên hơn 12 triệu website.
PHP là ngôn ngữ lập trình phía máy chủ, giúp xử lý mã lệnh trên máy chủ để cung cấp nội dung cho các trang web theo yêu cầu của người dùng qua trình duyệt.
Sơ đồ hoạt động của PHP:
Khi người dùng truy cập website PHP, máy chủ xử lý mã lệnh PHP và gửi dữ liệu HTML đến trình duyệt Mã PHP được nhúng trong trang HTML và được xác định bằng thẻ mở Khi trình duyệt yêu cầu trang PHP, máy chủ đọc nội dung, thực thi mã PHP và thay thế kết quả vào vị trí tương ứng trong file, cuối cùng trả về một trang HTML hoàn chỉnh cho người dùng.
PHP có cấu trúc cơ bản với thẻ bắt đầu và kết thúc tương tự như HTML, nhưng cung cấp nhiều cách thể hiện khác nhau Cú pháp chính là , và để kết thúc một dòng lệnh, chúng ta sử dụng dấu ";" Để chú thích trong PHP, có thể dùng dấu "//" cho từng dòng hoặc cặp thẻ "/*…… */" cho các cụm mã lệnh Ví dụ minh họa: .
- Xuất giá trị ra trình duyệt chúng ta có những dòng cú pháp sau: o echo "thông tin"; o printf "thông tin";
Thông tin bao gồm: biến, chuỗi, hoặc lệnh HTML ….
Hình 2.1 xuất ra trình duyệt Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
Biến là vùng nhớ dữ liệu tạm thời có giá trị thay đổi, được bắt đầu bằng ký hiệu "$" và theo sau là một từ hoặc cụm từ viết liền hoặc có gạch dưới Để được coi là hợp lệ, biến cần thỏa mãn các yếu tố nhất định.
Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới.
Trong PHP, tên biến không được trùng với các từ khóa đã định sẵn Mặc dù thường cần khai báo biến trước khi sử dụng, nhiều lập trình viên thường thực hiện cả việc khai báo và gán dữ liệu cho biến trong cùng một bước Biến trong PHP cũng có thể được gán với nhiều kiểu dữ liệu khác nhau, tùy thuộc vào ý định của lập trình viên.
Hằng trong PHP là một giá trị không thể thay đổi, được định nghĩa bằng hàm define với cú pháp: define(string tên_hằng, giá_trị_hằng) Để hằng được xem là hợp lệ, nó cần đáp ứng một số yếu tố tương tự như biến.
Hằng không có dấu "$" ở trước tên.
Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh.
Hằng chỉ được phép gán giá trị duy nhất 1 lần.
Hằng thường viết bằng chữ in để phân biệt với biến.
Chuỗi là tập hợp các ký tự, số, khoảng trắng và dấu ngắt được đặt trong dấu nháy, ví dụ: 'Hello' Để tạo một biến chuỗi, chúng ta cần gán giá trị chuỗi cho một biến hợp lệ, chẳng hạn như $first_name = "Nguyen" Để kết hợp một chuỗi với một biến, chúng ta thường sử dụng dấu ".".
Hình 2.5 liên kết chuỗi và biến trong PHP
2.2.1.5 Các phương thức được sử dụng trong lập trình PHP
Có 2 phương thức được sử dụng trong lập trình PHP là GET và POST.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Biểu đồ nghiệp vụ
3.1.1 Biểu đồ ngữ cảnh hệ thống
Hình 3.1 biểu đồ ngữ cảnh hệ thống
3.1.2 Biểu đồ phân rã chức năng
Hình 3.2 biểu đồ phân rã chức năng hệ thống
Chức năng quản lý kho bao gồm nhiều hoạt động quan trọng như tạo phiếu nhập kho khi có hàng mới, nhập hàng và kiểm tra số lượng thực tế Thủ kho cũng thực hiện việc tạo phiếu xuất kho và kiểm tra lượng hàng trước khi xuất, đồng thời báo cáo khi hàng tồn kho không đủ Hệ thống cho phép thêm, sửa, hoặc xóa kho khi cần thiết Ngoài ra, chức năng chuyển hàng giữa các kho và các báo cáo định kỳ về nhập, xuất, và tồn kho giúp quản lý hàng hóa hiệu quả hơn.
3.1.3 Danh sách hồ sơ dữ liệu a) hồ sơ hàng hóa b) danh mục hàng c) nhóm hàng d) phiếu nhập kho e) sổ nhập hàng f) phiếu xuất kho g) sổ xuất hàng h) sổ hàng trong kho i) hồ sơ kho k) sổ kho l) phiếu chuyển kho m) sổ chuyển kho n) lịch sử chuyển hàng
3.1.4 Ma trận thực thể dữ liệu
Các thực thể dữ liệu quan trọng bao gồm: hồ sơ hàng hóa, nhóm hàng, phiếu nhập kho, sổ nhập hàng, phiếu xuất kho, sổ xuất hàng, sổ hàng trong kho, hồ sơ kho, sổ kho, phiếu chuyển kho, sổ chuyển kho và lịch sử chuyển hàng Những thực thể này đóng vai trò thiết yếu trong việc quản lý và theo dõi hàng hóa trong kho, giúp tối ưu hóa quy trình nhập xuất hàng và nâng cao hiệu quả hoạt động.
Các chức năng a b c d e f g h i k l m nghiệp vụ
Mô hình hóa
3.2.1 Biểu đồ luồng dữ liệu hệ thống
Hình 3.3 Biểu đồ luồng dữ liệu mức 0
3.2.2 Biểu đồ luồng dữ liệu chức năng nhập kho
Hình 3.4 biểu đồ luồng dữ liệu mức 1 – chức năng nhập kho
3.2.3 Biểu đồ luồng dữ liệu chức năng xuất kho
Hình 3.5 biểu đồ luồng dữ liệu mức 1 – chức năng xuất kho
3.2.4 Biểu đồ luồng dữ liệu chức năng cập nhật kho
Hình 3.6 biểu đồ luồng dữ liệu mức 1 – chức năng cập nhật kho
3.2.5 Biểu đồ luồng dữ liệu chức năng luân chuyển kho
Hình 3.7 biểu đồ luồng dữ liệu mức 1 – chức năng luân chuyển kho
3.2.6 Biểu đồ luồng dữ liệu chức năng báo cáo
Hình 3.8 biểu đồ luồng dữ liệu mức 1 – chức năng báo cáo
Thiết kế dữ liệu
3.3.1 Mô hình liên kết thực thể (ER)
3.3.1.1 Xác định thực thể và thuộc tính
Stt Thực thể Thuộc tính
1 Hàng hóa Mã hàng, tên hàng, đơn vị tính(ĐVT), số lượng, đơn giá
2 Nhóm hàng Mã nhóm hàng, tên nhóm hàng
3 Kho Mã kho, tên kho, địa điểm
4 Thủ kho Mã thủ kho, tên thủ kho
3.3.1.2 Xác định các mối quan hệ
- HÀNG HÓA thuộc NHÓM HÀNG
- THỦ KHO nhập HÀNG HÓA vào KHO
- THỦ KHO xuất HÀNG HÓA từ KHO
- THỦ KHO chuyển HÀNG HÓA từ KHO
3.3.2 Thiết kế các bảng dữ liệu
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Mã hàng Varchar Khóa chính
5 Mã nhóm hàng Varchar Khóa ngoài
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Mã nhóm hàng Varchar Khóa chính
Tên trường Kiểu dữ liệu Ghi chú
Mã kho Varchar Khóa chính
Tên kho Varchar Địa điểm Varchar
Tên trường Kiểu dữ liệu Ghi chú
Mã thủ kho Varchar Khóa chính
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Mã phiếu nhập Varchar Khóa chính
2 Mã hàng Varchar Khóa ngoài
3 Mã thủ kho Varchar Khóa ngoài
4 Mã kho Varchar Khóa ngoài
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Mã phiếu xuất Varchar Khóa chính
2 Mã hàng Varchar Khóa ngoài
3 Mã thủ kho Varchar Khóa ngoài
4 Mã kho Varchar Khóa ngoài
Stt Tên trường Kiểu dữ liệu Ghi chú
1 Mã phiếu chuyển Varchar Khóa chính
2 Mã hàng Varchar Khóa ngoài
3 Mã thủ kho Varchar Khóa ngoài
4 Mã kho Varchar Khóa ngoài
3.3.3.1 Biểu diễn các thực thể
- HÀNG HÓA (Mã hàng, tên hàng, đơn vị tính, số lượng, đơn giá).
- NHÓM HÀNG (Mã nhóm hàng, tên nhóm hàng).
- KHO (Mã kho, tên kho, địa điểm).
- THỦ KHO (Mã thủ kho, tên thủ kho).
Mã hàng Tên hàng … Mã nhóm hàng
Mã nhóm hàng Tên nhóm hàng
Mã kho Tên kho Địa điểm
Mã thủ kho Tên thủ kho
- THỦ KHO nhập HÀNG vào KHO
Mã phiếu nhập … Mã hàng Mã thủ kho Mã kho
THỦ KHO xuất HÀNG từ KHO
Mã phiếu xuất … Mã hàng Mã thủ kho Mã kho
- THỦ KHO chuyển HÀNG từ KHO
Mã phiếu chuyển … Mã hàng Mã thủ kho Mã kho
Hình 3.9 mô hình quan hệ của hệ thống
ỨNG DỤNG THỰC NGHIỆM
Môi trường thử nghiệm
- Laptop Acer 4349: Intel Core i3, RAM 4GB.