Files
minicrm/init-document-types.js
2026-01-27 15:12:27 +05:00

82 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// init-document-types.js - Инициализация типов документов
const fs = require('fs');
const path = require('path');
function initializeDocumentTypes(db) {
const documentTypes = [
{ name: 'Приказ', description: 'Распорядительный документ' },
{ name: 'Распоряжение', description: 'Распорядительный документ' },
{ name: 'Инструкция', description: 'Нормативный документ' },
{ name: 'Положение', description: 'Нормативный документ' },
{ name: 'Договор', description: 'Юридический документ' },
{ name: 'Соглашение', description: 'Юридический документ' },
{ name: 'Акт', description: 'Документ подтверждения факта' },
{ name: 'Служебная записка', description: 'Внутренний документ' },
{ name: 'Заявление', description: 'Обращение' },
{ name: 'Отчет', description: 'Отчетный документ' },
{ name: 'План', description: 'Плановый документ' },
{ name: 'Программа', description: 'Плановый документ' },
{ name: 'Протокол', description: 'Документ собрания' },
{ name: 'Решение', description: 'Документ коллегиального органа' },
{ name: 'Письмо', description: 'Корреспонденция' },
{ name: 'Справка', description: 'Информационный документ' },
{ name: 'Выписка', description: 'Копия части документа' },
{ name: 'Копия', description: 'Копия документа' },
{ name: 'Проект', description: 'Проект документа' },
{ name: 'Шаблон', description: 'Шаблон документа' }
];
// Создаем таблицу если её нет
db.run(`
CREATE TABLE IF NOT EXISTS document_types (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
description TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
`, (err) => {
if (err) {
console.error('❌ Ошибка создания таблицы типов документов:', err);
return;
}
console.log('✅ Таблица типов документов создана/проверена');
// Проверяем, есть ли уже типы документов
db.get("SELECT COUNT(*) as count FROM document_types", [], (err, result) => {
if (err) {
console.error('❌ Ошибка проверки типов документов:', err);
return;
}
if (result.count === 0) {
console.log('📄 Добавление типов документов...');
const insertPromises = documentTypes.map(type => {
return new Promise((resolve, reject) => {
db.run(
"INSERT INTO document_types (name, description) VALUES (?, ?)",
[type.name, type.description],
(err) => {
if (err) reject(err);
else resolve();
}
);
});
});
Promise.all(insertPromises)
.then(() => {
console.log(`✅ Добавлено ${documentTypes.length} типов документов`);
})
.catch(error => {
console.error('❌ Ошибка добавления типов документов:', error);
});
} else {
console.log(`В базе уже есть ${result.count} типов документов`);
}
});
});
}
module.exports = { initializeDocumentTypes };