1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

Merge branch 'master' into 2.4.2

This commit is contained in:
Thomas Zilio
2018-07-17 12:08:52 +02:00
42 changed files with 391 additions and 363 deletions

View File

@@ -44,12 +44,17 @@ if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom
$search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]); $search_filters[] = str_replace('|search|', prepare('%'.$piece.'%'), $total['search_inside'][$i]);
} }
} else { } else {
// Per le icone cerco per il campo icon_title // Per le icone cerco nel campo icon_title
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) { if (preg_match('/^icon_(.+?)$/', $total['fields'][$i], $m)) {
$total['search_inside'][$i] = 'icon_title_'.$m[1]; $total['search_inside'][$i] = '`icon_title_'.$m[1].'`';
} }
$search_filters[] = '`'.$total['search_inside'][$i].'` LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%')); // Per i colori cerco nel campo color_title
elseif (preg_match('/^color_(.+?)$/', $total['fields'][$i], $m)) {
$total['search_inside'][$i] = '`color_title_'.$m[1].'`';
}
$search_filters[] = $total['search_inside'][$i].' LIKE '.prepare('%'.trim($columns[$i]['search']['value'].'%'));
} }
} }
} }

View File

@@ -9,8 +9,7 @@ if (Update::isUpdateAvailable() || !$dbo->isInstalled()) {
$has_azienda = $dbo->fetchNum("SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche` $has_azienda = $dbo->fetchNum("SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche`
LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
WHERE `an_tipianagrafiche`.`descrizione` = 'Azienda' AND `an_anagrafiche`.`deleted` = 0") != 0; WHERE `an_tipianagrafiche`.`descrizione` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL") != 0;
$has_user = $dbo->fetchNum('SELECT `id` FROM `zz_users`') != 0; $has_user = $dbo->fetchNum('SELECT `id` FROM `zz_users`') != 0;
$settings = [ $settings = [

View File

@@ -259,7 +259,7 @@ switch (post('op')) {
case 'delete': case 'delete':
// Se l'anagrafica non è l'azienda principale, la disattivo // Se l'anagrafica non è l'azienda principale, la disattivo
if (!in_array($id_azienda, $tipi_anagrafica)) { if (!in_array($id_azienda, $tipi_anagrafica)) {
$dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($id_record).Modules::getAdditionalsQuery($id_module)); $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id_record).Modules::getAdditionalsQuery($id_module));
// Se l'anagrafica è collegata ad un utente lo disabilito // Se l'anagrafica è collegata ad un utente lo disabilito
$dbo->query('UPDATE zz_users SET enabled = 0 WHERE idanagrafica = '.prepare($id_record).Modules::getAdditionalsQuery($id_module)); $dbo->query('UPDATE zz_users SET enabled = 0 WHERE idanagrafica = '.prepare($id_record).Modules::getAdditionalsQuery($id_module));

View File

@@ -18,7 +18,7 @@ echo '
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "multiple": "1", "required": 1, "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = \'Azienda\' AND deleted = 0) ORDER BY descrizione", "value": "'.(isset($idtipoanagrafica) ? $idtipoanagrafica : null).'", "readonly": '.(!empty($readonly_tipo) ? 1 : 0).' ]} {[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "multiple": "1", "required": 1, "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = \'Azienda\' AND deleted_at IS NULL) ORDER BY descrizione", "value": "'.(isset($idtipoanagrafica) ? $idtipoanagrafica : null).'", "readonly": '.(!empty($readonly_tipo) ? 1 : 0).' ]}
</div> </div>
</div>'; </div>';

View File

@@ -12,7 +12,7 @@ switch ($resource) {
$where[] = "descrizione='Cliente'"; $where[] = "descrizione='Cliente'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted=0'; $where[] = 'deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {
@@ -34,7 +34,7 @@ switch ($resource) {
$where[] = "descrizione='Fornitore'"; $where[] = "descrizione='Fornitore'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted=0'; $where[] = 'deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {
@@ -56,7 +56,7 @@ switch ($resource) {
$where[] = "descrizione='Agente'"; $where[] = "descrizione='Agente'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted=0'; $where[] = 'deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {
@@ -91,7 +91,7 @@ switch ($resource) {
$where[] = "descrizione='Tecnico'"; $where[] = "descrizione='Tecnico'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted=0'; $where[] = 'deleted_at IS NULL';
//come tecnico posso aprire attività solo a mio nome //come tecnico posso aprire attività solo a mio nome
$user = Auth::user(); $user = Auth::user();
@@ -118,7 +118,7 @@ switch ($resource) {
} }
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted=0'; $where[] = 'deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {

View File

@@ -9,7 +9,7 @@ switch ($resource) {
// Se l'anagrafica non è l'azienda principale, la disattivo // Se l'anagrafica non è l'azienda principale, la disattivo
if (!in_array($id_azienda, $tipi)) { if (!in_array($id_azienda, $tipi)) {
$dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($request['id'])); $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($request['id']));
} }
break; break;

View File

@@ -15,15 +15,15 @@ switch ($resource) {
break; break;
case 'clienti': case 'clienti':
$q = 'SELECT AN.idanagrafica, $q = 'SELECT AN.idanagrafica,
AN.ragione_sociale, AN.ragione_sociale,
AN.piva, AN.piva,
AN.codice_fiscale, AN.codice_fiscale,
AN.indirizzo, AN.indirizzo,
AN.indirizzo2, AN.indirizzo2,
AN.citta, AN.citta,
AN.cap, AN.cap,
AN.provincia, AN.provincia,
AN.km, AN.km,
IFNULL(AN.lat, 0.00) AS latitudine, IFNULL(AN.lat, 0.00) AS latitudine,
IFNULL(AN.lng, 0.00) AS longitudine, IFNULL(AN.lng, 0.00) AS longitudine,
@@ -35,11 +35,11 @@ switch ($resource) {
AN.sitoweb, AN.sitoweb,
AN.note, AN.note,
AN.idzona, AN.idzona,
AN.deleted AN.deleted_at
FROM (an_anagrafiche AS AN FROM (an_anagrafiche AS AN
LEFT OUTER JOIN an_nazioni NAZIONE ON AN.id_nazione=NAZIONE.id) LEFT OUTER JOIN an_nazioni NAZIONE ON AN.id_nazione=NAZIONE.id)
HAVING 1=1 AND HAVING 1=1 AND
AN.deleted=0 AND AN.deleted_at IS NULL AND
AN.idanagrafica IN (SELECT idanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=1) AN.idanagrafica IN (SELECT idanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=1)
ORDER BY AN.ragione_sociale'; ORDER BY AN.ragione_sociale';

View File

@@ -14,7 +14,7 @@ switch (post('op')) {
// Se l'anagrafica non è l'azienda principale, la disattivo // Se l'anagrafica non è l'azienda principale, la disattivo
if (!in_array($id_azienda, $tipi)) { if (!in_array($id_azienda, $tipi)) {
$dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module)); $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module));
} }
} }

View File

@@ -228,7 +228,7 @@ if (!$cliente) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "Agente principale", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted=1, CONCAT(ragione_sociale, ' (Eliminato)'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione='Agente' AND deleted=0)<?php echo isset($records[0]['idagente']) ? 'OR (an_anagrafiche.idanagrafica = '.prepare($records[0]['idagente']).'AND deleted=1) ' : ''; ?>ORDER BY ragione_sociale", "value": "$idagente$", "extra": "<?php echo ($cliente) ? '' : 'readonly'; ?>" ]} {[ "type": "select", "label": "Agente principale", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, ' (Eliminato)'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione='Agente' AND deleted_at IS NULL)<?php echo isset($records[0]['idagente']) ? 'OR (an_anagrafiche.idanagrafica = '.prepare($records[0]['idagente']).' AND deleted_at IS NOT NULL) ' : ''; ?>ORDER BY ragione_sociale", "value": "$idagente$", "extra": "<?php echo ($cliente) ? '' : 'readonly'; ?>" ]}
</div> </div>
</div> </div>
@@ -336,7 +336,7 @@ if (!$cliente) {
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = 'Azienda' AND deleted = 0) ORDER BY descrizione", "value": "$idtipianagrafica$" ]} {[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = 'Azienda' AND deleted_at IS NULL) ORDER BY descrizione", "value": "$idtipianagrafica$" ]}
<?php <?php
if (in_array($id_azienda, $tipi_anagrafica)) { if (in_array($id_azienda, $tipi_anagrafica)) {
echo ' echo '
@@ -358,7 +358,7 @@ if (!$cliente) {
if (in_array('Cliente', explode(',', $records[0]['tipianagrafica']))) { if (in_array('Cliente', explode(',', $records[0]['tipianagrafica']))) {
?> ?>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "Agenti secondari", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted=1, CONCAT(ragione_sociale, ' (Eliminato)'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione='Agente' AND deleted=0 AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM an_anagrafiche WHERE idanagrafica = <?php echo prepare($records[0]['idanagrafica']); ?> )) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = <?php echo prepare($records[0]['idanagrafica']); ?> ) ) ORDER BY ragione_sociale", "value": "$idagenti$" ]} {[ "type": "select", "label": "Agenti secondari", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, ' (Eliminato)'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione='Agente' AND deleted_at IS NULL AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM an_anagrafiche WHERE idanagrafica = <?php echo prepare($records[0]['idanagrafica']); ?> )) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = <?php echo prepare($records[0]['idanagrafica']); ?> ) ) ORDER BY ragione_sociale", "value": "$idagenti$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@@ -16,7 +16,7 @@ echo '
// Tecnico // Tecnico
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tecnico').'", "name": "idtecnico", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Tecnico\') AND deleted=0 ORDER BY ragione_sociale", "value": "'.$idtecnico.'" ]} {[ "type": "select", "label": "'.tr('Tecnico').'", "name": "idtecnico", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Tecnico\') AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "'.$idtecnico.'" ]}
</div>'; </div>';
// Data di partenza // Data di partenza

View File

@@ -42,7 +42,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
echo Modules::link('Anagrafiche', $records[0]['idagente'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $records[0]['idagente'], null, null, 'class="pull-right"');
} }
?> ?>
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Agente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idagente$" ]} {[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Agente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idagente$" ]}
</div> </div>
</div> </div>
@@ -96,7 +96,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Impianti'); ?>", "name": "matricolaimpianto[]", "values": "query=SELECT idanagrafica, id AS id, IF(nome = '', matricola, CONCAT(matricola, ' - ', nome)) AS descrizione FROM my_impianti WHERE idanagrafica='$idanagrafica$' ORDER BY descrizione", "value": "$matricoleimpianti$" ]} {[ "type": "select", "multiple": "1", "label": "<?php echo tr('Impianti'); ?>", "name": "matricolaimpianto[]", "values": "query=SELECT idanagrafica, id AS id, IF(nome = '', matricola, CONCAT(matricola, ' - ', nome)) AS descrizione FROM my_impianti WHERE idanagrafica='$idanagrafica$' ORDER BY descrizione", "value": "$idimpianti$" ]}
</div> </div>
</div> </div>

View File

@@ -3,5 +3,5 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$records = $dbo->fetchArray('SELECT *, (SELECT descrizione FROM co_staticontratti WHERE id=idstato) AS stato, (SELECT GROUP_CONCAT(my_impianti_contratti.idimpianto) FROM my_impianti_contratti WHERE idcontratto = co_contratti.id) AS matricoleimpianti FROM co_contratti WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module)); $records = $dbo->fetchArray('SELECT *, (SELECT descrizione FROM co_staticontratti WHERE id=idstato) AS stato, (SELECT GROUP_CONCAT(my_impianti_contratti.idimpianto) FROM my_impianti_contratti WHERE idcontratto = co_contratti.id) AS idimpianti FROM co_contratti WHERE id='.prepare($id_record).Modules::getAdditionalsQuery($id_module));
} }

View File

@@ -4,7 +4,7 @@ include_once __DIR__.'/../../core.php';
// Impostazione filtri di default a tutte le selezioni la prima volta // Impostazione filtri di default a tutte le selezioni la prima volta
if (!isset($_SESSION['dashboard']['idtecnici'])) { if (!isset($_SESSION['dashboard']['idtecnici'])) {
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE deleted=0 AND descrizione='Tecnico'"); $rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE deleted_at IS NULL AND descrizione='Tecnico'");
$_SESSION['dashboard']['idtecnici'] = ["'-1'"]; $_SESSION['dashboard']['idtecnici'] = ["'-1'"];
@@ -14,7 +14,7 @@ if (!isset($_SESSION['dashboard']['idtecnici'])) {
} }
if (!isset($_SESSION['dashboard']['idstatiintervento'])) { if (!isset($_SESSION['dashboard']['idstatiintervento'])) {
$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione FROM in_statiintervento WHERE deleted = 0'); $rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione FROM in_statiintervento WHERE deleted_at IS NULL');
$_SESSION['dashboard']['idstatiintervento'] = ["'-1'"]; $_SESSION['dashboard']['idstatiintervento'] = ["'-1'"];
@@ -51,7 +51,7 @@ $checks = '';
$count = 0; $count = 0;
$total = 0; $total = 0;
$rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted = 0 ORDER BY descrizione ASC'); $rs = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC');
$total = count($rs); $total = count($rs);
$allchecksstati = ''; $allchecksstati = '';
@@ -160,7 +160,7 @@ $totale_tecnici = 0; // conteggia tecnici eliminati e non
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica $rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
LEFT OUTER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id LEFT OUTER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id
WHERE an_anagrafiche.deleted=0 AND an_tipianagrafiche.descrizione='Tecnico' ".Modules::getAdditionalsQuery('Interventi').' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC'); WHERE an_anagrafiche.deleted_at IS NULL AND an_tipianagrafiche.descrizione='Tecnico' ".Modules::getAdditionalsQuery('Interventi').' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC');
$total = count($rs); $total = count($rs);
$totale_tecnici += $total; $totale_tecnici += $total;
@@ -182,7 +182,7 @@ for ($i = 0; $i < count($rs); ++$i) {
} }
// TECNICI ELIMINATI CON ALMENO 1 INTERVENTO // TECNICI ELIMINATI CON ALMENO 1 INTERVENTO
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica INNER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica WHERE deleted=1 AND descrizione='Tecnico' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC"); $rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica INNER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica WHERE deleted_at IS NOT NULL AND descrizione='Tecnico' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC");
$total = count($rs); $total = count($rs);
$totale_tecnici += $total; $totale_tecnici += $total;

View File

@@ -5,132 +5,113 @@ include_once __DIR__.'/../../core.php';
include_once Modules::filepath('Fatture di vendita', 'modutil.php'); include_once Modules::filepath('Fatture di vendita', 'modutil.php');
switch (post('op')) { switch (post('op')) {
case 'creafatturavendita': case 'crea_fattura':
$iddocumento_cliente = []; $id_documento_cliente = [];
$totale_n_ddt = 0; $totale_n_ddt = 0;
// Informazioni della fattura
$tipo_documento = $dbo->selectOne('co_tipidocumento', 'id', ['descrizione' => 'Fattura immediata di vendita'])['id'];
$dir = 'entrata'; $dir = 'entrata';
$idiva = get_var('Iva predefinita');
$data = date('Y-m-d');
// Segmenti
$id_fatture = Modules::get('Fatture di vendita')['id'];
if (!isset($_SESSION['m'.$id_fatture]['id_segment'])) {
$segments = Modules::getSegments($id_fatture);
$_SESSION['m'.$id_fatture]['id_segment'] = isset($segments[0]['id']) ? $segments[0]['id'] : null;
}
$id_segment = $_SESSION['m'.$id_fatture]['id_segment'];
// Lettura righe selezionate // Lettura righe selezionate
for ($r = 0; $r < sizeof($id_records); ++$r) { foreach ($id_records as $id) {
$idiva = setting('Iva predefinita'); $id_anagrafica = $dbo->selectOne('dt_ddt', 'idanagrafica', ['id' => $id])['idanagrafica'];
$idddt = $id_records[$r];
$rs_idanagrafica = $dbo->fetchArray("SELECT idanagrafica FROM in_interventi WHERE id='".$id_records[$r]."'"); $righe = $dbo->fetchArray('SELECT * FROM dt_righe_ddt WHERE idddt='.prepare($id).' AND idddt NOT IN (SELECT idddt FROM co_righe_documenti WHERE idddt IS NOT NULL)');
$idanagrafica = $rs_idanagrafica[0]['idanagrafica'];
$q = 'SELECT
*, dt_righe_ddt.id AS idriga
FROM
dt_righe_ddt INNER JOIN dt_ddt ON dt_righe_ddt.idddt=dt_ddt.id
WHERE
idddt='.prepare($idddt).'
AND idddt NOT IN (SELECT idddt FROM co_righe_documenti WHERE idddt IS NOT NULL)
ORDER BY
dt_ddt.data ASC';
$rsi = $dbo->fetchArray($q);
$n_ddt = sizeof($rsi);
$totale_n_ddt += $n_ddt;
// Proseguo solo se i ddt scelti sono fatturabili // Proseguo solo se i ddt scelti sono fatturabili
if ($n_ddt > 0) { if (!empty($righe)) {
//Se non c'è già una fattura appena creata per questo cliente, creo una fattura nuova $id_documento = $id_documento_cliente[$id_anagrafica];
if (empty($iddocumento_cliente[$idanagrafica])) {
$data = date('Y-m-d');
$dir = 'entrata';
$idtipodocumento = '2';
if (empty($_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'])) {
$rs = $dbo->fetchArray('SELECT id FROM zz_segments WHERE predefined = 1 AND id_module = '.prepare(Modules::get('Fatture di vendita')['id']).'LIMIT 0,1');
$_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'] = $rs[0]['id'];
}
$id_segment = $_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'];
// Se non c'è già una fattura appena creata per questo cliente, creo una fattura nuova
if (empty($id_documento)) {
$numero = get_new_numerofattura($data); $numero = get_new_numerofattura($data);
$numero_esterno = get_new_numerosecondariofattura($data); $numero_esterno = get_new_numerosecondariofattura($data);
$idconto = setting('Conto predefinito fatture di vendita'); $idconto = setting('Conto predefinito fatture di vendita');
$campo = ($dir == 'entrata') ? 'idpagamento_vendite' : 'idpagamento_acquisti'; $campo = ($dir == 'entrata') ? 'idpagamento_vendite' : 'idpagamento_acquisti';
// Tipo di pagamento predefinito dall'anagrafica // Tipo di pagamento predefinito dall'anagrafica
$query = 'SELECT id FROM co_pagamenti WHERE id=(SELECT '.$campo.' AS pagamento FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'; $query = 'SELECT id FROM co_pagamenti WHERE id=(SELECT '.$campo.' AS pagamento FROM an_anagrafiche WHERE idanagrafica='.prepare($id_anagrafica).')';
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
$idpagamento = $rs[0]['id']; $idpagamento = $rs[0]['id'];
// Se alla non è stato associato un pagamento predefinito al cliente, leggo il pagamento dalle impostazioni // Se alla non è stato associato un pagamento predefinito al cliente, leggo il pagamento dalle impostazioni
if ($idpagamento == '') { if (empty($idpagamento)) {
$idpagamento = setting('Tipo di pagamento predefinito'); $idpagamento = setting('Tipo di pagamento predefinito');
} }
// Creazione nuova fattura // Creazione nuova fattura
$dbo->query('INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).') )'); $dbo->insert('co_documenti', [
$iddocumento = $dbo->lastInsertedID(); 'numero' => $numero,
$iddocumento_cliente[$idanagrafica] = $iddocumento; 'numero_esterno' => $numero_esterno,
'idanagrafica' => $id_anagrafica,
'idconto' => $idconto,
'idtipodocumento' => $tipo_documento,
'idpagamento' => $idpagamento,
'data' => $data,
'id_segment' => $id_segment,
'#idstatodocumento' => "(SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza')",
'#idsede' => 'IFNULL((SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica='.prepare($id_anagrafica).'), 0)',
]);
$id_documento = $dbo->lastInsertedID();
$id_documento_cliente[$id_anagrafica] = $id_documento;
} }
// Inserimento righe // Inserimento righe
for ($i = 0; $i < sizeof($rsi); ++$i) { foreach ($righe as $riga) {
$qta = $rsi[$i]['qta'] - $rsi[$i]['qta_evasa']; ++$totale_n_ddt;
$qta = $riga['qta'] - $riga['qta_evasa'];
if ($qta > 0) { if ($qta > 0) {
$dbo->query(' $dbo->insert('co_righe_documenti', [
INSERT INTO co_righe_documenti( 'iddocumento' => $id_documento,
iddocumento, 'idarticolo' => $riga['idarticolo'],
idarticolo, 'idddt' => $id,
idddt, 'idiva' => $riga['idiva'],
idiva, 'desc_iva' => $riga['desc_iva'],
desc_iva, 'iva' => $riga['iva'],
iva, 'iva_indetraibile' => $riga['iva_indetraibile'],
iva_indetraibile, 'descrizione' => $riga['descrizione'],
is_descrizione, 'is_descrizione' => $riga['is_descrizione'],
descrizione, 'subtotale' => $riga['subtotale'],
subtotale, 'sconto' => $riga['sconto'],
sconto, 'sconto_unitario' => $riga['sconto_unitario'],
sconto_unitario, 'tipo_sconto' => $riga['tipo_sconto'],
sconto_prc, 'um' => $riga['um'],
tipo_sconto, 'qta' => $qta,
idgruppo, 'abilita_serial' => $riga['abilita_serial'],
abilita_serial, '#order' => '(SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_documento).')',
um, ]);
qta, $id_riga_documento = $dbo->lastInsertedID();
`order`)
VALUES( // Copia dei serial tra le righe
'.$iddocumento_cliente[$idanagrafica].', if (!empty($riga['idarticolo'])) {
'.prepare($rsi[$i]['idarticolo']).', $dbo->query('INSERT INTO mg_prodotti (id_riga_documento, id_articolo, dir, serial, lotto, altro) SELECT '.prepare($id_riga_documento).', '.prepare($riga['idarticolo']).', '.prepare($dir).', serial, lotto, altro FROM mg_prodotti AS t WHERE id_riga_ddt='.prepare($riga['id']));
'.prepare($rsi[$i]['idddt']).', }
'.prepare($rsi[$i]['idiva']).',
'.prepare($rsi[$i]['desc_iva']).',
'.prepare($rsi[$i]['iva']).',
'.prepare($rsi[$i]['iva_indetraibile']).',
'.prepare($rsi[$i]['is_descrizione']).',
'.prepare($rsi[$i]['descrizione']).',
'.prepare($rsi[$i]['subtotale']).',
'.prepare($rsi[$i]['sconto']).',
'.prepare($rsi[$i]['sconto_unitario']).',
'.prepare($rsi[$i]['sconto_prc']).',
'.prepare($rsi[$i]['tipo_sconto']).',
'.prepare($rsi[$i]['idgruppo']).',
'.prepare($rsi[$i]['abilita_serial']).',
'.prepare($rsi[$i]['um']).',
'.prepare($qta).',
(SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($iddocumento).')
)');
// Aggiorno la quantità evasa // Aggiorno la quantità evasa
$dbo->query('UPDATE dt_righe_ddt SET qta_evasa = qta WHERE id='.prepare($rsi[$i]['idriga'])); $dbo->query('UPDATE dt_righe_ddt SET qta_evasa = qta WHERE id='.prepare($riga['id']));
// Aggiorno lo stato ddt // Aggiorno lo stato ddt
$dbo->query('UPDATE dt_ddt SET idstatoddt = (SELECT id FROM dt_statiddt WHERE descrizione="Fatturato") WHERE id='.prepare($rsi[$i]['idddt'])); $dbo->query('UPDATE dt_ddt SET idstatoddt = (SELECT id FROM dt_statiddt WHERE descrizione="Fatturato") WHERE id='.prepare($id));
} }
// Ricalcolo inps, ritenuta e bollo // Ricalcolo inps, ritenuta e bollo
if ($dir == 'entrata') { ricalcola_costiagg_fattura($id_documento);
ricalcola_costiagg_fattura($iddocumento_cliente[$idanagrafica]);
} else {
ricalcola_costiagg_fattura($iddocumento_cliente[$idanagrafica], 0, 0, 0);
}
} }
} }
} }
@@ -162,10 +143,12 @@ switch (post('op')) {
break; break;
} }
return [ $operations = [
'delete-bulk' => tr('Elimina selezionati'), 'delete-bulk' => tr('Elimina selezionati'),
];
'creafatturavendita' => [ if (Modules::get('Ddt di vendita')['id'] == $id_module) {
$operations['crea_fattura'] = [
'text' => tr('Crea fattura'), 'text' => tr('Crea fattura'),
'data' => [ 'data' => [
'msg' => tr('Vuoi davvero creare una fattura per questi interventi?'), 'msg' => tr('Vuoi davvero creare una fattura per questi interventi?'),
@@ -173,5 +156,7 @@ return [
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,
], ],
], ];
]; }
return $operations;

View File

@@ -37,7 +37,7 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
$dbo->query('UPDATE zz_emails SET deleted = 1 WHERE id='.prepare($id_record)); $dbo->query('UPDATE zz_emails SET deleted_at = NOW() WHERE id='.prepare($id_record));
App::flash()->info(tr('Template delle email eliminato!')); App::flash()->info(tr('Template delle email eliminato!'));

View File

@@ -1,5 +1,5 @@
<?php <?php
if (isset($id_record)) { if (isset($id_record)) {
$records = $dbo->fetchArray('SELECT * FROM zz_emails WHERE id='.prepare($id_record).' AND deleted = 0'); $records = $dbo->fetchArray('SELECT * FROM zz_emails WHERE id='.prepare($id_record).' AND deleted_at IS NULL');
} }

View File

@@ -143,11 +143,11 @@ if ($dir == 'entrata') {
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "required": 1, "values": "query=SELECT id, descrizione, (SELECT id FROM co_banche WHERE id_pianodeiconti3 = co_pagamenti.idconto_<?php echo $conto; ?> ) AS idbanca FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento$", "extra": "onchange=\"$('#idbanca').val( $(this).find('option:selected').data('idbanca') ).change(); \" " ]} {[ "type": "select", "label": "<?php echo tr('Pagamento'); ?>", "name": "idpagamento", "required": 1, "values": "query=SELECT id, descrizione, (SELECT id FROM co_banche WHERE id_pianodeiconti3 = co_pagamenti.idconto_<?php echo $conto; ?> LIMIT 0,1) AS idbanca FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento$", "extra": "onchange=\"$('#idbanca').val( $(this).find('option:selected').data('idbanca') ).change(); \" " ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Banca'); ?>", "name": "idbanca", "required": 0, "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted = 0 ORDER BY nome ASC", "value": "$idbanca$" ]} {[ "type": "select", "label": "<?php echo tr('Banca'); ?>", "name": "idbanca", "required": 0, "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca$" ]}
</div> </div>
</div> </div>

View File

@@ -208,7 +208,7 @@ if (empty($new_codice)) {
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Stato intervento'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted = 0", "value": "<?php echo $idstatointervento; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Stato intervento'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "<?php echo $idstatointervento; ?>" ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-2">

View File

@@ -7,7 +7,7 @@ switch ($resource) {
$dbo->query('UPDATE in_interventi_tecnici SET uid = id WHERE uid IS NULL'); $dbo->query('UPDATE in_interventi_tecnici SET uid = id WHERE uid IS NULL');
// Individuazione degli interventi // Individuazione degli interventi
$query = 'SELECT in_interventi_tecnici.id AS idriga, in_interventi_tecnici.idintervento, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS cliente, richiesta, orario_inizio, orario_fine, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico, summary FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE CAST(orario_inizio AS DATE) BETWEEN CURDATE()-INTERVAL 7 DAY AND CURDATE()+INTERVAL 3 MONTH AND deleted=0'; $query = 'SELECT in_interventi_tecnici.id AS idriga, in_interventi_tecnici.idintervento, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS cliente, richiesta, orario_inizio, orario_fine, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico, summary FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE CAST(orario_inizio AS DATE) BETWEEN CURDATE()-INTERVAL 7 DAY AND CURDATE()+INTERVAL 3 MONTH AND deleted_at IS NULL';
if (!empty($user['idanagrafica'])) { if (!empty($user['idanagrafica'])) {
$query .= ' AND in_interventi_tecnici.idtecnico = '.prepare($user['idanagrafica']); $query .= ' AND in_interventi_tecnici.idtecnico = '.prepare($user['idanagrafica']);
@@ -55,42 +55,42 @@ switch ($resource) {
$period_start = '2000-01-01'; $period_start = '2000-01-01';
$period_end = date('Y-m-d', strtotime($today.' +7 days')); $period_end = date('Y-m-d', strtotime($today.' +7 days'));
$q = "SELECT `in_interventi`.id, $q = "SELECT `in_interventi`.id,
`in_interventi`.codice, `in_interventi`.codice,
DATE_FORMAT( MAX(`in_interventi`.`data_richiesta`), '%Y%m%d' ) AS `data_richiesta`, DATE_FORMAT( MAX(`in_interventi`.`data_richiesta`), '%Y%m%d' ) AS `data_richiesta`,
`in_interventi`.richiesta, `in_interventi`.richiesta,
`in_interventi`.descrizione, `in_interventi`.descrizione,
`in_interventi`.idtipointervento, `in_interventi`.idtipointervento,
`in_interventi`.idanagrafica, `in_interventi`.idanagrafica,
`an_anagrafiche`.idzona AS zona_anagrafica, `an_anagrafiche`.idzona AS zona_anagrafica,
`in_interventi`.idsede, `in_interventi`.idsede,
`an_sedi`.idzona AS zona_sede, `an_sedi`.idzona AS zona_sede,
`in_interventi`.idstatointervento, `in_interventi`.idstatointervento,
`in_interventi`.informazioniaggiuntive, `in_interventi`.informazioniaggiuntive,
`in_interventi`.idsede, `in_interventi`.idsede,
`in_interventi`.idclientefinale, `in_interventi`.idclientefinale,
`in_interventi`.firma_file, `in_interventi`.firma_file,
IF( MAX(firma_data)='0000-00-00 00:00:00', '', DATE_FORMAT(MAX(firma_data),'%d/%m/%Y %T') ) AS `firma_data`, IF( MAX(firma_data)='0000-00-00 00:00:00', '', DATE_FORMAT(MAX(firma_data),'%d/%m/%Y %T') ) AS `firma_data`,
`in_interventi`.firma_nome, `in_interventi`.firma_nome,
IFNULL((SELECT GROUP_CONCAT( CONCAT(my_impianti.matricola, ' - ', my_impianti.nome) SEPARATOR ', ') IFNULL((SELECT GROUP_CONCAT( CONCAT(my_impianti.matricola, ' - ', my_impianti.nome) SEPARATOR ', ')
FROM (my_impianti_interventi INNER JOIN my_impianti ON my_impianti_interventi.idimpianto=my_impianti.id) FROM (my_impianti_interventi INNER JOIN my_impianti ON my_impianti_interventi.idimpianto=my_impianti.id)
WHERE my_impianti_interventi.idintervento=`in_interventi`.`id`),'') AS `impianti`, WHERE my_impianti_interventi.idintervento=`in_interventi`.`id`),'') AS `impianti`,
DATE_FORMAT( MAX(`orario_fine`), '%Y%m%d' ) AS `data`, DATE_FORMAT( MAX(`orario_fine`), '%Y%m%d' ) AS `data`,
(SELECT GROUP_CONCAT(ragione_sociale SEPARATOR ', ') FROM (`in_interventi_tecnici` INNER JOIN `an_anagrafiche` ON `in_interventi_tecnici`.`idtecnico`=`an_anagrafiche`.`idanagrafica`) WHERE `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id`) AS `tecnici`, (SELECT GROUP_CONCAT(ragione_sociale SEPARATOR ', ') FROM (`in_interventi_tecnici` INNER JOIN `an_anagrafiche` ON `in_interventi_tecnici`.`idtecnico`=`an_anagrafiche`.`idanagrafica`) WHERE `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id`) AS `tecnici`,
`in_statiintervento`.`colore` AS `bgcolor`, `in_statiintervento`.`colore` AS `bgcolor`,
`in_statiintervento`.`descrizione` AS `stato`, `in_statiintervento`.`descrizione` AS `stato`,
`in_interventi`.`idtipointervento` AS `tipo`, `in_interventi`.`idtipointervento` AS `tipo`,
DATE_FORMAT( MAX(`orario_inizio`), '%d/%m/%Y %T' ) AS `orario_inizio_leggibile`, DATE_FORMAT( MAX(`orario_inizio`), '%d/%m/%Y %T' ) AS `orario_inizio_leggibile`,
DATE_FORMAT( MAX(`orario_fine`), '%d/%m/%Y %T' ) AS `orario_fine_leggibile`, DATE_FORMAT( MAX(`orario_fine`), '%d/%m/%Y %T' ) AS `orario_fine_leggibile`,
`orario_inizio`, `orario_fine` `orario_inizio`, `orario_fine`
FROM (`in_interventi` FROM (`in_interventi`
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento`) INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento`)
INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id` INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id`
INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`
LEFT OUTER JOIN `an_sedi` ON `in_interventi`.`idsede`=`an_sedi`.`id` LEFT OUTER JOIN `an_sedi` ON `in_interventi`.`idsede`=`an_sedi`.`id`
GROUP BY `in_interventi`.`id` GROUP BY `in_interventi`.`id`
HAVING (DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) >= '".$period_start."' AND HAVING (DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) >= '".$period_start."' AND
DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) <= '".$period_end."') DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) <= '".$period_end."')
ORDER BY `orario_fine` DESC"; ORDER BY `orario_fine` DESC";
// TODO: rimosse seguenti clausole: // TODO: rimosse seguenti clausole:

