Anons79 Mini Shell

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

<?php

namespace App\Helper;

use Session;
use Auth;
use App\Models\User;
use App\Models\Spatie\Roles;
use App\Models\Divisi;
use App\Models\GrupTandaTangan;

trait Component
{
    public static function selectMonth()
    {
        $bulan = [
            1 => 'Januari',
            2 => 'Februari',
            3 => 'Maret',
            4 => 'April',
            5 => 'Mei',
            6 => 'Juni',
            7 => 'Juli',
            8 => 'Agustus',
            9 => 'September',
            10 => 'Oktober',
            11 => 'November',
            12 => 'Desember',
        ];

        return collect($bulan);
    }



    public function saveSuccess($save, $url)
    {

        if ($save->wasRecentlyCreated) {
            Session::flash('message', ['type' => 'success', 'text' => '<i class="fa fa-check"></i> data berhasil disimpan']);
        } else {
            Session::flash('message', ['type' => 'danger', 'text' => '<i class="fa fa-times"></i> data tidak disimpan karena data sudah ada']);
        }
        redirect($url)->send();
    }
    public function updateSuccess($update, $url)
    {
        Session::flash('message', ['type' => 'success', 'text' => '<i class="fa fa-check"></i> data berhasil diperbarui']);
        redirect($url)->send();
    }
    public function deleteSuccess($url)
    {
        Session::flash('message', ['type' => 'success', 'text' => 'data berhasil dihapus']);
        redirect($url)->send();
    }

    public function saveFail($request)
    {
        // Session::flash('message',['type'=>'danger','text'=>'data gagal disimpan']);
        $request = (object) $request;
        redirect()->back()->withInput($request->toArray())->withErrors('gagal menyimpan data')->send();
    }
    public function updateFail($request)
    {
        // Session::flash('message',['type'=>'danger','text'=>'data gagal diperbarui']);
        $request = (object) $request;
        redirect()->back()->withInput($request->toArray())->withErrors('gagal memperbarui data')->send();
    }
    public function deleteFail()
    {
        // Session::flash('message',['type'=>'danger','text'=>'data gagal dihapus']);
        redirect()->back()->withErrors('gagal menghapus data')->send();
    }

    public function signatureRules($role_id, $divisi_id,$perusahaan_id = 0,$atasan_id = null)
    {

        //menentukan atasan untuk tanda tangan
        $rule = collect();

        $tandaTangans = GrupTandaTangan::orderBy('urutan', 'asc')->get();

        $_current_user = Auth::user();
        $_current_role = null;
        foreach ($tandaTangans as $index => $tandaTangan) {
            $_user = null;
            if($index == 1 && $atasan_id != 0 && $atasan_id != null){
                if(is_array($atasan_id)){
                    foreach ($atasan_id as $a_id) {
                        $_user = User::findOrfail($a_id);
                        $_current_user = $_user;
                        $_current_role = $_user->customRoles[0];
                        $rule->push(
                            [
                                'type' => str_replace(' ', '_', strtolower($tandaTangan->group)),
                                'label' => $tandaTangan->group,
                                'user_id' => $_current_user->id,
                                'name' => $_current_user->name,
                                'jabatan' => @$_current_user->divisi->jabatan,
                                'ttd' => public_path() . '/images/ttd/' . $_current_user->ttd,
                                'role' => $_current_role,
                            ]
                        );
                    }
                } else {
                    $_user = User::findOrfail($atasan_id);
                    $_current_user = $_user;
                    $_current_role = $_user->customRoles[0];
                    $rule->push(
                        [
                            'type' => str_replace(' ', '_', strtolower($tandaTangan->group)),
                            'label' => $tandaTangan->group,
                            'user_id' => $_current_user->id,
                            'name' => $_current_user->name,
                            'jabatan' => @$_current_user->divisi->jabatan,
                            'ttd' => public_path() . '/images/ttd/' . $_current_user->ttd,
                            'role' => $_current_role,
                        ]
                    );
                }
            }
            $roles = ($index > 0) ? $_current_user->customRoles : $_current_user->customRoles()->where('id', $role_id)->get();
            
            if($index > 0){
                foreach ($roles as $role) {

                    if ($role->parentRole && $role->parentRole->parentRole) {
    
                        $divisi_ids = $_current_user->divisis()->pluck('divisi_id')->toArray();
                        $perusahaan_ids = ($perusahaan_id != 0)?[$perusahaan_id]:$_current_user->perusahaans()->pluck('perusahaan_id')->toArray();
                        //pengecekan pertama mencari atasan dengan divisi dan perusahaan yang sama
                        $_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) {
                            //jika tidak ditemukan, akan di cek lagi dengan perusahaan yang sama dan divisi kosong
                            $_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) {
                            //jika tidak ditemukan, akan di cek lagi dengan divisi yang sama dan perusahaan kosong
                            $_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) {
    
                        $_current_user = $_user;
                        $_current_role = $role;
                        break;
                    }
                }
            }

            $rule->push(
                [
                    'type' => str_replace(' ', '_', strtolower($tandaTangan->group)),
                    'label' => $tandaTangan->group,
                    'user_id' => $_current_user->id,
                    'name' => $_current_user->name,
                    'jabatan' => @$_current_user->divisi->jabatan,
                    'ttd' => public_path() . '/images/ttd/' . $_current_user->ttd,
                    'role' => $_current_role ?? $roles[0],
                ]
            );
        }
        $status = 'close';
        $rule->map(function ($item, $key) use ($status) {
            $item = (object) $item;
            if ($item->user_id == Auth::user()->id) {
                $status = 'open';
                $item->type = 'pembuat';
                $item->label = 'dibuat oleh';
            }
            if ($status == 'open') {
                return $item;
            }
        });
        $rule = collect($rule)->unique('user_id')->values();

        return response()->json($rule);
    }

    public function current($signature)
    {
        $current = $signature->map(function ($item) {
            if ($item->status == '0') {
                // if ($item->user_id == Auth::user()->id) {
                return $item;
                // }
            }
        })->filter(function ($item) {
            return $item != null;
        })->first();
        return $current;
    }

    public function nexts($signature)
    {
        $nexts = $signature->map(function ($item, $key) use ($signature) {
            $data = $item;
            if ($data->user_id == Auth::user()->id) {
                if ($data->status == '0') {
                    return isset($signature[$key + 1]) ? $signature[$key + 1] : null;
                } else {
                    return isset($signature[$key + 3]) ? $signature[$key + 3] : null;
                }
            }
        })->filter(function ($item) {
            return $item != null;
        })->first();
        return $nexts;
    }

    public function prev($signature)
    {
        $prev = $signature->map(function ($item, $key) use ($signature) {
            $data = $item;
            if ($data->user_id == Auth::user()->id) {
                return isset($signature[$key - 1]) ? $signature[$key - 1] : null;
            }
        })->filter(function ($item) {
            return $item != null;
        })->first();
        return $prev;
    }

    public function checkStatus($surat)
    {

    }
}

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