庫存管理對任何企業而言都至關重要。庫存報表是幫助企業管理庫存情況、做出調整決策的重要工具。通過這些報表,企業能夠掌握每個產品的庫存量、銷售情況及庫存變動趨勢,從而優化業務決策。本文將展示如何使用PHP編寫庫存管理系統中的庫存報表生成功能,並提供相關的代碼示例。
在實現庫存報表功能之前,首先需要設計適當的數據庫結構以存儲庫存相關數據。以下是一個簡單的數據庫設計示例:
用於存儲產品信息,包括產品編號、名稱、進貨價、銷售價等字段。
CREATE TABLE products ( id INT(11) AUTO_INCREMENT PRIMARY KEY, product_code VARCHAR(50) NOT NULL, product_name VARCHAR(255) NOT NULL, purchase_price DECIMAL(10,2) NOT NULL, selling_price DECIMAL(10,2) NOT NULL );
用於記錄庫存變動,包括產品編號、變動類型(進貨或銷售)、變動數量、變動時間等字段。
CREATE TABLE stock_records ( id INT(11) AUTO_INCREMENT PRIMARY KEY, product_id INT(11) NOT NULL, change_type ENUM('purchase', 'sale') NOT NULL, change_quantity INT(11) NOT NULL, change_date DATE NOT NULL, FOREIGN KEY (product_id) REFERENCES products(id) );
用於記錄銷售數據,包括產品編號、銷售數量、銷售日期等字段。
CREATE TABLE sales_records ( id INT(11) AUTO_INCREMENT PRIMARY KEY, product_id INT(11) NOT NULL, sale_quantity INT(11) NOT NULL, sale_date DATE NOT NULL, FOREIGN KEY (product_id) REFERENCES products(id) );
接下來,我們將編寫PHP代碼來生成庫存報表。代碼的主要邏輯是查詢數據庫中的相關數據,並根據需要生成報表。以下是簡單的代碼示例:
<?php // 連接數據庫 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 查詢產品信息和庫存變動記錄 $query = 'SELECT p.product_code AS code, p.product_name AS name, p.purchase_price AS purchase, s.change_type AS type, s.change_quantity AS quantity, s.change_date AS date FROM products p JOIN stock_records s ON p.id = s.product_id ORDER BY p.product_code ASC, s.change_date DESC'; $result = mysqli_query($conn, $query); // 初始化報表數據 $report = array(); // 生成報表數據 while ($row = mysqli_fetch_assoc($result)) { $code = $row['code']; $name = $row['name']; $purchase = $row['purchase']; $type = $row['type']; $quantity = $row['quantity']; $date = $row['date']; if (!isset($report[$code])) { $report[$code] = array( 'name' => $name, 'purchase' => $purchase, 'stock' => 0, 'sales' => 0 ); } if ($type == 'purchase') { $report[$code]['stock'] += $quantity; } elseif ($type == 'sale') { $report[$code]['stock'] -= $quantity; $report[$code]['sales'] += $quantity; } $report[$code]['date'] = $date; } // 輸出報表foreach ($report as $code => $data) { echo '產品編號:' . $code . '<br> '; echo '產品名稱:' . $data['name'] . '<br> '; echo '進貨價:' . $data['purchase'] . '<br> '; echo '庫存量:' . $data['stock'] . '<br> '; echo '銷售量:' . $data['sales'] . '<br> '; echo '最後變動日期:' . $data['date'] . '<br><br> '; } // 關閉數據庫連接mysqli_close($conn); ?>
通過以上示例代碼,我們展示瞭如何使用PHP編寫庫存管理系統中的庫存報表生成功能。當然,實際應用中可能需要根據不同需求對代碼進行優化和擴展。希望本文能夠幫助您理解如何使用PHP開發庫存報表功能,並能在實際開發中得到有效應用。