View File

@@ -111,7 +111,7 @@ switch ($resource) {
$dbo->query("DELETE FROM in_interventi_tecnici WHERE id='".$rs_sessioni[$i]['id']."'"); $dbo->query("DELETE FROM in_interventi_tecnici WHERE id='".$rs_sessioni[$i]['id']."'");
$rs_per_intervento = $dbo->fetchArray("SELECT * FROM in_interventi_tecnici WHERE idintervento='".$idintervento."'"); $rs_per_intervento = $dbo->fetchArray("SELECT * FROM in_interventi_tecnici WHERE idintervento='".$idintervento."'");
if(sizeof($rs_per_intervento)==0){ if(sizeof($rs_per_intervento)==0){
$dbo->query("UPDATE in_interventi SET deleted=1 WHERE idintervento='".$idintervento."'"); $dbo->query("UPDATE in_interventi SET deleted_at=NOW() WHERE idintervento='".$idintervento."'");
} }
} }
} }

View File

@@ -23,7 +23,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<?php <?php
echo Modules::link('Anagrafiche', $records[0]['idanagrafica'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $records[0]['idanagrafica'], null, null, 'class="pull-right"');
?> ?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "<?php echo $records[0]['flag_completato']; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "<?php echo $records[0]['flag_completato']; ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@@ -116,7 +116,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted = 0", "value": "$idstatointervento$" ]} {[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "$idstatointervento$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@@ -24,11 +24,11 @@ if ($source == 'Attività') {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Tecnico'); ?>", "name": "idtecnico", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Tecnico' AND deleted=0 ORDER BY ragione_sociale" ]} {[ "type": "select", "label": "<?php echo tr('Tecnico'); ?>", "name": "idtecnico", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Tecnico' AND deleted_at IS NULL ORDER BY ragione_sociale" ]}
</div> </div>
</div> </div>

