diff --git a/ajax_dataload.php b/ajax_dataload.php index 8c4bd9bc1..f9c95ce8d 100644 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -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'].'%')); } } } diff --git a/include/init/init.php b/include/init/init.php index 436e64a9c..764596bcf 100644 --- a/include/init/init.php +++ b/include/init/init.php @@ -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 = [ diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index a281a98d0..ca0b31b9c 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -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)); diff --git a/modules/anagrafiche/add.php b/modules/anagrafiche/add.php index 7d67051c7..3f5bdc9d5 100644 --- a/modules/anagrafiche/add.php +++ b/modules/anagrafiche/add.php @@ -18,7 +18,7 @@ echo '
- {[ "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).' ]}
'; diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index 2c4e632eb..d1e55753b 100644 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -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)) { diff --git a/modules/anagrafiche/api/delete.php b/modules/anagrafiche/api/delete.php index ca0df7fee..7e0de14fc 100644 --- a/modules/anagrafiche/api/delete.php +++ b/modules/anagrafiche/api/delete.php @@ -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; diff --git a/modules/anagrafiche/api/retrieve.php b/modules/anagrafiche/api/retrieve.php index 93182bd3d..0974f4b09 100644 --- a/modules/anagrafiche/api/retrieve.php +++ b/modules/anagrafiche/api/retrieve.php @@ -15,15 +15,15 @@ switch ($resource) { break; case 'clienti': - $q = 'SELECT AN.idanagrafica, + $q = 'SELECT AN.idanagrafica, AN.ragione_sociale, - AN.piva, - AN.codice_fiscale, - AN.indirizzo, - AN.indirizzo2, - AN.citta, - AN.cap, - AN.provincia, + AN.piva, + AN.codice_fiscale, + AN.indirizzo, + AN.indirizzo2, + AN.citta, + AN.cap, + AN.provincia, AN.km, IFNULL(AN.lat, 0.00) AS latitudine, IFNULL(AN.lng, 0.00) AS longitudine, @@ -35,11 +35,11 @@ switch ($resource) { AN.sitoweb, AN.note, AN.idzona, - AN.deleted - FROM (an_anagrafiche AS AN + 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 + HAVING 1=1 AND + AN.deleted_at IS NULL AND AN.idanagrafica IN (SELECT idanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=1) ORDER BY AN.ragione_sociale'; diff --git a/modules/anagrafiche/bulk.php b/modules/anagrafiche/bulk.php index 4b2fa601e..c944e00bc 100644 --- a/modules/anagrafiche/bulk.php +++ b/modules/anagrafiche/bulk.php @@ -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)); } } diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 8afb1f76f..5c68634f3 100644 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -228,7 +228,7 @@ if (!$cliente) {
- {[ "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)ORDER BY ragione_sociale", "value": "$idagente$", "extra": "" ]} + {[ "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)ORDER BY ragione_sociale", "value": "$idagente$", "extra": "" ]}
@@ -336,7 +336,7 @@ if (!$cliente) {
- {[ "type": "select", "multiple": "1", "label": "", "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": "", "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$" ]}
- {[ "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 = )) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE 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 = )) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = ) ) ORDER BY ragione_sociale", "value": "$idagenti$" ]}
diff --git a/modules/automezzi/add_tecnico.php b/modules/automezzi/add_tecnico.php index 159085c65..b57d5518a 100644 --- a/modules/automezzi/add_tecnico.php +++ b/modules/automezzi/add_tecnico.php @@ -16,7 +16,7 @@ echo ' // Tecnico echo '
- {[ "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.'" ]}
'; // Data di partenza diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index e903bf8d0..02494e8a0 100644 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -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": "", "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": "", "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$" ]}
@@ -96,7 +96,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
- {[ "type": "select", "multiple": "1", "label": "", "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": "", "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$" ]}
diff --git a/modules/contratti/init.php b/modules/contratti/init.php index c2e384f75..fbb731d35 100644 --- a/modules/contratti/init.php +++ b/modules/contratti/init.php @@ -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)); } diff --git a/modules/dashboard/edit.php b/modules/dashboard/edit.php index d28d0b465..505f51656 100644 --- a/modules/dashboard/edit.php +++ b/modules/dashboard/edit.php @@ -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; diff --git a/modules/ddt/bulk.php b/modules/ddt/bulk.php index c67058120..f3bbf51bc 100644 --- a/modules/ddt/bulk.php +++ b/modules/ddt/bulk.php @@ -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; diff --git a/modules/emails/actions.php b/modules/emails/actions.php index 9dad75345..c296273b1 100644 --- a/modules/emails/actions.php +++ b/modules/emails/actions.php @@ -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!')); diff --git a/modules/emails/init.php b/modules/emails/init.php index 1c9015298..bc6221b17 100644 --- a/modules/emails/init.php +++ b/modules/emails/init.php @@ -1,5 +1,5 @@ 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'); } diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 4545becac..00a845fde 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -143,11 +143,11 @@ if ($dir == 'entrata') {
- {[ "type": "select", "label": "", "name": "idpagamento", "required": 1, "values": "query=SELECT id, descrizione, (SELECT id FROM co_banche WHERE id_pianodeiconti3 = co_pagamenti.idconto_ ) 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": "", "name": "idpagamento", "required": 1, "values": "query=SELECT id, descrizione, (SELECT id FROM co_banche WHERE id_pianodeiconti3 = co_pagamenti.idconto_ 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(); \" " ]}
- {[ "type": "select", "label": "", "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": "", "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$" ]}
diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 72de1f46a..24a5aa909 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -208,7 +208,7 @@ if (empty($new_codice)) {
- {[ "type": "select", "label": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted = 0", "value": "" ]} + {[ "type": "select", "label": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]}
diff --git a/modules/interventi/api/retrieve.php b/modules/interventi/api/retrieve.php index 78d5f05c1..40433749d 100644 --- a/modules/interventi/api/retrieve.php +++ b/modules/interventi/api/retrieve.php @@ -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']); @@ -55,42 +55,42 @@ switch ($resource) { $period_start = '2000-01-01'; $period_end = date('Y-m-d', strtotime($today.' +7 days')); - $q = "SELECT `in_interventi`.id, - `in_interventi`.codice, - DATE_FORMAT( MAX(`in_interventi`.`data_richiesta`), '%Y%m%d' ) AS `data_richiesta`, - `in_interventi`.richiesta, - `in_interventi`.descrizione, - `in_interventi`.idtipointervento, - `in_interventi`.idanagrafica, - `an_anagrafiche`.idzona AS zona_anagrafica, - `in_interventi`.idsede, + $q = "SELECT `in_interventi`.id, + `in_interventi`.codice, + DATE_FORMAT( MAX(`in_interventi`.`data_richiesta`), '%Y%m%d' ) AS `data_richiesta`, + `in_interventi`.richiesta, + `in_interventi`.descrizione, + `in_interventi`.idtipointervento, + `in_interventi`.idanagrafica, + `an_anagrafiche`.idzona AS zona_anagrafica, + `in_interventi`.idsede, `an_sedi`.idzona AS zona_sede, - `in_interventi`.idstatointervento, - `in_interventi`.informazioniaggiuntive, - `in_interventi`.idsede, - `in_interventi`.idclientefinale, - `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`, - `in_interventi`.firma_nome, - 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) - WHERE my_impianti_interventi.idintervento=`in_interventi`.`id`),'') AS `impianti`, - 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`, - `in_statiintervento`.`colore` AS `bgcolor`, - `in_statiintervento`.`descrizione` AS `stato`, - `in_interventi`.`idtipointervento` AS `tipo`, + `in_interventi`.idstatointervento, + `in_interventi`.informazioniaggiuntive, + `in_interventi`.idsede, + `in_interventi`.idclientefinale, + `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`, + `in_interventi`.firma_nome, + 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) + WHERE my_impianti_interventi.idintervento=`in_interventi`.`id`),'') AS `impianti`, + 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`, + `in_statiintervento`.`colore` AS `bgcolor`, + `in_statiintervento`.`descrizione` AS `stato`, + `in_interventi`.`idtipointervento` AS `tipo`, 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`, - `orario_inizio`, `orario_fine` - FROM (`in_interventi` - INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento`) - INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id` + DATE_FORMAT( MAX(`orario_fine`), '%d/%m/%Y %T' ) AS `orario_fine_leggibile`, + `orario_inizio`, `orario_fine` + FROM (`in_interventi` + 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 `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` - LEFT OUTER JOIN `an_sedi` ON `in_interventi`.`idsede`=`an_sedi`.`id` - GROUP BY `in_interventi`.`id` - HAVING (DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) >= '".$period_start."' AND - DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) <= '".$period_end."') + LEFT OUTER JOIN `an_sedi` ON `in_interventi`.`idsede`=`an_sedi`.`id` + GROUP BY `in_interventi`.`id` + HAVING (DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) >= '".$period_start."' AND + DATE_FORMAT( `orario_fine`, '%Y-%m-%d' ) <= '".$period_end."') ORDER BY `orario_fine` DESC"; // TODO: rimosse seguenti clausole: diff --git a/modules/interventi/api/update.php b/modules/interventi/api/update.php index 1407499a6..c1b3de0db 100644 --- a/modules/interventi/api/update.php +++ b/modules/interventi/api/update.php @@ -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."'"); } } } diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 5068cb767..72e46eccf 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -23,7 +23,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica']; - {[ "type": "select", "label": "", "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": "" ]} + {[ "type": "select", "label": "", "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": "" ]}
@@ -116,7 +116,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
- {[ "type": "select", "label": "", "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": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "$idstatointervento$" ]}
diff --git a/modules/my_impianti/add.php b/modules/my_impianti/add.php index b4dade0d2..8419ab0f6 100644 --- a/modules/my_impianti/add.php +++ b/modules/my_impianti/add.php @@ -24,11 +24,11 @@ if ($source == 'Attività') {
- {[ "type": "select", "label": "", "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": "", "ajax-source": "clienti" ]} + {[ "type": "select", "label": "", "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": "", "ajax-source": "clienti" ]}
- {[ "type": "select", "label": "", "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": "", "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" ]}
diff --git a/modules/my_impianti/edit.php b/modules/my_impianti/edit.php index f38d2b3cd..9ea6c52aa 100644 --- a/modules/my_impianti/edit.php +++ b/modules/my_impianti/edit.php @@ -40,7 +40,7 @@ if (!empty($records[0]['immagine'])) {
- {[ "type": "select", "label": "", "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( '/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": "", "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( '/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" ]}
@@ -48,7 +48,7 @@ if (!empty($records[0]['immagine'])) {
- {[ "type": "select", "label": "", "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": "", "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$" ]}
diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index a35ac72b1..235424fca 100644 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -64,11 +64,11 @@ if ($module['name'] == 'Ordini cliente') { if ($dir == 'entrata') { ?> - {[ "type": "select", "label": "", "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": "" ]} + {[ "type": "select", "label": "", "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": "" ]} - {[ "type": "select", "label": "", "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": "" ]} + {[ "type": "select", "label": "", "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": "" ]} diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index ca97334ac..3e4ed33b9 100644 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -25,7 +25,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica']; - {[ "type": "select", "label": "", "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": "", "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" ]}
@@ -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": "", "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": "", "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$" ]}
diff --git a/modules/primanota/add.php b/modules/primanota/add.php index c42fb4820..7e3cb162e 100644 --- a/modules/primanota/add.php +++ b/modules/primanota/add.php @@ -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']; diff --git a/modules/smtp/actions.php b/modules/smtp/actions.php index 522eb2154..05bfb20e3 100644 --- a/modules/smtp/actions.php +++ b/modules/smtp/actions.php @@ -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!')); diff --git a/modules/smtp/init.php b/modules/smtp/init.php index d97e02d00..cdc5ef25f 100644 --- a/modules/smtp/init.php +++ b/modules/smtp/init.php @@ -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'); } diff --git a/modules/stati_intervento/actions.php b/modules/stati_intervento/actions.php index 722f09c2f..d10f617b5 100644 --- a/modules/stati_intervento/actions.php +++ b/modules/stati_intervento/actions.php @@ -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'; } diff --git a/modules/tecnici_tariffe/edit.php b/modules/tecnici_tariffe/edit.php index 276b32b11..d58e9d3c3 100644 --- a/modules/tecnici_tariffe/edit.php +++ b/modules/tecnici_tariffe/edit.php @@ -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 '
'; -$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 ' - - - - - - - - - - - - '; - - // 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 ' - - - + + + + + + - + + + + + '; - + // 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'])); - + echo ' + + + - + - + - - - '; + + + + + + + + + '; + } } + + echo ' +
'.$rst[$t]['ragione_sociale'].''.tr('Attività').''.tr('Addebito orario').''.tr('Addebito km').''.tr('Addebito diritto ch.').''.tr('Costo orario').''.tr('Costo km').''.tr('Costo diritto ch.').'
'.$rsa[$a]['descrizione'].'
'.$tecnico['ragione_sociale'].''.tr('Attività').''.tr('Addebito orario').''.tr('Addebito km').''.tr('Addebito diritto ch.').' - - '.tr('Costo orario').''.tr('Costo km').''.tr('Costo diritto ch.').'
- - - -
'.$tipo_intervento['descrizione'].' - - + + - - + + - - - -
+ + + + + + + + + +
+ +
+ +
+
+
'; +} else { + echo ' +

'.tr('Non sono presenti anagrafiche di tipo "Tecnico"').'

'; } - -echo ' - - -
- -
-
'; diff --git a/modules/utenti/ajax/select.php b/modules/utenti/ajax/select.php index 6fb7bd55a..74a6cc523 100644 --- a/modules/utenti/ajax/select.php +++ b/modules/utenti/ajax/select.php @@ -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.'%'); diff --git a/src/App.php b/src/App.php index 1fb8b679c..46e48ad85 100644 --- a/src/App.php +++ b/src/App.php @@ -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), diff --git a/src/Mail.php b/src/Mail.php index 063f4c718..bed9b9b43 100644 --- a/src/Mail.php +++ b/src/Mail.php @@ -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 = []; diff --git a/src/Update.php b/src/Update.php index 1539497f6..142c5f26f 100644 --- a/src/Update.php +++ b/src/Update.php @@ -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'); diff --git a/templates/contratti/body.php b/templates/contratti/body.php index 507a09ba1..06d61ef2b 100644 --- a/templates/contratti/body.php +++ b/templates/contratti/body.php @@ -20,7 +20,23 @@ echo ' '_NUM_' => $records[0]['numero'], '_DATE_' => Translator::dateToLocale($records[0]['data_bozza']), ], ['upper' => true]).' -
+
'; + +// 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']." (".$impianto['matricola'].')'; + } + + echo ' +
+

