БОТ ДЛЯ ОТЧЁТОВ СМЕН (2 ГОРОДА) — УСТАНОВКА
============================================

Что нужно от хостинга: PHP 7.2+ (подойдёт любой современный), расширения zip и mbstring
(обычно уже включены), сайт должен открываться по HTTPS.

1. Распакуйте архив в корень сайта. Появится папка smenabot/
   (бот будет по адресу https://ваш-сайт/smenabot/bot.php).

2. Создайте бота у @BotFather → /newbot → скопируйте токен.

3. Откройте smenabot/config.php и заполните:
     bot_token — токен бота;
     secret    — любая длинная строка латиницей/цифрами (например, Kx8f2Lq9Zt4mW7pR);
     cities    — названия двух городов и слова, по которым бот их узнаёт.
   Ключи city1 / city2 НЕ меняйте: в city1 уже лежит смена 21.10.2026 с фото.

4. Дайте права на запись папке smenabot/data (обычно 755 или 775 хватает).

5. Откройте в браузере:
     https://ваш-сайт/smenabot/setup.php?key=ВАШ_SECRET
   Страница проверит сервер и подключит вебхук. Везде должны быть ✅.

6. Напишите боту /start, выберите город кнопкой (или /city) и пришлите отчёт текстом.
   Бот покажет, что понял, проверит сходимость цифр и запишет после кнопки «✅ Записать».

7. Закройте доступ: напишите боту /id, впишите id сотрудников в allowed_users
   в config.php (пока список пустой, бот принимает отчёты от любого).

ГДЕ ТАБЛИЦЫ
-----------
• В боте: /xlsx → выбрать город → бот пришлёт свежий файл.
• В браузере: ссылки внизу страницы setup.php
  (download.php?key=ВАШ_SECRET&city=city1 / city2).
• База — файлы data/city1.json.php и data/city2.json.php. xlsx каждый раз
  собирается из них заново: листы по месяцам (блок на каждый день),
  «Сводка» (все смены и итоги по месяцам) и «Долги» (всё со статусом «долг»).
  Перед каждой записью предыдущая версия базы сохраняется в *.bak.php.

ОБЩАЯ ТАБЛИЦА РАСХОДОВ (ОБА ГОРОДА)
-----------------------------------
/rashody в боте (или /xlsx → «Все расходы»), в браузере — download.php?key=…&city=all.
Внутри: «Все расходы» (каждый расход строкой: дата, месяц, город, категория, статья,
сумма, статус; есть фильтры), «По категориям» (месяц × город) и «По дням».
Туда уже загружены все расходы из старых таблиц за август–октябрь
(data/expenses_history.json.php) + всё, что приходит через бота.
Если через бота прислать смену за дату, которая есть в старых таблицах, —
в общей таблице за этот день будет версия из бота (без задвоения).
Категории назначаются автоматически по словам в статье (lib/Expenses.php, список rules).

КАК ПИСАТЬ ОТЧЁТ
----------------
Город 1
Диана 21.10.26
Общая выручка: 133.227
Безнал: 95.719
Нал: 18.988
Доставки общая: 29.480 Яндекс: 14.530 Сайт: 3990 Нал: 8040 Виза: 2920
Кальяны: 8400
Скидка: 2058
Расходы:
Курьер Ирина - 2900
Т/П Эльвира /14:00-1:00/ +1000 - 3750
Админ Диана /16:00-2:00/ - 4000 долг
Кальянщик Максим - 3200 (6 кал + 1к выход)
Рабочая связь - 200
Остаток: 938
Нал: 0
Озон: 938

Правила:
• Расход: «кто/что — сумма». Слово «долг» → не выплачено (идёт в «Долги»),
  без него → выплачено из кассы.
• «Нал» в строке доставки — нал доставки, «Нал» после расходов — нал в конверте.
• Неплательщики — блоком «Неплательщики:» и строки «Имя - сумма».
• Можно добавить: «Удаления: 2210», «Чеков: 57 Гостей: 9», «Коммент: …».
• Без даты: до 12:00 смена пишется на вчера, после — на сегодня.
• Повторный отчёт за ту же дату заменяет старый (бот предупредит).

Команды: /city /xlsx /rashody /last /show 21.10 /del 21.10 /id /help

В ГРУППОВОМ ЧАТЕ
----------------
Добавьте бота в группу и у @BotFather: /setprivacy → Disable, иначе он не увидит
обычные сообщения. В группе бот реагирует только на сообщения со словами
«выручка», «безнал» или «расходы».

Проверка без Telegram (по SSH): php tools/import.php city2 отчет.txt
