Ottimizzazzione Database
This commit is contained in:
parent
8f11a2b264
commit
bb47682f03
|
@ -31,11 +31,7 @@ $results['summable'] = [];
|
||||||
|
|
||||||
if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom') {
|
if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom') {
|
||||||
// Conteggio totale
|
// Conteggio totale
|
||||||
$count_query = 'SELECT COUNT(*) as `tot` FROM ('.$result_query.') AS `count`';
|
$results['recordsTotal'] = $dbo->fetchNum($result_query);
|
||||||
$count = $dbo->fetchArray($count_query);
|
|
||||||
if (!empty($count)) {
|
|
||||||
$results['recordsTotal'] = $count[0]['tot'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Filtri di ricerica
|
// Filtri di ricerica
|
||||||
$search_filters = [];
|
$search_filters = [];
|
||||||
|
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||||
|
$id_cliente = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Cliente'")[0]['idtipoanagrafica'];
|
||||||
|
$id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Fornitore'")[0]['idtipoanagrafica'];
|
||||||
|
$id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica'];
|
||||||
|
|
||||||
switch (post('op')) {
|
switch (post('op')) {
|
||||||
case 'update':
|
case 'update':
|
||||||
$post['piva'] = trim(strtoupper($post['piva']));
|
$post['piva'] = trim(strtoupper($post['piva']));
|
||||||
|
@ -183,8 +188,9 @@ switch (post('op')) {
|
||||||
// Inserisco il rapporto dell'anagrafica (cliente, tecnico, ecc)
|
// Inserisco il rapporto dell'anagrafica (cliente, tecnico, ecc)
|
||||||
$dbo->sync('an_tipianagrafiche_anagrafiche', ['idanagrafica' => $new_id], ['idtipoanagrafica' => (array) $idtipoanagrafica]);
|
$dbo->sync('an_tipianagrafiche_anagrafiche', ['idanagrafica' => $new_id], ['idtipoanagrafica' => (array) $idtipoanagrafica]);
|
||||||
|
|
||||||
if (in_array($id_azienda, $post['idtipoanagrafica'])) {
|
if (in_array($id_azienda, $idtipoanagrafica)) {
|
||||||
$dbo->query('UPDATE zz_settings SET valore='.prepare($new_id)." WHERE nome='Azienda predefinita'");
|
Settings::set('Azienda predefinita', $new_id);
|
||||||
|
|
||||||
$_SESSION['infos'][] = tr('Anagrafica Azienda impostata come predefinita. Per ulteriori informazionioni, visitare "Strumenti -> Impostazioni -> Generali".');
|
$_SESSION['infos'][] = tr('Anagrafica Azienda impostata come predefinita. Per ulteriori informazionioni, visitare "Strumenti -> Impostazioni -> Generali".');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,19 +272,13 @@ switch (post('op')) {
|
||||||
|
|
||||||
// Operazioni aggiuntive per il logo
|
// Operazioni aggiuntive per il logo
|
||||||
if (filter('op') == 'link_file') {
|
if (filter('op') == 'link_file') {
|
||||||
$nome = 'Logo stampe';
|
if (Settings::get('Azienda predefinita') == $id_record && filter('nome_allegato') == 'Logo stampe') {
|
||||||
|
|
||||||
if (Settings::get('Azienda predefinita') == $id_record && filter('nome_allegato') == $nome) {
|
|
||||||
$file = $dbo->selectOne('zz_files', ['filename'], [
|
$file = $dbo->selectOne('zz_files', ['filename'], [
|
||||||
'nome' => $nome,
|
'nome' => $nome,
|
||||||
'id_module' => $id_module,
|
'id_module' => $id_module,
|
||||||
'id_record' => $id_record,
|
'id_record' => $id_record,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$dbo->update('zz_settings', [
|
Settings::set('Logo stampe', $nome);
|
||||||
'valore' => $file['filename'],
|
|
||||||
], [
|
|
||||||
'nome' => $nome,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,6 @@
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
|
||||||
$id_cliente = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Cliente'")[0]['idtipoanagrafica'];
|
|
||||||
$id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Fornitore'")[0]['idtipoanagrafica'];
|
|
||||||
$id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica'];
|
|
||||||
|
|
||||||
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));
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ class API extends \Util\Singleton
|
||||||
include $filename;
|
include $filename;
|
||||||
} elseif (
|
} elseif (
|
||||||
!in_array($resource, explode(',', Settings::get('Tabelle escluse per la sincronizzazione API automatica')))
|
!in_array($resource, explode(',', Settings::get('Tabelle escluse per la sincronizzazione API automatica')))
|
||||||
&& $database->fetchNum('SHOW TABLES WHERE `Tables_in_'.$database->getDatabaseName().'` = '.prepare($resource))
|
&& $database->tableExists($resource)
|
||||||
) {
|
) {
|
||||||
$table = $resource;
|
$table = $resource;
|
||||||
|
|
||||||
|
|
|
@ -411,7 +411,7 @@ class Auth extends \Util\Singleton
|
||||||
{
|
{
|
||||||
$database = Database::getConnection();
|
$database = Database::getConnection();
|
||||||
|
|
||||||
if (!$database->isInstalled() || !$database->fetchNum("SHOW TABLES LIKE 'zz_logs'") || Update::isUpdateAvailable()) {
|
if (!$database->isInstalled() || !$database->tableExists('zz_logs') || Update::isUpdateAvailable()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ class Database extends Util\Singleton
|
||||||
public function isInstalled()
|
public function isInstalled()
|
||||||
{
|
{
|
||||||
if (empty($this->is_installed)) {
|
if (empty($this->is_installed)) {
|
||||||
$this->is_installed = $this->isConnected() && $this->fetchNum("SHOW TABLES LIKE 'zz_modules'");
|
$this->is_installed = $this->tableExists('zz_modules');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->is_installed;
|
return $this->is_installed;
|
||||||
|
@ -321,16 +321,28 @@ class Database extends Util\Singleton
|
||||||
*
|
*
|
||||||
* @param string $query Query da eseguire
|
* @param string $query Query da eseguire
|
||||||
*
|
*
|
||||||
* @return array
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function fetchNum($query)
|
public function fetchNum($query)
|
||||||
{
|
{
|
||||||
$result = $this->fetchArray($query);
|
$result = $this->fetchArray('SELECT COUNT(*) as `tot` FROM ('.$query.') AS `count`');
|
||||||
if (is_array($result)) {
|
|
||||||
return count($result);
|
if (!empty($result)) {
|
||||||
|
return $result[0]['tot'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tableExists($table)
|
||||||
|
{
|
||||||
|
$results = null;
|
||||||
|
|
||||||
|
if ($this->isConnected()) {
|
||||||
|
$results = $this->fetchArray("SHOW TABLES LIKE '".$table."'");
|
||||||
|
}
|
||||||
|
|
||||||
|
return !empty($results);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -17,7 +17,7 @@ class Update
|
||||||
{
|
{
|
||||||
$database = Database::getConnection();
|
$database = Database::getConnection();
|
||||||
|
|
||||||
$database_ready = $database->isConnected() && $database->fetchNum("SHOW TABLES LIKE 'updates'");
|
$database_ready = $database->isConnected() && $database->tableExists('updates');
|
||||||
|
|
||||||
// Individuazione di tutti gli aggiornamenti fisicamente presenti
|
// Individuazione di tutti gli aggiornamenti fisicamente presenti
|
||||||
// Aggiornamenti del gestionale
|
// Aggiornamenti del gestionale
|
||||||
|
|
|
@ -91,7 +91,7 @@ $tables = [
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($tables as $table) {
|
foreach ($tables as $table) {
|
||||||
if ($database->fetchNum('SHOW TABLES WHERE `Tables_in_'.$database->getDatabaseName().'` = '.prepare($table))) {
|
if ($database->tableExists($table)) {
|
||||||
$query = 'SHOW COLUMNS FROM `'.$table.'` IN `'.$database->getDatabaseName()."` WHERE Field='|field|'";
|
$query = 'SHOW COLUMNS FROM `'.$table.'` IN `'.$database->getDatabaseName()."` WHERE Field='|field|'";
|
||||||
|
|
||||||
$created_at = $database->fetchArray(str_replace('|field|', 'created_at', $query));
|
$created_at = $database->fetchArray(str_replace('|field|', 'created_at', $query));
|
||||||
|
|
Loading…
Reference in New Issue