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')) {
|
||||
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|',
|
||||
],
|
||||
];
|
||||
|
@ -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']);
|
||||
}
|
||||
}
|
||||
|
@ -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'];
|
||||
|
||||
|
@ -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]."<br>";
|
||||
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 '
|
||||
</div>
|
||||
</form>';
|
||||
?>
|
||||
|
||||
echo '
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
<?php if ($first_row){ ?>
|
||||
$('#first_row').prop('checked', false);
|
||||
<?php } ?>
|
||||
$('#save').html( "<i class='fa fa-flag-checkered'></i> <?= 'Avvia importazione' ?> ");
|
||||
$(document).ready(function(){';
|
||||
|
||||
if ($first_row) {
|
||||
echo '
|
||||
$("#first_row").prop("checked", false).trigger("change");';
|
||||
}
|
||||
|
||||
echo '
|
||||
$("#save").html("<i class=\"fa fa-flag-checkered\"></i> '.tr('Avvia importazione').'");
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
</script>';
|
||||
}
|
||||
|
@ -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 .= '
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
|
@ -76,6 +76,16 @@ class Import
|
||||
$fields = require $import['import'];
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user