++ fix statistiche campagne
- Dettaglio campagna: mostra tutti i territori conteggiati (stessa base della percentuale), non solo quelli assegnati dopo l'inizio. - Rientro: se più campagne corrispondono propone la più recente invece della prima creata; testo del banner chiarito. - Dettaglio campagna: nuova sezione "In corso" con i territori fuori durante la campagna e non ancora rientrati. - README: regola di conteggio documentata. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -203,10 +203,18 @@ class Assegnazione extends Model
|
||||
*/
|
||||
public function campagnaApplicabile(?\Carbon\Carbon $returnDate = null): ?Campagna
|
||||
{
|
||||
$returnDate = $returnDate ?? now();
|
||||
$returnDate = ($returnDate ?? now())->toDateString();
|
||||
$assignedAt = $this->assigned_at->toDateString();
|
||||
|
||||
// Il territorio può essere conteggiato per una campagna se è rimasto
|
||||
// in mano al proclamatore almeno in parte del periodo: assegnato
|
||||
// durante la campagna, rientrato durante la campagna, oppure fuori per
|
||||
// tutta la sua durata (assegnato prima e rientrato dopo). Se sia stato
|
||||
// davvero percorso lo decide l'operatore con la spunta.
|
||||
// Se più campagne corrispondono si propone la più recente.
|
||||
return Campagna::where('start_date', '<=', $returnDate)
|
||||
->where('end_date', '>=', $this->assigned_at)
|
||||
->where('end_date', '>=', $assignedAt)
|
||||
->orderByDesc('start_date')
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user