92 lines
2.5 KiB
PHP
92 lines
2.5 KiB
PHP
<?php
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class TicketIntervento extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $table = 'ticket_interventi';
|
|
|
|
protected $fillable = [
|
|
'ticket_id',
|
|
'fornitore_id',
|
|
'creato_da_user_id',
|
|
'preso_in_carico_da_user_id',
|
|
'eseguito_da_dipendente_id',
|
|
'stato',
|
|
'note_amministratore',
|
|
'rapporto_fornitore',
|
|
'articoli_utilizzati',
|
|
'tempo_minuti',
|
|
'iniziato_at',
|
|
'terminato_at',
|
|
'foto_path',
|
|
'qr_token',
|
|
'qr_scansionato_at',
|
|
'check_foto_ok',
|
|
'check_qr_ok',
|
|
'check_admin_ok',
|
|
'riferimento_chiusura',
|
|
'fattura_numero',
|
|
'fattura_data',
|
|
'fattura_imponibile',
|
|
'fattura_totale',
|
|
'fe_riferimento',
|
|
'notifica_chiusura_inviata_at',
|
|
'chiuso_at',
|
|
];
|
|
|
|
protected $casts = [
|
|
'articoli_utilizzati' => 'array',
|
|
'iniziato_at' => 'datetime',
|
|
'terminato_at' => 'datetime',
|
|
'qr_scansionato_at' => 'datetime',
|
|
'notifica_chiusura_inviata_at' => 'datetime',
|
|
'chiuso_at' => 'datetime',
|
|
'fattura_data' => 'date',
|
|
'check_foto_ok' => 'boolean',
|
|
'check_qr_ok' => 'boolean',
|
|
'check_admin_ok' => 'boolean',
|
|
'fattura_imponibile' => 'decimal:2',
|
|
'fattura_totale' => 'decimal:2',
|
|
];
|
|
|
|
public function ticket()
|
|
{
|
|
return $this->belongsTo(Ticket::class, 'ticket_id');
|
|
}
|
|
|
|
public function fornitore()
|
|
{
|
|
return $this->belongsTo(Fornitore::class, 'fornitore_id');
|
|
}
|
|
|
|
public function creatoDaUser()
|
|
{
|
|
return $this->belongsTo(User::class, 'creato_da_user_id');
|
|
}
|
|
|
|
public function presoInCaricoDaUser()
|
|
{
|
|
return $this->belongsTo(User::class, 'preso_in_carico_da_user_id');
|
|
}
|
|
|
|
public function eseguitoDaDipendente()
|
|
{
|
|
return $this->belongsTo(FornitoreDipendente::class, 'eseguito_da_dipendente_id');
|
|
}
|
|
|
|
public function getCompletabileAttribute(): bool
|
|
{
|
|
return $this->check_foto_ok && $this->check_qr_ok && $this->check_admin_ok;
|
|
}
|
|
|
|
public function getOperatoreAssegnatoLabelAttribute(): string
|
|
{
|
|
return $this->eseguitoDaDipendente?->ruolo_operativo_label ?: 'Responsabile fornitore';
|
|
}
|
|
}
|