| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- namespace App\Http\Controllers\Core;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Crypt;
- use Illuminate\Http\Request;
- use App\Model\Privillage\Role;
- use App\Model\Inspeksi\Inspeksi;
- use App\Model\TahunProgram;
- use App\Model\TemplateProgram;
- use App\Model\TahunProgramDetail;
- use App\Model\UPTSModel;
- use App\Model\TahunProgramDetailUpt;
- use Auth;
- use Session;
- class PenentuanTargetController extends Controller
- {
- public function __construct()
- {
- $this->middleware('auth');
- $this->table = new TahunProgramDetail;
- }
- public function index () {
- $data = $this->table->whereHas('tahunProgram',function($q){
- $q->where('status',1);
- });
- $getStatus = Role::where('id',Auth::user()->role_id)->value('akses');
- if($getStatus!='administrator'){
- $data = $data->whereHas('templateProgram',function($qTemplateProgram){
- $qTemplateProgram->whereHas('templateProgramRole',function($qTemplateProgramRole){
- $qTemplateProgramRole->where('id_role',Auth::user()->role_id);
- });
- });
- }
- $data = $data->orderBy('id')->get();
- return view('penentuan-target/index',compact('data'));
- }
- public function edit($id) {
- $data = $this->table->with('tahunProgram','templateProgram','tahunProgramDetailUpt')->find($id);
- $upt = UPTSModel::distinct('office_id')->get();
- return view('penentuan-target/edit', compact('id','data','upt'));
- }
- public function detail($id) {
- $data = $this->table->with('tahunProgram','templateProgram','tahunProgramDetailUpt')->find($id);
- $upt = UPTSModel::distinct('office_id')->get();
- return view('penentuan-target/detail', compact('id','data','upt'));
- }
- public function update($id,Request $request){
- ini_set('max_input_vars',10000);
- $upt = UPTSModel::distinct('office_id')->get();
- $query = $this->table->find($id);
- $query->tipe_target = $request->tipe_target;
- $query->satuan_target = $request->satuan_target;
- $tmp = null;
- // dd($request->all());
- if($query->save()){
-
- //0 = spesifik upt; 1 = semua;
- if($request->tipe_target==0){
- $periode = $request->periode;
- $attributes = [];
-
- foreach($upt as $row){
- $attr = new TahunProgramDetailUpt;
- $attr->id_upt = $row->office_id;
- $attr->periode = $request->get('spesifik_periode_'.$periode.'_'.$row->office_id);
- $attr->target = $request->get('spesifik_target_'.$periode.'_'.$row->office_id);
-
- $attributes[] = $attr;
- }
- //for redirect to previous periode
- $tmp = $periode;
- $query->tahunProgramDetailUpt()->where('periode',$periode)->delete();
- $query->tahunProgramDetailUpt()->saveMany($attributes);
- }else{
- $attributes = [];
-
- for($periode=1;$periode<=($query->jumlah);$periode++){
- foreach($upt as $row){
- $attr = new TahunProgramDetailUpt;
- $attr->id_upt = $row->office_id;
- $attr->periode = $request->get('semua_periode_'.$periode);
- $attr->target = $request->get('semua_target_'.$periode);
- $attributes[] = $attr;
- }
-
- }
- $query->tahunProgramDetailUpt()->delete();
- $query->tahunProgramDetailUpt()->saveMany($attributes);
- }
- if($query){
- Session::flash('info', 'Penentuan Target Tahun '.$query->value);
- Session::flash('colors', 'green');
- Session::flash('icons', 'fas fa-clipboard-check');
- Session::flash('alert', 'Berhasil Menyimpan Data!');
- Session::flash('previous_periode', $tmp);
- }else{
- Session::flash('info', 'Penentuan Target Tahun '.$query->value);
- Session::flash('colors', 'red');
- Session::flash('icons', 'fas fa-times');
- Session::flash('alert', 'Gagal Menyimpan Data!');
- }
- }else{
- Session::flash('info', 'Penentuan Target Tahun '.$query->value);
- Session::flash('colors', 'red');
- Session::flash('icons', 'fas fa-times');
- Session::flash('alert', 'Gagal Menyimpan Data!');
-
- }
- //return to previous page
- return redirect()->back();
- }
- }
|