Gestione Post-it chiamate

Vista dedicata allo storico e alle conversioni in ticket.

Vai a Inserimento Post-it
@if(! $this->isPostItTableReady())
Tabella chiamate non pronta. Esegui le migrazioni per usare la gestione Post-it.
@else @if($activeTab === 'storico')

Storico chiamate recenti

@forelse($this->recentiVisibili as $riga)
(int) ($this->focusPostItId ?? 0) === (int) $riga->id, ])>
{{ $riga->oggetto ?: 'Senza oggetto' }}
@if((int) ($this->focusPostItId ?? 0) === (int) $riga->id)
Post-it appena creato
@endif
{{ $riga->nome_chiamante ?: 'Chiamante non identificato' }} @if($riga->telefono) - {{ $riga->telefono }} @php($rubricaNome = $this->getRubricaNomeByPhone((string) $riga->telefono)) @if($rubricaNome) - {{ $rubricaNome }} @endif @php($rubricaUrl = $this->getRubricaUrlByPhone((string) $riga->telefono)) @if($rubricaUrl) - Apri scheda rubrica @endif @endif @if($riga->stabile) - {{ $riga->stabile->denominazione ?: ('Stabile #' . $riga->stabile->id) }} @endif
{{ optional($riga->chiamata_il)->format('d/m/Y H:i') }}
{{ $riga->nota }}
{{ $riga->priorita }} {{ $riga->stato }} {{ str_replace('_', ' ', (string) $riga->direzione) }} @if($riga->esito) {{ $riga->esito }} @endif @if(!$riga->ticket_id && $riga->stato !== 'chiusa')
Converti in ticket
@endif @if($riga->stato !== 'chiusa') Chiudi @endif @php($ticketClosed = $riga->ticket && in_array((string) $riga->ticket->stato, ['Chiuso', 'Risolto'], true)) @if($riga->stato === 'chiusa' || $ticketClosed)
Riapri post-it/ticket
@endif @if($riga->ticket_id) Apri Ticket (#{{ $riga->ticket_id }}) @endif
@empty
Nessuna chiamata registrata.
@endforelse
@elseif($activeTab === 'lavagna')

Lavagna chiamate raggruppate

Qui vedi i Post-it raggruppati per numero chiamante. Le chiamate interne restano nel database ma non vengono visualizzate.

@forelse($this->recentiRaggruppati as $gruppo) @php($box = $gruppo['latest'])
{{ $box->direzione === 'in_uscita' ? 'Chiamata in uscita' : 'Chiamata in arrivo' }}
{{ $gruppo['caller_label'] }} @if($gruppo['phone'] !== '') - {{ $gruppo['phone'] }} @endif
@php($rubricaUrlGrouped = $gruppo['rubrica_url']) @if($rubricaUrlGrouped) Apri scheda rubrica @elseif($gruppo['can_create_rubrica']) @endif
{{ $gruppo['count'] }} chiamate
Aperto dal {{ $gruppo['first_at'] }} al {{ $gruppo['last_at'] }}
{{ (int) $gruppo['answered_count'] }} risposte {{ (int) $gruppo['missed_count'] }} mancate risposte
@foreach($gruppo['visible_items'] as $item) @php($callState = $this->getPostItCallStateMeta($item))
{{ $item->oggetto ?: 'Senza oggetto' }}
{{ optional($item->chiamata_il)->format('d/m/Y H:i') }}
{{ $callState['label'] }}
@if($item->stabile)
{{ $item->stabile->denominazione ?: ('Stabile #' . $item->stabile->id) }}
@endif
@endforeach @if($gruppo['hidden_count'] > 0)
Altre {{ $gruppo['hidden_count'] }} chiamate visibili nel dettaglio.
@endif
Vedi dettaglio {{ $gruppo['primary_action_label'] }} @if($gruppo['can_create_rubrica']) Nuova anagrafica @endif @if($box->ticket_id) Apri ticket @endif
@empty
Nessuna chiamata esterna disponibile per la lavagna.
@endforelse
@elseif($activeTab === 'archivio')

Archivio Post-it chiusi

I Post-it chiusi restano collegati al numero o al nominativo e possono essere riaperti quando serve. Anche qui le chiamate interne sono escluse.

@forelse($this->recentiChiusiRaggruppati as $gruppo) @php($box = $gruppo['latest'])
Archivio chiuso
{{ $gruppo['caller_label'] }}@if($gruppo['phone'] !== '') - {{ $gruppo['phone'] }}@endif
{{ $gruppo['count'] }} chiusi
Dal {{ $gruppo['first_at'] }} al {{ $gruppo['last_at'] }}
@foreach($gruppo['visible_items'] as $item)
{{ $item->oggetto ?: 'Senza oggetto' }}
{{ optional($item->chiamata_il)->format('d/m/Y H:i') }}
@endforeach @if($gruppo['hidden_count'] > 0)
Altri {{ $gruppo['hidden_count'] }} Post-it chiusi nel dettaglio.
@endif
Vedi dettaglio Apri ultimo Post-it
@empty
Nessun Post-it chiuso disponibile in archivio.
@endforelse
@elseif(in_array($activeTab, ['smdr', 'csta'], true))
@php($isCstaTab = $activeTab === 'csta')

{{ $isCstaTab ? 'Elenco tecnico CTI / CSTA' : 'Elenco tecnico chiamate SMDR' }}

{{ $isCstaTab ? 'Vista test PBX per eventi CSTA, provider, interno coinvolto e richieste click-to-call. Il provider viene letto dai metadati così il cruscotto resta riusabile anche con FreePBX o altri centralini.' : 'Qui vedi in colonne i dati disponibili dal centralino via SMDR: interno, linea/trunk, numero, durata, costo, utente assegnato, stabile e raw line.' }}

@if($isCstaTab)
Controllo chiamate PBX
Da questo tab puoi verificare gli eventi CSTA e registrare richieste click-to-call verso il PBX dell'interno assegnato. La UI non e vincolata a Panasonic: il provider e esposto come metadato.
Ultime richieste click-to-call
Fonte: coda locale PBX
@forelse($this->recentClickToCallRequests as $req) @empty @endforelse
Richiesta Interno Numero Stato Provider Quando
#{{ $req->id }} {{ $req->source_extension ?: '-' }} {{ $req->target_number ?: '-' }} {{ $req->status ?: '-' }} {{ strtoupper(str_replace('_', ' ', (string) data_get($req->metadata, 'provider', data_get($req->metadata, 'source_channel', '-')))) }} {{ optional($req->requested_at)->format('d/m/Y H:i:s') ?: optional($req->created_at)->format('d/m/Y H:i:s') }}
Nessuna richiesta click-to-call registrata per il contesto utente corrente.
@endif
@forelse($this->chiamateTecniche as $m) @php($smdr = (array) data_get($m->metadata, 'smdr', [])) @php($cost = trim((string) (($smdr['cost_currency'] ?? '') . ' ' . ($smdr['cost_amount'] ?? '')))) @php($duration = (string) (($smdr['duration_raw'] ?? '') ?: ($smdr['ring_duration_raw'] ?? ''))) @php($phoneValue = (string) ($m->phone_number ?: ($smdr['dial_number'] ?? ''))) @php($rubricaNomeTech = $this->getTecnicoNominativo($m)) @empty @endforelse
ID Data/Ora Provider Direzione Ambito Interno Linea / Evento Numero Nominativo Durata Costo Utente Stabile Post-it Raw Azioni
{{ $m->id }} {{ optional($m->received_at)->format('d/m/Y H:i:s') }} {{ $this->getTecnicoProviderLabel($m) }} {{ $m->direction }} {{ $this->getTecnicoScopeLabel($m) }} {{ $this->getTecnicoInternoLabel($m) }} {{ $this->getTecnicoLineaLabel($m) }} {{ (string) ($m->phone_number ?: ($smdr['dial_number'] ?? '-')) }} {{ $rubricaNomeTech ?: '-' }} {{ $duration !== '' ? $duration : '-' }} {{ $cost !== '' ? $cost : '-' }} {{ $m->assignedUser?->name ?: '-' }} {{ $m->stabile?->denominazione ?: ($m->stabile_id ? ('#' . $m->stabile_id) : '-') }} {{ $m->post_it_id ? ('#' . $m->post_it_id) : '-' }} {{ $m->message_text }} @php($rubricaUrlTech = $this->getRubricaUrlByPhone($phoneValue)) @if($rubricaUrlTech && ! $this->isInternalSmdrMessage($m)) Apri Rubrica @endif @if($activeTab === 'csta') Click-to-call @endif @if(!$m->post_it_id) Crea Post-it @else Collegato @endif
{{ $isCstaTab ? 'Nessun evento CSTA disponibile.' : 'Nessun evento SMDR disponibile.' }}
@endif @if($this->selectedGroupModal)
{{ $this->selectedGroupModal['caller_label'] }}@if($this->selectedGroupModal['phone'] !== '') - {{ $this->selectedGroupModal['phone'] }}@endif
{{ $this->selectedGroupModal['count'] }} chiamate totali · {{ $selectedGroupModalMode === 'closed' ? 'archivio chiusi' : 'lavagna aperti' }}
{{ (int) $this->selectedGroupModal['answered_count'] }} risposte {{ (int) $this->selectedGroupModal['missed_count'] }} mancate risposte
@if(($this->selectedGroupModal['rubrica_url'] ?? null)) Apri scheda rubrica @elseif($this->selectedGroupModal['can_create_rubrica']) Crea anagrafica @endif
@foreach($this->selectedGroupModalDays as $day)
{{ $day['day'] }}
@foreach($day['items'] as $item) @php($callState = $this->getPostItCallStateMeta($item))
{{ $item->oggetto ?: 'Senza oggetto' }}
{{ optional($item->chiamata_il)->format('d/m/Y H:i') }}
{{ $callState['label'] }}
@if($item->stabile)
{{ $item->stabile->denominazione ?: ('Stabile #' . $item->stabile->id) }}
@endif
{{ $item->nota }}
@endforeach
@endforeach
@endif @endif