Calculate script optimizations, reset metrics script fixes, calculate script fixes

This commit is contained in:
2025-01-16 19:48:08 -05:00
parent c9aefdc756
commit 87dc6b27f4
4 changed files with 946 additions and 639 deletions

View File

@@ -58,7 +58,7 @@ CREATE TABLE IF NOT EXISTS product_metrics (
abc_class CHAR(1),
stock_status VARCHAR(20),
-- Turnover metrics
turnover_rate DECIMAL(10,3),
turnover_rate DECIMAL(12,3),
-- Lead time metrics
current_lead_time INT,
target_lead_time INT,
@@ -68,7 +68,10 @@ CREATE TABLE IF NOT EXISTS product_metrics (
INDEX idx_metrics_revenue (total_revenue),
INDEX idx_metrics_stock_status (stock_status),
INDEX idx_metrics_lead_time (lead_time_status),
INDEX idx_metrics_turnover (turnover_rate)
INDEX idx_metrics_turnover (turnover_rate),
INDEX idx_metrics_last_calculated (last_calculated_at),
INDEX idx_metrics_abc (abc_class),
INDEX idx_metrics_sales (daily_sales_avg, weekly_sales_avg, monthly_sales_avg)
);
-- New table for time-based aggregates
@@ -117,7 +120,9 @@ CREATE TABLE IF NOT EXISTS vendor_metrics (
PRIMARY KEY (vendor),
FOREIGN KEY (vendor) REFERENCES vendor_details(vendor) ON DELETE CASCADE,
INDEX idx_vendor_performance (on_time_delivery_rate),
INDEX idx_vendor_status (status)
INDEX idx_vendor_status (status),
INDEX idx_metrics_last_calculated (last_calculated_at),
INDEX idx_vendor_metrics_orders (total_orders, total_late_orders)
);
-- New table for category metrics
@@ -130,14 +135,16 @@ CREATE TABLE IF NOT EXISTS category_metrics (
-- Financial metrics
total_value DECIMAL(10,3) DEFAULT 0,
avg_margin DECIMAL(5,2),
turnover_rate DECIMAL(10,3),
turnover_rate DECIMAL(12,3),
growth_rate DECIMAL(5,2),
-- Status
status VARCHAR(20) DEFAULT 'active',
PRIMARY KEY (category_id),
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE,
INDEX idx_category_status (status),
INDEX idx_category_growth (growth_rate)
INDEX idx_category_growth (growth_rate),
INDEX idx_metrics_last_calculated (last_calculated_at),
INDEX idx_category_metrics_products (product_count, active_products)
);
-- New table for vendor time-based metrics
@@ -170,7 +177,7 @@ CREATE TABLE IF NOT EXISTS category_time_metrics (
total_value DECIMAL(10,3) DEFAULT 0,
total_revenue DECIMAL(10,3) DEFAULT 0,
avg_margin DECIMAL(5,2),
turnover_rate DECIMAL(10,3),
turnover_rate DECIMAL(12,3),
PRIMARY KEY (category_id, year, month),
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE,
INDEX idx_category_date (year, month)