Pull to refresh

Comments 43

Думаю `$arrFileEncode` лучше вынести в функцию. В глобальном пространстве обычно держат только константы.
Да, так будет однозначно лучше. Собирал модуль из нескольких других старых наработок, поэтому кое-где могли остаться, такие вот «детские» куски кода.
Взгляд со стороны пользователя услуг ;)
— Не ясно, за какой месяц передаются показания. Учитывая что управляющие компании принимают показания с 15 по 21-25 число месяца, и попал ли я в этот промежуток, или нет — не понятно.
— Предыдущие показания — тоже не видно, когда были переданы, не помешает указать месяц, а еще лучше — историю показаний за все время.
— Редактирование ошибочно переданных значений так же не предусмотрено, хотя до момента выгрузки (формирования счетов) никто не мешает их изменить
— С авторизацией отдельный вопрос — предполагаю, что номер лицевого счета можно угадать, и устроить соседу веселую жизнь
— Можно передать показания на тысячу кубов израсходованной воды, и по ним будет выставлен счет?

Посмотрите реализацию на pgu.mos.ru — там эти вопросы решены в той и или иной степени

P.S.: Для pgu.mos.ru я писал скрипт автоматизации передачи показаний (вдруг у кого умный дом, или просто консоль привычнее браузера), если у вас была бы возможность неинтерактивной передачи данных (REST), думаю нашлись бы желающие ей воспользоваться

— Не ясно, за какой месяц передаются показания. Учитывая что управляющие компании принимают показания с 15 по 21-25 число месяца, и попал ли я в этот промежуток, или нет — не понятно.

На само деле управляющие организации, хоть везде и пишут, что принимают только в определенный период, готовы принимать их в любой день и час. Это не просто догадки, а реальный взгляд изнутри. За какой месяц передаются показания тоже не важно, потому что человек мог не подавать показания полгода, за какой месяц тогда ему передавать? Чтобы не было из-за этого путаницы сделано так, что пользователю нужно передавать текущее показание.
— Предыдущие показания — тоже не видно, когда были переданы, не помешает указать месяц, а еще лучше — историю показаний за все время.

Тут палка о двух концах, чем больше нужно данных на сайте, тем больше «порог вхождения» для использования модуля. Я старался сделать максимально простой и удобный модуль. Как для пользователя, так и для УК.
— С авторизацией отдельный вопрос — предполагаю, что номер лицевого счета можно угадать, и устроить соседу веселую жизнь
Если номера ЛС идут по-порядку, тогда да, можно. Но кому это сейчас нужно?
Редактирование ошибочно переданных значений так же не предусмотрено, хотя до момента выгрузки (формирования счетов) никто не мешает их изменить
Житель может обратиться в УК, администратор разблокирует эти показания и житель сможет исправить ошибочные данные.
— Можно передать показания на тысячу кубов израсходованной воды, и по ним будет выставлен счет?
Специально на этот случай в настройках можно указать максимально допустимую разницу.
Там нужен уникальный код, поэтому дальше первого шага пройти не смог. А было бы интересно посмотреть.
Уникальный код это ЛС, могу в личку кинуть, но выглядит со стороны пользователя один-в-один
Просто форма ввода показаний самая простая и очевидная, поэтому неудивительно, что кому-то еще пришла идея сделать в таком же виде. И вот видите у вас нужно ввести только номер ЛС и никто особо не задается вопросом о троллях. Значит схема работает вполне удачно, иначе бы обязательно ввели какую-нибудь авторизацию.
Ну если хочешь кому-то поднасрать, то нужно знать его ЛС. А если на рандоме это делать, то смысла не вижу.
Хе хе, у нас в городе тоже система с похожим функционалом и таким же интерфейсом для ввода показаний. Называется «АИС ГОРОД».
Для того чтобы воспользоваться нужно сначала сходить в ЖКО и написать заявление указав свой мобильный номер телефона (это будет впоследствии логином). Там же выдадут 4-хзначный цифровой пароль.
Судя по всему система самописная. За год наблюдений за ней я уже многое повидал — error 500, отсутствие подключения к серверу, баги в UI/верстке… Но видно что систему пилят.

