2019-05-02 13:17:06 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2019-05-02 13:17:06 +02:00
2020-03-14 12:21:14 +01:00
use Modules\Interventi\Intervento ;
2019-05-02 13:17:06 +02:00
include_once __DIR__ . '/../../../core.php' ;
2020-11-06 15:52:01 +01:00
// Interventi da pianificare NON completati
2020-03-14 12:21:14 +01:00
$interventi_da_pianificare = Intervento :: doesntHave ( 'sessioni' )
-> orderByRaw ( 'IF(data_scadenza IS NULL, data_richiesta, data_scadenza)' )
2020-08-26 10:15:36 +02:00
-> whereHas ( 'stato' , function ( $query ) {
return $query -> where ( 'is_completato' , '=' , 0 );
})
2020-03-14 12:21:14 +01:00
-> get ();
$raggruppamenti = $interventi_da_pianificare -> groupBy ( function ( $item , $key ) {
$data = $item -> data_scadenza ? : $item -> data_richiesta ;
2020-03-14 14:59:27 +01:00
return ucfirst ( $data -> formatLocalized ( '%B %Y' ));
2020-03-14 12:21:14 +01:00
});
$counter = 0 ;
foreach ( $raggruppamenti as $mese => $raggruppamento ) {
++ $counter ;
// Se cambia il mese ricreo l'intestazione della tabella
if ( $counter == 1 ) {
$attr = '' ;
$class = 'fa-minus-circle' ;
} else {
$attr = 'style="display:none;"' ;
$class = 'fa-plus-circle' ;
}
echo "
< h4 >
2020-04-20 11:23:01 +02:00
< a class = 'clickable' onclick = \ " if( $ ('#interventi_pianificare_ " . $counter . " ').css('display') == 'none' ) { $ (this).children('i').removeClass('fa-plus-circle'); $ (this).children('i').addClass('fa-minus-circle'); }else { $ (this).children('i').addClass('fa-plus-circle'); $ (this).children('i').removeClass('fa-minus-circle'); } $ ('#interventi_pianificare_ " . $counter . " ').slideToggle(); \" >
2020-03-14 12:21:14 +01:00
< i class = 'fa ".$class."' ></ i > " . $mese .'
</ a >
</ h4 > ' ;
2019-05-02 13:17:06 +02:00
echo '
2020-04-20 11:23:01 +02:00
< div id = " interventi_pianificare_'. $counter .' " '.$attr.' >
2020-03-14 12:21:14 +01:00
< table class = " table table-hover table-striped " >
< thead >
< tr >
2020-04-20 11:23:01 +02:00
< th width = " 70 " > '.tr(' Codice ').' </ th >
2020-03-14 12:21:14 +01:00
< th width = " 120 " > '.tr(' Cliente ').' </ th >
< th width = " 70 " >< small > '.tr(' Data richiesta ').' </ small ></ th >
2021-04-02 13:47:15 +02:00
< th width = " 15% " class = " text-center " > '.tr(' Tecnici assegnati ').' </ th >
2020-03-14 12:21:14 +01:00
< th width = " 200 " > '.tr(' Tipo intervento ').' </ th >
2020-11-06 15:52:01 +01:00
< th width = " 200 " > '.tr(' Stato intervento ').' </ th >
2020-03-14 12:21:14 +01:00
< th > '.tr(' Descrizione ').' </ th >
</ tr >
</ thead >
2019-05-02 13:17:06 +02:00
2020-03-14 12:21:14 +01:00
< tbody > ' ;
// Elenco interventi da pianificare
foreach ( $raggruppamento as $r ) {
2021-04-12 15:51:27 +02:00
$rs_tecnici = $dbo -> fetchArray ( " SELECT GROUP_CONCAT(ragione_sociale SEPARATOR ',') AS tecnici FROM an_anagrafiche INNER JOIN in_interventi_tecnici_assegnati ON in_interventi_tecnici_assegnati.id_tecnico=an_anagrafiche.idanagrafica WHERE id_intervento= " . prepare ( $r [ 'id' ]) . ' GROUP BY id_intervento' );
2021-04-02 13:47:15 +02:00
2020-03-14 12:21:14 +01:00
echo '
< tr id = " int_'. $r['id'] .' " >
< td >< a target = " _blank " > '.Modules::link(Modules::get(' Interventi ')[' id '], $r[' id '], $r[' codice ']).' </ a ></ td >
2020-11-09 20:03:47 +01:00
< 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' ]));
2020-11-06 15:52:01 +01:00
2020-11-09 20:03:47 +01:00
echo $rsp2 [ 0 ][ 'descrizione' ];
}
2020-11-06 15:52:01 +01:00
echo '
</ small >
</ td >
2020-11-09 20:03:47 +01:00
< td > '.Translator::dateToLocale($r[' data_richiesta ']).' '.((empty($r[' data_scadenza '])) ? ' ' : ' < br >< small > Entro il '.Translator::dateToLocale($r[' data_scadenza ']).' </ small > ').' </ td >
2021-04-02 13:47:15 +02:00
< td >
'.$rs_tecnici[0][' tecnici '].'
</ td >
2020-06-26 18:29:12 +02:00
< td > '.$dbo->fetchOne("SELECT CONCAT_WS(' - ', codice,descrizione) AS descrizione FROM in_tipiintervento WHERE idtipointervento=".prepare($r[' idtipointervento ']))[' descrizione '].' </ td >
2020-11-06 15:52:01 +01:00
< td > '.$dbo->fetchOne("SELECT CONCAT_WS(' - ', codice,descrizione) AS descrizione FROM in_statiintervento WHERE idstatointervento=".prepare($r[' idstatointervento ']))[' descrizione '].' </ td >
2020-03-14 12:21:14 +01:00
< td > '.nl2br($r[' richiesta ']).' </ td >
' ;
2019-05-02 13:17:06 +02:00
2020-03-14 12:21:14 +01:00
echo '
</ tr > ' ;
2019-05-02 13:17:06 +02:00
}
2020-03-14 12:21:14 +01:00
2019-05-02 13:17:06 +02:00
echo '
2020-03-14 12:21:14 +01:00
</ tbody >
</ table >
</ div > ' ;
}
if ( $raggruppamenti -> isEmpty ()) {
2019-05-02 13:17:06 +02:00
echo '
2020-03-14 12:21:14 +01:00
< p > '.tr(' Non ci sono interventi da pianificare ').' .</ p > ' ;
2019-05-02 13:17:06 +02:00
}