TransaksiController.php 4.61 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){
101 102 103
                    $rev[$r->nik] = $r->nik;
                }
                
Siti Aisah committed
104
                $count = DB::connection('isdm')->table('v_detil_pegawai')->whereIn('noktp',$rev)->select('namalengkap','nip','noktp')->get();
105
                
Siti Aisah committed
106 107 108 109
                if(count($count) >= 2){
                    foreach($count as $sdm){
                        $isdm = DB::connection('isdm')->table('v_detil_pegawai')->where('noktp',$sdm->noktp)->select('namalengkap','nip')->first();

110 111 112
                        $saku = [
                                'id_pengajuan' => $hasil->id,
                                'nik' => $sdm->noktp,
Siti Aisah committed
113 114 115
                                'nama' => $isdm->namalengkap,
                                'nip' => $isdm->nip
                        ];
Siti Aisah committed
116

Siti Aisah committed
117 118 119
                        Penelaah::query()->create($saku);
                    }
                    
120 121

                } else {
Siti Aisah committed
122
                    foreach($count as $sdm){
123 124 125 126
                        $data['kosong'] = DB::table('bantuan_penelaah')->where('id_pengajuan',$request->idpengajuan)->where('nik','!=', $sdm->noktp)->first();
                    }
    
                    return view('transaksi-gagal', $data);
Siti Aisah committed
127
                }
128

Siti Aisah committed
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();
137
            
Siti Aisah committed
138
            return Redirect::route('transaksi.index')
139
            ->with('error', 'Data Kategori gagal diupdate');
Siti Aisah committed
140 141 142
        }
    }
}