Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Марк Гость
|
Добавлено: Ср Ноя 06, 2002 2:57 pm Заголовок сообщения: Патчи |
|
|
Очень классное окошко у админа с сортировкой по времени окончания работы - сенкс, давно мечталось.
Но ОЧЕНЬ ХОЧЕТСЯ чтоб наконец был пропатчен баг с посадкой на всю сумму, который не работает если
1) тариф меняется во времени
2) клиент имеет скидку
Когда сей патч будет сделан? :?: |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Чт Ноя 07, 2002 6:45 am Заголовок сообщения: |
|
|
мне почему то казалось что тут возникает момент неоднозначности принятия решения... |
|
Вернуться к началу |
|
|
DrNight
Зарегистрирован: 12.06.2002 Сообщения: 121 Откуда: ПРСД
|
Добавлено: Чт Ноя 07, 2002 2:43 pm Заголовок сообщения: |
|
|
Где ж это ты усмотрел неоднозначность?
В упор не вижу! _________________ © Copyright by Dr. Night |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Чт Ноя 07, 2002 3:04 pm Заголовок сообщения: |
|
|
DrNight писал(а): | Где ж это ты усмотрел неоднозначность?
В упор не вижу! |
нуну...
прайс представляет из себя универсальное дерево тарифов.
предложи алгоритм получения времени от цены.
... подробный! |
|
Вернуться к началу |
|
|
DrNight
Зарегистрирован: 12.06.2002 Сообщения: 121 Откуда: ПРСД
|
Добавлено: Чт Ноя 07, 2002 5:19 pm Заголовок сообщения: |
|
|
Функция получения цены по времени, точнее началу временного интервала и его концу, очевидно легко алгоритмируема.
Далее искомый конец находится между нулём и заведомо большим числом, равным, например кол-ву рублей. Далее следует элементарный бинарный поиск.
_________________ © Copyright by Dr. Night |
|
Вернуться к началу |
|
|
Марк Гость
|
Добавлено: Пт Ноя 08, 2002 2:23 am Заголовок сообщения: Патчи |
|
|
vis писал(а): | DrNight писал(а): | Где ж это ты усмотрел неоднозначность?
В упор не вижу! |
нуну...
прайс представляет из себя универсальное дерево тарифов.
предложи алгоритм получения времени от цены.
... подробный! |
Я не программер, поэтому простым языком постараюсь...
Если у клиента скидка в процентах, то вообще никакой проблемы не вижу: просто сумму увеличиваем на клиентскую скидку и от нее считаем время. Я не понимаю почему это не сделано до сих пор и какая тут нафиг неоднозначность.
Теперь по поводу времени:
1. Рассчитывается время из текущего тарифа - сумма делится на тариф
2. Выясняется - происходит ли переход тарифа по состоянию на конец работы.
3. Если нет - время окончания работы известно
4. Если да:
5. Рассчитывается стоимость всего времени по текущему тарифу
6. Из суммы вычитается полученное по п.5.
7. Оставшуюся сумму рассматриваем снова начиная с п.1. до тех пор пока по п.3 не будет получен ответ "нет".
8. Все полученные временные интервалы суммируются. Аминь. |
|
Вернуться к началу |
|
|
Марк
Зарегистрирован: 08.11.2002 Сообщения: 307 Откуда: Минск
|
Добавлено: Пт Ноя 08, 2002 4:25 am Заголовок сообщения: Патчи |
|
|
к моему предыдущему постингу
в п. 7 алгоритм поворяется с учетом рассмотрения нового временного интервала.
Пример: (звиняйте, белорусские цены)
Тариф 8.00-10.00 составляет 600 руб.
Тариф 10.00-14.00 составляет 900 руб.
Тариф 14.00-18.00 составляет 1000 руб.
Клиент приходит в 8.30 и дает 6 тысяч рублей.
Расчет
6000/600=10 часов.
8.30 + 10.00=18.30. 18.30>10.00 = истина
10.00-8.30=1.30 часа*600=900 руб.
6000-900=5100 руб.
5100/900=5,66 час. или 5 часов 40 минут.
10.00+5.40=15.40. 15.40>14.00 = истина
14.00-10.00=4 часа*900=3600 руб.
5100-3600=2500 руб.
2500/1000=2,5 час или 2 часа 30 мин.
14.00+2.30=16.30. 16.30>18.00= ложь
Время окончания работы - 16.30 _________________ Сила мелочей в том, что их много |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Пт Ноя 08, 2002 7:28 am Заголовок сообщения: |
|
|
то что вы написали - достаточно банально
вопрос:
если добавляются параметры как:
скидка, если берется одновременно 2,3,4 и т.д. часов.
и другие параметры, от которых зависит цена
хотяяя... они в функции константы... и в принципе несущественны. |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Пт Ноя 08, 2002 12:27 pm Заголовок сообщения: |
|
|
vis писал(а): | то что вы написали - достаточно банально
вопрос:
если добавляются параметры как:
скидка, если берется одновременно 2,3,4 и т.д. часов.
и другие параметры, от которых зависит цена
хотяяя... они в функции константы... и в принципе несущественны. |
Про скидку и пр. константы я уже написал - просто в самом начале делается перерасчет суммы. А потом запускается вышеуказанный алгоритм. |
|
Вернуться к началу |
|
|
DrNight
Зарегистрирован: 12.06.2002 Сообщения: 121 Откуда: ПРСД
|
Добавлено: Пт Ноя 08, 2002 9:38 pm Заголовок сообщения: |
|
|
vis писал(а): | то что вы написали - достаточно банально
вопрос:
если добавляются параметры как:
скидка, если берется одновременно 2,3,4 и т.д. часов.
и другие параметры, от которых зависит цена
хотяяя... они в функции константы... и в принципе несущественны. |
А если сделать по-другому:
Рассчитать сумму для 1 мин, 2 мин, 3 мин, ..., 99 ч. 59 .мин, 100 ч.
И из возможных значений выбрать наиблее близкое к данной сумме и запомнитью
А потом взять небольшую (.5 руб) окрестность этой суммы и посмотреть какие члены нашей посл-ти лежат в этой окр-ти. И, если эти точки не лежат в окр-ти запомненного времени, запомнить и его тоже.
Все полученные варианты выставить на обозрение.
Манипулируя диаметрами окрестностей можно получить отображение лишь нужных вариантов практически для любых тарифов. _________________ © Copyright by Dr. Night |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Пт Ноя 08, 2002 9:44 pm Заголовок сообщения: |
|
|
DrNight писал(а): | vis писал(а): | то что вы написали - достаточно банально
вопрос:
если добавляются параметры как:
скидка, если берется одновременно 2,3,4 и т.д. часов.
и другие параметры, от которых зависит цена
хотяяя... они в функции константы... и в принципе несущественны. |
А если сделать по-другому:
Рассчитать сумму для 1 мин, 2 мин, 3 мин, ..., 99 ч. 59 .мин, 100 ч.
И из возможных значений выбрать наиблее близкое к данной сумме и запомнитью
А потом взять небольшую (.5 руб) окрестность этой суммы и посмотреть какие члены нашей посл-ти лежат в этой окр-ти. И, если эти точки не лежат в окр-ти запомненного времени, запомнить и его тоже.
Все полученные варианты выставить на обозрение.
Манипулируя диаметрами окрестностей можно получить отображение лишь нужных вариантов практически для любых тарифов. |
такая мысль и была первой
а терь прикинь скока времени уйдет на 100 запросов к базе
на моем дуал атлон 2.1 38 запросов в сек . |
|
Вернуться к началу |
|
|
DrNight
Зарегистрирован: 12.06.2002 Сообщения: 121 Откуда: ПРСД
|
Добавлено: Сб Ноя 09, 2002 1:16 am Заголовок сообщения: |
|
|
Дык вырежь нужную ветку из базы цен и в память загони.
ЗЫ: Це называется КЕШ! _________________ © Copyright by Dr. Night |
|
Вернуться к началу |
|
|
Марк
Зарегистрирован: 08.11.2002 Сообщения: 307 Откуда: Минск
|
Добавлено: Ср Ноя 13, 2002 3:43 am Заголовок сообщения: |
|
|
Не, я думаю мой алгоритм на порядок короче, чем ..уева туча сумм на каждое время.
Единственная неоднозначность решения возникает в случае если есть тариф на фиксированное количество часов. А мы это самое количество через тариф вычисляем. То есть лажа получается.
Но и тут проблемы не вижу.
Тариф 8.00-10.00 составляет 600 руб.
Тариф 10.00-14.00 составляет 900 руб.
Тариф 14.00-18.00 составляет 1000 руб.
Клиент приходит в 8.30 и дает 5 тысяч рублей.
Сначала проверяем все виды скидок и тарифов по этой посадке кроме тарифа за кол-во часов. Выводим общую константу, на которую умножаем полученную сумму. Далее работаем с новой суммой.
Предположим, у клиента скидка 20%.
Новая сумма
5000/0,8=6250 рублей
Расчет
6250/600=10,25 часов или 10 часов 15 минут.
8.30 + 10.15=18.45. 18.45>10.00 = истина
10.00-8.30=1.30 часа*600=900 руб.
6250-900=5350 руб.
5350/900=5,94 час. или 5 часов 57 минут.
10.00+5.57=15.57. 15.57>14.00 = истина
14.00-10.00=4 часа*900=3600 руб.
5350-3600=2750 руб.
2750/1000=2,75 час или 2 часа 45 мин.
14.00+2.45=16.45. 16.45>18.00= ложь
Далее проверяем на предмет тарифа на сумму часов
Допустим за 4 часа сразу и более тариф 700 руб.
16.45-8.30=8.15
8.15>4=истина
Если "ложь" - расчет окончен.
Если истина - производим пересчет исходя из нового тарифа.
6250/700=8,93 часа или 8 часов 56 минут
И выбираем большее из двух чисел 8.56 и 8.15
Это и есть время, которое получает клиент.
Марк _________________ Сила мелочей в том, что их много |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Чт Ноя 14, 2002 4:06 am Заголовок сообщения: |
|
|
это все ясно.
но как быть если еще оказывается если тело берет 4 часа сразу - ему скидка??????????
если построить график зависимости цены от времени (по х - время, по н - стоимость) - в этом случае получим, что некая стоимость достигается неоднократно!
что и есть неоднозначнось при выборе времени.
т.е. админу нуна в принципе давать мазу выбирать на скока тело садить-ть в итоге.
что я и хотел сказать. |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Чт Ноя 14, 2002 4:09 am Заголовок сообщения: |
|
|
можно конечно еще более круто сделать
один раз нагенерить всевозможных графиков...
либо их просто кэшировать
но для нового софта (где больше 15ти параметров для цены), это дело спасет тока слегка |
|
Вернуться к началу |
|
|
Анрил
Зарегистрирован: 23.07.2002 Сообщения: 68 Откуда: г. Старый Оскол
|
Добавлено: Сб Ноя 23, 2002 4:01 pm Заголовок сообщения: |
|
|
А что за "Очень классное окошко у админа с сортировкой по времени окончания работы - сенкс, давно мечталось. "
Это какой-то патч? :?: |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Вс Ноя 24, 2002 11:47 am Заголовок сообщения: |
|
|
патч - есть заплатка
т.е. некая прога (или просто код), которая производит изменния в некой другой проге.
===> никаких патчей я не даю |
|
Вернуться к началу |
|
|
Анрил
Зарегистрирован: 23.07.2002 Сообщения: 68 Откуда: г. Старый Оскол
|
Добавлено: Вс Ноя 24, 2002 9:07 pm Заголовок сообщения: |
|
|
Ну ведь понял, о чём я говорю... Не придирайся.
Так что это за прибамбас? :?: |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Пн Ноя 25, 2002 2:10 am Заголовок сообщения: |
|
|
это мой софт
версии поновее |
|
Вернуться к началу |
|
|
Анрил
Зарегистрирован: 23.07.2002 Сообщения: 68 Откуда: г. Старый Оскол
|
Добавлено: Ср Ноя 27, 2002 8:28 pm Заголовок сообщения: |
|
|
Спасибо за обновку, действительно неплохая штучка.
Вот только если бы она еще учитывала бронь. А то получается, например, что комп №1 забронирован, но в окошечке пишет, что освободится через 5мин(это пример). Возможно ли подправить?
И еще странно происходит посадка по брони. Я человека посадил из брони, а признак (красный восклицательный знак) остается еще несколько минут. |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Чт Ноя 28, 2002 8:13 am Заголовок сообщения: |
|
|
только в след версиях
в этой эта тема точно патчится не будет
потому как оч много времени потребуется на эту казалось бы "небольшую" доделку |
|
Вернуться к началу |
|
|
Марк
Зарегистрирован: 08.11.2002 Сообщения: 307 Откуда: Минск
|
Добавлено: Пн Дек 09, 2002 8:02 pm Заголовок сообщения: |
|
|
vis писал(а): | это все ясно.
но как быть если еще оказывается если тело берет 4 часа сразу - ему скидка??????????
|
Чего?!! Ткни пальцем, где скидка?! Там устанаваливается тариф, а не скидка, я это в своем примере учел!
vis писал(а): | если построить график зависимости цены от времени (по х - время, по н - стоимость) - в этом случае получим, что некая стоимость достигается неоднократно!
что и есть неоднозначнось при выборе времени.
т.е. админу нуна в принципе давать мазу выбирать на скока тело садить-ть в итоге.
что я и хотел сказать. |
Делать надо иначе - нужно чтобы неоднозначность достигалась во времени. То есть чтоб получалось несколько вариантов времени как в моем примере.
Ведь при посадке на всю сумму мы не стоимость считаем, а время!!!
И тогда выбирается максимальное время из имеющихся вариантов.
Но расчет по константам нужно сделать в любом случае: самое частое - это наличие скидки. Пусть оно пока не работает при выборе стольких-то часов...
Просто пусть при наличии индивидуальной скидки, то есть константы хотя бы считает! Здесь же нет никакой неоднозначности!!! _________________ Сила мелочей в том, что их много |
|
Вернуться к началу |
|
|
Марк
Зарегистрирован: 08.11.2002 Сообщения: 307 Откуда: Минск
|
Добавлено: Сб Дек 14, 2002 3:06 am Заголовок сообщения: |
|
|
Перечитал тему еще раз и суммирую:
1. Неоднозначность достигается только если есть отдельный тариф на взятие стольких-то часов. Все остальное считается элементарно и встроить этот расчет - пара пустяков. Тем не менее игнорируется... 2. Неоднозначность состоит в том, что за одну и ту же сумму может получиться разное время. Так вот - клиент доджен получатьза свои деньги максимум возможного. Остальное - наши внутренние трудности, клиенту мало интересные. То есть неоднозначность решается простым выбором максимального значения.
Виктор! Отсутствие посадки на всю сумму при наличии скидок или перехода тарифа по времени - это БАГ и его давно пора патчить.
Когда?! _________________ Сила мелочей в том, что их много |
|
Вернуться к началу |
|
|
vis Site Admin
Зарегистрирован: 18.05.2002 Сообщения: 3830
|
Добавлено: Сб Дек 14, 2002 3:58 am Заголовок сообщения: |
|
|
Марк писал(а): | Перечитал тему еще раз и суммирую:
1. Неоднозначность достигается только если есть отдельный тариф на взятие стольких-то часов. Все остальное считается элементарно и встроить этот расчет - пара пустяков. Тем не менее игнорируется... 2. Неоднозначность состоит в том, что за одну и ту же сумму может получиться разное время. Так вот - клиент доджен получатьза свои деньги максимум возможного. Остальное - наши внутренние трудности, клиенту мало интересные. То есть неоднозначность решается простым выбором максимального значения.
Виктор! Отсутствие посадки на всю сумму при наличии скидок или перехода тарифа по времени - это БАГ и его давно пора патчить.
Когда?! |
в данное время у меня нет времени тратить 2-3 дня на работу по этой теме... а особенно учитывая то, что скоро это будет бесполезно - не считаю это проблемой |
|
Вернуться к началу |
|
|
Марк
Зарегистрирован: 08.11.2002 Сообщения: 307 Откуда: Минск
|
Добавлено: Вс Дек 15, 2002 6:28 am Заголовок сообщения: |
|
|
vis писал(а): | в данное время у меня нет времени тратить 2-3 дня на работу по этой теме... а особенно учитывая то, что скоро это будет бесполезно - не считаю это проблемой |
М-да...
Считаем баги
1. Не работает пцыца "на всю сумму" если есть переход тарифа или скидка
2. Неправильно считается сумма при продлении времени частями когда есть переход тарифа - писал я уже, что админ легка ворует бабло при таком раскладе
3. Под VPN не работает посадка "без интернета/с интернетом"
Все это мелочь несущественная, так?
И "скоро" (в мае еще планировалось) нам будет предложено заплатить бабло за новую прогу, в которой эти баги пофиксены (еще непонятно все или нет...).
Я понимаю - не встраивать новые возможности в старую прогу. Но заставлять ждать и покупать новую чтоб баги исправились - это нечто... _________________ Сила мелочей в том, что их много |
|
Вернуться к началу |
|
|
|