From 495e6ae1a2e6f3e66e491c7c845035cba9d4e565 Mon Sep 17 00:00:00 2001 From: sbilketay Date: Sat, 8 Nov 2025 14:34:55 +0300 Subject: [PATCH] =?UTF-8?q?Mal=20Sorumlusu=20kaydetme=20mant=C4=B1=C4=9F?= =?UTF-8?q?=C4=B1=20de=C4=9Fi=C5=9Fti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/GoodsManagersContent.svelte | 222 +++++--------- src/lib/components/PersonnelContent.svelte | 199 ++++++++----- src/lib/components/UnitsContent.svelte | 202 ++++++++----- src/routes/dashboard/+page.svelte | 44 +-- .../dashboard/goods-managers/+page.svelte | 279 +++++++----------- src/routes/dashboard/personnel/+page.svelte | 56 +++- src/routes/dashboard/units/+page.svelte | 80 ++++- src/server.js | 141 +++++++-- 8 files changed, 690 insertions(+), 533 deletions(-) diff --git a/src/lib/components/GoodsManagersContent.svelte b/src/lib/components/GoodsManagersContent.svelte index 2bdc8e0..c1e33a4 100644 --- a/src/lib/components/GoodsManagersContent.svelte +++ b/src/lib/components/GoodsManagersContent.svelte @@ -1,14 +1,14 @@ @@ -282,7 +261,7 @@

Yükleniyor...

