# # Questions Click to Order
1 E' possibile collegare l'app mobile vtenext alla app Waze per la navigazione/geolocalizzazione?

Quando da app viene cliccato su Geolocalizzazione all'interno di un'anagrafica, parte automaticamente Google Maps perchè è l'app predefinita del telefono. Di fatto andrebbe modificata questa impostazione sul proprio dispositivo mobile, che è indipendente dall'app vte.
Ecco dunque il link per gestire questa variabile: https://mashtips.com/set-waze-default-map/

2 Come rendere attivo il controllo duplicato su un campo?

Facciamo un esempio, vogliamo rendere attiva la verifica duplicato per il campo P.IVA all'interno del modulo Aziende. Andare in AZIENDE e cliccare ALTRO > TROVA DUPLICATI. A questo punto scegliere dalla lista il campo P.IVA e cliccare su SALVA MAPPATURA. Da questo momento, ogni volta che verrà creata un'azienda con una PIVA duplicata il crm ce lo segnala con una popup.

3 Problemi di connessione a mysql 5.7

Se si hanno problemi a connettersi ad un server mysql 5.7 (forse anche altre versioni) via vte o tunnel ssh, è perchè c'è un bug nell'utente root. Collegarsi via terminale e lanciare le seguenti query:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;

4 PDF Maker: visualizzare nel pdf le attività di tracciamento, è possibile?

Certamente, va fatta una configurazione con un blocco collegato, ma va usato un filtro sul TIPO ATTIVITA' (prestando attenzione che il primo campo TIPO ATTIVITA' è relativo ai compiti, mentre il tracciamento è relativo agli eventi). Il filtro deve essere fatto mettendo:
- tipo attività NON CONTIENE riunione
E
- tipo attività NON CONTIENE chiamata
E
...tutti i campi che sono stati settati dal cliente (chiaramente comprendendo anche RIUNIONE e CHIAMATA se ancora presenti)
In pratica vanno escluse tutte le voci presenti nel menu a tendina TIPO ATTIVITA', tranne TRACCIATO.

5 Facendo una ricerca su "TUTTO IL CRM", ad esempio di un indirizzo e-mail, con alcuni utenti si trova il risultato con altri utenti invece, questo non succede. Considerare che tutti gli utenti possono visualizzare l'anagrafica e l'elemento di ricerca menzionato.

Se abbiamo impostato un filtro di default che non contiene il campo X (qualsiasi esso sia) e si cerca in tutto il crm per quel campo, il crm non eroga il risultato nonostante quell'utente possa vedere quel record. Si rammenta che il campo deve essere presente sia nel filtro, che quel filtro deve essere impostato a pubblico.

6 Dove si trova la documentazione tecnica/SDK di vte ?

Si trova in tutti i vte nella cartella modules/SDK/doc.

7 Quali parametri si utilizzano per configurare le caselle di posta Outlook365?
8 E' possibile, solo da APP Mobile, accedere con lo stesso utente su più dispositivi?

Certamente, è possibile fino a 3 dispositivi mobile col medesimo utente vtenext.

9 Qual'è il link per accedere all'import dati da impostazioni?

index.php?module=Settings&action=DataImporter&parenttab=Settings&reset_session_menu=true

10 Su un modulo di vtenext devo creare un campo che mi permetta di verificare lo stato di validità di un record verificando quanti giorni mancano alla scadenza di validità del dato definito da una campo “Data Scadenza” o “Data fine Validità”.

