fix 10
This commit is contained in:
parent
07ef77935c
commit
a70af4ac2a
22
db/migrations/040_vat_system.sql
Normal file
22
db/migrations/040_vat_system.sql
Normal file
@ -0,0 +1,22 @@
|
||||
-- VAT system migration
|
||||
-- Add vat column to orders
|
||||
ALTER TABLE orders ADD COLUMN vat DECIMAL(10, 3) DEFAULT 0.000 AFTER discount;
|
||||
|
||||
-- Update order_type ENUM to include takeaway
|
||||
ALTER TABLE orders MODIFY COLUMN order_type ENUM('dine-in', 'delivery', 'drive-thru', 'takeaway') DEFAULT 'takeaway';
|
||||
|
||||
-- Add vat_percent to products
|
||||
ALTER TABLE products ADD COLUMN vat_percent DECIMAL(5, 2) DEFAULT 0.00 AFTER price;
|
||||
|
||||
-- Add stock_quantity and promo fields to products
|
||||
ALTER TABLE products ADD COLUMN stock_quantity INT DEFAULT 0;
|
||||
ALTER TABLE products ADD COLUMN promo_discount_percent DECIMAL(5, 2) DEFAULT 0.00;
|
||||
ALTER TABLE products ADD COLUMN promo_date_from DATE DEFAULT NULL;
|
||||
ALTER TABLE products ADD COLUMN promo_date_to DATE DEFAULT NULL;
|
||||
|
||||
-- Add vat fields to order_items
|
||||
ALTER TABLE order_items ADD COLUMN vat_percent DECIMAL(5, 2) DEFAULT 0.00 AFTER unit_price;
|
||||
ALTER TABLE order_items ADD COLUMN vat_amount DECIMAL(10, 3) DEFAULT 0.000 AFTER vat_percent;
|
||||
|
||||
-- Add vat_number to company_settings
|
||||
ALTER TABLE company_settings ADD COLUMN vat_number VARCHAR(50) DEFAULT NULL;
|
||||
@ -1,6 +1,7 @@
|
||||
CREATE TABLE IF NOT EXISTS outlets (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
name_ar VARCHAR(255),
|
||||
address TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
@ -8,6 +9,8 @@ CREATE TABLE IF NOT EXISTS outlets (
|
||||
CREATE TABLE IF NOT EXISTS categories (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
name_ar VARCHAR(255),
|
||||
image_url VARCHAR(255),
|
||||
sort_order INT DEFAULT 0
|
||||
);
|
||||
|
||||
@ -15,10 +18,18 @@ CREATE TABLE IF NOT EXISTS products (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
category_id INT,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
name_ar VARCHAR(255),
|
||||
description TEXT,
|
||||
price DECIMAL(10, 2) NOT NULL,
|
||||
cost_price DECIMAL(10, 2) DEFAULT 0.00,
|
||||
vat_percent DECIMAL(5, 2) DEFAULT 0.00,
|
||||
stock_quantity INT DEFAULT 0,
|
||||
promo_discount_percent DECIMAL(5, 2) DEFAULT 0.00,
|
||||
promo_date_from DATE DEFAULT NULL,
|
||||
promo_date_to DATE DEFAULT NULL,
|
||||
image_url VARCHAR(255),
|
||||
is_loyalty TINYINT(1) DEFAULT 0,
|
||||
is_deleted TINYINT(1) DEFAULT 0,
|
||||
FOREIGN KEY (category_id) REFERENCES categories(id)
|
||||
);
|
||||
|
||||
@ -26,7 +37,9 @@ CREATE TABLE IF NOT EXISTS product_variants (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
product_id INT,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
name_ar VARCHAR(255),
|
||||
price_adjustment DECIMAL(10, 2) DEFAULT 0.00,
|
||||
is_deleted TINYINT(1) DEFAULT 0,
|
||||
FOREIGN KEY (product_id) REFERENCES products(id)
|
||||
);
|
||||
|
||||
@ -47,14 +60,27 @@ CREATE TABLE IF NOT EXISTS tables (
|
||||
FOREIGN KEY (area_id) REFERENCES areas(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS payment_types (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
name_ar VARCHAR(255),
|
||||
is_active TINYINT(1) DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS orders (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
outlet_id INT,
|
||||
user_id INT,
|
||||
customer_id INT,
|
||||
payment_type_id INT,
|
||||
table_id INT,
|
||||
table_number VARCHAR(50),
|
||||
order_type ENUM('dine-in', 'delivery', 'drive-thru') DEFAULT 'dine-in',
|
||||
order_type ENUM('dine-in', 'delivery', 'drive-thru', 'takeaway') DEFAULT 'takeaway',
|
||||
status ENUM('pending', 'preparing', 'ready', 'completed', 'cancelled') DEFAULT 'pending',
|
||||
total_amount DECIMAL(10, 2) NOT NULL,
|
||||
discount DECIMAL(10, 2) DEFAULT 0.00,
|
||||
vat DECIMAL(10, 3) DEFAULT 0.000,
|
||||
commission_amount DECIMAL(10, 2) DEFAULT 0.00,
|
||||
customer_name VARCHAR(255),
|
||||
customer_phone VARCHAR(50),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
@ -66,9 +92,13 @@ CREATE TABLE IF NOT EXISTS order_items (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
order_id INT,
|
||||
product_id INT,
|
||||
product_name VARCHAR(255),
|
||||
variant_id INT,
|
||||
variant_name VARCHAR(255),
|
||||
quantity INT NOT NULL,
|
||||
unit_price DECIMAL(10, 2) NOT NULL,
|
||||
vat_percent DECIMAL(5, 2) DEFAULT 0.00,
|
||||
vat_amount DECIMAL(10, 3) DEFAULT 0.000,
|
||||
FOREIGN KEY (order_id) REFERENCES orders(id),
|
||||
FOREIGN KEY (product_id) REFERENCES products(id)
|
||||
);
|
||||
@ -77,7 +107,10 @@ CREATE TABLE IF NOT EXISTS order_items (
|
||||
CREATE TABLE IF NOT EXISTS loyalty_customers (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255),
|
||||
phone VARCHAR(50),
|
||||
email VARCHAR(255) UNIQUE,
|
||||
points INT DEFAULT 0,
|
||||
total_redemptions INT DEFAULT 0,
|
||||
address TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user