Детали ревизии #{{ selectedRevision ? selectedRevision.id : '' }}

{{ formatTimestamp(selectedRevision ? selectedRevision.created_at : '') }}
{{ selectedRevisionDetails.location_name }}
Товар План Факт Разн.
{{ item.product_name }}
{{ item.product_sku }}
{{ item.expected_quantity }} {{ item.actual_quantity }} {{ item.discrepancy > 0 ? '+' : '' }}{{ item.discrepancy }}
Загрузка...

Доступ запрещен

Вас нет в списке пользователей.

Ваш ID
{{ deniedUserId || 'Unknown' }}

Передайте этот ID администратору для добавления в систему.

Заявка принята

Ваш аккаунт ожидает подтверждения администратором.

Ваш ID
{{ user?.id || 'Unknown' }}

Пожалуйста, свяжитесь с администратором.

💻 Dev Mode

Telegram initData not found. Select role for local testing:

Localhost Testing Environment

{{ modalType === 'success' ? 'Успешно' : 'Внимание' }}

{{ errorModal }}

POS Терминал

{{ shiftStatus ? 'Смена открыта' : 'Смена закрыта' }} 📍 {{ currentLocationName }}

{{ selectLocationTitle || 'Выберите склад' }}

{{ loc.name }}
{{ loc.address || 'Нет адреса' }}

Открыть смену

Выберите точку продаж:

{{ loc.display_name || loc.name }}
{{ loc.address || 'Нет адреса' }}

Настройки

🏪 Управление складами

ID: {{ loc.name }}

👁️ = видим для всех, 🚫 = скрыт

Отчеты (v1.8)

Загрузка...
Валовые продажи
{{ formatCurrency(reportData.gross_sales) }}
Возвраты
{{ formatCurrency(reportData.returns) }}
Чистая выручка
{{ formatCurrency(reportData.net_sales) }}
Товаров продано
{{ reportData.items_sold || 0 }}
Чеков
{{ reportData.receipts_count || 0 }}
Оплата по типам
💵 Наличные
{{ formatCurrency(reportData.cash_total || 0) }}
💳 Карта
{{ formatCurrency(reportData.card_total || 0) }}
Нажмите "Показать", чтобы загрузить данные
Товары не найдены
Найдено: {{ searchResults.length }} товаров
Остаток: {{ product.stock_quantity }} шт
{{ formatCurrency(product.selling_price) }}
Каталог

Каталог

Товары в этой категории:
Товары не найдены
{{ product.stock_quantity }} шт
{{ product.name }}
{{ product.sku }}
{{ formatCurrency(product.selling_price) }}

Корзина ({{ cart.length }})

{{ item.name }}
{{ formatCurrency(item.price) }} × {{ item.quantity }}
{{ item.quantity }}
{{ formatCurrency(item.price * item.quantity) }}
Подытог: {{ formatCurrency(cartSubtotal) }}
Скидка (₽):
Итого: {{ formatCurrency(cartTotal) }}
Транзакций не найдено
{{ getTransactionLabel(tx.type) }} #{{ tx.id }} (по чеку #{{ tx.related_transaction_id }})
{{ formatTimestamp(tx.timestamp) }} • 👤 {{ tx.user_name }}
{{ formatCurrency(tx.amount) }}
💵 Наличные 💳 Карта 🔀 Смешанная
Скидка: {{ formatCurrency(tx.discount_amount) }}
{{ item.name || 'Товар' }} x{{ item.quantity }} {{ formatCurrency(item.price * item.quantity) }}
Прим: {{ tx.note }}
ВОЗВРАЩЕНО
ВОЗВРАЩЕНО ЧАСТИЧНО
Смен не найдено
📅
Смена #{{ shift.id }}
{{ formatTimestamp(shift.start_time) }} - {{ shift.end_time ? formatTimestamp(shift.end_time) : 'Активна' }}
👤 {{ shift.user_name }}
{{ formatCurrency(shift.net_total) }}
Чистые
Валовые {{ formatCurrency(shift.gross_sales) }}
Возвраты {{ formatCurrency(shift.returns) }}
Подробнее
{{ getOperationLocationName() }}

