Require explicit manager confirmation before recording prepayment
This commit is contained in:
1
USER.md
1
USER.md
@@ -20,6 +20,7 @@ _Learn about the person you're helping. Update this as you go._
|
||||
- При оформлении брони обязательно спрашивать комментарий клиента; если комментарий есть, фиксировать его в данных брони (журналы/уведомление).
|
||||
- Как только гость забронировал/зафиксировал бронь — обязательно отправлять гостю в VK файл брони.
|
||||
- Дети до 1 года в количестве гостей указываются, но в оплату не включаются.
|
||||
- Предоплату в бронь вносить только после явного подтверждения от Виталия. Без подтверждения предоплата = 0 и статус «Предварительное».
|
||||
|
||||
## Context
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ python3 {baseDir}/scripts/calc_quote.py \
|
||||
- Если в прайсе нет точного совпадения — предложить ближайший доступный тариф и явно написать это.
|
||||
- Питание не включено: не обещать «завтрак/полупансион/всё включено» и не запрашивать выбор питания.
|
||||
- Дети до 1 года: учитывать в составе гостей, но не включать в платный расчёт.
|
||||
- Предоплату вносить только после явного подтверждения от менеджера/Виталия. Без такого подтверждения предоплата не ставится, бронь остаётся «Предварительное».
|
||||
- Если гостей много или не хватает мест в одном номере — предлагать комбинированное размещение в нескольких номерах.
|
||||
- 5 гостей: вариант 3+2
|
||||
- 6 гостей: варианты 3+3 или 2+2+2
|
||||
@@ -163,6 +164,7 @@ python3 {baseDir}/scripts/save_booking.py \
|
||||
--room "Двухкомнатный номер" \
|
||||
--total "54 600 ₽" \
|
||||
--prepay "7 800 ₽" \
|
||||
--payment-confirmed-by-manager \
|
||||
--booking-status booked \
|
||||
--notes "трансфер нужен" \
|
||||
--notify
|
||||
|
||||
@@ -195,6 +195,7 @@ def main():
|
||||
p.add_argument("--room", required=True, help="Категория номера")
|
||||
p.add_argument("--total", required=True, help="Итоговая сумма")
|
||||
p.add_argument("--prepay", required=True, help="Сумма предоплаты")
|
||||
p.add_argument("--payment-confirmed-by-manager", action="store_true", help="Явное подтверждение менеджера на внесение предоплаты")
|
||||
p.add_argument("--notes", default="", help="Комментарий")
|
||||
p.add_argument("--file", default="/home/openclaw/.openclaw/workspace/skills/paradiz/data/bookings.txt")
|
||||
p.add_argument("--notify", action="store_true", help="Отправить Telegram-уведомление")
|
||||
@@ -214,9 +215,12 @@ def main():
|
||||
day_price = f"{(total_num / nights):,.0f} ₽".replace(",", " ") if nights else ""
|
||||
|
||||
# Жёсткое правило по бизнес-логике:
|
||||
# - если предоплаты нет (<= 0) -> Предварительное
|
||||
# - если предоплата есть (> 0) -> Забронировано
|
||||
# - предоплату можно вносить только после явного подтверждения менеджера
|
||||
# - если подтверждения нет, предоплата считается 0 и статус "Предварительное"
|
||||
prepay_num = _extract_amount(args.prepay)
|
||||
if prepay_num > 0 and not args.payment_confirmed_by_manager:
|
||||
raise SystemExit("Предоплата > 0 запрещена без флага --payment-confirmed-by-manager")
|
||||
|
||||
booking_status = "Забронировано" if prepay_num > 0 else "Предварительное"
|
||||
|
||||
entry = {
|
||||
|
||||
Reference in New Issue
Block a user