mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-22 21:28:08 +01:00
Bugfix e miglioramenti del codice
Miglioramento della gestione degli import.
This commit is contained in:
parent
3b07c603bc
commit
2252101200
@ -4,65 +4,54 @@ include_once __DIR__.'/../../core.php';
|
|||||||
|
|
||||||
switch (post('op')) {
|
switch (post('op')) {
|
||||||
case 'import':
|
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
|
$insert = !in_array($data[$key][$primary_key], $rs[0]);
|
||||||
if (post('primary_key')!=''){
|
}
|
||||||
|
|
||||||
$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]]);
|
// Campi extra
|
||||||
|
if (count($idtipoanagrafica) > 0) {
|
||||||
if (!in_array($data[$key][$primary_key], $rs[0])) {
|
// Aggiornamento della tipologia di anagrafiche
|
||||||
|
$dbo->sync('an_tipianagrafiche_anagrafiche', [
|
||||||
//insert
|
'idanagrafica' => $dbo->lastInsertedID(),
|
||||||
$dbo->insert('an_anagrafiche', $data[$key]);
|
], [
|
||||||
|
'idtipoanagrafica' => (array) $idtipoanagrafica,
|
||||||
//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]]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update
|
||||||
|
else {
|
||||||
|
$dbo->update('an_anagrafiche', $data[$key], [$primary_key => $data[$key][$primary_key]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($data[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
unset($data[$key]);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
[
|
[
|
||||||
'field' => 'codice',
|
'field' => 'codice',
|
||||||
'label' => 'Codice',
|
'label' => 'Codice',
|
||||||
'primary_key' => '1',
|
'primary_key' => true,
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'field' => 'ragione_sociale',
|
'field' => 'ragione_sociale',
|
||||||
@ -119,7 +108,12 @@ return [
|
|||||||
[
|
[
|
||||||
'field' => 'id_nazione',
|
'field' => 'id_nazione',
|
||||||
'label' => 'Nazione',
|
'label' => 'Nazione',
|
||||||
'other' => 'nazione',
|
'names' => [
|
||||||
|
'Nazione',
|
||||||
|
'id_nazione',
|
||||||
|
'idnazione',
|
||||||
|
'nazione',
|
||||||
|
],
|
||||||
'query' => 'SELECT id as result FROM an_nazioni WHERE LOWER(nome) = LOWER(|value|)',
|
'query' => 'SELECT id as result FROM an_nazioni WHERE LOWER(nome) = LOWER(|value|)',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -129,12 +123,22 @@ return [
|
|||||||
[
|
[
|
||||||
'field' => 'idpagamento_vendite',
|
'field' => 'idpagamento_vendite',
|
||||||
'label' => 'ID Pagamento',
|
'label' => 'ID Pagamento',
|
||||||
'other' => 'idpagamento',
|
'names' => [
|
||||||
|
'Pagamento',
|
||||||
|
'ID Pagamento',
|
||||||
|
'id_pagamento',
|
||||||
|
'idpagamento_vendite',
|
||||||
|
'idpagamento',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'field' => 'tipologia',
|
'field' => 'tipologia',
|
||||||
'label' => 'Tipologia',
|
'label' => 'Tipologia',
|
||||||
'other' => 'idtipo',
|
'names' => [
|
||||||
|
'Tipologia',
|
||||||
|
'tipologia',
|
||||||
|
'idtipo',
|
||||||
|
],
|
||||||
'query' => 'SELECT idtipoanagrafica as result FROM an_tipianagrafiche WHERE descrizione = |value|',
|
'query' => 'SELECT idtipoanagrafica as result FROM an_tipianagrafiche WHERE descrizione = |value|',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
@ -5,6 +5,9 @@ include_once __DIR__.'/../../core.php';
|
|||||||
if (isset($id_record)) {
|
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 = $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']);
|
// Cast per latitudine e longitudine
|
||||||
$records[0]['lng'] = floatval($records[0]['lng']);
|
if (!empty($records)) {
|
||||||
|
$records[0]['lat'] = floatval($records[0]['lat']);
|
||||||
|
$records[0]['lng'] = floatval($records[0]['lng']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ switch (post('op')) {
|
|||||||
$csv = Import::getFile($id_record, $records[0]['id'], [
|
$csv = Import::getFile($id_record, $records[0]['id'], [
|
||||||
'headers' => $first_row,
|
'headers' => $first_row,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Interpretazione dei dati
|
// Interpretazione dei dati
|
||||||
$data = [];
|
$data = [];
|
||||||
foreach ($csv as $row) {
|
foreach ($csv as $row) {
|
||||||
@ -45,6 +45,8 @@ switch (post('op')) {
|
|||||||
$data[] = $data_row;
|
$data[] = $data_row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$primary_key = post('primary_key');
|
||||||
|
|
||||||
// Richiamo delle operazioni specifiche
|
// Richiamo delle operazioni specifiche
|
||||||
include $imports[$id_record]['import'];
|
include $imports[$id_record]['import'];
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ include_once __DIR__.'/../../core.php';
|
|||||||
if (empty($id_record)) {
|
if (empty($id_record)) {
|
||||||
require $docroot.'/add.php';
|
require $docroot.'/add.php';
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Inclusione del file del modulo per eventuale HTML personalizzato
|
// Inclusione del file del modulo per eventuale HTML personalizzato
|
||||||
include $imports[$id_record]['import'];
|
include $imports[$id_record]['import'];
|
||||||
|
|
||||||
@ -24,7 +23,7 @@ if (empty($id_record)) {
|
|||||||
'text' => $value['label'],
|
'text' => $value['label'],
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($value['primary_key']){
|
if ($value['primary_key']) {
|
||||||
$primary_key = $value['field'];
|
$primary_key = $value['field'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,9 +65,7 @@ if (empty($id_record)) {
|
|||||||
// Individuazione delle corrispondenze
|
// Individuazione delle corrispondenze
|
||||||
$selected = null;
|
$selected = null;
|
||||||
foreach ($fields as $key => $value) {
|
foreach ($fields as $key => $value) {
|
||||||
//print_r($value);
|
if (in_array($rows[0][$column], $value['names'])) {
|
||||||
//echo $rows[0][$column]."<br>";
|
|
||||||
if (in_array($rows[0][$column], $value)) {
|
|
||||||
$first_row = 1;
|
$first_row = 1;
|
||||||
$selected = $key;
|
$selected = $key;
|
||||||
break;
|
break;
|
||||||
@ -108,14 +105,18 @@ if (empty($id_record)) {
|
|||||||
echo '
|
echo '
|
||||||
</div>
|
</div>
|
||||||
</form>';
|
</form>';
|
||||||
?>
|
|
||||||
|
echo '
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){';
|
||||||
<?php if ($first_row){ ?>
|
|
||||||
$('#first_row').prop('checked', false);
|
if ($first_row) {
|
||||||
<?php } ?>
|
echo '
|
||||||
$('#save').html( "<i class='fa fa-flag-checkered'></i> <?= 'Avvia importazione' ?> ");
|
$("#first_row").prop("checked", false).trigger("change");';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
$("#save").html("<i class=\"fa fa-flag-checkered\"></i> '.tr('Avvia importazione').'");
|
||||||
});
|
});
|
||||||
</script>
|
</script>';
|
||||||
<?php
|
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,7 @@ class ChoicesHandler implements HandlerInterface
|
|||||||
$values['placeholder'] = isset($values['placeholder']) ? $values['placeholder'] : $values['label'];
|
$values['placeholder'] = isset($values['placeholder']) ? $values['placeholder'] : $values['label'];
|
||||||
|
|
||||||
// Generazione del codice HTML
|
// Generazione del codice HTML
|
||||||
|
// "+ this.checked" rende il valore booleano un numero
|
||||||
$result .= '
|
$result .= '
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-addon">
|
<span class="input-group-addon">
|
||||||
|
@ -76,6 +76,16 @@ class Import
|
|||||||
$fields = require $import['import'];
|
$fields = require $import['import'];
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
|
||||||
|
// Impostazione automatica dei nomi "ufficiali" dei campi
|
||||||
|
foreach ($fields as $key => $value) {
|
||||||
|
if (!isset($value['names'])) {
|
||||||
|
$fields[$key]['names'] = [
|
||||||
|
$value['field'],
|
||||||
|
$value['label'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user