Improve expense import

This commit is contained in:
Hillel Coren 2016-10-05 23:56:48 +03:00
parent 48d0b1b9cf
commit 92698f5c26
2 changed files with 15 additions and 2 deletions

View File

@ -182,7 +182,7 @@ class BaseTransformer extends TransformerAbstract
* @param $name
* @return null
*/
protected function getVendorId($name)
public function getVendorId($name)
{
$name = strtolower($name);
return isset($this->maps[ENTITY_VENDOR][$name]) ? $this->maps[ENTITY_VENDOR][$name] : null;

View File

@ -21,6 +21,7 @@ use App\Ninja\Repositories\ExpenseCategoryRepository;
use App\Ninja\Serializers\ArraySerializer;
use App\Models\Client;
use App\Models\Invoice;
use App\Models\Vendor;
use App\Models\Expense;
use App\Models\ExpenseCategory;
use App\Models\EntityModel;
@ -285,6 +286,13 @@ class ImportService
$this->addExpenseCategoryToMaps($category);
}
}
if ( ! empty($row->vendor)) {
$vendorId = $transformer->getVendorId($row->vendor);
if ( ! $vendorId) {
$vendor = $this->vendorRepo->save(['name' => $row->vendor, 'vendor_contact' => []]);
$this->addVendorToMaps($vendor);
}
}
}
$resource = $transformer->transform($row);
@ -722,7 +730,7 @@ class ImportService
$vendors = $this->vendorRepo->all();
foreach ($vendors as $vendor) {
$this->maps['vendor'][strtolower($vendor->name)] = $vendor->id;
$this->addVendorToMaps($vendor);
}
$expenseCaegories = $this->expenseCategoryRepo->all();
@ -769,6 +777,11 @@ class ImportService
// do nothing
}
private function addVendorToMaps(Vendor $vendor)
{
$this->maps['vendor'][strtolower($vendor->name)] = $vendor->id;
}
private function addExpenseCategoryToMaps(ExpenseCategory $category)
{
if ($name = strtolower($category->name)) {