Yohohohohohooho | Sanrei Aya
Sanrei Aya


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/www/pmm/database/migrations/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/elvh3918/www/pmm/database/migrations/2025_08_21_044516_sp_sp_permission_by_role_view.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        $project = config('app.project_app');
        DB::unprepared('DROP PROCEDURE IF EXISTS sp_permission_by_role_view;');
        DB::unprepared("CREATE PROCEDURE sp_permission_by_role_view (IN spRole VARCHAR(25))
        BEGIN    
            SELECT 
                C.project, C.module, C.unit, C.program,
                MAX(CASE
                    WHEN C.permission = 'view' THEN C.id
                    ELSE CASE
                        WHEN C.permission = 'admin' THEN C.id
                        ELSE 0
                    END
                END) AS 'view',
                MAX(CASE
                    WHEN C.permission = 'create' THEN C.id
                    ELSE 0
                END) AS 'create',
                MAX(CASE
                    WHEN C.permission = 'edit' THEN C.id
                    ELSE 0
                END) AS 'edit',
                MAX(CASE
                    WHEN C.permission = 'delete' THEN C.id
                    ELSE 0
                END) AS 'delete',
                MAX(CASE
                    WHEN C.permission = 'print' THEN C.id
                    ELSE 0
                END) AS 'print',
                MAX(C.is_active) AS is_active
            FROM 
                vw_roles AS A
            INNER JOIN
                role_has_permissions AS B ON A.role_id = B.role_id
            INNER JOIN
                vw_permissions AS C ON B.permission_id = C.id
            WHERE C.project IN ('admin', $project) AND A.role_id IN (spRole)
			GROUP BY C.project, C.module, C.unit, C.program
			ORDER BY C.project, C.module, C.unit, C.program
            ;
        END");
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('sp_permission_by_role_view');
    }
};

Yohohohohohooho | Sanrei Aya