HandyCafe Docs
owner

Цена на сесијата

HandyCafe користи мотор за цените базиран на сегменти за да ги пресмета трошоците за сесии во вашиот интернет кафе или играчки центар. Наместо да се применува еднократна стапка за целата сесија, моторот ја дели секоја сесија на сегменти, секој со свој контекст на цените. Овој пристап обезбедува точна фактурирање дури и кога сесиите траат повеќе временски интервали, промени во цените, паузи или прекини.

Основни концепти

Пред да се потопиме во детали, Еве ги клучните термини:

Термин Дефиниција
Базна стапка за час Цената на час пред да се применуваат било кои мултипликатори.
Ценовиот слот Има 8 слотови, секој со боја.
Умножувач Фактор применен на базовата стапка. 1.0 = стандардна цена, 0.5 = половина цена, 2.0 = двојна цена.
Сегмент Продолжен период во рамките на сесија во која контекстот на цените (слот, мултипликатор, основна цена) останува непроменет.
Распоредување Последниот пресметка кој одредува колку должи клиентот кога ќе заврши сесијата.

Базна стапка на час

Базната часовна стапка е основата на сите пресметки на цените. Таа е поставена воПоставки > Цении ја претставува стандардната цена на час на користење на PC.

Сите внатрешни пресметки користатмалите валутни единици(на пример, центи за USD, kurus за TRY). Ако вашата основна стапка е $3.00 на час, внатрешната вредност е 300.

Поддршка за двојна валута

HandyCafe поддржува основна валута и локална валута со обменен курс (FX).

  • **Базна валута.**Валутата која се користи за внатрешни пресметки на цените.
  • **Локална валута.**Валутата која се прикажува на клиентите и се користи за плаќања.
  • **Курс на FX.**Факторот на конверзија помеѓу основната и локалната валута.

Ако двете валути се исти, курсот на валутата се третира како 1.0 и нема ефект.

Цените на слотови

Постојат8 цветно кодирани ценови слотови, секоја од кои претставува различна ценова категорија:

Слот Боја Типична употреба
Сини Сини Стандардна стапка
Оранжево Оранжево Доплата за вечер или викенд
Црвен Црвен Премиум за врвот на часовите
Зелен Зелен Дисконт надвор од врвот
Тила Тила Студентска или членска стапка
Сива Сива Празници или специјални цени
Сијан Сијан Ноќна стапка
Смерагд Смерагд Промоцијална стапка

Секој слот има три својства:

  1. **Име.**Описвачка ознака (на пример, "Пик часови" или "Ноќна попуст").
  2. **Умножувач.**Децимална вредност која ја менува основната стапка.Общите вредности вклучуваат 1.0 (стандартна), 0.5 (половина цена), 1.5 (50% додаток), 2.0 (двојна цена). Умножувачот мора да биде нула или позитивна.
  3. **Данте за распоред.**Внатрешно претставување кое дефинира на кои часови од кои денови се применува слотот. Ова се управува автоматски преку распоредната мрежа.

Слотовите можат да се вклучат или оневозможат индивидуално.

Решетка за распоред

Графикот на цените е7-дневен по 24-часов матрица(168 блокови од еден час вокупно).

Решетката е конфигурирана воПоставки > Распоред на цени. Дните се движат од понеделник до недела, а часовите се движат од 00:00 до 23:00.

Како машината го чита распоредот

Внатрешно, секој час блокира карти до позиција во податоците за распоредот.

Ако ниту еден слот не е подесен за одреден час, моторот се враќа набазната стапкасо помножувач на 1.0.

Кога функцијата на планот за ценење е целосно исклучена (во Поставки > Ценење), сите сесии ја користат основната стапка со помножувач 1,0 без оглед на времето.

Ценови сегменти

Сегмент е континуиран временски период во рамките на сесијата каде што контекст на цените не се менува.

Граница Триггер
сесија_старт Започна нова сесија.
сесија_стап Сесијата е прекината.
пауза Касиерот ја паузира сесијата.
резюме Касиерот продолжи со пауза
јајца Времето поминува преку границата на часовникот во различен ценовен слот.
исклучување Клиентот PC ја губи мрежната врска.
офлајн Клиентот PC се исклучува.
load_recovery Серверот се рестартира и го враќа сесијата која се движи