View File

@@ -40,7 +40,7 @@ if (!empty($records[0]['immagine'])) {
<div class="clearfix"></div> <div class="clearfix"></div>
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "extra": "onchange=\"load_preventivi( this.value ); load_contratti( this.value ); $('#idsede').load( '<?php echo $rootdir; ?>/ajax_complete.php?module=Anagrafiche&op=get_sedi_select&idanagrafica='+$('#idanagrafica option:selected').val() ); load_impianti( $('#idanagrafica option:selected').val(), $('#idsede option:selected').val() );\"", "ajax-source": "clienti" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "extra": "onchange=\"load_preventivi( this.value ); load_contratti( this.value ); $('#idsede').load( '<?php echo $rootdir; ?>/ajax_complete.php?module=Anagrafiche&op=get_sedi_select&idanagrafica='+$('#idanagrafica option:selected').val() ); load_impianti( $('#idanagrafica option:selected').val(), $('#idsede option:selected').val() );\"", "ajax-source": "clienti" ]}
</div> </div>
</div> </div>
</div> </div>
@@ -48,7 +48,7 @@ if (!empty($records[0]['immagine'])) {
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Tecnico assegnato'); ?>", "name": "idtecnico", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Tecnico' AND deleted=0 ORDER BY ragione_sociale ASC", "value": "$idtecnico$" ]} {[ "type": "select", "label": "<?php echo tr('Tecnico assegnato'); ?>", "name": "idtecnico", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Tecnico' AND deleted_at IS NULL ORDER BY ragione_sociale ASC", "value": "$idtecnico$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@@ -64,11 +64,11 @@ if ($module['name'] == 'Ordini cliente') {
if ($dir == 'entrata') { if ($dir == 'entrata') {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "<?php echo $records[0]['flag_completato']; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti", "readonly": "<?php echo $records[0]['flag_completato']; ?>" ]}
<?php <?php
} else { } else {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Fornitore' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "readonly": "<?php echo $records[0]['flag_completato']; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Fornitore' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "readonly": "<?php echo $records[0]['flag_completato']; ?>" ]}
<?php <?php
} }
?> ?>

