TransaksiController.php 4.31 KB
Newer Older
Siti Aisah committed
1 2 3 4 5 6 7 8 9 10
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Support\ValidationRule;
use App\Http\Controllers\Controller;
use App\Models\Admin\Penelaah;
use App\Models\Admin\Pengajuan;
use Exception;
use Storage;
Siti Aisah committed
11
use Session;
Siti Aisah committed
12 13 14 15 16 17 18 19
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redirect;

class TransaksiController extends Controller
{

Siti Aisah committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
    public function index(Request $request) {

        Session::put('status', $request->status); 

        if(empty(Session::get('status'))) {

            $pengusul = DB::table('bantuan_pengusul')->get();

        } else {

            $pengajuan = DB::table('tr_pengajuan')->select('id_pengajuan')->get();

            foreach($pengajuan as $p){
                $list[$p->id_pengajuan] = $p->id_pengajuan;
            }

            if(Session::get('status') == '1'){

                $pengusul = DB::table('bantuan_pengusul')->whereIn('id_pengajuan',$list)->get();

            }elseif(Session::get('status') == '2'){

                $pengusul = DB::table('bantuan_pengusul')->whereNotIn('id_pengajuan',$list)->get();

            }

        }

Siti Aisah committed
48 49 50 51 52 53 54 55 56 57 58 59 60 61
        $kategori = DB::table('ms_kategori')->orderBy('kode_kategori','asc')->get();

        $data = [
            'pengusul' => $pengusul,
            'kategori' => $kategori
        ];

        return view('transaksi.index', $data);
    }

    public function store(Request $request){
        
        $rule = [
            'kategori' => 'required',
Siti Aisah committed
62
            'file_ec' => 'required|mimes:pdf|max:3072',
Siti Aisah committed
63 64 65 66 67 68 69
            'nosurat' => 'required'
        ];
        
        $request->validate($rule, ValidationRule::getErrorMessage($rule));
        
        DB::beginTransaction();
        
Siti Aisah committed
70
        try{
Siti Aisah committed
71
            
Siti Aisah committed
72 73 74
            if($request->hasFile('file_ec')){
                $file = $request->file('file_ec');
                $filename = $file->getClientOriginalName();
Siti Aisah committed
75
            
Siti Aisah committed
76 77 78 79 80 81 82
                $path_dir = 'sipeka/file/';
                $move = $request->file('file_ec')->move($path_dir,$filename);
    
                // $cek = Storage::disk('uploads')->put('sipeka/'.$filename, file_get_contents($file->getRealPath()));
                // dd($cek);
            }

Siti Aisah committed
83 84 85
                $transaksi = [
                    'id_pengajuan' => $request->idpengajuan,
                    'judul' => $request->judul,
Siti Aisah committed
86
                    'peneliti' => $request->peneliti,
Siti Aisah committed
87 88 89
                    'klasifikasi' => $request->klasifikasi,
                    'tahun' => $request->tahun,
                    'id_kategori' => $request->kategori,
Siti Aisah committed
90
                    'file_ec' => $filename,
Siti Aisah committed
91 92 93 94 95
                    'no_sk' => $request->nosurat,
                ];
                
                Pengajuan::query()->create($transaksi);
                
Siti Aisah committed
96
                $hasil = DB::table('tr_pengajuan')->where('id_pengajuan',$request->idpengajuan)->first();
Siti Aisah committed
97 98 99 100
                
                $reviewer = DB::table('bantuan_penelaah')->where('id_pengajuan',$request->idpengajuan)->get();
                
                foreach($reviewer as $r){
Siti Aisah committed
101
                    $isdm = DB::connection('isdm')->table('v_detil_pegawai')->where('noktp',$r->nik)->select('namalengkap','nip')->first();
Siti Aisah committed
102
                    if(!empty($isdm)){
Siti Aisah committed
103 104 105 106 107 108

                    $saku = [
                            'id_pengajuan' => $hasil->id,
                            'nik' => $r->nik,
                            'nama' => $isdm->namalengkap,
                            'nip' => $isdm->nip
Siti Aisah committed
109 110 111 112 113 114 115 116
                    ];          
                    
                } else {
                    $saku = [
                        'id_pengajuan' => $hasil->id,
                        'nik' => $r->nik,
                        'nama' => $r->penelaah,
                        'nip' => 'NIK belum terdaftar di ISDM. Silakan update ke Kepegawaian.'
Siti Aisah committed
117
                    ];
Siti Aisah committed
118 119
                }

Siti Aisah committed
120 121
                    Penelaah::query()->create($saku);
                }
Siti Aisah committed
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
                        
                DB::commit();
                        
                return Redirect::route('transaksi.index')
                ->with('success', 'Data kategori berhasil diupdate');
        }
        catch(Exception $e){
            Log::error($e);
            DB::rollBack();

            return Redirect::route('transaksi.index')
            ->with('error', 'Data kategori gagal diupdate');
        }
    }
}