|
|
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Собственно формулировка темы получилась немного кривоватой. Похожую проблему где-то видел на форуме, но сейчас немогу найти. есть месяц и пары чисел (начальные и конечные показания электросчётчика) Код: plaintext 1. 2. 3. 4. 5. 6. Поскольку обработка квитанций после сберкассы идёт вручную, то забить в базу могут в любом порядке. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 09:09:09 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
хранить не показания счетчика (или не только), а реальные числа: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 09:37:15 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
хранимая процедура (алгоритм): выбрать первую строку в first_col, sec_col цикл: искать сл. sec_col выбрать в first_col, sec_col где first_col = sec_col конец цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 09:42:53 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
рабочий вариант могу дать, только значительно позже :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 09:43:38 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
авторвыбрать в first_col, sec_col где first_col = sec_col Согласен. Об этом думал. Выглядит очень даже логично, но если для каждого следующего first_col есть равный ему предыдущий sec_col. А если его нет - пропустили одну квитанцию (потеряли) при упаковке в сберкассе - распаковке у меня в операционном зале. В самом общем виде пока не дотягиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 09:51:00 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Не существует однозначного всеобщего решения данной задачи в рамках представленных исходных данных. Например: Код: plaintext 1. 2. 3. 4. 5. Как различить вторую и пятую записи ? Правильно, никак ! Значит нужны дополнительные признаки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 10:15:52 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
...или дополнительные ограничения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 10:17:12 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>Johnmen Я не спорю, какие-то дополнения должны быть. Но какие? Номер квитанции, который пропечатала сберкасса? Абонент может высыпать кучку квитанций и в каком порядке их обработает кассир неизвестно. Но на два полных оборота за один месяц можно не обращать внимания. Абонент с таким бешеным потреблением энергии это эксклюзив. Его выловим другим способом и поставим более мощный счётчик (другой модели) пусть потребляет - криминала нет. Красота и марафет в этом случае не нужны. Мне важно красоту и понятность навести для основной массы абонентов(большинство пенсионеры) чтобы они меньше тратили времени и быстрее понимали распечатку сравнивая со своими корешками квитанций. Вот корешки-то они сами отсортировали так как надо - можете быть уверены на 100 баллов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 10:31:18 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Не забывай еще про такую вещь, как замена счетчика. При этом нарушается последовательность показаний. Я у себя решил этот вопрос так: храню не месяц и год, а полную дату показания, причем два показания на одну дату не допускаются. Это позволяет делать и замены счетчиков, и смену тарифов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:04:40 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
2 vl2000 всё гениальное просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:10:49 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
ВАУ!!! vl2000 — родственная душа! Ты из какого Энерго? Замену счётчика я разрулил и достаточно оптимально с точки зрения скорости БД. Интересует сортировка в пределах одного счётчика и лучше всего на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:12:21 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Саратовэнерго, Приволжские эл. сети А ты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:15:47 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, не обратил внимания на профиль. Наверное из НижНовЭнерго7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:17:02 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
vl2000причем два показания на одну дату не допускаются Допускаютя! И ничего с этим не сделать. Особенно когда продвинутые абоненты платят через ИнтерНет с пластиковых карт. Тот кто разрабатывал сайт для оплаты предусмотрел только дневной и ночной тарифы и НЕ предусмотрел оплату 40 кВт на человека по базовому тарифу. Поэтому абоненты в один день делают два платежа 1. 40 кВт на человека по базовому 2. Оставшиеся кВт-ы по экономически обоснованному - ёбтть А потом это валится мне. >vl2000 Наверное из НижНовЭнерго7 Оно самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 11:21:21 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Общее решение в предположении, что за рассматриваемый период (напр.месяц) счётчик не делает "полный оборот" и последовательность снятых показаний "непрерывна" (т.е. V1=100-V2=200,V1=200-V2=300,...): 1. Получаем "последнее" показание, не имеющее "продолжения" (VMax) SELECT T1.V2 FROM T T1 WHERE NOT EXISTS (SELECT 0 FROM T T2 WHERE T1.V2=T2.V1) 2. Получаем, что хотим SELECT CASE WHEN (V2<=VMax) THEN V2 ELSE V2-VConst, T.* FROM T ORDER BY 1 где VConst - максимально возможное показание счетчика (напр.9999). Ну и, естественно, добавить условие по интересующему периоду времени. И сервер должен поддерживать CASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 12:07:24 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>Johnmen Если предполагать что: счётчик не делает "полный оборот" и последовательность снятых показаний "непрерывна" то можно обойтись простым: SELECT d,t1,t2 order by d,t1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 12:23:33 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
правильно сказал Johnmen: нужны дополнительные признаки... ...или дополнительные ограничения.. А конкретно, дата, на которую снималось показание счетчика, а если за день снимается несколько показаний (меняются счетчики и т.п.), то еще и время. Причем это НЕ дата, когда абонент оплачивал квитанцию, а Дата показаний. Как же вы без этой даты определяете действующий тариф? Например, тариф менялся 10 мая. А у вас два показания- и оба за май, одно до 9 мая, другое 31. Как узнаете, какому показанию- какой тариф? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 12:51:00 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
У нас и делается ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 13:03:53 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>vl2000 Достаточно тех ограничений, которые я указал (их и имел в виду автор, я думаю). А что касается временного интервала, частоты снятия показаний и т.п. это абсолютно не важно и роли не играет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 13:23:28 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Ну скажем, в середине месяца тарифы не меняются — по закону. Иначе население такое устроит, что министру, рискнувшему сменить тариф в середине месяца, придётся расстаться с креслом. А тариф будет отменён. Абонент оплачивает потребление за конкретный месяц - это он указывает в квитанции. И проблема возникает, когда ... Старый пример: Раньше до 300 кВт был один тариф от 301 кВт другой тариф. Хитрые абоненты, израсходовав в месяц 900 кВт, платили тремя квитанциями по 300 кВт в один день, указывая один и тот же месяц напр. май. Все три квитанции попав в БД будут расчитаны правильно 300 и от 301 до 900. Три раза по 300 кВт по маленькому тарифу это меньше чем 300 по маленькому и 600 по большому. Я ему насчитаю правильную задолженность, а он придёт качать права. Проблема только в визуализации истории этих евойных платежей. Чтобы ему было проще увидеть, где я его ущучил. Если показания будут отсортированы как-то иначе (не логично и не последовательно) он начнёт скандалить, обвинять во всём компьютер и... (...баного Чубайса). Проблема осложняется только двумя моментами 1. Произошёл оботот(переход) счётчика 2. При забивке в БД потерялась одна квитанция. Мне по барабану эти осложнения и даже замена счётчика, расчитаю-то я всё-равно правильно. Главное показать (визуализировать). Допущения типа в один месяц одна квитанция не проходят — это практика. Теория в данном случае никого не интересует. Должно быть так как на практике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 13:49:12 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Не пойму я чё вы маетесь... Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 13:52:15 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>Zmeishe Я уже ответил. Добавлю, что если потеряли одну при забивке, то в первом запросе получим 2 значения для не имеющего "продолжения". Принимаем решение о дальнейших действиях... >Мимопроходящий >Не пойму я чё вы маетесь... А ты постарайся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 13:57:12 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Для той задачи, которую описал Zmeishe, мой запрос подходит уполне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:02:19 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Не подойдет. Однозначно... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:16:44 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>Мимопроходящий А если будет такой вариант (счетчик трехзначный): янв 10 40 янв 45 90 (переход через 0) есть гарантия, что твой запрос не сделает так: янв 45 90 (переход через 0) янв 10 40 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:21:04 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Попробуй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:25:51 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>мимопрох.. беру свои слова обратно, просмотрел третье выражение в ORDER BY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:34:28 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
а для 3-х показаний? 20 40 40 90 25 30 (переход через 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:39:06 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Мим CASE WHEN (T.F2 > T.F1) THEN 1 ELSE -1 END, T.F1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:44:00 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>Johnmen нет, там вначале по месяцу идет сортировка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:48:03 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Сделал. На клиенте есть цикл по всему НД - для доп. вычислений и марафета. Как я писал всего 30-40 записей поэтому мгновенно. Добавил в НД одно служебное поле NUM и в этот цикл впихнул условие из идеи Мима. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Спасибище всем потратившим на меня время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:52:11 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>vl2000 >нет, там вначале по месяцу идет сортировка & >Те, кто в танке Это НЕ ИМЕЕТ ЗНАЧЕНИЯ ! См. по-другому: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:54:56 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
2Johnmen: ты наверное не мой запрос выполнял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:55:57 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>Мим Твой твой ! Для данных, приведенных выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 14:58:12 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Как занятно, у тебя данные Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 15:02:09 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Не надо прикидываться дурачком Я надеюсь, ты всё прекрасно понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 15:05:27 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Не-а. Я никуя не понял. Змей задачу поставил? Поставил. Я задачу решил? Решил. И фули? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 15:10:26 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Ну, вообще-то да Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 15:13:52 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Гадёныш — это абонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 15:14:35 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
не, тут надо вводить дату показания. если есть показание счетчика, значит есть и дата, когда это показание сняли. Есть дата, можно отсортировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 15:40:50 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
>не, тут надо вводить дату показания Обьясни это абонентам - у меня их 1`500`000 чел. Выдай инструкцию каждому. Типа если вы хотите один месяц оплатить разными квитанциями, то сначала отсортируйте эти квитанции по показаниям счётчика, а затем проставьте разные даты тоже в порядке возрастания. Уверяю тебя - им насрать на наши неудобства. Поэтому рулить придёться математически. Надо изобрести доп параметр - будем изобретать. Но только служебные доп параметры. Чтобы в квитанциях ничего лишнего для населения не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 16:01:37 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
им насрать на наши неудобства - подтверждаю! Абонент :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2004, 16:12:18 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Привет, коллеги! Я тоже работаю в энергетике. Для своего отдела сбыта написал простенькую программку по обсчёту частников. Могу поделиться, если это кому-нибудь нужно. Правда, писал на связке Линтер/ЛАБ - дабы побыстрее заткнуть проблемный участок. А теперь потихоньку перевожу всесь комплекс сбыта электоэнергии (отделы договорной/частники/промсектор) на ФБ/Дельфи, на полноценную КИС. Данную задачу решил следующим образом. Вся история взаимоотношений поставщика с абонентом выводится в одном окне "Картина расчетов", по данному лицевому счёту. Картина расчетов разделена вертикальной черной линией на две части: исходные данные (слева) и расчетная часть (справа). Исходные данные - это то, что вносят операторы: показания счетчиков, оплата, данные о льготах и субсидиях и т.д. Расчетная часть недоступна для непосредственного изменения оператором и служит только для показа результатов расчетов. На основании произведённых расчётов печатаются квитанции, которые кидаются абонентам по почтовым ящикам. Самое первая колонка "Картины расчётов" - флаг расчитанных записей. То есть вся картина делится как бы на две части: нижняя часть, отмеченная галочками в первой колонке - расчитанные записи; верхняя часть - нерасчитанные записи (галочки не выставлены). Потребление расчитывается очень просто, как разница текущих и предыдущих показаний. Соответственно, как только появилась расчитанная запись, на основании расчитанного потребления вычисляется стоимость (общая/льготная и т.д.), определяется сумма к оплате и т.д. Как только в любую запись вносится какое-либо изменение (изменение/добавление/удаление записи), то данная запись и все последующие сбрасывают флаг "Запись расчитана". На печать выдаются только расчитанные записи, то есть показанная на картинке квитанция получается только на основании расчитанной записи о потреблении (в данном случае - от 29.06.2001). Скриншот можно посмотреть вот тут: http://tpaktop040310.pochta.ru/kr2.jpg На картинке последняя колонка, "Долг", показывает задолженность потребителя перед поставщиком красным цветом, а переплату ("предоплату") - черным. Обратите внимание, что самая верхняя строка потребления, с датой 28.07.2002, пока ещё не расчитана и поэтому в колонках Расход, Стоимость, Оплата, Долг нет никаких цифр и галочка в самой первой колонке не проставлена. Такая структура данных позволила отказаться от избыточных записей типа "Месяц - Предыдущие показания - Текущие показания". Мной использована более простая и надёжная структура "Дата - Показания". Таким образом, "Картина расчётов" показывает всю историю взаимоотношений потребителя и абонента (клиента) - установку и снятие Аппарата Учёта (счётчик/по среднему), назначение льгот, потребления и оплаты и т.д. Самое главное - в любой момент постояно можно видеть картину изменения долга потребителя, то есть легко вычисляется кто есть кто - "злостный" задолженник или честный плательщик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 03:44:08 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Привет. Ты из какого Энерго? Я собираю такие где используют IB/FB. В нашем полку г. Владимир, г. Cаратов, вполне возможно г. Тамбов. авторПотребление расчитывается очень просто, как разница текущих и предыдущих показаний. Тебе повезло, либо у тебя абоненты дисциплинированные как немцы и аккуратно указывают показания счётчика, либо твоё Энерго уже перешло на технологию выставления счетов, когда за абонента показания указывают обходчики. А мои могут вообще никаких показаний не указывать, только сумму. Либо указывают, но мне пришлось создать такую математику, которая перед вставкой в таблицу анализирует какое из них начальное, а какое конечное. "Крышу сносит неспеша" В общем я пришёл к выводу, что такая сортировка похожа на обработку деревовидной структуры. Начальное показание это ID, конечное - ID_PARENT. Обработка "дырок", когда квитанция потеряна, это доп. условия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2004, 08:44:06 |
|
||
|
Сортировка (с конца одного поля на начало другого)
|
|||
|---|---|---|---|
|
#18+
Привет! ZmeisheТы из какого Энерго? Я собираю такие где используют IB/FB. В нашем полку г. Владимир, г. Cаратов, вполне возможно г. Тамбов. г. Петропавловск-Камчатский Zmeishe авторПотребление расчитывается очень просто, как разница текущих и предыдущих показаний. Тебе повезло, либо у тебя абоненты дисциплинированные как немцы и аккуратно указывают показания счётчика, либо твоё Энерго уже перешло на технологию выставления счетов, когда за абонента показания указывают обходчики. У нас показания снимают контролеры, т.к. основная масса счётчиков находятся вне квартир, на лестничных площадках. Те потребители, у кого счётчик внутри квартиры, сами приносят показания. Периодически их проверяют контролеры. ZmeisheА мои могут вообще никаких показаний не указывать, только сумму. Либо указывают, но мне пришлось создать такую математику, которая перед вставкой в таблицу анализирует какое из них начальное, а какое конечное. Нужно просто приучить потребителей, что каждый месяц, с немецкой точностью :-) к ним в почтовый ящик падает квиток с расчетом - потребление, стоимость, оплачено за период, итого к оплате. И они наглядно видят, как с каждым месяцем у них в квитках накапливается/уменьшается долг. Так что у нас потребители могут платить любую сумму - хоть несколько раз в день приносить по 100 рублей, хоть один раз в год заплатить 10 тысяч, это непринципиально. Я думаю, что такие проблемы, как у тебя надо решать не программными средствами, а организационными, т.е. выстраивать работу с абонентами по определённым правилам. Например, так: в договоре указывается, что если у потребителя квартирный счётчик, то ему назначается некое потребление по среднему. Если абонент не предоставил в отдел сбыта к определённому числу показания своего счётчика, то за этот период ему начисляется потребление, установленное по договору. То есть абонент может пол-года не появляться в отделе сбыта, а потребление ему всё равно начисляется. Нужно приучать к порядку! 8-) Zmeishe"Крышу сносит неспеша" В общем я пришёл к выводу, что такая сортировка похожа на обработку деревовидной структуры. Начальное показание это ID, конечное - ID_PARENT. Обработка "дырок", когда квитанция потеряна, это доп. условия. Чем сложнее логика, тем больше вероятности появления хитрой ошибки. У меня всё гораздо проще, логика чисто линейная. Если по какой-либо причине пропущена запись потребления, то абонент не получит квитанцию с расчётом, а на следующий месяц ему придёт квитанция, в которой автоматически накопилось потребление уже за два месяца (Операторы делают круглые глаза и уверяют клиента, что он сам должен следить за сохранностью своего почтового ящика :) ). И вообще, я принципиально стою на позиции "в БД вносятся только фактические данные". То есть в программе абсолютно не должно допускаться никаких догадок и остроумных "обратных" расчётов, типа вычисления показаний счетчика по внесённой сумме оплаты... Логика должна быть железная и только однонаправленная: Очередные показания аппарата учёта => Вычисление потребления => Вычисление стоимости потреблённой энегрии => Отнять льготы/Добавить долги => Итого к оплате Иначе это будет не производство, а бардак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 00:18:14 |
|
||
|
|

start [/forum/search_topic.php?author=CrazyGooD&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 1191ms |
| total: | 1499ms |

| 0 / 0 |
