ripristinata la base dati
All checks were successful
Deploy to VPS / build (push) Successful in 15s
Deploy to VPS / deploy (push) Successful in 16s

This commit is contained in:
AV77web 2026-06-24 22:04:23 +02:00
parent c289bd5003
commit 6d6682dade
3 changed files with 12 additions and 28 deletions

View file

@ -8,7 +8,7 @@
-- 3 Luca Conti luca.conti@corrieri.it (Operatore) -- 3 Luca Conti luca.conti@corrieri.it (Operatore)
-- --
-- Chiavi consegna per test /verifica-consegna?chiave=... -- Chiavi consegna per test /verifica-consegna?chiave=...
-- CNSG9001, CNSG2406, CNSG7788, CNSG3344, CNSG5522, CNSG9876, CNSG1122 -- CNSG9001, CNSG3344, CNSG2406, CNSG7788, CNSG5522, CNSG9876, CNSG1122
-- ============================================================ -- ============================================================
USE corrieri; USE corrieri;
@ -30,18 +30,18 @@ INSERT INTO cliente (Nome, Cognome, Via, Comune, Provincia, Telefono, Email, Not
('Marco', 'Neri', 'Via Garibaldi 8', 'Bergamo', 'BG', '3337778899', 'marco.neri@email.it', 'Citofono non funzionante, chiamare al telefono'), ('Marco', 'Neri', 'Via Garibaldi 8', 'Bergamo', 'BG', '3337778899', 'marco.neri@email.it', 'Citofono non funzionante, chiamare al telefono'),
('Giulia', 'Ferrari', 'Viale Venezia 101', 'Brescia', 'BS', '3332223344', 'giulia.ferrari@email.it', 'Ritiro abituale presso ufficio'), ('Giulia', 'Ferrari', 'Viale Venezia 101', 'Brescia', 'BS', '3332223344', 'giulia.ferrari@email.it', 'Ritiro abituale presso ufficio'),
('Paolo', 'Romano', 'Via Manzoni 3', 'Como', 'CO', '3339988776', 'paolo.romano@email.it', 'Richiede firma del destinatario'); ('Paolo', 'Romano', 'Via Manzoni 3', 'Como', 'CO', '3339988776', 'paolo.romano@email.it', 'Richiede firma del destinatario');
-- ------------------------------------------------------------ -- ------------------------------------------------------------
-- Consegne -- Consegne
-- ClienteID: 1=Mario, 2=Laura, 3=Marco, 4=Giulia, 5=Paolo -- ClienteID: 1=Mario, 2=Laura, 3=Marco, 4=Giulia, 5=Paolo
-- ------------------------------------------------------------
-- Date dinamiche: compatibili con i trigger di retroattività (>= CURDATE()) -- Date dinamiche: compatibili con i trigger di retroattività (>= CURDATE())
-- DataRitiro e DataConsegna sono indipendenti; almeno una delle due è obbligatoria. -- DataRitiro e DataConsegna sono indipendenti; almeno una delle due è obbligatoria.
-- Esempi: solo ritiro (CNSG2406), solo consegna (CNSG5522), entrambe (CNSG9001). -- ------------------------------------------------------------
INSERT INTO consegna (ClienteID, DataRitiro, DataConsegna, Stato, ChiaveConsegna) VALUES INSERT INTO consegna (ClienteID, DataRitiro, DataConsegna, Stato, ChiaveConsegna) VALUES
(1, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 2 DAY), 'in deposito', 'CNSG9001'), (1, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 2 DAY), 'in deposito', 'CNSG9001'), -- ritiro e consegna
(2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 1 DAY), 'in consegna', 'CNSG3344'), (2, NULL, DATE_ADD(CURDATE(), INTERVAL 1 DAY), 'in consegna', 'CNSG3344'), -- solo consegna
(3, CURDATE(), NULL, 'da ritirare', 'CNSG2406'), (3, CURDATE(), NULL, 'da ritirare', 'CNSG2406'), -- solo ritiro
(4, DATE_ADD(CURDATE(), INTERVAL 5 DAY), DATE_ADD(CURDATE(), INTERVAL 2 DAY), 'in giacenza', 'CNSG7788'), (4, DATE_ADD(CURDATE(), INTERVAL 5 DAY), DATE_ADD(CURDATE(), INTERVAL 2 DAY), 'in giacenza', 'CNSG7788'), -- ritiro e consegna (ordine libero)
(5, NULL, DATE_ADD(CURDATE(), INTERVAL 1 DAY), 'in deposito', 'CNSG5522'), (5, NULL, DATE_ADD(CURDATE(), INTERVAL 1 DAY), 'in deposito', 'CNSG5522'), -- solo consegna
(1, DATE_ADD(CURDATE(), INTERVAL 1 DAY), DATE_ADD(CURDATE(), INTERVAL 3 DAY), 'da ritirare', 'CNSG9876'), (1, DATE_ADD(CURDATE(), INTERVAL 1 DAY), NULL, 'da ritirare', 'CNSG9876'), -- solo ritiro
(2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 2 DAY), 'in consegna', 'CNSG1122'); (2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 2 DAY), 'in consegna', 'CNSG1122'); -- ritiro e consegna

View file

@ -166,23 +166,6 @@ router.put("/:id", validateBody(validateConsegnaUpdate), async (req, res) => {
values.push(updates.clienteId); values.push(updates.clienteId);
} }
const mergedRitiro =
updates.dataRitiro !== undefined
? updates.dataRitiro
: formatDate(existing.DataRitiro);
const mergedConsegna =
updates.dataConsegna !== undefined
? updates.dataConsegna
: formatDate(existing.DataConsegna);
if (!mergedRitiro && !mergedConsegna) {
res.status(400).json({
error: "Inserire almeno una data di ritiro o di consegna",
fields: { _form: "Inserire almeno una data di ritiro o di consegna" },
});
return;
}
try { try {
await pool.execute<ResultSetHeader>( await pool.execute<ResultSetHeader>(
`UPDATE consegna SET ${setClauses.join(", ")} WHERE ConsegnaID = ?`, `UPDATE consegna SET ${setClauses.join(", ")} WHERE ConsegnaID = ?`,

View file

@ -14,7 +14,8 @@ export type ValidationResult<T> =
const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
export function normalizeString(value: unknown): string { export function normalizeString(value: unknown): string {
return value?.toString().trim() ?? ""; if (value == null) return "";
return value.toString().trim();
} }
export function normalizeEmail(value: unknown): string { export function normalizeEmail(value: unknown): string {