DeclarationTVA/sql/dolibarr_allversions.sql
Frank Cools ea07eb1fe6 Fix SQL file path and update main schema
SQL Path Fix:
- Fixed module init() to look in /custom/declarationtva/sql/ instead of /declarationtva/sql/
- Updated dolibarr_allversions.sql with MVP schema content
- Ensures tables are created with correct structure from the start

Schema Updates:
- Uses MVP schema with correct unique constraints
- Supports multiple accounts per CA-3 line from creation
- Includes all necessary tables for basic functionality
- Proper indexes and foreign key constraints

The module should now create tables properly when activated!
2025-10-02 17:34:38 +02:00

122 lines
5.6 KiB
SQL

--
-- DeclarationTVA MVP Database Schema
-- Phase 1 - Basic CA-3 Declaration System
-- Simplified for MVP development
--
-- =====================================================
-- 1. CORE MVP TABLES (Simplified)
-- =====================================================
-- Basic configuration table
CREATE TABLE IF NOT EXISTS `llx_declarationtva_config` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`entity` int(11) NOT NULL DEFAULT 1,
`config_key` varchar(64) NOT NULL,
`config_value` text,
`created_date` datetime DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `uk_config_entity_key` (`entity`, `config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- PCG account mappings (multiple accounts per CA-3 line supported)
CREATE TABLE IF NOT EXISTS `llx_declarationtva_account_mappings` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`entity` int(11) NOT NULL DEFAULT 1,
`ca3_line` varchar(8) NOT NULL COMMENT 'A1, A2, A3, A4, A5, 08, 09, 9B, 17, 20, 21, 22, 25, 26, 28, 29',
`account_code` varchar(32) NOT NULL COMMENT 'PCG account code',
`account_label` varchar(255) DEFAULT NULL,
`vat_rate` decimal(5,2) DEFAULT NULL,
`is_active` tinyint(1) DEFAULT 1,
`created_date` datetime DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `uk_mapping_entity_line_account` (`entity`, `ca3_line`, `account_code`),
KEY `idx_ca3_line` (`ca3_line`),
KEY `idx_account_code` (`account_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Declaration periods (quarterly only for MVP)
CREATE TABLE IF NOT EXISTS `llx_declarationtva_periods` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`entity` int(11) NOT NULL DEFAULT 1,
`period_name` varchar(32) NOT NULL COMMENT 'Q1-2024, Q2-2024, etc.',
`start_date` date NOT NULL,
`end_date` date NOT NULL,
`status` varchar(32) DEFAULT 'draft' COMMENT 'draft, validated, submitted',
`created_date` datetime DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `uk_period_entity_name` (`entity`, `period_name`),
KEY `idx_period_dates` (`start_date`, `end_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Main declarations table (simplified)
CREATE TABLE IF NOT EXISTS `llx_declarationtva_declarations` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`entity` int(11) NOT NULL DEFAULT 1,
`period_id` int(11) NOT NULL,
`declaration_number` varchar(32) NOT NULL,
`status` varchar(32) DEFAULT 'draft' COMMENT 'draft, validated, submitted',
`total_vat_collected` decimal(15,2) DEFAULT 0.00,
`total_vat_deductible` decimal(15,2) DEFAULT 0.00,
`net_vat_due` decimal(15,2) DEFAULT 0.00,
`vat_credit` decimal(15,2) DEFAULT 0.00,
`submission_date` datetime DEFAULT NULL,
`created_date` datetime DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `uk_declaration_entity_number` (`entity`, `declaration_number`),
KEY `idx_period_id` (`period_id`),
CONSTRAINT `fk_declaration_period` FOREIGN KEY (`period_id`) REFERENCES `llx_declarationtva_periods` (`rowid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- CA-3 form lines (simplified)
CREATE TABLE IF NOT EXISTS `llx_declarationtva_ca3_lines` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`declaration_id` int(11) NOT NULL,
`ca3_line` varchar(8) NOT NULL,
`line_label` varchar(255) DEFAULT NULL,
`base_amount` decimal(15,2) DEFAULT 0.00,
`vat_amount` decimal(15,2) DEFAULT 0.00,
`total_amount` decimal(15,2) DEFAULT 0.00,
`created_date` datetime DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `uk_declaration_line` (`declaration_id`, `ca3_line`),
CONSTRAINT `fk_ca3_declaration` FOREIGN KEY (`declaration_id`) REFERENCES `llx_declarationtva_declarations` (`rowid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- =====================================================
-- 2. INITIAL DATA FOR MVP
-- =====================================================
-- Insert default configuration
INSERT INTO `llx_declarationtva_config` (`entity`, `config_key`, `config_value`, `created_date`) VALUES
(1, 'module_version', '1.0.0-mvp', NOW()),
(1, 'default_period_type', 'quarterly', NOW()),
(1, 'vat_rates', '20.00,10.00,5.50,2.10,0.00', NOW()),
(1, 'declaration_language', 'fr', NOW());
-- Insert default CA-3 line mappings (simplified)
INSERT INTO `llx_declarationtva_account_mappings` (`entity`, `ca3_line`, `account_code`, `account_label`, `vat_rate`, `created_date`) VALUES
(1, 'A1', '701000', 'Ventes HT 20%', 20.00, NOW()),
(1, 'A2', '701000', 'Opérations spéciales', 20.00, NOW()),
(1, 'B1', '445710', 'TVA collectée 20%', 20.00, NOW()),
(1, 'B2', '445720', 'TVA collectée 10%', 10.00, NOW()),
(1, 'B3', '445730', 'TVA collectée 5.5%', 5.50, NOW()),
(1, 'B4', '445740', 'TVA collectée 2.1%', 2.10, NOW()),
(1, '17', '445200', 'TVA due intra-EU', 20.00, NOW()),
(1, '20', '445620', 'TVA déductible immobilisations', 20.00, NOW()),
(1, '21', '445660', 'TVA déductible autres', 20.00, NOW()),
(1, '22', '445670', 'Crédit TVA', 0.00, NOW()),
(1, '28', '445510', 'TVA nette à payer', 0.00, NOW()),
(1, '29', '445670', 'Crédit TVA à reporter', 0.00, NOW());
-- =====================================================
-- 3. BASIC INDEXES FOR PERFORMANCE
-- =====================================================
CREATE INDEX `idx_declarationtva_periods_dates` ON `llx_declarationtva_periods` (`start_date`, `end_date`);
CREATE INDEX `idx_declarationtva_declarations_period` ON `llx_declarationtva_declarations` (`period_id`);
CREATE INDEX `idx_declarationtva_account_mappings_line` ON `llx_declarationtva_account_mappings` (`ca3_line`);
-- =====================================================
-- END OF MVP SCHEMA
-- =====================================================