Программа для работы кассира
Вы можете нажать сюда для просмотра программы.
Программа для работы кассира — учебное кассовое приложение, разработанное на Python с использованием Tkinter. Проект предназначен для автоматизации основных операций кассира: открытия и закрытия смены, поиска товаров по штрихкоду, формирования продаж, учёта денежных средств в кассовом ящике и сохранения истории операций.
Информация о товарах хранится в редактируемом файле codes.ods. Для каждого товара указываются штрихкод, название и цена. Кассир может отсканировать или ввести штрихкод, после чего программа находит соответствующий товар и добавляет его в текущую продажу.
Информация о завершённых продажах и кассовых сменах сохраняется в базе данных orders.db. Каждая продажа связывается с кассиром и открытой сменой, а завершённым заказам автоматически присваиваются номера вида ORD-000001.
Работа с кассовыми сменами
Перед началом работы пользователь выбирает кассира и открывает кассовую смену. При открытии указывается начальный остаток денежных средств в кассовом ящике.
Во время смены программа учитывает продажи и позволяет регистрировать ручное внесение или изъятие наличных. При закрытии кассы вводится фактически пересчитанная сумма. Программа рассчитывает ожидаемый остаток и сохраняет возможное расхождение.
Если приложение было закрыто до завершения смены, незакрытая смена автоматически восстанавливается при следующем запуске.
Хранение и контроль данных
Для проверки целостности финансовой базы используется контрольная сумма SHA-256. При запуске программы содержимое orders.db сравнивается с сохранённой контрольной суммой из orders.db.sha256. После штатного изменения данных контрольная сумма обновляется автоматически.
Основные действия программы записываются в файл cash_register.log: запуск и завершение работы приложения, открытие и закрытие смен, сканирование товаров, проведение продаж, внесение и изъятие наличных, проверка целостности базы и возникающие ошибки. Журнал можно открыть непосредственно из интерфейса программы в режиме только для чтения.
Основные возможности
- выбор кассира перед началом работы;
- открытие и закрытие кассовой смены;
- поиск товаров по штрихкоду;
- формирование и сохранение продаж;
- автоматическая нумерация заказов;
- учёт наличных в кассовом ящике;
- внесение и изъятие денежных средств;
- расчёт ожидаемого и фактического остатка кассы;
- восстановление незакрытой смены после перезапуска;
- ведение журнала действий;
- проверка целостности базы данных с помощью SHA-256;
- сборка автономного Windows-приложения.
Технологии
Проект написан на Python. Графический интерфейс создан с помощью Tkinter. Для хранения данных о товарах используется таблица ODS, а операции и сведения о кассовых сменах сохраняются в локальной базе данных.
Для Windows предусмотрена сборка программы в отдельный CashRegister.exe с помощью PyInstaller. Приложение можно запускать без консольного окна, а рабочие файлы создаются и хранятся рядом с исполняемым файлом.
Цель проекта
Основная цель проекта — разработать самостоятельное настольное приложение, моделирующее работу кассового рабочего места, и на практике реализовать работу с графическим интерфейсом, локальным хранением данных, кассовыми сменами, журналированием операций и контролем целостности данных.