104 lines
3.8 KiB
PHP
104 lines
3.8 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Reports;
|
|
|
|
use App\Cawangan;
|
|
use App\CawanganDetail;
|
|
use App\Gadai;
|
|
use App\TransaksiKeuntungan;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class OnePercentService
|
|
{
|
|
|
|
// `B` stands for balance sheet and `L` stands for Ledger
|
|
private $kod_cawangan;
|
|
private $cawangan;
|
|
public function __construct($kod_cawangan){
|
|
$this->kod_cawangan = $kod_cawangan;
|
|
$this->cawangan = Cawangan::where('kodcaw',$kod_cawangan)->first();
|
|
}
|
|
|
|
|
|
public function getTotalRounded($type='B',$start = '2023-12-14',$end = '2023-12-14'){
|
|
if($type == 'B'){
|
|
$rounded = TransaksiKeuntungan::on('mysql7')
|
|
->leftJoin('transaction as trans', function($join)
|
|
{
|
|
$join->on('trans.norujukan', '=', 'transaksi_keuntungan.norujukan');
|
|
$join->on('trans.created_at', '=', 'transaksi_keuntungan.tarikh_bayaran');
|
|
})
|
|
->where('trans.trans_type','T')
|
|
->sum('transaksi_keuntungan.rounded');
|
|
|
|
}else if($type == 'L'){
|
|
$rounded = TransaksiKeuntungan::on('mysql7')
|
|
->whereDate('tarikh_bayaran','>=',$start)
|
|
->whereDate('tarikh_bayaran','<=',$end)
|
|
->sum('rounded');;
|
|
}
|
|
|
|
return $rounded;
|
|
|
|
}
|
|
|
|
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');
|
|
}
|
|
|
|
$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')
|
|
->whereIn('norujukan',$norujukan)
|
|
->whereDate('tarikh_bayaran','>=',$start)
|
|
->whereDate('tarikh_bayaran','<=',$end)
|
|
->sum('ujrah_rebet');;
|
|
}
|
|
|
|
$totalujrah = $ujrah + $akrual;
|
|
return $totalujrah;
|
|
}
|
|
|
|
|
|
}
|