Сумма: 70000
Количество заявок: 3
23.06.26 (включительно)
Оплата
Идея
Задачи ИКТ
Medicine
Другие технологические решения
ПО/ИС
Исторически пересменка и подведение финансовых итогов в частных клиниках — это часы рутинной работы, сопровождающиеся конфликтами из-за недостач. Обезличенность и отсутствие ответственности: В большинстве старых учетных систем (или при ведении учета в Excel) смены не фиксируются, либо учетная запись на кассовом компьютере одна на всех регистраторов. Когда в конце дня обнаруживается недостача в несколько тысяч тенге, руководство не может найти виновного — неизвестно, кто конкретно принимал оплату . Хаос при передаче наличных: Из-за отсутствия строгой фиксации базового остатка на начало дня (opening_balance), кассиры путаются в том, какая сумма была в кассе для сдачи утром. Несанкционированное изъятие денег на хозяйственные нужды (без оформления инкассации) приводит к полному искажению финансовой картины . «Серые» платежи мимо кассы: Без жесткой технической блокировки администраторы могут принимать деньги и проводить операции в системе в любое время, даже после того, как касса формально «закрыта». Мучительное сведение Z-отчетов: Бухгалтерии и кассирам приходится вручную сводить данные с разных терминалов (банковского POS, Kaspi терминала и наличных). При наличии смешанных оплат и возвратов ручной подсчет неизбежно приводит к математическим ошибкам и стрессу персонала
Запуск цифрового модуля управления сменами радикально изменит финансовую дисциплину клиник: 100% персональная ответственность: Жесткая привязка каждой транзакции к индивидуальному токену пользователя и конкретному shift_id полностью исключит возможность работы «инкогнито» . Z-отчет будет формироваться по каждой смене, что позволит руководству точно знать, кто и когда допустил ошибку . Искоренение фрода (Ошибки → 0%): Программный запрет на работу без активной смены (403 NO_ACTIVE_SHIFT) и автоматический расчет поля недостачи (discrepancy) сделают финансовые махинации или воровство технически невозможными и мгновенно заметными . Экономия времени на закрытие смены: То, что раньше занимало у кассиров от 30 минут до часа (сведение наличности с терминалами), теперь будет происходить за пару секунд. Сервер автоматически рассчитает все доли (наличные, QR, карты, рассрочки) и выдаст готовый к печати PDF-документ. Абсолютная прозрачность для инвесторов: Владельцы бизнеса смогут удаленно запрашивать PDF Z-отчеты по любой смене из любого филиала через защищенные URL-ссылки, имея полный контроль над денежными потоками клиники
Амина Агзамова
Цель и описание задачи (проекта)
Внедрить в клиниках систему жесткой цифровой, материальной и персональной ответственности кассиров. Главная задача данного блока — алгоритмически запретить любые несанкционированные финансовые операции «вне кассы», обеспечить строгий учет наличности с момента открытия до момента закрытия рабочего дня, а также полностью автоматизировать расчет итоговой выручки с генерацией фискальных Z-отчетов. Детальное описание функционала и технических решений: Механика открытия смены и JWT-валидация: Рабочий день кассира начинается с интерфейса «Карточка смены» . Кассир инициирует POST-запрос для открытия смены, где обязательно фиксирует остаток наличных в кассе на момент старта (opening_balance) . Сервер создает запись в таблице shifts, а главное — обновляет JWT-токен пользователя, вшивая в него shift_id . Это критический элемент безопасности: Middleware бэкенда блокирует любые транзакции (оплату, возврат), если в токене нет активного shift_id, возвращая ошибку 403 NO_ACTIVE_SHIFT . Защита от параллельных смен: Система на уровне базы данных проверяет открытые смены филиала. Если один кассир уже открыл смену, попытка второго кассира открыть параллельную кассу в этом же филиале блокируется сервером с ошибкой 409 SHIFT_ALREADY_OPEN . Промежуточная инкассация (Cash-out): Внедрение механизма безопасного изъятия наличных из кассы в течение дня (например, для передачи инкассаторам) без закрытия самой смены. Для этого используется эндпоинт POST /api/v2/shifts/:id/cash-out . Инкассация записывается в систему, влияет на расчетный финальный остаток наличных (closing_balance), но математически не искажает общую выручку клиники . Сверка наличности и расчет недостач: При нажатии «Закрыть смену» система подбивает итоги: кассир обязан вручную ввести фактическую сумму бумажных денег в кассе (cash_drawer_closing) . Сервер сравнивает введенную сумму с расчетной по формуле: closing_balance − (opening_balance + cash_in − cash_out). Любые расхождения (недостача или излишек) намертво фиксируются в поле discrepancy . Автоматическая генерация Z-отчетов: Сервер производит сложные SQL-агрегации (COUNT и SUM) всех транзакций за период смены с точной разбивкой по методам: Наличные, Kaspi, Карта, Возвраты и Чистая выручка . После математической сверки бэкенд использует библиотеку pdfkit (или puppeteer) для мгновенной генерации PDF-документа (Z-отчета) . Сгенерированный файл сохраняется в защищенное S3-совместимое объектное хранилище , а токен кассира аннулируется