Mountify Помощ
EN → mountify.eu
Разписание и работно време

Как се изчислява доступността

Защо се появява или липсва свободен час — работно време, ресурси и времетраене заедно.

9 мин четене Обновено 2026-07-26

Свободен час никъде не се въвежда на ръка. Той се пресмята наново при всяко отваряне на публичната страница — от работното време, ресурсите, вече направените записвания и времетраенето на конкретната услуга. Затова един и същ час може да е свободен за „Подстригване“ и зает за „Боядисване“: второто е по-дълго.

Тази статия описва изчислението слой по слой, в реда, в който системата го прави. Ако търсиш готова процедура за диагностика, отиди направо на Разберете защо услугата не показва свободни часове — там таблото само ти казва причината.


1. Кратката версия

Слот се показва само когато всичко долу е вярно едновременно:

  1. Услугата съществува, не е архивирана и се предлага в избрания филиал.
  2. Денят не е затворен от празник или затваряне.
  3. Има поне толкова свободни ресурса от всеки задължителен вид, колкото услугата иска.
  4. Тези ресурси работят този ден, в този филиал, и не са в отпуск.
  5. Целият престой (началото плюс времетраенето) се събира в работния им прозорец.
  6. Престоят не пресича почивка.
  7. Престоят не се застъпва с друго записване или занятие.
  8. Часът не е в миналото.

Липсва ли едно от осемте — слотът просто го няма. Няма съобщение „защо“ на публичната страница; там просто пише Няма свободни часове за този ден.


2. Слой 1: услугата и филиалът

Първо се решава за кой филиал питаме.

  • Ако таблото има един филиал, той се подразбира.
  • При няколко филиала изборът идва от клиента (или от филтъра в админа).
  • Ако услугата е ограничена до определени филиали (секция Локации в редактора на услугата), а избраният не е сред тях — веднага нула слотове.
  • Празен списък локации при услугата значи „във всички активни филиали“, а не „в нито един“.

Изключените филиали (например при сваляне на плана) не участват изобщо.


3. Слой 2: затворено ли е изобщо

Преди да се погледне какъвто и да е ресурс, се проверява дали денят е затворен за целия бизнес:

ИзточникЕфект
Дата в списъка със затворени дати на таблотоНула слотове
Затваряне с обхват Всички локации и режим Затворено цял денНула слотове
Затваряне с обхват Всички локации и режим Намалено времеПрозорецът се стеснява до зададения
Затваряне, насочено само към един филиалПроверява се по-късно, при конкретния филиал

Официалните български празници не влизат тук. Те са само маркер в календара и не затварят нищо — виж Почивни дни и празници.


4. Слой 3: кои ресурси изобщо са кандидати

Всяка услуга има списък изисквания: „1 майстор“, „1 стол“, „2 корта“. За всяко задължително изискване се събира списък с кандидати. Ресурс отпада, ако:

  • Не е от правилния вид.
  • Не отговаря на позволения списък. Ако в изискването са изброени конкретни ресурси, важат само те.
  • Не е специализиран за услугата. Ако няма изричен списък, но ресурсът има зададени специалности, услугата трябва да е сред тях. Ресурс без специалности се приема за „всичко“. Виж Кои услуги може да изпълнява ресурсът.
  • Е в отсъствие на тази дата. Отсъствието бие всичко останало — дори специален ден.
  • Не работи в този филиал този ден. За хората филиалът се определя от чипа за локация в дневния график или от специален ден; за стаите и оборудването — от домашната им локация.
  • Е скрит от клиентите или изключен — но само когато питането идва от публичната страница. Повече в раздел 9.

Ако някой задължителен вид остане без нито един кандидат, целият ден е празен за тази услуга.

Незадължителните изисквания и видовете, които клиентът носи сам, не се проверяват — те не пораждат слотове и не ги отнемат.


5. Слой 4: работният прозорец на всеки кандидат

За всеки кандидат поотделно се пресмята прозорецът му за деня:

  1. Ако човекът има специален ден със собствени часове за тази дата — те печелят.
  2. Иначе се питат трите нива по ред: ресурс → локация → табло.
    • Изрично затворено на кое да е ниво → ресурсът не работи този ден. Край.
    • Първото ниво, което казва отворено, дава и началото, и края. По-долните нива не могат да ги стеснят.
    • Нивата, които мълчат, се прескачат.
    • Ако мълчат всички три — пада се на стария плосък прозорец, записан на самия ресурс.
  3. Почивките се събират от всички нива, казали „отворено“, и се отрязват до печелившия прозорец.
  4. Накрая прозорецът се пресича с евентуално намалено време от затваряне, насочено към този филиал. Ако сечението е празно — ресурсът е извън игра за деня.

Подробности за нивата: Работно време на таблото и Часове по локация.


6. Слой 5: какво вече е заето

Заетостта се събира по конкретен ресурс, не по услуга:

  • Записвания със статус, който държи ресурса.
  • Записвания от съседни дни, които преливат в този (нощна смяна, наем за няколко дни) — те се отрязват до границите на деня.
  • Насрочени групови занятия — те държат майстора, залата и оборудването си за цялата си дължина.
  • Конкретни допълнения — ако към запис е закачен втори човек или уред поименно, той също е зает.

Кои статуси държат ресурса:

СтатусДържи ли слота
Чака потвърждениеДа
ПотвърденДа
ДошълДа
ПриключенДа
Без записване (walk-in)Да
ОтмененНе — часът се освобождава веднага
Не се явиНе — часът се освобождава

