How azizahadovv/moysklad works
Kassa Nazorati is a Telegram-first cash-accounting and operations system, with a web admin interface and MoySklad/Google Sheets integrations. The main workflow is staff interaction through the bot, role-based routing to finance or operational handlers, business services updating domain state and persistent records, then reports or notifications returned to users. Distinct branches cover daily cash and submissions, inventory control, fines/shipments, and external synchronization. The README documents these capabilities; sampled excerpts support selected service interactions, so uncertain internal wiring is omitted.
Main entry points: OperationRepo.java Repositories · KassirHandler.java Finance handlers · LedgerService.java Ledger and balances · Jobs.java Scheduled jobs
Components 29
User interfaces
- Bot entry
src/main/java/uz/kassa/bot/KassaBot.java - Role router
src/main/java/uz/kassa/bot/Router.java - Finance handlers
src/main/java/uz/kassa/bot/handlers/KassirHandler.java - Admin handlers
src/main/java/uz/kassa/bot/handlers/AdminHandler.java - Web admin
src/main/java/uz/kassa/webapp/WebAdminController.java - Web admin services
src/main/java/uz/kassa/webapp/AdminApiService.java
Cash accounting
- Ledger and balances
src/main/java/uz/kassa/service/LedgerService.java - Daily close
src/main/java/uz/kassa/service/DayService.java - Transfers and debts
src/main/java/uz/kassa/service/TransferService.java - Cash submissions
src/main/java/uz/kassa/service/SubmissionService.java - Reports and balances
src/main/java/uz/kassa/service/DailyReportService.java
Operations control
- Inventory workflows
src/main/java/uz/kassa/service/ombor/OmborSyncService.java - Stock counting
src/main/java/uz/kassa/service/ombor/OmborSanoqService.java - Shipment control
src/main/java/uz/kassa/service/control/ShipmentControlService.java - Fines
src/main/java/uz/kassa/service/jarima/JarimaService.java
External integrations
- MoySklad sync
src/main/java/uz/kassa/service/moysklad/MoySkladSyncService.java - MoySklad client
src/main/java/uz/kassa/service/moysklad/MoySkladClient.java - Sheets sync
src/main/java/uz/kassa/gsheets/SheetsSyncService.java - Telegram reader
src/main/java/uz/kassa/service/tg/TgReaderService.java - Reader gateway
src/main/java/uz/kassa/service/tg/TgReaderHttpGateway.java
Persistence and messaging
- Notifications
src/main/java/uz/kassa/service/NotificationService.java - Repositories
src/main/java/uz/kassa/repo/OperationRepo.java - PostgreSQL
- Scheduled jobs
src/main/java/uz/kassa/scheduler/Jobs.java
Other components
- Staff and admins
- Telegram
- MoySklad
- Google Sheets
- tg-reader service
tg-reader/reader.py
Connections 38
- Staff and admins → Telegram: sends requests
- Telegram → Bot entry: delivers updates
- Bot entry → Role router: dispatches updates
- Role router → Finance handlers: routes finance
- Role router → Admin handlers: routes admin
- Finance handlers → Ledger and balances: records money
- Finance handlers → Transfers and debts: requests transfers
- Finance handlers → Cash submissions: submits reports
- Finance handlers → Reports and balances: requests reports
- Admin handlers → Inventory workflows: manages stock
- Admin handlers → Shipment control: manages control
- Admin handlers → Fines: manages fines
- Web admin → Web admin services: dispatches requests
- Web admin services → Ledger and balances: reads and updates
- Ledger and balances → Daily close: updates daily records
- Ledger and balances → Repositories: persists operations
- Daily close → Repositories: persists daily records
- Transfers and debts → Repositories: persists transfers
- Cash submissions → Repositories: persists submissions
- Reports and balances → Repositories: reads records
- Inventory workflows → Repositories: reads and writes stock
- Stock counting → Repositories: stores counts
- Shipment control → Repositories: stores shipment state
- Shipment control → MoySklad client: checks balances
- Fines → Repositories: stores fine records
- Repositories → PostgreSQL: reads and writes
- Scheduled jobs → Daily close: closes business days
- Scheduled jobs → MoySklad sync: starts synchronization
- MoySklad sync → MoySklad client: fetches documents
- MoySklad client → MoySklad: requests data
- MoySklad sync → Ledger and balances: applies transactions
- Scheduled jobs → Sheets sync: starts synchronization
- Sheets sync → Google Sheets: reads and writes sheets
- Scheduled jobs → Telegram reader: polls reader
- Telegram reader → Reader gateway: calls gateway
- Reader gateway → tg-reader service: exchanges messages
- Telegram reader → Repositories: stores reader data
- Notifications → Telegram: sends notifications