items import/export
This commit is contained in:
parent
6923a3d6e4
commit
b119deca9f
@ -9,7 +9,7 @@ class Items extends Export
|
||||
{
|
||||
public function collection()
|
||||
{
|
||||
$model = Model::usingSearchString(request('search'));
|
||||
$model = Model::with(['category', 'tax'])->usingSearchString(request('search'));
|
||||
|
||||
if (!empty($this->ids)) {
|
||||
$model->whereIn('id', (array) $this->ids);
|
||||
@ -18,6 +18,14 @@ class Items extends Export
|
||||
return $model->get();
|
||||
}
|
||||
|
||||
public function map($model): array
|
||||
{
|
||||
$model->category_name = $model->category->name;
|
||||
$model->tax_rate = $model->tax->rate;
|
||||
|
||||
return parent::map($model);
|
||||
}
|
||||
|
||||
public function fields(): array
|
||||
{
|
||||
return [
|
||||
@ -25,8 +33,8 @@ class Items extends Export
|
||||
'description',
|
||||
'sale_price',
|
||||
'purchase_price',
|
||||
'category_id',
|
||||
'tax_id',
|
||||
'category_name',
|
||||
'tax_rate',
|
||||
'enabled',
|
||||
];
|
||||
}
|
||||
|
@ -3,18 +3,45 @@
|
||||
namespace App\Imports\Common;
|
||||
|
||||
use App\Abstracts\Import;
|
||||
use App\Models\Common\Item as Model;
|
||||
use App\Http\Requests\Common\Item as Request;
|
||||
use App\Jobs\Common\CreateItem;
|
||||
use App\Models\Common\Item as Model;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Models\Setting\Tax;
|
||||
|
||||
class Items extends Import
|
||||
{
|
||||
public function model(array $row)
|
||||
{
|
||||
return new Model($row);
|
||||
//$request = (new Request())->merge($row);
|
||||
}
|
||||
|
||||
//return dispatch_now(new CreateItem($request));
|
||||
public function map($row): array
|
||||
{
|
||||
$row = parent::map($row);
|
||||
|
||||
if (empty($row['category_id']) && !empty($row['category_name'])) {
|
||||
$row['category_id'] = Category::firstOrCreate([
|
||||
'name' => $row['category_name'],
|
||||
], [
|
||||
'company_id' => session('company_id'),
|
||||
'type' => 'income',
|
||||
'color' => '#' . dechex(rand(0x000000, 0xFFFFFF)),
|
||||
'enabled' => 1,
|
||||
])->id;
|
||||
}
|
||||
|
||||
if (empty($row['tax_id']) && !empty($row['tax_rate'])) {
|
||||
$row['tax_id'] = Tax::firstOrCreate([
|
||||
'rate' => $row['tax_rate'],
|
||||
], [
|
||||
'company_id' => session('company_id'),
|
||||
'type' => 'normal',
|
||||
'name' => $row['tax_rate'],
|
||||
'enabled' => 1,
|
||||
])->id;
|
||||
}
|
||||
|
||||
return $row;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
|
@ -41,7 +41,7 @@ class Item extends Model
|
||||
|
||||
public function tax()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Setting\Tax')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsTo('App\Models\Setting\Tax')->withDefault(['name' => trans('general.na'), 'rate' => 0]);
|
||||
}
|
||||
|
||||
public function bill_items()
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user