View File

@@ -25,7 +25,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<?php <?php
echo Modules::link('Anagrafiche', $records[0]['idanagrafica'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $records[0]['idanagrafica'], null, null, 'class="pull-right"');
?> ?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@@ -34,7 +34,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
echo Modules::link('Anagrafiche', $records[0]['idagente'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $records[0]['idagente'], null, null, 'class="pull-right"');
} }
?> ?>
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Agente' AND deleted=0 ORDER BY ragione_sociale", "value": "$idagente$" ]} {[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Agente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idagente$" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

View File

@@ -15,7 +15,7 @@ include_once __DIR__.'/../../core.php';
if (!empty($iddocumento)) { if (!empty($iddocumento)) {
// Lettura numero e tipo di documento // Lettura numero e tipo di documento
$query = 'SELECT dir, numero, numero_esterno, data, co_tipidocumento.descrizione AS tdescrizione, idanagrafica AS parent_idanagrafica, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=parent_idanagrafica AND deleted=0) AS ragione_sociale FROM co_documenti LEFT OUTER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='.prepare($iddocumento); $query = 'SELECT dir, numero, numero_esterno, data, co_tipidocumento.descrizione AS tdescrizione, idanagrafica AS parent_idanagrafica, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=parent_idanagrafica AND deleted_at IS NULL) AS ragione_sociale FROM co_documenti LEFT OUTER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='.prepare($iddocumento);
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
$dir = $rs[0]['dir']; $dir = $rs[0]['dir'];
$numero_doc = !empty($rs[0]['numero_esterno']) ? $rs[0]['numero_esterno'] : $rs[0]['numero']; $numero_doc = !empty($rs[0]['numero_esterno']) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];

View File

@@ -75,7 +75,7 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
$dbo->query('UPDATE zz_smtps SET deleted = 1 WHERE id='.prepare($id_record)); $dbo->query('UPDATE zz_smtps SET deleted_at = NOW() WHERE id='.prepare($id_record));
App::flash()->info(tr('Account email eliminato!')); App::flash()->info(tr('Account email eliminato!'));

View File

@@ -3,5 +3,5 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$records = $dbo->fetchArray('SELECT * FROM zz_smtps WHERE id='.prepare($id_record).' AND deleted = 0'); $records = $dbo->fetchArray('SELECT * FROM zz_smtps WHERE id='.prepare($id_record).' AND deleted_at IS NULL');
} }

