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 @@
+
+
+
+
+
+
+
+
+
+
+
+ Laporan Imbang Duga Akru
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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}} |
+
+
+
+
+
+
+
+
+
+ | Kod GL |
+ Keterangan |
+ Amaun |
+
+
+
+ | HARTA SEMASA |
+
+
+ @foreach($hartasemasa as $index => $assets)
+ @if($assets->amaun != 0)
+
+ | {{ $assets->glcode }} |
+ {{ $assets->descpt }} |
+ {{ number_format($assets->amaun,2) }} |
+
+ @endif
+ @endforeach
+
+
+ | JUMLAH |
+ |
+ {{ number_format($totalhartasemasa,2) }} |
+
+
+
+
+
+
+ | TANGGUNGAN SEMASA |
+
+
+ @foreach($tanggungansemasa as $index => $liabilities)
+ @if($liabilities->amaun != 0)
+
+ | {{ $liabilities->glcode }} |
+ {{ $liabilities->descpt }} |
+ {{ number_format($liabilities->amaun,2) }} |
+
+ @endif
+ @endforeach
+
+
+ | 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']);