sedovalx / taxi

6 stars 3 forks source link

Расчет Водителя #97

Open hodkovdd opened 9 years ago

hodkovdd commented 9 years ago

14

Теория. Идея состояла в том, что после того как водителя выгнали (или он сам ушел) должно пройти две недели (для нас это означает статус аренды "под расчет" ), за которые могут придти новые штрафы. Через две недели водитель имеет право придти за своим авансом. В этом случае проверяется кто кому что должен и водитель либо посылается нахер, либо получает свой аванс обратно (что происходит редко, чаще его шлют нахер и эта форма становится аргументом). UI. В UI для такой аренды нужен какой-то переход, посредством кнопки скорее всего, в форму "Расчет Водителя". В этой форме отображается калькуляция балансов его подрасчетной аренды с авансом который он вносил.

sedovalx commented 9 years ago

А не дубль ли это? См. https://github.com/sedovalx/taxi/issues/85

sedovalx commented 9 years ago

Входит в план-минимум #95

sedovalx commented 9 years ago

@hodkoff2 тут в полях отображаются значения соответствующих столбцов из кассовой формы?

hodkovdd commented 9 years ago

@sedovalx Да, те же значения что в КС.

sedovalx commented 9 years ago

И даже поле "Итого" так же как там расчитывается?

hodkovdd commented 9 years ago

Нет, ИТОГО здесь другое. Оно ровно просто сумме четырех значений выше, трех балансов и залога. Если раньше смешивать положительные с отрицательными балансами нам нельзя было чтобы не получать среднюю температуру по больнице, то в момент финального расчета водителя мы как раз подводим черту и суммируем все - аренду,штрафы,ремонты и залог, который он внес когда устраивался.

hodkovdd commented 9 years ago

Часто бывают случаи, что водителя выгоняют за долги, или он просто исчезает. Это приводит к тому что приходится закрывать аренду с отрицательным итогом. В этом случае нужно предусмотреть возможность указывать, получает закрывающий от водителя эти деньги или нет. Потому как это значение влияет на счет "в кассе" и может вызвать расхождение с реальной суммой в кассе. @hodkoff2 Подумать что тут надо сделать и расписать подробно.

sedovalx commented 9 years ago

Запрос вида http://localhost:9000/api/reports/q-rent-total?rent=536 теперь возвращает сводные данные по аренде:

{
    "rentId": 536,
    "minutes": 95177,
    "rent": 14743.22,
    "repairs": 1391.97,
    "fines": -1645.18,
    "deposit": 1219,
    "total": 15709.01
}
sedovalx commented 9 years ago

@hodkoff2 посмотри, что получилось. На страничке аренды сейчас объединены функции данной задачи и #94. Попасть на страницу аренды можно либо из списка аренд, либо из кассовой формы. Мне кажется, ничего не мешает и закрывать аренды из страницы аренды, меняя ее статус.

Тут у тебя есть еще таинственная кнопка "Рассчитать". Что она значит?

hodkovdd commented 9 years ago

@sedovalx Рассчитать - это просто "Ок" - подтверждение операции. отсюда: https://github.com/sedovalx/taxi/issues/79#event-353587771:

Смысл:

sedovalx commented 9 years ago

Предлагаю следующее.

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

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

По нажатию на кнопку "Расчет":

Все, кроме операции по возврату делается силами клиента. Операция по возврату описана тут #101. Сумму возврата можно получить из самого контроллера аренды, вызвав this.get('rentTotal.total'). Тут не будет специального мастера для возврата, все будет происходить в контроллере редактора аренды. Ты создаешь в редакторе аренды action для осуществления возврата, внутри выполняешь создание и сохранение объекта refund.

@Argelein как ты уже знаешь, операция сохранения любого доменного объекта возвращает promise, который может разрешиться ошибкой в случае, если сохранение неуспешно. Это может произойти из-за того, что сервер недоступен, или были неправильно заполнены поля возврата. В этом случае, очевидно, аренду закрывать нельзя. Т.е. нужно подождать, пока promise разрешится, и уже тогда либо закрывать аренду, либо отображать ошибку.

Отдельный вопрос, как и где отображать ошибку. Хорошим вариантом является #102. Однако можно и в редакторе аренды определить отдельное поле для ошибки, и отображать его в шаблоне редактора на закладке "Основное". Если возврат закончился ошибкой, то заполнять это поле текстом ошибки.

kirzas commented 9 years ago

@hodkoff2 Дим, возврат возможен по закрытой аренде?

kirzas commented 9 years ago

Сделал refund, можно посмотреть

kirzas commented 9 years ago

@hodkoff2 Сейчас refund можно создать прямо из кассовой формы. Дим, ты согласен с предложением Саши? Я готов делать по нему, вроде все понятно для начала

hodkovdd commented 9 years ago

визуализирую предложение Саши 39 40 41

:

hodkovdd commented 9 years ago

@Argelein @sedovalx Что за кнопка Возврат денег на КС: 42 Что она делает и зачем? Я понял что она родилась здесь https://github.com/sedovalx/taxi/issues/101 Но зачем?

kirzas commented 9 years ago

она сейчас в кассовой форме временно, чтобы просто посмотреть, как работает. потом будет в изменении аренды, т.е. в расчете.

hodkovdd commented 9 years ago

@Argelein тут Саша все грамотно разложил, однако: Мне кажется сначала нужно сделать форму В КАССЕ https://github.com/sedovalx/taxi/issues/91, переход по кнопке на КС. Я смогу проверить правильно ли у нас сейчас ведется счет В Кассе, последить как он меняется и прочее. После добавить выемку из кассы, проверить, что касса наполняется и обнуляется правильно. И уже сверху достраивать что то по этой задаче (операции с расчетом водителей и связанные кнопки). Иначе мы начинаем строить здание с крыши или середины как минимум. Не даром уже появился клубок взаимозависимых и недоделанных задач. Ответь там на вопрос чтобы я понимал в каком мы сейчас положении.

kirzas commented 9 years ago

вопрос на засыпку: зачем нужно состояние аренды (Под расчет)? чем оно принципиально отличается от приостановки? можно так: приостнаваливаем (аренда больше не капает), после этого расчитываем.

kirzas commented 9 years ago

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