Coder Social home page Coder Social logo

isistemium's Introduction

iSistemium

Соглашение об описании сущностей в ишусах

  1. Список полей указывается в скобках после имени сущности.
  2. Поля разделяются запятыми.
  3. Тип данных поля указывается после названия поля.
  4. Если тип данных поля не указан, то он string
  5. Прочие типы данных:
  • date - дата без времени
  • datetime - дата с временем
  • decimal (знаков после запятой)
  • int
  1. если название поля совпадает (без учета регистра) с названием сущности, то это связь многие-к-одному

isistemium's People

Contributors

alevinru avatar edgarjan avatar gogbajbobo avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

isistemium's Issues

Сообщения

Между пользователями и групповые: по бригадам, по подразделению, по компании

Фотоотчеты

Фотоотчет это приложенный к Акции фотоснимок с указанием Торговой Точки. Выбирать готовые снимки разрешать не нужно - давать только новые снимать.

Фотоотчетов по одной Торговой Точке в одной Акции может быть несколько.

Показывать Фотоотчеты нужно отдельной группой в списке прочих Картинок Акции с дополнительной группировкой по Торговой Точке с указанием ее названия.

В последней ячейке этой изначально пустой группы может быть кнопка с большим плюсом "добавить фото"

Просмотр Выручки по Точке

Является развитием представления #36

Сущность: Cashing (summ, date, outlet, debt)

При выборе Итога Долга, в правой части кроме таблицы Долгов нужно показать таблицу Итогов Выручки по выбранной точке c группировкой по дате (сортировка desc):

Group Title: {cashing.date} {sum(cashing.summ)}
Cell Title: cashing.summ
Cell Detail: За {debt.ndoc} от {debt.date} на сумму {debt.summOrigin}

Сбор выручки

На экране Просмотра Долгов есть кнопка "Сбор выручки". Когда ее нажимаешь начинается "сеанс сбора выручки" становится можно тыкать в долги по которым сразу формируетсяпредварительная запись о выручке на сумму остатка долга. Такие долги помечаются галочками. Последний долг в который тыкали называется текущий. Текущий долг выделен синим. Если тыкнуть в текущий долг с галочкой, то галочка с него снимается, предварительная запись по нему удаляется.

Предварительная запись о выручке по текущему долгу видна внизу экрана. Если в нее тыкнуть то можно изменить ее сумму. Еще там внизу есть:

  • выбор даты сбора (одно поле на все записи)
  • общая сумма предварительно собранного
  • общая сумма остатка долга с учетом предварительно собранного
  • кнопка успешного завершения "сеанса сбора выручки"
  • кнопка отмены сеанса.

После успешного завершения сеанса сбора предварительные записи переносятся в БД.

Раздел "Выручка"

Делаем новую закладку. На ней сплит-вью. В левой части таблевью с двумя отдельными группами:

  1. На руках
    • одна ячейка с итогом по кэшингам которые не имеют связи с stc.uncashing
  2. Сдано
    • ячейки по сущности stc.uncashing отсортированы по date desc (недавние вверху)
    • в каждой ячейке показаны stc.uncashing.date и stc.uncashing.summ

При выборе ячейки из левой части в правой показывается таблевью:

  • Сгруппировано по outlet.name
  • Ячейки строятся по stc.debt у которых есть связи с "подходящими stc.cashing" (у которых либо нет связей с stc.uncashing либо есть с конкретым, в зависимости от того из какой группы левой части выбор)
  • В ячейке debt.ndoc, debt.date, debt.summOrigin и sum(summ) "подходящих stc.cashing"

Uncashing

Новое понятие "Сданная выручка"

Поля:

  • date (с временем до минуты)
  • summ decimal
  • summOrigin decimal

Отношения:

  • cashings

Поле summOrigin пользователю нельзя ретактировать - в него при создании пишется сумма привязанных кешингов. Полученное значение предлагается в качестве начального для поля summ, которое юзер может изменить.

Переименовать поля ts и cts

Те, что на клиенте должны называться deviceTs (время последнего изменения) и deviceCts (время создания)

(надо еще про остальные поля договориться)

Упало при просмотре на весь экран

