Министерство образованиея и науки РФ Федерального государственного автономного образовательного учреждения высшего образования
"Национальный исследовательский технологический университет МИСиС"
Студент: Дырков А.В.
Руководитель: Пантелев С.В.
Курсовой проект
Разработка онлайн-кассы для мобильных устройств на базе Android
Цель курсового проекта - разработать приложение онлайн-кассы
ФЗ-54
С 1 февраля 2017 года контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных
ЭКЛЗ нужно заменить на фискальный накопитель, подключить кассу к интернету, заключить договор с оператором фискальных данных и отправлять чеки в электронном виде в ФНС через оператора фискальных данных.
Фискальный накопитель - шифровальное (криптографическое) средство защиты фискальных данных, является программно-аппаратным средством криптографической защиты фискальных данных (СКЗФД) и предназначен для обеспечения противодействия угрозам безопасности информации (фискальных данных) в составе контрольно-кассовой техники.
Линейка ФН
Алгоритм регистрации ККТ
Заключение договора с ЦТО;
Подготовка необходимых документов;
Подача документов в ИФНС;
Осмотр и фискализация кассы в ИФНС.;
Получение карточки регистрации ККМ.
Алгоритм регистрации сейчас
Подача заявления на регистрацию кассы в ИФНС через личный кабинет налогоплательщика онлайн на сайте nalog.ru. И сразу же -получение регистрационного номера ККТ.
Самостоятельная фискализация.
Получение карточки регистрации ККТ из ФНС.
Регистрация кассы в личном кабинете ОФД.
Требования к функциональности
Средства реализации
Состояние приложения
Состояние - концепция, главной задачей которой является полное описание изменяемых данных в приложении, благодаря данному подходу гарантируется отображение в пользовательском интерфейсе только актуальных данных, присутствие только одного источника истины
Состояние приложения
const state = {
applicationReducer: {
name: 'CashBox',
version: '1.0.0',
...
}
...
}Изменение состояния - Reducer
const ApplicationReducer = (state, action) => {
switch (action.type) {
case 'CHANGE_NAME': {
return {
...state,
name: action.payload
}
}
default: {
return state;
}
}
}Изменение состояния - Action
const changeName = {
type: 'CHANGE_NAME',
payload: 'CashBox2'
}
store.dispatch(changeName);Взаимодействие между слоями
Взаимодействие терминалов с сервером