\'Chiusa\''; // - Applico il filtro temporale: $sql .= ' AND Orari.orData>=\'' . session()->get('filter_dal') . '\' AND Orari.orData<=\'' . session()->get('filter_al') . " 23:59:59" . '\''; // - applico eventuale filtro per lavoratore if ((null !== session()->get('filter_lavoratore')) && (session()->get('filter_lavoratore')!='-1')) { $sql .= ' AND Orari.orIDlavoratore=\'' . session()->get('filter_lavoratore') . '\''; } // - Applico il filtro sulla tipologia di orario if ((null !== session()->get('filter_tipo_ore')) && (session()->get('filter_tipo_ore')!='-1')) { $sql .= ' AND Orari.orIDTipoOre=\'' . session()->get('filter_tipo_ore') . '\''; } // - Non applico il filtro sulla commessa: if ((null !== session()->get('filter_commessa')) && (session()->get('filter_commessa')!='-1')) { $sql .= ' AND Orari.orIDcommessa=\'' . session()->get('filter_commessa') . '\''; } // - Raggruppo i risultati: $sql .= ' GROUP BY(txt)'; // - Ordino in modo decrescente sul numero di presenze e in modo alfabetico. $sql .= ' ORDER BY COUNT(val) DESC, txt'; // Creo la query: $query = $this->query($sql); // Eseguo la query sul DB: return $query->getResult(); } // function select_on_orari //-------------------------------------------------------------------- // Ritorna le coppie val,txt per compilare il select delle commesse in base al filtro attivo sulle spese public function get_select_on_spese(){ // Creo la string SQL: // - join fra le tabelle\ $sql = 'SELECT Commesse.coIDcommessa AS val, CONCAT(Commesse.coNome, \' : \', Commesse.coDescrizione) AS txt FROM Commesse, Spese WHERE Commesse.coIDcommessa=Spese.spIDcommessa'; // 2026/05/06 su richiesta di Irene, lascio selezionabili le commesse chiuse. //// - elimino le commesse chiuse: //$sql .= ' AND coIDstatoCommessa<>\'Chiusa\''; // - Applico il filtro temporale: $sql .= ' AND Spese.spData>=\'' . session()->get('filter_dal') . '\' AND Spese.spData<=\'' . session()->get('filter_al') . " 23:59:59" . '\''; // - applico eventuale filtro per lavoratore if ((null !== session()->get('filter_lavoratore')) && (session()->get('filter_lavoratore')!='-1')) { $sql .= ' AND Spese.spIDlavoratore=\'' . session()->get('filter_lavoratore') . '\''; } // - Applico il filtro sulla tipologia di spesa if ((null !== session()->get('filter_rimborso')) && (session()->get('filter_rimborso')!='-1')) { $sql .= ' AND Spese.spDaRimborsare=\'' . session()->get('filter_rimborso') . '\''; } // - Non applico il filtro sulla commessa: if ((null !== session()->get('filter_commessa')) && (session()->get('filter_commessa')!='-1')) { $sql .= ' AND Spese.spIDcommessa=\'' . session()->get('filter_commessa') . '\''; } // - Raggruppo i risultati: $sql .= ' GROUP BY(txt)'; // - Ordino in modo decrescente sul numero di presenze e in modo alfabetico. $sql .= ' ORDER BY COUNT(val) DESC, txt'; // Creo la query: $query = $this->query($sql); // Eseguo la query sul DB: return $query->getResult(); } // function select_on_orari //-------------------------------------------------------------------- // Ritorna le coppie val,txt per compilare il select delle commesse (nell'insert new) public function get_select(){ $query = $this->query('SELECT coIDcommessa AS val, CONCAT(coNome, \' : \', coDescrizione) AS txt FROM Commesse WHERE coIDstatoCommessa<>\'Chiusa\' ORDER BY coUpdatedAt DESC'); return $query->getResult(); } //-------------------------------------------------------------------- // Ritorna i dati per il report della commessa indicata public function get_ReportByCommessa($ID){ $query = $this->query(" SELECT coIDcommessa AS ID, coNome AS Nome, (SELECT clNome FROM `Clienti` WHERE clIDcliente=coIDcliente) AS Cliente, coDescrizione AS Descrizione, (SELECT sum(stStima) FROM `Stime` WHERE stIDcommessa=coIDcommessa) AS Stima, (SELECT sum(orOre) FROM `Orari` WHERE orIDcommessa=coIDcommessa) AS Usate, coIDstatoCommessa AS Stato, coCreatedAt AS CreatedAt, coUpdatedAt AS UpdatedAt, coDeletedAt AS DeletedAt FROM `Commesse` WHERE coIDcommessa='$ID' "); return $query->getResult(); } //-------------------------------------------------------------------- }//class Commesse_Model