|
|
|
@ -36,24 +36,40 @@ class RedirectOption extends Model
|
|
|
|
|
|
|
|
|
|
public function list(array $params) |
|
|
|
|
{ |
|
|
|
|
$options = DB::table('redirect_option as ro') |
|
|
|
|
->join("redirect as r", "r.id", "=", "ro.id_redirect") |
|
|
|
|
->join("types as t", "t.id", "=", "ro.id_type") |
|
|
|
|
->select("ro.*", "r.name as redirect_name", "t.name as type_name"); |
|
|
|
|
$options = DB::table(DB::raw("( |
|
|
|
|
SELECT ro.*, r.name as redirect_name, t.name as type_name, |
|
|
|
|
CASE |
|
|
|
|
WHEN ro.id_type = 1 THEN q.nome |
|
|
|
|
WHEN ro.id_type = 2 THEN r.name |
|
|
|
|
WHEN ro.id_type = 3 THEN u.nome |
|
|
|
|
WHEN ro.id_type = 4 THEN ro.code_id |
|
|
|
|
WHEN ro.id_type = 5 THEN h.nome |
|
|
|
|
WHEN ro.id_type = 6 THEN ro.code_id |
|
|
|
|
ELSE NULL |
|
|
|
|
END AS additional_info |
|
|
|
|
FROM redirect_option ro |
|
|
|
|
INNER JOIN redirect r on ro.id_redirect = r.id |
|
|
|
|
INNER JOIN types t on ro.id_type = t.id |
|
|
|
|
LEFT JOIN queues q ON ro.id_type = 1 AND q.id = (case when ro.code_id ~ '^[0-9]+$' then ro.code_id::integer else 0 end) |
|
|
|
|
LEFT JOIN horarios h ON ro.id_type = 5 AND h.id = (case when ro.code_id ~ '^[0-9]+$' then ro.code_id::integer else 0 end) |
|
|
|
|
LEFT JOIN usuarios u ON ro.id_type = 3 AND u.id = (case when ro.code_id ~ '^[0-9]+$' then ro.code_id::integer else 0 end) |
|
|
|
|
) as t")); |
|
|
|
|
|
|
|
|
|
$options->selectRaw('t.*, redirect_name, type_name, t.additional_info'); |
|
|
|
|
|
|
|
|
|
if (isset($params['sequence'])) { |
|
|
|
|
$options->where('ro.sequence', $params['sequence']); |
|
|
|
|
$options->where('t.sequence', $params['sequence']); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (isset($params['search'])) { |
|
|
|
|
$options->where(DB::raw('LOWER(ro.nome)'), 'LIKE', "%{$params['search']}%"); |
|
|
|
|
$options->where(DB::raw('LOWER(t.nome)'), 'LIKE', "%{$params['search']}%"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (isset($params['id_redirect'])) { |
|
|
|
|
$options->where('ro.id_redirect', $params['id_redirect']); |
|
|
|
|
$options->where('t.id_redirect', $params['id_redirect']); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $options->orderBy('sequence', 'asc')->get(); |
|
|
|
|
return $options->orderBy('t.sequence', 'asc')->get(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function create(string|int $sequence, string $description, string|int $id_redirect, string|int $id_type, string|int $code_id, bool $hide, string $data_reg, bool $status) |
|
|
|
|