arcadiasuite/plus/app/Models/OrdemServico.php

95 lines
2.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class OrdemServico extends Model
{
use HasFactory;
protected $fillable = [
'descricao', 'cliente_id', 'usuario_id', 'empresa_id', 'valor', 'data_inicio', 'data_entrega', 'funcionario_id',
'forma_pagamento', 'codigo_sequencial', 'caixa_id', 'local_id', 'adiantamento', 'veiculo_id', 'hash_link',
'tipo_servico', 'diagnostico_cliente', 'diagnostico_tecnico', 'defeito_encontrado', 'equipamento', 'numero_serie',
'cor', 'marca', 'modelo'
];
public function servicos(){
return $this->hasMany(ServicoOs::class, 'ordem_servico_id', 'id');
}
public function empresa(){
return $this->belongsTo(Empresa::class, 'empresa_id');
}
public function itens(){
return $this->hasMany(ProdutoOs::class, 'ordem_servico_id', 'id');
}
public function fatura(){
return $this->hasMany(FaturaOrdemServico::class, 'ordem_servico_id', 'id');
}
public function relatorios(){
return $this->hasMany(RelatorioOs::class, 'ordem_servico_id', 'id');
}
public function funcionarios(){
return $this->hasMany(FuncionarioOs::class, 'ordem_servico_id', 'id');
}
public function funcionario(){
return $this->belongsTo(Funcionario::class, 'funcionario_id');
}
public function oticaOs(){
return $this->hasOne(OticaOs::class, 'ordem_servico_id');
}
public function medicaoReceitaOs(){
return $this->hasOne(MedicaoReceitaOs::class, 'ordem_servico_id');
}
public function cliente(){
return $this->belongsTo(Cliente::class, 'cliente_id');
}
public function veiculo(){
return $this->belongsTo(Veiculo::class, 'veiculo_id');
}
public function usuario(){
return $this->belongsTo(User::class, 'usuario_id');
}
public static function estados(){
return [
'pd' => 'Pedente',
'ap' => 'Aprovado',
'rp' => 'Reprovado',
'fz' => 'Finalizado',
];
}
public static function tiposDeOrdemServico(){
return [
'normal' => 'Normal',
'assistencia técinica' => 'Assistência técnica',
'oficina' => 'Oficina',
];
}
public static function tiposDeServico(){
return [
'' => 'Selecione',
'reparo' => 'Reparo',
'manutenção' => 'Manutenção',
'instalação' => 'Instalação',
];
}
}