Печать фискального чека до оплаты заказа (ФЗ-54)
[v9preview4
v9
]
Начиная с V9Preview4 появилась возможность печатать фискальный чек до оплаты заказа:
PrintFiscalChequeBeforePaymentOrder
.
Для печати фискального чека до оплаты заказа, необходимо выполнение условий:
- сумма внесенных оплат должна быть достаточной для оплаты заказа
- в заказе должна присутствовать хотя бы одна фискализируемая оплата, для которой и будет распечатан фискальный чек
- заказ должен относиться к отделению, в настройках которого включена опция “Раздельная печать фискального чека перед оплатой”:
FiscalChequeBeforePaymentEnabled
. - заказ должен быть еще не фискализированным:
IsFiscalizedBeforePayment
= false
.
Также печать фискального чека до оплаты заказа недоступна для доставок, кроме режима самовывоза.
Перед оплатой заказа PayOrder
или перед печатью фискального чека до оплаты заказа PrintFiscalChequeBeforePaymentOrder
сработает уведомление BeforeProceedOrderPayment
. Если один из подписавшихся плагинов бросит исключение OperationCanceledException
добавление платежа будет отменено.
При печати фискального чека до оплаты, заказ перейдет в нередактируемое состояние (статус Bill
), однако проведение оплат происходить не будет.
В случае успеха, заказ помечается фискализированным: IsFiscalizedBeforePayment
.
Все оплаты заказа помечаются фискализированными: IsFiscalizedLocally
.
В случае возникновения ошибки, фронт выдаст исключение с описанием ошибки:
PrintFiscalChequeBeforePaymentOrderFailed
.
Закрытие фискализированного заказа
Для заказа может быть единожды распечатан фискальный чек до оплаты.
Далее фискализированный заказ можно закрыть: PayOrder
.
На этом этапе все непроведенные оплаты будут проведены.
Если фискализированный заказ был изменен, тогда при выполнении IOperationService.PayOrder
для заказа будут распечатаны:
- чек коррекции возврата прихода и чек коррекции прихода (для ФФД 1.1 и выше)
- чек возврата прихода и чек прихода согласно актуальному состоянию заказа (ФФД 1.05).
Чек коррекции
Фискализированный заказ считается измененным, если выполнено хотя бы одно из условий:
- произошла отмена пречека фискализированного заказа. Т.е. для заказа был распечатан фискальный чек до оплаты, а затем отменен пречек.
- изменение одной или несколько сумм по чеку: наличными / электронными (безналичными) / предоплатой / постоплатой (в кредит) / встречным предоставлением. Например, если одна электронная оплата заменяется на другую с той же суммой, чек коррекции печататься не будет, поскольку в этом случае реквизиты фискального чека остаются неизменными.
Для отслеживания фискальной операции “чек коррекции” (для ФФД 1.1 и выше), которая происходит при оплате измененного фискализированного заказа, используйте:
BeforeDoFfd11CorrectionOnPaymentOrderAction
- команда, которая выполняется перед операцией “чек коррекции”. Здесь можно проверить возможность выполнения операции, а также добавить в чек дополнительную информацию.AfterDoFfd11CorrectionOnPaymentOrderAction
- команда, которая выполняется после операции “чек коррекции”. Основное ее назначение — выполнить завершающие действия после печати чека коррекции, где аргументresult
описывает результат выполнения операции на ФР.
Удаление фискализированного заказа
При удаленнии фискализированного заказа будет распечатан фискальный чек возврата.
Примеры вызовов PrintFiscalChequeBeforePaymentOrder
можно найти в проекте SDK SamplePaymentPlugin.