View File

@@ -37,7 +37,7 @@ switch (post('op')) {
//scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli interventi //scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli interventi
if (count($dbo->fetchArray('SELECT id FROM in_interventi WHERE idstatointervento='.prepare($id_record))) > 0) { if (count($dbo->fetchArray('SELECT id FROM in_interventi WHERE idstatointervento='.prepare($id_record))) > 0) {
$query = 'UPDATE in_statiintervento SET deleted = 1 WHERE idstatointervento='.prepare($id_record).' AND `can_delete`=1'; $query = 'UPDATE in_statiintervento SET deleted_at = NOW() WHERE idstatointervento='.prepare($id_record).' AND `can_delete`=1';
} else { } else {
$query = 'DELETE FROM in_statiintervento WHERE idstatointervento='.prepare($id_record).' AND `can_delete`=1'; $query = 'DELETE FROM in_statiintervento WHERE idstatointervento='.prepare($id_record).' AND `can_delete`=1';
} }

View File

@@ -2,77 +2,88 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
echo ' $tipi_interventi = $dbo->fetchArray('SELECT * FROM in_tipiintervento ORDER BY descrizione');
$tecnici = $dbo->fetchArray("SELECT idanagrafica, ragione_sociale FROM an_anagrafiche WHERE idanagrafica IN (
SELECT idanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica IN (
SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = 'Tecnico'
)
) ORDER BY ragione_sociale");
if (!empty($tecnici)) {
echo '
<form action="" method="post" id="edit-form"> <form action="" method="post" id="edit-form">
<input type="hidden" name="op" value="update"> <input type="hidden" name="op" value="update">
<input type="hidden" name="backto" value="record-list"> <input type="hidden" name="backto" value="record-list">
<table class="table table-striped table-condensed">'; <table class="table table-striped table-condensed">';
$rst = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica, ragione_sociale FROM (an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica) WHERE an_tipianagrafiche.descrizione='Tecnico' ORDER BY ragione_sociale"); foreach ($tecnici as $tecnico) {
for ($t = 0; $t < count($rst); ++$t) {
echo '
<tr>
<th>'.$rst[$t]['ragione_sociale'].'</th>
<th>'.tr('Attività').'</th>
<th>'.tr('Addebito orario').'</th>
<th>'.tr('Addebito km').'</th>
<th>'.tr('Addebito diritto ch.').'</th>
<th>'.tr('Costo orario').'</th>
<th>'.tr('Costo km').'</th>
<th>'.tr('Costo diritto ch.').'</th>
<th width="40"></th>
</tr>';
// Attività
$rsa = $dbo->fetchArray('SELECT * FROM in_tipiintervento ORDER BY descrizione');
for ($a = 0; $a < count($rsa); ++$a) {
//Lettura costi
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($rst[$t]['idanagrafica']).' AND idtipointervento='.prepare($rsa[$a]['idtipointervento']));
echo ' echo '
<tr> <tr>
<td></td> <th>'.$tecnico['ragione_sociale'].'</th>
<td>'.$rsa[$a]['descrizione'].'</td> <th>'.tr('Attività').'</th>
<th>'.tr('Addebito orario').'</th>
<th>'.tr('Addebito km').'</th>
<th>'.tr('Addebito diritto ch.').'</th>
<td> <th>'.tr('Costo orario').'</th>
<input type="text" class="form-control inputmask-decimal" name="costo_ore['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_ore']).'"> <th>'.tr('Costo km').'</th>
</td> <th>'.tr('Costo diritto ch.').'</th>
<th width="40"></th>
</tr>';
<td> // Tipi di interventi
<input type="text" class="form-control inputmask-decimal" name="costo_km['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_km']).'"> foreach ($tipi_interventi as $tipo_intervento) {
</td> // Lettura costi
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($tecnico['idanagrafica']).' AND idtipointervento='.prepare($tipo_intervento['idtipointervento']));
<td> echo '
<input type="text" class="form-control inputmask-decimal" name="costo_dirittochiamata['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_dirittochiamata']).'"> <tr>
</td> <td></td>
<td>'.$tipo_intervento['descrizione'].'</td>
<td> <td>
<input type="text" class="form-control inputmask-decimal" name="costo_ore_tecnico['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_ore_tecnico']).'"> <input type="text" class="form-control inputmask-decimal" name="costo_ore['.$tecnico['idanagrafica'].']['.$tipo_intervento['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_ore']).'">
</td> </td>
<td> <td>
<input type="text" class="form-control inputmask-decimal" name="costo_km_tecnico['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_km_tecnico']).'"> <input type="text" class="form-control inputmask-decimal" name="costo_km['.$tecnico['idanagrafica'].']['.$tipo_intervento['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_km']).'">
</td> </td>
<td> <td>
<input type="text" class="form-control inputmask-decimal" name="costo_dirittochiamata_tecnico['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_dirittochiamata_tecnico']).'"> <input type="text" class="form-control inputmask-decimal" name="costo_dirittochiamata['.$tecnico['idanagrafica'].']['.$tipo_intervento['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_dirittochiamata']).'">
</td> </td>
<td>
<button type="button" class="btn btn-primary" data-toggle="tooltip" title="Importa valori da tariffe standard" onclick="if( confirm(\'Importare i valori dalle tariffe standard?\') ){ $.post( \''.$rootdir.'/modules/tecnici_tariffe/actions.php\', { op: \'import\', idtecnico: \''.$rst[$t]['idanagrafica'].'\', idtipointervento: \''.$rsa[$a]['idtipointervento'].'\' }, function(data){ location.href=\''.$rootdir.'/controller.php?id_module='.$id_module.'\'; } ); }"> <td>
<i class="fa fa-download"></i> <input type="text" class="form-control inputmask-decimal" name="costo_ore_tecnico['.$tecnico['idanagrafica'].']['.$tipo_intervento['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_ore_tecnico']).'">
</button> </td>
</td>
</tr>'; <td>
<input type="text" class="form-control inputmask-decimal" name="costo_km_tecnico['.$tecnico['idanagrafica'].']['.$tipo_intervento['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_km_tecnico']).'">
</td>
<td>
<input type="text" class="form-control inputmask-decimal" name="costo_dirittochiamata_tecnico['.$tecnico['idanagrafica'].']['.$tipo_intervento['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_dirittochiamata_tecnico']).'">
</td>
<td>
<button type="button" class="btn btn-primary" data-toggle="tooltip" title="Importa valori da tariffe standard" onclick="if( confirm(\'Importare i valori dalle tariffe standard?\') ){ $.post( \''.$rootdir.'/modules/tecnici_tariffe/actions.php\', { op: \'import\', idtecnico: \''.$tecnico['idanagrafica'].'\', idtipointervento: \''.$tipo_intervento['idtipointervento'].'\' }, function(data){ location.href=\''.$rootdir.'/controller.php?id_module='.$id_module.'\'; } ); }">
<i class="fa fa-download"></i>
</button>
</td>
</tr>';
}
} }
echo '
</table>
<div class="pull-right">
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva modifiche').'</button>
</div>
<div class="clearfix"></div>
</form>';
} else {
echo '
<p>'.tr('Non sono presenti anagrafiche di tipo "Tecnico"').'</p>';
} }
echo '
</table>
<div class="pull-right">
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva modifiche').'</button>
</div>
<div class="clearfix"></div>';

View File

