function ($q) { $q->with(['ahsS' => function ($q2) { $q2->where('status', 'approve'); }])->with(['vendors' => function ($q2) { $q2->where('status', 'approve'); }]); }])->orderBy('urutan', 'asc')->get(); return view('staff.backup-volume-create', compact('ahsKategoris')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { DB::unprepared(' SET FOREIGN_KEY_CHECKS=0'); if ($request->act == 'simpan_sementara') { if (!$request->nama_rab) { $nama_rab = 'draft'; } else { $nama_rab = $request->nama_rab; } if (!$request->bv) { $backup_volume = BackupVolume::create([ 'nama_rab' => $nama_rab, 'id_user' => Auth::user()->id ]); } else { $backup_volume = BackupVolume::findOrFail($request->bv); $backup_volume->nama_rab = $nama_rab; $backup_volume->save(); } if ($request->file('image')) { $file = $request->file('image'); $file->move(public_path('uploads/'), $file->getClientOriginalName()); } else { $file = null; } if ($request->id_ahs) { $backup_volume_d = BackupVolumeDetail::where([['id_backup_volume',$backup_volume->id],['id_ahs',$request->id_ahs]])->first(); if (!$backup_volume_d) { $backup_volume_d = BackupVolumeDetail::create([ 'id_backup_volume' => $backup_volume->id, 'id_ahs' => $request->id_ahs, 'image' => $file?'uploads/'.$file->getClientOriginalName():null, ]); } else { $backup_volume_d->image = $file?'uploads/'.$file->getClientOriginalName():null; $backup_volume_d->save(); } } else { $backup_volume_d = BackupVolumeDetail::where([['id_backup_volume',$backup_volume->id],['id_ahs_vendor',$request->id_ahs_vendor]])->first(); if (!$backup_volume_d) { $backup_volume_d = BackupVolumeDetail::create([ 'id_backup_volume' => $backup_volume->id, 'id_ahs_vendor' => $request->id_ahs_vendor, 'image' => $file?'uploads/'.$file->getClientOriginalName():null, ]); } else { $backup_volume_d->image = $file?'uploads/'.$file->getClientOriginalName():null; $backup_volume_d->save(); } } $total_volume = 0; $rincian_penambahs = []; $rincian_pengurangs = []; if ($request->rincian_penambahs) { foreach ($request->rincian_penambahs as $key => $value) { $pjg = $request->toArray()['pjg_penambahs'][$key]?str_replace(",", ".", $request->toArray()['pjg_penambahs'][$key]):null; $lbr = $request->toArray()['lbr_penambahs'][$key]?str_replace(",", ".", $request->toArray()['lbr_penambahs'][$key]):null; $tng = $request->toArray()['tng_penambahs'][$key]?str_replace(",", ".", $request->toArray()['tng_penambahs'][$key]):null; $brt = $request->toArray()['brt_penambahs'][$key]?str_replace(",", ".", $request->toArray()['brt_penambahs'][$key]):null; $qty = $request->toArray()['qty_penambahs'][$key]?str_replace(",", ".", $request->toArray()['qty_penambahs'][$key]):null; $fktr = $request->toArray()['fktr_penambahs'][$key]?str_replace(",", ".", $request->toArray()['fktr_penambahs'][$key]):null; $rincian = BackupVolumeDetailRincian::create([ 'rincian' => 'penambah', 'id_detail' => $backup_volume_d->id, 'nama_rincian' => $value, 'pjg' => $pjg, 'lbr' => $lbr, 'tng' => $tng, 'brt' => $brt, 'qty' => $qty, 'fktr' => $fktr, ]); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume += $pjg * $lbr * $tng * $brt * $qty * $fktr; array_push($rincian_penambahs, $rincian->id); } } if ($request->curr_idrincian_penambahs) { foreach ($request->curr_idrincian_penambahs as $key => $value) { $pjg = $request->toArray()['curr_pjg_penambahs'][$key]?str_replace(",", ".", $request->toArray()['curr_pjg_penambahs'][$key]):null; $lbr = $request->toArray()['curr_lbr_penambahs'][$key]?str_replace(",", ".", $request->toArray()['curr_lbr_penambahs'][$key]):null; $tng = $request->toArray()['curr_tng_penambahs'][$key]?str_replace(",", ".", $request->toArray()['curr_tng_penambahs'][$key]):null; $brt = $request->toArray()['curr_brt_penambahs'][$key]?str_replace(",", ".", $request->toArray()['curr_brt_penambahs'][$key]):null; $qty = $request->toArray()['curr_qty_penambahs'][$key]?str_replace(",", ".", $request->toArray()['curr_qty_penambahs'][$key]):null; $fktr = $request->toArray()['curr_fktr_penambahs'][$key]?str_replace(",", ".", $request->toArray()['curr_fktr_penambahs'][$key]):null; $rincian = BackupVolumeDetailRincian::find($value); if ($rincian) { $rincian->nama_rincian = $request->curr_rincian_penambahs[$key]?$request->curr_rincian_penambahs[$key]:'...'; $rincian->pjg = $pjg; $rincian->lbr = $lbr; $rincian->tng = $tng; $rincian->brt = $brt; $rincian->qty = $qty; $rincian->fktr = $fktr; $rincian->save(); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume += $pjg * $lbr * $tng * $brt * $qty * $fktr; array_push($rincian_penambahs, $rincian->id); } } } if ($request->rincian_pengurangs) { foreach ($request->rincian_pengurangs as $key => $value) { $pjg = $request->toArray()['pjg_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['pjg_pengurangs'][$key]):null; $lbr = $request->toArray()['lbr_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['lbr_pengurangs'][$key]):null; $tng = $request->toArray()['tng_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['tng_pengurangs'][$key]):null; $brt = $request->toArray()['brt_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['brt_pengurangs'][$key]):null; $qty = $request->toArray()['qty_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['qty_pengurangs'][$key]):null; $fktr = $request->toArray()['fktr_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['fktr_pengurangs'][$key]):null; $rincian = BackupVolumeDetailRincian::create([ 'rincian' => 'pengurang', 'id_detail' => $backup_volume_d->id, 'nama_rincian' => $value, 'pjg' => $pjg, 'lbr' => $lbr, 'tng' => $tng, 'brt' => $brt, 'qty' => $qty, 'fktr' => $fktr, ]); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume -= $pjg * $lbr * $tng * $brt * $qty * $fktr; array_push($rincian_pengurangs, $rincian->id); } } if ($request->curr_idrincian_pengurangs) { foreach ($request->curr_idrincian_pengurangs as $key => $value) { $pjg = $request->toArray()['curr_pjg_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['curr_pjg_pengurangs'][$key]):null; $lbr = $request->toArray()['curr_lbr_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['curr_lbr_pengurangs'][$key]):null; $tng = $request->toArray()['curr_tng_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['curr_tng_pengurangs'][$key]):null; $brt = $request->toArray()['curr_brt_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['curr_brt_pengurangs'][$key]):null; $qty = $request->toArray()['curr_qty_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['curr_qty_pengurangs'][$key]):null; $fktr = $request->toArray()['curr_fktr_pengurangs'][$key]?str_replace(",", ".", $request->toArray()['curr_fktr_pengurangs'][$key]):null; $rincian = BackupVolumeDetailRincian::find($value); if ($rincian) { $rincian->nama_rincian = $request->curr_rincian_pengurangs[$key]?$request->curr_rincian_pengurangs[$key]:'...'; $rincian->pjg = $pjg; $rincian->lbr = $lbr; $rincian->tng = $tng; $rincian->brt = $brt; $rincian->qty = $qty; $rincian->fktr = $fktr; $rincian->save(); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume -= $pjg * $lbr * $tng * $brt * $qty * $fktr; array_push($rincian_pengurangs, $rincian->id); } } } $backup_volume_d->volume = $total_volume; $backup_volume_d->save(); return response()->json(['msg' => 'success','bv' => $backup_volume->id,'rincian_penambahs' => $rincian_penambahs,'rincian_pengurangs' => $rincian_pengurangs]); } else { if (!$request->bv) { $backup_volume = BackupVolume::create([ 'nama_rab' => $request->nama_rab, 'id_user' => Auth::user()->id ]); } else { $backup_volume = BackupVolume::find($request->bv); $backup_volume->nama_rab = $request->nama_rab; $backup_volume->save(); } $this->addBackupVolumeDetail($request, $backup_volume->id); return redirect()->route('backup_volume.index')->with('data berhasil ditambahkan'); } } public function addBackupVolumeDetail($request, $id_backup_volume) { if ($request->ahs) { foreach ($request->ahs as $key => $value) { $location = public_path('uploads/'); if (isset($request->file('image')[$key])) { $file = $request->file('image')[$key]; $file->move($location, $file->getClientOriginalName()); } else { $file = null; } $backup_volume_d = BackupVolumeDetail::where([['id_ahs',$value],['id_backup_volume',$id_backup_volume]])->first(); if (!$backup_volume_d) { $backup_volume_d = BackupVolumeDetail::create([ 'id_backup_volume' => $id_backup_volume, 'id_ahs' => $value, 'image' => $file?'uploads/'.$file->getClientOriginalName():null, ]); } else { $backup_volume_d->image = $file?'uploads/'.$file->getClientOriginalName():null; $backup_volume_d->save(); } $total_volume = $this->insertRincianAhs($request, $value, $backup_volume_d->id, false); $backup_volume_d->volume = $backup_volume_d->volume + $total_volume; $backup_volume_d->save(); } } if ($request->ahs_v) { foreach ($request->ahs_v as $key => $value) { $location = public_path('uploads/'); if (isset($request->file('image_v')[$key])) { $file = $request->file('image_v')[$key]; $file->move($location, $file->getClientOriginalName()); } else { $file = null; } $backup_volume_d = BackupVolumeDetail::where([['id_ahs_vendor',$value],['id_backup_volume',$id_backup_volume]])->first(); if (!$backup_volume_d) { $backup_volume_d = BackupVolumeDetail::create([ 'id_backup_volume' => $id_backup_volume, 'id_ahs_vendor' => $value, 'image' => $file?'uploads/'.$file->getClientOriginalName():null, ]); } else { $backup_volume_d->image = $file?'uploads/'.$file->getClientOriginalName():null; $backup_volume_d->save(); } $total_volume = $this->insertRincianAhs($request, $value, $backup_volume_d->id, true); $backup_volume_d->volume = $total_volume; $backup_volume_d->save(); } } } public function insertRincianAhs($request, $value, $id_detail, $vendor) { $total_volume = 0; if (!$vendor) { if (isset($request->toArray()['nama_rincian_penambah_'.$value])) { foreach ($request->toArray()['nama_rincian_penambah_'.$value] as $key2 => $value2) { $pjg = $request->toArray()['pjg_penambah_'.$value][$key2]?str_replace(",", ".", $request->toArray()['pjg_penambah_'.$value][$key2]):null; $lbr = $request->toArray()['lbr_penambah_'.$value][$key2]?str_replace(",", ".", $request->toArray()['lbr_penambah_'.$value][$key2]):null; $tng = $request->toArray()['tng_penambah_'.$value][$key2]?str_replace(",", ".", $request->toArray()['tng_penambah_'.$value][$key2]):null; $brt = $request->toArray()['brt_penambah_'.$value][$key2]?str_replace(",", ".", $request->toArray()['brt_penambah_'.$value][$key2]):null; $qty = $request->toArray()['qty_penambah_'.$value][$key2]?str_replace(",", ".", $request->toArray()['qty_penambah_'.$value][$key2]):null; $fktr = $request->toArray()['fktr_penambah_'.$value][$key2]?str_replace(",", ".", $request->toArray()['fktr_penambah_'.$value][$key2]):null; $rincian = BackupVolumeDetailRincian::create([ 'rincian' => 'penambah', 'id_detail' => $id_detail, 'nama_rincian' => $value2, 'pjg' => $pjg, 'lbr' => $lbr, 'tng' => $tng, 'brt' => $brt, 'qty' => $qty, 'fktr' => $fktr, ]); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume += $pjg * $lbr * $tng * $brt * $qty * $fktr; } } if (isset($request->toArray()['nama_rincian_pengurang_'.$value])) { foreach ($request->toArray()['nama_rincian_pengurang_'.$value] as $key2 => $value2) { $pjg = $request->toArray()['pjg_pengurang_'.$value][$key2]?str_replace(",", ".", $request->toArray()['pjg_pengurang_'.$value][$key2]):null; $lbr = $request->toArray()['lbr_pengurang_'.$value][$key2]?str_replace(",", ".", $request->toArray()['lbr_pengurang_'.$value][$key2]):null; $tng = $request->toArray()['tng_pengurang_'.$value][$key2]?str_replace(",", ".", $request->toArray()['tng_pengurang_'.$value][$key2]):null; $brt = $request->toArray()['brt_pengurang_'.$value][$key2]?str_replace(",", ".", $request->toArray()['brt_pengurang_'.$value][$key2]):null; $qty = $request->toArray()['qty_pengurang_'.$value][$key2]?str_replace(",", ".", $request->toArray()['qty_pengurang_'.$value][$key2]):null; $fktr = $request->toArray()['fktr_pengurang_'.$value][$key2]?str_replace(",", ".", $request->toArray()['fktr_pengurang_'.$value][$key2]):null; $rincian = BackupVolumeDetailRincian::create([ 'rincian' => 'pengurang', 'id_detail' => $id_detail, 'nama_rincian' => $value2, 'pjg' => $pjg, 'lbr' => $lbr, 'tng' => $tng, 'brt' => $brt, 'qty' => $qty, 'fktr' => $fktr, ]); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume -= $pjg * $lbr * $tng * $brt * $qty * $fktr; } } } else { if (isset($request->toArray()['nama_rincian_penambah_v_'.$value])) { foreach ($request->toArray()['nama_rincian_penambah_v_'.$value] as $key2 => $value2) { $pjg = $request->toArray()['pjg_penambah_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['pjg_penambah_v_'.$value][$key2]):null; $lbr = $request->toArray()['lbr_penambah_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['lbr_penambah_v_'.$value][$key2]):null; $tng = $request->toArray()['tng_penambah_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['tng_penambah_v_'.$value][$key2]):null; $brt = $request->toArray()['brt_penambah_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['brt_penambah_v_'.$value][$key2]):null; $qty = $request->toArray()['qty_penambah_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['qty_penambah_v_'.$value][$key2]):null; $fktr = $request->toArray()['fktr_penambah_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['fktr_penambah_v_'.$value][$key2]):null; $rincian = BackupVolumeDetailRincian::create([ 'rincian' => 'penambah', 'id_detail' => $id_detail, 'nama_rincian' => $value2, 'pjg' => $pjg, 'lbr' => $lbr, 'tng' => $tng, 'brt' => $brt, 'qty' => $qty, 'fktr' => $fktr, ]); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume += $pjg * $lbr * $tng * $brt * $qty * $fktr; } } if (isset($request->toArray()['nama_rincian_pengurang_v_'.$value])) { foreach ($request->toArray()['nama_rincian_pengurang_v_'.$value] as $key2 => $value2) { $pjg = $request->toArray()['pjg_pengurang_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['pjg_pengurang_v_'.$value][$key2]):null; $lbr = $request->toArray()['lbr_pengurang_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['lbr_pengurang_v_'.$value][$key2]):null; $tng = $request->toArray()['tng_pengurang_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['tng_pengurang_v_'.$value][$key2]):null; $brt = $request->toArray()['brt_pengurang_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['brt_pengurang_v_'.$value][$key2]):null; $qty = $request->toArray()['qty_pengurang_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['qty_pengurang_v_'.$value][$key2]):null; $fktr = $request->toArray()['fktr_pengurang_v_'.$value][$key2]?str_replace(",", ".", $request->toArray()['fktr_pengurang_v_'.$value][$key2]):null; $rincian = BackupVolumeDetailRincian::create([ 'rincian' => 'pengurang', 'id_detail' => $id_detail, 'nama_rincian' => $value2, 'pjg' => $pjg, 'lbr' => $lbr, 'tng' => $tng, 'brt' => $brt, 'qty' => $qty, 'fktr' => $fktr, ]); $pjg = $rincian->pjg?$rincian->pjg:1; $lbr = $rincian->lbr?$rincian->lbr:1; $tng = $rincian->tng?$rincian->tng:1; $brt = $rincian->brt?$rincian->brt:1; $qty = $rincian->qty?$rincian->qty:1; $fktr = $rincian->fktr?$rincian->fktr:1; $total_volume -= $pjg * $lbr * $tng * $brt * $qty * $fktr; } } } return $total_volume; } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show(Request $request, $id) { if (\Request::ajax()) { if (isset($_GET['act'])) { if ($_GET['act'] == 'backupvolumedata') { $columns = array( 0 => 'id', ); if (Auth::user()->level == 'ARSITEK' || Auth::user()->level == 'DRAFTER' || Auth::user()->level == 'QUANTITY SURVEYOR' || Auth::user()->level == 'SUPERVISI - ALUMNI' || Auth::user()->level == 'VENDOR') { $totalData = BackupVolume::where('id_user', Auth::user()->id)->count(); } else { $totalData = BackupVolume::count(); } $totalFiltered = $totalData; $limit = $request->input('length'); $start = $request->input('start'); $order = $columns[$request->input('order.0.column')]; $dir = $request->input('order.0.dir'); if (empty($request->input('search.value'))) { if (Auth::user()->level == 'ARSITEK' || Auth::user()->level == 'DRAFTER' || Auth::user()->level == 'QUANTITY SURVEYOR' || Auth::user()->level == 'SUPERVISI - ALUMNI' || Auth::user()->level == 'VENDOR') { $backup_volumes = BackupVolume::where('id_user', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $backup_volumes = BackupVolume::offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } } else { $search = $request->input('search.value'); if (Auth::user()->level == 'ARSITEK' || Auth::user()->level == 'DRAFTER' || Auth::user()->level == 'QUANTITY SURVEYOR' || Auth::user()->level == 'SUPERVISI - ALUMNI' || Auth::user()->level == 'VENDOR') { $backup_volumes = BackupVolume::where([['id_user', Auth::user()->id],['nama_rab', 'LIKE', "%{$search}%"]]) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $backup_volumes = BackupVolume::where('nama_rab', 'LIKE', "%{$search}%") ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } $totalFiltered = BackupVolume::where('nama_rab', 'LIKE', "%{$search}%") ->count(); } $data = array(); if (!empty($backup_volumes)) { foreach ($backup_volumes as $row) { $nestedData['nama_rab'] = $row->nama_rab; if ($row->id_user != null) { $nestedData['created_by'] = $row->user->fullname; } else { $nestedData['created_by'] = ''; } $nestedData['opsi'] = "
"; $nestedData['opsi'] .= " edit "; if (RoleController::access('backup_volume', 'view') > 0) { $nestedData['opsi'] .= " detail "; } $nestedData['opsi'] .= " "; if (RoleController::access('backup_volume', 'delete') > 0) { $nestedData['opsi'] .= "
" . csrf_field() . " " . method_field('delete') . "
"; } $nestedData['opsi'] .="
"; $data[] = $nestedData; } } $json_data = array( "draw" => intval($request->input('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data, ); echo json_encode($json_data); } elseif ($_GET['act'] == 'detail_rincian') { $backup_volume_detail = BackupVolumeDetail::with('rincian_penambahs', 'rincian_pengurangs')->findOrFail($id); return response()->json(['backup_volume_detail' => $backup_volume_detail]); } } } elseif ($id === "create_new") { $id = null; return view('staff.new.backup-volume-create', compact('id')); } else { $backup_volume = BackupVolume::findOrFail($id); $ahsKategoris = AhsKategori::with(['subkategoris.ahsS' => function ($q) use ($id) { $q->where('status', 'approve') ->whereDoesntHave('backupVolumeDetail', function ($q2) use ($id) { $q2->where('id_backup_volume', $id); }); }])->with(['subkategoris.vendors' => function ($q) use ($id) { $q->where('status', 'approve') ->whereDoesntHave('backupVolumeDetail', function ($q2) use ($id) { $q2->where('id_backup_volume', $id); }); }])->orderBy('urutan', 'asc')->get(); $backup_volume_details = AhsKategori::with(['subkategoris.ahsS' => function ($q) use ($id) { $q->whereHas('backupVolumeDetail', function ($q2) use ($id) { $q2->where('id_backup_volume', $id); })->with(['backupVolumeDetail' => function ($q2) use ($id) { $q2->where('id_backup_volume', $id); }]); }])->with(['subkategoris.vendors' => function ($q) use ($id) { $q->whereHas('backupVolumeDetail', function ($q2) use ($id) { $q2->where('id_backup_volume', $id); })->with(['backupVolumeDetail' => function ($q2) use ($id) { $q2->where('id_backup_volume', $id); }]); }])->orderBy('urutan', 'asc')->get(); return view('staff.backup-volume-detail', compact('backup_volume', 'ahsKategoris', 'backup_volume_details')); } } public function duplicate(Request $request, $id) { $backup_volume = BackupVolume::findOrFail($id); $new_backup_volume = BackupVolume::create([ 'nama_rab' => $request->nama_rab, 'id_user' => Auth::user()->id ]); foreach ($backup_volume->details as $detail) { $image = null; if ($detail->image) { $image = 'copy_'.date('YmdHis').'_'.$detail->image; \File::copy(public_path('uploads/').$detail->image, public_path('uploads/').$image); } if ($detail->id_ahs) { $backup_volume_d = BackupVolumeDetail::create([ 'id_backup_volume' => $new_backup_volume->id, 'id_ahs' => $detail->id_ahs, 'image' => $image, 'volume' => $detail->volume ]); } elseif ($detail->id_ahs_vendor) { $backup_volume_d = BackupVolumeDetail::create([ 'id_backup_volume' => $new_backup_volume->id, 'id_ahs_vendor' => $detail->id_ahs_vendor, 'image' => $image, 'volume' => $detail->volume ]); } if (!empty($detail->rincian_penambahs)) { foreach ($detail->rincian_penambahs as $row) { $rincian = BackupVolumeDetailRincian::create([ 'rincian' => $row->rincian, 'id_detail' => $backup_volume_d->id, 'nama_rincian' => $row->nama_rincian, 'pjg' => $row->pjg, 'lbr' => $row->lbr, 'tng' => $row->tng, 'brt' => $row->brt, 'qty' => $row->qty, 'fktr' => $row->fktr, ]); } } if (!empty($detail->rincian_pengurangs)) { foreach ($detail->rincian_pengurangs as $row) { $rincian = BackupVolumeDetailRincian::create([ 'rincian' => $row->rincian, 'id_detail' => $backup_volume_d->id, 'nama_rincian' => $row->nama_rincian, 'pjg' => $row->pjg, 'lbr' => $row->lbr, 'tng' => $row->tng, 'brt' => $row->brt, 'qty' => $row->qty, 'fktr' => $row->fktr, ]); } } } return redirect()->route("backup_volume.index") ->with("msg", "data berhasil diduplicate"); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $backup_volume = BackupVolume::findOrFail($id); if ($backup_volume->rab and $backup_volume->rab->status == 'approve') { return redirect()->back()->with('error', 'RAB sudah diapprove'); } return view('staff.new.backup-volume-create', compact('id')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { DB::unprepared(' SET FOREIGN_KEY_CHECKS=0'); if ($request->act == 'add-item') { $this->addBackupVolumeDetail($request, $id); return redirect()->back()->with('msg', 'data berhasil diperbarui'); } elseif ($request->act == 'update-rincian') { $backup_volume_d = BackupVolumeDetail::findOrFail($id); if ($backup_volume_d->backup_volume->rab and $backup_volume_d->backup_volume->rab->status == 'approve') { return redirect()->back()->with('error', 'RAB sudah diapprove'); } $backup_volume_d->volume = $request->total_volume; $backup_volume_d->save(); // Check RAB Exist $rab = Rab::where('id_backup_volume', $backup_volume_d->id_backup_volume)->count(); if ($rab > 0) { $rab = Rab::where('id_backup_volume', $backup_volume_d->id_backup_volume)->first(); if ($backup_volume_d->id_ahs) { $rab_detail = RabDetail::where([['id_rab', $rab->id], ['id_ahs', $backup_volume_d->id_ahs]])->first(); $new_rab_detail = RabDetail::where([['id_rab', $rab->id], ['id_ahs', $backup_volume_d->id_ahs]])->first(); if ($new_rab_detail) { $new_rab_detail->volume = $request->total_volume; $new_rab_detail->subtotal = $request->total_volume * $rab_detail->harga; $new_rab_detail->save(); } } elseif ($backup_volume_d->id_ahs_vendor) { $rab_detail = RabDetail::where([['id_rab', $rab->id], ['id_ahs_vendor', $backup_volume_d->id_ahs_vendor]])->first(); $new_rab_detail = RabDetail::where([['id_rab', $rab->id], ['id_ahs_vendor', $backup_volume_d->id_ahs_vendor]])->first(); if ($new_rab_detail) { $new_rab_detail->volume = $request->total_volume; $new_rab_detail->subtotal = $request->total_volume * $rab_detail->harga; $new_rab_detail->save(); } } } if ($request->curr_rincian_penambah) { foreach ($request->curr_rincian_penambah as $key => $value) { $rincian = BackupVolumeDetailRincian::findOrFail($value); $rincian->nama_rincian = $request->curr_nama_rincian_penambah[$key]; $rincian->pjg = $request->curr_pjg_penambah[$key]?str_replace(",", ".", $request->curr_pjg_penambah[$key]):null; $rincian->lbr = $request->curr_lbr_penambah[$key]?str_replace(",", ".", $request->curr_lbr_penambah[$key]):null; $rincian->tng = $request->curr_tng_penambah[$key]?str_replace(",", ".", $request->curr_tng_penambah[$key]):null; $rincian->brt = $request->curr_brt_penambah[$key]?str_replace(",", ".", $request->curr_brt_penambah[$key]):null; $rincian->qty = $request->curr_qty_penambah[$key]?str_replace(",", ".", $request->curr_qty_penambah[$key]):null; $rincian->fktr = $request->curr_fktr_penambah[$key]?str_replace(",", ".", $request->curr_fktr_penambah[$key]):null; $rincian->save(); } } if ($request->curr_rincian_pengurang) { foreach ($request->curr_rincian_pengurang as $key => $value) { $rincian = BackupVolumeDetailRincian::findOrFail($value); $rincian->nama_rincian = $request->curr_nama_rincian_pengurang[$key]; $rincian->pjg = $request->curr_pjg_pengurang[$key]?str_replace(",", ".", $request->curr_pjg_pengurang[$key]):null; $rincian->lbr = $request->curr_lbr_pengurang[$key]?str_replace(",", ".", $request->curr_lbr_pengurang[$key]):null; $rincian->tng = $request->curr_tng_pengurang[$key]?str_replace(",", ".", $request->curr_tng_pengurang[$key]):null; $rincian->brt = $request->curr_brt_pengurang[$key]?str_replace(",", ".", $request->curr_brt_pengurang[$key]):null; $rincian->qty = $request->curr_qty_pengurang[$key]?str_replace(",", ".", $request->curr_qty_pengurang[$key]):null; $rincian->fktr = $request->curr_fktr_pengurang[$key]?str_replace(",", ".", $request->curr_fktr_pengurang[$key]):null; $rincian->save(); } } if ($request->nama_rincian_penambah) { foreach ($request->nama_rincian_penambah as $key => $value) { BackupVolumeDetailRincian::create([ 'rincian' => 'penambah', 'id_detail' => $id, 'nama_rincian' => $value, 'pjg' => $request->pjg_penambah[$key]?str_replace(",", ".", $request->pjg_penambah[$key]):null, 'lbr' => $request->lbr_penambah[$key]?str_replace(",", ".", $request->lbr_penambah[$key]):null, 'tng' => $request->tng_penambah[$key]?str_replace(",", ".", $request->tng_penambah[$key]):null, 'brt' => $request->brt_penambah[$key]?str_replace(",", ".", $request->brt_penambah[$key]):null, 'qty' => $request->qty_penambah[$key]?str_replace(",", ".", $request->qty_penambah[$key]):null, 'fktr' => $request->fktr_penambah[$key]?str_replace(",", ".", $request->fktr_penambah[$key]):null, ]); } } if ($request->nama_rincian_pengurang) { foreach ($request->nama_rincian_pengurang as $key => $value) { BackupVolumeDetailRincian::create([ 'rincian' => 'pengurang', 'id_detail' => $id, 'nama_rincian' => $value, 'pjg' => $request->pjg_pengurang[$key]?str_replace(",", ".", $request->pjg_pengurang[$key]):null, 'lbr' => $request->lbr_pengurang[$key]?str_replace(",", ".", $request->lbr_pengurang[$key]):null, 'tng' => $request->tng_pengurang[$key]?str_replace(",", ".", $request->tng_pengurang[$key]):null, 'brt' => $request->brt_pengurang[$key]?str_replace(",", ".", $request->brt_pengurang[$key]):null, 'qty' => $request->qty_pengurang[$key]?str_replace(",", ".", $request->qty_pengurang[$key]):null, 'fktr' => $request->fktr_pengurang[$key]?str_replace(",", ".", $request->fktr_pengurang[$key]):null, ]); } } return redirect()->back()->with('msg', 'data berhasil diperbarui'); } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id) { if ($request->act == 'deleteBackupvolume') { BackupVolume::destroy($id); } elseif ($request->act == 'deleteBackupVolumeDetail') { BackupVolumeDetail::destroy($id); } elseif ($request->act == 'deleteRincian') { BackupVolumeDetailRincian::destroy($id); return response()->json(['msg' => 'succes']); } else { abort('404'); } return redirect()->back()->with('msg', 'data berhasil dihapus'); } public static function accessKategori($id_kategori) { $vendor_product = VendorProduct::where([['id_user', Auth::user()->id], ['id_kategori', $id_kategori]])->count(); return $vendor_product; } public static function accessSubKategori($id_sub_kategori) { $vendor_product = VendorProduct::where([['id_user', Auth::user()->id], ['id_sub_kategori', $id_sub_kategori]])->count(); return $vendor_product; } public static function accessAhsVendor($id_ahs_vendor) { $vendor_product = VendorProduct::where([['id_user', Auth::user()->id], ['id_vendor', $id_ahs_vendor]])->count(); return $vendor_product; } }