* Major code simplification of the importers.
Move towards using Model::fill and Model::update rather than reinventing
the wheel. This makes the updating/creating logic a lot clearer, and
allows for the deletion of a lot of code. Also allows for supporting of
more fields in the future really easily.
* Cleanup constructors and use setters instead.
* Set the LC_MONETARY locale, and use it to strip currency symbols in Helper::parseFloat()
* Move licenseseat creation/deletion logic into an event handler on the model rather than the controller.
* Move the logging of parsed values to array_smart_fetch rather than writing it out everywhere
* Move to storing dates as carbon rather than strings. Allows for the parsing of more arbitrary strings from the importer
* Add a license importer with support for checking out to users or assets.
* Make a directory for sample/mock import csvs and populate it
* Adjust how we store/retrieve dates to fix some issues the tests found.
* Importer fix: we were trimming the wrong part of the classname when creating a category. This led to categories not being recognized.
* Add a component importer. Uses same fields as consumable importer. Only trick: If an asset_tag is present, we checkout a component to that asset on import
Enable component importer. Also calculate the importer classname in a cleaner fashion.
* Fix comparisons. find can return an index of 0, which is falsy.
* Update composer phpcs
* Minor Fixes found while working.
ALlow user_id to be nullable in category model validation
Point to the correct route in accessoriespresenter datatable. Also add name() method
Add a translated category name
Fix typo in translation
* Add a method to the asset presenter to show deployed when asset is deployed. Fixes#3114
* Set user if asset is checked out to user. fixes email problems.
* Use sometimes validation to ignore this when no values are present.
* Move Actionlog details to a presenter and port the activity table to use it. Still need to port other parts of the application, but this consolidates a lot of logic.
* Attempt test fix
* Port users,licenses, and assets view to use the presenter to generate table values.