Fatturazione elettronica per le aziende

Dal primo Gennaio del 2019 ci sarà l’obbligo per le aziende private di inviare e ricevere la fattura elettronica.  Che cos’è effettivamente la fattura elettronica?

La fattura elettronica non è nient’altro che un file digitale con estensione xml (es, Invoice002.xml) che potrà essere emesso, trasmesso e conservato esattamente come fosse una fattura cartacea.

Per fatturazione elettronica si intende il sistema informatico in grado di permettere l’emissione, la trasmissione e la conservazione delle fatture direttamente con il sistema di interscambio dell’agenzia delle entrate (SDI).

La fatturazione elettronica (o digitale), oltre a permettere le normali operazioni che si svolgevano su una fattura cartacea, porta con sè tutti i vantaggi e le peculiarità tipiche di un sistema digitale: controllo automatizzato sulla correttezza dei dati (ad esempio se la partita IVA esiste ancora), sulla completezza dei dati (tutti i campi devono essere correttamente compilati: data documento, partita IVA, ragione sociale, importo…), sulla conformità dei dati (una partita IVA dovrà necessariamente essere riconosciuta dall’agenzia delle entrate), integrità ed inalterabilità nel tempo ed emissione da parte di un solo proprietario (grazie alla firma digitale rilasciata da un ente terzo).

La fatturazione elettronica è un sistema informatico che coinvolge diversi attori e diversi sistemi eterogenei tra loro:

  • sistema gestionale. Il sistema dovrà essere in grado di generare la fattura in formato digitale (.xml). Sicuramente il fornitore del sistema gestionale dovrà aggiornare il software in tal senso oppure fornire un tool per la conversione in xml dei dati di fattura che attualmente risiedono nel database. (esistono molti tool anche gratuiti che permettono la generazione di xml da database preesistenti).
  • Operatore economico. L’entità che emette la fattura
  • Sistema di interscambio (SDI)Il sistema di interscambio è un sistema digitale dell’agenzia delle entrate che permette di effettuare controlli sulle fatture ricevute (ogni non conformità viene segnalato con messaggi di errori standard), permette di ricevere le fatture in formato xml secondo un preciso template, permette di inoltrare le fatture ai legittimi destinatari. Il sistema di interscambio non svolge ruoli amministrativi e di conservazione delle fatture.
  • Portali HUB accreditati per la fatturazione elettronica. I portali si interpongono tra l’operatore economico ed il sistema di interscambio in modo da gestire l’interscambio, il controllo e, talvolta, anche la conservazione delle fatture per conto degli operatori economici. Non è obbligatorio ma consente alle aziende un notevole risparmio di tempo per la gestione delle fatturazione elettronica. In genere questi portali creano indirizzi univoci di destinazione delle fatture.
  • Indirizzo di destinazione. Può essere una PEC (va bene per aziende che producono una limitata quantità di fatture, infatti la PEC è soggetta ai limiti di una normale casella di posta; una volta piena allora non riceve più nulla) oppure l’indirizzo univoco nel caso ci sia un portale che fa da tramite per le fatture.

Esistono tantissimi software gratuiti o meno (a seconda delle necessità aziendali) che aiutano le aziende a produrre le fatture elettroniche.

Come responsabile informatico ritengo che questa sia una grossa opportunità di ottimizzazione dei propri processi operativi aziendali sopratutto di ciclo passivo ed attivo e le aziende dovrebbero agevolare questa innovazione anziché subirla passivamente.

Creazione blockchain privata con Ethereum (parte 1 – setup)

Con l’articolo precedente abbiamo capito come funziona la blockchain e come potrebbe cambiare in futuro internet.

Con questo articolo spieghiamo come può essere sfruttata la blockchain nell’ottica di creare applicazioni decentralizzate. Ovvero che non necessitano di un server centrale per il funzionamento.

Un progetto molto interessante è Ethereum e permette appunto la creazione di applicazioni decentralizzate di qualsiasi tipo.

Per capire fino in fondo Ethereum iniziamo a studiarlo installandone un’istanza privata.