Затова отмяната връща часа в продажба веднага, а отбелязването „не се яви“ на минал час също освобождава ресурса.


7. Слой 6: решетката от 15 минути

Чак сега се редят самите часове.

  • Стъпката е 15 минути. Слотове се пробват от началото на най-ранния прозорец нататък: 09:00, 09:15, 09:30 …
  • Слотът важи само ако цялата услуга се събира: началото плюс времетраенето трябва да свърши преди края на прозореца. Услуга от 90 минути в прозорец до 18:00 има последен слот в 16:30.
  • Слот, който пресича почивка дори с минута, отпада.
  • За всеки задължителен вид се брои колко свободни единици остават в този интервал. Ако някой вид не стига — слотът отпада.
  • Слотовете в миналото се изхвърлят: в 15:30 днешният ден вече не показва 09:00.
  • В нощта на смяната на часа несъществуващият час не се предлага.

Пример: филиал 09:00–18:00, обедна почивка 13:00–14:00, един майстор, услуга 60 минути, вече има запис 11:00–12:00.

ЧасРезултат
09:00, 09:15, 09:30, 09:45, 10:00Свободен
10:15 – 11:45Зает (застъпва записа 11:00–12:00)
12:00Свободен
12:15 – 13:45Отпада (застъпва почивката)
14:00 – 17:00Свободен
17:15 и нататъкОтпада (не се събира до 18:00)

8. Броенето: количества и капацитет

Услугата може да иска повече от една единица от даден вид. Правилата:

  • Фиксирано количество — например „2 корта“ винаги.
  • Избор на клиента — клиентът задава число между минимум и максимум.
  • По участник — например един треньор на всеки 5 души; при 12 записани трябват 3.

Ресурс с наличен брой (типично оборудването) се брои за толкова единици, колкото е бройката му. Един ред „Шкаф за сушене · брой 4“ дава четири паралелни места, не четири отделни карти. Виж Наличен брой и паралелен капацитет.

Свободните единици от даден вид се събират през всички кандидати. Ако услугата иска 1 майстор, а имаш трима, слотът оцелява, докато поне един е свободен.


9. Публично око и админско око

Това е най-важната асиметрия в целия продукт.

ПитаСкрити от клиентите ресурсиИзключени ресурси
Публичната страницаПропускат сеПропускат се
Админът (панелът за нов запис, търсенето на най-скорошен час)Броят сеБроят се

Затова е напълно възможно ти да виждаш свободни часове, а клиентът — не. Ако единственият ти майстор е изключен от Скрий от публичния сайт или е над лимита за резервируеми места по плана, публичната наличност е празна, а твоята — не.

Диагностиката за този случай: Разберете защо услугата не показва свободни часове.


10. Кога промяната стига до клиента

Изчислението е живо, но има кратък кеш:

  • Част от данните за таблото (локации, видове, ресурси, затваряния) се пазят до 60 секунди.
  • Публичният календар с натовареността по дни се кешира допълнително за около 30 секунди.
  • Записванията и отсъствията се четат винаги наживо.

На практика: след промяна в часовете изчакай около минута и презареди публичната страница, преди да решиш, че нещо е счупено.


11. Какво изчислението НЕ прави

  • Не оставя буфер между клиентите. Няма настройка „10 минути за почистване“. Ако ти трябва — заложи ги във времетраенето на услугата.
  • Не спазва минимално предизвестие. Няма правило „не по-рано от 2 часа“. Ако сега е 14:05, слотът в 14:15 е предложим.
  • Не ограничава колко напред се записва. Публичният календар зарежда по месеци; търсенето на най-ранен свободен час гледа 30 дни напред по подразбиране и максимум 60.
  • Не праща имейл на никого. Изчислението показва часове; писмата са отделна тема.
  • Не спира администратора. Ти можеш да запишеш клиент извън часовете, в почивка или в затворен ден — с предупреждение, но записът се създава.
  • Не публикува страницата. Ако превключвателят Онлайн записване е изключен, клиентите нямат достъп до нищо, колкото и часове да има.

12. Групови занятия и наеми се смятат другояче

  • Групово занятие не се пресмята от решетката. То е насрочена сесия с брой места; клиентът се записва за нея. Проверката е „има ли предстояща сесия със свободно място“. Виж Групови занятия.
  • Наемът върви по дневен календар или по мрежа корт × час със собствена стъпка, зададена от самия наем. Виж Наеми.

Работното време, затварянията и отсъствията важат и за двете.


Отстраняване на проблеми

СимптомПричинаКакво да направиш
Никакви часове за нито един денНяма нито един кандидат от задължителен видПровери, че има активен ресурс от този вид
Часове има, но не в желания часЗаето, почивка или услугата не се събира до затварянетоВиж таблицата в раздел 7
В админа има часове, при клиента нямаРесурсът е скрит или изключенРаздел 9
Един майстор няма часове, другите иматОтсъствие, различни лични часове или липсваща специалност за услугатаГрафик на екипа и специалностите на ресурса
Един филиал няма часовеУслугата не се предлага там или никой не е зачисленСекцията Локации на услугата
Дълга услуга няма следобедни часовеНе се събира преди затварянетоУдължи деня или скъси услугата
Отмених запис, а часът не се върнаКешът още не е изтекълИзчакай до минута и презареди
Часът е свободен, но записът гърми при потвърждениеНякой е взел слота в същата минутаИзбери друг час

Какво следва