1. Se non esiste, creo un campo “data” all'interno del modulo scelto (Data Scadenza).
2. Creo un nuovo campo di tipologia “numero” che mi indicherà i giorni alla scadenza calcolati da oggi alla data di scadenza (Giorni Scadenza).
3. Vado nei campi formula del modulo, ne aggiungo uno “giorni alla scadenza” che sarà il “Target field” della funzione:
→ (time_diffdays(cf_1153)) * (-1)
time_diffdays: permette di restituire la differenza in giorni tra due date. Se tra parentesi inseriamo una sola data la differenza sarà tra oggi (data di esecuzione della funzione) e la data inserita in formula. ATTENZIONE, moltiplichiamo per “-1” per ottenere dei risultati positivi (il campo numerico in vte, se con segno negativo, genera errore al salvataggio del record da interfaccia.
→ if ((time_diffdays(cf_1153)) * (-1)) >= 0 then (time_diffdays(cf_1153)) * (-1) else 0 end
Con questa formula risolviamo anche il problema dei numeri negativi forzandoli sempre a 0.
4. A questo punto ci serve configurare un processo semplice che faccia un ciclo di aggiornamento del record di dati interessato (anche senza modificare nessun parametro del record) al fine di ricalcolare il campo formula con il nuovo parametro.

11 vtenext è interfacciabile o integrabile con Gravity Forms?

Sì, è possibile collegare vtenext con Gravity Forms.

12 Qual è il link del modulo Traduzioni/Editor Lingue/LanguageEditor?

Indirizzo del CRM /index.php?module=Settings&action=LanguageEditor

13 E' possibile re-inviare una newsletter agli indirizzi che non hanno effettuato un'azione sulla newsletter ? So che è possibile generare un target dalle statistiche di una newsletter basandoci su sulle azioni FATTE: Aperte, Link Cliccati, Disiscrizioni, Email Respinte e così via. Ma sarebbe possibile creare un target basandomi sulla lista di chi ha aperto l'email ma non ha cliccato sul link? O di chi non ha aperto l'email?

Nel CRM non c'è una funzione di tipo "manda alle newsletter non aperte" oppure "manda a chi non ha cliccato sui link". In realtà si può fare un'operazione per poter ottenere questo risultato, ma va fatta manualmente. Va infatti fatta una differenza tra tutte le email inviate e quelle che sono state aperte oppure quelle che hanno avuto dei click. In questo caso andrebbero contrassegnate con un campo flag (o quello che preferite), per poter essere poi filtrate e re-inviate. In alternativa, possiamo pensare ad uno sviluppo in tal senso. Si potrebbe pensare di far comparire le related delle NON APERTE e delle NON CLICCATE. Confrontandomi col reparto tecnico, mi dicono che serve una giornata di lavoro per implementarlo. Se dite possiamo procedere scalando dal pacchetto a vostra disposizione.

14 Radici binaria e numerazione dei moduli: quando cerco di ordinare i lead (o altri moduli) per numero, l'ordinamento è scombinato: parte da 100, oppure da 129 passa a 13 e poi a 130... come faccio a ordinare correttamente?

Informaticamente parlando il numero 130 è consecutivo al 13 in quanto segue la numerazione alfabetica, ed il numero 13 è la radice di base del 130. Il suggerimento è quello di ordinare i ticket per data di arrivo decrescente. Per fare l'ordinamento suggerito, è sufficiente intervenire in un filtro che avete creato, modificarlo ed in basso a destra della schermata di modifica, si trova la dicitura "inizialmente ordina per". Da quel menu a tendina, scegliere "periodo creazione" e selezionare discendente. Cliccare su SALVA ed il gioco è fatto.

15 Particolarità della configurazione SMTP

Quando si configura il SERVER DI POSTA del crm (IMPOSTAZIONI > SERVER DI POSTA), spesso accade che, nonostante le credenziali siano corrette, il crm continua ad erogare l'errore che non riesce a spedire l'email di test.
Per risolvere, è necessario che momentaneamente, l'email dell'utente "corrente", ovvero l'utente admin col quale si sta facendo questa configurazione, sia esattamente l'email di posta che si sta cercando di configurare nell'smtp. E' poi possibile rimettere l'email dell'utente "corrente" esattamente come era in precedenza.

16 WSAPPAssignToTracker da errore getData of unknown object.

Significa che nella tabella vtiger_eventhandlers manca il dependent_on VTEntityDelt.

17 Come funziona il pulsante "Budget"?

Il modulo Opportunità prevede la possibilità di visualizzare informazioni relative all'andamento della stessa, mettendola in relazione con altri oggetti a essa collegati.
Nel dettaglio sono:

a) Relazioni: se opportunamente inseriti, sono dati relativi a contatti e partner utili per la fase di trattativa. Sia i contatti che i partner possono essere aggiunti come nuovi, oppure selezionati; in questo caso dovranno essere già presenti nel database di vtenext. I contatti possono essere profilati per ruolo e classificati opportunamente se hanno principale nella trattativa. I partner possono essere profilati per il ruolo che hanno nella trattativa.

