1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-23 14:57:46 +01:00

Gestione deleted_at per tipologie intervento e relazioni

This commit is contained in:
MatteoPistorello 2023-04-18 16:55:37 +02:00
parent ec1fbc8055
commit f8a98a8b9e
16 changed files with 63 additions and 73 deletions

View File

@ -129,7 +129,7 @@ if (!empty($options['create_document'])) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento" ]} {[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "ajax-source": "tipiintervento" ]}
</div>'; </div>';
} }

View File

@ -127,7 +127,7 @@ switch ($resource) {
break; break;
case 'vettori': case 'vettori':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default AS idtipointervento 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| ORDER BY ragione_sociale"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default AS idtipointervento 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| ORDER BY ragione_sociale";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
@ -135,7 +135,7 @@ switch ($resource) {
$where[] = "descrizione='Vettore'"; $where[] = "descrizione='Vettore'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted_at IS NULL'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {
@ -152,7 +152,7 @@ switch ($resource) {
* - idanagrafica * - idanagrafica
*/ */
case 'agenti': case 'agenti':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
@ -160,7 +160,7 @@ switch ($resource) {
$where[] = "descrizione='Agente'"; $where[] = "descrizione='Agente'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted_at IS NULL'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {
@ -188,7 +188,7 @@ switch ($resource) {
break; break;
case 'tecnici': case 'tecnici':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
@ -196,7 +196,7 @@ switch ($resource) {
$where[] = "descrizione='Tecnico'"; $where[] = "descrizione='Tecnico'";
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted_at IS NULL'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
if (setting('Permetti inserimento sessioni degli altri tecnici')) { if (setting('Permetti inserimento sessioni degli altri tecnici')) {
} else { } else {
@ -218,7 +218,7 @@ switch ($resource) {
break; break;
case 'clienti_fornitori': case 'clienti_fornitori':
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup, idtipointervento_default, an_tipianagrafiche.idtipoanagrafica 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, ragione_sociale ASC"; $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup, idtipointervento_default, an_tipianagrafiche.idtipoanagrafica 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, ragione_sociale ASC";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
@ -226,7 +226,7 @@ switch ($resource) {
$where = []; $where = [];
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted_at IS NULL'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
$where[] = "an_tipianagrafiche_anagrafiche.idtipoanagrafica IN (SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = 'Cliente' OR descrizione = 'Fornitore' OR descrizione = 'Azienda')"; $where[] = "an_tipianagrafiche_anagrafiche.idtipoanagrafica IN (SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = 'Cliente' OR descrizione = 'Fornitore' OR descrizione = 'Azienda')";
} }
@ -266,14 +266,14 @@ switch ($resource) {
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente // Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
case 'anagrafiche': case 'anagrafiche':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup 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| ORDER BY `optgroup` ASC, ragione_sociale ASC"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup 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| ORDER BY `optgroup` ASC, ragione_sociale ASC";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
} }
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted_at IS NULL'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
} }
if (!empty($search)) { if (!empty($search)) {
@ -434,12 +434,16 @@ switch ($resource) {
case 'relazioni': case 'relazioni':
$query = 'SELECT id, descrizione, colore AS _bgcolor_ FROM an_relazioni |where| ORDER BY descrizione'; $query = "SELECT id, CONCAT(descrizione, IF(an_relazioni.deleted_at IS NULL, '', ' (".tr('eliminata').")')) AS descrizione, colore AS _bgcolor_ FROM an_relazioni |where| ORDER BY descrizione";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($element); $filter[] = 'id='.prepare($element);
} }
if (empty($filter)) {
$where[] = 'an_relazioni.deleted_at IS NULL';
}
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
} }
@ -498,7 +502,7 @@ switch ($resource) {
//$where[] = 'data_fine > NOW()'; //$where[] = 'data_fine > NOW()';
if (empty($filter)) { if (empty($filter)) {
$where[] = 'deleted_at IS NULL'; $where[] = 'co_dichiarazioni_intento.deleted_at IS NULL';
} }
$where[] = 'id_anagrafica='.prepare($superselect['idanagrafica']); $where[] = 'id_anagrafica='.prepare($superselect['idanagrafica']);

View File

@ -529,7 +529,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo attività predefinita').'", "name": "idtipointervento_default", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "$idtipointervento_default$" ]} {[ "type": "select", "label": "'.tr('Tipo attività predefinita').'", "name": "idtipointervento_default", "ajax-source": "tipiintervento", "value": "$idtipointervento_default$" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -490,7 +490,7 @@ $operations['crea-preventivo'] = [
<br><br>{[ "type": "text", "label": "'.tr('Nome preventivo').'", "name": "nome", "required": 1 ]} <br><br>{[ "type": "text", "label": "'.tr('Nome preventivo').'", "name": "nome", "required": 1 ]}
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "id_cliente", "ajax-source": "clienti", "required": 1 ]} {[ "type": "select", "label": "'.tr('Cliente').'", "name": "id_cliente", "ajax-source": "clienti", "required": 1 ]}
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(["id_module" => $id_preventivi, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(["id_module" => $id_preventivi, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}
{[ "type": "select", "label": "'.tr('Tipo di attività').'", "name": "id_tipo", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "required": 1 ]} {[ "type": "select", "label": "'.tr('Tipo di attività').'", "name": "id_tipo", "ajax-source": "tipiintervento", "required": 1 ]}
{[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}', {[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',

View File

@ -26,7 +26,7 @@ include_once __DIR__.'/../../core.php';
$stati_intervento = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC'); $stati_intervento = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC');
// Tipi intervento // Tipi intervento
$tipi_intervento = $dbo->fetchArray('SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC'); $tipi_intervento = $dbo->fetchArray('SELECT idtipointervento AS id, descrizione FROM in_tipiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC');
// Tecnici disponibili // Tecnici disponibili
$tecnici_disponibili = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche $tecnici_disponibili = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche

View File

@ -21,11 +21,16 @@ include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'tipiintervento': case 'tipiintervento':
$query = 'SELECT idtipointervento AS id, CASE WHEN ISNULL(tempo_standard) OR tempo_standard <= 0 THEN descrizione WHEN tempo_standard > 0 THEN CONCAT(descrizione, \' (\', REPLACE(FORMAT(tempo_standard, 2), \'.\', \',\'), \' ore)\') END AS descrizione, tempo_standard FROM in_tipiintervento |where| ORDER BY descrizione'; $query = 'SELECT idtipointervento AS id, CASE WHEN ISNULL(tempo_standard) OR tempo_standard <= 0 THEN CONCAT(descrizione, IF(in_tipiintervento.deleted_at IS NULL, "", " ('.tr("eliminato").')")) WHEN tempo_standard > 0 THEN CONCAT(descrizione, \' (\', REPLACE(FORMAT(tempo_standard, 2), \'.\', \',\'), \' ore)\', IF(in_tipiintervento.deleted_at IS NULL, "", " ('.tr("eliminato").')")) END AS descrizione, tempo_standard FROM in_tipiintervento |where| ORDER BY descrizione';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'idtipointervento='.prepare($element); $filter[] = 'idtipointervento='.prepare($element);
} }
if (empty($filter)) {
$where[] = 'in_tipiintervento.deleted_at IS NULL';
}
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
} }

View File

@ -40,6 +40,7 @@ $query = 'SELECT
(in_interventi_tecnici.prezzo_km_unitario_tecnico * in_interventi_tecnici.km) AS prezzo_km_consuntivo, (in_interventi_tecnici.prezzo_km_unitario_tecnico * in_interventi_tecnici.km) AS prezzo_km_consuntivo,
an_anagrafiche.ragione_sociale, an_anagrafiche.ragione_sociale,
an_anagrafiche.deleted_at AS anagrafica_deleted_at, an_anagrafiche.deleted_at AS anagrafica_deleted_at,
in_tipiintervento.deleted_at AS tipo_deleted_at,
in_tipiintervento.descrizione AS descrizione_tipo, in_tipiintervento.descrizione AS descrizione_tipo,
in_interventi_tecnici.tipo_scontokm AS tipo_sconto_km, in_interventi_tecnici.tipo_scontokm AS tipo_sconto_km,
user.id AS id_user user.id AS id_user
@ -127,7 +128,7 @@ if (!empty($sessioni)) {
echo ' echo '
<tr data-id="'.$sessione['id'].'"> <tr data-id="'.$sessione['id'].'">
<td> <td>
'.$sessione['descrizione_tipo'].' '.$sessione['descrizione_tipo'].' '.(($sessione['tipo_deleted_at']) ? '<small class="text-danger"><em>('.tr('Eliminato').')</em></small>' : '').'
</td>'; </td>';
// Orario di inizio // Orario di inizio

View File

@ -36,9 +36,9 @@ $button = '<i class="fa fa-edit"></i> '.tr('Modifica');
$intervento = Intervento::find($id_record); $intervento = Intervento::find($id_record);
if (!empty($intervento->id_contratto)) { if (!empty($intervento->id_contratto)) {
$query = 'SELECT in_tipiintervento.idtipointervento AS id, descrizione, co_contratti_tipiintervento.costo_ore AS prezzo_ore_unitario, co_contratti_tipiintervento.costo_km AS prezzo_km_unitario, co_contratti_tipiintervento.costo_dirittochiamata AS prezzo_dirittochiamata FROM in_tipiintervento JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento = co_contratti_tipiintervento.idtipointervento WHERE co_contratti_tipiintervento.idcontratto = '.prepare($intervento->id_contratto).' ORDER BY descrizione'; $query = 'SELECT in_tipiintervento.idtipointervento AS id, descrizione, co_contratti_tipiintervento.costo_ore AS prezzo_ore_unitario, co_contratti_tipiintervento.costo_km AS prezzo_km_unitario, co_contratti_tipiintervento.costo_dirittochiamata AS prezzo_dirittochiamata FROM in_tipiintervento JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento = co_contratti_tipiintervento.idtipointervento WHERE co_contratti_tipiintervento.idcontratto = '.prepare($intervento->id_contratto).' AND in_tipiintervento.deleted_at IS NULL ORDER BY descrizione';
} else{ } else{
$query = 'SELECT in_tipiintervento.idtipointervento AS id, descrizione, in_tariffe.costo_ore AS prezzo_ore_unitario, in_tariffe.costo_km AS prezzo_km_unitario, in_tariffe.costo_dirittochiamata AS prezzo_dirittochiamata FROM in_tipiintervento JOIN in_tariffe ON in_tipiintervento.idtipointervento = in_tariffe.idtipointervento WHERE in_tariffe.idtecnico = '.prepare($sessione['idtecnico']).' ORDER BY descrizione'; $query = 'SELECT in_tipiintervento.idtipointervento AS id, descrizione, in_tariffe.costo_ore AS prezzo_ore_unitario, in_tariffe.costo_km AS prezzo_km_unitario, in_tariffe.costo_dirittochiamata AS prezzo_dirittochiamata FROM in_tipiintervento JOIN in_tariffe ON in_tipiintervento.idtipointervento = in_tariffe.idtipointervento WHERE in_tariffe.idtecnico = '.prepare($sessione['idtecnico']).' AND in_tipiintervento.deleted_at IS NULL ORDER BY descrizione';
} }
echo ' echo '
<form id="add_form" action="'.base_path().'/editor.php?id_module='.$id_module.'&id_record='.get('id_record').'" method="post"> <form id="add_form" action="'.base_path().'/editor.php?id_module='.$id_module.'&id_record='.get('id_record').'" method="post">

View File

@ -57,7 +57,7 @@ $stato = $database->query('SELECT id, descrizione FROM co_statipreventivi WHERE
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Tipo di Attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento" ]} {[ "type": "select", "label": "<?php echo tr('Tipo di Attività'); ?>", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -126,7 +126,7 @@ echo '
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Tipo di attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione", "value": "$idtipointervento$" ]} {[ "type": "select", "label": "<?php echo tr('Tipo di attività'); ?>", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$" ]}
</div> </div>
<!--div class="col-md-3"> <!--div class="col-md-3">

View File

@ -70,16 +70,10 @@ switch (filter('op')) {
break; break;
case 'delete': case 'delete':
$righe = $dbo->fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idrelazione='.prepare($id_record)); $dbo->query('UPDATE `an_relazioni` SET deleted_at=NOW() WHERE `id`='.prepare($id_record));
if (isset($id_record) && empty($righe)) {
$dbo->query('DELETE FROM `an_relazioni` WHERE `id`='.prepare($id_record));
flash()->info(tr('Relazione _NAME_ eliminata con successo!', [ flash()->info(tr('Relazione _NAME_ eliminata con successo!', [
'_NAME_' => $descrizione, '_NAME_' => $descrizione,
])); ]));
} else {
flash()->error(tr('Sono presenti '.count($righe).' anagrafiche collegate a questa relazione.'));
}
break; break;
} }

View File

@ -54,23 +54,18 @@ $righe = $dbo->fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idrelazio
if (!empty($righe)) { if (!empty($righe)) {
echo ' echo '
<div class="alert alert-danger"> <div class="alert alert-warning">
'.tr('Ci sono _NUM_ anagrafiche collegate', [ '.tr('Ci sono _NUM_ anagrafiche collegate', [
'_NUM_' => $righe, '_NUM_' => $righe,
]).'. ]).'.
</div>'; </div>';
} else { }
?> ?>
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?> <i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
</a> </a>
<?php
}
?>
<script> <script>
$(document).ready( function() { $(document).ready( function() {
$('.colorpicker').colorpicker({ format: 'hex' }).on('changeColor', function() { $('.colorpicker').colorpicker({ format: 'hex' }).on('changeColor', function() {

View File

@ -22,5 +22,5 @@ include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT idanagrafica, ragione_sociale, colore FROM an_anagrafiche WHERE idanagrafica = '.prepare($id_record)); $record = $dbo->fetchOne('SELECT idanagrafica, ragione_sociale, colore FROM an_anagrafiche WHERE idanagrafica = '.prepare($id_record));
$tipi_interventi = $dbo->fetchArray('SELECT *, in_tipiintervento.idtipointervento AS id, in_tariffe.idtipointervento AS esiste FROM in_tipiintervento LEFT JOIN in_tariffe ON in_tipiintervento.idtipointervento = in_tariffe.idtipointervento AND in_tariffe.idtecnico = '.prepare($id_record).' ORDER BY descrizione'); $tipi_interventi = $dbo->fetchArray('SELECT *, in_tipiintervento.idtipointervento AS id, in_tariffe.idtipointervento AS esiste FROM in_tipiintervento LEFT JOIN in_tariffe ON in_tipiintervento.idtipointervento = in_tariffe.idtipointervento AND in_tariffe.idtecnico = '.prepare($id_record).' WHERE in_tipiintervento.deleted_at IS NULL ORDER BY descrizione');
} }

View File

@ -99,40 +99,24 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
// Permetto eliminazione tipo intervento solo se questo non è utilizzado da nessun'altra parte a gestionale // Elimino le tariffe collegate ai vari tecnici
// UNION SELECT `in_tariffe`.`idtipointervento` FROM `in_tariffe` WHERE `in_tariffe`.`idtipointervento` = '.prepare($id_record).'
// UNION SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).'
$elementi = $dbo->fetchArray('SELECT `in_interventi`.`idtipointervento` FROM `in_interventi` WHERE `in_interventi`.`idtipointervento` = '.prepare($id_record).'
UNION
SELECT `an_anagrafiche`.`idtipointervento_default` AS `idtipointervento` FROM `an_anagrafiche` WHERE `an_anagrafiche`.`idtipointervento_default` = '.prepare($id_record).'
UNION
SELECT `co_preventivi`.`idtipointervento` FROM `co_preventivi` WHERE `co_preventivi`.`idtipointervento` = '.prepare($id_record).'
UNION
SELECT `co_promemoria`.`idtipointervento` FROM `co_promemoria` WHERE `co_promemoria`.`idtipointervento` = '.prepare($id_record).'
UNION
SELECT `in_interventi_tecnici`.`idtipointervento` FROM `in_interventi_tecnici` WHERE `in_interventi_tecnici`.`idtipointervento` = '.prepare($id_record).'
ORDER BY `idtipointervento`');
if (empty($elementi)) {
// Elimino anche le tariffe collegate ai vari tecnici
$query = 'DELETE FROM in_tariffe WHERE idtipointervento='.prepare($id_record); $query = 'DELETE FROM in_tariffe WHERE idtipointervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);
// Elimino anche le tariffe collegate ai contratti // Elimino le tariffe collegate ai contratti
$query = 'DELETE FROM co_contratti_tipiintervento WHERE idtipointervento='.prepare($id_record); $query = 'DELETE FROM co_contratti_tipiintervento WHERE idtipointervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);
$query = 'DELETE FROM in_fasceorarie_tipiintervento WHERE idtipointervento='.prepare($id_record); $query = 'DELETE FROM in_fasceorarie_tipiintervento WHERE idtipointervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);
$query = 'DELETE FROM in_tipiintervento WHERE idtipointervento='.prepare($id_record); $query = 'UPDATE `in_tipiintervento` SET deleted_at=NOW() WHERE idtipointervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);
flash()->info(tr('Tipo di intervento eliminato!')); flash()->info(tr('Tipo di intervento eliminato!'));
break;
}
// no break break;
case 'import': case 'import':
$values = [ $values = [
'costo_ore' => $record['costo_orario'], 'costo_ore' => $record['costo_orario'],

View File

@ -137,7 +137,6 @@ SELECT `co_preventivi`.`idtipointervento`, id, numero, data_bozza AS data, "Prev
UNION UNION
SELECT `co_promemoria`.`idtipointervento`, idcontratto AS id, numero, data_richiesta AS data, "Promemoria contratto" AS tipo_documento FROM `co_promemoria` LEFT JOIN co_contratti ON co_promemoria.idcontratto=co_contratti.id WHERE `co_promemoria`.`idtipointervento` = '.prepare($id_record).' SELECT `co_promemoria`.`idtipointervento`, idcontratto AS id, numero, data_richiesta AS data, "Promemoria contratto" AS tipo_documento FROM `co_promemoria` LEFT JOIN co_contratti ON co_promemoria.idcontratto=co_contratti.id WHERE `co_promemoria`.`idtipointervento` = '.prepare($id_record).'
ORDER BY `idtipointervento`'); ORDER BY `idtipointervento`');
$class = '';
if (!empty($elementi)) { if (!empty($elementi)) {
echo ' echo '
@ -180,7 +179,6 @@ if (!empty($elementi)) {
echo ' echo '
<li>'.Modules::link($modulo, $id, $descrizione).'</li>'; <li>'.Modules::link($modulo, $id, $descrizione).'</li>';
} }
$class = "disabled";
echo ' echo '
</ul> </ul>
@ -189,6 +187,6 @@ if (!empty($elementi)) {
} }
echo ' echo '
<a class="btn btn-danger ask '.$class.'" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">
<i class="fa fa-trash"></i> '.tr('Elimina').' <i class="fa fa-trash"></i> '.tr('Elimina').'
</a>'; </a>';

View File

@ -280,3 +280,12 @@ HAVING
UPDATE `zz_prints` SET `options` = '{\"pricing\": true, \"last-page-footer\": true, \"hide-codice\": true, \"images\": true}' WHERE `zz_prints`.`name` = "Ordine cliente (senza codici)"; UPDATE `zz_prints` SET `options` = '{\"pricing\": true, \"last-page-footer\": true, \"hide-codice\": true, \"images\": true}' WHERE `zz_prints`.`name` = "Ordine cliente (senza codici)";
UPDATE `zz_prints` SET `options` = '{\"pricing\":true, \"hide-total\":true, \"images\": true}' WHERE `zz_prints`.`name` = "Preventivo (senza totali)"; UPDATE `zz_prints` SET `options` = '{\"pricing\":true, \"hide-total\":true, \"images\": true}' WHERE `zz_prints`.`name` = "Preventivo (senza totali)";
UPDATE `zz_prints` SET `options` = '{\"pricing\":false, \"show-only-total\":true, \"images\": true}' WHERE `zz_prints`.`name` = "Preventivo (solo totale)"; UPDATE `zz_prints` SET `options` = '{\"pricing\":false, \"show-only-total\":true, \"images\": true}' WHERE `zz_prints`.`name` = "Preventivo (solo totale)";
-- Aggiunto deleted_at in tipi intervento e relazioni
ALTER TABLE `in_tipiintervento` ADD `deleted_at` TIMESTAMP NULL AFTER `tempo_standard`;
ALTER TABLE `an_relazioni` ADD `deleted_at` TIMESTAMP NULL AFTER `is_bloccata`;
UPDATE `zz_modules` SET `options` = 'SELECT \r\n|select|\r\nFROM\r\n `an_anagrafiche`\r\nLEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione` = `an_relazioni`.`id`\r\nLEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`\r\nLEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`\r\nLEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(nomesede SEPARATOR \', \') AS nomi FROM `an_sedi` GROUP BY idanagrafica) AS sedi ON `an_anagrafiche`.`idanagrafica`= `sedi`.`idanagrafica`\r\nLEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(nome SEPARATOR \', \') AS nomi FROM `an_referenti` GROUP BY idanagrafica) AS referenti ON `an_anagrafiche`.`idanagrafica` =`referenti`.`idanagrafica`\r\nLEFT JOIN (SELECT `co_pagamenti`.`descrizione`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti`)AS pagvendita ON IF(`an_anagrafiche`.`idpagamento_vendite`>0,`an_anagrafiche`.`idpagamento_vendite`= `pagvendita`.`id`,\'\')\r\nLEFT JOIN (SELECT `co_pagamenti`.`descrizione`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti`)AS pagacquisto ON IF(`an_anagrafiche`.`idpagamento_acquisti`>0,`an_anagrafiche`.`idpagamento_acquisti`= `pagacquisto`.`id`,\'\')\r\nWHERE\r\n 1=1 AND `an_anagrafiche`.`deleted_at` IS NULL\r\nGROUP BY\r\n `an_anagrafiche`.`idanagrafica`, `pagvendita`.`nome`, `pagacquisto`.`nome`\r\nHAVING\r\n 2=2\r\nORDER BY\r\n TRIM(`ragione_sociale`)' WHERE `zz_modules`.`name` = 'Anagrafiche';
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `in_tipiintervento` WHERE 1=1 AND deleted_at IS NULL HAVING 2=2' WHERE `zz_modules`.`name` = 'Tipi di intervento';
UPDATE `zz_modules` SET `options` = 'SELECT |select|\r\nFROM `an_relazioni`\r\nWHERE 1=1 AND deleted_at IS NULL\r\nHAVING 2=2\r\nORDER BY `an_relazioni`.`created_at` DESC' WHERE `zz_modules`.`name` = 'Relazioni';