Merge branch 'master' into 2.4.2

This commit is contained in:
Thomas Zilio 2018-07-17 12:08:52 +02:00
commit cf3973ac47
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]);
}
} else {
// Per le icone cerco per il campo icon_title
if (preg_match('/^icon_(.+?)$/', $total['search_inside'][$i], $m)) {
$total['search_inside'][$i] = 'icon_title_'.$m[1];
// Per le icone cerco nel campo icon_title
if (preg_match('/^icon_(.+?)$/', $total['fields'][$i], $m)) {
$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`
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`
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;
$settings = [

View File

@ -259,7 +259,7 @@ switch (post('op')) {
case 'delete':
// Se l'anagrafica non è l'azienda principale, la disattivo
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
$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 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>';

View File

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

View File

@ -9,7 +9,7 @@ switch ($resource) {
// Se l'anagrafica non è l'azienda principale, la disattivo
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;

View File

@ -35,11 +35,11 @@ switch ($resource) {
AN.sitoweb,
AN.note,
AN.idzona,
AN.deleted
AN.deleted_at
FROM (an_anagrafiche AS AN
LEFT OUTER JOIN an_nazioni NAZIONE ON AN.id_nazione=NAZIONE.id)
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)
ORDER BY AN.ragione_sociale';

View File

@ -14,7 +14,7 @@ switch (post('op')) {
// Se l'anagrafica non è l'azienda principale, la disattivo
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 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>
@ -336,7 +336,7 @@ if (!$cliente) {
<div class="row">
<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
if (in_array($id_azienda, $tipi_anagrafica)) {
echo '
@ -358,7 +358,7 @@ if (!$cliente) {
if (in_array('Cliente', explode(',', $records[0]['tipianagrafica']))) {
?>
<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 class="col-md-3">

View File

@ -16,7 +16,7 @@ echo '
// Tecnico
echo '
<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>';
// 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"');
}
?>
{[ "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>
@ -96,7 +96,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
</div>
<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>

View File

@ -3,5 +3,5 @@
include_once __DIR__.'/../../core.php';
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
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'"];
@ -14,7 +14,7 @@ if (!isset($_SESSION['dashboard']['idtecnici'])) {
}
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'"];
@ -51,7 +51,7 @@ $checks = '';
$count = 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);
$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
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);
$totale_tecnici += $total;
@ -182,7 +182,7 @@ for ($i = 0; $i < count($rs); ++$i) {
}
// 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);
$totale_tecnici += $total;

View File

@ -5,132 +5,113 @@ include_once __DIR__.'/../../core.php';
include_once Modules::filepath('Fatture di vendita', 'modutil.php');
switch (post('op')) {
case 'creafatturavendita':
$iddocumento_cliente = [];
case 'crea_fattura':
$id_documento_cliente = [];
$totale_n_ddt = 0;
// Informazioni della fattura
$tipo_documento = $dbo->selectOne('co_tipidocumento', 'id', ['descrizione' => 'Fattura immediata di vendita'])['id'];
$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
for ($r = 0; $r < sizeof($id_records); ++$r) {
$idiva = setting('Iva predefinita');
$idddt = $id_records[$r];
foreach ($id_records as $id) {
$id_anagrafica = $dbo->selectOne('dt_ddt', 'idanagrafica', ['id' => $id])['idanagrafica'];
$rs_idanagrafica = $dbo->fetchArray("SELECT idanagrafica FROM in_interventi WHERE id='".$id_records[$r]."'");
$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;
$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)');
// Proseguo solo se i ddt scelti sono fatturabili
if ($n_ddt > 0) {
//Se non c'è già una fattura appena creata per questo cliente, creo una fattura nuova
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'];
if (!empty($righe)) {
$id_documento = $id_documento_cliente[$id_anagrafica];
// 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_esterno = get_new_numerosecondariofattura($data);
$idconto = setting('Conto predefinito fatture di vendita');
$campo = ($dir == 'entrata') ? 'idpagamento_vendite' : 'idpagamento_acquisti';
// 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);
$idpagamento = $rs[0]['id'];
// 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');
}
// 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).') )');
$iddocumento = $dbo->lastInsertedID();
$iddocumento_cliente[$idanagrafica] = $iddocumento;
$dbo->insert('co_documenti', [
'numero' => $numero,
'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
for ($i = 0; $i < sizeof($rsi); ++$i) {
$qta = $rsi[$i]['qta'] - $rsi[$i]['qta_evasa'];
foreach ($righe as $riga) {
++$totale_n_ddt;
$qta = $riga['qta'] - $riga['qta_evasa'];
if ($qta > 0) {
$dbo->query('
INSERT INTO co_righe_documenti(
iddocumento,
idarticolo,
idddt,
idiva,
desc_iva,
iva,
iva_indetraibile,
is_descrizione,
descrizione,
subtotale,
sconto,
sconto_unitario,
sconto_prc,
tipo_sconto,
idgruppo,
abilita_serial,
um,
qta,
`order`)
VALUES(
'.$iddocumento_cliente[$idanagrafica].',
'.prepare($rsi[$i]['idarticolo']).',
'.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).')
)');
$dbo->insert('co_righe_documenti', [
'iddocumento' => $id_documento,
'idarticolo' => $riga['idarticolo'],
'idddt' => $id,
'idiva' => $riga['idiva'],
'desc_iva' => $riga['desc_iva'],
'iva' => $riga['iva'],
'iva_indetraibile' => $riga['iva_indetraibile'],
'descrizione' => $riga['descrizione'],
'is_descrizione' => $riga['is_descrizione'],
'subtotale' => $riga['subtotale'],
'sconto' => $riga['sconto'],
'sconto_unitario' => $riga['sconto_unitario'],
'tipo_sconto' => $riga['tipo_sconto'],
'um' => $riga['um'],
'qta' => $qta,
'abilita_serial' => $riga['abilita_serial'],
'#order' => '(SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_documento).')',
]);
$id_riga_documento = $dbo->lastInsertedID();
// Copia dei serial tra le righe
if (!empty($riga['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']));
}
// 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
$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
if ($dir == 'entrata') {
ricalcola_costiagg_fattura($iddocumento_cliente[$idanagrafica]);
} else {
ricalcola_costiagg_fattura($iddocumento_cliente[$idanagrafica], 0, 0, 0);
}
ricalcola_costiagg_fattura($id_documento);
}
}
}
@ -162,10 +143,12 @@ switch (post('op')) {
break;
}
return [
$operations = [
'delete-bulk' => tr('Elimina selezionati'),
];
'creafatturavendita' => [
if (Modules::get('Ddt di vendita')['id'] == $id_module) {
$operations['crea_fattura'] = [
'text' => tr('Crea fattura'),
'data' => [
'msg' => tr('Vuoi davvero creare una fattura per questi interventi?'),
@ -173,5 +156,7 @@ return [
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
],
];
];
}
return $operations;

View File

@ -37,7 +37,7 @@ switch (post('op')) {
break;
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!'));

View File

@ -1,5 +1,5 @@
<?php
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 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 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>

View File

@ -208,7 +208,7 @@ if (empty($new_codice)) {
</div>
<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 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');
// 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'])) {
$query .= ' AND in_interventi_tecnici.idtecnico = '.prepare($user['idanagrafica']);

View File

@ -111,7 +111,7 @@ switch ($resource) {
$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."'");
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
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 class="col-md-3">
@ -116,7 +116,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
</div>
<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 class="col-md-4">

View File

@ -24,11 +24,11 @@ if ($source == 'Attività') {
</div>
<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 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>

View File

@ -40,7 +40,7 @@ if (!empty($records[0]['immagine'])) {
<div class="clearfix"></div>
<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>
@ -48,7 +48,7 @@ if (!empty($records[0]['immagine'])) {
<div class="row">
<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 class="col-md-4">

View File

@ -64,11 +64,11 @@ if ($module['name'] == 'Ordini cliente') {
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
} 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
}
?>

View File

@ -25,7 +25,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
<?php
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 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"');
}
?>
{[ "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 class="col-md-3">

View File

@ -15,7 +15,7 @@ include_once __DIR__.'/../../core.php';
if (!empty($iddocumento)) {
// 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);
$dir = $rs[0]['dir'];
$numero_doc = !empty($rs[0]['numero_esterno']) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];

View File

@ -75,7 +75,7 @@ switch (post('op')) {
break;
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!'));

View File

@ -3,5 +3,5 @@
include_once __DIR__.'/../../core.php';
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
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 {
$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';
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">
<input type="hidden" name="op" value="update">
<input type="hidden" name="backto" value="record-list">
<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");
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']));
foreach ($tecnici as $tecnico) {
echo '
<tr>
<td></td>
<td>'.$rsa[$a]['descrizione'].'</td>
<tr>
<th>'.$tecnico['ragione_sociale'].'</th>
<th>'.tr('Attività').'</th>
<th>'.tr('Addebito orario').'</th>
<th>'.tr('Addebito km').'</th>
<th>'.tr('Addebito diritto ch.').'</th>
<td>
<input type="text" class="form-control inputmask-decimal" name="costo_ore['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_ore']).'">
</td>
<th>'.tr('Costo orario').'</th>
<th>'.tr('Costo km').'</th>
<th>'.tr('Costo diritto ch.').'</th>
<th width="40"></th>
</tr>';
<td>
<input type="text" class="form-control inputmask-decimal" name="costo_km['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_km']).'">
</td>
// Tipi di interventi
foreach ($tipi_interventi as $tipo_intervento) {
// Lettura costi
$rsc = $dbo->fetchArray('SELECT * FROM in_tariffe WHERE idtecnico='.prepare($tecnico['idanagrafica']).' AND idtipointervento='.prepare($tipo_intervento['idtipointervento']));
<td>
<input type="text" class="form-control inputmask-decimal" name="costo_dirittochiamata['.$rst[$t]['idanagrafica'].']['.$rsa[$a]['idtipointervento'].']" value="'.Translator::numberToLocale($rsc[0]['costo_dirittochiamata']).'">
</td>
echo '
<tr>
<td></td>
<td>'.$tipo_intervento['descrizione'].'</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']).'">
</td>
<td>
<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>
<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']).'">
</td>
<td>
<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>
<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']).'">
</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.'\'; } ); }">
<i class="fa fa-download"></i>
</button>
</td>
</tr>';
<td>
<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>
<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']).'">
</td>
<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':
$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)) {
$search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%');

View File

@ -293,7 +293,7 @@ class App
$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'].'`';
$search[] = $view['search'];
$slow[] = $view['slow'];
@ -352,7 +352,7 @@ class App
$format[] = 0;
}
$search_inside = $fields;
$search_inside = $order_by;
return [
'query' => self::replacePlaceholder($query),

View File

@ -28,7 +28,7 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
if (empty(self::$accounts)) {
$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 = [];
@ -77,7 +77,7 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
if (empty(self::$templates)) {
$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 = [];
$references = [];

View File

@ -355,6 +355,25 @@ class Update
// Imposta l'aggiornamento nello stato di esecuzione dello script
$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
self::executeScript(DOCROOT.'/update/api.php');

View File

@ -20,7 +20,23 @@ echo '
'_NUM_' => $records[0]['numero'],
'_DATE_' => Translator::dateToLocale($records[0]['data_bozza']),
], ['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 class="col-xs-5 col-xs-offset-1">
@ -289,12 +305,15 @@ echo '
</table>';
// 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">'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'</p>';
}
//Firma
echo '<div style=\'position:absolute; bottom:'.($settings['margins']['bottom'] + $settings['footer-height']).'px\' > <table >
// Firma
echo '<div style="position:absolute; bottom:'.($settings['margins']['bottom'] + $settings['footer-height']).'px">
<table>
<tr>
<td style="vertical-align:bottom;" width="50%">
, ___________________________

View File

@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
$module_name = 'Contratti';
// 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_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,
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
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) {
$count = 0;
$count += ceil(strlen($r['descrizione']) / $autofill['words']);

View File

@ -1,26 +1,5 @@
<?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
*/

View File

@ -1,26 +1,5 @@
<?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
*/

View File

@ -196,7 +196,8 @@ UPDATE `co_documenti` SET `id_segment`='2' WHERE `idtipodocumento` IN (SELECT `i
-- Innesto modulo segmenti sotto "Strumenti"
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
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;
-- 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
(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'), '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);
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'));
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'), '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'), 'IBAN', 'co_banche.iban', 0, 0, 0, 0, 1, 0, 0);
-- 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`;

View File

@ -1,26 +1,5 @@
<?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
$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'), '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
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
((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
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);
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à
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
((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
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
@ -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
((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
((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';