====== Настройка r_keeper ====== ProPrepayer ставится локально в ресторане, обычно на компьютер с кассовым сервером. Перед установкой нужно подготовить r_keeper. ProPrepayer взаимодействует с r_keeper двумя способами: - работает с кассовым сервером через XML-интерфейс: читает заказы и справочники, вносит предоплату, отправляет сообщения официанту, открывает окно на кассе; - открывается во встроенном браузере кассы по функциональной клавише в заказе. ===== XML-интерфейс ===== На **кассовом сервере** настраивается HTTP-XML интерфейс. Производится стандартно, особенностей нет. Статья, описывающая настройку: [[https://wiki.carbis.ru/external/zz_дополнительные_материалы/02_xml_interfaсe_rkeeper|Настройка XML интерфейса]] Запоминаем IP-адрес кассового сервера и порт интерфейса (обычно 8026). Для ProPrepayer нужен пользователь (сотрудник) r_keeper с правом на XML-интерфейс. Его логин и пароль вводятся в админке ProPrepayer. ProPrepayer вносит предоплату командой SaveOrder XML-интерфейса. Убедитесь, что на кассовом сервере доступно сохранение заказов через XML (лицензия "R-Keeper модуль XML сохранение заказов ПО"), т.е. что есть активная лицензия на этот модуль. ===== Справочники для предоплаты ===== В менеджерской станции проверьте или создайте: * **Валюту предоплаты** — валюта, которой вносится аванс, например «Оплата по платёжной ссылке». Валюты типа «Зачёт аванса» не подходят: ими r_keeper сам гасит аванс при закрытии заказа. * **Причину внесения** с отмеченной галочкой **«Предоплата»**. В админке ProPrepayer показываются только такие причины. * **Станцию печати чека аванса** — кассу, на которой будет печататься фискальный чек «Аванс». У станции должен быть назначен принтер **«Для чеков»**. **Важно:** если у станции печати настроено «не печатать», r_keeper вносит предоплату **без фискального чека**. Проверьте это при установке. * **Сотрудника-автора**, от имени которого вносится предоплата. Именно его ФИО будет передано в фискальный чека аванса. Расширенные свойства заказа **EMail** и **Phone** в r_keeper предустановлены. ProPrepayer записывает в них контакты гостя, и они попадают в чек аванса. Отдельно настраивать ничего не нужно. ===== Адрес ProPrepayer ===== Менеджерская станция: Параметры → Установочные → Связь с другими системами → Сервисы → Сервис 1 → **«URL web-сервиса 1»**. Значение: http://192.168.1.10:11260/ где 192.168.1.10 — IP компьютера, на котором установлен ProPrepayer, 11260 — порт ProPrepayer (по умолчанию). Слэш в конце обязателен. {{:external:proprepayer:proprepayer_rk_url.png?direct&900|URL web-сервиса 1}} //1 — параметр «URL web-сервиса 1» в дереве параметров; 2 — значение (строковый параметр).// Скрипт ниже берёт адрес именно из «URL web-сервиса 1». При смене IP сервера достаточно поправить этот параметр — скрипт менять не нужно. Если «URL web-сервиса 1» занят - можно использовать 2,3,4. При этом в скрипте, описанном ниже, нужно будет заменить prmWebService1URL на prmWebService2URL, prmWebService3URL или prmWebService4URL. ===== Функциональная клавиша «Предоплата по ссылке» ===== Штатный параметр «URL web-сервиса» не умеет подставлять данные текущего заказа, поэтому форма открывается **функциональной клавишей со скриптом**. **1. Скрипт.** Откройте **Сервис → Скрипты**, выберите в дереве группу **«Операции»** и создайте в ней новый скрипт «Предоплата по ссылке». Текст скрипта открывается в свойствах: **Другое → SomeScript → [Скрипт]**. {{:external:proprepayer:proprepayer_rk_scripts.png?direct&900|Справочник «Скрипты»}} //1 — группа «Операции»; 2 — скрипт «Предоплата по ссылке»; 3 — идентификатор скрипта, он же номер в имени процедуры; 4 — открыть текст скрипта.// Номер процедуры (ProcessOperation1004074 в примере) r_keeper задаёт сам при создании — оставьте свой номер, замените только тело процедуры: procedure ProcessOperation1004074(Parameter: integer); var url: string; begin url := RK7.Parameters.StringValue(prmWebService1URL) + '?v=1'; url := url + '&guid=' + RKCheck.CurrentOrder.GUIDString; url := url + '&table=' + IntToStr(RKCheck.CurrentOrder.TableCode); url := url + '&employee=' + RK7.CashUser.Name; web.browse(url); end; Нажмите **«Проверка»** — ошибок быть не должно, затем **«ОК»** и сохраните скрипт. {{:external:proprepayer:proprepayer_rk_script_text.png?direct&900|Текст скрипта}} //1 — имя процедуры с номером, который задал r_keeper; 2 — «Проверка»; 3 — «ОК».// **2. Операция.** Откройте **Сервис → Операции**, группу **«Пользовательские операции»**. Возьмите свободную «Пользовательская операция N», переименуйте её в «Предоплата по ссылке» и в разделе **Scripting** в поле **«Скрипт»** выберите созданный скрипт. {{:external:proprepayer:proprepayer_rk_operation.png?direct&900|Операция «Предоплата по ссылке»}} //1 — группа «Пользовательские операции»; 2 — операция; 3 — название; 4 — скрипт операции.// **3. Функциональная клавиша.** Откройте **Настройки → Графический интерфейс → Функциональные клавиши** и создайте клавишу «Предоплата по ссылке» (в примере — в группе «Пользовательские»). В полях **«Операция»** и **«Операция пуст.»** выберите операцию «Предоплата по ссылке», в **«Типах селекторов»** отметьте селектор операций чека («Чек: Селектор операций»). {{:external:proprepayer:proprepayer_rk_fkey.png?direct&900|Функциональная клавиша}} //1 — группа клавиш; 2 — клавиша «Предоплата по ссылке»; 3 — операция клавиши; 4 — типы селекторов.// **4. Селектор.** Откройте **Настройки → Графический интерфейс → Селекторы** и добавьте клавишу в селектор **внутри заказа** (там, где доступен текущий заказ). В примере: Заказ → Селектор операций → Чек: Селектор операций → Чек: операции с доп кнопками → **Доп**. В вашем ресторане это селектор операций, который открывается на кассе в заказе. {{:external:proprepayer:proprepayer_rk_selector.png?direct&900|Клавиша в селекторе заказа}} //1 — селектор «Доп»; 2 — кнопка «Предоплата по ссылке» в селекторе.// Настройте использование селекторов, чтобы использовался именно селектор с добавленной кнопкой. **5.** Перезагрузите кассы, чтобы изменения применились.