Concetti

Firma Digitale e Documento

Attività di tipo firma digitale e upload documento.

Tipo firma — azione: 'richiesta_firma'

Le attività con azione === 'richiesta_firma' attivano il FirmaPanel nel form. Permettono di inviare una richiesta di firma digitale a uno o più firmatari.

Configurazione tipo attività

In TipoAttivitaForm, impostare azione = 'richiesta_firma'. Il sistema mostra automaticamente FirmaPanel nel tab Avanzato.

Payload richiesta firma

{
  iddocumento: 10,   // documento già caricato su MinIO (opzionale)
  firmatari: [
    { email: 'mario@example.com', nome: 'Mario Rossi', ordine: 1 },
    { email: 'luigi@example.com', nome: 'Luigi Bianchi', ordine: 2 },
  ],
  messaggio: 'Si prega di firmare il contratto allegato.',
  scadenzafirma: '2025-06-30',
  firmadelrichiedente: 'data:image/png;base64,...',  // opzionale
}

ordine determina la sequenza di firma se il provider supporta firma sequenziale.

Risultato

// RichiestafirmaResult
{
  idrichiestafirma: 'uuid-...',
  stato: 'inviata',
  urlfirma: 'https://firma.provider.com/sign/uuid-...',
}

urlfirma può essere condiviso con i firmatari o aperto in un iframe. Il provider di firma digitale è esterno alla libreria.


Tipo documento — azione: 'upload_documento'

Le attività con azione === 'upload_documento' attivano il DocumentoPanel nel form. Permettono di allegare un file direttamente all'attività caricandolo su MinIO.

Endpoint upload

POST /api/attivita/{idattivita}/upload-documento
Content-Type: multipart/form-data

Risultato

// UploadDocumentoResult
{
  iddocumento: 42,
  nome: 'contratto.pdf',
  url: 'https://minio.example.com/bucket/contratto.pdf',
  dimensione: 1048576,  // bytes
}

iddocumento viene salvato in attivita.iddocumento. url è l'URL MinIO pubblico o pre-signed.


Differenza da @pzeta/vue-attachment

@pzeta/vue-attachment gestisce allegati generici su qualsiasi tabella. DocumentoPanel e FirmaPanel sono specifici per attività di tipo documento/firma — sono progettati per un singolo documento principale dell'attività, non per allegati multipli.

Per allegati multipli su un'attività usare @pzeta/vue-attachment con reference_table = 'attivita' e reference_value = idattivita.