public static function boot() { parent::boot(); Vehicle::creating(function ($vehicle) { $vehicle->company_id = $vehicle->company_id ?: Auth::user()['company_id']; }); }
/** * Execute the console command. * * @return mixed */ public function handle() { $vehicles = Vehicle::all(); // $arrPromos = $this->aggregatePromoDataFromWeb(); foreach ($vehicles as $vehicle) { $danawa_id = $vehicle->danawa_id; $brand = $vehicle->brand->brand_code; $model = $vehicle->name; $this->aggregateTrimData($danawa_id, $brand, $model); $this->info('Processing ' . $brand . "\n"); } }
public function testAccessDeniedCompany() { $user = factory(\App\Entities\User::class)->create(); $user->setUp(); $this->actingAs($user); $this->visit('/vehicle/1/edit'); $this->see(Lang::get('general.accessdenied')); $vehicle = Vehicle::find(1); $vehicle->entries()->delete(); $vehicle->trips()->delete(); $this->visit('/vehicle/destroy/1'); $this->see(Lang::get('general.accessdenied')); }
public function testDelete() { $idDelete = Vehicle::all()->last()['id']; factory(\App\Entities\Entry::class)->create(['vehicle_id' => $idDelete]); $this->seeInDatabase('vehicles', ['id' => $idDelete]); $this->visit('/vehicle/destroy/' . $idDelete)->seePageIs('/vehicle')->see('Este registro possui refer'); $this->seeIsNotSoftDeletedInDatabase('vehicles', ['id' => $idDelete]); $vehicle = Vehicle::find($idDelete); $vehicle->entries()->delete(); $vehicle->trips()->delete(); $this->seeInDatabase('vehicles', ['id' => $idDelete]); $this->visit('/vehicle/destroy/' . $idDelete); $this->seeIsSoftDeletedInDatabase('vehicles', ['id' => $idDelete]); }
private function parseWebData($url, $brand) { $response = $this->getPage($url); $html = HtmlDomParser::str_get_html($response); $elements = $html->find('ul.modelList li'); foreach ($elements as $element) { $danawaId = preg_replace('/.*?Model=/', '', $element->find('a', 0)->href); $image = trim($element->find('a div.photo img', 0)->src); $release = trim(str_replace(' 출시', '', $element->find('a div.photo div span.date', 0)->plaintext)); $strBrand = trim($element->find('a div.title img', 0)->alt); $name = trim(str_replace(['올 뉴 ', '더 뉴 ', '신형 ', 'All New ', 'All-New ', 'The New ', 'New '], '', preg_replace('/\\(.+?\\)/', '', str_replace($strBrand, '', $element->find('a div.title', 0)->plaintext)))); $type = trim($element->find('a div.spec span', 0)->plaintext); $arrFuels = preg_split('/\\s?,\\s?/', trim($element->find('a div.spec span', 1)->plaintext)); $fuel = implode(',', $arrFuels); $price = trim($element->find('a div.price span', 0)->plaintext); $vehicle = Vehicle::createOrUpdate(['danawa_id' => $danawaId, 'name' => $name, 'type' => $type, 'fuels' => $fuel, 'price' => $price, 'release' => $release, 'image' => $image], ['name' => $name]); // $vehicle->save(); $brand->vehicles()->save($vehicle); } return count($elements); }
public function setUp($lang = null) { $company = Company::forceCreate(['name' => $this->name . ' Inc.']); $company->save(); $this->setUserProperties($company, $lang); $this->createGenericTypes($company); $typeTire = Type::forceCreate(['entity_key' => 'part', 'name' => Lang::get('setup.tire'), 'company_id' => $company->id]); $typeSensor = Type::forceCreate(['entity_key' => 'part', 'name' => Lang::get('setup.sensor'), 'company_id' => $company->id]); $typeCar = Type::forceCreate(['entity_key' => 'vehicle', 'name' => Lang::get('setup.car'), 'company_id' => $company->id]); $typeTruck = Type::forceCreate(['entity_key' => 'vehicle', 'name' => Lang::get('setup.truck'), 'company_id' => $company->id]); $typeVendor = Type::forceCreate(['entity_key' => 'contact', 'name' => Lang::get('setup.vendor'), 'company_id' => $company->id]); $typeDriver = Type::forceCreate(['entity_key' => 'contact', 'name' => Lang::get('setup.driver'), 'company_id' => $company->id]); $contactDetail = $this->createContact($this->name, $company->id); $company->contact_id = $contactDetail->id; $company->save(); $contactVendor = Contact::forceCreate(['company_id' => $company->id, 'contact_type_id' => $typeVendor->id, 'name' => Lang::get('setup.GenericVendor'), 'license_no' => '123456']); Contact::forceCreate(['company_id' => $company->id, 'contact_type_id' => $typeDriver->id, 'name' => Lang::get('setup.GenericDriver'), 'license_no' => '123456']); $modelCar = Model::forceCreate(['model_type_id' => $typeCar->id, 'vendor_id' => $contactVendor->id, 'name' => Lang::get('setup.GenericCar'), 'company_id' => $company->id]); Model::forceCreate(['model_type_id' => $typeTruck->id, 'vendor_id' => $contactVendor->id, 'name' => Lang::get('setup.GenericTruck'), 'company_id' => $company->id]); Model::forceCreate(['model_type_id' => $typeTire->id, 'name' => Lang::get('setup.GenericTire'), 'company_id' => $company->id]); $modelSensor = Model::forceCreate(['model_type_id' => $typeSensor->id, 'name' => Lang::get('setup.GenericSensor'), 'company_id' => $company->id]); $vehicle = Vehicle::forceCreate(['model_vehicle_id' => $modelCar->id, 'number' => Lang::get('setup.VehiclePlate'), 'initial_miliage' => 123, 'actual_miliage' => 123, 'cost' => 50000, 'description' => Lang::get('setup.GenericVehicle'), 'company_id' => $company->id]); Part::forceCreate(['vehicle_id' => $vehicle->id, 'vendor_id' => $contactVendor->id, 'part_type_id' => $typeSensor->id, 'part_model_id' => $modelSensor->id, 'cost' => 1, 'name' => Lang::get('setup.GenericSensor'), 'number' => '0000000001', 'miliage' => 1, 'position' => 1, 'lifecycle' => 1, 'company_id' => $company->id]); }
/** * Run the database seeds. * * @return void */ public function run() { DB::table('vehicles')->delete(); Vehicle::forceCreate(['model_vehicle_id' => 1, 'number' => 'IOP-1234', 'initial_miliage' => 1, 'actual_miliage' => 1, 'cost' => 50000, 'description' => 'Descricao Veiculo', 'company_id' => 1]); }
public function getFleetData($vehicle_id = null) { $vehicles = Vehicle::where('company_id', Auth::user()['company_id']); if (!empty($vehicle_id)) { $vehicles = $vehicles->where('id', $vehicle_id); } $vehicles = $vehicles->get(); $tireData = []; $modelMaps = []; $gpsData = []; if (!empty($vehicles)) { $tires = PartRepositoryEloquent::getTiresVehicle(); $fleetGpsData = $this->getFleetGpsData(); $tireAndSensorData = $this->getFleetTireAndSensorData(); foreach ($vehicles as $vehicle) { $modelMaps[$vehicle->model_vehicle_id] = $vehicle->model->map; $tireData[$vehicle->id] = []; $tiresPositions = PartRepositoryEloquent::getTiresPositions($tires, $vehicle->id); if (!empty($tiresPositions)) { foreach ($tiresPositions as $position => $filled) { if ($filled) { if (!empty($tireAndSensorData[$vehicle->id][$position])) { $tireData[$vehicle->id][$position] = $tireAndSensorData[$vehicle->id][$position]; } else { $tireData[$vehicle->id][$position] = $tireAndSensorData[0]; } } } } $gpsData[$vehicle->id] = []; if (!empty($fleetGpsData[$vehicle->id])) { $gpsData[$vehicle->id] = $fleetGpsData[$vehicle->id]; } } } return ['vehicles' => $vehicles, 'tireData' => $tireData, 'gpsData' => $gpsData, 'modelMaps' => $modelMaps]; }
public static function getVehiclesStatistics() { $vehicles['in_use']['color'] = '#3871cf'; $vehicles['in_use']['result'] = Vehicle::join('trips', 'vehicles.id', '=', 'trips.vehicle_id')->where('vehicles.company_id', Auth::user()['company_id'])->where('trips.pickup_date', '<=', Carbon::now())->where(function ($query) { $query->where('deliver_date', '>', Carbon::now())->orWhereNull('deliver_date'); })->count(); $vehicles['maintenance']['color'] = '#cf7138'; $vehicles['maintenance']['result'] = Vehicle::join('entries', 'vehicles.id', '=', 'entries.vehicle_id')->join('types', 'types.id', '=', 'entries.entry_type_id')->where('vehicles.company_id', Auth::user()['company_id'])->where('types.entity_key', 'vehicle')->where('types.name', 'repair')->where('entries.datetime_ini', '<=', Carbon::now())->where(function ($query) { $query->where('datetime_end', '>', Carbon::now())->orWhereNull('datetime_end'); })->count(); $vehicles['available']['color'] = '#38cf71'; $vehiclesOff = $vehicles['maintenance']['result'] + $vehicles['in_use']['result']; $vehicles['available']['result'] = Vehicle::where('vehicles.company_id', Auth::user()['company_id'])->count() - $vehiclesOff; return $vehicles; }