Đồ án Thiết kế hệ thống quản lý bán hàng của công ty máy tính

MỤC LỤC MỤC LỤC 1 LỜI CẢM ƠN 4 ĐẶT VẤN ĐỀ 5 Chương I: GIỚI THIỆU VỀ INTERNET 6 1.1. Giới thiệu về Internet 6 1.2. Sự ra đời và phát triển của Internet 6 1.3. Ứng dụng web 6 1.4. Mô hình hoạt động 7 1.5. Khái niệm về mô hình trên Server 7 1.5.1. Mô hình Client/Server 7 1.5.2. Ứng dụng mô hình Client/Server 8 1.5.3. Mô hình Web Client /Server 8 1.6. Hoạt động của cơ chế khách/chủ 9 1.7. Mở rộng khả năng của Web Server 9 Chương II: PHP/MySQL 10 2.1. Giới thiệu về PHP 10 2.1.1. PHP là gì? 10 2.1.2. Lịch sử ra đời của PHP 11 2.1.3. Vận hành PHP 12 2.1.4. Cấu trúc điều khiển 16 2.1.5. Lưu giữ những thông tin cần thiết 23 2.1.5.1. Cú pháp cơ bản - Basic Syntax 23 2.1.5.2. Xây dựng việc chặn PHP và thay đổi - PHP Building Blocks - Variables 24 2.1.4.3 Chặn PHP và các dạng dữ liệu - PHP Building Blocks - Data Types 25 2.1.6. Các kiểu dữ liệu 28 2.1.7. Cài đặt và cấu hình PHP 29 2. 2. Giới thiệu về MySQL 30 2.2.1. MySQL là gì? 30 2.2.2. Cài đặt MySQL 30 2.2.3. Sơ lược MySQL 30 2.2.4. Các lệnh cơ bản trong MySQL 31 Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 33 3.1. Đặt vấn đề 33 3.2. Mô tả bài toán 33 3.3. Xây dựng mô hình chức năng 34 3.3.1. Sơ đồ ngữ cảnh 34 3.3.2. Mô hình chức năng của hệ thống 35 3.3.2.1. Sơ đồ chức năng hệ thống 35 3.3.2.2. Mô tả các chức năng chính 35 3.3.3. Các sơ đồ chi tiết 37 3.3.4. Sơ đồ chức năng hệ thống 42 3.3.5. Danh sách hồ sơ sử dụng 43 3.3.6. Ma trận thực thể chức năng 44 3.4. Mô hình hóa hoạt động xử lý nghiệp vụ 44 3.4.1. Biểu đồ luồng dữ liệu mức 0 44 3.4.2. Biểu đồ luồng dữ liệu mức 1 46 3.4.2.1. Biểu đồ luồng dữ liệu “Quản lý nhập hàng” 46 3.4.2.2. Biểu đồ luồng dữ liệu “Quản lý xuất hàng” 47 3.4.2.3. Biểu đồ luồng dữ liệu “Bảo hành” 48 3.4.2.4. Biểu đồ luồng dữ liệu “Báo cáo” 49 3.4.2.5. Biểu đồ luồng dữ liệu “Quản trị hệ thống” 50 3.4.3. Xây dựng mô hình E-R 51 3.4.3.1. Xác định các thực thể và thuộc tính 51 3.4.3.2. Các kiểu liên kết 52 3.4.3.3. Mô hình E-R 53 3.5. Thiết kế mô hình dữ liệu Logic 55 3.5.1. Chuẩn hoá quan hệ 55 3.5.2. Mô hình dữ liệu quan hệ 56 3.5.2. Thiế ké cơ sở dữ liệ vật lý 57 Chương IV: CÀI ĐẶT HỆ THỐNG VÀ ĐỀMÔ CHƯƠNG TRÌNH 63 4.1. Cài đặt chương trình 63 4.1.1. Cách thức cài đặt chương trình 63 4. 2. Một số giao diện chương trình 63 KẾT LUẬN 72 TÀI LIỆU THAM KHẢO 73

