Pull to refresh

Модуль Drupal 7. Передача показаний приборов учета

Reading time2 min
Views13K
Предлагаю ознакомиться с модулем Transfer meter readings. Этот модуль узко специализированный и большинству читателей, возможно, будет неинтересен. Модуль позволяет жителю многоквартирного дома передавать показания индивидуальных приборов учета в удобной форме на сайте управляющей организации, а управляющей организации в полуавтоматическом режиме обрабатывать эти данные.



Форма выбора адреса



Пользовательская часть


Сначала жителю предлагается заполнить адрес и номер лицевого счета. При правильном соответствии адреса и лицевого счета пользователь переходит на форму ввода показаний:


Если по одному из счетчиков новые показания не были указаны, снова появится форма, но при этом ранее введенные значения уже не будут доступны для редактирования:


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


Административная часть




У администратора есть возможность:
  1. Настроить формат импортируемого файла (файл с основными данными):
    • Последовательность соответствий полей в базе данных и в файле;
    • Указать разделители полей, символы экранирования и т.д.;
  2. Настроить формат экспортируемого файла(с переданными показаниями);
  3. Разблокировать или заблокировать любое введенное показание счетчика;


Список обязательных полей, которые должны присутствовать в файле с основными данными:


Хочу обратить внимание, что поля «обязательные» не для галочки, если одно из полей будет недоступно или пустым, то строка с этим полем не попадет в таблицу с общими данными. Пример как должен выглядеть правильный файл с основными данными(для импорта):
"2014-05-01";"7200008701";"1";"ул. Циолковского ";"12345";"5";"7";"Петров Иван Сидорович";1;8702;"Водомер ХВ";25
"2014-05-01";"7200008701";"1";"ул. Циолковского ";"12345";"5";"7";"Петров Иван Сидорович";2;8703;"Водомер ГВ";10

Учитывайте, что для каждого счетчика должна быть отдельная строка с данными об адресе, месяцем учета, номером ЛС.
В месяце учета важны только месяц и год, день может быть любой(в пределах месяца). Например, значение «2014-05-12» вполне подходит.

Импорт/экспорт

На данный момент импорт и экспорт данных проходит только через текстовые файлы с разделителями. Экспорт показаний счетчиков производится в формате CSV. Для импорта подойдет любой текстовый файл с разделителями.

Алгоритм работы

  • Внесенные показания блокируются для изменения пользователями. Код блокировки 1;
  • По умолчанию экспортируются показания с кодом блокировки 1;
  • После экспорта показания помечаются как «выгруженные». Код блокировки 2;


Модуль находится под лицензией BSD.
Исходный код можно посмотреть на GitHub. На Drupal.org опубликую в песочнице в ближайшее время.

Приму любые замечания по коду и переводу модуля.

Спасибо за внимание.

UPD 1 от 03 сент. 2014 02:40
В hook_permission() была ошибка из-за чего у пользователей не было доступа к форме. Если вдруг уже установили себе потестить, нужно обновиться.

UPD 2 от 20.03.2015
Version 1.0.2
Tags:
Hubs:
+10
Comments43

Articles