sedovalx / taxi

6 stars 3 forks source link

Отображать список операций по выбранной аренде #76

Closed sedovalx closed 9 years ago

sedovalx commented 9 years ago

Сейчас сервер поддерживает получение всех операций по указанной аренде, получение всех операций заданного типа и получение операций заданного типа по указанной аренде. Пример: GET /api/operations?rent=345&accountType=Repair По сути это такая же функциональность фильтрации, как сделано для списка пользователей.

На клиенте в списке аренд нужно сделать реализации для уже присутствующих кнопок перехода к штрафам, ремонтам и платежам. По нажатию на них должен открываться список операций, отфильтрованный по выбранному типу операции и идентификатору самой аренды. В идеале нужно сделать в этом списке UI-фильтр по типу операции. В результате при переходе к нему, скажем, по кнопке "Перейти к платежам" он должен отображаться с уже предустановленным типом операции.

Для списка должны быть предусмотрены команды создания, удаления и редактирования. При создании аренда должна проставляться автоматически. При редактировании поля аренды и типа операции должны быть доступны только на чтение.

Маршрут для такого списка может быть следующим /rents/361/operations?accountType=Rent

По нажатию на кнопку должен вызываться

this.transitionToRoute("rents", this.get("model").id, {
    queryParams: { accountType:  'some type' }
});

Первоначальное описание: Ориентироваться сложно. Если хочешь посмотреть, какие у аренды платежи, непонятно как это сделать. Да, будут фильтры, они помогут, но это неудобно. Лучше перенести все списки изменения баланса аренды на отдельные вкладки редактора аренды. В этом случае, открыв этот редактор, можно будет сразу увидеть все платежи, штрафы и ремонты по ней.

hodkovdd commented 9 years ago

@sedovalx Как это было нафантазировано на дизайн-схеме: - Зеленая стрелка - клик. Прокомментируй, пожалуйста.

sedovalx commented 9 years ago

@hodkoff2 @Argelein ну да, примерно так теперь и будет, т.к. больше не будет отдельных списков с штрафами, ремонтами и платежами. Будет один с операциями, у которых есть тип. Выбираешь строку с арендой в кассовой форме нажимаешь кнопку и попадаешь в список операций по этой аренде, отсорированный по дате операции. Почему кнопку? Ну так сделать проще.

hodkovdd commented 9 years ago

@sedovalx @Argelein В продолжение этой темы - там есть еще кусок переходов на отдельные списания с детализацией: detalization spisation Переход может быть также по кнопке, а не клику, это не принципиально. Необходимость в том, что водители всегда оспаривают сумму баланса когда им ее назовешь. Ситуация: стоит очередь водителей с деньгами, все подходят

В условиях очереди диалог должен быть коротким, кассир должен быстро разбираться с такими вопросами, отсюда необходимость удобной навигации.

Саша, дальше текст скорее всего нужно перенести в другой issue, пишу здесь потому что информация связана и пусть она появиться здесь, будет понимание откуда ноги растут. Заказчика предупредил, что этот функционал в первом релизе не будет реализован:

Чтобы снизить нагрузку от конфликтов и оргмер, заказчик просил добавить функцию формирования и хранения расписок, в том, что водитель признает наличие нарушения\повреждения и обязуется его выплатить. Чтобы через неделю, когда он будет возмущаться, что ничего не было, а запись в базе развод честного человека на деньги, одной кнопкой из формы детализации списания отобразить подписанную им ранее расписку. Расписка это шаблон текста в который подставляется дата,ФИО,сумма конкретного списания.

sedovalx commented 9 years ago

@Argelein вот тебе задача. Обновил описание, если что непонятно, спрашивай.

hodkovdd commented 9 years ago

@sedovalx @Argelein готовность? Серверная, клиентская стороны?

sedovalx commented 9 years ago

На серверной стороне все для этого есть. Остальное за @Argelein

hodkovdd commented 9 years ago

Когда сделаешь остальное? @Argelein

kirzas commented 9 years ago

@sedovalx сейчас для operations в route модель определяется так: model: function(params, transition) { $.getJSON("/api/reports/q-operation-list", { rent: transition.params.rent.rent_id }).then(function(data){ console.log(data); });

Я не понимаю, как туда accountType передать. Можно это заменить на this.store.find?

kirzas commented 9 years ago

так совсем не работает: GET http://localhost:9000/api/reports/q-operation-list?rent=1&accountType=Fine 404 (Not Found)

kirzas commented 9 years ago

@sedovalx так работает: return this.store.find("operation", { rent: transition.params.rent.rent_id, accountType: 'Fine' }); это парвильно? это у тебя тут просто от тестирования что-то осталось?

kirzas commented 9 years ago

@hodkoff2 работает Можно еще сделать просмотр всех платежей, без выбора типа. Нужно так? Дим, и подписи на кнопках посмотри. Может как-то получше можно написать и поменять местами.

sedovalx commented 9 years ago

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

sedovalx commented 9 years ago

Более неактуально. История операций будет отображаться в редакторе аренды. См. #85