diff --git a/composer.json b/composer.json
index f3d0ce6f4..17af9637e 100755
--- a/composer.json
+++ b/composer.json
@@ -95,6 +95,7 @@
"Modules\\CategorieDocumentali\\": ["modules/categorie_documenti/custom/src/", "modules/categorie_documenti/src/"],
"Modules\\PianiSconto\\": ["modules/piano_sconto/custom/src/", "modules/piano_sconto/src/"],
"Modules\\Impianti\\": ["modules/impianti/custom/src/", "modules/impianti/src/"],
+ "Modules\\Importazione\\": ["modules/import/custom/src/", "modules/import/src/"],
"Modules\\Impostazioni\\": ["modules/impostazioni/custom/src/", "modules/impostazioni/src/"],
"Plugins\\ExportFE\\": ["plugins/exportFE/custom/src/", "plugins/exportFE/src/"],
"Plugins\\ImportFE\\": ["plugins/importFE/custom/src/", "plugins/importFE/src/"],
diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php
index e6f021015..b7eaaa5d7 100755
--- a/modules/anagrafiche/edit.php
+++ b/modules/anagrafiche/edit.php
@@ -250,7 +250,7 @@ $map_load_message = '
'.tr('Clicca per visualizzare').'
';
if (empty($google)) {
echo '
- '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, "&search=Google Maps API key").'.
+ '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
';
} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
echo '
diff --git a/modules/import/actions.php b/modules/import/actions.php
index 5183a8f76..9ea20f718 100755
--- a/modules/import/actions.php
+++ b/modules/import/actions.php
@@ -17,31 +17,37 @@
* along with this program. If not, see .
*/
+use Modules\Importazione\Import;
+
include_once __DIR__.'/../../core.php';
switch (filter('op')) {
case 'add':
- $modulo_selezionato = Modules::get(filter('module'));
- $id_record = $modulo_selezionato->id;
+ $id_import = filter('id_import');
+ $import = Import::find($id_import);
+
+ $id_record = $import->id;
$upload = Uploads::upload($_FILES['file'], [
- 'id_module' => $modulo_import->id,
+ 'id_module' => $import->getModule()->id,
'id_record' => $id_record,
]);
break;
case 'example':
- $module = filter('module');
- $modulo_selezionato = Modules::get(filter('module'));
- $import_selezionato = $moduli_disponibili[$module];
+ $id_import = filter('id_import');
- if (!empty($import_selezionato)) {
+ $import = Import::find($id_import);
+ $import_manager = $import->class;
+
+ $modulo_collegato = $import->moduloCollegato;
+ if (!empty($import_manager)) {
// Generazione percorso
- $file = $modulo_selezionato->upload_directory.'/example-'.strtolower($modulo_selezionato->title).'.csv';
+ $file = $modulo_collegato->upload_directory.'/example-'.strtolower($modulo_collegato->title).'.csv';
$filepath = base_dir().'/'.$file;
// Generazione del file
- $import_selezionato::createExample($filepath);
+ $import_manager::createExample($filepath);
echo base_path().'/'.$file;
}
@@ -50,8 +56,8 @@ switch (filter('op')) {
case 'import':
// Individuazione del modulo
- $modulo_selezionato = Modules::get($id_record);
- $import_selezionato = $moduli_disponibili[$modulo_selezionato->name];
+ $import = Import::find($id_record);
+ $import_manager = $import->class;
// Dati indicati
$include_first_row = post('include_first_row');
@@ -61,7 +67,7 @@ switch (filter('op')) {
$limit = 500;
// Inizializzazione del lettore CSV
- $csv = new $import_selezionato($record->filepath);
+ $csv = new $import_manager($record->filepath);
foreach ($fields as $key => $value) {
$csv->setColumnAssociation($key, $value);
}
diff --git a/modules/import/add.php b/modules/import/add.php
index 065e123e9..1a50892b3 100755
--- a/modules/import/add.php
+++ b/modules/import/add.php
@@ -19,16 +19,6 @@
include_once __DIR__.'/../../core.php';
-$list = [];
-foreach ($moduli_disponibili as $id => $value) {
- $modulo = Modules::get($id);
-
- $list[] = [
- 'id' => $id,
- 'text' => $modulo['title'],
- ];
-}
-
?>
';
-if (!empty($ricerca)){
+if (!empty($ricerca)) {
echo '
';
}
diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php
index 89d835bbe..19730ebeb 100755
--- a/modules/interventi/edit.php
+++ b/modules/interventi/edit.php
@@ -130,7 +130,7 @@ $map_load_message = ''.tr('Clicca per visualizzare').'
';
if (empty($google)) {
echo '
- '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, "&search=Google Maps API key").'.
+ '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
';
} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
echo '
diff --git a/modules/primanota/add.php b/modules/primanota/add.php
index 9fda06c24..2fd13974a 100755
--- a/modules/primanota/add.php
+++ b/modules/primanota/add.php
@@ -71,7 +71,7 @@ foreach ($id_scadenze as $id_scadenza) {
$id_documenti[] = $scadenza['iddocumento'];
continue;
}
- $dir = $scadenza['rata']>0 ? 'entrata' : 'uscita';
+ $dir = $scadenza['rata'] > 0 ? 'entrata' : 'uscita';
$scadenza['rata'] = abs($scadenza['rata']);
$descrizione_conto = ($dir == 'entrata') ? 'Riepilogativo clienti' : 'Riepilogativo fornitori';
diff --git a/plugins/sedi/edit.php b/plugins/sedi/edit.php
index 8d7d343ed..47faa461e 100755
--- a/plugins/sedi/edit.php
+++ b/plugins/sedi/edit.php
@@ -143,7 +143,7 @@ if (!empty($google)) {
} else {
echo '
- '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, "&search=Google Maps API key").'.
+ '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
';
}
diff --git a/src/API/App/v1/RigheInterventi.php b/src/API/App/v1/RigheInterventi.php
index a96d2972f..fd2c53104 100644
--- a/src/API/App/v1/RigheInterventi.php
+++ b/src/API/App/v1/RigheInterventi.php
@@ -56,7 +56,7 @@ class RigheInterventi extends AppResource
WHERE
in_interventi.id IN ('.implode(',', $interventi).')';
$records = database()->fetchArray($query);
-
+
$da_interventi = array_column($records, 'id');
}
diff --git a/update/2_4_22.sql b/update/2_4_22.sql
index 0f87dd10d..b05b6f683 100644
--- a/update/2_4_22.sql
+++ b/update/2_4_22.sql
@@ -202,3 +202,23 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `
-- Fix quantità positiva per Note di credito
UPDATE `co_righe_documenti` SET `qta` = ABS(`qta`), `qta_evasa` = ABS(`qta_evasa`);
+
+--
+-- Struttura della tabella `zz_imports`
+--
+
+CREATE TABLE IF NOT EXISTS `zz_imports` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `id_module` int(11) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `class` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+
+ALTER TABLE `zz_imports`
+ ADD FOREIGN KEY (`id_module`) REFERENCES `zz_modules`(`id`) ON DELETE CASCADE;
+
+-- Importazioni di base
+INSERT INTO `zz_imports` (`id_module`, `name`, `class`) VALUES
+((SELECT `id` FROM `zz_modules` WHERE `name` = 'Anagrafiche'), 'Anagrafiche', 'Modules\\Anagrafiche\\Import\\CSV'),
+((SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'Articoli', 'Modules\\Articoli\\Import\\CSV');
diff --git a/update/tables.php b/update/tables.php
index cb1812712..8376cd9e3 100755
--- a/update/tables.php
+++ b/update/tables.php
@@ -112,6 +112,7 @@ return [
'zz_group_module',
'zz_group_view',
'zz_hooks',
+ 'zz_imports',
'zz_logs',
'zz_modules',
'zz_operations',