Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo-catatan-keuangan.aplikasipos.info/app/Helper/
Upload File :
Current File : /home/aplikasiposinfo/www/demo-catatan-keuangan.aplikasipos.info/app/Helper/RoleHelper.php

<?php
namespace App\Helper;

use App\Models\Divisi;
use App\Models\User;

class RoleHelper
{   
    //mengecek user punya atasan siapa
    public static function parentRoleUser(User $user,$divisi_id = null, $role_id = null,$perusahaan_id = null)
    {   
        $roles = ($role_id == null) ? $user->customRoles : $user->customRoles()->where('id', $role_id)->get();
        foreach ($roles as $role) {
            $_user = null;
            if($role->parentRole && $role->parentRole->parentRole){
                $divisi_ids = $user->divisis()->pluck('divisi_id')->toArray();
                $perusahaan_ids = ($perusahaan_id != null)?[$perusahaan_id]:$user->perusahaans()->pluck('perusahaan_id')->toArray();
                $_user = User::whereHas('roles', function ($query) use ($role) {
                    $query->where('id', $role->parentRole->parentRole->id);
                })->where(function($ww)use($divisi_ids,$perusahaan_ids){
                    $ww->whereHas('divisis', function ($query) use ($divisi_ids) {
                        $query->whereIn('divisi_id', $divisi_ids);
                    })->whereHas('perusahaans', function ($query) use ($perusahaan_ids) {
                        $query->where('perusahaan_id', $perusahaan_ids);
                    });
                })->first();
                if (!$_user) {
                    $_user = User::whereHas('roles', function ($query) use ($role) {
                        $query->where('id', $role->parentRole->parentRole->id);
                    })->where(function($ww)use($divisi_ids,$perusahaan_ids){
                        $ww->whereHas('perusahaans', function ($query) use ($perusahaan_ids) {
                            $query->where('perusahaan_id', $perusahaan_ids);
                        })->whereDoesntHave('divisis');
                    })->first();
                }
                if (!$_user) {
                    $_user = User::whereHas('roles', function ($query) use ($role) {
                        $query->where('id', $role->parentRole->parentRole->id);
                    })->where(function($ww)use($divisi_ids,$perusahaan_ids){
                        $ww->whereHas('divisis', function ($query) use ($divisi_ids) {
                            $query->whereIn('divisi_id', $divisi_ids);
                        })->whereDoesntHave('perusahaans');
                    })->first();
                }
                // if(!$_user){
                //     $_user = User::whereHas('roles', function ($query) use ($role) {
                //         $query->where('id', $role->parentRole->parentRole->id);
                //     })->where(function($ww)use($divisi_ids,$perusahaan_ids){
                //         $ww->whereHas('perusahaans', function ($query) use ($perusahaan_ids) {
                //             $query->where('perusahaan_id', $perusahaan_ids);
                //         })->whereHave('divisis');
                //     })->first();
                // }
                // if($divisi_id){
                //     $divisi = Divisi::find($divisi_id);
                // } else {
                //     $divisi = @$user->divisi->divisi;
                // }
                // if($divisi){
                   
                //     if($role->parentRole->parentRole->pakai_divisi){
                    
                //         $_user = User::whereHas('roles', function ($query) use ($role) {
                //             $query->where('id', $role->parentRole->parentRole->id);
                //         })->whereHas('divisis', function ($query) use ($divisi) {
                //             $query->where('divisi_id', $divisi->id);
                //         })->first();
                //     } else if($role->parentRole->parentRole->pakai_perusahaan) {
                        
                //         $_user = User::whereHas('roles', function ($query) use ($role) {
                //             $query->where('id', $role->parentRole->parentRole->id);
                //         })->whereHas('perusahaans', function ($query) use ($divisi) {
                //             $query->where('perusahaan_id', $divisi->perusahaan_id);
                //         })->first();
                        
                //     }
                // }
            }
            
            if($_user){
            
                return $_user;
                
            }
        }
        return null;
    }

    public static function strukturRoleUser(User $user,$divisi_id = null, $role_id = null,$perusahaan_id = null){
        $divisi = Divisi::find($divisi_id);
        $struktur = [];
        $_user = $user;
        while ($_user != null) {
            $struktur[] = $_user;
            $_user = self::parentRoleUser($_user,@$divisi->id,$role_id,$perusahaan_id);
        }
        
        return $struktur;
    }

    
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]