zov-tech/miniapp/assets
wasrusgen 02f8dba469 feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker
New modules:
- expeditor_dashboard.js: route list (date-grouped) + act detail + signature screen
- invoice.js: 3-col chip room picker, 2500₽ base + 1000₽ extra logic
- act4.js, measurer_dashboard.js, finance_summary.js, client_timeline.js, feedback.js, staff_roster.js

Backend:
- /api/expeditor_inbox: filtered assembly list for expeditor role
- /api/act4_request_otp: 6-digit OTP via Telegram, 10-min expiry
- /api/act4_verify_otp: validates code, marks act as signed
- /api/act4_save_signature: saves base64 canvas signature
- Act4s sheet: added signature_b64, otp_code, otp_expires_at columns

Tests:
- tests/expeditor_scenarios.md: 11 manual test scenarios

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 14:11:20 +03:00
..
act4.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
admin_rates.js feat(assembly): configurable assembly rates + admin panel 2026-05-19 09:20:03 +03:00
app.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
assembler_analytics.js feat(analytics): assembler schedule parser + analytics screen 2026-05-19 09:44:34 +03:00
assembler_dashboard.js feat: assembler dashboard, contracts module (Act №3), assembly rates 2026-05-19 12:23:44 +03:00
assembly_detail.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
assembly.js fix: Content-Type: application/json во всех fetch-хелперах 2026-05-18 13:35:20 +03:00
cabinet.js feat: детальная карточка сборки + цена замера везде 2026-05-18 15:35:21 +03:00
client_timeline.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
clients.js fix: таймаут 15с на все fetch в clients.js — кнопки больше не висят 2026-05-18 08:35:42 +03:00
contracts.js feat: assembler dashboard, contracts module (Act №3), assembly rates 2026-05-19 12:23:44 +03:00
expeditor_dashboard.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
feedback.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
finance_summary.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
icons.js feat(miniapp): «Подбор техники» screen — 7-step picker (categories/niches/budget/infra/scenario/brands/summary) wired to /api/podbor 2026-05-09 13:34:46 +03:00
inbox.js fix: Content-Type: application/json во всех fetch-хелперах 2026-05-18 13:35:20 +03:00
invoice.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
master_tools.js feat: add MasterTools assembler cheat-sheets (#/master/tools) 2026-05-18 23:43:23 +03:00
me.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
measurements.js fix: Content-Type: application/json во всех fetch-хелперах 2026-05-18 13:35:20 +03:00
measurer_dashboard.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
orders.js feat: детальная карточка сборки + цена замера везде 2026-05-18 15:35:21 +03:00
platform.js feat: platform.js — адаптер Telegram WebApp для миграции на VK Max 2026-05-18 18:06:03 +03:00
podbor.config.js simplify: remove 'features' step from all 8 categories 2026-05-11 23:37:41 +03:00
podbor.css fix(podbor): HTML format + sticky header + home button at report bottom 2026-05-19 09:26:07 +03:00
podbor.js fix(podbor): HTML format + sticky header + home button at report bottom 2026-05-19 09:26:07 +03:00
podbor.picts.js measurements: kitchen layout wizard + 5 layout pictograms + profile integration 2026-05-12 17:41:01 +03:00
proposals.js fix: Content-Type: application/json во всех fetch-хелперах 2026-05-18 13:35:20 +03:00
request.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
selfmeasure.js feat: детальная карточка сборки + цена замера везде 2026-05-18 15:35:21 +03:00
signrequest.js feat: SignRequest — цифровая подпись акта сборки (ФЗ-63 ПЭП) 2026-05-18 23:12:34 +03:00
staff_clients.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
staff_roster.js feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
styles.css feat: SignRequest — цифровая подпись акта сборки (ФЗ-63 ПЭП) 2026-05-18 23:12:34 +03:00
wasrusgen-logo.svg splash: точный viewBox + цвет blue-grey #2C3E50 2026-05-13 22:15:01 +03:00
zamer-checklist.md feat: SVG-пиктограммы схем замера в чек-листе 2026-05-15 23:21:33 +03:00
zamer-picts.js fix: remove stray closing brace in zamer-picts.js that crashed MiniApp 2026-05-16 10:41:10 +03:00
zov-logo.svg bot: role buttons → MiniApp directly + branded splash loader 2026-05-12 18:54:09 +03:00