snipe-it/app/Models/SnipeModel.php
Daniel Meltzer 44683c784f Importer: Add License Importer and refactor (#3143)
* 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.
2017-01-10 16:19:18 -08:00

86 lines
1.8 KiB
PHP

<?php
namespace App\Models;
use App\Helpers\Helper;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
class SnipeModel extends Model
{
// Setters that are appropriate across multiple models.
public function setPurchaseDateAttribute($value)
{
if ($value == '') {
$value = null;
}
$this->attributes['purchase_date'] = $value;
return;
}
/**
* @param $value
*/
public function setPurchaseCostAttribute($value)
{
$value = Helper::ParseFloat($value);
if ($value == '0.0') {
$value = null;
}
$this->attributes['purchase_cost'] = $value;
return;
}
public function setLocationIdAttribute($value)
{
if ($value == '') {
$value = null;
}
$this->attributes['location_id'] = $value;
return;
}
public function setCategoryIdAttribute($value)
{
if ($value == '') {
$value = null;
}
$this->attributes['category_id'] = $value;
// dd($this->attributes);
return;
}
public function setSupplierIdAttribute($value)
{
if ($value == '') {
$value = null;
}
$this->attributes['supplier_id'] = $value;
return;
}
public function setDepreciationIdAttribute($value)
{
if ($value == '') {
$value = null;
}
$this->attributes['depreciation_id'] = $value;
return;
}
public function setManufacturerIdAttribute($value)
{
if ($value == '') {
$value = null;
}
$this->attributes['manufacturer_id'] = $value;
return;
}
//
public function getDisplayNameAttribute()
{
return $this->name;
}
}