Merged release/staging into hotfix/tunai-add-timestamp
This commit is contained in:
@@ -0,0 +1,272 @@
|
||||
APP_NAME=Lumen
|
||||
APP_ENV=local
|
||||
APP_KEY=WbPGkYNmXZ6ZQplGlvl0iZ7zyW1b09xa
|
||||
APP_DEBUG=true
|
||||
APP_URL=https://api.arrahn.com.my
|
||||
APP_TIMEZONE=Asia/Kuala_Lumpur
|
||||
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
LOG_SLACK_WEBHOOK_URL=
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=database_zone1
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=arrahn_kb2
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=secret
|
||||
|
||||
DB_CONNECTION_2=mysql
|
||||
DB_HOST_2=database_zone1
|
||||
DB_PORT_2=3306
|
||||
DB_DATABASE_2=arrahn_wcy
|
||||
DB_USERNAME_2=root
|
||||
DB_PASSWORD_2=secret
|
||||
|
||||
DB_CONNECTION_3=mysql
|
||||
DB_HOST_3=database_zone1
|
||||
DB_PORT_3=3306
|
||||
DB_DATABASE_3=arrahn_1stop
|
||||
DB_USERNAME_3=root
|
||||
DB_PASSWORD_3=secret
|
||||
|
||||
DB_CONNECTION_4=mysql
|
||||
DB_HOST_4=database_zone1
|
||||
DB_PORT_4=3306
|
||||
DB_DATABASE_4=arrahn_jlwt
|
||||
DB_USERNAME_4=root
|
||||
DB_PASSWORD_4=secret
|
||||
|
||||
DB_CONNECTION_5=mysql
|
||||
DB_HOST_5=database_zone1
|
||||
DB_PORT_5=3306
|
||||
DB_DATABASE_5=arrahn_wb
|
||||
DB_USERNAME_5=root
|
||||
DB_PASSWORD_5=secret
|
||||
|
||||
DB_CONNECTION_6=mysql
|
||||
DB_HOST_6=database_zone1
|
||||
DB_PORT_6=3306
|
||||
DB_DATABASE_6=arrahn_kls
|
||||
DB_USERNAME_6=root
|
||||
DB_PASSWORD_6=secret
|
||||
|
||||
DB_CONNECTION_7=mysql
|
||||
DB_HOST_7=database_zone1
|
||||
DB_PORT_7=3306
|
||||
DB_DATABASE_7=online_arrahn
|
||||
DB_USERNAME_7=root
|
||||
DB_PASSWORD_7=secret
|
||||
|
||||
DB_CONNECTION_8=mysql
|
||||
DB_HOST_8=database_zone1
|
||||
DB_PORT_8=3306
|
||||
DB_DATABASE_8=arrahn_pp
|
||||
DB_USERNAME_8=root
|
||||
DB_PASSWORD_8=secret
|
||||
|
||||
DB_CONNECTION_9=mysql
|
||||
DB_HOST_9=database_zone1
|
||||
DB_PORT_9=3306
|
||||
DB_DATABASE_9=arrahn_mace
|
||||
DB_USERNAME_9=root
|
||||
DB_PASSWORD_9=secret
|
||||
|
||||
DB_CONNECTION_10=mysql
|
||||
DB_HOST_10=database_zone1
|
||||
DB_PORT_10=3306
|
||||
DB_DATABASE_10=arrahn_pm
|
||||
DB_USERNAME_10=root
|
||||
DB_PASSWORD_10=secret
|
||||
|
||||
DB_CONNECTION_11=mysql
|
||||
DB_HOST_11=database_zone1
|
||||
DB_PORT_11=3306
|
||||
DB_DATABASE_11=arrahn_gm
|
||||
DB_USERNAME_11=root
|
||||
DB_PASSWORD_11=secret
|
||||
|
||||
DB_CONNECTION_12=mysql
|
||||
DB_HOST_12=database_zone1
|
||||
DB_PORT_12=3306
|
||||
DB_DATABASE_12=arrahn_gcl
|
||||
DB_USERNAME_12=root
|
||||
DB_PASSWORD_12=secret
|
||||
|
||||
DB_CONNECTION_13=mysql
|
||||
DB_HOST_13=database_zone1
|
||||
DB_PORT_13=3306
|
||||
DB_DATABASE_13=arrahn_jli
|
||||
DB_USERNAME_13=root
|
||||
DB_PASSWORD_13=secret
|
||||
|
||||
DB_CONNECTION_14=mysql
|
||||
DB_HOST_14=database_zone1
|
||||
DB_PORT_14=3306
|
||||
DB_DATABASE_14=arrahn_rp
|
||||
DB_USERNAME_14=root
|
||||
DB_PASSWORD_14=secret
|
||||
|
||||
DB_CONNECTION_15=mysql
|
||||
DB_HOST_15=database_zone2
|
||||
DB_PORT_15=3306
|
||||
DB_DATABASE_15=arrahn_ktn
|
||||
DB_USERNAME_15=root
|
||||
DB_PASSWORD_15=secret
|
||||
|
||||
DB_CONNECTION_16=mysql
|
||||
DB_HOST_16=database_zone2
|
||||
DB_PORT_16=3306
|
||||
DB_DATABASE_16=arrahn_pg
|
||||
DB_USERNAME_16=root
|
||||
DB_PASSWORD_16=secret
|
||||
|
||||
DB_CONNECTION_17=mysql
|
||||
DB_HOST_17=database_zone2
|
||||
DB_PORT_17=3306
|
||||
DB_DATABASE_17=arrahn_skudai
|
||||
DB_USERNAME_17=root
|
||||
DB_PASSWORD_17=secret
|
||||
|
||||
DB_CONNECTION_18=mysql
|
||||
DB_HOST_18=database_zone2
|
||||
DB_PORT_18=3306
|
||||
DB_DATABASE_18=arrahn_pttn
|
||||
DB_USERNAME_18=root
|
||||
DB_PASSWORD_18=secret
|
||||
|
||||
DB_CONNECTION_19=mysql
|
||||
DB_HOST_19=database_zone2
|
||||
DB_PORT_19=3306
|
||||
DB_DATABASE_19=arrahn_btg
|
||||
DB_USERNAME_19=root
|
||||
DB_PASSWORD_19=secret
|
||||
|
||||
DB_CONNECTION_20=mysql
|
||||
DB_HOST_20=database_zone2
|
||||
DB_PORT_20=3306
|
||||
DB_DATABASE_20=arrahn_raub
|
||||
DB_USERNAME_20=root
|
||||
DB_PASSWORD_20=secret
|
||||
|
||||
DB_CONNECTION_21=mysql
|
||||
DB_HOST_21=database_zone2
|
||||
DB_PORT_21=3306
|
||||
DB_DATABASE_21=arrahn_kgr
|
||||
DB_USERNAME_21=root
|
||||
DB_PASSWORD_21=secret
|
||||
|
||||
DB_CONNECTION_22=mysql
|
||||
DB_HOST_22=database_zone2
|
||||
DB_PORT_22=3306
|
||||
DB_DATABASE_22=arrahn_sdk
|
||||
DB_USERNAME_22=root
|
||||
DB_PASSWORD_22=secret
|
||||
|
||||
DB_CONNECTION_23=mysql
|
||||
DB_HOST_23=database_zone2
|
||||
DB_PORT_23=3306
|
||||
DB_DATABASE_23=arrahn_sp
|
||||
DB_USERNAME_23=root
|
||||
DB_PASSWORD_23=secret
|
||||
|
||||
DB_CONNECTION_24=mysql
|
||||
DB_HOST_24=database_zone2
|
||||
DB_PORT_24=3306
|
||||
DB_DATABASE_24=arrahn_twu
|
||||
DB_USERNAME_24=root
|
||||
DB_PASSWORD_24=secret
|
||||
|
||||
DB_CONNECTION_25=mysql
|
||||
DB_HOST_25=database_zone2
|
||||
DB_PORT_25=3306
|
||||
DB_DATABASE_25=arrahn_api2
|
||||
DB_USERNAME_25=root
|
||||
DB_PASSWORD_25=secret
|
||||
|
||||
DB_CONNECTION_26=mysql
|
||||
DB_HOST_26=database_zone2
|
||||
DB_PORT_26=3306
|
||||
DB_DATABASE_26=arrahn_kjg
|
||||
DB_USERNAME_26=root
|
||||
DB_PASSWORD_26=secret
|
||||
|
||||
DB_CONNECTION_27=mysql
|
||||
DB_HOST_27=database_zone2
|
||||
DB_PORT_27=3306
|
||||
DB_DATABASE_27=arrahn_rl
|
||||
DB_USERNAME_27=root
|
||||
DB_PASSWORD_27=secret
|
||||
|
||||
DB_CONNECTION_28=mysql
|
||||
DB_HOST_28=database_zone2
|
||||
DB_PORT_28=3306
|
||||
DB_DATABASE_28=arrahn_bfort
|
||||
DB_USERNAME_28=root
|
||||
DB_PASSWORD_28=secret
|
||||
|
||||
DB_CONNECTION_29=mysql
|
||||
DB_HOST_29=database_zone2
|
||||
DB_PORT_29=3306
|
||||
DB_DATABASE_29=arrahn_kbelud
|
||||
DB_USERNAME_29=root
|
||||
DB_PASSWORD_29=secret
|
||||
|
||||
DB_CONNECTION_30=mysql
|
||||
DB_HOST_30=database_zone2
|
||||
DB_PORT_30=3306
|
||||
DB_DATABASE_30=arrahn_tuaran
|
||||
DB_USERNAME_30=root
|
||||
DB_PASSWORD_30=secret
|
||||
|
||||
DB_CONNECTION_31=mysql
|
||||
DB_HOST_31=database_zone2
|
||||
DB_PORT_31=3306
|
||||
DB_DATABASE_31=arrahn_kngau
|
||||
DB_USERNAME_31=root
|
||||
DB_PASSWORD_31=secret
|
||||
|
||||
DB_CONNECTION_32=mysql
|
||||
DB_HOST_32=database_zone1
|
||||
DB_PORT_32=3306
|
||||
DB_DATABASE_32=arrahn_tm
|
||||
DB_USERNAME_32=root
|
||||
DB_PASSWORD_32=secret
|
||||
|
||||
DB_CONNECTION_33=mysql
|
||||
DB_HOST_33=database_zone2
|
||||
DB_PORT_33=3306
|
||||
DB_DATABASE_33=arrahn_tmlh
|
||||
DB_USERNAME_33=root
|
||||
DB_PASSWORD_33=secret
|
||||
|
||||
DB_CONNECTION_35=mysql
|
||||
DB_HOST_35=database_zone1
|
||||
DB_PORT_35=3306
|
||||
DB_DATABASE_35=arrahn_kb1
|
||||
DB_USERNAME_35=root
|
||||
DB_PASSWORD_35=secret
|
||||
|
||||
DB_CONNECTION_34=mysql
|
||||
DB_HOST_34=database_zone1
|
||||
DB_PORT_34=3306
|
||||
DB_DATABASE_34=arrahn_tm
|
||||
DB_USERNAME_34=root
|
||||
DB_PASSWORD_34=secret
|
||||
|
||||
DB_CONNECTION_36=mysql
|
||||
DB_HOST_36=database_zone1
|
||||
DB_PORT_36=3306
|
||||
DB_DATABASE_36=arrahn_kb2
|
||||
DB_USERNAME_36=root
|
||||
DB_PASSWORD_36=secret
|
||||
|
||||
DB_CONNECTION_38=mysql
|
||||
DB_HOST_38=database_zone2
|
||||
DB_PORT_38=3306
|
||||
DB_DATABASE_38=arrahn_pttn2
|
||||
DB_USERNAME_38=root
|
||||
DB_PASSWORD_38=secret
|
||||
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
@@ -35,7 +35,7 @@ class Kernel extends ConsoleKernel
|
||||
{
|
||||
//
|
||||
|
||||
$schedule->command('gadai:daily')->daily()->timezone('Asia/Kuala_Lumpur')->at('00:00');
|
||||
// $schedule->command('gadai:daily')->daily()->timezone('Asia/Kuala_Lumpur')->at('00:00');
|
||||
|
||||
$schedule->job(new WhatsappUnsoldCommodityScanner)->daily()->timezone('Asia/Kuala_Lumpur')->at('00:00');
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class FailoverTransaction extends Model
|
||||
{
|
||||
/**
|
||||
* The table associated with the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'failover_transaction';
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'kodcaw',
|
||||
'teller',
|
||||
'old_norujukan',
|
||||
'new_norujukan',
|
||||
'db_caw',
|
||||
'db_online',
|
||||
'status',
|
||||
'resolve_time',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $casts = [
|
||||
'db_caw' => 'boolean',
|
||||
'db_online' => 'boolean',
|
||||
'resolve_time' => 'datetime',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class FailoverTransactionFailed extends Model
|
||||
{
|
||||
/**
|
||||
* The table associated with the model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'failover_transaction_failed';
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'original_id',
|
||||
'kodcaw',
|
||||
'norujukan',
|
||||
'code_error',
|
||||
'error_message'
|
||||
];
|
||||
|
||||
}
|
||||
+2
-1
@@ -72,7 +72,8 @@ class Gadai extends Model
|
||||
'upah12',
|
||||
'tagkomuditi',
|
||||
'tempohbayar',
|
||||
'lelong_tawarruq'
|
||||
'lelong_tawarruq',
|
||||
'tag_tebus'
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -49,11 +49,8 @@ use App\imbangdugalama;
|
||||
use App\HapusKira;
|
||||
use App\MaxPinjaman;
|
||||
use App\Penghutang;
|
||||
use App\RingkasanAnsuran;
|
||||
use App\RingkasanGadai;
|
||||
use App\RingkasanLelong;
|
||||
use App\RingkasanMain;
|
||||
use App\RingkasanTebus;
|
||||
use App\Services\Reports\AccountService;
|
||||
use App\imbangdugabackup;
|
||||
use App\Services\RingkasanHarianServices;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use DateTime;
|
||||
@@ -62,6 +59,10 @@ use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Jobs\AccountCheckJob;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class AdminPageController extends Controller
|
||||
{
|
||||
@@ -3120,80 +3121,111 @@ class AdminPageController extends Controller
|
||||
$year = $current->year;
|
||||
$month = $tarikh->month;
|
||||
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')
|
||||
->having('result','=',1)
|
||||
->whereYear('t_gadai','=',$year)
|
||||
->whereMonth('t_gadai','<=',$month)
|
||||
->where('sttebus','<>','')
|
||||
->pluck('norujukan');
|
||||
|
||||
$sum_keun = Transaction::on('mysql7')
|
||||
->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
{
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan',$get_norujukan)->get()->toArray();
|
||||
|
||||
$sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0;
|
||||
|
||||
/* Ansuran masuk dalam ni */
|
||||
|
||||
$collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.kodcaw','=',$request->kodcaw)
|
||||
->where('trans.trans_type','=','A')
|
||||
->where('transaksi_keuntungan.margin_semasa','>','0')
|
||||
->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year)
|
||||
->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month)
|
||||
->get();
|
||||
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if($gadai->norujukan === $trans->norujukan){
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
$summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
|
||||
// $get_norujukan_ansuran = Gadai::on($cawangan['mysql'])
|
||||
// $get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
// ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
// ->whereNotNull('hargajualan')
|
||||
// ->having('result','=',1)
|
||||
// ->whereYear('t_gadai','=',$year)
|
||||
// ->whereMonth('t_gadai','<=',$month)
|
||||
// ->where('sttebus','=','')
|
||||
// ->where('tagbaru','=',1)
|
||||
// ->where('sttebus','<>','')
|
||||
// ->pluck('norujukan');
|
||||
|
||||
// $summation_ansuran = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan');
|
||||
// $sum_keun = Transaction::on('mysql7')
|
||||
// ->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
// ->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
// {
|
||||
// $join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
// $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
// })
|
||||
// ->whereIn('trans.norujukan',$get_norujukan)->get()->toArray();
|
||||
|
||||
// $sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0;
|
||||
// $sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0;
|
||||
|
||||
// /* Ansuran masuk dalam ni */
|
||||
|
||||
// $collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
// ->leftJoin('transaction as trans', function($join)
|
||||
// {
|
||||
// $join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
// $join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
// })
|
||||
// ->where('trans.kodcaw','=',$request->kodcaw)
|
||||
// ->where('trans.trans_type','=','A')
|
||||
// ->where('transaksi_keuntungan.margin_semasa','>','0')
|
||||
// ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year)
|
||||
// ->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month)
|
||||
// ->get();
|
||||
|
||||
|
||||
// $array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
// $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->get();
|
||||
|
||||
// $keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
|
||||
// foreach ($collection_gadai as $gadai) {
|
||||
// if($gadai->norujukan === $trans->norujukan){
|
||||
// $t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
// $t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
// if ($t_gadai->month !== $t_bayaran->month) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return true;
|
||||
// });
|
||||
|
||||
// $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
|
||||
|
||||
// $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
|
||||
$lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString();
|
||||
|
||||
$get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray();
|
||||
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.kodcaw', $request->kodcaw)
|
||||
->whereYear('transaction.created_at', '=', $year)
|
||||
->whereMonth('transaction.created_at', '=', $month)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$year)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
$total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar'];
|
||||
|
||||
$total = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
return response()->json($total);
|
||||
}
|
||||
|
||||
@@ -3800,4 +3832,45 @@ class AdminPageController extends Controller
|
||||
|
||||
return response()->json($cawangan);
|
||||
}
|
||||
|
||||
public function getAccountList(Request $request){
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->simplePaginate(5);
|
||||
$check = app(AccountService::class);
|
||||
$array_all = ['current_page' => $cawangan->currentPage(), 'job_ids' => []];
|
||||
foreach($cawangan as $caw){
|
||||
try{
|
||||
$jobId = Str::uuid();
|
||||
$res = dispatch(new AccountCheckJob($caw['kodcaw'], $request->month,$jobId));
|
||||
// $array_all['data'][$caw['details_caw']] = $res;
|
||||
$array_all['data'][$caw['details_caw']] = [
|
||||
'jobId' => $jobId,
|
||||
'status' => 'queued',
|
||||
];
|
||||
$array_all['job_ids'][] = $jobId;
|
||||
}catch(\Exception $e){
|
||||
Log::error("Error processing: " . $caw['kodcaw']);
|
||||
Log::error($e->getMessage());
|
||||
|
||||
}
|
||||
}
|
||||
$response = $array_all;
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
public function getJobStatus(Request $request)
|
||||
{
|
||||
$jobId = $request->input('jobId');
|
||||
|
||||
// Get the job status and result from cache (or database)
|
||||
$status = Cache::get("job_status_{$jobId}", 'not_found');
|
||||
$result = Cache::get("job_result_{$jobId}", []);
|
||||
|
||||
// Return both the status and the result
|
||||
return response()->json([
|
||||
'status' => $status,
|
||||
'result' => $status === 'completed' ? $result : null,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class BackupStokAuditController extends Controller
|
||||
{
|
||||
public function backupStokAudit(Request $request){
|
||||
if($request->zone == 'all'){
|
||||
$cawangan = Cawangan::on('mysql7')->get();
|
||||
$cawangan = Cawangan::on('mysql7')->where('version','v2')->get();
|
||||
}else{
|
||||
$cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ use Illuminate\Http\Request;
|
||||
use App\Services\MasterServices;
|
||||
use App\Support\OnePercent;
|
||||
use App\Services\Transaction\AnsuranServices as AnsServ;
|
||||
use Log;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
@@ -2017,159 +2017,188 @@ class GadaiController extends Controller
|
||||
$audit->updated_at = $current;
|
||||
$audit->save();
|
||||
|
||||
|
||||
if($gadai[0]['historygadaian'] != "0" && $gadai[0]['historygadaian'] != '')
|
||||
{
|
||||
|
||||
if($tebus['tagterima'] == 1)
|
||||
try{
|
||||
DB::connection($cawangan['mysql'])->beginTransaction();
|
||||
DB::connection('mysql7')->beginTransaction();
|
||||
|
||||
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']);
|
||||
$totalmasuk = $masuk - ($tebus['bakiupah'] + $tebus['pinjaman']);
|
||||
$totalkeluar = $keluar - ($tebus['addpinjaman'] + $tebus['pinjaman']);
|
||||
$totalmasuk = $masuk - ($tebus['bakiupah'] + $tebus['pinjaman']);
|
||||
|
||||
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||
$bakiakhir = $baki - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
||||
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||
$bakiakhir = $baki - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
||||
|
||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||
update(array(
|
||||
'keluar' => $totalkeluar,
|
||||
'masuk' => $totalmasuk,
|
||||
'baki' => $bakiakhir
|
||||
));
|
||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||
update(array(
|
||||
'keluar' => $totalkeluar,
|
||||
'masuk' => $totalmasuk,
|
||||
'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{
|
||||
|
||||
$totalmasuk = $masuk - ($tebus['pinjaman']+$tebus['bakiupah']);
|
||||
$totalkeluar = $keluar - (($tebus['pinjaman'] + $tebus['bakiupah']) - $tebus['bakipjm']);
|
||||
// $bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||
$bakiakhir = $baki;
|
||||
|
||||
if($tebus['jenistebus'] == 'S')
|
||||
$bakiakhir = $baki - $tebus['bakipjm'];
|
||||
else
|
||||
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||
if($tebus['jenistebus'] == 'P')
|
||||
{
|
||||
|
||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||
update(array(
|
||||
'keluar' => $totalkeluar,
|
||||
'masuk' => $totalmasuk,
|
||||
'baki' => $bakiakhir
|
||||
));
|
||||
$bakiakhir = $bakiakhir - $tebus['bakiupah'] + $tebus['addpinjaman'];
|
||||
|
||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||
update(array(
|
||||
'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] ])->
|
||||
update(array(
|
||||
'keluar' => $keluar,
|
||||
'masuk' => $masuk,
|
||||
'baki' => $bakiakhir
|
||||
'keluar' => $totalkeluar,
|
||||
'masuk' => $masuk,
|
||||
'baki' => $bakiakhir
|
||||
));
|
||||
|
||||
}else{
|
||||
|
||||
$totalmasuk = $masuk;
|
||||
$totalkeluar = $keluar;
|
||||
$bakiakhir = $baki;
|
||||
|
||||
if($tebus['jenistebus'] == 'S')
|
||||
$bakiakhir = ($bakiakhir - $tebus['bakipjm']);
|
||||
else
|
||||
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
|
||||
$bakiakhir += $gadai[0]['pinjaman'];
|
||||
|
||||
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
|
||||
update(array(
|
||||
'keluar' => $keluar,
|
||||
'masuk' => $masuk,
|
||||
'baki' => $bakiakhir
|
||||
'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);
|
||||
}
|
||||
|
||||
$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'];
|
||||
|
||||
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 = $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);
|
||||
Log::error('Transaction failed', [
|
||||
'exception' => $e->getMessage(),
|
||||
'line' => $e->getLine(),
|
||||
'file' => $e->getFile(),
|
||||
]);
|
||||
|
||||
return response()->json($array_response);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2202,6 +2231,7 @@ class GadaiController extends Controller
|
||||
|
||||
$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'];
|
||||
|
||||
@@ -2239,82 +2269,109 @@ class GadaiController extends Controller
|
||||
$bakiakhir = $baki;
|
||||
$totalkeluar = 0;
|
||||
|
||||
if($gadai){
|
||||
return response('Bukan-Tebus', 200);
|
||||
}else{
|
||||
|
||||
$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);
|
||||
try{
|
||||
if($gadai){
|
||||
return response('Bukan-Tebus', 200);
|
||||
}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] ])->
|
||||
update(array(
|
||||
'keluar' => $keluar,
|
||||
'masuk' => $masuk,
|
||||
'baki' => $bakiakhir
|
||||
));
|
||||
$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' => '']);
|
||||
|
||||
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){
|
||||
|
||||
@@ -25,6 +25,7 @@ use App\imbangdugabackup;
|
||||
use Carbon\Carbon;
|
||||
use App\imbangdugalama;
|
||||
use App\Services\Reports\ImbangDugaService;
|
||||
use App\Services\Reports\Account\GeneralLedger;
|
||||
|
||||
|
||||
use DateTime;
|
||||
@@ -1245,112 +1246,12 @@ class LaporanController extends Controller
|
||||
}
|
||||
|
||||
public function SemakanKeuntunganLejer($kodcaw,Request $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
$mulaCarbon = new Carbon($request->mula);
|
||||
$hinggaCarbon = new Carbon($request->hingga);
|
||||
$gledger = new GeneralLedger($kodcaw,$request->mula,$request->hingga);
|
||||
$current_profit = $gledger->SemakanKeuntunganLejer();
|
||||
|
||||
/* Start Keuntungan Sebenar Calculation */
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')->having('result','=',1)->whereDate('t_update','>=',$request->mula)->whereDate('t_update','<=',$request->hingga)->where('sttebus','<>','')->pluck('norujukan');
|
||||
$sum_keun = Transaction::on('mysql7')
|
||||
->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' AND (trans.margin_semasa) = 0 THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
{
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan',$get_norujukan)->get()->toArray();
|
||||
|
||||
$sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0;
|
||||
|
||||
// $get_norujukan_ansuran = Gadai::on($cawangan['mysql'])
|
||||
// ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
// ->whereNotNull('hargajualan')
|
||||
// ->having('result','=',1)
|
||||
// ->whereDate('t_update','>=',$request->mula)->whereDate('t_update','<=',$request->hingga)
|
||||
// ->where('sttebus','=','')
|
||||
// ->where('tagbaru','=',1)
|
||||
// ->pluck('norujukan');
|
||||
|
||||
// $summation_ansuran = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan');
|
||||
|
||||
$collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.kodcaw','=',$request->kodcaw)
|
||||
->where('trans.trans_type','=','A')
|
||||
->where('transaksi_keuntungan.margin_semasa','>','0')
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran','>=',$request->mula)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran','<=',$request->hingga)
|
||||
->get();
|
||||
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if($gadai->norujukan === $trans->norujukan){
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
$summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
|
||||
$total_keuntungan_sebenar = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
/* End Keuntungan Sebenar Calculation */
|
||||
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')->where('tagbaru',0)->having('result','=',0)->pluck('norujukan');
|
||||
|
||||
$summation = Transaction::on('mysql7')
|
||||
->selectRaw("SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
{
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan',$get_norujukan)
|
||||
->whereDate('trans.tarikh_bayaran' ,'>=', $request->mula)
|
||||
->whereDate('trans.tarikh_bayaran' ,'<=', $request->hingga)
|
||||
->whereYear('tarikh_bayaran','=',$mulaCarbon->year)
|
||||
->where('trans.kodcaw',$request->kodcaw)
|
||||
->get()->toArray();
|
||||
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['t_jual','>=',$request->mula],['t_jual','<=',$request->hingga],['t_jual','>','2022-07-24']])
|
||||
->whereYear('t_jual','=',$mulaCarbon->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$sum_keuntungan = ($summation) ? $summation[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($summation) ? $summation[0]['sum_bayaran'] : 0;
|
||||
|
||||
// $total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong) - $total_keuntungan_sebenar;
|
||||
$total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong);
|
||||
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
|
||||
$array_keuntungan = ['keuntungan_sebenar' => $total_keuntungan_sebenar, 'keuntungan_semasa' => $total_keuntungan_semasa];
|
||||
$array_keuntungan = ['keuntungan_sebenar' => $current_profit['keuntungan_sebenar'], 'keuntungan_semasa' => $current_profit['keuntungan_semasa']];
|
||||
|
||||
return response($array_keuntungan);
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ class LelongController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$arraylelong = ['bakilelong' => $bakilelong, 'rugilelong' => $rugilelong, 'baki' => $baki_lelong, 'rugi' => $rugi_lelong, 'jumlahlelong' => $jumlah_lelong, 'caslelong' => $cas_lelong];
|
||||
$arraylelong = ['bakilelong' => $bakilelong, 'rugilelong' => abs($rugilelong), 'baki' => $baki_lelong, 'rugi' => $rugi_lelong, 'jumlahlelong' => $jumlah_lelong, 'caslelong' => $cas_lelong];
|
||||
|
||||
return response()->json($arraylelong,200);
|
||||
}
|
||||
@@ -543,7 +543,7 @@ class LelongController extends Controller
|
||||
->whereYear('t_jual','=',$current->year)
|
||||
->sum('cajlelong');
|
||||
|
||||
if($kodcaw === '011232')
|
||||
if($kodcaw === '011232' && $current->year < 2023)
|
||||
$cajlelong +=122.5;
|
||||
|
||||
return response()->json($cajlelong,200);
|
||||
@@ -598,7 +598,7 @@ class LelongController extends Controller
|
||||
|
||||
if($cawangan['tagarrahnbid'] == 1){
|
||||
if(env('APP_ENV') != 'production'){
|
||||
$link = 'https://niklah.arrahn.com.my/api/portalApi';
|
||||
$link = 'http://niklah.arrahn.com.my/api/portalApi';
|
||||
}else{
|
||||
$link = 'http://adminbid.arrahn/api/portalApi';
|
||||
}
|
||||
|
||||
@@ -94,13 +94,27 @@ class PolisController extends Controller
|
||||
|
||||
public function LaporanPolis(Request $request){
|
||||
|
||||
// $request->validate([
|
||||
// 'kodcaw' => 'required|string',
|
||||
// 'tarikh_mula' => 'required|date_format:Y-m-d',
|
||||
// 'tarikh_akhir' => 'required|date_format:Y-m-d',
|
||||
// 'alasan' => 'nullable|string'
|
||||
// ]);
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
|
||||
// dd($cawangan);
|
||||
if(!$cawangan){
|
||||
return response()->json(['error' => 'Invalid kodcaw'], 403);
|
||||
}
|
||||
|
||||
$polis = Polis::on($cawangan['mysql'])
|
||||
->where('komen1','=',$request->alasan)
|
||||
->where('tarikh','=',$request->tarikh)
|
||||
// ->where('tarikh','=',$request->tarikh)
|
||||
->whereBetween('tarikh', [$request->tarikh_mula, $request->tarikh_akhir])
|
||||
->get();
|
||||
|
||||
|
||||
return response()->json($polis);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ use App\imbangdugabackup;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\Reports\ImbangDugaService;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class BalanceSheetsController extends Controller
|
||||
{
|
||||
@@ -24,10 +25,27 @@ class BalanceSheetsController extends Controller
|
||||
|
||||
public function insertBalanceSheets(Request $request){
|
||||
$igService = new ImbangDugaService($request->kodcaw,$request->tarikh);
|
||||
|
||||
$insert_imbangduga = $igService->setImbangDugaBackup();
|
||||
|
||||
return $insert_imbangduga;
|
||||
}
|
||||
|
||||
public function updateIGBalanceSheets(Request $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('zone','<>',1)->get();
|
||||
$date = Carbon::now()->month($request->month);
|
||||
$lastDay = (clone $date)->endOfMonth();
|
||||
|
||||
try{
|
||||
foreach($cawangan as $caw){
|
||||
$igService = new ImbangDugaService($caw['kodcaw'],$lastDay->toDateString());
|
||||
$insert_imbangduga = $igService->setImbangDugaBackup();
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
Log::error($e->getMessage());
|
||||
}
|
||||
|
||||
|
||||
return response('success');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,17 @@ class RingkasanHarianController extends Controller
|
||||
return response()->json($reports);
|
||||
}
|
||||
|
||||
public function getLaporanCawanganKPI(string $kod_cawangan, Request $request)
|
||||
{
|
||||
$reportRingkasanHarianService = new ReportRingkasanHarianService($kod_cawangan, $request);
|
||||
|
||||
$reports = [
|
||||
'reportRingkasanHarian' => $reportRingkasanHarianService->getLaporanCawanganKPI(),
|
||||
];
|
||||
|
||||
return response()->json($reports);
|
||||
}
|
||||
|
||||
public function getSummaryLaporanRingkasanHarian()
|
||||
{
|
||||
return json_encode(Helper::getActiveCawangan());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -249,14 +256,33 @@ class TebusController extends Controller
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
$tebus_data = Tebus::on($cawangan['mysql'])
|
||||
->select('tebus.t_tebus', 'gad.t_gadai','gad.hargajualan','gad.bakihargajualan','gad.bakipjm as gadaibakipjm','tebus.nilaimarhun','tebus.tagterima', 'tebus.teller','tebus.jenistebus','tebus.pinjaman','tebus.bakiupah','tebus.bakipjm','gad.norujukan','gad.nokp','tebus.jbg','tebus.ujrah','tebus.onepercent','gad.tagbaru')
|
||||
->join('gadai as gad','gad.norujukan','=','tebus.norujukan')
|
||||
->where('tebus.t_tebus','>=',$request->mula)
|
||||
->where('tebus.t_tebus','<=',$request->akhir)
|
||||
->groupBy('tebus.norujukan')
|
||||
->orderBy('tebus.teller')
|
||||
->orderBy('tebus.sirit')
|
||||
->get();
|
||||
->select(
|
||||
'tebus.t_tebus',
|
||||
'gad.t_gadai',
|
||||
'gad.hargajualan',
|
||||
'gad.bakihargajualan',
|
||||
'gad.bakipjm as gadaibakipjm',
|
||||
'tebus.nilaimarhun',
|
||||
'tebus.tagterima',
|
||||
'tebus.teller',
|
||||
'tebus.jenistebus',
|
||||
'tebus.pinjaman',
|
||||
'tebus.bakiupah',
|
||||
'tebus.bakipjm',
|
||||
'gad.norujukan',
|
||||
'gad.nokp',
|
||||
'tebus.jbg',
|
||||
'tebus.ujrah',
|
||||
'tebus.onepercent',
|
||||
'gad.tagbaru'
|
||||
)
|
||||
->join('gadai as gad', 'gad.norujukan', '=', 'tebus.norujukan')
|
||||
->where('tebus.t_tebus', '>=', $request->mula)
|
||||
->where('tebus.t_tebus', '<=', $request->akhir)
|
||||
->groupBy('tebus.norujukan')
|
||||
->orderBy('tebus.teller')
|
||||
->orderBy('tebus.sirit')
|
||||
->get();
|
||||
|
||||
$tebus = [];
|
||||
if($tebus_data){
|
||||
@@ -283,7 +309,8 @@ class TebusController extends Controller
|
||||
"nokp"=>$tebusData['nokp'],
|
||||
"jbg"=>$tebusData['jbg'],
|
||||
"ujrah"=>$trans['ujrah_rebet'],
|
||||
"onepercent"=>$trans['onepercent_rebet']
|
||||
"onepercent"=>$trans['onepercent_rebet'],
|
||||
"tagbaru"=>$tebusData['tagbaru']
|
||||
|
||||
]);
|
||||
}
|
||||
@@ -293,7 +320,13 @@ class TebusController extends Controller
|
||||
$compare_teller = strcmp($a['teller'], $b['teller']);
|
||||
|
||||
if ($compare_teller === 0) {
|
||||
return strcmp($a['t_tebus'], $b['t_tebus']);
|
||||
$compare_tebus = strcmp($a['t_tebus'], $b['t_tebus']);
|
||||
|
||||
if ($compare_tebus === 0) {
|
||||
return $a['tarikh_bayaran'] <=> $b['tarikh_bayaran'];
|
||||
}
|
||||
|
||||
return $compare_tebus;
|
||||
}
|
||||
|
||||
return $compare_teller;
|
||||
@@ -1735,39 +1768,41 @@ class TebusController extends Controller
|
||||
$result_audit_backdate = $this->StokAuditGenerateTerakru($month_sebelum,$cawangan,$year_generate);
|
||||
}
|
||||
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')
|
||||
->having('result','=',1)
|
||||
->whereYear('t_gadai','=',$year)
|
||||
//->whereMonth('t_gadai','>',7)
|
||||
->whereMonth('t_gadai','=',$month)
|
||||
->where('sttebus','<>','')
|
||||
->pluck('norujukan');
|
||||
// $get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
// ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
// ->whereNotNull('hargajualan')
|
||||
// ->having('result','=',1)
|
||||
// ->whereYear('t_gadai','=',$year)
|
||||
// //->whereMonth('t_gadai','>',7)
|
||||
// ->whereMonth('t_gadai','=',$month)
|
||||
// ->where('sttebus','<>','')
|
||||
// ->pluck('norujukan');
|
||||
|
||||
$sum_keun_tebus = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
{
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan',$get_norujukan)
|
||||
->where('transaction.trans_type','<>','A')
|
||||
->where('trans.margin_semasa','=',0) //3.80
|
||||
->sum('keuntungan_rebet');
|
||||
// $sum_keun_tebus = Transaction::on('mysql7')
|
||||
// ->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
// {
|
||||
// $join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
// $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
// })
|
||||
// ->whereIn('trans.norujukan',$get_norujukan)
|
||||
// ->where('transaction.trans_type','<>','A')
|
||||
// ->where('trans.margin_semasa','=',0) //3.80
|
||||
// ->sum('keuntungan_rebet');
|
||||
|
||||
$sum_keun_ansuran = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
{
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan',$get_norujukan)
|
||||
->where('transaction.trans_type','A')
|
||||
->where('trans.margin_semasa','=',0)
|
||||
->sum('bayaran_keuntungan');
|
||||
// $sum_keun_ansuran = Transaction::on('mysql7')
|
||||
// ->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
// {
|
||||
// $join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
// $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
// })
|
||||
// ->whereIn('trans.norujukan',$get_norujukan)
|
||||
// ->where('transaction.trans_type','A')
|
||||
// ->where('trans.margin_semasa','=',0)
|
||||
// ->sum('bayaran_keuntungan');
|
||||
|
||||
$total = $sum_keun_tebus + $sum_keun_ansuran;
|
||||
// $total = $sum_keun_tebus + $sum_keun_ansuran;
|
||||
|
||||
$total = $this->calculateKeuntunganSemasa($tarikh,$request->kodcaw);
|
||||
|
||||
if(!$determine_past->isToday()){
|
||||
$calculate_month = (int)$month_sekarang - $latest_month_akrunet->bulan;
|
||||
@@ -1817,8 +1852,9 @@ class TebusController extends Controller
|
||||
'kodcaw' => $request->kodcaw,
|
||||
]);
|
||||
|
||||
$calculation_keuntungan_sebenar = $this->untungrugicalculationLejer($request->kodcaw,$request_dibina);
|
||||
$upah_diterima = $calculation_keuntungan_sebenar->getContent();
|
||||
// $calculation_keuntungan_sebenar = $this->untungrugicalculationLejer($request->kodcaw,$request_dibina);
|
||||
// $upah_diterima = $calculation_keuntungan_sebenar->getContent();
|
||||
$upah_diterima = $total;
|
||||
$calculation = $totaltunggakan_sebelum - $upah_diterima;
|
||||
$accrual_net = $totaltunggakan_now - $calculation;
|
||||
|
||||
@@ -1834,20 +1870,20 @@ class TebusController extends Controller
|
||||
$akrunet->setConnection($cawangan['mysql']);
|
||||
$akrunet->tahun = $current->year;
|
||||
$akrunet->bulan = $tarikh->month;
|
||||
$akrunet->jumlah = ($accrual_net - $total);
|
||||
$akrunet->jumlah = ($accrual_net);
|
||||
$akrunet->save();
|
||||
}else{
|
||||
if($available_akru[0]['jumlah'] !== ($accrual_net - $total))
|
||||
if($available_akru[0]['jumlah'] !== ($accrual_net))
|
||||
{
|
||||
AkruNet::on($cawangan['mysql'])->where('bulan','=',(int)$month_sekarang)->where('tahun',$current->year)
|
||||
->update(['jumlah' => ($accrual_net - $total)]);
|
||||
->update(['jumlah' => ($accrual_net)]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//dd($jumlahakru,$accrual_net,$total);
|
||||
$total_accrual_net = $jumlahakru + ($accrual_net - $total);
|
||||
$total_accrual_net = $jumlahakru + ($accrual_net);
|
||||
|
||||
}else{
|
||||
|
||||
@@ -1892,6 +1928,65 @@ class TebusController extends Controller
|
||||
return response()->json($total_accrual_net);
|
||||
}
|
||||
|
||||
private function calculateKeuntunganSemasa($currentDate,$kodcaw)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
|
||||
|
||||
$firstMonth = (clone $currentDate)->firstOfMonth();
|
||||
$lastMonth = (clone $currentDate)->endOfMonth();
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.kodcaw', $kodcaw)
|
||||
->whereYear('transaction.created_at', '=', $currentDate->year)
|
||||
->whereMonth('transaction.created_at', '=', $currentDate->month)
|
||||
->get();
|
||||
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if (($t_gadai->month == $t_bayaran->month) && ($t_gadai->year == $t_bayaran->year)) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
/* Keuntungan Lelong */
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']])
|
||||
->whereYear('t_jual', '=', $currentDate->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
|
||||
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
return $total_keuntungan_semasa;
|
||||
}
|
||||
|
||||
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
|
||||
$master = new MasterServices($kodcaw);
|
||||
$response = $master->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||
@@ -1913,6 +2008,12 @@ class TebusController extends Controller
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function showOneTebusbyRujukanAndCawangan($kodcaw,$norujukan){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
$tebus = Tebus::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->get();
|
||||
|
||||
return response()->json($tebus);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ class TransactionOnlineController extends Controller
|
||||
|
||||
$sag = Gadai::on($cawangan['mysql'])->where('norujukan', $request->norujukan)->first();
|
||||
|
||||
$transaction = TransactionOnline::on('mysql7')->create([
|
||||
$transactionData = [
|
||||
'nokp' => $request->nokp,
|
||||
'reference_no' => $request->reference_no,
|
||||
'nosiri' => $request->nosiri,
|
||||
@@ -87,7 +87,17 @@ class TransactionOnlineController extends Controller
|
||||
'customer_name' => $request->customer_name,
|
||||
'tempohbayar' => $sag['tempoh'],
|
||||
'jenisbayaran' => $request->jenisbayaran ? $request->jenisbayaran : 'A',
|
||||
]);
|
||||
];
|
||||
|
||||
|
||||
try {
|
||||
$transaction = TransactionOnline::on('mysql7')->create($transactionData);
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($transaction->billplz_id, TransactionOnlineStatus::INITIALIZED_TRANSACTION, $transaction, $transactionData);
|
||||
} catch (\Exception $e) {
|
||||
OnlineTransactionLoggerService::logsAfterDBTransaction($transaction->billplz_id, TransactionOnlineStatus::INITIALIZED_TRANSACTION, $transactionData, $e->getMessage());
|
||||
throw $e;
|
||||
}
|
||||
|
||||
|
||||
return response()->json($transaction, 201);
|
||||
}
|
||||
@@ -109,7 +119,7 @@ class TransactionOnlineController extends Controller
|
||||
$current = new Carbon();
|
||||
foreach ($transactions as $index => $transaction) {
|
||||
$cawangan = Cawangan::on('mysql7')
|
||||
->where('kodcaw', '=', $transaction['kodcaw'])
|
||||
->where('kodcaw', '=', $transaction['kodcaw'])
|
||||
->first();
|
||||
$gadai_data = Gadai::on($cawangan['mysql'])->where([['norujukan', $transaction['norujukan']], ['nokp', $transaction['nokp']]])->first();
|
||||
if ($transaction->jenisbayaran == 'A') {
|
||||
@@ -366,7 +376,7 @@ class TransactionOnlineController extends Controller
|
||||
|
||||
try {
|
||||
|
||||
DB::connection('mysql7')->transaction(function () use ($norujukan, $gadai, $kodcaw, $current, $baki_hargajualan, $cawangan, $old_data, $lelong_tawarruq, $margin_semasa, $bayaran, $tempohbayar, $bill_id) {
|
||||
DB::connection('mysql7')->transaction(function () use ($norujukan, $gadai, $kodcaw, $current, $baki_hargajualan, $cawangan, $old_data, $lelong_tawarruq, $margin_semasa, $bayaran, $tempohbayar, $bill_id, $paid_at) {
|
||||
|
||||
$data = [
|
||||
'trans_type' => 'A',
|
||||
@@ -375,7 +385,7 @@ class TransactionOnlineController extends Controller
|
||||
'teller' => 'Online',
|
||||
'kodcaw' => $kodcaw,
|
||||
'duit_masuk' => $bayaran,
|
||||
'created_at' => $current,
|
||||
'created_at' => $paid_at,
|
||||
'bakiharga' => $baki_hargajualan,
|
||||
];
|
||||
|
||||
@@ -414,6 +424,7 @@ class TransactionOnlineController extends Controller
|
||||
'tempoh' => 0,
|
||||
'beza_tempoh' => 0,
|
||||
'margin_semasa' => 0,
|
||||
'tarikh_bayaran' => $paid_at,
|
||||
];
|
||||
|
||||
try {
|
||||
@@ -459,6 +470,7 @@ class TransactionOnlineController extends Controller
|
||||
'tempoh' => $gadai['tempoh'],
|
||||
'beza_tempoh' => $bilang_bln,
|
||||
'margin_semasa' => $margin_semasa,
|
||||
'tarikh_bayaran' => $paid_at,
|
||||
];
|
||||
|
||||
try {
|
||||
|
||||
@@ -16,12 +16,19 @@ class TransactionOnlineTrailController extends Controller
|
||||
public function index(Request $request)
|
||||
{
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
$transactionsOnline = $this->getTransactionOnlineQuery($request);
|
||||
|
||||
$transactionsOnline = $this->getTransactionOnlineQuery($date, $request);
|
||||
$transaction = $this->getTransactionQuery($date, $request);
|
||||
$transaksiKeuntungan = $this->getTransaksiKeuntunganQuery($date, $request);
|
||||
$glDetail = $this->getGlDetailQuery($date, $request);
|
||||
$list_norujukan = [];
|
||||
|
||||
if($request->isGroupedByNorujukan){
|
||||
$list_norujukan = array_map(fn($x) => ['norujukan' => reset($x)['norujukan'], 'kodcaw' => reset($x)['kodcaw']], $transactionsOnline);
|
||||
} else {
|
||||
$list_norujukan = array_map(fn($x) => ['norujukan' => $x['norujukan'], 'kodcaw' => $x['kodcaw']], $transactionsOnline);
|
||||
}
|
||||
|
||||
$transaction = $this->getTransactionQuery($list_norujukan, $request);
|
||||
$transaksiKeuntungan = $this->getTransaksiKeuntunganQuery($list_norujukan, $request);
|
||||
$glDetail = $this->getGlDetailQuery($list_norujukan, $request);
|
||||
|
||||
return response()->json([
|
||||
'transactionsOnline' => $transactionsOnline,
|
||||
@@ -31,16 +38,28 @@ class TransactionOnlineTrailController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
private function getTransactionOnlineQuery($date, $request)
|
||||
private function getTransactionOnlineQuery($request)
|
||||
{
|
||||
$transactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
$startDate = $request->startDate ? Carbon::parse($request->startDate)->startOfDay() : Carbon::now()->startOfDay();
|
||||
$endDate = $request->endDate ? Carbon::parse($request->endDate)->endOfDay() : Carbon::now()->endOfDay();
|
||||
|
||||
$transactionOnline = TransactionOnline::whereBetween('tarikh', [$startDate, $endDate])
|
||||
->when($request->filled('branch'), function ($query) use ($request) {
|
||||
return $query->where('kodcaw', $request->branch);
|
||||
})
|
||||
->when($request->filled('billplzBillId'), function ($query) use ($request) {
|
||||
return $query->where('billplz_id', $request->billplzBillId);
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get();
|
||||
|
||||
if ($transactionOnline->isEmpty()) {
|
||||
$transactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
$transactionOnline = TransactionOnline::whereBetween('tarikh', [$startDate, $endDate])
|
||||
->when($request->filled('branch'), function ($query) use ($request) {
|
||||
return $query->where('kodcaw', $request->branch);
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', 'LIKE', '%' . $request->norujukan . '%');
|
||||
})
|
||||
@@ -50,7 +69,9 @@ class TransactionOnlineTrailController extends Controller
|
||||
$transactionOnline = $transactionOnline
|
||||
->sortByDesc('tarikh')
|
||||
->sortByDesc('masa')
|
||||
->filter(fn($x) => $x['status'] === 'PAID')
|
||||
->when($request->filled('status'), function ($query) use ($request) {
|
||||
return $query->where('status', $request->status);
|
||||
})
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
@@ -59,78 +80,56 @@ class TransactionOnlineTrailController extends Controller
|
||||
return $transactionOnline;
|
||||
}
|
||||
|
||||
private function getTransactionQuery($date, $request)
|
||||
private function getTransactionQuery($list_norujukan, $request)
|
||||
{
|
||||
$extract_norujukan = array_column($list_norujukan, 'norujukan');
|
||||
$startDate = $request->startDate ? Carbon::parse($request->startDate)->startOfDay() : Carbon::now()->startOfDay();
|
||||
$endDate = $request->endDate ? Carbon::parse($request->endDate)->endOfDay() : Carbon::now()->endOfDay();
|
||||
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->where('teller', 'Online')
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get();
|
||||
|
||||
if ($transaction->isEmpty()) {
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->where('teller', 'Online')
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', 'LIKE', '%' . $request->norujukan . '%');
|
||||
})
|
||||
->get();
|
||||
}
|
||||
$transaction = Transaction::whereIn('norujukan', $extract_norujukan)
|
||||
->whereBetween('created_at', [$startDate, $endDate])
|
||||
->where('teller', 'online')
|
||||
->get();
|
||||
|
||||
return $transaction
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->sortByDesc('created_at')->toArray();
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->sortByDesc('created_at')->toArray();
|
||||
}
|
||||
|
||||
private function getTransaksiKeuntunganQuery($date, $request)
|
||||
private function getTransaksiKeuntunganQuery($list_norujukan, $request)
|
||||
{
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->whereHas('transaction', function ($query) {
|
||||
return $query->where('teller', 'Online');
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get();
|
||||
$extract_norujukan = array_column($list_norujukan, 'norujukan');
|
||||
$startDate = $request->startDate ? Carbon::parse($request->startDate)->startOfDay() : Carbon::now()->startOfDay();
|
||||
$endDate = $request->endDate ? Carbon::parse($request->endDate)->endOfDay() : Carbon::now()->endOfDay();
|
||||
|
||||
if ($transaksiKeuntungan->isEmpty()) {
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->whereHas('transaction', function ($query) {
|
||||
return $query->where('teller', 'Online');
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($query) use ($request) {
|
||||
return $query->where('norujukan', 'LIKE', '%' . $request->norujukan . '%');
|
||||
})
|
||||
->orderBy('id', 'desc')
|
||||
->get();
|
||||
}
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereIn('norujukan', $extract_norujukan)
|
||||
->whereBetween('tarikh_bayaran', [$startDate, $endDate])
|
||||
->whereHas('transaction', fn($query) => $query->where('teller', 'online'))
|
||||
->get();
|
||||
|
||||
return $transaksiKeuntungan
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
->when($request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1', function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
}
|
||||
|
||||
public function getGlDetailQuery($date, $request)
|
||||
public function getGlDetailQuery($list_norujukan, $request)
|
||||
{
|
||||
$startDate = $request->startDate ? Carbon::parse($request->startDate)->startOfDay() : Carbon::now()->startOfDay();
|
||||
$endDate = $request->endDate ? Carbon::parse($request->endDate)->endOfDay() : Carbon::now()->endOfDay();
|
||||
|
||||
$extract_norujukan = array_unique(array_column($list_norujukan, 'norujukan'));
|
||||
$extract_kodcaw = array_unique(array_column($list_norujukan, 'kodcaw'));
|
||||
|
||||
$isGroupByNorujukan = $request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1';
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->where('kodcaw', 'KB2')->first()->mysql;
|
||||
$connectionCawangan = Cawangan::on('mysql7')->whereIn('kodcaw', $extract_kodcaw)->get()->pluck('mysql');
|
||||
|
||||
$cawanganTransactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->get()
|
||||
->pluck('kodcaw')
|
||||
->unique()
|
||||
->all();
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->whereIn('kodcaw', $cawanganTransactionOnline)->get()->pluck('mysql');
|
||||
|
||||
$glDetail = $connectionCawangan->map(fn($x) => GlDetail::on($x)->where('teller', 'ONLINE')->whereDate('tarikh', $date)->orderBy('recno')->get())
|
||||
$glDetail = $connectionCawangan->map(fn($x) => GlDetail::on($x)->where('teller', 'ONLINE')->whereBetween('tarikh', [$startDate, $endDate])
|
||||
->orderBy('recno')->get())
|
||||
->flatten()
|
||||
->when($isGroupByNorujukan, function ($glDetail) {
|
||||
return $glDetail->groupBy('descpt')
|
||||
@@ -142,6 +141,13 @@ class TransactionOnlineTrailController extends Controller
|
||||
->when($request->filled('norujukan'), function ($glDetail) use ($request) {
|
||||
return $glDetail->filter(fn($x) => strpos($x->descpt, $request->norujukan) !== false);
|
||||
})
|
||||
->when($request->filled('billplzBillId'), function ($glDetail) use ($extract_norujukan) {
|
||||
return $glDetail->filter(function ($x) use ($extract_norujukan) {
|
||||
return collect($extract_norujukan)->contains(function ($norujukan) use ($x) {
|
||||
return strpos($x->descpt, $norujukan) !== false;
|
||||
});
|
||||
});
|
||||
})
|
||||
->toArray();
|
||||
|
||||
return $glDetail;
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Services\Reports\AccountService;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class AccountCheckJob implements ShouldQueue
|
||||
{
|
||||
use InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
protected $kodcaw;
|
||||
protected $month;
|
||||
protected $jobId;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($kodcaw, $month, $jobId)
|
||||
{
|
||||
$this->kodcaw = $kodcaw;
|
||||
$this->month = $month;
|
||||
$this->jobId = $jobId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$logger = app('job_log');
|
||||
|
||||
try {
|
||||
$check = app(AccountService::class);
|
||||
$test =$check->checkAccount( $this->kodcaw,$this->month);
|
||||
Cache::put("job_result_{$this->jobId}", $test, Carbon::now()->addMinutes(10));
|
||||
Cache::put("job_status_{$this->jobId}", 'completed', Carbon::now()->addMinutes(10));
|
||||
} catch (\Exception $e) {
|
||||
$logger->error($e);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -85,6 +85,11 @@ class WhatsappUnsoldCommodityNotification extends Job
|
||||
$logger->info('End time is in the past');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! $isLatestKomoditiToday) {
|
||||
$logger->info('No commodity is bought today, so technically no komoditi is sold and notifications will not be sent');
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($isLatestKomoditiToday && $isAllKomoditiSold) {
|
||||
$logger->info('All today komoditi is sold');
|
||||
|
||||
@@ -7,7 +7,7 @@ use App\KadarUpah;
|
||||
use Illuminate\Http\Request as HttpRequest;
|
||||
use App\Support\OnePercent as OnePercentEngine;
|
||||
use App\Support\Tawarruq as TawarruqEngine;
|
||||
|
||||
use Illuminate\Support\Facades\Log;
|
||||
class MasterServices
|
||||
{
|
||||
protected $cawangan;
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -0,0 +1,723 @@
|
||||
<?php
|
||||
namespace App\Services\Reports\Account;
|
||||
|
||||
use App\Advansur;
|
||||
use App\Cawangan;
|
||||
use App\Gadai;
|
||||
use App\GlCode;
|
||||
use App\GlDetail;
|
||||
use App\imbangdugabackup;
|
||||
use App\imbangdugalama;
|
||||
use App\Lelong;
|
||||
use App\Panjar;
|
||||
use App\Tebus;
|
||||
use App\Transaction;
|
||||
use App\TransaksiKeuntungan;
|
||||
use App\WTD;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class GeneralLedger
|
||||
{
|
||||
protected $kodcaw;
|
||||
protected $mula;
|
||||
protected $hingga;
|
||||
|
||||
public function __construct($kodcaw,$mula,$hingga){
|
||||
$this->kodcaw = $kodcaw;
|
||||
$this->mula = $mula;
|
||||
$this->hingga = $hingga;
|
||||
}
|
||||
|
||||
private function getTarikhTawarruq($kodcaw){
|
||||
switch ($this->kodcaw) {
|
||||
case 'KB2':
|
||||
$tarikhtawarruq = '2021-04-13';
|
||||
break;
|
||||
case 'WCY':
|
||||
$tarikhtawarruq = '2021-05-04';
|
||||
break;
|
||||
case '1STOP':
|
||||
$tarikhtawarruq = '2021-05-09';
|
||||
break;
|
||||
case '020301':
|
||||
$tarikhtawarruq = '2021-05-18';
|
||||
break;
|
||||
case 'ALS':
|
||||
$tarikhtawarruq = '2021-05-24';
|
||||
break;
|
||||
case 'WB':
|
||||
$tarikhtawarruq = '2021-05-24';
|
||||
break;
|
||||
case 'APM':
|
||||
$tarikhtawarruq = '2021-06-08';
|
||||
break;
|
||||
case 'ARM':
|
||||
$tarikhtawarruq = '2021-06-08';
|
||||
break;
|
||||
case '020306':
|
||||
$tarikhtawarruq = '2021-06-08';
|
||||
break;
|
||||
case '010311':
|
||||
$tarikhtawarruq = '2021-06-13';
|
||||
break;
|
||||
case 'GC':
|
||||
$tarikhtawarruq = '2021-06-13';
|
||||
break;
|
||||
case 'JLI':
|
||||
$tarikhtawarruq = '2021-06-13';
|
||||
break;
|
||||
case '010621':
|
||||
$tarikhtawarruq = '2021-06-15';
|
||||
break;
|
||||
case 'ARP':
|
||||
$tarikhtawarruq = '2021-06-15';
|
||||
break;
|
||||
case '010621':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010136':
|
||||
$tarikhtawarruq = '2021-06-20';
|
||||
break;
|
||||
case '011235':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '011227':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010620':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010617':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010915':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '011228':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '010219':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '011230':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011229':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '011013':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011412':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011234':
|
||||
$tarikhtawarruq = '2021-06-28';
|
||||
break;
|
||||
case '020303':
|
||||
$tarikhtawarruq = '2021-06-29';
|
||||
break;
|
||||
case '010618':
|
||||
$tarikhtawarruq = '2021-06-29';
|
||||
break;
|
||||
case '011231':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011232':
|
||||
$tarikhtawarruq = '2021-06-28';
|
||||
break;
|
||||
case '011233':
|
||||
$tarikhtawarruq = '2021-06-28';
|
||||
break;
|
||||
}
|
||||
|
||||
return $tarikhtawarruq;
|
||||
}
|
||||
|
||||
public function getPinjamanDiberi()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])
|
||||
->where('tagpalsu','=',0)
|
||||
->where([['t_gadai','>=',$this->mula],['t_gadai','<=',$this->hingga]])
|
||||
->sum('pinjaman');
|
||||
|
||||
$tebus = Gadai::on($cawangan['mysql'])
|
||||
->join('tebus as teb','teb.norujukan','=','gadai.norujukan')
|
||||
->where('gadai.sttebus','=','T')
|
||||
->where([['teb.t_tebus','>=',$this->mula],['teb.t_tebus','<=',$this->hingga]])
|
||||
->sum('teb.pinjaman');
|
||||
|
||||
$pembiayaanlelong = Lelong::on($cawangan['mysql'])
|
||||
->join('gadai as gad','gad.norujukan','=','lelong.norujukan')
|
||||
->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga]])
|
||||
->sum('lelong.pinjaman');
|
||||
|
||||
$tebus = $tebus + $pembiayaanlelong;
|
||||
|
||||
$array_rekodemas = ['Gadai' => $gadai,'Tebus' => $tebus];
|
||||
|
||||
return $array_rekodemas;
|
||||
}
|
||||
|
||||
public function getPembiayaanTawarruq()
|
||||
{
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$Gadai = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$this->mula],['t_gadai','<=',$this->hingga],['hargajualan','<>','NULL']])->sum('pinjaman');
|
||||
|
||||
$Tebus = Gadai::on($cawangan['mysql'])
|
||||
->where('gadai.tagpalsu','=',0)
|
||||
->where([['gadai.t_update','>=',$this->mula],['gadai.t_update','<=',$this->hingga],['gadai.hargajualan','<>','NULL']])
|
||||
->whereIn('gadai.sttebus', ['T', 'L'])
|
||||
->sum('gadai.pinjaman');
|
||||
|
||||
|
||||
$rekod_pinjamandiberi = ['Gadai' => $Gadai,'Tebus' => $Tebus];
|
||||
|
||||
return $rekod_pinjamandiberi;
|
||||
}
|
||||
|
||||
public function getBayaranPendahuluan()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$datemula = new Carbon($this->mula);
|
||||
$datemula->addDays(1);
|
||||
|
||||
$datehingga = new Carbon($this->hingga);
|
||||
$datehingga->addDays(1);
|
||||
|
||||
$transaksi_data = TransaksiKeuntungan::on('mysql7')
|
||||
->whereDate('tarikh_bayaran','<=', $this->hingga)
|
||||
->whereDate('tarikh_bayaran','>=', $this->mula)
|
||||
->where('kodcaw',$this->kodcaw)
|
||||
->pluck('norujukan');
|
||||
|
||||
$transaksi_kredit_gadai = Gadai::on($cawangan['mysql'])
|
||||
->whereIn('norujukan',$transaksi_data)
|
||||
->where([['hargajualan','<>','null']])
|
||||
->pluck('norujukan');
|
||||
|
||||
$transaksi_kredit = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->whereIn('transaksi_keuntungan.norujukan',$transaksi_kredit_gadai)
|
||||
->where('trans.trans_type','=','A')
|
||||
->whereDate('tarikh_bayaran','<=', $this->hingga)
|
||||
->whereDate('tarikh_bayaran','>=', $this->mula)
|
||||
->sum('bayaran_pembiayaan');
|
||||
|
||||
|
||||
$tebus = Gadai::on($cawangan['mysql'])
|
||||
->select('gadai.norujukan','gadai.hargajualan','gadai.bakihargajualan')
|
||||
->whereIn('gadai.sttebus',['T','L'])
|
||||
->where([['t_update','>=',$this->mula],['t_update','<=',$this->hingga]])
|
||||
->groupBy('gadai.norujukan')
|
||||
->get();
|
||||
|
||||
$arraytebus = array();
|
||||
|
||||
foreach($tebus as $index => $t)
|
||||
{
|
||||
if($t['hargajualan'] != $t['bakihargajualan'])
|
||||
{
|
||||
array_push($arraytebus,$t['norujukan']);
|
||||
}
|
||||
}
|
||||
|
||||
$transaksi_debit = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.trans_type','=','A')
|
||||
->whereIn('trans.norujukan',$arraytebus)
|
||||
->sum('bayaran_pembiayaan');
|
||||
|
||||
$arraylejer = ["keluar" => $transaksi_debit,"masuk" => $transaksi_kredit];
|
||||
|
||||
return $arraylejer;
|
||||
}
|
||||
|
||||
public function getPendahuluanSerahan()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$serahanpkb = '1000/020';
|
||||
$serahanjmc = '1000/026';
|
||||
$pendahuluanpkb = '7000/102';
|
||||
$pendahuluanjmc = '7000/106';
|
||||
$serahankoperasi = '1000/090';
|
||||
|
||||
//Selepas Tawarruq
|
||||
|
||||
$serahanpkbTawarruq = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=',$serahanpkb)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tarikh','>','2021-03-24')
|
||||
->sum('serahan');
|
||||
|
||||
//Sebelum Tawarruq
|
||||
if($this->kodcaw == 'KB2' || $this->kodcaw == 'WCY' || $this->kodcaw == '1STOP' || $this->kodcaw == 'ARM' || $this->kodcaw == 'APM' || $this->kodcaw == '010621' || $this->kodcaw == '010915')
|
||||
{
|
||||
$serahanpkb = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanpkb)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tarikh','>','2013-12-31')
|
||||
->sum('amaun');
|
||||
|
||||
$serahanJMC = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanjmc)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tarikh','>','2013-12-31')
|
||||
->sum('amaun');
|
||||
|
||||
|
||||
if($this->mula <= '2013-12-31')
|
||||
{
|
||||
$serahanpkblama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('serahan_pkb');
|
||||
|
||||
$serahanjmclama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('serahan_jmc');
|
||||
|
||||
$totaljmc = $serahanJMC + $serahanjmclama;
|
||||
$totalpkb = $serahanpkb + $serahanpkblama;
|
||||
|
||||
$totalserahan = $serahanpkbTawarruq + $totaljmc + $totalpkb;
|
||||
}else{
|
||||
|
||||
$totaljmc = $serahanJMC;
|
||||
$totalpkb = $serahanpkb;
|
||||
|
||||
$totalserahan = $serahanpkbTawarruq + $totaljmc + $totalpkb;
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
if($this->kodcaw == '020301')
|
||||
$serahanbaru = '1000/030';
|
||||
else
|
||||
$serahanbaru = '1000/026';
|
||||
|
||||
$serahanpkb = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanpkb)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->sum('amaun');
|
||||
|
||||
$serahanJMC = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanbaru)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->sum('amaun');
|
||||
|
||||
$totalserahan = $serahanpkbTawarruq + $serahanpkb + $serahanJMC;
|
||||
}
|
||||
|
||||
//Selepas Tawarruq
|
||||
|
||||
$pendahuluanPKBtawarruq = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=',$pendahuluanpkb)
|
||||
->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2021-03-24']])
|
||||
->sum('pendahuluan');
|
||||
|
||||
//Sebelum Tawarruq
|
||||
|
||||
$pendahuluanPKB = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=',$pendahuluanpkb)
|
||||
->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2013-12-31']])
|
||||
->sum('amaun');
|
||||
|
||||
$pendahuluanJMC = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=','7000/106')
|
||||
->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2013-12-31']])
|
||||
->sum('amaun');
|
||||
|
||||
if($this->mula <= '2013-12-31')
|
||||
{
|
||||
$pendahuluanpkblama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('pendahuluan_pkb');
|
||||
|
||||
$pendahuluanjmclama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('pendahuluan_jmc');
|
||||
|
||||
$total = $pendahuluanPKBtawarruq + $pendahuluanjmclama + $pendahuluanpkblama + $pendahuluanPKB + $pendahuluanJMC;
|
||||
|
||||
$pindahkekpkb = GlCode::on($cawangan['mysql'])
|
||||
->where('glcode','=',$serahankoperasi)
|
||||
->sum('amaun');
|
||||
}else{
|
||||
|
||||
$total = $pendahuluanPKBtawarruq + $pendahuluanPKB + $pendahuluanJMC;
|
||||
|
||||
$pindahkekpkb = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
$arraypend = ['pendahuluan' => $total,'serahan' => $totalserahan,'pindahkekpkb' => $pindahkekpkb];
|
||||
|
||||
return $arraypend;
|
||||
}
|
||||
|
||||
public function getpanjar()
|
||||
{
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$baikidanselenggara = Panjar::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tag', '=', 2)
|
||||
->sum('bayaran');
|
||||
|
||||
$perubatan = Panjar::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tag', '=', 1)
|
||||
->sum('bayaran');
|
||||
|
||||
$keraian = Panjar::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tag', '=', 3)
|
||||
->sum('bayaran');
|
||||
|
||||
|
||||
$arraycalculation = ['bds' => $baikidanselenggara, 'perubatan' => $perubatan, 'keraian' => $keraian];
|
||||
|
||||
return $arraycalculation;
|
||||
|
||||
}
|
||||
|
||||
public function BakiLelongCalculation()
|
||||
{
|
||||
$cas_lelong = 0;
|
||||
$jumlah_lelong = 0;
|
||||
$baki_lelong = 0;
|
||||
$rugi_lelong = 0;
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
|
||||
$bakilelong = Lelong::on($cawangan['mysql'])
|
||||
->where('trkhtuntut','>=',$this->mula)
|
||||
->where('trkhtuntut','<=',$this->hingga)
|
||||
->where('baki','>=',0)
|
||||
->sum('baki');
|
||||
|
||||
$rugilelong = Lelong::on($cawangan['mysql'])
|
||||
->where('trkhtuntut','>=',$this->mula)
|
||||
->where('trkhtuntut','<=',$this->hingga)
|
||||
->where('baki','<',0)
|
||||
->sum('baki');
|
||||
|
||||
$data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga]])->get();
|
||||
|
||||
foreach($data_lelong as $index=>$lelong){
|
||||
if($lelong['baki'] >= 0){
|
||||
$cas_lelong += $lelong['cajlelong'];
|
||||
$jumlah_lelong += $lelong['hargajual'];
|
||||
$baki_lelong += $lelong['baki'];
|
||||
}elseif($lelong['baki'] < 0){
|
||||
$cas_lelong += $lelong['cajlelong'];
|
||||
$jumlah_lelong += $lelong['hargajual'];
|
||||
$rugi_lelong += abs($lelong['baki']);
|
||||
}
|
||||
}
|
||||
|
||||
$carbonMula = new Carbon($this->mula);
|
||||
if($carbonMula->month = 9 && $this->kodcaw == 'ARP')
|
||||
{
|
||||
$rugilelong += 119;
|
||||
}
|
||||
|
||||
$arraylelong = ['bakilelong' => $bakilelong, 'rugilelong' => $rugilelong, 'baki' => $baki_lelong, 'rugi' => $rugi_lelong, 'jumlahlelong' => $jumlah_lelong, 'caslelong' => $cas_lelong];
|
||||
|
||||
return $arraylelong;
|
||||
}
|
||||
|
||||
public function getKeuntunganSebenar()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$total = 0;
|
||||
$keuntungansebelumtawarruq = 0;
|
||||
|
||||
//Keuntungan Selepas Tawarruq
|
||||
$keuntungan_data = TransaksiKeuntungan::on('mysql7')
|
||||
// ->join($cawangan['db_name'].'.gadai as db2','transaksi_keuntungan.norujukan','=','db2.norujukan')
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', $this->mula)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->hingga)
|
||||
// ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$current->year)
|
||||
// ->whereNull('db2.hargajualan')
|
||||
// ->sum('bayaran_keuntungan');
|
||||
// ->get();
|
||||
->pluck('norujukan');
|
||||
|
||||
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $keuntungan_data)->whereNull('hargajualan')->pluck('norujukan');
|
||||
|
||||
$keuntungan = TransaksiKeuntungan::on('mysql7')->whereIn('norujukan',$gadaiData)->sum('bayaran_keuntungan');
|
||||
|
||||
// $keuntungan = 0;
|
||||
// if($keuntungan_data){
|
||||
// foreach($keuntungan_data as $index=>$keuntunganData){
|
||||
// $gadaiData = Gadai::on($cawangan['mysql'])->where([['norujukan',$keuntunganData['norujukan']],['hargajualan',null]])->first();
|
||||
// if($gadaiData){
|
||||
// $keuntungan += $keuntunganData['bayaran_keuntungan'];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
$upahtebus = Tebus::on($cawangan['mysql'])
|
||||
->where([['t_tebus','>=',$this->mula],['t_tebus','<=',$this->hingga],['t_tebus','>','2013-12-31']])
|
||||
// ->whereYear('t_tebus','=',$current->year)
|
||||
->sum('upahdibayar');
|
||||
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga],['t_jual','>','2013-12-31'],['t_jual','<=','2022-07-24']])
|
||||
// ->whereYear('t_jual','=',$current->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$upahansur = Advansur::on($cawangan['mysql'])
|
||||
->where('tarikh','>=',$this->mula)
|
||||
->where('tarikh','<=',$this->hingga)
|
||||
// ->whereYear('tarikh','=',$current->year)
|
||||
->sum('upahdibayar');
|
||||
|
||||
|
||||
$keuntungansebelumtawarruq = $upahtebus + $upahlelong + $upahansur;
|
||||
|
||||
// $keuntunganselepastawarruq = $keuntunganselepastawarruqupah;
|
||||
|
||||
// $total = $keuntungansebelumtawarruq + $keuntunganselepastawarruq;
|
||||
|
||||
$total = $keuntungansebelumtawarruq + $keuntungan;
|
||||
|
||||
return $total;
|
||||
}
|
||||
|
||||
public function SemakanKeuntunganLejer(){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
$mulaCarbon = new Carbon($this->mula);
|
||||
$hinggaCarbon = new Carbon($this->hingga);
|
||||
|
||||
/* Start Keuntungan Sebenar Calculation */
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.kodcaw', $this->kodcaw)
|
||||
->whereDate('transaction.created_at' ,'>=', $this->mula)
|
||||
->whereDate('transaction.created_at' ,'<=', $this->hingga)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$mulaCarbon->year)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
$total_keuntungan_sebenar = $total_ansuran + $total_tebus;
|
||||
/* End Keuntungan Sebenar Calculation */
|
||||
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.kodcaw', $this->kodcaw)
|
||||
->whereDate('transaction.created_at' ,'>=', $this->mula)
|
||||
->whereDate('transaction.created_at' ,'<=', $this->hingga)
|
||||
->get();
|
||||
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if (($t_gadai->month == $t_bayaran->month) && ($t_gadai->year == $t_bayaran->year)) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
/* Keuntungan Lelong */
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['tagujrah','=',0],['t_jual', '>=', $this->mula], ['t_jual', '<=', $this->hingga], ['t_jual', '>', '2022-07-24']])
|
||||
->whereYear('t_jual', '=', $mulaCarbon->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
|
||||
$array_keuntungan = ['keuntungan_sebenar' => $total_keuntungan_sebenar, 'keuntungan_semasa' => $total_keuntungan_semasa];
|
||||
|
||||
return $array_keuntungan;
|
||||
}
|
||||
|
||||
public function getwtdLejer()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
|
||||
$wtd = WTD::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->sum('wtd');
|
||||
|
||||
return $wtd;
|
||||
}
|
||||
|
||||
public function getTotalKeuntungan() : Float{
|
||||
|
||||
/* Keuntungan Semasa */
|
||||
$keuntungan_semasa = $this->CurrentProfit($this->mula,$this->hingga,$this->kodcaw);
|
||||
$totalkeuntungan=$keuntungan_semasa['onepercent'];
|
||||
|
||||
return $totalkeuntungan;
|
||||
}
|
||||
|
||||
public function getTotalUjrah() : Float{
|
||||
|
||||
/* Keuntungan Semasa */
|
||||
$keuntungan_semasa = $this->CurrentProfit($this->mula,$this->hingga,$this->kodcaw);
|
||||
$totalujrah = $keuntungan_semasa['ujrah'];
|
||||
|
||||
|
||||
return $totalujrah;
|
||||
}
|
||||
|
||||
public function CurrentProfit($start,$end,$kodcaw){
|
||||
|
||||
$start = new Carbon($start);
|
||||
$year = $start->format('Y');
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
$collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.kodcaw','=',$kodcaw)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $end)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', $start)
|
||||
->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->get();
|
||||
|
||||
/* filtering untuk gadai yang ditebus pada bukan bulan yang sama */
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if($gadai->norujukan === $trans->norujukan){
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month === $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
$ujrah = $this->filterCollection($keuntungan_semasa_collection,'A','ujrah');
|
||||
$onepercent = $this->filterCollection($keuntungan_semasa_collection,'A','onepercent');
|
||||
$ujrah_rebet = $this->filterCollection($keuntungan_semasa_collection,'T','ujrah_rebet');
|
||||
$onepercent_rebet = $this->filterCollection($keuntungan_semasa_collection,'T','onepercent_rebet');
|
||||
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('SUM(ujrah) as ujrah,SUM(onepercent) as onepercent')
|
||||
->where([['tagujrah','=',1],['t_jual','>=',$start],['t_jual','<=',$end]])
|
||||
->whereYear('t_jual','=',$year)
|
||||
->get()->toArray();
|
||||
|
||||
$ujrah_lelong = (empty($upahlelong)) ? 0 : $upahlelong[0]['ujrah'];
|
||||
$onepercent_lelong = (empty($upahlelong)) ? 0 : $upahlelong[0]['onepercent'];
|
||||
|
||||
$total_onepercent = $onepercent + $onepercent_rebet + $onepercent_lelong;
|
||||
$total_ujrah = $ujrah + $ujrah_rebet + $ujrah_lelong;
|
||||
|
||||
return ['ujrah' => $total_ujrah,'onepercent' => $total_onepercent];
|
||||
}
|
||||
|
||||
private function filterCollection($collection,$type,$sumtype) : Float{
|
||||
|
||||
$array_type = ['T','S','P','AT'];
|
||||
return $collection->filter(function ($item) use($type,$array_type) {
|
||||
if($type == 'T')
|
||||
return in_array($item->trans_type, $array_type);
|
||||
|
||||
return $item->trans_type === $type;
|
||||
})->sum($sumtype);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Reports;
|
||||
|
||||
use App\AkruNet;
|
||||
use App\AkruNetPecahan;
|
||||
use App\Cawangan;
|
||||
use App\imbangdugabackup;
|
||||
use App\Services\Reports\Account\GeneralLedger;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AccountService{
|
||||
public function checkAccount($kodcaw,$month){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$kodcaw)->first();
|
||||
$date = Carbon::now()->month($month);
|
||||
$firstDay = (clone $date)->startOfMonth();
|
||||
$lastDay = (clone $date)->endOfMonth();
|
||||
$previousMonth = (clone $date)->subMonthNoOverflow()->endOfMonth();
|
||||
|
||||
$BSheetPreviousMonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$previousMonth->toDateString())->first()->toArray();
|
||||
$BSheetCurrentMonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDay->toDateString())->first()->toArray();
|
||||
|
||||
$akru_net = AkruNet::on($cawangan['mysql'])->where('tahun',$date->year)->where('bulan','<=',$month)->sum('jumlah');
|
||||
$akru_net_ujrah = AkruNetPecahan::on($cawangan['mysql'])->where('tahun',$date->year)->where('bulan','<=',$month)->sum('pend_akru_ujrah');
|
||||
$akru_net_onepercent = AkruNetPecahan::on($cawangan['mysql'])->where('tahun',$date->year)->where('bulan','<=',$month)->sum('pend_akru_1persen');
|
||||
$model_class = "App\StokAudit{$month}";
|
||||
$keun_penggadai = $model_class::on($cawangan['mysql'])->select(DB::raw('SUM(upahblmbyar + utgonepercent + ujrah) as total_sum'))->where('tahun',$date->year)->first()->toArray();
|
||||
|
||||
$gledger = new GeneralLedger($kodcaw,$firstDay,$lastDay);
|
||||
$loan_given = $gledger->getPinjamanDiberi();
|
||||
$loan_tawarruq = $gledger->getPembiayaanTawarruq();
|
||||
$advance_payment = $gledger->getBayaranPendahuluan();
|
||||
$submission = $gledger->getPendahuluanSerahan();
|
||||
$cash = $gledger->getpanjar();
|
||||
$remain_auction = $gledger->BakiLelongCalculation();
|
||||
$real_profit = $gledger->getKeuntunganSebenar();
|
||||
$current_profit = $gledger->SemakanKeuntunganLejer();
|
||||
$unclaimed_money =$gledger->getwtdLejer();
|
||||
$akrual_onepercent = $gledger->getTotalKeuntungan();
|
||||
$akrual_ujrah = $gledger->getTotalUjrah();
|
||||
|
||||
$debit = /* $loan_given['Gadai'] + */ $loan_tawarruq['Gadai'] + $advance_payment['keluar'] +
|
||||
$submission['serahan'] + $cash['bds'] + $cash['perubatan'] + $cash['keraian'] +
|
||||
$remain_auction['rugi'] + $remain_auction['bakilelong'];
|
||||
$credit = /* $loan_given['Tebus'] + */ $loan_tawarruq['Tebus'] + $advance_payment['masuk'] +
|
||||
$remain_auction['rugilelong'] + $remain_auction['baki'] + $real_profit +
|
||||
$current_profit['keuntungan_semasa'] + $submission['pendahuluan'] + $remain_auction['caslelong'] +
|
||||
$current_profit['keuntungan_sebenar'] + $unclaimed_money + $akrual_onepercent + $akrual_ujrah;
|
||||
|
||||
$cash_credit = $debit;
|
||||
$cash_debit = $credit;
|
||||
|
||||
$total_tunaiditangan = $cash_debit - $cash_credit;
|
||||
$total_pembiayaantawarruq = $loan_tawarruq['Gadai'] - $loan_tawarruq['Tebus'];
|
||||
$total_bayaranpendahuluan = $advance_payment['keluar'] - $advance_payment['masuk'];
|
||||
$total_serahan = $submission['serahan'];
|
||||
$total_pendahuluan = $submission['pendahuluan'];
|
||||
$total_bds = -($cash['bds']);
|
||||
$total_perubatan = -($cash['perubatan']);
|
||||
$total_keraian = -($cash['keraian']);
|
||||
$total_keun_sebenar = $current_profit['keuntungan_sebenar'];
|
||||
$total_rugilelong = $remain_auction['rugi'] - $remain_auction['rugilelong'];
|
||||
$total_bakilelong = $remain_auction['baki'] - $remain_auction['bakilelong'];
|
||||
$total_pend_terakru = $akru_net;
|
||||
$total_ujrah = $akru_net_ujrah;
|
||||
$total_onepercent = $akru_net_onepercent;
|
||||
$total_keun_penggadai = $keun_penggadai['total_sum'];
|
||||
|
||||
/* Current Balance Sheets */
|
||||
$array_tally = [];
|
||||
foreach($BSheetCurrentMonth as $key=>$value){
|
||||
if($key !== 'recno' && $key !== 'kodcaw' && $key !== 'tarikh' && $key !== 'tagtally' && $key !== 'created_at' && $key !== 'updated_at'){
|
||||
if(isset(${"total_$key"})){
|
||||
if($key !== 'pend_terakru' && $key !== 'ujrah' && $key !== 'onepercent' && $key !== 'keun_penggadai'){
|
||||
${"temp_$key"} = $BSheetPreviousMonth[$key] + ${"total_$key"};
|
||||
}else{
|
||||
${"temp_$key"} = ${"total_$key"};
|
||||
}
|
||||
$temp_array = ['key' => $key, 'totallejer' => (float)round(${"temp_$key"},2), 'currentbsheet' => (float)round($BSheetCurrentMonth[$key],2),'tally' => (float)round(${"temp_$key"},2) == (float)round($BSheetCurrentMonth[$key],2)];
|
||||
array_push($array_tally,$temp_array);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $array_tally;
|
||||
}
|
||||
}
|
||||
@@ -127,34 +127,54 @@ class ImbangDugaService
|
||||
|
||||
$firstMonth = (clone $currentDate)->firstOfMonth();
|
||||
$lastMonth = (clone $currentDate)->endOfMonth();
|
||||
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')->where('tagbaru', 0)->having('result', '=', 0)->pluck('norujukan');
|
||||
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.kodcaw', $this->kodcaw)
|
||||
->whereYear('transaction.created_at', '=', $currentDate->year)
|
||||
->whereMonth('transaction.created_at', '=', $currentDate->month)
|
||||
->get();
|
||||
|
||||
$summation = Transaction::on('mysql7')
|
||||
->selectRaw("SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan', $get_norujukan)
|
||||
->whereDate('trans.tarikh_bayaran', '>=', $firstMonth)
|
||||
->whereDate('trans.tarikh_bayaran', '<=', $lastMonth)
|
||||
->whereYear('tarikh_bayaran', '=', $currentDate->year)
|
||||
->where('trans.kodcaw', $this->kodcaw)
|
||||
->get()->toArray();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if (($t_gadai->month == $t_bayaran->month) && ($t_gadai->year == $t_bayaran->year)) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
/* Keuntungan Lelong */
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']])
|
||||
->where([['tagujrah','=',0],['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']])
|
||||
->whereYear('t_jual', '=', $currentDate->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$sum_keuntungan = ($summation) ? $summation[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($summation) ? $summation[0]['sum_bayaran'] : 0;
|
||||
|
||||
$total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong);
|
||||
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
|
||||
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
return $total_keuntungan_semasa;
|
||||
@@ -205,10 +225,12 @@ class ImbangDugaService
|
||||
|
||||
if ($t_gadai->month === $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
@@ -295,62 +317,25 @@ class ImbangDugaService
|
||||
$year = (clone $tarikh)->year;
|
||||
$month = (clone $tarikh)->month;
|
||||
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')
|
||||
->having('result', '=', 1)
|
||||
->whereYear('t_gadai', '=', $year)
|
||||
->whereMonth('t_gadai', '<=', $month)
|
||||
->where('sttebus', '<>', '')
|
||||
->pluck('norujukan');
|
||||
$lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString();
|
||||
|
||||
$get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray();
|
||||
|
||||
|
||||
$sum_keun = Transaction::on('mysql7')
|
||||
->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' AND (trans.margin_semasa) = 0 THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
// ->select('trans.norujukan','transaction.trans_type','trans.keuntungan_rebet','trans.bayaran_keuntungan','trans.margin_semasa')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan', $get_norujukan)->get()->toArray();
|
||||
|
||||
$sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0;
|
||||
|
||||
/* Ansuran masuk dalam ni */
|
||||
|
||||
// $get_norujukan_ansuran = Gadai::on($cawangan['mysql'])
|
||||
// ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
// ->whereNotNull('hargajualan')
|
||||
// ->having('result','=',1)
|
||||
// ->whereYear('t_gadai', '=', $year)
|
||||
// ->whereMonth('t_gadai', '<=', $month)
|
||||
// ->where('sttebus','=','')
|
||||
// ->where('tagbaru','=',1)
|
||||
// ->pluck('norujukan');
|
||||
|
||||
// $summation_ansuran = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan');
|
||||
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.trans_type', 'A')
|
||||
->where('transaction.kodcaw', $this->kodcaw)
|
||||
->where('trans.margin_semasa','>',0)
|
||||
->whereYear('transaction.created_at', '=', $year)
|
||||
->whereMonth('transaction.created_at', '<=', $month)
|
||||
->whereMonth('transaction.created_at', '=', $month)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',1)->get();
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$year)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
@@ -358,17 +343,24 @@ class ImbangDugaService
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
$summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
$total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar'];
|
||||
|
||||
$total = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
// $total = $sum_keuntungan + $sum_bayaran;
|
||||
return $total;
|
||||
}
|
||||
|
||||
@@ -911,7 +903,7 @@ class ImbangDugaService
|
||||
$ujrah = $accrual['ujrah'];
|
||||
$onepercent = $accrual['onepercent'];
|
||||
$bayaranpend = -1*($bayaranpend);
|
||||
$untungrugiterkumpul = $this->getUntungRugiTerkumpul();
|
||||
// $untungrugiterkumpul = $this->getUntungRugiTerkumpul();
|
||||
|
||||
$totalharta = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)
|
||||
->get()
|
||||
@@ -922,9 +914,9 @@ class ImbangDugaService
|
||||
|
||||
$totaltanggungan = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)
|
||||
->get()
|
||||
->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan,$untungrugiterkumpul) {
|
||||
->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan) {
|
||||
return $pend_terakru + $ig['bds'] + $ig['perubatan'] + $ig['keraian'] + $ig['rugilelong'] + $ig['bakilelong']
|
||||
+ $ig['wtd'] + $untungrugiterkumpul + $keun_sebenar + $pendahuluan + $ig['cajlelong']
|
||||
+ $ig['wtd'] + $ig['untungrugiterkumpul'] + $keun_sebenar + $pendahuluan + $ig['cajlelong']
|
||||
+ $ig['cajperkhidmatan'] + $ig['cajlelongxtra'] + $ig['upahsimpanxtra'] + $ig['bakilelongxtra'] + $ig['rugilelongxtra']
|
||||
+ $ig['utgterkumpulxtra'] + $ig['jualan1stop'] + $ig['hapuskira'] + $ujrah + $onepercent;
|
||||
});
|
||||
@@ -937,7 +929,6 @@ class ImbangDugaService
|
||||
$booltally = false;
|
||||
}
|
||||
|
||||
|
||||
imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)->update([
|
||||
'tunaiditangan' => $tunaiditangan,
|
||||
'keun_penggadai' => $keuntungan_penggadai,
|
||||
@@ -948,7 +939,7 @@ class ImbangDugaService
|
||||
'bayaranpendahuluan' => $bayaranpend,
|
||||
'serahan' => $serahan,
|
||||
'pendahuluan' => $pendahuluan,
|
||||
'untungrugiterkumpul' => $untungrugiterkumpul,
|
||||
// 'untungrugiterkumpul' => $untungrugiterkumpul,
|
||||
'totalharta' => round($totalharta[0], 2),
|
||||
'totaltanggungan' => round($totaltanggungan[0], 2),
|
||||
'tagtally' => $booltally,
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace App\Services\Reports;
|
||||
use App\AkruNetPecahan;
|
||||
use App\Cawangan;
|
||||
use App\CawanganDetail;
|
||||
use App\Lelong;
|
||||
use App\Gadai;
|
||||
use App\StokAudit1;
|
||||
use App\StokAudit10;
|
||||
@@ -397,10 +398,12 @@ class OnePercentService
|
||||
|
||||
if ($t_gadai->month === $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
@@ -409,8 +412,17 @@ class OnePercentService
|
||||
$ujrah_rebet = $this->filterCollection($keuntungan_semasa_collection,'T','ujrah_rebet');
|
||||
$onepercent_rebet = $this->filterCollection($keuntungan_semasa_collection,'T','onepercent_rebet');
|
||||
|
||||
$total_onepercent = $onepercent + $onepercent_rebet;
|
||||
$total_ujrah = $ujrah + $ujrah_rebet;
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('SUM(ujrah) as ujrah,SUM(onepercent) as onepercent')
|
||||
->where([['tagujrah','=',1],['t_jual','>=',$start],['t_jual','<=',$end]])
|
||||
->whereYear('t_jual','=',$year)
|
||||
->get()->toArray();
|
||||
|
||||
$ujrah_lelong = (empty($upahlelong)) ? 0 : $upahlelong[0]['ujrah'];
|
||||
$onepercent_lelong = (empty($upahlelong)) ? 0 : $upahlelong[0]['onepercent'];
|
||||
|
||||
$total_onepercent = $onepercent + $onepercent_rebet + $onepercent_lelong;
|
||||
$total_ujrah = $ujrah + $ujrah_rebet + $ujrah_lelong;
|
||||
|
||||
return ['ujrah' => $total_ujrah,'onepercent' => $total_onepercent];
|
||||
}
|
||||
@@ -479,7 +491,7 @@ class OnePercentService
|
||||
$array_type = ['T','S','P','AT'];
|
||||
return $collection->filter(function ($item) use($type,$array_type) {
|
||||
if($type == 'T')
|
||||
return in_array($type, $array_type);
|
||||
return in_array($item->trans_type, $array_type);
|
||||
|
||||
return $item->trans_type === $type;
|
||||
})->sum($sumtype);
|
||||
|
||||
@@ -1411,4 +1411,30 @@ class RingkasanHarianService
|
||||
|
||||
return $panjar;
|
||||
}
|
||||
|
||||
public function getLaporanCawanganKPI()
|
||||
{
|
||||
|
||||
$laporan_harian = [];
|
||||
|
||||
$total_gadai = Gadai::on($this->connectionCawangan)->whereDate('t_gadai', '>=', $this->startDate)->whereDate('t_gadai', '<=', $this->endDate)->sum('pinjaman');
|
||||
$bilangan_gadai = Gadai::on($this->connectionCawangan)->whereDate('t_gadai', '>=', $this->startDate)->whereDate('t_gadai', '<=', $this->endDate)->where('pinjaman', '>', 0)->count();
|
||||
$bilangan_customer_baru = $this->getBilanganCustomerBaru();
|
||||
$total_keuntungan_online = $this->getTotalKeuntunganOnline();
|
||||
$upahsimpankaunter = $this->getUpahSimpanKaunter();
|
||||
$keuntungansebenarkaunter = $this->getKeuntunganSebenarKaunter();
|
||||
$totalpenebusan = $this->getTotalPenebusan();
|
||||
|
||||
array_push($laporan_harian, [
|
||||
'total_gadai' => $total_gadai,
|
||||
'bilangan_gadai' => $bilangan_gadai,
|
||||
'bilangan_customer_baru' => $bilangan_customer_baru,
|
||||
'total_keuntungan_online' => $total_keuntungan_online,
|
||||
'upahsimpankaunter' => $upahsimpankaunter,
|
||||
'keuntungansebenarkaunter' => $keuntungansebenarkaunter,
|
||||
'total_tebus' => $totalpenebusan,
|
||||
]);
|
||||
|
||||
return response()->json($laporan_harian);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,8 +70,9 @@ class OnePercent extends MasterServices
|
||||
}
|
||||
|
||||
public function getOnePercent(HttpRequest $request){
|
||||
$margin = (!is_numeric($request->margin)) ? 0 : $request->margin;
|
||||
$onePercentServices = new Calculation();
|
||||
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$request->margin);
|
||||
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$margin);
|
||||
|
||||
return $keuntungan;
|
||||
}
|
||||
@@ -180,7 +181,14 @@ class OnePercent extends MasterServices
|
||||
|
||||
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||
$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;
|
||||
}
|
||||
@@ -206,6 +214,13 @@ class OnePercent extends MasterServices
|
||||
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 */
|
||||
|
||||
public function test(){
|
||||
|
||||
@@ -8,6 +8,7 @@ use App\Support\v1\GadaiV1 as Version1Gadai;
|
||||
use App\Services\MasterServices;
|
||||
use App\Support\v1\Penebusan;
|
||||
use Illuminate\Http\Request as HttpRequest;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class Tawarruq extends MasterServices
|
||||
{
|
||||
@@ -165,7 +166,7 @@ class Tawarruq extends MasterServices
|
||||
|
||||
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
|
||||
$response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request);
|
||||
$response = $tebus->transaksiPembiayaanSemula($this->kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,10 @@ use App\KadarUpah;
|
||||
use App\Support\v2\Calculation;
|
||||
use Carbon\Carbon;
|
||||
use App\Gadai;
|
||||
use App\HargaEmas;
|
||||
use App\InOutMar;
|
||||
use App\KomuditiPurchase;
|
||||
use App\KomuditiTransaksi;
|
||||
use App\Marhun;
|
||||
use App\Moratorium;
|
||||
use App\Support\OnePercent;
|
||||
@@ -455,6 +458,12 @@ class Penebusan
|
||||
$rebet = 0;
|
||||
}
|
||||
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','T')->first();
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||
|
||||
if($gadai['hargajualan'] == null){
|
||||
@@ -592,6 +601,12 @@ class Penebusan
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
|
||||
|
||||
//check duplicate
|
||||
$data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first();
|
||||
if(!empty($data)){
|
||||
return 'duplicate';
|
||||
}
|
||||
|
||||
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
|
||||
'sttebus' => "T",
|
||||
't_update' => $current->toDateString(),
|
||||
@@ -759,4 +774,326 @@ class Penebusan
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -242,6 +242,8 @@ class GadaiV2
|
||||
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['percentpinj']);
|
||||
|
||||
$onepercentasal = $gadai['pinjaman'] * (1/100);
|
||||
$ujrahasal = $onepercent->getRoundedMethod($ujrahasal);
|
||||
$onepercentasal = $onepercent->getRoundedMethod($onepercentasal);
|
||||
|
||||
try {
|
||||
|
||||
|
||||
@@ -9,8 +9,13 @@ use App\KadarUpah;
|
||||
use App\Support\v2\Calculation;
|
||||
use Carbon\Carbon;
|
||||
use App\Gadai;
|
||||
use App\HargaEmas;
|
||||
use App\InOutMar;
|
||||
use App\KomuditiPurchase;
|
||||
use App\KomuditiTransaksi;
|
||||
use App\Marhun;
|
||||
use App\FailoverTransaction;
|
||||
use App\FailoverTransactionFailed;
|
||||
use App\Moratorium;
|
||||
use App\Support\OnePercent;
|
||||
use App\Tebus;
|
||||
@@ -200,8 +205,9 @@ class Penebusan
|
||||
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
|
||||
|
||||
$upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']);
|
||||
$upahsemasa_raw = $bilang_bln * $upah['keuntungan'];
|
||||
$upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw);
|
||||
$onepercent = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
|
||||
$ujrah = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
|
||||
$upahsemasa_raw = $onepercentservices->getRoundedMethod($onepercent + $ujrah);
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+24
-24
@@ -5,18 +5,18 @@ return [
|
||||
'default' => 'mysql7',
|
||||
'migrations' => 'migrations',
|
||||
'connections' => [
|
||||
'mysql' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST_7'),
|
||||
'port' => env('DB_PORT_7'),
|
||||
'database' => env('DB_DATABASE_7'),
|
||||
'username' => env('DB_USERNAME_7'),
|
||||
'password' => env('DB_PASSWORD_7'),
|
||||
'charset' => 'utf8',
|
||||
'collation' => 'utf8_unicode_ci',
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
],
|
||||
// 'mysql' => [
|
||||
// 'driver' => 'mysql',
|
||||
// 'host' => env('DB_HOST_7'),
|
||||
// 'port' => env('DB_PORT_7'),
|
||||
// 'database' => env('DB_DATABASE_7'),
|
||||
// 'username' => env('DB_USERNAME_7'),
|
||||
// 'password' => env('DB_PASSWORD_7'),
|
||||
// 'charset' => 'utf8',
|
||||
// 'collation' => 'utf8_unicode_ci',
|
||||
// 'prefix' => '',
|
||||
// 'strict' => false,
|
||||
// ],
|
||||
'lelong' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST_LELONG'),
|
||||
@@ -29,18 +29,6 @@ return [
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
],
|
||||
'mysql37' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST_37'),
|
||||
'port' => env('DB_PORT_37'),
|
||||
'database' => env('DB_DATABASE_37'),
|
||||
'username' => env('DB_USERNAME_37'),
|
||||
'password' => env('DB_PASSWORD_37'),
|
||||
'charset' => 'utf8',
|
||||
'collation' => 'utf8_unicode_ci',
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
],
|
||||
'mysql2' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST_2'),
|
||||
@@ -485,5 +473,17 @@ return [
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
],
|
||||
'mysql38' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST_38'),
|
||||
'port' => env('DB_PORT_38'),
|
||||
'database' => env('DB_DATABASE_38'),
|
||||
'username' => env('DB_USERNAME_38'),
|
||||
'password' => env('DB_PASSWORD_38'),
|
||||
'charset' => 'utf8',
|
||||
'collation' => 'utf8_unicode_ci',
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateFailoverTransactionTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('mysql7')->create('failover_transaction', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('kodcaw',10);
|
||||
$table->string('teller',255);
|
||||
$table->string('old_norujukan',50);
|
||||
$table->string('new_norujukan',50)->nullable();
|
||||
$table->boolean('db_caw')->default(false); // Boolean for db_caw, default to false
|
||||
$table->boolean('db_online')->default(false);
|
||||
$table->enum('status', ['pending', 'resolved', 'failed'])->default('pending'); // Use ENUM for statuses
|
||||
$table->timestamp('resolve_time')->nullable(); // Timestamp for resolve time, nullable
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('mysql7')->dropIfExists('failover_transaction');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateFailoverTransactionFailedTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('failover_transaction_failed', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('original_id'); // Reference to failover_transaction
|
||||
$table->string('kodcaw');
|
||||
$table->string('norujukan');
|
||||
$table->integer('code_error');
|
||||
$table->text('error_message')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('failover_transaction_failed');
|
||||
}
|
||||
}
|
||||
@@ -29,5 +29,6 @@ $router->group(['prefix' => 'api/reports'], function () use ($router) {
|
||||
$router->get('balancesheets/get',['uses' => 'BalanceSheetsController@getBalanceSheetsList']);
|
||||
|
||||
$router->get('updateig',['uses' => 'BalanceSheetsController@insertBalanceSheets']);
|
||||
$router->get('updateigall',['uses' => 'BalanceSheetsController@updateIGBalanceSheets']);
|
||||
});
|
||||
});
|
||||
|
||||
+7
-1
@@ -18,6 +18,7 @@
|
||||
// });
|
||||
|
||||
use App\Http\Controllers\TransactionOnlineTrailController;
|
||||
use App\Http\Controllers\Reports\RingkasanHarianController;
|
||||
use App\Transaction;
|
||||
|
||||
$router->group(['namespace' => '\Rap2hpoutre\LaravelLogViewer'], function() use ($router) {
|
||||
@@ -147,9 +148,10 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
//Maintenance API TEBUS
|
||||
// $router->get('rebet/{kodcaw}/{norujukan}',['uses' => 'TebusController@rebet']);
|
||||
$router->put('updatetebus/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdate']);
|
||||
$router->get('tebus/norujukan/{kodcaw}/{norujukan}',['uses'=>'TebusController@showOneTebusbyRujukanAndCawangan']);
|
||||
$router->put('updateautotawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusUpdateAutoTawarruq']);
|
||||
$router->get('listpenebusanhistory/{kodcaw}',['uses'=>'TebusController@listhistorypenebusan']);
|
||||
|
||||
$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']);
|
||||
@@ -457,6 +459,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
||||
$router->get('TuntutBaki/resit/{kodcaw}/{norujukan}',['uses'=>'LelongController@resitLelong']);
|
||||
$router->post('Tuntutbakisimpan/{kodcaw}',['uses'=>'LelongController@simpantuntutbaki']);
|
||||
$router->put('tuntutbakiupdate/{kodcaw}/{norujukan}',['uses'=>'LelongController@updatetagtbaki']);
|
||||
$router->get('TuntutBakiTarikh/{kodcaw}',['uses'=>'LelongController@showTuntutBakiTarikh']);
|
||||
|
||||
//API KOD PRODUK
|
||||
$router->get('getProduct/{kodcaw}',['uses'=>'ProductController@getProduct']); //add 2021-02-11
|
||||
@@ -859,6 +862,8 @@ $router->group(['prefix'=>'admin'], function () use ($router){
|
||||
|
||||
$router->get('ig/penghutang',['uses'=>'AdminPageController@ListPenghutang']);
|
||||
$router->get('ig/bayaran_penghutang',['uses'=>'AdminPageController@SenaraiBayaranHutang']);
|
||||
$router->get('get/accountcheck',['uses'=>'AdminPageController@getAccountList']);
|
||||
$router->post('get/jobstatus',['uses'=>'AdminPageController@getJobStatus']);
|
||||
});
|
||||
|
||||
|
||||
@@ -884,6 +889,7 @@ $router->group(['prefix'=>'lelong'], function () use ($router){
|
||||
$router->get('get/listbatchlelongT/{kodcaw}',['uses'=>'LelongController@showAllLelongByCawanganBatchnoT']);
|
||||
$router->get('get/listlelongbybatchT/{kodcaw}/{batchno}',['uses'=>'LelongController@showAllLelongByCawanganbyBatchnoT']);
|
||||
$router->get('get/upahtawarruqbytarikh',['uses'=>'TebusController@upahTawarruqByTarikh']);
|
||||
$router->get('ringkasan-harian/{kod_cawangan}', ['uses' => 'Reports\RingkasanHarianController@getLaporanCawanganKPI']);
|
||||
|
||||
});
|
||||
|
||||
|
||||
+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