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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Классы, хранящиеся в клиентской БД)
Строка 61: Строка 61:
 
Указаны лишь те поля, которые связаны с БД
 
Указаны лишь те поля, которые связаны с БД
  
'''Класс 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;"| Наименование
Строка 69: Строка 69:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| eventTypeIndex
 
| eventTypeIndex
 
| int
 
| int
| Тип события дня DayEventModel.EventType  
+
| Тип события дня [DayEventModel.EventType]
 
|- align="center"
 
|- align="center"
 
| timeBegin
 
| timeBegin
 
| Date
 
| Date
|
+
| Время начала
 
|- align="center"
 
|- align="center"
 
| timeEnd
 
| timeEnd
 
| Date
 
| Date
|
+
| Время окончания
 
|- align="center"
 
|- align="center"
 
| hours
 
| hours
 
| double
 
| double
|
+
| Продолжительность, часов
 
|- align="center"
 
|- align="center"
 
| description
 
| description
 
| String
 
| String
|
+
| Описание
 
|- align="center"
 
|- align="center"
 
| isAllDay
 
| isAllDay
 
| boolean
 
| boolean
|
+
| Продолжительность: весь день
 
|}
 
|}
'''Класс DeviceInfoModel'''
+
 
 +
'''Класс DeviceInfoModel''' - информация об устройстве
 
{|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;"| Наименование
Строка 103: Строка 104:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| phoneNumber
 
| phoneNumber
 
| String
 
| String
|
+
| MSISDN
 
|- align="center"
 
|- align="center"
 
| deviceId
 
| deviceId
 
| String  
 
| String  
|  
+
| Уникальный идентификатор устройства [IMEI for GSM, MEI for GSM, MEID/ESN for CDMA phones, else: android_id]
 
|- align="center"
 
|- align="center"
 
| deviceModel
 
| deviceModel
 
| String
 
| String
|
+
| Модель устройства
 
|}
 
|}
'''Класс EmployeeModel'''
+
 
 +
'''Класс EmployeeModel''' - сотрудник
 
{|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;"| Наименование
Строка 125: Строка 127:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| firstname
 
| firstname
 
| String
 
| String
|
+
| Имя
 
|- align="center"
 
|- align="center"
 
| surname
 
| surname
 
| String  
 
| String  
|  
+
| Фамилия
 
|- align="center"
 
|- align="center"
 
| middlename
 
| middlename
 
| String
 
| String
|
+
| Отчество
 
|- align="center"
 
|- align="center"
 
| passportId
 
| passportId
 
| String  
 
| String  
|  
+
| ID паспорта
 
|- align="center"
 
|- align="center"
 
| listNumber
 
| listNumber
 
| String
 
| String
|
+
| Табельный номер
 
|}
 
|}
'''Класс ExRatesMonthlyModel'''
+
 
 +
'''Класс ExRatesMonthlyModel''' - курс валют
 
{|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;"| Наименование
Строка 155: Строка 158:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| onDate
 
| onDate
 
| Date
 
| Date
|
+
| Дата
 
|- align="center"
 
|- align="center"
 
| usdRate
 
| usdRate
 
| double
 
| double
|  
+
| Курс доллара
 
|- align="center"
 
|- align="center"
 
| eurRate
 
| eurRate
 
| double
 
| double
|
+
| Курс евро
 
|}
 
|}
'''Класс GdMsgAbsenceModel'''
+
 
 +
'''Класс GdMsgAbsenceModel''' - заявка о неявке на работу
 
{|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;"| Наименование
Строка 177: Строка 181:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| typeIndex
 
| typeIndex
 
| int
 
| int
| GdMsgAbsenceModel.Type
+
| Тип неявки [GdMsgAbsenceModel.Type]
 
|- align="center"
 
|- align="center"
 
| dateBegin
 
| dateBegin
 
| Date
 
| Date
|  
+
| Дата начала
 
|- align="center"
 
|- align="center"
 
| dateEnd
 
| dateEnd
 
| Date
 
| Date
|
+
| Дата окончания
 
|- align="center"
 
|- align="center"
 
| requestGdMsgModel
 
| requestGdMsgModel
 
| GdMsgModel
 
| GdMsgModel
| для серверных сообщений - сообщение на которое ответ
+
| Cообщение, на которое ответ (для серверных сообщений)
 
|}
 
|}
'''Класс GdMsgIncomeModel'''
+
 
 +
'''Класс GdMsgIncomeModel''' - заявка о справке о доходах
 
{|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;"| Наименование
Строка 203: Строка 208:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| dateBegin
 
| dateBegin
 
| Date
 
| Date
|  
+
| Дата начала
 
|- align="center"
 
|- align="center"
 
| dateEnd
 
| dateEnd
 
| Date
 
| Date
|
+
| Дата окончания
 
|- align="center"
 
|- align="center"
 
| requestGdMsgModel
 
| requestGdMsgModel
 
| GdMsgModel
 
| GdMsgModel
| для серверных сообщений - сообщение на которое ответ
+
| Cообщение, на которое ответ (для серверных сообщений)
 
|}
 
|}
'''Класс GdMsgInfoModel'''
+
 
 +
'''Класс GdMsgInfoModel''' - информационное сообщение
 
{|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;"| Наименование
Строка 225: Строка 231:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| requestGdMsgModel
 
| requestGdMsgModel
 
| GdMsgModel
 
| GdMsgModel
| для серверных сообщений - сообщение на которое ответ
+
| Cообщение, на которое ответ (для серверных сообщений)
 
|}
 
|}
'''Класс GdMsgModel'''
+
 
 +
'''Класс GdMsgModel''' - сообщение
 
{|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;"| Наименование
Строка 239: Строка 246:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| requestStatusIndex
 
| requestStatusIndex
 
| int
 
| int
| GdMsgModel.RequestStatus
+
| Статус запроса [GdMsgModel.RequestStatus]
 
|- align="center"
 
|- align="center"
 
| subjectIndex
 
| subjectIndex
 
| int
 
| int
| GdMsgModel.Subject
+
| Тема запроса [GdMsgModel.Subject]
 
|- align="center"
 
|- align="center"
 
| senderIndex
 
| senderIndex
 
| int
 
| int
| GdMsgModel.Sender
+
| Тип отправителя [GdMsgModel.Sender]
 
|- align="center"
 
|- align="center"
 
| isUnread
 
| isUnread
 
| boolean
 
| boolean
|  
+
| Прочитано
 
|- align="center"
 
|- align="center"
 
| timestamp
 
| timestamp
 
| Date
 
| Date
|  
+
| Дата создания
 
|- align="center"
 
|- align="center"
 
| msg
 
| msg
Строка 267: Строка 274:
 
| comment
 
| comment
 
| String
 
| String
|  
+
| Комментарий
 
|- align="center"
 
|- align="center"
 
| gdMsgString
 
| gdMsgString
 
| String
 
| String
|  
+
| Строковое представление данных сообщения (для поиска по ним)
 
|- align="center"
 
|- align="center"
 
| gdMsgAbsenceModel
 
| gdMsgAbsenceModel
 
| GdMsgAbsenceModel
 
| GdMsgAbsenceModel
|  
+
| Заявка: неявка на работу
 
|- align="center"
 
|- align="center"
 
| gdMsgIncomeModel
 
| gdMsgIncomeModel
 
| GdMsgIncomeModel
 
| GdMsgIncomeModel
|  
+
| Заявка: справка о доходах
 
|- align="center"
 
|- align="center"
 
| gdMsgVacationModel
 
| gdMsgVacationModel
 
| GdMsgVacationModel
 
| GdMsgVacationModel
|  
+
| Заявка: отпуск
 
|- align="center"
 
|- align="center"
 
| gdMsgInfoModel
 
| gdMsgInfoModel
 
| GdMsgInfoModel
 
| GdMsgInfoModel
|  
+
| Информационное сообщение
 
|- align="center"
 
|- align="center"
 
| gdMsgVacationInfoModel
 
| gdMsgVacationInfoModel
 
| GdMsgVacationInfoModel
 
| GdMsgVacationInfoModel
|  
+
| Заявка: информация о ближайшем отпуске
 
|}
 
|}
'''Класс GdMsgVacationInfoModel'''
+
 
 +
'''Класс GdMsgVacationInfoModel''' - заявка о информации на ближайший отпуск
 
{|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;"| Наименование
Строка 301: Строка 309:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| dateBegin
 
| dateBegin
 
| Date
 
| Date
|  
+
| Дата начала
 
|- align="center"
 
|- align="center"
 
| dateEnd
 
| dateEnd
 
| Date
 
| Date
|
+
| Дата окончания
 
|- align="center"
 
|- align="center"
 
| requestGdMsgModel
 
| requestGdMsgModel
 
| GdMsgModel
 
| GdMsgModel
| для серверных сообщений - сообщение на которое ответ
+
| Cообщение, на которое ответ (для серверных сообщений)
 
|}
 
|}
'''Класс GdMsgVacationModel'''
+
 
 +
'''Класс GdMsgVacationModel''' - заявка об отпуске
 
{|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;"| Наименование
Строка 323: Строка 332:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| typeIndex
 
| typeIndex
 
| int
 
| int
| GdMsgVacationModel.Type
+
| Тип отпуска [GdMsgVacationModel.Type]
 
|- align="center"
 
|- align="center"
 
| dateBegin
 
| dateBegin
 
| Date
 
| Date
|  
+
| Дата начала
 
|- align="center"
 
|- align="center"
 
| dateEnd
 
| dateEnd
 
| Date
 
| Date
|
+
| Дата окончания
 
|- align="center"
 
|- align="center"
 
| requestGdMsgModel
 
| requestGdMsgModel
 
| GdMsgModel
 
| GdMsgModel
| для серверных сообщений - сообщение на которое ответ
+
| Cообщение, на которое ответ (для серверных сообщений)
 
|}
 
|}
'''Класс PayslipBenefitModel'''
+
 
 +
'''Класс PayslipBenefitModel''' - льгота расчетного литка
 
{|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;"| Наименование
Строка 349: Строка 359:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| date
 
| date
 
| Date
 
| Date
|  
+
| Дата
 
|- align="center"
 
|- align="center"
 
| name
 
| name
 
| String
 
| String
|
+
| Наименование
 
|- align="center"
 
|- align="center"
 
| sum
 
| sum
 
| double
 
| double
|  
+
| Сумма
 
|- align="center"
 
|- align="center"
 
| code
 
| code
 
| int
 
| int
|
+
| Код льготы
 
|}
 
|}
'''Класс PayslipDeductionModel'''
+
 
 +
'''Класс PayslipDeductionModel''' - вычет расчетного листка
 
{|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;"| Наименование
Строка 375: Строка 386:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| date
 
| date
 
| Date
 
| Date
|  
+
| Дата
 
|- align="center"
 
|- align="center"
 
| name
 
| name
 
| String
 
| String
|  
+
| Наименование
||- align="center"
+
|- align="center"
 
| deductionKind
 
| deductionKind
 
| String
 
| String
| вид вычета
+
| Вид вычета
 
|- align="center"
 
|- align="center"
 
| sum
 
| sum
 
| double
 
| double
|  
+
| Сумма
 
|- align="center"
 
|- align="center"
 
| code
 
| code
 
| int
 
| int
|
+
| Код вычета
 
|}
 
|}
  
 
+
'''Класс PayslipItemModel''' - позиция расчетного листка (начисление/удержание/налог/аванс)
'''Класс PayslipItemModel'''
+
 
{|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;"| Наименование
Строка 407: Строка 417:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| categoryIndex
 
| categoryIndex
 
| int
 
| int
| PayslipItemModel.Category
+
| Тип категории [PayslipItemModel.Category]
 
|- align="center"
 
|- align="center"
 
| date
 
| date
 
| Date
 
| Date
|  
+
| Дата
 
|- align="center"
 
|- align="center"
 
| name
 
| name
 
| String
 
| String
|
+
| Наименование
 
|- align="center"
 
|- align="center"
 
| code
 
| code
 
| int
 
| int
|
+
| Код
 
|- align="center"
 
|- align="center"
 
| debit
 
| debit
 
| double
 
| double
|  
+
| Сумма дебета
 
|- align="center"
 
|- align="center"
 
| credit
 
| credit
 
| double
 
| double
|
+
| Сумма кредита
 
|}
 
|}
'''Класс PayslipModel'''
+
 
 +
'''Класс PayslipModel''' - расчетный листок за месяц
 
{|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;"| Наименование
Строка 441: Строка 452:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
|- align="center"
+
| employeeKey
+
| String
+
|
+
 
|- align="center"
 
|- align="center"
 
| payDate
 
| payDate
 
| Date
 
| Date
|  
+
| Дата окончания периода
 
|- align="center"
 
|- align="center"
 
| employee
 
| employee
 
| EmployeeModel
 
| EmployeeModel
|
+
| Сотрудник
 
|- align="center"
 
|- align="center"
 
| department
 
| department
 
| String
 
| String
|  
+
| Участок
 
|- align="center"
 
|- align="center"
 
| isFinal
 
| isFinal
 
| boolean
 
| boolean
|
+
| Окончательный
 
|- align="center"
 
|- align="center"
 
| position
 
| position
 
| String
 
| String
|
+
| Должность
 
|- align="center"
 
|- align="center"
 
| salary
 
| salary
 
| double
 
| double
|  
+
| Сумма оклада
 
|- align="center"
 
|- align="center"
 
| hourRate
 
| hourRate
 
| double
 
| double
|
+
| Сумма почасовой тарифной ставки
 
|- align="center"
 
|- align="center"
 
| dependents
 
| dependents
 
| int
 
| int
|
+
| Количество иждивенцев
 
|- align="center"
 
|- align="center"
 
| items
 
| items
 
| RealmList<PayslipItemModel>
 
| RealmList<PayslipItemModel>
| Начисления, Удержания, Налоги
+
| Список позиций листка (начисления, удержания, налоги, авансы)
 
|- align="center"
 
|- align="center"
 
| benefits
 
| benefits
 
| RealmList<PayslipBenefitModel>
 
| RealmList<PayslipBenefitModel>
| Льготы
+
| Список льгот
 
|- align="center"
 
|- align="center"
 
| deductions
 
| deductions
 
| RealmList<PayslipDeductionModel>
 
| RealmList<PayslipDeductionModel>
| Вычеты
+
| Список Вычетов
 
|}
 
|}
'''Класс SyncGdMsgStateModel'''
+
 
 +
'''Класс SyncGdMsgStateModel''' - состояние сообщения
 
{|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;"| Наименование
Строка 499: Строка 507:
 
| uid
 
| uid
 
| String
 
| String
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| statusIndex
 
| statusIndex
 
| int
 
| int
| UpdatedStatus {READED, DELETED}
+
| Тип состояния [SyncGdMsgStateModel.UpdatedStatus]
 
|- align="center"
 
|- align="center"
 
| gdMsgKey
 
| gdMsgKey
 
| int
 
| int
|  
+
| GdMsg.uid сообщения
 
|}
 
|}
'''Класс SyncMetaDataModel'''
+
 
 +
'''Класс SyncMetaDataModel''' - мета-данные для синхронизации
 
{|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;"| Наименование
Строка 517: Строка 526:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| scheme
 
| scheme
 
| String
 
| String
|  
+
| Схема веб-протокола
 
|- align="center"
 
|- align="center"
 
| addressServer
 
| addressServer
 
| String
 
| String
|  
+
| Адрес
 
|- align="center"
 
|- align="center"
 
| authKey
 
| authKey
 
| String
 
| String
|  
+
| Авторизационный ID
 
|- align="center"
 
|- align="center"
 
| lastSyncDate
 
| lastSyncDate
 
| String
 
| String
|  
+
| Дата последней синхронизации
 
|- align="center"
 
|- align="center"
 
| lastSyncMsgDate
 
| lastSyncMsgDate
 
| String
 
| String
|  
+
| Дата последней синхронизации сообщений
 
|- align="center"
 
|- align="center"
 
| gcmRegistrationId
 
| gcmRegistrationId
 
| String
 
| String
|
+
| ID девайса в Google Cloud Messaging
 
|- align="center"
 
|- align="center"
 
| inviteCode
 
| inviteCode
 
| String
 
| String
|  
+
| Инвайт-код
 
|- align="center"
 
|- align="center"
 
| permits
 
| permits
 
| boolean
 
| boolean
|
+
| Наличие права доступа к данным
 
|- align="center"
 
|- align="center"
 
| lostMode
 
| lostMode
 
| boolean
 
| boolean
|
+
| Режим потерянного девайса
 
|}
 
|}
'''Класс TimesheetModel'''
+
 
 +
'''Класс TimesheetModel''' - табель рабочего времени за день
 
{|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;"| Наименование
Строка 563: Строка 573:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| dayTypeIndex
 
| dayTypeIndex
 
| int
 
| int
|  
+
| Тип дня [DayType]
 
|- align="center"
 
|- align="center"
 
| employee
 
| employee
 
| EmployeeModel
 
| EmployeeModel
|  
+
| Сотрудник
 
|- align="center"
 
|- align="center"
 
| description
 
| description
 
| String
 
| String
|  
+
| Описание
 
|- align="center"
 
|- align="center"
 
| hours
 
| hours
 
| double
 
| double
|  
+
| Продолжительность, часов
 
|- align="center"
 
|- align="center"
 
| date
 
| date
 
| Date
 
| Date
|
+
| Дата
 
|- align="center"
 
|- align="center"
 
| events
 
| events
 
| RealmList<DayEventModel>
 
| RealmList<DayEventModel>
|  
+
| Список событий
 
|}
 
|}
'''Класс WorkScheduleModel'''
+
 
 +
'''Класс WorkScheduleModel''' - рабочий график на день
 
{|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;"| Наименование
Строка 597: Строка 608:
 
| uid
 
| uid
 
| int
 
| int
| PK записи
+
| PK
 
|- align="center"
 
|- align="center"
 
| dayTypeIndex
 
| dayTypeIndex
 
| int
 
| int
|  
+
| Тип дня [DayType]
 
|- align="center"
 
|- align="center"
 
| employee
 
| employee
 
| EmployeeModel
 
| EmployeeModel
|  
+
| Сотрудник
 
|- align="center"
 
|- align="center"
 
| description
 
| description
 
| String
 
| String
|  
+
| Описание
 
|- align="center"
 
|- align="center"
 
| hours
 
| hours
 
| double
 
| double
|  
+
| Продолжительность, часов
 
|- align="center"
 
|- align="center"
 
| date
 
| date
 
| Date
 
| Date
|
+
| Дата
 
|- align="center"
 
|- align="center"
 
| events
 
| events
 
| RealmList<DayEventModel>
 
| RealmList<DayEventModel>
|  
+
| Список событий
 
|}
 
|}
 
  
 
=== Таблицы данных для приложения на сервере ===
 
=== Таблицы данных для приложения на сервере ===

Версия 20:53, 21 февраля 2016

Web-server API

Запрос к серверу ?token=REQUEST_PARAM_TOKEN & param=value ...

ip_address app_version_code

auth_key для всех кроме авторизации


header

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


объекты передаются в формате json

токены прописаны в скрипте...

Ответ сервера

{"cl":"SyncHeader", "params":{"f1":"v1","f2":"v2","f3":"v3"}} {}

client timeouts:

 ConnectTimeout - 60 сек
 ReadTimeout - 60 с

RequestMethod: GET

RealmSyncObject {

 String              cl          - не null
 List<Link>          master        - может быть null
 List<Link>          link            - может быть null
 <T extends RealmObject>  obj         - не null
 boolean             deleted

}

Link {

 String              cl          - не null
 String              uid         - не null
 String              field       - не null

}

Пример данных для 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> Список событий

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

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

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