Closed lasorgentenet closed 1 year ago
Ti diamo qualche altra indicazione:
{denominazione cliente} - {codice cliente} - {vincolo orario (Extra1)}
e l'indirizzo solo nel caso in cui lo abbia pescato da una diversa destinazioneNon dovrebbe essere invece un problema creare un KML a partire dai soli indirizzi di residenza.
Rimane comunque il problema che in questo caso non verrebbero tenuti in considerazione indirizzi aggiuntivi (es. nel caso di un indirizzo di consegna diverso da indirizzo di residenza).
Andrebbe bene ugualmente?
Per quanto riguarda il secondo commento invece:
sintassi nome segnaposto: denominazione cliente - codice cliente - vincolo orario (Extra1) e l'indirizzo solo nel caso in cui lo abbia pescato da una diversa destinazione
Non dovrebbe essere un problema
stile, colore, icona segnaposti, se possibile la stessa del kmz che già hai
Da vedere...
sempre se possibile, che si "leghi" ad un altro kmz che abbia già di base i poligoni con le zone colorate, i CAP ecc. (questo dovrei provvedertelo)
Necessaria qualche informazione in più
Considerando che l'xml da cui partiamo è quello della scheda ORDINI e non la rubrica, credo sia possibile che il KML sia creato a partire dagli indirizzi di consegna, giusto?
Ok per la sintassi. Per stile, colori ecc. va bene tutto...
Ti mando su WA il kmz da "mescolare" insieme a quello che tu farai uscire dal programma eventuale che farai.
Creato un kml ridotto all'osso (scremando col notepad tante cose inutili) con un solo segnaposto come input per te che ha il minimo di quello che ci serve. Codice cliente, nome e indirizzo. E funziona!
L'ho zippato altrimenti non lo faceva allegare.
Possiamo amabilmente sollecitare questa richiesta? :) Credo che sia una cosa very very easy considerando le altre fatte. Ora che abbiamo una barca di ordini da evadere, il flag manuale su Earth ha il rischio errore dietro l'angolo hahah
Possiamo amabilmente sollecitare questa richiesta? :)
Vedo che riesco a fare, purtroppo il tempo che ho è sempre lo stesso mentre le cose da fare aumentano ogni giorno 😁
Grandeee lo apprezziamo. Se apri con notepad il test che ti ho fatto di eventuale file di uscita, è veramente una bazzecola. Andrea *Servizio clienti - LaSorgente.net https://www.lasorgente.net/ La Sorgente distribuzione S.r.l. Web: LaSorgente.net http://lasorgente.net/ | WhatsApp: 333 79 222 55 https://api.whatsapp.com/send?phone=393337922255 | @ @. | Tel. 06 94 12649 callto://+39069412649
Il giorno lun 26 giu 2023 alle ore 15:56 Luca Salvarani < @.***> ha scritto:
Possiamo amabilmente sollecitare questa richiesta? :)
Vedo che riesco a fare, purtroppo il tempo che ho è sempre lo stesso mentre le cose da fare aumentano ogni giorno 😁
— Reply to this email directly, view it on GitHub https://github.com/LukeSavefrogs/danea-easyfatt/issues/17#issuecomment-1607538623, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5UVTUTPGNS4ZHPNFWBQBPDXNGIKNANCNFSM6AAAAAAUSLFAUQ . You are receiving this because you authored the thread.Message ID: @.***>
Sono riuscito a realizzare un eseguibile di prova standalone che recuperi i dati cliente dal Database interno di Easyfatt e generi un file KML aggiornato con tutte le sedi dei clienti, ma ho bisogno che lo testi per vedere se funziona correttamente.
Questi sono gli step per testarlo:
Scarica ed estrai questo zip sul Desktop del PC dove usi Easyfatt
Copia il percorso completo al database usato da Easyfatt
Apri una finestra Powershell sul desktop e lancia il programma estratto al punto 1 passando come parametro il percorso estratto al punto 2 (ad esempio: .\process_kml.exe "\\192.168.1.14\C$\Users\lucas\Documents\Danea Easyfatt\TestArchivio.eft"
).
Fai uno screenshot dell'output dello script e incollalo come risposta a questo messaggio.
Lo script avrà generato sul Desktop un file chiamato test.kml
.
Apri una nuova finestra di Google Earth e apri il file salvato al punto 5 (File > Apri...)
Il risultato dovrebbe essere simile al seguente (ovviamente con i dati cliente corretti...)
L'obiettivo è creare un KML contenente TUTTI gli indirizzi di consegna degli ordini esportati da Easyfatt in modo da avere una visione globale delle consegne che dovranno essere effettuate.
Questa operazione deve essere una funzionalità separata in quanto verrà eseguita ad inizio turno.
process_xml.exe
Di seguito i risultati del test dello script postato in questa risposta.
Inizialmente lanciando il comando .\process_kml.exe '\\IP_ADDRESS\C$\Users\USERNAME\Documents\Danea Easyfatt\Archivi\ARCHIVE_NAME.eft'
lo script falliva con exception:
OSError: [WinError 1326] Nome utente o password non corretta
Il problema si è risolto con i seguenti step:
\\IP_ADDRESS\C$\Users\USERNAME\Documents\Danea Easyfatt\Archivi\ARCHIVE_NAME.eft
(adattando dove necessario) e premere INVIO: Windows chiederà username e passwordIMPORTANTE Poiché nella schermata ordini cliente abbiamo dei "non-ordini", ovvero ordini da mettere in consegna non a stretto giro, ma solo quando il cliente ordinerà di nuovo (es. portare 1 bottiglia in più la prossima volta perché rotta, oppure fare questo sconto ecc.), vorremmo che non finissero nel kml degli ordini da evadere.
In commento uso interno abbiamo scritto ALTRO su questi "non-ordini", potresti fare in modo che non vengano considerati in esportazione per il kml? Grazie.
Con la versione v1.2.0
è stata rilasciata la funzionalità di generazione KML a partire dal file .DefXml
esportato da Easyfatt.
ATTENZIONE:
Prima di aprire il KML generato assicurati di aver salvato eventuali modifiche fatte su Google Earth per evitare che questo le sovrascriva.
Al momento ha i seguenti limiti:
@lasorgentenet Ti chiedo di farmi sapere per cortesia qualsiasi problema doveste incontrare o miglioramento si renda necessario.
Ho inoltre bisogno delle seguenti informazioni:
Abbiamo deciso di provare ad utilizzarlo. Il tempo che impiega Earth per aprire il kml è più o meno lo stesso che impieghiamo per fare il check manuale degli ordini in coda.
Alcune cose:
Abbiamo poi notato che il cliente che ha un ordine in coda è ripetuto due volte nell'elenco, una col flag una senza, non so se sia un bug.
Grazie!
Il tempo che impiega Earth per aprire il kml è più o meno lo stesso che impieghiamo per fare il check manuale degli ordini in coda.
Esatto. Questo è il problema principale per cui NON ho rilasciato una nuova versione.
Lo script genera un KML con indirizzi NON normalizzati, nè codificati in coordinate (cosa che Earth fa automaticamente ogni volta che aggiungi manualmente un segnaposto). Questo causa un enorme rallentamento perchè per ogni segnaposto Earth deve fare una chiamata agli endpoint di Google per risolvere l'indirizzo e trasformarlo in coordinate GPS.
La soluzione purtroppo è radicale:
Alcune cose:
- [...]
- [...]
- [...]
Queste sono tutte richieste di personalizzazione dell'output, non ci si mette assolutamente nulla a farlo 😄
Abbiamo poi notato che il cliente che ha un ordine in coda è ripetuto due volte nell'elenco, una col flag una senza, non so se sia un bug.
Questo potrebbe essere un bug! Grazie per averlo segnalato.
Purtroppo la cosa più complessa è il punto 1.2, che richiede un pò di progettazione, attenzione e tanto tempo, tutte cose che al momento non ho 😀
Vedo quello che riesco a fare. 😄
Grazie comunque per il ping e il commento molto dettagliato (mi risparmia un sacco di tempo a chiedere informazioni dopo e posso progettare con in mente già cosa deve uscire fuori)!
Sì, abbiamo afferrato il problema relativo al punto 1. La lentezza al momento è un aspetto secondario.
Il punto 2, se dici che non ci si mette assolutamente nulla, ottimo! Ci permette di utilizzarlo. Avviso anche in azienda di questa esigenza ;)
Il segnaposto sarebbe questo: http://maps.google.com/mapfiles/kml/paddle/red-circle.png Scala 1,0 e opacità 100%.
ATTENZIONE: non fermarsi solo al primo spazio, ad es. cognomi tipo "De Falco", prenderebbe solo "De". Con Thomas abbiamo valutato che puoi prendere i primi 12 caratteri, anche se taglia qualche cognome o nome azienda non fa niente.
Punto 3, risolvilo senza fretta.
Grazie mille a te!
Ho provato a fare quanto richiesto e ho rilasciato la v1.2.2.
Per quanto riguarda il punto 2 ho fatto quello che potevo: dato che non ho accesso a nome e cognome separati ho impostato una lunghezza massima di 10 caratteri.
Come servizio di Geocoding invece ho usato Google Maps per 2 motivi:
Purtroppo non è possibile usare questa funzionalità senza prima aver generato la chiave API dalla console di Google Cloud 😅
Di seguito una guida sicuramente non completa ma il più chiara possibile che ho fatto per aiutare passo dopo passo:
Prerequisiti:
Loggati con l'account Google dell'azienda e vai alla Console Cloud Google e clicca sul pulsante "Inizia gratuitamente" in alto a destra.
Procedi con gli step richiesti inserendo anche Partita IVA e una carta di credito valida (NON verrà addebitato nulla, nè verrà automaticamente attivato il piano Business) che servirà nel malaugurato caso in cui dovessimo superare la soglia di richieste gratuite mensili (sono circa 30.000, quindi contando una per indirizzo cliente direi più che abbastanza)
Clicca su "Avvia la mia prova gratuita"
Verifica la tua identità con una transazione finta sulla carta scelta (0,00€)
Easyfatt
Torna nella Dashboard e clicca sul menu a tendina in alto a destra (dovrebbe esserci scritto My First Project
).
Nel dialog che si aprà cliccare su "Nuovo progetto" in alto a destra
Scrivere Easyfatt
(o qualsiasi altra cosa, è un nome che servirà a noi unicamente per riconoscere su cosa stiamo lavorando) nel campo del nome e premere "Crea"
Attendere che il progetto venga creato
Ora ripeti lo step 2.1 e nel dialog che si apre seleziona il progetto che hai creato allo step 2.3 e poi clicca su "Apri"
In alto a sinistra ora dovresti vedere il tuo nuovo progetto attivo (invece del default My First Project
)
Marketplace
e seleziona il risultato che vedi nello screenshot (dovrebbe essere il primo risultato):
Geocoding
(dovrebbe suggerirti automaticamente il servizio corretto, altrimenti premi semplicemente INVIO)
Geocoding API
(dovrebbe essere il primo risultato come nel mio caso)
Abilita
Dai miei test ho visto che al momento (usando pickle
per serializzare istanze della classe geopy.location.Location
) è stato generato un file di 178KB a partire da un dataset di 166 indirizzi (divisi per 59 clienti/fornitori).
Questo vuol dire che in media ogni indirizzo serializzato peserà 1.07KB
(1.1KB
se arrotondiamo per eccesso).
Domani bisogna provare a vedere qual'è un carico realistico da parte vostra per determinare in media quale possa essere la dimensione media di un file di cache (e se quindi è fattibile o bisogna ridimensionarlo togliendo le cose non necessarie).
Tutto FANTASTICO, 12-13 anni di lavoro manuale risolti.
Alcune piccole modifiche, senza fretta poiché è già utilizzabile così:
v1.3.1
rilasciataIn questa release ho introdotto la possibilità di personalizzare ancora più a fondo il template. In particolare:
- lunghezza caratteri da 10 a 13
Basta usare nel template il comando di formattazione {variabile:s->substring(0, 13)}
(o 10
, come preferite voi)
- solo prima lettera maiuscola
Basta usare nel template il comando di formattazione {variabile:s->capitalize}
che fa esattamente questo
- salvataggio file nella root del software, nome "Ordini in corso"
Adesso viene salvato di default nella stessa cartella del programma con il nome output.kml
. Per personalizzare questa opzione è possibile modificare la proprietà corrispondente nel file di configurazione
features.kml_generation.placemark_title
come di seguito:
placemark_title = "{customerName:s->substring(0, 13)->capitalize} {customerCode}"
output.kml
lascia le cose così come stanno, altrimenti aggiungi la configurazione files.output.kml
con il percorso e il nome del file desiderati.Chiudo l'issue in quanto la funzionalità è stata rilasciata e testata.
Per domande inerenti quanto detto continua a chiedere qui, altrimenti valutate di aprire nuovi Issue
Niente da aggiungere. Questo ci permette di avere una mappa completa più volte nell'arco della mattinata ovviando all'inserimento manuale.