- {:else if goodsManagers.length === 0} + {:else if personnel.length === 0}
@@ -297,14 +276,14 @@
{:else}
- {#each goodsManagers as manager (manager.id)} -
+ {#each personnel as person (person.id)} +
-

{manager.rank} {manager.full_name}

+

{person.rank} {person.full_name}

- - {@html manager.is_active ? ' Aktif' : ' Pasif'} + + {@html person.is_active ? ' Aktif' : ' Pasif'}
@@ -317,7 +296,7 @@
Sicil No: - {manager.registration_number} + {person.registration_number}
@@ -326,7 +305,7 @@
TC Kimlik: - {manager.tc_kimlik} + {person.tc_kimlik}
@@ -335,7 +314,7 @@
Birlik: - {manager.unit_name || 'Belirtilmemiş'} + {getUnitName(person.unit_id)}
@@ -344,33 +323,24 @@
İrtibat: - {manager.phone} -
-
-
-
- -
-
- Kullanıcı Adı: - {manager.username || 'Belirlenmemiş'} + {person.phone}
- - -
- + {#if showAddModal} {/if} @@ -445,22 +476,36 @@ required /> -
- - -
-
-
+
+ + +
+
+
-
-

Birlik Sorumlusu

+
+

Mal Sorumlusu

@@ -408,19 +420,43 @@ />
-
- - -
-
+
+ + +
+
+
+ + +
+
+ + +
+
+
-
-

Birlik Sorumlusu

+
+

Mal Sorumlusu

@@ -540,19 +576,43 @@ />
-
- - -
-
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ diff --git a/src/routes/dashboard/goods-managers/+page.svelte b/src/routes/dashboard/goods-managers/+page.svelte index 52c0011..f10c66a 100644 --- a/src/routes/dashboard/goods-managers/+page.svelte +++ b/src/routes/dashboard/goods-managers/+page.svelte @@ -11,7 +11,7 @@ import { goto } from '$app/navigation'; let user = null; - let goodsManagers = []; +let personnel = []; let units = []; let loading = true; let error = ''; @@ -19,18 +19,16 @@ let showEditModal = false; let selectedManager = null; - // Form değişkenleri - let formData = { - full_name: '', - rank: '', - registration_number: '', - tc_kimlik: '', - phone: '', - unit_id: '', - username: '', - password: '', - is_active: true - }; +// Form değişkenleri +let formData = { + full_name: '', + rank: '', + registration_number: '', + tc_kimlik: '', + phone: '', + unit_id: '', + is_active: true +}; onMount(async () => { const userData = localStorage.getItem('user'); @@ -39,75 +37,76 @@ return; } - user = JSON.parse(userData); - await loadGoodsManagers(); - await loadUnits(); + user = JSON.parse(userData); + await loadUnits(); + await loadGoodsManagers(); }); - async function loadGoodsManagers() { - try { - const response = await fetch('/api/goods-managers'); - if (response.ok) { - const data = await response.json(); - goodsManagers = data.goodsManagers; - } else { - error = 'Personel bilgileri yüklenemedi.'; - } - } catch (err) { - error = 'Bağlantı hatası.'; - console.error('Load goods managers error:', err); - } finally { - loading = false; +async function loadGoodsManagers() { + try { + const response = await fetch('/api/fuel-personnel'); + if (response.ok) { + const data = await response.json(); + personnel = data.fuelPersonnel || []; + } else { + error = 'Personel bilgileri yüklenemedi.'; } + } catch (err) { + error = 'Bağlantı hatası.'; + console.error('Load personnel error:', err); + } finally { + loading = false; } +} - async function loadUnits() { - try { - const response = await fetch('/api/units'); - if (response.ok) { - const data = await response.json(); - units = data.units || []; - } - } catch (err) { - console.error('Load units error:', err); +async function loadUnits() { + try { + const response = await fetch('/api/units'); + if (response.ok) { + const data = await response.json(); + units = data.units || []; } + } catch (err) { + console.error('Load units error:', err); } +} - function resetForm() { - formData = { - full_name: '', - rank: '', - registration_number: '', - tc_kimlik: '', - phone: '', - unit_id: '', - username: '', - password: '', - is_active: true - }; - selectedManager = null; - } +function getUnitName(unitId) { + const id = parseInt(unitId); + return units.find((unit) => unit.id === id)?.name || 'Belirtilmemiş'; +} + +function resetForm() { + formData = { + full_name: '', + rank: '', + registration_number: '', + tc_kimlik: '', + phone: '', + unit_id: '', + is_active: true + }; + selectedManager = null; +} function openAddModal() { resetForm(); showAddModal = true; } - function openEditModal(manager) { - selectedManager = manager; - formData = { - full_name: manager.full_name, - rank: manager.rank, - registration_number: manager.registration_number, - tc_kimlik: manager.tc_kimlik, - phone: manager.phone, - email: manager.email, - username: manager.username || '', - password: '', // Şifre gösterilmez, değiştirilmek istenirse girilir - is_active: manager.is_active - }; - showEditModal = true; - } +function openEditModal(manager) { + selectedManager = manager; + formData = { + full_name: manager.full_name, + rank: manager.rank, + registration_number: manager.registration_number, + tc_kimlik: manager.tc_kimlik, + phone: manager.phone, + unit_id: manager.unit_id || '', + is_active: manager.is_active + }; + showEditModal = true; +} function closeModal() { showAddModal = false; @@ -115,32 +114,22 @@ resetForm(); } - async function handleAddManager() { - if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id || !formData.username || !formData.password) { - error = 'Tüm alanlar zorunludur.'; - return; - } +async function handleAddManager() { + if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id) { + error = 'Tüm alanlar zorunludur.'; + return; + } if (!/^[0-9]{11}$/.test(formData.tc_kimlik)) { error = 'TC Kimlik numarası 11 haneli olmalıdır.'; return; } - if (!/^[a-zA-Z0-9]{3,20}$/.test(formData.username)) { - error = 'Kullanıcı adı 3-20 karakter arası olmalı ve sadece harf ve rakam içermelidir.'; - return; - } - - if (formData.password.length < 6) { - error = 'Şifre en az 6 karakter olmalıdır.'; - return; - } - - try { - const response = await fetch('/api/goods-managers', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', + try { + const response = await fetch('/api/fuel-personnel', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', }, body: JSON.stringify(formData), }); @@ -160,36 +149,26 @@ } } - async function handleUpdateManager() { - if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id || !formData.username) { - error = 'Kullanıcı adı hariç tüm alanlar zorunludur.'; - return; - } +async function handleUpdateManager() { + if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id) { + error = 'Tüm alanlar zorunludur.'; + return; + } if (!/^[0-9]{11}$/.test(formData.tc_kimlik)) { error = 'TC Kimlik numarası 11 haneli olmalıdır.'; return; } - if (!/^[a-zA-Z0-9]{3,20}$/.test(formData.username)) { - error = 'Kullanıcı adı 3-20 karakter arası olmalı ve sadece harf ve rakam içermelidir.'; - return; - } - - if (formData.password && formData.password.trim().length > 0 && formData.password.length < 6) { - error = 'Şifre en az 6 karakter olmalıdır.'; - return; - } - - try { - const response = await fetch('/api/goods-managers', { - method: 'PUT', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - id: selectedManager.id, - ...formData + try { + const response = await fetch('/api/fuel-personnel', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + id: selectedManager.id, + ...formData }), }); @@ -214,7 +193,7 @@ } try { - const response = await fetch('/api/goods-managers', { + const response = await fetch('/api/fuel-personnel', { method: 'DELETE', headers: { 'Content-Type': 'application/json', @@ -238,7 +217,7 @@ async function toggleManagerStatus(manager) { try { - const response = await fetch('/api/goods-managers', { + const response = await fetch('/api/fuel-personnel', { method: 'PUT', headers: { 'Content-Type': 'application/json', @@ -301,7 +280,7 @@

Yükleniyor...

- {:else if goodsManagers.length === 0} + {:else if personnel.length === 0}
@@ -316,7 +295,7 @@
{:else}
- {#each goodsManagers as manager (manager.id)} + {#each personnel as manager (manager.id)}
@@ -338,18 +317,14 @@ 🆔 TC Kimlik: {manager.tc_kimlik}
-
- 🏢 Birlik: - {manager.unit_name || 'Belirtilmemiş'} -
+
+ 🏢 Birlik: + {getUnitName(manager.unit_id)} +
📱 İrtibat: {manager.phone}
-
- 👤 Kullanıcı Adı: - {manager.username || 'Belirlenmemiş'} -
@@ -393,7 +368,7 @@ {/if}
- + {#if showAddModal}

Henüz Personel Yok

-

Sisteme yakıt personeli eklemek için "Yeni Personel Ekle" butonuna tıklayın.

+

Sisteme birlik personeli eklemek için "Yeni Personel Ekle" butonuna tıklayın.

@@ -425,6 +445,20 @@ required />
+
+ + +
+
+ + +