'.tr('Impianti', [], ['upper' => true]).'

+

'.implode(', ', $list).'

'; +} +echo '
@@ -289,12 +305,15 @@ echo ' '; // Conclusione -echo ' +if (empty($records[0]['fatturabile'])) { + echo '

'.tr('Il tutto S.E. & O.').'

'.tr("In attesa di un Vostro Cortese riscontro, colgo l'occasione per porgere Cordiali Saluti").'

'; +} -//Firma -echo '
+// Firma +echo '
+
lì, ___________________________ diff --git a/templates/contratti/init.php b/templates/contratti/init.php index 8f3476185..c9c798665 100644 --- a/templates/contratti/init.php +++ b/templates/contratti/init.php @@ -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']; diff --git a/templates/ddt/body.php b/templates/ddt/body.php index 06f21761a..2dc34bf69 100644 --- a/templates/ddt/body.php +++ b/templates/ddt/body.php @@ -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']); diff --git a/update/2_3.php b/update/2_3.php index 19b3390f2..abdbd50bb 100644 --- a/update/2_3.php +++ b/update/2_3.php @@ -1,26 +1,5 @@ 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 */ diff --git a/update/2_4.php b/update/2_4.php index 8c0ed81e1..690ebb573 100644 --- a/update/2_4.php +++ b/update/2_4.php @@ -1,26 +1,5 @@ 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 */ diff --git a/update/2_4.sql b/update/2_4.sql index 81394ca96..bbe9660b9 100644 --- a/update/2_4.sql +++ b/update/2_4.sql @@ -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, ''Sì'', ''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, ''Sì'', ''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), ",", "#"), ".", ","), "#", "."), "€") 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`; diff --git a/update/2_4_1.php b/update/2_4_1.php index 19b81978b..050a5f819 100644 --- a/update/2_4_1.php +++ b/update/2_4_1.php @@ -1,26 +1,5 @@ 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'); diff --git a/update/2_4_1.sql b/update/2_4_1.sql index c6db458ef..a49adef3c 100644 --- a/update/2_4_1.sql +++ b/update/2_4_1.sql @@ -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 ''
''), GROUP_CONCAT(matricola, '' - '', nome SEPARATOR ''
'')) 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';