added test for tebus AT and P and added P
This commit is contained in:
@@ -598,7 +598,7 @@ class LelongController extends Controller
|
||||
|
||||
if($cawangan['tagarrahnbid'] == 1){
|
||||
if(env('APP_ENV') != 'production'){
|
||||
$link = 'http://adminbid.arrahn/api/portalApi';
|
||||
$link = 'http://niklah.arrahn.com.my/api/portalApi';
|
||||
}else{
|
||||
$link = 'http://adminbid.arrahn/api/portalApi';
|
||||
}
|
||||
|
||||
@@ -182,6 +182,13 @@ class TebusController extends Controller
|
||||
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){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
@@ -2000,14 +2007,4 @@ class TebusController extends Controller
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusTransaksiUpdate($kodcaw,$norujukan,Request $request){
|
||||
$master = new MasterServices($kodcaw);
|
||||
$response = $master->tebusTransaksiUpdate($kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -223,6 +223,12 @@ class MasterServices
|
||||
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){
|
||||
$response = $this->engine->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||
|
||||
@@ -247,19 +253,6 @@ class MasterServices
|
||||
}
|
||||
}
|
||||
|
||||
public function tebusTransaksiUpdate($kodcaw,$norujukan,HttpRequest $request){
|
||||
if($request->jeniskeuntungan == 'onepercent'){
|
||||
$onepercent = new OnePercentEngine($this->cawangan);
|
||||
$response = $onepercent->tebusTransaksiUpdate($kodcaw,$norujukan,$request);
|
||||
|
||||
}else{
|
||||
$tawarruq = new TawarruqEngine($this->cawangan);
|
||||
$response = $tawarruq->tebusTransaksiUpdate($kodcaw,$norujukan,$request);
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/* End Penebusan */
|
||||
|
||||
public function test(){
|
||||
|
||||
@@ -186,6 +186,13 @@ class OnePercent extends MasterServices
|
||||
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;
|
||||
}
|
||||
|
||||
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
|
||||
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||
$response = $tebus->kiraupahUjrahOnePercent($this->kodcaw,$norujukan);
|
||||
|
||||
@@ -947,21 +947,14 @@ class Penebusan
|
||||
$array_trans_base = $request->only(['pinjaman','teller']);
|
||||
|
||||
try{
|
||||
$failover_response = $this->handleFailOverTransaction($kodcaw,'create',$norujukan,$request->teller);
|
||||
// DB::connection($cawangan['mysql'])->transaction(function () use ($failover_response,$kodcaw,$norujukan,$gadai,$cawangan,$array_tebus,$array_trans) {
|
||||
|
||||
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||
$this->saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus);
|
||||
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans,$failover_response['id']);
|
||||
// });
|
||||
$this->createTransaction($cawangan,$kodcaw,$norujukan,$array_trans);
|
||||
|
||||
DB::connection('mysql7')->beginTransaction();
|
||||
// DB::connection('mysql7')->transaction(function () use ($kodcaw,$norujukan,$gadai,$array_tebus_base,$array_trans_base) {
|
||||
$this->saveTebusBase($kodcaw,$norujukan,$gadai,$array_tebus_base);
|
||||
$this->createTransactionBase($norujukan,$kodcaw,$array_trans_base);
|
||||
// });
|
||||
|
||||
$this->handleFailOverTransaction($kodcaw,'done',$norujukan,$request->teller,$failover_response['id']);
|
||||
|
||||
$array_response = [
|
||||
'result' => 'success',
|
||||
'data' => 1
|
||||
@@ -973,10 +966,6 @@ class Penebusan
|
||||
return response()->json($array_response);
|
||||
|
||||
}catch(\Exception $e){
|
||||
if (isset($failover_response['id'])) {
|
||||
$this->handleFailOverTransaction($kodcaw,'fail',$norujukan,$request->teller,$failover_response['id'],$e->getCode(),$e->getMessage());
|
||||
}
|
||||
|
||||
DB::connection($cawangan['mysql'])->rollBack();
|
||||
DB::connection('mysql7')->rollBack();
|
||||
$array_response = [
|
||||
@@ -996,7 +985,7 @@ class Penebusan
|
||||
|
||||
}
|
||||
|
||||
private function transaksiTambahPembiayaan($kodcaw,$norujukan,HttpRequest $request){
|
||||
public function transaksiTambahPembiayaan($kodcaw,$norujukan,HttpRequest $request){
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
@@ -1004,6 +993,11 @@ class Penebusan
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||
|
||||
$array_tebus = $request->only(['jeniskeuntungan', 'nopelanggan','jenistebus','addpinjaman','nowakil','marhun','teller']);
|
||||
$array_trans = $request->only(['nopelanggan', 'noic','pinjaman','marhun','teller','jenistebus']);
|
||||
$array_tebus_base = $request->only(['totalbayaran', 'bakiupah','jeniskeuntungan','bakipinjaman','jenistebus','teller','nowakil','duitpelanggan']);
|
||||
$array_trans_base = $request->only(['pinjaman','teller']);
|
||||
|
||||
try{
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||
@@ -1011,8 +1005,40 @@ class Penebusan
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1038,17 +1064,13 @@ class Penebusan
|
||||
|
||||
private function saveTebus($kodcaw,$norujukan,$gadai,$cawangan,$array_tebus){
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
/*
|
||||
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'];
|
||||
@@ -1088,7 +1110,12 @@ class Penebusan
|
||||
|
||||
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;
|
||||
|
||||
@@ -1122,14 +1149,22 @@ class Penebusan
|
||||
'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']),
|
||||
]);
|
||||
|
||||
$baki_hargajualan = $gadai['bakihargajualan'] - $array_tebus_base['bakipinjaman'];
|
||||
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'],
|
||||
'duit_masuk' => $duit_masuk,
|
||||
'created_at' => $current,
|
||||
'bakiharga' => $baki_hargajualan,
|
||||
'nowakil' => (int)$array_tebus_base['nowakil'],
|
||||
@@ -1141,7 +1176,7 @@ class Penebusan
|
||||
}
|
||||
}
|
||||
|
||||
private function createTransaction($cawangan,$kodcaw,$norujukan,$array_trans,$fail_id = 0){
|
||||
private function createTransaction($cawangan,$kodcaw,$norujukan,$array_trans){
|
||||
$current = Carbon::now();
|
||||
|
||||
/* Create Gadai */
|
||||
@@ -1173,7 +1208,11 @@ class Penebusan
|
||||
$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']));
|
||||
|
||||
@@ -1269,8 +1308,6 @@ class Penebusan
|
||||
'tag_tebus' => $array_trans['jenistebus'],
|
||||
));
|
||||
|
||||
$this->handleFailOverTransaction($kodcaw,'update',$new_sag_number,$array_trans['teller'],$fail_id);
|
||||
|
||||
}catch(\Exception $e){
|
||||
throw new \Exception("Error in Transaction: " . $e->getMessage());
|
||||
}
|
||||
@@ -1283,7 +1320,6 @@ class Penebusan
|
||||
$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;
|
||||
throw new \Exception('testis');
|
||||
|
||||
try{
|
||||
$update_unit = $unit_current - $array_trans_base['pinjaman'];
|
||||
@@ -1306,53 +1342,5 @@ class Penebusan
|
||||
}
|
||||
}
|
||||
|
||||
private function handleFailOverTransaction($kodcaw,$status,$norujukan,$teller,$fail_id = 0,$code_error = 500,$error_message = ''){
|
||||
$current = Carbon::now();
|
||||
|
||||
if($status == 'create'){
|
||||
return FailoverTransaction::on('mysql7')->create([
|
||||
'kodcaw' => $kodcaw,
|
||||
'teller' => $teller,
|
||||
'old_norujukan' => $norujukan,
|
||||
'new_norujukan' => null,
|
||||
'db_caw' => false,
|
||||
'db_online' => false,
|
||||
'status' => 'pending'
|
||||
]);
|
||||
}else if($status == 'update'){
|
||||
return FailoverTransaction::on('mysql7')->where('id',$fail_id)->update([
|
||||
'new_norujukan' => $norujukan,
|
||||
'db_caw' => true,
|
||||
'db_online' => false,
|
||||
'status' => 'pending'
|
||||
]);
|
||||
|
||||
}else if($status == 'done'){
|
||||
return FailoverTransaction::on('mysql7')->where('id',$fail_id)->where('old_norujukan',$norujukan)->update([
|
||||
'db_caw' => true,
|
||||
'db_online' => true,
|
||||
'status' => 'resolved',
|
||||
'resolve_time' => $current
|
||||
]);
|
||||
}else{
|
||||
FailoverTransaction::on('mysql7')->where('id',$fail_id)->where('old_norujukan',$norujukan)->update([
|
||||
'old_norujukan' => $norujukan,
|
||||
'status' => 'failed',
|
||||
]);
|
||||
|
||||
FailoverTransactionFailed::on('mysql7')->create([
|
||||
'original_id' => $fail_id,
|
||||
'kodcaw' => $kodcaw,
|
||||
'norujukan' => $norujukan,
|
||||
'code_error' => $code_error,
|
||||
'error_message' => $error_message,
|
||||
]);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+1
-1
@@ -150,7 +150,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
$router->put('updatetebus/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdate']);
|
||||
$router->put('updateautotawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdateAutoTawarruq']);
|
||||
$router->get('listpenebusanhistory/{kodcaw}',['uses'=>'TebusController@listhistorypenebusan']);
|
||||
$router->post('updatetransaksi/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusTransaksiUpdate']);
|
||||
$router->put('updatetambahpinjaman/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdateTambahPinjaman']);
|
||||
//API FARIS
|
||||
$router->put('tebus/serah_marhun_teller/{kodcaw}/{norujukan}',['uses'=>'GadaiController@barcodescanTebus']);
|
||||
// $router->get('tebus_serahan/{kodcaw}',['uses'=>'TebusController@SerahMarhunTeller']);
|
||||
|
||||
+42
-1
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Laravel\Lumen\Testing\TestCase as BaseTestCase;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use PHPUnit\Framework\Assert as PHPUnit;
|
||||
abstract class TestCase extends BaseTestCase
|
||||
{
|
||||
/**
|
||||
@@ -13,4 +14,44 @@ abstract class TestCase extends BaseTestCase
|
||||
{
|
||||
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