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!
122 lines
5.6 KiB
SQL
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
|
|
-- ===================================================== |