Closed loviuz closed 6 years ago
Al momento lo sviluppo nella branch 2.4 ha completato le seguenti sezioni:
Introduzione delle tabelle per la gestione delle informazioni relative;
Parallelamente sono state abbozzate le seguenti parti:
La gestione di queste funzioni è stata inserita nella classe Mail.
Sarebbe il caso di creare un file nella cartella di ogni modulo, ad esempio variables.php, dove sono contenute le variabili utilizzabili nei template delle email? Strutturandole sotto forma di array, potrebbero essere estratte e posizionate in un help durante la creazione del template email.
Oltre alle variabili, andrebbe definita anche la query da cui estrarre i valori, perché nel caso volessi creare un template email indicando nel corpo "Ecco la sua fattura di 237,00 €", la query dovrebbe calcolare il totale delle righe, o dovrei poter estrarre altre informazioni dalla fattura con INNER JOIN vari. In questo modo, se la query e le variabili sono in una struttura, per l'invio mi appoggio alla stessa struttura per sostituire le variabili nel template.
Che ne pensate @Dasc3er, @lucasalva87, @fpsoftware, @Bacca1997?
Alcuni chiarimenti sui permessi di accesso agli account email e ai template email:
Inoltre, che formato personalizzato utilizziamo per le variabili da sostituire ({ nome }
, ...)?
Infine, come idea per l'invio email, progettiamo un dropdown che si basa sul template e che apre un modal dove selezionare:
@devcode-it/openstamanager Che ne dite?
Alcuni chiarimenti sui permessi di accesso agli account email e ai template email:
- Ogni utente ha l'accesso ad alcuni indirizzi email e ad alcuni template in modo indipendente tra loro?
- Ogni utente ha l'accesso a indirizzi email e template collegati tra loro (del tipo per un template si può usare solo un indirizzo specifico, e viceversa)?
- E' necessario prevedere la possibilità di concedere l'accesso a template e indirizzi email a singoli utente oppure anche a interi gruppo?
Semplificherei in questo modo:
Il fatto di non far scegliere l'account mittente dal tecnico è una misura di "controllo" che di solito fa l'azienda. Eventualmente, se il tecnico è un amministratore, si può fare in modo che possa scegliere l'account da utilizzare, anche se diventerebbe un po' inutile allora specificare l'account da usare nel template della mail. Per ora teniamo che le email partono con l'account smtp pre-selezionato nel template email. In questo modo, basta avere l'accesso in lettura ad un modulo per effettuare l'invio mail o generare stampe.
Infine, come idea per l'invio email, progettiamo un dropdown che si basa sul template e che apre un modal dove selezionare:
- Indirizzo email da utilizzare
L'indirizzo email mittente viene preso dall'account smtp associato all'invio mail (vedi ragionamento sopra)
- Eventuali allegati aggiuntivi (dalle stampe)
Ok, quindi se un modulo ha 4 stampe, poter scegliere di allegare di default più di una di queste nell'invio mail, e non per forza solo 1.
- Testo dell'email basato sul template
Ok
Altri punti:
Perfetto. In ogni caso, i permessi di accesso al template sono da specificare oppure sono semplicemente concessi con i permessi del modulo?
Dopo aver commentato mi è venuta un'idea per semplificare: potremmo far sì che tutti i file allegabili siano un elenco con checkbox, e di default saranno selezionate le stampe che vengono specificate nel template email, così è più intuitivo il funzionamento. Faccio un esempio:
In ogni caso, i permessi di accesso al template sono da specificare oppure sono semplicemente concessi con i permessi del modulo?
Se il modulo ha almeno i permessi in lettura, darei l'accesso all'invio email.
Con il commit ae4d6b1d987770ba48ecffd8099b098a86ab4e81 sono state introdotte la maggior parte delle funzionalità richieste, compresa la selezione degli allegati e la relativa inclusione nell'email. Manca da stabilire in modo definitivo il formato con cui effettuare la sostituzione delle variabili in variables.php del modulo.
Potrebbe essere anche solamente una query da cui, con un ciclo for, si riesce ad estrarre il nome del campo ed anche il valore? Del tipo:
$variables = $dbo->fetchArray("SELECT SUM(qta) AS tot_qta, subtotale FROM mm_modulo WHERE id=".prepare($id_record));
Con il foreach sul nome estraggo i nomi dei campi per comporre il template, aggiungendo alle estremità i caratteri { e }. Per la sostituzione in fase di creazione anteprima invio email, andrei a sostituire le variabili con il relativo valore. Può andare?
E' che se fosse così, il file variables.php sarebbe di una sola riga, per cui verrebbe quasi quasi voglia di inserire la query in un campo del database, nella tabella di quel template email.
Per il momento consiglierei di strutturare il varables.php in modo da restituire un array associativo, sulla cui base costruire la sostituzione, in modo simile al file bulk.php.
In questo modo sarebbe più semplice espandere la funzionalità in futuro.
Ok. Può essere che in alcuni casi sia solo una semplice query, generata con:
$variables = $dbo->fetchArray("SELECT SUM(qta) AS tot_qta, subtotale FROM mm_modulo WHERE id=".prepare($id_record));
e l'array verrebbe creato con un foreach, perché le informazioni verrebbero estratte in molti casi anche solo con una query. Per casi più complessi, l'array associativo $variables potrebbe essere generato in modo diverso.
Ho un paio di migliorie:
Qualcuno chiede anche di poter specificare nei referenti quali sono i destinatari di determinate email, ad esempio: le email delle attività vanno al referente tecnico, mentre le email delle fatture vanno al referente amministrativo. Forse bisognerebbe introdurre le mansioni nei referenti, ma credo sia uno sviluppo successivo da pensare per bene...
@loviuz Inoltre, per la navigazione da mobile, non sarebbe direttamente meglio lasciare i pulsanti a inizio pagina?
Forse sì, perché altrimenti porterebbero via spazio comunque
Andrei a creare un template email standard per i seguenti moduli, così chi aggiorna alla 2.4 o la installa da zero, ha già gli invii email di base che molti richiedono:
Ovviamente dovranno almeno aggiornare la firma della mail.
La mail standard potrebbe essere impostata così:
OGGETTO: Invio rapportino numero {numero} del {data}
CORPO: Gentile Cliente,
inviamo in allegato il rapportino numero {numero} del {data}.
Distinti saluti
Ovviamente questo è l'esempio del rapportino. Per altri documenti andrebbero inseriti almeno il numero del documento e la data. Lasciandolo senza firma, è utilizzabile senza apportare modifiche, altrimenti l'utente andrà ad inserire la propria firma.
@loviuz Ho introdotto i template richiesti, tranne quello relativo agli Ordini fornitore poichè quel modulo non ha stampe da allegare...
Ottimo! In realtà, l'ordine fornitore dovrebbe essere l'unica stampa presente lato "acquisti", perché è un documento inviabile ad un fornitore per richiedere della merce. Basta copiare dalla stampa dell'ordine cliente e cambiare "cliente" con "fornitore" principalmente
@loviuz Come testo dei template per i consuntivi cosa possiamo impostare di base?
Ho migliorato un po' i testi standard.
Modulo per la gestione degli account SMTP per inviare le email dai moduli. Modulo per l'invio mail standardizzato, integrabile per ogni modulo da cui scegliere:
Ogni modulo potrà avere più invii email.