tambah cronjob kemaskini:lelongujrah

This commit is contained in:
Nur Izzati Zulkifli
2023-11-29 11:22:53 +08:00
parent afa1f4eb48
commit 3aba20615c
5 changed files with 323 additions and 2 deletions
@@ -19,6 +19,8 @@ use App\Models\LelongTebus;
use App\Models\LogUser;
use App\Models\TransaksiKeuntungan;
use App\Models\Customer;
use App\Models\SimKarat_temp;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
@@ -909,5 +911,144 @@ class SimulasiUjrahController extends Controller
return view('simulasiujrah.listsagbycust',compact('simulasilel','cawanganDetail','marhuns','simulasi_id','cawid','ktlhbyr'));
}
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 = '';
$simulasi_bid_marhun_array = [];
foreach($list_simulasi_bid_marhun as $index => $marhun)
{
array_push($simulasi_bid_marhun_array, $marhun->id);
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()->whereIn('id', $simulasi_bid_marhun_array)
->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('analisaujrah.show',$request->idsimulasi)->with('success','Kemaskini Harga Emas Berjaya');
}
}