invoiceninja/app/Ninja/Transformers/AccountTransformer.php

102 lines
4 KiB
PHP
Raw Normal View History

2015-11-02 00:10:20 +02:00
<?php namespace App\Ninja\Transformers;
use App\Models\Account;
2015-11-03 19:09:52 +11:00
use App\Models\AccountToken;
2015-11-15 22:04:06 +11:00
use App\Models\Contact;
2015-11-19 13:50:35 +02:00
use App\Models\Product;
2015-12-21 18:36:29 +11:00
use App\Models\TaxRate;
2015-11-02 00:10:20 +02:00
use League\Fractal;
use League\Fractal\TransformerAbstract;
2015-11-27 14:55:28 +02:00
class AccountTransformer extends EntityTransformer
2015-11-02 00:10:20 +02:00
{
protected $defaultIncludes = [
2015-11-03 13:02:15 +11:00
'users',
2015-11-19 13:50:35 +02:00
'products',
2016-02-17 21:50:52 +11:00
'taxRates',
];
protected $availableIncludes = [
'clients',
'invoices',
2016-05-03 19:06:38 +03:00
'payments',
2015-11-02 00:10:20 +02:00
];
2015-11-08 23:12:50 +02:00
public function includeUsers(Account $account)
2015-11-02 00:10:20 +02:00
{
2015-11-27 14:55:28 +02:00
$transformer = new UserTransformer($account, $this->serializer);
return $this->includeCollection($account->users, $transformer, 'users');
2015-11-03 16:21:17 +02:00
}
2015-11-02 00:10:20 +02:00
2015-11-08 23:12:50 +02:00
public function includeClients(Account $account)
2015-11-03 16:21:17 +02:00
{
2015-11-27 14:55:28 +02:00
$transformer = new ClientTransformer($account, $this->serializer);
return $this->includeCollection($account->clients, $transformer, 'clients');
2015-11-02 00:10:20 +02:00
}
2015-11-15 21:43:32 +11:00
public function includeInvoices(Account $account)
{
2015-11-27 14:55:28 +02:00
$transformer = new InvoiceTransformer($account, $this->serializer);
return $this->includeCollection($account->invoices, $transformer, 'invoices');
2015-11-15 21:43:32 +11:00
}
2015-11-19 13:50:35 +02:00
public function includeProducts(Account $account)
{
2015-11-27 14:55:28 +02:00
$transformer = new ProductTransformer($account, $this->serializer);
return $this->includeCollection($account->products, $transformer, 'products');
2015-11-19 13:50:35 +02:00
}
2015-12-21 18:36:29 +11:00
public function includeTaxRates(Account $account)
{
$transformer = new TaxRateTransformer($account, $this->serializer);
return $this->includeCollection($account->tax_rates, $transformer, 'taxRates');
}
2016-02-17 21:50:52 +11:00
public function includePayments(Account $account)
{
$transformer = new PaymentTransformer($account, $this->serializer);
return $this->includeCollection($account->payments, $transformer, 'payments');
}
2015-11-02 00:10:20 +02:00
public function transform(Account $account)
{
return [
2015-11-05 10:50:35 +02:00
'account_key' => $account->account_key,
2015-11-06 12:59:53 +02:00
'name' => $account->present()->name,
2015-11-07 23:15:37 +11:00
'currency_id' => (int) $account->currency_id,
'timezone_id' => (int) $account->timezone_id,
'date_format_id' => (int) $account->date_format_id,
'datetime_format_id' => (int) $account->datetime_format_id,
2015-12-27 13:08:58 +02:00
'updated_at' => $this->getTimestamp($account->updated_at),
'archived_at' => $this->getTimestamp($account->deleted_at),
2015-11-07 23:15:37 +11:00
'address1' => $account->address1,
'address2' => $account->address2,
'city' => $account->city,
'state' => $account->state,
'postal_code' => $account->postal_code,
'country_id' => (int) $account->country_id,
'invoice_terms' => $account->invoice_terms,
'email_footer' => $account->email_footer,
'industry_id' => (int) $account->industry_id,
'size_id' => (int) $account->size_id,
'invoice_taxes' => (bool) $account->invoice_taxes,
'invoice_item_taxes' => (bool) $account->invoice_item_taxes,
'invoice_design_id' => (int) $account->invoice_design_id,
'client_view_css' => (string) $account->client_view_css,
2015-11-07 23:15:37 +11:00
'work_phone' => $account->work_phone,
'work_email' => $account->work_email,
'language_id' => (int) $account->language_id,
'fill_products' => (bool) $account->fill_products,
'update_products' => (bool) $account->update_products,
2015-12-04 10:00:39 +11:00
'vat_number' => $account->vat_number,
'custom_invoice_label1' => $account->custom_invoice_label1,
'custom_invoice_label2' => $account->custom_invoice_label2,
'custom_invoice_taxes1' => $account->custom_invoice_taxes1,
'custom_invoice_taxes2' => $account->custom_invoice_taxes1,
'custom_label1' => $account->custom_label1,
'custom_label2' => $account->custom_label2,
'custom_value1' => $account->custom_value1,
'custom_value2' => $account->custom_value2
2015-11-02 00:10:20 +02:00
];
}
}