tokenName = $tokenName; } public function includeUser(User $user) { $transformer = new UserTransformer($this->account, $this->serializer); return $this->includeItem($user, $transformer, 'user'); } /** * @param Account $account * * @return \League\Fractal\Resource\Collection */ public function includeCustomPaymentTerms(User $user) { $transformer = new PaymentTermTransformer($this->account, $this->serializer); return $this->includeCollection($this->account->custom_payment_terms, $transformer, 'payment_terms'); } /** * @param Account $account * * @return \League\Fractal\Resource\Collection */ public function includeUsers(User $user) { $transformer = new UserTransformer($this->account, $this->serializer); return $this->includeCollection($this->account->users, $transformer, 'users'); } /** * @param Account $account * * @return \League\Fractal\Resource\Collection */ public function includeTaskStatuses(User $user) { $transformer = new TaskStatusTransformer($this->account, $this->serializer); return $this->includeCollection($this->account->task_statuses, $transformer, 'task_statuses'); } /** * @param Account $account * * @return \League\Fractal\Resource\Collection */ public function includeAccountEmailSettings(User $user) { $transformer = new AccountEmailSettingsTransformer($this->account, $this->serializer); return $this->includeItem($this->account->account_email_settings, $transformer, 'account_email_settings'); } /** * @param Account $account * * @return \League\Fractal\Resource\Collection */ public function includeExpenseCategories(User $user) { $transformer = new ExpenseCategoryTransformer($this->account, $this->serializer); return $this->includeCollection($this->account->expense_categories, $transformer, 'expense_categories'); } /** * @param Account $account * * @return \League\Fractal\Resource\Collection */ public function includeTaxRates(User $user) { $transformer = new TaxRateTransformer($this->account, $this->serializer); return $this->includeCollection($this->account->tax_rates, $transformer, 'tax_rates'); } public function transform(User $user) { $account = $user->account; $company = $account->company; return [ 'account_key' => $account->account_key, 'user_id' => (int) ($user->public_id + 1), 'name' => $account->present()->name ?: '', 'token' => $account->getToken($user->id, $this->tokenName), 'default_url' => SITE_URL, 'plan' => $company->hasActivePlan() && $company->plan ? $company->plan : '', 'logo' => $account->logo ?: '', 'logo_url' => $account->getLogoURL() ?: '', '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, 'invoice_terms' => $account->invoice_terms ?: '', 'invoice_taxes' => (bool) $account->invoice_taxes, 'invoice_item_taxes' => (bool) $account->invoice_item_taxes, 'invoice_design_id' => (int) $account->invoice_design_id, 'quote_design_id' => (int) $account->quote_design_id, 'language_id' => (int) $account->language_id, 'country_id' => (int) $account->country_id, 'invoice_footer' => $account->invoice_footer ?: '', 'invoice_labels' => $account->invoice_labels ?: '', 'show_item_taxes' => (bool) $account->show_item_taxes, 'military_time' => (bool) $account->military_time, 'fill_products' => (bool) $account->fill_products, 'tax_name1' => $account->tax_name1 ?: '', 'tax_rate1' => (float) $account->tax_rate1, 'tax_name2' => $account->tax_name2 ?: '', 'tax_rate2' => (float) $account->tax_rate2, 'quote_terms' => $account->quote_terms ?: '', 'show_currency_code' => (bool) $account->show_currency_code, 'enable_second_tax_rate' => (bool) $account->enable_second_tax_rate, 'start_of_week' => (int) $account->start_of_week, 'financial_year_start' => (int) $account->financialYearStartMonth(), 'enabled_modules' => (int) $account->enabled_modules, 'payment_terms' => (int) $account->payment_terms, 'payment_type_id' => (int) $account->payment_type_id, 'task_rate' => (float) $account->task_rate, 'inclusive_taxes' => (bool) $account->inclusive_taxes, 'convert_products' => (bool) $account->convert_products, 'custom_invoice_taxes1' => (bool) $account->custom_invoice_taxes1, 'custom_invoice_taxes2' => (bool) $account->custom_invoice_taxes1, 'custom_fields' => $account->custom_fields ?: '', 'invoice_fields' => $account->invoice_fields ?: '', 'custom_messages' => $account->custom_messages, 'email_footer' => $account->getEmailFooter(), 'email_subject_invoice' => $account->getEmailSubject(ENTITY_INVOICE), 'email_subject_quote' => $account->getEmailSubject(ENTITY_QUOTE), 'email_subject_payment' => $account->getEmailSubject(ENTITY_PAYMENT), 'email_template_invoice' => $account->getEmailTemplate(ENTITY_INVOICE), 'email_template_quote' => $account->getEmailTemplate(ENTITY_QUOTE), 'email_template_payment' => $account->getEmailTemplate(ENTITY_PAYMENT), 'email_subject_reminder1' => $account->getEmailSubject('reminder1'), 'email_subject_reminder2' => $account->getEmailSubject('reminder2'), 'email_subject_reminder3' => $account->getEmailSubject('reminder3'), 'email_template_reminder1' => $account->getEmailTemplate('reminder1'), 'email_template_reminder2' => $account->getEmailTemplate('reminder2'), 'email_template_reminder3' => $account->getEmailTemplate('reminder3'), 'has_custom_design1' => (bool) $account->custom_design1, 'has_custom_design2' => (bool) $account->custom_design2, 'has_custom_design3' => (bool) $account->custom_design3, 'enable_portal_password' => (bool) $account->enable_portal_password, ]; } }