mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Improve expense import
This commit is contained in:
parent
48d0b1b9cf
commit
92698f5c26
@ -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;
|
||||
|
@ -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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user