fix imbang duga services added untung rugi terkumpul

This commit is contained in:
Hafifie PKB
2024-08-20 00:19:51 +08:00
parent 1103524e8b
commit c482efe180
+269 -3
View File
@@ -15,6 +15,12 @@ use App\TransaksiKeuntungan;
use App\GlDetail;
use App\imbangdugalama;
use App\GlCode;
use App\Customer;
use App\Tebus;
use App\Advansur;
use App\HapusKira;
use App\Panjar;
use App\Services\Reports\OnePercentService as ReportOne;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\Response;
@@ -609,6 +615,263 @@ class ImbangDugaService
return $transaksi;
}
public function getUntungRugiTerkumpul()
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
$current = new Carbon($this->tarikh);
$daterequest = new Carbon($this->tarikh);
$daterequest->addDays(1);
$total = 0;
//Untung Rugi Terkumpul Sebelum 01.12.2013
$utgrugilama = imbangdugalama::on($cawangan['mysql']) //--masuk
->sum('untung_t');
//Yuran Ahli
$yuranTlama = imbangdugalama::on($cawangan['mysql'])
->sum('yuran_t');
$yuranbaru = Customer::on('mysql7')
->where('tarikhdaftar','>','2013-12-31')
->whereYear('tarikhdaftar','<',$current->year)
->sum('yuranahli');
//Caj Lelong
$lelong = Lelong::on($cawangan['mysql']) //--masuk
->whereNotNull('t_jual')
->where('t_jual','>','2013-12-31')
->whereYear('t_jual','<',$current->year)
->sum('cajlelong');
$cajlelonglama = imbangdugalama::on($cawangan['mysql'])
->sum('cajlelong_t');
//Upah Simpan Tebus
$upahsimpantebus = Tebus::on($cawangan['mysql']) //--masuk
->where('t_tebus','>','2013-12-31')
->whereYear('t_tebus','<',$current->year)
->sum('upahdibayar');
//Upah Simpan Lelong
$upahsimpanlelong = Lelong::on($cawangan['mysql']) //--masuk
->where('t_jual','>','2013-12-31')
->whereYear('t_jual','<',$current->year)
->sum('bakiupah');
//Upah Simpan Advansur
$upahsimpanansur = Advansur::on($cawangan['mysql']) //--masuk
->whereYear('tarikh','<',$current->year)
->sum('upahdibayar');
//Upah Tawarruq
$keuntungan_data = TransaksiKeuntungan::on('mysql7')
->where('transaksi_keuntungan.tarikh_bayaran' ,'<=', $daterequest)
->whereYear('transaksi_keuntungan.tarikh_bayaran','<',$current->year)
->where('kodcaw',$this->kodcaw)
->pluck('norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $keuntungan_data)->whereNull('hargajualan')->pluck('norujukan');
$upahsimpankeuntungansebelumtawarruq = TransaksiKeuntungan::on('mysql7')
->where('tarikh_bayaran' ,'<=', $daterequest)
->whereYear('tarikh_bayaran','<',$current->year)
->whereIn('norujukan',$gadaiData)
->sum('bayaran_keuntungan');
$upahsimpanlama = imbangdugalama::on($cawangan['mysql'])
->sum('upah_t');
//GST Caj Lelong
$gstcajlelong = Lelong::on($cawangan['mysql']) //--masuk
->where('t_jual','<=',$this->tarikh)
->whereYear('t_jual','<',$current->year)
->sum('gst_cl');
//Upah Hapus Kira
$upahhapuskira = HapusKira::on($cawangan['mysql'])
->where('tarikh','>','2013-12-31')
->whereYear('tarikh','<',$current->year)
->sum('bakiupah');
$panjar1 = Panjar::on($cawangan['mysql'])
->whereYear('tarikh','<',$current->year)
->where('tag','=','1')
->sum('bayaran');
$panjar2 = Panjar::on($cawangan['mysql'])
->whereYear('tarikh','<',$current->year)
->where('tag','=','2')
->sum('bayaran');
$panjar3 = Panjar::on($cawangan['mysql'])
->whereYear('tarikh','<',$current->year)
->where('tag','=','3')
->sum('bayaran');
$parameter = ($panjar1*-1) + ($panjar2*-1) + ($panjar3*-1);
// $parameter = Parameter::on($cawangan['mysql']) //--masuk
// ->sum('sumpanjarlama');
//Keuntungan Tawarruq Sebenar
$keuntungansebenar = 0;
$dateSM = '2021-04-24';
if($this->tarikh < '2021-06-09')
{
$keuntungan_data = TransaksiKeuntungan::on('mysql7')
->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<', $dateSM)
->whereYear('tarikh_bayaran','<',$current->year)
->where('kodcaw',$this->kodcaw)
->pluck('norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntungan_data)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntungan = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan',$gadaiData)
->whereDate('tarikh_bayaran', '<=', $this->tarikh)
->whereDate('tarikh_bayaran' ,'<', $dateSM)
->whereYear('tarikh_bayaran','<',$current->year)
->sum('bayaran_keuntungan');
$keuntunganreducing_data = TransaksiKeuntungan::on('mysql7')
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran','>=', $dateSM)
->whereYear('tarikh_bayaran','<',$current->year)
->where('kodcaw',$this->kodcaw)
->pluck('norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntunganreducing_data)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntunganreducing = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan',$gadaiData)
->whereDate('tarikh_bayaran' ,'<=', $this->tarikh)
->whereDate('tarikh_bayaran','>=', $dateSM)
->whereYear('tarikh_bayaran','<',$current->year)
->sum('keuntungan_rebet');
$keuntungansebenar = ($keuntungan + $keuntunganreducing);
}else{
$keuntungan_data = TransaksiKeuntungan::on('mysql7')
->whereDate('transaksi_keuntungan.tarikh_bayaran', '<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<', $dateSM)
->whereYear('tarikh_bayaran','<',$current->year)
->where('kodcaw',$this->kodcaw)
->pluck('norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntungan_data)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntungan = TransaksiKeuntungan::on('mysql7')->whereIn('norujukan',$gadaiData)->sum('bayaran_keuntungan');
$keuntunganreducing_data = TransaksiKeuntungan::on('mysql7')
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<', '2021-06-09')
->whereDate('transaksi_keuntungan.tarikh_bayaran','>=', $dateSM)
->whereYear('tarikh_bayaran','<',$current->year)
->where('kodcaw',$this->kodcaw)
->pluck('norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$keuntunganreducing_data)->whereNotNull('hargajualan')->pluck('norujukan');
$keuntunganreducing = TransaksiKeuntungan::on('mysql7')
->whereIn('norujukan',$gadaiData)
->whereDate('tarikh_bayaran' ,'<', '2021-06-09')
->whereDate('tarikh_bayaran','>=', $dateSM)
->sum('keuntungan_rebet');
$bukanansuran_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')
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09')
->whereYear('tarikh_bayaran','<',$current->year)
->where('trans.kodcaw',$this->kodcaw)
->pluck('transaksi_keuntungan.norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])
->whereIn('norujukan',$bukanansuran_data)
->whereNotNull('hargajualan')
->pluck('norujukan');
$bukanansuran = TransaksiKeuntungan::on('mysql7')
->whereIn('transaksi_keuntungan.norujukan',$gadaiData)
->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')
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09')
->whereYear('transaksi_keuntungan.tarikh_bayaran','<',$current->year)
->sum('transaksi_keuntungan.keuntungan_rebet');
$ansuran_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')
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09')
->whereYear('tarikh_bayaran','<',$current->year)
->where('trans.kodcaw',$this->kodcaw)
->pluck('transaksi_keuntungan.norujukan');
$gadaiData = Gadai::on($cawangan['mysql'])
->whereIn('norujukan',$ansuran_data)
->whereNotNull('hargajualan')
->pluck('norujukan');
$ansuran = TransaksiKeuntungan::on('mysql7')
->whereIn('transaksi_keuntungan.norujukan',$gadaiData)
->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')
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->tarikh)
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', '2021-06-09')
->whereYear('transaksi_keuntungan.tarikh_bayaran','<',$current->year)
->sum('transaksi_keuntungan.bayaran_keuntungan');
$reports = new ReportOne($this->kodcaw);
$previous_date = new Carbon($this->tarikh);
$previous_date->subMonth()->endOfMonth()->toDateString();
$onepercent = $reports->getTotalKeuntungan('B',$previous_date);
$ujrah = $reports->getTotalUjrah('B',$previous_date);
$keuntungansebenar = ($keuntungan + $keuntunganreducing + $ansuran + $bukanansuran) + $onepercent + $ujrah;
}
$total = ($utgrugilama + $lelong + $upahsimpantebus + $upahsimpanlelong + $upahsimpanansur + $gstcajlelong + $keuntungansebenar + $upahsimpankeuntungansebelumtawarruq) + $parameter;
if($this->kodcaw == '011229')
$total -= 45390.37;
return $total;
}
public function setImbangDugaBackup()
{
@@ -627,19 +890,21 @@ class ImbangDugaService
$serahan = $totalpendser['serahan'];
$ujrah = $accrual['ujrah'];
$onepercent = $accrual['onepercent'];
$bayaranpend = -1*($bayaranpend);
$untungrugiterkumpul = $this->getUntungRugiTerkumpul();
$totalharta = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)
->get()
->map(function ($ig) use ($keuntungan_penggadai,$tunaiditangan,$serahan,$bayaranpend) {
return floatval($tunaiditangan) + $ig['pembiayaantawarruq'] + $bayaranpend + $ig['pinjamankoop'] + $ig['emaspalsu']
return floatval($tunaiditangan) + $ig['pembiayaantawarruq'] + (-$bayaranpend) + $ig['pinjamankoop'] + $ig['emaspalsu']
+ $ig['pindahkekpkb'] + $ig['penghutangkaki'] + $ig['phapuskira'] + $ig['belian1stop'] + $keuntungan_penggadai + $serahan;
});
$totaltanggungan = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)
->get()
->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan) {
->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan,$untungrugiterkumpul) {
return $pend_terakru + $ig['bds'] + $ig['perubatan'] + $ig['keraian'] + $ig['rugilelong'] + $ig['bakilelong']
+ $ig['wtd'] + $ig['untungrugiterkumpul'] + $keun_sebenar + $pendahuluan + $ig['cajlelong']
+ $ig['wtd'] + $untungrugiterkumpul + $keun_sebenar + $pendahuluan + $ig['cajlelong']
+ $ig['cajperkhidmatan'] + $ig['cajlelongxtra'] + $ig['upahsimpanxtra'] + $ig['bakilelongxtra'] + $ig['rugilelongxtra']
+ $ig['utgterkumpulxtra'] + $ig['jualan1stop'] + $ig['hapuskira'] + $ujrah + $onepercent;
});
@@ -660,6 +925,7 @@ class ImbangDugaService
'pend_terakru' => $pend_terakru,
'ujrah' => $ujrah,
'onepercent' => $onepercent,
'untungrugiterkumpul' => $untungrugiterkumpul,
'totalharta' => round($totalharta[0], 2),
'totaltanggungan' => round($totaltanggungan[0], 2),
'tagtally' => $booltally,