Модуль CSV Импорт 

Данная утилита предназначена для парсинга *.csv файлов со списком гостей, выгруженным из другой гостиничной системы, для последующей загрузки в базу данных Shelter2.

Данный модуль не лицензируется, предоставляется на бесплатной основе.

Скачать модуль можно тут.

В файле CSVParser.xml указать путь до БД Shelter.

Рабочее окно программы : 

ВНИМАНИЕ!!! Сотрудники комании UCS не занимаются выгрузкой списка гостей из других гостиничных систем. Так же, рекомендуем все последующие действия вначале выполнять на тестовой БД Shelter2.

Структура выгруженного файла должна быть следующего формата : 

"Иванов";"Иван";"Иванович";"Иванов Иван Иванович";"7374";"178910";"УВД Заволжского р-на";"г.Ульяновск";" 702-013";"Россия";"testivanov@yandex.ru";"7859125"

Разделитель - ;

Формат даты/времени - числовой

Содержимое полей должно быть обернуто в апострофы (")

Далее, в выгруженном файле, в самой первой строке, мы "сопоставляем" значения с полями в БД Shelter (для сопоставления рекомендую использовать Notepad++):

NAME;NAME1;NAME2;FULLNAME;DOC_SERIES;NOGUEST;NOCONTENT;BIRTH_LOCALITY;DOC_CODEDEPAT;;EMAIL;PHONES

Где :

 
NAME - фамилия гостя

NAME1 - имя гостя

NAME2 - отчество гостя

FULLNAME - ФИО гостя

DOC_SERIES - серия паспорта

NOGUEST - номер паспорта

NOCONTENT - кем выдан

BIRTH_LOCALITY - город рождения

DOC_CODEPAT - код подразделения

EMAIL - почта гостя

PHONES - номер телефона гостя

Если в выгруженном файле присутсвутют поля, которые в Shelter не имеют аналогов, то их можно пропустить, указав над соответствующим полем разделитель - ;

После соответствующих настроек, *.csv файл выглядит так : 

NAME;NAME1;NAME2;FULLNAME;DOC_SERIES;NOGUEST;NOCONTENT;BIRTH_LOCALITY;DOC_CODEDEPAT;;EMAIL;PHONES
"Иванов";"Иван";"Иванович";"Иванов Иван Иванович";"7374";"178910";"УВД Заволжского р-на";"г.Ульяновск";" 702-013";"Россия";"testivanov@yandex.ru";"7859125"
"Петров";"Петр";"Петрович";"Петров Петр Петрович";"5367";"758631";"ОУФМС России по Сар. обл.";"г.Балаково";" 650-121";"г.Балаково";"testpetrov@yandex.ru";"9311254"
"Сидоров";"Георгий";"Александрович";"Андреев Вячеслав Александрович";"4004";"194177";"14о.м.Кировского р-на г.Санкт-";"г.Санкт-Петербург";"601-088";"г.Тверь";"testsidorov@yandex.ru";"84958006332101"
 
Необходимо нажать "Запустить" и в появившемся окне выбрать сформированный ранее *.csv файл - программа начнет предварительную загрузку в область memo (утилита не загружает данные в БД Shelter, а только "парсит" выбранный файл)
На выходе мы получаем готовый скрипт для загрузки в БД Shelter 2 :
Значение ID берется из базы данных Shelter автоматически, с добавлением единицы, значение GUESTTYPE по умолчанию 2.
Далее скопировать сформированный скрипт в IBExpert (через ctrl+F12) и выполнить (F9)
ВНИМАНИЕ!!! Записи, которые вернулись с ошибкой после выполнения скрипта, в БД не попадут
Если неверно сопоставить поля, то можно получить следующую ошибку : 

Содержимое *.csv файла : 

NAME;NAME1;NAME2;FULLNAME;DOC_SERIES;NOGUEST;NOCONTENT;BIRTH_LOCALITY;DOC_CODEDEPAT;;EMAIL;PHONES
"Иван";"Иванович";"Иванов Иван Иванович";"7374";"178910";"УВД Заволжского р-на";"г.Ульяновск";" 702-013";"Россия";"testivanov@yandex.ru";"7859125"
"Петров";"Петр";"Петрович";"Петров Петр Петрович";"5367";"758631";"ОУФМС России по Сар. обл.";"г.Балаково";" 650-121";"г.Балаково";"testpetrov@yandex.ru";"9311254"
"Сидоров";"Георгий";"Александрович";"Андреев Вячеслав Александрович";"4004";"194177";"14о.м.Кировского р-на г.Санкт-";"г.Санкт-Петербург";"601-088";"г.Тверь";"testsidorov@yandex.ru";"84958006332101"
 
Как видно, в первой строке отсутсвуте фамилия гостя, из-за чего нарушается общая структура файла, после чего мы получаем ошибку, как на скриншоте выше.
ВНИМАНИЕ!!! После загрузки гостей в БД Shelter2, в обязательном порядке необходимо изменить значение генератора G_GUETS_ID через IBExpert, иначе при создании гостя в Shelter появится такая ошибка :

Необходимо через IBExpert выполнить следующий запрос (F12) : 
select max(id) from guests
Который вернет максимальное значение поля ID для таблицы Guests. В моем случае это 367190 : 

Далее, в строке поиска IBExpert, вводим 
G_GUETS_ID и ищем :

Открыв этот генератор, изменяем значение на то, что вернул предыдущий запрос и сохраняем (F9)

После этого можно создавать новые карточки гостя в Shelter.
Результат сохранения гостей через утилиту CSV импорт :