|
Server : LiteSpeed System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : elvh3918 ( 1528) PHP Version : 8.2.31 Disable Function : mail Directory : /home/elvh3918/public_html/tenant/database/seeders/View/ |
<?php
namespace Database\Seeders\View;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class Currency_Exhange_Rates_Seeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
DB::unprepared('DROP VIEW IF EXISTS vw_currency_exhange_rates');
DB::unprepared(
"CREATE VIEW vw_currency_exhange_rates AS
SELECT
A.id, A.code, A.name, A.symbol,
CASE
WHEN A.is_default = 1 THEN 1
ELSE IFNULL(X.rate, 0)
END rate,
IFNULL(X.to_curr_id, A.id) AS to_curr,
A.is_active, A.is_default, A.created_at, A.updated_at
FROM
currencies AS A
LEFT OUTER JOIN
(
SELECT A.id, C.id AS curr_id, A.from_curr_id, A.to_curr_id, B.rate FROM
(
SELECT
from_curr_id, to_curr_id, MAX(id) AS id
FROM
exchange_rates
GROUP BY from_curr_id, to_curr_id
) AS A
LEFT OUTER JOIN
exchange_rates AS B ON A.id = B.id
LEFT OUTER JOIN
currencies AS C ON C.id = A.to_curr_id
WHERE C.is_default = 1
) AS X ON A.id = X.from_curr_id
;
");
}
}