Logic fixed
This commit is contained in:
@@ -39,7 +39,7 @@ let formData = {
|
||||
const response = await fetch('/api/unit-personnel');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
personnel = data.goodsManagers || [];
|
||||
personnel = data.unitPersonnel || [];
|
||||
} else {
|
||||
error = 'Personel bilgileri yüklenemedi.';
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
let units = [];
|
||||
let personnel = [];
|
||||
let goodsManagers = [];
|
||||
let filteredGoodsManagers = [];
|
||||
let formError = "";
|
||||
let formSuccess = "";
|
||||
let isSubmitting = false;
|
||||
@@ -181,10 +182,8 @@
|
||||
if (goodsManagersRes.ok) {
|
||||
const goodsData = await goodsManagersRes.json();
|
||||
goodsManagers =
|
||||
goodsData.goodsManagers?.filter((gm) => gm.is_active) || [];
|
||||
if (!formData.goods_manager_id && goodsManagers.length) {
|
||||
formData.goods_manager_id = goodsManagers[0].id;
|
||||
}
|
||||
goodsData.unitPersonnel?.filter((gm) => gm.is_active) || [];
|
||||
syncGoodsManagerSelection();
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("Yakıt verileri yüklenemedi:", err);
|
||||
@@ -204,9 +203,40 @@
|
||||
liters: "",
|
||||
km: "",
|
||||
personnel_id: "",
|
||||
goods_manager_id: goodsManagers[0]?.id || "",
|
||||
goods_manager_id: "",
|
||||
notes: ""
|
||||
};
|
||||
syncGoodsManagerSelection("");
|
||||
}
|
||||
|
||||
function getGoodsManagersByUnit(unitId) {
|
||||
if (!unitId) return [];
|
||||
const normalized = parseInt(unitId);
|
||||
return goodsManagers.filter((manager) => manager.unit_id === normalized);
|
||||
}
|
||||
|
||||
function syncGoodsManagerSelection(unitId = formData.unit_id) {
|
||||
const candidates = getGoodsManagersByUnit(unitId);
|
||||
filteredGoodsManagers = candidates;
|
||||
|
||||
if (!unitId || candidates.length === 0) {
|
||||
formData.goods_manager_id = "";
|
||||
return;
|
||||
}
|
||||
|
||||
const hasCurrent = candidates.some(
|
||||
(manager) =>
|
||||
manager.id.toString() === (formData.goods_manager_id ?? "").toString()
|
||||
);
|
||||
|
||||
if (!hasCurrent) {
|
||||
formData.goods_manager_id = candidates[0].id.toString();
|
||||
}
|
||||
}
|
||||
|
||||
function handleUnitChange(event) {
|
||||
formData.unit_id = event.target.value;
|
||||
syncGoodsManagerSelection(formData.unit_id);
|
||||
}
|
||||
|
||||
async function handleCreateSlip() {
|
||||
@@ -1164,11 +1194,12 @@
|
||||
id="unit_id"
|
||||
class="form-select"
|
||||
bind:value={formData.unit_id}
|
||||
on:change={handleUnitChange}
|
||||
required
|
||||
>
|
||||
<option value="">Birlik Seçin</option>
|
||||
{#each units as unit}
|
||||
<option value={unit.id}>{unit.name}</option>
|
||||
<option value={unit.id.toString()}>{unit.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
@@ -1248,14 +1279,26 @@
|
||||
id="goods_manager_id"
|
||||
class="form-select"
|
||||
bind:value={formData.goods_manager_id}
|
||||
disabled={
|
||||
!formData.unit_id ||
|
||||
filteredGoodsManagers.length === 0
|
||||
}
|
||||
required
|
||||
>
|
||||
<option value="">Mal Sorumlusu Seçin</option>
|
||||
{#each goodsManagers as manager}
|
||||
<option value={manager.id}
|
||||
>{manager.rank} {manager.full_name}</option
|
||||
>
|
||||
{/each}
|
||||
{#if !formData.unit_id}
|
||||
<option value="">Önce birlik seçin</option>
|
||||
{:else if filteredGoodsManagers.length === 0}
|
||||
<option value="">
|
||||
Bu birliğe atanmış personel yok
|
||||
</option>
|
||||
{:else}
|
||||
<option value="">Mal Sorumlusu Seçin</option>
|
||||
{#each filteredGoodsManagers as manager}
|
||||
<option value={manager.id.toString()}>
|
||||
{manager.rank} {manager.full_name}
|
||||
</option>
|
||||
{/each}
|
||||
{/if}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group full-width">
|
||||
|
||||
@@ -47,7 +47,7 @@ async function loadGoodsManagers() {
|
||||
const response = await fetch('/api/unit-personnel');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
personnel = data.goodsManagers || [];
|
||||
personnel = data.unitPersonnel || [];
|
||||
} else {
|
||||
error = 'Personel bilgileri yüklenemedi.';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user