From b820d763d24e0dfe6ef65deacf6458680d13653a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 18 Jan 2021 11:08:41 +0300 Subject: [PATCH] fixed item import --- app/Http/Requests/Common/ItemTax.php | 31 ++++++++++++++++++++++++ app/Imports/Common/Sheets/ItemTaxes.php | 7 +++++- app/Traits/Import.php | 4 +-- public/files/import/items.xlsx | Bin 8978 -> 7870 bytes 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 app/Http/Requests/Common/ItemTax.php diff --git a/app/Http/Requests/Common/ItemTax.php b/app/Http/Requests/Common/ItemTax.php new file mode 100644 index 000000000..f18133b36 --- /dev/null +++ b/app/Http/Requests/Common/ItemTax.php @@ -0,0 +1,31 @@ + 'required|integer', + 'tax_id' => 'required|integer', + ]; + } +} diff --git a/app/Imports/Common/Sheets/ItemTaxes.php b/app/Imports/Common/Sheets/ItemTaxes.php index a6d1f6cf7..6ca6c7581 100644 --- a/app/Imports/Common/Sheets/ItemTaxes.php +++ b/app/Imports/Common/Sheets/ItemTaxes.php @@ -4,13 +4,17 @@ namespace App\Imports\Common\Sheets; use App\Abstracts\Import; use App\Http\Requests\Common\ItemTax as Request; -use App\Models\Common\Item; use App\Models\Common\ItemTax as Model; class ItemTaxes extends Import { public function model(array $row) { + // @todo remove after laravel-excel 3.2 release + if ($row['item_name'] === $this->empty_field) { + return null; + } + return new Model($row); } @@ -18,6 +22,7 @@ class ItemTaxes extends Import { $row = parent::map($row); + $row['item_id'] = $this->getItemIdFromName($row); $row['tax_id'] = $this->getTaxId($row); return $row; diff --git a/app/Traits/Import.php b/app/Traits/Import.php index 5cb6b1ab9..15b5b290c 100644 --- a/app/Traits/Import.php +++ b/app/Traits/Import.php @@ -191,8 +191,8 @@ trait Import 'name' => $row['item_name'], ], [ 'company_id' => session('company_id'), - 'sale_price' => !empty($row['sale_price']) ? $row['sale_price'] : $row['price'], - 'purchase_price' => !empty($row['purchase_price']) ? $row['purchase_price'] : $row['price'], + 'sale_price' => !empty($row['sale_price']) ? $row['sale_price'] : (!empty($row['price']) ? $row['price'] : 0), + 'purchase_price' => !empty($row['purchase_price']) ? $row['purchase_price'] : (!empty($row['price']) ? $row['price'] : 0), 'enabled' => 1, ])->id; } diff --git a/public/files/import/items.xlsx b/public/files/import/items.xlsx index bdc881fd8b9d65a409124086c38db3b63e571909..66640947b09ba96a7f99d92a4cd3ac9b89590918 100644 GIT binary patch literal 7870 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�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