Merge branch 'master' into amir

This commit is contained in:
Amir
2022-12-01 10:19:40 +08:00
3 changed files with 166 additions and 1 deletions
@@ -16,6 +16,7 @@ use App\Tunai;
use App\AddTunai;
use App\TuntutBaki;
use App\Advansur;
use App\AkruNet;
use App\TransaksiKeuntungan;
use App\Bajet;
use App\BajetTahunan;
@@ -3208,4 +3209,18 @@ class AdminPageController extends Controller
}
public function getLaporanAkruBulan(Request $request){
$array_akru = [];
$cawangan = Cawangan::on('mysql7')->get();
foreach($cawangan as $caw)
{
$akrunet = AkruNet::on($caw['mysql'])->where('tahun',$request->year)->get()->toArray();
array_push($array_akru,['cawangan' => $caw['details_caw'],'akru' => $akrunet]);
}
return response()->json($array_akru,200);
}
}
+146 -1
View File
@@ -20,10 +20,12 @@ use App\HapusKira;
use App\GlCode;
use App\GlDetail;
use App\Audit;
use App\AkruNet;
use Carbon\Carbon;
use App\imbangdugalama;
use DateTime;
use DB;
use Illuminate\Support\Facades\DB;
class LaporanController extends Controller
{
@@ -1227,4 +1229,147 @@ class LaporanController extends Controller
return response()->json($atarray);
}
public function SemakanKeuntunganLejer($kodcaw,Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$current = Carbon::now();
$current = new Carbon();
/* Start Keuntungan Sebenar Calculation */
$get_norujukan = Gadai::on($cawangan['mysql'])
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
->whereNotNull('hargajualan')->having('result','=',1)->whereDate('t_gadai','>=',$request->mula)->whereDate('t_gadai','<=',$request->hingga)->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")
->leftJoin('transaksi_keuntungan as trans', function($join)
{
$join->on('transaction.norujukan', '=', 'trans.norujukan');
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
})
->whereIn('trans.norujukan',$get_norujukan)->get()->toArray();
$sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0;
$sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0;
$total_keuntungan_sebenar = $sum_keuntungan + $sum_bayaran;
/* End Keuntungan Sebenar Calculation */
/* Start Keuntungan Semasa Calculation */
$get_norujukan = Gadai::on($cawangan['mysql'])
->whereNotNull('hargajualan')->pluck('norujukan');
$summation = Transaction::on('mysql7')
->selectRaw("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")
->leftJoin('transaksi_keuntungan as trans', function($join)
{
$join->on('transaction.norujukan', '=', 'trans.norujukan');
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
})
->whereIn('trans.norujukan',$get_norujukan)
->whereDate('trans.tarikh_bayaran' ,'>=', $request->mula)
->whereDate('trans.tarikh_bayaran' ,'<=', $request->hingga)
->whereYear('tarikh_bayaran','=',$current->year)
->where('trans.kodcaw',$request->kodcaw)
->get()->toArray();
$upahlelong = Lelong::on($cawangan['mysql'])
->where([['t_jual','>=',$request->mula],['t_jual','<=',$request->hingga],['t_jual','>','2022-07-24']])
->whereYear('t_jual','=',$current->year)
->sum('bakiupah');
$sum_keuntungan = ($summation) ? $summation[0]['sum_keun'] : 0;
$sum_bayaran = ($summation) ? $summation[0]['sum_bayaran'] : 0;
$total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong) - $total_keuntungan_sebenar;
/* End Keuntungan Semasa Calculation */
$array_keuntungan = ['keuntungan_sebenar' => $total_keuntungan_sebenar, 'keuntungan_semasa' => $total_keuntungan_semasa];
return response($array_keuntungan);
}
public function SemakanPendapatanAkrual($kodcaw,Request $request){
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$tarikh_carbon = new Carbon($request->mula);
$akrual_net = AkruNet::on($cawangan['mysql'])
->where('bulan', (int)$tarikh_carbon->month)
->get()->toArray();
$jumlah = ($akrual_net) ? $akrual_net[0]['jumlah'] : 0;
return response($jumlah);
}
public function GenerateDailyAkrual(Request $request){
$current = Carbon::now();
$current = new Carbon();
$month_generate = $current->format('m');
$year_generate = $current->format('Y');
$harini = $current->toDateString();
$haripertama = $current->firstOfMonth();
$haripertama_extension = $haripertama->toDateString();
$month_sebelum = $current->subMonth()->format('m');
$cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get();
$tebuscontroller = new TebusController();
foreach($cawangan as $index=>$caw){
DB::connection($caw['mysql'])->beginTransaction();
if($year_generate == 2022 && (int)$month_sebelum > 4){
$audit_backdate = $tebuscontroller->StokAuditGenerateTerakru($month_sebelum,$caw,$year_generate);
}
$audit_now = Gadai::on($caw['mysql'])
->where([['tagpalsu','=',0],['t_gadai','<=',$harini],['sttebus','=','']])
->orWhere([['tagpalsu','=',0],['t_update','>',$harini],['sttebus','!=',''],['t_gadai','<=',$harini]]);
$totaltunggakan_now = $audit_now->sum('tunggakan');
$totaltunggakan_past = $audit_backdate->sum('upahblmbyar');
$request_generate = new \Illuminate\Http\Request([
'mula' => $haripertama_extension,
'hingga' => $harini,
'kodcaw' => $caw['kodcaw'],
]);
$keuntungan = $this->SemakanKeuntunganLejer($request->kodcaw,$request_generate);
$data_keuntungan = $keuntungan->getContent();
$data = json_decode($data_keuntungan, true);
$calculation = $totaltunggakan_past - $data['keuntungan_semasa'];
$accrual_net = $totaltunggakan_now - $calculation;
$available_akru = AkruNet::on($caw['mysql'])
->where('bulan',(int)$month_generate)
->first();
try{
if($available_akru){
if($available_akru['jumlah'] !== $accrual_net){
AkruNet::on($caw['mysql'])->where('bulan','=',$current->month)
->update(['jumlah' => $accrual_net]);
}
}else{
$akrunet = new AkruNet();
$akrunet->setConnection($caw['mysql']);
$akrunet->tahun = $year_generate;
$akrunet->bulan = $month_generate;
$akrunet->jumlah = $accrual_net;
$akrunet->save();
}
DB::connection($caw['mysql'])->commit();
}catch (\Throwable $e){
return response($e);
}
}
return response('succesfully generated!');
}
}
+5
View File
@@ -506,6 +506,9 @@ $router->group(['prefix'=>'api'], function () use ($router){
$router->get('UntungRugiCalculation/{kodcaw}',['uses'=>'TebusController@untungrugicalculation']);
$router->get('UntungRugiCalculationLejer/{kodcaw}',['uses'=>'TebusController@untungrugicalculationLejer']);
/* Pembaharuan Akrual */
$router->get('Lejer/Keuntungan/{kodcaw}',['uses'=>'LaporanController@SemakanKeuntunganLejer']);
$router->get('Lejer/PendapatanAkrual/{kodcaw}',['uses'=>'LaporanController@SemakanPendapatanAkrual']);
//END IMBANG DUGA & LEJER AM//
@@ -735,6 +738,8 @@ $router->group(['prefix'=>'admin'], function () use ($router){
$router->put('tetapan/listbarcode/update',['uses'=>'AdminPageController@ListBarcodeScannedOperasi_Update']);
$router->get('laporanllcaw/gadai',['uses'=>'AdminPageController@getLaporanGadaiAllCaw']);
$router->get('laporan/akrubulan',['uses'=>'AdminPageController@getLaporanAkruBulan']);
$router->get('laporan/akrual/generatedaily',['uses'=>'LaporanController@GenerateDailyAkrual']);
});
$router->group(['prefix'=>'lelong'], function () use ($router){