@@ -6,7 +6,7 @@ switch ($resource) {
case 'anagrafiche_utenti': case 'anagrafiche_utenti':
$query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS "descrizione", `an_tipianagrafiche`.`descrizione` AS optgroup FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC'; $query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS "descrizione", `an_tipianagrafiche`.`descrizione` AS optgroup FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC';
$where[] = 'an_anagrafiche.deleted= 0'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%');

View File

@@ -293,7 +293,7 @@ class App
$fields[] = trim($view['name']); $fields[] = trim($view['name']);
$search_inside[] = !empty($view['search_inside']) ? $view['search_inside'] : $view['name']; $search_inside[] = !empty($view['search_inside']) ? $view['search_inside'] : '`'.$view['name'].'`';
$order_by[] = !empty($view['order_by']) ? $view['order_by'] : '`'.$view['name'].'`'; $order_by[] = !empty($view['order_by']) ? $view['order_by'] : '`'.$view['name'].'`';
$search[] = $view['search']; $search[] = $view['search'];
$slow[] = $view['slow']; $slow[] = $view['slow'];
@@ -352,7 +352,7 @@ class App
$format[] = 0; $format[] = 0;
} }
$search_inside = $fields; $search_inside = $order_by;
return [ return [
'query' => self::replacePlaceholder($query), 'query' => self::replacePlaceholder($query),

View File

@@ -28,7 +28,7 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
if (empty(self::$accounts)) { if (empty(self::$accounts)) {
$database = Database::getConnection(); $database = Database::getConnection();
$results = $database->fetchArray('SELECT * FROM zz_smtps WHERE deleted = 0'); $results = $database->fetchArray('SELECT * FROM zz_smtps WHERE deleted_at IS NULL');
$accounts = []; $accounts = [];
@@ -77,7 +77,7 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
if (empty(self::$templates)) { if (empty(self::$templates)) {
$database = Database::getConnection(); $database = Database::getConnection();
$results = $database->fetchArray('SELECT * FROM zz_emails WHERE deleted = 0'); $results = $database->fetchArray('SELECT * FROM zz_emails WHERE deleted_at IS NULL');
$templates = []; $templates = [];
$references = []; $references = [];

View File

@@ -355,6 +355,25 @@ class Update
// Imposta l'aggiornamento nello stato di esecuzione dello script // Imposta l'aggiornamento nello stato di esecuzione dello script
$database->query('UPDATE `updates` SET `done` = 0 WHERE id = '.prepare($update['id'])); $database->query('UPDATE `updates` SET `done` = 0 WHERE id = '.prepare($update['id']));
// Permessi di default delle viste
if ($database->tableExists('zz_views')) {
$gruppi = $database->fetchArray('SELECT `id` FROM `zz_groups`');
$viste = $database->fetchArray('SELECT `id` FROM `zz_views` WHERE `id` NOT IN (SELECT `id_vista` FROM `zz_group_view`)');
$array = [];
foreach ($viste as $vista) {
foreach ($gruppi as $gruppo) {
$array[] = [
'id_gruppo' => $gruppo['id'],
'id_vista' => $vista['id'],
];
}
}
if (!empty($array)) {
$database->insert('zz_group_view', $array);
}
}
// Normalizzazione dei campi per l'API // Normalizzazione dei campi per l'API
self::executeScript(DOCROOT.'/update/api.php'); self::executeScript(DOCROOT.'/update/api.php');

View File

@@ -20,7 +20,23 @@ echo '
'_NUM_' => $records[0]['numero'], '_NUM_' => $records[0]['numero'],
'_DATE_' => Translator::dateToLocale($records[0]['data_bozza']), '_DATE_' => Translator::dateToLocale($records[0]['data_bozza']),
], ['upper' => true]).'</b> ], ['upper' => true]).'</b>
</div> </div>';
// Elenco impianti
if (!empty($records[0]['idimpianti'])) {
$impianti = $dbo->fetchArray('SELECT nome, matricola FROM my_impianti WHERE id IN ('.$records[0]['idimpianti'].')');
$list = [];
foreach ($impianti as $impianto) {
$list[] = $impianto['nome']." <span style='color:#777;'>(".$impianto['matricola'].')</span>';
}
echo '
<br>
<p class="small-bold">'.tr('Impianti', [], ['upper' => true]).'</p>
<p><small>'.implode(', ', $list).'</small></p>';
}
echo '
</div> </div>
<div class="col-xs-5 col-xs-offset-1"> <div class="col-xs-5 col-xs-offset-1">
@@ -289,12 +305,15 @@ echo '
</table>'; </table>';
// Conclusione // Conclusione
echo ' if (empty($records[0]['fatturabile'])) {
echo '
<p class="text-center"><b>'.tr('Il tutto S.E. & O.').'</b></p> <p class="text-center"><b>'.tr('Il tutto S.E. & O.').'</b></p>
<p class="text-center">'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'</p>'; <p class="text-center">'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'</p>';
}
//Firma // Firma
echo '<div style=\'position:absolute; bottom:'.($settings['margins']['bottom'] + $settings['footer-height']).'px\' > <table > echo '<div style="position:absolute; bottom:'.($settings['margins']['bottom'] + $settings['footer-height']).'px">
<table>
<tr> <tr>
<td style="vertical-align:bottom;" width="50%"> <td style="vertical-align:bottom;" width="50%">
lì, ___________________________ lì, ___________________________

View File

@@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
$module_name = 'Contratti'; $module_name = 'Contratti';
// Lettura info fattura // Lettura info fattura
$records = $dbo->fetchArray('SELECT *, co_contratti.descrizione AS desc_contratto, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=in_interventi.id LIMIT 0,1) AS data, co_contratti.descrizione AS `cdescrizione`, co_contratti.idanagrafica AS `idanagrafica`, co_contratti.costo_orario AS costo_orario , co_contratti.costo_km AS costo_km FROM co_contratti LEFT OUTER JOIN (co_contratti_promemoria LEFT OUTER JOIN in_interventi ON co_contratti_promemoria.idintervento=in_interventi.id) ON co_contratti.id=co_contratti_promemoria.idcontratto WHERE co_contratti.id='.prepare($id_record)); $records = $dbo->fetchArray('SELECT *, co_contratti.descrizione AS desc_contratto, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=in_interventi.id LIMIT 0,1) AS data, (SELECT fatturabile FROM co_staticontratti WHERE id=idstato) AS fatturabile, (SELECT GROUP_CONCAT(my_impianti_contratti.idimpianto) FROM my_impianti_contratti WHERE idcontratto = co_contratti.id) AS idimpianti, co_contratti.descrizione AS `cdescrizione`, co_contratti.idanagrafica AS `idanagrafica`, co_contratti.costo_orario AS costo_orario , co_contratti.costo_km AS costo_km FROM co_contratti LEFT OUTER JOIN (co_contratti_promemoria LEFT OUTER JOIN in_interventi ON co_contratti_promemoria.idintervento=in_interventi.id) ON co_contratti.id=co_contratti_promemoria.idcontratto WHERE co_contratti.id='.prepare($id_record));
$id_cliente = $records[0]['idanagrafica']; $id_cliente = $records[0]['idanagrafica'];
$id_sede = $records[0]['idsede']; $id_sede = $records[0]['idsede'];

View File

@@ -46,7 +46,7 @@ $rs_gen = $dbo->fetchArray("SELECT *,
(SELECT `percentuale` FROM `co_iva` WHERE `id` = `dt_righe_ddt`.`idiva`) AS perc_iva, (SELECT `percentuale` FROM `co_iva` WHERE `id` = `dt_righe_ddt`.`idiva`) AS perc_iva,
IFNULL((SELECT peso_lordo FROM mg_articoli WHERE id=idarticolo),0) * qta AS peso_lordo, IFNULL((SELECT peso_lordo FROM mg_articoli WHERE id=idarticolo),0) * qta AS peso_lordo,
IFNULL((SELECT volume FROM mg_articoli WHERE id=idarticolo),0) * qta AS volume IFNULL((SELECT volume FROM mg_articoli WHERE id=idarticolo),0) * qta AS volume
FROM `dt_righe_ddt` WHERE idddt=".prepare($id_record)); FROM `dt_righe_ddt` WHERE idddt=".prepare($id_record).' ORDER BY `order`');
foreach ($rs_gen as $r) { foreach ($rs_gen as $r) {
$count = 0; $count = 0;
$count += ceil(strlen($r['descrizione']) / $autofill['words']); $count += ceil(strlen($r['descrizione']) / $autofill['words']);

View File

@@ -1,26 +1,5 @@
<?php <?php
/*
* Inserimento valori di default
*/
// Permessi di default delle viste
$gruppi = $database->fetchArray('SELECT `id` FROM `zz_groups`');
$results = $database->fetchArray('SELECT `id` FROM `zz_views` WHERE `id` NOT IN (SELECT `id_vista` FROM `zz_group_view`)');
$array = [];
foreach ($results as $result) {
foreach ($gruppi as $gruppo) {
$array[] = [
'id_gruppo' => $gruppo['id'],
'id_vista' => $result['id'],
];
}
}
if (!empty($array)) {
$database->insert('zz_group_view', $array);
}
/* /*
* Fix * Fix
*/ */

View File

@@ -1,26 +1,5 @@
<?php <?php
/*
* Inserimento valori di default
*/
// Permessi di default delle viste
$gruppi = $database->fetchArray('SELECT `id` FROM `zz_groups`');
$results = $database->fetchArray('SELECT `id` FROM `zz_views` WHERE `id` NOT IN (SELECT `id_vista` FROM `zz_group_view`)');
$array = [];
foreach ($results as $result) {
foreach ($gruppi as $gruppo) {
$array[] = [
'id_gruppo' => $gruppo['id'],
'id_vista' => $result['id'],
];
}
}
if (!empty($array)) {
$database->insert('zz_group_view', $array);
}
/* /*
* Rimozione file e cartelle deprecati * Rimozione file e cartelle deprecati
*/ */

View File

@@ -196,7 +196,8 @@ UPDATE `co_documenti` SET `id_segment`='2' WHERE `idtipodocumento` IN (SELECT `i
-- Innesto modulo segmenti sotto "Strumenti" -- Innesto modulo segmenti sotto "Strumenti"
INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES
(NULL, 'Segmenti', 'Segmenti', 'segmenti', '{ "main_query": [ { "type": "table", "fields": "id, Nome, Modulo, Maschera, Note, Predefinito", "query": "SELECT `id`, (IF(predefined=1, '''', ''No'')) AS `Predefinito`, `name` AS `Nome`, (SELECT name FROM zz_modules WHERE id = zz_segments.id_module) AS Modulo, `pattern` AS `Maschera`, `note` AS `Note` FROM `zz_segments` HAVING 2=2 ORDER BY name, id_module"} ]}', '', 'fa fa-database', '2.4', '2.4', 1, (SELECT `id` FROM `zz_modules` `m` WHERE `name` = 'Strumenti'), 1, 1); (NULL, 'Segmenti', 'Segmenti', 'segmenti', '{ "main_query": [ { "type": "table", "fields": "id, Nome, Modulo, Maschera, Note, Predefinito", "query": "SELECT `id`, (IF(predefined=1, '''', ''No'')) AS `Predefinito`, `name` AS `Nome`, (SELECT name FROM zz_modules WHERE id = zz_segments.id_module) AS Modulo, `pattern` AS `Maschera`, `note` AS `Note` FROM `zz_segments` HAVING 2=2 ORDER BY name, id_module"} ]}', '', 'fa fa-database', '2.4', '2.4', 1, NULL, 1, 1);
UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Segmenti' AND `t2`.`name` = 'Strumenti') SET `t1`.`parent` = `t2`.`id`;
-- Aggiorno widget Fatturato con i sezionali -- Aggiorno widget Fatturato con i sezionali
UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT(SUM((SELECT SUM(subtotale+iva-sconto) FROM co_righe_documenti WHERE iddocumento=co_documenti.id)+iva_rivalsainps+rivalsainps+bollo-ritenutaacconto), 2), ",", "#"), ".", ","), "#", "."), "&euro;") AS dato FROM co_documenti WHERE idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir="entrata") |segment| AND data >= "|period_start|" AND data <= "|period_end|" AND 1=1' WHERE `zz_widgets`.`name` = 'Fatturato'; UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT(SUM((SELECT SUM(subtotale+iva-sconto) FROM co_righe_documenti WHERE iddocumento=co_documenti.id)+iva_rivalsainps+rivalsainps+bollo-ritenutaacconto), 2), ",", "#"), ".", ","), "#", "."), "&euro;") AS dato FROM co_documenti WHERE idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir="entrata") |segment| AND data >= "|period_start|" AND data <= "|period_end|" AND 1=1' WHERE `zz_widgets`.`name` = 'Fatturato';
@@ -314,19 +315,14 @@ CREATE TABLE IF NOT EXISTS `co_banche` (
) ENGINE=InnoDB; ) ENGINE=InnoDB;
-- Innesto modulo per gestione banche -- Innesto modulo per gestione banche
INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Banche', 'Banche', 'banche', 'SELECT |select| FROM `co_banche` WHERE 1=1 AND deleted = 0 GROUP BY `nome` HAVING 2=2', '', 'fa fa-university', '2.4', '2.4', '1', (SELECT `id` FROM `zz_modules` m WHERE `name` = 'Tabelle'), '1', '1'); INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Banche', 'Banche', 'banche', 'SELECT |select| FROM `co_banche` WHERE 1=1 AND deleted = 0 GROUP BY `nome` HAVING 2=2', '', 'fa fa-university', '2.4', '2.4', '1', NULL, '1', '1');
UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Banche' AND `t2`.`name` = 'Tabelle') SET `t1`.`parent` = `t2`.`id`;
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default`) VALUES INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `summable`, `default`) VALUES
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'id', 'co_banche.id', 0, 0, 0, 0, '', '', 1, 0, 0), (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'id', 'co_banche.id', 0, 0, 0, 0, 1, 0, 0),
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Nome', 'co_banche.nome', 0, 0, 0, 0, '', '', 1, 0, 0), (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Nome', 'co_banche.nome', 0, 0, 0, 0, 1, 0, 0),
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Filiale', 'co_banche.filiale', 0, 0, 0, 0, '', '', 1, 0, 0), (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Filiale', 'co_banche.filiale', 0, 0, 0, 0, 1, 0, 0),
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'IBAN', 'co_banche.iban', 0, 0, 0, 0, '', '', 1, 0, 0); (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'IBAN', 'co_banche.iban', 0, 0, 0, 0, 1, 0, 0);
INSERT INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES
((SELECT `id` FROM `zz_groups` WHERE `nome` = 'Amministratori'), (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'id')),
((SELECT `id` FROM `zz_groups` WHERE `nome` = 'Amministratori'), (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'Nome')),
((SELECT `id` FROM `zz_groups` WHERE `nome` = 'Amministratori'), (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'Filiale')),
((SELECT `id` FROM `zz_groups` WHERE `nome` = 'Amministratori'), (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'IBAN'));
-- Aggiungo campi in an_anagrafiche con riferimento banche -- Aggiungo campi in an_anagrafiche con riferimento banche
ALTER TABLE `an_anagrafiche` ADD `idbanca_vendite` INT(11) NOT NULL AFTER `idconto_cliente`, ADD `idbanca_acquisti` INT(11) NOT NULL AFTER `idbanca_vendite`; ALTER TABLE `an_anagrafiche` ADD `idbanca_vendite` INT(11) NOT NULL AFTER `idconto_cliente`, ADD `idbanca_acquisti` INT(11) NOT NULL AFTER `idbanca_vendite`;

