diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index ca6e0d3..8d202f7 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; use App\Models\BelanjaRealisasi; use App\Models\BelanjaRealisasiKontrak; +use App\Models\BelanjaRealisasiBast; use App\Models\TempRealisasiBelanja; use App\Models\VwAkbSpdRealRsk; use App\Models\UnitSatuan; @@ -17,6 +18,7 @@ use App\Imports\RealisasiBelanjaImport; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use Illuminate\Support\Facades\URL; +use Illuminate\Support\Facades\File; class RealisasiBelanjaController extends Controller { @@ -48,6 +50,7 @@ class RealisasiBelanjaController extends Controller public function submit(Request $request, $id) { + $BelanjaRealisasi = BelanjaRealisasi::where("id", $id)->firstOrNew(); // var_dump($BelanjaRealisasi->kode_rsk,$BelanjaRealisasi->kode_sub_kegiatan); exit; $this->setTitle("Realisasi Belanja"); @@ -358,12 +361,13 @@ class RealisasiBelanjaController extends Controller } } - protected function uploadFileKontrak($request) + protected function uploadFileKontrak($request, $id) { $file = $request->file('file_kontrak'); if ($file){ $fileName = $file->getClientOriginalName(); - $tujuan_upload = 'uploadFiles/kontrak'; + $tujuan_upload = config('constants.upload_path_kontrak').$id; + File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true); $file->move($tujuan_upload, $fileName); return $fileName; } @@ -383,7 +387,7 @@ class RealisasiBelanjaController extends Controller $this->validate($request, [ 'file_kontrak' => 'required|mimes:pdf', ]); - $fileName = $this->uploadFileKontrak($request); + $fileName = $this->uploadFileKontrak($request, $id); BelanjaRealisasiKontrak::where("belanja_realisasi_id",$id)->where("nomor_kontrak",$req["nomor_kontrak"])->firstOrNew()->delete(); $data["belanja_realisasi_id"] = $id; @@ -391,7 +395,7 @@ class RealisasiBelanjaController extends Controller $data["tgl_kontrak"] = ConvertIndoDate($req["tgl_kontrak"]); $data["nominal_kontrak"] = replaceMoney($req["nominal_kontrak"]); $data["file_kontrak"] = $fileName; - $data["nomor_bast"] = $req["nomor_bast"]; + $data["nomor_bast"] = ""; $data["created_by"] = Auth::user()->id; BelanjaRealisasiKontrak::create($data); @@ -421,8 +425,8 @@ class RealisasiBelanjaController extends Controller $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); + $data["nomor_bast"] = ""; + $fileName = $this->uploadFileKontrak($request, $BelanjaRealisasi->id); if ($fileName){ $data["file_kontrak"] = $fileName; } @@ -443,14 +447,25 @@ class RealisasiBelanjaController extends Controller public function destroyKontrak($id) { try{ + DB::beginTransaction(); + $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("id",$id)->firstorNew(); - $alamatFile = "uploadFiles/kontrak/".$BelanjaRealisasiKontrak->file_kontrak; + $alamatFile = config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->belanja_realisasi_id."/".$BelanjaRealisasiKontrak->file_kontrak; if (file_exists($alamatFile)){ unlink($alamatFile); } + + $basts = BelanjaRealisasiBast::where("id_kontrak",$id)->get(); + foreach($basts as $bast) + { + $this->delBast($bast->id); + } + BelanjaRealisasiKontrak::where("id",$id)->delete(); + DB::commit(); + return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) ->with('success','Data Kontrak Realisasi Belanja berhasil dihapus!'); @@ -471,18 +486,19 @@ class RealisasiBelanjaController extends Controller 'Content-Disposition' => 'attachment;filename='.$BelanjaRealisasiKontrak->file_kontrak ]; if ($BelanjaRealisasiKontrak){ - return response()->download("uploadFiles/kontrak/".$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); + return response()->download(config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); }else{ echo "File tidak ditemukan!"; } } - protected function uploadFileBast($request) + protected function uploadFileBast($request, $id) { $file = $request->file('file_bast'); if ($file){ $fileName = $file->getClientOriginalName(); - $tujuan_upload = 'uploadFiles/kontrak/bast'; + $tujuan_upload = config('constants.upload_path_kontrak').$id."/bast"; + File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true); $file->move($tujuan_upload, $fileName); return $fileName; } @@ -491,10 +507,17 @@ class RealisasiBelanjaController extends Controller public function bast(Request $request, $id) { - $BelanjaRealisasi = BelanjaRealisasi::where("id", $id)->firstOrNew(); + $kontrak = BelanjaRealisasiKontrak::where("id", $id)->firstOrNew(); + $BelanjaRealisasiBast = BelanjaRealisasiBast::where("id_kontrak",$id)->get(); + return view('realisasi_belanja.list_bast',compact("BelanjaRealisasiBast","kontrak")); + } + + public function bastCreate(Request $request, $idKontrak) + { $req = $request->all(); - $redirect = "/realisasi-belanja/".$id."/submit"; - $action = "/realisasi-belanja/".$id."/bast"; + $kontrak = BelanjaRealisasiKontrak::where("id", $idKontrak)->firstOrNew(); + $redirect = "/realisasi-belanja/".$kontrak->belanja_realisasi_id."/submit"; + $action = "/realisasi-belanja/".$idKontrak."/bast/add"; // var_dump("WOY"); exit; if ($request->isMethod('post')) { try{ @@ -502,16 +525,15 @@ class RealisasiBelanjaController extends Controller $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"]); + $fileName = $this->uploadFileBast($request, $kontrak->belanja_realisasi_id); + BelanjaRealisasiBast::where("id_kontrak",$idKontrak)->where("nomor_bast",$req["nomor_bast"])->firstOrNew()->delete(); + $data["id_kontrak"] = $idKontrak; + $data["nomor_bast"] = $req["nomor_bast"]; + $data["tgl_bast"] = ConvertIndoDate($req["tgl_bast"]); + $data["nominal_bast"] = replaceMoney($req["nominal_bast"]); $data["file_bast"] = $fileName; $data["created_by"] = Auth::user()->id; - BelanjaRealisasiKontrak::create($data); + BelanjaRealisasiBast::create($data); DB::commit(); @@ -523,51 +545,25 @@ class RealisasiBelanjaController extends Controller } } - return view('realisasi_belanja.form_kontrak',compact("BelanjaRealisasi","action")); + return view('realisasi_belanja.form_bast',compact("kontrak","action")); } - public function bastUpdate(Request $request, $idBast) + protected function delBast($id) { - $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()); - } + $BelanjaRealisasiBast = BelanjaRealisasiBast::where("id",$id)->firstorNew(); + $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("id",$BelanjaRealisasiBast->id_kontrak)->firstorNew(); + $alamatFile = config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->belanja_realisasi_id."/bast/".$BelanjaRealisasiBast->file_bast; + if (file_exists($alamatFile)){ + unlink($alamatFile); } - - return view('realisasi_belanja.form_kontrak',compact("BelanjaRealisasi","BelanjaRealisasiKontrak","action")); + return BelanjaRealisasiBast::where("id",$id)->delete(); } 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(); + $this->delBast($id); DB::commit(); return redirect(URL::to("/realisasi-belanja/".$BelanjaRealisasiKontrak->belanja_realisasi_id."/submit")) ->with('success','Data BAST Realisasi Belanja berhasil dihapus!'); @@ -589,7 +585,7 @@ class RealisasiBelanjaController extends Controller 'Content-Disposition' => 'attachment;filename='.$BelanjaRealisasiKontrak->file_kontrak ]; if ($BelanjaRealisasiKontrak){ - return response()->download("uploadFiles/kontrak/".$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); + return response()->download(config('constants.upload_path_kontrak').$BelanjaRealisasiKontrak->file_kontrak, $BelanjaRealisasiKontrak->file_kontrak, $headers); }else{ echo "File tidak ditemukan!"; } diff --git a/app/Models/BelanjaRealisasiBast.php b/app/Models/BelanjaRealisasiBast.php index 905bde1..8f67455 100644 --- a/app/Models/BelanjaRealisasiBast.php +++ b/app/Models/BelanjaRealisasiBast.php @@ -15,8 +15,8 @@ class BelanjaRealisasiBast extends Eloquent "id_kontrak", "nomor_bast", "tgl_bast", - "nominal_kontrak", - "file_kontrak", + "nominal_bast", + "file_bast", "created_by" ]; } diff --git a/config/constants.php b/config/constants.php new file mode 100644 index 0000000..800d47e --- /dev/null +++ b/config/constants.php @@ -0,0 +1,13 @@ + "uploadFiles/", + 'upload_path_kontrak' => "uploadFiles/kontrak/", + 'download_path' => "downloadFiles/", + 'options' => [ + 'option_attachment' => '13', + 'option_email' => '14', + 'option_monetery' => '15', + 'option_ratings' => '16', + 'option_textarea' => '17', + ] + ]; \ No newline at end of file diff --git a/resources/views/realisasi_belanja/form_bast.blade.php b/resources/views/realisasi_belanja/form_bast.blade.php new file mode 100644 index 0000000..4decefc --- /dev/null +++ b/resources/views/realisasi_belanja/form_bast.blade.php @@ -0,0 +1,35 @@ +
+ @csrf +
+
+
+ + +
+
+
+
+ + tgl_bast)):"" }}" placeholder="Tanggal BAST"> +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ + Batal +
+
+
+ \ No newline at end of file diff --git a/resources/views/realisasi_belanja/form_kontrak.blade.php b/resources/views/realisasi_belanja/form_kontrak.blade.php index 08a145c..5b7350f 100644 --- a/resources/views/realisasi_belanja/form_kontrak.blade.php +++ b/resources/views/realisasi_belanja/form_kontrak.blade.php @@ -22,12 +22,6 @@ -
-
- - -
-
diff --git a/resources/views/realisasi_belanja/list_bast.blade.php b/resources/views/realisasi_belanja/list_bast.blade.php new file mode 100644 index 0000000..d0f1626 --- /dev/null +++ b/resources/views/realisasi_belanja/list_bast.blade.php @@ -0,0 +1,40 @@ + Tambah + + + + + + + + can("Create Kontrak")){ ?> + + + + + $bast){ ?> + + + + + + + can("Create Kontrak")){ ?> + + + + nominal_bast); } ?> + + + + + + +
NoNomor BASTTanggalJumlahFile
TOTAL BAST{{ separateNumberIndo($totalBast) }} 
\ No newline at end of file diff --git a/resources/views/realisasi_belanja/submit.blade.php b/resources/views/realisasi_belanja/submit.blade.php index 5e0cfc1..f8d292a 100644 --- a/resources/views/realisasi_belanja/submit.blade.php +++ b/resources/views/realisasi_belanja/submit.blade.php @@ -39,10 +39,19 @@
+
+

