GDMN-Salary (Руководство разработчика)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «=== Классы, хранящиеся в клиентской БД === Указаны лишь те поля, которые связаны с БД '''Клас…»)
 
(Отмена правки 7281, сделанной участником Marina K.S. (обс.))
 
(не показаны 11 промежуточных версий 1 участника)
Строка 1: Строка 1:
 +
=== Web-server API ===
 +
 +
==== Протокол ====
 +
 +
=====HTTP-запрос к серверу=====
 +
 +
Метод запроса:
 +
  GET <URI запроса> HTTP/1.1
 +
 +
Header:
 +
  Content-Type: application/json; charset=utf-8
 +
 +
Обязательный параметр GET-запроса:
 +
  token - ключ, ассоциированный с необходимым скриптом
 +
 +
Передача объектов осуществляется в формате JSON.
 +
формат даты
 +
 +
=====HTTP-ответ сервера=====
 +
 +
  {"cl":"SyncHeader", "params":{"ключ":"значение", ...}}
 +
 +
 +
  RealmSyncObject {
 +
    String                  cl          - required
 +
    <T extends RealmObject> obj        - required
 +
    List<Link>              master     
 +
    List<Link>              link       
 +
    boolean                deleted
 +
  }
 +
 +
  Link {
 +
    String cl          - required
 +
    String uid        - required
 +
    String field      - required
 +
  }
 +
 +
 +
Тайм-ауты на клиенте:
 +
  ConnectTimeout - 60с
 +
  ReadTimeout - 60с
 +
 +
==== Реализация протокола для данных GDMN-Salary ====
 +
 +
=====Токены=====
 +
 +
[AndroidSalary_RegisterHandler]
 +
 +
  gdmnSalarySetGCMRegId
 +
  gdmnSalarySignIn
 +
  gdmnSalarySync
 +
  gdmnSalarySyncMsg
 +
  gdmnSalarySendMsg
 +
  gdmnSalarySendMsgStates
 +
  gdmnSalaryGetNewInvite
 +
 +
=====Параметры=====
 +
Обязательные параметры:
 +
  ip_address
 +
  app_version_code
 +
  auth_key (для всех, кроме gdmnSalarySignIn)
 +
 +
=====Синхронизация объектов=====
 +
 +
Пример данных для EmployeeModel, PayslipModel и PayslipItemModel:
 +
  {cl:"EmployeeModel", obj:{uid:"123", ...}}
 +
  {cl:"PayslipModel", link:[{cl:"EmployeeModel", uid:"123", field:"employee"}], obj:{uid:"456", ...}}
 +
  {cl:"PayslipItemModel", master:[{cl:"PayslipModel", uid:"456", field:"items"}], obj:{...}}
 +
 +
Пример данных для EmployeeModel, TimesheetModel, WorkscheduleModel и DayEventModel:
 +
  {cl:"EmployeeModel", obj:{uid:"123", ...}}
 +
  {cl:"TimesheetModel", link:[{cl:"EmployeeModel", uid:"123", field:"employee"}], obj:{uid:"456", ...}}
 +
  {cl:"WorkscheduleModel", link:[{cl:"EmployeeModel", uid:"123", field:"employee"}], obj:{uid:"789", ...}}
 +
  {cl:"DayEventModel", master:[{cl:"TimesheetModel", uid:"456", field:"events"}, {cl:"WorkscheduleModel", uid:"789", field:"events"}], obj:{...}}
 +
 
 +
Пример удаления записи:
 +
  {cl:"EmployeeModel", delete:"true", obj:{uid:"123"}}
 +
 
=== Классы, хранящиеся в клиентской БД ===
 
=== Классы, хранящиеся в клиентской БД ===
 
Указаны лишь те поля, которые связаны с БД
 
Указаны лишь те поля, которые связаны с БД
  
'''Класс DayEventModel'''
+
===='''DayEventModel''' - событие дня в расписании или табеле====
 
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 
!style="background:#ffdead;"| Наименование
 
!style="background:#ffdead;"| Наименование
Строка 9: Строка 87:
 
|- align="center"
 
|- align="center"
 
| uid
 
| uid
| String
+
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| eventTypeIndex
 
| eventTypeIndex
 +
| int
 +
| Тип события дня [DayEventModel.EventType]
 +
|- align="center"
 +
| timeBegin
 +
| Date
 +
| Время начала
 +
|- align="center"
 +
| timeEnd
 +
| Date
 +
| Время окончания
 +
|- align="center"
 +
| hours
 +
| double
 +
| Продолжительность, часов
 +
|- align="center"
 +
| description
 +
| String
 +
| Описание
 +
|- align="center"
 +
| isAllDay
 +
| boolean
 +
| Продолжительность: весь день
 +
|}
 +
 +
===='''DeviceInfoModel''' - информация об устройстве====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| phoneNumber
 +
| String
 +
| MSISDN
 +
|- align="center"
 +
| deviceId
 +
| String
 +
| Уникальный идентификатор устройства [IMEI for GSM, MEI for GSM, MEID/ESN for CDMA phones, else: android_id]
 +
|- align="center"
 +
| deviceModel
 +
| String
 +
| Модель устройства
 +
|}
 +
 +
===='''EmployeeModel''' - сотрудник====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| firstname
 +
| String
 +
| Имя
 +
|- align="center"
 +
| surname
 +
| String
 +
| Фамилия
 +
|- align="center"
 +
| middlename
 +
| String
 +
| Отчество
 +
|- align="center"
 +
| passportId
 +
| String
 +
| ID паспорта
 +
|- align="center"
 +
| listNumber
 +
| String
 +
| Табельный номер
 +
|}
 +
 +
===='''ExRatesMonthlyModel''' - курс валют====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| onDate
 +
| Date
 +
| Дата
 +
|- align="center"
 +
| usdRate
 +
| double
 +
| Курс доллара
 +
|- align="center"
 +
| eurRate
 +
| double
 +
| Курс евро
 +
|}
 +
 +
===='''GdMsgAbsenceModel''' - заявка о неявке на работу====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| typeIndex
 +
| int
 +
| Тип неявки [GdMsgAbsenceModel.Type]
 +
|- align="center"
 +
| dateBegin
 +
| Date
 +
| Дата начала
 +
|- align="center"
 +
| dateEnd
 +
| Date
 +
| Дата окончания
 +
|- align="center"
 +
| requestGdMsgModel
 +
| GdMsgModel
 +
| Cообщение, на которое ответ (для серверных сообщений)
 +
|}
 +
 +
===='''GdMsgIncomeModel''' - заявка о справке о доходах====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| dateBegin
 +
| Date
 +
| Дата начала
 +
|- align="center"
 +
| dateEnd
 +
| Date
 +
| Дата окончания
 +
|- align="center"
 +
| requestGdMsgModel
 +
| GdMsgModel
 +
| Cообщение, на которое ответ (для серверных сообщений)
 +
|}
 +
 +
===='''GdMsgInfoModel''' - информационное сообщение====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| requestGdMsgModel
 +
| GdMsgModel
 +
| Cообщение, на которое ответ (для серверных сообщений)
 +
|}
 +
 +
===='''GdMsgModel''' - сообщение====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| requestStatusIndex
 +
| int
 +
| Статус запроса [GdMsgModel.RequestStatus]
 +
|- align="center"
 +
| subjectIndex
 +
| int
 +
| Тема запроса [GdMsgModel.Subject]
 +
|- align="center"
 +
| senderIndex
 +
| int
 +
| Тип отправителя [GdMsgModel.Sender]
 +
|- align="center"
 +
| isUnread
 +
| boolean
 +
| Прочитано
 +
|- align="center"
 +
| timestamp
 +
| Date
 +
| Дата создания
 +
|- align="center"
 +
| msg
 
| String
 
| String
 
|  
 
|  
 +
|- align="center"
 +
| comment
 +
| String
 +
| Комментарий
 +
|- align="center"
 +
| gdMsgString
 +
| String
 +
| Строковое представление данных сообщения (для поиска по ним)
 +
|- align="center"
 +
| gdMsgAbsenceModel
 +
| GdMsgAbsenceModel
 +
| Заявка: неявка на работу
 +
|- align="center"
 +
| gdMsgIncomeModel
 +
| GdMsgIncomeModel
 +
| Заявка: справка о доходах
 +
|- align="center"
 +
| gdMsgVacationModel
 +
| GdMsgVacationModel
 +
| Заявка: отпуск
 +
|- align="center"
 +
| gdMsgInfoModel
 +
| GdMsgInfoModel
 +
| Информационное сообщение
 +
|- align="center"
 +
| gdMsgVacationInfoModel
 +
| GdMsgVacationInfoModel
 +
| Заявка: информация о ближайшем отпуске
 
|}
 
|}
 +
 +
===='''GdMsgVacationInfoModel''' - заявка о информации на ближайший отпуск====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| dateBegin
 +
| Date
 +
| Дата начала
 +
|- align="center"
 +
| dateEnd
 +
| Date
 +
| Дата окончания
 +
|- align="center"
 +
| requestGdMsgModel
 +
| GdMsgModel
 +
| Cообщение, на которое ответ (для серверных сообщений)
 +
|}
 +
 +
===='''GdMsgVacationModel''' - заявка об отпуске====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| typeIndex
 +
| int
 +
| Тип отпуска [GdMsgVacationModel.Type]
 +
|- align="center"
 +
| dateBegin
 +
| Date
 +
| Дата начала
 +
|- align="center"
 +
| dateEnd
 +
| Date
 +
| Дата окончания
 +
|- align="center"
 +
| requestGdMsgModel
 +
| GdMsgModel
 +
| Cообщение, на которое ответ (для серверных сообщений)
 +
|}
 +
 +
===='''PayslipBenefitModel''' - льгота расчетного литка====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| date
 +
| Date
 +
| Дата
 +
|- align="center"
 +
| name
 +
| String
 +
| Наименование
 +
|- align="center"
 +
| sum
 +
| double
 +
| Сумма
 +
|- align="center"
 +
| code
 +
| int
 +
| Код льготы
 +
|}
 +
 +
===='''PayslipDeductionModel''' - вычет расчетного листка====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| date
 +
| Date
 +
| Дата
 +
|- align="center"
 +
| name
 +
| String
 +
| Наименование
 +
|- align="center"
 +
| deductionKind
 +
| String
 +
| Вид вычета
 +
|- align="center"
 +
| sum
 +
| double
 +
| Сумма
 +
|- align="center"
 +
| code
 +
| int
 +
| Код вычета
 +
|}
 +
 +
===='''PayslipItemModel''' - позиция расчетного листка (начисление/удержание/налог/аванс)====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| categoryIndex
 +
| int
 +
| Тип категории [PayslipItemModel.Category]
 +
|- align="center"
 +
| date
 +
| Date
 +
| Дата
 +
|- align="center"
 +
| name
 +
| String
 +
| Наименование
 +
|- align="center"
 +
| code
 +
| int
 +
| Код
 +
|- align="center"
 +
| debit
 +
| double
 +
| Сумма дебета
 +
|- align="center"
 +
| credit
 +
| double
 +
| Сумма кредита
 +
|}
 +
 +
===='''PayslipModel''' - расчетный листок за месяц====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| payDate
 +
| Date
 +
| Дата окончания периода
 +
|- align="center"
 +
| employee
 +
| EmployeeModel
 +
| Сотрудник
 +
|- align="center"
 +
| department
 +
| String
 +
| Участок
 +
|- align="center"
 +
| isFinal
 +
| boolean
 +
| Окончательный
 +
|- align="center"
 +
| position
 +
| String
 +
| Должность
 +
|- align="center"
 +
| salary
 +
| double
 +
| Сумма оклада
 +
|- align="center"
 +
| hourRate
 +
| double
 +
| Сумма почасовой тарифной ставки
 +
|- align="center"
 +
| dependents
 +
| int
 +
| Количество иждивенцев
 +
|- align="center"
 +
| items
 +
| RealmList<PayslipItemModel>
 +
| Список позиций листка (начисления, удержания, налоги, авансы)
 +
|- align="center"
 +
| benefits
 +
| RealmList<PayslipBenefitModel>
 +
| Список льгот
 +
|- align="center"
 +
| deductions
 +
| RealmList<PayslipDeductionModel>
 +
| Список Вычетов
 +
|}
 +
 +
===='''SyncGdMsgStateModel''' - состояние сообщения====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| String
 +
| PK
 +
|- align="center"
 +
| statusIndex
 +
| int
 +
| Тип состояния [SyncGdMsgStateModel.UpdatedStatus]
 +
|- align="center"
 +
| gdMsgKey
 +
| int
 +
| GdMsg.uid сообщения
 +
|}
 +
 +
===='''SyncMetaDataModel''' - мета-данные для синхронизации====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| scheme
 +
| String
 +
| Схема веб-протокола
 +
|- align="center"
 +
| addressServer
 +
| String
 +
| Адрес
 +
|- align="center"
 +
| authKey
 +
| String
 +
| Авторизационный ID
 +
|- align="center"
 +
| lastSyncDate
 +
| String
 +
| Дата последней синхронизации
 +
|- align="center"
 +
| lastSyncMsgDate
 +
| String
 +
| Дата последней синхронизации сообщений
 +
|- align="center"
 +
| gcmRegistrationId
 +
| String
 +
| ID девайса в Google Cloud Messaging
 +
|- align="center"
 +
| inviteCode
 +
| String
 +
| Инвайт-код
 +
|- align="center"
 +
| permits
 +
| boolean
 +
| Наличие права доступа к данным
 +
|- align="center"
 +
| lostMode
 +
| boolean
 +
| Режим потерянного девайса
 +
|}
 +
 +
===='''TimesheetModel''' - табель рабочего времени за день====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| dayTypeIndex
 +
| int
 +
| Тип дня [DayType]
 +
|- align="center"
 +
| employee
 +
| EmployeeModel
 +
| Сотрудник
 +
|- align="center"
 +
| description
 +
| String
 +
| Описание
 +
|- align="center"
 +
| hours
 +
| double
 +
| Продолжительность, часов
 +
|- align="center"
 +
| date
 +
| Date
 +
| Дата
 +
|- align="center"
 +
| events
 +
| RealmList<DayEventModel>
 +
| Список событий
 +
|}
 +
 +
===='''WorkScheduleModel''' - рабочий график на день====
 +
{|border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
 +
!style="background:#ffdead;"| Наименование
 +
!style="background:#ffdead;"| Тип данных
 +
!style="background:#ffdead;"| Описание
 +
|- align="center"
 +
| uid
 +
| int
 +
| PK
 +
|- align="center"
 +
| dayTypeIndex
 +
| int
 +
| Тип дня [DayType]
 +
|- align="center"
 +
| employee
 +
| EmployeeModel
 +
| Сотрудник
 +
|- align="center"
 +
| description
 +
| String
 +
| Описание
 +
|- align="center"
 +
| hours
 +
| double
 +
| Продолжительность, часов
 +
|- align="center"
 +
| date
 +
| Date
 +
| Дата
 +
|- align="center"
 +
| events
 +
| RealmList<DayEventModel>
 +
| Список событий
 +
|}
 +
 +
=== Таблицы данных для приложения на сервере ===
 +
 +
 +
[[Category:Документация]]

Текущая версия на 20:27, 21 августа 2017

Содержание

[править] Web-server API

[править] Протокол

[править] HTTP-запрос к серверу

Метод запроса:

 GET <URI запроса> HTTP/1.1

Header:

 Content-Type: application/json; charset=utf-8

Обязательный параметр GET-запроса:

 token - ключ, ассоциированный с необходимым скриптом

Передача объектов осуществляется в формате JSON. формат даты

[править] HTTP-ответ сервера
 {"cl":"SyncHeader", "params":{"ключ":"значение", ...}}


 RealmSyncObject {
   String                  cl          - required
   <T extends RealmObject> obj         - required
   List<Link>              master      
   List<Link>              link        
   boolean                 deleted
 }
 Link {
   String cl          - required
   String uid         - required
   String field       - required
 }


Тайм-ауты на клиенте:

 ConnectTimeout - 60с
 ReadTimeout - 60с

[править] Реализация протокола для данных GDMN-Salary

[править] Токены

[AndroidSalary_RegisterHandler]

 gdmnSalarySetGCMRegId
 gdmnSalarySignIn
 gdmnSalarySync
 gdmnSalarySyncMsg
 gdmnSalarySendMsg
 gdmnSalarySendMsgStates
 gdmnSalaryGetNewInvite
[править] Параметры

Обязательные параметры:

 ip_address
 app_version_code
 auth_key (для всех, кроме gdmnSalarySignIn)
[править] Синхронизация объектов

Пример данных для EmployeeModel, PayslipModel и PayslipItemModel:

 {cl:"EmployeeModel", obj:{uid:"123", ...}}
 {cl:"PayslipModel", link:[{cl:"EmployeeModel", uid:"123", field:"employee"}], obj:{uid:"456", ...}}
 {cl:"PayslipItemModel", master:[{cl:"PayslipModel", uid:"456", field:"items"}], obj:{...}}

Пример данных для EmployeeModel, TimesheetModel, WorkscheduleModel и DayEventModel:

 {cl:"EmployeeModel", obj:{uid:"123", ...}}
 {cl:"TimesheetModel", link:[{cl:"EmployeeModel", uid:"123", field:"employee"}], obj:{uid:"456", ...}}
 {cl:"WorkscheduleModel", link:[{cl:"EmployeeModel", uid:"123", field:"employee"}], obj:{uid:"789", ...}}
 {cl:"DayEventModel", master:[{cl:"TimesheetModel", uid:"456", field:"events"}, {cl:"WorkscheduleModel", uid:"789", field:"events"}], obj:{...}}
 

Пример удаления записи:

 {cl:"EmployeeModel", delete:"true", obj:{uid:"123"}}

[править] Классы, хранящиеся в клиентской БД

Указаны лишь те поля, которые связаны с БД

[править] DayEventModel - событие дня в расписании или табеле

Наименование Тип данных Описание
uid int PK
eventTypeIndex int Тип события дня [DayEventModel.EventType]
timeBegin Date Время начала
timeEnd Date Время окончания
hours double Продолжительность, часов
description String Описание
isAllDay boolean Продолжительность: весь день

[править] DeviceInfoModel - информация об устройстве

Наименование Тип данных Описание
uid int PK
phoneNumber String MSISDN
deviceId String Уникальный идентификатор устройства [IMEI for GSM, MEI for GSM, MEID/ESN for CDMA phones, else: android_id]
deviceModel String Модель устройства

[править] EmployeeModel - сотрудник

Наименование Тип данных Описание
uid int PK
firstname String Имя
surname String Фамилия
middlename String Отчество
passportId String ID паспорта
listNumber String Табельный номер

[править] ExRatesMonthlyModel - курс валют

Наименование Тип данных Описание
uid int PK
onDate Date Дата
usdRate double Курс доллара
eurRate double Курс евро

[править] GdMsgAbsenceModel - заявка о неявке на работу

Наименование Тип данных Описание
uid int PK
typeIndex int Тип неявки [GdMsgAbsenceModel.Type]
dateBegin Date Дата начала
dateEnd Date Дата окончания
requestGdMsgModel GdMsgModel Cообщение, на которое ответ (для серверных сообщений)

[править] GdMsgIncomeModel - заявка о справке о доходах

Наименование Тип данных Описание
uid int PK
dateBegin Date Дата начала
dateEnd Date Дата окончания
requestGdMsgModel GdMsgModel Cообщение, на которое ответ (для серверных сообщений)

[править] GdMsgInfoModel - информационное сообщение

Наименование Тип данных Описание
uid int PK
requestGdMsgModel GdMsgModel Cообщение, на которое ответ (для серверных сообщений)

[править] GdMsgModel - сообщение

Наименование Тип данных Описание
uid int PK
requestStatusIndex int Статус запроса [GdMsgModel.RequestStatus]
subjectIndex int Тема запроса [GdMsgModel.Subject]
senderIndex int Тип отправителя [GdMsgModel.Sender]
isUnread boolean Прочитано
timestamp Date Дата создания
msg String
comment String Комментарий
gdMsgString String Строковое представление данных сообщения (для поиска по ним)
gdMsgAbsenceModel GdMsgAbsenceModel Заявка: неявка на работу
gdMsgIncomeModel GdMsgIncomeModel Заявка: справка о доходах
gdMsgVacationModel GdMsgVacationModel Заявка: отпуск
gdMsgInfoModel GdMsgInfoModel Информационное сообщение
gdMsgVacationInfoModel GdMsgVacationInfoModel Заявка: информация о ближайшем отпуске

[править] GdMsgVacationInfoModel - заявка о информации на ближайший отпуск

Наименование Тип данных Описание
uid int PK
dateBegin Date Дата начала
dateEnd Date Дата окончания
requestGdMsgModel GdMsgModel Cообщение, на которое ответ (для серверных сообщений)

[править] GdMsgVacationModel - заявка об отпуске

Наименование Тип данных Описание
uid int PK
typeIndex int Тип отпуска [GdMsgVacationModel.Type]
dateBegin Date Дата начала
dateEnd Date Дата окончания
requestGdMsgModel GdMsgModel Cообщение, на которое ответ (для серверных сообщений)

[править] PayslipBenefitModel - льгота расчетного литка

Наименование Тип данных Описание
uid int PK
date Date Дата
name String Наименование
sum double Сумма
code int Код льготы

[править] PayslipDeductionModel - вычет расчетного листка

Наименование Тип данных Описание
uid int PK
date Date Дата
name String Наименование
deductionKind String Вид вычета
sum double Сумма
code int Код вычета

[править] PayslipItemModel - позиция расчетного листка (начисление/удержание/налог/аванс)

Наименование Тип данных Описание
uid int PK
categoryIndex int Тип категории [PayslipItemModel.Category]
date Date Дата
name String Наименование
code int Код
debit double Сумма дебета
credit double Сумма кредита

[править] PayslipModel - расчетный листок за месяц

Наименование Тип данных Описание
uid int PK
payDate Date Дата окончания периода
employee EmployeeModel Сотрудник
department String Участок
isFinal boolean Окончательный
position String Должность
salary double Сумма оклада
hourRate double Сумма почасовой тарифной ставки
dependents int Количество иждивенцев
items RealmList<PayslipItemModel> Список позиций листка (начисления, удержания, налоги, авансы)
benefits RealmList<PayslipBenefitModel> Список льгот
deductions RealmList<PayslipDeductionModel> Список Вычетов

[править] SyncGdMsgStateModel - состояние сообщения

Наименование Тип данных Описание
uid String PK
statusIndex int Тип состояния [SyncGdMsgStateModel.UpdatedStatus]
gdMsgKey int GdMsg.uid сообщения

[править] SyncMetaDataModel - мета-данные для синхронизации

Наименование Тип данных Описание
uid int PK
scheme String Схема веб-протокола
addressServer String Адрес
authKey String Авторизационный ID
lastSyncDate String Дата последней синхронизации
lastSyncMsgDate String Дата последней синхронизации сообщений
gcmRegistrationId String ID девайса в Google Cloud Messaging
inviteCode String Инвайт-код
permits boolean Наличие права доступа к данным
lostMode boolean Режим потерянного девайса

[править] TimesheetModel - табель рабочего времени за день

Наименование Тип данных Описание
uid int PK
dayTypeIndex int Тип дня [DayType]
employee EmployeeModel Сотрудник
description String Описание
hours double Продолжительность, часов
date Date Дата
events RealmList<DayEventModel> Список событий

[править] WorkScheduleModel - рабочий график на день

Наименование Тип данных Описание
uid int PK
dayTypeIndex int Тип дня [DayType]
employee EmployeeModel Сотрудник
description String Описание
hours double Продолжительность, часов
date Date Дата
events RealmList<DayEventModel> Список событий

[править] Таблицы данных для приложения на сервере

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты