Учет оргтехники в организации v 3.х 2013-2017 (работа в браузере) (Завершено)
Внимание! Проект более не развивается.
Скачать последнюю версию: здесь
GIT репозитарий: здесь
DEMO сайт :<проект заброшен и завершен>Вход: test/test База обнуляется раз в час.
Wiki проекта: <проект заброшен и завершен>
Попросить помочь: <проект заброшен и завершен>
Содержание
- Общие сведения
- Лицензионное соглашение
- Материальное стимулирование
- Установка
- Обновление
- Настройка
- Первоначальное заполнение справочников
- Журнал «Имущество»
- Размещение ТМЦ на карте
- Новости
- Бизнес процессы
- Удаление объектов
- Разработчикам
Общие сведения
Данное ПО, в версии 3.xx, предназначено для учета оргтехники в небольших организациях и будет полезно в основном системным администраторам и иже с ними, ведущими учет без фанатизма. Основные особенности:
- установка программы на сервере LAMP и WAMP
- работа в программе через браузер (WEB интерфейс)
- поддержка работы с несколькими организациями одновременно
- поддержка основных действий с ТМЦ, как то оприходование, перемещение, ремонт и списание ТМЦ. Привязка ТМЦ к помещению с оповещением сотрудников об изменении состава ТМЦ в помещении.
- возможность формирования различного вида отчетности
- расположение ТМЦ на карте-схеме помещений
- возможность печати штрихкодов
- модульность системы, что подразумевает возможность написания собственных модулей расширения. Модули в «базе»: учет ТМЦ, Бизнес-процессы, вход-выход работников через турникет Орион, новости, контрагенты.
- открытый исходный код и возможность подключения к репозитарию
Что нового, в отличии от старых версий,:
- убрана поддержка smarty, как усложняющая жизнь разработчику
- более полная совместимость с браузером IE 9+
- подчищен и и во многом улучшен код, убрано множество ошибок
- изменился внешний вид. Движок переведен на BootStrap 3
Лицензионное соглашение
В данный момент это ПО лицензируется и распространяется по принципу «Как есть». Вы можете скачивать, устанавливать, изменять исходные коды и использовать их для любых своих нужд. Если вам необходима поддержка данного ПО на возмездной основе — не откажусь. Т.е. вроде бы всё это подходит под GPLv3
Материальное стимулирование
Несомненно приветствуется. Если вам хочется чтобы были выполнены доработки «под себя» или необходимо разработать дополнительный модуль или вы просто хотите сподвигнуть автора данного ПО для дальнейших подвигов, свяжитесь со мной или киньте денежку по форме ниже. У автора есть два пути обрести душевное спокойствие: материальное благополучие и слава. И то и другое автор очень любит.
А вообще можете обратиться к любому контрибутеру участвующему в разработке — думаю не откажутся помочь. Может быть даже и бесплатно получится, если идея будет интересная.
Установка
Для успешного запуска ПО необходимы установленные Apache 2+,PHP 5+, MySQL 4+. Если вы не знаете что такое LAMP, данное ПО скорее всего вам видимо не подойдет.
Крайне не рекомендую СЕЙЧАС устанавливать данное ПО на «реальном» хостинге, «смотрящем» в интернет. Хотя работать конечно будет…но не долго…ибо «хакеров» сейчас много, а зайцев поди мало.. Я к тому, что на вопрос безопасности никто не тестировал данное ПО. Для локальной сети ,где не слишком много «слишком умных», пойдет, но в интернет выставлять, я бы не стал. Изначально ПО разрабатывалось в качестве корпоративного мини-сайта и ничего более.
P.S. Хотя в последнее время определенные работы по усилению безопасности творения были проведены.
Но это лирика. Как же таки установить сиё «чудо»:
- Скачиваем последнюю версию исходников с https://github.com/donpadlo/webuserog3
- Копируем/распаковываем их в папку с сайтом.
- Устанавливаем права 0777 на папки files,photos,maps
- Создаем БД в MySQL и заливаем в неё дамп webz.sql, из корня сайта
- Открываем config.php, прописываем данные для соединения с БД
- Пробуем запустить.
- Если всё работает, можно тестовые данные удалить и начать вести учет по своей организации
Более подробно по установке можно почитать на странице Wiki
Обновление
Обновления являются каммулятивными — для обновления до последней версии нужен только самый последний релиз. Т.е. скачиваем ПОСЛЕДНЮЮ версию данного ПО. Копируем её 1 в 1 с заменой файлов в каталог где стояла предыдущая версия (за исключениемconfig.php в корне). Выполняем http://имя_или_IP_сайта/update.php Не забудьте после обновления удалить файл update.php
Для любителей «свежатинки» — GIT репозитарий. По крайне мере сейчас (2016 год) там стабильно идут правки, иногда 1-2 раза в день.
Настройка
Все настройки достаточно очевидны. Даже пояснять особо не чего. Находятся в меню Настройка->Настройка системы
Первоначальное заполнение справочников
Для полноценной работы Вам необходимо сначала заполнить справочники. Хотя-бы основные позиции.
Справочник «Список организаций»
В «личном меню» отображается список организаций занесенных в справочник «Список организаций». Выберите в «личном меню» ту организацию, по которой хотите вести учет в настоящий момент. По умолчанию «Журнал имущества», «ТМЦ на карте» и часть других страниц, отображает только информацию которая относится к организации выбранной в текущий момент в «личном меню».
Так-же в справочнике организаций можно к организации прикрепить схему или план организации в формате png, которая будет использована при отображении ТМЦ.
Справочник «Пользователи»
позволяет добавить и отредактировать пользователей, назначить права и пароль. Так-же доступно редактирование «профиля», где можно указать ФИО, должность, табельный номер, а так-же прикрепить «аватарку».
Справочник «Должности организации»
Позволяет сопоставить сотрудника его должности. Данная таблица используется например, при написании собственных «Бизнес-процессов», чтобы абстрагировать участника БП по его должности.
Справочник «Помещения»
Используется для «размещения» сотрудников по «кабинетам». Данный справочник используется например при отображении «ответственности» по сотрудникам в разрезе помещений. При перемещении или поступлении ТМЦ внутри «помещения», «привязанные» сотрудники получают уведомления на электронную почту.
Справочник «Контрагенты»
Здесь можно вести список контрагентов с которыми сотрудничает организация, вести учет заключенных договоров и их электронные копии. В моем случае юридический отдел ведет данный справочник, а бухгалтерская служба, которая не имеет прав доступа в этот справочник, использует другой инструмент, контроля: Инструменты -> Контроль договоров:
Справочник «Производители»
служит для ведения учета ТМЦ в разрезе производителей оборудования
Справочник «Группы ТМЦ»
Позволяет вести учет в разрезе «групп». Так-же каждой «группе» можно задать какие-то характеристики. Например группе «Системные блоки», характеристики «Размер памяти», «Жесткий диск» и т.п.
Справочник «Номенклатура»
Позволяет собственно вести учет ТМВ в разрезе наименований ТМЦ.
Журнал «Имущество»
Находится в меню Журналы -> Имущество
Фактически это реестр всех ТМЦ которые в настоящий момент числятся (или не числятся) на балансе в организации. Вы можете здесь накладывать фильтры по «Помещению» и «Группе», а так-же искать по всем остальным полям. Например, мы хотим посмотреть какие мониторы у нас в отеле АСУ:
При выборе мышкой какой то позиции ТМЦ отображается информация о перемещениях ТМЦ и фото (если есть):
Внизу таблицы доступно ряд пиктограмм: поступление ТМЦ, редактирование ТМЦ, перемещение ТМЦ, передача в ремонт, вывод штрихкодов, вывод отчетов и выгрузка в xml. Рассмотрим каждую операцию:
Поступление ТМЦ
Заполнение блоков «Куда» и что «Что», достаточно очевидно. «Имя по бухгалтерии» введено мною в виду того что в нашей 1С ТМЦ обозваны бухгалтерами не пойми как. Например «Сист.блк.вкмпл.м» — понимай как хочешь. А так — при инвентаризациях имеем полное понимание что имеет ввиду бухгалтер и что у нас там на самом деле.
При сохранении документа, сотрудникам которые находятся в помещении куда оприходуется ТМЦ высылается уведомление.
Редактирование ТМЦ
все очевидно
Перемещение ТМЦ
Указываем куда и зачем в комментариях. Сотрудникам находящимся в помещении откуда перемещают ТМЦ и куда перемещают ТМЦ высылается уведомление на почту.
Ремонт ТМЦ
Любое ТМЦ мы можем «отправить в ремонт». ТМЦ находящееся в «ремонте», в журнале отображается восклицательным знаком. Если ТМЦ пришло из ремонта, снова нажимаем «Отправить в ремонт» и изменяем статус на «сделано», предварительно занеся стоимость ремонта:
Вывод штрихкодов
В программе имеется возможность распечатать штрихкоды-наклейки на ТМЦ. Для этого нужно выбрать ТМЦ:
и нажать «Вывод штрихкодов»:
Далее можно распечатать штрихкоды, выстричь и наклеить на ТМЦ. Так можно легко идентифицировать ваше ТМЦ, если вдруг «потеряетесь».
Отчеты
Позволяют сформировать печатные формы наличия ТМЦ, например для проведения инвентаризаций:
или можно сформировать печатную форму журнала имущества
Вывод в xml
Позволяет выгрузить в файл xml содержимое реестра. У меня например далее этот файл загружается обработкой в 1С, и далее сравнивает автоматически данные по «бухучету» с тем что «реально», соотвественно выплевывая сообщения о расхождениях учета.
ТМЦ «на моем рабочем месте»
В журнал «Имущество» имеют доступ только «администраторы». Но ведь и пользователи хотят знать, что за ТМЦ «числится на их отвественности» по помещению например. Для этого есть раздел Инструменты -> ТМЦ на моем рабочем месте:
Размещение ТМЦ на карте
Данный раздел позволяет отображать ТМЦ на «карте», а так-же управляет его местоположением:
Карта в формате png должна быть предварительно загружена через справочник «Организации».
Новости
В меню Журналы -> Новости вы можете добавлять последние новости или объявления по организации. В случае если новость «закреплена», то она будет отображаться постоянно в среднем столбике на главной странице.
Бизнес-процессы
Будут в основном полезны тем, кто хочет алгоритмизировать часть действий сотрудников. Например у меня БП используются при начислении отпускных (при обнаружении в 1С что какой-то сотрудник скоро уходит в отпуск, создается БП сотруднику по начислению ЗП, «Расчитать и выплатить отпускные»), минуса на складе (при обнаружении в 1С «минусов», создается БП по устранению «минуса»), БРАК (при обнаружении в 1С документа по сертификации со статусом «отказано», создается БП «Брак», где последовательно выпадают задачи на сотрудников, с уточняющими вопросами, на основе ответов на которые, принимается решение «А что же делать?»:
Алгоритмы действий расписаны в xml файлах в папке modules/bp. Туда-же вы можете размещать собственные БП. Автоматизацию старта БП можно посмотреть в папке jobs. Подробное описание логики работы Бизнес процессов довольно объемное, потому опишу его реализацию лучше, если будет заинтересованность со стороны сообщества.
Удаление объектов
В программе реализована 1С подобная система удаления записей в критически важных таблицах. Т.е. общий алгоритм удаления следующий: помечаем на удаление запись, а потом посредством меню Настройка-Удаление обьектов, производим попытку непосредственно физического удаления. В случае если удаляемый обьект не имеет зависимостей, он будет удален.
В противном случае будет выдано уведомление с указанием в какой таблице есть ссылка на удаляемую запись.
Например: не возможно удалить сотрудника из справочника сотрудников, если на нем числится какое-то ТМЦ. Для того чтобы операция удаления прошла успешно, необходимо переместить ТМЦ на другого человека.
Разработчикам
Разработка модулей и доработка данного ПО приветствуется. Уровень «вхождения» весьма низок, т.к. движек чрезвычайно прост и логичен, а так-же снабжен большим количеством комментариев. Рассмотрим основную логику.
Сначала запускается файл index.php, откуда сначала подзагружаются сначала настройки из config.php, затем все необходимые классы и функции. Далее загружается include_once(«inc/login.php») ответственный за проверку регистрации пользователя. После чего мы имеем следующие проинициализированные глобальные классы-переменные:
$cfg — класс- хранилище настроек. Методы и переменные описаны в classes/cfg.php
$sqlcn — класс работы с mysql. Методы и переменные описаны в classes/sql.php
$user — класс работы с пользователями. По умолчанию содержит данные о текущем «золигинившемся» пользователе. Если пользователь не «зашел», тогда $user-mode=»». Методы и переменные описаны в classes/users.php
$err — массив сообщений об ошибках. Если что-то в массиве есть, то ошибка выведется на экран пользователю.
1 |
$err[]="Пользователь с таким логином найден в АД, но не найден в базе!"; |
$ok — массив сообщений об успешных действиях. Если что-то в массиве есть, то сообщение выведется на экран пользователю.
Далее, загружаются и автоматически выполняются все файлы с расширением php из каталога autorun
Далее, если задана переменная content_page в адресной строке, например http://10.80.16.19/webuseorg3/index.php?content_page=bp, то загружается сначала файл modules/$content_page, а затем client/view/themes/текущая_тема/index.php, в котором в свою очередь, есть нечто подобное:
1 2 3 4 5 6 7 |
include_once("header.php"); // заголовок include_once("menus.php"); // главное меню include_once("messagebar.php"); // отображение сообщений пользователю (если есть) include_once("controller/client/themes/$cfg->theme/$content_page.php"); include_once("footer.php"); // подвал страницы |
Поподробнее расскажу о «модульности» системы. Во первых есть загружаемый по умолчанию класс classes/md.php, который позволяет нам работать с «модулями». Основной его функционал — это «регистрация» модуля и «проверка», включен модуль или нет. Это реализовано следующими функциями:
1 2 3 4 5 6 7 8 9 10 11 12 |
md=new Tmod; // обьявляем переменную для работы с классом модуля // регистрируем модуль. Если он уже зарегистрирован, то повторно он не зарегистрируется // по умолчанию зарегистрированный модуль выключен // включить его можно из меню настроек $md->Register("worktime", "Вход и выход работников организации (турникет Орион)", "Грибов Павел"); $md->Register("workandplans", "Оперативная обстановка на заводе", "Грибов Павел"); // Хотя можно его "включить и принудительно //$md->Activate("ping") if ($md->IsActive("workandplans")==1) { //если модуль активен, то что-то делаем } |
Как включить разработанный модуль в «меню»? Тоже все просто. В папке modules/menu создаем папку например newmenu и файл newmenu.php . При от рисовке меню, будет подгружена информация из этого файла. За образец содержания можно взять любой из имеющихся уже файлов.
Добрый день! Очень удобный учет, простой и незамысловатый. Единственный вопрос возник с выводом ТС которые уже вернулись из ремонта.
«Если ТМЦ пришло из ремонта, снова нажимаем «Отправить в ремонт» и изменяем статус на «сделано», предварительно занеся стоимость ремонта»
После данных действий, я нигде не смог найти информацию о ТМЦ вышедших из ремонта,. В предыдущей версии был реестр учета ТМЦ в ремонте, возможно ли в этой версии это сделать?
Добрый!
Если только чуть попозже. Сейчас интенсивность доработки снижена, т.к. других дел навалилось. Или сами попробуйте реализовать, в релиз 3.01 включим ваш код.
Отличная программа Павел! А Как насчет паспортов на рабочую станцию? И список установленных программ?
Доброе!
1) Список установленных программ (например лицензионных)- если очень нужно — можно заполнять в параметрах ТМЦ. ДЛя остальных случаев — не вижу вообще никакого смысла.
2) Паспорта — планирую внедрить прикрепление файлов к ТМЦ. Например можно будет прикреплять сканы
Упс. Кстати да, совсем не корректно работает сей блок, редко использую эту часть, проморгал. На днях посмотрю.
Буду очень признателен, если можно будет что-то сделать.
Второй день пробую прикрутить что-нибудь, но из-за нехватки знаний в этом, едва ли что-то получится.
Передeлал ремонты. Пока утащить можно с SVN: https://sourceforge.net/p/webuseorg3/code/HEAD/tarball?path=/webuseorg3
Спасибо! Очень здорово теперь! Единственное, общий отчет о всех ТМЦ уже прошедших ремонт (не только в ремонте на данный момент), как было в предыдущей версии, так и не вывести.
Очень удобный учет. Кое что сделал под себя)) Но не могу разобраться как сделать удаление прикрепленных фалов в справочнике контрагентов. Чтоб файл удалялся не только с mysql но и с сервера. Сможете в этом помочь?
Добрый день! Да как-то даже и в мыслях не было удалять физически файл. Жесткие диски нонче большие, а несомненным плюсом будет таки хранение всего что когда либо «заливалось», на «всякий случай»…
выдает ошибку «браузер устарел»
пробовал на свежих личкрафтах и firefox 24.5
как починить?
Скачайте с svn свежую версию. Там пофиксено. http://sourceforge.net/p/webuseorg3/code/HEAD/tree/
При добавлении имущества выдает ошибку:
Unknown column ‘kntid’ in ‘field list’
С чем это может быть связано?
А попробуйте запустить update.php , возможно таблица не создалась..
А в справочник контрагентов кого-то занесли уже?
Да, спасибо, помогло.)
Здравствуйте! Очень простой учет! Без всяких лишних плюшек! :). ПО очень понравилось. А в дальнейшем планируется обновления?
Добрый!
Пока функционал «устаканен». Ошибок вроде особых нет. Активно разрабатываются модули для взаимодействия с LanBilling + работа с шейперами + работа с устройствами по snmp, но пока в «стол», т.к. это узкоспецаилизированные модули и не нужны в основном функционале.
Добрый вечер, Павел! Не могли бы Вы выложить пример строки, которую нужно прописать в поле «сервер LDAP:»
Заранее спасибо.
У меня это был просто IP адрес сервера AD Windows 2008
Здравствуйте!
Классная программа, если бы реализовать еще и helpdesk для подачи заявок… цены бы не было…
Знаний такое реализовать не хватит… остается только ждать.
Здравия и благословений!
Начал установку. Делаю импорт БД webuseorg empty.sql — выдает ошибку:
CREATE TABLE IF NOT EXISTS
bp_accept
(id
int( 11 ) NOT NULL AUTO_INCREMENT ,userid
int( 11 ) NOT NULL ,title
varchar( 200 ) COLLATE utf8_unicode_ci NOT NULL ,bodytxt
text COLLATE utf8_unicode_ci NOT NULL ,status
int( 11 ) NOT NULL ,dt
datetime NOT NULL ,randomid
varchar( 200 ) COLLATE utf8_unicode_ci NOT NULL ,PRIMARY KEY (
id
)) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT =574;
Ответ MySQL: Документация
#1064 — You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘COLLATE utf8_unicode_ci NOT NULL,
bodytxt
text COLLATE utf8Версия MySQL 4.0.17-nt. Кодировка на сервере win1251. Думаю, что проблема в кодировке. Подскажите, плиз, как корректно перевести SQL-скрипт в win1251?
Ой.. Какая старая MySQL.. Нет возможности обновить? Думаю что дело в этом..
Если нет, так видимо нужно вче что связано с utf8 заменить на win1251
Проблему решил ориентируясь на сообщения об ошибках при импорте. Чтобы импорт прошел нормально, нужно сделать следующее:
1) закомментировать 2 строки в начальной части скрипта
— SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»;
— SET time_zone = «+00:00»;
2) удалить из скрипта следующее:
COLLATE=utf8_unicode_ci
COLLATE=utf8mb4_unicode_ci
DEFAULT CHARSET=utf8
DEFAULT CHARSET=utf8mb4
3) удалить DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
4) заменить где встречается CHARACTER SET utf8 на CHARACTER SET cp1251;
5) заменить varchar(500) на varchar(255);
6) заменить varchar(1000) на varchar(255);
7) заменить ENGINE= на TYPE=
Но после успешного импорта скрипта (config.php тоже настроен) при попытке запуска index.php сервер выдает полностью пустую страницу. Похоже придется дополнительно устанавливать современный WAMP.
Извиняюсь заранее, может я не так понимаю, НО… «В папку с сайтом копировать и распаковать» — с каким сайтом? Просто html файл?
Обычно в апаче и на диске создается некая папка где лежит собственно содержимое сайта. Туда и нужно скопировать
Спасибо за ответ! Все запустилось, и теперь возник вопрос-логин и пароль админа где найти? Все файлы пересмотрела,так и не попалось на глаза.Заранее спасибо!
Нашла! Все перед глазами оказалось
Обращайтесь ежели что 🙂
Как настроить интеграцию с AD
Добрый день подскажите, как настроить интеграцию с AD
конфиг нужно править или достаточно интерфейса выдает
Fatal error: Call to undefined function ldap_connect() in /var/www/tmc/inc/functions.php on line 48
У вас в php не установлен модуль для работы с ladp
Установил php5-ldap, теперь выдает
Notice: Undefined variable: ldapserver in /var/www/tmc/inc/functions.php on line 48
Если есть возможность, выйдите на меня по скайпу: pvtuning поподробнее глянем
К сожаленью возможности нет такой, подскажите вот что, интеграция полностью настраивается через веб интерфейс? или все таки нужно что то поправлять в конфигах?
и в поле ldap сервер достаточно ip указать например 192.168.1.1 ?
или ldap сервер вида ldaps://192.168.1.1?
хотя странно что он ругается на переменную вроде пока ничего не правил разворачивал на debian 7 amd 64
По идее должно работать.. Единственный опыт интеграции с AD был два года назад.. В том случае хватило указать IP адрес где находилась AD.
Возможно с обновлениями ошибку какую внёс… Нужно смотреть.
Павел выражаю огромное спасибо за ваш труд. Действительно редко найдешь софт не перегруженный всякими не нужными финтифлюшками и со вполне приличным юзалибити. У меня вопрос )). Как можно добавить отчеты ? А то в меню Отчеты кол-во 3 а проваливаешься всего один — «Размещение ТМЦ на карте». И да — как можно отблагодарить финансово ? )
Ну можно на телефон кинуть денежку сколько не жалко 🙂
+79212347594
Отчеты, можно дописать самому. Алгоритм:
1) Создаем пункт меню по образцу в inc/menu
2) Пишем обработчик в /controller/view/themes/
Могу помочь если что… В скайпе pvtuning
У кого нибудь заработала интеграция с AD ?
Выйдите на меня по скайпу pvtuning,вместе попробуем..
Подскажите при экспорте в CSV кодировка русских букв слетает, как поправить?
Добрый!
Возможно вы открываете файл в не верной кодировке? Попробуйте выставить как UTF-8?
Добрый день, как бы я его импортирую из веб интерфейса и он открывается в exel, но русские буквы отображаются крякозяблами. Кодировку менять в exel нужно?
Нету под рукой экселя попробовать.. На сколько помню есть два пути открыть csv utf-8: 1) Открываем Эксель-> вкладка «Данные”»-> «Из текста» 2) Открываем Эксель -> Файл «Открыть», там под кнопкой «открыть» должен быть выбор в какой кодировке.
В либреофисе открывается сразу нормально.
Ну или можно выгрузку поправить чтоб формировало файл в windows-1251