diff --git a/app/CawanganAR.php b/app/CawanganAR.php index 7521d5e..2e767c2 100644 --- a/app/CawanganAR.php +++ b/app/CawanganAR.php @@ -13,6 +13,7 @@ class CawanganAR extends Model 'kodcaw', 'syarikat', 'min', - 'max' + 'max', + 'penyelarasan' ]; } diff --git a/app/Console/Commands/DailyAkru.php b/app/Console/Commands/DailyAkru.php new file mode 100644 index 0000000..83efce4 --- /dev/null +++ b/app/Console/Commands/DailyAkru.php @@ -0,0 +1,61 @@ +option('zone'); + + + if($zone < 1 || $zone > 3) + { + throw new Exception('The zone is not in the range!'); + } + + $updateAkruDaily = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/admin/laporan/akrual/generateDaily',[ + 'zone' => $zone + ])->json(); + + if($updateAkruDaily == 'succesful') + { + return 0; + }else{ + return 'failed'; + } + } +} diff --git a/app/Console/Commands/DailyImbangDuga.php b/app/Console/Commands/DailyImbangDuga.php new file mode 100644 index 0000000..a3637fe --- /dev/null +++ b/app/Console/Commands/DailyImbangDuga.php @@ -0,0 +1,65 @@ +imbangduga = $imbangduga; + parent::__construct(); + } + + /** + * Execute the console command. + * + * @return int + */ + public function handle() + { + $array_cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan')->json(); + $zone = $this->option('zone'); + + if($zone < 1 || $zone > 3) + { + throw new Exception('The zone is not in the range!'); + } + + foreach($array_cawangan as $caw) + { + if($caw['zone'] == $zone) + { + $response = $this->imbangduga->OperationImbangDuga($caw['kodcaw']); + } + } + + return 0; + } +} diff --git a/app/Http/Controllers/KakitanganController.php b/app/Http/Controllers/KakitanganController.php index 58a7582..e1c1f70 100644 --- a/app/Http/Controllers/KakitanganController.php +++ b/app/Http/Controllers/KakitanganController.php @@ -214,11 +214,19 @@ class KakitanganController extends Controller } public function deleteKakitangan(Request $request){ - // dd($request->all()); + + $auth_user = Auth::user(); $user = User::find($request->staff_id); $user->delete(); - // dd($user_delete); - return redirect()->route('admin.daftar.kakitangan'); + + // if($auth_user->roles == 'operasi'){ + // // return redirect()->route('daftar.kakitangan'); + // return "route('daftar.kakitangan')"; + // }else if($auth_user->roles == 'admin'){ + // // return redirect()->route('admin.daftar.kakitangan'); + // return "route('admin.daftar.kakitangan')"; + // } + return response()->json('success'); } public function editKakitangan(Request $request){ @@ -233,6 +241,7 @@ class KakitanganController extends Controller public function editStoreKakitangan(Request $request){ // dd($request->all()); + $auth_user = Auth::user(); $user = User::find($request->user_id); $user->name = strtoupper($request->nama); $user->email = $request->email; @@ -242,7 +251,12 @@ class KakitanganController extends Controller $user->password = Hash::make($request->nokp); $user->save(); - return redirect()->route('admin.daftar.kakitangan'); + + if($auth_user->roles == 'operasi'){ + return redirect()->route('daftar.kakitangan'); + }else if($auth_user->roles == 'admin'){ + return redirect()->route('admin.daftar.kakitangan'); + } } public function resetCredentials(Request $request){ diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php index 3e540f1..f8d035e 100644 --- a/app/Http/Controllers/KhazanahController.php +++ b/app/Http/Controllers/KhazanahController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers; +use App\Services\ImbangdugaServices as ImbanganDuga; + //Events use App\Events\StatusLiked; use App\Events\NotifikasiPembayaran; @@ -4109,4 +4111,60 @@ class KhazanahController extends Controller return view('print.laporan_serahmarhun', compact('cawangan_detail','api_url','serahmarhun','cawangan_info','datemula','datehingga','tarikh_cetak')); } + public function ImbangDugaAkru(){ + $auth_user = Auth::user(); + $api_url = config('api.url'); + + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + + return view('khazanah.laporan.imbangduga_akru', compact('cawangan_info','api_url')); + } + + 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/'. $auth_user['cawangan'])->json(); + $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json(); + $cawangan_detail=$cawangan[0]; + + $tarikh_cetak = $current->toDateString(); + + $tarikh_imbangan= $current->toDateString(); + $tarikh_imbangan2= $current->toDateString(); + + $tarikh_cetak = $current->toDateString(); + + if($request->datetimepicker2 == null){ + $tarikh_cetak = $current->toDateString(); + }else{ + $split_date = explode('-',$request->datetimepicker2); + $tarikh_imbangan2 = $request->datetimepicker2; + } + + + + if($tarikh_imbangan2 < $current->toDateString()){ + $response = (new ImbanganDuga())->GetImbangDugaBackup($auth_user['cawangan'],$request->datetimepicker2); + }else{ + $response = (new ImbanganDuga())->ViewImbangDugaAROS($auth_user['cawangan'],$tarikh_imbangan2); + } + + if($response->getContent() == 'notfound') + { + return redirect()->route('laporan.imbangdugaakru')->with('error','Tiada Rekod Dijumpai Dalam Imbang Duga Backup!'); + } + + $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('print.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/ImbangDuga.php b/app/ImbangDuga.php new file mode 100644 index 0000000..b3d8e69 --- /dev/null +++ b/app/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 = CawanganAR::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 = CawanganAR::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'); + + $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'){ + $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/views/homepage/teller/home.blade.php b/resources/views/homepage/teller/home.blade.php index b1ef37d..0531ceb 100644 --- a/resources/views/homepage/teller/home.blade.php +++ b/resources/views/homepage/teller/home.blade.php @@ -11,7 +11,7 @@ PELANGGAN HARGA EMAS ALIRAN TUNAI - TETAPAN + {{-- TETAPAN --}} diff --git a/resources/views/khazanah/info.blade.php b/resources/views/khazanah/info.blade.php index ca05497..753a83f 100644 --- a/resources/views/khazanah/info.blade.php +++ b/resources/views/khazanah/info.blade.php @@ -155,6 +155,7 @@