Техническое описание импорта данных в систему Мозг
Вся необходимая информация для разработки собственного импорта данных в систему Мозг из любой системы автоматизации ресторанов.
Общая информация
Данные в систему Мозг отправляются в виде архива с CSV файлами по протоколу HTTPS по адресу https://mozg.rest/import. В случае коробочной версии системы Мозг, вместо https://mozg.rest указывается ip-адрес виртуальной машины.
Для работы импорта необходима активная лицензия.
Перед импортом данных необходимо выгрузить справочник ресторанов и отметить чекбокс "Импорт" у импортируемых ресторанов в настроках Мозга в разделе "Рестораны".
В случае импорта данных из нескольких источников (серверов баз данных) для каждого из них необходимо создать запись в настроках Мозга в разделе "Источники импорта".
Перед импортом файла order.csv из системы Мозг удалятся все заказы, продажи, оплаты и чеки текущего источника импорта, начиная с самой ранней даты в файле order.csv.
Отправка
| HTTP Метод | POST |
|---|---|
| URI | import |
| Result | Сообщение об успешном добавлении архива в очередь импорта или об ошибке. |
Параметры
| Параметр | Тип, формат | Описание |
| orgid | integer |
Идентификатор организации в системе Мозг, находится в настройках системы Мозг в разделе "Импорт данных". |
| dbid | integer | Идентификатор источника импорта в системе Мозг, находится в настройках системы Мозг в разделе "Импорт данных". |
| impkey | string | Ключ импорта, находится в настройках системы Мозг в разделе "Импорт данных". |
| archive | file | Архив arch.tar.gz с файлами csv. |
Описание файлов для импорта
Разделитель значений - ; (точка с запятой).
Символ экранирования - `.
Символ конца строк - \r\n.
Кодировка CP1251.
Файл categ.csv - справочник категорий меню системы автоматизации
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID категории меню системы автоматизации |
| 3 | desc | varchar(255) | Название категории меню системы автоматизации | |
| 4 | sort | integer | Порядок сортировки |
Файл class1.csv - справочник классификаторов системы автоматизации 1
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID классификатора 1 |
| 3 | desc | varchar(50) | Название классификатора 1 | |
| 4 | sort | integer | Порядок сортировки |
Файл class2.csv - справочник классификаторов системы автоматизации 2
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID классификатора 2 |
| 3 | desc | varchar(50) | Название классификатора 2 | |
| 4 | sort | integer | Порядок сортировки |
Файл cost.csv - себестоимость
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | date | Да | char(7) | Год и месяц в формате ГГГГ-ММ |
| 3 | rest_id | Да | varchar(36) | GUID ресторана |
| 4 | item_id | Да | varchar(36) | GUID позиции меню |
| 5 | cost | double | Себестоимость единицы |
Файл cot.csv - справочник типов заказа
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID типа заказа |
| 3 | desc | varchar(50) | Название типа заказа | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный |
Файл curr.csv - справочник методов оплат
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID метода оплаты |
| 3 | desc | varchar(50) | Название метода оплаты | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 5 | crrg_id | integer | Id группы метода оплаты | |
| 6 | active_in_reps | integer | Участие в расчете себестоимости списаний и служебных методов оплат. 0 - нет, 1 - да. |
Файл deliv_addr.csv - справочник адресов доставки
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID адреса |
| 3 | desc | varchar(255) | Адрес | |
| 4 | active | integer | Активность. 0 - нет, 1 - да. | |
| 5 | city_id | varchar(36) | GUID города |
Файл deliv_city.csv - справочник городов доставки
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID города |
| 3 | desc | varchar(255) | Название | |
| 4 | active | integer | Активность. 0 - нет, 1 - да. |
Файл discount.csv - справочник скидок
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID скидки |
| 3 | desc | varchar(50) | Название скидки | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный |
Файл empl.csv - справочник сотрудников
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID сотрудника |
| 3 | desc | varchar(50) | Имя сотрудника | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 5 | rest_id | varchar(36) | GUID ресторана | |
| 6 | code | integer | Код сотрудника | |
| 7 | cardcode | varchar(50) | Табельный номер сотрудника | |
| 8 | role_name | varchar(50) | Название должности сотрудника |
Файл group.csv - справочник групп меню
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID группы меню |
| 3 | desc | varchar(50) | Название группы меню | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 5 | parent_id | varchar(36) | GUID родительской группы меню | |
| 6 | rest_id | varchar(36) | GUID ресторана |
Файл hall.csv - справочник залов
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID зала |
| 3 | desc | varchar(50) | Название зала | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 5 | rest_id | varchar(36) | GUID ресторана | |
| 6 | sort | integer | Порядок сортировки | |
| 7 | hllg_id | integer | Id подразделения | |
| 8 | guest | integer | вместимость гостей |
Файл item.csv - справочник номенклатуры
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID позиции меню |
| 3 | group_id | varchar(36) | GUID группы меню | |
| 4 | desc | varchar(50) | Название позиции меню | |
| 5 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 6 | print_id | varchar(36) | GUID места приготовления (принтера, цеха) | |
| 7 | categ_id | varchar(36) | GUID категории меню системы автоматизации | |
| 8 | categ_mozg_id | integer | Id категории Мозга | |
| 9 | class1_id | varchar(36) | GUID классификатора 1 | |
| 10 | class2_id | varchar(36) | GUID классификатора 2 | |
| 11 | portion | float | Порционный коэффициент. Если в меню есть позиция, которая в количестве 1 является половиной порции, то ПК равен 0.5. Если позиция является большим блюдом на четверых, тогда ПК равен 4. У незначительных позиций и модификаторов ПК равен нулю. Этот показатель необходим для расчета количества блюд/напитков в чеке на гостя. | |
| 12 | *не используется* | |||
| 13 | *не используется* | |||
| 14 | rest_id | varchar(36) | GUID ресторана | |
| 15 | type | varchar(50) | Тип позиции. DISH - позиция меню, MODIFIER - модификатор, GOODS - товар, PREPARED - полуфабрикат | |
| 16 | *не используется* | |||
| 17 | cooktime | integer | Норматив времени приготовления позиции меню в минутах |
Файл item_scale.csv - справочник шкал размеров
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID шкалы размеров |
| 3 | desc | varchar(50) | Название шкалы размеров | |
| 4 | code | integer | Код шкалы размеров | |
| 5 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный |
Файл item_size.csv - справочник приказов (размеров)
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID приказа |
| 3 | desc | varchar(50) | Название приказа | |
| 4 | code | integer | Код приказа | |
| 5 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 6 | scale_id | varchar(36) | GUID шкалы размеров |
Файл order.csv - заказы
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | visit_id | Да | varchar(36) | GUID заказа |
| 3 | rest_id | varchar(36) | GUID ресторана | |
| 4 | *не используется* | |||
| 5 | uot_id | varchar(36) | GUID маркетингового типа заказа | |
| 6 | cot_id | varchar(36) | GUID типа заказа | |
| 7 | date | date | Бизнес дата (дата смены) | |
| 8 | open | time | Время открытия заказа | |
| 9 | close_date | date | Дата закрытия заказа | |
| 10 | close | time | Время закрытия заказа | |
| 11 | table_id | varchar(36) | GUID стола | |
| 12 | table_desc | varchar(11) | Номер стола | |
| 13 | hall_rest_id | varchar(36) | GUID ресторана зала | |
| 14 | hall_id | varchar(36) | GUID зала | |
| 15 | guest | integer | Количество гостей | |
| 16 | empl_id | varchar(36) | GUID сотрудника, официант | |
| 17 | empl1_id | varchar(36) | GUID сотрудника, кассир | |
| 18 | empl2_id | varchar(36) | GUID сотрудника, дополнительное поле | |
| 19 | drtn | integer | длительность заказа (мин) | |
| 20 | sum | double | Оплаченная сумма заказа | |
| 21 | check | integer | Id чека | |
| 22 | common_visit_id | varchar(36) | GUID основного заказа. Для функции объединения заказов | |
| 23 | precheck | datetime | Дата и время пречека | |
| 24 | deliv_addr_id | varchar(36) | GUID адреса доставки | |
| 25 | source | varchar(36) | Источник заказа | |
| 26 | courier_id | varchar(36) | GUID сотрудника, курьер доставки | |
| 27 | operator_id | varchar(36) | GUID сотрудника, оператор доставки |
Файл pbnd.csv - продажи с методами оплат
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | visit_id | varchar(36) | GUID заказа | |
| 3 | rest_id | varchar(36) | GUID ресторана | |
| 4 | uni | Да | varchar(36) | GUID продажи |
| 5 | *не используется* | |||
| 6 | item_id | varchar(36) | GUID позиции меню | |
| 7 | curr_id | varchar(36) | GUID метода оплаты | |
| 8 | pricesum | double | Сумма без учета скидок (за количество pbnd_qntt, а не за единицу) | |
| 9 | paysum | double | Оплаченная сумма (за количество pbnв_qntt, а не за единицу) | |
| 10 | qntt | double | Количество | |
| 11 | prepay | integer | Предоплата. Да - 1, нет - 0 | |
| 12 | *не используется* | |||
| 13 | service_charge | varchar(100) | Название наценки | |
| 14 | dishId | varchar(36) | GUID блюда, с которым продан модификатор. Если это модификатор, проданный с блюдом, то указать GUID блюда. В другом случае оставить поле пустым. | |
| 15 | *не используется* | |||
| 16 | paysum_base | double | Оплаченная сумма без учета модификаторов | |
| 17 | item_size_id | varchar(36) | GUID приказа | |
| 18 | print_id | varchar(36) | GUID места приготовления (принтера, цеха) | |
| 19 | discount_id | varchar(36) | GUID скидки | |
| 20 | cooktime | integer | Фактическое время приготовления позиции меню в секундах | |
| 21 | waittime | integer | Фактическое время подачи позиции меню в секундах | |
| 22 | cost_sum | double | Себестоимость проданной позиции |
Файл pmnt.csv - оплаты
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | visit_id | varchar(36) | GUID заказа | |
| 3 | rest_id | varchar(36) | GUID ресторана | |
| 4 | uni | Да | varchar(36) | GUID платежа |
| 5 | *не используется* | |||
| 6 | curr_id | varchar(36) | GUID метода оплаты | |
| 7 | sum | double | Оплаченная сумма | |
| 8 | prepay | integer | Предоплата. Да - 1, нет - 0 | |
| 9 | rcpt_uni | varchar(36) | GUID чека | |
| 10 | service_charge | varchar(100) | Название наценки |
Файл print.csv - справочник мест приготовления (принтеров, цехов)
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID места приготовления |
| 3 | desc | varchar(50) | Название места приготовления | |
| 4 | sort | integer | Порядок сортировки |
Файл rcpt.csv - чеки
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | visit_id | varchar(36) | GUID заказа | |
| 3 | rest_id | varchar(36) | GUID ресторана | |
| 4 | uni | Да | varchar(36) | GUID чека |
| 5 | *не используется* | |||
| 6 | date | datetime | Дата и время закрытия чека | |
| 7 | num | integer | Номер чека | |
| 8 | deleted | integer | Чек удален. 0 - нет, 1- да | |
| 9 | sum | double | Оплаченная сумма | |
| 10 | presum | double | Сумма без учета скидок | |
| 11 | service_charge | varchar(100) | Название наценки |
Файл rem.csv - удаления блюд
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | date | datetime | Дата и время заказа | |
| 3 | order_code | integer | Номер чека | |
| 4 | visit_id | varchar(36) | GUID заказа | |
| 5 | rest_id | varchar(36) | GUID ресторана | |
| 6 | uni | Да | varchar(36) | GUID удаления |
| 7 | item_id | varchar(36) | GUID позиции меню | |
| 8 | item_qntt | double | Количество | |
| 9 | item_sum | double | Сумма | |
| 10 | comment | varchar(500) | Комментарий | |
| 11 | reason | varchar(500) | Причина удаления | |
| 12 | writeoff_reason | varchar(500) | Причина списания | |
| 13 | remtype_id | varchar(36) | GUID типа удаления |
Файл remtype.csv - справочник типов удаления блюд
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(50) | GUID типа удаления |
| 3 | code | integer | Код типа удаления | |
| 4 | desc | varchar(255) | Название типа удаления | |
| 5 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный |
Файл rest.csv - справочник ресторанов
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID ресторана |
| 3 | desc | varchar(50) | Название ресторана | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 5 | id | varchar(36) | GUID ресторана | |
| 6 | head | Integer | Центральный офис, 0 - нет, 1 - да | |
| 7 | comment | varchar(255) | Комментарий |
Файл table.csv - справочник столов
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID стола |
| 3 | hall_id | varchar(36) | GUID зала | |
| 4 | desc | varchar(11) | Номер стола | |
| 5 | guest | integer | Вместимость стола | |
| 6 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный | |
| 7 | rest_id | varchar(36) | GUID ресторана |
Файл uot.csv - справочник маркетинговых типов заказа
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID маркетингового типа заказа |
| 3 | desc | varchar(50) | Название маркетингового типа заказа | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный |
Файл writeoff.csv - списания
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID списания |
| 3 | *не используется* | |||
| 4 | documentnum | integer | Номер документа списания | |
| 5 | rest_id | varchar(36) | GUID ресторана | |
| 6 | date | datetime | Дата и время списания | |
| 7 | item_id | varchar(36) | GUID позиции меню | |
| 8 | qntt | double | Количество | |
| 9 | sum | double | Сумма списания | |
| 10 | operation | varchar(36) | GUID метода оплаты | |
| 11 | automatic | integer | Автоматическое списание. 0 - нет, 1- да | |
| 12 | uom | varchar(10) | Единица измерения | |
| 13 | reason1_id | varchar(36) | GUID причины списания 1 | |
| 14 | reason2_id | varchar(36) | GUID причины списания 2 |
Файл writeoff_reason1.csv - справочник причин списания 1
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID причины списания 1 |
| 3 | desc | varchar(50) | Название причины списания 1 |
Файл writeoff_reason2.csv - справочник причин списания 2
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | Id источника импорта |
| 2 | id | Да | varchar(36) | GUID причины списания 2 |
| 3 | desc | varchar(50) | Название причины списания 2 | |
| 4 | reason1_id | varchar(36) | GUID причины списания 1 |
Файл supplier.csv - справочник поставщиков
|
П/п |
Название поля |
Первичный ключ |
Тип данных |
Описание |
| 1 | db_id | Да | integer | id источника импорта |
| 2 | id | Да | varchar(36) | GUID поставщика |
| 3 | desc | varchar(50) | Название поставщика | |
| 4 | status | integer | Статус. 0 - удален, 1 - черновик, 2 - неактивный, 3 - активный |
Файл store.csv - справочник складов
| П/п | Название поля | Первичный ключ | Тип данных | Описание |
| 1 | db_id | Да | integer | id источника импорта |
| 2 | id | Да | varchar(36) | GUID склада |
| 3 | desc | varchar(50) | Название склада | |
| 4 | rest_id | varchar(36) | GUID ресторана склада по умолчанию |
Файл transaction.csv - проводки (движение товаров)
| П/п | Название поля | Первичный ключ | Тип данных | Описание |
| 1 | db_id | Да | integer | id источника импорта |
| 2 | id | Да | varchar(36) | GUID проводки |
| 3 | rest_id | Да | varchar(36) | GUID ресторана. Не обязательно, связь идет через склады. |
| 4 | store_id | varchar(36) | GUID склада. | |
| 5 | type | varchar(50) |
Тип транзакции из списка: INVOICE - приходная накладная OUTGOING_INVOICE - расходная накладная WRITEOFF - списания INVENTORY_CORRECTION - инвентаризация TRANSFORMATION - акт переработки SESSION_WRITEOFF - реализация PRODUCTION - акт приготовления TRANSFER - внутреннее перемещение DISASSEMBLE - акт разбора RETURNED_INVOICE - возврат поставщику |
|
| 6 | date | date | Дата проведение документа. | |
| 7 | documentnum | varchar(20) | Название (номер) документа проводки. | |
| 8 | item_id | varchar(36) | GUID товара | |
| 9 | supplier_id | varchar(36) | GUID поставщика (только для INVOICE) | |
| 10 | qntt | double | Количество товара | |
| 11 | sum | double | Сумма себестоимости товара | |
| 12 | uom | varchar(10) | Единица измерения товара |
Файл store_balance.csv - остатки на складах
| П/п | Название поля | Первичный ключ | Тип данных | Описание |
| 1 | db_id | Да | integer | id источника импорта |
| 2 | store_id | Да | varchar(36) | GUID склада |
| 3 | item_id | Да | varchar(36) | GUID товара |
| 4 | date | Да | date | Дата среза. Срез берется на самое начало дня (00:00:00 ночи) |
| 5 | qntt | double | Количество остатков | |
| 6 | cost | double | Себестоимость остатков |
Файл shedule.csv - смены сотрудников (явки)
| П/п | Название поля | Первичный ключ | Тип данных | Описание |
| 1 | db_id | Да | integer | id источника импорта |
| 2 | id | Да | varchar(36) | GUID смены сотрудника |
| 3 | rest_id | varchar(36) | GUID ресторана смены | |
| 4 | empl_id | Да | varchar(36) | GUID сотрудника |
| 5 | date | Да | date | Дата начала смены |
| 6 | role_name | varchar(50) | Название должности | |
| 7 | open | time | Время начала смены | |
| 8 | close_date | date | Дата окончания смены | |
| 9 | close | time | Время окончания смены | |
| 10 | drtn | integer | Длительность смены в минутах (не обязательно) | |
| 11 | payment | double | Сумма оплаты за смену |