Yakıt Personeli ekranı fixed

This commit is contained in:
2025-11-08 02:08:56 +03:00
parent f271e9871f
commit aa665dd6d1

View File

@@ -113,6 +113,32 @@ let vehicles = [
let nextVehicleId = 4; let nextVehicleId = 4;
// Fuel Personnel veritabanı
let fuelPersonnel = [
{
id: 1,
full_name: 'Ahmet Demir',
rank: 'Üsteğmen',
registration_number: '111222',
tc_kimlik: '11111111111',
phone: '05321112233',
is_active: true,
created_at: new Date().toISOString()
},
{
id: 2,
full_name: 'Mustafa Çelik',
rank: 'Astsubay',
registration_number: '333444',
tc_kimlik: '22222222222',
phone: '05334455566',
is_active: true,
created_at: new Date().toISOString()
}
];
let nextFuelPersonnelId = 3;
const app = express(); const app = express();
const server = createServer(app); const server = createServer(app);
const io = new Server(server, { const io = new Server(server, {
@@ -657,31 +683,171 @@ app.delete('/api/goods-managers', async (req, res) => {
// GET - Tüm yakıt personelini listele // GET - Tüm yakıt personelini listele
app.get('/api/fuel-personnel', (req, res) => { app.get('/api/fuel-personnel', (req, res) => {
// Yetki kontrolü (temporary - will be implemented with proper session) // Yetki kontrolü (temporary - will be implemented with proper session)
const fuelPersonnel = [
{
id: 1,
full_name: 'Ahmet Demir',
rank: 'Üsteğmen',
registration_number: '111222',
tc_kimlik: '11111111111',
phone: '05321112233',
is_active: true,
created_at: new Date().toISOString()
},
{
id: 2,
full_name: 'Mustafa Çelik',
rank: 'Astsubay',
registration_number: '333444',
tc_kimlik: '22222222222',
phone: '05334455566',
is_active: true,
created_at: new Date().toISOString()
}
];
res.json({ fuelPersonnel }); res.json({ fuelPersonnel });
}); });
// POST - Yeni yakıt personeli ekle
app.post('/api/fuel-personnel', (req, res) => {
// Yetki kontrolü (temporary - will be implemented with proper session)
try {
const {
full_name,
rank,
registration_number,
tc_kimlik,
phone,
is_active = true
} = req.body;
// Validasyon
if (!full_name || !rank || !registration_number || !tc_kimlik || !phone) {
return res.status(400).json({ message: 'Tüm alanlar zorunludur.' });
}
// TC Kimlik numarası validasyonu
if (!/^[0-9]{11}$/.test(tc_kimlik)) {
return res.status(400).json({ message: 'TC Kimlik numarası 11 haneli olmalıdır.' });
}
// Sicil numarası tekrar kontrolü
const existingPersonnel = fuelPersonnel.find(p =>
p.registration_number === registration_number
);
if (existingPersonnel) {
return res.status(400).json({ message: 'Bu sicil numarası zaten kayıtlı.' });
}
// TC Kimlik numarası tekrar kontrolü
const existingTc = fuelPersonnel.find(p =>
p.tc_kimlik === tc_kimlik
);
if (existingTc) {
return res.status(400).json({ message: 'Bu TC Kimlik numarası zaten kayıtlı.' });
}
// Yeni personel oluştur
const newPersonnel = {
id: nextFuelPersonnelId++,
full_name: full_name.trim(),
rank: rank.trim(),
registration_number: registration_number.trim(),
tc_kimlik: tc_kimlik.trim(),
phone: phone.trim(),
is_active: Boolean(is_active),
created_at: new Date().toISOString()
};
fuelPersonnel.push(newPersonnel);
res.json({
message: 'Personel başarıyla eklendi.',
fuelPersonnel: newPersonnel
});
} catch (error) {
res.status(500).json({ message: 'Sunucu hatası.' });
}
});
// PUT - Yakıt personeli güncelle
app.put('/api/fuel-personnel', (req, res) => {
// Yetki kontrolü (temporary - will be implemented with proper session)
try {
const {
id,
full_name,
rank,
registration_number,
tc_kimlik,
phone,
is_active
} = req.body;
// Validasyon
if (!id || !full_name || !rank || !registration_number || !tc_kimlik || !phone) {
return res.status(400).json({ message: 'Tüm alanlar zorunludur.' });
}
// TC Kimlik numarası validasyonu
if (!/^[0-9]{11}$/.test(tc_kimlik)) {
return res.status(400).json({ message: 'TC Kimlik numarası 11 haneli olmalıdır.' });
}
// Personel bul
const personnelIndex = fuelPersonnel.findIndex(p => p.id === parseInt(id));
if (personnelIndex === -1) {
return res.status(404).json({ message: 'Personel bulunamadı.' });
}
// Sicil numarası tekrar kontrolü (başka personel için)
const existingRegNumber = fuelPersonnel.find(p =>
p.id !== parseInt(id) && p.registration_number === registration_number
);
if (existingRegNumber) {
return res.status(400).json({ message: 'Bu sicil numarası başka bir personelde kayıtlı.' });
}
// TC Kimlik numarası tekrar kontrolü (başka personel için)
const existingTc = fuelPersonnel.find(p =>
p.id !== parseInt(id) && p.tc_kimlik === tc_kimlik
);
if (existingTc) {
return res.status(400).json({ message: 'Bu TC Kimlik numarası başka bir personelde kayıtlı.' });
}
// Personeli güncelle
fuelPersonnel[personnelIndex] = {
...fuelPersonnel[personnelIndex],
full_name: full_name.trim(),
rank: rank.trim(),
registration_number: registration_number.trim(),
tc_kimlik: tc_kimlik.trim(),
phone: phone.trim(),
is_active: Boolean(is_active)
};
res.json({
message: 'Personel başarıyla güncellendi.',
fuelPersonnel: fuelPersonnel[personnelIndex]
});
} catch (error) {
res.status(500).json({ message: 'Sunucu hatası.' });
}
});
// DELETE - Yakıt personeli sil
app.delete('/api/fuel-personnel', (req, res) => {
// Yetki kontrolü (temporary - will be implemented with proper session)
try {
const { id } = req.body;
if (!id) {
return res.status(400).json({ message: 'Personel ID zorunludur.' });
}
// Personel bul
const personnelIndex = fuelPersonnel.findIndex(p => p.id === parseInt(id));
if (personnelIndex === -1) {
return res.status(404).json({ message: 'Personel bulunamadı.' });
}
// Personel sil
const deletedPersonnel = fuelPersonnel.splice(personnelIndex, 1)[0];
res.json({
message: 'Personel başarıyla silindi.',
fuelPersonnel: deletedPersonnel
});
} catch (error) {
res.status(500).json({ message: 'Sunucu hatası.' });
}
});
// Fuel Slips API endpoint'leri // Fuel Slips API endpoint'leri
// GET - Yakıt fişlerini listele // GET - Yakıt fişlerini listele