92 lines
4.5 KiB
PHP
Executable File
92 lines
4.5 KiB
PHP
Executable File
<?php
|
|
namespace App\Support;
|
|
|
|
class FornitoriImportTargets
|
|
{
|
|
/**
|
|
* Descrive i campi mappabili per l'import fornitori, raggruppati per segmento.
|
|
*/
|
|
public static function groups(): array
|
|
{
|
|
return [
|
|
[
|
|
'key' => 'fornitore',
|
|
'label' => 'Scheda Fornitore',
|
|
'fields' => [
|
|
['key' => 'fornitore.old_id', 'label' => 'ID legacy / progressivo'],
|
|
['key' => 'fornitore.ragione_sociale', 'label' => 'Ragione sociale'],
|
|
['key' => 'fornitore.partita_iva', 'label' => 'Partita IVA'],
|
|
['key' => 'fornitore.codice_fiscale', 'label' => 'Codice fiscale'],
|
|
['key' => 'fornitore.indirizzo', 'label' => 'Indirizzo'],
|
|
['key' => 'fornitore.civico', 'label' => 'Numero civico'],
|
|
['key' => 'fornitore.cap', 'label' => 'CAP'],
|
|
['key' => 'fornitore.citta', 'label' => 'Città'],
|
|
['key' => 'fornitore.provincia', 'label' => 'Provincia (sigla)'],
|
|
['key' => 'fornitore.nazione', 'label' => 'Nazione (ISO2)'],
|
|
['key' => 'fornitore.email', 'label' => 'Email'],
|
|
['key' => 'fornitore.pec', 'label' => 'PEC'],
|
|
['key' => 'fornitore.iban', 'label' => 'IBAN'],
|
|
['key' => 'fornitore.intestazione_cc_esatta', 'label' => 'Intestazione conto esatta'],
|
|
['key' => 'fornitore.telefono', 'label' => 'Telefono'],
|
|
['key' => 'fornitore.telefono_country_code', 'label' => 'Prefisso telefono (ISO2)'],
|
|
['key' => 'fornitore.cellulare', 'label' => 'Cellulare'],
|
|
['key' => 'fornitore.cellulare_country_code', 'label' => 'Prefisso cellulare (ISO2)'],
|
|
['key' => 'fornitore.sito_web', 'label' => 'Sito web'],
|
|
['key' => 'fornitore.note', 'label' => 'Note fornitore'],
|
|
],
|
|
],
|
|
[
|
|
'key' => 'rubrica',
|
|
'label' => 'Rubrica universale (contatto collegato)',
|
|
'fields' => [
|
|
['key' => 'rubrica.ragione_sociale', 'label' => 'Ragione sociale'],
|
|
['key' => 'rubrica.nome', 'label' => 'Nome'],
|
|
['key' => 'rubrica.cognome', 'label' => 'Cognome'],
|
|
['key' => 'rubrica.tipo_contatto', 'label' => 'Tipo contatto'],
|
|
['key' => 'rubrica.categoria', 'label' => 'Categoria'],
|
|
['key' => 'rubrica.codice_fiscale', 'label' => 'Codice fiscale'],
|
|
['key' => 'rubrica.partita_iva', 'label' => 'Partita IVA'],
|
|
['key' => 'rubrica.indirizzo', 'label' => 'Indirizzo'],
|
|
['key' => 'rubrica.civico', 'label' => 'Numero civico'],
|
|
['key' => 'rubrica.cap', 'label' => 'CAP'],
|
|
['key' => 'rubrica.citta', 'label' => 'Città'],
|
|
['key' => 'rubrica.provincia', 'label' => 'Provincia'],
|
|
['key' => 'rubrica.nazione', 'label' => 'Nazione (ISO2)'],
|
|
['key' => 'rubrica.telefono_ufficio', 'label' => 'Telefono ufficio'],
|
|
['key' => 'rubrica.telefono_cellulare', 'label' => 'Telefono cellulare'],
|
|
['key' => 'rubrica.fax', 'label' => 'Fax'],
|
|
['key' => 'rubrica.email', 'label' => 'Email'],
|
|
['key' => 'rubrica.pec', 'label' => 'PEC'],
|
|
['key' => 'rubrica.sito_web', 'label' => 'Sito web'],
|
|
['key' => 'rubrica.note', 'label' => 'Note contatto'],
|
|
['key' => 'rubrica.stato', 'label' => 'Stato (attivo/inattivo)'],
|
|
],
|
|
],
|
|
[
|
|
'key' => 'lookup',
|
|
'label' => 'Lookup fiscali (opzionali)',
|
|
'fields' => [
|
|
['key' => 'lookup.regime_fiscale', 'label' => 'Regime fiscale'],
|
|
['key' => 'lookup.tipologia_cassa', 'label' => 'Tipologia cassa'],
|
|
['key' => 'lookup.aliquota_iva', 'label' => 'Aliquota IVA'],
|
|
],
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Elenco piatto delle chiavi consentite (es. fornitore.ragione_sociale).
|
|
*/
|
|
public static function allowedKeys(): array
|
|
{
|
|
$keys = [];
|
|
foreach (self::groups() as $group) {
|
|
foreach ($group['fields'] as $field) {
|
|
$keys[] = $field['key'];
|
|
}
|
|
}
|
|
|
|
return $keys;
|
|
}
|
|
}
|