From 314e6b3a8426e9c042549376784e364f2cc9bd45 Mon Sep 17 00:00:00 2001 From: Amir Date: Mon, 6 Mar 2023 11:52:05 +0800 Subject: [PATCH] Fix kemaskini harga emas simulasi --- app/Http/Controllers/LelongController.php | 4 +- app/Http/Controllers/SimulasiController.php | 149 +++++++++++++++++++- routes/web.php | 2 +- 3 files changed, 145 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index 67ca27e2..7500eabe 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -1059,7 +1059,7 @@ class LelongController extends Controller "username" => $user->username, "nama_user" => $user->name, "norujukan" => $collection_lelong_bid['norujukan'], - "nota" => "Kemaskini Harga Asas RM" . $collection_lelong_bid['total_hargaasas'], + "nota" => "Lelong, Kemaskini Harga Asas RM" . $collection_lelong_bid['total_hargaasas'], 'created_at' => $currentNow, 'updated_at' => $currentNow, ]; @@ -1079,7 +1079,7 @@ class LelongController extends Controller LogUser::insert($log_user_array); - return redirect()->route('lelong.show',$request->idlelong)->with('success','Kemaskini Berjaya'); + return redirect()->route('lelong.show',$request->idlelong)->with('success','Kemaskini Harga Emas Berjaya'); } public function janapemenang($id){ diff --git a/app/Http/Controllers/SimulasiController.php b/app/Http/Controllers/SimulasiController.php index d15e6193..d2d6542f 100644 --- a/app/Http/Controllers/SimulasiController.php +++ b/app/Http/Controllers/SimulasiController.php @@ -34,11 +34,7 @@ use App\Models\Tetapan; use App\Models\Customer; use App\Models\MarhunTemp; use App\Models\TransaksiKeuntungan; - - - - - +use Illuminate\Support\Facades\DB; class SimulasiController extends Controller { @@ -314,6 +310,8 @@ class SimulasiController extends Controller $simkarat = SimKarat::insert($karat_data); + $simkarattemp = SimKarat::where('simulasi_id','=',$simulasi->id)->get()->keyBy('karat'); + foreach($sag_cawangans as $index=>$cawsimulasi){ $caw_simulasi = new CawanganSimulasi; @@ -370,7 +368,6 @@ class SimulasiController extends Controller $gadaimarhun = GadaiMarhun::on($cawsimulasi['cawangan']->caw_code)->whereIn('norujukan',$gadaimarhun_to_update)->get(); - $simkarattemp = SimKarat::where('simulasi_id','=',$simulasi->id)->get()->keyBy('karat'); $simulasi_bid_ = SimulasiBid::whereIn('norujukan',$gadaimarhun_to_update)->get()->keyBy('norujukan'); @@ -980,8 +977,9 @@ class SimulasiController extends Controller $sumcajlelong = $sim_bid['hargaasas'] * ($simulasi['cajlelong']/100); + $cajlelongnew = round($sumcajlelong, 1, 1); // $cajlelong = $cajlelong + bcdiv($sumcajlelong,1,1); - $cajlelong = $cajlelong + $sim_bid['cajlelong']; + $cajlelong = $cajlelong + $cajlelongnew; $totalbaki = $sim_bid['hargaasas'] - $sim_bid['pinjaman'] - $sim_bid['bakiupah'] - $sim_bid['cajlelong']; if(strpos($totalbaki, '-') !== false) { @@ -1208,6 +1206,143 @@ class SimulasiController extends Controller ->with('success','Kemaskini Harga Emas Berjaya'); } + public function kemaskini2(Request $request) + { + $user = Auth::user(); + + $currentNow = Carbon::now(); + + $sim_karats = SimKarat::where('simulasi_id', $request->idsimulasi)->get(); + + $insert_harga2 = $request->harga2; + + $simkarat_temp_arr = []; + $cases = ''; + + foreach ($sim_karats as $index => $sim_karat) { + if ($insert_harga2[$index]) { + $sim_karats[$index]['harga_baru'] = $insert_harga2[$index]; + } + $sim_karat_temp_to_be_inserted = [ + 'simulasi_id' => $request->idsimulasi, + 'karat' => $sim_karat->karat, + 'keterangan' => $sim_karat->keterangan, + 'harga' => $sim_karat->harga, + 'harga2' => $sim_karat->harga2, + 'created_at' => $currentNow, + 'updated_at' => $currentNow, + ]; + + array_push($simkarat_temp_arr, $sim_karat_temp_to_be_inserted); + + $cases .= sprintf(' WHEN id = %d THEN %s ', $sim_karat->id, $sim_karat->harga_baru); + } + + $build_query = sprintf("CASE %s END", $cases); + + SimKarat_temp::insert($simkarat_temp_arr); + + SimKarat::query()->where('simulasi_id', $request->idsimulasi)->update(['harga2' => DB::raw($build_query)]); + + Simulasi::find($request->idsimulasi)->update(['harga_emas_asas' => $request->harga2[3]]); + + $new_sim_karat = SimKarat::where('simulasi_id', $request->idsimulasi)->select('simulasi_id', 'karat', 'harga2')->get()->keyBy('karat'); + + $simulasi_bid = SimulasiBid::with('simulasiBidMarhun')->where('simulasi_id', $request->idsimulasi)->select('id', 'kodcaw', 'norujukan')->get(); + + /** -------------UPDATE SIMULASI BID MARHUN------------- */ + $list_simulasi_bid_marhun = collect(); + foreach($simulasi_bid->keyBy('norujukan') as $index90 => $item) + { + foreach($item->simulasiBidMarhun as $index55 => $lel_bid_marhun_collect) + { + $item->simulasiBidMarhun[$index55]['norujukan'] = $index90; + } + $list_simulasi_bid_marhun = $list_simulasi_bid_marhun->concat($item->simulasiBidMarhun); + } + + $cases_update_harga = ''; + $cases_update_n_marhun = ''; + $cases_update_hargaasas = ''; + + foreach($list_simulasi_bid_marhun as $index => $marhun) + { + if ($new_sim_karat[$marhun->karat]) + { + + $harga_to_be_inserted = $new_sim_karat[$marhun->karat]->harga2; + $n_marhun_to_be_inserted = $marhun->berat * $new_sim_karat[$marhun->karat]->harga2; + $harga_asas_to_be_inserted = round($marhun->berat * $new_sim_karat[$marhun->karat]->harga2); + + $list_simulasi_bid_marhun[$index]['new_n_marhun'] = $n_marhun_to_be_inserted; + $list_simulasi_bid_marhun[$index]['new_hargaasas'] = $harga_asas_to_be_inserted; + + $cases_update_harga .= sprintf(' WHEN id = %d THEN %s ', $marhun->id, $harga_to_be_inserted); + $cases_update_n_marhun .= sprintf(' WHEN id = %d THEN %s ', $marhun->id, $n_marhun_to_be_inserted); + $cases_update_hargaasas .= sprintf(' WHEN id = %d THEN %s ', $marhun->id, $harga_asas_to_be_inserted); + } + + } + $build_query_update_harga = sprintf("CASE %s END", $cases_update_harga); + $build_query_update_n_marhun = sprintf("CASE %s END", $cases_update_n_marhun); + $build_query_update_hargaasas = sprintf("CASE %s END", $cases_update_hargaasas); + + SimulasiBidMarhun::query() + ->update([ + 'harga' => DB::raw($build_query_update_harga), + 'n_marhun' => DB::raw($build_query_update_n_marhun), + 'hargaasas' => DB::raw($build_query_update_hargaasas) + ]); + + /** -------------UPDATE SIMULASI BID------------- */ + $list_simulasi_bid_marhun_updated = $list_simulasi_bid_marhun->groupBy('simulasibid_id'); + $collection_simulasi_bid_marhun_updated = collect(); + + foreach($list_simulasi_bid_marhun_updated as $index2 => $simulasi_bid_updated) + { + $array_to_be_inserted = []; + $array_to_be_inserted['id'] = $index2; + $array_to_be_inserted['norujukan'] = $simulasi_bid_updated[0]->norujukan; + $array_to_be_inserted['total_n_marhun'] = $simulasi_bid_updated->sum('new_n_marhun'); + $array_to_be_inserted['total_hargaasas'] = $simulasi_bid_updated->sum('new_hargaasas'); + $collection_simulasi_bid_marhun_updated = $collection_simulasi_bid_marhun_updated->push($array_to_be_inserted); + } + + // $cases_update_n_marhuns_simulasi_bid = ''; + $cases_update_hargaasas_simulasi_bid = ''; + $log_user_array = []; + + foreach($collection_simulasi_bid_marhun_updated as $collection_simulasi_bid) + { + $log_user_array_to_be_inserted = [ + "user_id" => $user->id, + "date" => $currentNow->toDateTimeString(), + "username" => $user->username, + "nama_user" => $user->name, + "norujukan" => $collection_simulasi_bid['norujukan'], + "nota" => "Simulasi, Kemaskini Harga Asas RM" . $collection_simulasi_bid['total_hargaasas'], + 'created_at' => $currentNow, + 'updated_at' => $currentNow, + ]; + array_push($log_user_array, $log_user_array_to_be_inserted); + // $cases_update_n_marhuns_simulasi_bid .= sprintf(' WHEN id = %d THEN %s ', $collection_simulasi_bid['id'], $collection_simulasi_bid['total_n_marhun']); + $cases_update_hargaasas_simulasi_bid .= sprintf(' WHEN id = %d THEN %s ', $collection_simulasi_bid['id'], $collection_simulasi_bid['total_hargaasas']); + } + + // $build_query_update_nmarhuns_simulasi_bid = sprintf("CASE %s END", $cases_update_n_marhuns_simulasi_bid); + $build_query_update_hargaasas_simulasi_bid = sprintf("CASE %s END", $cases_update_hargaasas_simulasi_bid); + + SimulasiBid::query()->where('simulasi_id', $request->idsimulasi) + ->update([ + // 'nmarhuns' => DB::raw($build_query_update_nmarhuns_simulasi_bid), + 'hargaasas' => DB::raw($build_query_update_hargaasas_simulasi_bid), + ]); + + LogUser::insert($log_user_array); + + return redirect()->route('analisa.show',$request->idsimulasi)->with('success','Kemaskini Harga Emas Berjaya'); + } + // PDF SIMULASI KESELURUHAN SEMUA CAWANGAN public function export(Request $request) diff --git a/routes/web.php b/routes/web.php index 2e10330d..846ce572 100644 --- a/routes/web.php +++ b/routes/web.php @@ -78,7 +78,7 @@ Route::group(['middleware' => ['permission:pengguna'],'prefix'=>'pengguna'], fun Route::group(['middleware' => ['permission:analisa'],'prefix'=>'analisa'], function () { Route::get('/janasimulasi',['as'=>'analisa.janasimulasi','uses'=>'SimulasiController@index']); - Route::post('/kemaskini',['as'=>'analisa.kemaskiniharga','uses'=>'SimulasiController@kemaskini']); + Route::post('/kemaskini',['as'=>'analisa.kemaskiniharga','uses'=>'SimulasiController@kemaskini2']); Route::post('/janadata',['as'=>'analisa.janadata','uses'=>'SimulasiController@janadata']); Route::post('/janadata2',['as'=>'analisa.janadata2','uses'=>'SimulasiController@janadata2']); Route::get('/pendingdaftarsimulasi',['as'=>'analisa.pendingdaftarsimulasi','uses'=>'SimulasiController@pendingDaftarSimulasi']);