Тема, конечно, про Shelter, но Эдельвейс тоже для автоматизации гостиницы :)
Итак, просто хочу объявить, что мы теперь умеем настраивать связку гостиничной системы Edelweiss (http://medallion.reksoft.ru/pms) с системой R-Keeper 6. Боевое крещение состоялось, так что кому нужно - обращайтесь. Как обычно для систем UCS, все нетривиально, так что проконсультировать вряд ли сможем, но на месте разобраться повторно, думаю, сумеем.
Добавлю, что для дружбы кипера и эдельвейса нужна программа-связка, она стоит ДЕНЕГ :)
Jordan_fx
26.03.2011, 13:24
Тема, конечно, про Shelter, но Эдельвейс тоже для автоматизации гостиницы :)
Итак, просто хочу объявить, что мы теперь умеем настраивать связку гостиничной системы Edelweiss (http://medallion.reksoft.ru/pms) с системой R-Keeper 6. Боевое крещение состоялось, так что кому нужно - обращайтесь. Как обычно для систем UCS, все нетривиально, так что проконсультировать вряд ли сможем, но на месте разобраться повторно, думаю, сумеем.
Очень интересно,.. а что дает сама по себе ваша связка.., какой принцип организации связи между Эдельвейсом и R-Keeper?
Судя по слухам существует какой то модуль связи.. но как он работает и что позволяет для меня пока загадка..
Тут на медне решая задачу организации безналичных оплат использовал счет Эдельвейса в качестве расчетного, т.е туда заносится депозит, и туда же попадают все проводки с ресторана, бара, кафе итд.. соответственно если на счете минус то проводка не проходит. К любому счету в Эдельвейсе можно привязать карту оплаты (в моем случае это ключи от замков Salto).
Сам по себе R-Keeper связан с базой Эдельвейса через модуль к Farcards.
Проект пока не доделан, т.к. заказчик выдвинул новое требование (сходу и в обход ТЗ) о сокращении операций со счетом, т.е. чтобы после резервирования номера и выписывании карты-ключа, карта автоматически привязывалась к последнему созданному счету гостя. Но так как в базе Эдельвейса никакой информации о ключах не нашел (видимо она сейвится Hams'ом в закрытую mdb-базу), вот счас сижу ломаю голову, что со всем этим добром делать, проект не принимают :(
а что дает сама по себе ваша связка
Она не наша, это стандартный модуль от разработчиков Edelweiss и dll для R-Keeper.
Судя по слухам существует какой то модуль связи
Точно, существует. Собственно, Игорь (St@rch) об этом прямо написал.
но как он работает и что позволяет для меня пока загадка
Вот тут доподлинно не отвечу.
Информация от разработчика:
"...архив с rk.dll. rk.ini и скрипт , который следует исполнить по БД отеля.
Со стороны АСУ "Эдельвейс" следует так же настроить "привязку услуги" в конфигураторе:
Конфигуратор -> меню "Interfaces" -> Настройка 1С -> Подразделения -> Дважды кликнуть на раздел "Ресторан" -> в поле Код 1С внести Слово "Restoran"
Конфигуратор -> меню "Interfaces" -> Restoran Configaration -> Создать привязку к услуге.
Описание функций rk.dll:
Список экспортируемых функций:
BYTE GetRoomInfo(LONG roomNum, char* listPerson, char* errtxt)
BYTE GetMaxSum(LONG persID, LONG transactionID, double* aMaxCredit, char* guestName, char* roomNum, char* errtxt)
BYTE Transaction(LONG persID,LONG transactionID,LONG checkNum,LONG waiterNum,LONG kassirNum,LONG guests,LONG unitNum,double aPrice,char* errTxt)
BYTE CheckDetailInfo(LONG checkNum, char* info, char* txterr)
BYTE DelTrans(LONG personID,LONG transactionID,LONG unitNum,double aPrice,LONG checkNum,char* errTxt)
*Возвращается список персон с их persID в формате \x01SurName\x02persID\x01SurName\x02persID.... проживающих в одно комнате
если все удачно то возвращается 0, если нет, то код ощибки.
использует процедуру (call RKeeperGetRoomInfo('%s'),szRoomNum) {!!! Комната почему-то на входе функции идет как числовое значение?! а потом конвертируется в символьное}
BYTE GetRoomInfo(LONG roomNum,
char* listPerson, - возвращается список персон с их persID в формате \x01SurName\x02persID\x01SurName\x02persID....
char* errtxt) - словесное описание латиницей.
*Возвращает сумму кредита
если все удачно то возвращается 0, если нет, то код ощибки.
использует процедуру ("call RKeeperGetMaxCredit(%ld)", persID)
BYTE GetMaxSum(LONG persID,
LONG transactionID, - зарезервировано и не используется должно быть = 0 или же служеб инфа ресторанной системы
double* aMaxCredit, - возвращает значение кредита
char* guestName, - возвращает имя гостя
char* roomNum, - возвращает номер комнаты
char* errtxt) - словесное описание ошибки латиницей.
*Заносит проводку от ресторана на счет конкретной персоны
если все удачно то возвращается 0, если нет, то код ощибки.
использует процедуру (call RKeeperToEdelweiss(%ld,%ld,%ld,%ld,%ld,%ld,%ld,%.2 f), - использует InsertAccountContent
persID,
transactionID,
checkNum,
waiterNum,
kassirNum,
guests,
unitNum,
aPrice);
BYTE Transaction(LONG persID, - id интересующей нас персоны (полученное при вызове GetRoomInfo)
LONG transactionID, - зарезервировано и не используется должно быть = 0 или же служеб инфа ресторанной системы
LONG checkNum, - видимо номер чека (инфа известная ресторанной системе)
LONG waiterNum, - код официанта
LONG kassirNum, - номер кассира
LONG guests, - зарезервировано и не используется должно быть = 0
LONG unitNum, - используется как информация при занесении проводки в аккаунтконтент
double aPrice, - price
char* errTxt) - словесное описание ошибки латиницей.
*Дополнительная информация по чеку, которая будет записана в поле AccountContent.MEMOFLD
если все удачно то возвращается 0, если нет, то код ощибки.
в ВД update AccountContent set MEMOFLD = '%s' where RKeeperCheckNum = checkNum; %s = MEMOFLD {info}
BYTE CheckDetailInfo(LONG checkNum,
char* info, - дополнительная информация, которая будет записана в поле AccountContent.MEMOFLD
char* txterr) - словесное описание ошибки латиницей.
*Помечает ранее занесенную проводку ресторана, как удаленную
если все удачно то возвращается 0, если нет, то код ощибки.
использует процедуру (call RKeeperDelTrans(%ld,%ld,%ld,%.2f,%ld),
personID,
transactionID,
unitNum,
aPrice,
checkNum);
{все что она делает так это: update AccountContent set Deleted = 1 where RKeeperCheckNum=a_CheckNum and OrgPrice=a_FullSum;}
BYTE DelTrans(LONG personID, - id интересующей нас персоны (полученное при вызове GetRoomInfo)
LONG transactionID, - зарезервировано и не используется должно быть = 0
LONG unitNum, - зарезервировано и не используется должно быть = 0
double aPrice, - сумма ресторана
LONG checkNum, - номер ранее пробитого чека
char* errTxt) - словесное описание ошибки латиницей.
*Восстанавливает ранее удаленную проводку ресторана на счету конкретного гостя
если все удачно то возвращается 0, если нет, то код ощибки.
использует процедуру call RKeeperRestoreTrans(%ld,%ld,%ld,%.2f,%ld),
personID,
transactionID,
unitNum,
aPrice,
checkNum);
{все что она делает так это: update AccountContent set Deleted = 0 where RKeeperCheckNum=a_CheckNum and OrgPrice=a_FullSum;}
BYTE RestoreTrans(LONG personID, - id интересующей нас персоны (полученное при вызове GetRoomInfo)
LONG transactionID, - зарезервировано и не используется должно быть = 0
LONG unitNum, - зарезервировано и не используется должно быть = 0
double aPrice, - сумма ресторана
LONG checkNum, - номер ранее пробитого чека
char* errTxt) - словесное описание ошибки латиницей. "
Еще раз отмечу, что кроме dll для R-Keeper (в архиве) нужна еще платная связка от Edelweiss!
Jordan_fx
29.03.2011, 05:00
Тем не менее Алексей огромное Вам спасибо, посмотрю что из этого можно получить..:drinks:
Rus75lan
29.03.2011, 16:34
Ставил с горем пополам, но до сих пор работает:)
Напишу из того, что помню.
для начала необходимо получить (купить) у Эделинка эту саму пресловутую связку.
Савится она на одном из клиентов АСУ "Эдельвейс" (я ставил на ресепшене)
Для настройки услуги, которая будет помещаться на счёт гостя при передаче задолженности от ресторанной системы следует в конфигураторе АСУ "Эдельвейс" в меню Interfaces -> Magic confuration -> Выбрать соотвествующую услугу из списка, например "Услуги ресторана"(предварительно эту услугу следует создать в разделе План счетов -> Услуги -> Дополнительные услуги ).
В дистибутиве всего 4 файла, настраивается инишник (2 строки) и запускается сервер связки. Связь идет непосредственно с кассой. Я ставил по NETBEUI (в инишнике надо будет прописывать номер адаптера, ищется стандартными средствами из дистибутива кассы), но теоретически можно и по tcp/ip, прописав имя сервера связки с хостах.
При запуске сервера связки запускается окошко как в сервере р-кипер на винде и видно, что есть соединение с кассой.
потом на кассу кидаем прилагаемую в дистибутиве длл, прописываем ее в rkeeper6.ini , в локал.дб имя сервера связки, создаем валюту "гостиничный счет"
Если будут на сервере связки появляться ошибки, связанные с базой данных, то надо будет для Эдельвейса выполнить скрипт, который ранее выложил SH.
И работаем. Стыковка должна позволять выводить список всех проживающих гостей в АСУ "Эдельвейс" из ресторанной системы и перенос в АСУ "Эдельвейс" суммы из ресторанной системы в счёт определенного гостя.
Powered by vBulletin® Version 4.2.6 LTS Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot