Merge branch 'ujrah_master' of https://bitbucket.org/arrahn-pkb/api_arrahn into ainiedev

This commit is contained in:
Ainie Hayatie
2024-01-03 12:36:48 +08:00
64 changed files with 7980 additions and 1483 deletions
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CawanganNotis extends Model
{
protected $table = 'cawangan_notis';
public $timestamps = true;
protected $primaryKey = 'id';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id','notis_id','kodcaw','peringatan','daritempoh','hinggatempoh','status'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
// protected $hidden = [];
}
@@ -0,0 +1,104 @@
<?php
namespace App\Console\Commands;
use App\Cawangan;
use App\Helper;
use Illuminate\Console\Command;
class CawanganDebugConnections extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'cawangan:debug-connections';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Debugs cawangan connections';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$all_cawangan = Cawangan::withoutGlobalScopes()->where('db_name', 'like', 'arrahn_%')->get(['mysql', 'db_name'])->toArray();
$all_cawangan_in_config = config('database.connections');
$all_cawangan_in_config_keys = array_keys($all_cawangan_in_config);
$all_cawangan_in_config = array_reduce($all_cawangan_in_config_keys, function ($accumulator, $current_key_value) use ($all_cawangan_in_config) {
$accumulator[] = [
'mysql' => $current_key_value,
'database' => $all_cawangan_in_config[$current_key_value]['database'],
];
return $accumulator;
}, []);
$all_cawangan_in_config = array_filter($all_cawangan_in_config, function ($connection) {
$is_cawangan_databases = strpos($connection['database'], 'arrahn_') === 0;
if ($is_cawangan_databases) {
return true;
}
});
function filterArraysByDatabaseNames($array1, $array2)
{
$idToNameMap = [];
foreach ($array1 as $item) {
$idToNameMap[$item['mysql']] = $item['db_name'];
}
$filteredArray2 = array_filter($array2, function ($item) use ($idToNameMap) {
return $idToNameMap[$item['mysql']] !== $item['database'];
});
return $filteredArray2;
}
$filteredConnections = filterArraysByDatabaseNames($all_cawangan, $all_cawangan_in_config);
// checks if there is connection errors
if (Helper::getInactiveCawanganDbConnection() > 0) {
dump('Inactive cawangan connection detected : ');
dump(Helper::getInactiveCawanganDbConnection());
}
// checks if config connection do not exist referring to arrahn_master_db
if (count($all_cawangan) !== count($all_cawangan_in_config)) {
$db_not_config = array_diff(array_column($all_cawangan, 'db_name'), array_column($all_cawangan_in_config, 'database'));
dump(implode(', ', $db_not_config) . ' not configured in database config');
}
// checks if config connection databases are not tally fwith arrahn master db
if (count($filteredConnections) !== 0) {
dump('Database config names are not tally arrahn_master_db : ');
dump($filteredConnections);
}
}
}
+2 -1
View File
@@ -19,6 +19,7 @@ class Kernel extends ConsoleKernel
protected $commands = [
Commands\DailyGadai::class,
Commands\MigrationOnePercent::class,
Commands\CawanganDebugConnections::class,
];
@@ -31,7 +32,7 @@ class Kernel extends ConsoleKernel
protected function schedule(Schedule $schedule)
{
//
$schedule->command('gadai:daily')->daily()->timezone('Asia/Kuala_Lumpur')->at('00:00');
}
}
+75 -16
View File
@@ -2,6 +2,7 @@
namespace App;
use DateTime;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
class Helper
@@ -32,29 +33,87 @@ class Helper
public static function getActiveCawanganDbConnection()
{
$queryActiveCawanganDbConnection = function () {
$all_active_db_keys = array_filter(array_keys(config('database.connections')), function ($connection) {
try {
DB::connection($connection)->getPdo();
return true;
} catch (\Throwable $th) {
return false;
}
});
$non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb'];
$all_cawangan_db = array_filter($all_active_db_keys, function ($db_key) use ($non_cawangan_database) {
$isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database);
if ($isNotCawangan) {
return false;
}
$all_active_db_keys = array_filter(array_keys(config('database.connections')), function ($connection) {
try {
DB::connection($connection)->getPdo();
return true;
} catch (\Throwable $th) {
return false;
}
});
});
$non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb'];
return $all_cawangan_db;
$all_cawangan_db = array_filter($all_active_db_keys, function ($db_key) use ($non_cawangan_database) {
$isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database);
};
if ($isNotCawangan) {
return false;
}
$all_cawangan_db_connection = Cache::store('file')->get('active_cawangan_db_connection');
return true;
});
if ($all_cawangan_db_connection === null or count($all_cawangan_db_connection) === 0) {
$all_cawangan_db_connection = $queryActiveCawanganDbConnection();
Cache::store('file')->put('active_cawangan_db_connection', $all_cawangan_db_connection, 3600);
}
return $all_cawangan_db;
return $all_cawangan_db_connection;
}
public static function getInactiveCawanganDbConnection()
{
$queryInactiveCawanganDbConnection = function () {
$all_inactive_db_keys = array_filter(array_keys(config('database.connections')), function ($connection) {
try {
DB::connection($connection)->getPdo();
return false;
} catch (\Throwable $th) {
return true;
}
});
$non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb'];
$all_cawangan_db = array_filter($all_inactive_db_keys, function ($db_key) use ($non_cawangan_database) {
$isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database);
$isNotCawanganKey = in_array($db_key, $non_cawangan_database);
if ($isNotCawangan OR $isNotCawanganKey) {
return false;
}
return true;
});
return $all_cawangan_db;
};
$all_cawangan_db_connection = array_map(function ($db_connection) {
return [
'connection' => $db_connection,
'database' => config('database.connections.' . $db_connection . '.database'),
];
}, $queryInactiveCawanganDbConnection());
return $all_cawangan_db_connection;
}
public static function getActiveCawangan() {
return Cawangan::whereIn('mysql', helper::getactivecawangandbconnection())->get();
}
+41 -5
View File
@@ -3157,7 +3157,29 @@ class AdminPageController extends Controller
->where('margin_semasa','=',0)
->sum('bayaran_keuntungan');
$total = $sum_keun_tebus + $sum_keun_ansuran;
$sagbaru_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)
->pluck('norujukan');
$keuntungan_baru = 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',$sagbaru_norujukan)
->where('transaction.trans_type','A')
->sum('bayaran_keuntungan');
$total = $sum_keun_tebus + $sum_keun_ansuran + $keuntungan_baru;
return response()->json($total);
@@ -3607,9 +3629,11 @@ class AdminPageController extends Controller
$keuntungansebenar = ($keuntungan + $keuntunganreducing + $ansuran + $bukanansuran);
$previousYear = Carbon::now()->subYears(1);
$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','=','2022')->where('sttebus','<>','')->pluck('norujukan');
->whereNotNull('hargajualan')->having('result','=',1)->whereYear('t_gadai','>=','2022')->whereYear('t_gadai','<=',$previousYear)->where('sttebus','<>','')->pluck('norujukan');
$sum_keun = Transaction::on('mysql7')
->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) = 'T' 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")
@@ -3625,9 +3649,8 @@ class AdminPageController extends Controller
$total_keuntungan_sebenar = $sum_keuntungan + $sum_bayaran;
$previousYear = Carbon::now()->subYears(1);
$available_akru = AkruNet::on($cawangan['mysql'])
->where('tahun',$previousYear->year)
->where('tahun','<=',$previousYear->year)
->sum('jumlah');
$total = ($utgrugilama + $lelong + $upahsimpantebus + $upahsimpanlelong + $upahsimpanansur + $gstcajlelong + $keuntungansebenar + $upahsimpankeuntungansebelumtawarruq + $available_akru + $total_keuntungan_sebenar) + $parameter;
@@ -3635,7 +3658,6 @@ class AdminPageController extends Controller
if($kodcaw == '011229')
$total -= 45390.37;
return response()->json($total,200);
}
@@ -3752,4 +3774,18 @@ class AdminPageController extends Controller
return response()->json($bayaran);
}
}
public function ListCawangan(Request $request){
$cawangan = Cawangan::on('mysql7')->get();
return response()->json($cawangan);
}
public function ListCawangan_Update(Request $request){
$cawangan = Cawangan::on('mysql7')
->where('mid',$request->mid)
->update(['version' => $request->version]);
return response()->json($cawangan);
}
}
@@ -0,0 +1,372 @@
<?php
namespace App\Http\Controllers;
use App\Gadai;
use App\Marhun;
use App\Cawangan;
use App\Transaction;
use App\TransaksiKeuntungan;
use App\TransactionOnline;
use App\batalGadai;
use App\TuntutBaki;
use App\AnsRugi;
use App\Lelong;
use App\WTD;
use App\HapusKira;
use App\Tebus;
use App\Vault;
use App\Tunai;
use App\Komuditi;
use App\KawalanStokLama;
use App\KawalanStok;
use App\KadarUpah;
use App\Moratorium;
use App\Audit;
use App\Customer;
use App\KomuditiPurchase;
use App\KomuditiTransaksi;
use App\Advansur;
use App\BlastWasap;
use App\Notis;
use App\CawanganNotis;
use App\NotisPeringatan;
use App\Jobs\WhatsappPelangganSAGLAMA;
use App\Jobs\SMSPelangganSAGLAMA;
use Illuminate\Http\Request;
use App\CawanganDetail;
use App\BlastSMS;
use App\Jobs\ARCCWhatsappPelangganSAGLAMAbysag;
use App\Jobs\ARCCSMSPelangganSAGLAMAbysag;
use App\Services\OnePercentServices;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class CallCenterController extends Controller
{
public function showAllCawangans(Request $request)
{
$daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh;
$checkcawangannotis = Cawangan::on('mysql7')
// ->whereNotExists(function($query) use($daritempoh,$hinggatempoh)
// {
// $query->select(DB::raw(1))
// ->from('cawangan_notis')
// ->whereRaw('cawangan_notis.kodcaw = arrahn_master_db.kodcaw')
// ->where('daritempoh','=',$daritempoh)
// ->where('hinggatempoh','=',$hinggatempoh);
// } )
->orderBy('details_caw','ASC')->get();
// dd($checkcawangannotis);
return response()->json($checkcawangannotis);
}
public function datagadai($kodcaw,Request $request)
{
// dd($request->all(), $kodcaw);
$daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh;
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$datagadai = Gadai::on($cawangan['mysql'])
->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=',''],['taglel','=',0],['tagnotis','=',0]])
->orderBy('t_gadai', 'ASC')
->orderBy('sirig', 'ASC');
// ->get();
// dd($datagadai);
$arraynorujukan = $datagadai->pluck('norujukan')->toArray();
$rekodgadai = $datagadai->get();
$totalrekod = $datagadai->count('norujukan');
$totalberat = $datagadai->sum('berat');
$totalnilaimarhun = $datagadai->sum('nilaimarhun');
$totalpinjaman = $datagadai->sum('pinjaman');
$totalbakipjm = $datagadai->sum('bakipjm');
$totaltunggakan = $datagadai->sum('tunggakan');
$arrayrekod = ['rekod' => $rekodgadai, 'totalsag' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpembiayaan'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan];
// dd($arrayrekod);
return response()->json($arrayrekod,200);
}
public function insertdatagadai($kodcaw,Request $request)
{
$daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh;
$notisid = $request->notisid;
$currentDate = Carbon::now();
// $currentDate = $currentDate->toDateString();
$tarikh_notis = $currentDate->toDateString();
$sag_cawangans = [];
$bil_surat = 0;
// dd($kodcaw);
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
// $notis = Notis::create([
// 'tarikh_notis' => $tarikh_notis,
// 'daritempoh' => $daritempoh,
// 'hinggatempoh' => $hinggatempoh,
// 'sts_notis' => 1,
// 'peringatan' => 1
// ]);
$datagadai = Gadai::on($cawangan['mysql'])
->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=',''],['taglel','=',0],['tagnotis','=',0]])
->orderBy('t_gadai', 'ASC')
->orderBy('sirig', 'ASC');
// ->get();
array_push($sag_cawangans,['data'=>$datagadai->get()]);
// dd($sag_cawangans);
foreach($sag_cawangans as $index=>$cawnotis){
$caw_notis = new CawanganNotis;
$caw_notis->notis_id = $notisid;
$caw_notis->kodcaw = $kodcaw;
$caw_notis->peringatan = 1;
$caw_notis->daritempoh = $daritempoh;
$caw_notis->hinggatempoh = $hinggatempoh;
$caw_notis->status = 1;
$caw_notis->save();
$suratcaw = $cawnotis['data'];
$notis_peringatan_arr = [];
$now = Carbon::now();
foreach($suratcaw as $surat)
{
$notis_to_be_inserted = new NotisPeringatan();
$notis_to_be_inserted->notis_id = $notisid;
$notis_to_be_inserted->tarikh_notis = $tarikh_notis;
$notis_to_be_inserted->kodcaw = $kodcaw;
$notis_to_be_inserted->norujukan = $surat->norujukan;
$notis_to_be_inserted->nokp = $surat->nokp;
$notis_to_be_inserted->jbg = $surat->tempoh;
$notis_to_be_inserted->kadarupah = $surat->kadarupah;
$notis_to_be_inserted->nilaimarhun = $surat->nilaimarhun;
$notis_to_be_inserted->pinjaman = $surat->bakipjm;
$notis_to_be_inserted->bakiupah = $surat->bakiupah;
$notis_to_be_inserted->berat = $surat->berat;
$notis_to_be_inserted->marhun = $surat->marhun;
$notis_to_be_inserted->percent = $surat->percentpinj;
$notis_to_be_inserted->peringatan = '1';
$notis_peringatan_arr[] = $notis_to_be_inserted->attributesToArray();
//updatetagnotisdlmgadai
$updateTagNotis = Gadai::on($cawangan['mysql'])->where('norujukan',$surat->norujukan)->update([
'tagnotis'=> 1
]);
}
$notis_peringatan_collection = collect($notis_peringatan_arr);
NotisPeringatan::insert($notis_peringatan_arr);
}
return response()->json("success");
}
public function getbatchnotis(Request $request)
{
$currentDate = Carbon::now();
$tarikh_notis = $currentDate->toDateString();
$daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh;
$notis = Notis::create([
'tarikh_notis' => $tarikh_notis,
'daritempoh' => $daritempoh,
'hinggatempoh' => $hinggatempoh,
'sts_notis' => 1,
'peringatan' => 1
]);
$batchnotis = Notis::on('mysql7')->orderBy('id','desc')->first()->id;
return response()->json($batchnotis);
}
public function senarainotisperingatan()
{
$current = Carbon::now();
$current = new Carbon();
$arraybatch = [];
$batchnotis = Notis::on('mysql7')->get();
// $cawangan_all = Cawangan::on('mysql7')->get();
// $cawnotis_all = [];
// foreach ($batchnotis as $index => $cawangan){
// $notis = CawanganNotis::on('mysql7')->get();
// if(sizeof($notis) != 0){
// array_push($cawnotis_all,$notis);
// }
// }
return response()->json($batchnotis);
}
public function getcawnotis($notisid)
{
$current = Carbon::now();
$current = new Carbon();
$arraybatch = [];
$batchnotis = Notis::on('mysql7')->where('id',$notisid)->get();
$cawangan_all = Cawangan::on('mysql7')->get();
$cawnotis_all = [];
foreach ($batchnotis as $index => $cawangan){
$notis = CawanganNotis::on('mysql7')
->join('arrahn_master_db', 'arrahn_master_db.kodcaw', '=', 'cawangan_notis.kodcaw')
->where('notis_id',$notisid)->get();
if(sizeof($notis) != 0){
array_push($cawnotis_all,$notis);
}
}
return response()->json($cawnotis_all);
}
public function getcawnotisbycaw(Request $request)
{
$notisid = $request->notisid;
$current = Carbon::now();
$current = new Carbon();
$arraybatch = [];
$batchnotis = Notis::on('mysql7')->where('id',$notisid)->get();
$cawangan_all = Cawangan::on('mysql7')->get();
$cawnotis_all = [];
$notis = CawanganNotis::on('mysql7')
->join('arrahn_master_db', 'arrahn_master_db.kodcaw', '=', 'cawangan_notis.kodcaw')
->where('notis_id',$notisid)->get();
foreach ($notis as $index => $cawangan){
// dd($cawangan['kodcaw']);
// dd($cawangan);
$notisbycaw = NotisPeringatan::on('mysql7')
->where('notisperingatan.notis_id',$notisid)->where('notisperingatan.kodcaw',$cawangan['kodcaw'])
->distinct()
->get();
// dd($notisbycaw);
$totalsag = $notisbycaw->count('norujukan');
$totalbakipjm = $notisbycaw->sum('pinjaman');
// if(sizeof($notis) != 0){
array_push($cawnotis_all,['namacaw' => $notis, 'detailbycaw' => $notisbycaw,'totalsag' =>$totalsag,'totalbakipjm' =>$totalbakipjm]);
// }
}
return response()->json($cawnotis_all);
}
public function bycawnotisperingatan($kodcaw,$notisid)
{
$cawnotis_all = [];
$notisbycaw = NotisPeringatan::on('mysql7')
->where('notisperingatan.notis_id',$notisid)->where('notisperingatan.kodcaw',$kodcaw)
->distinct()
->get();
$notisbycawarray = $notisbycaw->toArray();
foreach($notisbycawarray as $index=>$cal){
$customer = Customer::where('kpbaru','=',$cal['nokp'])
->orWhere('kplama','=',$cal['nokp'])
->first();
$notisbycawarray[$index]['namacust'] = $customer;
}
array_push($notisbycawarray);
return response()->json($notisbycawarray);
}
public function blastwasapbysag(Request $request)
{
// dd($request->all());
$current = Carbon::now();
$current = new Carbon();
$kodcaw = $request->kodcaw;
$notisid = $request->notisid;
$namapengguna = $request->namapengguna;
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$cawangan_detail = CawanganDetail::on($cawangan['mysql'])->first();
$caw_name = $cawangan->details_caw;
$nofoncaw = $cawangan_detail->notel;
$statusblast = CawanganNotis::where('notis_id','=',$notisid)
->where('kodcaw','=',$kodcaw)
->first();
if($statusblast->status == '1'){
$notisbycaw = NotisPeringatan::on('mysql7')
->where('notisperingatan.notis_id',$notisid)->where('notisperingatan.kodcaw',$kodcaw)
->distinct()
->get();
$arraynorujukan = $notisbycaw->pluck('norujukan')->toArray();
$gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan)
->get();
$gadai_all_groupby_nokp = $notisbycaw->groupBy('nokp');
foreach($gadainokp as $index1=>$cal){
if($gadai_all_groupby_nokp[$cal->nokp]){
$gadainokp[$index1]['gadai'] = $gadai_all_groupby_nokp[$cal->nokp];
}
$customer = Customer::on('mysql7')->where('kpbaru','=',$cal['nokp'])
->orWhere('kplama','=',$cal['nokp'])
->first();
$nokp=$cal['nokp'];
// dd($customer);
if($customer->telefon != 'null'){
$telefon=$customer->telefon;
//log auditrail
$audit = new Audit();
$audit->users = $namapengguna;
$audit->actions = 'ARCC Blast Whatsapp & SMS: Notis ID'.$notisid;
$audit->norujukan = $cal->norujukan;
$audit->new_data = $customer->telefon;
$audit->old_data = $nokp;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
$today = $current->toDateString();
$harini = date('Y-m-d',strtotime($today));
//update tarikh dlm table notisperingatan
$updatenotis=NotisPeringatan::on('mysql7')
->where('norujukan','=', $cal->norujukan)
->update(
array('tarikhnotis1'=> $harini));
dispatch(new ARCCWhatsappPelangganSAGLAMAbysag($nokp,$customer->telefon,$caw_name,$nofoncaw,$kodcaw,$cal->norujukan,$cal->tempoh,$cal->t_matang,$cal->t_matang1,$cal->lelong_tawarruq,$namapengguna));
dispatch(new ARCCSMSPelangganSAGLAMAbysag($nokp,$customer->telefon,$caw_name,$nofoncaw,$kodcaw,$cal->norujukan,$cal->tempoh,$cal->t_matang,$cal->t_matang1,$cal->lelong_tawarruq,$namapengguna));
}
}
$updatestatusnotis=CawanganNotis::on('mysql7')
->where('notis_id','=', $notisid)
->where('kodcaw','=', $kodcaw)
->update(
array('status'=> 2));
return response()->json('success');
}
else{
return response()->json('failed');
}
}
}
+122 -385
View File
@@ -8,7 +8,7 @@ use App\Cawangan;
use App\Transaction;
use App\TransaksiKeuntungan;
use App\TransactionOnline;
use App\batalGadai;
use App\BatalGadai;
use App\TuntutBaki;
use App\AnsRugi;
use App\Lelong;
@@ -32,7 +32,8 @@ use App\InOutMar;
use Illuminate\Http\Request;
use App\Services\OnePercentServices;
use App\Services\MasterServices;
use App\Support\OnePercent;
use Log;
use Illuminate\Support\Facades\DB;
@@ -130,33 +131,11 @@ class GadaiController extends Controller
}
public function create($kodcaw,Request $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$master = new MasterServices($kodcaw);
$response = $master->createGadai($request);
try{
DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) {
$gadai = Gadai::on($cawangan['mysql'])->create([
'kodcaw'=>$kodcaw,
'norujukan' => $request->norujukan,
'nopelanggan' => $request->nopelanggan,
'nokp' => $request->nokp,
'sirig' => $request->sirig,
't_gadai' => $current->toDateString(),
'sttebus' => '',
'masa' =>$current->toTimeString(),
'tagbaru' => 1
]);
return response()->json($gadai, 201);
});
}catch(\Exception $e){
echo "Gadaian Gagal: " . $e->getMessage();
}
return $response;
}
public function createold($kodcaw,Request $request){
@@ -224,100 +203,10 @@ class GadaiController extends Controller
public function daftarGadaiMarhun($norujukan,Request $request){
// dd("ggwp");
$current = Carbon::now();
$current = new Carbon();
$master = new MasterServices($request->kodcaw);
$response = $master->createMarhunGadai($request->norujukan,$request);
$t_matang = Carbon::now();
$t_matang = new Carbon();
$t_matang = $t_matang->addMonths(6)->subDays(1);
$t_kontrak = Carbon::now();
$t_kontrak = new Carbon();
$t_kontrak = $t_kontrak->addMonths(12)->subDays(1);
$margin_pinjam = $request->percentpinj *100;
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$request->kodcaw)
->first();
if($request->transaction == 'Ubah Gadai'){
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
}
$bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->count();
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun');
$total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat');
//query kadar upah baru
$kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first();
// query kadar upah lama
// $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first();
$onepercentservices = new OnePercentServices();
$keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjam);
// $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100);
// $upah6 = $upah1 * 6;
// $upah12 = $upah1 * 12;
$upah1 = $keuntungan['keuntungan'];
$upah6 = $upah1 * 6;
$upah12 = $upah1 * 12;
$ujrah = $keuntungan['ujrah'];
$onepercent = $keuntungan['onepercent'];
$hargajualan = $request->pinjaman + $upah12;
$gadai = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->update(array(
'nilaimarhun' => $total_nilai_marhun,
'berat'=> $total_berat,
'pinjaman' => $request->pinjaman,
'kadarupah' => $kadar_raw['kadarujrah'],
'marhun' => $request->marhun,
'percentpinj' => $margin_pinjam,
'teller' => $request->teller,
'bakipjm' => $request->pinjaman,
'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' => $bil_marhun,
'tagkomuditi' => 0,
'upahdibayar' => 0.00,
'tempohbayar' => 0.00,
'lelong_tawarruq' => 1,
'kadarujrah' => $kadar_raw['kadarujrah'],
'ujrah' => $ujrah,
'onepercent' => $onepercent,
'margin_semasa' => $margin_pinjam,
'tagbaru' => 1
));
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = $request->transaction;
$audit->norujukan = $norujukan;
$audit->new_data = $new_data;
if($request->transaction == 'Ubah Gadai'){
$audit->old_data = $old_data;
}
$audit->kodcaw = $request->kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json($gadai, 200);
return response()->json($response, 200);
}
public function getTransactionByTarikh($kodcaw,$tarikh){
@@ -325,7 +214,7 @@ class GadaiController extends Controller
$gadai_transaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$tarikh)->get();
return response()->json($gadai);
return response()->json($gadai_transaction);
}
public function checkNorujukan(Request $request){
@@ -345,68 +234,17 @@ class GadaiController extends Controller
}
public function kiraupahTawarruq($kodcaw,$norujukan){
$onepercentservices = new OnePercentServices();
$master = new MasterServices($kodcaw);
$response = $master->kiraUpahTawarruq($kodcaw,$norujukan);
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$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 * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']);
$upahsemasa_raw = $bilang_bln * $upah['keuntungan'];
// $upah_semasa = round($upahsemasa_raw,PHP_ROUND_HALF_UP);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = substr($upah_semasa_round, 0, -1);
// $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa));
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
return $response;
}
public function kiraUpahRebet($kodcaw,$norujukan){
$onepercentservices = new OnePercentServices();
$master = new MasterServices($kodcaw);
$response = $master->kiraUpahRebet($norujukan);
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
// $upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upahrebet_raw = $bilang_bln * $upah['keuntungan'];
// $upah_rebet_round = number_format($upahrebet_raw,2);
// $upah_rebet = substr($upah_rebet_round, 0, -1);
// if(strpos($upah_rebet,',')){
// $upah_rebet = str_replace(',','',$upah_rebet);
// }
// $upah_rebet = floatval(preg_replace('/[^\d.]/', '', $upah_rebet));
return $upahrebet_raw;
return $response;
}
public function updateGadaiMarhunOnline($kodcaw,$norujukan,Request $request){
@@ -465,126 +303,10 @@ class GadaiController extends Controller
}
public function updateGadaiMarhunKaunter($kodcaw,$norujukan,Request $request){
$current = Carbon::now();
$current = new Carbon();
$master = new MasterServices($request->kodcaw);
$update = $master->updateGadaiMarhunKaunter($kodcaw,$norujukan,$request);
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan);
$upahrebet = $this->kiraUpahRebet($kodcaw,$norujukan);
$total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk');
$total_bayaran_semasa = $total_bayaran_prev + $request->bayaran;
if($total_bayaran_semasa >= $gadai['bakiupah']){
$lelong_tawarruq = 0;
}else{
$lelong_tawarruq = 1;
}
$onepercent = new OnePercentServices();
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bayaran;
$baki_bayaran = $request->bayaran - $upahsemasa;
$baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran;
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
$keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa);
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']);
$onepercentasal = $gadai['pinjaman'] * (1/100);
try {
DB::connection('mysql7')->transaction(function () use($onepercentasal,$ujrahasal,$keuntungan,$norujukan,$gadai,$request,$kodcaw,$current,$baki_hargajualan,$upahsemasa,$baki_bayaran,$upahrebet,$cawangan,$old_data,$baki_pinjaman,$lelong_tawarruq,$margin_semasa) {
$transaction = Transaction::on('mysql7')->create([
'trans_type' => 'A',
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->bayaran,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
'nowakil' => (int)$request->nowakil,
'duitpelanggan' => $request->duitpelanggan,
'bakipelanggan' => $request->bakipelanggan
]);
if($gadai['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai['tempoh'];
}
$bilang_bln = $tempoh - $gadai['tempohbayar'];
$rounded = $upahsemasa - (($keuntungan['ujrah'] * $bilang_bln) + ($onepercentasal * $bilang_bln));
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upahsemasa,
'bayaran_pembiayaan' => $baki_bayaran,
'keuntungan_rebet'=> $upahrebet,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw,
'ujrah' => ($keuntungan['ujrah'] * $bilang_bln),
'ujrah_rebet' => ($ujrahasal*$bilang_bln),
'onepercent' => ($onepercentasal * $bilang_bln),
'onepercent_rebet' => ($keuntungan['onepercent'] * $bilang_bln),
'tempoh' => $gadai['tempoh'],
'beza_tempoh' => $bilang_bln,
'margin_semasa' => $margin_semasa,
'rounded' => $rounded,
]);
DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$baki_pinjaman,$current,$norujukan,$gadai,$baki_hargajualan,$lelong_tawarruq,$margin_semasa){
$margin_updated = ($baki_pinjaman / $gadai['nilaimarhun']) * 100;
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'bakipjm' => $baki_pinjaman,
'jbg' => 0,
't_update' => $current->toDateString(),
'bakihargajualan' => $baki_hargajualan,
'tempohbayar' => $gadai['tempoh'],
'lelong_tawarruq' => $lelong_tawarruq,
'margin_semasa' => $margin_updated,
));
});
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = 'Bayaran Ansuran';
$audit->norujukan = $norujukan;
$audit->new_data = $new_data;
$audit->old_data = $old_data;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
if(!$transaction || !$transaction_upah) {
throw new \Exception('One of the database operations failed.');
}
DB::commit();
});
}catch(\Exception $e){
Log::error("Transaction failed: " . $e->getMessage());
return response()->json("Transaction failed: " . $e->getMessage(),500);
}
return response()->json("success",200);
return $update;
}
public function getGadaianSemasa($kodcaw){
@@ -857,7 +579,7 @@ class GadaiController extends Controller
public function getLaporanBatalGadai($kodcaw,$tarikh){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$gadai = batalGadai::on($cawangan['mysql'])
$gadai = BatalGadai::on($cawangan['mysql'])
->where('tarikh','=',$tarikh)
->orderBy('tarikh','desc')
->get();
@@ -1322,6 +1044,8 @@ class GadaiController extends Controller
$keuntunganonline = $ansuransonline->sum('trans.bayaran_keuntungan');
$pendahuluanonline = $ansuransonline->sum('trans.bayaran_pembiayaan');
$bilanganonline = $ansuransonline->count();
$ujrahonline = $ansuransonline->sum('trans.ujrah');
$onepercentonline = $ansuransonline->sum('trans.onepercent');
$arrayansuran = [
'totalpendahuluankaunter' => $pendahuluankaunter,
@@ -1332,7 +1056,9 @@ class GadaiController extends Controller
'totalpendahuluanonline' => $pendahuluanonline,
'totalkeuntunganonline' => $keuntunganonline,
'bilanganonline' => $bilanganonline
'bilanganonline' => $bilanganonline,
'totalujrahonline' => $ujrahonline,
'totalonepercentonline' => $onepercentonline
];
return response()->json($arrayansuran,200);
@@ -2296,8 +2022,8 @@ class GadaiController extends Controller
if($tebus['jenistebus'] == 'S')
$bakiakhir = $baki - $tebus['bakipjm'];
// dd($totalmasuk,$totalkeluar,$bakiakhir);
else
$bakiakhir = $bakiawal - $totalkeluar + $totalmasuk + $pendahuluan - $serahan;
$updatetunai=Tunai::on($cawangan['mysql'])->where( [['tarikh','=', $current->toDateString()],['kodlaluan','=', $request->kodlaluan] ])->
update(array(
@@ -2325,11 +2051,13 @@ class GadaiController extends Controller
}else{
$totalmasuk = $masuk - ($tebus['pinjaman']+$tebus['bakiupah']);
$totalkeluar = $keluar - (($tebus['pinjaman'] + $tebus['bakiupah']) - $tebus['bakipjm']);
$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(
@@ -2345,6 +2073,9 @@ class GadaiController extends Controller
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();
@@ -2358,9 +2089,20 @@ class GadaiController extends Controller
$gadaiDouble = Gadai::on($cawangan['mysql'])->where([['historygadaian',$gadai[0]['historygadaian']],['norujukan','<>',$gadai[0]['historygadaian']]])->pluck('norujukan');
if($gadaiDouble){
Gadai::on($cawangan['mysql'])->whereIn('norujukan',$gadaiDouble)->delete();
Marhun::on($cawangan['mysql'])->whereIn('norujukan',$gadaiDouble)->delete();
$this->batalKomuditi($gadai[0]['historygadaian'],$cawangan['mysql']);
$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);
@@ -2406,6 +2148,26 @@ class GadaiController extends Controller
}
public function batalKomuditiTawarruq($norujukan){
$komuditi_current = KomuditiPurchase::on('mysql7')->orderBy('created_at','desc')->first();
$transaksi_asal = KomuditiTransaksi::on('mysql7')->where('norujukan', $norujukan)->sum('unit_komuditi');
$current_commodity_purchase = KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->first();
$unit_current = $current_commodity_purchase->unit_komuditi;
$update_unit = $unit_current + $transaksi_asal;
KomuditiPurchase::on('mysql7')->where('id','=',$komuditi_current['id'])->update([
'unit_komuditi' => $update_unit
]);
KomuditiTransaksi::on('mysql7')->where('norujukan', $norujukan)->delete();
return 'success';
}
public function batalKomuditi($norujukan,$cawangan_mysql){
$gadaiDouble = Gadai::on($cawangan_mysql)->where([['historygadaian',$norujukan],['norujukan','<>',$norujukan]])->pluck('norujukan');
@@ -3202,27 +2964,43 @@ class GadaiController extends Controller
//->whereYear('tarikh_bayaran','=',$current->year)
//->get();
$transaksi_data = 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')
->where('transaksi_keuntungan.tarikh_bayaran' ,'<=', $daterequest)
->get();
if($cawangan['zone'] == 1){
$transaksi_data = 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');
})
->join($cawangan['db_name'] . 'gadai as gad', 'gad.norujukan','=','trans.norujukan')
->where('trans.trans_type','=','A')
->where('transaksi_keuntungan.tarikh_bayaran' ,'<=', $daterequest)
->sum('transaksi_keuntungan.bayaran_keuntungan');
$transaksi = 0;
if($transaksi_data){
foreach($transaksi_data as $index=>$transaksiData){
$gadaiData = Gadai::on($cawangan['mysql'])->where('norujukan',$transaksiData['norujukan'])->whereNotNull('hargajualan')->first();
if($gadaiData){
$transaksi += $transaksiData['bayaran_keuntungan'];
$totalkeuntungan = $keuntungan - $transaksi_data;
}else{
$transaksi_data = 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')
->where('transaksi_keuntungan.tarikh_bayaran' ,'<=', $daterequest)
->get();
$transaksi = 0;
if($transaksi_data){
foreach($transaksi_data as $index=>$transaksiData){
$gadaiData = Gadai::on($cawangan['mysql'])->where('norujukan',$transaksiData['norujukan'])->whereNotNull('hargajualan')->first();
if($gadaiData){
$transaksi += $transaksiData['bayaran_keuntungan'];
}
}
}
}
$totalkeuntungan = $keuntungan - $transaksi;
$totalkeuntungan = $keuntungan - $transaksi;
}
return response()->json($totalkeuntungan,200);
}
@@ -3445,8 +3223,11 @@ class GadaiController extends Controller
$totalpinjaman = $audit->sum('pinjaman');
$totalbakipjm = $audit->sum('bakipjm');
$totaltunggakan = $audit->sum('tunggakan');
$totalujrah = $audit->sum('tunggakanujrah');
$totalonepercent = $audit->sum('tunggakanonepercent');
$arrayrekod = ['rekod' => $rekodaudit, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan];
$arrayrekod = ['rekod' => $rekodaudit, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan,'totalujrah'=>$totalujrah,'totalonepercent'=>$totalonepercent];
return response()->json($arrayrekod,200);
}
@@ -3494,57 +3275,10 @@ class GadaiController extends Controller
}
foreach($cawangan as $cawangan_mysql){
$all_gadai = Gadai::on($cawangan_mysql['mysql'])->whereNotIn('sttebus',['L','T'])->get();
foreach($all_gadai as $gadai){
if($gadai['t_update'] == null){
$tarikh_update = Carbon::parse($gadai['t_gadai'].' '. $gadai['masa']);
}else{
$tarikh_update = Carbon::parse($gadai['t_update'].' 00:00:00' );
}
$tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00');
$current = Carbon::now();
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $current->year;
$bulan_semasa = $current->month;
$hari_semasa = $current->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
$upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']);
Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => $upah_semasa
));
}
$master = new MasterServices($cawangan_mysql['kodcaw']);
$response = $master->updateJBGSemasa($request);
}
return response()->json('successful',200);
return $response;
}
public function PembiayaanBulanan(Request $request){
@@ -3871,21 +3605,24 @@ class GadaiController extends Controller
}
public function getKadarUjrah(Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first();
$onePercentServices = new OnePercentServices();
$kadarujrah = $onePercentServices->getKadarUjrah($request->nilaimarhun,$cawangan['group_id']);
// $test = $this->kiraupahTawarruq('KB2','KB2231109-0001');
// dd($test);
$onePercentServices = new Onepercent($request->kodcaw);
$kadarujrah = $onePercentServices->getKadarUjrah($request);
return $kadarujrah;
}
public function getKadarUjrahByGroupId(Request $request)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->select('kodcaw', 'mysql', 'group_id')->first();
$kadar_ujrah = KadarUpah::where('group_id', $cawangan->group_id)->get();
return $kadar_ujrah;
}
public function getOnePercent(Request $request){
$onePercentServices = new OnePercentServices();
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$request->margin);
$onePercentServices = new Onepercent($request->kodcaw);
$keuntungan = $onePercentServices->getOnePercent($request);
return $keuntungan;
}
+1 -1
View File
@@ -785,7 +785,7 @@ class LaporanController extends Controller
$tebus = Tebus::on($cawangan['mysql'])
->join('gadai as gad','gad.norujukan','=','tebus.norujukan')
->where([['t_tebus','>=',$request->mula],['t_tebus','<=',$request->akhir],['jenistebus','=','T']]);
->where([['t_tebus','>=',$request->mula],['t_tebus','<=',$request->akhir],['tebus.jenistebus','=','T']]);
$ansuran = Transaction::on('mysql7')->whereDate('created_at','>=',$request->mula)->whereDate('created_at','<=',$request->akhir)->where([['trans_type','=','A'],['kodcaw','=',$request->kodcaw]]);
$bayaranonlinequery = Transaction::on('mysql7')->whereDate('created_at','>=',$request->mula)->whereDate('created_at','<=',$request->akhir)->where('teller','=','Online')->where('kodcaw',$request->kodcaw);
+75 -7
View File
@@ -29,6 +29,9 @@ use App\Pembeli;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use App\Services\RingkasanHarianServices;
use App\Services\OnePercentServices;
use App\Services\MasterServices;
use App\Support\v2\Calculation;
use Log;
use DB;
@@ -577,11 +580,10 @@ class LelongController extends Controller
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
if($cawangan['tagarrahnbid'] == 1){
// $lelong = Http::withOptions(['verify' => true])->get('https://niklah.arrahn.com.my/api/portalApi',[
// $lelong = Http::withOptions(['verify' => true])->get('http://adminbid.arrahn/api/portalApi',[
// 'norujukan' => $request->norujukan
// ])->json();
$lelong = null;
$lelong = Http::withOptions(['verify' => true])->get('https://niklah.arrahn.com.my/api/portalApi',[
// $lelong = Http::withOptions(['verify' => true])->get('http://api_arrahn.test/api/portalApi',[
'norujukan' => $request->norujukan
])->json();
$lelong = ($lelong != null) ? $lelong['lelong'] : [];
if( $lelong == null )
{
@@ -625,7 +627,9 @@ class LelongController extends Controller
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $request->kodcaw)->first();
if ($cawangan['tagarrahnbid'] == 0){
$lelong = Http::withOptions(['verify' => true])->get('https://niklah.arrahn.com.my/api/portalApi',[
// $lelong = Http::withOptions(['verify' => true])->get('https://niklah.arrahn.com.my/api/portalApi',[
$lelong = Http::withOptions(['verify' => true])->get('https://stapi.arrahn.com.my/api/portalApi',[
// $lelong = Http::withOptions(['verify' => true])->get('https://api_arrahn.test/api/portalApi',[
'norujukan' => $request->norujukan
])->json();
$lelong = ($lelong != null) ? $lelong['lelong'] : [];
@@ -698,7 +702,7 @@ class LelongController extends Controller
if($cawangan['tagarrahnbid'] == 1)
{
$lelong = Http::withOptions(['verify' => true])->get('https://adminbid.arrahn.com.my/api/portalApi',['norujukan' => $request->norujukan])->json();
$lelong = Http::withOptions(['verify' => true])->get('http://stapibid.arrahn.com.my/api/portalApi',['norujukan' => $request->norujukan])->json();
$lelong = ($lelong != null) ? $lelong['lelong'] : [];
}else{
$lelong = Lelong::on($cawangan['mysql'])->where([['norujukan',$request->norujukan]])->first();
@@ -1115,6 +1119,9 @@ class LelongController extends Controller
$lelong_to_be_inserted->berat = $index['berat'];
$lelong_to_be_inserted->marhun = $index['marhun'];
$lelong_to_be_inserted->fasa = $index['fasa'];
$lelong_to_be_inserted->ujrah = $index['ujrah'];
$lelong_to_be_inserted->onepercent = $index['onepercent'];
$lelong_to_be_inserted->tagujrah = $index['tagujrah'];
$lelong_arr[] = $lelong_to_be_inserted->attributesToArray();
}
@@ -1607,6 +1614,67 @@ class LelongController extends Controller
}
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
$onepercentservices = new OnePercentServices();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']);
$ujrah = $bilang_bln * $array_upah['ujrah'];
$onepercent = $bilang_bln * $array_upah['onepercent'];
$onepercent_semasa = $onepercent;
$ujrah_semasa = $ujrah;
return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa];
}
// public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){
// // $onepercentservices = new OnePercentServices();
// $onepercentservices = new Calculation();
// $cawangan = Cawangan::on('mysql7')
// ->where('kodcaw','=',$kodcaw)
// ->first();
// $gadai_data = Gadai::on($cawangan['mysql'])
// ->where('norujukan','=',$norujukan)
// ->first();
// if($gadai_data['tempoh'] >= 12.0){
// $tempoh = 12;
// }else{
// $tempoh = $gadai_data['tempoh'];
// }
// $bilang_bln = $tempoh - $gadai_data['tempohbayar'];
// $array_upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
// $ujrah_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $array_upah['ujrah']);
// $onepercent_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $array_upah['onepercent']);
// return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa];
// }
public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){
$master = new MasterServices($kodcaw);
$response = $master->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
return $response;
}
+18 -2
View File
@@ -186,7 +186,7 @@ class MarhunController extends Controller
$marhun = Marhun::on($cawangan['mysql'])
->select('marhun.norujukan','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai')
->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan')
->rightJoin('customer', 'customer.kpbaru', '=', 'gadai.nokp')
->rightJoin('online_arrahn.customer as customer', 'customer.kpbaru','=','gadai.nokp')
->where('marhun.t_gadai','=',$tarikh)
->orderBy('marhun.t_gadai')
->get();
@@ -204,7 +204,7 @@ class MarhunController extends Controller
$marhun = Marhun::on($cawangan['mysql'])
->select('marhun.norujukan','gadai.sttebus','gadai.pinjaman','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai')
->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan')
->rightJoin('customer', 'customer.kpbaru', '=', 'gadai.nokp')
->rightJoin('online_arrahn.customer as customer', 'customer.kpbaru','=','gadai.nokp')
->where('marhun.t_gadai','<=',$tarikh)
->whereYear('marhun.t_gadai','=',$current->year)
->where('gadai.sttebus','=','')
@@ -213,4 +213,20 @@ class MarhunController extends Controller
return response()->json($marhun);
}
public function getNilaiMarhunLatest(Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$marhuns = Marhun::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->get();
$totalnilaimarhun = 0;
foreach($marhuns as $index=>$marhun){
$harga = HargaEmas::on('mysql7')->where('karat',$marhun->karat)->first();
$nilai_marhun = $marhun->berat * $harga->harga;
$totalnilaimarhun = $totalnilaimarhun + $nilai_marhun;
}
return response()->json($totalnilaimarhun);
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\Reports;
use App\Http\Controllers\Controller;
use App\Services\Reports\KawalanStokService as ReportKawalanStokService;
use Illuminate\Http\Request;
class KawalanStokController extends Controller
{
public function getLaporanCawangan(string $kod_cawangan, Request $request)
{
$reportKawalanStokService = new ReportKawalanStokService($kod_cawangan, $request);
return $reportKawalanStokService->getLaporanCawangan();
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Controllers\Reports;
use App\Helper;
use App\Http\Controllers\Controller;
use App\Services\Reports\RingkasanHarianService as ReportRingkasanHarianService;
use Illuminate\Http\Request;
class RingkasanHarianController extends Controller
{
public function getLaporanCawangan(string $kod_cawangan, Request $request)
{
$reportGadaianService = new ReportRingkasanHarianService($kod_cawangan, $request);
return $reportGadaianService->getLaporanCawangan();
}
public function getSummaryLaporanRingkasanHarian()
{
return json_encode(Helper::getActiveCawangan());
}
}
File diff suppressed because it is too large Load Diff
@@ -9,6 +9,7 @@ use App\TransaksiKeuntungan;
use App\Gadai;
use App\Cawangan;
use App\GlDetail;
use App\Audit;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Services\OnePercentServices;
@@ -52,7 +53,8 @@ class TransactionOnlineController extends Controller
'tarikh' => $current->toDateString(),
'masa' => $current->toTimeString(),
'customer_name' => $request->customer_name,
'tempohbayar'=>$sag['tempoh']
'tempohbayar'=>$sag['tempoh'],
'jenisbayaran' => $request->jenisbayaran ? $request->jenisbayaran : 'A'
]);
return response()->json($transaction,201);
@@ -76,12 +78,14 @@ class TransactionOnlineController extends Controller
->where('kodcaw','=',$transaction['kodcaw'])
->first();
$gadai_data = Gadai::on($cawangan['mysql'])->where([['norujukan',$transaction['norujukan']],['nokp',$transaction['nokp']]])->first();
if($gadai_data['hargajualan'] > 0){
$this->updateGadaiMarhunKaunter($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at'],$transaction['tempohbayar']);
}else{
$this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']);
if($transaction->jenisbayaran == 'A'){
if($gadai_data['hargajualan'] > 0){
$this->updateGadaiMarhunKaunter($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at'],$transaction['tempohbayar']);
}else{
$this->createAdvansur($transaction['kodcaw'],$transaction['norujukan'],$transaction['total_payment'],$transaction['paid_at']);
}
}
GlDetail::on($cawangan['mysql'])->create([
'kodcaw' => $transaction['kodcaw'],
@@ -173,7 +177,14 @@ class TransactionOnlineController extends Controller
$onepercent = new OnePercentServices();
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
$keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa);
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']);
if($gadai['tagbaru'] == 1){
$upah_semasa = $keuntungan;
}
$baki_hargajualan = $gadai['bakihargajualan'] - $bayaran;
$baki_bayaran = $bayaran - $upahsemasa;
@@ -189,7 +200,7 @@ class TransactionOnlineController extends Controller
try {
DB::connection('mysql7')->transaction(function () use($onepercentasal,$ujrahasal,$keuntungan,$norujukan,$gadai,$request,$kodcaw,$current,$baki_hargajualan,$upahsemasa,$baki_bayaran,$upahrebet,$cawangan,$old_data,$baki_pinjaman,$lelong_tawarruq,$margin_semasa) {
DB::connection('mysql7')->transaction(function () use($onepercentasal,$ujrahasal,$keuntungan,$norujukan,$gadai,$kodcaw,$current,$baki_hargajualan,$upahsemasa,$baki_bayaran,$upahrebet,$cawangan,$old_data,$baki_pinjaman,$lelong_tawarruq,$margin_semasa,$bayaran) {
$transaction = Transaction::on('mysql7')->create([
'trans_type' => 'A',
@@ -309,7 +320,7 @@ class TransactionOnlineController extends Controller
$current = Carbon::now();
$current = new Carbon();
$boolmasa = false;
$boolmasa = false;
$transaction_online = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','PAID'],['update_status',0],['tarikh',$current->toDateString()]])->first();
$transaction_masa = TransactionOnline::on('mysql7')->where([['norujukan',$request->norujukan],['status','NOT PAID'],['tarikh',$current->toDateString()]])
@@ -360,7 +371,12 @@ class TransactionOnlineController extends Controller
if(sizeof($gadai) != 0){
foreach($gadai as $gad)
{
$result = (new TebusController)->kiraupahTawarruq($gad['kodcaw'],$gad['norujukan']);
if($gad['tagbaru'] == 1){
$jenis = 'onepercent';
}else{
$jenis = 'asal';
}
$result = (new TebusController)->kiraupahTawarruq($gad['kodcaw'],$gad['norujukan'],$jenis);
$gad['keuntungan'] = $result;
array_push($gadai_all,$gad);
+92
View File
@@ -0,0 +1,92 @@
<?php
namespace App\Http\Controllers;
use App\WakilSurat;
use App\Cawangan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class WakilController extends Controller
{
public function showSuratWakilByNorujukan($kodcaw, $norujukan)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
$check_norujukan = WakilSurat::on($cawangan['mysql'])
->where('norujukan', '=', $norujukan)
->get();
if (sizeof($check_norujukan) != 0) {
$newnorujukan = $norujukan;
} else {
$newnorujukan = 'NULL';
}
return response()->json($newnorujukan);
}
public function showsuratwakil($kodcaw, $t_cetak)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
$wakil_surat = WakilSurat::on($cawangan['mysql'])->where('t_cetak', '=', $t_cetak)->orderBy('id', 'desc')->first();
return response()->json($wakil_surat);
}
public function createSuratWakil($kodcaw, Request $request)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
$wakil = WakilSurat::on($cawangan['mysql'])->create([
'nosiri' => $request->nosiri,
'no_surat' => $request->no_surat,
'norujukan' => $request->norujukan,
't_cetak' => $request->t_cetak
]);
return response()->json($wakil);
}
public function noSiriWakil($kodcaw, $norujukan)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
$getnosiri = WakilSurat::on($cawangan['mysql'])
->where('norujukan', '=', $norujukan)
->select('no_surat')
->get();
$nosiri = $getnosiri[0]['no_surat'];
return response()->json($nosiri);
}
public function updateWakil($kodcaw, $norujukan)
{
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
$update_wakil = WakilSurat::on($cawangan['mysql'])->where('norujukan', '=', $norujukan)
->update(array(
't_cetak' => $current->toDateString(),
'updated_at' => $current
));
return response()->json($update_wakil, 200);
}
}
+102
View File
@@ -0,0 +1,102 @@
<?php
namespace App\Jobs;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use App\BlastSMS;
use Carbon\Carbon;
class ARCCSMSPelangganSAGLAMAbysag extends Job
{
public $nokp;
public $telefon;
public $caw_name;
public $nofoncaw;
public $kodcaw;
public $norujukan;
public $tempoh;
public $tmatang;
public $tmatang1;
public $lelong_tawarruq;
public $namapengguna;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($nokp, $telefon, $caw_name,$nofoncaw,$kodcaw,$norujukan,$tempoh,$tmatang,$tmatang1,$lelong_tawarruq,$namapengguna)
{
$this->nokp = $nokp;
$this->telefon = $telefon;
$this->caw_name = $caw_name;
$this->nofoncaw = $nofoncaw;
$this->kodcaw = $kodcaw;
$this->norujukan = $norujukan;
$this->tempoh = $tempoh;
$this->tmatang = $tmatang;
$this->tmatang1 = $tmatang1;
$this->lelong_tawarruq = $lelong_tawarruq;
$this->namapengguna = $namapengguna;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$current = Carbon::now();
$current = new Carbon();
$mobile_no = ltrim($this->telefon, '+6');
// $mobile_no = '60178916936';
// $message = 'test';
$tarikhmatang = $this->tmatang;
$tarikhmatangnew = date('d-m-Y',strtotime($tarikhmatang));
$tarikhmatang1 = $this->tmatang1;
$tarikhmatang1new = date('d-m-Y',strtotime($tarikhmatang1));
$today = $current->toDateString();
// $current_date = new Carbon($current->toDateString());
if($this->lelong_tawarruq == '1'){
if($tarikhmatang > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum '.$tarikhmatangnew.'.';
}elseif($tarikhmatang < $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatangnew.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
}else
if($tarikhmatang1 > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum '.$tarikhmatang1new.'.';
}elseif($tarikhmatang1 <= $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatang1new.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
if(env('APP_ENV') != 'production'){
$mobile_no = env('ADMIN_PHONE_NUMBER');
}
$response = Http::get(env('ONEWAYSMS_API'), [
'apiusername' => env('ONEWAYSMS_AUTH_USER'),
'apipassword' => env('ONEWAYSMS_AUTH_PASS'),
'senderid' => 'INFO',
'mobileno' => $mobile_no,
'message' => $message,
'languagetype' => 1
]);
//insert log blast sms
$logblastsms = new BlastSMS();
$logblastsms->kodcaw = $this->kodcaw;
$logblastsms->nokp = $this->nokp;
$logblastsms->notelefon = $this->telefon;
$logblastsms->norujukan = $this->norujukan;
$logblastsms->tempoh = $this->tempoh;
$logblastsms->status = $response;
$logblastsms->created_at = $current;
$logblastsms->updated_at = $current;
$logblastsms->nama = $this->namapengguna;
$logblastsms->save();
Log::info("ARCC SMS - Pelanggan ".$this->caw_name." SAG Tawarruq -".$mobile_no);
}
}
@@ -0,0 +1,101 @@
<?php
namespace App\Jobs;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use App\BlastWasap;
use App\NotisPeringatan;
use Carbon\Carbon;
class ARCCWhatsappPelangganSAGLAMAbysag extends Job
{
public $nokp;
public $telefon;
public $caw_name;
public $nofoncaw;
public $kodcaw;
public $norujukan;
public $tempoh;
public $tmatang;
public $tmatang1;
public $lelong_tawarruq;
public $namapengguna;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($nokp, $telefon, $caw_name,$nofoncaw,$kodcaw,$norujukan,$tempoh,$tmatang,$tmatang1,$lelong_tawarruq, $namapengguna)
{
$this->nokp = $nokp;
$this->telefon = $telefon;
$this->caw_name = $caw_name;
$this->nofoncaw = $nofoncaw;
$this->kodcaw = $kodcaw;
$this->norujukan = $norujukan;
$this->tempoh = $tempoh;
$this->tmatang = $tmatang;
$this->tmatang1 = $tmatang1;
$this->lelong_tawarruq = $lelong_tawarruq;
$this->namapengguna = $namapengguna;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$current = Carbon::now();
$current = new Carbon();
$mobile_no = ltrim($this->telefon, '+6');
// $mobile_no = '60178916936';
$tarikhmatang = $this->tmatang;
$tarikhmatangnew = date('d-m-Y',strtotime($tarikhmatang));
$tarikhmatang1 = $this->tmatang1;
$tarikhmatang1new = date('d-m-Y',strtotime($tarikhmatang1));
$today = $current->toDateString();
if($this->lelong_tawarruq == '1'){
if($tarikhmatang > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum *'.$tarikhmatangnew.'*.';
}elseif($tarikhmatang <= $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatangnew.'*, Sila perbaharui SAG anda di cawangan AR-RAHN.';}
}else
if($tarikhmatang1 > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum *'.$tarikhmatang1new.'*.';
}elseif($tarikhmatang1 <= $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatang1new.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
if(env('APP_ENV') != 'production'){
$mobile_no = env('ADMIN_PHONE_NUMBER');
}
$response = Http::get(env('WABOT_API'), [
'number' => $mobile_no,
'type' => 'text',
'message' => $message,
'instance_id' => env('WABOT_INSTANCES_ID'),
'access_token' => env('WABOT_TOKEN_KEYS')
]);
//insert log blast wasap
$logblastwasap = new BlastWasap();
$logblastwasap->kodcaw = $this->kodcaw;
$logblastwasap->nokp = $this->nokp;
$logblastwasap->notelefon = $this->telefon;
$logblastwasap->norujukan = $this->norujukan;
$logblastwasap->tempoh = $this->tempoh;
$logblastwasap->status = $response;
$logblastwasap->nama = $this->namapengguna;
$logblastwasap->save();
Log::info("ARCC WABOT - Pelanggan SAG Tawarruq".$response);
}
}
+5 -8
View File
@@ -60,15 +60,12 @@ class SMSPelangganSAGLAMAbysag extends Job
if($tarikhmatang > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum '.$tarikhmatangnew.'.';
}elseif($tarikhmatang < $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatangnew.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';
}
}elseif($this->lelong_tawarruq == '0'){
if($tarikhmatang1 > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatangnew.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
}else
if($tarikhmatang1 < $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum '.$tarikhmatang1new.'.';
}elseif($tarikhmatang1 <= $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatang1new.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';
}
}
}elseif($tarikhmatang1 > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, '.$this->norujukan.' telah tamat tempoh pada '.$tarikhmatang1new.', Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
if(env('APP_ENV') != 'production'){
$mobile_no = env('ADMIN_PHONE_NUMBER');
+5 -8
View File
@@ -60,15 +60,12 @@ class WhatsappPelangganSAGLAMAbysag extends Job
if($tarikhmatang > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum *'.$tarikhmatangnew.'*.';
}elseif($tarikhmatang < $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatangnew.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';
}
}elseif($this->lelong_tawarruq == '0'){
if($tarikhmatang1 > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatangnew.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
}else
if($tarikhmatang1 < $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah hampir tamat tempoh untuk tukar ke SAG baru, Sila perbaharui SAG anda di cawangan sebelum *'.$tarikhmatang1new.'*.';
}elseif($tarikhmatang1 <= $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatang1new.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';
}
}
}elseif($tarikhmatang1 > $today){
$message = 'AR-RAHN '.$this->caw_name.': MAKLUMAN, *'.$this->norujukan.'* telah tamat tempoh pada *'.$tarikhmatang1new.'*, Sila perbaharui SAG anda di cawangan Ar-Rahn.';}
if(env('APP_ENV') != 'production'){
$mobile_no = env('ADMIN_PHONE_NUMBER');
+5 -2
View File
@@ -98,8 +98,11 @@ class Lelong extends Model
'tagpmt',
'hargaasasasal',
'beratasal',
' loopsemak',
'tagcall'
'loopsemak',
'tagcall',
'ujrah',
'onepercent',
'tagujrah'
];
/**
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Notis extends Model
{
protected $table = 'notis';
public $timestamps = true;
protected $primaryKey = 'id';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id','tarikh_notis','daritempoh','hinggatempoh','sts_notis','peringatan'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
// protected $hidden = [];
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class NotisPeringatan extends Model
{
protected $table = 'notisperingatan';
public $timestamps = true;
protected $primaryKey = 'id';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'notis_id',
'kodcaw',
'norujukan',
'nokp',
'jbg',
'kadarupah',
'nilaimarhun',
'pinjaman',
'bakiupah',
'berat',
'marhun',
'percent',
'peringatan',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
// protected $hidden = [];
}
+244
View File
@@ -0,0 +1,244 @@
<?php
namespace App\Services;
use App\Cawangan;
use App\KadarUpah;
use Illuminate\Http\Request as HttpRequest;
use App\Support\OnePercent as OnePercentEngine;
use App\Support\Tawarruq as TawarruqEngine;
class MasterServices
{
protected $cawangan;
protected $cawangan_info;
protected $engine;
public function __construct(String $kodcaw){
$this->cawangan = $kodcaw;
$this->cawangan_info = $this->getInfoCawangan($kodcaw);
$this->engine = $this->getEngine($kodcaw);
}
public function getInfoCawangan(String $kodcaw): Object{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
return $cawangan;
}
public function getEngine(String $kodcaw){
if ($this->cawangan_info['version'] == 'v1') {
return new TawarruqEngine($kodcaw);
} else if ($this->cawangan_info['version'] == 'v2') {
return new OnePercentEngine($kodcaw);
} else {
return new TawarruqEngine($kodcaw);
}
}
/* Start Gadaian */
public function createGadai(HttpRequest $request){
$response = $this->engine->createGadai($request);
return $response;
}
public function createMarhunGadai($norujukan,HttpRequest $request){
$response = $this->engine->createMarhunGadai($norujukan,$request);
return $response;
}
public function kiraUpahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
if($jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->getUpahSebenar($norujukan);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->getUpahSebenar($norujukan);
}
return $response;
}
public function kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan){
if($jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->getUpahRebet($kodcaw,$norujukan);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->getUpahRebet($kodcaw,$norujukan);
}
return $response;
}
public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){
if($request->jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->updateGadaiMarhunKaunter($kodcaw,$norujukan,$request);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->updateGadaiMarhunKaunter($kodcaw,$norujukan,$request);
}
return $response;
}
public function updateJBGSemasa(HttpRequest $request){
$onepercent = new OnepercentEngine($this->cawangan);
$response = $onepercent->updateJBGsemasa($request);
return $response;
}
/* End Gadaian */
/* Start Penebusan */
public function tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
if($jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
}
return $response;
}
public function hargaTebusTawarruq($kodcaw,$norujukan){
$response = $this->engine->hargaTebusTawarruq($kodcaw,$norujukan);
return $response;
}
public function kiraUpahRebetSebenar($kodcaw,$norujukan){
$response = $this->engine->kiraUpahRebetSebenar($kodcaw,$norujukan);
return $response;
}
public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
if($jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
}
return $response;
}
public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
if($jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
}
return $response;
}
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
$response = $this->engine->tebusSeparuhTawarruq($kodcaw,$norujukan,$request);
return $response;
}
public function tebusNotTawarruq($kodcaw,$norujukan){
$response = $this->engine->tebusNotTawarruq($kodcaw,$norujukan);
return $response;
}
public function hargaTebusNotTawarruq($kodcaw,$norujukan){
$response = $this->engine->hargaTebusNotTawarruq($kodcaw,$norujukan);
return $response;
}
public function kiraUpahNotTawarruq($kodcaw,$norujukan){
$response = $this->engine->kiraUpahNotTawarruq($kodcaw,$norujukan);
return $response;
}
public function upahNotTawarruq($kodcaw,$norujukan){
$response = $this->engine->upahNotTawarruq($kodcaw,$norujukan);
return $response;
}
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){
$response = $this->engine->tebusSeparuhNotTawarruq($kodcaw,$norujukan,$request);
return $response;
}
function rebet($kodcaw,$norujukan){
$response = $this->engine->rebet($kodcaw,$norujukan);
return $response;
}
function rebetselepastawarruq($kodcaw,$norujukan){
$response = $this->engine->rebetselepastawarruq($kodcaw,$norujukan);
return $response;
}
public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){
if($request->jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->tebusUpdate($kodcaw,$norujukan,$request);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->tebusUpdate($kodcaw,$norujukan,$request);
}
return $response;
}
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
if($request->jeniskeuntungan == 'onepercent'){
$onepercent = new OnePercentEngine($this->cawangan);
$response = $onepercent->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request);
}else{
$tawarruq = new TawarruqEngine($this->cawangan);
$response = $tawarruq->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request);
}
return $response;
}
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
$response = $this->engine->kiraupahUjrahOnePercent($kodcaw,$norujukan);
return $response;
}
public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){
$response = $this->engine->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
return $response;
}
/* End Penebusan */
public function test(){
$this->engine->test();
}
}
@@ -0,0 +1,306 @@
<?php
namespace App\Services\Miscellaneous;
use App\Audit;
use App\Cawangan;
use App\Denominasi;
use App\DenoPanjar;
use App\Panjar;
use App\Vault;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class PanjarServices
{
/*
//////////////
/// NOTED ///
////////////
1. tak buat lgi untuk perubatan. just untuk buat yang panjar biasa.
*/
protected $cawangan = 'KB2';
protected $namelist_deno = [
'bd1' => 100,'bd5' => 500,'bd10' => 1000,'bd20' => 1000,'bd50' => 5000,'bd100' => 5000,
'txtsen1' => 0.01,'txtsen5' => 0.05,'txtsen10' => 0.10,'txtsen20' => 0.20,'txtsen50' => 0.50,
'txtring1' => 1,'txtring5' => 5,'txtring10' => 10,'txtring20' => 20,'txtring50' => 50,
'txtring100' => 100,'txtring1000' => 1000,
];
public function __construct($kodcaw){
$this->cawangan = $kodcaw;
}
private function calculation_denominasi($array_deno = [],$denominasi = [],$jenis_panjar){
if(isset($array_deno) <= 0 || isset($denominasi) <= 0){
return 'no data';
}
if($jenis_panjar != 'masuk' || $jenis_panjar != 'keluar') return 'no data';
$records = [];
foreach($this->namelist_deno as $deno => $value){
$total_deno = 0;$total = 0;
$total_deno = ($jenis_panjar == 'masuk') ? $denominasi[$deno] += intval($array_deno[$deno]) : $denominasi[$deno] -= intval($array_deno[$deno]);
$total = ($total_deno * $value);
$records[$deno] = [
'keping' => $total_deno,
'jumlah' => $total
];
}
/* total Keping */
$total_keping = array_sum(array_column($records, 'jumlah'));
/* Total Bundle */
$filteredKeys = array_filter(array_keys($records), function($key) {
return strpos($key, 'bd') !== false;
});
$filteredRecords = array_filter($records, function($record,$key) use ($filteredKeys) {
return in_array($key, $filteredKeys);
}, ARRAY_FILTER_USE_BOTH);
$total_bundle = array_sum(array_column($filteredRecords, 'jumlah'));
return [
'deno' => $records,
'total' => $total_keping,
'total_bundle' => $total_bundle,
'total_all' => ($total_keping + $total_bundle),
];
}
public function delete(Request $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw', $this->cawangan)->first();
$denominasi = Denominasi::on($cawangan['mysql'])->latest('tarikh')->first();
$panjar = Panjar::on($cawangan['mysql'])->latest('tarikh')->where('nobaucer', $request->nobaucer)->first();
$vault = Vault::on($cawangan['mysql'])->latest('tarikh')->first();
$deno_panjar = DenoPanjar::on('mysql7')->where('kodcaw', $this->cawangan)->where('recno', $request->recno)->latest('tarikh','masa')->first();
try{
if (!$panjar) throw new \Exception('Custom Exception: Panjar Does Not Exist!');
if (!$denominasi) throw new \Exception('Custom Exception: Denominasi Does Not Exist!');
if (!$vault) throw new \Exception('Custom Exception: Vault Does Not Exist!');
if (!$deno_panjar) throw new \Exception('Custom Exception: Denominasi Panjar Does Not Exist!');
DB::transaction(function () use ($cawangan,$deno_panjar,$panjar,$denominasi,$current,$vault) {
$return_data = $this->calculation_denominasi($deno_panjar,$denominasi,'masuk');
if($return_data == 'no data') throw new \Exception('Custom Exception: Denominasi Panjar Not Return Data');
Denominasi::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()]])->update(array(
'bd1' => $return_data['deno']['bd1']['keping'],
'b1'=> $return_data['deno']['bd1']['jumlah'],
'bd5'=> $return_data['deno']['bd5']['keping'],
'b5'=> $return_data['deno']['bd5']['keping'],
'bd10'=> $return_data['deno']['bd10']['keping'],
'b10'=> $return_data['deno']['bd10']['jumlah'],
'bd20'=> $return_data['deno']['bd20']['keping'],
'b20'=> $return_data['deno']['bd20']['jumlah'],
'bd50'=> $return_data['deno']['bd50']['keping'],
'b50'=> $return_data['deno']['bd50']['jumlah'],
'bd100'=> $return_data['deno']['bd100']['keping'],
'b100'=> $return_data['deno']['bd100']['jumlah'],
'txtring1'=> $return_data['deno']['txtring1']['keping'],
'k1'=> $return_data['deno']['txtring1']['jumlah'],
'txtring5'=> $return_data['deno']['txtring5']['keping'],
'k5'=> $return_data['deno']['txtring5']['jumlah'],
'txtsen1'=> $return_data['deno']['txtsen1']['keping'],
'k01'=> $return_data['deno']['txtsen1']['jumlah'],
'txtsen5'=> $return_data['deno']['txtsen5']['keping'],
'k05'=> $return_data['deno']['txtsen5']['jumlah'],
'txtsen10'=> $return_data['deno']['txtsen10']['keping'],
'k010'=> $return_data['deno']['txtsen10']['jumlah'],
'txtsen20'=> $return_data['deno']['txtsen20']['keping'],
'k020'=> $return_data['deno']['txtsen20']['jumlah'],
'txtsen50'=> $return_data['deno']['txtsen50']['keping'],
'k050'=> $return_data['deno']['txtsen50']['jumlah'],
'txtring10'=> $return_data['deno']['txtring10']['keping'],
'k10'=> $return_data['deno']['txtring10']['jumlah'],
'txtring20'=> $return_data['deno']['txtring20']['keping'],
'k20'=> $return_data['deno']['txtring20']['jumlah'],
'txtring50'=> $return_data['deno']['txtring50']['keping'],
'k50'=> $return_data['deno']['txtring50']['jumlah'],
'txtring100'=> $return_data['deno']['txtring100']['keping'],
'k100'=> $return_data['deno']['txtring100']['jumlah'],
'txtring1000'=> $return_data['deno']['txtring1000']['keping'],
'k1000'=> $return_data['deno']['txtring1000']['jumlah'],
'jumlahbundle'=> $return_data['total_bundle'],
'txtjumlah'=> $return_data['total_all'],
'jumlahkeping' => $return_data['total']
) );
$totalpanjar = ($vault['totpanjar'] - $deno_panjar['serahan']);
$bakiakhir = ($vault['bakiawal'] - $vault['keluar'] + $vault['masuk'] + $vault['pendahuluan'] - $vault['serahan'] - $totalpanjar);
if($bakiakhir <= 0) throw new \Exception('Custom Exception: Amaun Baki Akhir Cannot Be Zero');
if($totalpanjar < 0) throw new \Exception('Custom Exception: Amaun Panjar Cannot Be Zero');
Vault::on($cawangan['mysql'])->where('kodcaw','=', $cawangan['kodcaw'])->latest('tarikh')->update(array(
'totpanjar' => $totalpanjar,
'bakiakhir'=>$bakiakhir,
'bakieod'=>$bakiakhir
));
DenoPanjar::on('mysql7')->where('kodcaw', $this->cawangan)->where('recno', $panjar['recno'])->latest('tarikh','masa')->delete();
Panjar::on($cawangan['mysql'])->where('recno',$panjar['recno'])->delete();
$audit = new Audit();
$audit->users = $request->tuntutoleh;
$audit->actions = "Keluarkan Perbelanjaan";
$audit->new_data = $panjar;
$audit->kodcaw = $this->cawangan;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
});
}catch(\Exception $e){
dd($e->getMessage());
Log::error('Exception: ' , $e->getMessage());
}
}
public function create(Request $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw', $this->cawangan)->first();
$denominasi = Denominasi::on($cawangan['mysql'])->latest('tarikh')->first();
$vault = Vault::on($cawangan['mysql'])->latest('tarikh')->first();
try{
if (!$denominasi) throw new \Exception('Custom Exception: Denominasi Does Not Exist!');
if (!$vault) throw new \Exception('Custom Exception: Vault Does Not Exist!');
DB::transaction(function () use ($cawangan,$denominasi,$current,$vault,$request) {
$panjar = Panjar::on($cawangan['mysql'])
->create([
'tarikh'=> $current->toDateString(),
'deskripsi'=> $request->deskripsi,
'bayaran' => $request->bayaran,
'tag' => $request->tag,
'kategori' => $request->kategori,
'id' => $request->id,
'bakiperubatan' => $request->bakiperubatan,
'nobaucer' => $request->nobaucer,
'nobil' => $request->nobil,
'tuntutoleh' => $request->tuntutoleh
]);
$denopanjar = DenoPanjar::on('mysql7')->create([
'tarikh' => $current->toDateString(),
'masa' => $current->toTimeString(),
'kodcaw' => $this->cawangan,
'kodlaluan' => $request->kodlaluan,
'serahan' => $request->serahan,
'bd1' => $request->bd1,
'bd5' => $request->bd5,
'bd10' => $request->bd10,
'bd20' => $request->bd20,
'bd50' => $request->bd50,
'bd100' => $request->bd100,
'txtring1' => $request->txtring1,
'txtring5' => $request->txtring5,
'txtring10' => $request->txtring10,
'txtring20' => $request->txtring20,
'txtring50' => $request->txtring50,
'txtring100' => $request->txtring100,
'txtring1000' => $request->txtring1000,
'txtsen1' => $request->txtsen1,
'txtsen5' => $request->txtsen5,
'txtsen10' => $request->txtsen10,
'txtsen20' => $request->txtsen20,
'txtsen50' => $request->txtsen50,
'jenis' =>$request->jenis,
'recno' =>$panjar['recno'],
'update' => '0'
]);
$return_data = $this->calculation_denominasi($denopanjar,$denominasi,'masuk');
if($return_data == 'no data') throw new \Exception('Custom Exception: Denominasi Panjar Not Return Data');
Denominasi::on($cawangan['mysql'])->where([['tarikh','=',$current->toDateString()]])->update(array(
'bd1' => $return_data['deno']['bd1']['keping'],
'b1'=> $return_data['deno']['bd1']['jumlah'],
'bd5'=> $return_data['deno']['bd5']['keping'],
'b5'=> $return_data['deno']['bd5']['keping'],
'bd10'=> $return_data['deno']['bd10']['keping'],
'b10'=> $return_data['deno']['bd10']['jumlah'],
'bd20'=> $return_data['deno']['bd20']['keping'],
'b20'=> $return_data['deno']['bd20']['jumlah'],
'bd50'=> $return_data['deno']['bd50']['keping'],
'b50'=> $return_data['deno']['bd50']['jumlah'],
'bd100'=> $return_data['deno']['bd100']['keping'],
'b100'=> $return_data['deno']['bd100']['jumlah'],
'txtring1'=> $return_data['deno']['txtring1']['keping'],
'k1'=> $return_data['deno']['txtring1']['jumlah'],
'txtring5'=> $return_data['deno']['txtring5']['keping'],
'k5'=> $return_data['deno']['txtring5']['jumlah'],
'txtsen1'=> $return_data['deno']['txtsen1']['keping'],
'k01'=> $return_data['deno']['txtsen1']['jumlah'],
'txtsen5'=> $return_data['deno']['txtsen5']['keping'],
'k05'=> $return_data['deno']['txtsen5']['jumlah'],
'txtsen10'=> $return_data['deno']['txtsen10']['keping'],
'k010'=> $return_data['deno']['txtsen10']['jumlah'],
'txtsen20'=> $return_data['deno']['txtsen20']['keping'],
'k020'=> $return_data['deno']['txtsen20']['jumlah'],
'txtsen50'=> $return_data['deno']['txtsen50']['keping'],
'k050'=> $return_data['deno']['txtsen50']['jumlah'],
'txtring10'=> $return_data['deno']['txtring10']['keping'],
'k10'=> $return_data['deno']['txtring10']['jumlah'],
'txtring20'=> $return_data['deno']['txtring20']['keping'],
'k20'=> $return_data['deno']['txtring20']['jumlah'],
'txtring50'=> $return_data['deno']['txtring50']['keping'],
'k50'=> $return_data['deno']['txtring50']['jumlah'],
'txtring100'=> $return_data['deno']['txtring100']['keping'],
'k100'=> $return_data['deno']['txtring100']['jumlah'],
'txtring1000'=> $return_data['deno']['txtring1000']['keping'],
'k1000'=> $return_data['deno']['txtring1000']['jumlah'],
'jumlahbundle'=> $return_data['total_bundle'],
'txtjumlah'=> $return_data['total_all'],
'jumlahkeping' => $return_data['total']
) );
$totalpanjar = ($vault['totpanjar'] + $denopanjar['serahan']);
$bakiakhir = ($vault['bakiawal'] - $vault['keluar'] + $vault['masuk'] + $vault['pendahuluan'] - $vault['serahan'] - $totalpanjar);
if($bakiakhir <= 0) throw new \Exception('Custom Exception: Amaun Baki Akhir Cannot Be Zero');
if($totalpanjar < 0) throw new \Exception('Custom Exception: Amaun Panjar Cannot Be Zero');
Vault::on($cawangan['mysql'])->where('kodcaw','=', $cawangan['kodcaw'])->latest('tarikh')->update(array(
'totpanjar' => $totalpanjar,
'bakiakhir'=>$bakiakhir,
'bakieod'=>$bakiakhir
));
$audit = new Audit();
$audit->users = $request->tuntutoleh;
$audit->actions = "Daftar Perbelanjaan";
$audit->new_data = $panjar;
$audit->kodcaw = $this->cawangan;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
});
}catch(\Exception $e){
dd($e->getMessage());
Log::error('Exception: ' , $e->getMessage());
}
}
}
+1 -1
View File
@@ -74,7 +74,7 @@ class OnePercentServices
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{
$kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray();
$kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',1)->get()->toArray();
return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0;
}
+439
View File
@@ -0,0 +1,439 @@
<?php
namespace App\Services\Reports;
use App\Cawangan;
use App\Gadai;
use App\TransaksiKeuntungan;
class KawalanStokService
{
private $kodCawangan;
private $startDate;
private $endDate;
public function __construct($kodCawangan, $request)
{
$this->kodCawangan = $kodCawangan;
$this->startDate = $request->startDate;
$this->endDate = $request->endDate;
}
public function getLaporanCawangan()
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $this->kodCawangan)->first();
$array_kawalanstok = [];
/* Gadai */
$gadai1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(*) AS bil, SUM(pinjaman) AS pinj')
->where('t_gadai', '<', $this->startDate)
->where('tagpalsu', 0)
->whereBetween('nilaimarhun', [1, 400.99])
->get();
$gadai2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(*) AS bil, SUM(pinjaman) AS pinj')
->where('t_gadai', '<', $this->startDate)
->where('tagpalsu', 0)
->whereBetween('nilaimarhun', [401, 2000.99])
->get();
$gadai3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(*) AS bil, SUM(pinjaman) AS pinj')
->where('t_gadai', '<', $this->startDate)
->where('tagpalsu', 0)
->whereBetween('nilaimarhun', [2001, 1000000])
->get();
$gadaiini1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('t_gadai', '=>', $this->startDate)->where('t_gadai', '=<', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$gadaiini2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('t_gadai', '>=', $this->startDate)->where('t_gadai', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$gadaiini3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('t_gadai', '>=', $this->startDate)->where('t_gadai', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
/*tebus*/
$tebus1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'T')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$tebus2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'T')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$tebus3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'T')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
$tebusini1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'T')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$tebusini2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'T')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$tebusini3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'T')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
/*lelong*/
$lelong1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'L')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$lelong2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'L')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$lelong3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'L')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
$lelongini1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'L')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$lelongini2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'L')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$lelongini3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'L')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
/*ansuran*/
$ansuran1_data = 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.created_at', '<', $this->startDate)
->where('trans.trans_type', '=', 'A')
->groupBy('trans.id')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('trans.norujukan');
$ansuran1 = [];
$ansuran1 = Gadai::on($cawangan['mysql'])
->whereIn('norujukan', $ansuran1_data)
->where([['nilaimarhun', '>=', 1], ['nilaimarhun', '<=', 400.99], ['sttebus', ''], ['hargajualan', '<>', 'null']])
->orWhere([['nilaimarhun', '>=', 1], ['nilaimarhun', '<=', 400.99], ['sttebus', '!=', ''], ['t_update', '>', $this->endDate], ['hargajualan', '<>', 'null']])
->pluck('norujukan');
$transaksi1 = TransaksiKeuntungan::on('mysql7')
->selectRaw('COUNT(*) as bil, SUM(bayaran_pembiayaan) AS total')
->whereIn('norujukan', $ansuran1)
->where('kodcaw', $this->kodCawangan)
->where('tarikh_bayaran', '<=', $this->startDate)
->get();
$ansuranharini1_data = 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');
})
->whereDate('trans.created_at', '>=', $this->startDate)
->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.trans_type', '=', 'A')
->groupBy('trans.id')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('trans.norujukan');
$ansuran1harini = Gadai::on($cawangan['mysql'])
->whereIn('norujukan', $ansuranharini1_data)
->where([['nilaimarhun', '>=', 1], ['nilaimarhun', '<=', 400.99], ['sttebus', ''], ['hargajualan', '<>', 'null']])
->pluck('norujukan');
$transaksi1harini = TransaksiKeuntungan::on('mysql7')
->selectRaw('COUNT(*) as bil, SUM(bayaran_pembiayaan) AS total')
->whereIn('norujukan', $ansuran1harini)
->whereDate('tarikh_bayaran', '>=', $this->startDate)
->whereDate('tarikh_bayaran', '<=', $this->endDate)
->where('kodcaw', $this->kodCawangan)
->get();
$ansuran2_data = 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.created_at', '<', $this->startDate)
->where('trans.trans_type', '=', 'A')
->groupBy('trans.id')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('trans.norujukan');
$ansuran2 = Gadai::on($cawangan['mysql'])
->whereIn('norujukan', $ansuran2_data)
->where([['nilaimarhun', '>=', 401], ['nilaimarhun', '<=', 2000.99], ['sttebus', ''], ['hargajualan', '<>', 'null']])
->orWhere([['nilaimarhun', '>=', 401], ['nilaimarhun', '<=', 2000.99], ['sttebus', '!=', ''], ['t_update', '>', $this->endDate], ['hargajualan', '<>', 'null']])
->pluck('norujukan');
$transaksi2 = TransaksiKeuntungan::on('mysql7')
->selectRaw('COUNT(*) as bil, SUM(bayaran_pembiayaan) AS total')
->whereIn('norujukan', $ansuran2)
->where('tarikh_bayaran', '<=', $this->startDate)
->where('kodcaw', $this->kodCawangan)
->get();
$ansuranharini2_data = 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');
})
->whereDate('trans.created_at', '>=', $this->startDate)
->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.trans_type', '=', 'A')
->groupBy('trans.id')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('trans.norujukan');
$ansuran2harini = Gadai::on($cawangan['mysql'])
->whereIn('norujukan', $ansuranharini2_data)
->where([['nilaimarhun', '>=', 401], ['nilaimarhun', '<=', 2000.99], ['sttebus', ''], ['hargajualan', '<>', 'null']])
->pluck('norujukan');
$transaksi2harini = TransaksiKeuntungan::on('mysql7')
->selectRaw('COUNT(*) as bil, SUM(bayaran_pembiayaan) AS total')
->whereIn('norujukan', $ansuran2harini)
->whereDate('tarikh_bayaran', '>=', $this->startDate)
->whereDate('tarikh_bayaran', '<=', $this->endDate)
->where('kodcaw', $this->kodCawangan)
->get();
$ansuran3_data = 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.created_at', '<', $this->startDate)
->where('trans.trans_type', '=', 'A')
->groupBy('trans.id')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('trans.norujukan');
$ansuran3 = Gadai::on($cawangan['mysql'])
->whereIn('norujukan', $ansuran3_data)
->where([['nilaimarhun', '>=', 2001], ['nilaimarhun', '<=', 1000000], ['sttebus', ''], ['hargajualan', '<>', 'null']])
->orWhere([['nilaimarhun', '>=', 2001], ['nilaimarhun', '<=', 1000000], ['sttebus', '!=', ''], ['t_update', '>', $this->endDate], ['hargajualan', '<>', 'null']])
->pluck('norujukan');
$transaksi3 = TransaksiKeuntungan::on('mysql7')
->selectRaw('COUNT(*) as bil, SUM(bayaran_pembiayaan) AS total')
->whereIn('norujukan', $ansuran3)
->where('tarikh_bayaran', '<=', $this->startDate)
->where('kodcaw', $this->kodCawangan)
->get();
$ansuranharini3_data = 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');
})
->whereDate('trans.created_at', '>=', $this->startDate)
->whereDate('trans.created_at', '<=', $this->endDate)
->where('trans.trans_type', '=', 'A')
->groupBy('trans.id')
->where('trans.kodcaw', $this->kodCawangan)
->pluck('trans.norujukan');
$ansuran3harini = Gadai::on($cawangan['mysql'])
->whereIn('norujukan', $ansuranharini3_data)
->where([['nilaimarhun', '>=', 2001], ['nilaimarhun', '<=', 1000000], ['sttebus', ''], ['hargajualan', '<>', 'null']])
->pluck('norujukan');
$transaksi3harini = TransaksiKeuntungan::on('mysql7')
->selectRaw('COUNT(*) as bil, SUM(bayaran_pembiayaan) AS total')
->whereIn('norujukan', $ansuran3harini)
->whereDate('tarikh_bayaran', '>=', $this->startDate)
->whereDate('tarikh_bayaran', '<=', $this->endDate)
->where('kodcaw', $this->kodCawangan)
->get();
##push in array##
$arrayans1 = ['bil' => $transaksi1[0]->bil, 'pinj' => $transaksi1[0]->total];
$arrayharinians1 = ['bil' => $transaksi1harini[0]->bil, 'pinj' => $transaksi1harini[0]->total];
$arrayans2 = ['bil' => $transaksi2[0]->bil, 'pinj' => $transaksi2[0]->total];
$arrayharinians2 = ['bil' => $transaksi2harini[0]->bil, 'pinj' => $transaksi2harini[0]->total];
$arrayans3 = ['bil' => $transaksi3[0]->bil, 'pinj' => $transaksi3[0]->total];
$arrayharinians3 = ['bil' => $transaksi3harini[0]->bil, 'pinj' => $transaksi3harini[0]->total];
/*hapus kira*/
$hapuskira1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'H')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$hapuskira2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'H')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$hapuskira3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'H')
->where(function ($query) {
$query->where('t_update', '<', $this->startDate)
->orWhereNull('t_update');
})
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
$hapuskiraini1 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'H')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 1)
->where('nilaimarhun', '<=', 400.99)
->get();
$hapuskiraini2 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'H')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 401)
->where('nilaimarhun', '<=', 2000.99)
->get();
$hapuskiraini3 = Gadai::on($cawangan['mysql'])
->selectRaw('COUNT(norujukan) AS bil, SUM(pinjaman) AS pinj')
->where('sttebus', 'H')
->where('t_update', '>=', $this->startDate)->where('t_update', '<=', $this->endDate)
->where('tagpalsu', 0)
->where('nilaimarhun', '>=', 2001)
->where('nilaimarhun', '<=', 1000000)
->get();
array_push($array_kawalanstok, ["gadai1" => $gadai1, "gadai2" => $gadai2, "gadai3" => $gadai3, "gadaiini1" => $gadaiini1, "gadaiini2" => $gadaiini2, "gadaiini3" => $gadaiini3]);
array_push($array_kawalanstok, ["tebus1" => $tebus1, "tebus2" => $tebus2, "tebus3" => $tebus3, "tebusini1" => $tebusini1, "tebusini2" => $tebusini2, "tebusini3" => $tebusini3]);
array_push($array_kawalanstok, ["lelong1" => $lelong1, "lelong2" => $lelong2, "lelong3" => $lelong3, "lelongini1" => $lelongini1, "lelongini2" => $lelongini2, "lelongini3" => $lelongini3]);
array_push($array_kawalanstok, ["hapuskira1" => $hapuskira1, "hapuskira2" => $hapuskira2, "hapuskira3" => $hapuskira3, "hapuskiraini1" => $hapuskiraini1, "hapuskiraini2" => $hapuskiraini2, "hapuskiraini3" => $hapuskiraini3]);
array_push($array_kawalanstok, ["ans1" => $arrayans1, "ans2" => $arrayans2, "ans3" => $arrayans3, "ansini1" => $arrayharinians1, "ansini2" => $arrayharinians2, "ansini3" => $arrayharinians3]);
return response()->json($array_kawalanstok);
}
}
+20 -8
View File
@@ -23,7 +23,7 @@ class OnePercentService
public function getTotalRounded($type='B',$start = '2023-12-14',$end = '2023-12-14'){
if($type == 'B'){
if($type == 'B'){
$rounded = TransaksiKeuntungan::on('mysql7')
->leftJoin('transaction as trans', function($join)
{
@@ -37,44 +37,55 @@ class OnePercentService
$rounded = TransaksiKeuntungan::on('mysql7')
->whereDate('tarikh_bayaran','>=',$start)
->whereDate('tarikh_bayaran','<=',$end)
->sum('rounded');;
->sum('rounded');;
}
return $rounded;
}
public function getTotalKeuntungan($type = 'B',$start = '2023-12-14',$end = '2023-12-14') : Float{
public function getTotalKeuntungan($type = 'B',$start = '2023-12-14',$end = '2023-12-14') : Float{
if($type == 'B'){
$akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1]])->sum('tunggakanonepercent');
$norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->pluck('norujukan');
$keuntungan = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan',$norujukan)
->sum('onepercent_rebet');
}else if($type == 'L'){
$akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1],['t_update','>=',$start],['t_update','<=',$end]])->sum('tunggakanonepercent');
$norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->where('t_update','>=',$start)->where('t_update','<=',$end)->pluck('norujukan');
$keuntungan = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan',$norujukan)
->whereDate('tarikh_bayaran','>=',$start)
->whereDate('tarikh_bayaran','<=',$end)
->sum('onepercent_rebet');;
->sum('onepercent_rebet');
}
return $keuntungan;
$totalkeuntungan = $keuntungan + $akrual;
return $totalkeuntungan;
}
public function getTotalUjrah($type = 'B',$start = '2023-12-14',$end = '2023-12-14') : Float{
if($type == 'B'){
$akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1]])->sum('tunggakanujrah');
$norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->pluck('norujukan');
$ujrah = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan',$norujukan)
->sum('ujrah_rebet');
}else if($type == 'L'){
$akrual = Gadai::on($this->cawangan['mysql'])->where([['sttebus',''],['tagbaru',1],['t_update','>=',$start],['t_update','<=',$end]])->sum('tunggakanujrah');
$norujukan = Gadai::on($this->cawangan['mysql'])->where('sttebus','T')->where('tagbaru',1)->pluck('norujukan');
$ujrah = TransaksiKeuntungan::on('mysql7')
@@ -84,8 +95,9 @@ class OnePercentService
->sum('ujrah_rebet');;
}
return $ujrah;
$totalujrah = $ujrah + $akrual;
return $totalujrah;
}
}
File diff suppressed because it is too large Load Diff
+207
View File
@@ -0,0 +1,207 @@
<?php
namespace App\Support;
use App\Cawangan;
use App\Services\MasterServices;
use App\Support\v2\Calculation;
use Illuminate\Http\Request as HttpRequest;
use App\Support\v2\GadaiV2 as Version2Gadai;
use App\Support\v2\Penebusan;
class OnePercent extends MasterServices
{
protected $kodcaw;
protected $cawangan_info;
public function __construct(String $kodcaw){
$this->kodcaw = $kodcaw;
$this->cawangan_info = parent::getInfoCawangan($kodcaw);
}
/* Start Gadaian */
public function createGadai(HttpRequest $httpRequest){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->create($httpRequest);
return $response;
}
public function createMarhunGadai($norujukan,HttpRequest $httpRequest){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->createMarhun($norujukan,$httpRequest);
return $response;
}
public function getUpahSebenar($norujukan){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->kiraupahOnePercent($this->kodcaw,$norujukan);
return $response;
}
public function getUpahRebet($kodcaw,$norujukan){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->kiraupahRebet($this->kodcaw,$norujukan);
return $response;
}
public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->updateAnsuranKaunter($this->kodcaw,$norujukan,$request);
return $response;
}
public function updateJBGSemasa(HttpRequest $request){
$gadai = new Version2Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->updateJBG($request);
return $response;
}
public function getKadarUjrah(HttpRequest $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first();
$onePercentServices = new Calculation();
$kadarujrah = $onePercentServices->getKadarUjrah($request->nilaimarhun,$cawangan['group_id']);
return $kadarujrah;
}
public function getOnePercent(HttpRequest $request){
$onePercentServices = new Calculation();
$keuntungan = $onePercentServices->kiraanKeuntunganSebenar($request->pembiayaan,$request->nilaimarhun,$request->kadarujrah,$request->margin);
return $keuntungan;
}
/* End Gadaian */
/* Start Penebusan */
public function tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function hargaTebusTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->hargaTebusTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function kiraUpahRebetSebenar($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraUpahRebetSebenar($this->kodcaw,$norujukan);
return $response;
}
public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->upahTawarruq($this->kodcaw,$norujukan,$jeniskeuntungan);
return $response;
}
public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->upahRebetTawarruq($this->kodcaw,$norujukan,$jeniskeuntungan);
return $response;
}
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusSeparuhTawarruq($this->kodcaw,$norujukan,$request);
return $response;
}
public function tebusNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function hargaTebusNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->hargaTebusNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function kiraUpahNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraUpahNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function upahNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->upahNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusSeparuhNotTawarruq($this->kodcaw,$norujukan,$request);
return $response;
}
function rebet($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->rebet($this->kodcaw,$norujukan);
return $response;
}
function rebetselepastawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->rebetselepastawarruq($this->kodcaw,$norujukan);
return $response;
}
public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusUpdate($this->kodcaw,$norujukan,$request);
return $response;
}
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request);
return $response;
}
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraupahUjrahOnePercent($this->kodcaw,$norujukan);
return $response;
}
public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraupahUjrahOnePercentRebate($this->kodcaw,$norujukan);
return $response;
}
/* End Penebusan */
public function test(){
echo 'onepercent';
}
}
+178
View File
@@ -0,0 +1,178 @@
<?php
namespace App\Support;
use App\KadarUpah;
use App\Support\v1\GadaiV1 as Version1Gadai;
use App\Services\MasterServices;
use App\Support\v1\Penebusan;
use Illuminate\Http\Request as HttpRequest;
class Tawarruq extends MasterServices
{
protected $kodcaw;
protected $cawangan_info;
public function __construct(String $kodcaw){
$this->kodcaw = $kodcaw;
$this->cawangan_info = parent::getInfoCawangan($kodcaw);
}
/* Start Gadaian */
public function createGadai(HttpRequest $httpRequest){
$gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->create($httpRequest);
return $response;
}
public function createMarhunGadai($norujukan,HttpRequest $httpRequest){
$gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->createMarhun($norujukan,$httpRequest);
return $response;
}
public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){
$gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->updateAnsuranKaunter($this->kodcaw,$norujukan,$request);
return $response;
}
public function updateJBGSemasa(HttpRequest $request){
$gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->updateJBG($request);
return $response;
}
public function getUpahSebenar($norujukan){
$gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->kiraupahTawarruq($norujukan);
return $response;
}
public function getUpahRebet($norujukan){
$gadai = new Version1Gadai($this->kodcaw,$this->cawangan_info);
$response = $gadai->kiraupahRebet($norujukan);
return $response;
}
/* End Gadaian */
/* Start Penebusan */
public function tebusTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function hargaTebusTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->hargaTebusTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function kiraUpahRebetSebenar($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraUpahRebetSebenar($this->kodcaw,$norujukan);
return $response;
}
public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
return $response;
}
public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
return $response;
}
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusSeparuhTawarruq($this->kodcaw,$norujukan,$request);
return $response;
}
public function tebusNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function hargaTebusNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->hargaTebusNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function kiraUpahNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->kiraUpahNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function upahNotTawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->upahNotTawarruq($this->kodcaw,$norujukan);
return $response;
}
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusSeparuhNotTawarruq($this->kodcaw,$norujukan,$request);
return $response;
}
function rebet($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->rebet($this->kodcaw,$norujukan);
return $response;
}
function rebetselepastawarruq($kodcaw,$norujukan){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->rebetselepastawarruq($this->kodcaw,$norujukan);
return $response;
}
public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusUpdate($this->kodcaw,$norujukan,$request);
return $response;
}
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
$tebus = new Penebusan($this->kodcaw,$this->cawangan_info);
$response = $tebus->tebusUpdateAutoTawarruq($this->kodcaw,$norujukan,$request);
return $response;
}
/* End Penebusan */
public function test(){
echo 'tawarruq';
}
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Support\v1;
use App\KadarUpah;
class Calculation
{
public function kiraanTawarruq(float $pembiayaan = 0.0, float $kadarupah = 0.0) : Float{
$total = ($kadarupah/100) * $pembiayaan;
return $total;
}
}
+327
View File
@@ -0,0 +1,327 @@
<?php
namespace App\Support\v1;
use App\Audit;
use App\Cawangan;
use App\Gadai;
use App\KadarUpah;
use App\Marhun;
use App\Support\v1\Calculation;
use App\Transaction;
use App\TransaksiKeuntungan;
use Carbon\Carbon;
use Illuminate\Http\Request as HttpRequest;
use Illuminate\Support\Facades\DB;
class GadaiV1
{
protected $kodcaw;
protected $cawangan_info;
public function __construct(String $kodcaw,Object $cawangan_info){
$this->kodcaw = $kodcaw;
$this->cawangan_info = $cawangan_info;
}
public function create(HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$kodcaw = $this->kodcaw;
$cawangan = $this->cawangan_info;
try{
DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) {
$gadai = Gadai::on($cawangan['mysql'])->create([
'kodcaw'=>$kodcaw,
'norujukan' => $request->norujukan,
'nopelanggan' => $request->nopelanggan,
'nokp' => $request->nokp,
'sirig' => $request->sirig,
't_gadai' => $current->toDateString(),
'sttebus' => '',
'masa' =>$current->toTimeString()
]);
return response()->json($gadai, 201);
});
}catch(\Exception $e){
echo "Gadaian Gagal: " . $e->getMessage();
}
}
public function createMarhun($norujukan,HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$t_matang = Carbon::now();
$t_matang = new Carbon();
$t_matang = $t_matang->addMonths(6)->subDays(1);
$t_kontrak = Carbon::now();
$t_kontrak = new Carbon();
$t_kontrak = $t_kontrak->addMonths(12)->subDays(1);
$margin_pinjam = $request->percentpinj *100;
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$request->kodcaw)
->first();
if($request->transaction == 'Ubah Gadai'){
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
}
$bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->count();
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun');
$total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat');
$kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first();
$tawarruqservices = new Calculation();
$upahcalculation = $tawarruqservices->kiraanTawarruq($request->pinjaman,$kadar_raw['kadarupdah']);
$upah1 = $upahcalculation;
$upah6 = $upah1 * 6;
$upah12 = $upah1 * 12;
$hargajualan = $request->pinjaman + $upah12;
$gadai = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->update(array(
'nilaimarhun' => $total_nilai_marhun,
'berat'=> $total_berat,
'pinjaman' => $request->pinjaman,
'kadarupah' => $kadar_raw['kadarupdah'],
'marhun' => $request->marhun,
'percentpinj' => $margin_pinjam,
'teller' => $request->teller,
'bakipjm' => $request->pinjaman,
'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' => $bil_marhun,
'tagkomuditi' => 0,
'upahdibayar' => 0.00,
'tempohbayar' => 0.00,
'lelong_tawarruq' => 1
));
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = $request->transaction;
$audit->norujukan = $norujukan;
$audit->new_data = $new_data;
if($request->transaction == 'Ubah Gadai'){
$audit->old_data = $old_data;
}
$audit->kodcaw = $request->kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json($gadai, 200);
}
public function kiraupahTawarruq($norujukan){
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$tawarruqservices = new Calculation();
$keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']);
$upahsemasa_raw = $bilang_bln * $keuntungan;
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = substr($upah_semasa_round, 0, -1);
// $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa));
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
}
public function kiraUpahRebet($norujukan){
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$tawarruqservices = new Calculation();
$keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']);
$upahrebet_raw = $bilang_bln * $keuntungan;
$upah_rebet_round = number_format($upahrebet_raw,2);
$upah_rebet = substr($upah_rebet_round, 0, -1);
if(strpos($upah_rebet,',')){
$upah_rebet = str_replace(',','',$upah_rebet);
}
// $upah_rebet = floatval(preg_replace('/[^\d.]/', '', $upah_rebet));
return $upah_rebet;
}
public function updateAnsuranKaunter($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();
$upahsemasa = $this->kiraupahTawarruq($norujukan);
$upahrebet = $this->kiraUpahRebet($norujukan);
$total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk');
$total_bayaran_semasa = $total_bayaran_prev + $request->bayaran;
if($total_bayaran_semasa >= $gadai['bakiupah']){
$lelong_tawarruq = 0;
}else{
$lelong_tawarruq = 1;
}
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bayaran;
$baki_bayaran = $request->bayaran - $upahsemasa;
$baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran;
$transaction = Transaction::on('mysql7')->create([
'trans_type' => 'A',
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->bayaran,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
'nowakil' => (int)$request->nowakil
]);
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upahsemasa,
'bayaran_pembiayaan' => $baki_bayaran,
'keuntungan_rebet'=> $upahrebet,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw
]);
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'bakipjm' => $baki_pinjaman,
'jbg' => 0,
't_update' => $current->toDateString(),
'bakihargajualan' => $baki_hargajualan,
'tempohbayar' => $gadai['tempoh'],
'lelong_tawarruq' => $lelong_tawarruq
));
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = 'Bayaran Ansuran';
$audit->norujukan = $norujukan;
$audit->new_data = $new_data;
$audit->old_data = $old_data;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json("success",200);
// return response()->json($update_gadai, 200);
}
public function updateJBG(HttpRequest $request){
$cawangan_mysql = $this->cawangan_info;
$all_gadai = Gadai::on($cawangan_mysql['mysql'])->whereNotIn('sttebus',['L','T'])->get();
foreach($all_gadai as $gadai){
if($gadai['t_update'] == null){
$tarikh_update = Carbon::parse($gadai['t_gadai'].' '. $gadai['masa']);
}else{
$tarikh_update = Carbon::parse($gadai['t_update'].' 00:00:00' );
}
$tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00');
$current = Carbon::now();
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $current->year;
$bulan_semasa = $current->month;
$hari_semasa = $current->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
$upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']);
Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => $upah_semasa
));
}
return response()->json('successful',200);
}
public function kiraupahTawarruqStokAudit($tempoh,$tempohbayar,$kadarupah,$bakipinjaman){
$bilang_bln = $tempoh - $tempohbayar;
$upahsemasa_raw = $bilang_bln * (($kadarupah/100 )* $bakipinjaman);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = substr($upah_semasa_round, 0, -1);
// $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa));
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
}
}
+678
View File
@@ -0,0 +1,678 @@
<?php
namespace App\Support\v1;
use App\Advansur;
use App\Audit;
use App\Cawangan;
use App\KadarUpah;
use App\Support\v2\Calculation;
use Carbon\Carbon;
use App\Gadai;
use App\InOutMar;
use App\Marhun;
use App\Moratorium;
use App\Support\OnePercent;
use App\Support\Tawarruq;
use App\Support\v1\Calculation as V1Calculation;
use App\Tebus;
use App\Transaction;
use App\TransaksiKeuntungan;
use Illuminate\Http\Request as HttpRequest;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use PDO;
class Penebusan
{
protected $kodcaw;
protected $cawangan_info;
public function __construct(String $kodcaw,Object $cawangan_info){
$this->kodcaw = $kodcaw;
$this->cawangan_info = $cawangan_info;
}
public function tebusTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet;
$hargatebus = bcdiv(round($harga_tebus,2),1,1);
$hargatebus = number_format($hargatebus,2);
if(strpos($hargatebus,',')){
$hargatebus = str_replace(',','',$hargatebus);
}
return response()->json($hargatebus);
}
public function hargaTebusTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet;
$hargatebus = bcdiv(round($harga_tebus,2),1,1);
$hargatebus = number_format($hargatebus,2);
if(strpos($hargatebus,',')){
$hargatebus = str_replace(',','',$hargatebus);
}
return $hargatebus;
}
public function kiraupahTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upahsemasa_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['pinjaman']);
$upah_semasa_round = number_format($upahsemasa_raw,2);
if(strpos($upah_semasa_round,',')){
$upah_semasa_round = str_replace(',','',$upah_semasa_round);
}
$upah_semasa = substr($upah_semasa_round, 0, -1);
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
}
public function kiraUpahRebet($norujukan){
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
$upah_rebet_round = number_format($upahrebet_raw,2);
if(strpos($upah_rebet_round,',')){
$upah_rebet_round = str_replace(',','',$upah_rebet_round);
}
$upah_rebet = substr($upah_rebet_round, 0, -1);
if(strpos($upah_rebet,',')){
$upah_rebet = str_replace(',','',$upah_rebet);
}
return $upah_rebet;
}
public function kiraUpahRebetSebenar($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar'];
$upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
// $upah_rebet = round($upahrebet_raw,PHP_ROUND_HALF_UP);
$upah_rebet_round = number_format($upahrebet_raw,2);
if(strpos($upah_rebet_round,',')){
$upah_rebet_round = str_replace(',','',$upah_rebet_round);
}
$upah_rebet = substr($upah_rebet_round, 0, -1);
if(strpos($upah_rebet,',')){
$upah_rebet = str_replace(',','',$upah_rebet);
}
$total_untung_rebet = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('keuntungan_rebet');
$total_untung_asal = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('bayaran_keuntungan');
$beza_keuntungan = $total_untung_asal - $total_untung_rebet;
$keuntungan_rebet_sebenar = $upah_rebet - $beza_keuntungan;
return $keuntungan_rebet_sebenar;
}
public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$tawarruqservices = new V1Calculation();
$keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']);
$upahsemasa_raw = $bilang_bln * $keuntungan;
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = substr($upah_semasa_round, 0, -1);
// $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa));
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
}
public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$upah_rebet = $this->kiraUpahRebet($norujukan);
return response()->json(number_format($upah_rebet,2));
}
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahsemasa = $this->kiraupahTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan);
$array_recno_marhun = $request->array_recno;
$margin_pembiayaan = round(($gadai_data['bakipjm']/$gadai_data['nilaimarhun'])*100,2);
// $margin_pembiayaan = round(($gadai_data['bakipjm']/$request->hargasemasa)*100,2);
$nilai_marhun = $gadai_data['nilaimarhun'];
$total_harga_tebus = 0;
foreach($array_recno_marhun as $recno){
$marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first();
$harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun'];
$total_harga_tebus += $harga_tebus;
}
$total_harga_tebus_round = round($total_harga_tebus,2);
$totalhargatebus = substr($total_harga_tebus_round, 0, -1);
return response()->json($totalhargatebus);
}
public function tebusNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan);
$harga_tebus = $upah_semasa + $gadai_data['pinjaman'];
return response()->json($harga_tebus);
}
public function hargaTebusNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan);
$harga_tebus = $upah_semasa + $gadai_data['pinjaman'];
return $harga_tebus;
}
public function kiraUpahNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahtelahbayar = Advansur::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->sum('upahdibayar');
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
$bln_mora = Moratorium::first();
$upah_sebenar = $upah_asal - $rebet;
$bln_upah = $gadai_data['tempoh'];
if($bln_upah > $bln_mora['bln_mora']){
$bln_upah = $bln_mora['bln_mora'];
}
$upahsemasa = $upah_sebenar * $bln_upah;
$upah_semasa = bcdiv(round($upahsemasa,2),1,1);
$upah_semasa = number_format($upah_semasa,2);
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
$upah_semasa = (float)$upah_semasa - $upahtelahbayar;
if($upah_semasa <= 0){
$upah_semasa = 0;
}
return $upah_semasa;
}
public function upahNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahtelahbayar = Advansur::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->sum('upahdibayar');
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
$bln_mora = Moratorium::first();
$upah_sebenar = $upah_asal - $rebet;
$bln_upah = $gadai_data['tempoh'];
if($bln_upah > $bln_mora['bln_mora']){
$bln_upah = $bln_mora['bln_mora'];
}
$upahsemasa = $upah_sebenar * $bln_upah;
$upah_semasa = bcdiv(round($upahsemasa,2),1,1);
$upah_semasa = number_format($upah_semasa,2);
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
$upah_semasa = (float)$upah_semasa - $upahtelahbayar;
if($upah_semasa <= 0){
$upah_semasa = 0;
}
return response()->json($upah_semasa);
}
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
$upah_sebenar = $upah_asal - $rebet;
$upah_semasa = bcdiv(round($upah_sebenar * $gadai_data['jbg'],2),1,1);
$upah_semasa = (float)number_format($upah_semasa,2);
$array_recno_marhun = $request->array_recno;
$margin_pembiayaan = round(($gadai_data['pinjaman']/$gadai_data['nilaimarhun'])*100,2);
$nilai_marhun = $gadai_data['nilaimarhun'];
$total_harga_tebus = 0;
foreach($array_recno_marhun as $recno){
$marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first();
$harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun'];
$total_harga_tebus += $harga_tebus;
}
// $total_harga_tebus += $upah_semasa;
return response()->json($total_harga_tebus);
}
function rebet($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
return floatval(number_format($rebet,2));
}
function rebetselepastawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$transaction_keuntungan = TransaksiKeuntungan::on('mysql7')
->where('norujukan','=',$norujukan)
->sum('keuntungan_rebet');
$upah_rebet = $this->kiraUpahRebet($norujukan);
$rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet;
$rebet_round = bcdiv(round($rebet_raw,2),1,1);
$rebet_round = number_format($rebet_round,2);
if(strpos($rebet_round,',')){
$rebet_round = str_replace(',','',$rebet_round);
}
$rebet = substr($rebet_round, 0, -1);
return $rebet;
}
public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
if($request->jenisbayarantebus == "tawarruq")
{
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
}
else if($request->jenisbayarantebus == "nottawarruq")
{
$rebet = $this->rebet($kodcaw,$norujukan);
}
else{
$rebet = 0;
}
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
if($gadai['hargajualan'] == null){
$harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan);
$upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan);
$upah_rebet = 0;
$upah_rebet_sebenar = 0;
}else{
$harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan);
$upah_tebus = $this->kiraupahTawarruq($kodcaw,$norujukan);
$upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan);
$upah_rebet_sebenar = $harga_tebus - $gadai['bakipjm'];
}
$create_tebus = Tebus::on($cawangan['mysql'])->create([
'kodcaw'=> $kodcaw,
'norujukan'=> $norujukan,
'nopelanggan' => $request->nopelanggan,
'jenisbyr' => "TN",
'jenistebus' => $request->jenistebus,
'glcode' => "0",
't_tebus' => $current->toDateString(),
'jbg' => $gadai['tempoh'],
'kadarupah' => $gadai['kadarupah'],
'nilaimarhun' => $gadai['nilaimarhun'],
'pinjaman' => $gadai['pinjaman'],
'ansuran' => 0.00,
'addpinjaman' => $request->addpinjaman,
'bakipjm' => $harga_tebus,
'bakiupah' => $upah_tebus,
'terima' => "*",
'kodgl' => "0",
'nowakil' => $request->nowakil,
'rebate' => $rebet,
'marhuntebus' => $request->marhun,
'historygadaian' => $norujukan,
'tarikhbyrn' => $current->toDateString(),
'teller' => $request->teller
]);
$create_inoutmar = InOutMar::on($cawangan['mysql'])->create([
'tarikh' => $current->toDateString(),
'masa' => $current->toTimeString(),
'norujukan' => $norujukan,
'nm' => $request->nilai_marhun,
'pkd' => $request->teller,
'drp' => $request->teller,
'bln' => $current->month,
'thn' => $current->year,
'tag' => 0,
'jenistebus' => $request->jenistebus,
'namateller' => $request->teller
]);
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upah_tebus,
'bayaran_pembiayaan' => $gadai['bakipjm'],
'keuntungan_rebet' => $upah_rebet_sebenar,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw
]);
if($request->jenistebus == 'P'){
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bakiupah;
$transaction = Transaction::on('mysql7')->create([
'trans_type' => $request->jenistebus,
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->bakiupah,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
]);
}else{
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bakipinjaman;
$transaction = Transaction::on('mysql7')->create([
'trans_type' => $request->jenistebus,
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $harga_tebus,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
'nowakil' => (int)$request->nowakil,
'duitpelanggan' => isset($request->duitpelanggan) ? $request->duitpelanggan : 0,
'bakipelanggan' => isset($request->bakipelanggan) ? $request->bakipelanggan : 0,
]);
}
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'sttebus' => "T",
't_update' => $current->toDateString(),
));
$audit = new Audit();
$audit->users = $request->teller;
if($request->jenistebus == 'P'){
$audit->actions = "Tambah Pembiayaan";
}else if($request->jenistebus == 'S'){
$audit->actions = "Tebus Separuh";
}else if($request->jenistebus == 'T'){
$audit->actions = "Tebus Penuh";
}
$audit->norujukan = $norujukan;
$audit->new_data = $create_tebus;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json($update_gadai, 201);
}
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
if($request->jenisbayarantebus == "tawarruq")
{
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
}
else if($request->jenisbayarantebus == "nottawarruq")
{
$rebet = $this->rebet($kodcaw,$norujukan);
}
else{
$rebet = 0;
}
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'sttebus' => "T",
't_update' => $current->toDateString(),
));
$upah_rebet = $this->kiraUpahRebet($norujukan);
$create_tebus = Tebus::on($cawangan['mysql'])->create([
'kodcaw'=> $kodcaw,
'norujukan'=> $norujukan,
'nopelanggan' => $request->nopelanggan,
'jenisbyr' => "TN",
'jenistebus' => $request->jenistebus,
'glcode' => "0",
't_tebus' => $current->toDateString(),
'jbg' => $request->jbg,
'kadarupah' => $request->kadarupah,
'nilaimarhun' => $request->nilai_marhun,
'pinjaman' => $request->pinjaman,
'ansuran' => $request->ansuran,
'addpinjaman' => $request->addpinjaman,
'bakipjm' => $request->bakipinjaman,
'bakiupah' => $request->bakiupah,
'terima' => "*",
'kodgl' => "0",
'nowakil' => $request->nowakil,
'rebate' => $rebet,
'marhuntebus' => $request->marhun,
'historygadaian' => $request->historygadaian,
'tarikhbyrn' => $current->toDateString(),
'teller' => $request->teller
]);
$create_inoutmar = InOutMar::on($cawangan['mysql'])->create([
'tarikh' => $current->toDateString(),
'masa' => $current->toTimeString(),
'norujukan' => $norujukan,
'nm' => $request->nilai_marhun,
'pkd' => $request->teller,
'drp' => $request->teller,
'bln' => $current->month,
'thn' => $current->year,
'tag' => 0,
'jenistebus' => $request->jenistebus,
'namateller' => $request->teller
]);
$bayaran_pembiayaan = $request->totalbayaran - $request->bakiupah;
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $request->bakiupah,
'bayaran_pembiayaan' => $bayaran_pembiayaan,
'keuntungan_rebet' => $request->bakiupah,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw
]);
$transaction = Transaction::on('mysql7')->create([
'trans_type' => $request->jenistebus,
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->totalbayaran,
'created_at' => $current,
'bakiharga' => 0,
'duitpelanggan' => isset($request->bayaranpelanggan) ? $request->bayaranpelanggan : 0,
'bakipelanggan' => isset($request->bakipelanggan) ? $request->bakipelanggan : 0
]);
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = "Auto Tawarruq";
$audit->norujukan = $norujukan;
$audit->new_data = $create_tebus;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json($update_gadai, 201);
}
}
+121
View File
@@ -0,0 +1,121 @@
<?php
namespace App\Support\v2;
use App\KadarUpah;
use Illuminate\Http\Request;
class Calculation
{
protected $maks_margin = 80;
protected $one_percent = 1;
/* Start Calculation of Ujrah */
private function kiraanUjrah(float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
//periksa adakah kadar ujrah ini diberi percentage
if($kadarujrah >= 1){
return;
}
$ujrah = ($kadarujrah/100) * $nilaimarhun;
$formula_margin = ($this->maks_margin - $margin) / $this->maks_margin;
$ujrah_margin = $formula_margin * $kadarujrah;
$rebate_ujrah = $nilaimarhun*($ujrah_margin/100);
$ujrah_sebenar = $ujrah;
return $ujrah_sebenar;
}
private function kiraanOnePercent(float $pembiayaan = 0.0){
//periksa adakah pembiayaan adalah null atau kosong.
if($pembiayaan == 0 || $pembiayaan == null)
return;
$onepercent = ($this->one_percent/100) * $pembiayaan;
return $onepercent;
}
public function kiraanUjrahSebenar(float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
if($kadarujrah >= 1){
return;
}
$ujrah = ($kadarujrah/100) * $nilaimarhun;
$formula_margin = ($this->maks_margin - $margin) / $this->maks_margin;
$rebate_ujrah = $formula_margin * $ujrah;
$ujrah_sebenar = $ujrah - $rebate_ujrah;
return $ujrah_sebenar;
}
public function kiraanKeuntunganRebet(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
$onepercent = $this->kiraanOnePercent($pembiayaan);
$ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin);
$onepercent = $this->getRoundedMethod($onepercent);
$ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar);
$keuntungan = $onepercent + $ujrah_sebenar;
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
}
public function kiraanKeuntunganSebenar(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
$onepercent = $this->kiraanOnePercent($pembiayaan);
$ujrah_sebenar = $this->kiraanUjrah($nilaimarhun,$kadarujrah,$margin);
$onepercent = $this->getRoundedMethod($onepercent);
$ujrah_sebenar = $this->getRoundedMethod($ujrah_sebenar);
$keuntungan = $onepercent + $ujrah_sebenar;
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
}
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{
$kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray();
return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0;
}
public function getRoundedMethod(float $number = 0.0) : Float{
$number_string = number_format(floor(($number*100))/100,2);
$rounded = substr($number_string, 0, -1);
$lastDigit = substr($number_string, -1);
if ($lastDigit >= 0 && $lastDigit <= 2) {
if(strpos($rounded,',')){
$rounded = str_replace(',','',$rounded);
}
return $rounded;
} elseif ($lastDigit >= 3 && $lastDigit <= 7) {
$rounded = $rounded . '5';
if(strpos($rounded,',')){
$rounded = str_replace(',','',$rounded);
}
return $rounded;
} else {
return round($number,PHP_ROUND_HALF_UP);
}
}
/* End of Line Calculation */
}
+433
View File
@@ -0,0 +1,433 @@
<?php
namespace App\Support\v2;
use App\Audit;
use App\Cawangan;
use App\KadarUpah;
use App\Support\v2\Calculation;
use Carbon\Carbon;
use App\Gadai;
use App\Marhun;
use App\Support\OnePercent;
use App\Transaction;
use App\TransaksiKeuntungan;
use Illuminate\Http\Request as HttpRequest;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use PDO;
class GadaiV2
{
protected $kodcaw;
protected $cawangan_info;
public function __construct(String $kodcaw,Object $cawangan_info){
$this->kodcaw = $kodcaw;
$this->cawangan_info = $cawangan_info;
}
public function create(HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$kodcaw = $this->kodcaw;
$cawangan = $this->cawangan_info;
try{
DB::transaction(function () use ($cawangan, $kodcaw, $request, $current) {
$gadai = Gadai::on($cawangan['mysql'])->create([
'kodcaw'=>$kodcaw,
'norujukan' => $request->norujukan,
'nopelanggan' => $request->nopelanggan,
'nokp' => $request->nokp,
'sirig' => $request->sirig,
't_gadai' => $current->toDateString(),
'sttebus' => '',
'masa' =>$current->toTimeString(),
'tagbaru' => 1
]);
return response()->json($gadai, 201);
});
}catch(\Exception $e){
echo "Gadaian Gagal: " . $e->getMessage();
}
}
public function createMarhun($norujukan,HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$t_matang = Carbon::now();
$t_matang = new Carbon();
$t_matang = $t_matang->addMonths(6)->subDays(1);
$t_kontrak = Carbon::now();
$t_kontrak = new Carbon();
$t_kontrak = $t_kontrak->addMonths(12)->subDays(1);
$margin_pinjam = $request->percentpinj *100;
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$request->kodcaw)
->first();
if($request->transaction == 'Ubah Gadai'){
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
}
$bil_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->count();
$total_nilai_marhun = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('n_marhun');
$total_berat = Marhun::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->sum('berat');
//query kadar upah baru
$kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->where('group_id',$cawangan['group_id'])->first();
// query kadar upah lama
// $kadar_raw = KadarUpah::where('min','<=',$total_nilai_marhun)->where('max','>=',$total_nilai_marhun)->first();
$onepercentservices = new Calculation();
$keuntungan = $onepercentservices->kiraanKeuntunganSebenar($request->pinjaman,$total_nilai_marhun,$kadar_raw['kadarujrah'],$margin_pinjam);
// $upah1 = $request->pinjaman * ($kadar_raw['kadarupdah']/100);
// $upah6 = $upah1 * 6;
// $upah12 = $upah1 * 12;
$upah1 = $keuntungan['keuntungan'];
$upah6 = $upah1 * 6;
$upah12 = $upah1 * 12;
$ujrah = $keuntungan['ujrah'];
$onepercent = $keuntungan['onepercent'];
$hargajualan = $request->pinjaman + $upah12;
$akrual = $this->kiraupahTawarruqStokAuditUjrahOnePercent(0.5,0,$kadar_raw['kadarujrah'],$request->pinjaman,$total_nilai_marhun,$margin_pinjam);
$gadai = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->update(array(
'nilaimarhun' => $total_nilai_marhun,
'berat'=> $total_berat,
'pinjaman' => $request->pinjaman,
'kadarupah' => $kadar_raw['kadarujrah'],
'marhun' => $request->marhun,
'percentpinj' => $margin_pinjam,
'teller' => $request->teller,
'bakipjm' => $request->pinjaman,
'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' => $bil_marhun,
'tagkomuditi' => 0,
'upahdibayar' => 0.00,
'tempohbayar' => 0.00,
'lelong_tawarruq' => 1,
'kadarujrah' => $kadar_raw['kadarujrah'],
'ujrah' => $ujrah,
'onepercent' => $onepercent,
'margin_semasa' => $margin_pinjam,
'tagbaru' => 1,
'tunggakanujrah' => $akrual['ujrah'],
'tunggakanonepercent' => $akrual['keuntungan'],
));
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = $request->transaction;
$audit->norujukan = $norujukan;
$audit->new_data = $new_data;
if($request->transaction == 'Ubah Gadai'){
$audit->old_data = $old_data;
}
$audit->kodcaw = $request->kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return 'true';
}
public function kiraupahOnePercent($norujukan){
$onepercentservices = new Calculation();
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$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);
return $upahsemasa_raw;
}
public function kiraupahRebet($norujukan){
$onepercentservices = new Calculation();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$this->kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$upahrebet_raw = $bilang_bln * $upah['keuntungan'];
$upahrebet_raw = $onepercentservices->getRoundedMethod($upahrebet_raw);
return $upahrebet_raw;
}
public function updateAnsuranKaunter($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();
$upahsemasa = $this->kiraupahOnePercent($norujukan);
$upahrebet = $this->kiraUpahRebet($norujukan);
$total_bayaran_prev = Transaction::on('mysql7')->where([['norujukan','=',$norujukan],['trans_type','=','A']])->sum('duit_masuk');
$total_bayaran_semasa = $total_bayaran_prev + $request->bayaran;
if($total_bayaran_semasa >= $gadai['bakiupah']){
$lelong_tawarruq = 0;
}else{
$lelong_tawarruq = 1;
}
$onepercent = new Calculation();
$old_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bayaran;
$baki_bayaran = $request->bayaran - $upahsemasa;
$baki_pinjaman = $gadai['bakipjm'] - $baki_bayaran;
$margin_semasa = ($gadai['bakipjm'] / $gadai['nilaimarhun']) * 100;
$keuntungan = $onepercent->kiraanKeuntunganSebenar($gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['kadarupah'],$margin_semasa);
$ujrahasal = $onepercent->kiraanUjrahSebenar($gadai['nilaimarhun'],$gadai['kadarupah'],$gadai['margin_semasa']);
$onepercentasal = $gadai['pinjaman'] * (1/100);
try {
DB::connection('mysql7')->transaction(function () use($onepercentasal,$ujrahasal,$keuntungan,$norujukan,$gadai,$request,$kodcaw,$current,$baki_hargajualan,$upahsemasa,$baki_bayaran,$upahrebet,$cawangan,$old_data,$baki_pinjaman,$lelong_tawarruq,$margin_semasa,$onepercent) {
$transaction = Transaction::on('mysql7')->create([
'trans_type' => 'A',
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->bayaran,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
'nowakil' => (int)$request->nowakil,
'duitpelanggan' => $request->duitpelanggan,
'bakipelanggan' => $request->bakipelanggan
]);
if($gadai['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai['tempoh'];
}
$bilang_bln = $tempoh - $gadai['tempohbayar'];
$ujrah = $onepercent->getRoundedMethod($keuntungan['ujrah'] * $bilang_bln);
$ujrah_rebate = $onepercent->getRoundedMethod($ujrahasal * $bilang_bln);
$keun = $onepercent->getRoundedMethod($onepercentasal * $bilang_bln);
$keuntungan_rebate = $onepercent->getRoundedMethod($keuntungan['onepercent'] * $bilang_bln);
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upahsemasa,
'bayaran_pembiayaan' => $baki_bayaran,
'keuntungan_rebet'=> $upahrebet,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw,
'ujrah' => $ujrah,
'ujrah_rebet' => $ujrah_rebate,
'onepercent' => $keun,
'onepercent_rebet' => $keuntungan_rebate,
'tempoh' => $gadai['tempoh'],
'beza_tempoh' => $bilang_bln,
'margin_semasa' => $margin_semasa,
]);
DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$baki_pinjaman,$current,$norujukan,$gadai,$baki_hargajualan,$lelong_tawarruq,$margin_semasa){
$margin_updated = ($baki_pinjaman / $gadai['nilaimarhun']) * 100;
$akrual = $this->kiraupahTawarruqStokAuditUjrahOnePercent($gadai['tempoh'],$gadai['tempohbayar'],$gadai['kadarujrah'],$gadai['bakipjm'],$gadai['nilaimarhun'],$margin_semasa);
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'bakipjm' => $baki_pinjaman,
'jbg' => 0,
't_update' => $current->toDateString(),
'bakihargajualan' => $baki_hargajualan,
'tempohbayar' => $gadai['tempoh'],
'lelong_tawarruq' => $lelong_tawarruq,
'margin_semasa' => $margin_updated,
'tunggakanujrah' => $akrual['ujrah'],
'tunggakanonepercent' => $akrual['keuntungan']
));
});
$new_data = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = 'Bayaran Ansuran';
$audit->norujukan = $norujukan;
$audit->new_data = $new_data;
$audit->old_data = $old_data;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
if(!$transaction || !$transaction_upah) {
throw new \Exception('One of the database operations failed.');
}
DB::commit();
});
}catch(\Exception $e){
Log::error("Transaction failed: " . $e->getMessage());
return response()->json("Transaction failed: " . $e->getMessage(),500);
}
return response()->json("success",200);
}
public function updateJBG(HttpRequest $request){
$cawangan_mysql = $this->cawangan_info;
$all_gadai = Gadai::on($cawangan_mysql['mysql'])->whereNotIn('sttebus',['L','T'])->get();
foreach($all_gadai as $gadai){
if($gadai['t_update'] == null){
$tarikh_update = Carbon::parse($gadai['t_gadai'].' '. $gadai['masa']);
}else{
$tarikh_update = Carbon::parse($gadai['t_update'].' 00:00:00' );
}
$tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00');
$current = Carbon::now();
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $current->year;
$bulan_semasa = $current->month;
$hari_semasa = $current->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
if(isset($gadai['tagbaru'])){
if($gadai['tagbaru'] == 1){
$upah_semasa = $this->kiraupahTawarruqStokAuditUjrahOnePercent($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm'],$gadai['nilaimarhun'],$gadai['margin_semasa']);
Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => 0,
'tunggakanujrah' => $upah_semasa['ujrah'],
'tunggakanonepercent' => $upah_semasa['keuntungan'],
));
}
else{
$upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']);
Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => $upah_semasa,
));
}
}else{
$upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']);
Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => $upah_semasa,
));
}
}
return response()->json('successful',200);
}
public function kiraupahTawarruqStokAudit($tempoh,$tempohbayar,$kadarupah,$bakipinjaman){
$bilang_bln = $tempoh - $tempohbayar;
$upahsemasa_raw = $bilang_bln * (($kadarupah/100 )* $bakipinjaman);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = substr($upah_semasa_round, 0, -1);
// $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa));
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
}
public function kiraupahTawarruqStokAuditUjrahOnePercent($tempoh,$tempohbayar,$kadarupah,$bakipinjaman,$nilaimarhun,$margin_semasa){
$onepercentservices = new Calculation();
$upah = $onepercentservices->kiraanKeuntunganRebet($bakipinjaman,$nilaimarhun,$kadarupah,$margin_semasa);
$bilang_bln = $tempoh - $tempohbayar;
$keuntungan_semasa = $bilang_bln * $upah['onepercent'];
$ujrah_semasa = $bilang_bln * $upah['ujrah'];
$keuntungan_semasa = $onepercentservices->getRoundedMethod($keuntungan_semasa);
$ujrah_semasa = $onepercentservices->getRoundedMethod($ujrah_semasa);
$pendapatan = $keuntungan_semasa + $ujrah_semasa;
$arraypendapatan = [
'keuntungan' => $keuntungan_semasa,
'ujrah' => $ujrah_semasa,
'pendapatan' => $pendapatan,
];
return $arraypendapatan;
}
}
+789
View File
@@ -0,0 +1,789 @@
<?php
namespace App\Support\v2;
use App\Advansur;
use App\Audit;
use App\Cawangan;
use App\KadarUpah;
use App\Support\v2\Calculation;
use Carbon\Carbon;
use App\Gadai;
use App\InOutMar;
use App\Marhun;
use App\Moratorium;
use App\Support\OnePercent;
use App\Tebus;
use App\Transaction;
use App\TransaksiKeuntungan;
use Illuminate\Http\Request as HttpRequest;
use App\Support\v2\GadaiV2 as Version2Gadai;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use PDO;
class Penebusan
{
protected $kodcaw;
protected $cawangan_info;
public function __construct(String $kodcaw,Object $cawangan_info){
$this->kodcaw = $kodcaw;
$this->cawangan_info = $cawangan_info;
}
public function tebusTawarruq($kodcaw,$norujukan){
$onepercentservices = new Calculation();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$jeniskeuntungan = ($gadai_data['tagbaru'] == 1) ? 'onepercent' : 'asal';
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$jeniskeuntungan);
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet;
// $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP);
// $hargatebus = bcdiv(round($harga_tebus,2),1,1);
// $hargatebus = number_format($hargatebus,2);
// if(strpos($hargatebus,',')){
// $hargatebus = str_replace(',','',$hargatebus);
// }
$hargatebus = $onepercentservices->getRoundedMethod($harga_tebus);
return response()->json($hargatebus);
}
public function hargaTebusTawarruq($kodcaw,$norujukan){
$onepercentservices = new Calculation();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
$harga_tebus = $gadai_data['bakihargajualan'] - $rebet;
// $hargatebus = round($harga_tebus,PHP_ROUND_HALF_UP);
// $hargatebus = bcdiv(round($harga_tebus,2),1,1);
// $hargatebus = number_format($hargatebus,2);
// if(strpos($hargatebus,',')){
// $hargatebus = str_replace(',','',$hargatebus);
// }
$hargatebus = $onepercentservices->getRoundedMethod($harga_tebus);
$arrayharga = ['harga' => $hargatebus];
return $arrayharga;
}
public function kiraUpahRebetSebenar($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $gadai_data['tempoh'] - $gadai_data['tempohbayar'];
$upahrebet_raw = $bilang_bln * (($gadai_data['kadarupah']/100 )* $gadai_data['bakipjm']);
// $upah_rebet = round($upahrebet_raw,PHP_ROUND_HALF_UP);
$upah_rebet_round = number_format($upahrebet_raw,2);
if(strpos($upah_rebet_round,',')){
$upah_rebet_round = str_replace(',','',$upah_rebet_round);
}
$upah_rebet = substr($upah_rebet_round, 0, -1);
if(strpos($upah_rebet,',')){
$upah_rebet = str_replace(',','',$upah_rebet);
}
$total_untung_rebet = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('keuntungan_rebet');
$total_untung_asal = TransaksiKeuntungan::on('mysql7')->where('norujukan','=',$norujukan)->sum('bayaran_keuntungan');
$beza_keuntungan = $total_untung_asal - $total_untung_rebet;
$keuntungan_rebet_sebenar = $upah_rebet - $beza_keuntungan;
return $keuntungan_rebet_sebenar;
}
public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$onepercentservices = new Calculation();
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']);
$keuntungan_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
$ujrah_semasa = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
$upahsemasa_raw = $keuntungan_semasa + $ujrah_semasa;
$upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw);
$keuntungan_1bln = $onepercentservices->getRoundedMethod((1 * $upah['onepercent'])+(1 * $upah['ujrah']));
$array_upah =
[
'keuntungan_1bln' => $keuntungan_1bln,
'pendapatan' => $upahsemasa_raw,
'keuntungan' => $keuntungan_semasa,
'ujrah' => $ujrah_semasa
];
return $array_upah;
}
public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
$onepercentservices = new Calculation();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$this->kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$upahrebet_raw = $onepercentservices->getRoundedMethod($bilang_bln * $upah['keuntungan']);
$upahujrah_raw = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
$upahonepercent_raw = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
$array_upah =
[
'pendapatan' => $upahrebet_raw,
'keuntungan' => $upahonepercent_raw,
'ujrah' => $upahujrah_raw
];
return $array_upah;
}
public function kiraupahTawarruq($norujukan){
$onepercentservices = new Calculation();
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$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);
return $upahsemasa_raw;
}
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahsemasa = $this->kiraupahTawarruq($norujukan);
$array_recno_marhun = $request->array_recno;
$margin_pembiayaan = round(($gadai_data['bakipjm']/$gadai_data['nilaimarhun'])*100,2);
// $margin_pembiayaan = round(($gadai_data['bakipjm']/$request->hargasemasa)*100,2);
$nilai_marhun = $gadai_data['nilaimarhun'];
$total_harga_tebus = 0;
foreach($array_recno_marhun as $recno){
$marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first();
$harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun'];
$total_harga_tebus += $harga_tebus;
}
$total_harga_tebus_round = round($total_harga_tebus,2);
$totalhargatebus = substr($total_harga_tebus_round, 0, -1);
return response()->json($totalhargatebus);
}
public function tebusNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan);
$harga_tebus = $upah_semasa + $gadai_data['pinjaman'];
return response()->json($harga_tebus);
}
public function hargaTebusNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_semasa = $this->kiraUpahNotTawarruq($kodcaw,$norujukan);
$harga_tebus = $upah_semasa + $gadai_data['pinjaman'];
return $harga_tebus;
}
public function kiraUpahNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahtelahbayar = Advansur::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->sum('upahdibayar');
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
$bln_mora = Moratorium::first();
$upah_sebenar = $upah_asal - $rebet;
$bln_upah = $gadai_data['tempoh'];
if($bln_upah > $bln_mora['bln_mora']){
$bln_upah = $bln_mora['bln_mora'];
}
$upahsemasa = $upah_sebenar * $bln_upah;
$upah_semasa = bcdiv(round($upahsemasa,2),1,1);
$upah_semasa = number_format($upah_semasa,2);
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
$upah_semasa = (float)$upah_semasa - $upahtelahbayar;
if($upah_semasa <= 0){
$upah_semasa = 0;
}
return $upah_semasa;
}
public function upahNotTawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upahtelahbayar = Advansur::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->sum('upahdibayar');
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
$bln_mora = Moratorium::first();
$upah_sebenar = $upah_asal - $rebet;
$bln_upah = $gadai_data['tempoh'];
if($bln_upah > $bln_mora['bln_mora']){
$bln_upah = $bln_mora['bln_mora'];
}
$upahsemasa = $upah_sebenar * $bln_upah;
$upah_semasa = bcdiv(round($upahsemasa,2),1,1);
$upah_semasa = number_format($upah_semasa,2);
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
$upah_semasa = (float)$upah_semasa - $upahtelahbayar;
if($upah_semasa <= 0){
$upah_semasa = 0;
}
return response()->json($upah_semasa);
}
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
$upah_sebenar = $upah_asal - $rebet;
$upah_semasa = bcdiv(round($upah_sebenar * $gadai_data['jbg'],2),1,1);
$upah_semasa = (float)number_format($upah_semasa,2);
$array_recno_marhun = $request->array_recno;
$margin_pembiayaan = round(($gadai_data['pinjaman']/$gadai_data['nilaimarhun'])*100,2);
$nilai_marhun = $gadai_data['nilaimarhun'];
$total_harga_tebus = 0;
foreach($array_recno_marhun as $recno){
$marhun = Marhun::on($cawangan['mysql'])->where([['recno','=',$recno],['norujukan','=',$norujukan]])->first();
$harga_tebus = ($margin_pembiayaan/100)*$marhun['n_marhun'];
$total_harga_tebus += $harga_tebus;
}
// $total_harga_tebus += $upah_semasa;
return response()->json($total_harga_tebus);
}
function rebet($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$upah_asal = $gadai_data['nilaimarhun'] / 100 * $gadai_data['kadarupah'];
$margin_pinjaman = $gadai_data['pinjaman'] / $gadai_data['nilaimarhun'] * 100;
$margin_kadarupah = 80;
$rebet = ($margin_kadarupah-$margin_pinjaman)/$margin_kadarupah * $upah_asal;
return floatval(number_format($rebet,2));
}
function rebetselepastawarruq($kodcaw,$norujukan){
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
$transaction_keuntungan = TransaksiKeuntungan::on('mysql7')
->where('norujukan','=',$norujukan)
->sum('keuntungan_rebet');
$upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan);
$rebet_raw =$gadai_data['upah12'] - $transaction_keuntungan - $upah_rebet;
return $rebet_raw;
}
public function kiraupahRebet($kodcaw,$norujukan){
$onepercentservices = new Calculation();
$cawangan = Cawangan::on('mysql7')
->where('kodcaw','=',$this->kodcaw)
->first();
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$ujrah = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']);
$onepercent = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']);
$keuntungan = $ujrah + $onepercent;
$upahrebet_raw = $onepercentservices->getRoundedMethod($keuntungan);
return $upahrebet_raw;
}
public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
if($request->jenisbayarantebus == "tawarruq"){
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan,$request->jeniskeuntungan);
}
else if($request->jenisbayarantebus == "nottawarruq")
{
$rebet = $this->rebet($kodcaw,$norujukan);
}
else{
$rebet = 0;
}
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$ujrah=0;$onepercent=0;$rounded=0;
if($gadai['hargajualan'] == null){
$harga_tebus = $this->hargaTebusNotTawarruq($kodcaw,$norujukan);
$upah_tebus = $this->kiraUpahNotTawarruq($kodcaw,$norujukan);
$upah_rebet = 0;
$upah_rebet_sebenar = 0;
}else{
$harga_tebus = $this->hargaTebusTawarruq($kodcaw,$norujukan,$request->jeniskeuntungan);
$upah_tebus = $this->kiraupahTawarruq($norujukan);
$upah_rebet = $this->kiraUpahRebetSebenar($kodcaw,$norujukan);
$upah_rebet_sebenar = $harga_tebus['harga'] - $gadai['bakipjm'];
if($request->jeniskeuntungan == 'onepercent'){
$array_onepercent = $this->kiraupahUjrahOnePercent($kodcaw,$norujukan);
$array_onepercent_rebet = $this->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
$margin_semasa = ($gadai['bakipjm']/$gadai['nilaimarhun']) * 100;
$ujrah = $array_onepercent['ujrah'];
$onepercent = $array_onepercent['onepercent'];
}
}
$create_tebus = Tebus::on($cawangan['mysql'])->create([
'kodcaw'=> $kodcaw,
'norujukan'=> $norujukan,
'nopelanggan' => $request->nopelanggan,
'jenisbyr' => "TN",
'jenistebus' => $request->jenistebus,
'glcode' => "0",
't_tebus' => $current->toDateString(),
'jbg' => $gadai['tempoh'],
'kadarupah' => $gadai['kadarupah'],
'nilaimarhun' => $gadai['nilaimarhun'],
'pinjaman' => $gadai['pinjaman'],
'ansuran' => 0.00,
'addpinjaman' => $request->addpinjaman,
'bakipjm' => $harga_tebus['harga'],
'bakiupah' => $upah_tebus,
'terima' => "*",
'kodgl' => "0",
'nowakil' => $request->nowakil,
'rebate' => $rebet,
'marhuntebus' => $request->marhun,
'historygadaian' => $norujukan,
'tarikhbyrn' => $current->toDateString(),
'teller' => $request->teller,
'ujrah' => $ujrah,
'onepercent' => $onepercent,
]);
$create_inoutmar = InOutMar::on($cawangan['mysql'])->create([
'tarikh' => $current->toDateString(),
'masa' => $current->toTimeString(),
'norujukan' => $norujukan,
'nm' => $request->nilai_marhun,
'pkd' => $request->teller,
'drp' => $request->teller,
'bln' => $current->month,
'thn' => $current->year,
'tag' => 0,
'jenistebus' => $request->jenistebus,
'namateller' => $request->teller
]);
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $upah_tebus,
'bayaran_pembiayaan' => $gadai['bakipjm'],
'keuntungan_rebet' => $upah_rebet_sebenar,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw,
'ujrah' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['ujrah'] : 0,
'ujrah_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['ujrah'] : 0,
'onepercent' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent['onepercent'] : 0,
'onepercent_rebet' => ($request->jeniskeuntungan == 'onepercent') ? $array_onepercent_rebet['onepercent'] : 0,
'margin_semasa' => ($request->jeniskeuntungan == 'onepercent') ? $margin_semasa : 0,
'tempoh' => $gadai['tempoh'],
'beza_tempoh' => ($gadai['tempoh'] - $gadai['tempohbayar']),
]);
if($request->jenistebus == 'P'){
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bakiupah;
$transaction = Transaction::on('mysql7')->create([
'trans_type' => $request->jenistebus,
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->bakiupah,
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
]);
}else{
$baki_hargajualan = $gadai['bakihargajualan'] - $request->bakipinjaman;
$transaction = Transaction::on('mysql7')->create([
'trans_type' => $request->jenistebus,
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $harga_tebus['harga'],
'created_at' => $current,
'bakiharga' => $baki_hargajualan,
'nowakil' => (int)$request->nowakil,
'duitpelanggan' => isset($request->duitpelanggan) ? $request->duitpelanggan : 0,
'bakipelanggan' => $request->bakipelanggan
]);
}
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'sttebus' => "T",
't_update' => $current->toDateString(),
));
$audit = new Audit();
$audit->users = $request->teller;
if($request->jenistebus == 'P'){
$audit->actions = "Tambah Pembiayaan";
}else if($request->jenistebus == 'S'){
$audit->actions = "Tebus Separuh";
}else if($request->jenistebus == 'T'){
$audit->actions = "Tebus Penuh";
}
$audit->norujukan = $norujukan;
$audit->new_data = $create_tebus;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json($update_gadai, 201);
}
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
$current = Carbon::now();
$current = new Carbon();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
if($request->jenisbayarantebus == "tawarruq")
{
$rebet = $this->rebetselepastawarruq($kodcaw,$norujukan);
}
else if($request->jenisbayarantebus == "nottawarruq")
{
$rebet = $this->rebet($kodcaw,$norujukan);
}
else{
$rebet = 0;
}
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first();
$update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array(
'sttebus' => "T",
't_update' => $current->toDateString(),
));
$upah_rebet = $this->kiraUpahRebet($kodcaw,$norujukan);
$create_tebus = Tebus::on($cawangan['mysql'])->create([
'kodcaw'=> $kodcaw,
'norujukan'=> $norujukan,
'nopelanggan' => $request->nopelanggan,
'jenisbyr' => "TN",
'jenistebus' => $request->jenistebus,
'glcode' => "0",
't_tebus' => $current->toDateString(),
'jbg' => $request->jbg,
'kadarupah' => $request->kadarupah,
'nilaimarhun' => $request->nilai_marhun,
'pinjaman' => $request->pinjaman,
'ansuran' => $request->ansuran,
'addpinjaman' => $request->addpinjaman,
'bakipjm' => $request->bakipinjaman,
'bakiupah' => $request->bakiupah,
'terima' => "*",
'kodgl' => "0",
'nowakil' => $request->nowakil,
'rebate' => $rebet,
'marhuntebus' => $request->marhun,
'historygadaian' => $request->historygadaian,
'tarikhbyrn' => $current->toDateString(),
'teller' => $request->teller
]);
$create_inoutmar = InOutMar::on($cawangan['mysql'])->create([
'tarikh' => $current->toDateString(),
'masa' => $current->toTimeString(),
'norujukan' => $norujukan,
'nm' => $request->nilai_marhun,
'pkd' => $request->teller,
'drp' => $request->teller,
'bln' => $current->month,
'thn' => $current->year,
'tag' => 0,
'jenistebus' => $request->jenistebus,
'namateller' => $request->teller
]);
$bayaran_pembiayaan = $request->totalbayaran - $request->bakiupah;
$transaction_upah = TransaksiKeuntungan::on('mysql7')->create([
'norujukan' => $norujukan,
'bayaran_keuntungan' => $request->bakiupah,
'bayaran_pembiayaan' => $bayaran_pembiayaan,
'keuntungan_rebet' => $request->bakiupah,
'tarikh_bayaran'=> $current,
'kodcaw'=> $kodcaw
]);
$transaction = Transaction::on('mysql7')->create([
'trans_type' => $request->jenistebus,
'norujukan' => $norujukan,
'nokp' => $gadai['nokp'],
'teller' => $request->teller,
'kodcaw' => $kodcaw,
'duit_masuk' => $request->totalbayaran,
'created_at' => $current,
'bakiharga' => 0,
'duitpelanggan' => $request->bayaranpelanggan,
'bakipelanggan' => $request->bakipelanggan
]);
$audit = new Audit();
$audit->users = $request->teller;
$audit->actions = "Pembiayaan Semula";
$audit->norujukan = $norujukan;
$audit->new_data = $create_tebus;
$audit->kodcaw = $kodcaw;
$audit->created_at = $current;
$audit->updated_at = $current;
$audit->save();
return response()->json($update_gadai, 201);
}
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
$onepercentservices = new Calculation();
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$array_upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']);
$onepercent = $onepercentservices->getRoundedMethod($array_upah['onepercent']);
$ujrah = $onepercentservices->getRoundedMethod($array_upah['ujrah']);
$onepercent_semasa = $bilang_bln * $onepercent;
$ujrah_semasa = $bilang_bln * $ujrah;
$onepercent_semasa = $onepercentservices->getRoundedMethod($onepercent_semasa);
$ujrah_semasa = $onepercentservices->getRoundedMethod($ujrah_semasa);
return ['ujrah' => $ujrah_semasa, 'onepercent' => $onepercent_semasa];
}
public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){
$onepercentservices = new Calculation();
$cawangan = $this->cawangan_info;
$gadai_data = Gadai::on($cawangan['mysql'])
->where('norujukan','=',$norujukan)
->first();
if($gadai_data['tempoh'] >= 12.0){
$tempoh = 12;
}else{
$tempoh = $gadai_data['tempoh'];
}
$bilang_bln = $tempoh - $gadai_data['tempohbayar'];
$array_upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']);
$ujrah_rounded = $onepercentservices->getRoundedMethod($array_upah['ujrah']);
$keuntungan_rounded = $onepercentservices->getRoundedMethod($array_upah['onepercent']);
$ujrah = $bilang_bln * $ujrah_rounded;
$onepercent = $bilang_bln * $keuntungan_rounded;
$ujrah = $onepercentservices->getRoundedMethod($ujrah);
$onepercent = $onepercentservices->getRoundedMethod($onepercent);
return ['ujrah' => $ujrah, 'onepercent' => $onepercent];
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ class TransactionOnline extends Model
* @var array
*/
protected $fillable = [
'nokp','reference_no','nosiri','total_payment','tarikh','masa','status','billplz_id','kodcaw','norujukan','paid_at','customer_name','update_status','update_serahan','tempohbayar','tagportal'
'nokp','reference_no','nosiri','total_payment','tarikh','masa','status','billplz_id','kodcaw','norujukan','paid_at','customer_name','update_status','update_serahan','tempohbayar','tagportal','jenisbayaran'
];
/**
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class WakilSurat extends Model
{
protected $table = 'wakil_surat';
public $timestamps = true;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'nosiri',
'no_surat',
'norujukan',
't_cetak'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
// protected $hidden = [];
}
+32 -8
View File
@@ -17,13 +17,13 @@ return [
'prefix' => '',
'strict' => false,
],
'mysql' => [
'mysql37' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'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' => '',
@@ -425,7 +425,7 @@ return [
'prefix' => '',
'strict' => false,
],
'mysql34' => [
'mysql34' => [
'driver' => 'mysql',
'host' => env('DB_HOST_34'),
'port' => env('DB_PORT_34'),
@@ -437,7 +437,7 @@ return [
'prefix' => '',
'strict' => false,
],
'mysql35' => [
'mysql35' => [
'driver' => 'mysql',
'host' => env('DB_HOST_35'),
'port' => env('DB_PORT_35'),
@@ -449,5 +449,29 @@ return [
'prefix' => '',
'strict' => false,
],
'mysql36' => [
'driver' => 'mysql',
'host' => env('DB_HOST_36'),
'port' => env('DB_PORT_36'),
'database' => env('DB_DATABASE_36'),
'username' => env('DB_USERNAME_36'),
'password' => env('DB_PASSWORD_36'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'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,
],
],
];
+3 -3
View File
@@ -17,10 +17,10 @@ class GadaiFactory
return [
'kodcaw' => 'KB2',
'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number ,
'norujukan' => ($number > 9) ? 'KB2231211-00' . $number : 'KB2231211-000' . $number ,
'nopelanggan' => 'M03-00009968',
'nokp' => '630411035213',
't_gadai' => '2023-11-23',
't_gadai' => '2023-12-11',
'masa' => '13:46:57',
'sirig' => $number++,
'nilaimarhun' => 3000.09,
@@ -53,7 +53,7 @@ class GadaiFactory
'upahdibayar' => 0.00,
'marhun' => '1 R/L,',
'taglel' => null,
't_update' => '2023-11-23',
't_update' => '2023-12-11',
't_matang' => '2024-06-24',
't_matang1' => '2024-06-24',
'penilai' => 'MOHD KHALID ABDUL RAHMAN',
+2 -2
View File
@@ -18,8 +18,8 @@ class MarhunFactory
return [
'kodcaw' => 'KB2',
'marhun' => 'R/L',
't_gadai' => '2023-11-23',
'norujukan' => ($number > 9) ? 'KB2231123-00' . $number : 'KB2231123-000' . $number ,
't_gadai' => '2023-12-11',
'norujukan' => ($number > 9) ? 'KB2231211-00' . $number : 'KB2231211-000' . $number ,
'bil' => 1,
'nota' => $number++,
'karat' => '24.0K',
@@ -14,22 +14,23 @@ class AddOnepercentToGadaiTable extends Migration
*/
/**
*
*
* @var object $db_connection
*/
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
if($connection == 'mysql7' || $connection == 'lelong')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
Log::info($connection);
return false;
}
});
@@ -39,17 +40,39 @@ class AddOnepercentToGadaiTable extends Migration
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('gadai', function (Blueprint $table) {
$table->decimal('kadarujrah', 5, 2);
$table->decimal('ujrah', 9, 2);
$table->decimal('onepercent', 9, 2);
$table->decimal('margin_semasa', 5, 2);
$table->tinyInteger('tagbaru')->default(0);
Schema::connection($dbase)->table('gadai', function (Blueprint $table) use($dbase) {
$isKadarUjrahExist = Schema::connection($dbase)->hasColumn('gadai', 'kadarujrah');
$isUjrahExist = Schema::connection($dbase)->hasColumn('gadai', 'ujrah');
$isOnePercentExist = Schema::connection($dbase)->hasColumn('gadai', 'onepercent');
$isMarginSemasaExist = Schema::connection($dbase)->hasColumn('gadai', 'margin_semasa');
$isTagbaruExist = Schema::connection($dbase)->hasColumn('gadai', 'tagbaru');
if(! $isKadarUjrahExist){
$table->decimal('kadarujrah', 5, 2);
}
if(! $isUjrahExist){
$table->decimal('ujrah', 9, 2);
}
if(! $isOnePercentExist){
$table->decimal('onepercent', 9, 2);
}
if(! $isMarginSemasaExist){
$table->decimal('margin_semasa', 5, 2);
}
if(! $isTagbaruExist){
$table->tinyInteger('tagbaru')->default(0);
}
});
}
}
/**
@@ -62,11 +85,18 @@ class AddOnepercentToGadaiTable extends Migration
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
if (Schema::connection('mysql7')->hasColumn('ujrah', 'onepercent')){
Schema::connection($dbase)->table('gadai', function (Blueprint $table) {
$table->dropColumn(['kadarujrah', 'ujrah', 'onepercent','margin_semasa','tagbaru']);
});
}
$columns = ['kadarujrah', 'ujrah', 'onepercent','margin_semasa','tagbaru'];
$columns_exist = array_filter($columns,function($column) use($dbase){
return Schema::connection($dbase)->hasColumn('gadai', $column);
});
Schema::connection($dbase)->table('gadai', function(Blueprint $table) use($columns_exist){
foreach($columns_exist as $column){
$table->dropColumn($column);
}
});
}
}
}
@@ -1,36 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateHistoryOnepercentTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('history_onepercent', function (Blueprint $table) {
$table->id();
$table->decimal('tempoh', 10, 2);
$table->decimal('ujrah', 10, 2);
$table->decimal('onepercent', 10, 2);
$table->decimal('margin_semasa', 5, 2);
$table->decimal('bakipinjaman', 10, 2);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('history_onepercent');
}
}
@@ -14,8 +14,17 @@ class AddOnepercentToKadarupahTable extends Migration
public function up()
{
Schema::connection('mysql7')->table('kadarupah', function (Blueprint $table) {
$table->decimal('kadarujrah', 5, 2);
$table->decimal('kadaronepercent', 5, 2);
$isKadarUjrahExist = Schema::connection('mysql7')->hasColumn('kadarupah', 'kadarujrah');
$isKadarOnePercentExist = Schema::connection('mysql7')->hasColumn('kadarupah', 'kadaronepercent');
if (!$isKadarUjrahExist) {
$table->decimal('kadarujrah', 5, 2);
}
if (!$isKadarOnePercentExist) {
$table->decimal('kadaronepercent', 5, 2);
}
});
}
@@ -26,8 +35,14 @@ class AddOnepercentToKadarupahTable extends Migration
*/
public function down()
{
Schema::connection('mysql7')->table('kadarupah', function (Blueprint $table) {
$table->dropColumn(['kadarujrah','kadaronepercent']);
$columns = ['kadarujrah', 'kadaronepercent'];
$columns_exist = array_filter($columns, function ($column) {
return Schema::connection('mysql7')->hasColumn('kadarupah', $column);
});
Schema::connection('mysql7')->table('kadarupah', function (Blueprint $table) use($columns_exist) {
$table->dropColumn($columns_exist);
});
}
@@ -13,15 +13,16 @@ class AddOnepercentToTransactionKeuntunganTable extends Migration
*/
public function up()
{
Schema::connection('mysql7')->table('transaksi_keuntungan', function (Blueprint $table) {
$table->decimal('ujrah', 5, 2);
$table->decimal('ujrah_rebet', 5, 2);
$table->decimal('onepercent', 5, 2);
$table->decimal('onepercent_rebet', 5, 2);
$table->decimal('tempoh', 5, 2);
$table->decimal('beza_tempoh', 5, 2);
$table->decimal('margin_semasa', 5, 2);
$table->decimal('rounded', 5, 2);
$columns = ['ujrah', 'ujrah_rebet', 'onepercent', 'onepercent_rebet', 'tempoh', 'beza_tempoh', 'margin_semasa'];
$columns_not_exist = array_filter($columns, function ($column) {
return !Schema::connection('mysql7')->hasColumn('transaksi_keuntungan', $column);
});
Schema::connection('mysql7')->table('transaksi_keuntungan', function (Blueprint $table) use ($columns_not_exist) {
array_walk($columns_not_exist, function ($column) use ($table) {
$table->decimal($column, 5, 2);
});
});
}
@@ -32,10 +33,14 @@ class AddOnepercentToTransactionKeuntunganTable extends Migration
*/
public function down()
{
if (Schema::connection('mysql7')->hasColumn('ujrah', 'onepercent')){
Schema::connection('mysql7')->table('transaksi_keuntungan', function (Blueprint $table) {
$table->dropColumn(['ujrah', 'ujrah_rebet', 'onepercent', 'onepercent_rebet', 'tempoh', 'beza_tempoh', 'margin_semasa','rounded']);
});
}
$columns = ['ujrah', 'ujrah_rebet', 'onepercent', 'onepercent_rebet', 'tempoh', 'beza_tempoh', 'margin_semasa'];
$columns_exist = array_filter($columns, function ($column) {
return Schema::connection('mysql7')->hasColumn('transaksi_keuntungan', $column);
});
Schema::connection('mysql7')->table('transaksi_keuntungan', function (Blueprint $table) use($columns_exist) {
$table->dropColumn($columns_exist);
});
}
}
@@ -3,6 +3,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
class AddOnepercentToTebusTable extends Migration
@@ -14,35 +15,47 @@ class AddOnepercentToTebusTable extends Migration
*/
/**
*
*
* @var object $db_connection
*/
public function getActiveDB(){
public function getActiveDB()
{
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
$db_connection = array_filter($config_db, function ($connection) {
try {
if($connection == 'mysql7' || $connection == 'lelong')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
} catch (\Exception $e) {
Log::info($connection);
return false;
}
});
return $db_connection;
}
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('tebus', function (Blueprint $table) {
$table->decimal('ujrah', 9, 2);
$table->decimal('onepercent', 9, 2);
foreach ($db_connection as $dbase) {
$columns = ['ujrah', 'onepercent'];
$columns_not_exist = array_filter($columns, function ($column) use ($dbase) {
return !Schema::connection($dbase)->hasColumn('tebus', $column);
});
Schema::connection($dbase)->table('tebus', function (Blueprint $table) use ($columns_not_exist) {
array_walk($columns_not_exist, function ($column) use ($table) {
$table->decimal($column, 9, 2);
});
});
};
}
@@ -56,12 +69,17 @@ class AddOnepercentToTebusTable extends Migration
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
if (Schema::connection($dbase)->hasColumn('ujrah', 'onepercent')){
Schema::connection($dbase)->table('tebus', function (Blueprint $table) {
$table->dropColumn(['ujrah', 'onepercent']);
});
}
foreach ($db_connection as $dbase) {
$columns = ['ujrah', 'onepercent'];
$columns_exist = array_filter($columns, function ($column) use($dbase) {
return Schema::connection($dbase)->hasColumn('tebus', $column);
});
Schema::connection($dbase)->table('tebus', function (Blueprint $table) use ($columns_exist) {
$table->dropColumn($columns_exist);
});
}
}
}
@@ -42,7 +42,7 @@ class AddColumnsToKomuditiTransaksi extends Migration
{
$online_arrahn_connection_array = array_filter(config('database.connections'), function($connection) {
if($connection['database'] === 'online_arrahn2' || $connection['database'] === 'master_krk'){
if($connection['database'] === 'online_arrahn' || $connection['database'] === 'master_krk'){
return true;
}
@@ -14,22 +14,23 @@ class AddColumnUjrahStokauditbackdate extends Migration
*/
/**
*
*
* @var object $db_connection
*/
public function getActiveDB(){
public function getActiveDB()
{
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
$db_connection = array_filter($config_db, function ($connection) {
try {
if ($connection == 'mysql7') {
return false;
}
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
} catch (\Exception $e) {
return false;
}
});
@@ -39,83 +40,169 @@ class AddColumnUjrahStokauditbackdate extends Migration
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('stokaudit1', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
Schema::connection($dbase)->table('stokaudit2', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
foreach ($db_connection as $dbase) {
Schema::connection($dbase)->table('stokaudit1', function (Blueprint $table) use ($dbase) {
Schema::connection($dbase)->table('stokaudit3', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
Schema::connection($dbase)->table('stokaudit4', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
Schema::connection($dbase)->table('stokaudit5', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
Schema::connection($dbase)->table('stokaudit6', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
Schema::connection($dbase)->table('stokaudit7', function (Blueprint $table){
$table->decimal('utgonepercent', 9, 2);
$table->decimal('ujrah', 9, 2);
});
Schema::connection($dbase)->table('stokaudit8', function (Blueprint $table){
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit1', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit1', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
});
}
});
Schema::connection($dbase)->table('stokaudit9', function (Blueprint $table){
Schema::connection($dbase)->table('stokaudit2', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit2', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit2', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
});
}
});
Schema::connection($dbase)->table('stokaudit10', function (Blueprint $table){
Schema::connection($dbase)->table('stokaudit3', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit3', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit3', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
});
}
});
Schema::connection($dbase)->table('stokaudit11', function (Blueprint $table){
Schema::connection($dbase)->table('stokaudit4', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit4', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit4', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
});
}
});
Schema::connection($dbase)->table('stokaudit12', function (Blueprint $table){
Schema::connection($dbase)->table('stokaudit5', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit5', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit5', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
});
}
});
};
Schema::connection($dbase)->table('stokaudit6', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit6', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit6', 'ujrah');
}
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
Schema::connection($dbase)->table('stokaudit7', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit7', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit7', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
Schema::connection($dbase)->table('stokaudit8', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit8', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit8', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
Schema::connection($dbase)->table('stokaudit9', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit9', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit9', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
Schema::connection($dbase)->table('stokaudit10', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit10', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit10', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
Schema::connection($dbase)->table('stokaudit11', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit11', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit11', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
Schema::connection($dbase)->table('stokaudit12', function (Blueprint $table) use ($dbase) {
$isUtGonePercentExist = Schema::connection($dbase)->hasColumn('stokaudit12', 'utgonepercent');
$isUjrahExist = Schema::connection($dbase)->hasColumn('stokaudit12', 'ujrah');
if (! $isUtGonePercentExist) {
$table->decimal('utgonepercent', 9, 2);
}
if (! $isUjrahExist) {
$table->decimal('ujrah', 9, 2);
}
});
};
}
/**
* Reverse the migrations.
@@ -126,53 +213,53 @@ class AddColumnUjrahStokauditbackdate extends Migration
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('stokaudit1', function (Blueprint $table) {
foreach ($db_connection as $dbase) {
Schema::connection($dbase)->table('stokaudit1', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit2', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit2', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit3', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit3', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit4', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit4', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit5', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit5', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit6', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit6', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit7', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit7', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit8', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit8', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit9', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit9', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit10', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit10', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit11', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit11', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
Schema::connection($dbase)->table('stokaudit12', function (Blueprint $table) {
Schema::connection($dbase)->table('stokaudit12', function (Blueprint $table) {
$table->dropColumn(['utgonepercent', 'ujrah']);
});
}
}
}
}
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddVersionToArrahnMasterDbTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$value = 'v1';
Schema::table('arrahn_master_db', function (Blueprint $table) use($value) {
$table->char('version', 4)->default($value);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql7')->table('arrahn_master_db', function (Blueprint $table) {
$table->dropColumn(['version']);
});
}
}
@@ -0,0 +1,78 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class AddTunggakanToGadaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
/**
*
* @var object $db_connection
*/
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('gadai', function (Blueprint $table) use($dbase) {
$isTunggakanUjrah = Schema::connection($dbase)->hasColumn('gadai', 'tunggakanujrah');
$isTunggakkanOnePercent = Schema::connection($dbase)->hasColumn('gadai', 'tunggakanonepercent');
if (! $isTunggakanUjrah) {
$table->decimal('tunggakanujrah', 9, 2);
}
if (! $isTunggakkanOnePercent) {
$table->decimal('tunggakanonepercent', 9, 2);
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
if (Schema::connection('mysql7')->hasColumn('tunggakanujrah','tunggakanonepercent')){
Schema::connection($dbase)->table('gadai', function (Blueprint $table) {
$table->dropColumn(['tunggakanujrah','tunggakanonepercent']);
});
}
}
}
}
@@ -0,0 +1,73 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateNotisTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('notis', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('tarikh_notis')->nullable();
$table->string('daritempoh')->nullable();
$table->string('hinggatempoh')->nullable();
$table->integer('sts_notis')->nullable();
$table->integer('peringatan')->nullable();
$table->timestamps();
});
Schema::create('notisperingatan', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('notis_id')->unsigned();
$table->string('tarikh_notis');
$table->string('kodcaw');
$table->string('norujukan');
$table->string('nokp');
$table->decimal('jbg', $precision = 7, $scale = 2);
$table->decimal('kadarupah', $precision = 5, $scale = 2)->nullable();
$table->decimal('nilaimarhun', $precision = 9, $scale = 2);
$table->decimal('pinjaman', $precision = 9, $scale = 2)->nullable();
$table->decimal('bakiupah', $precision = 7, $scale = 2);
$table->decimal('berat', $precision = 7, $scale = 2);
$table->string('marhun');
$table->decimal('percent', $precision = 7, $scale = 2);
$table->integer('peringatan')->default(0);
$table->date('tarikhnotis1')->nullable();
$table->date('tarikhnotis2')->nullable();
$table->timestamps();
});
Schema::create('cawangan_notis', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('notis_id')->unsigned();
$table->unsignedBigInteger('kodcaw')->unsigned();
$table->integer('peringatan')->default(0);
$table->string('daritempoh')->nullable();
$table->string('hinggatempoh')->nullable();
$table->integer('status')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('notis');
Schema::dropIfExists('notisperingatan');
Schema::dropIfExists('cawangan_notis');
}
}
@@ -0,0 +1,79 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddOnepercentToLelongTable extends Migration
{
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('lelong', function (Blueprint $table) use($dbase) {
$isUjrahExist = Schema::connection($dbase)->hasColumn('lelong', 'ujrah');
$isOnePercentExist = Schema::connection($dbase)->hasColumn('lelong', 'onepercent');
$isTagbaruExist = Schema::connection($dbase)->hasColumn('lelong', 'tagujrah');
if(! $isUjrahExist){
$table->decimal('ujrah', 9, 2);
}
if(! $isOnePercentExist){
$table->decimal('onepercent', 9, 2);
}
if(! $isTagbaruExist){
$table->tinyInteger('tagujrah')->default(0);
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
$columns = ['ujrah', 'onepercent','tagujrah'];
$columns_exist = array_filter($columns,function($column) use($dbase){
return Schema::connection($dbase)->hasColumn('lelong', $column);
});
Schema::connection($dbase)->table('lelong', function(Blueprint $table) use($columns_exist){
foreach($columns_exist as $column){
$table->dropColumn($column);
}
});
}
}
}
@@ -0,0 +1,68 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateWakilSuratToDbcawanganTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
/**
*
* @var object $db_connection
*/
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->create('wakil_surat', function (Blueprint $table) {
$table->id();
$table->string('nosiri')->nullable();
$table->string('no_surat')->nullable();
$table->string('norujukan')->nullable();
$table->string('t_cetak')->nullable();
$table->timestamps();
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('wakil_surat');
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddJenisbayaranColumnInTransactionOnlineTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql7')->table('transaction_online', function (Blueprint $table) {
$table->string('jenisbayaran')->default('A');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql7')->table('transaction_online', function (Blueprint $table) {
$table->dropColumn(['jenisbayaran']);
});
}
}
@@ -0,0 +1,69 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddTagnotisToGadaiTable extends Migration
{
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('gadai', function (Blueprint $table) use($dbase) {
$isTagNotisExist = Schema::connection($dbase)->hasColumn('gadai', 'tagnotis');
if(! $isTagNotisExist){
$table->tinyInteger('tagnotis')->default(0);
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
$columns = ['tagnotis'];
$columns_exist = array_filter($columns,function($column) use($dbase){
return Schema::connection($dbase)->hasColumn('gadai', $column);
});
Schema::connection($dbase)->table('gadai', function(Blueprint $table) use($columns_exist){
foreach($columns_exist as $column){
$table->dropColumn($column);
}
});
}
}
}
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddNamaToTableLogBlastWasap extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('log_blast_wasap', function (Blueprint $table) {
$table->text('nama')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('log_blast_wasap', function (Blueprint $table) {
$table->dropColumn(['nama']);
});
}
}
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddNamaToTableLogBlastSms extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('log_blast_sms', function (Blueprint $table) {
$table->text('nama')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('log_blast_sms', function (Blueprint $table) {
$table->dropColumn(['nama']);
});
}
}
@@ -0,0 +1,77 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class AddColumnUjrahToImbangdugabackupTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('imbang_duga_backup', function (Blueprint $table) use($dbase) {
$isTunggakanUjrah = Schema::connection($dbase)->hasColumn('imbang_duga_backup', 'ujrah');
$isTunggakkanOnePercent = Schema::connection($dbase)->hasColumn('imbang_duga_backup', 'onepercent');
if (! $isTunggakanUjrah) {
$table->decimal('ujrah', 9, 2);
}
if (! $isTunggakkanOnePercent) {
$table->decimal('onepercent', 9, 2);
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
$columns = ['onepercent', 'ujrah'];
$columns_exist = array_filter($columns,function($column) use($dbase){
return Schema::connection($dbase)->hasColumn('imbang_duga_backup', $column);
});
Schema::connection($dbase)->table('imbang_duga_backup', function(Blueprint $table) use($columns_exist){
foreach($columns_exist as $column){
$table->dropColumn($column);
}
});
}
}
}
+257
View File
@@ -0,0 +1,257 @@
APP_NAME=Lumen
APP_ENV=local
APP_KEY=WbPGkYNmXZ6ZQplGlvl0iZ7zyW1b09xa
APP_DEBUG=true
APP_URL=http://api-arrahn.test
APP_TIMEZONE=Asia/Kuala_Lumpur
LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=
DB_CONNECTION_36=mysql
DB_HOST_36=127.0.0.1
DB_PORT_36=3306
DB_DATABASE_36=arrahn_kb2
DB_USERNAME_36=root
DB_PASSWORD_36=
DB_CONNECTION_2=mysql
DB_HOST_2=127.0.0.1
DB_PORT_2=3306
DB_DATABASE_2=arrahn_wcy
DB_USERNAME_2=root
DB_PASSWORD_2=
DB_CONNECTION_3=mysql
DB_HOST_3=127.0.0.1
DB_PORT_3=3306
DB_DATABASE_3=arrahn_1stop
DB_USERNAME_3=root
DB_PASSWORD_3=
DB_CONNECTION_4=mysql
DB_HOST_4=127.0.0.1
DB_PORT_4=3306
DB_DATABASE_4=arrahn_jlwt
DB_USERNAME_4=root
DB_PASSWORD_4=
DB_CONNECTION_5=mysql
DB_HOST_5=127.0.0.1
DB_PORT_5=3306
DB_DATABASE_5=arrahn_wb
DB_USERNAME_5=root
DB_PASSWORD_5=
DB_CONNECTION_6=mysql
DB_HOST_6=127.0.0.1
DB_PORT_6=3306
DB_DATABASE_6=arrahn_kls
DB_USERNAME_6=root
DB_PASSWORD_6=
DB_CONNECTION_7=mysql
DB_HOST_7=127.0.0.1
DB_PORT_7=3306
DB_DATABASE_7=online_arrahn
DB_USERNAME_7=root
DB_PASSWORD_7=
DB_CONNECTION_8=mysql
DB_HOST_8=127.0.0.1
DB_PORT_8=3306
DB_DATABASE_8=arrahn_pp
DB_USERNAME_8=root
DB_PASSWORD_8=
DB_CONNECTION_9=mysql
DB_HOST_9=127.0.0.1
DB_PORT_9=3306
DB_DATABASE_9=arrahn_mace
DB_USERNAME_9=root
DB_PASSWORD_9=
DB_CONNECTION_10=mysql
DB_HOST_10=127.0.0.1
DB_PORT_10=3306
DB_DATABASE_10=arrahn_pm $
DB_USERNAME_10=root
DB_PASSWORD_10=
DB_CONNECTION_11=mysql
DB_HOST_11=127.0.0.1
DB_PORT_11=3306
DB_DATABASE_11=arrahn_gm
DB_USERNAME_11=root
DB_PASSWORD_11=
DB_CONNECTION_12=mysql
DB_HOST_12=127.0.0.1
DB_PORT_12=3306
DB_DATABASE_12=arrahn_gcl
DB_USERNAME_12=root
DB_PASSWORD_12=
DB_CONNECTION_13=mysql
DB_HOST_13=127.0.0.1
DB_PORT_13=3306
DB_DATABASE_13=arrahn_jli
DB_USERNAME_13=root
DB_PASSWORD_13=
DB_CONNECTION_14=mysql
DB_HOST_14=127.0.0.1
DB_PORT_14=3306
DB_DATABASE_14=arrahn_rp
DB_USERNAME_14=root
DB_PASSWORD_14=
DB_CONNECTION_15=mysql
DB_HOST_15=127.0.0.1
DB_PORT_15=3306
DB_DATABASE_15=arrahn_ktn
DB_USERNAME_15=root
DB_PASSWORD_15=
DB_CONNECTION_16=mysql
DB_HOST_16=127.0.0.1
DB_PORT_16=3306
DB_DATABASE_16=arrahn_pg
DB_USERNAME_16=root
DB_PASSWORD_16=
DB_CONNECTION_17=mysql
DB_HOST_17=127.0.0.1
DB_PORT_17=3306
DB_DATABASE_17=arrahn_skudai
DB_USERNAME_17=root
DB_PASSWORD_17=
DB_CONNECTION_18=mysql
DB_HOST_18=127.0.0.1
DB_PORT_18=3306
DB_DATABASE_18=arrahn_pttn
DB_USERNAME_18=root
DB_PASSWORD_18=
DB_CONNECTION_19=mysql
DB_HOST_19=127.0.0.1
DB_PORT_19=3306
DB_DATABASE_19=arrahn_btg
DB_USERNAME_19=root
DB_PASSWORD_19=
DB_CONNECTION_20=mysql
DB_HOST_20=127.0.0.1
DB_PORT_20=3306
DB_DATABASE_20=arrahn_raub
DB_USERNAME_20=root
DB_PASSWORD_20=
DB_CONNECTION_21=mysql
DB_HOST_21=127.0.0.1
DB_PORT_21=3306
DB_DATABASE_21=arrahn_kgr
DB_USERNAME_21=root
DB_PASSWORD_21=
DB_CONNECTION_22=mysql
DB_HOST_22=127.0.0.1
DB_PORT_22=3306
DB_DATABASE_22=arrahn_sdk
DB_USERNAME_22=root
DB_PASSWORD_22=
DB_CONNECTION_23=mysql
DB_HOST_23=127.0.0.1
DB_PORT_23=3306
DB_DATABASE_23=arrahn_sp
DB_USERNAME_23=root
DB_PASSWORD_23=
DB_CONNECTION_24=mysql
DB_HOST_24=127.0.0.1
DB_PORT_24=3306
DB_DATABASE_24=arrahn_twu
DB_USERNAME_24=root
DB_PASSWORD_24=
DB_CONNECTION_25=mysql
DB_HOST_25=127.0.0.1
DB_PORT_25=3306
DB_DATABASE_25=arrahn_api2
DB_USERNAME_25=root
DB_PASSWORD_25=
DB_CONNECTION_26=mysql
DB_HOST_26=127.0.0.1
DB_PORT_26=3306
DB_DATABASE_26=arrahn_kjg
DB_USERNAME_26=root
DB_PASSWORD_26=
DB_CONNECTION_27=mysql
DB_HOST_27=127.0.0.1
DB_PORT_27=3306
DB_DATABASE_27=arrahn_rl
DB_USERNAME_27=root
DB_PASSWORD_27=
DB_CONNECTION_28=mysql
DB_HOST_28=127.0.0.1
DB_PORT_28=3306
DB_DATABASE_28=arrahn_bfort
DB_USERNAME_28=root
DB_PASSWORD_28=
DB_CONNECTION_29=mysql
DB_HOST_29=127.0.0.1
DB_PORT_29=3306
DB_DATABASE_29=arrahn_kbelud
DB_USERNAME_29=root
DB_PASSWORD_29=
DB_CONNECTION_30=mysql
DB_HOST_30=127.0.0.1
DB_PORT_30=3306
DB_DATABASE_30=arrahn_tuaran
DB_USERNAME_30=root
DB_PASSWORD_30=
DB_CONNECTION_31=mysql
DB_HOST_31=127.0.0.1
DB_PORT_31=3306
DB_DATABASE_31=arrahn_kngau
DB_USERNAME_31=root
DB_PASSWORD_31=
DB_CONNECTION_32=mysql
DB_HOST_32=127.0.0.1
DB_PORT_32=3306
DB_DATABASE_32=arrahn_tm
DB_USERNAME_32=root
DB_PASSWORD_32=
DB_CONNECTION_33=mysql
DB_HOST_33=127.0.0.1
DB_PORT_33=3306
DB_DATABASE_33=arrahn_tmlh
DB_USERNAME_33=root
DB_PASSWORD_33=
DB_CONNECTION_34=mysql
DB_HOST_34=127.0.0.1
DB_PORT_34=3306
DB_DATABASE_34=arrahn_semporna
DB_USERNAME_34=root
DB_PASSWORD_34=
DB_CONNECTION_35=mysql
DB_HOST_35=127.0.0.1
DB_PORT_35=3306
DB_DATABASE_35=arrahn_kb1
DB_USERNAME_35=root
DB_PASSWORD_35=
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
+6 -2
View File
@@ -1,13 +1,17 @@
<?php
$router->group(['prefix'=>'api/reports'], function () use ($router){
$router->group(['namespace' => 'Reports'], function() use($router){
$router->group(['prefix' => 'api/reports'], function () use ($router) {
$router->group(['namespace' => 'Reports'], function () use ($router) {
$router->get('gadaian', ['uses' => 'GadaianController@getSummaryLaporanGadai']);
$router->get('gadaian/{kod_cawangan}', ['uses' => 'GadaianController@getLaporanCawangan']);
$router->get('penebusan', ['uses' => 'PenebusanController@getSummaryLaporanTebus']);
$router->get('penebusan/{kod_cawangan}', ['uses' => 'PenebusanController@getLaporanCawangan']);
$router->get('ansuran', ['uses' => 'AnsuranController@getSummaryLaporanAnsuran']);
$router->get('ansuran/{kod_cawangan}', ['uses' => 'AnsuranController@getLaporanCawangan']);
$router->get('kawalan-stok/{kod_cawangan}', ['uses' => 'KawalanStokController@getLaporanCawangan']);
$router->get('ringkasan-harian', ['uses' => 'RingkasanHarianController@getSummaryLaporanRingkasanHarian']);
$router->get('ringkasan-harian/{kod_cawangan}', ['uses' => 'RingkasanHarianController@getLaporanCawangan']);
$router->get('onepercent/balance/{kod_cawangan}', ['uses' => 'OnePercentController@getKeuntunganImbangDuga']);
$router->get('onepercent/ledger/{kod_cawangan}', ['uses' => 'OnePercentController@getKeuntunganLejerAm']);
$router->get('ujrah/balance/{kod_cawangan}', ['uses' => 'OnePercentController@getUjrahImbangDuga']);
+34 -2
View File
@@ -106,8 +106,8 @@ $router->group(['prefix'=>'api'], function () use ($router){
//Tebus API
$router->get('tebustawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusTawarruq']);
$router->get('upahtawarruq/{kodcaw}/{norujukan}/{jeniskeuntungan}',['uses'=>'TebusController@upahTawarruq']);
$router->get('upahrebettawarruq/{kodcaw}/{norujukan}/{jeniskeuntungan}',['uses'=>'TebusController@upahRebetTawarruq']);
$router->get('upahtawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@upahTawarruq']);
$router->get('upahrebettawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@upahRebetTawarruq']);
$router->get('tebusseparuhtawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusSeparuhTawarruq']);
$router->get('tebusseparuhbukantawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusSeparuhNotTawarruq']);
$router->get('tebusbukantawarruq/{kodcaw}/{norujukan}',['uses'=>'TebusController@tebusNotTawarruq']);
@@ -162,6 +162,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
$router->get('marhun/laporan/{kodcaw}/{tarikh}',['uses'=>'MarhunController@getLaporanMarhunHarian']);
$router->get('marhunterkumpul/laporan/{kodcaw}/{tarikh}',['uses'=>'MarhunController@getLaporanMarhunTerkumpul']);
$router->get('marhun/mutu/sag',['uses'=>'MarhunController@getMutuMarhun']);
$router->get('marhun/nilai/terkini',['uses'=>'MarhunController@getNilaiMarhunLatest']);
$router->get('jemas',['uses'=>'MarhunController@getAllJemas']);
@@ -386,11 +387,22 @@ $router->group(['prefix'=>'api'], function () use ($router){
$router->get('firstwakil/{kodcaw}',['uses' => 'TebusController@FirstWakil']);
$router->get('getwakil/{kodcaw}/{icno}',['uses' => 'TebusController@getWakil']);
$router->get('getwakil/{kodcaw}/code/{nowakil}',['uses' => 'TebusController@getWakilbycode']);
$router->get('getsuratwakil/{kodcaw}/{norujukan}',['uses' => 'TebusController@getSuratWakil']);
$router->put('ubahwakil/{kodcaw}',['uses'=>'TebusController@UbahWakil']);
$router->post('createwakil/{kodcaw}/{icno}',['uses' => 'TebusController@createWakil']);
$router->get('getwakil/{kodcaw}/status/{status}',['uses' => 'TebusController@getWakilbyStatus']);
$router->get('lookupwakil',['uses' => 'TebusController@LookupWakil']);
//API SURAT WAKIL
$router->get('checksurat/{kodcaw}/{norujukan}',['uses'=>'WakilController@showSuratWakilByNorujukan']);
$router->get('wakil/{kodcaw}/{t_cetak}',['uses'=>'WakilController@showsuratwakil']);
$router->post('wakil/{kodcaw}',['uses'=>'WakilController@createSuratWakil']);
$router->get('nosiri/wakil/{kodcaw}/{norujukan}',['uses'=>'WakilController@noSiriWakil']);
$router->put('updatewakil/{kodcaw}/{norujukan}',['uses'=>'WakilController@updateWakil']);
//API ALASAN
$router->get('lookupalasan',['uses' => 'PolisController@LookupAlasan']);
$router->get('polis/laporan',['uses' => 'PolisController@LaporanPolis']);
@@ -589,6 +601,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
//One Percent
$router->get('kadarujrah',['uses' => 'GadaiController@getKadarUjrah']);
$router->post('onepercent',['uses' => 'GadaiController@getOnePercent']);
$router->get('kadarujrah/by_group_id',['uses' => 'GadaiController@getKadarUjrahByGroupId']);
//STOKAUDITKHAS
$router->get('stokauditkhas/aktif/{kodcaw}',['uses'=>'StokAuditController@LaporanAuditKhasAktif']);
@@ -777,6 +790,8 @@ $router->group(['prefix'=>'admin'], function () use ($router){
$router->put('tetapan/listbarcode/update',['uses'=>'AdminPageController@ListBarcodeScannedOperasi_Update']);
$router->get('tetapan/penggunamargin',['uses'=>'AdminPageController@PenggunaMargin']);
$router->put('tetapan/penggunamargin/update',['uses'=>'AdminPageController@PenggunaMargin_Update']);
$router->get('tetapan/listcawangan',['uses'=>'AdminPageController@ListCawangan']);
$router->put('tetapan/listcawangan/update',['uses'=>'AdminPageController@ListCawangan_Update']);
$router->get('laporanllcaw/gadai',['uses'=>'AdminPageController@getLaporanGadaiAllCaw']);
@@ -798,7 +813,10 @@ $router->group(['prefix'=>'admin'], function () use ($router){
});
$router->group(['prefix'=>'lelong'], function () use ($router){
$router->get('upahtawarruq/{kodcaw}/{norujukan}/{jeniskeuntungan}',['uses'=>'TebusController@upahTawarruq']);
$router->get('upahrebettawarruq/{kodcaw}/{norujukan}/{jeniskeuntungan}',['uses'=>'TebusController@upahRebetTawarruq']);
$router->get('kiraupahUjrahOnePercent/{kodcaw}/{norujukan}',['uses'=>'LelongController@kiraupahUjrahOnePercent']);
$router->get('kiraupahUjrahOnePercentRebate/{kodcaw}/{norujukan}',['uses'=>'LelongController@kiraupahUjrahOnePercentRebate']);
$router->post('taglel/update',['uses'=>'GadaiController@updateTagLelong']);
$router->post('taglel/revert',['uses'=>'GadaiController@revertTagLelong']);
$router->post('exportLelong',['uses'=>'LelongController@exportLelong']);
@@ -822,3 +840,17 @@ $router->group(['prefix'=>'kelantanpay'], function () use ($router){
$router->get('gadai/customer',['uses'=>'KelantanPayController@index']);
$router->post('payment/gadai',['uses'=>'KelantanPayController@postPayment']);
});
$router->group(['prefix'=>'arcc'], function () use ($router){
//ARCC API
$router->get('datagadai/aktif/{kodcaw}',['uses'=>'CallCenterController@datagadai']);
$router->get('cawangan',['uses'=>'CallCenterController@showAllCawangans']);
$router->post('insertdatagadai/aktif/{kodcaw}',['uses'=>'CallCenterController@insertdatagadai']);
$router->get('getbatchnotis',['uses'=>'CallCenterController@getbatchnotis']);
$router->get('senarainotisperingatan',['uses'=>'CallCenterController@senarainotisperingatan']);
$router->get('getcawnotis/{notisid}',['uses'=>'CallCenterController@getcawnotis']);
$router->get('getcawnotisbycaw',['uses'=>'CallCenterController@getcawnotisbycaw']);
$router->get('bycawnotisperingatan/{kodcaw}/{notisid}',['uses'=>'CallCenterController@bycawnotisperingatan']);
$router->post('blastwasapbysag',['uses'=>'CallCenterController@blastwasapbysag']);
});
+4
View File
@@ -14,6 +14,10 @@ class ExampleTest extends TestCase
{
$this->get('/');
dump('test');
return;
$this->assertEquals(
$this->app->version(), $this->response->getContent()
);
+208
View File
@@ -0,0 +1,208 @@
<?php
use App\Http\Controllers\LaporanController;
use App\Services\Reports\RingkasanHarianService;
use Illuminate\Http\Request;
class RingkasanHarianServicesTest extends TestCase
{
private $kodCawangan = 'kb2';
private $startDate = '2023-03-23';
private $endDate = '2023-03-23';
/**
* A basic test example.
*
* @return void
*/
public function test_have_errors()
{
$request = new Request;
$request->startDate = $this->startDate;
$request->endDate = $this->endDate;
$ringkasanHarianService = new RingkasanHarianService($this->kodCawangan, $request);
$this->expectNotToPerformAssertions();
return $ringkasanHarianService->generate();
}
public function test_service_method_output_is_same_originated_method()
{
$request = new Request;
$request->startDate = $this->startDate;
$request->endDate = $this->endDate;
$ringkasanHarianService = new RingkasanHarianService($this->kodCawangan, $request);
$outputService = $ringkasanHarianService->generate();
$request = new Request;
$request->tarikh = $this->startDate;
$request->kodcaw = $this->kodCawangan;
$outputOriginatedMethod = (new LaporanController)->laporanHarian($request);
// Find divergent properties and values
$divergentProperties = [];
$outputOriginatedMethod = $outputOriginatedMethod->getData()[0];
$outputService = $outputService->getData()[0];
$this->show_diverged_changes($outputOriginatedMethod, $outputService);
$this->assertEquals($outputOriginatedMethod, $outputService);
}
public function test_date_range_of_test_service_method_ouput_is_same_as_originated_method()
{
// Properties are excluded because all property values from originated report are assummed to sum between 2 days.
// But these properties are already utilize range. So summing these property values will result in false output
$propertiesToBeExcludedFromTest = [
'panjar_bulanan',
'panjar_tahunan',
'stokauditpembiayaan',
'stokauditnilaimarhun',
'stokauditcount',
'petibesiimbangduga',
'outstandingimbangduga',
'rekodpemb',
'rekodpembnm',
'rekodpembbil',
'bayaranpend',
];
$prepareReport = function($report) use($propertiesToBeExcludedFromTest){
foreach ($propertiesToBeExcludedFromTest as $properties) {
unset($report->$properties);
}
return $report;
};
$day1 = '2023-03-20';
$day2 = '2023-03-21';
$kodCawangan = $this->kodCawangan;
$report1 = $this->get_2_days_report_from_originated_method($kodCawangan, $day1, $day2);
$request = new Request;
$request->startDate = $day1;
$request->endDate = $day2;
$ringkasanHarianService = new RingkasanHarianService($kodCawangan, $request);
$outputService = $ringkasanHarianService->generate();
$report2 = $this->convert_object_values_to_string($outputService->getData()[0]);
$this->assertEquals($prepareReport($report1), $prepareReport($report2));
}
public function show_diverged_changes($outputOriginatedMethod, $outputService)
{
// Get properties dynamically from the first object
$properties = array_keys(get_object_vars($outputOriginatedMethod));
// Find divergent properties and values
$divergentProperties = [];
foreach ($properties as $property) {
$value1 = $outputOriginatedMethod->$property;
$value2 = $outputService->$property;
if ($value1 !== $value2) {
$divergentProperties[$property] = [
'value1' => $value1,
'value2' => $value2,
];
}
}
// Display divergent properties and values
if (!empty($divergentProperties)) {
dump("Divergent properties found:\n");
foreach ($divergentProperties as $property => $values) {
$value1 = in_array(gettype($values['value1']), ['integer', 'string']) ? $values['value1'] : json_encode($values['value1']);
$value2 = in_array(gettype($values['value2']), ['integer', 'string']) ? $values['value2'] : json_encode($values['value2']);
dump("$property: outputOriginatedMethod : {$value1} vs serviceMethod : {$value2}\n");
}
}
}
private function get_2_days_report_from_originated_method($kodCawangan, $day1, $day2)
{
$requestFirstDay = new Request;
$requestFirstDay->tarikh = $day1;
$requestFirstDay->kodcaw = $kodCawangan;
$requestSecondDay = new Request;
$requestSecondDay->tarikh = $day2;
$requestSecondDay->kodcaw = $kodCawangan;
$outputFirstDay = (new LaporanController)->laporanHarian($requestFirstDay)->getData()[0];
$outputSecondDay = (new LaporanController)->laporanHarian($requestSecondDay)->getData()[0];
$sumDateRangeReportData = function ($report1, $report2) {
$floatingPointProperty = [
'total_gadai',
'gadai_70',
'gadai_75',
'gadai_80',
'nilaimarhun_70',
'nilaimarhun_75',
'nilaimarhun_80',
'panjar_harian',
'panjar_bulanan',
'panjar_tahunan',
'stokauditpembiayaan',
'stokauditnilaimarhun',
'stokauditcount',
'petibesiimbangduga',
'outstandingimbangduga',
'rekodpemb',
'rekodpembnm',
'rekodpembil',
'bayaranpend',
];
// Merge objects by summing corresponding values
$mergedReport = new stdClass();
foreach ($report1 as $key => $value) {
// Check if the property exists in the second object
if (property_exists($report2, $key)) {
// Sum the values and assign to the merged object
$sum = $value + $report2->$key;
$mergedReport->$key = in_array($key, $floatingPointProperty) ? floatval($sum) : $sum;
}
}
return $mergedReport;
};
$sum = $sumDateRangeReportData($outputFirstDay, $outputSecondDay);
return $this->convert_object_values_to_string($sum);
}
private function convert_object_values_to_string($inputObject) {
// Check if the input is an object
if (!is_object($inputObject)) {
// Handle the case where the input is not an object
return $inputObject;
}
// Create a new stdClass object to store the converted values
$convertedObject = new stdClass();
// Iterate through the properties of the input object
foreach ($inputObject as $key => $value) {
// Convert the value to string and assign it to the new object
$convertedObject->$key = number_format($value, 2);
}
return $convertedObject;
}
}
+9 -10
View File
@@ -1,14 +1,13 @@
<?php
use App\Services\Reports\OnePercentService as ReportOne;
$report = new ReportOne('KB2');
$test = $report->getTotalKeuntungan('B');
$test2 = $report->getTotalUjrah('B');
dd($test,$test2);
use App\Services\MasterServices;
use App\Support\v2\Calculation;
$number = 1456.529;
$test2 = new Calculation();
$test = new MasterServices('KB2');
// $response = $test->kiraUpahTawarruq('KB2231207-0004');
$testrounded = $test2->getRoundedMethod($number);
$response = 'tes';
dd($testrounded);