Загрузить файлы в «/»
This commit is contained in:
76
main.js
Normal file
76
main.js
Normal file
@@ -0,0 +1,76 @@
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const newProjectForm = document.getElementById('new-project-form');
|
||||
const tableBody = document.querySelector('.table tbody');
|
||||
|
||||
newProjectForm.addEventListener('submit', (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
const roomNumber = document.getElementById('room-number').value;
|
||||
const roomType = document.getElementById('room-type').value;
|
||||
const rate = parseFloat(document.getElementById('rate').value);
|
||||
const guestName = document.getElementById('guest-name').value;
|
||||
const guestPhone = document.getElementById('guest-phone').value;
|
||||
const checkInDate = document.getElementById('check-in-date').value;
|
||||
const checkOutDate = document.getElementById('check-out-date').value;
|
||||
|
||||
try {
|
||||
// Input Validation (Crucial for robust code)
|
||||
if (!roomNumber || !roomType || isNaN(rate) || !guestName || !guestPhone || !checkInDate || !checkOutDate) {
|
||||
throw new Error("Пожалуйста, заполните все поля корректно.");
|
||||
}
|
||||
|
||||
const newRow = document.createElement('tr');
|
||||
|
||||
const roomNumberCell = document.createElement('td');
|
||||
roomNumberCell.textContent = roomNumber;
|
||||
|
||||
const roomTypeCell = document.createElement('td');
|
||||
roomTypeCell.textContent = roomType;
|
||||
|
||||
const rateCell = document.createElement('td');
|
||||
rateCell.textContent = rate.toFixed(2);
|
||||
|
||||
const availabilityCell = document.createElement('td');
|
||||
availabilityCell.textContent = 'Доступен';
|
||||
|
||||
const guestNameCell = document.createElement('td');
|
||||
guestNameCell.textContent = guestName;
|
||||
|
||||
const guestPhoneCell = document.createElement('td');
|
||||
guestPhoneCell.textContent = guestPhone;
|
||||
|
||||
const datesCell = document.createElement('td');
|
||||
datesCell.textContent = `${checkInDate} - ${checkOutDate}`; // Correct template literal
|
||||
|
||||
const costCell = document.createElement('td');
|
||||
const checkInDateObj = new Date(checkInDate);
|
||||
const checkOutDateObj = new Date(checkOutDate);
|
||||
const timeDiff = checkOutDateObj.getTime() - checkInDateObj.getTime();
|
||||
const numNights = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
||||
|
||||
if (isNaN(numNights) || numNights < 0) {
|
||||
throw new Error("Неверные даты. Убедитесь, что дата выезда позже даты заезда.");
|
||||
}
|
||||
|
||||
const cost = numNights * rate;
|
||||
costCell.textContent = cost.toFixed(2);
|
||||
|
||||
newRow.appendChild(roomNumberCell);
|
||||
newRow.appendChild(roomTypeCell);
|
||||
newRow.appendChild(rateCell);
|
||||
newRow.appendChild(availabilityCell);
|
||||
newRow.appendChild(guestNameCell);
|
||||
newRow.appendChild(guestPhoneCell);
|
||||
newRow.appendChild(datesCell);
|
||||
newRow.appendChild(costCell);
|
||||
|
||||
tableBody.appendChild(newRow);
|
||||
|
||||
newProjectForm.reset();
|
||||
|
||||
} catch (error) {
|
||||
console.error("Произошла ошибка:", error);
|
||||
alert("Произошла ошибка при обработке данных: " + error.message + ". Пожалуйста, проверьте введенные данные."); // Show error message to user
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user