Версия 1.14 21.0 от 0403.1207.20182019
Содержание
Оглавление |
---|
Протокол обмена
...
http(s)://{адрес сервера GROTEM}/
- для отправки и получеия получения данных{имя сервера
{имя решения}/admin/SyncSolutionDatabaseGROTEM
}/
- Порт подключения зависит от конфигурации web-сервера
- Используется BASIC-авторизация:
- имя пользователя - всегда admin
- пароль - от решения на сервере Grotem.Mobile
- Кодировка файла - UTF-8
- Обязательные заголовки для HTTP-запроса:
- ‘content-type’: “application/json”,
- ‘configname’: “GrotemExpress”,
- ‘configversion’: “1.1.0.0”,
- ‘deviceId’: “{идентификатор внешнего клиента}”
{идентификатор внешнего клиента}
- уникальный идентификатор внешней БД. Должен быть уникальным и фискированным фиксированным для каждой внешней системы.
...
Обмен инициируется со стороны клиента (внешней системы).
Клиент отправляет свой документ с данными и заполненным полем
TimestampFrom
, в нем передается время последней успешной синхронизации с сервером. Если это поле = 0, то синхронизация считается начальной и клиент получит полный набор данных с сервера.Сервер обрабатывает полученные данные:
- получает документ с данными
- заполняет в нём поле
TimestampTo
текущей датой - выполняет обновление записей или помечает их как удаленные
- всем затронутым (обновленным или удаленным) записям присваивается одно и то же значение
Timestamp
=TimestampTo
Сервер формирует набор данных для клиента:
- получает список записей из всех таблиц изменённых после TimestampFrom (у которых
Timestamp
>=TimestampFrom
) - дополняет список записей связанными сущностями (подробнее см. “Выгрузка связанных данных”)
- производит фильтрацию данных в соответствии с настроенными для каждой таблицы фильтрами (подробнее см. “Фильтрация данных”)
- исключает из выгрузки объекты, которые пришли со стороны клиента в рамках текущей сессии обмена
- формирует JSON-файл, сжимает и возвращает клиенту.
- получает список записей из всех таблиц изменённых после TimestampFrom (у которых
Клиент обрабатывает полученные данные
- измененные записи обновляются в БД
- записи к удалению - удаляются из БД
...
Фильтрация основывается на данных пользователя, авторизованного при подключении к точке входа (см. “Общее описание протокола и точки подключения”)
Фильтры формируются на этапе проектирования структуры данных. Текущие фильтры описаны в разделе “Типовые фильтры”.
Структура файла обмена
Общее описание
...
"Id"
- уникальный идентификатор сессии обмена. По этому идентификатору также в дальнейшем можно получать информацию о сессии."TimestampFrom"
- начальная граница промежутка времени для получения изменений (см. “Общее описание алгоритма синхронизации”)"TimestampTo"
- конечная граница промежутка времени для получения изменений (обычно сюда передается текущее время). Будет установлено в качестве метки времени “Timestamp” для всех объектов, переданных в файле"DeletedEntities"
- список удаленных объектов (подробнее см. “Формат выгрузки объекта”)"ChangedEntities"
- список измененных объектов (подробнее см. “Формат выгрузки объекта”)- перечень фильтров (не используется и в текущей версии протокола игнорируется)"FiltersToApply"
...
Обязательные поля для всех объектов (независимо от типа)
"Id"
- Идентификатор объекта (в формате GUID)"IsDeleted"
- признак удаления объекта (такие объекты будут удалены из БД)"Timestamp"
- метка времени изменения объекта"Tablename"
- имя таблицы, к которой принадлежит объект (подробнее см. “Описание таблиц и полей”)- в текущей версии протокола не используется и игнорируется"SyncFilter"
"Fields"
- поля объекта, характерные для каждой таблицы (подробнее см. “Описание таблиц и полей”)
Пример файла выгрузки
Приведенный пример отображает передачу / получение измененных объектов таблиц:
...
Id | Name | Description | Comments |
---|---|---|---|
Prepayment | Предоплата | ||
DeliveryPayment | Оплата при отгрузке | ||
CreditPayment | Оплата в кредит |
Enum.CashBalanceStatuses
Название | Enum.CashBalanceStatus |
---|---|
Назначение | Указание места, куда были сданы наличные деньги курьером |
Описание | При сдаче наличных денег (раздел "Рейс" мобильного приложения) из списка выбирается место, куда деньги сдаются. |
Id | Name | Description | Comments |
---|---|---|---|
MoneyInTransit | Деньги в пути | ||
MoneyInCashbox | Деньги сданы в кассу | ||
MoneyInTransportDepartment | Деньги сданы в ТО |
Enum.ChequeType
Название | Enum.ChequeType |
---|---|
Назначение | Типы документов "Чек" |
Описание |
...
Id | Name | Description | Comments |
---|---|---|---|
New | Новое | Заявка создана (новый) | |
Done | Выполнено | Заявка завершена успешно | |
NotDone | НеВыполнено | Заявка завершена неудачно |
Enum.
...
RouteStatuses
Название | Enum.StatsNeedNumRouteStatuses |
---|---|
НазначениеСтатусы | "Заявок на материалы"Статусы рейса |
Описание |
Значения:
Id | Name | Description | Comments | |||||
---|---|---|---|---|---|---|---|---|
NewOpen | Новая | Заявка создана (новый) | Done | Отгружено | Заявка передана сотруднику, но не подтверждена | Начат | Рейс начат | |
Closed | Завершен | Рейс завершен |
Enum.SettingType
Название | Enum.SettingType |
---|---|
Назначение | Настройки включения/отключения ряда фунций мобильного приложения (снятие трека перемещения) |
Описание |
Значения:
Id | Name | Description | Comments |
---|---|---|---|
GpsTrackingPermission | Разрешение отслеживания местоположения | Включение снятия gps-координат для отслеживания перемещений мобильного сотрдника |
Enum.StatsNeedNum
Название | Enum.StatsNeedNum |
---|---|
Назначение | Статусы "Заявок на материалы" |
Описание |
Значения:
Id | Name | Description | Comments | ||
---|---|---|---|---|---|
New | Новая | Заявка создана (новый) | |||
Done | Отгружено | Заявка передана сотруднику, но не подтверждена | |||
Confirmed | Подтверждено | Confirmed | Подтверждено | Получение заявки подтверждено сотрудником | |
Cancel | Отменено | Заявка отклонена |
...
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор вопроса (Actions.Id) |
Val | String (100) | Значение |
Catalog.
...
ChangeProductOrServiceCountReasons
Название | Catalog.ClientChangeProductOrServiceCountReasons |
---|---|
НазначениеКлиент | Причины изменения количества товара/услуги в заказе |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание | ||||
---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||||
Predefined | + | Boolean | Признак предопределенного элемента | ||||
DeletionMark | + | Boolean | Признак пометки на удаление | ||||
Description | + | String (100) | Наименование | Code | String (9) | Код | причины изменения количества товара/услуги. |
IsCompletelyRemoved | + | Boolean | Признак, что товар/услуга полностью удален из заказа |
Catalog.Client
Название | Catalog.Client |
---|---|
Назначение | Клиент |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Predefined | + | Boolean | Признак предопределенного элемента |
DeletionMark | + | Boolean | Признак пометки на удаление |
Description | + | String (100) | Наименование |
ClientINN | String (12) | ИНН клиента | |
Code | String (9) | Код | |
PassportData | String (256) | Серия и номер паспорта клиента. (Используется только при отсутствии ИНН клиента) | |
Latitude | Decimal (12.8) | Широта (географические координаты) | |
Longitude | Decimal (12.8) | Долгота (географические координаты) | |
Address | String (1000) | Адрес | |
Contractor | GUID | Идентификатор связанного контрагента (Accounts.Id) |
Catalog.
...
Coefficients
Название | Catalog.Client_ContactsCoefficients |
---|---|
Назначение | Коэффициенты для расчета стоимости услуг |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Description | + | String (100) | Наименование |
Catalog.Client_Contacts
Название | Catalog.Client_Contacts | ||
---|---|---|---|
Назначение | Список контактов, | Назначение | Список контактов, связанных с клиентом |
Описание | "Контактные лица" - это отдельный список. В этой таблице указывается ссылка на элемент списка "Контактных лиц", что позволяет привязать одно и то же контактное лицо к нескольким клиентам |
...
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор параметра клиента (ClientOptions.Id) |
Val | String (100) | Значение |
Catalog.Coefficients
Название | Catalog.Coefficients |
---|---|
Назначение | Коэффициенты |
Описание | Список коэффициентов, применяемых для расчета стоимости услуг |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Description | + | String (100) | Наименование |
Catalog.Contacts
Название | Catalog.Contacts |
---|---|
Назначение | Контактные лица |
Описание | Полный список контактных лиц в системе, которые могут быть привязаны к одному или нескольким клиентам (см. таблицу "Catalog.Client_Contacts") |
...
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор оборудования (Equipment.Id) |
Parameter | GUID | Идентификатор параметра оборудования (EquipmentOptions.Id) | |
Val | String (100) | Значение параметра |
Catalog.
...
EquipmentNodes
Название | Catalog.EquipmentOptionsEquipmentNodes |
---|---|
Назначение | Список возможных параметров узлов оборудования |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
PredefinedDescription | + | String (100) | Наименование |
ParentId | GUID | Уникальный идентификатор родительского узла |
Catalog.EquipmentOptions
Название | Catalog.EquipmentOptions |
---|---|
Назначение | Список возможных параметров оборудования |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание | ||
---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||
Predefined | + | Boolean | Признак предопределенного элемента | ||
Boolean | Признак предопределенного элемента | DeletionMark | + | Boolean | Признак пометки на удаление |
Description | + | String (100) | Наименование | ||
Code | String (9) | Код | |||
DataTypeParameter | + | GUID | Идентификатор типа значения параметров (Enum.TypesDataParameters) | ||
DisplayingBMA | + | Boolean | Признак отображения в мобильном приложении | ||
EditingBMA | + | Boolean | Возможность редактирования в мобильном приложении |
...
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Description | + | String (50) | Наименование типа оплаты |
FrNumber | + | Integer | Номер типа оплаты в настройках ФР |
Catalog.OrderCorrectionReasons
Название | Catalog.OrderCorrectionReasons |
---|---|
Назначение | Список причин изменения заказа |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Description | String (100) | Наименование причины корректировки заказа |
Catalog.Positions
Название | Catalog.Positions |
---|---|
Назначение | Должности |
Описание | Список должностей пользователей Catalog.User |
...
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
DeletionMark | + | Boolean | Признак пометки на удаление |
Name | + | String (256) | Наименование |
Tin | + | String (100) | ИНН |
LegalName | + | String (256) | Юридическое наименование |
PhoneNumber | + | String (256) | Номер телефона |
Catalog.
...
RemoteChequeNomenclature
НазваниеПоле | CatalogОбяз.RIM | Тип |
---|---|---|
Назначение | Список работ и материалов | |
Описание | Список работ и материалов для добавления в Заказы и пробития чеков. Хранит в себе признак "Услуга" ("Service"), а также информацию о ценах и ставках НДС. Имеется возможность привязки к объектам "Номенклатура" ("SKU") для консолидации |
Список полей:
Описание | |||||||||
---|---|---|---|---|---|---|---|---|---|
Id | + | ||||||||
Поле | Обяз. | Тип | Описание | ||||||
Id | + | GUID | Уникальный идентификатор | ||||||
Predefined | + | Boolean | Признак предопределенного элемента | ||||||
DeletionMark | + | Boolean | Признак пометки на удаление | ||||||
Description | + | String (512) | Наименование номенклатурыCode | ||||||
Amount | String (9) | Код | |||||||
IsFolder | + | Boolean | Признак, что элемент является группой и может выступать в качестве родительского | ||||||
Parent | GUID | Идентификатор родительской записи (RIM.IdDecimal (10,3) | |||||||
Price | Decimal (15 | .,2) | Цена за единицу | ||||||
Service | + | Boolean | Признак услуги | ||||||
TotalSum | Decimal (15,2) | ||||||||
ObjectSign | GUID | ?? | |||||||
VAT | + | GUID | Идентификатор перечисления "Ставки НДС" (Enum.VATS | SKU | GUID | Идентификатор элемента номенклатуры (SKU.Id) | Provider | GUID | Идентификатор элемента справочника "Поставщики" (Provider.Id) |
Unit | String ( | 510) | Наименование единицы измерения | ||||||
VAT | +PositionPaymentType | GUID | Идентификатор перечисления " | Ставки НДСПризнак способа расчета" (Enum. | VATSPositionPaymentType) | ||||
Favorites | + | Boolean | Признак "избранного" товара |
Catalog.
...
RIM
Название | Catalog.RolesRIM |
---|---|
НазначениеРоли | Список работ и материалов |
Описание | Список ролей в системеработ и материалов для добавления в Заказы и пробития чеков. Хранит в себе признак "Услуга" ("Service"), а также информацию о ценах и ставках НДС. Имеется возможность привязки к объектам "Номенклатура" ("SKU") для консолидации |
Список полей:
Поле | Обяз. | Тип | Описание | |||
---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | |||
Predefined | + | Boolean | Признак предопределенного элемента | |||
DeletionMark | + | Boolean | Признак пометки на удаление | |||
NameDescription | + | String (9512) | Наименование роли | |||
Ident | +Code | String (509) | Признак пометки на удаление | Код | ||
IsFolderDescription | + | Boolean | Признак, что элемент является группой и может выступать в качестве родительского | |||
Parent | GUID | Идентификатор родительской записи (RIM.Id) | ||||
Price | Decimal (15.2) | Цена за единицу | ||||
Service | String (100) | Подробное описание | CanManageSelf | + | Boolean | Признак , что пользователи с этой ролью могут модифицировать свои права |
Root | + | Boolean | Признак роли с "неограниченными" правами |
Catalog.RoleWebactions
...
услуги | |||
SKU | GUID | Идентификатор элемента номенклатуры (SKU.Id) | |
Provider | GUID | Идентификатор элемента справочника "Поставщики" (Provider.Id) | |
Unit | String (5) | Наименование единицы измерения | |
VAT | + | GUID | Идентификатор перечисления "Ставки НДС" (Enum.VATS) |
Favorites | + | Boolean | Признак "избранного" товара |
IsMarked | - | Bit | Признак маркируемой продукции, 1 - маркируется, 0 или null - не маркируется |
Catalog.Roles
Название | Catalog.Roles |
---|---|
Назначение | Роли |
Описание | Список ролей в системе |
Список полей:
...
Catalog.ServiceAgreement
Название | Catalog.ServiceAgreement |
---|---|
Назначение | Договоры |
Описание | Список договоров, которые могут быть указаны как договоры продажи и договоры обслуживания при привязки Оборудования к Клиентам |
Список полей:
Поле | Обяз. | Тип | Описание | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | |||||||||||||||
PredefinedDeletionMark | + | Boolean | Признак предопределенного элементапометки на удаление | |||||||||||||||
NameDeletionMark | +Boolean | String (9) | Наименование роли | |||||||||||||||
Ident | + | String (50) | Признак пометки на удаление | |||||||||||||||
Description | + | String (100) | НаименованиеПодробное описание | Code | String (9) | Код | Client | GUID | Идентификатор Клиента, с которым заключен Договор (Client.Id) | Organization | String (500) | Наименование организации, от имени которой заключен договор | DateStart | DateTime | Дата начала действия договора | DateEnd | DateTime | Дата окончания действия договора |
...
CanManageSelf | + | Boolean | Признак, что пользователи с этой ролью могут модифицировать свои права |
Root | + | Boolean | Признак роли с "неограниченными" правами |
Catalog.RoleWebactions
Название | Catalog.SettingMobileApplicationRoleWebactions |
---|---|
НазначениеНастройки | мобильного приложенияПрава ролей |
Описание | Список настроек, которые передаются в мобильные приложения. Актуальные наименования настроек см. в разделе "Настройки мобильного приложения", связывающий роли и имеющиеся у них права. Если в этом списке для роли имеется запись с определенным правом - значит роль данным правом обладает. Отсутствие записи означает, что у роли такого права нет |
Список полей:
Поле | Обяз. | Тип | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||||||||||
PredefinedRole | + | BooleanGUID | Признак предопределенного элемента | ||||||||||
DeletionMark | + | Boolean | Признак пометки на удаление | ||||||||||
Description | + | String (100) | Наименование | ||||||||||
Идентификатор элемента ролей (Roles.Id) | |||||||||||||
Webaction | Code | String (9) | Код | DataType | + | GUID | Идентификатор типа значения параметров элемента из списка прав (Enum.TypesDataParametersWebactions) | LogicValue | Boolean | Поле для хранения значений настроек с булевым типом | NumericValue | Integer | Поле для хранения значений настроек с числовым типом |
Catalog.
...
Subdivisions
Название | Catalog.SKUSubdivisions |
---|---|
НазначениеНоменклатура | Справочник подразделений. |
ОписаниеСписок | номенклатуры. Используется для интеграции с внешними учетными системами для возможности консолидации информации об услугах, товарах, оборудовании. Позволяет вести иерархическую структурубригадных работ, чтобы бригадир мог добавить в наряд только членов своего подразделения |
Список полей:
Поле | Обяз. | Тип | Описание | |||
---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | |||
Predefined | + | Boolean | Признак предопределенного элемента | |||
DeletionMark | + | Boolean | Признак пометки на удаление | |||
Description | + | String (100) | Наименование | Code | String (9) | Код |
IsFolder | + | Boolean | Признак, что элемент является группой и может выступать в качестве родительского | Parent | GUID | Идентификатор родительской записи (SKU.Id) |
...
Number | Integer | Номер |
Catalog.ServiceAgreement
Название | Catalog.TypesDeparturesServiceAgreement |
---|---|
Назначение | Типы оплатыДоговоры |
Описание | Список возможных типов оплаты для указания в Заявкахдоговоров, которые могут быть указаны как договоры продажи и договоры обслуживания при привязки Оборудования к Клиентам |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Predefined | + | Boolean | Признак предопределенного элемента |
DeletionMark | + | Boolean | Признак пометки на удаление |
Description | + | String (100) | Наименование |
Code | String (9) | Код |
...
Client |
Название | Catalog.User |
---|---|
Назначение | Сотрудники |
Описание | Список сотрудников (пользователей системы) |
Список полей:
GUID | Идентификатор Клиента, с которым заключен Договор (Client.Id) | ||
Organization | String (500) | Наименование организации, от имени которой заключен договор | |
DateStart | DateTime | Дата начала действия договора | |
DateEnd | DateTime | Дата окончания действия договора |
Catalog.SettingMobileApplication
Название | Catalog.SettingMobileApplication |
---|---|
Назначение | Настройки мобильного приложения |
Описание | Список настроек, которые передаются в мобильные приложения. Актуальные наименования настроек см. в разделе "Настройки мобильного приложения" |
Список полей:
Поле | Обяз. | Поле | Обяз. | Тип | Описание |
---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||
Predefined | + | Boolean | Признак предопределенного элемента | ||
DeletionMark | + | Boolean | Признак пометки на удаление | ||
Description | + | String (100) | Наименование | ||
Code | String (9) | Код | |||
UserNameDataType | + | GUID | Идентификатор типа значения параметров (Enum.TypesDataParametersString (100) | ||
ЛогинLogicValue | |||||
Password | + | String (100) | Пароль | UserDB | String (500) | Идентификатор пользователя во внешней системе (используется при интеграциях) | String (100) | Адрес электронной почты | GUID | В текущей версии не используется | Phone | String (100) | Телефон |
Role | + | GUID | Идентификатор элемента ролей (Roles.Id) | Language | String (5) | Идентификатор языка (поддерживаются ru, en cz) | AspNetUserID | String (128) | Внутренний идентификатор пользователя | Position | GUID | Идентификатор должности (Positions.Id) | INN | String (12) | ИНН пользователя (для передачи в чеке данных об ИНН кассира) |
Catalog.User_Bag
Boolean | Поле для хранения значений настроек с булевым типом | ||
NumericValue | Integer | Поле для хранения значений настроек с числовым типом |
Catalog.SKU
Название | Catalog.SKU |
---|---|
Назначение | Номенклатура |
Описание | Список номенклатуры. Используется для интеграции с внешними учетными системами для возможности консолидации информации об услугах, товарах, оборудовании. Позволяет вести иерархическую структуру |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Predefined | + | Boolean | Признак предопределенного элемента |
DeletionMark | + | Boolean | Признак пометки на удаление |
Description | + | String (100) | Наименование |
Code | String (9) | Код | |
IsFolder | + | Boolean | Признак, что элемент является группой и может выступать в качестве родительского |
Parent | GUID | Идентификатор родительской записи (SKU.Id) |
Catalog.TimeIntervals
Название | Catalog.TypesDepartures |
---|---|
Назначение | Интервалы доставки |
Описание | Здесь можно задать интервалы доставки, их название и каким цветом они будут выделены |
Название | Catalog.User_Bag |
Назначение | Рюкзак |
Описание | Список материалов, доступных мобильному сотруднику. Если в системе используется функционал "Рюкзак" - то также ведется учет остатков материалов у мобильного сотрудника |
Список полей:
Поле | Обяз. | Тип | Описание | |||
---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | LineNumber | Integer | Порядковый номер (для сортировки) |
DeletionMark | Ref | + | Boolean | Признак пометки на удаление | ||
Description | GUID | Идентификатор сотрудника (User.Id) | Materials | + | GUID | Идентификатор услуги / материала (RIM.Id) |
Count | + | Decimal (38.3) | Количество (остаток) |
Catalog.User_RemainsNorms
String (100) | Наименование интервала | ||
Color | String (30) | Цвет | |
StartTime | DateTime | Время начала интервала | |
EndTime | DateTime | Время окончания интервала |
Catalog.TypesDepartures
Название | Catalog.TypesDepartures |
---|---|
Назначение | Типы оплаты |
Описание | Список возможных типов оплаты для указания в Заявках |
Название | Catalog.User_RemainsNorms |
Назначение | Нормы остатков |
Описание | Список и количество материалов, которые должны быть у мобильного сотрудника в соответствии со стандартами. Если используется "Рюкзак" - при оформлении заявки на материалы количество заказываемых материалов автоматически доводится до количества нормы |
Список полей:
FieldПоле | ReqОбяз. | TypeТип | DescОписание | ||||
---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||||
Predefined | LineNumber+ | Integer | Порядковый номер (для сортировки) | Boolean | Признак предопределенного элемента | ||
DeletionMarkRef | + | Boolean | Признак пометки на удаление | ||||
Description | GUID | Идентификатор сотрудника (User.Id) | Materials | + | GUID | Идентификатор услуги / материала (RIM.IdString (100) | CountНаименование |
+Code | Decimal String (38.39) | Количество (норма) |
...
Код |
Catalog.User
Название | DocumentCatalog.CheckListUser |
---|---|
Назначение | Чек-ЛистСотрудники |
Описание | Список сотрудников (пользователей системы) |
Список полей:
FieldПоле | ReqОбяз. | TypeТип | DescОписание | ||
---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||
PostedPredefined | + | Boolean | Признак "проведенного" документапредопределенного элемента | ||
DeletionMark | + | Boolean | Признак пометки на удаление | ||
DateDescription | + | DateTime | Дата создания документа | String (100) | Наименование |
CodeNumber | String (9) | Код | |||
Номер документаUserName | Description+ | String (100) | Описание чек-листа | Логин | |
Password | +Project | String (100) | Проект (дополнительный реквизит) | ||
Status | + | GUID | Идентификатор статуса чек-листа (Enum.CheckListStatus) |
Document.CheckList_Actions
...
Пароль | |||
UserDB | String (500) | Идентификатор пользователя во внешней системе (используется при интеграциях) | |
String (100) | Адрес электронной почты | ||
GUID | В текущей версии не используется | ||
Phone | String (100) | Телефон | |
Role | + | GUID | Идентификатор элемента ролей (Roles.Id) |
Language | String (5) | Идентификатор языка (поддерживаются ru, en cz) | |
AspNetUserID | String (128) | Внутренний идентификатор пользователя | |
Position | GUID | Идентификатор должности (Positions.Id) | |
INN | String (12) | ИНН пользователя (для передачи в чеке данных об ИНН кассира) |
Catalog.User_Bag
Название | Catalog.User_Bag |
---|---|
Назначение | Рюкзак |
Описание | Список материалов, доступных мобильному сотруднику. Если в системе используется функционал "Рюкзак" - то также ведется учет остатков материалов у мобильного сотрудника |
Список полей:
Поле | Обяз. | Тип | Описание |
---|
Список полей:
Field | Req | Type | Desc |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Чек-листа сотрудника (CheckListUser.Id) |
ActionMaterials | + | GUID | Идентификатор "Вопроса чек-листов" (Actionsуслуги / материала (RIM.Id) |
RequiredCount | + | Boolean | Признак обязательности |
...
Decimal (38.3) | Количество (остаток) |
Catalog.User_RemainsNorms
Название | DocumentCatalog.EventUser_RemainsNorms |
---|---|
НазначениеЗаявка | Нормы остатков |
Описание | Список и количество материалов, которые должны быть у мобильного сотрудника в соответствии со стандартами. Если используется "Рюкзак" - при оформлении заявки на материалы количество заказываемых материалов автоматически доводится до количества нормы |
Список полей:
ПолеField | Обяз.Req | ТипType | ОписаниеDesc | ||||||
---|---|---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||||||
PostedLineNumber | Integer | Порядковый номер (для сортировки) | |||||||
Ref | + | Boolean | Признак "проведенного" документа | DeletionMark | + | Boolean | Признак пометки на удаление | GUID | Идентификатор сотрудника (User.Id) |
MaterialsDate | + | DateTime | Дата создания документа | Number | String (9) | Номер документа | ApplicationJustification | String (500) | |
Client | + | GUID | Идентификатор Клиента (Client.Id, на которого назначена Заявка) | Address | GUID | Идентификатор строки с дополнительным адресом клиента | DivisionSource | String (500) | Наименование подразделения, из которого поступила Заявка |
KindEvent | + | GUID | Тип Заявки(Enum.TypesEvents) | ||||||
AnySale | + | Boolean | В рамках Заявки имеется одно или несколько "Уведомлений" с типом "Продажа" | ||||||
AnyProblem | + | Boolean | В рамках Заявки имеется одно или несколько "Уведомлений" с типом "Проблема" | StartDatePlan | DateTime | Плановая дата начала Заявки | EndDatePlan | DateTime | Плановая дата окончания Заявки | ActualStartDate | DateTime | Фактическая дата начала Заявки | ActualEndDate | DateTime | Фактическая дата окончания Заявки |
Author | + | GUID | Идентификатор сотрудника (User.Id, создавшего Заявку) | UserMA | GUID | Идентификатор Исполнителя - сотрудника (User.Id) | Comment | String (1000) | Комментарий | DetailedDescription | String (1000) | Подробное описание | CommentContractor | String (1000) | Комментарий исполнителя | TargInteractions | String (100) | Дата создания документа | ResultInteractions | String (100) | Дата создания документа |
Status | + | GUID | Идентификатор перечисления "Статуса Заявки" (Enum.StatusyEvents) | LatitudeStart | Decimal (12.8) | Широта (координаты начала выполнения Заявки) | LongitudeStart | Decimal (12.8) | Долгота (координаты начала выполнения Заявки) | LatitudeEnd | Decimal (12.8) | Широта (координаты закрытия Заявки) | LongitudeEnd | Decimal (12.8) | Долгота (координаты закрытия Заявки) | GPSTime | DateTime | Время закрытия Заявки по данным GPS | ContactVisiting | GUID | Контактное лицо (Contacts.Id) |
TypesDepartures | + | GUID | Идентификатор "Типа оплаты" (TypesDepartures.Id) | ||||||
Importance | + | GUID | Важность Заявки - идентификатор перечисления "Важность" (Enum.StatusImportance) | ||||||
NumberOfExternalSystem | + | String (256) | Номер Заявки во внешней учетной системе |
Document.Event_CheckList
GUID | Идентификатор услуги / материала (RIM.Id) | ||
Count | + | Decimal (38.3) | Количество (норма) |
...
Document.CheckList
Название | Document.CheckList |
---|---|
Назначение | Чек-Лист |
Описание |
Список полей:
Field | Req | Type | Desc |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Posted | + | Boolean | Признак "проведенного" документа |
DeletionMark | + | Boolean | Признак пометки на удаление |
Date | + | DateTime | Дата создания документа |
Number | String (9) | Номер документа | |
Description | String (100) | Описание чек-листа | |
Project | String (100) | Проект (дополнительный реквизит) | |
Status | + | GUID | Идентификатор статуса чек-листа (Enum.CheckListStatus) |
Document.CheckList_Actions
Название | Document.CheckList |
---|---|
Назначение | Чек-лист - Вопросы |
Описание | Хранит привязанные "Вопросы чек-листов" к конкретному Чек-листу |
Список полей:
Field | Req | Type | Desc |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Чек-листа (CheckList.Id) |
Action | + | GUID | Идентификатор "Вопроса чек-листов" (Actions.Id) |
Required | + | Boolean | Признак обязательности |
Document.Contract
Название | Document.Contract |
---|---|
Назначение | Договор с клиентом |
Описание | Договор с клиентом с указанием стоимости услуг |
Название | Document.Event_CheckList |
Назначение | Заявка - Чек-листы |
Описание | Хранит привязанные "Вопросы Чек-листов" с привязкой к "Чек-листу" к конкретной Заявке |
Список полей:
Field | Req | Type | Desc |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumberDescription | Integer+ | Порядковый номер String (для сортировки100) | Наименование |
RefClientId | + | GUID | Идентификатор Заявки клиента (EventClient.Id) |
Action | + | GUID | Идентификатор "Вопроса чек-листов" (Actions.Id) |
CheckListRef | + | GUID | Идентификатор Чек-листа, из которого подставлен вопрос (CheckList.Id) | Result | String (1000) | Значение - ответ на вопрос Чек-лиса |
ActionType | + | GUID | Идентификатор типа значения параметров (Enum.TypesDataParameters) |
Required | + | Boolean | Признак обязательности ответа на вопрос |
Document.Event_Equipments
...
PricePerHour | Decimal (5.3) | Стоимость за час | |
PricePerKilometer | Decimal (5.3) | Стоимость за километр (сейчас не используется) | |
FixedRoadPrice | Decimal (5.3) | Стоимость за вызов инженера (фиксированная цена за проезд до клиента) (сейчас не используется) | |
DaysPorPay | Decimal (5.3) | Количество дней до оплаты |
Document.Contract_Coefficients
Название | Document.Contract |
---|---|
Назначение | Коэффициенты для расчета стоимости услуг в соответствии с договором |
Описание |
Список полей:
Field | Req | Type | Desc |
---|
Список полей:
Поле | Обяз. | Тип | Описание | |||
---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | |||
LineNumber | Integer | Порядковый номер (для сортировки) | RefContractId | + | GUID | Идентификатор Заявки договора с клиентом (EventContract.Id) |
EquipmentCoefficientId | + | GUID | Идентификатор Оборудования коэффициента (EquipmentCoefficient.Id) | |||
Value | Terget+ | String Decimal (1000) | Описание работ, которые требуется произвести по оборудованию | 8.3) | Значение коэффициента |
Document.CorrectionOrderPhotos
Название | Document.Contract |
---|---|
Назначение | Фото накладной и причина корректировки |
Описание |
Список полей:
Field | Req | Type | Desc | |
---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | |
OrderIdResult | + | GUID | Идентификатор результата по работам заказа (EnumOrder.ResultEventId) | |
PhotoId | + | CommentGUID | String (1000Идентификатор фото накладной (Photo.Id) | |
Комментарий исполнителяCorrectionReasonId | SID | + | GUID | Идентификатор причины изменения заказа (OrderCorrectionReasons.Id) |
Document.Event
...
Название | Document.Event_EventFiskalProperties |
---|---|
Назначение | Заявка - Реквизиты фискальных чеков |
ОписаниеПри успешном пробитии чека в таблицу записываются фискальные реквизиты кассового чека. Если для Заявки есть хотя бы одна запись в этой таблице - чек считается пробитым, и повторное пробитие невозможно. |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Posted |
+ | Boolean | Признак "проведенного" документа |
DeletionMark | + |
Document.Event_Files
...
Список полей:
...
Document.Event_Parameters
...
Список полей:
...
Document.Event_Photos
...
Список полей:
...
Boolean | Признак пометки на удаление | ||
Date | + | DateTime | Дата создания документа |
Number | String (9) | Номер документа | |
ApplicationJustification | String (500) | ||
Client | + | GUID | Идентификатор Клиента (Client.Id, на которого назначена Заявка) |
Address | GUID | Идентификатор строки с дополнительным адресом клиента | |
DivisionSource | String (500) | Наименование подразделения, из которого поступила Заявка | |
KindEvent | + | GUID | Тип Заявки(Enum.TypesEvents) |
AnySale | + | Boolean | В рамках Заявки имеется одно или несколько "Уведомлений" с типом "Продажа" |
AnyProblem | + | Boolean | В рамках Заявки имеется одно или несколько "Уведомлений" с типом "Проблема" |
StartDatePlan | DateTime | Плановая дата начала Заявки | |
EndDatePlan | DateTime | Плановая дата окончания Заявки | |
ActualStartDate | DateTime | Фактическая дата начала Заявки | |
ActualEndDate | DateTime | Фактическая дата окончания Заявки | |
Author | + | GUID | Идентификатор сотрудника (User.Id, создавшего Заявку) |
UserMA | GUID | Идентификатор Исполнителя - сотрудника (User.Id) | |
Comment | String (1000) | Комментарий | |
DetailedDescription | String (1000) | Подробное описание | |
CommentContractor | String (1000) | Комментарий исполнителя | |
TargInteractions | String (100) | Дата создания документа | |
ResultInteractions | String (100) | Дата создания документа | |
Status | + | GUID | Идентификатор перечисления "Статуса Заявки" (Enum.StatusyEvents) |
LatitudeStart | Decimal (12.8) | Широта (координаты начала выполнения Заявки) | |
LongitudeStart | Decimal (12.8) | Долгота (координаты начала выполнения Заявки) | |
LatitudeEnd | Decimal (12.8) | Широта (координаты закрытия Заявки) | |
LongitudeEnd | Decimal (12.8) | Долгота (координаты закрытия Заявки) | |
GPSTime | DateTime | Время закрытия Заявки по данным GPS | |
ContactVisiting | GUID | Контактное лицо (Contacts.Id) | |
TypesDepartures | + | GUID | Идентификатор "Типа оплаты" (TypesDepartures.Id) |
Importance | + | GUID | Важность Заявки - идентификатор перечисления "Важность" (Enum.StatusImportance) |
NumberOfExternalSystem | + | String (256) | Номер Заявки во внешней учетной системе |
Reward | - | Decimal(15,2) | Cумма вознаграждения комиссионера/агента, если включен компонент "Агент" в настройках |
TimeInterval | - | GUID | Идентификатор интервала доставки из таблицы [Catalog].[TimeIntervals] |
ContractId | - | GUID | Идентификатор контактного лица контрагента из таблицы [Catalog].[Contacts] |
SubdivisionId | - | GUID | Идентификатор подразделения из таблицы [Catalog].[Subdivisions] |
Document.Event_CheckList
Название | Document.Event_CheckList |
---|---|
Назначение | Заявка - Чек-листы |
Описание | Хранит привязанные "Вопросы Чек-листов" с привязкой к "Чек-листу" к конкретной Заявке |
Список полей:
Field | Req | Type | Desc |
---|
Document.Order
...
Список полей:
...
Document.Order_OrderPaymentType
...
Список полей:
...
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор |
...
Заявки (Event.Id) |
Action |
...
+ | GUID | Идентификатор " |
...
Вопроса чек-листов" (Actions.Id) | |||
CheckListRef | + | GUID | Идентификатор Чек-листа, из которого подставлен вопрос (CheckList.Id) |
Result | String (1000) | Значение - ответ на вопрос Чек-лиса | |
ActionType | + | GUID | Идентификатор типа значения параметров (Enum.TypesDataParameters) |
Required | + | Boolean | Признак обязательности ответа на вопрос |
OrderId | + | GUID | Идентификатор Заказа (Order.ID) |
Document.Event_Equipments
Название | Document.Event_Equipments |
---|---|
Назначение | Заявка - Привязанное оборудование |
Описание | Хранит элементы "Оборудования", по которому требуется провести работы в рамках Заявки |
Document.Event_ServicesMaterials
Название | Document.Event_ServicesMaterials |
---|---|
Назначение | Заявка - Услуги и Материалы |
Описание | В таблице содержатся услуги и материалы, которые должны были планово отгрузиться клиенту, а также информация о фактически отгруженных позициях и суммах. Состав таблицы является основанием для пробития фискального чека |
Список полей:
Поле | Обяз. | Тип | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||||||||||||||||||
LineNumber | Integer | Порядковый номер (для сортировки) | |||||||||||||||||||
Ref | + | GUID | Идентификатор Заявки (Event.Id) | ||||||||||||||||||
SKUEquipment | + | GUID | Идентификатор "Услуги и материала" (RIMОборудования (Equipment.Id) | ||||||||||||||||||
PriceTerget | Decimal String (15.21000) | Цена (без учета скидки), по которой отгружена позиция | AmountPlan | Decimal (10.3) | Плановое количество к отгрузке | SumPlan | Decimal (15.2) | Плановая сумма оплаты (без учета скидки) | Discount | Decimal (15.2) | Сумма скидки на текущую строку. Сумма к оплате рассчитывается как (SumPlan - Discount) | AmountFact | Decimal (10.3) | Фактически отгруженное количество | SumFact | Decimal (15.2) | Фактически оплаченная сумма | TS | GUID | Идентификатор СНО в Catalog.SettingMobileApplication (возможные значения: OSN, USNDebit, USNDebitMinusCredit, ESHN, PSN и null)Описание работ, которые требуется произвести по оборудованию | |
Result | + | GUID | Идентификатор результата по работам (Enum.ResultEvent) | ||||||||||||||||||
Comment | String (1000) | Комментарий исполнителя | |||||||||||||||||||
SID | + | GUID |
Document.Event_
...
EventFiskalProperties
Название | Document.Event_TypeDeparturesEventFiskalProperties |
---|---|
Назначение | Заявка - Типы оплатРеквизиты фискальных чеков |
ОписаниеВ | таблицу нужно добавить одну строку - тип оплаты, соотвествующую реквизиту Event.TypesDeparturesПри успешном пробитии чека в таблицу записываются фискальные реквизиты кассового чека. Если для Заявки есть хотя бы одна запись в этой таблице - чек считается пробитым, и повторное пробитие невозможно. |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID. | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки (Event.Id) |
TypeDeparture | + | GUID | Идентификатор "Тип оплаты" (TypesDepartures.Id) |
Active | + | Boolean | Признак активности строки. Активной может быть только одна строка |
...
CheckNumber | Integer | Фискальный номер чека | |
Date | DateTime2 | Дата пробития чека | |
ShiftNumber | Integer | Номер кассовой смены, в которой пробит чек | |
NumberFtpr | String (100) | Заводской номер фискального регистратора | |
PaymentType | Integer | Идентификатор типа оплаты | |
PaymentAmount | Decimal (15.2) | Сумма оплаты | |
User | + | GUID | Идентификатор сотрудника, пробившего чек (User.Id) |
Document.Event_Files
Название | Document.ChequeEvent_Files | |||
---|---|---|---|---|
Назначение | Заявка - Прикрепленные файлы | |||
Описание | Документ "Чек" | Описание | В таблице оформленные документы "Чек" с необходимыми фискальными реквизитами |
Список полей:
Поле | Обяз. | Тип | Описание | ||
---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||
IsFiscalChequeLineNumber | +Integer | Boolean | Порядковый номер (для сортировки) | ||
Ref | +ChequeType | GUID | Идентификатор перечисления "Тип чека" (Enum.ChequeTypeЗаявки (Event.Id) | ||
PositionPaymentTypeFullFileName | GUID | Идентификатор перечисления "Признак способа расчета" (Enum.PositionPaymentType) (в текущей версии задается для чека в целом) | Client | GUID | Идентификатор "Клиента" (Catalog.Client) |
IsMainCheque | + | Boolean | Признак чека "Основой" - оформлен в рамках отгрузки Заказа (в текущей версии всегда True) | OriginalSalesCheck | GUID | Только для чеков возврата - Идентификатор документа "Чек" (Document.Cheque), по которому оформлялся возврат | ApplicationForDelivery | GUID | Идентификатор документа "Заявка" (Document.Event), в рамках которой оформлялся Чек | DateOfCheckPrinting | DateTime | Дата и время оформления Чека | ShiftNumber | Integer | Номер смены фискального регистратора (ФР) | TotalAmount | Decimal (15.2) | Сумма чека | FptrNumber | String (100) | Заводской номер ФР | FiscalStorageNumber | String (100) | Номер фискального накопителя (ФН) | DocumentNumberWithinTheShift | Integer | Номер чека в рамках смены | FiscalSignOfTheDocument | Decimal (15.3) | Фискальный номер документа | Latitude | Decimal (12.8) | Географические координаты (широта) | Longitude | Decimal (12.8) | Географические координаты (долгота) | GPSDateTime | DateTime2 | Дата и время по данным датчика GPS | ClientAddress | String (1000) | Адрес клиента (как он был отпечатан на чеке) | Comment | String (1000) | Коммментарий | PhoneOrEmail | String (1000) | Телефон или email покупателя (если был указан) | AppliedTaxSystem | String (1000) | Система налогообложения | AuthorMA | GUID | Идентификатор Исполнителя - сотрудника (User.Id) |
Document.Cheque_Nomenclature
+ | String (1000) | Полное имя файла | |
FileName | + | GUID | Внутренне имя файла (автоматически формируется в формате GUID) |
Document.Event_Parameters
Название | Document.Event_Parameters |
---|---|
Назначение | Заявка - Параметры |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки (Event.Id) |
Parameter | + | GUID | Идентификатор "Параметра заявки" (EventOptions.Id) |
Val | + | String (100) | Значение параметра |
Document.Event_Photos
Название | Document.Event_Photos | |
---|---|---|
Назначение | Заявка - Фотографии оборудования | |
Описание | ||
Название | Document.Cheque_Nomenclature | |
Назначение | Чек - Товары и услуги | |
Описание | Перечень позиций чека, цены, количество, суммы |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки (ChequeEvent.Id) |
RIMUIDPhoto | + | GUID | Идентификатор "Услуги и материала" (RIM.Id) |
PriceFact | + | Decimal (15.2) | Фактическая цена |
AmountFact | + | Decimal (10.3) | Фактическое количество |
SumFact | + | Decimal (15.2) | Фактическая сумма |
VAT | + | GUID | Идентификатор переисления "Ставки НДС" (Enum.VAT) | DiscountAmount | Decimal (15.2) | Сумма скидки на позицию | PositionPaymentType | GUID | Идентификатор перечисления "Признак способа расчета" (Enum.PositionPaymentType) |
...
файла "FileName" из таблицы "Заявка - Прикрепленные файлы" | |||
Equipment | + | GUID | Идентификатор Оборудования (Equipment.Id) |
Document.Event_ServicesMaterials
Название | Document.ChequeEvent_PaymentServicesMaterials |
---|---|
Назначение | Чек Заявка - ОплатыУслуги и Материалы |
ОписаниеПеречень оплат и сумм | В таблице содержатся услуги и материалы, которые должны были планово отгрузиться клиенту, а также информация о фактически отгруженных позициях и суммах. Состав таблицы является основанием для пробития фискального чека |
Список полей:
Поле | Обяз. | Тип | Описание | ||
---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | ||
LineNumber | Integer | Порядковый номер (для сортировки) | |||
Ref | + | GUID | Идентификатор Заявки (ChequeEvent.Id) | ||
PaymentTypeSKU | + | GUID | Идентификатор "Тип оплатыУслуги и материала" (Catalog.ListOfPayments)RIM.Id) | ||
NomenclatureCode | String (64) | Код товарной номенклатуры | |||
Price | PaymentAmount | + | Decimal (15.2) | Сумма по указанному Типу оплаты |
Document.Cheque_ChequePhoto
...
Список полей:
...
Цена (без учета скидки), по которой отгружена позиция | |||
AmountPlan | Decimal (10.3) | Плановое количество к отгрузке | |
SumPlan | Decimal (15.2) | Плановая сумма оплаты (без учета скидки) | |
Discount | Decimal (15.2) | Сумма скидки на текущую строку. Сумма к оплате рассчитывается как (SumPlan - Discount) | |
AmountFact | Decimal (10.3) | Фактически отгруженное количество | |
SumFact | Decimal (15.2) | Фактически оплаченная сумма | |
TS | GUID | Идентификатор СНО в Catalog.SettingMobileApplication (возможные значения: OSN, USNDebit, USNDebitMinusCredit, ESHN, PSN и null) | |
OrderId | GUID | Идентификатор документа Document.Order | |
PaidSum | Decimal (15.2) | Фактически оплаченна сумма (не используется, оставлена для совместимости. данные по оплатам нужно брать из чеков). | |
ChangeReasonId | GUID | Идентификатор причины изменения количества товара/услуги в заказе (ChangeProductOrServiceCountReasons.Id) | |
EquipmentNodeId | GUID | Идентификатор узла оборудования (EquipmentNodes.Id) | |
CustomsDeclaration | String (50) | Номер ГТД | |
CountryCode | String (3) | Код страны происхождения товара (по ОКСМ, код Альфа-3) | |
NomenclatureCode | String (64) | Код номенклатуры (не используется, оставлен для совместимости) |
Document.Event_ServicesMaterials_Marking
Название | Document.Event_ServicesMaterials_Marking |
---|---|
Назначение | Заявка - Коды маркировки |
Описание | В таблице хранятся серийные номера |
...
Document.EventHistory
Название | Document.EventHistory |
---|---|
Назначение | История оборудования |
Описание | В таблице хранятся записи о всех работах, проведенных с оборудованием |
Список полей:
Поле | Обяз. | Тип | Описание | |||
---|---|---|---|---|---|---|
Idid | + | GUID | Уникальный идентификатор | Date | DateTime | Порядковый номер (для сортировки) |
DeletionMarkServicesMaterialsId | + | Boolean | Признак пометки на удаление | |||
Status | + | GUID | Идентификатор перечисления "Статуса Заявки" (Enum.StatusyEvents) | |||
Event | + | GUID | Идентификатор "Заявки" (Event.Id) | Author | GUID | Идентификатор сотрудника (User.Id, создавшего Заявки) | UserMA | GUID | Идентификатор Исполнителя - сотрудника (User.Id) |
Document.NeedMat
...
GUID | Внешний ключ. Указывает на идентификатор товара в таблице [Document].[Event_ServicesMaterials] | ||
GTIN | + | nvarchar(14) | GTIN - код товара |
IsDeleted | BOOLEAN | Признак, означающий, что позиция удалена | |
KeyFieldTimestamp | BIGINT | timestamp последнего изменения любого из ключевых полей таблицы | |
NomenclatureCode | + | nvarchar(50) | Cерийный номер товарной позиции |
ScanNomenclatureCode | nvarchar(150) | Полный штрихкод для товарной позиции | |
IsScanned | BOOLEAN | Признак, что данный маркировочный код отсканирован |
Document.Event_TypeDepartures
Название | Document.Event_TypeDepartures |
---|---|
Назначение | Заявка - Типы оплат |
Описание | В таблицу нужно добавить одну строку - тип оплаты, соотвествующую реквизиту Event.TypesDepartures |
...
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID. | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки (Event.Id) |
TypeDeparturePosted | + | BooleanGUID | Признак Идентификатор "проведенного" документаТип оплаты" (TypesDepartures.Id) |
ActiveDeletionMark | + | Boolean | Признак пометки на удаление |
Date | + | DateTime | Дата создания документа | Number | String (9) | Номер документа | DocIn | GUID | Идентификатор "Заявки" (Event.Id), в рамках которого оформлена "Заявка на материалы" |
StatsNeed | + | GUID | Идентификатор значения перечисления "Статусы Заявки на материалы" (Enum.StatsNeedNum) |
SR | + | GUID | Идентификатор сотрудника (User.Id, создавшего Заявку) |
FillFull | + | Boolean | Признак, что Заявка создана "по норме". При обработке такой заявки игнорируется кол-во затребованных позиций, а состав заявки формируется с учетом норм и остатков | SRMComment | String (1000) | Комментарий сотрудника, обрабатывающего Заявку | SRComment | String (1000) | Комментарий автора Заявки |
Document.NeedMat_Matireals
...
активности строки. Активной может быть только одна строка |
Document.Order
Название | Document.Order |
---|---|
Назначение | Заказ |
Описание | В таблице хранятся записи о заказах сделаных в рамках наряда |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Number | String (256) | Порядковый номер (для сортировки) | |
Description | String (256) | Описание заказа | |
DeletionMark | + | Boolean | Признак пометки на удаление |
Status | GUID | Идентификатор перечисления "Статуса Заказа" (Enum.OrderStatus) | |
State | GUID | Идентификатор перечисления "Состояния Заказа" (Enum.OrderStates) | |
EquipmentId | GUID | Идентификатор оборудования (Catalog.Equipment) |
Document.Order_OrderPayment
Название | Document.Order_OrderPaymentType |
---|---|
Назначение | Заказ - статус оплаты |
Описание | Перечень статусов оплаты заказа |
...
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор |
...
Заказа |
OrderPaymentType |
...
+ | GUID | Идентификатор " |
...
Статус оплаты" |
Sum |
...
+ | Decimal (15. |
...
2) |
...
Сумма по указанному статусу оплаты |
Document.
...
Cheque
Название | Document.ReminderCheque |
---|---|
НазначениеУведомление | Документ "Чек" |
ОписаниеСписок уведомлений о продажах и проблемах в рамках Заявкок | В таблице оформленные документы "Чек" с необходимыми фискальными реквизитами |
Список полей:
Поле | Обяз. | Тип | Описание | |||||
---|---|---|---|---|---|---|---|---|
Id | + | GUID | Уникальный идентификатор | |||||
PostedIsFiscalCheque | + | Boolean | Признак "проведенного" документа | |||||
DeletionMark | + | Boolean | Признак пометки на удаление | |||||
Date | + | DateTime | Дата создания документа | |||||
Порядковый номер (для сортировки) | ||||||||
ChequeType | Number | String (9) | Номер документа | Reminders | + | GUID | Идентификатор перечисления "ЗаявкиТип чека" (EventEnum.Id), в рамках которого оформлено УведомлениеChequeType) | |
PositionPaymentType | ViewReminder | + | GUID | Идентификатор значения перечисления "Типы УведомленийПризнак способа расчета" (Enum.FoRemindersPositionPaymentType) | Comment | String (1000) | Комментарий |
Document.Reminder_Photo
...
Список полей:
...
Document.Task
...
- на Клиента (будет отображаться во всех Заявках по клиенту)
- на Оборудование (будет отображаться во всех Заявках, где есть указанное Оборудование),
- на Заявку (будет отображаться в конкретной Заявке)
(в текущей версии задается для чека в целом) | |||
Client | GUID | Идентификатор "Клиента" (Catalog.Client) | |
IsMainCheque | + | Boolean | Признак чека "Основой" - оформлен в рамках отгрузки Заказа (в текущей версии всегда True) |
OriginalSalesCheck | GUID | Только для чеков возврата - Идентификатор документа "Чек" (Document.Cheque), по которому оформлялся возврат | |
ApplicationForDelivery | GUID | Идентификатор документа "Заявка" (Document.Event), в рамках которой оформлялся Чек | |
DateOfCheckPrinting | DateTime | Дата и время оформления Чека | |
ShiftNumber | Integer | Номер смены фискального регистратора (ФР) | |
TotalAmount | Decimal (15.2) | Сумма чека | |
FptrNumber | String (100) | Заводской номер ФР | |
FiscalStorageNumber | String (100) | Номер фискального накопителя (ФН) | |
DocumentNumberWithinTheShift | Integer | Номер чека в рамках смены | |
FiscalSignOfTheDocument | Decimal (15.3) | Фискальный номер документа | |
Latitude | Decimal (12.8) | Географические координаты (широта) | |
Longitude | Decimal (12.8) | Географические координаты (долгота) | |
GPSDateTime | DateTime2 | Дата и время по данным датчика GPS | |
ClientAddress | String (1000) | Адрес клиента (как он был отпечатан на чеке) | |
Comment | String (1000) | Коммментарий | |
PhoneOrEmail | String (1000) | Телефон или email покупателя (если был указан) | |
AppliedTaxSystem | String (1000) | Система налогообложения | |
AuthorMA | GUID | Идентификатор Исполнителя - сотрудника (User.Id) |
Document.Cheque_Nomenclature
Название | Document.Cheque_Nomenclature |
---|---|
Назначение | Чек - Товары и услуги |
Описание | Перечень позиций чека, цены, количество, суммы |
Список полей:
...
Document.Task_Status
Название | Document.Task_Status |
---|---|
Назначение | Задача - Статусы |
Описание | Таблица для отслеживания статусов Задач. Дополнительно зраним исполнителя, который выполнил Задачу, и Заявка, в рамках которой Задача была выполнена |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки на материалы (NeedMatCheque.Id) |
CommentContractorRIM | + | String (1000) | Комментарий исполнителя |
Status | + | GUID | Идентификатор значения перечисления "Статусы Задач" (Enum.StatusTasks) |
UserMA | + | GUID | Идентификатор выполнившего Исполнителя (User.Id) |
ActualEndDate | + | DateTime | Дата выполнения Задачи |
GUID | Идентификатор "Услуги и материала" (RIM.Id) | ||
PriceFact | + | Decimal (15.2) | Фактическая цена |
AmountFact | + | Decimal (10.3) | Фактическое количество |
SumFact | + | Decimal (15.2) | Фактическая сумма |
VATCloseEvent | + | GUID | Идентификатор переисления "ЗаявкиСтавки НДС" (EventEnum.Id), в рамках которого выполнена Задача |
Document.Task_Targets
Название | Document.Task_Targets |
---|---|
Назначение | Задача - Цели |
Описание | По каждой задаче может быть поставлено несколько целей. В таблице отслеживается исполнение этих целей. |
VAT) | |||
DiscountAmount | Decimal (15.2) | Сумма скидки на позицию | |
PositionPaymentType | GUID | Идентификатор перечисления "Признак способа расчета" (Enum.PositionPaymentType) |
Document.Cheque_Nomenclature_Marking
Название | Document.Event_Photos |
---|---|
Назначение | Чек - Коды маркировки |
Описание | Коды маркировки номенклатуры чека |
Список полей:
Поле | Обяз. | Тип | Описание | |||
---|---|---|---|---|---|---|
Idid | + | GUID | Уникальный идентификатор | LineNumber | Integer | Порядковый номер (для сортировки) |
ChequeNomenclatureId | Ref | + | GUID | Идентификатор Заявки на материалы (NeedMat.Id) | ||
Description | + | GUID | Описание целей | |||
IsDone | + | Boolean | Признак, что цель достигнута |
Типовые фильтры
Для уменьшения данных, хранимых на мобильном устройстве, а также для минимизации трафика при обмене между мобильным приложением и сервером в решении на таблицы накладываются дополнительные фильтры, отсекающие лишние данные.
Ниже приведены фильтры, наложенные на основные таблицы. На таблицы, связанные с основными (у которых имя представляет собой <ИмяОсновной>_<ИмяСвязанной>
) - дублируются фильтры основных таблиц
Таблица: “Catalog.TypesDepartures”
Описание фильтра:
“Типы оплаты” никак не фильтруются - на все устройства таблица с типами выездов попадает полностью.
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.RIM”
Описание фильтра:
“Услуги и материалы” не фильтруются. На все устройства попадают все “Услуги и материалы”, чтобы мобильные сотрудники могли в рамках Заявки отгружать клиенту любые услуги и материалы.
При включенном функционале “Рюкзак” дополнительная фильтрация отображаемых услуг и материалов выполняется на мобильном устройстве.
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Document.Reminder”
Описание фильтра:
Уведомления не фильтруются. Их передача осуществляется только с мобильного приложения на сервер
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Document.Event”
Описание фильтра:
На мобильное устройство уходят Заявки, соответствующие следующим условиям:
- назначенный исполнитель соотвествует пользователю, авторизованному на мобильном устройстве
- плановая дата Заявки находится текущая либо в будущем и статус один из: ....
- плановая дата Заявки на 31 день в прошлом и статус один из: …
Запрос для фильтрации (в формате SQL):
t.[Id] IN(SELECT DISTINCT EV.[Id] FROM [Document].[Event] EV JOIN [Enum].[StatusyEvents] SE ON EV.[Status] = SE.[Id] LEFT JOIN [Document].[EventHistory] EH ON EH.Event = EV.Id WHERE (EV.[UserMA] = @UserId OR (EH.UserMA = @UserId AND EH.Date >(getDate()-14))) AND EV.[StartDatePlan] >(getDate() - 14) AND (NOT (SE.[Name] = 'New')) AND (NOT (SE.[Name] = 'Done' OR SE.[Name] = 'Cancel' OR SE.[Name] = 'DoneWithTrouble' OR SE.[Name] = 'Close' OR SE.[Name] = 'NotDone' OR SE.[Name] = 'OnTheApprovalOf') OR ((SE.[Name] = 'Done' OR SE.[Name] = 'Cancel' OR SE.[Name] = 'DoneWithTrouble' OR SE.[Name] = 'Close' OR SE.[Name] = 'NotDone' OR SE.[Name] = 'OnTheApprovalOf') AND EV.[ActualEndDate] >(getDate() - 1))) OR SE.[Name] = 'OnRefund')
Таблица: “Document.EventHistory”
Описание фильтра:
“История по Заявкам” не фильтруется. Любой сотрудник может увидеть, что происходило по любой Заявке, которая ему назначена. Доступ к истории возможен только из Заявок, которые в свою очередь фильтруются. Таким образом сотрудник не получит доступа к чужим Заявкам.
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Document.Cheque”
Описание фильтра:
На мобильное устройство уходят Чеки, соответствующие следующим условиям:
- автор чека соотвествует пользователю, авторизованному на мобильном устройстве
- Дата пробития Чека на 31 день в прошлом
Запрос для фильтрации (в формате SQL):
t.[Id] IN (SELECT DC.[Id] From [Document].[Cheque] DC WHERE DC.[AuthorMA] = @UserId AND DC.[DateOfCheckPrinting] > getDate()-31)
—
Таблица: “Catalog.SKU”
Описание фильтра:
“Номенклатура” попадет на мобильное устройство только та, которая используется в привязанных к Завяке “Услугах и материалах”
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DE.SKU FROM [Document].[Event_ServicesMaterials] DE WHERE DE.Ref IN (SELECT SE.Id FROM [Document].[Event] SE WHERE SE.UserMA = @UserId))
Таблица: “Catalog.ServiceAgreement”
Описание фильтра:
На мобильное устройство выгружаются только те “Договоры”, которые привязаны к Оборудованию, имеющемуся в Заявках текущего пользователя.
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT SE.CantractService FROM [Catalog].[Equipment_Equipments] SE WHERE SE.Clients IN (SELECT DE.Client FROM [Document].[Event] DE WHERE DE.UserMA = @UserId))
Таблица: “Catalog.EquipmentOptions”
Описание фильтра:
“Параметры оборудования” не фильтруются и полностью уходят на мобильные устройства.
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.Equipment”
Описание фильтра:
На мобильное устройство выгружается только “Оборудование”, имеющееся в Заявках текущего пользователя
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DE.Equipment FROM [Catalog].[Equipment_Equipments] DE WHERE DE.Clients IN (SELECT SE.Client FROM [Document].[Event] SE WHERE SE.UserMA = @UserId))
Таблица: “Catalog.Client”
Описание фильтра:
На мобильное устройство выгружаются “Клиенты” имеющиеся в Заявках текущего пользователя
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DE.Client FROM [Document].[Event] DE WHERE DE.UserMA = @UserId)
Таблица: “Catalog.SettingMobileApplication”
Описание фильтра:
Настройки мобильного приложения не фильтруются и попадают на все мобильные устройства всем пользователям
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.User”
Описание фильтра:
На мобильное устройство выгрузятся только “Сотрудники”, которые участвовали в истории оборудования, связанного с Заявками текущего пользователя
Запрос для фильтрации (в формате SQL):
t.[Id] = @UserId OR t.[Id] IN (SELECT Executor FROM [Catalog].[Equipment_EquipmentsHistory] WHERE Equipments IN ( SELECT DE.Equipment FROM [Catalog].[Equipment_Equipments] DE WHERE DE.Clients IN (SELECT SE.Client FROM [Document].[Event] SE WHERE SE.UserMA = @UserId))) OR t.[Id] IN (SELECT [Author] FROM [Document].[Event] WHERE [UserMA] = @UserId)
Таблица: “Catalog.Accounts”
Описание фильтра:
“Контрагенты” не фильтруются и попадают на все мобильные устройства. В рамках решения эти данные на мобильном устройстве нигде не отображаются и служат лишь для сохранения целостности данных
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.ClientOptions”
Описание фильтра:
“Параметры клиента” не фильтруются и выгружаются всем мобильным пользователям
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.EventOptions”
Описание фильтра:
“Параметры заявок” не фильтруются и выгружаются на все мобильные устройства
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Document.CheckList”
Описание фильтра:
На мобильнее устройства выгружаются только те “Чек-листы”, которые присутствуют в Заявках текущего пользователя
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DEC.[CheckListRef] FROM [Document].[Event_CheckList] DEC LEFT JOIN [Document].[Event] DE ON DEC.Ref = DE.Id WHERE DE.[UserMA] = @UserId)
Таблица: “Catalog.Actions”
Описание фильтра:
“Вопросы чек-листов” уйдут на мобильное устройство только при условии, что они присутствуют в Чек-листе или в Заявке, назначенной текущему пользователю
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DEC.Action FROM [Document].[Event_CheckList] DEC LEFT JOIN [Document].[Event] DE ON DEC.Ref = DE.Id WHERE DE.[UserMA] = @UserId)
Таблица: “Catalog.Contacts”
Описание фильтра:
Внешний ключ. Указывает на идентификатор номенклатуры из чека [Document].[Cheque_Nomenclature] | |||
GTIN | + | nvarchar(14) | GTIN - код товара |
IsDeleted | BOOLEAN | Признак, означающий, что позиция удалена | |
KeyFieldTimestamp | BIGINT | timestamp последнего изменения любого из ключевых полей таблицы | |
NomenclatureCode | + | nvarchar(50) | Cерийный номер товарной позиции |
ScanNomenclatureCode | nvarchar(150) | Полный штрихкод для товарной позиции |
Document.Cheque_Payment
Название | Document.Cheque_Payment |
---|---|
Назначение | Чек - Оплаты |
Описание | Перечень оплат и сумм |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Чека (Cheque.Id) |
PaymentType | + | GUID | Идентификатор "Тип оплаты" (Catalog.ListOfPayments) |
PaymentAmount | + | Decimal (15.2) | Сумма по указанному Типу оплаты |
RRN | String (50) | Номер транзации для выполнения возврата эквайринговой операции на ККТ Азур | |
TransactionId | String (80) | Идентификатор эквайринговой транзакции |
Document.Cheque_ChequePhoto
Название | Document.Cheque_ChequePhoto |
---|---|
Назначение | Заявка - Фотографии оборудования |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки (Cheque.Id) |
PhotoId | + | GUID | Внутренне имя файла (автоматически формируется в формате GUID) |
Comment | String (1000) | Комментарий к фото |
Document.EventHistory
Название | Document.EventHistory |
---|---|
Назначение | История оборудования |
Описание | В таблице хранятся записи о всех работах, проведенных с оборудованием |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Date | DateTime | Порядковый номер (для сортировки) | |
DeletionMark | + | Boolean | Признак пометки на удаление |
Status | + | GUID | Идентификатор перечисления "Статуса Заявки" (Enum.StatusyEvents) |
Event | + | GUID | Идентификатор "Заявки" (Event.Id) |
Author | GUID | Идентификатор сотрудника (User.Id, создавшего Заявки) | |
UserMA | GUID | Идентификатор Исполнителя - сотрудника (User.Id) |
Document.NeedMat
Название | Document.NeedMat |
---|---|
Назначение | Заявка на материалы |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Posted | + | Boolean | Признак "проведенного" документа |
DeletionMark | + | Boolean | Признак пометки на удаление |
Date | + | DateTime | Дата создания документа |
Number | String (9) | Номер документа | |
DocIn | GUID | Идентификатор "Заявки" (Event.Id), в рамках которого оформлена "Заявка на материалы" | |
StatsNeed | + | GUID | Идентификатор значения перечисления "Статусы Заявки на материалы" (Enum.StatsNeedNum) |
SR | + | GUID | Идентификатор сотрудника (User.Id, создавшего Заявку) |
FillFull | + | Boolean | Признак, что Заявка создана "по норме". При обработке такой заявки игнорируется кол-во затребованных позиций, а состав заявки формируется с учетом норм и остатков |
SRMComment | String (1000) | Комментарий сотрудника, обрабатывающего Заявку | |
SRComment | String (1000) | Комментарий автора Заявки |
Document.NeedMat_Matireals
Название | Document.NeedMat_Matireals |
---|---|
Назначение | Заявка на материалы - Состав |
Описание | Список и количество затребованных и отгруженных материалов |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки на материалы (NeedMat.Id) |
SKU | + | GUID | Идентификатор "Услуги и материала" (RIM.Id) |
Count | + | Decimal (15.3) | Количество затребованных / отгруженных материалов |
Document.Reminder
Название | Document.Reminder |
---|---|
Назначение | Уведомление |
Описание | Список уведомлений о продажах и проблемах в рамках Заявкок |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Posted | + | Boolean | Признак "проведенного" документа |
DeletionMark | + | Boolean | Признак пометки на удаление |
Date | + | DateTime | Дата создания документа |
Number | String (9) | Номер документа | |
Reminders | + | GUID | Идентификатор "Заявки" (Event.Id), в рамках которого оформлено Уведомление |
ViewReminder | + | GUID | Идентификатор значения перечисления "Типы Уведомлений" (Enum.FoReminders) |
Comment | String (1000) | Комментарий |
Document.Reminder_Photo
Название | Document.Reminder_Photo |
---|---|
Назначение | Уведомление - Фотографии |
Описание |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки (Reminder.Id) |
IDPhoto | + | GUID | Идентификатор файла |
Document.Task
Название | Document.Task |
---|---|
Назначение | Задача |
Описание | Задачи - это отдельные сущности, исполнение которых можно отслеживать в рамках Заявки. Задачи могут быть назначены: - на Клиента (будет отображаться во всех Заявках по клиенту) - на Оборудование (будет отображаться во всех Заявках, где есть указанное Оборудование), - на Заявку (будет отображаться в конкретной Заявке) |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
Posted | + | Boolean | Признак "проведенного" документа |
DeletionMark | + | Boolean | Признак пометки на удаление |
Date | + | DateTime | Дата создания документа |
Number | String (9) | Номер документа | |
Description | String (1000) | Описание Задачи | |
Client | GUID | Идентификатор Клиента (Client.Id, на которого назначена Задача) | |
Equipment | GUID | Идентификатор Оборудования (Equipment.Id), на которое назначена Задача | |
Event | GUID | Идентификатор "Заявки" (Event.Id), на который назначена Задача | |
TaskType | String (100) |
Document.Task_Status
Название | Document.Task_Status |
---|---|
Назначение | Задача - Статусы |
Описание | Таблица для отслеживания статусов Задач. Дополнительно зраним исполнителя, который выполнил Задачу, и Заявка, в рамках которой Задача была выполнена |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки на материалы (NeedMat.Id) |
CommentContractor | + | String (1000) | Комментарий исполнителя |
Status | + | GUID | Идентификатор значения перечисления "Статусы Задач" (Enum.StatusTasks) |
UserMA | + | GUID | Идентификатор выполнившего Исполнителя (User.Id) |
ActualEndDate | + | DateTime | Дата выполнения Задачи |
CloseEvent | + | GUID | Идентификатор "Заявки" (Event.Id), в рамках которого выполнена Задача |
Document.Task_Targets
Название | Document.Task_Targets |
---|---|
Назначение | Задача - Цели |
Описание | По каждой задаче может быть поставлено несколько целей. В таблице отслеживается исполнение этих целей. |
Список полей:
Поле | Обяз. | Тип | Описание |
---|---|---|---|
Id | + | GUID | Уникальный идентификатор |
LineNumber | Integer | Порядковый номер (для сортировки) | |
Ref | + | GUID | Идентификатор Заявки на материалы (NeedMat.Id) |
Description | + | GUID | Описание целей |
IsDone | + | Boolean | Признак, что цель достигнута |
Типовые фильтры
Для уменьшения данных, хранимых на мобильном устройстве, а также для минимизации трафика при обмене между мобильным приложением и сервером в решении на таблицы накладываются дополнительные фильтры, отсекающие лишние данные.
Ниже приведены фильтры, наложенные на основные таблицы. На таблицы, связанные с основными (у которых имя представляет собой <ИмяОсновной>_<ИмяСвязанной>
) - дублируются фильтры основных таблиц
...
Таблица: “Catalog.TypesDepartures”
Описание фильтра:
“Типы оплаты” никак не фильтруются - на все устройства таблица с типами выездов попадает полностью.
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Catalog.RIM”
Описание фильтра:
“Услуги и материалы” не фильтруются. На все устройства попадают все “Услуги и материалы”, чтобы мобильные сотрудники могли в рамках Заявки отгружать клиенту любые услуги и материалы.
При включенном функционале “Рюкзак” дополнительная фильтрация отображаемых услуг и материалов выполняется на мобильном устройстве.
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Document.Reminder”
Описание фильтра:
Уведомления не фильтруются. Их передача осуществляется только с мобильного приложения на сервер“Контактные лица” не фильтруются
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Document.NeedMat”Event”
Описание фильтра:
“Заявки на материалы” - выгружаются только созданные текущим пользователем
Запрос для фильтрации (в формате SQL):
t.[SR] = @UserId
Таблица: “Document.Task”
Описание фильтра:
“Задачи” не фильтруются, так как могут быть связаны не только с Заявками, но и с Клиентами и Оборудованием. Поэтому они все должны быть доступны всем пользователям
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.RIM”
Описание фильтра:
Выгружаются товары, имещиеся в Заказах текущего пользователя за последние 14 дней
На мобильное устройство уходят Заявки, соответствующие следующим условиям:
- назначенный исполнитель соотвествует пользователю, авторизованному на мобильном устройстве
- плановая дата Заявки находится текущая либо в будущем и статус один из: ....
- плановая дата Заявки на 31 день в прошлом и статус один из: …
Запрос для фильтрации (в формате SQL):
t.[Id] IN (SELECT SELECTDISTINCT DESM.SKU FROM [Document].[Event] as EV JOIN Document.Event_ServicesMaterials DESM ON DESM.Ref = EV.Id WHERE EV.Id IN (SELECT DISTINCT EV.[IdEV.[Id] FROM [Document].[Event] EV JOIN [Enum].[StatusyEvents] SE ON EV.[Status] = SE.[Id] LEFT JOIN [Document].[EventHistory] EH ON EH.Event = EV.Id WHERE (EV.[UserMA] = @UserId OR (EH.UserMA = @UserId AND EH.Date > (getDate()-14))) AND EV.[StartDatePlan] > (getDate() - 14) AND (NOT (SE.[Name] = 'New')) AND (NOT (SE.[Name] = 'Done' OR SE.[Name] = 'Cancel' OR SE.[Name] = 'DoneWithTrouble' OR SE.[Name] = 'Close' OR SE.[Name] = 'NotDone' OR SE.[Name] = 'OnTheApprovalOf') OR ((SE.[Name] = 'Done' OR SE.[Name] = 'Cancel' OR SE.[Name] = 'DoneWithTrouble' OR SE.[Name] = 'Close' OR SE.[Name] = 'NotDone' OR SE.[Name] = 'OnTheApprovalOf') AND EV.[ActualEndDate] >(getDate() - 1)))) ) OR t.Favorites = 1
Таблица: “Catalog.Roles”
Описание фильтра:
“Роли” не фильтруются - контроль прав должен выполняться для всех ролей
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.RoleWebactions”
Описание фильтра:
“Права ролей” - выгружаются полностью для корректного контроля прав
Запрос для фильтрации (в формате SQL):
<отсутствует>
Настройки мобильного приложения
Настройки мобильного приложения являются общими для всех устройств и не зависят от текущего пользователя.
...
(getDate() - 1))) OR SE.[Name] = 'OnRefund')
...
Таблица: “Document.EventHistory”
Описание фильтра:
“История по Заявкам” не фильтруется. Любой сотрудник может увидеть, что происходило по любой Заявке, которая ему назначена. Доступ к истории возможен только из Заявок, которые в свою очередь фильтруются. Таким образом сотрудник не получит доступа к чужим Заявкам.
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Document.Cheque”
Описание фильтра:
На мобильное устройство уходят Чеки, соответствующие следующим условиям:
- автор чека соотвествует пользователю, авторизованному на мобильном устройстве
- Дата пробития Чека на 31 день в прошлом
Запрос для фильтрации (в формате SQL):
t.[Id] IN (SELECT DC.[Id] From [Document].[Cheque] DC WHERE DC.[AuthorMA] = @UserId AND DC.[DateOfCheckPrinting] > getDate()-31)
—
Таблица: “Catalog.SKU”
Описание фильтра:
“Номенклатура” попадет на мобильное устройство только та, которая используется в привязанных к Завяке “Услугах и материалах”
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DE.SKU FROM [Document].[Event_ServicesMaterials] DE WHERE DE.Ref IN (SELECT SE.Id FROM [Document].[Event] SE WHERE SE.UserMA = @UserId))
...
Таблица: “Catalog.ServiceAgreement”
Описание фильтра:
На мобильное устройство выгружаются только те “Договоры”, которые привязаны к Оборудованию, имеющемуся в Заявках текущего пользователя.
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT SE.CantractService FROM [Catalog].[Equipment_Equipments] SE WHERE SE.Clients IN (SELECT DE.Client FROM [Document].[Event] DE WHERE DE.UserMA = @UserId))
...
Таблица: “Catalog.EquipmentOptions”
Описание фильтра:
“Параметры оборудования” не фильтруются и полностью уходят на мобильные устройства.
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Catalog.Equipment”
Описание фильтра:
На мобильное устройство выгружается только “Оборудование”, имеющееся в Заявках текущего пользователя
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DE.Equipment FROM [Catalog].[Equipment_Equipments] DE WHERE DE.Clients IN (SELECT SE.Client FROM [Document].[Event] SE WHERE SE.UserMA = @UserId))
...
Таблица: “Catalog.Client”
Описание фильтра:
На мобильное устройство выгружаются “Клиенты” имеющиеся в Заявках текущего пользователя
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DE.Client FROM [Document].[Event] DE WHERE DE.UserMA = @UserId)
...
Таблица: “Catalog.SettingMobileApplication”
Описание фильтра:
Настройки мобильного приложения не фильтруются и попадают на все мобильные устройства всем пользователям
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Catalog.User”
Описание фильтра:
На мобильное устройство выгрузятся только “Сотрудники”, которые участвовали в истории оборудования, связанного с Заявками текущего пользователя
Запрос для фильтрации (в формате SQL):
t.[Id] = @UserId OR t.[Id] IN (SELECT Executor FROM [Catalog].[Equipment_EquipmentsHistory] WHERE Equipments IN ( SELECT DE.Equipment FROM [Catalog].[Equipment_Equipments] DE WHERE DE.Clients IN (SELECT SE.Client FROM [Document].[Event] SE WHERE SE.UserMA = @UserId))) OR t.[Id] IN (SELECT [Author] FROM [Document].[Event] WHERE [UserMA] = @UserId)
...
Таблица: “Catalog.Accounts”
Описание фильтра:
“Контрагенты” не фильтруются и попадают на все мобильные устройства. В рамках решения эти данные на мобильном устройстве нигде не отображаются и служат лишь для сохранения целостности данных
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Catalog.ClientOptions”
Описание фильтра:
“Параметры клиента” не фильтруются и выгружаются всем мобильным пользователям
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Catalog.EventOptions”
Описание фильтра:
“Параметры заявок” не фильтруются и выгружаются на все мобильные устройства
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Document.CheckList”
Описание фильтра:
На мобильнее устройства выгружаются только те “Чек-листы”, которые присутствуют в Заявках текущего пользователя
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DEC.[CheckListRef] FROM [Document].[Event_CheckList] DEC LEFT JOIN [Document].[Event] DE ON DEC.Ref = DE.Id WHERE DE.[UserMA] = @UserId)
...
Таблица: “Catalog.Actions”
Описание фильтра:
“Вопросы чек-листов” уйдут на мобильное устройство только при условии, что они присутствуют в Чек-листе или в Заявке, назначенной текущему пользователю
Запрос для фильтрации (в формате SQL):
t.Id IN (SELECT DEC.Action FROM [Document].[Event_CheckList] DEC LEFT JOIN [Document].[Event] DE ON DEC.Ref = DE.Id WHERE DE.[UserMA] = @UserId)
...
Таблица: “Catalog.Contacts”
Описание фильтра:
“Контактные лица” не фильтруются
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Document.NeedMat”
Описание фильтра:
“Заявки на материалы” - выгружаются только созданные текущим пользователем
Запрос для фильтрации (в формате SQL):
t.[SR] = @UserId
...
Таблица: “Document.Task”
Описание фильтра:
“Задачи” не фильтруются, так как могут быть связаны не только с Заявками, но и с Клиентами и Оборудованием. Поэтому они все должны быть доступны всем пользователям
Запрос для фильтрации (в формате SQL):
<отсутствует>
Таблица: “Catalog.RIM”
Описание фильтра:
Выгружаются товары, имещиеся в Заказах текущего пользователя за последние 14 дней
Запрос для фильтрации (в формате SQL):
t.[Id] IN ( SELECT DESM.SKU FROM [Document].[Event] as EV JOIN Document.Event_ServicesMaterials DESM ON DESM.Ref = EV.Id WHERE EV.Id IN (SELECT DISTINCT EV.[Id] FROM [Document].[Event] EV JOIN [Enum].[StatusyEvents] SE ON EV.[Status] = SE.[Id] LEFT JOIN [Document].[EventHistory] EH ON EH.Event = EV.Id WHERE (EV.[UserMA] = @UserId OR (EH.UserMA = @UserId AND EH.Date > (getDate()-14))) AND EV.[StartDatePlan] > (getDate() - 14) AND (NOT (SE.[Name] = 'New')) AND (NOT (SE.[Name] = 'Done' OR SE.[Name] = 'Cancel' OR SE.[Name] = 'DoneWithTrouble' OR SE.[Name] = 'Close' OR SE.[Name] = 'NotDone' OR SE.[Name] = 'OnTheApprovalOf') OR ((SE.[Name] = 'Done' OR SE.[Name] = 'Cancel' OR SE.[Name] = 'DoneWithTrouble' OR SE.[Name] = 'Close' OR SE.[Name] = 'NotDone' OR SE.[Name] = 'OnTheApprovalOf') AND EV.[ActualEndDate] >(getDate() - 1)))) ) OR t.Favorites = 1
...
Таблица: “Catalog.Roles”
Описание фильтра:
“Роли” не фильтруются - контроль прав должен выполняться для всех ролей
Запрос для фильтрации (в формате SQL):
<отсутствует>
...
Таблица: “Catalog.RoleWebactions”
Описание фильтра:
“Права ролей” - выгружаются полностью для корректного контроля прав
Запрос для фильтрации (в формате SQL):
<отсутствует>
Настройки мобильного приложения
Настройки мобильного приложения являются общими для всех устройств и не зависят от текущего пользователя.
Наименование настройки | Значение (логическое) | Значение (числовое) | Описание |
---|---|---|---|
AddUnPlanMaterials | 1 | 0 | Возможность добавлять материалы кроме плановых |
AddUnPlanService | 1 | 0 | Возможность добавлять услуги роме плановых |
AllowGalery | 1 | 0 | Возможность вставлять фотографии не только с камеры, но и из галереи мобильного устройства |
EditPlanMaterials | 1 | 0 | Возможность редактирования количество материалов относительно планового |
EditPlanService | 1 | 0 | Возможность редактирования количество услуг относительно планового |
HistoryLength | 1 | 90 | Видимость истории и ее длительность в днях |
PictureSize | 0 | 2500 | Максимальный размер фотографии в точках по длинной стороне |
UsedCalculate | 1 | 0 | Отображать цену и сумму |
UsedCalculateMaterials | 1 | 0 | Отображать цену и сумму по материалам |
UsedCalculateService | 1 | 0 | Отображать цену и сумму по услугам |
UsedCheckLists | 1 | 0 | Использование чек-листов |
UsedEquipment | 1 | 0 | Возможность работы с оборудованием |
UsedGpsFix | 0 | 0 | Использование GPS |
UsedServiceBag | 0 | 0 | Использование “Рюкзака” |
EnableFPTR | 1 | 0 | Возможность работы с фискальным регистратором на мобильном устройстве |
IsMultipleTS | 1 | 0 | Возможность работы с различными системами налогообложения |
PaymentAgent | 1 | 0 | Возможность работы в режиме "Платежный агент" |
PaymentReward | 1 | 0 | Печать агентского вознаграждения в чеке |
EnableCodePrint | 1 | 0 | Передача кода товарной номенклатуры на фискальный регистратор |
Использование статусов заказа и оплаты при разных сценариях работы
Системой Grotem Express тот или иной сценарий работы с заказами, имеющими различные способы расчета, определяется через статусы заказов и статусы оплаты. Ниже рассмотрены сценарии работы с такими заказами.
Полная оплата и отгрузка
При отгрузке товара по заказу с получением полной его оплаты в Grotem Express выгружается заказ со статусом «Delivery»:
Статус заказа | Запись в таблицу | Таблица перечисления |
---|---|---|
Delivery | Document.Order | Enum.OrderStatus |
После получения курьером оплаты в таблицу Document.Order_OrderPayment делается запись со статусом «DeliveryPayment»:
Статус платежа | Запись в таблицу | Таблица перечисления |
---|---|---|
DeliveryPayment | Document.Order_OrderPayment | Enum.OrderPaymentTypes |
Отгрузка в кредит
При отгрузке товара по заказу без получения оплаты по нему, товар передается в кредит. При этом в Grotem Express выгружается заказ со статусом «Delivery»:
Статус заказа | Запись в таблицу | Таблица перечисления |
---|---|---|
Delivery | Document.Order | Enum.OrderStatus |
После получения курьером оплаты в таблицу Document.Order_OrderPayment делается запись со статусом «DeliveryPayment»:
Статус платежа | Запись в таблицу | Таблица перечисления |
---|---|---|
DeliveryPayment | Document.Order_OrderPayment | Enum.OrderPaymentTypes |
Оплата кредита
При получении оплаты кредита за заказ, который ранее был отгружен, в Grotem Express выгружается заказ со статусом «Credit»:
Статус заказа | Запись в таблицу | Таблица перечисления |
---|---|---|
Credit | Document.Order | Enum.OrderStatus |
После получения курьером оплаты в таблицу Document.Order_OrderPayment делается запись со статусом «CreditPayment»:
Статус платежа | Запись в таблицу | Таблица перечисления |
---|---|---|
CreditPayment | Document.Order_OrderPayment | Enum.OrderPaymentTypes |
Как настроить отправку пуш-уведомлений
В endpoint на Grotem сервере: /push/sendmessage надо отправить POST запрос следующего вида:
В теле запроса должен быть json:
{
"Data":"ххххххххх",
"AdditionalInfo":"ххххххх",
"Recipients":["71E1C7EF-1387-11E6-B0E4-6C71D97753D2"],
"EventId":"71E1C804-1387-11E6-B0E4-6C71D97753D2",
"EventNumber":"12234",
"ClientName":"ххххх"
}
где:
"Recipients" - это "UserId" (массив);
Примечание. EventNumber и ClientName указывать не обязательно.
Загрузка номенклатуры с кодами маркировки
В endpoint на Grotem сервере: http(s)://<внешний адрес клиента>:<порт >/<сервер>/<решение>/admin/SyncSolutionDatabase надо отправить POST запрос следующего вида:
В теле запроса должен быть json: пример json-файла
Версии документа и внесенные изменения
Версия | Дата публикации | Внесенные изменения |
---|---|---|
1.21.0 | 03.07.2019 | В Catalog.Client добавлено поле ИНН клиента (ClientINN); в Document.EventServicesMaterials добавлен код товарной номенклатуры (NomenclatureCode); в Catalog.SettingMobileApplication добавлена настройка EnableCodePrint (передавать код товарной номенклатуры) |
1.20.0 | 06.06.2019 | В связи с расширением объектной модели добавлено описание новых справочников и документов: Catalog.ChangeProductOrServiceCountReasons, Catalog.Coefficients, Document.Contract, Document.Contract_Coefficients, Catalog.EquipmentNodes, Catalog.TimeIntervals, Enum.CashBalanceStatuses, Enum.OrderPaymentTypes, Enum.RouteStatuses, Document.CorrectionOrderPhotos, Enum.SettingType, Catalog.Subdivisions Добавлены новые поля в Document.Cheque_Payment, Document.Event_CheckList, Document.Event_ServicesMaterials. |
1.14.1 | 12.12.2018 | Добавлен раздел "Использование статусов заказа и оплаты при разных сценариях работы". |
Версии документа и внесенные изменения
Версия | Дата публикации | Внесенные изменения|
---|---|---|
1.14 | 04.12.2018 | Добавлены документы: Document.Order, Document.Order_OrderPaymentTypeOrderPayment. В документ Document.Cheque_Nomenclature добавлено поле: PositionPaymentType. В перечисление Enum.VATs добавлены значения ставок 18/118 и 10/110. Добавлены перечисления Enum.OrderStatus (статусы заказа) и Enum.OrderPaymentTypes (статусы оплаты) |
1.13 | 09.10.2018 | Добавлено поле "ИНН кассира" в справочник "Сотрудники". |
1.10 | 12.04.2018 | Размер столбца "Description" Catalog.RIM увеличен до 512 символов включительно. Поле Root таблицы Catalog.User удалено. Вместо него используется поле Root таблицы ролей Catalog.Roles. Поле NumberOfExternalSystem таблицы Document.Event - стало обязательным. Используйте его для передачи номера заявки. |
1.9 | 07.02.2018 | Структура таблиц приведена в соответствие с релизом 1.9.0.0 Добавлен справочник "Поставщики" В "Заявку" добавлены "СНО" для каждой позиции В "Заявку" добавлен "Поставщик" для каждой позиции В "справочник работ и материалов" добавлен идентификатор элемента справочника "Поставщики" (Provider.Id) |
1.6 | 10.08.2017 | Описание TypeDeparture изменено с "Тип выезда" на "Тип оплаты" |
1.6 | 09.08.2017 | Структура таблиц приведена в соответствие с релизом 1.6.0.0
|
1.4 | 11.07.2017 | Структура таблиц приведена в соответствие с релизом 1.4.0.0
|
1.3 | 26.06.2017 | Структура таблиц приведена в соответствие с релизом 1.3.0.0 |
1.2 | 10.04.2017 |
|
1.1 | 17.03.2017 | Исходная публикация |