Merged in hotfix/new_transaction (pull request #240)
Hotfix/new transaction
This commit is contained in:
+2
-1
@@ -72,7 +72,8 @@ class Gadai extends Model
|
|||||||
'upah12',
|
'upah12',
|
||||||
'tagkomuditi',
|
'tagkomuditi',
|
||||||
'tempohbayar',
|
'tempohbayar',
|
||||||
'lelong_tawarruq'
|
'lelong_tawarruq',
|
||||||
|
'tag_tebus'
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
|
|||||||
use App\Services\MasterServices;
|
use App\Services\MasterServices;
|
||||||
use App\Support\OnePercent;
|
use App\Support\OnePercent;
|
||||||
use App\Services\Transaction\AnsuranServices as AnsServ;
|
use App\Services\Transaction\AnsuranServices as AnsServ;
|
||||||
use Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
@@ -2023,159 +2023,188 @@ class GadaiController extends Controller
|
|||||||
$audit->updated_at = $current;
|
$audit->updated_at = $current;
|
||||||
$audit->save();
|
$audit->save();
|
||||||
|
|
||||||
|
try{
|
||||||
if($gadai[0]['historygadaian'] != "0" && $gadai[0]['historygadaian'] != '')
|
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||||
{
|
DB::connection('mysql7')->beginTransaction();
|
||||||
|
|
||||||
if($tebus['tagterima'] == 1)
|
if($gadai[0]['historygadaian'] != "0" && $gadai[0]['historygadaian'] != '')
|
||||||
{
|
{
|
||||||
if($tebus['jenistebus'] == 'P')
|
|
||||||
|
if($tebus['tagterima'] == 1)
|
||||||
{
|
{
|
||||||
|
if($tebus['jenistebus'] == 'P')
|
||||||
|
{
|
||||||
|
|
||||||
$totalkeluar = $keluar - ($tebus['addpinjaman'] + $tebus['pinjaman']);
|
$totalkeluar = $keluar - ($tebus['addpinjaman'] + $tebus['pinjaman']);
|
||||||
$totalmasuk = $masuk - ($tebus['bakiupah'] + $tebus['pinjaman']);
|
$totalmasuk = $masuk - ($tebus['bakiupah'] + $tebus['pinjaman']);
|
||||||
|
|
||||||
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||||
$bakiakhir = $baki - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
$bakiakhir = $baki - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
update(array(
|
update(array(
|
||||||
'keluar' => $totalkeluar,
|
'keluar' => $totalkeluar,
|
||||||
'masuk' => $totalmasuk,
|
'masuk' => $totalmasuk,
|
||||||
'baki' => $bakiakhir
|
'baki' => $bakiakhir
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$totalmasuk = $masuk - ($tebus['pinjaman']+$tebus['bakiupah']);
|
||||||
|
$totalkeluar = $keluar - (($tebus['pinjaman'] + $tebus['bakiupah']) - $tebus['bakipjm']);
|
||||||
|
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||||
|
|
||||||
|
if($tebus['jenistebus'] == 'S')
|
||||||
|
$bakiakhir = $baki - $tebus['bakipjm'];
|
||||||
|
else
|
||||||
|
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||||
|
|
||||||
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
|
update(array(
|
||||||
|
'keluar' => $totalkeluar,
|
||||||
|
'masuk' => $totalmasuk,
|
||||||
|
'baki' => $bakiakhir
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
$totalmasuk = $masuk - ($tebus['pinjaman']+$tebus['bakiupah']);
|
$bakiakhir = $baki;
|
||||||
$totalkeluar = $keluar - (($tebus['pinjaman'] + $tebus['bakiupah']) - $tebus['bakipjm']);
|
|
||||||
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
|
||||||
|
|
||||||
if($tebus['jenistebus'] == 'S')
|
if($tebus['jenistebus'] == 'P')
|
||||||
$bakiakhir = $baki - $tebus['bakipjm'];
|
{
|
||||||
else
|
|
||||||
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
$bakiakhir = $bakiakhir - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
||||||
update(array(
|
|
||||||
'keluar' => $totalkeluar,
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
'masuk' => $totalmasuk,
|
update(array(
|
||||||
'baki' => $bakiakhir
|
'keluar' => $keluar,
|
||||||
));
|
'masuk' => $masuk,
|
||||||
|
'baki' => $bakiakhir
|
||||||
|
));
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$totalmasuk = $masuk;
|
||||||
|
$totalkeluar = $keluar;
|
||||||
|
|
||||||
|
if($tebus['jenistebus'] == 'S')
|
||||||
|
$bakiakhir = ($bakiakhir - $tebus['bakipjm']);
|
||||||
|
else
|
||||||
|
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||||
|
|
||||||
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
|
update(array(
|
||||||
|
'keluar' => $keluar,
|
||||||
|
'masuk' => $masuk,
|
||||||
|
'baki' => $bakiakhir
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
|
|
||||||
$bakiakhir = $baki;
|
|
||||||
|
|
||||||
if($tebus['jenistebus'] == 'P')
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$gadai[0]['historygadaian'])->update(['sttebus' => '']);
|
||||||
|
|
||||||
|
|
||||||
|
$saved_historygadaian = $gadai[0]['historygadaian'];
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
|
||||||
|
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$gadai[0]['historygadaian'])->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
|
Transaction::on('mysql7')->where('norujukan','=',$gadai[0]['historygadaian'])->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
|
Tebus::on($cawangan['mysql'])->where('norujukan','=',$gadai[0]['historygadaian'])->delete();
|
||||||
|
|
||||||
|
Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
|
||||||
|
$gadaiDouble = Gadai::on($cawangan['mysql'])->where([['historygadaian',$gadai[0]['historygadaian']],['norujukan','<>',$gadai[0]['historygadaian']]])->pluck('norujukan');
|
||||||
|
|
||||||
|
if($gadaiDouble){
|
||||||
|
|
||||||
|
$isGadaianTawarruq = $saved_historygadaian !== '0' || $saved_historygadaian !== null || $saved_historygadaian !== '';
|
||||||
|
if($isGadaianTawarruq){
|
||||||
|
|
||||||
|
$this->batalKomuditiTawarruq($norujukan);
|
||||||
|
Gadai::on($cawangan['mysql'])->where('norujukan', $norujukan)->delete();
|
||||||
|
Marhun::on($cawangan['mysql'])->where('norujukan', $norujukan)->delete();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])->whereIn('norujukan',$gadaiDouble)->delete();
|
||||||
|
Marhun::on($cawangan['mysql'])->whereIn('norujukan',$gadaiDouble)->delete();
|
||||||
|
$this->batalKomuditi($gadai[0]['historygadaian'],$cawangan['mysql']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// return response('Deleted Successfully', 200);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
if($gadai[0]['semakbarcode'] == 'Lulus')
|
||||||
{
|
{
|
||||||
|
$totalkeluar = $keluar - $gadai[0]['pinjaman'];
|
||||||
|
|
||||||
$bakiakhir = $bakiakhir - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
$bakiakhir = $baki;
|
||||||
|
|
||||||
|
$bakiakhir += $gadai[0]['pinjaman'];
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
update(array(
|
update(array(
|
||||||
'keluar' => $keluar,
|
'keluar' => $totalkeluar,
|
||||||
'masuk' => $masuk,
|
'masuk' => $masuk,
|
||||||
'baki' => $bakiakhir
|
'baki' => $bakiakhir
|
||||||
));
|
));
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
$totalmasuk = $masuk;
|
$bakiakhir = $baki;
|
||||||
$totalkeluar = $keluar;
|
|
||||||
|
|
||||||
if($tebus['jenistebus'] == 'S')
|
$bakiakhir += $gadai[0]['pinjaman'];
|
||||||
$bakiakhir = ($bakiakhir - $tebus['bakipjm']);
|
|
||||||
else
|
|
||||||
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
update(array(
|
update(array(
|
||||||
'keluar' => $keluar,
|
'keluar' => $keluar,
|
||||||
'masuk' => $masuk,
|
'masuk' => $masuk,
|
||||||
'baki' => $bakiakhir
|
'baki' => $bakiakhir
|
||||||
));
|
));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
Transaction::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
|
// return response('Deleted Successfully', 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'success',
|
||||||
|
'data' => 1
|
||||||
|
];
|
||||||
|
|
||||||
Gadai::on($cawangan['mysql'])->where('norujukan','=',$gadai[0]['historygadaian'])->update(['sttebus' => '']);
|
DB::connection($cawangan['mysql'])->commit();
|
||||||
|
DB::connection('mysql7')->commit();
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
DB::connection($cawangan['mysql'])->rollBack();
|
||||||
|
DB::connection('mysql7')->rollBack();
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'error',
|
||||||
|
'data' => $e->getMessage()
|
||||||
|
];
|
||||||
|
|
||||||
$saved_historygadaian = $gadai[0]['historygadaian'];
|
Log::error('Transaction failed', [
|
||||||
|
'exception' => $e->getMessage(),
|
||||||
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
'line' => $e->getLine(),
|
||||||
|
'file' => $e->getFile(),
|
||||||
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$gadai[0]['historygadaian'])->orderBy('id', 'desc')->limit(1)->delete();
|
]);
|
||||||
|
|
||||||
Transaction::on('mysql7')->where('norujukan','=',$gadai[0]['historygadaian'])->orderBy('id', 'desc')->limit(1)->delete();
|
return response()->json($array_response);
|
||||||
|
|
||||||
Tebus::on($cawangan['mysql'])->where('norujukan','=',$gadai[0]['historygadaian'])->delete();
|
|
||||||
|
|
||||||
Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
|
||||||
|
|
||||||
$gadaiDouble = Gadai::on($cawangan['mysql'])->where([['historygadaian',$gadai[0]['historygadaian']],['norujukan','<>',$gadai[0]['historygadaian']]])->pluck('norujukan');
|
|
||||||
|
|
||||||
if($gadaiDouble){
|
|
||||||
|
|
||||||
$isGadaianTawarruq = $saved_historygadaian !== '0' || $saved_historygadaian !== null || $saved_historygadaian !== '';
|
|
||||||
if($isGadaianTawarruq){
|
|
||||||
|
|
||||||
$this->batalKomuditiTawarruq($norujukan);
|
|
||||||
Gadai::on($cawangan['mysql'])->where('norujukan', $norujukan)->delete();
|
|
||||||
Marhun::on($cawangan['mysql'])->where('norujukan', $norujukan)->delete();
|
|
||||||
} else {
|
|
||||||
|
|
||||||
Gadai::on($cawangan['mysql'])->whereIn('norujukan',$gadaiDouble)->delete();
|
|
||||||
Marhun::on($cawangan['mysql'])->whereIn('norujukan',$gadaiDouble)->delete();
|
|
||||||
$this->batalKomuditi($gadai[0]['historygadaian'],$cawangan['mysql']);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return response('Deleted Successfully', 200);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
if($gadai[0]['semakbarcode'] == 'Lulus')
|
|
||||||
{
|
|
||||||
$totalkeluar = $keluar - $gadai[0]['pinjaman'];
|
|
||||||
|
|
||||||
$bakiakhir = $baki;
|
|
||||||
|
|
||||||
$bakiakhir += $gadai[0]['pinjaman'];
|
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
|
||||||
update(array(
|
|
||||||
'keluar' => $totalkeluar,
|
|
||||||
'masuk' => $masuk,
|
|
||||||
'baki' => $bakiakhir
|
|
||||||
));
|
|
||||||
}else{
|
|
||||||
|
|
||||||
$bakiakhir = $baki;
|
|
||||||
|
|
||||||
$bakiakhir += $gadai[0]['pinjaman'];
|
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
|
||||||
update(array(
|
|
||||||
'keluar' => $keluar,
|
|
||||||
'masuk' => $masuk,
|
|
||||||
'baki' => $bakiakhir
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
|
||||||
Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
|
||||||
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
|
||||||
Transaction::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
|
||||||
|
|
||||||
return response('Deleted Successfully', 200);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2208,6 +2237,7 @@ class GadaiController extends Controller
|
|||||||
|
|
||||||
$transaksi_asal = KomuditiTransaksi::on('mysql7')->whereIn('norujukan','=',$gadaiDouble)->sum('unit_komuditi');
|
$transaksi_asal = KomuditiTransaksi::on('mysql7')->whereIn('norujukan','=',$gadaiDouble)->sum('unit_komuditi');
|
||||||
|
|
||||||
|
$unit_current = $komuditi_current['unit_komuditi'];
|
||||||
|
|
||||||
$update_unit = $unit_current + $transaksi_asal['unit_komuditi'];
|
$update_unit = $unit_current + $transaksi_asal['unit_komuditi'];
|
||||||
|
|
||||||
@@ -2245,82 +2275,109 @@ class GadaiController extends Controller
|
|||||||
$bakiakhir = $baki;
|
$bakiakhir = $baki;
|
||||||
$totalkeluar = 0;
|
$totalkeluar = 0;
|
||||||
|
|
||||||
if($gadai){
|
try{
|
||||||
return response('Bukan-Tebus', 200);
|
if($gadai){
|
||||||
}else{
|
return response('Bukan-Tebus', 200);
|
||||||
|
|
||||||
$audit = new Audit();
|
|
||||||
$audit->users = $request->kodlaluan;
|
|
||||||
$audit->actions = 'Hapus Tebus';
|
|
||||||
$audit->norujukan = $norujukan;
|
|
||||||
$audit->old_data = $gadai;
|
|
||||||
$audit->kodcaw = $kodcaw;
|
|
||||||
$audit->created_at = $current;
|
|
||||||
$audit->updated_at = $current;
|
|
||||||
$audit->save();
|
|
||||||
|
|
||||||
if($tebus[0]['tagterima'] == 1)
|
|
||||||
{
|
|
||||||
if($tebus[0]['jenistebus'] == 'T')
|
|
||||||
{
|
|
||||||
$totalmasuk = $masuk - $tebus[0]['bakipjm'];
|
|
||||||
|
|
||||||
// $bakiakhir = $bakiawal-$keluar+$totalmasuk+$pendahuluan-$serahan;
|
|
||||||
$bakiakhir = $baki - $tebus[0]['bakipjm'];
|
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
|
||||||
update(array(
|
|
||||||
'keluar' => $keluar,
|
|
||||||
'masuk' => $totalmasuk,
|
|
||||||
'baki' => $bakiakhir
|
|
||||||
));
|
|
||||||
|
|
||||||
Tebus::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
|
||||||
|
|
||||||
InOutMar::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
|
||||||
|
|
||||||
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
|
||||||
|
|
||||||
Transaction::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
|
||||||
|
|
||||||
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(['sttebus' => '']);
|
|
||||||
|
|
||||||
return response('Deleted Successfully', 200);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return response('Bukan-Tebus', 200);
|
|
||||||
}else{
|
}else{
|
||||||
|
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||||
|
DB::connection('mysql7')->beginTransaction();
|
||||||
|
|
||||||
if($tebus[0]['jenistebus'] == 'T')
|
$audit = new Audit();
|
||||||
|
$audit->users = $request->kodlaluan;
|
||||||
|
$audit->actions = 'Hapus Tebus';
|
||||||
|
$audit->norujukan = $norujukan;
|
||||||
|
$audit->old_data = $gadai;
|
||||||
|
$audit->kodcaw = $kodcaw;
|
||||||
|
$audit->created_at = $current;
|
||||||
|
$audit->updated_at = $current;
|
||||||
|
$audit->save();
|
||||||
|
|
||||||
|
if($tebus[0]['tagterima'] == 1)
|
||||||
{
|
{
|
||||||
|
if($tebus[0]['jenistebus'] == 'T')
|
||||||
|
{
|
||||||
|
$totalmasuk = $masuk - $tebus[0]['bakipjm'];
|
||||||
|
|
||||||
$bakiakhir = $bakiakhir - $tebus[0]['bakipjm'];
|
// $bakiakhir = $bakiawal-$keluar+$totalmasuk+$pendahuluan-$serahan;
|
||||||
|
$bakiakhir = $baki - $tebus[0]['bakipjm'];
|
||||||
|
|
||||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
update(array(
|
update(array(
|
||||||
'keluar' => $keluar,
|
'keluar' => $keluar,
|
||||||
'masuk' => $masuk,
|
'masuk' => $totalmasuk,
|
||||||
'baki' => $bakiakhir
|
'baki' => $bakiakhir
|
||||||
));
|
));
|
||||||
|
|
||||||
|
Tebus::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
|
||||||
|
InOutMar::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
|
||||||
|
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
|
Transaction::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(['sttebus' => '']);
|
||||||
|
|
||||||
|
DB::connection($cawangan['mysql'])->commit();
|
||||||
|
DB::connection('mysql7')->commit();
|
||||||
|
|
||||||
|
return response('Deleted Successfully', 200);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return response('Bukan-Tebus', 200);
|
||||||
|
}else{
|
||||||
|
|
||||||
|
if($tebus[0]['jenistebus'] == 'T')
|
||||||
|
{
|
||||||
|
|
||||||
|
$bakiakhir = $bakiakhir - $tebus[0]['bakipjm'];
|
||||||
|
|
||||||
|
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||||
|
update(array(
|
||||||
|
'keluar' => $keluar,
|
||||||
|
'masuk' => $masuk,
|
||||||
|
'baki' => $bakiakhir
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Tebus::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
Tebus::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
|
||||||
InOutMar::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
InOutMar::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->delete();
|
||||||
|
|
||||||
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
Transaction::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
Transaction::on('mysql7')->where('norujukan','=',$norujukan)->orderBy('id', 'desc')->limit(1)->delete();
|
||||||
|
|
||||||
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(['sttebus' => '']);
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(['sttebus' => '']);
|
||||||
|
|
||||||
return response('Deleted Successfully', 200);
|
DB::connection($cawangan['mysql'])->commit();
|
||||||
|
DB::connection('mysql7')->commit();
|
||||||
|
return response('Deleted Successfully', 200);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return response('Bukan-Tebus', 200);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return response('Bukan-Tebus', 200);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
DB::connection($cawangan['mysql'])->rollBack();
|
||||||
|
DB::connection('mysql7')->rollBack();
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'error',
|
||||||
|
'data' => $e->getMessage()
|
||||||
|
];
|
||||||
|
|
||||||
|
Log::error('Transaction failed', [
|
||||||
|
'exception' => $e->getMessage(),
|
||||||
|
'line' => $e->getLine(),
|
||||||
|
'file' => $e->getFile(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function senaraiLelong($kodcaw,Request $request){
|
public function senaraiLelong($kodcaw,Request $request){
|
||||||
|
|||||||
@@ -599,7 +599,7 @@ class LelongController extends Controller
|
|||||||
|
|
||||||
if($cawangan['tagarrahnbid'] == 1){
|
if($cawangan['tagarrahnbid'] == 1){
|
||||||
if(env('APP_ENV') != 'production'){
|
if(env('APP_ENV') != 'production'){
|
||||||
$link = 'https://niklah.arrahn.com.my/api/portalApi';
|
$link = 'http://niklah.arrahn.com.my/api/portalApi';
|
||||||
}else{
|
}else{
|
||||||
$link = 'http://adminbid.arrahn/api/portalApi';
|
$link = 'http://adminbid.arrahn/api/portalApi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,6 +182,13 @@ class TebusController extends Controller
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function tebusUpdateTambahPinjaman($kodcaw,$norujukan,Request $request){
|
||||||
|
$master = new MasterServices($kodcaw);
|
||||||
|
$response = $master->tebusUpdateTambahPinjaman($kodcaw,$norujukan,$request);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
public function getLaporanTebus($kodcaw,$tarikh){
|
public function getLaporanTebus($kodcaw,$tarikh){
|
||||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ use App\KadarUpah;
|
|||||||
use Illuminate\Http\Request as HttpRequest;
|
use Illuminate\Http\Request as HttpRequest;
|
||||||
use App\Support\OnePercent as OnePercentEngine;
|
use App\Support\OnePercent as OnePercentEngine;
|
||||||
use App\Support\Tawarruq as TawarruqEngine;
|
use App\Support\Tawarruq as TawarruqEngine;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
class MasterServices
|
class MasterServices
|
||||||
{
|
{
|
||||||
protected $cawangan;
|
protected $cawangan;
|
||||||
@@ -223,6 +223,12 @@ class MasterServices
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function tebusUpdateTambahPinjaman($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
$onepercent = new OnePercentEngine($this->cawangan);
|
||||||
|
$response = $onepercent->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request);
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
|
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
|
||||||
$response = $this->engine->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
$response = $this->engine->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||||
|
|
||||||
|
|||||||
@@ -181,7 +181,14 @@ class OnePercent extends MasterServices
|
|||||||
|
|
||||||
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||||
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||||
$response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request);
|
$response = $tebus->transaksiPembiayaanSemula($this->kodcaw,$norujukan,$request);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tebusUpdateTambahPinjaman($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||||
|
$response = $tebus->transaksiTambahPembiayaan($this->kodcaw,$norujukan,$request);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
@@ -207,6 +214,13 @@ class OnePercent extends MasterServices
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function tebusTransaksiUpdate($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||||
|
$response = $tebus->tebusTransaksiUpdate($this->kodcaw,$norujukan,$request);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
/* End Penebusan */
|
/* End Penebusan */
|
||||||
|
|
||||||
public function test(){
|
public function test(){
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ use App\Support\v1\GadaiV1 as Version1Gadai;
|
|||||||
use App\Services\MasterServices;
|
use App\Services\MasterServices;
|
||||||
use App\Support\v1\Penebusan;
|
use App\Support\v1\Penebusan;
|
||||||
use Illuminate\Http\Request as HttpRequest;
|
use Illuminate\Http\Request as HttpRequest;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class Tawarruq extends MasterServices
|
class Tawarruq extends MasterServices
|
||||||
{
|
{
|
||||||
@@ -165,7 +166,7 @@ class Tawarruq extends MasterServices
|
|||||||
|
|
||||||
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||||
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||||
$response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request);
|
$response = $tebus->transaksiPembiayaanSemula($this->kodcaw,$norujukan,$request);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ use App\KadarUpah;
|
|||||||
use App\Support\v2\Calculation;
|
use App\Support\v2\Calculation;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use App\Gadai;
|
use App\Gadai;
|
||||||
|
use App\HargaEmas;
|
||||||
use App\InOutMar;
|
use App\InOutMar;
|
||||||
|
use App\KomuditiPurchase;
|
||||||
|
use App\KomuditiTransaksi;
|
||||||
use App\Marhun;
|
use App\Marhun;
|
||||||
use App\Moratorium;
|
use App\Moratorium;
|
||||||
use App\Support\OnePercent;
|
use App\Support\OnePercent;
|
||||||
@@ -772,4 +775,326 @@ class Penebusan
|
|||||||
|
|
||||||
return $tempoh_gadai;
|
return $tempoh_gadai;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public function transaksiPembiayaanSemula($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
|
|
||||||
|
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||||
|
$gadai = optional($gadai)->toArray();
|
||||||
|
|
||||||
|
//check duplicate
|
||||||
|
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||||
|
|
||||||
|
if(!empty($data)){
|
||||||
|
return 'duplicate';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$gadai){
|
||||||
|
return 'gadai no-data';
|
||||||
|
}
|
||||||
|
|
||||||
|
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller','bakipinjaman','bakiupah']);
|
||||||
|
$array_trans = $request->only(['nopelanggan', 'noic','jenisAT','pinjaman','pinjamanbaru','marhun','teller','jenistebus']);
|
||||||
|
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
|
||||||
|
$array_trans_base = $request->only(['pinjaman','teller','pinjamanbaru']);
|
||||||
|
|
||||||
|
try{
|
||||||
|
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||||
|
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
|
||||||
|
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
|
||||||
|
|
||||||
|
DB::connection('mysql7')->beginTransaction();
|
||||||
|
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
|
||||||
|
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'success',
|
||||||
|
'data' => 1
|
||||||
|
];
|
||||||
|
|
||||||
|
DB::connection($cawangan['mysql'])->commit();
|
||||||
|
DB::connection('mysql7')->commit();
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
|
||||||
|
}catch(\Exception $e){
|
||||||
|
DB::connection($cawangan['mysql'])->rollBack();
|
||||||
|
DB::connection('mysql7')->rollBack();
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'error',
|
||||||
|
'data' => $e->getMessage()
|
||||||
|
];
|
||||||
|
|
||||||
|
Log::error('Transaction failed', [
|
||||||
|
'exception' => $e->getMessage(),
|
||||||
|
'line' => $e->getLine(),
|
||||||
|
'file' => $e->getFile(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
$rebet = 0;
|
||||||
|
|
||||||
|
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
|
||||||
|
|
||||||
|
$upah_rebet = $this->kiraUpahRebet($norujukan);
|
||||||
|
|
||||||
|
try{
|
||||||
|
Tebus::on($cawangan['mysql'])->create([
|
||||||
|
'kodcaw'=> $kodcaw,
|
||||||
|
'norujukan'=> $norujukan,
|
||||||
|
'nopelanggan' => $array_tebus['nopelanggan'],
|
||||||
|
'jenisbyr' => "TN",
|
||||||
|
'jenistebus' => $array_tebus['jenistebus'],
|
||||||
|
'glcode' => "0",
|
||||||
|
't_tebus' => $current->toDateString(),
|
||||||
|
'jbg' => $gadai['tempoh'],
|
||||||
|
'kadarupah' => $gadai['kadarupah'],
|
||||||
|
'nilaimarhun' => $gadai['nilaimarhun'],
|
||||||
|
'pinjaman' => $gadai['pinjaman'],
|
||||||
|
'ansuran' => 0.00,
|
||||||
|
'addpinjaman' => $array_tebus['addpinjaman'],
|
||||||
|
'bakipjm' => $array_tebus['bakipinjaman'],
|
||||||
|
'bakiupah' => $array_tebus['bakiupah'],
|
||||||
|
'terima' => "*",
|
||||||
|
'kodgl' => "0",
|
||||||
|
'nowakil' => $array_tebus['nowakil'],
|
||||||
|
'rebate' => $rebet,
|
||||||
|
'marhuntebus' => $array_tebus['marhun'],
|
||||||
|
'historygadaian' => $norujukan,
|
||||||
|
'tarikhbyrn' => $current->toDateString(),
|
||||||
|
'teller' => $array_tebus['teller'],
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in Tebus: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
if($array_tebus_base['jenistebus'] == 'AT'){
|
||||||
|
$bayaran_pembiayaan = $array_tebus_base['totalbayaran'] - $array_tebus_base['bakiupah'];
|
||||||
|
}else{
|
||||||
|
$bayaran_pembiayaan = $array_tebus_base['bakipinjaman'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100;
|
||||||
|
|
||||||
|
$harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$array_tebus_base['jeniskeuntungan']);
|
||||||
|
$upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan);
|
||||||
|
|
||||||
|
$bayaran_pembiayaan = $array_tebus_base['totalbayaran'] - $array_tebus_base['bakiupah'];
|
||||||
|
|
||||||
|
$upah_rebet_sebenar = $harga_tebus - $gadai['bakipjm'];
|
||||||
|
|
||||||
|
try{
|
||||||
|
TransaksiKeuntungan::on('mysql7')->create([
|
||||||
|
'norujukan' => $norujukan,
|
||||||
|
'bayaran_keuntungan' => $array_tebus_base['bakiupah'],
|
||||||
|
'bayaran_pembiayaan' => $bayaran_pembiayaan,
|
||||||
|
'keuntungan_rebet' => $array_tebus_base['bakiupah'],
|
||||||
|
'tarikh_bayaran'=> $current,
|
||||||
|
'kodcaw'=> $kodcaw
|
||||||
|
]);
|
||||||
|
|
||||||
|
if($array_tebus_base['jenistebus'] == 'P'){
|
||||||
|
$duit_masuk = $array_tebus_base['bakiupah'];
|
||||||
|
}else if($array_tebus_base['jenistebus'] == 'AT'){
|
||||||
|
$duit_masuk = $array_tebus_base['totalbayaran'];
|
||||||
|
}else{
|
||||||
|
$duit_masuk = $harga_tebus['harga'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$baki_hargajualan = ($array_tebus_base['jenistebus'] == 'P') ? $gadai['bakihargajualan'] = $array_tebus_base['bakiupah'] : $gadai['bakihargajualan'] - $array_tebus_base['bakipinjaman'];
|
||||||
|
Transaction::on('mysql7')->create([
|
||||||
|
'trans_type' => $array_tebus_base['jenistebus'],
|
||||||
|
'norujukan' => $norujukan,
|
||||||
|
'nokp' => $gadai['nokp'],
|
||||||
|
'teller' => $array_tebus_base['teller'],
|
||||||
|
'kodcaw' => $kodcaw,
|
||||||
|
'duit_masuk' => $array_tebus_base['totalbayaran'],
|
||||||
|
'created_at' => $current,
|
||||||
|
'bakiharga' => 0,
|
||||||
|
'duitpelanggan' => isset($array_tebus_base['duitpelanggan']) ? $array_tebus_base['duitpelanggan'] : 0,
|
||||||
|
'bakipelanggan' => isset($array_tebus_base['bakipelanggan']) ? $array_tebus_base['bakipelanggan'] : 0
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in TebusBase: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createTransaction($cawangan,$kodcaw,$norujukan,$array_trans){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
/* Create Gadai */
|
||||||
|
$gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$current->toDateString())->orderBy('sirig', 'desc')->first();
|
||||||
|
$gadaiTransaction = optional($gadaiTransaction)->toArray();
|
||||||
|
|
||||||
|
$new_sirig = ($gadaiTransaction) ? $gadaiTransaction['sirig'] + 1 : 1;
|
||||||
|
$curent_year = substr($current->year,2,2);
|
||||||
|
$curent_month = sprintf("%02d", $current->month);
|
||||||
|
$current_day = sprintf("%02d", $current->day);
|
||||||
|
|
||||||
|
$new_transaction = sprintf("%04d",$new_sirig);
|
||||||
|
$new_sag_number = strtoupper($cawangan['kodcaw']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction;
|
||||||
|
|
||||||
|
try{
|
||||||
|
Gadai::on($cawangan['mysql'])->create([
|
||||||
|
'kodcaw'=>$kodcaw,
|
||||||
|
'norujukan' => $new_sag_number,
|
||||||
|
'nopelanggan' => $array_trans['nopelanggan'],
|
||||||
|
'nokp' => $array_trans['noic'],
|
||||||
|
'sirig' => $new_sirig,
|
||||||
|
't_gadai' => $current->toDateString(),
|
||||||
|
'sttebus' => '',
|
||||||
|
'masa' =>$current->toTimeString(),
|
||||||
|
'tagbaru' => 1
|
||||||
|
]);
|
||||||
|
|
||||||
|
$marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->get();
|
||||||
|
|
||||||
|
foreach($marhun as $marhunloop){
|
||||||
|
$karatbaru = (strpos($marhunloop['karat'], '.') !== false) ? str_replace('-','.',$marhunloop['karat']) : $marhunloop['karat'];
|
||||||
|
$karatbaru = $marhunloop['karat'];
|
||||||
|
$harga_emas = HargaEmas::on('mysql7')->select('harga')->where('karat','=',$karatbaru)->first();
|
||||||
|
|
||||||
|
if(isset($array_trans['jenisAT'])){
|
||||||
|
$harga = ($array_trans['jenisAT'] == 'hargalama') ? $marhunloop['harga'] : $harga_emas['harga'];
|
||||||
|
}else{
|
||||||
|
$harga = $harga_emas['harga'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$nilai_marhun = (floatval($harga) * floatval($marhunloop['berat']));
|
||||||
|
|
||||||
|
$marhunToCreate = [
|
||||||
|
'kodcaw'=> $kodcaw,
|
||||||
|
'norujukan'=> $new_sag_number,
|
||||||
|
't_gadai' => $current->toDateString(),
|
||||||
|
'bil' => $marhunloop['kuantiti'],
|
||||||
|
'marhun' => $marhunloop['marhun'],
|
||||||
|
'nota' => $marhunloop['nota'],
|
||||||
|
'tag_permata' => $marhunloop['tag_permata'] != null ? $marhunloop['tag_permata'] : 0,
|
||||||
|
'berat_batu_permata' => $marhunloop['berat_batu_permata'] != null ? $marhunloop['berat_batu_permata'] : '',
|
||||||
|
'karat' => $marhunloop['karat'],
|
||||||
|
'berat' => $marhunloop['berat'],
|
||||||
|
'harga' => $harga,
|
||||||
|
'n_marhun' => $nilai_marhun
|
||||||
|
];
|
||||||
|
|
||||||
|
if($marhunToCreate['berat_batu_permata'] == '') {
|
||||||
|
$marhunToCreate['berat_batu_permata'] = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
Marhun::on($cawangan['mysql'])->create($marhunToCreate);
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('n_marhun');
|
||||||
|
$total_bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('bil');
|
||||||
|
$total_berat_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('berat');
|
||||||
|
|
||||||
|
$margin_pinjaman = ($array_trans['pinjamanbaru'] / $total_nilai_marhun);
|
||||||
|
|
||||||
|
$t_matang = Carbon::now();
|
||||||
|
$t_matang = $t_matang->addMonths(6)->subDays(1);
|
||||||
|
|
||||||
|
$t_kontrak = Carbon::now();
|
||||||
|
$t_kontrak = $t_kontrak->addMonths(12)->subDays(1);
|
||||||
|
|
||||||
|
$kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first();
|
||||||
|
|
||||||
|
$onepercentservices = new Calculation();
|
||||||
|
$keuntungan = $onepercentservices->kiraanKeuntunganSebenar($array_trans['pinjamanbaru'],$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjaman);
|
||||||
|
|
||||||
|
$upah1 = $onepercentservices->getRoundedMethod($keuntungan['keuntungan']);
|
||||||
|
$upah6 = $onepercentservices->getRoundedMethod($upah1 * 6);
|
||||||
|
$upah12 = $onepercentservices->getRoundedMethod($upah1 * 12);
|
||||||
|
$ujrah = $onepercentservices->getRoundedMethod($keuntungan['ujrah']);
|
||||||
|
$onepercent = $onepercentservices->getRoundedMethod($keuntungan['onepercent']);
|
||||||
|
$akrual_ujrah = $onepercentservices->getRoundedMethod($keuntungan['ujrah'] * 0.5);
|
||||||
|
$akrual_onepercent = $onepercentservices->getRoundedMethod($keuntungan['onepercent'] * 0.5);
|
||||||
|
|
||||||
|
$hargajualan = $array_trans['pinjaman'] + $upah12;
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])
|
||||||
|
->where('norujukan','=',$new_sag_number)
|
||||||
|
->update(array(
|
||||||
|
'nilaimarhun' => $total_nilai_marhun,
|
||||||
|
'berat'=> $total_berat_marhun,
|
||||||
|
'pinjaman' => $array_trans['pinjamanbaru'],
|
||||||
|
'kadarupah' => $kadar_raw['kadarujrah'],
|
||||||
|
'marhun' => $array_trans['marhun'],
|
||||||
|
'percentpinj' => $margin_pinjaman,
|
||||||
|
'teller' => $array_trans['teller'],
|
||||||
|
'bakipjm' => $array_trans['pinjamanbaru'],
|
||||||
|
'bakiupah' => $upah6,
|
||||||
|
'jbg' => 0.5,
|
||||||
|
't_update' => $current->toDateString(),
|
||||||
|
'cetak' => 0,
|
||||||
|
'upah12' => $upah12,
|
||||||
|
'hargajualan' => $hargajualan,
|
||||||
|
'bakihargajualan' => $hargajualan,
|
||||||
|
'tagserah' => 0,
|
||||||
|
't_matang' => $t_matang,
|
||||||
|
't_matang1' => $t_kontrak,
|
||||||
|
'tempoh' => 0.5,
|
||||||
|
'kuantiti' => $total_bil_marhun,
|
||||||
|
'tagkomuditi' => 0,
|
||||||
|
'upahdibayar' => 0.00,
|
||||||
|
'tempohbayar' => 0.00,
|
||||||
|
'lelong_tawarruq' => 1,
|
||||||
|
'kadarujrah' => $kadar_raw['kadarujrah'],
|
||||||
|
'ujrah' => $ujrah,
|
||||||
|
'onepercent' => $onepercent,
|
||||||
|
'margin_semasa' => $margin_pinjaman,
|
||||||
|
'tagbaru' => 1,
|
||||||
|
'tunggakanujrah' => $akrual_ujrah,
|
||||||
|
'tunggakanonepercent' => $akrual_onepercent,
|
||||||
|
'historygadaian' => $norujukan,
|
||||||
|
'tag_tebus' => $array_trans['jenistebus'],
|
||||||
|
));
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
|
||||||
|
'sttebus' => "T",
|
||||||
|
't_update' => $current->toDateString(),
|
||||||
|
));
|
||||||
|
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in Transaction: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createTransactionBase($norujukan,$kodcaw,$array_trans_base){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
$komuditi_current = KomuditiPurchase::on('mysql7')->where('date_purchase','=',$current->toDateString())->orderBy('created_at','desc')->first();
|
||||||
|
|
||||||
|
$unit_current = isset($komuditi_current['unit_komuditi']) ? $komuditi_current['unit_komuditi']: 0;
|
||||||
|
|
||||||
|
try{
|
||||||
|
$update_unit = $unit_current - $array_trans_base['pinjamanbaru'];
|
||||||
|
|
||||||
|
KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
|
||||||
|
'unit_komuditi' => $update_unit
|
||||||
|
]);
|
||||||
|
|
||||||
|
KomuditiTransaksi::on('mysql7')->create([
|
||||||
|
'unit_komuditi' => $update_unit,
|
||||||
|
'nosijil'=>$komuditi_current['no_sijil'],
|
||||||
|
'norujukan' => $norujukan,
|
||||||
|
'kodcaw' => $kodcaw,
|
||||||
|
'teller' => $array_trans_base['teller'],
|
||||||
|
'masa' => $current->toTimeString(),
|
||||||
|
'tarikh' => $current->toDateString()
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in TransactionBase: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,8 +9,13 @@ use App\KadarUpah;
|
|||||||
use App\Support\v2\Calculation;
|
use App\Support\v2\Calculation;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use App\Gadai;
|
use App\Gadai;
|
||||||
|
use App\HargaEmas;
|
||||||
use App\InOutMar;
|
use App\InOutMar;
|
||||||
|
use App\KomuditiPurchase;
|
||||||
|
use App\KomuditiTransaksi;
|
||||||
use App\Marhun;
|
use App\Marhun;
|
||||||
|
use App\FailoverTransaction;
|
||||||
|
use App\FailoverTransactionFailed;
|
||||||
use App\Moratorium;
|
use App\Moratorium;
|
||||||
use App\Support\OnePercent;
|
use App\Support\OnePercent;
|
||||||
use App\Tebus;
|
use App\Tebus;
|
||||||
@@ -200,8 +205,9 @@ class Penebusan
|
|||||||
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
|
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
|
||||||
|
|
||||||
$upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']);
|
$upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']);
|
||||||
$upahsemasa_raw = $bilang_bln * $upah['keuntungan'];
|
$onepercent = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
|
||||||
$upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw);
|
$ujrah = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
|
||||||
|
$upahsemasa_raw = $onepercentservices->getRoundedMethod($onepercent + $ujrah);
|
||||||
|
|
||||||
return $upahsemasa_raw;
|
return $upahsemasa_raw;
|
||||||
}
|
}
|
||||||
@@ -917,4 +923,428 @@ class Penebusan
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
public function transaksiPembiayaanSemula($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
|
||||||
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
|
|
||||||
|
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||||
|
$gadai = optional($gadai)->toArray();
|
||||||
|
|
||||||
|
//check duplicate
|
||||||
|
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||||
|
|
||||||
|
if(!empty($data)){
|
||||||
|
return 'duplicate';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$gadai){
|
||||||
|
return 'gadai no-data';
|
||||||
|
}
|
||||||
|
|
||||||
|
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller']);
|
||||||
|
$array_trans = $request->only(['nopelanggan', 'noic','jenisAT','pinjaman','pinjamanbaru','marhun','teller','jenistebus']);
|
||||||
|
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
|
||||||
|
$array_trans_base = $request->only(['pinjaman','teller','pinjamanbaru']);
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||||
|
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
|
||||||
|
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
|
||||||
|
|
||||||
|
DB::connection('mysql7')->beginTransaction();
|
||||||
|
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
|
||||||
|
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'success',
|
||||||
|
'data' => 1
|
||||||
|
];
|
||||||
|
|
||||||
|
DB::connection($cawangan['mysql'])->commit();
|
||||||
|
DB::connection('mysql7')->commit();
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
|
||||||
|
}catch(\Exception $e){
|
||||||
|
DB::connection($cawangan['mysql'])->rollBack();
|
||||||
|
DB::connection('mysql7')->rollBack();
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'error',
|
||||||
|
'data' => $e->getMessage()
|
||||||
|
];
|
||||||
|
|
||||||
|
Log::error('Transaction failed', [
|
||||||
|
'exception' => $e->getMessage(),
|
||||||
|
'line' => $e->getLine(),
|
||||||
|
'file' => $e->getFile(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function transaksiTambahPembiayaan($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
$current = Carbon::now();
|
||||||
|
$current = new Carbon();
|
||||||
|
|
||||||
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
|
|
||||||
|
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||||
|
$gadai = optional($gadai)->toArray();
|
||||||
|
|
||||||
|
//check duplicate
|
||||||
|
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||||
|
|
||||||
|
if(!empty($data)){
|
||||||
|
return 'duplicate';
|
||||||
|
}
|
||||||
|
|
||||||
|
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller']);
|
||||||
|
$array_trans = $request->only(['nopelanggan', 'noic','pinjaman','pinjamanbaru','marhun','teller','jenistebus']);
|
||||||
|
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
|
||||||
|
$array_trans_base = $request->only(['pinjaman','teller','pinjamanbaru']);
|
||||||
|
|
||||||
|
try{
|
||||||
|
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||||
|
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
|
||||||
|
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
|
||||||
|
DB::connection('mysql7')->beginTransaction();
|
||||||
|
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
|
||||||
|
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
|
||||||
|
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'success',
|
||||||
|
'data' => 1
|
||||||
|
];
|
||||||
|
|
||||||
|
DB::connection($cawangan['mysql'])->commit();
|
||||||
|
DB::connection('mysql7')->commit();
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
|
||||||
|
}catch(\Exception $e){
|
||||||
|
DB::connection($cawangan['mysql'])->rollBack();
|
||||||
|
DB::connection('mysql7')->rollBack();
|
||||||
|
|
||||||
|
$array_response = [
|
||||||
|
'result' => 'error',
|
||||||
|
'data' => $e->getMessage()
|
||||||
|
];
|
||||||
|
|
||||||
|
Log::error('Transaction failed', [
|
||||||
|
'exception' => $e->getMessage(),
|
||||||
|
'line' => $e->getLine(),
|
||||||
|
'file' => $e->getFile(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json($array_response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function transaksiPenyelesaianSebahagian($kodcaw,$norujukan,HttpRequest $request){
|
||||||
|
$current = Carbon::now();
|
||||||
|
$current = new Carbon();
|
||||||
|
|
||||||
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
|
|
||||||
|
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||||
|
|
||||||
|
try{
|
||||||
|
//check duplicate
|
||||||
|
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||||
|
|
||||||
|
if(!empty($data)){
|
||||||
|
return 'duplicate';
|
||||||
|
}
|
||||||
|
}catch(\Exception $e){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus){
|
||||||
|
$current = Carbon::now();
|
||||||
|
/*
|
||||||
|
Rebet Still looking for the calculation
|
||||||
|
*/
|
||||||
|
$rebet = 0;
|
||||||
|
$harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$array_tebus['jeniskeuntungan']);
|
||||||
|
$upah_tebus = $this->kiraupahTawarruq($norujukan);
|
||||||
|
$upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan);
|
||||||
|
$array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
|
||||||
|
try{
|
||||||
|
$onepercent_rebet = $array_onepercent_rebet['onepercent'] - $upah_rebet['onepercent'];
|
||||||
|
$ujrah_rebet = $array_onepercent_rebet['ujrah'] - $upah_rebet['ujrah'];
|
||||||
|
|
||||||
|
Tebus::on($cawangan['mysql'])->create([
|
||||||
|
'kodcaw'=> $kodcaw,
|
||||||
|
'norujukan'=> $norujukan,
|
||||||
|
'nopelanggan' => $array_tebus['nopelanggan'],
|
||||||
|
'jenisbyr' => "TN",
|
||||||
|
'jenistebus' => $array_tebus['jenistebus'],
|
||||||
|
'glcode' => "0",
|
||||||
|
't_tebus' => $current->toDateString(),
|
||||||
|
'jbg' => $gadai['tempoh'],
|
||||||
|
'kadarupah' => $gadai['kadarupah'],
|
||||||
|
'nilaimarhun' => $gadai['nilaimarhun'],
|
||||||
|
'pinjaman' => $gadai['pinjaman'],
|
||||||
|
'ansuran' => 0.00,
|
||||||
|
'addpinjaman' => $array_tebus['addpinjaman'],
|
||||||
|
'bakipjm' => $harga_tebus['harga'],
|
||||||
|
'bakiupah' => $upah_tebus,
|
||||||
|
'terima' => "*",
|
||||||
|
'kodgl' => "0",
|
||||||
|
'nowakil' => $array_tebus['nowakil'],
|
||||||
|
'rebate' => $rebet,
|
||||||
|
'marhuntebus' => $array_tebus['marhun'],
|
||||||
|
'historygadaian' => $norujukan,
|
||||||
|
'tarikhbyrn' => $current->toDateString(),
|
||||||
|
'teller' => $array_tebus['teller'],
|
||||||
|
'ujrah' => $ujrah_rebet,
|
||||||
|
'onepercent' => $onepercent_rebet,
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in Tebus: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
if($array_tebus_base['jenistebus'] == 'AT'){
|
||||||
|
$bayaran_pembiayaan = $array_tebus_base['totalbayaran'] - $array_tebus_base['bakiupah'];
|
||||||
|
}else{
|
||||||
|
$bayaran_pembiayaan = $array_tebus_base['bakipinjaman'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100;
|
||||||
|
|
||||||
|
$harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$array_tebus_base['jeniskeuntungan']);
|
||||||
|
$upah_tebus = $this->kiraupahTawarruq($norujukan);
|
||||||
|
$array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||||
|
$array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
|
||||||
|
$upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan);
|
||||||
|
|
||||||
|
$ujrah = $array_onepercent['ujrah'];
|
||||||
|
$onepercent = $array_onepercent['onepercent'];
|
||||||
|
$onepercent_rebet = $array_onepercent_rebet['onepercent'] - $upah_rebet['onepercent'];
|
||||||
|
$ujrah_rebet = $array_onepercent_rebet['ujrah'] - $upah_rebet['ujrah'];
|
||||||
|
|
||||||
|
$upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm'];
|
||||||
|
|
||||||
|
try{
|
||||||
|
TransaksiKeuntungan::on('mysql7')->create([
|
||||||
|
'norujukan' => $norujukan,
|
||||||
|
'bayaran_keuntungan' => $upah_tebus,
|
||||||
|
'bayaran_pembiayaan' => $bayaran_pembiayaan,
|
||||||
|
'keuntungan_rebet' => $upah_rebet_sebenar,
|
||||||
|
'tarikh_bayaran'=> $current,
|
||||||
|
'kodcaw'=> $kodcaw,
|
||||||
|
'ujrah' => ($array_tebus_base['jeniskeuntungan'] == 'onepercent') ? $ujrah : 0,
|
||||||
|
'ujrah_rebet' => ($array_tebus_base['jeniskeuntungan'] == 'onepercent') ? $ujrah_rebet : 0,
|
||||||
|
'onepercent' => ($array_tebus_base['jeniskeuntungan'] == 'onepercent') ? $onepercent : 0,
|
||||||
|
'onepercent_rebet' => ($array_tebus_base['jeniskeuntungan'] == 'onepercent') ? $onepercent_rebet : 0,
|
||||||
|
'margin_semasa' => ($array_tebus_base['jeniskeuntungan'] == 'onepercent') ? $margin_semasa : 0,
|
||||||
|
'tempoh' => $gadai['tempoh'],
|
||||||
|
'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if($array_tebus_base['jenistebus'] == 'P'){
|
||||||
|
$duit_masuk = $array_tebus_base['bakiupah'];
|
||||||
|
}else if($array_tebus_base['jenistebus'] == 'AT'){
|
||||||
|
$duit_masuk = $array_tebus_base['totalbayaran'];
|
||||||
|
}else{
|
||||||
|
$duit_masuk = $harga_tebus['harga'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$baki_hargajualan = ($array_tebus_base['jenistebus'] == 'P') ? $gadai['bakihargajualan'] = $array_tebus_base['bakiupah'] : $gadai['bakihargajualan'] - $array_tebus_base['bakipinjaman'];
|
||||||
|
Transaction::on('mysql7')->create([
|
||||||
|
'trans_type' => $array_tebus_base['jenistebus'],
|
||||||
|
'norujukan' => $norujukan,
|
||||||
|
'nokp' => $gadai['nokp'],
|
||||||
|
'teller' => $array_tebus_base['teller'],
|
||||||
|
'kodcaw' => $kodcaw,
|
||||||
|
'duit_masuk' => $duit_masuk,
|
||||||
|
'created_at' => $current,
|
||||||
|
'bakiharga' => $baki_hargajualan,
|
||||||
|
'nowakil' => (int)$array_tebus_base['nowakil'],
|
||||||
|
'duitpelanggan' => isset($array_tebus_base['duitpelanggan']) ? $array_tebus_base['duitpelanggan'] : 0,
|
||||||
|
'bakipelanggan' => isset($array_tebus_base['bakipelanggan']) ? $array_tebus_base['bakipelanggan'] : 0
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in TebusBase: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createTransaction($cawangan,$kodcaw,$norujukan,$array_trans){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
/* Create Gadai */
|
||||||
|
$gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$current->toDateString())->orderBy('sirig', 'desc')->first();
|
||||||
|
$gadaiTransaction = optional($gadaiTransaction)->toArray();
|
||||||
|
|
||||||
|
$new_sirig = ($gadaiTransaction) ? $gadaiTransaction['sirig'] + 1 : 1;
|
||||||
|
$curent_year = substr($current->year,2,2);
|
||||||
|
$curent_month = sprintf("%02d", $current->month);
|
||||||
|
$current_day = sprintf("%02d", $current->day);
|
||||||
|
|
||||||
|
$new_transaction = sprintf("%04d",$new_sirig);
|
||||||
|
$new_sag_number = strtoupper($cawangan['kodcaw']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction;
|
||||||
|
|
||||||
|
try{
|
||||||
|
Gadai::on($cawangan['mysql'])->create([
|
||||||
|
'kodcaw'=>$kodcaw,
|
||||||
|
'norujukan' => $new_sag_number,
|
||||||
|
'nopelanggan' => $array_trans['nopelanggan'],
|
||||||
|
'nokp' => $array_trans['noic'],
|
||||||
|
'sirig' => $new_sirig,
|
||||||
|
't_gadai' => $current->toDateString(),
|
||||||
|
'sttebus' => '',
|
||||||
|
'masa' =>$current->toTimeString(),
|
||||||
|
'tagbaru' => 1
|
||||||
|
]);
|
||||||
|
|
||||||
|
$marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->get();
|
||||||
|
|
||||||
|
foreach($marhun as $marhunloop){
|
||||||
|
$karatbaru = (strpos($marhunloop['karat'], '.') !== false) ? str_replace('-','.',$marhunloop['karat']) : $marhunloop['karat'];
|
||||||
|
$karatbaru = $marhunloop['karat'];
|
||||||
|
$harga_emas = HargaEmas::on('mysql7')->select('harga')->where('karat','=',$karatbaru)->first();
|
||||||
|
|
||||||
|
if(isset($array_trans['jenisAT'])){
|
||||||
|
$harga = ($array_trans['jenisAT'] == 'hargalama') ? $marhunloop['harga'] : $harga_emas['harga'];
|
||||||
|
}else{
|
||||||
|
$harga = $harga_emas['harga'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$nilai_marhun = (floatval($harga) * floatval($marhunloop['berat']));
|
||||||
|
|
||||||
|
$marhunToCreate = [
|
||||||
|
'kodcaw'=> $kodcaw,
|
||||||
|
'norujukan'=> $new_sag_number,
|
||||||
|
't_gadai' => $current->toDateString(),
|
||||||
|
'bil' => $marhunloop['kuantiti'],
|
||||||
|
'marhun' => $marhunloop['marhun'],
|
||||||
|
'nota' => $marhunloop['nota'],
|
||||||
|
'tag_permata' => $marhunloop['tag_permata'] != null ? $marhunloop['tag_permata'] : 0,
|
||||||
|
'berat_batu_permata' => $marhunloop['berat_batu_permata'] != null ? $marhunloop['berat_batu_permata'] : '',
|
||||||
|
'karat' => $marhunloop['karat'],
|
||||||
|
'berat' => $marhunloop['berat'],
|
||||||
|
'harga' => $harga,
|
||||||
|
'n_marhun' => $nilai_marhun
|
||||||
|
];
|
||||||
|
|
||||||
|
if($marhunToCreate['berat_batu_permata'] == '') {
|
||||||
|
$marhunToCreate['berat_batu_permata'] = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
Marhun::on($cawangan['mysql'])->create($marhunToCreate);
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('n_marhun');
|
||||||
|
$total_bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('bil');
|
||||||
|
$total_berat_marhun = Marhun::on($cawangan['mysql'])->where('norujukan',$new_sag_number)->sum('berat');
|
||||||
|
|
||||||
|
$margin_pinjaman = ($array_trans['pinjamanbaru'] / $total_nilai_marhun);
|
||||||
|
|
||||||
|
$t_matang = Carbon::now();
|
||||||
|
$t_matang = $t_matang->addMonths(6)->subDays(1);
|
||||||
|
|
||||||
|
$t_kontrak = Carbon::now();
|
||||||
|
$t_kontrak = $t_kontrak->addMonths(12)->subDays(1);
|
||||||
|
|
||||||
|
$kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first();
|
||||||
|
|
||||||
|
$onepercentservices = new Calculation();
|
||||||
|
$keuntungan = $onepercentservices->kiraanKeuntunganSebenar($array_trans['pinjamanbaru'],$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjaman);
|
||||||
|
|
||||||
|
$upah1 = $onepercentservices->getRoundedMethod($keuntungan['keuntungan']);
|
||||||
|
$upah6 = $onepercentservices->getRoundedMethod($upah1 * 6);
|
||||||
|
$upah12 = $onepercentservices->getRoundedMethod($upah1 * 12);
|
||||||
|
$ujrah = $onepercentservices->getRoundedMethod($keuntungan['ujrah']);
|
||||||
|
$onepercent = $onepercentservices->getRoundedMethod($keuntungan['onepercent']);
|
||||||
|
$akrual_ujrah = $onepercentservices->getRoundedMethod($keuntungan['ujrah'] * 0.5);
|
||||||
|
$akrual_onepercent = $onepercentservices->getRoundedMethod($keuntungan['onepercent'] * 0.5);
|
||||||
|
|
||||||
|
$hargajualan = $array_trans['pinjamanbaru'] + $upah12;
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])
|
||||||
|
->where('norujukan','=',$new_sag_number)
|
||||||
|
->update(array(
|
||||||
|
'nilaimarhun' => $total_nilai_marhun,
|
||||||
|
'berat'=> $total_berat_marhun,
|
||||||
|
'pinjaman' => $array_trans['pinjamanbaru'],
|
||||||
|
'kadarupah' => $kadar_raw['kadarujrah'],
|
||||||
|
'marhun' => $array_trans['marhun'],
|
||||||
|
'percentpinj' => $margin_pinjaman,
|
||||||
|
'teller' => $array_trans['teller'],
|
||||||
|
'bakipjm' => $array_trans['pinjamanbaru'],
|
||||||
|
'bakiupah' => $upah6,
|
||||||
|
'jbg' => 0.5,
|
||||||
|
't_update' => $current->toDateString(),
|
||||||
|
'cetak' => 0,
|
||||||
|
'upah12' => $upah12,
|
||||||
|
'hargajualan' => $hargajualan,
|
||||||
|
'bakihargajualan' => $hargajualan,
|
||||||
|
'tagserah' => 0,
|
||||||
|
't_matang' => $t_matang,
|
||||||
|
't_matang1' => $t_kontrak,
|
||||||
|
'tempoh' => 0.5,
|
||||||
|
'kuantiti' => $total_bil_marhun,
|
||||||
|
'tagkomuditi' => 0,
|
||||||
|
'upahdibayar' => 0.00,
|
||||||
|
'tempohbayar' => 0.00,
|
||||||
|
'lelong_tawarruq' => 1,
|
||||||
|
'kadarujrah' => $kadar_raw['kadarujrah'],
|
||||||
|
'ujrah' => $ujrah,
|
||||||
|
'onepercent' => $onepercent,
|
||||||
|
'margin_semasa' => $margin_pinjaman,
|
||||||
|
'tagbaru' => 1,
|
||||||
|
'tunggakanujrah' => $akrual_ujrah,
|
||||||
|
'tunggakanonepercent' => $akrual_onepercent,
|
||||||
|
'historygadaian' => $norujukan,
|
||||||
|
'tag_tebus' => $array_trans['jenistebus'],
|
||||||
|
));
|
||||||
|
|
||||||
|
Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
|
||||||
|
'sttebus' => "T",
|
||||||
|
't_update' => $current->toDateString(),
|
||||||
|
));
|
||||||
|
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in Transaction: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createTransactionBase($norujukan,$kodcaw,$array_trans_base){
|
||||||
|
$current = Carbon::now();
|
||||||
|
|
||||||
|
$komuditi_current = KomuditiPurchase::on('mysql7')->where('date_purchase','=',$current->toDateString())->orderBy('created_at','desc')->first();
|
||||||
|
|
||||||
|
$unit_current = isset($komuditi_current['unit_komuditi']) ? $komuditi_current['unit_komuditi']: 0;
|
||||||
|
|
||||||
|
try{
|
||||||
|
$update_unit = $unit_current - $array_trans_base['pinjamanbaru'];
|
||||||
|
|
||||||
|
KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
|
||||||
|
'unit_komuditi' => $update_unit
|
||||||
|
]);
|
||||||
|
|
||||||
|
KomuditiTransaksi::on('mysql7')->create([
|
||||||
|
'unit_komuditi' => $update_unit,
|
||||||
|
'nosijil'=>$komuditi_current['no_sijil'],
|
||||||
|
'norujukan' => $norujukan,
|
||||||
|
'kodcaw' => $kodcaw,
|
||||||
|
'teller' => $array_trans_base['teller'],
|
||||||
|
'masa' => $current->toTimeString(),
|
||||||
|
'tarikh' => $current->toDateString()
|
||||||
|
]);
|
||||||
|
}catch(\Exception $e){
|
||||||
|
throw new \Exception("Error in TransactionBase: " . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -151,7 +151,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
|||||||
$router->get('tebus/norujukan/{kodcaw}/{norujukan}',['uses'=>'TebusController@showOneTebusbyRujukanAndCawangan']);
|
$router->get('tebus/norujukan/{kodcaw}/{norujukan}',['uses'=>'TebusController@showOneTebusbyRujukanAndCawangan']);
|
||||||
$router->put('updateautotawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdateAutoTawarruq']);
|
$router->put('updateautotawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdateAutoTawarruq']);
|
||||||
$router->get('listpenebusanhistory/{kodcaw}',['uses'=>'TebusController@listhistorypenebusan']);
|
$router->get('listpenebusanhistory/{kodcaw}',['uses'=>'TebusController@listhistorypenebusan']);
|
||||||
|
$router->put('updatetambahpinjaman/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdateTambahPinjaman']);
|
||||||
//API FARIS
|
//API FARIS
|
||||||
$router->put('tebus/serah_marhun_teller/{kodcaw}/{norujukan}',['uses'=>'GadaiController@barcodescanTebus']);
|
$router->put('tebus/serah_marhun_teller/{kodcaw}/{norujukan}',['uses'=>'GadaiController@barcodescanTebus']);
|
||||||
// $router->get('tebus_serahan/{kodcaw}',['uses'=>'TebusController@SerahMarhunTeller']);
|
// $router->get('tebus_serahan/{kodcaw}',['uses'=>'TebusController@SerahMarhunTeller']);
|
||||||
|
|||||||
+42
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Laravel\Lumen\Testing\TestCase as BaseTestCase;
|
use Laravel\Lumen\Testing\TestCase as BaseTestCase;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use PHPUnit\Framework\Assert as PHPUnit;
|
||||||
abstract class TestCase extends BaseTestCase
|
abstract class TestCase extends BaseTestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@@ -13,4 +14,44 @@ abstract class TestCase extends BaseTestCase
|
|||||||
{
|
{
|
||||||
return require __DIR__.'/../bootstrap/app.php';
|
return require __DIR__.'/../bootstrap/app.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function assertDatabaseHasThroughNorujukan(string $table, array $data, string $connection = null): void
|
||||||
|
{
|
||||||
|
$query = DB::connection($connection)->table($table);
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
$query->where($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$record = $query->first();
|
||||||
|
|
||||||
|
if (!$record) {
|
||||||
|
// Check if a record exists but doesn't match the expected attributes
|
||||||
|
$actualRecord = DB::connection($connection)->table($table)->where('norujukan', $data['norujukan'])->first();
|
||||||
|
|
||||||
|
if ($actualRecord) {
|
||||||
|
$mismatchedColumns = [];
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
if ($actualRecord->$key !== $value) {
|
||||||
|
$expectedValue = stripslashes($value); // Remove backslashes from expected
|
||||||
|
$mismatchedColumns[$key] = [
|
||||||
|
'expected' => $expectedValue,
|
||||||
|
'actual' => $actualRecord->$key,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PHPUnit::fail(
|
||||||
|
"A record exists in the table [{$table}] but does not match the expected attributes. " .
|
||||||
|
"Mismatched columns: " . json_encode($mismatchedColumns)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
PHPUnit::fail(
|
||||||
|
"Failed asserting that a record exists in the table [{$table}] with the attributes " . json_encode($data)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
PHPUnit::assertNotNull($record, "Record exists and matches the expected attributes.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Traits;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
trait DatabaseTransactions
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Database connections to use for transactions.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected array $connections = ['mysql','mysql7'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Begin transactions on all specified database connections.
|
||||||
|
*/
|
||||||
|
protected function setUp(): void
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
foreach ($this->connections as $connection) {
|
||||||
|
DB::connection($connection)->beginTransaction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rollback transactions on all specified database connections.
|
||||||
|
*/
|
||||||
|
protected function tearDown(): void
|
||||||
|
{
|
||||||
|
foreach ($this->connections as $connection) {
|
||||||
|
DB::connection($connection)->rollBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::tearDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the database connections for transactions.
|
||||||
|
*
|
||||||
|
* @param string|array $connections
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function setTransactionConnections(array $connections): void
|
||||||
|
{
|
||||||
|
$this->connections = $connections;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,228 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Tests\Traits\DatabaseTransactions;
|
||||||
|
use App\Cawangan;
|
||||||
|
use App\Gadai;
|
||||||
|
use App\Support\v2\Penebusan as V2Penebusan;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class TransactionTest extends TestCase
|
||||||
|
{
|
||||||
|
use DatabaseTransactions;
|
||||||
|
|
||||||
|
public function testTransactionAT(){
|
||||||
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw', 'KB2')->first();
|
||||||
|
$this->setTransactionConnections([$cawangan['mysql'], 'mysql7']);
|
||||||
|
$current = new Carbon();
|
||||||
|
$array_test = [
|
||||||
|
'norujukan' => 'KB2240327-0009',
|
||||||
|
"nopelanggan" => "M03-00133879",
|
||||||
|
"jenistebus" => "AT",
|
||||||
|
"jbg" => 6.5,
|
||||||
|
"kadarupah" => 0.56,
|
||||||
|
"pinjaman_lama" => 2000,
|
||||||
|
"pinjaman" => 2000,
|
||||||
|
"ansuran" => 0,
|
||||||
|
"addpinjaman" => 0,
|
||||||
|
"bakipinjaman" => 2221,
|
||||||
|
"bakiupah" => 221,
|
||||||
|
"historygadaian" => "KB2240327-0009",
|
||||||
|
"marhun" => "1 R/L,",
|
||||||
|
"kuantiti_marhun" => 1,
|
||||||
|
"total_berat" => 8.5,
|
||||||
|
"kadarkeuntungan" => 0.56,
|
||||||
|
"noic" => "980412035872",
|
||||||
|
"jenisbayarantebus" => "nottawarruq",
|
||||||
|
"teller" => "MOHD KHALID ABDUL RAHMAN",
|
||||||
|
"jeniskeuntungan" => "onepercent",
|
||||||
|
"nilai_marhun" => 2943.21,
|
||||||
|
"jenisAT" => "none",
|
||||||
|
"totalbayaran" => 221,
|
||||||
|
"bayaran" => 300,
|
||||||
|
"bakipelanggan" => 79,
|
||||||
|
"nowakil" => 0,
|
||||||
|
"total_nilai_marhun" => 3171.265,
|
||||||
|
"marhun_detail" => "1 R/L,",
|
||||||
|
];
|
||||||
|
|
||||||
|
// Create a mock request
|
||||||
|
$request = new Request($array_test);
|
||||||
|
|
||||||
|
$penebusan_services = new V2Penebusan('KB2',$cawangan);
|
||||||
|
$response = $penebusan_services->transaksiPembiayaanSemula('KB2','KB2240327-0009',$request);
|
||||||
|
$responseArray = json_decode($response->getContent(), true);
|
||||||
|
$this->assertIsArray($responseArray, 'Response is not an array');
|
||||||
|
$this->assertEquals('success', $responseArray['result'], 'Result should be success');
|
||||||
|
$this->assertEquals(1, $responseArray['data'], 'Data should be 1');
|
||||||
|
|
||||||
|
/* Tebus Assert */
|
||||||
|
$this->assertDatabaseHasThroughNorujukan('tebus', [
|
||||||
|
'kodcaw'=> "KB2",
|
||||||
|
'norujukan'=> "KB2240327-0009",
|
||||||
|
'nopelanggan' => "M03-00133879",
|
||||||
|
'jenisbyr' => "TN",
|
||||||
|
'jenistebus' => "A",
|
||||||
|
'glcode' => "0",
|
||||||
|
't_tebus' => $current->toDateString(),
|
||||||
|
'jbg' => "6.50",
|
||||||
|
'kadarupah' => "0.56",
|
||||||
|
'nilaimarhun' => "2943.21",
|
||||||
|
'pinjaman' => "2000.00",
|
||||||
|
'ansuran' => "0.00",
|
||||||
|
'addpinjaman' => 0,
|
||||||
|
'bakipjm' => "2221",
|
||||||
|
'bakiupah' => "221",
|
||||||
|
'terima' => "*",
|
||||||
|
'kodgl' => "0",
|
||||||
|
'nowakil' => 0,
|
||||||
|
'rebate' => 0,
|
||||||
|
'marhuntebus' => "1 R/L,",
|
||||||
|
'historygadaian' => "KB2240327-0009",
|
||||||
|
'tarikhbyrn' => $current->toDateString(),
|
||||||
|
'teller' => "MOHD KHALID ABDUL RAHMAN",
|
||||||
|
'ujrah' => 0,
|
||||||
|
'onepercent' => 0,
|
||||||
|
], $cawangan['mysql']);
|
||||||
|
|
||||||
|
|
||||||
|
$this->assertDatabaseHasThroughNorujukan('gadai', [
|
||||||
|
'norujukan' => 'KB2240327-0009',
|
||||||
|
'sttebus' => 'T'
|
||||||
|
], $cawangan['mysql']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testTransactionP(){
|
||||||
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw', 'KB2')->first();
|
||||||
|
$this->setTransactionConnections([$cawangan['mysql'], 'mysql7']);
|
||||||
|
$current = new Carbon();
|
||||||
|
$array_test = [
|
||||||
|
'norujukan' => 'KB2240327-0009',
|
||||||
|
'nopelanggan' => 'M03-00133879',
|
||||||
|
'jenistebus' => 'P',
|
||||||
|
'jbg' => 6.5,
|
||||||
|
'kadarupah' => 0.56,
|
||||||
|
'pinjaman_lama' => 2000,
|
||||||
|
'pinjaman' => 2010,
|
||||||
|
'ansuran' => 0,
|
||||||
|
'addpinjaman' => 10,
|
||||||
|
'bakipinjaman' => 2221,
|
||||||
|
'bakiupah' => 221,
|
||||||
|
'history_gadaian' => 'KB2240327-0009',
|
||||||
|
'marhun' => '1 R/L,',
|
||||||
|
'kuantiti_marhun' => 1,
|
||||||
|
'total_berat' => 8.5,
|
||||||
|
'kadarkeuntungan' => 0.56,
|
||||||
|
"noic" => "980412035872",
|
||||||
|
'jenisbayarantebus' => 'tawarruq',
|
||||||
|
"teller" => "MOHD KHALID ABDUL RAHMAN",
|
||||||
|
'jeniskeuntungan' => 'onepercent',
|
||||||
|
'nilai_marhun' => 3171.265,
|
||||||
|
// 'jenisAT' => 'Tiada',
|
||||||
|
// 'totalbayaran' => 'Tiada',
|
||||||
|
'bayaran' => 222,
|
||||||
|
'bakipelanggan' => 1,
|
||||||
|
'nowakil' => 0, //Sebenar Tiada Kena Add dalam series
|
||||||
|
// 'total_nilai_marhun' => 'Tiada',
|
||||||
|
'keuntungan_6bln' => 6753.6,
|
||||||
|
'keuntungan_sebulan' => 1125.6,
|
||||||
|
// 'marhun_detail' => 'Tiada',
|
||||||
|
];
|
||||||
|
|
||||||
|
// Create a mock request
|
||||||
|
$request = new Request($array_test);
|
||||||
|
|
||||||
|
$penebusan_services = new V2Penebusan('KB2',$cawangan);
|
||||||
|
$response = $penebusan_services->transaksiTambahPembiayaan('KB2','KB2240327-0009',$request);
|
||||||
|
|
||||||
|
$responseArray = json_decode($response->getContent(), true);
|
||||||
|
$this->assertIsArray($responseArray, 'Response is not an array');
|
||||||
|
$this->assertEquals('success', $responseArray['result'], 'Result should be success');
|
||||||
|
$this->assertEquals(1, $responseArray['data'], 'Data should be 1');
|
||||||
|
|
||||||
|
/* Tebus Assert */
|
||||||
|
$this->assertDatabaseHasThroughNorujukan('tebus', [
|
||||||
|
'kodcaw'=> "KB2",
|
||||||
|
'norujukan'=> "KB2240327-0009",
|
||||||
|
'nopelanggan' => "M03-00133879",
|
||||||
|
'jenisbyr' => "TN",
|
||||||
|
'jenistebus' => "P",
|
||||||
|
'glcode' => "0",
|
||||||
|
't_tebus' => $current->toDateString(),
|
||||||
|
'jbg' => "6.50",
|
||||||
|
'kadarupah' => "0.56",
|
||||||
|
'nilaimarhun' => "2943.21",
|
||||||
|
'pinjaman' => "2000.00",
|
||||||
|
'ansuran' => "0.00",
|
||||||
|
'addpinjaman' => "10.00",
|
||||||
|
'bakipjm' => "2221.00",
|
||||||
|
'bakiupah' => "221.00",
|
||||||
|
'terima' => "*",
|
||||||
|
'kodgl' => "0",
|
||||||
|
'nowakil' => 0,
|
||||||
|
'rebate' => "0.00",
|
||||||
|
'marhuntebus' => "1 R/L,",
|
||||||
|
'historygadaian' => "KB2240327-0009",
|
||||||
|
'tarikhbyrn' => $current->toDateString(),
|
||||||
|
'teller' => "MOHD KHALID ABDUL RAHMAN",
|
||||||
|
'ujrah' => "91.00",
|
||||||
|
'onepercent' => "130.00",
|
||||||
|
], $cawangan['mysql']);
|
||||||
|
|
||||||
|
/* Gadai Assert */
|
||||||
|
|
||||||
|
/* Create Gadai */
|
||||||
|
$gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$current->toDateString())->orderBy('sirig', 'desc')->first();
|
||||||
|
$gadaiTransaction = optional($gadaiTransaction)->toArray();
|
||||||
|
|
||||||
|
/* Gadai Baru */
|
||||||
|
$this->assertDatabaseHasThroughNorujukan('gadai',[
|
||||||
|
'kodcaw'=>'KB2',
|
||||||
|
'norujukan' => $gadaiTransaction['norujukan'],
|
||||||
|
'nopelanggan' => "M03-00133879",
|
||||||
|
"nokp" => "980412035872",
|
||||||
|
'sirig' => $gadaiTransaction['sirig'],
|
||||||
|
't_gadai' => $current->toDateString(),
|
||||||
|
'sttebus' => '',
|
||||||
|
'masa' =>$current->toTimeString(),
|
||||||
|
'tagbaru' => 1,
|
||||||
|
'nilaimarhun' => "3171.27",
|
||||||
|
'berat'=> "0.00",
|
||||||
|
'pinjaman' => "2010.00",
|
||||||
|
'kadarupah' => "0.56",
|
||||||
|
// 'marhun' => "1 R\/L,",
|
||||||
|
'percentpinj' => "0.63",
|
||||||
|
'teller' => "MOHD KHALID ABDUL RAHMAN",
|
||||||
|
'bakipjm' => "2010.00",
|
||||||
|
'bakiupah' => "121.50",
|
||||||
|
'jbg' => "0.50",
|
||||||
|
't_update' => $current->toDateString(),
|
||||||
|
'cetak' => 0,
|
||||||
|
'upah12' => "243.00",
|
||||||
|
'hargajualan' => "2253.00",
|
||||||
|
'bakihargajualan' => "2253.00",
|
||||||
|
'tagserah' => 0,
|
||||||
|
't_matang' => "2025-05-24",
|
||||||
|
't_matang1' => "2025-11-24",
|
||||||
|
'tempoh' => "0.50",
|
||||||
|
'kuantiti' => 0,
|
||||||
|
'tagkomuditi' => 0,
|
||||||
|
'upahdibayar' => "0.00",
|
||||||
|
'tempohbayar' => 0.00,
|
||||||
|
'lelong_tawarruq' => 1,
|
||||||
|
'kadarujrah' => "0.56",
|
||||||
|
'ujrah' => "0.15",
|
||||||
|
'onepercent' => "20.10",
|
||||||
|
'margin_semasa' => "0.63",
|
||||||
|
'tagbaru' => 1,
|
||||||
|
'tunggakanujrah' => "0.05",
|
||||||
|
'tunggakanonepercent' => "10.05",
|
||||||
|
], $cawangan['mysql']);
|
||||||
|
|
||||||
|
$this->assertDatabaseHasThroughNorujukan('marhun',[
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user