public function allTerceros($tipo = null) { switch ($tipo) { case 'proveedor': return Provedore::get(['id', 'nombre', DB::raw('("proveedor") as type')]); break; case 'servicio': return Departamento::get(['id', 'nombre', DB::raw('("servicio") as type')]); break; case 'deposito': $deposito = Auth::user()->deposito; return Deposito::where('id', '!=', $deposito)->get(['id', 'nombre', DB::raw('("deposito") as type')]); default: $deposito = Auth::user()->deposito; $provedores = DB::table('provedores')->where('deleted_at', null)->select('id', 'nombre', DB::raw('("proveedor") as type')); $servicios = DB::table('departamentos')->where('deleted_at', null)->select('id', 'nombre', DB::raw('("servicio") as type')); $depositos = DB::table('depositos')->where('id', '!=', $deposito)->where('deleted_at', null)->select('id', 'nombre', DB::raw('("deposito") as type')); $interno = DB::table('depositos')->where('id', $deposito)->select('id', 'nombre', DB::raw('("interno") as type')); return $provedores->unionAll($servicios)->unionAll($depositos)->unionAll($interno)->orderBy('id', 'desc')->get(); break; } }