2018-02-04 09:41:46 +01: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 />.
*/
2018-02-04 09:41:46 +01:00
include_once __DIR__ . '/../../../core.php' ;
switch ( $resource ) {
case 'impianti' :
2024-01-15 15:30:45 +01:00
$query = 'SELECT id, CONCAT(matricola, " - ", nome) AS descrizione FROM my_impianti |where| ORDER BY id, idanagrafica' ;
2018-05-26 09:27:36 +02:00
2024-01-15 15:30:45 +01:00
foreach ( $elements as $element ) {
$filter [] = 'id=' . prepare ( $element );
}
2018-05-26 09:27:36 +02:00
2024-01-15 15:30:45 +01:00
if ( ! empty ( $search )) {
$search_fields [] = 'nome LIKE ' . prepare ( '%' . $search . '%' );
$search_fields [] = 'matricola LIKE ' . prepare ( '%' . $search . '%' );
}
2018-05-26 09:27:36 +02:00
break ;
2024-01-15 15:30:45 +01:00
/*
* Opzioni utilizzate :
* - idanagrafica
*/
2018-05-26 09:27:36 +02:00
case 'impianti-cliente' :
2023-03-27 14:41:36 +02:00
$query = 'SELECT my_impianti.id, CONCAT(my_impianti.matricola, " - ", my_impianti.nome) AS descrizione, my_impianti.idanagrafica, an_anagrafiche.ragione_sociale, my_impianti.idsede, IFNULL(an_sedi.nomesede, "Sede legale") AS nomesede FROM my_impianti LEFT JOIN an_anagrafiche ON my_impianti.idanagrafica=an_anagrafiche.idanagrafica LEFT JOIN an_sedi ON my_impianti.idsede=an_sedi.id |where| ORDER BY idsede' ;
2018-04-23 17:28:39 +02:00
2023-03-27 14:41:36 +02:00
foreach ( $elements as $element ) {
2023-05-18 10:47:57 +02:00
$filter [] = 'my_impianti.id=' . prepare ( $element );
2023-03-27 14:41:36 +02:00
}
2018-05-26 02:29:12 +02:00
2023-03-27 14:41:36 +02:00
if ( ! empty ( $superselect [ 'idanagrafica' ])) {
$where [] = 'my_impianti.idanagrafica=' . prepare ( $superselect [ 'idanagrafica' ]);
$where [] = 'my_impianti.idsede=' . prepare ( $superselect [ 'idsede_destinazione' ] ? : 0 );
}
2018-05-26 02:29:12 +02:00
2024-03-05 17:31:36 +01:00
if ( ! empty ( $superselect [ 'idintervento' ])) {
$where [] = 'my_impianti.id NOT IN(SELECT idimpianto FROM my_impianti_interventi WHERE idintervento=' . prepare ( $superselect [ 'idintervento' ]) . ')' ;
}
2023-03-27 14:41:36 +02:00
if ( ! empty ( $search )) {
$search_fields [] = 'my_impianti.nome LIKE ' . prepare ( '%' . $search . '%' );
$search_fields [] = 'my_impianti.matricola LIKE ' . prepare ( '%' . $search . '%' );
2018-04-23 17:28:39 +02:00
}
2023-03-27 14:41:36 +02:00
2018-05-26 09:27:36 +02:00
break ;
2024-01-15 15:30:45 +01:00
/*
* Opzioni utilizzate :
* - idintervento
*/
2018-05-26 09:27:36 +02:00
case 'impianti-intervento' :
2018-06-26 14:30:26 +02:00
if ( isset ( $superselect [ 'idintervento' ])) {
2018-05-26 02:29:12 +02:00
$query = 'SELECT id, CONCAT(matricola, " - ", nome) AS descrizione FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id=my_impianti_interventi.idimpianto |where| ORDER BY idsede' ;
2018-02-04 09:41:46 +01:00
foreach ( $elements as $element ) {
$filter [] = 'id=' . prepare ( $element );
}
2018-06-26 14:30:26 +02:00
2018-05-26 02:29:12 +02:00
$where [] = 'my_impianti_interventi.idintervento=' . prepare ( $superselect [ 'idintervento' ]);
2018-06-26 14:30:26 +02:00
2018-02-04 09:41:46 +01:00
if ( ! empty ( $search )) {
$search_fields [] = 'nome LIKE ' . prepare ( '%' . $search . '%' );
$search_fields [] = 'matricola LIKE ' . prepare ( '%' . $search . '%' );
}
}
break ;
2021-08-05 18:17:26 +02:00
2024-01-15 15:30:45 +01:00
/*
* Opzioni utilizzate :
* - matricola
*/
2021-08-05 18:17:26 +02:00
case 'componenti' :
if ( isset ( $superselect [ 'matricola' ])) {
2024-02-29 15:10:55 +01:00
$query = ' SELECT
`my_componenti` . `id` ,
2024-04-18 17:44:05 +02:00
CONCAT ( " # " , `my_componenti` . `id` , " : " , `mg_articoli` . `codice` , " - " , `mg_articoli_lang` . `title` ) AS descrizione
2024-02-29 15:10:55 +01:00
FROM
`my_componenti`
INNER JOIN `mg_articoli` ON `mg_articoli` . `id` = `my_componenti` . `id_articolo`
2024-03-22 15:52:24 +01:00
LEFT JOIN `mg_articoli_lang` ON ( `mg_articoli_lang` . `id_record` = `mg_articoli` . `id` AND `mg_articoli_lang` . `id_lang` = '.prepare(Models\Locale::getDefault()->id).' )
2024-02-29 15:10:55 +01:00
| where |
ORDER BY
`my_componenti` . `id` ' ;
2021-08-05 18:17:26 +02:00
foreach ( $elements as $element ) {
2024-02-29 15:10:55 +01:00
$filter [] = '`my_componenti`.`id` = ' . prepare ( $element );
2021-08-05 18:17:26 +02:00
}
$where = [
2024-02-29 15:10:55 +01:00
'`my_componenti`.`data_sostituzione` IS NULL' ,
'`my_componenti`.`data_rimozione` IS NULL' ,
2021-08-05 18:17:26 +02:00
];
$impianti = $superselect [ 'matricola' ];
2021-08-06 11:06:47 +02:00
if ( ! empty ( $impianti )) {
2024-02-29 15:10:55 +01:00
$where [] = '`my_componenti`.`id_impianto` IN (' . $impianti . ')' ;
2021-08-05 18:17:26 +02:00
}
if ( ! empty ( $search )) {
2024-02-29 15:10:55 +01:00
$search [] = '`my_componenti`.`note` LIKE ' . prepare ( '%' . $search . '%' );
2021-08-05 18:17:26 +02:00
}
}
break ;
2023-11-15 13:26:59 +01:00
2024-01-15 15:30:45 +01:00
case 'categorie_imp' :
2024-04-18 17:44:05 +02:00
$query = 'SELECT `my_impianti_categorie`.`id`, `my_impianti_categorie_lang`.`title` AS descrizione FROM `my_impianti_categorie` LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id`=`my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.`id_lang` = ' . prepare ( Models\Locale :: getDefault () -> id ) . ') |where| ORDER BY `title`' ;
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
foreach ( $elements as $element ) {
2024-03-27 11:07:15 +01:00
$filter [] = '`my_impianti_categorie`.`id`=' . prepare ( $element );
2024-01-15 15:30:45 +01:00
}
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
$where [] = '`parent` IS NULL' ;
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
if ( ! empty ( $search )) {
2024-04-18 17:44:05 +02:00
$search_fields [] = '`title` LIKE ' . prepare ( '%' . $search . '%' );
2024-01-15 15:30:45 +01:00
}
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
break ;
2023-11-15 14:10:33 +01:00
2023-11-15 13:26:59 +01:00
/*
* Opzioni utilizzate :
* - id_categoria
*/
2024-01-15 15:30:45 +01:00
case 'sottocategorie_imp' :
if ( isset ( $superselect [ 'id_categoria' ])) {
2024-05-09 16:57:11 +02:00
$query = 'SELECT `my_impianti_categorie`.`id`, `my_impianti_categorie_lang`.`title` AS descrizione FROM `my_impianti_categorie` LEFT JOIN `my_impianti_categorie_lang` ON (`my_impianti_categorie`.`id`=`my_impianti_categorie_lang`.`id_record` AND `my_impianti_categorie_lang`.`id_lang` = ' . prepare ( Models\Locale :: getDefault () -> id ) . ') |where| ORDER BY `title`' ;
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
foreach ( $elements as $element ) {
2024-03-27 11:07:15 +01:00
$filter [] = '`my_impianti_categorie`.`id`=' . prepare ( $element );
2024-01-15 15:30:45 +01:00
}
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
$where [] = '`parent`=' . prepare ( $superselect [ 'id_categoria' ]);
2023-11-15 14:10:33 +01:00
2024-01-15 15:30:45 +01:00
if ( ! empty ( $search )) {
2024-04-18 17:44:05 +02:00
$search_fields [] = '`title` LIKE ' . prepare ( '%' . $search . '%' );
2023-11-15 13:26:59 +01:00
}
2024-01-15 15:30:45 +01:00
}
break ;
2024-05-09 16:57:11 +02:00
case 'marca' :
$query = 'SELECT `my_impianti_marche`.`id`, `my_impianti_marche_lang`.`title` AS descrizione FROM `my_impianti_marche` LEFT JOIN `my_impianti_marche_lang` ON (`my_impianti_marche`.`id`=`my_impianti_marche_lang`.`id_record` AND `my_impianti_marche_lang`.`id_lang` = ' . prepare ( Models\Locale :: getDefault () -> id ) . ') |where| ORDER BY `title`' ;
foreach ( $elements as $element ) {
$filter [] = '`my_impianti_marche`.`id`=' . prepare ( $element );
}
$where [] = '`parent` = 0' ;
if ( ! empty ( $search )) {
$search_fields [] = '`title` LIKE ' . prepare ( '%' . $search . '%' );
}
break ;
case 'modello' :
if ( isset ( $superselect [ 'id_marca' ])) {
$query = 'SELECT `my_impianti_marche`.`id`, `my_impianti_marche_lang`.`title` AS descrizione FROM `my_impianti_marche` LEFT JOIN `my_impianti_marche_lang` ON (`my_impianti_marche`.`id`=`my_impianti_marche_lang`.`id_record` AND `my_impianti_marche_lang`.`id_lang` = ' . prepare ( Models\Locale :: getDefault () -> id ) . ') |where| ORDER BY `title`' ;
foreach ( $elements as $element ) {
$filter [] = '`my_impianti_marche`.`id`=' . prepare ( $element );
}
$where [] = '`parent`=' . prepare ( $superselect [ 'id_marca' ]);
if ( ! empty ( $search )) {
$search_fields [] = '`title` LIKE ' . prepare ( '%' . $search . '%' );
}
}
break ;
2018-02-04 09:41:46 +01:00
}