P.S. Перед написанием поста зашел в свой личный кабинет — оказывается появились еще и собственные приложения для IOS/Android
Эх, неготово наше общество к такому… Сам некогда делал нечто подобное, только проще — просто переделенная форма обратной связи, данные после отправки пересылались на специальный e-mail. За пару месяцев, не смотря на объявления на подъездах, ни один человек не воспользовался этой формой — все по старинке бросали бумажки в специальный ящик. Хоть я живу я в маленьком городке, но вменяемым интернетом по оптоволокну и ADSL обеспечены все желающие.

Но если отбросить грустные мысли и предположить, что информационная отсталость — это локальная проблема моей местности, то вопрос:
Если по одному из счетчиков новые показания не были указаны, снова появится форма, но при этом ранее введенные значения уже не будут доступны для редактирования:
А если ошибся? Или сосед-идиот перепутал номер квартиры? Или в соседнем подъезде завелся малолетний тролль? Тут только поход в офис УК со всеми вытекающими. И соответствие номера ЛС и адреса от тролля не спасут — наверняка они идут по порядку номеров квартир. Да и сферический сосед-идиот может ошибиться в двух полях — этим тоже не стоит пренебрегать. Мне кажется здесь необходима авторизация по ЛС и паролю, чтобы подающий показания человек был идентифицирован, а адрес квартиры заполнялся только однажды — при регистрации.
Если ящик в подъезде это одно, а если к этому ящику ехать через полгорода… Но все равно остается старшее поколение которое не пересилишь.

Посмотрите выше по ссылке как у нас в городе, тоже может зайти любой и подать что угодно. Другое дело что до того как вы это написали у меня таких мыслей не было.
А вообще, если подумать, то вся эта передача показаний ИПУ — жуткий каменный век, уже давным давно существуют приборы учета с возможностью дистанционного съема показаний и информационные системы для автоматического приема, обработки и хранения данных о показаниях, но вот финансировать переход на них никто не торопится…
Мне кажется здесь необходима авторизация по ЛС и паролю, чтобы подающий показания человек был идентифицирован

Показания можно передать и по телефону. Как там идентифицировать?
Никак, и это плохо. И через ящик тоже никак, и это тоже плохо.
На самом деле ничего страшного. Если система биллинга грамотная, она ведёт анализ расхода на основе среднемесячного за какой-то период. Если текущий расход не коррелирует с ним, то эти ЛС передаются оператору на проверку. Дальше может быть обзвон/обход проблемных абонентов, либо показания тупо отбрасываются.
Эх, неготово наше общество к такому
Как показывает моя практика, уже готово.
А если ошибся? Или сосед-идиот перепутал номер квартиры?
Только номер квартиры перепутать не получиться, нужно еще перепутать и номер ЛС.
Мне кажется здесь необходима авторизация по ЛС и паролю, чтобы подающий показания человек был идентифицирован, а адрес квартиры заполнялся только однажды — при регистрации.
Пройти первичную авторизацию, тоже иногда проблема. Человеку нужно прийти в УК, написать заявление и ждать ответа. Либо на сайте можно регистрироваться с пре-модерацией, опять же нужны человеческие ресурсы для работы с пользователями на сайте.
Если вы про оформление кода, то вроде оно не хаотичное. Для отступов использую TAB, т.к. в Geany очень удобно убирать/добавлять отступы([TAB]/Shift+[TAB]). В чем именно заключается хаотичность? Я готов исправиться.
У вас везде разное форматирование — где табы, где пробелы их их разные количества. Как пример: github.com/servekon/drupal7-transfer-meter-readings/blob/master/transfer_meter_readings.admin.inc#L50-L52

Совет: почитайте о кодинг стандартах Drupal и используйте для проверки CodeSniffer (или MessDetector). Отчет с ошибками форматирования будет большой.

P.S. Отступы в сорцах Drupal — 2 пробела.
Мдаа. На Github код смотрится ужасно, в Geany всё красиво. Надо будет переделать все на 2 пробела или на все на TAB. Стандарты эти читал, знаю. Я все понимаю, но мне больше нравится использовать ТАБы.
А знаете, с пробелами код тоже смотрится неплохо. Обновил на Github.
Смотрится — это одно. Мне, например, в том же PSR не нравится отступ в 4 пробела, в Drupal — перенос блочных операторов (if — else, try — catch) на новую строку и много других правил… Тут важно понимать, что они были приняты и одобрены тысячами довольно не глупых людей со всего мира не просто так. Если ты используешь какую-то систему, то обязан следовать тем правилам, которые заложены в ее идеологии. Иначе же — должно разрабатываться собственное решение (CMS/CMF/Framework), собственные стандарты и правила.

