From 8da43b9501a0ef4f810ca22f2d3a594e565e3913 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 4 Nov 2024 19:08:22 +0800 Subject: [PATCH] added panjar route --- app/Http/Controllers/DenominasiController.php | 14 ++ app/Services/Miscellaneous/PanjarServices.php | 147 ++++++++++++------ routes/web.php | 3 + 3 files changed, 119 insertions(+), 45 deletions(-) diff --git a/app/Http/Controllers/DenominasiController.php b/app/Http/Controllers/DenominasiController.php index 385b90c..efdcd73 100644 --- a/app/Http/Controllers/DenominasiController.php +++ b/app/Http/Controllers/DenominasiController.php @@ -7,6 +7,7 @@ use App\Cawangan; use App\Denominasi; use App\Services\CashFlow\TellerServices; use Illuminate\Http\Request; +use App\Services\Miscellaneous\PanjarServices; use Carbon\Carbon; @@ -26,6 +27,19 @@ class DenominasiController extends Controller return response()->json($response); } + public function test3($kodcaw,Request $request){ + $teller = new PanjarServices($kodcaw); + $response = $teller->create($request); + + return response()->json($response); + } + + public function test4($kodcaw,Request $request){ + $teller = new PanjarServices($kodcaw); + $response = $teller->delete($request); + + return response()->json($response); + } public function listdenominasi($kodcaw) { diff --git a/app/Services/Miscellaneous/PanjarServices.php b/app/Services/Miscellaneous/PanjarServices.php index 255202f..46ded2c 100644 --- a/app/Services/Miscellaneous/PanjarServices.php +++ b/app/Services/Miscellaneous/PanjarServices.php @@ -9,6 +9,7 @@ use App\DenoPanjar; use App\Panjar; use App\Vault; use Carbon\Carbon; +use DateTime; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; @@ -40,11 +41,12 @@ class PanjarServices private function calculation_denominasi($array_deno = [],$denominasi = [],$jenis_panjar){ - if(isset($array_deno) <= 0 || isset($denominasi) <= 0){ + if(empty($array_deno) && empty($denominasi)){ + return empty($array_deno); return 'no data'; } - if($jenis_panjar != 'masuk' || $jenis_panjar != 'keluar') return 'no data'; + if($jenis_panjar != 'masuk' && $jenis_panjar != 'keluar') return 'no data'; $records = []; foreach($this->namelist_deno as $deno => $value){ @@ -80,6 +82,37 @@ class PanjarServices ]; } + private function checkModal($jenismodal){ + switch ($jenismodal) { + case "selenggara": + $kategori = "Baiki dan Selenggara"; + $tag = 2; + break; + case "keraian": + $kategori = "Keraian & Promosi"; + $tag = 3; + break; + case "belanjaam": + $kategori = "Belanja AM"; + $tag = 1; + break; + case "perubatan": + $kategori = "Belanja AM - Perubatan"; + $tag = 1; + break; + case "dapur": + $kategori = "Belanja AM - Barangan Dapur"; + $tag = 1; + break; + case "pos": + $kategori = "Belanja AM - Postage"; + $tag = 1; + break; + } + + return ['kategori' => $kategori, 'tag' => $tag]; + } + public function delete(Request $request){ $current = Carbon::now(); $current = new Carbon(); @@ -89,14 +122,14 @@ class PanjarServices $panjar = Panjar::on($cawangan['mysql'])->latest('tarikh')->where('nobaucer', $request->nobaucer)->first(); $vault = Vault::on($cawangan['mysql'])->latest('tarikh')->first(); $deno_panjar = DenoPanjar::on('mysql7')->where('kodcaw', $this->cawangan)->where('recno', $request->recno)->latest('tarikh','masa')->first(); - + $totalperubatan = floatval($this->getPerubatanAmount($panjar['tuntutoleh'])) + $panjar['bayaran']; try{ if (!$panjar) throw new \Exception('Custom Exception: Panjar Does Not Exist!'); if (!$denominasi) throw new \Exception('Custom Exception: Denominasi Does Not Exist!'); if (!$vault) throw new \Exception('Custom Exception: Vault Does Not Exist!'); if (!$deno_panjar) throw new \Exception('Custom Exception: Denominasi Panjar Does Not Exist!'); - DB::transaction(function () use ($cawangan,$deno_panjar,$panjar,$denominasi,$current,$vault,$request) { + DB::transaction(function () use ($cawangan,$deno_panjar,$panjar,$denominasi,$current,$vault,$request,$bakiperubatan) { $return_data = $this->calculation_denominasi($deno_panjar,$denominasi,'masuk'); if($return_data == 'no data') throw new \Exception('Custom Exception: Denominasi Panjar Not Return Data'); @@ -155,11 +188,8 @@ class PanjarServices 'bakieod'=>$bakiakhir )); - DenoPanjar::on('mysql7')->where('kodcaw', $this->cawangan)->where('recno', $panjar['recno'])->latest('tarikh','masa')->delete(); - Panjar::on($cawangan['mysql'])->where('recno',$panjar['recno'])->delete(); - $audit = new Audit(); - $audit->users = $request->tuntutoleh; + $audit->users = $panjar['tuntutoleh']; $audit->actions = "Keluarkan Perbelanjaan"; $audit->new_data = $panjar; $audit->kodcaw = $this->cawangan; @@ -167,10 +197,23 @@ class PanjarServices $audit->updated_at = $current; $audit->save(); + DenoPanjar::on('mysql7')->where('kodcaw', $this->cawangan)->where('recno', $panjar['recno'])->latest('tarikh','masa')->delete(); + Panjar::on($cawangan['mysql'])->where('recno',$panjar['recno'])->delete(); + + $array_response = [ + 'result' => 'success', + 'data' => 1, + 'bakiperubatan' => $totalperubatan, + ]; + }); }catch(\Exception $e){ - dd($e->getMessage()); - Log::error('Exception: ' , $e->getMessage()); + $array_response = [ + 'result' => 'error', + 'data' => $e->getMessage() + ]; + Log::error('Exception: ' . $e->getMessage()); + return $array_response; } } @@ -181,25 +224,29 @@ class PanjarServices $cawangan = Cawangan::on('mysql7')->where('kodcaw', $this->cawangan)->first(); $denominasi = Denominasi::on($cawangan['mysql'])->latest('tarikh')->first(); $vault = Vault::on($cawangan['mysql'])->latest('tarikh')->first(); - try{ if (!$denominasi) throw new \Exception('Custom Exception: Denominasi Does Not Exist!'); if (!$vault) throw new \Exception('Custom Exception: Vault Does Not Exist!'); - DB::transaction(function () use ($cawangan,$denominasi,$current,$vault,$request) { + return $response = DB::transaction(function () use ($cawangan,$denominasi,$current,$vault,$request) { + $myDateTime = DateTime::createFromFormat('Y-m-d', $request->tarikhbil); + $tarikhbil = $myDateTime->format('dmY'); + $tagmodal = $this->checkModal($request->jenismodal); + $bakiperubatan = $this->getPerubatanAmount($request->tuntutan); + $currentbaki = floatval($bakiperubatan) - floatval($request->bayaran); $panjar = Panjar::on($cawangan['mysql']) ->create([ 'tarikh'=> $current->toDateString(), 'deskripsi'=> $request->deskripsi, 'bayaran' => $request->bayaran, - 'tag' => $request->tag, - 'kategori' => $request->kategori, - 'id' => $request->id, - 'bakiperubatan' => $request->bakiperubatan, - 'nobaucer' => $request->nobaucer, - 'nobil' => $request->nobil, - 'tuntutoleh' => $request->tuntutoleh + 'tag' => $tagmodal['tag'], + 'kategori' => $tagmodal['kategori'], + 'id' => $request->kodlaluan, + 'bakiperubatan' => $currentbaki, + 'nobaucer' => $request->baucer, + 'nobil' => $tarikhbil, + 'tuntutoleh' => $request->tuntutan ]); $denopanjar = DenoPanjar::on('mysql7')->create([ @@ -207,27 +254,27 @@ class PanjarServices 'masa' => $current->toTimeString(), 'kodcaw' => $this->cawangan, 'kodlaluan' => $request->kodlaluan, - 'serahan' => $request->serahan, - 'bd1' => $request->bd1, - 'bd5' => $request->bd5, - 'bd10' => $request->bd10, - 'bd20' => $request->bd20, - 'bd50' => $request->bd50, - 'bd100' => $request->bd100, - 'txtring1' => $request->txtring1, - 'txtring5' => $request->txtring5, - 'txtring10' => $request->txtring10, - 'txtring20' => $request->txtring20, - 'txtring50' => $request->txtring50, - 'txtring100' => $request->txtring100, - 'txtring1000' => $request->txtring1000, - 'txtsen1' => $request->txtsen1, - 'txtsen5' => $request->txtsen5, - 'txtsen10' => $request->txtsen10, - 'txtsen20' => $request->txtsen20, - 'txtsen50' => $request->txtsen50, - 'jenis' =>$request->jenis, - 'recno' =>$panjar['recno'], + 'serahan' => $request->bayaran, + 'bd1' => 0, + 'bd5' => 0, + 'bd10' => 0, + 'bd20' => 0, + 'bd50' => 0, + 'bd100' => 0, + 'txtring1' => $request->ambilanring1, + 'txtring5' => $request->ambilanring5, + 'txtring10' => $request->ambilanring10, + 'txtring20' => $request->ambilanring20, + 'txtring50' => $request->ambilanring50, + 'txtring100' => $request->ambilanring100, + 'txtring1000' => 0, + 'txtsen1' => $request->ambilansen1, + 'txtsen5' => $request->ambilansen5, + 'txtsen10' => $request->ambilansen10, + 'txtsen20' => $request->ambilansen20, + 'txtsen50' => $request->ambilansen50, + 'jenis' =>$request->jenismodal, + 'recno' =>$panjar['id'], 'update' => '0' ]); @@ -297,21 +344,31 @@ class PanjarServices $audit->updated_at = $current; $audit->save(); + $array_response = [ 'result' => 'success', - 'data' => 1 + 'data' => 1, + 'bakiperubatan' => $currentbaki, ]; - return response()->json($array_response); + return $array_response; }); }catch(\Exception $e){ - dd($e->getMessage()); $array_response = [ 'result' => 'error', 'data' => $e->getMessage() ]; - return response()->json($array_response); - Log::error('Exception: ' , $e->getMessage()); + Log::error('Exception: ' . $e->getMessage()); + return $array_response; } + + return response()->json($response); + } + + public function getPerubatanAmount($tuntutanoleh){ + $cawangan = Cawangan::on('mysql7')->where('kodcaw', $this->cawangan)->first(); + $panjar = Panjar::on($cawangan['mysql'])->where('kategori','Belanja AM - Perubatan')->where('tuntutoleh',$tuntutanoleh)->sum('bayaran'); + + return $panjar; } } diff --git a/routes/web.php b/routes/web.php index c75748b..0998243 100644 --- a/routes/web.php +++ b/routes/web.php @@ -649,6 +649,9 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->post('test/updatetunai/{kodcaw}',['uses'=>'DenominasiController@test']); $router->post('test/serahantunai/{kodcaw}',['uses'=>'DenominasiController@test2']); + $router->post('test/createpanjar/{kodcaw}',['uses'=>'DenominasiController@test3']); + $router->post('test/deletepanjar/{kodcaw}',['uses'=>'DenominasiController@test4']); + });