Per installare Ethereum seguiamo queste istruzioni che ci consentiranno di installare sul nostro ambiente linux geth.

Per prima cosa generiamo un account di minatore, ovvero, colui che elaborerà l’algoritmo per creare gli ethereum coins. La creazione dell’account produrrà una coppia di chiavi (pubblica e privata). Questa coppia di chiavi viene inserita all’interno della cartella data_dir/keystore. Qualsiasi cosa di persistente verrà scritta nella cartella data_dir.

Una volta creato l’account viene mostrato a video anche l’indirizzo del nodo address_number.

#creiamo la cartella principale e la cartella 'data' nella quale viene conservata il keystore
>mkdir myown
>mkdir myown/data
#creiamo il nuovo account nella cartella creata
>geth account new --datadir /home/studio/blockchain/myown/data/
Address: {cb0f0fc732ad30b021c52e317e59122e693bb585}

blocco genesis

Ora che abbiamo l’account possiamo creare il primo blocco ethereum. Chiamato genesis. Ogni blockchain di ethereum ha il suo primo blocco genesi. Per far sì che la nostra blockchain non vada in conflitto con altre blockchain dobbiamo modificare i valori networkId di default.

#genesis.json
  {
 "config": {
 "chainId": 1999, #networkId
 "homesteadBlock": 0,
 "eip155Block": 0,
 "eip158Block": 0
 },
 "difficulty": "200000000", #valore di difficoltà applicata per la scoperta di questo blocco
 "gasLimit": "2100000", #limite di gas (ethereum) per eseguire tutte le le transazioni nel blocco
 "alloc": { #preallocazione ethereum sul primo account
 "cb0f0fc732ad30b021c52e317e59122e693bb585": { "balance": "400000" }
 }
}

inizializzazione genesis e start mining

L’operazione di mining consente la generazione di ethereum in base a calcoli matematici. Di seguito un esempio…

>geth --datadir /home/studio/blockchain/myown/data init genesis.json
INFO [03-10|10:47:41] Maximum peer count ETH=25 LES=0 total=25
INFO [03-10|10:47:41] Allocated cache and file handles database=/home/studio/blockchain/myown/geth/chaindata cache=16 handles=16
INFO [03-10|10:47:41] Writing custom genesis block 
INFO [03-10|10:47:41] Persisted trie from memory database nodes=1 size=195.00B time=75.389µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [03-10|10:47:41] Successfully wrote genesis state database=chaindata hash=aa6b0d…0d8207
INFO [03-10|10:47:41] Allocated cache and file handles database=/home/studio/blockchain/myown/geth/lightchaindata cache=16 handles=16
INFO [03-10|10:47:41] Writing custom genesis block 
INFO [03-10|10:47:41] Persisted trie from memory database nodes=1 size=195.00B time=58.634µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [03-10|10:47:41] Successfully wrote genesis state database=lightchaindata hash=aa6b0d…0d8207

avvio blockchain con nodo da minatore. Il mining è possibile farlo anche dalla console.

geth --mine --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --networkid 1999 --datadir /home/studio/blockchain/myown/data/

Initialised chain configuration config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Engine: ethash}"
INFO [03-10|10:54:03] Disk storage enabled for ethash caches dir=/home/studio/blockchain/myown/data/geth/ethash count=3
INFO [03-10|10:54:03] Disk storage enabled for ethash DAGs dir=/home/studio/.ethash count=2
INFO [03-10|10:54:03] Initialising Ethereum protocol versions="[63 62]" network=1999

colleghiamo la geth console

per collegare la geth console con il nodo di mining appena creato basta applicare il seguente script su un altro terminale

>geth --datadir /home/studio/blockchain/myown/data/ attach ipc:/home/studio/blockchain/myown/data/geth.ipc

instance: Geth/v1.8.1-stable-1e67410e/linux-amd64/go1.9.4
coinbase: 0xcb0f0fc732ad30b021c52e317e59122e693bb585
at block: 0 (Thu, 01 Jan 1970 01:00:00 CET)
 datadir: /home/studio/blockchain/myown/data
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
Welcome to the Geth JavaScript console!

