- Kolorowe badge'e statusow dostawy w tabelach paczek (show.php + prepare.php) - Link sledzenia z carrier detection (InPost, Apaczka, Orlen, Allegro, Google fallback) - Sekcja Status dostawy w boksie Platnosc i wysylka - Ustawienie interwalu trackingu crona (5-120 min) w zakladce Ustawienia - Tekstowe mapowania statusow Apaczka API (NEW, CONFIRMED, etc.) - Fix: use-statements ApaczkaShipmentService (pre-existing bug) - Fix: pickup date normalization (next day po 16:00) - Fix: przycisk Pobierz etykiete (POST zamiast link do prepare) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
33 lines
1.6 KiB
SQL
33 lines
1.6 KiB
SQL
-- Migration: Add delivery tracking columns to shipment_packages
|
|
-- Phase 27: Shipment Tracking Backend
|
|
|
|
-- Idempotent: skip if columns already exist
|
|
SET @col_exists = (SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'shipment_packages' AND COLUMN_NAME = 'delivery_status');
|
|
|
|
SET @sql_add = IF(@col_exists = 0,
|
|
'ALTER TABLE shipment_packages
|
|
ADD COLUMN delivery_status VARCHAR(32) NOT NULL DEFAULT ''unknown'' AFTER status,
|
|
ADD COLUMN delivery_status_raw VARCHAR(128) NULL AFTER delivery_status,
|
|
ADD COLUMN delivery_status_updated_at DATETIME NULL AFTER delivery_status_raw',
|
|
'SELECT 1');
|
|
PREPARE stmt FROM @sql_add;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- Add index (idempotent)
|
|
SET @idx_exists = (SELECT COUNT(*) FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'shipment_packages' AND INDEX_NAME = 'idx_delivery_status');
|
|
|
|
SET @sql_idx = IF(@idx_exists = 0,
|
|
'ALTER TABLE shipment_packages ADD INDEX idx_delivery_status (delivery_status)',
|
|
'SELECT 1');
|
|
PREPARE stmt FROM @sql_idx;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- Set initial delivery_status for existing packages based on current status
|
|
-- label_ready = etykieta gotowa, NIE doręczona — ustawiamy confirmed (tracking cron zaktualizuje)
|
|
UPDATE shipment_packages SET delivery_status = 'confirmed' WHERE status = 'label_ready' AND delivery_status = 'unknown';
|
|
UPDATE shipment_packages SET delivery_status = 'created' WHERE status = 'created' AND provider != 'manual' AND delivery_status = 'unknown';
|