diff --git a/USER.md b/USER.md index faf0dc7..cb3dea7 100644 --- a/USER.md +++ b/USER.md @@ -20,6 +20,7 @@ _Learn about the person you're helping. Update this as you go._ - При оформлении брони обязательно спрашивать комментарий клиента; если комментарий есть, фиксировать его в данных брони (журналы/уведомление). - Как только гость забронировал/зафиксировал бронь — обязательно отправлять гостю в VK файл брони. - Дети до 1 года в количестве гостей указываются, но в оплату не включаются. + - Предоплату в бронь вносить только после явного подтверждения от Виталия. Без подтверждения предоплата = 0 и статус «Предварительное». ## Context diff --git a/skills/paradiz/SKILL.md b/skills/paradiz/SKILL.md index fb6d5cb..60187e4 100644 --- a/skills/paradiz/SKILL.md +++ b/skills/paradiz/SKILL.md @@ -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 diff --git a/skills/paradiz/scripts/save_booking.py b/skills/paradiz/scripts/save_booking.py index 31e0baa..912f914 100755 --- a/skills/paradiz/scripts/save_booking.py +++ b/skills/paradiz/scripts/save_booking.py @@ -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 = {