From ead2b335d5c9c81a68315f112c724ae79177ecbc Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 3 Feb 2016 14:21:13 +1100 Subject: [PATCH] Added Credit Transformer --- app/Models/Client.php | 6 +++++ app/Ninja/Transformers/ClientTransformer.php | 7 ++++++ app/Ninja/Transformers/CreditTransformer.php | 24 ++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 app/Ninja/Transformers/CreditTransformer.php diff --git a/app/Models/Client.php b/app/Models/Client.php index 6655a9ef2e67..2984f7372fd5 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -136,6 +136,12 @@ class Client extends EntityModel return $this->belongsTo('App\Models\Industry'); } + public function credits() + { + return $this->hasMany('App\Models\Credit'); + } + + public function addContact($data, $isPrimary = false) { $publicId = isset($data['public_id']) ? $data['public_id'] : false; diff --git a/app/Ninja/Transformers/ClientTransformer.php b/app/Ninja/Transformers/ClientTransformer.php index 4289545673c7..66fdd35bf064 100644 --- a/app/Ninja/Transformers/ClientTransformer.php +++ b/app/Ninja/Transformers/ClientTransformer.php @@ -43,6 +43,7 @@ class ClientTransformer extends EntityTransformer protected $availableIncludes = [ 'contacts', 'invoices', + 'credits', ]; public function includeContacts(Client $client) @@ -57,6 +58,12 @@ class ClientTransformer extends EntityTransformer return $this->includeCollection($client->invoices, $transformer, ENTITY_INVOICE); } + public function includeCredits(Client $client) + { + $transformer = new CreditTransformer($this->account, $this->serializer); + return $this->includeCollection($client->credits, $transformer, ENTITY_CREDIT); + } + public function transform(Client $client) { return [ diff --git a/app/Ninja/Transformers/CreditTransformer.php b/app/Ninja/Transformers/CreditTransformer.php new file mode 100644 index 000000000000..a33185d2ff39 --- /dev/null +++ b/app/Ninja/Transformers/CreditTransformer.php @@ -0,0 +1,24 @@ + (int) $credit->public_id, + 'amount' => (float) $credit->amount, + 'balance' => (float) $credit->balance, + 'updated_at' => $this->getTimestamp($credit->updated_at), + 'archived_at' => $this->getTimestamp($credit->deleted_at), + 'is_deleted' => (bool) $credit->is_deleted, + 'account_key' => $this->account->account_key, + 'credit_date' => $credit->credit_date, + 'credit_number' => $credit->credit_number, + 'private_notes' => $credit->private_notes, + ]; + } +} \ No newline at end of file