georgiev955

01.Car Dealers 25 June exam

Sep 17th, 2023
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.   const info = {
  3.     makeElement: document.getElementById('make'),
  4.     modelElement: document.getElementById('model'),
  5.     yearElement: document.getElementById('year'),
  6.     fuelElement: document.getElementById('fuel'),
  7.     costElement: document.getElementById('original-cost'),
  8.     sellPriceElement: document.getElementById('selling-price'),
  9.   }
  10.  
  11.   document.getElementById('publish').addEventListener('click', publish);
  12.  
  13.   function publish(e) {
  14.     e.preventDefault();
  15.  
  16.     for (const key in info) {
  17.       if (info[key].value === '') {
  18.         return;
  19.       }
  20.     }
  21.  
  22.     if (Number(info.costElement.value) >= Number(info.sellPriceElement.value)) {
  23.       return;
  24.     }
  25.  
  26.     let backUpData = {};
  27.  
  28.     for (const key in info) {
  29.       backUpData[key] = info[key].value;
  30.     }
  31.  
  32.     let rowElement = document.createElement('tr');
  33.     rowElement.className = 'row';
  34.     document.getElementById('table-body').appendChild(rowElement);
  35.     rowElement.innerHTML = `
  36.     <td>${info.makeElement.value}</td>
  37.     <td>${info.modelElement.value}</td>
  38.     <td>${info.yearElement.value}</td>
  39.     <td>${info.fuelElement.value}</td>
  40.     <td>${info.costElement.value}</td>
  41.     <td>${info.sellPriceElement.value}</td>
  42.     `;
  43.  
  44.     let buttonTd = document.createElement('td');
  45.     rowElement.appendChild(buttonTd);
  46.  
  47.     const editBtnEl = document.createElement('button');
  48.     editBtnEl.classList.add('action-btn', 'edit');
  49.     editBtnEl.textContent = 'Edit';
  50.     buttonTd.appendChild(editBtnEl);
  51.  
  52.     const sellBtnEl = document.createElement('button');
  53.     sellBtnEl.classList.add('action-btn', 'sell');
  54.     sellBtnEl.textContent = 'Sell';
  55.     buttonTd.appendChild(sellBtnEl);
  56.  
  57.     for (const key in info) {
  58.       info[key].value = '';
  59.     }
  60.  
  61.     editBtnEl.addEventListener('click', edit);
  62.  
  63.     function edit(e) {
  64.       e.preventDefault();
  65.  
  66.       document.querySelector('tr.row').remove();
  67.       for (const key in info) {
  68.         info[key].value = backUpData[key];
  69.       }
  70.     }
  71.  
  72.     sellBtnEl.addEventListener('click', sell);
  73.  
  74.     function sell(e) {
  75.       e.preventDefault();
  76.  
  77.       document.querySelector('tr.row').remove();
  78.  
  79.       let currentProfit = Number(backUpData.sellPriceElement) - Number(backUpData.costElement);
  80.       document.getElementById('cars-list').innerHTML += `
  81.       <li class="each-list">
  82.       <span>${backUpData.makeElement} ${backUpData.modelElement}</span>
  83.       <span>${backUpData.yearElement}</span>
  84.       <span>${currentProfit}</span>
  85.       </li>`
  86.  
  87.       let totalProfit = Number(document.getElementById('profit').textContent) + currentProfit;
  88.       document.getElementById('profit').textContent = totalProfit.toFixed(2);
  89.     }
  90.   }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment