sedovalx / taxi

6 stars 3 forks source link

КС: Установка дней для расчета списания с Арендного баланса авансом #92

Open hodkovdd opened 9 years ago

hodkovdd commented 9 years ago

@sedovalx

ТЕОРИЯ. С Водителей денег за аренду автомобиля надо брать вперед. Почему? Потому что они не дисциплинированные и опыт показывает, что долги получать с них сложнее чем не давать в долг. Поэтому за аренду плату надо брать вперед. Проблема в том что в неделе 7 дней, отрезки получаются разные - 2\2\3. Мы решили, что не умеем привязывать аванс к дням недели (до Среды например) - верно, Саша? поэтому делаем возможность выбора на сколько дней вперед списывать сумму по тарифу с баланса Арендный.

ДИЗАЙН: Выглядеть это должно примерно так (обведено красным): 25

РАБОТАТЬ должно так: кассир в начале дня выставляет цифру на нужное количество дней. Это цифра прибавляется к текущей дате. И Арендный баланс для всех Аренд рассчитывается именно до этой полученной таким образом даты. Таким образом мы получаем предоплату.

! Кстати, эту дату и количество прибавленных надо где то хранить. Таким образом мы сохраним историю кассовых дней.

sedovalx commented 9 years ago

Сейчас кассовая форма на сервере поддерживает параметр date, который определяет, на какую дату рассчитывать форму. Например, если передать дату на день вперед, то форма рассчитается "на завтра", что эквивалентно расчету "на сегодня" минус дневной тариф по аренде. В кассовой форме уже есть в фильтре указание даты, только нужно сделать ввод даты через календарь, а не строкой. @Argelein поправишь? У нас вроде бы где-то уже был ввод даты из календаря. Последний абзац я не понял.

sedovalx commented 9 years ago

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

kirzas commented 9 years ago

@sedovalx @hodkoff2 Проблема с временем из-за bootstrap-datepicker. он выберает только дату, без времени. Вопрос: для операций вообще нужно время выбирать? Вижу два варианта решения:

  1. Заполнять текущим временем и сделать read-only.
  2. Надо прикручивать какой-нибудь bootstrap-datetimepicker.
sedovalx commented 9 years ago

@Argelein я бы убрал этот датапикер вообще и проставлял текущее время. Позже можно будет подумать о более корректном контроле, они есть.

А почему это замечание тут сделано?

kirzas commented 9 years ago

это я промахнулся :) хотя ты тут упомянул раньше меня :)

kirzas commented 9 years ago

нет, это все же я не понял, о чем тут задача :) @sedovalx дата в фильтре это же не то же самое. может нужно все таки добавить новое поле даты в модель и для него сделать еще одно поле вне фильтра. К нему подойдет datapicker.

kirzas commented 9 years ago

и вообще сейчас фильтрация не работает :( в каком формате надо дату давать? GET http://localhost:9000/api/reports/q-cashier-list?date=2015 500 (Internal Server Error)

sedovalx commented 9 years ago

Формат такой https://54.72.96.97:9443/api/reports/q-cashier-list?date=2015-07-16T12:33:23.456+03:00, но в URI некоторые символы являются служебными, они должны кодироваться. В итоге получается вот такой вот запрос https://54.72.96.97:9443/api/reports/q-cashier-list?date=2015-07-16T12%3A33%3A23.456%2B03%3A00. Тебе ничего специально делать не нужно для кодирования, jquery все сделает сам.

kirzas commented 9 years ago

@sedovalx можно этим datetime picker'ом получить дату в таком формате?

sedovalx commented 9 years ago

Датапикер возвращает дату, которую можно отформатировать так, как хочется. Для форматирования разумно использовать библиотеку momentjs, которая уже кое-где используется в нашем проекте.

kirzas commented 9 years ago

@sedovalx Я делаю так moment(<введенное датапикером время>).format() формат получается, как ты написал, но не работает: GET http://localhost:9000/api/reports/q-cashier-list?date=2015-07-23T22%3A38%3A20%2B03%3A00 500 (Internal Server Error)

sedovalx commented 9 years ago

Судя по этой ссылке, формат не такой, как я написал.

kirzas commented 9 years ago

@sedovalx О да! это называется ISOstring, не мог сразу сказать? :)

kirzas commented 9 years ago

Готово, работает, но выглядит по-уродски. Предлагаю пока оставить так, т.к. со стилями мне еще очень трудно. @hodkoff2 посмотри. Уже баг нашел, на него отдельно заведу задачу, сходу не понял, как исправить.

kirzas commented 9 years ago

@hodkoff2 @sedovalx кстати, приложение ведь знает, какая текущая дата и какой день недели. Я могу сделать, чтобы поле заполнялось автоматически нужными днями. Дим, дни вроде известны? Это просто может быть значение по умолчанию вместо текущей даты.

hodkovdd commented 9 years ago

Да! давай попробуем, мне кажется должно быть очень к месту.

kirzas commented 9 years ago

@hodkoff2 тогда напиши, какие это должны быть дни, я не помню

hodkovdd commented 9 years ago

@Argelein понедельник среда пятница

sedovalx commented 9 years ago

Посмотри momentjs, у него широкие возможности по манипуляциям с датами.

kirzas commented 9 years ago

сделал автоматический расчет на следующий день снятия кассы, т.е. пн, ср и пт, на 10 утра по Москве (+3 часа). В поле отображается неверно все равно, но расчет верный. на отображения даты в поле есть отдельная задача.

sedovalx commented 9 years ago

Все коряво выглядит, разметка поехала.