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/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']} = 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'); + } + } +} \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 834e02b..3d5f47d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,7 @@ 'login','uses'=>'HomeController@index']); -Route::get('/testtry',function(){ +Route::get('/testtry',function(ImbangdugaServices $imbangduga){ - return view('testing'); + // return view('testing'); + $test = $imbangduga->OperationImbangDuga('KB2'); + dd($test->getContent()); });