AKB vs REALISASI

+
+ {{-- @if(auth()->user()->can('Tambah SKPP')) --}} + + {{-- @endif --}} +
+
- AKB vs REALISASI
@@ -131,8 +140,17 @@ jenis_dana) == "DAK" && strtoupper($BelanjaRealisasi->sub_jenis_dana) == "FISIK") { ?>
+
+

KONTRAK can("Create Kontrak")?'[ Tambah Kontrak ]':'' ?>

+
+ {{-- @if(auth()->user()->can('Tambah SKPP')) --}} + + {{-- @endif --}} +
+
- KONTRAK can("Create Kontrak")?'[ Tambah Kontrak ]':'' ?>
@@ -140,7 +158,6 @@ - can("Create Kontrak")){ ?> @@ -149,20 +166,20 @@ $kontrak){ ?> - + - can("Create Kontrak")){ ?> @@ -179,8 +196,17 @@
+
+

REALISASI

+
+ {{-- @if(auth()->user()->can('Tambah SKPP')) --}} + + {{-- @endif --}} +
+
- REALISASI
diff --git a/routes/web.php b/routes/web.php index b9a3059..05fb578 100644 --- a/routes/web.php +++ b/routes/web.php @@ -74,13 +74,19 @@ Route::group(['middleware' => 'auth'], function () { Route::get('/{id}/inputRealisasi', [RealisasiBelanjaController::class,'inputRealisasi']); Route::post('/{id}/inputRealisasi', [RealisasiBelanjaController::class,'inputRealisasi']); Route::delete('/delete-detail/{id}', [RealisasiBelanjaController::class,'deleteDetail']); + Route::post('/download', [RealisasiBelanjaController::class,'download']); + Route::get('/{id}/kontrak', [RealisasiBelanjaController::class,'kontrak']); Route::post('/{id}/kontrak', [RealisasiBelanjaController::class,'kontrak']); Route::delete('/{id}/kontrak', [RealisasiBelanjaController::class,'destroyKontrak']); Route::get('/{idKontrak}/kontrak/update', [RealisasiBelanjaController::class,'kontrakUpdate']); Route::put('/{idKontrak}/kontrak', [RealisasiBelanjaController::class,'kontrakUpdate']); Route::get('/{kode}/download-kontrak', [RealisasiBelanjaController::class,'downloadKontrak']); - Route::post('/download', [RealisasiBelanjaController::class,'download']); + + Route::get('/{idKontrak}/bast', [RealisasiBelanjaController::class,'bast']); + Route::delete('/{idKontrak}/bast', [RealisasiBelanjaController::class,'destroyBast']); + Route::get('/{idKontrak}/bast/add', [RealisasiBelanjaController::class,'bastCreate']); + Route::post('/{idKontrak}/bast/add', [RealisasiBelanjaController::class,'bastCreate']); }); Route::resource('realisasi-belanja', RealisasiBelanjaController::class);
NoTanggal Jumlah FileNomor BAST