
Card2Phone (v. 1.4.0.1 – 63.0):
Ticket2Phone (v.1.3.4.0-38.5):
Telegram_Bot (v.1.6.7):
Помги написать инструкцию для тестирования исходя из описания задачи: Для абонементов может осуществляться учет остаточной стоимости, а именно стоимости покупки за вычетом стоимости приобретенных с использованием этого абонемента услуг. При приобретении абонемента его остаточная стоимость равна стоимости продажи. При приобретении услуги (игре) с применением абонемента производится расчет стоимости этой услуги для стандартного уровня, после чего остаточная стоимость уменьшается на рассчитанное значение (если остаточная стоимость меньше стоимости услуги. то уменьшается до 0). Если стоимость услуги для стандартного уровня рассчитать не получается (нет правил или правило - запретительное), то уменьшения остаточной стоимости не происходит (молча, ошибок не генерируется). На кассе остаточная стоимость отображается в Списке абонементов. Там же есть возможность выполнить ее возврат (кнопка Вернуть остаточную стоимость), защищенная правом Возврат остаточной стоимости абонемента (GKCASH_RET_SRVAL). Валютой возврата является валюта чека покупки абонемента. Функционал учета включается настройкой [Settings] allowSubscriptionResidualValue = 1 (по умолчанию 0, учет не ведется). НЕ ПОДДЕРЖИВАЕТСЯ учет остаточной стоимости для абонементов для тарификаций. В БД реализовано на базе правок, сделанных для учета аванса в соотв. схеме работы (Поле для хранения - Advance, сам учет в релиз не пошел).
# Инструкция по тестированию учета остаточной стоимости абонементов
## 1. Подготовка к тестированию
1. Убедиться, что в настройках системы параметр `allowSubscriptionResidualValue` установлен в значение `1`.
2. Проверить, что используется стандартный тип абонементов (НЕ тарификационный).
3. Убедиться, что у пользователя на кассе есть необходимые права, в частности право `GKCASH_RET_SRVAL` (Возврат остаточной стоимости абонемента).
---
## 2. Проверка формирования остаточной стоимости при покупке абонемента
1. Совершить покупку абонемента.
2. Перейти в раздел "Список абонементов" на кассе.
3. Убедиться, что остаточная стоимость абонемента равна полной стоимости продажи.
---
## 3. Проверка уменьшения остаточной стоимости при использовании абонемента
1. Осуществить покупку услуги (например, игры) с применением абонемента.
2. Проверить, что расчет стоимости услуги производится для стандартного уровня.
3. После покупки услуги убедиться, что остаточная стоимость абонемента уменьшилась на рассчитанную стоимость услуги.
4. Если остаточная стоимость абонемента была меньше стоимости услуги — убедиться, что она уменьшилась до нуля.
---
## 4. Проверка поведения при невозможности расчета стоимости услуги
1. Настроить услугу так, чтобы для нее не было правил расчета стоимости или правило было запретительным.
2. Осуществить попытку покупки услуги с применением абонемента.
3. Убедиться, что остаточная стоимость не изменилась, ошибок и сообщений не отображалось.
---
## 5. Проверка возврата остаточной стоимости
1. Перейти в раздел "Список абонементов" на кассе.
2. Убедиться, что отображается актуальная остаточная стоимость абонемента.
3. Нажать кнопку "Вернуть остаточную стоимость".
4. Если у пользователя нет права `GKCASH_RET_SRVAL`, убедиться, что возврат невозможен.
5. Если право есть — выполнить возврат.
6. Проверить, что сумма возврата соответствует остаточной стоимости и валюта возврата совпадает с валютой чека покупки абонемента.
7. Убедиться, что после возврата остаточная стоимость обнулена.
---
## 6. Проверка отключения функционала
1. Установить параметр `allowSubscriptionResidualValue` в значение `0`.
2. Совершить покупку абонемента и покупку услуги с его использованием.
3. Убедиться, что остаточная стоимость не отображается и не учитывается.
---
## 7. Проверка ограничений
1. Попробовать провести аналогичные операции с абонементом для тарификации.
2. Убедиться, что учет остаточной стоимости не ведется для такого типа абонементов.
---
## 8. Проверка данных в базе
1. Проверить, что остаточная стоимость абонемента хранится в соответствующем поле (например, `Advance`).
2. Убедиться, что после операций остаточная стоимость корректно обновляется в БД.
---
**Примечание:**
Функционал реализован на базе механизма учета аванса. Учет остаточной стоимости НЕ ПОДДЕРЖИВАЕТСЯ для абонементов для тарификаций.
Source