Files
getgreen-backend/database/seeders/Logistics.php

154 lines
5.3 KiB
PHP
Executable File

<?php
namespace Database\Seeders;
use App\Models\DeliveryPrice;
use App\Models\Power;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use PhpOffice\PhpSpreadsheet\IOFactory;
class Logistics extends Seeder
{
private $last_power = 0;
/**
* Run the database seeds.
*/
public function run(): void
{
Power::truncate();
$this->call([
PowerSeeder::class,
]);
DeliveryPrice::truncate();
// Define the path to your XLSX file in the public folder
$filePath = public_path('logistics.xlsx'); // Update the path
// Load the spreadsheet
$spreadsheet = IOFactory::load($filePath);
// Get the active sheet
$sheet = $spreadsheet->getActiveSheet();
// Convert the sheet to an array
$data = $sheet->toArray();
foreach ($data as $index => $row) {
if ($index > 1) {
$toshkent_shahar_14 = $data[1][3];
$toshkent_viloyati_11 = $data[1][4];
$fargona_12 = $data[1][5];
$andijon_2 = $data[1][6];
$namangan_7 = $data[1][7];
$sirdaryo_10 = $data[1][8];
$jizzax_4 = $data[1][9];
$samarqand_8 = $data[1][10];
$navoiy_6 = $data[1][11];
$buxoro_3 = $data[1][12];
$qashqadaryo_5 = $data[1][13];
$surxondaryo_9 = $data[1][14];
$xorazm_13 = $data[1][15];
$qoraqalpogiston_1 = $data[1][16];
$power_value_in_kW = $row[1];
if ($power_value_in_kW == null) {
$power_value_in_kW = $this->last_power;
} else {
$this->last_power = $power_value_in_kW;
}
$power = $this->getPower($power_value_in_kW);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 14, // Toshkent shahar
'price' => $row[3] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 11, // Toshkent viloyati
'price' => $row[4] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 12, // Farg'ona
'price' => $row[5] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 2, // Andijon
'price' => $row[6] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 7, // Namangan
'price' => $row[7] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 10, // Sirdaryo
'price' => $row[8] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 4, // Jizzax
'price' => $row[9] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 8, // Samarqand
'price' => $row[10] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 6, // Navoiy
'price' => $row[11] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 3, // Buxoro
'price' => $row[12] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 5, // Qashqadaryo
'price' => $row[13] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 9, // Surxondaryo
'price' => $row[14] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 13, // Xorazm
'price' => $row[15] * 1_000_000,
]);
DeliveryPrice::create([
'power_id' => $power->id,
'region_id' => 1, // Qoraqalpog'iston
'price' => $row[16] * 1_000_000,
]);
}
}
}
private function getPower($value)
{
if ($value != null) {
$power = Power::where('power', $value * 1000)->first();
if (!$power) {
$power = Power::create([
'name' => [
'uz' => $value * 1000 . ' kW',
'ru' => $value * 1000 . ' кВт',
],
'power' => $value,
]);
}
return $power;
}
}
}