ЙажаСценарий / Говнокод #25100 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
export function doFilters(global, value) {
  let filterListGeo, filterListStatus
  const timeLife = global.selectedFilters.ttl // Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.
  const timeStart = global.selectedFilters.tts
  const rate = global.selectedFilters.startRate
  const shippingDate = new Date(formatDate(value.dateFrom, 'MM.DD.YYYY'))
  const unloadDate = new Date(formatDate(value.dateTo, 'MM.DD.YYYY'))
  const shippingDateFrom = new Date(global.dateFromInterval[0])
  const shippingDateTo = new Date(global.dateFromInterval[1])
  const unloadDateFrom = new Date(global.dateToInterval[0])
  const unloadDateTo = new Date(global.dateToInterval[1])

  if (global.strainer) {
    filterListGeo = global.strainer.geozoneFrom
    filterListStatus = global.strainer.status
  }

  return ((!global.selectedFilters) || (!timeLife) || (!timeLife.from && !timeLife.to) || (value.ttl >= timeLife.from && value.ttl < timeLife.to) || (!timeLife.to && value.ttl > timeLife.from)) &&
  ((!global.selectedFilters) || (!timeStart) || (!timeStart.from && !timeStart.to) || (value.ttl >= timeStart.from && value.ttl < timeStart.to) || (!timeStart.to && value.ttl > timeStart.from)) &&
  ((!global.orderId) || (!global.orderId.length || String(value.orderId).substr(0, global.orderId.length) === global.orderId)) &&
  ((!rate.from && !rate.to) || (value.startRate >= rate.from && value.startRate <= rate.to)) &&
  ((!filterListGeo) || (filterListGeo.every(item => !item.checked)) || (filterListGeo.find(item => item.name === value.geozoneFrom).checked)) &&
  ((!filterListStatus) || (filterListStatus.every(item => !item.checked)) || (filterListStatus.find(item => item.name === value.status).checked)) &&
  ((!global.dateFromInterval.length) || (shippingDate >= shippingDateFrom && shippingDate <= shippingDateTo)) &&
  ((!global.dateToInterval.length) || (unloadDate >= unloadDateFrom && unloadDate <= unloadDateTo))
}

Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.

Запостил: DKVitol DKVitol, (Updated )

Комментарии (4) RSS

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8