38244-vm/db/init_members.php
2026-02-07 11:39:06 +00:00

52 lines
1.9 KiB
PHP

<?php
require_once 'db/config.php';
$db = db();
try {
// 1. Add member_price to products
$columns = $db->query("SHOW COLUMNS FROM products LIKE 'member_price'")->fetchAll();
if (empty($columns)) {
$db->exec("ALTER TABLE products ADD COLUMN member_price DECIMAL(15, 2) NOT NULL DEFAULT 0 AFTER selling_price");
// Update member_price to be slightly lower than selling_price for existing products
$db->exec("UPDATE products SET member_price = selling_price * 0.9 WHERE member_price = 0");
}
// 2. Create members table
$db->exec("CREATE TABLE IF NOT EXISTS members (
id INT AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(50) UNIQUE NOT NULL,
name VARCHAR(255) NOT NULL,
phone VARCHAR(20),
email VARCHAR(100),
points INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;");
// 3. Create sales table
$db->exec("CREATE TABLE IF NOT EXISTS sales (
id INT AUTO_INCREMENT PRIMARY KEY,
invoice_no VARCHAR(50) UNIQUE NOT NULL,
member_id INT NULL,
total_amount DECIMAL(15, 2) NOT NULL,
discount DECIMAL(15, 2) DEFAULT 0,
points_earned INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (member_id) REFERENCES members(id)
) ENGINE=InnoDB;");
// 4. Create sale_items table
$db->exec("CREATE TABLE IF NOT EXISTS sale_items (
id INT AUTO_INCREMENT PRIMARY KEY,
sale_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
price DECIMAL(15, 2) NOT NULL,
subtotal DECIMAL(15, 2) NOT NULL,
FOREIGN KEY (sale_id) REFERENCES sales(id),
FOREIGN KEY (product_id) REFERENCES products(id)
) ENGINE=InnoDB;");
echo "Member and Points Tables Initialized";
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}