GDMN-Salary (Руководство разработчика)
(→Классы, хранящиеся в клиентской БД) |
|||
| Строка 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" | |
| 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" | |- 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 | + | | Тип состояния [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> | Список событий |