1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-01-27 06:04:54 +01:00

Fix ordinamento promemoria in Dashboard

This commit is contained in:
Pek5892 2024-03-19 12:44:01 +01:00
parent aa14944c92
commit d818d2e393

View File

@ -415,75 +415,76 @@ switch (filter('op')) {
$id_tecnico = $user['idanagrafica']; $id_tecnico = $user['idanagrafica'];
} }
// Promemoria da contratti con stato pianificabile $query = "(SELECT
$query_promemoria_contratti = "SELECT `co_promemoria`.`id` AS id,
`co_promemoria`.`id`, `idcontratto` AS idcontratto,
`idcontratto`, `richiesta` AS richiesta,
`richiesta`, `co_contratti`.`nome` AS nome_contratto,
`co_contratti`.`nome` AS nome_contratto, `co_contratti`.`numero` AS numero_contratto,
`co_contratti`.`numero` AS numero_contratto, `co_contratti`.`data_bozza` AS data_contratto,
`co_contratti`.`data_bozza` AS data_contratto, DATE_FORMAT( `data_richiesta`, '%m%Y') AS mese,
DATE_FORMAT( `data_richiesta`, '%m%Y') AS mese, `data_richiesta` AS data_richiesta,
`data_richiesta`, `data_scadenza` AS data_scadenza,
`an_anagrafiche`.`ragione_sociale`, `an_anagrafiche`.`ragione_sociale` AS ragione_sociale,
'promemoria' AS ref, 'promemoria' AS ref,
`in_tipiintervento_lang`.`name` AS tipo_intervento `in_tipiintervento_lang`.`name` AS tipo_intervento,
FROM '' AS id_tecnico,
`co_promemoria` '' AS ragione_sociale_tecnico,
INNER JOIN `co_contratti` ON `co_promemoria`.`idcontratto` = `co_contratti`.`id` '' AS colore
INNER JOIN `co_staticontratti` ON `co_contratti`.`idstato` = `co_staticontratti`.`id` FROM
INNER JOIN `an_anagrafiche` ON `co_contratti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` `co_promemoria`
INNER JOIN `in_tipiintervento` ON `co_promemoria`.`idtipointervento` = `in_tipiintervento`.`id` INNER JOIN `co_contratti` ON `co_promemoria`.`idcontratto` = `co_contratti`.`id`
LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare($lingua)." INNER JOIN `co_staticontratti` ON `co_contratti`.`idstato` = `co_staticontratti`.`id`
WHERE INNER JOIN `an_anagrafiche` ON `co_contratti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
`idintervento` IS NULL AND `co_staticontratti`.`is_pianificabile` = 1 INNER JOIN `in_tipiintervento` ON `co_promemoria`.`idtipointervento` = `in_tipiintervento`.`id`
ORDER BY LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare($lingua)."
`data_richiesta` ASC"; WHERE
$promemoria_contratti = $dbo->fetchArray($query_promemoria_contratti); `idintervento` IS NULL AND `co_staticontratti`.`is_pianificabile` = 1)
UNION
(SELECT
`in_interventi`.`id` AS id,
`in_interventi`.`id_contratto` AS idcontratto,
`in_interventi`.`richiesta` AS richiesta,
'' AS nome_contratto,
'' AS numero_contratto,
'' AS data_contratto,
DATE_FORMAT(IF(`in_interventi`.`data_scadenza` IS NULL, `in_interventi`.`data_richiesta`, `in_interventi`.`data_scadenza`), '%m%Y') AS mese,
`in_interventi`.`data_richiesta` AS data_richiesta,
`in_interventi`.`data_scadenza` AS data_scadenza,
`an_anagrafiche`.`ragione_sociale` AS ragione_sociale,
'intervento' AS ref,
`in_tipiintervento_lang`.`name` AS tipo_intervento,
`in_interventi_tecnici_assegnati`.`id_tecnico` AS id_tecnico,
`tecnico`.`ragione_sociale` AS ragione_sociale_tecnico,
`tecnico`.`colore`
FROM
`in_interventi`
INNER JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`id`
LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare($lingua)."
INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`";
// Promemoria da interventi con stato NON completato // Visualizzo solo promemoria del tecnico loggato
$query_interventi = "SELECT `in_interventi`.`id`, if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) {
`in_interventi`.`richiesta`, $query .= "
`in_interventi`.`id_contratto` AS idcontratto, INNER JOIN `in_interventi_tecnici_assegnati` ON `in_interventi`.`id` = `in_interventi_tecnici_assegnati`.`id_intervento` AND `id_tecnico` = ".prepare($id_tecnico);
`in_interventi_tecnici_assegnati`.`id_tecnico` AS id_tecnico, } else {
`tecnico`.`ragione_sociale` AS ragione_sociale_tecnico, $query .= "
DATE_FORMAT(IF(`in_interventi`.`data_scadenza` IS NULL, `in_interventi`.`data_richiesta`, `in_interventi`.`data_scadenza`), '%m%Y') AS mese, LEFT JOIN `in_interventi_tecnici_assegnati` ON `in_interventi`.`id` = `in_interventi_tecnici_assegnati`.`id_intervento`";
IF(`in_interventi`.`data_scadenza` IS NULL, `in_interventi`.`data_richiesta`, `in_interventi`.`data_scadenza`) AS data_richiesta, }
`in_interventi`.`data_scadenza`,
`an_anagrafiche`.`ragione_sociale`, $query .= "LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id`
`tecnico`.`colore`, INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`id`
'intervento' AS ref, LEFT JOIN `an_anagrafiche` AS tecnico ON `in_interventi_tecnici_assegnati`.`id_tecnico` = `tecnico`.`idanagrafica`
`in_tipiintervento_lang`.`name` AS tipo_intervento WHERE
FROM `in_statiintervento`.`is_completato` = 0
`in_interventi` GROUP BY
INNER JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`id` `in_interventi`.`id`, `in_interventi_tecnici_assegnati`.`id_tecnico`
LEFT JOIN `in_tipiintervento_lang` ON `in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = ".prepare($lingua)." HAVING
INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`"; COUNT(`in_interventi_tecnici`.`id`) = 0)
ORDER BY
IF(`data_scadenza` IS NULL, `data_richiesta`, `data_scadenza`) ASC";
// Visualizzo solo promemoria del tecnico loggato $promemoria = $dbo->fetchArray($query);
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);
} else {
$query_interventi .= '
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`
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`id`
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';
$promemoria_interventi = $dbo->fetchArray($query_interventi);
$promemoria = array_merge($promemoria_contratti, $promemoria_interventi);
if (!empty($promemoria)) { if (!empty($promemoria)) {
$prev_mese = ''; $prev_mese = '';