Skip to content

Commit 9f7ade8

Browse files
committed
feat: gestione fatturazione attività senza riferimento nel caso in cui Descrizione personalizzata in fatturazione sia vuota
1 parent cfe8ab8 commit 9f7ade8

6 files changed

Lines changed: 35 additions & 18 deletions

File tree

include/common/importa.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,15 @@
297297
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id`
298298
LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
299299
WHERE
300-
`in_interventi`.`id` = '.prepare($documento->id));
301-
302-
$descrizione_intervento = str_replace("'", ' ', strip_tags((string) $original_module->replacePlaceholders($documento->id, setting('Descrizione personalizzata in fatturazione')))) ?: $rs['info'];
300+
`in_interventi`.`id` = '.prepare($documento->id));
301+
// Se l'impostazione "Descrizione personalizzata in fatturazione" è vuota, usa un valore di default
302+
$descrizione_personalizzata = setting('Descrizione personalizzata in fatturazione');
303+
if (!empty($descrizione_personalizzata)) {
304+
$descrizione_intervento = str_replace("'", ' ', strip_tags((string) $original_module->replacePlaceholders($documento->id, $descrizione_personalizzata)));
305+
} else {
306+
// Valore di default quando l'impostazione è vuota (verrà ignorato in actions.php)
307+
$descrizione_intervento = $rs['info'];
308+
}
303309

304310
// Intervento
305311
echo '

modules/fatture/actions.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -927,10 +927,14 @@
927927
$id_conto = post('id_conto');
928928

929929
if ($class == Modules\Interventi\Intervento::class) {
930-
$riga = Descrizione::build($fattura);
931-
$riga->descrizione = post('descrizione_intervento');
932-
$riga->idintervento = $documento->id;
933-
$riga->save();
930+
// Se l'impostazione "Descrizione personalizzata in fatturazione" è vuota, non aggiunge la riga descrittiva
931+
$descrizione_personalizzata = setting('Descrizione personalizzata in fatturazione');
932+
if (!empty($descrizione_personalizzata)) {
933+
$riga = Descrizione::build($fattura);
934+
$riga->descrizione = post('descrizione_intervento');
935+
$riga->idintervento = $documento->id;
936+
$riga->save();
937+
}
934938

935939
$copia_descrizione = post('copia_descrizione');
936940
if (!empty($copia_descrizione) && !empty($documento->descrizione)) {

modules/fatture/add_intervento.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@
8787

8888
$rs[$key]['prezzo'] = Translator::numberToLocale($prezzo);
8989
$rs[$key]['descrizione_intervento'] = str_replace("'", ' ', strip_tags((string) $rs[$key]['descrizione_intervento']));
90-
$rs[$key]['info'] = str_replace("'", ' ', strip_tags((string) $module_interventi->replacePlaceholders($value['id'], setting('Descrizione personalizzata in fatturazione')))) ?: $rs[$key]['info'];
90+
91+
// Se l'impostazione "Descrizione personalizzata in fatturazione" è vuota, non aggiunge la riga descrittiva
92+
$descrizione_personalizzata = setting('Descrizione personalizzata in fatturazione');
93+
$rs[$key]['info'] = !empty($descrizione_personalizzata) ? str_replace("'", ' ', strip_tags((string) $module_interventi->replacePlaceholders($value['id'], $descrizione_personalizzata))) : '';
9194
}
9295

9396
// Intervento

modules/interventi/bulk.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,9 @@
189189
}
190190
}
191191

192-
$descrizione = str_replace("'", ' ', strip_tags((string) $module->replacePlaceholders($intervento['id'], setting('Descrizione personalizzata in fatturazione')))) ?: tr('Attività numero _NUM_ del _DATE_', [
193-
'_NUM_' => $intervento['codice_intervento'],
194-
'_DATE_' => Translator::dateToLocale($intervento['data']),
195-
]);
192+
// Se l'impostazione "Descrizione personalizzata in fatturazione" è vuota, non aggiunge la riga descrittiva
193+
$descrizione_personalizzata = setting('Descrizione personalizzata in fatturazione');
194+
$descrizione = !empty($descrizione_personalizzata) ? str_replace("'", ' ', strip_tags((string) $module->replacePlaceholders($intervento['id'], $descrizione_personalizzata))) : '';
196195

197196
aggiungi_intervento_in_fattura($intervento['id'], $id_documento, $descrizione, $id_iva, $id_conto);
198197
$fatturati[] = $intervento['id'];

modules/interventi/modutil.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,13 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
191191
}
192192
}
193193

194-
// Riga di descrizione
195-
$riga = Descrizione::build($fattura);
196-
$riga->descrizione = $descrizione;
197-
$riga->idintervento = $id_intervento;
198-
$riga->save();
194+
// Riga di descrizione (solo se non vuota)
195+
if (!empty($descrizione)) {
196+
$riga = Descrizione::build($fattura);
197+
$riga->descrizione = $descrizione;
198+
$riga->idintervento = $id_intervento;
199+
$riga->save();
200+
}
199201

200202
// Ore di lavoro raggruppate per costo orario
201203
$sessioni = $intervento->sessioni;

update/2_11.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,7 @@ INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`) VALU
7474

7575
INSERT INTO `zz_settings_lang` (`id_lang`, `id_record`, `title`, `help`) VALUES
7676
(1, (SELECT MAX(`id`) FROM `zz_settings`), 'Applica diritto di chiamata una volta al giorno', ''),
77-
(2, (SELECT MAX(`id`) FROM `zz_settings`), 'Apply call right once a day', '');
77+
(2, (SELECT MAX(`id`) FROM `zz_settings`), 'Apply call right once a day', '');
78+
79+
-- Valorizzazione dell'impostazione "Descrizione personalizzata in fatturazione" se vuota
80+
UPDATE `zz_settings` SET `valore` = 'Attività numero {numero} del {data}' WHERE `nome` = 'Descrizione personalizzata in fatturazione' AND (`valore` IS NULL OR `valore` = '');

0 commit comments

Comments
 (0)