From 8bde63c0b0823eb7f310d1eb64d4916491dbec9b Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 29 Sep 2023 12:52:36 +0200 Subject: [PATCH] Aggiunta creazione tipo anagrafica se mancante in importazione --- modules/anagrafiche/src/Import/CSV.php | 30 ++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/modules/anagrafiche/src/Import/CSV.php b/modules/anagrafiche/src/Import/CSV.php index ccd55ef85..6d39b54ec 100644 --- a/modules/anagrafiche/src/Import/CSV.php +++ b/modules/anagrafiche/src/Import/CSV.php @@ -252,11 +252,18 @@ class CSV extends CSVImporter $tipi_selezionati = explode(',', $record['idtipoanagrafica']); foreach ($tipi_selezionati as $tipo) { - $tipo_anagrafica = $database->fetchOne('SELECT idtipoanagrafica AS id FROM an_tipianagrafiche WHERE descrizione = '.prepare($tipo).' OR idtipoanagrafica = '.prepare($tipo)); + $tipo_anagrafica = $database->fetchOne('SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = '.prepare($tipo).' OR idtipoanagrafica = '.prepare($tipo))['idtipoanagrafica']; - if (!empty($tipo_anagrafica)) { - $tipologie[] = $tipo_anagrafica['id']; + // Creo il tipo anagrafica se non esiste + if (empty($tipo_anagrafica)) { + $database->insert('an_tipianagrafiche', [ + 'descrizione' => $tipo, + ])['idtipoanagrafica']; + + $tipo_anagrafica = $database->fetchOne('SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = '.prepare($tipo).' OR idtipoanagrafica = '.prepare($tipo))['idtipoanagrafica']; } + + $tipologie[] = $tipo_anagrafica; } } unset($record['idtipoanagrafica']); @@ -265,7 +272,7 @@ class CSV extends CSVImporter if (!empty($record['tipo'])) { $tipi_selezionati = explode(',', $record['tipo']); } - unset($record['idtipoanagrafica']); + unset($record['tipo']); // Fix per campi con contenuti derivati da query implicite if (!empty($record['id_nazione'])) { @@ -274,6 +281,19 @@ class CSV extends CSVImporter unset($record['id_nazione']); } + // Creo il settore merceologico nel caso in cui non sia presente + $id_settore = ''; + if (!empty($record['id_settore'])) { + $settore = $record['id_settore']; + $id_settore = $database->fetchOne('SELECT id FROM an_settori WHERE descrizione = '.prepare($settore).'')['id']; + + if (empty($id_settore)) { + $id_settore = $database->insert('an_settori', [ + 'descrizione' => $settore, + ])['id']; + } + } + // Separazione dei campi relativi alla sede legale $campi_sede = [ 'indirizzo', @@ -320,6 +340,8 @@ class CSV extends CSVImporter $anagrafica->fill($record); $anagrafica->tipologie = $tipologie; + $anagrafica->tipo = $tipi_selezionati; + $anagrafica->id_settore = $id_settore; $anagrafica->save(); $sede = $anagrafica->sedeLegale;