Техническое описание импорта данных в систему Мозг
Вся необходимая информация для разработки собственного импорта данных в систему Мозг из любой системы автоматизации ресторанов.
Общая информация
Данные в систему Мозг отправляются в виде архива с 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 | Сумма оплаты за смену |