Хотя есть, правда, еще один выход — контрибьютинг — предложение своих, обоснованных, идей и их реализацию сообществу разработчиков (если open source, как в случае с Drupal).
Для отступов использую TAB, т.к. в Geany очень удобно убирать/добавлять отступы([TAB]/Shift+[TAB]).

С пробелами Geany точно так же умеет работать.
UPD 1 от 03 сент. 2014 02:40
В hook_permission() была ошибка из-за чего у пользователей не было доступа к форме. Если вдруг уже установили себе потестить, нужно обновиться.
Я такое на webform делал.
Конечно возможностей по экспорту меньше, но работает… :)
Всегда хорошо, когда квалификация позволяет сделать хотя бы на WebForm. Подобные модули рассчитаны на персонал, который мало что понимает в «сайтах». Здесь достаточно установить модуль. И без особых телодвижений начать работу.
Наверное, если потоковое решение, то да. У меня разовое было.

ps: Хотя и настройки webform можно через features тиражировать.
Как решается вопрос поверки/замены/просрочки счётчиков?
Есть ли возможность уведомлений пользователя о необходимости поверки с блокировкой ввода показаний и перехода на среднемесячные в соответствии с действующим законодательством?
Эти вопросы ПО в котором вы делаете расчет данных. На сайт вы должны выгружать корректные данные. При импорте старые данные удаляются, кроме показаний, которые передали пользователи, а новые добавляются.
Это-то понятно. Но почему бы не расширить функционал модуля? Хотя бы уведомление (+ настраиваемая блокировка) для пользователя, вводящего данные?
Этот функционал уже относится к полноценной системе биллинга, а там не всё так просто (я с ними без малого 10 лет работаю), а тут просто интерфейс для сбора данных. Хороший, честно говоря, но отследить просрочку ПУ без связи с основной БД не получится.
Разве привязать к счётчику дату окончания действия сложно?
Ещё одно поле в БД и одно ветвление в коде.
Без синхронизации с БД биллинга.
Проще передать тупо абонентов, точнее пометить, у которых заканчивается срок действия, выгрузив их из БД биллинга.
Дело в том, пользователь может передавать показания даже после того, как у него «вышла» дата поверки. Но при расчете эти данные уже не должны учитываться. Если житель увидит, что переданные им данные не учитывается, то он сразу должен будет обратиться в УК. И уже тогда будет уведомлен о том, что ему нужно либо заменить счетчик, либо провести поверку.
Получается не клиент-ориентированная, а УК-ориентированная система. :)
Вы думаете, люди помнят о дате поверки приборов?
Я, как жилец, предпочёл бы уведомление о поверке за месяц, чем получить отказ в приёме показаний по квитанции постфактум.
Опять же — жильцу надо следить, чтобы в квитанции показания совпали с переданными, проблему можно обнаружить не сразу…
Пусть пользователь сможет передать показания, но увидит уведомление о надвигающейся поверке (так сделано в ЛК Мосэнергосбыта).
Так это же простой модуль для передачи показаний, а вы требуете от него функций, которые в него не заложены. Еще раз повторяю, что лучше использовать инструменты по назначению. Информация о поверке счетчика должна печататься на квитанции. Либо, если на сайте используется полноценный ЛК для жителя, то вы можете сделать что угодно. Этот же модуль закрывает потребности узко-специализированной ниши.
Я, как жилец, предпочёл бы уведомление о поверке за месяц, чем получить отказ в приёме показаний по квитанции постфактум.
Вообще-то они печатаются на квитанции заранее, как раз сбытовой компанией, как раз из полноценной системы, где их рассчитывают и формируют.
У нас на квитанции такого нет, видимо существуют разные системы биллинга.
Естественно, в каждом регионе свои. У нас вообще самописная, делали её три с половиной человека (один из них перед вами), обслуживает треть миллиона, со всеми плюшками. Но дальше начались проблемы, которые озвучивать не хочу, если интересно — в лс.
А если заменили счётчик, как обнулить показания, не залезая в БД?
Sign up to leave a comment.

Articles