Lo scopo di questa implementazione è la ricezione automatica di alcune informazioni relative all’esecuzione degli interventi. Queste informazioni saranno fornite dal software GPS già in uso dalla vs. azienda.
Su tale software verranno pre-caricate e mantenute continuamente aggiornate le informazioni anagrafiche dei punti vendita a cui può essere fatta assistenza.
Il software GPS restituirà a cadenze programmate un archivio che contiene, per ogni veicolo e per ogni giorno lavorativo, un elenco dei clienti visitati; per ciascun cliente le informazioni restituite saranno:
•Identificativo veicolo
•Data
•Codice cliente
•Tempo di permanenza presso il cliente
•Tempo di viaggio attribuito al cliente
•Km percorsi “attribuiti” al cliente (tempo e km verranno ripartiti secondo un algoritmo che distribuirà tempo/km percorsi nel giorno ai vari clienti visitati)
Tabella: ASNGPSIM |
||||
Tabella che contiene i dati di viaggio dei tecnici importati dall'applicazione GPS, con cui eseguire l'aggiornamento automatico degli interventi. |
||||
Nome campo |
Key |
Formato |
Foreign key |
Note |
gpi-id |
key |
9(12) |
|
Id di movimento importato |
gpi-rif |
|
9(12) |
|
Riferimento al movimento esportato dal sistema GPS |
gpi-data |
|
data |
|
Data viaggio |
gpi-ana-tip |
|
x(01) |
|
Tipo anagrafico |
gpi-ana-cod |
|
9(05) |
|
Codice anagrafico abbinato alla chiamata |
gpi-veicolo |
|
x(10) |
|
Targa del veicolo che ha effettuato il viaggio |
gpi-km |
|
9(06) |
|
Km percorsi |
gpi-ore |
|
9(04)v99 |
|
Ore di viaggio effettuate |
gpi-squadra |
|
x(03) |
|
Codice squadra a cui è assegnato il veicolo |
gpi-tecnico-1/5 |
|
9(05) |
|
Tecnico/i trovati sulla squadra a cui è assegnato il veicolo |
gpi-chiamata-1/3 |
|
9(07) |
|
Chiamata/e abbinate al viaggio |
gpi-stato |
|
x(01) |
|
Stato del viaggio "A":Importato ma non ancora validato (mancano informazioni, come la chiamata e/o la squadra) "B":Validato: ha tutte le informazioni a posto, ma i dati non sono ancora stati aggiornati sulla chiamata "C": i dati rilevati sono stati aggiornati sulla chiamata |
|
|
|
|
|
Gruppo |
Codice |
Descrizione |
assist |
path-exp-verso-gps |
Percorso dove dovranno essere esportate le informazioni che il software GPS dovrà importare |
assist |
path-imp-da-gps |
Percorso e nome file dove saranno cercate le informazioni da importare dal software GPS. |
|
|
|
Il caricamento iniziale dell’anagrafica clienti sul software GPS verrà effettuato da Voi autonomamente.
Dall’anagrafica clienti si dovrà invece inviare al software le informazioni anagrafiche per ciascun cliente che viene:
•Inserito
•Modificato sulle informazioni di localizzazione (indirizzo, località, CAP, provincia, stato)
Tra le configurazioni del programma, leggere il percorso di esportazione verso GPS:
"assist"-"path-exp-verso-gps".
Inserimento nuovo cliente
Per ogni cliente nuovo inserito, lanciare la procedura di Esportazione
Modifica cliente esistente
Se durante la modifica sono stati modificati uno o più dei seguenti campi:
•Indirizzo
•Località
•CAP
•Provincia
•Stato estero
lanciare la procedura di Esportazione
Esportazione
Questa procedura è da eseguire solo se il percorso configurato è significativo.
Si dovrà creare un file di testo; avente le seguenti caratteristiche:
•Percorso: Percorso di esportazione verso GPS
•Nome file: da definire
•Estensione: da definire
•Formato: sequenziale, a larghezza fissa
•Colonne:
oCodice
oRagione sociale
oIndirizzo
oCAP
oLocalità
oProvincia
oStato estero
Il software GPS periodicamente esporterà le informazioni sopra descritte in un file ASCII con colonne a larghezza fissa. Le informazioni saranno accodate all’eventuale file già esistente (se il software GPS effettua una seconda esportazione, prima che il ns. software possa importare i dati).
Verrà quindi innescato dal programma ASN191 il programma ASN190 che importa il file txt se presente nella cartella configurata
Elaborazione
Precaricare in una tabella in working l'elenco delle squadre con relativi tecnici collegati
Il programma dovrà verificare se il file configurato in "assist"-"path-imp-da-gps" esiste: se non esiste l'elaborazione termina.
Aprire e scorrere il file trovato: è un file in formato testo a larghezza fissa, le cui colonne sono:
•ID movimento
•Targa veicolo
•Data
•km
•ore
•codice cliente
Per ciascun record trovato:
Verifica esistenza movimento
Leggere se l'id movimento indicato esiste già su ASNGPSIM. Se esiste scartare il record.
Ricerca squadra/tecnici
Verificare l'esistenza della targa passata tra le squadre in precedenza caricate in working.
Ricerca chiamata/chiamate
In base al cliente passato eseguire una ricerca sulle chiamate aperte per il cliente. Una chiamata è valida se
✓E' assegnata alla squadra trovata
✓La data assegnazione equivale alla data sul record
Al termine inserire il record su ASNGPSIM:
Nome campo |
Contenuto |
gpi-id |
Id movimento progressivo |
gpi-rif |
Riferimento a movimento presente sul record di input |
gpi-data |
Data movimento |
gpi-ana-tip |
"C" |
gpi-ana-cod |
Codice cliente trovato sul movimento |
gpi-veicolo |
Targa veicolo |
gpi-km |
Km sul movimento |
gpi-ore |
Ore sul movimento |
gpi-squadra |
Codice squadra trovata |
gpi-tecnico-1/5 |
Tecnici presenti sulla squadra trovata |
gpi-chiamata-1/3 |
Chiamate trovate |
gpi-stato |
Se tutti i dati cercati sono stati trovati (squadra, tecnici, chiamata/e) impostare "B", altrimenti impostare "A". |
Nel menu di Assist sarà presente un nuovo programma che permetterà di visualizzare le informazioni acquisite, in una griglia simile a questa
Data |
Veicolo |
Tecnico/i |
Cliente |
Chiamata/e |
Km |
Ore |
Aggiorna |
25/5/12 |
BP277AA |
Rossi |
Erg via Scarlatti |
1234 |
50 |
2,5 |
|
25/5/12 |
BP277AA |
Rossi |
Totale via XXV Aprile |
|
75 |
1 |
|
|
|
|
|
La maschera conterrà una riga per ciascun intervento ancora da verificare/aggiornare.
Data,veicolo,Km,Ore,Cliente
Queste informazioni saranno recuperate direttamente dal file fornito dal software GPS
Tecnico/i
Il programma recupererà i tecnici che hanno effettuato l’intervento in base alla squadra abbinata al veicolo trovato, nella data dell’intervento.
Chiamata/e
Il programma cercherà l’esistenza di una chiamata assegnata al cliente, secondo le seguenti priorità:
1.Deve essere assegnata nel giorno indicato
2.E’ assegnata alla squadra abbinata alla riga
Se queste due condizioni sono vere, la chiamata viene assegnata automaticamente. Se esistono più chiamate che rispondono a questi requisiti, verranno assegnate tutte (fino ad un massimo di 3).
Se il sistema non è in grado di assegnare automaticamente una chiamata, sarà presente un t.f. con cui poter visualizzare le chiamate aperte del cliente, con cui selezionare manualmente una o più chiamate da assegnare.
Quando almeno una chiamata risulta assegnata, il sistema selezionarà automaticamente “Aggiorna” sulla colonna relativa.
Sarà possibile inoltre manualmente togliere una chiamata assegnata, prima dell’aggiornamento.
Aggiorna
Questa colonna, se contiene “Aggiorna” permetterà di inserire i dati presenti alla chiamata/e selezionate. La data esecuzione intervento sarà quella presente sulla riga.
Sarà possibile togliere la selezione manualmente, se si vuole tenere una chiamata in sospeso.
Se presenti più chiamate su una riga, i dati km e ore saranno ripartiti uniformemente.
Altre funzionalità
Eventualmente, se su una riga non è presente nessuna chiamata assegnata, si permetterà la modifica del cliente assegnato (se necessario).
Logica generale del programma
Questo programma dovrà permettere di visualizzare i viaggi importati dal software GPS, completare i dati mancanti, e da questi aggiornare i dati di intervento collegati:
•Km di viaggio effettuati
•Ore di viaggio
Maschera del programma
Testata
Stato viaggio
Combo-box con cui selezionare ad esempio se visualizzare solo i viaggi da aggiornare, solo quelli da validare, eccc.
I valori possibili sono:
•"A":Viaggi da validare
•"B":Viaggi da aggiornare
•"C":Viaggi aggiornati
•"N":Viaggi non aggiornati
•"T":Tutti i viaggi
Periodo
Richiesta di un periodo (da data a data) di di estrarre i viaggi (non obbligatorio, senza default).
Dettaglio
Nel dettaglio sarà presente una griglia modificabile, con il contenuto simile all'esempio:
Data |
Veicolo |
Tecnico/i |
Cliente |
Chiamata/e |
Km |
Ore |
Aggiorna |
25/5/12 |
BP277AA |
Rossi |
Erg via Scarlatti |
1234 |
50 |
2,5 |
|
25/5/12 |
BP277AA |
Rossi |
Totale via XXV Aprile |
|
75 |
1 |
|
|
|
|
|
Nel dettaglio le colonne necessarie sono:
Etichetta |
Informazione |
Proviene da |
Note |
Data |
Data viaggio |
astgpsim.gpi-data |
Campo read-only |
Cliente |
Cliente abbinato al viaggio |
astgpsim.gpi-cli-cod |
Campo collegato ad anagrafica cliente e relativa descrizione. E' modificabile solo se non ci sono chiamate abbinate al record viaggio |
Veicolo |
Targa veicolo |
astgpsim.gpi-veicolo |
Campo read-only |
Squadra |
Squadra abbinata al veicolo |
astgpsim.gpi-squadra |
Codice squadra; permettere la ricerca sulla tabella squadre con F8 |
Descr.squadra |
Descrizione squadra |
astteams.atea-des |
Campo read-only, da cercare su ASTTEAMS. |
Tecnico "n" |
Tecnico "n" trovato sulla squadra |
astgpsim.gpi-tecnico-"n" |
Campo read-only. |
Descr.tecnico "n" |
Descrizione tecnico "n" |
coggeana.ana-nome |
Campo read-only, da cercare su COGGEANA usando ANA-TIPO = "T" |
Chiamata "n" |
Chiamata abbinata al viaggio |
astgpsim.gpi-chiamata-"n" |
T.f. per ricerca tra le chiamate aperte di un cliente |
Km |
Km viaggio |
astgpsim.gpi-km |
campo read-only |
ore |
Ore viaggio |
astgpsim.gpi-ore |
campo read-only |
Stato |
Stato del viaggio |
astgpsim.gpi-viaggio |
campo a valori fissi, deve contenere i valori possibili del campo abbinato. Campo read-only |
Aggiorna |
Richiesta di aggiornamento |
|
Campo di tipo "check", che potrà valere: "N":" " "S":"Aggiorna" Questo campo potrà essere checkato solo se lo stato della riga è "B" (validato) |
Elaborazione
In funzione del filtro richiesto caricare nella griglia i viaggi trovati su ASNGPSIM.
•Se lo stato richiesto è:
o"A","B","C": estrarre i record relativi allo stato
o"T": estrarre tutto indipendentemente dallo stato
o"N": estrarre i record con stato "A" e "B"
•Effettuare un filtro sul periodo richiesto, se indicato
Solo sulle righe con stato <> "C", sulla griglia sarà possibile:
Modifica cliente
Se un viaggio non è ancora abbinato ad una chiamata, permettere di eseguire la modifica del cliente abbinato al viaggio.
Modifica squadra
Sia nel caso in cui la squadra sia già presente sul record viaggio che non, permettere la ricerca e l'assegnazione di una squadra al viaggio. Dopodichè leggere e valorizzare i tecnici abbinati.
NB: potrebbe essere rischioso in quanto le squadre cambiano giorno per giorno...
Modifica chiamate abbinate
Sulle 3 colonne che contengono le chiamate abbinate al viaggio permettere l'assegnazione e/o la pulizia del numero chiamata. In caso di assegnazione rimangono validi i controlli visti in ASN190: Importazione:
Una chiamata è valida se
✓E' relativa al cliente sul viaggio
✓E' assegnata alla squadra trovata
✓La data assegnazione equivale alla data sul record
Modifica stato record
In base alle modifiche effettuate a cliente, squadra, chiamata, lo stato potrà diventare:
•"A": (da validare) se i dati necessari non sono completi (almeno una chiamata, squadra e cliente assegnati)
•"B": (validato) se i dati necessari sono completi
Selezione per aggiornamento
L'utente potrà selezionare per l'aggiornamento cliccando sull'apposita colonna se lo stato è "B".
Tasti funzione particolari
•F8 "Aiuto" sulle colonne che lo necessitano
•F2 "Seleziona tutto": permette di selezionare/deselezionare automaticamente la colonna "Aggiorna" per tutte le righe sulle quali è possibile farlo (vedi "Selezione per aggiornamento").
•F3 "Aggiorna": Permette di eseguire l'Aggiornamento
Per ciascuna riga selezionata per l'aggiornamento, aggiornare i dati intervento collegati alla chiamata: km e ore viaggio sui campi appositi.
Nel caso in cui per un viaggio sono assegnate più chiamate, i dati saranno ripartiti uniformemente.
Configurazioni
Gruppo |
Codice |
Descrizione |
assist |
path-exp-verso-gps |
Percorso dove dovranno essere esportate le informazioni che il software GPS dovrà importare |
assist |
path-imp-da-gps |
Percorso e nome file dove saranno cercate le informazioni da importare dal software GPS. |
|
|
|
Creare nel server le 2 cartelle che serviranno x l' interscambio dei dati (invio e ricezione dati con GPS) e configurarle in "Assist"
N.B. senza "\" finale nella descrizione della path xche' saranno i programmi a stringarla
N.B. nella cartella "path-imp-da-gps" creare anche una sottocartella "\salva\" : in questa cartella verranno spostati tutti i files .txt scaricati dal sistema GPS dopo che sono stati importati nel gestionale "Assist" (questo x avere un salvataggio "storico" di questi files)
Programmi Modificati:
Anagrafica clienti (COGE08C + versione ridotta procedura Assist):
caricamento iniziale sara' eseguito da Torricelli; ad ogni inserimento / modifica di anagrafica clienti (sia dal programma ADMIN che da quello Assist) verra' creato un archivio nella path configurata (path-exp-verso-gps) denominato 'anaclgps.txt' e che avra' il seguente tracciato:
01 cgps-record.
03 cgps-codice pic 9(05).
03 cgps-ragsoc pic x(40).
03 cgps-indirizzo pic x(35).
03 cgps-cap pic 9(05).
03 cgps-localita pic x(20).
03 cgps-provincia pic x(02).
03 cgps-stato pic x(03).
In caso di inserimento verra' sempre creato mentre x quanto riguarda la modifica verra' creato se verranno modificati : indirizzo, localita', provincia, cap.
Nel caso che il file .txt sia gia esistente nella path configurata ( il programma del GPS non ha ancora elaborato le modifiche), il programma andra' in "extend" nel file trovato.
Caricamento dati esportati dal GPS (ASN190)
Questo programma legge il file denominato 'export.txt' dalla path configurata (path-imp-da-gps) con il seguente tracciato:
01 dgps-record.
03 dgps-id-mov pic 9(12). questo nr. id sara' composto con: 2 byte = nr. gps + data AAMMGG + ora chius. HHMI
03 dgps-targa pic x(10).
03 dgps-data pic 9(08).
03 dgps-km pic 9(06).
03 dgps-ore-viaggio pic 9(04)v99.
03 dgps-ore-interv pic 9(04)v99.
03 dgps-cliente pic 9(05).
03 dgps-chius-hh pic 9(02).
03 dgps-chius-mi pic 9(02).
Modalita' di aggiornamento:
il programma leggera' i record contenuti in questo file txt che sono i "viaggi" scaricati dal GPS; x ogni record verifica se il progressivo
di viaggio (dgps-id-mov che deve essere un numero univoco all'interno della procedura GPS anche x gli anni futuri, che mi caratterizza il viaggio) e' stato gia' elaborato verificando se e' presente nel nuovo file ASNGPSIM (viaggi da GPS); se e' un progressivo nuovo, cerca di associare a questo "viaggio" le chiamate aperte assegnate in quel giorno x il cliente (punto vendita) fino ad un massimo di 4 giornate nel giorno;
Nel caso non si riesca ad associare almeno una chiamata al record restituito dal GPS , comunque verra' scritto un record nell archivio ASNGPSIM che verra' controllato dall' operatore in modo tale da associare una o piu' chiamate a quel viaggio.
N.B. x i campi ore viaggio e intervento i decimali sono in centesimi: quindi nel file astgpsim verranno ricodificati con questa regola:
da 1 a 25 = 25 da 26 a 50 = 50 da 51 a 75 = 75 da 76 a 99 = + 1 ora e zero decimali
Nel suddetto file memorizziamo anche i valori originali del gps x eventuali controlli.
Al termine dell' elaborazione il file 'export.txt' caricato verra' spostato nella sottocartella "\salva\" della path x mantenere lo storico di tutti i file .txt esportati dal GPS con il nome "gps + data sistema + ora sistema.txt"
Questo programma viene innescato in 2 modalita':
la prima , ogni volta che un utente innesca il programma ASN191 (programma di gestione dei dati importati da GPS)
Controllo dati esportati dal GPS e aggiornamento chiamate Assist (ASN191)
questo programma e' richiamato dal menu' di Assist : Operativo ---> Chiamate ----> Aggiornamento dati GPS
con questo programma si potranno visualizzare / gestire / aggiornare tutti i viaggi scaricati dal GPS
Tutte le volte che viene eseguito, inneschera' il programma ASN190 in modo tale da caricare dei viaggi se il GPS ha scaricato il file txt nella path configurata;
L 'utente potra' ricercare i viaggi scaricati dal GPS da data a data e x lo stato del viaggio :
* Importato ma non validato (da validare)
* Validato ma dati non aggiornati sulla chiamata (da aggiornare)
* Non Aggiornati ( entrambi i precedenti insieme)
* Aggiornato: dati aggiornati sulla chiamata
* Tutti i viaggi nel periodo di tutti gli stati
A questo punto l'utente x tutti i viaggi "Da validare" e "Da Aggiornare" potra' gestire i dati:
- cliente della chiamata se mancante o errato
- il numero delle chiamate da associare al viaggio
- il numero dei km , ore viaggio , ore intervento del viaggio
I dati in griglia da gestire (oltre ai km e ore) sono il cliente e il numero della chiamata:
la chiamata deve essere del cliente, deve essere aperta , assegnata (data intervento <> zero) e tecnico <> zero; segnala senza bloccare che la targa del viaggio GPS e' diversa da quella della chiamata , come anche se la data viaggio <> data assegnazione chiamata;
non si puo' mettere + volte la stessa chiamata nel viaggio ...
Quando l'utente conferma con "F3" il programma aggiorna i dati della griglia nell' archivio "Archivio Dati Viaggio da GPS" e sucessivamente con il t.f. F5 puo' anche aggiornare i dati sulle chiamate di "Assist" in modo definitivo.
Regole dell' aggiornamento delle chiamate "Assist"
verranno considerati tutti i record di viaggio in stato "Validato"; se al viaggio sono associate piu' chiamate , i valori dei km , ore viaggio , ore intervento , verranno divisi x il numero di chiamate ;
N.B. Il totale delle ore dell' intervento della chiamata in assist (quello che si fattura) e' la somma delle ore di viaggio + ore intervento.
Nel caso di piu' chiamate collegate ad un viaggio, le ore di viaggio e di intervento verranno suddivise con queste regole:
i decimali (cioe' i valori 0,25 , 0,50 , 0,75) verranno attribuiti alla prima chiamata; il valore intero verra' suddiviso x le 'n' chiamate e l'eventuale resto sommato sempre alla prima chiamata. (stesse regola anche x il numero di km: diviso x le chiamate , resto sulla prima)
si aggiorneranno i seguenti dati:
1) data chiusura della chiamata con data viaggio GPS
2) innesco del programma ASN157 : questa e' NUOVA routine che serve x l' aggiornamento dei dati .
3) quindi x tutte le chiamate vengono aggiornati i dati dei km , ore viaggio , ore intervento (cosa che prima x quelle del portale non era possibile) , e solo x quelle del portale i flag che mi indicano che la chiamata e' "Chiusa da non fatturare" (come era gia' previsto dal programma). Inoltre esegue anche l' aggiornamento del file che serve x la B.I che suddivide le ore x i vari tecnici (come faceva gia' adesso)
4) alla fine lo stato del record del viaggio GPS sara' in "stato aggiornato" in modo tale che non si potranno + modificare i dati in quanto sono stati gia' aggiornati sulla chiamata ed essa e' "chiusa"; inoltre verra' aggiornata la chiamata con un flag che mi dice che questa e' gia' stata associata ad un viaggio GPS in modo tale che non venga sucessivamente associata ad un altro viaggio se per caso ci sono le condizioni (data + cliente)
RICHIESTE DI MODIFICA DEL 11/11/2015
modifiche da eseguire al programma ASN191 di gestione dati importati da GPS:
1) configurare 3 nuove merci 'Servizio' :
•M.O. ore intervento GPS , "assist" - "asn191-merce-mo-gps"
•ore viaggio GPS "assist" - "asn191-merce-ore-viaggio-gps"
•KM intervento GPS "assist" - "asn191-merce-km-gps"
x aggiornamento delle 3 righe su prestazioni intervento che saranno tutte impostate "da non fatturare" ; (nell' archivio dei dati GPS e' possibile memorizzarle e quindi verranno gestite in griglia)
2) aggiungere t.f. x cancellazione riga da griglia/archivio GPS
3) Nuovo programma ASN157 (derivato da Asn156) l' aggiornamento dei dati non deve chiudere le chiamate da portale ma lasciarle 'aperte' come avviene x quelle non collegate al portale (non innescare piu' il programma di chiusura chiamate da portale)
N.B. nuovo flag su ASNINTES : acit-fl-gps-agg-inser
Flag che indica se un intervento aggiornato dalla procedura GPS
e' stato gestito dal ASN140: quando vale "I" e' un 'inserimento'
anche in presenza di record Asnindet
* "I" = Inserimento intervento
* "V" = Variazione intervento