</a>
<h1 align="center">Yii 2 Basic Project Template</h1>
<br>
+ Yii 2 Basic Project Template is a skeleton [Yii 2](http://www.yiiframework.com/) application best for rapidly creating small projects.
</p>
+<h1 align="center">Инвентаризация</h1>
+
<h1>ВНИМАНИЕ!</h1>
<p>Перед использованием, необходимо внести изменения в файлы:</p>
<ul>
<li><code>/config/web.php</code> - указать cookieValidationKey 32 символа.
</ul>
+Предыстория
+-----------
-Yii 2 Basic Project Template is a skeleton [Yii 2](http://www.yiiframework.com/) application best for
-rapidly creating small projects.
-
-The template contains the basic features including user login/logout and a contact page.
-It includes all commonly used configurations that would allow you to focus on adding new
-features to your application.
-
-[![Latest Stable Version](https://img.shields.io/packagist/v/yiisoft/yii2-app-basic.svg)](https://packagist.org/packages/yiisoft/yii2-app-basic)
-[![Total Downloads](https://img.shields.io/packagist/dt/yiisoft/yii2-app-basic.svg)](https://packagist.org/packages/yiisoft/yii2-app-basic)
-[![Build Status](https://travis-ci.com/yiisoft/yii2-app-basic.svg?branch=master)](https://travis-ci.com/yiisoft/yii2-app-basic)
-
-DIRECTORY STRUCTURE
--------------------
-
- assets/ contains assets definition
- commands/ contains console commands (controllers)
- config/ contains application configurations
- controllers/ contains Web controller classes
- mail/ contains view files for e-mails
- models/ contains model classes
- runtime/ contains files generated during runtime
- tests/ contains various tests for the basic application
- vendor/ contains dependent 3rd-party packages
- views/ contains view files for the Web application
- web/ contains the entry script and Web resources
-
-
-
-REQUIREMENTS
-------------
-
-The minimum requirement by this project template that your Web server supports PHP 5.6.0.
-
-
-INSTALLATION
-------------
-
-### Install via Composer
-
-If you do not have [Composer](http://getcomposer.org/), you may install it by following the instructions
-at [getcomposer.org](http://getcomposer.org/doc/00-intro.md#installation-nix).
-
-You can then install this project template using the following command:
-
-~~~
-composer create-project --prefer-dist yiisoft/yii2-app-basic basic
-~~~
-
-Now you should be able to access the application through the following URL, assuming `basic` is the directory
-directly under the Web root.
-
-~~~
-http://localhost/basic/web/
-~~~
-
-### Install from an Archive File
-
-Extract the archive file downloaded from [yiiframework.com](http://www.yiiframework.com/download/) to
-a directory named `basic` that is directly under the Web root.
-
-Set cookie validation key in `config/web.php` file to some random secret string:
-
-```php
-'request' => [
- // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
- 'cookieValidationKey' => '<secret random string goes here>',
-],
-```
-
-You can then access the application through the following URL:
-
-~~~
-http://localhost/basic/web/
-~~~
-
-
-### Install with Docker
-
-Update your vendor packages
-
- docker-compose run --rm php composer update --prefer-dist
-
-Run the installation triggers (creating cookie validation code)
-
- docker-compose run --rm php composer install
-
-Start the container
-
- docker-compose up -d
-
-You can then access the application through the following URL:
-
- http://127.0.0.1:8000
-
-**NOTES:**
-- Minimum required Docker engine version `17.04` for development (see [Performance tuning for volume mounts](https://docs.docker.com/docker-for-mac/osxfs-caching/))
-- The default configuration uses a host-volume in your home directory `.docker-composer` for composer caches
-
-
-CONFIGURATION
--------------
-
-### Database
-
-Edit the file `config/db.php` with real data, for example:
-
-```php
-return [
- 'class' => 'yii\db\Connection',
- 'dsn' => 'mysql:host=localhost;dbname=yii2basic',
- 'username' => 'root',
- 'password' => '1234',
- 'charset' => 'utf8',
-];
-```
-
-**NOTES:**
-- Yii won't create the database for you, this has to be done manually before you can access it.
-- Check and edit the other files in the `config/` directory to customize your application as required.
-- Refer to the README in the `tests` directory for information specific to basic application tests.
-
-
-TESTING
--------
-
-Tests are located in `tests` directory. They are developed with [Codeception PHP Testing Framework](http://codeception.com/).
-By default there are 3 test suites:
-
-- `unit`
-- `functional`
-- `acceptance`
-
-Tests can be executed by running
-
-```
-vendor/bin/codecept run
-```
-
-The command above will execute unit and functional tests. Unit tests are testing the system components, while functional
-tests are for testing user interaction. Acceptance tests are disabled by default as they require additional setup since
-they perform testing in real browser.
-
-
-### Running acceptance tests
-
-To execute acceptance tests do the following:
-
-1. Rename `tests/acceptance.suite.yml.example` to `tests/acceptance.suite.yml` to enable suite configuration
-
-2. Replace `codeception/base` package in `composer.json` with `codeception/codeception` to install full featured
- version of Codeception
-
-3. Update dependencies with Composer
-
- ```
- composer update
- ```
-
-4. Download [Selenium Server](http://www.seleniumhq.org/download/) and launch it:
-
- ```
- java -jar ~/selenium-server-standalone-x.xx.x.jar
- ```
+Работая с 2007 года в разных организациях, в ИТ отделе периодически возникала необходимость оперативно произвести
+инвентаризацию установленного оборудования. Решения от 1С это здорово, но именно бухгалтеры и требовали
+удостовериться в том, что оборудование находится именно в указанном месте, а не у кого-то дома. К тому же
+1С открывать в кадом кабинете или хлдить с бумажкой и чекрыжить позиции здорово, но не эффективно.
- In case of using Selenium Server 3.0 with Firefox browser since v48 or Google Chrome since v53 you must download [GeckoDriver](https://github.com/mozilla/geckodriver/releases) or [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) and launch Selenium with it:
+Тогда зародилась мысль реализовать более мобильную и более гибкую версию инвентаризации.
+Что должна выполнять программа:
+1. Учитывать оборудование по типам, моделям, серийным номерам, сетевым именам (если возможно), MAC и т.п., состоянию
+2. Учитывать месторасположения оборудования как в подразделении, так и в различныых подразделениях/филиалах.
+3. Учитывать перемещения и изменение состояния оборудования
- ```
- # for Firefox
- java -jar -Dwebdriver.gecko.driver=~/geckodriver ~/selenium-server-standalone-3.xx.x.jar
-
- # for Google Chrome
- java -jar -Dwebdriver.chrome.driver=~/chromedriver ~/selenium-server-standalone-3.xx.x.jar
- ```
-
- As an alternative way you can use already configured Docker container with older versions of Selenium and Firefox:
-
- ```
- docker run --net=host selenium/standalone-firefox:2.53.0
- ```
+Программа много раз начинала писаться с нуля, так как при переходе из одной организации в другую, исходники
+оставались на старой работе. Порой из-за более насущных задач системного администрирования, приходилось откладывать
+разработку в долгий ящик и всё забывалось. Все эти пертурбации достали и я решил использовать систему контроля
+версий на внешнем сервере GihHub/GitLab, где сейчас всё это расположено.
-5. (Optional) Create `yii2_basic_tests` database and update it by applying migrations if you have them.
+За основу взят фреймворк Yii2 Basic, о чём и указано в начале этого файла.
- ```
- tests/bin/yii migrate
- ```
+Для установки достаточно установить Yii 2 на сервер, например, по [этому руководству] (https://www.yiiframework.com/doc/guide/2.0/ru/start-installation), далее
+используя механизм git, клонировать этот проект, внести необходимые коррективы учитывающие специфику работы на
+сервере и пользоваться.
- The database configuration can be found at `config/test_db.php`.
+git clone https://github.com/DimkaInc/invent.git
+или
+git clone https://gitlab.com/DimkaInc/invent.git
+Для начала использования необходимо внести правки в файлы:
-6. Start web server:
+./config/params.php, изменив электронную почту на нужную для отправки уведомлений
+./config/db.php, изменив доступ к серверу БД и название БД
- ```
- tests/bin/yii serve
- ```
+Затем выполнить следующие команды:
-7. Now you can run all available tests
+./yii migrate/up
+./yii migrate --migrationPath=@yii/rbac/migrations
+./yii rbac/init
- ```
- # run all available tests
- vendor/bin/codecept run
+Проект находится в режиме постоянной разработки.
- # run acceptance tests
- vendor/bin/codecept run acceptance
+Если вам не трудно, поддержите мой проект.
+<a href="https://promo-money.ru/quickpay/shop-widget?writer=seller&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82&targets-hint=&default-sum=300&button-text=14&payment-type-choice=on&mobile-payment-type-choice=on&hint=&successURL=https%3A%2F%2Fgithub.com%2FDimkaInc&quickpay=shop&account=41001153778587" target="blank">Поддержать проект</a>
- # run only unit and functional tests
- vendor/bin/codecept run unit,functional
- ```
-### Code coverage support
+История версий
+--------------
-By default, code coverage is disabled in `codeception.yml` configuration file, you should uncomment needed rows to be able
-to collect code coverage. You can run your tests and collect coverage with the following command:
+1.28 Внесены изменеия в способ авторизации пользователей. Теперь пользователи хранятся в базе данных. Добавлен
+контроль доступа на основе ролей (RBAC).
-```
-#collect coverage for all tests
-vendor/bin/codecept run -- --coverage-html --coverage-xml
+1.27 Добавлена возможность начать инвентаризацию из списка предметов/оборудования. Добавлена цветовая пометка
+списанного, инвентаризированного и не инвентаризированного оборудования. Добавлена форма инвентаризанции с
+отображением фильтрации по региону/подразделению и местам размещения. Включена возможность считывания QR-кода
+с последующим учётом как проинвентаризированный предмет/оборудование.
+В программе используется плагин html5-qrcode.
-#collect coverage only for unit tests
-vendor/bin/codecept run unit -- --coverage-html --coverage-xml
+1.26 Расширен функционал. Появилась возможность создавть PDF файл с QR-кодами, содержащими инвентарный и серийный
+номера как для всех предметов/оборудования, так и для выбранных. Формирование доступно из списка предметов/
+оборудования путём нажатия кнопки "Печать этикеток", а так же путём отметки строк для печати и нажатия на иконку
+принтера в одной из строк с предметом/оборудованием.
+В программе используется плагин kartik-v/yii2-mpdf.
-#collect coverage for unit and functional tests
-vendor/bin/codecept run functional,unit -- --coverage-html --coverage-xml
-```
+1.25 Добавлен учёт перемещений оборудования и систояний. Для каждой записи перемещений сделано безразмерное
+поле комментариев. Подправлены баги реализации связей в программе. Исключена возможность удаления самой
+первой записи перемещений для каждого оборудования.
-You can see code coverage output under the `tests/_output` directory.
+0.01-1.24 Производится учёт оборудования по типам, сетевым именам, моделям, операционной системе, MAC адресам, серийному
+и инвентарному номерам, коду оборудования, номеру модели, размещению, состоянию, дате записи и комментариям для
+дополнительной информации. На стартовой странице формируются сводные таблицы учитываемого оборудования по
+подразделениям и типам.