b) Linee di prodotto: informazioni su ammontare e margini di guadagno organizzate per linee di prodotto. I prodotti presenti sono quelli indicati nell'Ordine di Vendita (o nel preventivo nel caso non vi sia un ordine di vendita) e sono raggruppati per Linea di prodotto (nel modulo Linee di prodotto devono essere codificate le opportune informazioni). L’ammontare è la somma dei valori economici di tutti i prodotti presenti nell'opportunità appartenenti a una determinata linea di prodotto. Il margine viene calcolato, sempre per linea di prodotto, basandosi sulla differenza tra il prezzo di vendita del prodotto e il suo costo. Il margine viene espresso in percentuale ed è calcolato facendo una media pesata dei prodotti presenti nella linea di appartenenza. La formula utilizzata per calcolare il margine è: (SOMMA(prezzi) - SOMMA(costi)) / SOMMA(prezzi). Il costo di ogni prodotto deve essere definito nella sua relativa scheda prodotto tramite il campo Costo unitario.

c) Preventivi: in questa scheda vengono relazionati i preventivi e gli ordini di vendita collegati all'opportunità in esame.

d) Concorrenti: vi è la possibilità di inserire uno o più concorrenti (Aziende con campo Tipo = Concorrente) legati all'Opportunità di Vendita. Anche in questo caso possono essere selezionate dal database oppure aggiunte come nuove.

Sono previste, inoltre, alcune funzionalità di gestione generale del budget legate alle informazioni contenute nelle Opportunità, nei Prodotti, nelle Linee di prodotto, nei Preventivi e negli Ordini di Vendita. Alcuni valori presenti in questi moduli vanno ad alimentare il report Budget per linee di prodotto (Budget by Product Line), contenuto nella cartella Budget nel modulo Reports. E’ possibile accedervi direttamente cliccando sull'icona con il simbolo dello squalo (pulsante Budget), presente nel menu del modulo Opportunità.

Il report permette di avere una visione immediata della propria situazione commerciale, organizzata per periodo di tempo. E’ possibile navigare i dati per anno, semestre, quadrimestre, trimestre o per mese.

Le informazioni, raggruppate per linea di prodotto, sono:

- Budget: informazione stabilita nell'apposito campo YearlyBudget contenuto all'interno delle istanze del modulo Linee di prodotto.

- Best: presenta la somma degli ammontare delle Opportunità che hanno una probabilità di chiusura di almeno 70%.

- Forecast: presenta la somma degli ammontare delle Opportunità che hanno una probabilità di chiusura di almeno 80%.

- Worst: presenta la somma degli ammontare delle Opportunità che hanno una probabilità di chiusura di almeno 90%.

- Ordini chiusi: presenta la somma degli ammontare relativa agli ordini di vendita.

- Delta Budget: presenta la differenza tra il budget definito nella relativa linea di prodotto e l’ammontare degli ordini di vendita, sempre relativo alla medesima linea di prodotto. In sostanza esprime quanto rimane per raggiungere il budget previsto.

Per default il report presenta le informazioni organizzate per linea di prodotto. E’, tuttavia, possibile organizzarle anche per utente assegnatario dell’opportunità (in questo caso non avrò i dati sul budget e sul delta budget).

18 Come posso effettuare dei dump/restore più veloci con mysql? Utilizzo di mydumper myloader.

Utilizzare lo strumento mydumper/myloader
pagina web progetto: https://launchpad.net/mydumper
man web: http://centminmod.com/mydumper.html
installazione per Ubuntu 12.04 LTS (con mysql percona server):
1) scaricare mydumper: wget https://launchpad.net/mydumper/0.5/0.5.2/+download/mydumper-0.5.2.tar.gz
2) estrarre mydumper tar xzvf mydumper-0.5.2.tar.gz
3) installare i pacchetti per farlo funzionare/compilare apt-get install libglib2.0-dev libmysqlclient15-dev zlib1g-dev libpcre3-dev libssl-dev cmake build-essential
4) posizionarsi nella cartella appena scompattata cd mydumper-0.5.2
5) compilare l'eseguibile
cmake .
make
make install
6) verificare il funzionamento digitando mydumper --help se l'output è l'help allora lo strumento è funzionante.

