реквизиты
This commit is contained in:
@@ -1815,6 +1815,125 @@ app.post('/api/tasks/:taskId/files', requireAuth, upload.array('files', 15), (re
|
||||
});
|
||||
});
|
||||
});
|
||||
// API для обновления полей документа в задаче
|
||||
app.put('/api/tasks/:taskId/document-fields', requireAuth, (req, res) => {
|
||||
const { taskId } = req.params;
|
||||
const { document_n, document_d, document_a } = req.body;
|
||||
const userId = req.session.user.id;
|
||||
const userLogin = req.session.user.login;
|
||||
|
||||
console.log('📄 Обновление полей документа:');
|
||||
console.log('taskId:', taskId);
|
||||
console.log('document_n:', document_n);
|
||||
console.log('document_d:', document_d);
|
||||
console.log('document_a:', document_a || userLogin);
|
||||
console.log('userId:', userId);
|
||||
|
||||
// Проверяем доступ к задаче
|
||||
checkTaskAccess(userId, taskId, (err, hasAccess) => {
|
||||
if (err || !hasAccess) {
|
||||
return res.status(404).json({ error: 'Задача не найдена или у вас нет прав доступа' });
|
||||
}
|
||||
|
||||
// Проверяем существование задачи
|
||||
db.get("SELECT id FROM tasks WHERE id = ?", [taskId], (err, task) => {
|
||||
if (err || !task) {
|
||||
return res.status(404).json({ error: 'Задача не найдена' });
|
||||
}
|
||||
|
||||
// Формируем запрос на обновление
|
||||
let query = "UPDATE tasks SET ";
|
||||
const updates = [];
|
||||
const params = [];
|
||||
|
||||
if (document_n !== undefined) {
|
||||
updates.push("document_n = ?");
|
||||
params.push(document_n || null);
|
||||
}
|
||||
|
||||
if (document_d !== undefined) {
|
||||
updates.push("document_d = ?");
|
||||
params.push(document_d || null);
|
||||
}
|
||||
|
||||
// document_a по умолчанию берем из сессии, если не передан
|
||||
const authorValue = document_a !== undefined ? document_a : userLogin;
|
||||
updates.push("document_a = ?");
|
||||
params.push(authorValue || null);
|
||||
|
||||
if (updates.length === 0) {
|
||||
return res.status(400).json({ error: 'Нет данных для обновления' });
|
||||
}
|
||||
|
||||
updates.push("updated_at = CURRENT_TIMESTAMP");
|
||||
query += updates.join(", ") + " WHERE id = ?";
|
||||
params.push(taskId);
|
||||
|
||||
db.run(query, params, function(err) {
|
||||
if (err) {
|
||||
console.error('❌ Ошибка обновления полей документа:', err);
|
||||
return res.status(500).json({ error: err.message });
|
||||
}
|
||||
|
||||
if (this.changes === 0) {
|
||||
return res.status(404).json({ error: 'Задача не обновлена' });
|
||||
}
|
||||
|
||||
// Логируем действие
|
||||
logActivity(taskId, userId, 'DOCUMENT_FIELDS_UPDATED',
|
||||
`Обновлены поля документа: №${document_n || ''}, дата: ${document_d || ''}`);
|
||||
|
||||
console.log('✅ Поля документа успешно обновлены');
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: 'Поля документа обновлены',
|
||||
data: {
|
||||
document_n: document_n || null,
|
||||
document_d: document_d || null,
|
||||
document_a: authorValue
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// API для получения полей документа задачи
|
||||
app.get('/api/tasks/:taskId/document-fields', requireAuth, (req, res) => {
|
||||
const { taskId } = req.params;
|
||||
const userId = req.session.user.id;
|
||||
|
||||
checkTaskAccess(userId, taskId, (err, hasAccess) => {
|
||||
if (err || !hasAccess) {
|
||||
return res.status(404).json({ error: 'Задача не найдена или у вас нет прав доступа' });
|
||||
}
|
||||
|
||||
db.get(
|
||||
"SELECT document_n, document_d, document_a FROM tasks WHERE id = ?",
|
||||
[taskId],
|
||||
(err, row) => {
|
||||
if (err) {
|
||||
console.error('❌ Ошибка получения полей документа:', err);
|
||||
return res.status(500).json({ error: err.message });
|
||||
}
|
||||
|
||||
if (!row) {
|
||||
return res.status(404).json({ error: 'Задача не найдена' });
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: {
|
||||
document_n: row.document_n || '',
|
||||
document_d: row.document_d || '',
|
||||
document_a: row.document_a || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { setupTaskEndpoints,getApproverUsers };
|
||||
Reference in New Issue
Block a user