doc74 trang | Chia sẻ: lvcdongnoi | Lượt xem: 5381 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế hệ thống quản lý bán hàng của công ty máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2 tính năng mới cho bạn biết nếu 2 giá trị bằng nhau nhưng cũng phải kiểm tra khi chúng cùng kiểu. Những kiểu này có quan hệ mật thiết với nhau trừ khi chúng sử dụng 1 tín hiệu giống nhau: Operand Name Sample Description === Giống nhau $var === $var2 Giá trị 1 bằng giá trị 2  và thuộc cùng một dạng có đúng không? !== Không giống nhau $var !== $var2 Giá trị 1 khác giá trị 2  và thuộc cùng một dạng có đúng không? e) Phương pháp Logic: Điều gì sẽ sảy ra nếu bạn muốn xem xét hơn nhiều điều kiện để biết nó đúng hay sai? Quay lại ví dụ của một user login bạn buộc kiểm tra chắc chắn xem tên của user và pass có khớp nhau hay không bạn có thể làm như sau:  Kí tự "AND" nằm giữa hai điều kiện cho thấy ngôn ngữ lập trình phải kiểm tra cả hai phần của câu lệnh là đúng. Nếu đúng thì kết quả  sẽ được thông báo : "The entered username and password were correct!" PHP cũng hỗ trợ một số tính năng khác cho phương thức Logic này:  Operand Name Sample Description AND And $var AND $var2 Is true if both values are true. OR Or $var OR $var2 Is true if either value is true. XOR Xor $var XOR $var2 Is true if either value is true, but not both. && And $var && $var2 Is true if both values are true. || Or $var || $var2 Is true if either value is true. ! Not !$var Is true if the value is not true (ex. if the variable doesnt exist). f) Phương thức ưu tiên: Xem ví dụ sau : $x = 9 + 1 * 10 Bởi vì chúng thực hiện phép tính từ trái sang phải nên bạn phải giả định $x=100 (9 cộng 1 nhân 10= 100). Tuy nhiên vì thứ tự ưu tiên nên có thể bạn đã sai. Phép nhân thường được ưu tiên trứơc phép cộng vì thế phải thực hiện như sau: (1 nhân 10 cộng 9 =19). Các phương thức yêu tiên tương tự cũng được ứng dụng trong chương trình PHP. Hãy xem biểu đồ dưới đây đê xem các thứ tự phép tính. Các phép tính được liệt kê cùng một hàng được ưu tiên như nhau:  Thứ tự ưu tiên cao  nhất * / % + - . >= && || And Xor Thứ tự ưu tiên thấp nhất or Bạn cũng có thể dùng ngoặc đơn cho phép tình được ưu tiên thực hiện trước:  $x = (9 + 1) * 10 Như vậy là phép tính trong ngoặc đựơc thực hiện trứơc và kết quả =100 2.1.4. Cấu trúc điều khiển Trong ngôn ngữ PHP có hai loại hình cơ bản để điều khiển cấu trúc: Ngôn ngữ điều kiện và điều khiển theo một vòng khép kín. Ngôn ngữ điều kiện: Có thể giúp bạn chia nhỏ các phần khác nhau trong một ngôn ngữ lập trình phụ thuộc vào đó là một hay nhiểu điều kiện, xác định đúng hay sai. Nói một cách đơn giản nó cho phép bạn thử nghiệm và điều hành những thao tác khác nhau dựa vào kết quả a) Câu lệnh Nếu ( If statement): Xem ví dụ sau : Ví dụ này biểu thị một cách đơn giản nhất của một câu lệnh. Các câu lệnh luôn bắt đầu bằng chữ "If" theo sau là các điều kiện được đặt trong ngoặc đơn. Nếu câu lệnh điều kiện được công nhận là đúng thì sau đó các câu lệnh kèm theo điều kiện sẽ được chấp nhận. Trong trường hợp này nếu điều kiện là sai thì không thể thực hiện được gì và bạn sẽ thấy một cửa sổ Browser trống rỗng khi chạy chương trình ngôn ngữ lập trình. Nếu có hơn một câu lệnh được thực hiện trong cách điều khiển cấu trúc thì phải cho chúng vào trong ngoặc {} Nên nhớ rằng  vị trí của các yếu tố không ảnh hưởng tới việc thực hiện của ngôn ngữ lập trình. Các ví dụ được sắp xếp dưới đây rất hoàn thiện không chỉ trong các câu lệnh mà con ở tất cả hình thức điều khiển theo một chu kì kín if ($x == 1) print '$x is equal to 1'; if ($x == 1)    print '$x is equal to 1'; if ($x == 1) { print '$x is equal to 1'; } if ($x == 1) {    print '$x is equal to 1'; } Với sự rõ ràng này các nhà lập trình lựa chọn việc sử dụng cách viết lùi vào và ngoặc "{ }" thậm chí cả một dòng mã. Tuy nhiên người ta vẫn thường ưa dùng mã số riêng.  Bạn cũng có thể để tất cả điều kiện trong ngoặc đơn, để thực hiện tất cả  các điều kiện thì đòi hỏi tất cả các điều kiện phải đúng. Các câu lệnh khác (Else Statement): Như tên của nó bạn có thể thực hiện thêm một số chức năng khác nếu điều kiện bên trong 1 (If Statement) được xác định là sai: b) Câu lệnh Else if Statement: Đến nay chúng ta vẫn có thể thực hiện một lệnh mà điều kiện không đúng. Nhưng còn nhiều điều kiện thì sao? Bạn có thể sử dụng một loạt câu lệnh If Statement để thử nghiệm  tính khả thi của mỗi điều kiện, nhưng trong một số  trường hợp thì lựa chọn đó không thích hợp vậy bạn phải dùng tới Else if Statement Sự kết hợp giữa If, Else Statement và Else if Statement được thực hiện liên tiếp nếu điều kiện trong If Statemnet là sai. Khi điều kiện trong một Else if Statement được xác định là đúng thì các lện sẽ được thực hiện. Ngôn ngữ lập trình sẽ ngừng thực hiện toàn bộ If | Else if| Else Statement. Phần còn lại của ngôn ngữ  lập trình sẽ tiếp tục thực hiện . Xem ví dụ sau :  Phần cuối  còn lại của câu lệnh sẽ bị loại bỏ  nếu bạn không muốn thực hiện vì If hoặc Else If là đúng  Trong trường hợp này ko có điều kiện của If hoặc Else if statement là đúng và Else statement không được cung cấp dẫn tới không có kết quả của Browser. c) Sự thay đổi : Trong những tình huống này sự thay đổi là lựa chọn tốt nhất đối với If | Else if| Else Statement để kiểm tra có nhiều giá trị chống lại 1 đièu kiên thay đổi hay không. Đây là dạng câu lệnh cơ bản: Sau khi chạy từng phần mã hầu hết sẽ nên có nghĩa đối với bạn. Ở dòng đầu tiên của câu lệnh chúng ta thấy có sự thay đổi đồng nhất hơn được thực hiện trong ngoặc đơn. Mỗi trường hợp có thể có những giá trị thay đổi được. Những thay đổi được thực hiện từng phần nhỏ trên If/Else if/Else statements. Mỗi trường hợp giá trị phải khớp với giá trị thay đổi, mỗi câu lệnh được thực hiện gồm các trường hợp khác. Để tránh trường hợp này xảy ra người ta sử dụng 1 câu lệnh khác "Break;". Kết thúc việc thực hiện thay đổi câu lệnh và để cho ngôn ngữ lập trình tiếp tục thực hiện, nó cũng thực hiện một vòng khép kín. Bạn cũng có thể tùy ý sử dụng trường hợp đặc biệt gọi là "default" (thao tác cài đặt trước). Trường hợp này thao tác giống như Else Statement, và thực hiện nếu các trường hợp khác là sai.   Giống như Break Statement là Exit Statement. Lối ra thường được sử dụng trong các tình huống mà bạn chạy chương trình gặp lỗi nặng (fatal error) (Ví dụ như user đăng nhập sai pass) hoặc bất kì lúc nào bạn cần kết thúc thực hiện ngôn ngữ lập trình trước khi nó tự động chấm dứt: Không giống như break, exit có thể được sử dụng ở bất cứ đâu trong ngôn ngữ lập trình của bạn, trong và ngoài điều khiển cấu trúc. d) Ba bước của một cơ chế vận hành: Mặc dù theo thuật ngữ kĩ thuật một cơ chế vận hành không phải là  một cấu trúc điều khiển gồm ba phần, biểu hiện bằng dấu "?" có thể sử dụng với If/Else Statements. Nó cũng có thể được sử dụng trong những trường hợp mà bạn muốn thực hiện độc lập phụ thuộc vào điều kiện nào đúng hay sai. Điều kiện phải được đặt trong  ngoặc đơn đầu tiên. Nếu thực hiện được thì phần lệnh trong ngoặc đơn thứ hai cũng sẽ thự hiện. Nếu không phần lệnh trong ngoặc đơn thứ 3 sẽ thự hiện (condition) ? (executes if the condition is true) : (executes if the condition is false); e) Điều khiển theo chu kì: Trong PHP thường có những trường hợp cá biệt mà bạn cần thực hiện lại nhiệm vụ, như nhận dữ liệu từ các cơ sở dữ liệu, gửi e-mail vào danh sách mail hoặc xem lại nội dung  của bài viết. Điều khiển theo chu kì sẽ cho phép bạn thực hiện những nhiệm vụ này một cách hiệu quả. + While Loops (Chu kì thời gian): Đây là những hình thức đơn giản nhất của chu kì ";    $x++; } ?> Khi bạn chạy chương trình này bạn sẽ thấy các số từ 1 đến 10 hiện trên màn hình của bạn. Hãy xem mã, trong nhiều trường hợp nó rất giống với If statement. Trước hết đó là thời gian đồng nhất kèm theo điều kiện trong ngoặc đơn. Các lệnh trong một chu kì sẽ được thực hiện miễn là điều kiện trong ngoặc đơn được xác định là đúng. Khi điều kiện có giá trị được kiểm tra trước khi chu kì đó được thực hiện, nếu điều kiện sai thì các lệnh trong chu kì đó không thể thực hiện được. + Do...While Loops (Thực hiện chu kì thời gian): Do...While Loops có quan hệ với While Loops: "; $x++; } while ($x Điểm khác nhau cơ bản là cách thực hiện, giá trị của điều kiện trong Do...While Loop được thử nghiệm sau khi lịch trình hoạt động. Điều này có nghĩa trong các ví dụ trên $x đã cho ra kết quả một lần, sau đó khi việc thực hiện chu kì kết thúc thì $x lớn hơn 10 + For Loops (Đối với chu kì)   "; } ?> Trên đây là một ví dụ của một chu kì. For Loops rất giống với While Loops nhưng sử dụng thuận tiện hơn trong nhiều trường hợp. Chúng cũng là những chu kì phức tạp nhất trong PHP. Vay mựơn phần cú pháp và chức năng từ chương trình C. Nếu như bạn đoán được đoạn trích ở trên cho ra một một kết quả như ví dụ 1 của while loop, có thể bạn đã đúng. Hãy xem xét tại sao nó lai vận hành như thế. Trong dấu ngoặc đơn For Loops thực hiện 3 điều kiện ngăn cách bởi dấu ";". Điều kiện thứ nhất chỉ được thực hiện 1 lần khi chu kì bắt đầu. Trong trường hợp này $x có giá trị bằng 0.  Điều kiện tiếp theo là điều kiện được kiểm tra mỗi lần khi chu kì  hoạt động. Mỗi lần điều kiện sai chu kì sẽ ngừng thực hiện. Cũng giống như While Loops, nếu trong lần vận hành đầu tiên mà điều kiện sai thì không có lệnh nào trong chu kì được thực hiện. Điều kiện cuối cùng sẽ được thực hiện khi chu kì hoạt động sau khi các lệnh được thực hiện. Nên nhớ là không có dấu ";" sau điều kiện cuối cùng. Như bạn đã biết, For Loops thực hiện những chức năng tương tự như While Loops nhưng hiệu quả hơn. Nói cách khác đó là cách tốt nhất để sử dụng For Loops, những trương hợp mà bạn biết yếu tố nào là quan trọng để bạn thực hiện. 2.1.5. Lưu giữ những thông tin cần thiết 2.1.5.1. Cú pháp cơ bản - Basic Syntax Bắt đầu kết thúc chặn mã PHP Hãy nhìn vào ví dụ ngôn ngữ lập trình đưới đây : Testing PHP Ở ví dụ này  PHP được nối trực tiếp vào dữ liệu của HTML. Bởi vì PHP và HTML có thể tương thích với nhau như thế nên hầu hết việc chặn mã PHP phải được bao bọc bởi các thành tố đầu và cuối. Những thành tố này cho phép PHP có thể nhìn thấy phần nào của trang Web cần được phân tích và phần nào có thể bỏ qua. PHP được nhân dạng dưới 4 dạng phiên bản : 1. 2. print "hello there!"; 3. 4. Hai phiên bản đầu tiên được hỗ trợ, bởi PHP được cài đặt sẵn tuy nhiên hiếm khi bạn thấy phiên bản thứ hai  được sử dụng trong bất kỳ ngôn ngữ lập trình nào. Nói một cách ngắn gọn và có tính xây dựng thì phiên bản một là được ưa chuộng nhất. Các phiên bản còn lại thì vẫn được dùng nhưng không phổ biến. Bạn cũng nên chú ý rằng hầu hết các dòng mã của PHP đều được kết thúc bằng dấu chấm phẩy ";". Dấu chấm phẩy cho biết khi vận hành PHP nếu một câu lệnh kết thúc nó có thể tiến hành câu lệnh tiếp theo. Ngoặc đóng ">" PHP sau khi câu lệnh kết thúc cũng có tác dụng tương tự như ";" Giống như HTML PHP cho phép bạn có nhận xét về phác thảo các dữ liệu và có 3 cách sau : 1. // This comments out a single line. 2. print "Hi there"; #this is also a single line comment. 3. /* This is used to comment    out multiple lines */ Thông tin về việc chặn mã sẽ chỉ ra chức năng để tiết kiệm thời gian khi bạn trở lại với công việc sau khi quên các chi tiết. 2.1.5.2. Xây dựng việc chặn PHP và thay đổi - PHP Building Blocks - Variables Trong PHP có rất nhiếu những thay đổi trong các bit đơn vị thông tin và dữ liệu. Chúng được biểu thị bằng một đơn vị Dollar "$" và có thể được đặt tên bắt đầu bằng một chữ số hoặc một dấu gạch chân "_". Các tên cũng có thể chỉ gồm các chữ cái, chữ số hoặc gạch chân, đó là những trường hợp đặc biệt: Như ví dụ dưới đây và bạn hãy vận hành nó trên máy chủ của mình Khi vận hành, bạn sẽ nhìn thấy dòng chữ "Hello there" trong Browser. Nhìn vào ngôn ngữ lập trình và nhận biết. Chúng tôi bắt đầu bằng một sự thay đổi gọi là $var và thực hiện một chuỗi: "Hello there" theo sau dấu bằng "=". Trong dòng tiếp theo của ngôn ngữ lập trình chúng tôi sử dụng lệnh  print để cung cấp kết quả giá trị $var. Nếu bạn đang cô gắng dùng PHP sau khi dùng các chương trình ngôn ngữ khác như C, nên nhớ là bạn không cần phải thông báo những thay đổi trước khi sử dụng chúng. Thay đổi trong PHP sẽ tự động chuyển để vận hành chúng. Ví dụ: Cũng giống như ngôn ngữ lập trình trước đã tạo ra một thay đổi, lần này thực hiện một phép tính bằng chữ số thay vì bằng chữ và nó tạo ra thay đổi thứ 2. Ở dòng thứ 3 thêm vào và thực hiện phép cộng gọi là $sum. Vì $var1 và $var2 là những chữ số, bất kì phép toán nào đều có thể ứng dụng. 2.1.4.3 Chặn PHP và các dạng dữ liệu - PHP Building Blocks - Data Types Trong PHP, mỗi dữ liệu đều được thay đổi từ dạng này sang dạng khác, các dạng ta hay gặp ở PHP đó là: Strings, Arrays, Integers, Floating Point Numbers, and Objects. Bây giờ chúng ta  sẽ đè cập đến String và Integers và cả hai đều được sử dụng trong ngôn ngữ lập trình mới nhất. + Strings: Trong PHP, a String đơn thuần được định nghĩa là một chuỗi các ký tự. Chúng chứa các chữ cái, kí tự ASCII, chữ số và thậm chí là những thay đổi khác. Khi thực hiện một String đối với thay đổi hoặc đưa ra kết quả đối với Browser, bạn phải đánh dấu nơi bắt đầu và kết thúc của chúng. Có hai cách chung nhất thường làm: 1. Single Quotes: $var = 'Hi there'; print 'Hi there'; 2. Double Quotes: $var = "Hi there"; print "Hi there"; Mặc dù hai cách này tương tự nhau nhưng chúng cũng khác nhau một chút trong cách vận hành, hãy xem script sau: <?php $var = "This is a"; print "$var test"; print '$var test'; ?> Dựa vào những gì bạn biết về PHP  bạn có thể nhận thấy cả hai dòng đều trở thành "This is a test", nhưng hãy xem kết quả: This is a test $var test Điểm khác nhay cơ bản giữa dấu đơn và dấu ngoặc kép là nội dung ,và trong dấu ngoặc đơn được giữ nguyên. Nếu có thay đỏ gì chúng sẽ bị dịch sai nghĩa.  print $var . ' test'; Khi kết quả của các chuỗi cần được đưa vào trong ngoặc ,đây là kết quả có giá trị. Người ta gọi đó là cách vận hành tương thích, quá trình vận hành được quyền viết thêm điều kiện ở phía trái "gluing" gắn kết chúng lại với nhau rồi cho ra kết quả. Trong nhiều trường hợp bạn muốn viết một chuỗi có chứa dấu ngoặc kép, khi thực hiện nếu dấu ngoặc này giống những dấu mà bạn sử dụng để đánh dấu mội chuỗi nó phải được ngăn cách bởi kí tự "\". Việc 1 kí tự cho ngôn ngữ PHP biết được bạn muốn nó có phải có ý nghĩa rõ ràng.  $var = "I'm a string"; -- this is acceptable because you are using a single quotation mark within double ones. No escape character is needed here. $var = 'I'm a string'; -- This would give an error because PHP sees the second single quotation mark as the end of the string, and the rest of the text following it as garbage that it can't understand. $var = "I\'m a string"; -- This is the correct way to escape a quotation mark. + Số nguyên – Integers: Trong toán học tất cả các số, số âm hay số dương số 0 không được coi là những số thập phân. Khi bạn muốn thay đổi một số nguyên bạn không được dùng dấu ngoặc kép:   $var = 1; -- this is an integer $var = 0; -- this is an integer $var = "1"; -- this is a string. + Dạng sắp xếp - Type Juggling: Một trong những yếu tố làm cho PHP dễ sử dụng là tính linh hoạt trong cách sắp xếp. Khi bạn muốn thay đổi 1 yếu tố mới PHP sẽ tự động quyết định thay đổi theo dạng nào dựa vào dữ liệu mà bạn ấn định. Vì thế nếu tiến hành một chuỗi thay đổi thay đổi đó trở thành một chuỗi. Tương tự khi thay đổi một chức năng hay một số nguyên thì thay đổi sẽ trở thành dạng tương ứng Sau khi thực hiện một thay đổi có thể thay đổi dạng dựa vào điều kiện sử dụng: $var = "1"; -- $var là một chuỗi $var= $var + 1; -- $var là một giá trị của $var tăng thêm 1 và trở thành số nguyên Ở ví dụ trên $var chuyển từ một chuỗi thành một số nguyên vì chức năng hoạt động của các số được ứng dụng, nó gọi là "String Conversion". Nếu một chuỗi bắt đầu bằng các chữ số và bao gồm cả chữ viết, PHP sẽ sử dụng phần đầu là các dãy chữ số và không sử dụng phần chữ viết. Nếu một chuỗi không bắt đầu bằng chữ số, PHP sẽ giả định $var=0 để thực hiện. Kết quả cuối cùng của $var=1 chứ không phải =2. Nếu bạn muốn xem cách thực hiện như thế nào hãy chạy thử chương trình sau: ";   $var = "123 Texttexttext"; $var = $var +1; print "$var"; $var = "Hi there!"; $var = $var +1; print $var; ?> Ở ngôn ngữ lập trình này những thay đổi của chuỗi được chuyển thành những thay đổi của số nguyên vì một giá trị số nguyên được thêm vào nhưng không phải bao giờ nó cũng thực hiện như thế. $var = "33"; $newvariable = $var + 1; $newvariable là một số nguyên nhưng $var vẫn là một chuỗi vì kết quả được thêm vào 1 thay đổi. Thậm chí thay đổi ban đầu vẫn được giữ nguyên dạng và được xem là "String conversation". Trong quá trình gọi là Type Casting bạn có thể buộc PHP thực hiện 1 thay đổi ở dạng này hay dạng khác: $var = (int) "4"; -- $var là một số nguyên và được bỏ trong ngoặc kép theo nhu bạn định nghĩa . Bạn cũng có thể thay đổi chi tiết dạng của nó sau khi thực hiện bằng cách sử dụng chức năng Settype: $var = (int) "4"; $var = settype($var, float); -- $var trở thành một thay đổi 2.1.6. Các kiểu dữ liệu a) Kiểu số: Trong kiểu số có 2 kiểu cơ bản khác: Số nguyên (int) và số thực (float). Số nguyên có thể biểu diễn bằng số thập phân (hệ 10 - decimal), hệ 8 (octal) và hệ 16 (hexadecimal). + Số nguyên: Được khai báo và sử dụng dữ liệu giống như C VD : $a==1234,$a=-1234 + Số thực: VD : $a-1,234,$b=-1.2e5 Chú ý: khi sử dụng các số thực tế để tính toán, có thể làm mất giá trị của nó. Vì vậy, nên sử dụng các hàm toán học trong thư viện chuẩn để tính toán. b) Xâu Có 2 cách để xác định một xâu : Đặt giữa 2 dấu nháy kép(“”) hoặc giữa 2 daaus nháy đơn(‘’). Chú ý là các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặc đơn. c) Mảng Mảng thực chất là gồm hai bảng: bảng chỉ số và bảng liên kết + Mảng một chiều : có thể dùng hàm list() , array()để liệt kê các giá trị của từng phần tử trong mảng để tạo mảng. Có thể thêm các giá trị vào mảng để tạo thành một mảng àdùng như trong C. Có dùng các hàm asort(), ksort(), rsort(), sort(),…để xắp xếp các mảng. Tuỳ vào việc sắp xếp theo kiểu gì? + Mảng nhiều chiều : Tương tự như trong C, có thể dùng như sau : VD: $a[1]=$f; $a[“f00”]=$f PHP không yêu cầu phải khai báo trước các kiểu dữ liệu cho biến cho biến, kiểu giữ liệu của biến xẽ phụ thuộc vào kiểu giữ liệu bạn gán cho nó. e) Biến – giá trị Biến trong PHP bắt đầu bằng dấu dollar ($), theo sau là tên biến. Tên biến có thể bắt đầu bằng dấu gạch dưới (_ gọi là underscore) hoặc chữ cái. Tiếp sau đó là các chữ cái, số hoặc lại là dấu gạch dưới. Một số ví dụ về biến đúng: $uds, $update_softs. Biến sai: abc vì thiếu dấu dollar, $124adfd vì bắt đầu bằng số. 2.1.7. Cài đặt và cấu hình PHP Download PHP tại php. net/downloads. php, giải nén (ví dụ C:\PHP) 2. 2. Giới thiệu về MySQL 2.2.1. MySQL là gì? MySQL là một database Server, là hệ thống quản lý cơ sở dữ liệu quan hệ. Trong việc lưu trữ, tìm kiếm, sắp xếp và truy vấn dữ liệu, nó tỏ ra rất nhanh và mạnh mẽ. MySQL Server điều khiển truy cập dữ liệu đa người dùng cùng một thời điểm, cung cấp khả năng truy cập dữ liệu nhanh, đảm bảo cho người sử dụng được cấp quyền truy cập dữ liệu của hệ thống. Do vậy MySQL là đa người dùng đa luồng. Nó sử dụng các câu lệnh truy vấn SQL (ngôn ngữ truy vấn có cấu trúc) là một chuẩn ngôn ngữ truy vấn cơ sở dữ liệu hiện nay trên Web. MySQL được chính thức sử dụng rộng rãi năm 1996 nhưng nó đã hình thành từ năm 1979. MySQL có thể quản lý tới hàng Terabyte dữ liệu, hàng triệu bản ghi, chạy trên nhiều môi trường khác nhau, có giao diện tương đối dễ sử dụng, có thể truy vấn cơ sở dữ liệu thông qua câu lệnh SQL. MySQL thường được sử dụng chung với PHP trong những trang Web cần sử dụng đến cơ sở dữ liệu 2.2.2. Cài đặt MySQL Download MySQL từ địa chỉ mysql. com/download/, giải nén và tiến hành cài đặt, phải thiết lập username (ở đây là admin) và Database Server (ở đây là localhost) 2.2.3. Sơ lược MySQL Các cơ sở dữ liệu trong MySQL được tạo hoàn toàn bằng lệnh. Các lệnh trong SQL được kết thúc bởi dấu chấm phẩy (;). Trừ một số lệnh như Quit là trường hợp đặc biệt. Khi thực hiện lệnh, MySQL chuyển nó đến Server và yêu cầu thực hiện lệnh. Do đó “mysql>” ở cuối cùng khi bấm enter thực hiện lệnh báo hiệu yêu cầu đã được thực hiện. MySQL đưa ra kết quả dưới dạng 1 bảng gồm các cột và hàng. MySQL cũng đưa ra bao nhiêu hàng được trả về và trong vòng bao nhiêu giây. Ngoài ra MySQL cũng thể hiện được những phép tính đơn giản. Các lệnh trong MySQL có thể viết trên một hàng, hoặc nhiều hàng. MySQL có 4 loại dấu nhắc. Sau đây là ý nghĩa của các dấu nhắc: Prompt: ý nghĩa Mysql>: sẵn sàng cho một lệnh mới _>: chờ cho hàng kế tiếp của một lệnh có nhiều hàng ‘>: chờ cho hàng kế tiếp thực hiện bởi 1 chuỗi trong dấu nháy đơn “>: chờ cho hàng kế tiếp thực hiện bởi một chuỗi trong dấu nháy 2.2.4. Các lệnh cơ bản trong MySQL SHOW DATABASE; // Liệt kê tất cả các database có trên Server USE TÊN DATABASE; // Lựa chọn sử dụng database, nếu database có trên Server, máy sẽ báo là database changed CREAT DATABASE TÊN DATABASE; // Tạo database mới SHOW TABLES; // Liệt kê các bảng cho database CREAT TABLE TÊN TABALE; // Tạo bảng cho database. DESCRIBE TÊN TABLAE; // Mô tả bảng đã tạo. INSERT INTO TÊN TABLE [ COLUMN 1, COLUMN 2, .... ] VALUES (VALUE 1, VALUE 2, ... ); // Đưa dữ liệu vào bảng. SELECT items FROM tables [ WHERE điều kiện ] [ GROUP BY group_type ] [ HAVING where_definition ] [ ORDER BY order_type] [ LIMIT limit_criteria ] // Truy vấn cơ sở dữ liệu trong các bảng. LOAD DATA INFILE “TÊN FILE. EXCEPTION” INTO TABLE TÊN TABLE; // Nhập dữ liệu vào bảng từ trình soạn thảo văn bản khác. DELETE FROM table [ WHERE condition ] [ LIMIT number] // Xóa dữ liệu trong bảng UPDATE tablename SET column1 = expression1, column2 = expression2, .... [ WHERE condition ] [ LIMIT number ] ALTER TABLE tên table RENAME tên table mới // Thay đổi tên bảng ALTER TABLE table_name ADD COLUMN column_name column atributes. // Thêm cột vào bảng. ALTER TABLE table_name DROP column_name // Xóa cột trong bảng Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1. Đặt vấn đề Cùng với sự bùng nổ của công nghệ thông tin toàn cầu, thì việc áp dụng thực tiễn vào cuộc sống đã tạo ra một bước đột phá trong công việc quản lý dữ liệu, và bản đồ. Với việc phát triển không ngừng của các ngôn ngữ lập trình Javascript và PHP, … đã giúp các nhà quản lý thông tin nâng cao tính hiệu quả của việc quản lý thông tin một cách chính xác, nhanh và hiệu quả, nâng cao chất lượng quản lý. Trong thực tiễn thuê thiết bị trên mạng, đã đem lại hiệu quả thực tiễn cao, đáp ứng được nhu cầu sử dụng của mọi người. 3.2. Mô tả bài toán Khi khách hàng có nhu cầu cần mua thiết bị máy tính tại công ty, công ty sẽ tiến hành giới thiệu các thiết bị cho khách hàng bằng cách: + Công ty sẽ gửi fax báo giá các thiết bị mà khách hàng có nhu cầu cần mua và hồ sơ các thiết bị mà công ty bán. + Đối với khách hàng vãng lai đến công ty mua thiết bị máy tính thì bộ phận kinh doanh sẽ đưa hồ sơ thiết bị cho bán và báo giá, đồng thời sẽ là người đảm nhận việc giới thiệu thông tin cho khách hàng biết về sản phẩm mà họ cần mua. Khi khách hàng đồng ý sẽ lập hợp đồng mua thiết bị gửi công ty. Bộ phận kinh doanh sẽ tiếp nhận hợp đồng mua thiết bị của khách hàng, đồng thời gửi yêu cầu mua thiết bị của khách cho bộ phận thủ kho biết. Khi đó thủ kho sẽ kiểm tra xem trong kho có còn thiết bị cần hay không, có đủ đáp ứng lượng thiết bị mà khách hàng cần mua không. + Nếu đáp ứng đủ lượng thiết bị trong hợp đồng mua, thủ kho sẽ lập phiếu xuất kho và xuất thiết bị khỏi kho. Sau đó bộ phận thủ kho gửi phiếu xuất này cho bộ phận kế toán để bộ phận này viết phiếu thu và tiến hành thu tiền đặt trước của khách hàng. Khi đó căn cứ vào phiếu thu thì bộ phận kinh doanh sẽ giao thiết bị cho khách. + Nếu không đáp ứng đủ, bộ phận kinh doanh sẽ thông báo cho khách hàng. Nếu khách hàng đồng ý mua với số lượng thiết bị còn trong kho thì nhân viên của công ty sẽ tiếp tục công việc của mình. Sau mỗi ngày thì ban lãnh đạo công ty yêu cầu báo cáo về tình kinh doanh buôn bán của công ty. 3.3. Xây dựng mô hình chức năng 3.3.1. Sơ đồ ngữ cảnh Hệ thống bán hàng có các tác nhân ngoài là Nhà cung cấp, các Khách hàng, Ngân hàng và những Ban lãnh đạo của công ty. Ta có thể mô tả sơ đồ ngữ cảnh hệ thống như hình vẽ. Hình 3.1: Biểu đồ ngữ cảnh hệ thống 0 Hệ thống quản lý xuất nhập và bảo hành thiết bị máy tính Khách Hàng Nhà Cung Cấp Phiếu bảo hành, tb bảo hành Thông tin hàng hóa, khuyến mại Yêu cầu mua hàng Kiểm tra tt khách Thông tin khách Giao hàng, phiếu bh Thanh toán, nợ, hạn Phiếu thanh toán Tìm kiếm Thanh toán Thông tin về hàng, thời gian Hình thức thanh toán,vận chuyển Đơn đặt hàng Ban lãnh đạo Thông tin xác nhận Yêu cầu thông kê, báo cáo Báo cáo Ngân Hàng Kiểm tra tk nhà CC, KH Thông tin tk nhà CC, KH Tình trạng tb, phiếu biên nhận Thông báo hàng hóa, báo giá Thông tin xác nhận Chuyển khoản hay ủy quyền chuyển khoản Yêu cầu danh sách hàng Phiếu thanh toán Chào hàng mới 3.3.2. Mô hình chức năng của hệ thống 3.3.2.1. Sơ đồ chức năng hệ thống HỆ THỐNG QUẢN LÝ KINH DOANH CỦA CÔNG TY 1.0 NHẬP HÀNG 2.0 XUẤT HÀNG 3.0 BẢO HÀNH 4.0 BÁO CÁO 5.0 QUẢN TRỊ HỆ THỐNG Hình 3.2: Sơ đồ chức năng hệ thống 3.3.2.2. Mô tả các chức năng chính a) Quy trình nhập thiết bị máy tính: Bộ phận kinh doanh căn cứ vào nhu cầu mua hàng của khách hàng, số lượng hàng hoá tồn tối thiểu, số lượng hàng hoá tồn tối đa trong kho và danh sách các mặt hàng hiện có của cửa hàng để lập đơn đặt hàng. Trong đơn đặt hàng có đầy đủ thông tin về danh sách và số lượng các mặt hàng cần nhập về. Bộ phận kinh doanh sẽ trình đơn đặt hàng lên ban giám đốc ký duyệt. Nếu đơn đặt hàng đã được ban giám đốc ký duyệt thì bộ phận kinh doanh sẽ gửi đơn đặt hàng tới nhà cung cấp. Nếu được nhà cung cấp chấp thuận cung cấp hàng, khi hàng về bộ phận kinh doanh sẽ lập phiếu nhập hàng và nhận hàng đưa về kho. b) Quy trình xuất thiết bị máy tính: Chức năng này thực hiện việc quản lý các mặt hàng và kiểm soát quá trình mua hàng của khách hàng. Thực hiện quá trình giao dịch mua hàng khi khách hàng có nhu cầu mua hàng tại trang Web hoặc trực tiếp tại công ty. Ngoài ra, sẽ xuất hoá đơn mua hàng ứng với từng khách hàng. Sau khi khách hàng đặt hàng công ty sẽ gửi cho khách Email hoặc gọi điện để xác nhận việc mua hàng của khách hàng nếu khách hàng xác nhận đúng sẽ tiến hành việc lập hoá đơn xuất hàng. Việc gửi hàng cho khách chỉ được thực hiện khi khách hàng đã thanh toán cho công ty theo hai hình thức là thanh toán qua tài khoản của công ty hoặc gửi tiền qua đường bưu điện tới địa chỉ của công ty. c) Quy trình bảo hành thiết bị máy tính: Khách hàng khi có một thiết bị bị hỏng hóc có thể truy cập trang web bảo hành thiết bị máy tính này tìm đến thông tin sản phẩm của mình và cách sửa chữa của nó. Trong trường hợp đã thử mọi cách đều không sửa được khách hàng sẽ gửi một yêu cầu bảo hành tới công ty. Công ty nhận yêu cầu bảo hành, kiểm tra thông tin khách hàng, thiết bị. Nếu không đủ điều kiện thì từ chối bảo hành. Còn ngược lại thì tạo phiếu bảo hành và sẽ nhận thiết bị qua 3 cách: * Cách 1: Công ty tới tận nơi và khách hàng chịu một phí dịch vụ vận chuyển. * Cách 2: Khách hàng tự mang sản phẩm tới công ty (nếu khách hàng ở gần). * Cách 3: Khách hàng gửi qua đường bưu điện (nếu khách hàng ở xa). Sau một khoảng thời gian đã hẹn, khách hàng vào web xem thông tin thiết bị đã được bảo hành chưa. Nếu chưa thì có thể chờ thêm, hoặc khách hàng sẽ yêu cầu công ty trả thiết bị theo 3 cách như trên. d) Quy trình quảng cáo: Giới thiệu về các sản phẩm mới nhất, các chương trình khuyến mại của công ty, cũng như các dịch vụ của công ty. e) Quản trị hệ thống: Chức năng này thực hiện việc tạo thêm người dùng, cấp quyền cho các người quản trị khi truy nhập vào phần quản trị. 3.3.3. Các sơ đồ chi tiết a. Sơ đồ phân rã của chức năng quản lý nhập hàng. 1.1 Lập đơn đặt hàng 1.2 Theo dõi hàng về 1.3 Lập phiếu nhập kho 1.0 NHẬP HÀNG 1.4 Lập phiếu chi Hình 3.2: Sơ đồ phân rã của chức năng quản lý nhập hàng Mô tả: Chức năng này thực hiện các công việc: Lập đơn đặt hàng: Dựa theo tình hình kinh doanh, danh sách các thiết bị và báo cáo lượng hàng tồn kho mà nhân viên bộ phận kinh doanh sẽ lập đơn đặt hàng trình giám đốc phê duyệt. Khi giám đốc phê duyệt thì bộ phận kinh doanh sẽ gửi đơn đặt hàng cho nhà cung cấp yêu cầu nhập thiết bị. Theo dõi hàng về: Khi hàng được gửi tới công ty, nhân viên phòng kinh doanh sẽ đối chiếu với đơn đặt hàng để kiểm tra các thiết bị về số lượng cũng như chủng loại. Nếu thiếu về số lượng hoặc sai về chủng loại thì công ty yêu cầu bổ sung hoặc thay thế cho đủ. Lập phiếu nhập kho: Sau khi bộ phận kinh doanh ký vào hoá đơn giao hàng. Từ đơn giao hàng, thủ kho sẽ cho nhập hàng vào kho rồi viết phiếu nhập kho cho kho đó. Lập phiếu chi: Sau khi thủ kho nhập thiết bị vào kho và viết phiếu nhập kho. Nhân viên phòng kinh doanh dựa trên phiếu nhập kho để lập phiếu chi thanh toán tiền với nhà cung cấp. b. Sơ đồ phân rã của chức năng quản lý xuất hàng. 2.3 Kiểm tra tt khách 2.4 Lập phiếu xuất kho 2.0 XUẤT HÀNG 2.6 Lập phiếu thu 2.2 Lập đơn mua hàng 2.5 Lập phiếu bảo hành 2.1 Yêu cầu xem hàng Hình 3.3: Sơ đồ phân rã của chức năng quản lý xuất hàng Mô tả: Yêu cầu xem hàng: Khi khách hàng muốn mua thiết bị của công ty có thể tìm kiếm hoặc có thể tra cứu thông tin về từng loại thiết bị. Lập đơn mua hàng: Khi khách hàng đã xem và muốn mua hàng của công ty thì phải lập đơn mua hàng. Kiểm tra thông tin khách: Sau khi khách hàng đặt hàng công ty sẽ gửi cho khách Email hoặc gọi điện để xác nhận việc mua hàng của khách hàng, có thể kiểm tra tài khoản của khách hàng nếu khách hàng xác nhận đúng sẽ tiến hành việc lập hoá đơn xuất hàng. Lập phiếu xuất kho: Sau khi tiếp nhận đơn đặt hàng của khách hàng, nhân viên phòng kinh doanh chuyển đơn đặt hàng cho thủ kho. Khi đó thủ kho sẽ kiểm tra xem mặt hàng đó có trong kho nào, có đủ đáp ứng lượng hàng mà khách hàng yêu cầu không? Sau khi kiểm tra xong, thủ kho cho xuất hàng và viết phiếu xuất kho. Phòng kinh doanh sẽ thỏa thuận với khách hàng hình giao hàng với các cách sau: * Cách 1: Công ty giao tới tận nơi và khách hàng chịu một phí dịch vụ vận chuyển. * Cách 2: Khách hàng tự đến lấy hàng tại công ty. * Cách 3: Công ty gửi qua đường bưu điện. Lập phiếu bảo hành: Trước khi giao hàng cho khách phòng kinh doanh sẽ viết phiếu bảo hành cho thiết bị đó Lập phiếu thu: Nhân viên phòng kinh doanh căn cứ vào sổ thu để kiểm tra nợ cũ của khách hàng, căn cứ vào phiếu xuất hàng để lập phiếu thu thu tiền của khách hàng. c. Sơ đồ phân rã của chức năng quản lý bảo hành thiết bị. 3.3 Lập phiếu bảo hành 3.2 Thông tin khách hàng, thiết bị bh 3.1 Yêu cầu bảo hành 3.0 BẢO HÀNH Hình 3.4: Sơ đồ phân rã của chức năng quản lý bảo hành thiết bi Mô tả: Yêu cầu bảo hành: Khách hàng khi có một thiết bị bị hỏng hóc có thể truy cập trang web bảo hành thiết bị máy tính này tìm đến thông tin sản phẩm của mình và cách sửa chữa của nó. Trong trường hợp đã thử mọi cách đều không sửa được khách hàng sẽ gửi một yêu cầu bảo hành tới công ty. Thông tin khách hàng, thiết bị bảo hành: Chức năng này cho phép nhân viên quản lý có thể xem các thông tin của khách hàng đăng ký bảo hành, và thông tin các thiết bị bảo hành. Lập phiếu bảo hành: Khi những thiết bị nào đủ điều kiện bảo hành thì nhân viên quản lý sẽ thông báo với khách hàng và thỏa thuận với khách hàng phương thức bảo hành. Sau khi khách hàng lựa chọn phương thức thì phòng kinh doanh tạo phiếu bảo hành phù hợp với phương thức bảo hành mà khách hàng đã lựa chọn. d. Sơ đồ phân rã của chức năng báo cáo: 4.3 Thống kê hàng bán chạy 4.2 Thống kê doanh thu 4.1 Thống kê hàng tồn 4.0 BÁO CÁO 4.4 Thống kê khách hàng Hình 3.5: Sơ đồ phân rã của chức năng báo cáo Mô tả: Thống kê hàng tồn: Hệ thống sẽ cho phép thống kê hàng tồn kho theo mỗi mặt hàng bằng số hàng ban đầu trừ đi số hàng đã bán và sẽ kiểm tra tồn kho thường xuyên để biết được tình hình bán hàng. Thống kê doanh thu: Theo thời gian bán hàng của mỗi mặt hàng thì hệ thống sẽ tính số tiền đã bán được trong thời gian đó là bao nhiêu. Thống kê hàng bán chạy: Dựa theo số lượng của mỗi mặt hàng hệ thống sẽ tính toán phần trăm số hàng của mỗi mặt hàng đã bán để biết được mặt hàng nào bán chạy. Thống kê khách hàng: hệ thống sẽ thống kê xem có bao nhiêu khách hàng đã mua sản phẩm của công ty. e. Sơ đồ phân rã chức năng quản trị hệ thống. 5.3 Thêm người quản trị 5.2 Đăng nhập 5.1 Đăng ký 5.0 Quản trị hệ thống 5.4 Thay đổi cấp quyền Hình 3.6: Sơ đồ phân rã chức năng quản trị hệ thống Mô tả: Đăng ký: Khi người dùng tham gia vào hệ thống muốn sử dụng hệ thống và muốn hệ thống cấp cho mình một tài khoản thì người quản trị cấp cho người dùng một acount thành viên. Đăng nhập: Khi đã là thành viên của hệ thống, người dùng thực hiện đăng nhập vào hệ thống tra cứu thông tin và có thể đóng góp ý kiến. Thêm người quản trị: Hệ thống cho phép tạo thêm một số người quản trị, họ chỉ có thể quản lý các chức năng do admin cấp theo 3 quyền: Full, ReadOnly, NoAccess Thay đổi cấp quyền: hệ thống cho phép việc thay đổi cấp quyền của các quản trị chỉ có người có quyền cao nhất mới có thể thay quyền cho người khác. 3.3.4. Sơ đồ chức năng hệ thống HỆ THỐNG QUẢN LÝ KINH DOANH CỦA CÔNG TY 1.1 Lập đơn đặt hàng 1.2 Theo dõi hàng về 1.3 Lập phiếu nhập kho 1.0 NHẬP HÀNG 1.4 Lập phiếu chi 2.3 Kiểm tra tt khách 2.4 Lập phiếu xuất kho 2.0 XUẤT HÀNG 2.6 Lập phiếu thu 2.2 Lập đơn mua hàng 2.5 Lập phiếu bảo hành 2.1 Yêu cầu xem hàng 3.3 Lập phiếu bảo hành 3.2 Thông tin khách hàng, thiế bị bh 3.1 Yêu cầu bảo hành 3.0 BẢO HÀNH 4.3 Thống kê hàng bán chạy 4.2 Thống kê doanh thu 4.1 Thống kê hàng tồn 4.0 BÁO CÁO 4.4 Thống kê khách hàng 5.3 Thêm người quản trị 5.2 Đăng nhập 5.1 Đăng ký 5.0 QUẢN TRỊ HỆ THỐNG 5.4 Thay đổi cấp quyền Hình 3.7: Hệ thống quản lý kinh doanh của công ty 3.3.5. Danh sách hồ sơ sử dụng Qua phân tích yêu cầu, ta thấy có những hồ sơ sau đây được sử dụng: D1. Danh mục nhà cung cấp, khách hàng D2. Danh mục hàng hóa vật tư D3. Hợp đồng mua bán thiết bị tin học D4. Phiếu nhập kho D5. Phiếu chi D6. Ủy nhiệm chi D7. Hóa đơn bán hàng D8. Thông tin khách hàng D9. Phiếu thu D10. Phiếu nhập kho D11. Sổ theo dõi nhập xuất hàng D12. Sổ thu chi D13. Phiếu bảo hành D14. Biên bản bảo trì – bảo dưỡng thiết bị D15. Báo cáo D16. Danh sách Username D17. Danh sách nhóm quyền 3.3.6. Ma trận thực thể chức năng Các thực thể D1.Danh sách nhà cung cấp, khách hàng D1 D2. Danh mục hàng hóa vật tư D2 D3. Hợp đồng mua bán thiết bị tin học D3 D4. Phiếu nhập kho D4 D5. Phiếu chi D5 D6.Ủy nhiệm chi D6 D7. Hóa đơn bán hàng D7 D8. Thông tin khách hàng D8 D9. Phiếu thu D9 D10. Phiếu xuất kho D10 D11. Sổ theo dõi nhập xuất hàng D11 D12. Sổ thu chi D12 D13. Phiếu bảo hành D13 D14.Biên bản bảo trì-bảo dưỡng thiết bị D14 D15.Báo cáo D15 D16. Danh sách Username D16 D17. Danh sách nhóm quyền D17 Các chức năng D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 1. Nhập hàng U U C C C C U U 2. Xuất hàng R C U C C U U C R 3. Bảo hành R R R R R U 4. Báo cáo R R R R R C 5. Quản trị hệ thống R U C Hình 3.8: Ma trận thực thể chức năng 3.4. Mô hình hóa hoạt động xử lý nghiệp vụ 3.4.1. Biểu đồ luồng dữ liệu mức 0 3.4.2. Biểu đồ luồng dữ liệu mức 1 3.4.2.1. Biểu đồ luồng dữ liệu “Quản lý nhập hàng” 1.1 Lập đơn đặt hàng 1.2 Theo dõi hàng về 1.4 Lập phiếu chi 1.3 Lập phiếu nhập kho Nhà cung cấp Y/c mua hàng T/t hàng D1 Danh mục nhà cung cấp-khách hàng. D2 Danh mục hàng hóa vật tư D4 Phiếu nhập kho D6 Ủy nhiệm chi Phiếu chi D5 D12 Sổ thu chi Phiếu thanh toán Thanh toán D3 Hợp đồng mua bán thiết bị tin học D4 Sổ theo dõi nx hàng Hình 3.10:Biểu đồ luồng dữ liệu “Quản lý nhập hàng” 3.4.2.2. Biểu đồ luồng dữ liệu “Quản lý xuất hàng” 2.1 Y/c xem hàng 2.2 Lập đơn mua hàng 2.4 Lập phiếu xuất kho 2.5 Lập phiếu bảo hành 2.6 Lập phiếu thu Khách hàng Y/c xem hàng Kết quả Lập đơn mua hàng Y/c mua hàng Kiểm tra t/t khách Kết quả Phiếu thanh toán Thanh toán D2 Danh mục hàng hóa vật tư D7 Hóa đơn bán hàng D14 Biên bản bảo trì-bảo dưỡng thiết bị D10 Phiếu xuất kho D13 Phiếu bảo hành D9 Phiếu thu 2.3 Kiểm tra t/t khách D8 Thông tin khách hàng D12 Sổ thu chi Hình 3.11:Biểu đồ luồng dữ liệu “Quản lý xuất hàng” 3.4.2.3. Biểu đồ luồng dữ liệu “Bảo hành” Hình 3.12:Biểu đồ luồng dữ liệu “Bảo hành” 3.1 Y/c bảo hành 3.1 T/t khách hàng, thiết bị bảo hành 3.1 Lập phiếu bảo hành Khách hàng Y/c bảo hành Y/c bảo hành T/t thiết bị Kết quả D2 Danh mục hàng hóa vật tư D8 Thông tin khách hàng D11 Sổ theo dõi nx hàng D3 Hợp đồng mua bán thiết bị tin học D14 Biên bản bảo trì-bảo dưỡng thiết bị D12 Sổ thu chi 3.4.2.4. Biểu đồ luồng dữ liệu “Báo cáo” Hình 3.13: Biểu đồ luồng dữ liệu “Báo cáo” 4.1 Thống kê hàng tồn Ban lãnh đạo 4.3 T/k hàng bán chạy 4.2 T/k doanh thu 4.4 T/k khách hàng B/c hàng tồn T/t hàng tồn B/c hàng bán chạy T/t hàng bán chạy T/t doanh thu B/c doanh thu B/c khách hàng T/t khách hàng D2 Danh mục hàng hóa vật tư D11 Sổ theo dõi nx hàng D12 Sổ thu chi D8 Thông tin khách hàng 5.1 Đăng ký 5.2 Đăng nhập 5.4 Thay đổi cấp quyền 5.3 Thêm người quản trị Ban lãnh đạo Đăng ký Kết quả Đăng nhập Kết quả đăng nhập Y/c thay đổi quyền Kết quả T/t user mới Kết quả D16 Danh sách Username D14 Danh sách nhóm quyền Thay đổi tt Kết quả thay đổi Khách hàng Hình 3.14: Biểu đồ luồng dữ liệu “Quản trị hệ thống” 3.4.2.5. Biểu đồ luồng dữ liệu “Quản trị hệ thống” 3.4.3. Xây dựng mô hình E-R 3.4.3.1. Xác định các thực thể và thuộc tính THIẾT BỊ: Mã TB, Tên TB, Đơn vị tính, Ngày sx, Nơi sản xuất, Ảnh, Mô tả hàng, Đơn giá. Trong đó Mã TB là thuộc tính khóa. KHÁCH HÀNG: Mã KH, Họ tên KH, Địa chỉ KH, Điện thoại KH, FaxKH, EmailKH, Tài khoảnHK. Trong đó MãKH là thuộc tính khóa. NHÀ CUNG CẤP: Mã NCC, Tên NCC, Đia chỉ NCC, Điện thoại NCC, TàikhoảnNCC, FaxNCC, EmailNCC, Website. Trong đó Mã NCC là thuộc tính khóa. KHO: Mã kho, Tên kho, Địa điểm kho, Chú thích.Trong đó Mã kho là thuộc tính khóa. USERNAME: Mã user,Uername,Password, Ngày lập. Trong đó Mã user là thuộc tính khóa. NHÓM QUYỀN: Mã nhóm quyền, Tên nhóm quyền. Trong đó Mã nhóm quyền là thuộc tính khóa. NHÂN VIÊN: Mã NV, Tên VN, Ngày sinh, Địa chỉ, Ngày nhận, ĐiệnthoạiNV, Chức vụ. Trong đó Mã NV là thuộc tính khóa. PHÒNG BAN: Mã PB, Tên PB, Chức năng, Mảng quản lý. Trong đó Mã PB là thuộc tính khóa. NGÂN HÀNG: Mã NH, Tên NH, Điên thoại NH. Trong đó Mã NH là thuộc tính khóa. 3.4.3.2. Các kiểu liên kết 1 Thuộc NHÓM QUYỀN USERNAME n 1 1 Đăng ký KHÁCH HÀNG USERNAME Thuộc PHÒNG BAN NHÂN VIÊN 1 n n 1 1 Thanh toán THIẾT BỊ KHÁCH HÀNG NHÂN VIÊN Bảo hành THIẾT BỊ KHÁCH HÀNG NHÂN VIÊN 1 n n n n 1 THIẾT BỊ KHÁCH HÀNG NHÂN VIÊN Bán Các kiểu liên kết NHÂN VIÊN THIẾT BỊ KHO Xuất 1 n n NHÀ CUNG CẤP NHÂN VIÊN THIẾT BỊ KHO Nhập 1 1 1 n NHÀ CUNG CẤP NHÂN VIÊN THIẾT BỊ Thanh toán 1 1 n 3.4.3.3. Mô hình E-R (Trang tiếp) Chức năng Tên PB Mã PB Thuộc PHÒNG BAN Địa chỉ KH Mã KH FaxKH Điện thoại KH EmailKH Tài khoảnHK Họ tên KH Mảng quản lý KHÁCH HÀNG Tên NH NGÂN HÀNG Đăng ký Ngày lập Ngày UN Số tiền UN Điện thoại NH Số phiếu Mã NH Ủy nhiệm chi Mã user USERNAME Đơn giá Số đơn bán Bán Uername Lý do UN Số lượng Password Số phiếu BH Ngày bán Tổng tiền Thuộc Bảo Hành NHÓM QUYỀN Thời hạn BH Ngày lập Ngày nhận Mã nhóm quyền Tên NV Ngày sinh Số tiền Số đơn bán Mã NV Ngày sx Thanhtoán Tên nhóm quyền Đơn giá NHÂN VIÊN Số chứng từKH Ngày thanh toán Tên TB Nơi sản xuất THIẾT BỊ Địa chỉ Chức vụ Điện thoạiNV Mô tả hàng Ảnh Số lượng Mã TB Số lượng xuất Thanhtoán Đơn vị tính Xuất Số tiền Ngày xuất Số phiếu nhập Đơn giá Số phiếu xuất Số chứng từ NCC Ngày thanh toán Nhập Đơn giá TàikhoảnNCC Số lượng nhập Ngày nhập Đia chỉ NCC NHÀ CUNG CẤP KHO Số phiếu nhập Tên NCC Tên kho Mã kho Điện thoại NCC FaxNCC Địa điểm kho MãNCC EmailNCC Website Chú thích Hình 3.14: Mô hình E-R 3.5. Thiết kế mô hình dữ liệu Logic 3.5.1. Chuẩn hoá quan hệ KHACHHANG (Makh, HotenKH, ĐiachiKH, ĐienthoaiKH, FaxKH, MailKH, TaikhoanKH, MaUser) NHACUNGCAP (MaNCC, TenNCC, DiachiNCC, FaxNCC, MailNCC, Website) KHO (Makho, Tenkho, Diadiemkho, Chuthich) THIETBI (MaTB, TenTB, Donvitinh, Soluong, Ngaysx, Noisx, Anh, Motahang, Dongia) USERNAME (MaUser, TenUser, Password, Ngaylap ) NHOMQUYEN (Manhomquyen, Tennhomquyen) NHANVIEN (MaNV, TenVN, Ngaysinh, Điachi, Ngaynhan, ĐiệnthoạiNV, Chucvu) PHONGBAN (MaPB, TenPB, Chucnang, Mangquanly) NGANHANG (MaNH, TenNH, ĐienthoaiNH) DONBANHANG (Sodonban, Soluong, Ngayban, Dongia, Tongtien, MaKH, MaNV, MaTB) PHIEUBAOHANH (SophieuBH, Ngaylap, ThoihanBH, MaKH, MaNV, MaTB) PHIEUTHU (SochungtuKH, Sodonban, Ngaytanhtoan, Sotien) PHIEUNHAPKHO (Sophieunhap, Soluongnhap, Ngaynhap, Dongia, MaKH, MaNV, MaTB, Makho) PHIEUCHI (SochungtuNCC, Sophieunhap, Ngaythanhtoan, Sotien) PHIEUXUAT (Sophieuxuat, Soluongxuat, Ngayxuat, Dongia, MaTB, MaNV, Makho) UYNHIEMCHI (SophieuUN, MaNH, MaNV, SotienUN, NgayUN, LydoUN) 3.5.2. Mô hình dữ liệu quan hệ KHACHHANG #MaKH HotenKH DiachiKH DienthoaiKH FaxKH MailKH TaikhoanKH MaUser NHACUNGCAP #MaNCC TenNCC DiachiNCC FaxNCC MailNCC Website THIETBI #MaTB TenTB Donvitinh Soluong Ngaysx Noisx Anh Motahang Dongia KHO #Makho Tenkho Diadiemkho Chuthich NHOMQUYEN #Manhomquyen Tennhomquyen DONBANHANG #Sodonban MaNV MaKH MaTB Ngayban Soluongdat Dongia Tongtien PHIEUTHU #SochungtuKH Sodonban Ngaythanhtoan Sotien PHIEUNHAPKHO #Sophieunhap MaTB MaNV Makho MaNCC Soluongnhap Ngaynhap Dongia PHIEUCHI #SochungtuNCC Sophieunhap Ngaythanhtoan Sotien USERNAME #MaUser TenUser Password Ngaylap Manhomquyen NHANVIEN #MaNV TenVN Ngaysinh Điachi Ngaynhan ĐiệnthoạiNV Chucvu PHIEUBAOHANH #SophieuBH MaKH MaTB MaNV Ngaylap ThoihanBH PHIEUXUATKHO #Soluongxuat Ngayxuat Dongia MaTB MaNV Makho NGANHANG #MaNH TenNH DienthoaiNH UYNHIEMCHI #SophieuUN MaNV MaNH NgayUN LydoUN PHONGBAN # MaPB MaNV TenPB Chucnang Mangquanly 3.5.2. Thiế ké cơ sở dữ liệ vật lý Bảng KHACHHANG Tên trường Kiểu dữ liệu Kích cỡ Khoá MaKH Char 8 Khóa chính HotenKH Char 30 DiachiKH VarChar 100 DienthoaiKH Int 12 FaxKH Char 12 MailKH VarChar 30 TaikhoanKH Char 30 MaUser Char 30 Khóa ngoại Bảng NHACUNGCAP Tên trường Kiểu dữ liệu Kích cỡ Khoá MaNCC Char 8 Khóa chính TenNCC VarChar 50 DiachiNCC VarChar 100 FaxNCC Char 12 MailNCC VarChar 30 Website Text 30 Bảng KHO Tên trường Kiểu dữ liệu Kích cỡ Khoá Makho Char 8 Khóa chính Tenkho VarChar 30 Diadiemkho VarChar 100 Chuthich VarChar 200 Bảng THIETBI Tên trường Kiểu dữ liệu Kích cỡ Khoá MaTB Char 8 Khóa chính TenTB VarChar 30 Donvitinh Char 30 Soluong Float 20 Ngaysx Datetime 15 Noisx VarChar 50 Anh Motahang VarChar 300 Dongia Float 20 Bảng USERNAME Tên trường Kiểu dữ liệu Kích cỡ Khoá MaUser Char 8 Khóa chính TenUser VarChar 30 Password VarChar 30 Ngaylap Datetime 15 Bảng NHOMQUYEN Tên trường Kiểu dữ liệu Kích cỡ Khoá Manhomquyen Char 8 Khóa chính Tennhomquyen VarChar 30 Bảng NHANVIEN Tên trường Kiểu dữ liệu Kích cỡ Khoá MaNV Char 8 Khóa chính TenVN VarChar 30 Ngaysinh Datetime 15 Điachi VarChar 30 Ngaynhan Datetime 15 ĐiệnthoạiNV Int 12 Chucvu Char 30 Bảng PHONGBAN Tên trường Kiểu dữ liệu Kích cỡ Khoá MaPB Char 8 Khóa chính TenPB Varchar 30 Chucnang Varchar 50 Mangquanly Varchar 50 Bảng NGANHANG Tên trường Kiểu dữ liệu Kích cỡ Khoá MaNH Char 8 Khóa chính TenNH Varchar 30 DienthoaiNH Int 12 Bảng DONBANHANG Tên trường Kiểu dữ liệu Kích cỡ Khoá Sodonban Char 8 Khóa chính MaKH VarChar 8 Khóa ngoại MaTB Char 8 Khóa ngoại MaNV Datetime 8 Khóa ngoại Soluong Datetime 15 Ngayban Float 30 Dongia Float 12 Tongtien Int 12 Bảng PHIEUBAOHANH Tên trường Kiểu dữ liệu Kích cỡ Khoá SophieuBH Char 8 Khóa chính MaKH VarChar 8 Khóa ngoại MaNV VarChar 8 Khóa ngoại MaTB VarChar 8 Khóa ngoại Ngaylap Datetime 15 ThoihanBH Float 30 Bảng PHIEUTHU Tên trường Kiểu dữ liệu Kích cỡ Khoá SochungtuKH Char 8 Khóa chính Sodonban Char 8 Khóa ngoại Ngaytanhtoan Datetime 12 Sotien Float 10 Bảng PHIEUNHAPKHO Tên trường Kiểu dữ liệu Kích cỡ Khoá Sophieunhap Char 8 Khóa chính MaKH Char 8 Khóa ngoại MaNV Char 8 Khóa ngoại MaTB Char 8 Khóa ngoại Makho Char 8 Khóa ngoại Soluongnhap Float 20 Ngaynhap Datetime 15 Dongia Float 20 Bảng PHIEUCHI Tên trường Kiểu dữ liệu Kích cỡ Khoá SochungtuNCC Char 30 Khóa chính Sophieunhap Char 8 Khóa ngoại Ngaythanhtoan Datetime 15 Sotien Int 12 Bảng PHIEUXUAT Tên trường Kiểu dữ liệu Kích cỡ Khoá Sophieuxuat Char 8 Khóa chính MaTB Char 8 Khóa ngoại MaNV Char 8 Khóa ngoại Makho Char 8 Khóa ngoại Soluongxuat Float 20 Ngayxuat Datetime 15 Dongia Float 12 Bảng UYNHIEMCHI Tên trường Kiểu dữ liệu Kích cỡ Khoá SophieuUN Char 8 Khóa chính MaNH Char 8 Khóa ngoại MaNV Char 8 Khóa ngoại SotienUN Float 8 NgayUN Datetime 15 LydoUN VarChar 50 Chương IV: CÀI ĐẶT HỆ THỐNG VÀ ĐỀMÔ CHƯƠNG TRÌNH 4.1. Cài đặt chương trình 4.1.1. Cách thức cài đặt chương trình a) Yêu cầu về phần cứng và phần mềm: - Một server cấu hình tối thiểu 128 Ram, 500 Mhz. - Phải có Persional Web Server đối với Window ‘98’ hoặc Internet Information Server (IIS) đối với Window NT, Window XP, Appche với hệ điều hành Unix. - Hệ quản trị cơ sở dữ liệu : MySql. - Trình duyệt Internet Eplorer từ version 4. 0 trở lên. b) Các bước cài đặt như sau: - Cài Windows (winxp) và webserver (IIS). - Chép tập tin *. php, *. html…vào một thư mục riêng. - Thiết lập thư mục ảo cho thư mục trên. c) Hướng dẫn sử dụng: Để server có thể truy xuất cơ sở dữ liệu, trước hết phải khởi động server. Phải đảm bảo là chương trình trên máy server đã được thi hành, việc kết nối vào cơ sở dữ liệu trên server đã được hoàn tất. Người quản trị, muốn vào hệ thống phải đăng nhập đúng password và username. 4. 2. Một số giao diện chương trình Trang chủ: Đăng ký khách hàng: Tìm kiếm thiết bị: Đăng nhập khách hàng: Chọn thiết bị: Chi tiết thiết bị: Xem thiết bị đã chọn: Tra cứu thiết bị công ty cần: Chi tiết thông tin thiết bị cần: Đăng ký nhà cungcấp: Đăng nhập nhà cung cấp: Đăng nhập hệ thống: Thêm thiết bị: Thêm loại thiết bị: Thêm thiết bị cần: Thêm kho: Khách hàng: Nhà cung cấp: KẾT LUẬN Kết quả đạt được Trong quá trình thực hiện đề tài: Em đã tiếp thu được nhiều kiến thức bổ ích cũng như nắm bắt được quá trình và các kỹ năng tạo ra một sản phẩm phần mềm. Hệ thống đã thống nhất và tin học hoá các quy trình hoạt động, các hoạt động nghiệp vụ của một công ty, bao gồm những chức năng chính sau: Cập nhật danh mục dữ liệu. Thực hiện việc tạo và in đơn đặt hàng để gửi đến nhà cung cấp, khách hàng. Cho phép cập nhật các thông tin về mặt hàng, hàng nhập, hàng xuất. Thực hiện việc tạo phiếu nhập, phiếu xuất. Tạo người quản trị ứng dụng và thực hiện việc phân quyền cho người dùng. Ngoài ra chương trình được thiết kế để dễ dàng cho việc mở rộng các chức năng của chương trình. Việc kiểm tra điều kiện nhập dữ liệu của người sử dụng vào hệ thống được thực hiện khá đầy đủ. Hạn chế Trên thực tế, chương trình có độ phức tạp lớn, liên quan đến nhiều quan hệ hàng hoá, nhiều hình thức kinh doanh. Mặc dù đã giải quyết được một số vấn đề cơ bản về các nghiệp vụ của quản lý nhập xuất, nhưng chương trình của em mới thiết kế ở mức độ đơn giản, có tính chuyên nghiệp chưa cao, chưa giải quyết được trọn vẹn những vấn đề nảy sinh trong quá trình quản lý nhập xuất. Hướng phát triển của đề tài Nâng cấp và hoàn chỉnh các chức năng của hệ thống đảm bảo linh hoạt thích hợp để tuỳ biến theo dõi chặt chẽ thực tế quản lý nhập xuất. Nghiên cứu xây dựng thêm một số chức năng mới cho hệ thống như: xử lý các hoạt động khuyến mại, thanh toán qua thẻ tín dụng.... Tăng khả năng bảo mật và truy xuất từ xa. Do thực hiện đề tài trong một khoảng thời gian ngắn, cộng với sự thiếu kinh nghiệm cũng như trình độ của bản thân còn hạn chế, nên đề tài của em chắc chắn còn có nhiều thiếu sót. Em mong nhận được sự chỉ bảo của thầy cô và sự góp ý của các bạn. Em xin chân thành cảm ơn! TÀI LIỆU THAM KHẢO [1]. Phạm Hữu Khang, Xây dựng ứng dụng Web bằng PHP & MySQL, NXB Phương Đông. [2]. Nguyễn Văn Vỵ, Phân tích thiết kế hệ thống, NXB Hà Nội, (2004). [3] Nguyễn Tuệ, Giáo trình nhập môn hệ CSDL, NXB Hà Nội, (2003). [4] Nguyễn Văn Ba, Phân tích và thiết kế hệ thống thông tin, NXB Đại Học Quốc Gia Hà Nội, Hà Nội, (2003). Các trang Web tham khảo: mysql. com/download/ php. net/downloads. php D10 Phiếu xuất kho D13 Phiếu bảo hành D16 Danh sách Username D11 Sổ theo dõi nx hàng D12 Sổ thu chi D7 Hóa đơn bán hàng D15 Báo cáo 2.0 XUẤT HÀNG 1.0 NHẬP HÀNG 3.0 BẢO HÀNH 4.0 BÁO CÁO 5.0 QUẢN TRỊ HỆ THỐNG D4 Phiếu nhập kho D1 Danh mục nhà cung cấp-khách hàng. D8 Thông tin khách hàng D3 Hợp đồng mua bán thiết bị tin học D6 Ủy nhiệm chi D17 Danh sách nhóm quyền D9 Phiếu thu D8 Thông tin khách hàng D14 Biên bản bảo trì-bảo dưỡng thiết bị D2 Danh mục hàng hóa vật tư D3 Hợp đồng mua bán thiết bị tin học D2 Danh mục hàng hóa vật tư D16 Danh sách Username Y/c mua hàng Thông tin hàng Hợp đồng mua Khách hàng Hóa đơn Y/C bảo hành Kết quả Yêu cầu báo cáo Đăng ký user T/t user mới Hình 3.9: Biểu đồ luồng dữ liệu mức 0 Báo cáo Ban lãnh đạo Y/c thay dổi user Kết quả Phiếu chi D5 D12 Sổ thu chi D11 Sổ theo dõi nx hàng D12 Sổ thu chi D11 Sổ theo dõi nx hàng Danh mục nhà cung cấp-khách hàng. D1 Nhà cung cấp

Các file đính kèm theo tài liệu này:

  • docBao cao Chuan.doc
  • pptBao cao - Duy Hien.ppt