feat: aggiunto gruppo predefinito per la chiusura dei ticket al momento di consuntivare la giornata.
This commit is contained in:
+10
-1
@@ -34,11 +34,20 @@ async function fetchTicketsDetails(ticketIds) {
|
||||
// GET /api/groups - List all groups with member counts
|
||||
router.get('/', (req, res) => {
|
||||
try {
|
||||
// Ensure default group exists
|
||||
const defaultGroup = db.prepare('SELECT id FROM ticket_groups WHERE UPPER(nome) = ?').get('CHIUDI A FINE GIORNATA');
|
||||
if (!defaultGroup) {
|
||||
db.prepare(`
|
||||
INSERT INTO ticket_groups (nome, descrizione)
|
||||
VALUES (?, ?)
|
||||
`).run('CHIUDI A FINE GIORNATA', 'I ticket in questo gruppo verranno chiusi automaticamente alla consuntivazione di fine giornata');
|
||||
}
|
||||
|
||||
const groups = db.prepare(`
|
||||
SELECT g.*,
|
||||
(SELECT COUNT(*) FROM ticket_group_members WHERE group_id = g.id) AS member_count
|
||||
FROM ticket_groups g
|
||||
ORDER BY g.nome ASC
|
||||
ORDER BY CASE WHEN UPPER(g.nome) = 'CHIUDI A FINE GIORNATA' THEN 1 ELSE 0 END ASC, g.nome ASC
|
||||
`).all();
|
||||
|
||||
res.json(groups);
|
||||
|
||||
@@ -2186,6 +2186,28 @@ router.post('/auto-time', async (req, res) => {
|
||||
[ticketId, articleId, remaining, operatorId]
|
||||
);
|
||||
|
||||
// 6. Close tickets in default group 'CHIUDI A FINE GIORNATA'
|
||||
try {
|
||||
const closeGroup = db.prepare('SELECT id FROM ticket_groups WHERE UPPER(nome) = ?').get('CHIUDI A FINE GIORNATA');
|
||||
if (closeGroup) {
|
||||
const groupMembers = db.prepare('SELECT ticket_id FROM ticket_group_members WHERE group_id = ?').all(closeGroup.id);
|
||||
if (groupMembers.length > 0) {
|
||||
const groupTicketIds = groupMembers.map(m => m.ticket_id);
|
||||
const idPlaceholders = groupTicketIds.map((_, i) => `$${i + 1}`).join(', ');
|
||||
|
||||
// Update ticket state to closed in OTRS DB
|
||||
await client.query(
|
||||
`UPDATE ticket SET ticket_state_id = $${groupTicketIds.length + 1}, change_time = NOW(), change_by = $${groupTicketIds.length + 2} WHERE id IN (${idPlaceholders})`,
|
||||
[...groupTicketIds, stateId, operatorId]
|
||||
);
|
||||
|
||||
console.log(`[Auto-Time] Closed ${groupTicketIds.length} tickets from group 'CHIUDI A FINE GIORNATA'`);
|
||||
}
|
||||
}
|
||||
} catch (grpCloseErr) {
|
||||
console.error('[Auto-Time] Error closing tickets from CHIUDI A FINE GIORNATA group:', grpCloseErr);
|
||||
}
|
||||
|
||||
await client.query('COMMIT');
|
||||
|
||||
// Log activity
|
||||
|
||||
Reference in New Issue
Block a user