diff --git a/app/Http/Controllers/TacExpressPaymentController.php b/app/Http/Controllers/TacExpressPaymentController.php index 4e9ed98..5e5cf7d 100644 --- a/app/Http/Controllers/TacExpressPaymentController.php +++ b/app/Http/Controllers/TacExpressPaymentController.php @@ -21,9 +21,9 @@ class TacExpressPaymentController extends Controller 'expired_at' => $expired_at ]); - // $mobileno = '6'.$request->mobileno; - $mobileno = '60189025461'; - $messages = 'AR-RAHN PKB ' . $request->cawangan . ' : TAC: ' . $request->otp_token . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; + $mobileno = '6'.$request->mobileno; + // $mobileno = '60189025461'; + $messages = 'SPARE : SMS-OTP '. $request->otp_token . ' for one time usage on ' . $expired_at . '. Call AR-RAHN CARELINE CENTRE 1300-22-4343 if not request'; $status = Http::get('http://gateway.onewaysms.com.au:10001/api.aspx',[ 'apiusername' => 'APIQ4LP5EMKXM', diff --git a/app/Http/Controllers/TransactionOnlineController.php b/app/Http/Controllers/TransactionOnlineController.php index 93e1d95..088a43e 100644 --- a/app/Http/Controllers/TransactionOnlineController.php +++ b/app/Http/Controllers/TransactionOnlineController.php @@ -3,6 +3,10 @@ namespace App\Http\Controllers; use App\TransactionOnline; +use App\Advansur; +use App\Transaction; +use App\TransaksiKeuntungan; +use App\Gadai; use Illuminate\Http\Request; use Carbon\Carbon; @@ -50,4 +54,153 @@ class TransactionOnlineController extends Controller return response()->json($transaction,200); } + + public function updateTransactionOnline(){ + $transactions = TransactionOnline::on('mysql7')->where([['status','PAID'],['update_status',0]])->get(); + + foreach($transactions as $index=>$transaction){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$transaction['kodcaw']) + ->first(); + $gadai_data = Gadai::on($cawangan['mysql'])->where([['norujukan',$transaction['norujukan']],['nokp',$transaction['nokp']]])->first(); + + if($gadai_data['hargajualan'] > 0){ + $this->updateGadaiMarhunKaunter($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']); + }else{ + $this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']); + } + + TransactionOnline::on('mysql7')->where('norujukan',$transaction['norujukan'])->update([ + 'update_status' => 1 + ]); + } + + return response()->json($transaction); + } + + public function kiraupahTawarruq($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar']; + + $upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']); + + $upah_semasa_round = number_format($upahsemasa_raw,2); + $upah_semasa = (float)substr($upah_semasa_round, 0, -1); + + return $upah_semasa; + } + + public function kiraUpahRebet($kodcaw,$norujukan){ + $cawangan = Cawangan::on('mysql7') + ->where('kodcaw','=',$kodcaw) + ->first(); + + $gadai_data = Gadai::on($cawangan['mysql']) + ->where('norujukan','=',$norujukan) + ->first(); + + $bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar']; + + $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']); + + $upah_rebet_round = number_format($upahrebet_raw,2); + $upah_rebet = (float)substr($upah_rebet_round, 0, -1); + + return $upah_rebet; + } + + public function updateGadaiMarhunKaunter($kodcaw,$norujukan,$bayaran,$paid_at){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); + + $upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan); + $upahrebet = $this->kiraUpahRebet($kodcaw,$norujukan); + + $total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk'); + + $total_bayaran_semasa = $total_bayaran_prev + $bayaran; + + if($total_bayaran_semasa >= $gadai['bakiupah']){ + $lelong_tawarruq = 0; + }else{ + $lelong_tawarruq = 1; + } + + $baki_hargajualan = $gadai['bakihargajualan'] - $bayaran; + + $baki_bayaran = $bayaran - $upahsemasa; + + $baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran; + + $transaction = Transaction::on('mysql7')->create([ + 'trans_type' => 'A', + 'norujukan' => $norujukan, + 'nokp' => $gadai['nokp'], + 'teller' => 'Online', + 'kodcaw' => $kodcaw, + 'duit_masuk' => $bayaran, + 'created_at' => $paid_at, + 'bakiharga' => $baki_hargajualan, + ]); + + $transaction_upah = TransaksiKeuntungan::on('mysql7')->create([ + 'norujukan' => $norujukan, + 'bayaran_keuntungan' => $upahsemasa, + 'bayaran_pembiayaan' => $baki_bayaran, + 'keuntungan_rebet'=> $upahrebet, + 'tarikh_bayaran'=> $paid_at, + 'kodcaw'=> $kodcaw + ]); + + $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( + 'bakipjm' => $baki_pinjaman, + 'jbg' => 0, + 't_update' => $paid_at->toDateString(), + 'bakihargajualan' => $baki_hargajualan, + 'tempohbayar' => $gadai['tempoh'], + 'lelong_tawarruq' => $lelong_tawarruq + )); + return response()->json($update_gadai, 200); + } + + public function createAdvansur($kodcaw,$norujukan,$bayaran,$paid_at){ + $current = Carbon::now(); + $current = new Carbon(); + + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + $gadai = Gadai::on($cawangan['mysql'])->where('norujukan',$norujukan)->first(); + + $create_advansur = Advansur::on($cawangan['mysql'])->create([ + 'tarikh'=> $paid_at->toDateString(), + 'noresit'=> 0, + 'norujukan' => $norujukan, + 'nopelanggan' => $gadai['nopelanggan'], + 'nilaimarhun' => $gadai['nilaimarhun'], + 'pinjaman' => $gadai['pinjaman'], + 'kadarupah' => $gadai['kadarupah'], + 'glcode' => "1000/010", + 'upahsebenar' => $bayaran, + 'upahDibayar' => $bayaran, + 'teller' => 'Online', + 'prkod' => $gadai['prkod'], + 'jbg' => $gadai['tempoh'], + 'nowakil' => 0, + 'hubungan' => 0, + 'status' => 0, + 'historygadaian' => $norujukan + ]); + + return response()->json($create_advansur ,201); + } } diff --git a/app/TransactionOnline.php b/app/TransactionOnline.php index 9d7727c..61f3dab 100644 --- a/app/TransactionOnline.php +++ b/app/TransactionOnline.php @@ -15,7 +15,7 @@ class TransactionOnline extends Model * @var array */ protected $fillable = [ - 'nokp','reference_no','nosiri','total_payment','tarikh','masa','status','billplz_id','kodcaw','norujukan','paid_at','customer_name' + 'nokp','reference_no','nosiri','total_payment','tarikh','masa','status','billplz_id','kodcaw','norujukan','paid_at','customer_name','update_status','update_serahan' ]; /** diff --git a/routes/web.php b/routes/web.php index 663e7b6..ae1e4b3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -191,6 +191,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->post('online/transaction',['uses'=>'TransactionOnlineController@create']); $router->put('online/transaction',['uses'=>'TransactionOnlineController@updateStatus']); $router->get('transaction/online/express',['uses'=>'TransactionOnlineController@getTransactionOnline']); + $router->get('transaction/online/update',['uses'=>'TransactionOnlineController@updateTransactionOnline']); //ANSURAN UPAH API