23:01:33 / STMLogger.m:51 - Log: document ready
23:01:33 / STMLogger.m:51 - Log: Syncer start
23:01:34 / STMLogger.m:51 - Log: Session status changed to running
23:01:34 / STMLogger.m:51 - Log: Syncer sendData
23:01:34 / STMLogger.m:51 - Log: Syncer recieveData
23:01:35 / STMSyncer.m:586 - STMEntity: 204 No Content
23:01:35 / STMSyncer.m:586 - STMPartner: 204 No Content
23:01:36 / STMSyncer.m:586 - STMCampaignPictureCampaign: 204 No Content
23:01:36 / STMSyncer.m:586 - STMCampaignArticle: 204 No Content
23:01:36 / STMSyncer.m:586 - STMCampaign: 204 No Content
23:01:36 / STMSyncer.m:586 - STMOutlet: 204 No Content
23:01:36 / STMSyncer.m:586 - STMSalesman: 204 No Content
23:01:36 / STMSyncer.m:586 - STMArticle: 204 No Content
23:01:36 / STMSyncer.m:586 - STMCampaignPicture: 204 No Content
23:01:36 / STMLogger.m:51 - Log: Syncer idle
23:01:36 / STMObjectsController.m:591 - total count 697
23:01:36 / STMObjectsController.m:598 - STMSettings count 19
23:01:36 / STMObjectsController.m:598 - STMLogMessage count 21
23:01:36 / STMObjectsController.m:598 - STMPartner count 80
23:01:36 / STMObjectsController.m:598 - STMCampaign count 14
23:01:36 / STMObjectsController.m:598 - STMArticle count 377
23:01:36 / STMObjectsController.m:598 - STMCampaignPicture count 57
23:01:36 / STMObjectsController.m:598 - STMSalesman count 1
23:01:36 / STMObjectsController.m:598 - STMOutlet count 128
23:01:36 / STMObjectsController.m:598 - STMPhotoReport count 0
23:01:36 / STMObjectsController.m:598 - STMPhoto count 0
23:01:36 / STMObjectsController.m:605 - unknow count 0
23:02:18 / STMCampaignPhotoReportCVC.m:190 - create new photoReport
23:02:40 / STMCampaignPhotoReportCVC.m:190 - create new photoReport
2014-07-01 23:02:47.990 iSistemium[7383:60b] Received memory warning.
2014-07-01 23:03:12.710 iSistemium[7383:60b] *** Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer <STMCampaignPictureVC 0x15f5a6c0> for the key path "resizedImagePath" from <STMCampaignPicture 0x15da3f70> because it is not registered as an observer.'
*** First throw call stack:
(0x2ed44fd3 0x39a1dccf 0x2ed44f15 0x2f6918e3 0x2f69130b 0x2f6911af 0x73d9f 0x2f6795d1 0x2f679275 0x2f6658cd 0x2eab9bb3 0x2eab8563 0x8193b 0x39f05833 0x39f0581f 0x39f0c49f 0x2ed0f8f1 0x2ed0e1c5 0x2ec78f0f 0x2ec78cf3 0x33bab663 0x315c416d 0x84399 0x39f2aab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Принудительная геометка Фотоотчета

При наличии у признака campaign.geoLocationRequired фотосъемка Фотоотчета производится только при наличии данных о текущем местоположении с удовлетворительной точностью.

Критерием удовлетворительности точности местоположения пока считаем некую константу.

Загловок страницы в правой части

Как-то нужно сказать где мы находимся - в картинках или фотоотчетах. Кроме того сейчас совершенно не очевидно как попасть в фотоотчеты. Может сделать наверху или внизу правой части "Segmented Control" с его помощью и покажем где мы сейчас и переместиться юзер сможет между картинками и фотоотчетами

Полноэкранный режим показа картинок

Изображения должны показывать на черном фоне на весь экран. Как в родных иосных фотографиях - первый раз тыкаешь оно как сейчас на белом и внизу пузырьки показывающие сколько есть фоток и на какой по счету мы сейчас. Второй раз - полный экран. В полном экране тыкаешь - опять на белом и пузырьки

Долги - просмотр

Представить в виде сплитвью в левой части которого сгруппированная по Partner.name таблица Итогов Долгов:

Group Title: partner.name
Cell Title: outlet.shortName
Cell Subtitle: sum(debt.summ)

При выборе Итога Долга справа показывается таблица Долгов отсортированная по debt.date asc, debt.ndoc asc:

Cell Title: debt.summ
Cell Subtitle: За {debt.ndoc} от {debt.date} на сумму {debt.summOrigin}

Дальше пока непонятно

Бригады

2 Компании, в каждой 3-5 Подразделений-офисов, в каждом офисе 3-5 бригад. У Подразделений и Бригад есть Руководитель.

Синхронизация не лочит интерфейс

Регулярная дозагрузка не лочит. Для прогресса инициализации хочется типа отдельный экран, который как крутилка оверлеем закроет остальное. По меньшей мере надо точно чтобы прогрессбар неактивный не видно было. Активный может надо чтобы вылезпл где-то ненапряжно

Убрать иконки-фотопараты

Вполне достаточно тыкнуть в точку. Желательно также както разделить готовые фотоотчеты и список с выбором точки

Есть возможность добавить картинку дважды в акцию

23:20:40 / STMLogger.m:51 - Log: Syncer sendData
23:20:40 / STMLogger.m:51 - Log: Syncer recieveData
23:20:40 / STMDocument.m:67 - UIDocumentSaveForOverwriting success
23:20:41 / STMSyncer.m:589 - STMEntity: 204 No Content
23:20:41 / STMSyncer.m:589 - STMPartner: 204 No Content
23:20:41 / STMSyncer.m:589 - STMCampaignArticle: 204 No Content
23:20:41 / STMSyncer.m:589 - STMCampaign: 204 No Content
23:20:41 / STMSyncer.m:589 - STMArticle: 204 No Content
23:20:41 / STMObjectsController.m:167 - already in set: STMCampaign, STMCampaignPicture, 9d709392-fd66-11e3-8000-e86e56d4dd5b
23:20:41 / STMObjectsController.m:167 - already in set: STMCampaign, STMCampaignPicture, 9d7108c2-fd66-11e3-8000-e86e56d4dd5b
23:20:41 / STMObjectsController.m:167 - already in set: STMCampaign, STMCampaignPicture, 9d7156e2-fd66-11e3-8000-e86e56d4dd5b
23:20:41 / STMObjectsController.m:167 - already in set: STMCampaign, STMCampaignPicture, 9d71a502-fd66-11e3-8000-e86e56d4dd5b
23:20:41 / STMObjectsController.m:167 - already in set: STMCampaign, STMCampaignPicture, 9d71f322-fd66-11e3-8000-e86e56d4dd5b
2014-06-26 23:20:41.825 iSistemium[5857:60b] *** Assertion failure in -[UICollectionView _endItemAnimations], /SourceCache/UIKit/UIKit-2935.137/UICollectionView.m:3840
2014-06-26 23:20:41.828 iSistemium[5857:60b] CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Invalid update: invalid number of items in section 0. The number of items contained in an existing section after the update (5) must be equal to the number of items contained in that section before the update (1), plus or minus the number of items inserted or deleted from that section (1 inserted, 0 deleted) and plus or minus the number of items moved into or out of that section (0 moved in, 0 moved out). with userInfo (null)
2014-06-26 23:20:41.830 iSistemium[5857:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of items in section 0. The number of items contained in an existing section after the update (5) must be equal to the number of items contained in that section before the update (1), plus or minus the number of items inserted or deleted from that section (1 inserted, 0 deleted) and plus or minus the number of items moved into or out of that section (0 moved in, 0 moved out).'
*** First throw call stack:
(0x2ed44fd3 0x39a1dccf 0x2ed44ead 0x2f6f1d5b 0x31723689 0x7401d 0x2eabd6cb 0x2ed071f1 0x2ec7b53f 0x2f665a3d 0x2eabc9c3 0x2eabc95b 0x2eabafc3 0x2eb212ed 0x2eb1d935 0x2eb1da7b 0x2eb21205 0x2ed071f1 0x2ec7b53f 0x2f665a3d 0x2f66a31b 0x2f6ce831 0x2f6ce599 0x2f723c9d 0x2ed102a5 0x2ed0dc49 0x2ed0def9 0x2ec78f0f 0x2ec78cf3 0x33bab663 0x315c416d 0x58e51 0x39f2aab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Удаление фотоотчета

На экране просмотра фото сделать кнопку. Прежде чем удалять нужно задать на всякий случай вопрос "Действительно хотите удалить фото?".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.