Приемка

Добавьте товары для приемки
{{ item.name }}
{{ item.sku }}
₽/шт
{{ item.quantity }}
Всего товаров: {{ totalSupplyItems }} шт
Общая сумма: {{ formatCurrency(supplyTotal) }}

Склад

Результаты поиска ({{ inventorySearchResults.length }})

{{ product.name }}
{{ product.sku }}
{{ product.stock_quantity }} шт
Товары не найдены

Категории

{{ categoryBreadcrumb[0].name }} / {{ getCategoryName(selectedInventoryCategory) }}

Новая категория
📦
Без категории
{{ getProductCountByCategory(null) }} товаров
{{ getSubcategoriesCount(cat.id) }} подкат.
{{ getCategoryIcon(index) }}
{{ cat.name }}
{{ getProductCountByCategory(cat.id) }} товаров
В этой категории пока нет товаров
{{ product.name }}
{{ product.barcode }} | {{ product.sku }} | {{ formatCurrency(product.purchase_price) }}
{{ product.stock_quantity }}
шт !

Сотрудники

{{ u.username }}
ID: {{ u.id }}
{{ getRoleLabel(u.role) }}

Отчет

-
Продажи (Грязными)
{{ formatCurrency(reportData.gross_sales) }}
Возвраты
{{ formatCurrency(reportData.returns) }}
Чистыми
{{ formatCurrency(reportData.net_sales) }}
Товаров
{{ reportData.items_sold }} шт
Чеков
{{ reportData.receipts_count }}
Нажмите "Показать", чтобы загрузить данные

Складские операции

Приемка
Списание
Ревизия
{{ notifications.length }}
Уведомления
Номенклатура

Приемка

{{ prod.name }}
{{ prod.sku }}
{{ formatCurrency(prod.purchase_price) }}
Список пуст
Сканируйте товары для добавления
{{ item.name }}
Итого: {{ supplyCart.length }} поз.
{{ formatCurrency(supplyCart.reduce((acc, i) => acc + (i.cost * i.quantity), 0)) }}

Списание товаров

{{ p.name }}
{{ p.sku }}
К списанию ({{ wasteCart.length }}):
{{ item.name }}
{{ item.sku }} • {{ formatCurrency(item.purchase_price) }}
{{ item.quantity }}
Добавьте товары для списания

Номенклатура

Загрузка...
Товар {{ loc.display_name || loc.name }} Всего
{{ prod.name }}
{{ prod.sku }}
{{ prod.stock_by_location[loc.id]?.quantity || 0 }} {{ prod.stock_quantity }}
Товары не найдены

Ревизия

1. Полная ревизия

Загрузить все товары для сверки остатков.

2. Частичная ревизия

Выберите категорию для проверки.

{{ revisionCategoryFilter ? (getCategoryName(revisionCategoryFilter) || 'Категория') : 'Все товары' }}

{{ revisionCart.length }} поз.
🔍
Товар Учет Факт
Список пуст
{{ item.name }}
{{ item.stock_quantity }}

{{ supplyInlineCreateMode == 'product' ? 'Новый товар' : supplyInlineCreateMode == 'category' ? 'Новая категория' : (supplyCatalogCategory ? getCategoryName(supplyCatalogCategory) : 'Выберите товар') }}

Выберите родителя для создания подкатегории

Всe товары
{{ cat.name }}

Подкатегории

{{ sub.name }}
{{ prod.name }}
{{ prod.sku }} | Остаток: {{ prod.stock_quantity }}
{{ formatCurrency(prod.purchase_price) }}
Товары не найдены

{{ wasteCatalogCategory ? getCategoryName(wasteCatalogCategory) : 'Выберите товар' }}

Все товары
{{ cat.name }}
{{ sub.name }}
{{ prod.name }}
{{ prod.sku }}

История списаний

Списаний нет
{{ tx.reason }}
{{ tx.location_name }}
-{{ formatCurrency(tx.total_loss) }}
{{ new Date(tx.timestamp).toLocaleDateString('ru-RU') }}
{{ item.product_name }} x{{ item.quantity }} {{ formatCurrency(item.total) }}