in questo caso la console si connette al nodo attraverso pipe ipc (interprocesse) che funziona sul computer locale.

Dalla consolle possiamo eseguire le prime istruzioni

> eth.accounts
["0xcb0f0fc732ad30b021c52e317e59122e693bb585"]
> eth.coinbase
["0xcb0f0fc732ad30b021c52e317e59122e693bb585"]
> eth.getBalance(eth.coinbase)
2.3229485729235784806170624e+25

 

Protetto: Migrazione dei sistemi informatici: come eseguire un’analisi aziendale AS-IS

Il contenuto è protetto da password. Per visualizzarlo inserisci di seguito la password:

Installazione e preparazione domotica con OpenHab

In questo tutorial spiegheremo come poter implementare un sistema domotico d’avanguardia utilizzando le più moderne tecnologie.

Per maggiori informazioni contatta l'esperto che collabora con noi

Ditta Pietrantuono Pietro

Installazione, Manutenzione e Riparazione Impianti Elettrici/Domotici

info@informaticagestionale.it

cell. 339.2605170

Utilizziamo la seguente lista di tecnologie hardware e software:

  1. OpenHAB opensource
  2. Raspberry PI B+
  3. Raspbian
  4. LCD touchscreen 7 pollici
  5. KODI Media center
  6. protocollo di comunicazione ZWave
  7. 4 punti luci (device zwave) di cui 2 dimmer
  8. sistema di allarme interno (zwave)
  9. 1 sensore temperatura, umidità (zwave)
  10. termostato (zwave o powerLine)
  11. webcam

  • prima di procedere, scarichiamo la versione di raspbian per il nostro raspberry https://www.raspberrypi.org/downloads/raspbian/. Raspbian è il sistema operativo ottimizzato per raspberry
  • una volta scaricata l’immagine la installiamo su SD CARD seguendo le seguenti istruzioni:
    • dopo aver inserito la scheda nel PC, formattare la scheda SD in FAT32
    • con windows o mac utilizzare uno dei tanti programmi di preparazione  dischi di avvio
    • con ubuntu installare l’immagine nella partizione della scheda SD:
      sudo dd if=/imagePosition/image.img.xz of=/dev/sd* (Attenzione! sostituire * con la partizione esatta della scheda SD, altrimenti, rischiate di cancellare l'intero disco del PC)
  • per fare in modo che lo schermo si adatti perfettamente con lo schermo da 7 pollici si deve modificare il file /boot/config.txt sulla partizione della scheda SD.
7” raspberry LCD preparation
  • dopo aver preparato lo schermo LCD da 7 pollici con il raspberry inserire nell’apposita fessura la scheda SD opportunamente preparata (ricorda di cambiare la risoluzione sulla scheda nel file /boot/config.txt)
socket SD card
  • una volta collegato il raspberry con la rete ethernet (o wireless), accenderlo, aspettare che raspbian si avvii correttamente, e da questo momento, collegarsi al raspberry direttamente attraverso SSH di un’altro device (a meno che non si voglia continuare la configurazione direttamente sul raspberry stesso). ssh pi@ip_public
  • una volta connessi al raspberry inseriamo questi comandi per aggiornare ed aggiungere nuovi software

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install screen mc vim git htop

  • continuare l’installazione seguendo queste istruzioni

https://docs.openhab.org/installation/linux.html#package-repository-installation

una volta installato OpenHab, è possibile iniziare la configurazione vera e propria installando gli addons preferiti (esempio zwave) e configurando gli items che vengono automaticamente generati durante il rilevamento.

OpenHab utilizza diversi sistemi dashboard. Nel nostro caso il sistema domotico appena configurato si presenta come in figura.

  • tasto di accensione di tutte le luci
  • dimmer presente in sala
  • dimmer presente in camera da letto
  • webcam in sala
  • barra per il controllo del volume del mediacenter
  • play/pause mediacenter
  • tasto muto mediacenter

Al termine della configurazione possiamo associare al nostro terminale tutti i dispositivi elencati sopra:

  1. colleghiamo la webcam con la porta USB del raspberry
  2. colleghiamo i punti luce, i sensori, il termostato e l’allarme con il server zwave direttamente dalla dashboard di openhab 
  3. il sistema può essere integrabile con altri dispositivi quali:
    1. sensore di presenza delle persone autorizzate
    2. sensori porta-finestra antifurto
    3. sensori volumetrici e così via

Questo tutorial era solo un esempio,

se desiderate anche voi un impianto domotico ma non avete le competenze tecniche allora provate a contattare gli esperti che collaborano con noi:

Ditta Pietrantuono Pietro

Installazione, Manutenzione e Riparazione Impianti Elettrici/Domotici

info@informaticagestionale.it

cell. 339.2605170

oltre alla configurazione ed alla predisposizione del pannello di controllo ci si occuperà anche della personalizzazione dei collegamenti elettrici con l’impianto di casa.

Predizione di un evento attraverso Naive Bayes OnLine

InformaticaGestionale.it propone ai suoi lettori il nuovo servizio online che sfrutta il teorema di Bayes per fare predizioni di qualsiasi tipo grazie ad un set di dati storici eseguiti su specifici attributi. L’obiettivo è predire un determinato target o valore a partire da un nuovo set di attributi.

Questo può essere utile in moltissimi campi di applicazione: dal sociale alla medicina, dalla manutenzione alla produzione industriale.

Ecco una carrellata di esempi:

  1. lotti di produzione PC difettosi sulla base di attributi come temperatura (alta, media, bassa), velocità di produzione, tipo PC (standard, custom), qualità materiali (ottimo, scarso, buono). Riusciamo quindi ad identificare se un lotto sarà difettoso oppure no.
  2. l’acquisto di un prodotto da parte di un potenziale cliente in base ad attributi quali dimensioni azienda (piccola, media o grossa), tipologia azienda (servizi o manifatturiera), prezzo del prodotto.
  3. capire se una persona ha una determinata malattia sulla base di attributi quali sintomi, sesso, esami che determinano se l’individuo è malato oppure no.
  4. capire se un macchinario industriale ha bisogno di manutenzione (in modo da prevenire eventuali guasti) sulla base del tempo di funzionamento, velocità di produzione, complessità del prodotto (semplice, medio, complesso).

Il modello matematico utilizzato è basato su record storici che sono stati preventivamente inseriti (training_set). In base a questi record è possibile predire una determinata condizione preventivamente inserita nel testing_set.

Il calcolo della probabilità condizionata per ognuna delle casistiche determina la probabilità che si verifichi l’evento 1 oppure l’evento 2.

La predizione verrà orientata sull’evento con più alta probabilità.


 

ad esempio:

Data la seguente traingin table, vogliamo predire il valore della riga segnata in giallo (testing table)

 

TIPO AUTO TIPO GUIDA TIPO STRADA KM PERCORSI PREZZO AUTO TARGET
SUV SPORTIVA MISTO 4000 65000 NO MANUTENZIONE
UTILITARIA PASSEGGIO CITTA 80000 30000 MANUTENZIONE
SUV PASSEGGIO MISTO 15000 80000 NO MANUTENZIONE
UTILITARIA SPORTIVA CITTA 8000 20000 MANUTENZIONE
MONOVOLUME SPORTIVA MISTO 4000 65000 NO MANUTENZIONE
MONOVOLUME LAVORO CITTA 80000 40000 NO MANUTENZIONE
SUV LAVORO MISTO 250000 120000 MANUTENZIONE
UTILITARIA LAVORO AUTOSTRADA 70000 10000 MANUTENZIONE
UTILITARIA SPORTIVA MISTO 200000 12000 TO PREDICT

 

Secondo Naive Bayes il valore predetto è MANUTENZIONE : 3.6747338165603E-13

Se, invece di mettere 200.000 km percorsi mettiamo solo 20.000km allora la macchina risulta in NO MANUTENZIONE

qui l’esempio, potete provare a cambiare il testing set e visualizzare il valore predetto: ESEMPIO1

Clicca qui per la DEMO