++ audit log: evento "campagna_percorso" per la scelta sul conteggio in campagna
Registrato al rientro quando viene proposta una campagna (Sì/No) e nel Registro quando l'amministratore imposta o modifica il conteggio. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -98,6 +98,16 @@ class Rientra extends Component
|
||||
])
|
||||
->log('returned');
|
||||
|
||||
// The operator answered the campaign prompt: record the choice
|
||||
// (counted or not) as its own audit entry.
|
||||
if ($this->showCampaignPrompt && $this->campagna_id) {
|
||||
$this->assegnazione->logCampagnaPercorso(
|
||||
Campagna::find($this->campagna_id),
|
||||
$this->counted_in_campaign,
|
||||
'Rientro'
|
||||
);
|
||||
}
|
||||
|
||||
session()->flash('success', "Territorio {$territorio->numero} rientrato da {$proclamatore->nome_completo} dopo {$this->assegnazione->giorni} giorni.");
|
||||
return $this->redirect(route('territori.show', $territorio), navigate: true);
|
||||
}
|
||||
|
||||
@@ -154,7 +154,10 @@ class Registro extends Component
|
||||
'note' => $this->form_note ?: null,
|
||||
];
|
||||
|
||||
$conflitto = DB::transaction(function () use ($data, $uscita, $rientro) {
|
||||
$assegnazione = null;
|
||||
$prima = [false, null];
|
||||
|
||||
$conflitto = DB::transaction(function () use ($data, $uscita, $rientro, &$assegnazione, &$prima) {
|
||||
Territorio::whereKey($data['territorio_id'])->lockForUpdate()->first();
|
||||
|
||||
$conflitto = Assegnazione::sovrappostaA((int) $data['territorio_id'], $uscita, $rientro, $this->editingId);
|
||||
@@ -163,9 +166,11 @@ class Registro extends Component
|
||||
}
|
||||
|
||||
if ($this->editingId) {
|
||||
Assegnazione::findOrFail($this->editingId)->update($data);
|
||||
$assegnazione = Assegnazione::findOrFail($this->editingId);
|
||||
$prima = [(bool) $assegnazione->counted_in_campaign, $assegnazione->campaign_id ? (int) $assegnazione->campaign_id : null];
|
||||
$assegnazione->update($data);
|
||||
} else {
|
||||
Assegnazione::create($data + ['created_by' => auth()->id()]);
|
||||
$assegnazione = Assegnazione::create($data + ['created_by' => auth()->id()]);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -177,6 +182,16 @@ class Registro extends Component
|
||||
return;
|
||||
}
|
||||
|
||||
// Log the campaign choice when the admin sets or changes it here.
|
||||
$dopo = [(bool) $assegnazione->counted_in_campaign, $assegnazione->campaign_id ? (int) $assegnazione->campaign_id : null];
|
||||
if ($dopo !== $prima && ($dopo[0] || $prima[0])) {
|
||||
$assegnazione->logCampagnaPercorso(
|
||||
$assegnazione->campagna ?? ($prima[1] ? Campagna::find($prima[1]) : null),
|
||||
$dopo[0],
|
||||
'Registro'
|
||||
);
|
||||
}
|
||||
|
||||
$this->showModal = false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user