| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543 |
- CREATE DATABASE IF NOT EXISTS inventory_db;
- USE inventory_db;
- CREATE TABLE IF NOT EXISTS items (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- name VARCHAR(255) NOT NULL,
- description TEXT,
- serial_number VARCHAR(100) NULL,
- picture VARCHAR(255) NULL,
- quantity INT(11) NOT NULL DEFAULT 0,
- price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- );
- CREATE TABLE IF NOT EXISTS rental_prices (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- item_id INT(11) NOT NULL,
- client_id INT(11) NULL,
- start_date DATE NOT NULL,
- end_date DATE NOT NULL,
- daily_price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (item_id) REFERENCES items(id) ON DELETE CASCADE,
- FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE SET NULL,
- INDEX idx_item_dates (item_id, start_date, end_date)
- );
- CREATE TABLE IF NOT EXISTS attachments (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- item_id INT(11) NOT NULL,
- filename VARCHAR(255) NOT NULL,
- original_name VARCHAR(255) NOT NULL,
- file_type ENUM('receipt', 'warranty', 'other') NOT NULL DEFAULT 'other',
- file_path VARCHAR(255) NOT NULL,
- file_size INT(11) NOT NULL,
- mime_type VARCHAR(100) NOT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (item_id) REFERENCES items(id) ON DELETE CASCADE,
- INDEX idx_item_type (item_id, file_type)
- );
- CREATE TABLE IF NOT EXISTS clients (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- company_name VARCHAR(255) NULL,
- y_tunnus VARCHAR(255) NULL,
- first_name VARCHAR(100) NOT NULL,
- last_name VARCHAR(100) NOT NULL,
- email VARCHAR(255) NOT NULL UNIQUE,
- phone VARCHAR(20) NULL,
- address VARCHAR(255) NULL,
- city VARCHAR(100) NULL,
- state VARCHAR(100) NULL,
- postal_code VARCHAR(20) NULL,
- country VARCHAR(100) NULL,
- notes TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_email (email),
- INDEX idx_name (last_name, first_name),
- INDEX idx_y_tunnus (y_tunnus)
- );
- CREATE TABLE IF NOT EXISTS contact_persons (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- client_id INT(11) NOT NULL,
- first_name VARCHAR(100) NOT NULL,
- last_name VARCHAR(100) NOT NULL,
- email VARCHAR(255) NULL,
- phone VARCHAR(20) NULL,
- position VARCHAR(100) NULL,
- is_primary BOOLEAN DEFAULT FALSE,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE CASCADE,
- INDEX idx_client_primary (client_id, is_primary),
- INDEX idx_name (last_name, first_name)
- );
- CREATE TABLE IF NOT EXISTS invoices (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- client_id INT(11) NOT NULL,
- invoice_number VARCHAR(50) NOT NULL UNIQUE,
- issue_date DATE NOT NULL,
- due_date DATE NOT NULL,
- status ENUM('draft', 'sent', 'paid', 'overdue', 'cancelled') DEFAULT 'draft',
- subtotal DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- tax_amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- total_amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- notes TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE RESTRICT,
- INDEX idx_client_status (client_id, status),
- INDEX idx_invoice_number (invoice_number),
- INDEX idx_due_date (due_date)
- );
- CREATE TABLE IF NOT EXISTS invoice_items (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- invoice_id INT(11) NOT NULL,
- item_id INT(11) NOT NULL,
- description VARCHAR(255) NOT NULL,
- quantity DECIMAL(10,2) NOT NULL DEFAULT 1.00,
- unit_price DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- line_total DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (invoice_id) REFERENCES invoices(id) ON DELETE CASCADE,
- FOREIGN KEY (item_id) REFERENCES items(id) ON DELETE RESTRICT,
- INDEX idx_invoice (invoice_id),
- INDEX idx_item (item_id)
- );
- CREATE TABLE IF NOT EXISTS payments (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- invoice_id INT(11) NULL,
- client_id INT(11) NOT NULL,
- payment_date DATE NOT NULL,
- amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,
- payment_method ENUM('cash', 'check', 'credit_card', 'bank_transfer', 'other') DEFAULT 'cash',
- reference_number VARCHAR(50) NULL,
- notes TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (invoice_id) REFERENCES invoices(id) ON DELETE SET NULL,
- FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE RESTRICT,
- INDEX idx_invoice (invoice_id),
- INDEX idx_client (client_id),
- INDEX idx_payment_date (payment_date)
- );
- CREATE TABLE IF NOT EXISTS chart_of_accounts (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- account_number VARCHAR(20) NOT NULL UNIQUE,
- account_name VARCHAR(255) NOT NULL,
- account_type ENUM('asset', 'liability', 'equity', 'revenue', 'expense') NOT NULL,
- parent_id INT(11) NULL,
- description TEXT NULL,
- opening_balance DECIMAL(10,2) DEFAULT 0.00,
- current_balance DECIMAL(10,2) DEFAULT 0.00,
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (parent_id) REFERENCES chart_of_accounts(id) ON DELETE SET NULL,
- INDEX idx_account_type (account_type),
- INDEX idx_parent (parent_id),
- INDEX idx_account_number (account_number)
- );
- CREATE TABLE IF NOT EXISTS journal_entries (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- entry_number VARCHAR(50) NOT NULL UNIQUE,
- entry_date DATE NOT NULL,
- description TEXT NULL,
- reference_number VARCHAR(50) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_entry_date (entry_date),
- INDEX idx_entry_number (entry_number)
- );
- CREATE TABLE IF NOT EXISTS account_transactions (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- journal_entry_id INT(11) NOT NULL,
- account_id INT(11) NOT NULL,
- debit_amount DECIMAL(10,2) DEFAULT 0.00,
- credit_amount DECIMAL(10,2) DEFAULT 0.00,
- description TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (journal_entry_id) REFERENCES journal_entries(id) ON DELETE CASCADE,
- FOREIGN KEY (account_id) REFERENCES chart_of_accounts(id) ON DELETE RESTRICT,
- INDEX idx_journal_entry (journal_entry_id),
- INDEX idx_account (account_id),
- INDEX idx_debit_credit (debit_amount, credit_amount)
- );
- CREATE TABLE IF NOT EXISTS users (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- email VARCHAR(255) NOT NULL UNIQUE,
- password_hash VARCHAR(255) NOT NULL,
- first_name VARCHAR(100) NOT NULL,
- last_name VARCHAR(100) NOT NULL,
- role ENUM('admin', 'manager', 'user') DEFAULT 'user',
- is_active BOOLEAN DEFAULT TRUE,
- last_login TIMESTAMP NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_username (username),
- INDEX idx_email (email),
- INDEX idx_role (role),
- INDEX idx_active (is_active)
- );
- CREATE TABLE IF NOT EXISTS projects (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- customer_id INT(11) NOT NULL,
- project_name VARCHAR(255) NOT NULL,
- description TEXT NULL,
- status ENUM('planning', 'in_progress', 'completed', 'on_hold', 'cancelled') DEFAULT 'planning',
- start_date DATE NULL,
- end_date DATE NULL,
- budget DECIMAL(10,2) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (customer_id) REFERENCES clients(id) ON DELETE CASCADE,
- INDEX idx_customer (customer_id),
- INDEX idx_status (status),
- INDEX idx_dates (start_date, end_date)
- );
- CREATE TABLE IF NOT EXISTS subprojects (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- project_id INT(11) NOT NULL,
- subproject_name VARCHAR(255) NOT NULL,
- description TEXT NULL,
- status ENUM('planning', 'in_progress', 'completed', 'on_hold', 'cancelled') DEFAULT 'planning',
- start_date DATE NULL,
- end_date DATE NULL,
- budget DECIMAL(10,2) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
- INDEX idx_project (project_id),
- INDEX idx_status (status),
- INDEX idx_dates (start_date, end_date)
- );
- -- Accounting tables
- CREATE TABLE IF NOT EXISTS accounting_entries (
- id INT AUTO_INCREMENT PRIMARY KEY,
- entry_date DATE NOT NULL,
- description TEXT NOT NULL,
- entry_type ENUM('Tulo', 'Kulu') NOT NULL,
- category VARCHAR(100),
- tax_free_amount DECIMAL(12,2) DEFAULT 0.00,
- vat_percentage DECIMAL(5,2) DEFAULT 0.00,
- vat_25_5 DECIMAL(12,2) DEFAULT 0.00,
- vat_14 DECIMAL(12,2) DEFAULT 0.00,
- vat_10 DECIMAL(12,2) DEFAULT 0.00,
- total_amount DECIMAL(12,2) DEFAULT 0.00,
- net_amount DECIMAL(12,2) DEFAULT 0.00,
- vat_amount DECIMAL(12,2) DEFAULT 0.00,
- reference_number VARCHAR(50),
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_entry_date (entry_date),
- INDEX idx_entry_type (entry_type),
- INDEX idx_category (category)
- );
- CREATE TABLE IF NOT EXISTS accounting_categories (
- id INT AUTO_INCREMENT PRIMARY KEY,
- category_code VARCHAR(20) NOT NULL,
- category_name VARCHAR(200) NOT NULL,
- category_type ENUM('Tulo', 'Kulu') NOT NULL,
- vat_percentage DECIMAL(5,2) DEFAULT 0.00,
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- UNIQUE KEY unique_category_code (category_code)
- );
- CREATE TABLE IF NOT EXISTS accounting_category_group_names (
- id INT AUTO_INCREMENT PRIMARY KEY,
- category_group_code VARCHAR(3) NOT NULL,
- category_group_name VARCHAR(200) NOT NULL,
- description TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY unique_category_group_code (category_group_code)
- );
- CREATE TABLE IF NOT EXISTS monthly_summaries (
- id INT AUTO_INCREMENT PRIMARY KEY,
- year INT NOT NULL,
- month INT NOT NULL,
- total_income DECIMAL(12,2) DEFAULT 0.00,
- total_expenses DECIMAL(12,2) DEFAULT 0.00,
- net_result DECIMAL(12,2) DEFAULT 0.00,
- vat_payable DECIMAL(12,2) DEFAULT 0.00,
- vat_deductible DECIMAL(12,2) DEFAULT 0.00,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY unique_year_month (year, month)
- );
- -- Additional tables for project management
- CREATE TABLE IF NOT EXISTS costs (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- description VARCHAR(255) NOT NULL,
- amount DECIMAL(10,2) NOT NULL,
- cost_date DATE NOT NULL,
- category VARCHAR(100) NOT NULL DEFAULT 'other',
- supplier VARCHAR(255) NULL,
- invoice_number VARCHAR(100) NULL,
- account_id INT(11) NULL,
- payment_method VARCHAR(50) NULL,
- receipt_number VARCHAR(100) NULL,
- notes TEXT NULL,
- created_by INT(11) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_cost_date (cost_date),
- INDEX idx_category (category),
- INDEX idx_supplier (supplier),
- INDEX idx_account_id (account_id),
- INDEX idx_created_by (created_by)
- );
- CREATE TABLE IF NOT EXISTS timers (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- task_id INT(11) NULL,
- user_id INT(11) NOT NULL,
- start_time TIMESTAMP NULL,
- end_time TIMESTAMP NULL,
- duration VARCHAR(8) NULL,
- description TEXT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_task_id (task_id),
- INDEX idx_user_id (user_id),
- INDEX idx_start_time (start_time)
- );
- CREATE TABLE IF NOT EXISTS expense_categories (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- category_code VARCHAR(50) NOT NULL UNIQUE,
- category_name VARCHAR(200) NOT NULL,
- parent_id INT(11) NULL,
- description TEXT NULL,
- is_active TINYINT(1) DEFAULT 1,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_parent_id (parent_id)
- );
- CREATE TABLE IF NOT EXISTS income_categories (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- category_code VARCHAR(50) NOT NULL UNIQUE,
- category_name VARCHAR(200) NOT NULL,
- parent_id INT(11) NULL,
- description TEXT NULL,
- is_active TINYINT(1) DEFAULT 1,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_parent_id (parent_id)
- );
- CREATE TABLE IF NOT EXISTS incomes (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- description VARCHAR(255) NOT NULL,
- amount DECIMAL(10,2) NOT NULL,
- income_date DATE NOT NULL,
- category VARCHAR(100) NOT NULL DEFAULT 'other',
- client_id INT(11) NULL,
- invoice_id INT(11) NULL,
- account_id INT(11) NULL,
- payment_method VARCHAR(50) NULL,
- reference_number VARCHAR(100) NULL,
- notes TEXT NULL,
- created_by INT(11) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_income_date (income_date),
- INDEX idx_category (category),
- INDEX idx_client_id (client_id),
- INDEX idx_invoice_id (invoice_id),
- INDEX idx_account_id (account_id),
- INDEX idx_created_by (created_by)
- );
- CREATE TABLE IF NOT EXISTS work_hours (
- id INT(11) AUTO_INCREMENT PRIMARY KEY,
- task_id INT(11) NOT NULL,
- user_id INT(11) NOT NULL,
- date DATE NOT NULL,
- hours DECIMAL(5,2) NOT NULL,
- description TEXT NULL,
- rate DECIMAL(10,2) NULL,
- total_amount DECIMAL(10,2) NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_task_id (task_id),
- INDEX idx_user_id (user_id),
- INDEX idx_date (date)
- );
- -- Insert wavium admin user
- INSERT INTO users (username, email, password_hash, first_name, last_name, role, is_active) VALUES
- ('admin', 'admin@inventory.com', '$2y$10$lIA8wG6lU0l93lacHNBS0uSGSfwqaceQpGEupzSatNcN7oG/yowC2', 'Admin', 'User', 'admin', TRUE);
- -- Insert expense categories data
- INSERT IGNORE INTO expense_categories (category_code, category_name, parent_id, description, is_active) VALUES
- ('333', 'Ostot ja ulkopuoliset palvelut', NULL, 'Purchases and external services', 1),
- ('334', 'Henkilöstökulut', NULL, 'Personnel costs', 1),
- ('335', 'Poistot, edustuskulut ja vuokrat', NULL, 'Depreciation, representation and rental costs', 1),
- ('336', 'Muut vähennyskelpoiset kulut', NULL, 'Other deductible expenses', 1),
- ('337', 'Rahoituskulut', NULL, 'Financing costs', 1),
- ('341', 'Varausten muutokset', NULL, 'Asset changes', 1),
- ('343', 'Varausten myynnit', NULL, 'Asset sales', 1),
- ('344', 'Matkakulut', NULL, 'Travel expenses', 1),
- ('344 Ajoneuvo', 'Matkakulut - Kulkuneuvo', NULL, 'Vehicle travel expenses', 1),
- ('344 Kokous', 'Matkakulut - Kokous', NULL, 'Meeting travel expenses', 0),
- ('344 Matka-auto', 'Matkakulut - Auto', NULL, 'Car travel expenses', 1),
- ('344 Muu', 'Matkakulut - Muu', NULL, 'Other travel expenses', 1),
- ('346', 'Muut kulut', NULL, 'Other expenses', 1),
- ('349', 'Poistot', NULL, 'Depreciation', 1),
- ('353', 'Varainsiirrot', NULL, 'Asset transfers', 1),
- ('354', 'Vähennyskelvottomat kulut', NULL, 'Non-deductible expenses', 1),
- ('365', 'Vakuutukset', NULL, 'Insurance', 1),
- ('366', 'Verot ja maksut', NULL, 'Taxes and fees', 1),
- ('367', 'Yhtiölainat ja muut rahoituskulut', NULL, 'Company loans and other financing costs', 1);
- -- Insert income categories data
- INSERT IGNORE INTO income_categories (category_code, category_name, parent_id, description, is_active) VALUES
- ('300', 'Myynti - EU', NULL, 'Sales - EU', 1),
- ('300 - 255', 'Myynti - EU 25,5%', NULL, 'Sales - EU 25,5%', 1),
- ('301', 'Myynti - Muut maat', NULL, 'Sales - Other countries', 1),
- ('302', 'Myynti - Käänteinen vero', NULL, 'Sales - Reverse VAT', 1),
- ('303', 'Myynti - Suomi 0%', NULL, 'Sales - Finland 0%', 1),
- ('303 - 255', 'Myynti - Suomi 25,5%', NULL, 'Sales - Finland 25,5%', 1),
- ('308', 'Myyntitavarat', NULL, 'Sales of fixed assets', 1),
- ('309', 'Osuuskorvaukset', NULL, 'Share compensation', 1),
- ('310', 'Korkotulot ja muut rahoitustuotot', NULL, 'Interest income and other financial income', 1),
- ('311', 'Voitonjako', NULL, 'Profit distribution', 1),
- ('312', 'Sijoitustoiminnan tuotot', NULL, 'Investment income', 1),
- ('313', 'Apurahat ja muut avustukset', NULL, 'Grants and other subsidies', 1),
- ('314', 'Muu tuotto', NULL, 'Other income', 1);
- -- Insert default accounting categories
- INSERT IGNORE INTO accounting_categories (category_code, category_name, category_type, vat_percentage) VALUES
- ('300 - E0', 'Myynti - EU 0%', 'Tulo', 0.00),
- ('300 - E255', 'Myynti - EU 25,5%', 'Tulo', 25.50),
- ('300 - K', 'Myynti - Käänteinen vero', 'Tulo', 0.00),
- ('300 - M0', 'Myynti - Muut maat', 'Tulo', 0.00),
- ('300 - S0', 'Myynti - Suomi 0%', 'Tulo', 0.00),
- ('300 - S255', 'Myynti - Suomi 25,5%', 'Tulo', 25.50),
- ('301', 'Muut tuotot', 'Tulo', 0.00),
- ('312', 'Varausten vähennys', 'Tulo', 0.00),
- ('313', 'Auton yksityiskäyttö', 'Tulo', 0.00),
- ('314', 'Tavaroiden yksityiskäyttö', 'Tulo', 0.00),
- ('315', 'Muu yksityiskäyttö', 'Tulo', 0.00),
- ('317', 'Tuloslaskelman verovapaat tuotot', 'Tulo', 0.00),
- ('318', 'Saadut avustukset ja tuet', 'Tulo', 0.00),
- ('319', 'Saadut osingot', 'Tulo', 0.00),
- ('320', 'Osinkojen veronalainen osuus', 'Tulo', 0.00),
- ('323', 'Korkotuotot ja muut rahoitustuotot', 'Tulo', 0.00),
- ('324', 'Muut veronalaiset tuotot', 'Tulo', 0.00),
- ('333', 'Ostot ja varastojen muutokset', 'Kulu', 25.50),
- ('334', 'Ulkopuoliset palvelut', 'Kulu', 25.50),
- ('335', 'Palkat ja palkkiot', 'Kulu', 0.00),
- ('336', 'Eläke- ja henkilösivukulut', 'Kulu', 0.00),
- ('337', 'Poistot', 'Kulu', 0.00),
- ('341', 'Edustuskulut', 'Kulu', 0.00),
- ('343', 'Vuokrat', 'Kulu', 25.50),
- ('344 - A', 'Ajoneuvokulut', 'Kulu', 25.50),
- ('344 - K', 'Kokous- ja neuvottelukulut', 'Kulu', 25.50),
- ('344 - M', 'Matkakulut', 'Kulu', 25.50),
- ('344 - O', 'Muut vähennyskelpoiset kulut', 'Kulu', 25.50),
- ('346', 'Korkokulut', 'Kulu', 0.00),
- ('349', 'Muut rahoituskulut', 'Kulu', 0.00),
- ('353', 'Varausten lisäykset', 'Kulu', 0.00),
- ('354', 'Kirjanpidon ulkopuoliset vähennyskelpoiset kulut', 'Kulu', 0.00),
- ('365', 'Välittömät verot', 'Kulu', 0.00),
- ('366', 'Sakot ja muut rangaistusmaksut', 'Kulu', 0.00),
- ('367', 'Muut vähennyskelvottomat kulut', 'Kulu', 0.00),
- ('368', 'Julkinen liikenne', 'Kulu', 10.00);
- -- Insert default category groups
- INSERT IGNORE INTO accounting_category_group_names (category_group_code, category_group_name, description) VALUES
- ('300', 'Tuotot ammatista', NULL),
- ('301', 'Muut tuotot', NULL),
- ('312', 'Varausten vähennys', NULL),
- ('313', 'Auton yksityiskäyttö', NULL),
- ('314', 'Tavaroiden yksityiskäyttö', NULL),
- ('315', 'Muu yksityiskäyttö', NULL),
- ('317', 'Tuloslaskelman verovapaat tuotot', NULL),
- ('318', 'Saadut avustukset ja tuet', NULL),
- ('319', 'Saadut osingot', NULL),
- ('323', 'Korkotuotot ja muut rahoitustuotot', NULL),
- ('324', 'Muut veronalaiset tuotot', NULL),
- ('333', 'Ostot ja varastojen muutokset', NULL),
- ('334', 'Ulkopuoliset palvelut', NULL),
- ('335', 'Palkat ja palkkiot', NULL),
- ('336', 'Eläke- ja henkilösivukulut', NULL),
- ('337', 'Poistot', NULL),
- ('341', 'Edustuskulut', NULL),
- ('343', 'Vuokrat', NULL),
- ('344', 'Matkakulut', NULL),
- ('346', 'Korkokulut', NULL),
- ('349', 'Muut rahoituskulut', NULL),
- ('353', 'Varausten lisäykset', NULL),
- ('354', 'Kirjanpidon ulkopuoliset vähennyskelpoiset kulut', NULL),
- ('358', 'Elinkeinotoiminnan tulos', NULL),
- ('359', 'Elinkeinotoiminnan tappio', NULL),
- ('365', 'Välittömät verot', NULL),
- ('366', 'Sakot ja muut rangaistusmaksut', NULL),
- ('367', 'Muut vähennyskelvottomat kulut', NULL),
- ('368', 'Julkinen liikenne', NULL);
- -- Insert chart of accounts
- INSERT IGNORE INTO chart_of_accounts (account_number, account_name, account_type, parent_id, description, opening_balance, current_balance, is_active) VALUES
- ('1000', 'Käyttöpääoma', 'asset', NULL, 'Pääomaisuus', 0.00, 0.00, TRUE),
- ('1100', 'Saamiset ja vaatimukset', 'asset', NULL, 'Tase-erät ja poistot', 0.00, 0.00, TRUE),
- ('1200', 'Aineelliset vaihto-omaisuudet', 'asset', NULL, 'Varasto ja raaka-aineet', 0.00, 0.00, TRUE),
- ('1300', 'Pitkän aikaiset sijoitukset', 'asset', NULL, 'Pitkän aikaiset sijoitukset', 0.00, 0.00, TRUE),
- ('1400', 'Kiinteistöt', 'asset', NULL, 'Kiinteistöt ja rakennukset', 0.00, 0.00, TRUE),
- ('1500', 'Koneet ja kalusto', 'asset', NULL, 'Koneet, kalusto ja laitteet', 0.00, 0.00, TRUE),
- ('1600', 'Aineettomat varat', 'asset', NULL, 'Aineettomat varat', 0.00, 0.00, TRUE),
- ('1700', 'Sijoitukset rahoituslaitoksissa', 'asset', NULL, 'Rahoituslaitokset', 0.00, 0.00, TRUE),
- ('1800', 'Erityiset vaihto-omaisuudet', 'asset', NULL, 'Erityiset vaihto-omaisuudet', 0.00, 0.00, TRUE),
- ('1900', 'Vaihto-omaisuudet luovutukseen', 'asset', NULL, 'Myyntikohteiset varat', 0.00, 0.00, TRUE),
- ('2000', 'Oma pääoma', 'liability', NULL, 'Oma pääoma', 0.00, 0.00, TRUE),
- ('2100', 'Pitkän aikaiset velat', 'liability', NULL, 'Pitkän aikaiset velat', 0.00, 0.00, TRUE),
- ('2200', 'Verovelat', 'liability', NULL, 'Verovelat ja vakuudet', 0.00, 0.00, TRUE),
- ('2300', 'Ostovelat ja saamiset', 'liability', NULL, 'Ostovelat ja saamiset', 0.00, 0.00, TRUE),
- ('2400', 'Maksuvelat ja ennakot', 'liability', NULL, 'Maksuvelat ja saadut ennakot', 0.00, 0.00, TRUE),
- ('2500', 'Verovelat konserneille', 'liability', NULL, 'Verovelat konserneille', 0.00, 0.00, TRUE),
- ('2600', 'Muut velat', 'liability', NULL, 'Muut velat', 0.00, 0.00, TRUE),
- ('2700', 'Siirrot konserninointiin', 'liability', NULL, 'Siirrot konserninointiin', 0.00, 0.00, TRUE),
- ('2800', 'Tilikauden tuloverot', 'liability', NULL, 'Tilikauden tuloverot', 0.00, 0.00, TRUE),
- ('3000', 'Osakepääoma', 'equity', NULL, 'Osakepääoma', 0.00, 0.00, TRUE),
- ('3100', 'Sijoitetun pääoman rahastot', 'equity', NULL, 'Sijoitetun pääoman rahastot', 0.00, 0.00, TRUE),
- ('3200', 'Muut pääomat rahastot', 'equity', NULL, 'Muut pääomat rahastot', 0.00, 0.00, TRUE),
- ('3300', 'Tilikauden voitto', 'equity', NULL, 'Tilikauden voitto/tappio', 0.00, 0.00, TRUE),
- ('4000', 'Myyntituotot', 'revenue', NULL, 'Myyntituotot', 0.00, 0.00, TRUE),
- ('4100', 'Palvelutuotot', 'revenue', NULL, 'Palvelutuotot', 0.00, 0.00, TRUE),
- ('4200', 'Vuokratuotot', 'revenue', NULL, 'Vuokratuotot', 0.00, 0.00, TRUE),
- ('4300', 'Korko- ja valuuttatuotot', 'revenue', NULL, 'Korko- ja valuuttatuotot', 0.00, 0.00, TRUE),
- ('4400', 'Muu tuotto', 'revenue', NULL, 'Muu tuotto', 0.00, 0.00, TRUE),
- ('4500', 'Siirrot konserninointiin', 'revenue', NULL, 'Siirrot konserninointiin', 0.00, 0.00, TRUE),
- ('5000', 'Aineelliset kulut', 'expense', NULL, 'Aineelliset kulut ja palvelut', 0.00, 0.00, TRUE),
- ('5100', 'Henkilöstökulut', 'expense', NULL, 'Henkilöstökulut', 0.00, 0.00, TRUE),
- ('5200', 'Poistot ja alennukset', 'expense', NULL, 'Poistot ja alennukset', 0.00, 0.00, TRUE),
- ('5300', 'Vuokrat ja vuokrakulut', 'expense', NULL, 'Vuokrat ja vuokrakulut', 0.00, 0.00, TRUE),
- ('5400', 'Korko- ja rahoituskulut', 'expense', NULL, 'Korko- ja rahoituskulut', 0.00, 0.00, TRUE),
- ('5500', 'Tase-erät ja poistot', 'expense', NULL, 'Tase-erät ja poistot', 0.00, 0.00, TRUE),
- ('5600', 'Arvonmäärityksen alennukset', 'expense', NULL, 'Arvonmäärityksen alennukset', 0.00, 0.00, TRUE),
- ('5700', 'Verotukset ja maksut', 'expense', NULL, 'Verotukset ja maksut', 0.00, 0.00, TRUE),
- ('5800', 'Muut kulut', 'expense', NULL, 'Muut kulut', 0.00, 0.00, TRUE),
- ('5900', 'Siirrot konserninointiin', 'expense', NULL, 'Siirrot konserninointiin', 0.00, 0.00, TRUE);
|