public function getNinjaClient($account) { $account->load('users'); $ninjaAccount = $this->getNinjaAccount(); $ninjaUser = $ninjaAccount->getPrimaryUser(); $client = Client::whereAccountId($ninjaAccount->id)->wherePublicId($account->id)->first(); $clientExists = $client ? true : false; if (!$client) { $client = new Client(); $client->public_id = $account->id; $client->account_id = $ninjaAccount->id; $client->user_id = $ninjaUser->id; $client->currency_id = 1; } foreach (['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'country_id', 'work_phone', 'language_id', 'vat_number'] as $field) { $client->{$field} = $account->{$field}; } $client->save(); if ($clientExists) { $contact = $client->getPrimaryContact(); } else { $contact = new Contact(); $contact->user_id = $ninjaUser->id; $contact->account_id = $ninjaAccount->id; $contact->public_id = $account->id; $contact->is_primary = true; } $user = $account->getPrimaryUser(); foreach (['first_name', 'last_name', 'email', 'phone'] as $field) { $contact->{$field} = $user->{$field}; } $client->contacts()->save($contact); return $client; }