示例#1
0
 public static function boot()
 {
     parent::boot();
     Vehicle::creating(function ($vehicle) {
         $vehicle->company_id = $vehicle->company_id ?: Auth::user()['company_id'];
     });
 }
示例#2
0
 /**
  * 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]);
 }
示例#5
0
 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);
 }
示例#6
0
 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;
 }