From 3d42f3408bd9d06ab3ffa8f56a9db2670d7c6c1c Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Wed, 11 Jan 2023 01:32:37 +0800 Subject: [PATCH] adding akru for range date in admin arrahn --- app/Http/Controllers/AkaunController.php | 49 ++ app/Models/Cawangan.php | 3 +- app/Models/ImbangDuga.php | 22 + app/Services/ImbangdugaServices.php | 305 +++++++++++ resources/js/Akaun/Home.vue | 3 +- resources/js/Akaun/ImbangdugaAkru.vue | 179 +++++++ resources/js/routes.js | 2 + .../akaun/laporan_imbangduga-akru.blade.php | 486 ++++++++++++++++++ routes/web.php | 1 + 9 files changed, 1048 insertions(+), 2 deletions(-) create mode 100644 app/Models/ImbangDuga.php create mode 100644 app/Services/ImbangdugaServices.php create mode 100644 resources/js/Akaun/ImbangdugaAkru.vue create mode 100644 resources/views/akaun/laporan_imbangduga-akru.blade.php diff --git a/app/Http/Controllers/AkaunController.php b/app/Http/Controllers/AkaunController.php index c027032..fd99763 100644 --- a/app/Http/Controllers/AkaunController.php +++ b/app/Http/Controllers/AkaunController.php @@ -9,10 +9,12 @@ use Carbon\Carbon; use Barryvdh\DomPDF\Facade as PDF; use Maatwebsite\Excel\Excel; +use DateTime; use App\Models\Lejeram; use App\Models\Cawangan; +use App\Services\ImbangdugaServices as ImbanganDuga; class AkaunController extends Controller { @@ -1252,4 +1254,51 @@ class AkaunController extends Controller return view('akaun.laporan_serahpetibesigadai', compact('cawangan_detail','api_url','serahmarhun','cawangan_info','datemula','datehingga','tarikh_cetak')); } + + public function cetakimbangdugaAkru(Request $request){ + + $auth_user = Auth::user(); + $api_url = config('api.url'); + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $request->kodcaw)->json(); + $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'. $request->kodcaw)->json(); + $cawangan_detail=$cawangan[0]; + + $tarikh_cetak = $current->toDateString(); + + $tarikh_imbangan= $current->toDateString(); + $tarikh_imbangan2= $current->toDateString(); + + $tarikh_cetak = $current->toDateString(); + + if($request->datetimepicker1 == null){ + $tarikh_cetak = $current->toDateString(); + }else{ + $split_date = explode('-',$request->datetimepicker1); + $tarikh_imbangan2 = $request->datetimepicker1; + } + + $date1 = new DateTime($tarikh_imbangan2); + $date2 = new DateTime($current->toDateString()); + if($date1 < $date2){ + $response = (new ImbanganDuga())->GetImbangDugaBackup( $request->kodcaw,$request->datetimepicker1); + }else{ + $response = (new ImbanganDuga())->ViewImbangDugaAROS( $request->kodcaw,$tarikh_imbangan2); + } + + if($response->getContent() == 'notfound') + { + return response('not-found'); + } + + $array_ig = json_decode($response->getContent()); + $hartasemasa = $array_ig->array_harta; + $tanggungansemasa = $array_ig->array_tanggungan; + $totalhartasemasa = $array_ig->sum_harta; + $totaltanggungansemasa = $array_ig->sum_tanggungan; + + return view('akaun.laporan_imbangduga-akru',compact('tarikh_imbangan', 'tarikh_imbangan2','hartasemasa','tanggungansemasa','totalhartasemasa','totaltanggungansemasa','tarikh_cetak','cawangan_info','cawangan','api_url','cawangan_detail')); + } } diff --git a/app/Models/Cawangan.php b/app/Models/Cawangan.php index 7a3a346..468d236 100644 --- a/app/Models/Cawangan.php +++ b/app/Models/Cawangan.php @@ -14,7 +14,8 @@ class Cawangan extends Model 'kodcaw', 'syarikat', 'min', - 'max' + 'max', + 'penyelarasan' ]; protected $primaryKey = 'caw_id'; diff --git a/app/Models/ImbangDuga.php b/app/Models/ImbangDuga.php new file mode 100644 index 0000000..900d117 --- /dev/null +++ b/app/Models/ImbangDuga.php @@ -0,0 +1,22 @@ += '2021-04-22' && $tarikh < '2021-05-05'){ + $advansurharini = Http::get(config('api.url').'/api/advansurharini/' . $kodcaw,['tarikh' => $tarikh])->json(); + $data = floatval($value) - floatval($advansurharini); + }else $data = $value; + + if($kodcaw == '010219') + if($tarikh >= '2022-11-24') + $data = $value - 78379.9; + else $data = $value; + else $data = $value; + break; + case 'penghutangkaki' : + if($kodcaw == '010219') + if($tarikh < '2022-11-24') + $data = $value - 78379.9; + else $data = $value; + else $data = $value; + break; + case 'jualan1stop': + $data = ($kodcaw === '1STOP') ? floatval(129857.00) : 0; + break; + case 'belian1stop': + $data = ($kodcaw === '1STOP') ? floatval(122446.50) : 0; + break; + case 'utgterkumpulxtra': + $data = ($kodcaw === '1STOP') ? floatval(6727.10) : $value; + break; + case 'rugilelongxtra': + $data = ($kodcaw === '1STOP') ? floatval(-10079.30) : -($value); + break; + case 'bakilelongxtra': + $data = ($kodcaw === '1STOP') ? floatval(123.20) : $value; + break; + case 'cajlelongxtra': + $data = ($kodcaw === '1STOP') ? floatval(25.50) : 0; + break; + case 'upahsimpanxtra': + $data = ($kodcaw === '1STOP') ? floatval(4894.40) : $value; + break; + case null: + $data = 0; + break; + default: + $data = $value; + break; + } + + return floatval($data); + } + + private function InsertImbangDugaBackup($tarikh,$kodcaw,$sum_harta = 0.0,$sum_tanggungan = 0.0,$tagtally = 0) : String{ + + $insert_imbangduga_backup = Http::get(config('api.url'). '/admin/laporan/akrual/insertImbangDuga',[ + 'tarikh' => $tarikh, + 'kodcaw' => $kodcaw, + 'tunaiditangan' => ($this->tunaiditangan) ? $this->tunaiditangan : 0, + 'pembiayaantawarruq' => ($this->pembiayaantawarruq) ? $this->pembiayaantawarruq : 0, + 'bayaranpendahuluan' => ($this->bayaranpendahuluan) ? $this->bayaranpendahuluan : 0, + 'pinjamankoop' => ($this->pinjamankoop) ? $this->pinjamankoop : 0, + 'emaspalsu' => ($this->emaspalsu) ? $this->emaspalsu : 0, + 'serahan' => ($this->serahan) ? $this->serahan : 0, + 'bds' => ($this->bds) ? $this->bds : 0, + 'perubatan' => ($this->perubatan) ? $this->perubatan : 0, + 'keraian' => ($this->keraian) ? $this->keraian : 0, + 'rugilelong' => ($this->rugilelong) ? $this->rugilelong : 0, + 'bakilelong' => ($this->bakilelong) ? $this->bakilelong: 0, + 'wtd' => ($this->wtd) ? $this->wtd : 0, + 'untungrugiterkumpul' => ($this->untungrugiterkumpul) ? $this->untungrugiterkumpul : 0, + 'keun_sebenar' => ($this->keun_sebenar) ? $this->keun_sebenar : 0, + 'pendahuluan' => ($this->pendahuluan) ? $this->pendahuluan : 0, + 'cajlelong' => ($this->cajlelong) ? $this->cajlelong : 0, + 'pindahkekpkb' => ($this->pindahkekpkb) ? $this->pindahkekpkb : 0, + 'penghutangkaki' => ($this->penghutangkaki) ? $this->penghutangkaki : 0, + 'phapuskira' => ($this->phapuskira) ? $this->phapuskira : 0, + 'belian1stop' => ($this->belian1stop) ? $this->belian1stop : 0, + 'keun_penggadai' => ($this->keun_penggadai) ? $this->keun_penggadai : 0, + 'pend_terakru' => ($this->pend_terakru) ? $this->pend_terakru : 0, + 'cajperkhidmatan' => ($this->cajperkhidmatan) ? $this->cajperkhidmatan : 0, + 'cajlelongxtra' => ($this->cajlelongxtra) ? $this->cajlelongxtra : 0, + 'upahsimpanxtra' => ($this->upahsimpan) ? $this->upahsimpan : 0, + 'bakilelongxtra' => ($this->bakilelongxtra) ? $this->bakilelongxtra : 0, + 'rugilelongxtra' => ($this->kerugianlelong) ? $this->kerugianlelong : 0, + 'utgterkumpulxtra' => ($this->utgterkumpulxtra) ? $this->utgterkumpulxtra : 0, + 'jualan1stop' => ($this->jualan1stop) ? $this->jualan1stop : 0, + 'hapuskira' => ($this->hapuskira) ? $this->hapuskira : 0, + 'totalharta' => $sum_harta, + 'totaltanggungan' => $sum_tanggungan, + 'tagtally' => $tagtally, + ])->json(); + + if($insert_imbangduga_backup == 'success') + return 'successful'; + else + return 'error'; + } + + public function OperationImbangDuga($kodcaw){ + $current = Carbon::now(); + $current = new Carbon(); + + $tarikh = $current->toDateString(); + + $imbangdugadata = ImbangDuga::orderBy('glcode')->get(); + $array_harta = []; + $array_tanggungan = []; + $summation_harta = 0; + $summation_tanggungan = 0; + + $penyelarasan = Cawangan::select('penyelarasan')->where('kodcaw',$kodcaw)->get()->toArray(); + $penyelarasan = $penyelarasan[0]; + + foreach($imbangdugadata as $index => $imbangdugaiteration){ + if($imbangdugaiteration->api_redirect != null){ + if($imbangdugaiteration['variable'] == 'keun_sebenar' || $imbangdugaiteration['variable'] == 'pend_terakru'){ + ${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'],['tarikh' => $tarikh,'kodcaw' => $kodcaw])->json(); + }else{ + ${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'] . $kodcaw,['tarikh' => $tarikh])->json(); + } + + if(is_object($imbangdugaiteration)) $data = ($imbangdugaiteration->is_array == 1) ? ${$imbangdugaiteration['variable']}[$imbangdugaiteration['single_var']] : ${$imbangdugaiteration['variable']}; + $data = ($imbangdugaiteration->neg_values == 1) ? $data = -1 * abs($data) : $data; + $data = ($imbangdugaiteration['variable'] == 'untungrugiterkumpul') ? $data + $penyelarasan['penyelarasan'] : $data; + }else $data = 0; + + $data = $this->SwitchFuncImbangDuga($data,$imbangdugaiteration['variable'],$tarikh,$kodcaw); + + /* declare for protected above */ + if($imbangdugaiteration->is_array == 1){ + $nama = $imbangdugaiteration['single_var']; + if($imbangdugaiteration['variable'] == 'bakilelongxtra'){ + $nama = $imbangdugaiteration['variable']; + }else if($imbangdugaiteration['variable'] == 'utgterkumpulxtra'){ + $nama = $imbangdugaiteration['variable']; + } + $this->$nama = $data; + }else $this->{$imbangdugaiteration['variable']} = $data; + + + if($imbangdugaiteration->jenis == 'harta'){ + $summation_harta += $data; + array_push($array_harta,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]); + }else{ + $summation_tanggungan += $data; + array_push($array_tanggungan,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]); + } + } + + $tagtally = (number_format($summation_harta,2) == number_format($summation_tanggungan,2)) ? 1 : 0; + $response = $this->InsertImbangDugaBackup($tarikh,$kodcaw,$summation_harta,$summation_tanggungan,$tagtally); + + if($response == 'successful'){ + return response('succesful'); + }else{ + return response('error'); + } + } + + public function ViewImbangDugaAROS($kodcaw,$tarikh){ + $current = Carbon::now(); + $current = new Carbon(); + + $tarikh = $current->toDateString(); + + $imbangdugadata = ImbangDuga::orderBy('glcode')->get(); + $array_harta = []; + $array_tanggungan = []; + $summation_harta = 0; + $summation_tanggungan = 0; + + $penyelarasan = Cawangan::select('penyelarasan')->where('kodcaw',$kodcaw)->get()->toArray(); + $penyelarasan = $penyelarasan[0]; + + foreach($imbangdugadata as $index => $imbangdugaiteration){ + if($imbangdugaiteration->api_redirect != null){ + if($imbangdugaiteration['variable'] == 'keun_sebenar' || $imbangdugaiteration['variable'] == 'pend_terakru'){ + ${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'],['tarikh' => $tarikh,'kodcaw' => $kodcaw])->json(); + }else{ + ${$imbangdugaiteration['variable']} = Http::get(config('api.url'). $imbangdugaiteration['api_redirect'] . $kodcaw,['tarikh' => $tarikh])->json(); + } + + if(is_object($imbangdugaiteration)) $data = ($imbangdugaiteration->is_array == 1) ? ${$imbangdugaiteration['variable']}[$imbangdugaiteration['single_var']] : ${$imbangdugaiteration['variable']}; + $data = ($imbangdugaiteration->neg_values == 1) ? $data = -1 * abs($data) : $data; + $data = ($imbangdugaiteration['variable'] == 'untungrugiterkumpul') ? $data + $penyelarasan['penyelarasan'] : $data; + }else $data = 0; + + $data = $this->SwitchFuncImbangDuga($data,$imbangdugaiteration['variable'],$tarikh,$kodcaw); + + /* declare for protected above */ + if($imbangdugaiteration->is_array == 1){ + $nama = $imbangdugaiteration['single_var']; + if($imbangdugaiteration['variable'] == 'bakilelongxtra'){ + $nama = $imbangdugaiteration['variable']; + }else if($imbangdugaiteration['variable'] == 'utgterkumpulxtra'){ + $nama = $imbangdugaiteration['variable']; + } + $this->$nama = $data; + }else $this->{$imbangdugaiteration['variable']} = $data; + + + if($imbangdugaiteration->jenis == 'harta'){ + $summation_harta += $data; + array_push($array_harta,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]); + }else{ + $summation_tanggungan += $data; + array_push($array_tanggungan,['variable' => ($imbangdugaiteration->is_array == 1) ? $imbangdugaiteration->single_var : $imbangdugaiteration->variable,'glcode' => $imbangdugaiteration->glcode, 'descpt' => $imbangdugaiteration->descpt,'amaun' => ($data) ? $data : 0]); + } + + } + + $array_ig = ['array_harta' => $array_harta,'array_tanggungan' => $array_tanggungan,'sum_harta' => $summation_harta,'sum_tanggungan' => $summation_tanggungan]; + return response($array_ig); + } + + public function GetImbangDugaBackup($kodcaw,$tarikh){ + // $date = date_create_from_format('j-m-Y', $tarikh); + // $new_date = date_format($date, 'Y-m-d'); + $new_date = $tarikh; + + $response = Http::get(config('api.url'). '/api/Backup/ImbangDuga/' . $kodcaw,['tarikh' => $new_date])->json(); + + if($response == 'notfound' || $response == null) + { + return response('notfound'); + }else{ + $array_harta = []; + $array_tanggungan = []; + foreach($response as $variable=>$res) + { + if($variable !== 'recno' && $variable !== 'kodcaw' && $variable !== 'tarikh' && $variable !== 'totalharta' && $variable !== 'totaltanggungan' && $variable !== 'tagtally' && $variable !== 'created_at' && $variable !== 'updated_at'){ + if($variable == 'bakilelong'){ + $imbangdugadata = ImbangDuga::orderBy('glcode')->where([['single_var',$variable],['variable',$variable]])->first()->toArray(); + }else{ + $imbangdugadata = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first()->toArray(); + } + if($imbangdugadata['jenis'] == 'harta'){ + array_push($array_harta,['glcode' => $imbangdugadata['glcode'],'descpt' => $imbangdugadata['descpt'],'amaun' => $res]); + }else{ + array_push($array_tanggungan,['glcode' => $imbangdugadata['glcode'],'descpt' => $imbangdugadata['descpt'],'amaun' => $res]); + } + } + } + + + uasort($array_harta, array($this,'glcode_compare')); + uasort($array_tanggungan, array($this,'glcode_compare')); + + $array_all = ['array_harta' => $array_harta,'array_tanggungan' => $array_tanggungan,'sum_harta' => $response['totalharta'],'sum_tanggungan' => $response['totaltanggungan']]; + return response($array_all); + } + + } + + private static function glcode_compare($a, $b){ + return strcmp($a['glcode'], $b['glcode']); + } +} diff --git a/resources/js/Akaun/Home.vue b/resources/js/Akaun/Home.vue index 4659957..d77443a 100644 --- a/resources/js/Akaun/Home.vue +++ b/resources/js/Akaun/Home.vue @@ -110,7 +110,8 @@
- + +

Imbang Duga Extend.

diff --git a/resources/js/Akaun/ImbangdugaAkru.vue b/resources/js/Akaun/ImbangdugaAkru.vue new file mode 100644 index 0000000..53765d1 --- /dev/null +++ b/resources/js/Akaun/ImbangdugaAkru.vue @@ -0,0 +1,179 @@ + + + \ No newline at end of file diff --git a/resources/js/routes.js b/resources/js/routes.js index 4fe7927..97ac5fd 100644 --- a/resources/js/routes.js +++ b/resources/js/routes.js @@ -3,6 +3,7 @@ import VueRouter from 'vue-router' import Lejeram from './Akaun/Lejeram' import Imbangduga from './Akaun/Imbangduga' import ImbangdugaExtended from './Akaun/ImbangdugaExtended' +import ImbangDugaAkru from './Akaun/ImbangdugaAkru' import Home from './Akaun/Home' import Laporan from './Akaun/Laporan' import Gadaian from './Akaun/Gadaian' @@ -63,6 +64,7 @@ export default new VueRouter({ { path: '/akaunhome/lejeram', component: Lejeram }, { path: '/akaunhome/imbangduga', component: Imbangduga }, { path: '/akaunhome/imbangduga/extended', component: ImbangdugaExtended }, + { path: '/akaunhome/imbangduga/akru', component: ImbangDugaAkru }, { path: '/akaunhome/gadaian', component: Gadaian }, { path: '/akaunhome/penebusan', component: Penebusan }, { path: '/akaunhome/ansuran', component: Ansuran }, diff --git a/resources/views/akaun/laporan_imbangduga-akru.blade.php b/resources/views/akaun/laporan_imbangduga-akru.blade.php new file mode 100644 index 0000000..a584c77 --- /dev/null +++ b/resources/views/akaun/laporan_imbangduga-akru.blade.php @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
LAPORAN IMBANGAN DUGA CAWANGAN
+ + + + + + + + +
Tarikh Laporan {{ ($tarikh_imbangan2) ? $tarikh_imbangan2 : ''}} Tarikh Cetak {{$tarikh_cetak}}
+
+ + + + + + + + + + + + + + @foreach($hartasemasa as $index => $assets) + @if($assets->amaun != 0) + + + + + + @endif + @endforeach + + + + + + + +
Kod GL Keterangan Amaun
HARTA SEMASA
{{ $assets->glcode }}{{ $assets->descpt }}{{ number_format($assets->amaun,2) }}
JUMLAH {{ number_format($totalhartasemasa,2) }}
+
+ + + + + + @foreach($tanggungansemasa as $index => $liabilities) + @if($liabilities->amaun != 0) + + + + + + @endif + @endforeach + + + + + + + +
TANGGUNGAN SEMASA
{{ $liabilities->glcode }}{{ $liabilities->descpt }}{{ number_format($liabilities->amaun,2) }}
JUMLAH {{ number_format($totaltanggungansemasa,2) }}
+
+ +
+
+ + + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index bbbcf0a..cbc8e8e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -77,6 +77,7 @@ Route::get('/kelulusan',['as'=>'kelulusan','uses'=>'App\Http\Controllers\Kelulus Route::get('/akaunhome/cetaklaporanlejeram',['as'=>'cetak.lejeram','uses'=>'App\Http\Controllers\AkaunController@viewlejeram'])->middleware(['roleChecker:admin,akaun,operasi']); Route::get('/akaunhome/cetaklaporanimbangduga',['as'=>'cetak.imbangduga','uses'=>'App\Http\Controllers\AkaunController@cetakimbangduga'])->middleware(['roleChecker:admin,akaun,operasi']); Route::get('/akaunhome/cetaklaporanimbangdugaextended',['as'=>'cetak.imbangdugaExtended','uses'=>'App\Http\Controllers\AkaunController@cetakimbangdugaExtended'])->middleware(['roleChecker:admin,akaun,operasi']); +Route::get('/akaunhome/cetaklaporanimbangdugaakru',['as'=>'cetak.imbangdugaAkru','uses'=>'App\Http\Controllers\AkaunController@cetakimbangdugaAkru'])->middleware(['roleChecker:admin,akaun,operasi']); Route::get('/akaunhome/cetakgadaian',['as'=>'cetak.gadaian','uses'=>'App\Http\Controllers\AkaunController@cetakLaporanGadai'])->middleware(['roleChecker:admin,akaun,operasi']); Route::get('/akaunhome/cetakpenebusan',['as'=>'cetak.penebusan','uses'=>'App\Http\Controllers\AkaunController@cetakLaporanPenebusan'])->middleware(['roleChecker:admin,akaun,operasi']); Route::get('/akaunhome/cetakansuran',['as'=>'cetak.ansuran','uses'=>'App\Http\Controllers\AkaunController@cetakLaporanAnsuran'])->middleware(['roleChecker:admin,akaun,operasi']);