diff --git a/modules/anagrafiche/import.php b/modules/anagrafiche/import.php
index 87d314078..50c2da12d 100644
--- a/modules/anagrafiche/import.php
+++ b/modules/anagrafiche/import.php
@@ -4,65 +4,54 @@ include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'import':
-
- foreach ($data as $key => $value) {
-
- if (!empty($value)){
-
- (array) $idtipoanagrafica = $data[$key]['tipologia'];
- unset($data[$key]['tipologia']);
+ foreach ($data as $key => $value) {
+ if (!empty($value)) {
+ $idtipoanagrafica = (array) $data[$key]['tipologia'];
+ unset($data[$key]['tipologia']);
+ // Insert o update
+ $insert = true;
+ if (!empty($primary_key)) {
+ $rs = $dbo->select('an_anagrafiche', $primary_key, [
+ $primary_key => $data[$key][$primary_key],
+ ]);
- //update
- if (post('primary_key')!=''){
+ $insert = !in_array($data[$key][$primary_key], $rs[0]);
+ }
- $primary_key = post('primary_key');
+ // Insert
+ if ($insert) {
+ $dbo->insert('an_anagrafiche', $data[$key]);
- $rs = $dbo->select('an_anagrafiche', $primary_key, [$primary_key => $data[$key][$primary_key]]);
-
- if (!in_array($data[$key][$primary_key], $rs[0])) {
-
- //insert
- $dbo->insert('an_anagrafiche', $data[$key]);
-
- //campi extra
- if (count($idtipoanagrafica)>0){
- // Aggiornamento della tipologia di anagrafiche
- $dbo->sync('an_tipianagrafiche_anagrafiche', [
- 'idanagrafica' => $dbo->lastInsertedID(),
- ], [
- 'idtipoanagrafica' => (array) $idtipoanagrafica,
- ]);
- }
-
- }else{
- //update
- $dbo->update('an_anagrafiche', $data[$key], [$primary_key => $data[$key][$primary_key]]);
+ // Campi extra
+ if (count($idtipoanagrafica) > 0) {
+ // Aggiornamento della tipologia di anagrafiche
+ $dbo->sync('an_tipianagrafiche_anagrafiche', [
+ 'idanagrafica' => $dbo->lastInsertedID(),
+ ], [
+ 'idtipoanagrafica' => (array) $idtipoanagrafica,
+ ]);
}
}
+ // Update
+ else {
+ $dbo->update('an_anagrafiche', $data[$key], [$primary_key => $data[$key][$primary_key]]);
+ }
+
+ unset($data[$key]);
+ }
+ }
-
- unset($data[$key]);
-
-
-
- }
-
- }
-
-
break;
-
-
}
return [
[
'field' => 'codice',
'label' => 'Codice',
- 'primary_key' => '1',
+ 'primary_key' => true,
],
[
'field' => 'ragione_sociale',
@@ -119,7 +108,12 @@ return [
[
'field' => 'id_nazione',
'label' => 'Nazione',
- 'other' => 'nazione',
+ 'names' => [
+ 'Nazione',
+ 'id_nazione',
+ 'idnazione',
+ 'nazione',
+ ],
'query' => 'SELECT id as result FROM an_nazioni WHERE LOWER(nome) = LOWER(|value|)',
],
[
@@ -129,12 +123,22 @@ return [
[
'field' => 'idpagamento_vendite',
'label' => 'ID Pagamento',
- 'other' => 'idpagamento',
+ 'names' => [
+ 'Pagamento',
+ 'ID Pagamento',
+ 'id_pagamento',
+ 'idpagamento_vendite',
+ 'idpagamento',
+ ],
],
[
'field' => 'tipologia',
'label' => 'Tipologia',
- 'other' => 'idtipo',
+ 'names' => [
+ 'Tipologia',
+ 'tipologia',
+ 'idtipo',
+ ],
'query' => 'SELECT idtipoanagrafica as result FROM an_tipianagrafiche WHERE descrizione = |value|',
],
];
diff --git a/modules/anagrafiche/init.php b/modules/anagrafiche/init.php
index 2859bf5a6..2ca3722bf 100644
--- a/modules/anagrafiche/init.php
+++ b/modules/anagrafiche/init.php
@@ -5,6 +5,9 @@ include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$records = $dbo->fetchArray('SELECT *, (SELECT GROUP_CONCAT(an_tipianagrafiche.idtipoanagrafica) FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=an_anagrafiche.idanagrafica) AS idtipianagrafica, (SELECT GROUP_CONCAT(idagente) FROM an_anagrafiche_agenti WHERE idanagrafica=an_anagrafiche.idanagrafica) AS idagenti, (SELECT GROUP_CONCAT(descrizione) FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=an_anagrafiche.idanagrafica) AS tipianagrafica FROM an_anagrafiche GROUP BY idanagrafica HAVING idanagrafica='.prepare($id_record).' '.Modules::getAdditionalsQuery($id_module));
- $records[0]['lat'] = floatval($records[0]['lat']);
- $records[0]['lng'] = floatval($records[0]['lng']);
+ // Cast per latitudine e longitudine
+ if (!empty($records)) {
+ $records[0]['lat'] = floatval($records[0]['lat']);
+ $records[0]['lng'] = floatval($records[0]['lng']);
+ }
}
diff --git a/modules/import/actions.php b/modules/import/actions.php
index 064805c4d..3ff03cb6e 100644
--- a/modules/import/actions.php
+++ b/modules/import/actions.php
@@ -19,7 +19,7 @@ switch (post('op')) {
$csv = Import::getFile($id_record, $records[0]['id'], [
'headers' => $first_row,
]);
-
+
// Interpretazione dei dati
$data = [];
foreach ($csv as $row) {
@@ -45,6 +45,8 @@ switch (post('op')) {
$data[] = $data_row;
}
+ $primary_key = post('primary_key');
+
// Richiamo delle operazioni specifiche
include $imports[$id_record]['import'];
diff --git a/modules/import/edit.php b/modules/import/edit.php
index a82631b0f..a479a6560 100644
--- a/modules/import/edit.php
+++ b/modules/import/edit.php
@@ -5,7 +5,6 @@ include_once __DIR__.'/../../core.php';
if (empty($id_record)) {
require $docroot.'/add.php';
} else {
-
// Inclusione del file del modulo per eventuale HTML personalizzato
include $imports[$id_record]['import'];
@@ -24,7 +23,7 @@ if (empty($id_record)) {
'text' => $value['label'],
];
- if ($value['primary_key']){
+ if ($value['primary_key']) {
$primary_key = $value['field'];
}
}
@@ -66,9 +65,7 @@ if (empty($id_record)) {
// Individuazione delle corrispondenze
$selected = null;
foreach ($fields as $key => $value) {
- //print_r($value);
- //echo $rows[0][$column]."
";
- if (in_array($rows[0][$column], $value)) {
+ if (in_array($rows[0][$column], $value['names'])) {
$first_row = 1;
$selected = $key;
break;
@@ -108,14 +105,18 @@ if (empty($id_record)) {
echo '
';
-?>
+
+ echo '
-';
}
diff --git a/src/HTMLBuilder/Handler/ChoicesHandler.php b/src/HTMLBuilder/Handler/ChoicesHandler.php
index 25649b2d8..f0ae1bf2b 100644
--- a/src/HTMLBuilder/Handler/ChoicesHandler.php
+++ b/src/HTMLBuilder/Handler/ChoicesHandler.php
@@ -47,6 +47,7 @@ class ChoicesHandler implements HandlerInterface
$values['placeholder'] = isset($values['placeholder']) ? $values['placeholder'] : $values['label'];
// Generazione del codice HTML
+ // "+ this.checked" rende il valore booleano un numero
$result .= '