Modifica logiche visualizzazione promemoria dashboard

Fix minori
This commit is contained in:
Luca 2020-11-06 15:52:01 +01:00
parent 80fe3192e6
commit 929438f8b5
5 changed files with 58 additions and 51 deletions

View File

@ -198,7 +198,7 @@ switch (filter('op')) {
$id_tecnico = $user['idanagrafica'];
}
// Righe inserite
// Promemoria da contratti con stato pianificabile
$query_promemoria_contratti = "SELECT
co_promemoria.id,
idcontratto,
@ -216,7 +216,9 @@ switch (filter('op')) {
idcontratto IN (SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1))
ORDER BY data_richiesta ASC";
$promemoria_contratti = $dbo->fetchArray($query_promemoria_contratti);
// Promemoria da interventi con stato NON completato
$query_interventi = "SELECT in_interventi.id,
in_interventi.richiesta,
in_interventi.id_contratto AS idcontratto,
@ -230,18 +232,21 @@ switch (filter('op')) {
(SELECT descrizione FROM in_tipiintervento WHERE in_tipiintervento.idtipointervento=in_interventi.idtipointervento) AS tipo_intervento
FROM in_interventi
INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica";
// Visualizzo solo promemoria del tecnico loggato
if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) {
$query_interventi .= '
INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico);
} elseif ($user->is_admin) {
$query_interventi .= '
INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento';
LEFT JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento';
}
$query_interventi .= '
LEFT JOIN in_interventi_tecnici ON in_interventi_tecnici.idintervento = in_interventi.id AND in_interventi_tecnici_assegnati.id_tecnico = in_interventi_tecnici.idtecnico
INNER JOIN in_statiintervento ON in_interventi.idstatointervento = in_statiintervento.idstatointervento
LEFT JOIN an_anagrafiche AS tecnico ON in_interventi_tecnici_assegnati.id_tecnico = tecnico.idanagrafica
WHERE in_statiintervento.is_completato = 0
GROUP BY in_interventi.id, in_interventi_tecnici_assegnati.id_tecnico
HAVING COUNT(in_interventi_tecnici.id) = 0
ORDER BY data_richiesta ASC';
@ -254,7 +259,7 @@ switch (filter('op')) {
// Elenco interventi da pianificare
foreach ($promemoria as $sessione) {
if ($sessione['mese'] == $mese) {
if (date('Ymd', strtotime($sessione['data_richiesta'])) < date('Ymd')) {
if (date('Ymd', strtotime($sessione['data_scadenza'])) < date('Ymd') and !empty($sessione['data_scadenza'])) {
$class = 'danger';
} else {
$class = 'primary';

View File

@ -234,7 +234,7 @@ WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.id
$numero_mesi_precenti = $dbo->fetchNum($query_mesi_precenti);
if ($numero_mesi_precenti > 0) {
echo '<div class="alert alert-warning alert-dismissible text-sm" role="alert"><i class="fa fa-exclamation-triangle"></i><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> '.tr('Ci sono _NUM_ attività scadute', [
echo '<div class="alert alert-warning alert-dismissible text-sm" role="alert"><i class="fa fa-exclamation-triangle"></i><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> '.tr('Ci sono _NUM_ promemoria scaduti', [
'_NUM_' => $numero_mesi_precenti,
]).'.</div>';
}

View File

@ -73,7 +73,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan
</div>
</div>
<div class="box box-warning hidden" id="info">
<div class="box hidden" id="info">
<div class="box-header with-border">
<h3 class="box-title"><?php echo tr('Fatture in stato Bozza del cliente'); ?></h3>
<div class="box-tools pull-right">
@ -120,17 +120,19 @@ $(document).ready(function () {
},
success: function (results) {
$("#info").removeClass("hidden");
$("#info").removeClass("box-info");
$("#info").removeClass("box-warning");
if (results.length === 0){
$("#info-content").html("<p>'.tr('Nessuna fattura in stato Bozza presente per il cliente corrente').'</p>")
$("#info").addClass("box-info");
$("#info-content").html("<p>'.tr('Per il cliente selezionato non è presente alcuna fattura in stato di Bozza').'</p>")
} else {
let content = "";
results.forEach(function(item) {
content += "<li>" + item + "</li>";
});
$("#info-content").html("<p>'.tr('Sono presenti le seguenti fatture in stato Bozza per il cliente corrente').':</p><ul>" + content + "</ul>")
$("#info").addClass("box-warning");
$("#info-content").html("<p>'.tr('Attenzione: per il cliente selezionato sono presenti le seguenti fatture in stato Bozza').':</p><ul>" + content + "</ul>")
}
}
});

View File

@ -21,7 +21,7 @@ use Modules\Interventi\Intervento;
include_once __DIR__.'/../../../core.php';
// Interventi da pianificare
// Interventi da pianificare NON completati
$interventi_da_pianificare = Intervento::doesntHave('sessioni')
->orderByRaw('IF(data_scadenza IS NULL, data_richiesta, data_scadenza)')
->whereHas('stato', function ($query) {
@ -62,10 +62,9 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
<th width="70">'.tr('Codice').'</th>
<th width="120">'.tr('Cliente').'</th>
<th width="70"><small>'.tr('Data richiesta').'</small></th>
<th width="70"><small>'.tr('Data scadenza').'</small></th>
<th width="200">'.tr('Tipo intervento').'</th>
<th width="200">'.tr('Stato intervento').'</th>
<th>'.tr('Descrizione').'</th>
<th width="100">'.tr('Sede').'</th>
</tr>
</thead>
@ -76,27 +75,27 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
echo '
<tr id="int_'.$r['id'].'">
<td><a target="_blank" >'.Modules::link(Modules::get('Interventi')['id'], $r['id'], $r['codice']).'</a></td>
<td><a target="_blank" >'.Modules::link(Modules::get('Anagrafiche')['id'], $r['idanagrafica'], $dbo->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica='.prepare($r['idanagrafica']))['ragione_sociale']).'</td>
<td>'.Translator::dateToLocale($r['data_richiesta']).'</td>
<td>'.((empty($r['data_scadenza'])) ? ' - ' : Translator::dateToLocale($r['data_scadenza'])).'</td>
<td><a target="_blank" >'.Modules::link(Modules::get('Anagrafiche')['id'], $r['idanagrafica'], $dbo->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica='.prepare($r['idanagrafica']))['ragione_sociale']).'<br><small>Presso: ';
// Sede promemoria
if ($r['idsede'] == '-1') {
echo '- '.('Nessuna').' -';
} elseif (empty($r['idsede'])) {
echo tr('Sede legale');
} else {
$rsp2 = $dbo->fetchArray("SELECT id, CONCAT( CONCAT_WS( ' (', CONCAT_WS(', ', nomesede, citta), indirizzo ), ')') AS descrizione FROM an_sedi WHERE id=".prepare($r['idsede']));
echo $rsp2[0]['descrizione'];
}
echo '
</small>
</td>
<td>'.Translator::dateToLocale($r['data_richiesta']).' '.((empty($r['data_scadenza'])) ? '' : '<br><small>Entro il '.Translator::dateToLocale($r['data_scadenza']).'</small>' ).'</td>
<td>'.$dbo->fetchOne("SELECT CONCAT_WS(' - ', codice,descrizione) AS descrizione FROM in_tipiintervento WHERE idtipointervento=".prepare($r['idtipointervento']))['descrizione'].'</td>
<td>'.$dbo->fetchOne("SELECT CONCAT_WS(' - ', codice,descrizione) AS descrizione FROM in_statiintervento WHERE idstatointervento=".prepare($r['idstatointervento']))['descrizione'].'</td>
<td>'.nl2br($r['richiesta']).'</td>
';
echo '
<td>';
// Sede
if ($r['idsede'] == '-1') {
echo '- '.('Nessuna').' -';
} elseif (empty($r['idsede'])) {
echo tr('Sede legale');
} else {
$rsp2 = $dbo->fetchArray("SELECT id, CONCAT( CONCAT_WS( ' (', CONCAT_WS(', ', nomesede, citta), indirizzo ), ')') AS descrizione FROM an_sedi WHERE id=".prepare($r['idsede']));
echo $rsp2[0]['descrizione'];
}
echo '
</td>';
echo '
</tr>';

View File

@ -58,13 +58,12 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
<table class="table table-hover table-striped">
<thead>
<tr>
<th width="120">'.tr('Cliente').'</th>
<th width="250">'.tr('Contratto').'</th>
<th width="90">'.tr('Entro').'</th>
<th width="150">'.tr('Tipo attività').'</th>
<th width="300">'.tr('Descrizione').'</th>
<th width="100">'.tr('Sede').'</th>
<th width="18"></th>
<th width="200">'.tr('Cliente').'</th>
<th width="300">'.tr('Contratto').'</th>
<th width="70">'.tr('Entro').'</th>
<th width="200">'.tr('Tipo attività').'</th>
<th>'.tr('Descrizione').'</th>
<th width="20"></th>
</tr>
</thead>
@ -78,7 +77,21 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
echo '
<tr>
<td>
'.Modules::link('Anagrafiche', $anagrafica->id, nl2br($anagrafica->ragione_sociale)).'
'.Modules::link('Anagrafiche', $anagrafica->id, nl2br($anagrafica->ragione_sociale)).'<br><small>Presso: ';
// Sede promemoria
if ($promemoria->idsede == '-1') {
echo '- '.('Nessuna').' -';
} elseif (empty($promemoria->idsede)) {
echo tr('Sede legale');
} else {
$rsp2 = $dbo->fetchArray("SELECT id, CONCAT( CONCAT_WS( ' (', CONCAT_WS(', ', nomesede, citta), indirizzo ), ')') AS descrizione FROM an_sedi WHERE id=".prepare($promemoria->idsede));
echo $rsp2[0]['descrizione'];
}
echo ' </small>
</td>
<td>
@ -89,20 +102,8 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
<td>'.$promemoria->tipo->descrizione.'</td>
<td>'.nl2br($promemoria->richiesta).'</td>
<td>';
<td>
// Sede
if ($promemoria->idsede == '-1') {
echo '- '.('Nessuna').' -';
} elseif (empty($promemoria->idsede)) {
echo tr('Sede legale');
} else {
$rsp2 = $dbo->fetchArray("SELECT id, CONCAT( CONCAT_WS( ' (', CONCAT_WS(', ', nomesede, citta), indirizzo ), ')') AS descrizione FROM an_sedi WHERE id=".prepare($promemoria->idsede));
echo $rsp2[0]['descrizione'];
}
echo '
</td>';
// Pulsanti