Секој сегмент ги запишува:

Поле Описание
сесија_id Седницата на која овој сегмент припаѓа
segment_start Unix временски ознака кога сегментот започна
сегмент_ крај Unix временски знак кога сегментот заврши (нула ако се уште е отворен)
цена_слот_id ID на активниот ценовен слот (на пример, "сија", "црвена" или "база")
мултипликатор Вредноста на мултипликаторот од ценовниот слот
Base_price_snapshot Базната часовна стапка зафатена во моментот кога се отвори сегментот
сума Расчетените трошоци за овој сегмент (составени кога сегментот ќе биде затворен)
гранична причина Зошто овој сегмент е создаден

Зошто да ја снимаме основната цена?

Base_price_snapshot го фаќа основниот часовен став во точниот момент кога се отвора сегментот. Ова е критично бидејќи administrator може да ја промени основната стапка во средината на сесијата. Со снимање, секој сегмент користи стапката која била во сила кога започна, обезбедувајќи фер и ревидируемо фактурирање.

Формула за трошоци

Цената на еден сегмент се пресмета како:

amount = ceil( (base_price_snapshot * multiplier * duration_seconds) / 3600 )

Поточно, моторот користи скалирана целина аритметика за да се избегнат грешки во плавачката точка:

  1. Умножувачот се скалира на фиксиран цврст број (умножен со 1.000.000).
  2. Рачупувањето се врши целосно во 128-битни цели броеви.
  3. Се користи дељење на таванот. Резултатот секогаш се окружува до следната помала единица.

Разчет по минути

Ако опцијата "расчет по минути" е вклучена во поставки > Цени, формулата се менува леко:

amount = ceil( (base_price_snapshot * multiplier * used_minutes) / 60 )

Ова значи дека секоја делумна минута се пресметува како целосна минута.

Обкупна пресметка на сесијата

Вкупните трошоци за сесијата се пресметаат во три чекори:

Прв чекор: Сумирајте ги сите сегменти

raw_total = sum of all closed segment amounts + open segment partial amount

Делната сума на отворениот сегмент се пресмета во реално време користејќи ја формулата погоре со тековниот временски печат како крај на сегментот.

Двајцатиот чекор:

rounded_total = round_up(raw_total, rounding_step)

Окружувањето секогаш се зголемува за да се заштитат приходите. Окружувачкиот чекор може да се конфигурира во Поставки > Цени. На пример, ако окружувачкиот чекор е 50 (кои претставуваат $0.50 во валута со 2 делни цифри), брут вкупна сума од $3.27 окружува до $3.50.

Трети чекор: Подајте минимална плата за стартап

final_total = max(rounded_total, startup_fee)

Стартовата такса е минималната такса за секоја сесија, без оглед на траењето.

Распоредување

Распоредување е процесот на финализирање на фактурирање за сесија.

Започнете со расплатата (само предплатена)

Кога почнува предплатена сесија, се создава запис за расплата "на почетокот".

  • **Изчислени трошоци.**Системот пресметува трошоците за време на купување.
  • **Сметка наплатена.**Сметката што всушност ја платил клиентот (обично иста како и пресметаната цена).

За преплатен режим "Затварање при купување", оваа затварана сума ја одредува цената на сесијата без оглед на промените во цените за време на сесијата.

Спрете го уредувањето

Кога било која сесија (преплатена или поплатена) е прекината, се создава запис за расплата "стап":

Поле Описание
Калкулирани трошоци Вкупниот изчислен од системот од сите сегменти на цените
Сума заплатена Сумата што всушност е наплатена (незадоволство од пресметаните трошоци)
Ручно коригирана сума Ако касиерот рачно ја прилагоди цената, тука се чува оригиналната пресметана цена.
Стапка на комисијата Стапка на комисијата за методот на плаќање (како процент)
комисија_плата Изчислениот износ на комисијата
фиксирана_плата Метод на плаќање фиксирана такса
computed_timeline_snapshot JSON запис на секој сегмент на цените во сесијата