View File

@@ -1,26 +1,5 @@
<?php <?php
/*
* Inserimento valori di default
*/
// Permessi di default delle viste
$gruppi = $database->fetchArray('SELECT `id` FROM `zz_groups`');
$results = $database->fetchArray('SELECT `id` FROM `zz_views` WHERE `id` NOT IN (SELECT `id_vista` FROM `zz_group_view`)');
$array = [];
foreach ($results as $result) {
foreach ($gruppi as $gruppo) {
$array[] = [
'id_gruppo' => $gruppo['id'],
'id_vista' => $result['id'],
];
}
}
if (!empty($array)) {
$database->insert('zz_group_view', $array);
}
// Script per aggiornare le date dei movimenti con le date dei documenti // Script per aggiornare le date dei movimenti con le date dei documenti
$rs = $dbo->fetchArray('SELECT * FROM mg_movimenti'); $rs = $dbo->fetchArray('SELECT * FROM mg_movimenti');

View File

@@ -53,16 +53,6 @@ UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Modelli
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default`) VALUES (NULL, (SELECT id FROM zz_modules WHERE name='Modelli prima nota'), 'id', 'co_movimenti_modelli.id', '0', '1', '0', '0', NULL, NULL, '0', '0', '1'); INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default`) VALUES (NULL, (SELECT id FROM zz_modules WHERE name='Modelli prima nota'), 'id', 'co_movimenti_modelli.id', '0', '1', '0', '0', NULL, NULL, '0', '0', '1');
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default`) VALUES (NULL, (SELECT id FROM zz_modules WHERE name='Modelli prima nota'), 'Causale predefinita', 'co_movimenti_modelli.descrizione', '1', '1', '0', '0', NULL, NULL, '1', '0', '1'); INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default`) VALUES (NULL, (SELECT id FROM zz_modules WHERE name='Modelli prima nota'), 'Causale predefinita', 'co_movimenti_modelli.descrizione', '1', '1', '0', '0', NULL, NULL, '1', '0', '1');
INSERT INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES
(1, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='id' )),
(1, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='Causale predefinita' )),
(2, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='id' )),
(2, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='Causale predefinita' )),
(3, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='id' )),
(3, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='Causale predefinita' )),
(4, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='id' )),
(4, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Modelli prima nota') AND name='Causale predefinita' ));
-- Widget per stampa calendario -- Widget per stampa calendario
INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help` ) VALUES (NULL, 'Stampa calendario', 'print', '1', 'controller_top', 'col-md-12', NULL, '#4ccc4c', 'fa fa-print', '', './modules/dashboard/widgets/stampa_calendario.dashboard.php', 'popup', '', 'Stampa calendario', '1', '7', NULL); INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help` ) VALUES (NULL, 'Stampa calendario', 'print', '1', 'controller_top', 'col-md-12', NULL, '#4ccc4c', 'fa fa-print', '', './modules/dashboard/widgets/stampa_calendario.dashboard.php', 'popup', '', 'Stampa calendario', '1', '7', NULL);
@@ -145,22 +135,10 @@ UPDATE `zz_views` SET `query` = 'CONCAT(mg_movimenti.qta,'' '', (SELECT um FROM
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Data', 'mg_movimenti.data', 5, 1, 0, 1, 1, 1); ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Data', 'mg_movimenti.data', 5, 1, 0, 1, 1, 1);
INSERT INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES
(1, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Movimenti') AND name='Data' )),
(2, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Movimenti') AND name='Data' )),
(3, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Movimenti') AND name='Data' )),
(4, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Movimenti') AND name='Data' ));
-- Aggiungo colonna impianti per i contratti -- Aggiungo colonna impianti per i contratti
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Contratti'), 'Impianti', '(SELECT IF(nome = '''', GROUP_CONCAT(matricola SEPARATOR ''<br>''), GROUP_CONCAT(matricola, '' - '', nome SEPARATOR ''<br>'')) FROM my_impianti INNER JOIN my_impianti_contratti ON my_impianti.id = my_impianti_contratti.idimpianto WHERE my_impianti_contratti.idcontratto = co_contratti.id)', 4, 1, 0, 0, 0, 1); ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Contratti'), 'Impianti', '(SELECT IF(nome = '''', GROUP_CONCAT(matricola SEPARATOR ''<br>''), GROUP_CONCAT(matricola, '' - '', nome SEPARATOR ''<br>'')) FROM my_impianti INNER JOIN my_impianti_contratti ON my_impianti.id = my_impianti_contratti.idimpianto WHERE my_impianti_contratti.idcontratto = co_contratti.id)', 4, 1, 0, 0, 0, 1);
INSERT INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES
(1, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Contratti') AND name='Impianti' )),
(2, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Contratti') AND name='Impianti' )),
(3, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Contratti') AND name='Impianti' )),
(4, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Contratti') AND name='Impianti' ));
-- Tempo standard per attività -- Tempo standard per attività
ALTER TABLE `in_tipiintervento` ADD `tempo_standard` DECIMAL(10,2) NULL AFTER `costo_diritto_chiamata_tecnico`; ALTER TABLE `in_tipiintervento` ADD `tempo_standard` DECIMAL(10,2) NULL AFTER `costo_diritto_chiamata_tecnico`;
@@ -239,12 +217,6 @@ UPDATE `or_righe_ordini` SET `abilita_serial` = 0 WHERE `idarticolo` NOT IN (SEL
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Preventivi'), 'idanagrafica', 'co_preventivi.idanagrafica', 0, 0, 0, 0, 0, 1); ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Preventivi'), 'idanagrafica', 'co_preventivi.idanagrafica', 0, 0, 0, 0, 0, 1);
INSERT INTO `zz_group_view` (`id_gruppo`, `id_vista`) VALUES
(1, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Preventivi') AND name='idanagrafica' )),
(2, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Preventivi') AND name='idanagrafica' )),
(3, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Preventivi') AND name='idanagrafica' )),
(4, (SELECT id FROM `zz_views` WHERE id_module=(SELECT id FROM zz_modules WHERE name='Preventivi') AND name='idanagrafica' ));
-- Fix name, title e order stampa ordine fornitore senza costi -- Fix name, title e order stampa ordine fornitore senza costi
UPDATE `zz_prints` SET `name` = 'Ordine fornitore (senza costi)', `title` = 'Ordine fornitore (senza costi)', `order` = 1 WHERE `zz_prints`.`name` = 'Ordine fornitore' AND options = '{"pricing":false}' AND `zz_prints`.`id_module` = (SELECT id FROM zz_modules WHERE name='Ordini fornitore') ; UPDATE `zz_prints` SET `name` = 'Ordine fornitore (senza costi)', `title` = 'Ordine fornitore (senza costi)', `order` = 1 WHERE `zz_prints`.`name` = 'Ordine fornitore' AND options = '{"pricing":false}' AND `zz_prints`.`id_module` = (SELECT id FROM zz_modules WHERE name='Ordini fornitore') ;
-- Stampa ordine fornitore con costi costi -- Stampa ordine fornitore con costi costi
@@ -393,4 +365,89 @@ UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(\" \", REPLACE(REPLACE(REPLA
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `enabled`, `default`) VALUES INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `enabled`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'Tipo', 'co_tipidocumento.descrizione', 4, 1, 0, 1, 1); ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'Tipo', 'co_tipidocumento.descrizione', 4, 1, 0, 1, 1);
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `enabled`, `default`) VALUES INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `enabled`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), 'Tipo', 'co_tipidocumento.descrizione', 4, 1, 0, 1, 1); ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), 'Tipo',
'co_tipidocumento.descrizione', 4, 1, 0, 1, 1);
-- Aggiunta di alcuni filtri di base
INSERT INTO `zz_group_module` (`id`, `idgruppo`, `idmodule`, `name`, `clause`, `position`, `enabled`, `default`) VALUES
(NULL, (SELECT `id` FROM `zz_groups` WHERE `nome` = 'Clienti'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Ddt di vendita'), 'Mostra ddt di vendita ai clienti coinvolti', 'dt_ddt.idanagrafica=|idanagrafica|', 'WHR', '0', '1'),
(NULL, (SELECT `id` FROM `zz_groups` WHERE `nome` = 'Clienti'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Ordini cliente'), 'Mostra ordini cliente ai clienti coinvolti', 'or_ordini.idanagrafica=|idanagrafica|', 'WHR', '0', '1'),
(NULL, (SELECT `id` FROM `zz_groups` WHERE `nome` = 'Clienti'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'Mostra fatture di vendita ai clienti coinvolti', 'co_documenti.idanagrafica=|idanagrafica|', 'WHR', '0', '1');
-- Sostituzione deleted con deleted_at
ALTER TABLE `co_banche` ADD `deleted_at` timestamp NULL DEFAULT NULL;
UPDATE `co_banche` SET `deleted_at` = NOW() WHERE `deleted` = 1;
ALTER TABLE `co_banche` DROP `deleted`;
ALTER TABLE `an_anagrafiche` ADD `deleted_at` timestamp NULL DEFAULT NULL;
UPDATE `an_anagrafiche` SET `deleted_at` = NOW() WHERE `deleted` = 1;
ALTER TABLE `an_anagrafiche` DROP `deleted`;
ALTER TABLE `in_statiintervento` ADD `deleted_at` timestamp NULL DEFAULT NULL;
UPDATE `in_statiintervento` SET `deleted_at` = NOW() WHERE `deleted` = 1;
ALTER TABLE `in_statiintervento` DROP `deleted`;
ALTER TABLE `zz_emails` ADD `deleted_at` timestamp NULL DEFAULT NULL;
UPDATE `zz_emails` SET `deleted_at` = NOW() WHERE `deleted` = 1;
ALTER TABLE `zz_emails` DROP `deleted`;
ALTER TABLE `zz_smtp` ADD `deleted_at` timestamp NULL DEFAULT NULL;
UPDATE `zz_smtp` SET `deleted_at` = NOW() WHERE `deleted` = 1;
ALTER TABLE `zz_smtp` DROP `deleted`;
ALTER TABLE `in_interventi` ADD `deleted_at` timestamp NULL DEFAULT NULL;
UPDATE `in_interventi` SET `deleted_at` = NOW() WHERE `deleted` = 1;
ALTER TABLE `in_interventi` DROP `deleted`;
UPDATE `zz_widgets` SET `query` = REPLACE(
REPLACE(
REPLACE(`query`, 'deleted=0', '`deleted_at` IS NULL')
, 'deleted = 0', '`deleted_at` IS NULL')
, '`deleted` = 0', '`deleted_at` IS NULL');
UPDATE `zz_modules` SET `options` = REPLACE(
REPLACE(
REPLACE(`options`, 'deleted=0', '`deleted_at` IS NULL')
, 'deleted = 0', '`deleted_at` IS NULL')
, '`deleted` = 0', '`deleted_at` IS NULL'), `options2` = REPLACE(
REPLACE(
REPLACE(`options2`, 'deleted=0', '`deleted_at` IS NULL')
, 'deleted = 0', '`deleted_at` IS NULL')
, '`deleted` = 0', '`deleted_at` IS NULL');
UPDATE `zz_group_module` SET `clause` = REPLACE(
REPLACE(
REPLACE(`clause`, 'deleted=0', '`deleted_at` IS NULL')
, 'deleted = 0', '`deleted_at` IS NULL')
, '`deleted` = 0', '`deleted_at` IS NULL');
UPDATE `zz_views` SET `query` = REPLACE(
REPLACE(
REPLACE(`query`, 'deleted=0', '`deleted_at` IS NULL')
, 'deleted = 0', '`deleted_at` IS NULL')
, '`deleted` = 0', '`deleted_at` IS NULL');
UPDATE `zz_widgets` SET `query` = REPLACE(
REPLACE(
REPLACE(`query`, 'deleted=1', '`deleted_at` IS NOT NULL')
, 'deleted = 1', '`deleted_at` IS NOT NULL')
, '`deleted` = 1', '`deleted_at` IS NOT NULL');
UPDATE `zz_modules` SET `options` = REPLACE(
REPLACE(
REPLACE(`options`, 'deleted=1', '`deleted_at` IS NOT NULL')
, 'deleted = 1', '`deleted_at` IS NOT NULL')
, '`deleted` = 1', '`deleted_at` IS NOT NULL'), `options2` = REPLACE(
REPLACE(
REPLACE(`options2`, 'deleted=1', '`deleted_at` IS NOT NULL')
, 'deleted = 1', '`deleted_at` IS NOT NULL')
, '`deleted` = 1', '`deleted_at` IS NOT NULL');
UPDATE `zz_group_module` SET `clause` = REPLACE(
REPLACE(
REPLACE(`clause`, 'deleted=1', '`deleted_at` IS NOT NULL')
, 'deleted = 1', '`deleted_at` IS NOT NULL')
, '`deleted` = 1', '`deleted_at` IS NOT NULL');
UPDATE `zz_views` SET `query` = REPLACE(
REPLACE(
REPLACE(`query`, 'deleted=1', '`deleted_at` IS NOT NULL')
, 'deleted = 1', '`deleted_at` IS NOT NULL')
, '`deleted` = 1', '`deleted_at` IS NOT NULL');
-- Fix id delle Banche
UPDATE `zz_views` SET `enabled` = 0 WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche') AND `name` = 'id';