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

Материал из GedeminWiki
Перейти к: навигация, поиск

Содержание

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> Список событий

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

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

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