diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index 114f851..ca6e0d3 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -477,6 +477,124 @@ class RealisasiBelanjaController extends Controller } } + protected function uploadFileBast($request) + { + $file = $request->file('file_bast'); + if ($file){ + $fileName = $file->getClientOriginalName(); + $tujuan_upload = 'uploadFiles/kontrak/bast'; + $file->move($tujuan_upload, $fileName); + return $fileName; + } + return false; + } + + public function bast(Request $request, $id) + { + $BelanjaRealisasi = BelanjaRealisasi::where("id", $id)->firstOrNew(); + $req = $request->all(); + $redirect = "/realisasi-belanja/".$id."/submit"; + $action = "/realisasi-belanja/".$id."/bast"; + // var_dump("WOY"); exit; + if ($request->isMethod('post')) { + try{ + DB::beginTransaction(); + $this->validate($request, [ + 'file_bast' => 'required|mimes:pdf', + ]); + $fileName = $this->uploadFileBast($request); + + BelanjaRealisasiKontrak::where("id_kontrak",$id)->where("nomor_bast",$req["nomor_bast"])->firstOrNew()->delete(); + $data["belanja_realisasi_id"] = $id; + $data["nomor_bast"] = $req["nomor_kontrak"]; + $data["tgl_bast"] = ConvertIndoDate($req["tgl_kontrak"]); + $data["nominal_bast"] = replaceMoney($req["nominal_kontrak"]); + $data["file_bast"] = $fileName; + $data["created_by"] = Auth::user()->id; + BelanjaRealisasiKontrak::create($data); + + DB::commit(); + + return redirect($redirect)->with('success','Data BAST berhasil di input!'); + }catch(\Exception $e){ + throw new \Exception($e->getMessage()); + DB::rollBack(); + return redirect($redirect)->with('error',$e->getMessage()); + } + } + + return view('realisasi_belanja.form_kontrak',compact("BelanjaRealisasi","action")); + } + + public function bastUpdate(Request $request, $idBast) + { + $BelanjaRealisasiBast = BelanjaRealisasiBast::where("id",$idBast)->firstorNew(); + // $BelanjaRealisasi = BelanjaRealisasi::where("id", $BelanjaRealisasiKontrak->belanja_realisasi_id)->firstOrNew(); + $req = $request->all(); + $redirect = "/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit"; + $action = "/realisasi-belanja/".$idKontrak."/bast"; + if ($request->isMethod('put')) { + try{ + DB::beginTransaction(); + $data["nomor_kontrak"] = $req["nomor_kontrak"]; + $data["tgl_kontrak"] = ConvertIndoDate($req["tgl_kontrak"]); + $data["nominal_kontrak"] = replaceMoney($req["nominal_kontrak"]); + $data["nomor_bast"] = $req["nomor_bast"]; + $fileName = $this->uploadFileKontrak($request); + if ($fileName){ + $data["file_kontrak"] = $fileName; + } + $BelanjaRealisasiKontrak->update($data); + DB::commit(); + + return redirect($redirect)->with('success','Data BAST berhasil di input!'); + }catch(\Exception $e){ + throw new \Exception($e->getMessage()); + DB::rollBack(); + return redirect($redirect)->with('error',$e->getMessage()); + } + } + + return view('realisasi_belanja.form_kontrak',compact("BelanjaRealisasi","BelanjaRealisasiKontrak","action")); + } + + public function destroyBast($id) + { + try{ + DB::beginTransaction(); + $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("id",$id)->firstorNew(); + $alamatFile = "uploadFiles/kontrak/".$BelanjaRealisasiKontrak->file_kontrak; + if (file_exists($alamatFile)){ + unlink($alamatFile); + } + BelanjaRealisasiKontrak::where("id",$id)->delete(); + DB::commit(); + return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) + ->with('success','Data BAST Realisasi Belanja berhasil dihapus!'); + + }catch(Throwable $e){ + + DB::rollBack(); + return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) + ->with('error','Data BAST Realisasi Belanja gagal dihapus.'); + } + } + + public function downloadBast($kode) + { + $kode = explode("__",$kode); + $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where(["belanja_realisasi_id"=>$kode[0], "id"=>$kode[1]])->firstorNew(); + $headers = [ + 'Content-Type' => 'application/pdf', + 'Content-Disposition' => 'attachment;filename='.$BelanjaRealisasiKontrak->file_kontrak + ]; + if ($BelanjaRealisasiKontrak){ + return response()->download("uploadFiles/kontrak/".$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); + }else{ + echo "File tidak ditemukan!"; + } + } + public function download(Request $request) { $post = $request->all(); diff --git a/app/Models/BelanjaRealisasiBast.php b/app/Models/BelanjaRealisasiBast.php new file mode 100644 index 0000000..905bde1 --- /dev/null +++ b/app/Models/BelanjaRealisasiBast.php @@ -0,0 +1,22 @@ +id(); + $table->integer("id_kontrak"); + $table->string("nomor_bast",50); + $table->date("tgl_bast",50); + $table->decimal('nominal_bast', 19, 2); + $table->string("file_bast",100)->nullable(); + $table->uuid("created_by"); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('belanja_realisasi_bast'); + } +} diff --git a/resources/views/realisasi_belanja/upload.blade.php b/resources/views/realisasi_belanja/upload.blade.php index 328b69d..9e4d035 100644 --- a/resources/views/realisasi_belanja/upload.blade.php +++ b/resources/views/realisasi_belanja/upload.blade.php @@ -205,6 +205,11 @@ return nRow; }, + "drawCallback": function( settings ) { + if (dtTable.page.info().recordsTotal == 0){ + $("#upload_validated").prop("disabled", true) + } + }, "language": { "lengthMenu": "Tampil _MENU_ data per Halaman", "zeroRecords": "Data tidak ditemukan!",