diff --git a/app/Entities/Partners/Vendor.php b/app/Entities/Partners/Vendor.php index e82cd19..cf3838e 100644 --- a/app/Entities/Partners/Vendor.php +++ b/app/Entities/Partners/Vendor.php @@ -6,10 +6,30 @@ use Illuminate\Database\Eloquent\Model; class Vendor extends Model { + /** + * The attributes that are mass assignable. + * + * @var array + */ protected $fillable = ['name', 'notes', 'website', 'is_active']; + /** + * Vendor has many payments relation. + * + * @return \Illuminate\Database\Eloquent\Relations\HasMany + */ public function payments() { return $this->hasMany('App\Entities\Payments\Payment', 'partner_id'); } + + /** + * Get status attribute. + * + * @return string + */ + public function getStatusAttribute() + { + return $this->is_active == 1 ? __('app.active') : __('app.in_active'); + } } diff --git a/tests/Unit/Models/VendorTest.php b/tests/Unit/Models/VendorTest.php index 19c32bb..210ad29 100644 --- a/tests/Unit/Models/VendorTest.php +++ b/tests/Unit/Models/VendorTest.php @@ -28,4 +28,14 @@ class VendorTest extends TestCase $this->assertInstanceOf(Collection::class, $vendor->payments); $this->assertInstanceOf(Payment::class, $vendor->payments->first()); } + + /** @test */ + public function a_vendor_has_status_attribute() + { + $vendor = factory(Vendor::class)->make(['is_active' => 1]); + $this->assertEquals(__('app.active'), $vendor->status); + + $vendor->is_active = 0; + $this->assertEquals(__('app.in_active'), $vendor->status); + } }