eveseat / seat

🌀✳️ SeAT: A Simple, EVE Online API Tool and Corporation Manager
https://eveseat.github.io/docs/
GNU General Public License v2.0
434 stars 142 forks source link

The contract not showing if the location is a station #756

Closed akturis closed 3 years ago

akturis commented 3 years ago

Problem: The contract not showing if starting location or ending location is a station Expected: Change relationship start_location/end_location for Model ContractDetail Logs / Screenshots / Proof: image

`[2021-02-04 08:31:37] local.ERROR: Trying to get property 'name' of non-object (View: /var/www/seat/vendor/eveseat/web/src/resources/views/common/contracts/modals/details/content.blade.php) {"userId":422,"exception":"[object] (Facade\Ignition\Exceptions\ViewException(code: 0): Trying to get property 'name' of non-object (View: /var/www/seat/vendor/eveseat/web/src/resources/views/common/contracts/modals/details/content.blade.php) at /var/www/seat/vendor/eveseat/web/src/resources/views/common/contracts/modals/details/content.blade.php:62) [stacktrace]

0 /var/www/seat/vendor/eveseat/web/src/resources/views/common/contracts/modals/details/content.blade.php(62): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Trying to get p...', '/var/www/seat/s...', 62, Array)

1 /var/www/seat/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/var/www/seat/s...')

2 /var/www/seat/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/var/www/seat/s...', Array)

`

veteranmina commented 3 years ago

I've ran across this as well on a toon with two contracts. This occurs when the "universe_structures" table does not contain the starting and/or ending location id of the station where the contract is.

One part of the issue is the need to have a check added for id values < 100000000 then it needs to check for a possible station id instead in this code here: https://github.com/eveseat/eveapi/blob/master/src/Models/Contracts/ContractDetail.php

The other contract however is an id greater than the needed value, which leads me to believe it is a structure that has been placed down after the last SDE update and is yet to be included in the list.

warlof commented 3 years ago

That's not possible with the way relationship is working in Laravel. I'll see what can be done, the most legit would probably be to seed the table with stations.