Оплата успешна!

Заказ #{{ receipt.order_id }}

{{ item.name }} x{{ item.quantity }} {{ formatCurrency(item.price * item.quantity) }}
Итого {{ formatCurrency(receipt.total_amount) }}
{{ formatTimestamp(receipt.timestamp) }}

Возврат чека #{{ refundModal.id }}

Выберите товары для возврата:
{{ item.name }} Доступно: {{ item.remaining_quantity }} шт.
{{ formatCurrency(item.refund_quantity * item.price) }}

Оплата

К оплате
{{ formatCurrency(cartTotal) }}
Скидка: {{ formatCurrency(discountAmount) }}
💵 Наличные:
💳 Карта:
Авторасчет по карте

Партия приемки

{{ item.name }}
{{ item.quantity }} x {{ formatCurrency(item.cost) }}
{{ formatCurrency(item.cost * item.quantity) }}

{{ categoryModal.id ? 'Редактировать категорию' : 'Новая категория' }}

📁

Смена закрыта

Отчет был отправлен

Валовые продажи {{ formatCurrency(zReport.report.gross_sales) }}
Возвраты {{ formatCurrency(zReport.report.returns) }}
Наличные {{ formatCurrency(zReport.report.cash_total || 0) }}
Карта {{ formatCurrency(zReport.report.card_total || 0) }}
Чеков / Товаров {{ zReport.report.receipt_count || 0 }} / {{ zReport.report.items_sold || 0 }}
Чистая выручка {{ formatCurrency(zReport.report.net_total) }}
Начало: {{ formatTimestamp(zReport.report.start_time) }}
Конец: {{ formatTimestamp(zReport.report.end_time) }}

Смена #{{ selectedShift.id }}

{{ formatTimestamp(selectedShift.start_time) }} - {{ selectedShift.end_time ? formatTimestamp(selectedShift.end_time) : 'Активна' }}
Валовые
{{ formatCurrency(selectedShift.gross_sales) }}
Возвраты
{{ formatCurrency(selectedShift.returns) }}
Чистые
{{ formatCurrency(selectedShift.net_total) }}

Транзакции

Нет транзакций
{{ tx.type === 'sale' ? 'Продажа' : 'Возврат' }} 💵/💳 {{ tx.payment_type === 'card' ? '💳' : '💵' }}
#{{ tx.id }} • {{ formatTimestamp(tx.timestamp) }} • 👤 {{ tx.user_name }}
📝 {{ tx.note }}
{{ formatCurrency(tx.amount) }}

Приемка: {{ supplyModal.name }}

Приемка успешна!

{{ item.name }} x{{ item.quantity }} {{ formatCurrency(item.cost * item.quantity) }}
Итого {{ formatCurrency(supplyReceipt.total_amount) }}
{{ formatTimestamp(supplyReceipt.timestamp) }}

Сохранить черновик

Сохраненные черновики

Нет сохраненных черновиков
{{ draft.name }} {{ formatTimestamp(draft.created_at) }}
{{ draft.items_count }} позиций

Уведомления

Новых уведомлений нет
{{ note.product_name }}
{{ note.message }}
{{ formatTimestamp(note.created_at) }}
Текущий остаток: {{ note.stock_quantity }} шт.
Мин. остаток: {{ note.min_stock_level }} шт.

Списание: {{ wasteModal.name }}

{{ productModalTitle }}

{{ userModal.isEdit ? 'Редактировать' : 'Добавить' }} пользователя

История приемок

{{ formatTimestamp(tx.timestamp) }}
№{{ tx.id }} • {{ tx.user_name }} {{ tx.location_name }}
+{{ formatCurrency(tx.amount) }} опт
{{ item.name }} {{ item.quantity }} x {{ formatCurrency(item.price) }}
История пуста

Сохранить ревизию

Черновики ревизий

Нет сохраненных черновиков
{{ draft.name }} {{ formatTimestamp(draft.created_at) }}
{{ draft.items_count }} позиций

История ревизий

История пуста
Ревизия #{{ rev.id }} {{ formatTimestamp(rev.created_at) }}
{{ rev.note || "Без примечания" }}
Подробнее