1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-14 23:22:52 +01:00
invoiceninja/app/Ninja/Import/BaseTransformer.php

220 lines
4.9 KiB
PHP
Raw Normal View History

2015-12-08 11:10:20 +01:00
<?php namespace App\Ninja\Import;
2017-01-15 20:48:31 +01:00
use Carbon;
2015-12-08 11:10:20 +01:00
use Utils;
use DateTime;
use League\Fractal\TransformerAbstract;
/**
* Class BaseTransformer
*/
2015-12-08 11:10:20 +01:00
class BaseTransformer extends TransformerAbstract
{
/**
* @var
*/
2015-12-08 11:10:20 +01:00
protected $maps;
/**
* BaseTransformer constructor.
* @param $maps
*/
2015-12-08 11:10:20 +01:00
public function __construct($maps)
{
$this->maps = $maps;
}
/**
* @param $name
* @return bool
*/
public function hasClient($name)
2015-12-08 11:10:20 +01:00
{
2016-05-31 22:15:55 +02:00
$name = trim(strtolower($name));
2015-12-08 11:10:20 +01:00
return isset($this->maps[ENTITY_CLIENT][$name]);
}
/**
* @param $key
* @return bool
*/
public function hasProduct($key)
2016-05-31 22:15:55 +02:00
{
$key = trim(strtolower($key));
return isset($this->maps[ENTITY_PRODUCT][$key]);
}
/**
* @param $data
* @param $field
* @return string
*/
public function getString($data, $field)
2015-12-31 16:09:45 +01:00
{
return (isset($data->$field) && $data->$field) ? $data->$field : '';
2015-12-31 16:09:45 +01:00
}
/**
* @param $data
* @param $field
* @return int
*/
public function getNumber($data, $field)
2016-05-31 22:15:55 +02:00
{
return (isset($data->$field) && $data->$field) ? $data->$field : 0;
}
2016-12-22 18:17:45 +01:00
/**
* @param $data
* @param $field
* @return float
*/
public function getFloat($data, $field)
2016-12-22 18:17:45 +01:00
{
return (isset($data->$field) && $data->$field) ? Utils::parseFloat($data->$field) : 0;
}
/**
* @param $name
* @return null
*/
public function getClientId($name)
2015-12-08 11:10:20 +01:00
{
2017-01-08 15:02:52 +01:00
$name = strtolower(trim($name));
2015-12-08 11:10:20 +01:00
return isset($this->maps[ENTITY_CLIENT][$name]) ? $this->maps[ENTITY_CLIENT][$name] : null;
}
/**
* @param $name
* @return null
*/
public function getProductId($name)
2016-05-31 22:15:55 +02:00
{
2017-01-08 15:02:52 +01:00
$name = strtolower(trim($name));
2016-05-31 22:15:55 +02:00
return isset($this->maps[ENTITY_PRODUCT][$name]) ? $this->maps[ENTITY_PRODUCT][$name] : null;
}
/**
* @param $name
* @return null
*/
public function getCountryId($name)
2015-12-08 11:10:20 +01:00
{
2017-01-08 15:02:52 +01:00
$name = strtolower(trim($name));
2015-12-08 11:10:20 +01:00
return isset($this->maps['countries'][$name]) ? $this->maps['countries'][$name] : null;
}
/**
* @param $name
* @return null
*/
public function getCountryIdBy2($name)
2015-12-10 11:57:51 +01:00
{
2017-01-08 15:02:52 +01:00
$name = strtolower(trim($name));
2015-12-10 11:57:51 +01:00
return isset($this->maps['countries2'][$name]) ? $this->maps['countries2'][$name] : null;
}
/**
* @param $name
* @return mixed
*/
public function getFirstName($name)
2015-12-08 11:10:20 +01:00
{
$name = Utils::splitName($name);
return $name[0];
}
/**
* @param $date
* @param string $format
* @return null
*/
2017-01-15 20:48:31 +01:00
public function getDate($data, $field)
2015-12-08 11:10:20 +01:00
{
2017-01-15 20:48:31 +01:00
if ($date = data_get($data, $field)) {
try {
$date = new Carbon($date);
} catch (Exception $e) {
// if we fail to parse return blank
}
2015-12-14 21:07:48 +01:00
}
2016-05-31 22:15:55 +02:00
2015-12-08 11:10:20 +01:00
return $date ? $date->format('Y-m-d') : null;
}
/**
* @param $name
* @return mixed
*/
public function getLastName($name)
2015-12-08 11:10:20 +01:00
{
$name = Utils::splitName($name);
return $name[1];
}
/**
* @param $number
* @return string
*/
public function getInvoiceNumber($number)
2015-12-10 14:35:40 +01:00
{
return str_pad(trim($number), 4, '0', STR_PAD_LEFT);
2015-12-10 14:35:40 +01:00
}
/**
* @param $invoiceNumber
* @return null
*/
public function getInvoiceId($invoiceNumber)
{
$invoiceNumber = $this->getInvoiceNumber($invoiceNumber);
$invoiceNumber = strtolower($invoiceNumber);
return isset($this->maps[ENTITY_INVOICE][$invoiceNumber]) ? $this->maps[ENTITY_INVOICE][$invoiceNumber] : null;
}
/**
* @param $invoiceNumber
* @return bool
*/
public function hasInvoice($invoiceNumber)
2015-12-08 11:10:20 +01:00
{
2015-12-10 14:35:40 +01:00
$invoiceNumber = $this->getInvoiceNumber($invoiceNumber);
$invoiceNumber = strtolower($invoiceNumber);
2015-12-08 11:10:20 +01:00
return isset($this->maps[ENTITY_INVOICE][$invoiceNumber]);
}
/**
* @param $invoiceNumber
* @return null
*/
public function getInvoiceClientId($invoiceNumber)
{
$invoiceNumber = $this->getInvoiceNumber($invoiceNumber);
$invoiceNumber = strtolower($invoiceNumber);
return isset($this->maps[ENTITY_INVOICE.'_'.ENTITY_CLIENT][$invoiceNumber])? $this->maps[ENTITY_INVOICE.'_'.ENTITY_CLIENT][$invoiceNumber] : null;
}
2016-05-31 22:15:55 +02:00
/**
* @param $name
* @return null
*/
2016-10-05 22:56:48 +02:00
public function getVendorId($name)
2016-01-06 15:23:58 +01:00
{
2017-01-08 15:02:52 +01:00
$name = strtolower(trim($name));
2016-01-06 15:23:58 +01:00
return isset($this->maps[ENTITY_VENDOR][$name]) ? $this->maps[ENTITY_VENDOR][$name] : null;
}
2016-05-31 22:15:55 +02:00
2016-10-05 22:46:15 +02:00
/**
* @param $name
* @return null
*/
public function getExpenseCategoryId($name)
{
2017-01-08 15:02:52 +01:00
$name = strtolower(trim($name));
2016-10-05 22:46:15 +02:00
return isset($this->maps[ENTITY_EXPENSE_CATEGORY][$name]) ? $this->maps[ENTITY_EXPENSE_CATEGORY][$name] : null;
}
2016-05-31 22:15:55 +02:00
}