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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Web-server API)
Строка 1: Строка 1:
 
=== Web-server API ===
 
=== Web-server API ===
  
'''Запрос к серверу'''
+
==== Протокол ====
?token=REQUEST_PARAM_TOKEN & param=value ...
+
  
ip_address
+
'''HTTP-запрос к серверу'''
app_version_code
+
 
+
auth_key для всех кроме авторизации
+
  
 +
Метод запроса:
 +
  GET <URI запроса> HTTP/1.1
  
header
+
Header:
 
   Content-Type: application/json; charset=utf-8
 
   Content-Type: application/json; charset=utf-8
  
 +
Обязательный параметр GET-запроса:
 +
  token - ключ, ассоциированный с необходимым скриптом
  
объекты передаются в формате json
+
Передача объектов осуществляется в формате JSON.
 
+
формат даты
токены прописаны в скрипте...
+
  
 
'''Ответ сервера'''
 
'''Ответ сервера'''
 
{"cl":"SyncHeader", "params":{"f1":"v1","f2":"v2","f3":"v3"}}
 
{}
 
  
 
client timeouts:
 
client timeouts:
   ConnectTimeout - 60 сек
+
   ConnectTimeout - 60с
   ReadTimeout - 60 с
+
   ReadTimeout - 60с
  
RequestMethod: GET 
 
  
RealmSyncObject {
+
  {"cl":"SyncHeader", "params":{"ключ":"значение", ...}}
   String              cl          - не null
+
 
  List<Link>          master        - может быть null
+
 
  List<Link>          link            - может быть null
+
   RealmSyncObject {
  <T extends RealmObject>  obj        - не null
+
    String              cl          - не null
  boolean            deleted
+
    List<Link>          master        - может быть null
}
+
    List<Link>          link            - может быть null
 +
    <T extends RealmObject>  obj        - не null
 +
    boolean            deleted
 +
  }
  
 
Link {
 
Link {
Строка 42: Строка 40:
 
   String              field      - не null
 
   String              field      - не null
 
}
 
}
 +
==== Реализация протокола для данных GDMN-Salary ====
 +
 +
Токены [AndroidSalary_RegisterHandler]
 +
 +
gdmnSalarySetGCMRegId
 +
gdmnSalarySignIn
 +
gdmnSalarySync
 +
gdmnSalarySyncMsg
 +
gdmnSalarySendMsg
 +
gdmnSalarySendMsgStates
 +
gdmnSalaryGetNewInvite
 +
 +
 +
Обязательные параметры:
 +
ip_address
 +
app_version_code
 +
auth_key (для всех, кроме gdmnSalarySignIn)
 +
 +
 +
 +
  
 
Пример данных для EmployeeModel, PayslipModel и PayslipItemModel:
 
Пример данных для EmployeeModel, PayslipModel и PayslipItemModel:
Строка 56: Строка 75:
 
Пример удаления записи:
 
Пример удаления записи:
 
   {cl:"EmployeeModel", delete:"true", obj:{uid:"123"}}
 
   {cl:"EmployeeModel", delete:"true", obj:{uid:"123"}}
 
  
 
=== Классы, хранящиеся в клиентской БД ===
 
=== Классы, хранящиеся в клиентской БД ===

Версия 02:29, 22 февраля 2016

Содержание

Web-server API

Протокол

HTTP-запрос к серверу

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

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

Header:

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

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

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

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

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

client timeouts:

 ConnectTimeout - 60с
 ReadTimeout - 60с


 {"cl":"SyncHeader", "params":{"ключ":"значение", ...}}


 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

}

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

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

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

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