Снимката на временската линија обезбедува целосен одитарски траг кој покажува точно како се пресметале трошоците, сегмент по сегмент.

Таксите за начинот на плаќање

Секој метод на плаќање може да има два вида на такси:

Комисија (основни точки)

Стапката на комисијата се изразува како процент.

**Пример:**Ако изплатената сума е $10.00 (1000 мали единици) и методот на плаќање има стапка на комисија од 2.5%, комисијата е $0.25 (25 мали единици).

Фиксирана такса

Фатна такса која се одбива по една трансакција, без оглед на износот.

Двете таксите се информативни. Тие претставуваат трошоците на бизнисот за прифаќање на тој начин на плаќање.

VAT (додаток од додадена вредност)

VAT се конфигурира како процент (0--100%) во поставки > Цени.

VAT = amount charged x (VAT rate / 100)

Сумата за VAT се прикажува одделно во дијалогот за плаќање, така што касиерот може да го види даночниот раздел.

Предплатен начин на ценење

Како што е опишано во Sessions Management, предплатените сесии поддржуваат два режима на ценовирање:

Затварање на купувањето

Кога ќе започне предплатена сесија, расплатата за "почнање" ја блокира начистената сума.

  • Времето за завршување на сесијата се фиксира врз основа на купените протоколи.
  • Дури и ако се менува распоредот на цените, сесијата продолжува до истекување на затвореното време.
  • Стоп сетлмент го користи заклученото количество од почетната сетлмент.

Живо распоред

Остатокот од времето на сесијата постојано се пресмета со промена на цените:

  • Ако сесијата влезе во поевтин слот, остатокот од времето се протега (клиентот добива повеќе минути за своите пари).
  • Ако сесијата влезе во поскапиот период, остатокот од времето се контрактира.
  • Стоп расплатата ја одразува вистинската цена која се применува во текот на сесијата.

Броеви на дробовите

Бројот на децимални места кои се користат за прикажување на валута е конфигурируван (2-4 бројки на фракција).

**Пример:**Со 2 делни цифри, $3.50 се прикажува како "3.50". Со 3 делни цифри, ќе се прикажува како "3.500".

Практични примери

Пример 1: Едноставна поплатена сесија

  • Базна стапка: $3.00/час (300 мали единици)
  • График: Стандарден слот (умножувач 1.0) цел ден
  • Сесија: 10:00 до 11:30 (90 минути)
  • Почетна такса: $0.50

Разчет:

Segment 1: (300 * 1.0 * 5400) / 3600 = 450 minor units ($4.50)
Total: max($4.50, $0.50) = $4.50

Пример 2: Сесија која опфаќа две слотови

  • Базна стапка: $4.00/час (400 мали единици)
  • График: Стандарт (1.0) од 10:00--12:00, среќен час (0.5) од 12:00--14:00
  • Сесија: 11:00 до 13:00 (120 минути)
  • Плата за започнување: $1.00

Разчет:

Segment 1 (11:00-12:00, standard): (400 * 1.0 * 3600) / 3600 = 400 ($4.00)
Segment 2 (12:00-13:00, happy hour): (400 * 0.5 * 3600) / 3600 = 200 ($2.00)
Total: $4.00 + $2.00 = $6.00
Final: max($6.00, $1.00) = $6.00

Пример 3: Сесија со пауза

  • Базна стапка: $2.00/час (200 мали единици)
  • График: Стандарден слот (умножувач 1.0) цел ден
  • Сесија: Започнете во 10 часот, пауза во 10 часот, пауза во 10 часот, пауза во 11 часот, пауза во 11:45 часот.
  • Почетна такса: $0.50

Разчет:

Segment 1 (10:00-10:30, active): (200 * 1.0 * 1800) / 3600 = 100 ($1.00)
Paused period (10:30-11:00): no charge
Segment 2 (11:00-11:45, active): (200 * 1.0 * 2700) / 3600 = 150 ($1.50)
Total: $1.00 + $1.50 = $2.50
Final: max($2.50, $0.50) = $2.50

Следни чекори