PASSI PER FARE IL DUMP DEL DB
mydumper -B $nome_del_db -t $numero_di_thread -o $path_del_dump
il parametro -o è facoltativo, se omesso scrive in una cartella con YYYMMDDHHMMSS nella current_directory
il parametro -c serve per comprimere i file sql generati
il parametro -t deve essere inferiore al numero di core della macchina
il risultato sarà una serie di file sql (o gz se si usa la compressione) con schema e dati, nel file metadata c'è data inizio e fine della procedura

PASSI PER FARE IL RESTORE DEL DB
myloader -d $path_del_dump -B $nome_del_db -o -t $numero_di_thread
il parametro -o è facoltativo, serve per riscrivere le tabelle se esistono
il parametro -B può essere un db esistente , se INESISTENTE verrà creato.

ps i parametri -h -u -p sono quelli di mysql standard... i comandi così come sono stati scritti vanno a fare il dump in LOCALE con utente senza password

19 Tracciamento in Calendario

Per i moduli Assistenza Clienti, Operazioni, Aziende e Contatti è disponibile la funzione tracciamento per segnare su calendario il tempo occupato per un'attività sul ticket, azienda, ecc.
La logica di base è: inizio un'attività (clicco play), termino l'attività (stop oppure pausa se devo lavorarci ancora).

Dal pulsante Altro è possibile accedere ai comandi di tracciamento:
- Start: fa partire il contatore e nel caso di Ticket e Operazione imposta lo stato a "In lavorazione".
- Pausa: crea l'evento di Calendario(tipo Tracciato) collegato al record corrente e nel caso di Ticket e Operazione imposta lo stato "In Attesa di Risposta"
- Stop: crea l'evento di Calendario(tipo Tracciato) collegato al record corrente e nel caso di Ticket e Operazione imposta lo stato "in Approvazione"

Nei Ticket quando metto in pausa o stop è possibile anche rispondere al ticket.
In Aziende e Contatti quando metto in pausa/stop posso, oltre all'evento di tracciamento, creare un ticket con possibilità di indicare il titolo. Verrà automaticamente calcolato il campo Ore del ticket in base alla durata dell'evento. Il campo Descrizione che vedo quando metto in pausa/stop serve anche per definire un descrizione dell'evento di tracciamento mentre il soggetto dell'evento prende automaticamente il nome dell'azienda o del contatto.

Nel menù azzurrino è disponibile un pulsante per vedere tutti i tracciamenti attivi o in pausa.

20 Personalizzazione da interfaccia (layout).

Tramite la tabella {$table_prefix}_config_layout è possibile personalizzare l'interfaccia. Di seguito le colonne della tabella.

* default_detail_view
indica quale vista di default si vede accedendo alla detailview(la vista riassuntiva o la vista a blocchi) e quindi può assumere questi valori:
- 'summary' (default) : vista riassuntiva
- stringa vuota : vista a blocchi

* enable_switch_detail_view
se 1 (default) allora il pulsante in detailview con i 3 puntini che permette di cambiare vista è visibile. se è 0 il pulsante non c'è e quindi è disponibile solo la vista di default

* old_style
di default è 0, se è impostato a 1 simula l'interfaccia della detailview e editview della vte4 diponendo le label dei campi a sinistra del campo invece che sopra e mostrando nel turbolift tutti i widget e i pulsanti add/select

* tb_relations_order
permette di definire che ordinamento vedere nel turbolift e può assumere questi valori:
- 'num_of_records' (default) voci ordinate per numero di record
- 'layout_editor' : voci ordinate in base all'ordinamento delle relatedlist nel layout editor

NB. per il momento non ci sono api o interfacce per modificare questi parametri, quindi bisogna modificare direttamente il db e fare il logout da vte in quanto uso la cache per salvarmi le configurazioni.