TransaksiController.php 4.55 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
                
Siti Aisah committed
98 99 100
                $reviewer = DB::table('bantuan_penelaah')->where('id_pengajuan',$request->idpengajuan)->pluck('nik');

                $count = DB::connection('isdm')->table('v_detil_pegawai')->whereIn('noktp',$reviewer)->select('noktp')->get();
101
                
Siti Aisah committed
102 103
                if(count($count) >= 2){
                    foreach($count as $sdm){
Siti Aisah committed
104
                        $isdm = DB::connection('isdm')->table('v_detil_pegawai')->where('noktp',$sdm->noktp)->select('namalengkap','nip','namaparentsatker')->first();
Siti Aisah committed
105

106 107 108
                        $saku = [
                                'id_pengajuan' => $hasil->id,
                                'nik' => $sdm->noktp,
Siti Aisah committed
109
                                'nama' => $isdm->namalengkap,
Siti Aisah committed
110
                                'nip' => $isdm->nip,
Siti Aisah committed
111
                                'unit' => $isdm->namaparentsatker
Siti Aisah committed
112
                        ];
Siti Aisah committed
113

Siti Aisah committed
114 115 116
                        Penelaah::query()->create($saku);
                    }
                    
117 118

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

Siti Aisah committed
126 127 128 129 130 131 132 133
                DB::commit();
                        
                return Redirect::route('transaksi.index')
                ->with('success', 'Data kategori berhasil diupdate');
        }
        catch(Exception $e){
            Log::error($e);
            DB::rollBack();
134
            
Siti Aisah committed
135
            return Redirect::route('transaksi.index')
136
            ->with('error', 'Data Kategori gagal diupdate');
Siti Aisah committed
137 138 139
        }
    }
}