Update codebase to save phone number of PIC aside from saving their id

This commit is contained in:
Afiq Hamzah
2024-05-28 16:48:11 +08:00
parent b0ffdcfd82
commit aa12fe5036
2 changed files with 41 additions and 13 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ class TetapanController extends Controller
$settings = array_combine($key, $values);
$days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
$operasi_users = User::where('cawangan', 'operasi')->get(['id', 'name']);
$operasi_users = User::where('cawangan', 'operasi')->get(['id', 'name', 'no_telefon']);
return view('tetapan.unsold-commodity-notifications', compact('api_url', 'auth_user', 'settings', 'operasi_users', 'days'));
}
@@ -74,22 +74,29 @@
@php
$array = json_decode($settings['pic_' .strtolower($day)]);
@endphp
@foreach($array as $id)
@foreach($array as $pic)
<div class="ml-3 flex mb-3">
<select name="pic_{{ strtolower($day) }}[]" class="form-select w-full block px-3 py-2 mt-1 text-base leading-6 text-gray-700 bg-white border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm sm:leading-5">
<select
name="pic_{{ strtolower($day) }}[]"
class="select-staff-operasi form-select w-full block px-3 py-2 mt-1 text-base leading-6 text-gray-700 bg-white border border-gray-300 rounded-md focus:outline-none focus:ring focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm sm:leading-5"
@php
$pic_id = isset($pic->id) ? $pic->id : '';
@endphp
data-telefon-no-selected="{{ $operasi_users->where('id', $pic_id)->first()->no_telefon ?? '' }}"
>
<option value="">Select an option</option>
@foreach($operasi_users as $user)
<option value="{{ $user->id }}" {{ $user->id == $id ? 'selected' : '' }}>{{ $user->name }}</option>
<option value="{{ $user->id }}" {{ $user->id == $pic_id ? 'selected' : '' }} data-telefon-no="{{ $user->no_telefon }}">{{ $user->name }}</option>
@endforeach
</select>
@if($loop->index === 0)
<button class="add-pic-button flex items-center px-4 font-semibold text-white bg-blue-500 rounded hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 ml-3">
+
</button>
<button class="add-pic-button flex items-center px-4 font-semibold text-white bg-blue-500 rounded hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 ml-3">
+
</button>
@else
<button class="remove-pic-button flex items-center px-4 font-semibold text-white bg-red-500 rounded hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 ml-3">
-
</button>
<button class="remove-pic-button flex items-center px-4 font-semibold text-white bg-red-500 rounded hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50 ml-3">
-
</button>
@endif
</div>
@endforeach
@@ -160,7 +167,18 @@
let extractUserId = function(pic_array) {
return pic_array.reduce((accumulator, nextItem) => {
accumulator.push(nextItem.value);
let data_object = {
'id': nextItem.value,
'no_telefon': nextItem.dataset.telefonNoSelected,
};
if(data_object.id !== ''){
accumulator.push(data_object);
return accumulator;
}
return accumulator;
}, []);
};
@@ -180,8 +198,6 @@
'pic_saturday': extractUserId(pic_saturday),
};
if (status.checked) {
let checkEmpty = x => x.trim() === '';
@@ -325,4 +341,16 @@
});
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function() {
let select_staff_operasi = document.querySelectorAll('select.select-staff-operasi')
select_staff_operasi.forEach(x => {
x.addEventListener('input', function(select_element) {
const selectedOption = this.options[this.selectedIndex];
select_element.target.dataset.telefonNoSelected = selectedOption.dataset.telefonNo;
})
})
});
</script>
@endpush