Fixed problem creating client with invoice in the API

This commit is contained in:
Hillel Coren 2015-11-17 10:46:14 +02:00
parent cd3aecdf5b
commit b4e5690103
2 changed files with 13 additions and 8 deletions

View File

@ -4,6 +4,7 @@ use Auth;
use Utils;
use Response;
use Input;
use Validator;
use App\Models\Invoice;
use App\Models\Client;
use App\Models\Contact;
@ -102,12 +103,18 @@ class InvoiceApiController extends Controller
}
if (isset($data['email'])) {
$client = Client::scope()->whereHas('contacts', function($query) use ($data) {
$query->where('email', '=', $data['email']);
$email = $data['email'];
$client = Client::scope()->whereHas('contacts', function($query) use ($email) {
$query->where('email', '=', $email);
})->first();
if (!$client) {
$clientData = ['contact' => ['email' => $data['email']]];
$validator = Validator::make(['email'=>$email], ['email' => 'email']);
if ($validator->fails()) {
return $validator->message();
}
$clientData = ['contact' => ['email' => $email]];
foreach (['name', 'private_notes'] as $field) {
if (isset($data[$field])) {
$clientData[$field] = $data[$field];
@ -118,10 +125,8 @@ class InvoiceApiController extends Controller
$clientData[$field] = $data[$field];
}
}
$error = $this->clientRepo->getErrors($clientData);
if (!$error) {
$client = $this->clientRepo->save($clientData);
}
$client = $this->clientRepo->save($clientData);
}
} else if (isset($data['client_id'])) {
$client = Client::scope($data['client_id'])->first();

View File

@ -54,7 +54,7 @@ class ClientRepository extends BaseRepository
$contacts = isset($data['contact']) ? [$data['contact']] : $data['contacts'];
$contactIds = [];
foreach ($data['contacts'] as $contact) {
foreach ($contacts as $contact) {
$contact = $client->addContact($contact, $first);
$contactIds[] = $contact->public_id;
$first = false;