Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Imports;
- use App\Models\Product;
- use Illuminate\Support\Collection;
- use Illuminate\Support\Facades\DB;
- use Maatwebsite\Excel\Concerns\ToCollection;
- class PriceListImport implements ToCollection
- {
- public function collection(Collection $rows)
- {
- foreach ($rows as $row) {
- $description = $row[0];
- $part_number = $row[1];
- $price = $row[2];
- if (!$part_number || $part_number === 'Part Number') {
- continue;
- }
- $product = DB::table('products')
- ->select('*')
- ->where('sku', '=', $part_number)
- ->first();
- if (!$product) {
- $new_product = new Product;
- $new_product->description = $description;
- $new_product->sku = $part_number;
- $new_product->price = 0;
- $new_product->is_available = true;
- if (is_numeric($price)) {
- $new_product->price_type = 'fix';
- $new_product->price = (int) $price;
- } elseif (substr($price, -1) == '%') {
- $new_product->price_type = 'percent';
- $new_product->percent = rtrim($price, '%');
- }
- $new_product->save();
- } else {
- $product = Product::find($product->id);
- if (!is_null($price)) {
- if ($product->price_type === 'percent') {
- $product->percent = $price;
- } elseif ($product->price_type === 'fix') {
- $product->price = $price;
- }
- }
- $product->description = $description;
- $product->save();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement