Skip to content

Commit f4868c9

Browse files
committed
refactor: miglioria risoluzione codici rea
1 parent 9604161 commit f4868c9

2 files changed

Lines changed: 75 additions & 19 deletions

File tree

modules/aggiornamenti/controlli.php

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -306,12 +306,45 @@ function addRiga(controllo, card, record) {
306306
function hasGlobalActions(controllo) {
307307
// Lista dei controlli che supportano azioni globali
308308
const controlliConAzioniGlobali = [
309-
"Modules\\\\Aggiornamenti\\\\Controlli\\\\PianoContiRagioneSociale"
309+
"Modules\\\\Aggiornamenti\\\\Controlli\\\\PianoContiRagioneSociale",
310+
"Modules\\\\Aggiornamenti\\\\Controlli\\\\ReaValidi"
310311
];
311312
312313
return controlliConAzioniGlobali.includes(controllo["class"]);
313314
}
314315
316+
/**
317+
* Restituisce il messaggio di conferma specifico per ogni controllo
318+
* @param controlloClass
319+
* @returns {object}
320+
*/
321+
function getMessaggioConferma(controlloClass) {
322+
const messaggi = {
323+
"Modules\\\\Aggiornamenti\\\\Controlli\\\\PianoContiRagioneSociale": {
324+
titolo: "'.tr('Conferma risoluzione conflitti').'",
325+
descrizione: "'.tr('Sei sicuro di voler risolvere tutti i conflitti?').'",
326+
operazioni: [
327+
"'.tr('Creerà nuovi conti per le anagrafiche con conflitti multipli').'",
328+
"'.tr('Aggiornerà i movimenti contabili collegati').'",
329+
"'.tr('Eliminerà i conti vuoti non più utilizzati').'",
330+
"'.tr('Non può essere annullata').'"
331+
]
332+
},
333+
"Modules\\\\Aggiornamenti\\\\Controlli\\\\ReaValidi": {
334+
titolo: "'.tr('Conferma rimozione codici REA').'",
335+
descrizione: "'.tr('Sei sicuro di voler rimuovere tutti i codici REA non validi?').'",
336+
operazioni: [
337+
"'.tr('Rimuoverà tutti i codici REA che non rispettano il formato corretto (XX-NNNNNN)').'",
338+
"'.tr('I codici REA verranno svuotati per le anagrafiche interessate').'",
339+
"'.tr('Le anagrafiche rimarranno invariate, solo il campo REA verrà pulito').'",
340+
"'.tr('Non può essere annullata').'"
341+
]
342+
}
343+
};
344+
345+
return messaggi[controlloClass] || messaggi["Modules\\\\Aggiornamenti\\\\Controlli\\\\PianoContiRagioneSociale"];
346+
}
347+
315348
/**
316349
* Esegue un\'azione globale su tutti i record di un controllo
317350
* @param buttonElement
@@ -321,6 +354,15 @@ function eseguiAzioneGlobale(buttonElement) {
321354
let controlloId = button.data("controllo-id");
322355
let controlloClass = button.data("controllo-class");
323356
357+
// Ottieni il messaggio specifico per questo controllo
358+
let messaggio = getMessaggioConferma(controlloClass);
359+
360+
// Genera la lista delle operazioni
361+
let operazioniHtml = "";
362+
messaggio.operazioni.forEach(function(operazione) {
363+
operazioniHtml += `<li>${operazione}</li>`;
364+
});
365+
324366
// Crea modal di conferma con lo stile del gestionale
325367
let modalHtml = `
326368
<div class="modal fade" id="modal-conferma-risoluzione" tabindex="-1" role="dialog">
@@ -329,22 +371,19 @@ function eseguiAzioneGlobale(buttonElement) {
329371
<div class="modal-header">
330372
<h4 class="modal-title">
331373
<i class="fa fa-exclamation-triangle text-warning"></i>
332-
'.tr('Conferma risoluzione conflitti').'
374+
${messaggio.titolo}
333375
</h4>
334376
<button type="button" class="close" data-dismiss="modal">
335377
<span>&times;</span>
336378
</button>
337379
</div>
338380
<div class="modal-body">
339-
<p>'.tr('Sei sicuro di voler risolvere tutti i conflitti?').'</p>
381+
<p>${messaggio.descrizione}</p>
340382
<div class="alert alert-warning">
341383
<i class="fa fa-info-circle"></i>
342384
'.tr('Questa operazione:').'
343385
<ul class="mb-0 mt-2">
344-
<li>'.tr('Creerà nuovi conti per le anagrafiche con conflitti multipli').'</li>
345-
<li>'.tr('Aggiornerà i movimenti contabili collegati').'</li>
346-
<li>'.tr('Eliminerà i conti vuoti non più utilizzati').'</li>
347-
<li>'.tr('Non può essere annullata').'</li>
386+
${operazioniHtml}
348387
</ul>
349388
</div>
350389
</div>

modules/aggiornamenti/src/Controlli/ReaValidi.php

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,16 @@ public function getType($record)
3636

3737
public function getOptions($record)
3838
{
39-
return [
40-
[
41-
'name' => tr('Rimuovi'),
42-
'icon' => 'fa fa-trash',
43-
'color' => 'danger',
44-
'params' => [],
45-
],
46-
];
39+
// Nessuna opzione per le singole righe - utilizzare solo la risoluzione globale
40+
return [];
41+
}
42+
43+
/**
44+
* Indica se questo controllo supporta azioni globali
45+
*/
46+
public function hasGlobalActions()
47+
{
48+
return true;
4749
}
4850

4951
public function check()
@@ -85,10 +87,25 @@ public function check()
8587

8688
public function execute($record, $params = [])
8789
{
88-
$anagrafica = Anagrafica::find($record['id']);
89-
$anagrafica->codicerea = null;
90-
$anagrafica->save();
90+
// La risoluzione singola non è più supportata
91+
// Utilizzare solo la risoluzione globale tramite il pulsante "Risolvi tutti i conflitti"
92+
throw new \Exception(tr('La risoluzione singola non è supportata. Utilizzare la risoluzione globale.'));
93+
}
94+
95+
/**
96+
* Override del metodo solveGlobal per gestire la rimozione dei codici REA non validi
97+
*/
98+
public function solveGlobal($params = [])
99+
{
100+
$results = [];
101+
foreach ($this->results as $record) {
102+
$anagrafica = Anagrafica::find($record['id']);
103+
$anagrafica->codicerea = null;
104+
$anagrafica->save();
91105

92-
return true;
106+
$results[$record['id']] = true;
107+
}
108+
109+
return $results;
93110
}
94111
}

0 commit comments

Comments
 (0)