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') {
|
||||
// Conteggio totale
|
||||
$count_query = 'SELECT COUNT(*) as `tot` FROM ('.$result_query.') AS `count`';
|
||||
$count = $dbo->fetchArray($count_query);
|
||||
if (!empty($count)) {
|
||||
$results['recordsTotal'] = $count[0]['tot'];
|
||||
}
|
||||
$results['recordsTotal'] = $dbo->fetchNum($result_query);
|
||||
|
||||
// Filtri di ricerica
|
||||
$search_filters = [];
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
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')) {
|
||||
case 'update':
|
||||
$post['piva'] = trim(strtoupper($post['piva']));
|
||||
|
@ -183,8 +188,9 @@ switch (post('op')) {
|
|||
// Inserisco il rapporto dell'anagrafica (cliente, tecnico, ecc)
|
||||
$dbo->sync('an_tipianagrafiche_anagrafiche', ['idanagrafica' => $new_id], ['idtipoanagrafica' => (array) $idtipoanagrafica]);
|
||||
|
||||
if (in_array($id_azienda, $post['idtipoanagrafica'])) {
|
||||
$dbo->query('UPDATE zz_settings SET valore='.prepare($new_id)." WHERE nome='Azienda predefinita'");
|
||||
if (in_array($id_azienda, $idtipoanagrafica)) {
|
||||
Settings::set('Azienda predefinita', $new_id);
|
||||
|
||||
$_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
|
||||
if (filter('op') == 'link_file') {
|
||||
$nome = 'Logo stampe';
|
||||
|
||||
if (Settings::get('Azienda predefinita') == $id_record && filter('nome_allegato') == $nome) {
|
||||
if (Settings::get('Azienda predefinita') == $id_record && filter('nome_allegato') == 'Logo stampe') {
|
||||
$file = $dbo->selectOne('zz_files', ['filename'], [
|
||||
'nome' => $nome,
|
||||
'id_module' => $id_module,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
|
||||
$dbo->update('zz_settings', [
|
||||
'valore' => $file['filename'],
|
||||
], [
|
||||
'nome' => $nome,
|
||||
]);
|
||||
Settings::set('Logo stampe', $nome);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,11 +2,6 @@
|
|||
|
||||
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)) {
|
||||
$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;
|
||||
} elseif (
|
||||
!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;
|
||||
|
||||
|
|
|
@ -411,7 +411,7 @@ class Auth extends \Util\Singleton
|
|||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ class Database extends Util\Singleton
|
|||
public function isInstalled()
|
||||
{
|
||||
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;
|
||||
|
@ -321,16 +321,28 @@ class Database extends Util\Singleton
|
|||
*
|
||||
* @param string $query Query da eseguire
|
||||
*
|
||||
* @return array
|
||||
* @return int
|
||||
*/
|
||||
public function fetchNum($query)
|
||||
{
|
||||
$result = $this->fetchArray($query);
|
||||
if (is_array($result)) {
|
||||
return count($result);
|
||||
$result = $this->fetchArray('SELECT COUNT(*) as `tot` FROM ('.$query.') AS `count`');
|
||||
|
||||
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_ready = $database->isConnected() && $database->fetchNum("SHOW TABLES LIKE 'updates'");
|
||||
$database_ready = $database->isConnected() && $database->tableExists('updates');
|
||||
|
||||
// Individuazione di tutti gli aggiornamenti fisicamente presenti
|
||||
// Aggiornamenti del gestionale
|
||||
|
|
|
@ -91,7 +91,7 @@ $tables = [
|
|||
];
|
||||
|
||||
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|'";
|
||||
|
||||
$created_at = $database->fetchArray(str_replace('|field|', 'created_at', $query));
|
||||
|
|
Loading…
Reference in New Issue