📋 Commit iniziale con: - ✅ Documentazione unificata in docs/ - ✅ Codice Laravel in netgescon-laravel/ - ✅ Script automazione in scripts/ - ✅ Configurazione sync rsync - ✅ Struttura organizzata e pulita 🔄 Versione: 2025.07.19-1644 🎯 Sistema pronto per Git distribuito
105 lines
7.0 KiB
Plaintext
105 lines
7.0 KiB
Plaintext
gestione FATTURE ELETTRONICHE
|
|
|
|
servono anche da creare le tabelle per la gestione di dati della cassa previdenza io farei una TABELLA PER
|
|
i campi da gesttire sono sicuramente la
|
|
Natura giuridica
|
|
la cassa professionale con la relativa aliquota,
|
|
il regime fiscale,
|
|
l'IBAN (questo ci servirà per fre i bonifici o agganciare le scritture fatte in banca)
|
|
e nel caso sia una società che eroga acqua luce e gas, vorrei importare anche altri dati che verrebbero utilizzati per nel caso dell'acqua segnare i consumi e i numeri delle utenze per poi mandare o fare la ripartizione dell'acqua.
|
|
e nel caso delle società elettriche e i consumi gestire i consumi e visulizzare i dati in grafici e altro. (molti dati statistici e altro saranno poi presentati all'assemblea con una nota esplicativa e sintetica, ma vorrei comunque prendere più dati possibili dalle fatture ricevute, anche i dettagli delle righe che dovranno essere poi selezionate per dividerle nelle varie spese ( a proposito delle spese potrebbero essere) dobbiamo considerare anche una tabella da collegare alla fattura elettronica per gestire le righe dei dettagli e gli altri dati presenti nella fattura.
|
|
nella fattura esiste anche il protocollo SDI da gestire
|
|
i codici tributi crea una tabella apposta non saranno solo questi, (esempio nel caso del pagamento del portiere e la relativa compilazione del modello F24 ce ne sono altri perciò prevediamo da subito una tabella a parte
|
|
|
|
|
|
Piano di Implementazione: Modulo Fatturazione Elettronica
|
|
Fase 1: Arricchire la Tabella fornitori
|
|
Per prima cosa, potenziamo l'anagrafica dei fornitori con i dati fiscali e bancari che troveremo nell'XML. Questo ci permetterà di "agganciare" correttamente le fatture e pre-impostare le registrazioni.
|
|
|
|
Azione: Modificare la migration dei fornitori per aggiungere i seguenti campi.
|
|
|
|
Nome Campo Proposto Tipo Dati Note / Scopo (e percorso XML di riferimento)
|
|
regime_fiscale VARCHAR(4) Obbligatorio. Codice regime fiscale (es. RF01, RF19). <RegimeFiscale>
|
|
natura_giuridica VARCHAR(2) Codice natura giuridica (es. PG, PN). <DatiAnagrafici><Anagrafica><NaturaGiuridica> (se presente)
|
|
iban VARCHAR(34) IBAN per pagamenti. <DatiPagamento><DettaglioPagamento><IBAN>
|
|
tipo_cassa_previdenziale VARCHAR(4) Tipo cassa professionale di default (es. TC22). <DatiCassaPrevidenziale><TipoCassa>
|
|
aliquota_cassa_previdenziale DECIMAL(5,2) Aliquota cassa di default. <DatiCassaPrevidenziale><AliquotaCassa>
|
|
Fase 2: Creare le Tabelle di Supporto Fondamentali
|
|
Come hai giustamente indicato, abbiamo bisogno di tabelle "satellite" per gestire i dati codificati.
|
|
|
|
Nuova Tabella: codici_tributo Scopo: Gestire tutti i codici tributo per le ritenute e gli F24 (es. 1040 per lavoro autonomo, tributi per il portiere, etc.).
|
|
|
|
Nome Campo Tipo Dati Note
|
|
id BIGINT (PK) Chiave primaria.
|
|
codice VARCHAR(10) Il codice del tributo (es. "1040", "1019").
|
|
descrizione VARCHAR(255) Descrizione chiara (es. "Ritenuta su redditi di lavoro autonomo").
|
|
attivo BOOLEAN Per abilitare/disabilitare la selezione nei form.
|
|
Nuova Tabella: aliquote_iva Scopo: Centralizzare la gestione delle aliquote IVA e delle nature di esenzione.
|
|
|
|
Nome Campo Tipo Dati Note
|
|
id BIGINT (PK) Chiave primaria.
|
|
percentuale DECIMAL(5,2) Il valore numerico dell'aliquota (es. 22.00, 10.00, 0.00).
|
|
natura_esenzione VARCHAR(4) Importante. Il codice per operazioni non imponibili (es. N1, N2.2, N4).
|
|
descrizione VARCHAR(255) Descrizione chiara (es. "IVA Ordinaria 22%", "Esente Art. 10").
|
|
attiva BOOLEAN Per abilitare/disabilitare la selezione nei form.
|
|
Fase 3: Progettare lo Schema per le Fatture Importate (Cuore del Sistema)
|
|
Questa è la parte più importante. Creiamo una struttura dedicata per non "inquinare" le altre tabelle e per mappare 1:1 il tracciato XML.
|
|
|
|
Nuova Tabella: fatture_importate Scopo: Contiene i dati di testata di ogni fattura ricevuta.
|
|
|
|
Nome Campo Tipo Dati Note
|
|
id BIGINT (PK) Chiave primaria.
|
|
fornitore_id BIGINT (FK) Collega al fornitore nel nostro sistema.
|
|
stabile_id BIGINT (FK) Collega allo stabile a cui si riferisce la fattura.
|
|
nome_file_originale VARCHAR(255) Il nome del file XML originale.
|
|
path_file_xml VARCHAR(255) Percorso del file XML salvato nello storage.
|
|
protocollo_sdi VARCHAR(50) Importante. <DatiTrasmissione><IdTrasmittente> (o simile).
|
|
numero_documento VARCHAR(50) <DatiGeneraliDocumento><Numero>
|
|
data_documento DATE <DatiGeneraliDocumento><Data>
|
|
importo_totale_documento DECIMAL(12,2) <DatiGeneraliDocumento><ImportoTotaleDocumento>
|
|
importo_ritenuta DECIMAL(12,2) <DatiRitenuta><ImportoRitenuta> (se presente)
|
|
causale TEXT <DatiGeneraliDocumento><Causale> (se presente)
|
|
dati_extra_utility JSON Per Acqua/Luce/Gas. Qui salviamo consumi, letture, codici POD/PDR.
|
|
stato ENUM 'importata', 'da_registrare', 'registrata', 'annullata'.
|
|
created_at, updated_at TIMESTAMP Timestamps standard.
|
|
Nuova Tabella: fatture_importate_righe Scopo: Contiene le singole linee di dettaglio della fattura. Fondamentale per la ripartizione delle spese.
|
|
|
|
Nome Campo Tipo Dati Note
|
|
id BIGINT (PK) Chiave primaria.
|
|
fattura_id BIGINT (FK) Collega alla testata della fattura.
|
|
numero_linea INT <DettaglioLinee><NumeroLinea>
|
|
descrizione TEXT <DettaglioLinee><Descrizione>
|
|
quantita DECIMAL(10,2) <DettaglioLinee><Quantita>
|
|
prezzo_unitario DECIMAL(12,4) <DettaglioLinee><PrezzoUnitario>
|
|
prezzo_totale DECIMAL(12,2) <DettaglioLinee><PrezzoTotale>
|
|
aliquota_iva_id BIGINT (FK) Collega alla nostra tabella aliquote_iva.
|
|
Nuova Tabella: fatture_importate_riepilogo_iva Scopo: Contiene i dati del blocco di riepilogo IVA.
|
|
|
|
Nome Campo Tipo Dati Note
|
|
id BIGINT (PK) Chiave primaria.
|
|
fattura_id BIGINT (FK) Collega alla testata della fattura.
|
|
aliquota_iva_id BIGINT (FK) Collega alla nostra tabella aliquote_iva.
|
|
imponibile_importo DECIMAL(12,2) <DatiRiepilogo><ImponibileImporto>
|
|
imposta DECIMAL(12,2) <DatiRiepilogo><Imposta>
|
|
Fase 4: Piano d'Azione per il Team
|
|
Con questa struttura dati, ecco i passi concreti da seguire:
|
|
|
|
Creare le Migration: Scrivere i file di migrazione per:
|
|
|
|
Aggiungere i nuovi campi alla tabella fornitori.
|
|
Creare le nuove tabelle: aliquote_iva, codici_tributo.
|
|
Creare le tre tabelle per le fatture: fatture_importate, fatture_importate_righe, fatture_importate_riepilogo_iva.
|
|
Creare/Aggiornare i Modelli:
|
|
|
|
Aggiornare il modello Fornitore con i nuovi campi.
|
|
Creare i nuovi modelli per tutte le tabelle appena definite, completi di relazioni (hasMany, belongsTo).
|
|
Sviluppare il Parser XML:
|
|
|
|
Creare una classe service dedicata (Services/XmlInvoiceParser.php).
|
|
Questa classe avrà un metodo parse(string $xmlContent) che riceve il contenuto del file XML e restituisce un array PHP strutturato o un DTO (Data Transfer Object) con tutti i dati estratti.
|
|
Utilizzare la libreria SimpleXML di PHP, che è perfetta per questo scopo.
|
|
Sviluppare la Maschera di Importazione:
|
|
|
|
Creare un ImportFatturaController.
|
|
Creare una vista (admin.contabilita.import.create) con un form per l'upload di uno o più file XML.
|
|
Il metodo store del controller ciclerà sui file caricati, li passerà al XmlInvoiceParser e userà i dati restituiti per popolare le nuove tabelle del database. |