Министерство образованиея и науки РФ Федерального государственного автономного образовательного учреждения высшего образования
"Национальный исследовательский технологический университет МИСиС"
Студент: Дырков А.В.
Руководитель: Пантелев С.В.
Курсовой проект
Разработка онлайн-кассы для мобильных устройств на базе Android

Разработать приложение онлайн-кассы
Цель курсового проекта
54-ФЗ: Новый порядок применения ККТ
С 1 февраля 2017 года контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных — новые правила установлены в 54-ФЗ ст.2 п.2.

Шифровальное (криптографическое) средство защиты фискальных данных, является программно-аппаратным средством криптографической защиты фискальных данных (СКЗФД) и предназначен для обеспечения противодействия угрозам безопасности информации (фискальных данных) в составе контрольно-кассовой техники.
Фискальный накопитель
Фискальный Накопитель

Терминалы Эвотор

Алгоритм регистрации
1. Подача заявления в ИФНС через nalog.ru
2. Получение карточки регистрации ККТ из ФНС
3. Регистрация кассы в личном кабинете ОФД.
Требования к функциональности
- Печать корпоративных и фискальных чеков по «54-ФЗ»;
- Поддержка системы лояльности;
- Поддержка маркетинговых акций;
- Поддержка online и offline режима;
Средства реализации
- Язык программирования - JavaScript
- Система управления состоянием - Redux
- Интерфейс - ReactNative и React
- База данных на устройстве - AsyncStorage
Состояние приложения
Состояние - концепция, главной задачей которой является полное описание изменяемых данных в приложении, благодаря данному подходу гарантируется отображение в пользовательском интерфейсе только актуальных данных, присутствие только одного источника истины
Состояние приложения
const state = {
applicationReducer: {
name: 'cashbox',
version: '1.0.0',
...
}
}Изменение состояния Reducer
const applicationReducer = (state, action) => {
switch(action.type) {
case 'CHANGE_VERSION': {
return {
...state,
name: action.payload
}
}
default: {
return state;
}
}
}Изменение состояния
Action
const changeName = (newName) => {
return {
type: 'CHANGE_NAME',
payload: newName
}
}
store.dispatch(changeName('cashBox'))Взаимодействие между слоями приложения

Взаимодействие терминалов c API













BACHVARA
By AndreyDyrkov
BACHVARA
Курсовой проект
- 117