public function save($data, $vendor = null) { $publicId = isset($data['public_id']) ? $data['public_id'] : false; if ($vendor) { // do nothing } elseif (!$publicId || $publicId == '-1') { $vendor = Vendor::createNew(); } else { $vendor = Vendor::scope($publicId)->with('vendor_contacts')->firstOrFail(); if (Utils::isNinjaDev()) { \Log::warning('Entity not set in vendor repo save'); } } if ($vendor->is_deleted) { return $vendor; } $vendor->fill($data); $vendor->save(); $first = true; $vendorcontacts = isset($data['vendor_contact']) ? [$data['vendor_contact']] : $data['vendor_contacts']; $vendorcontactIds = []; foreach ($vendorcontacts as $vendorcontact) { $vendorcontact = $vendor->addVendorContact($vendorcontact, $first); $vendorcontactIds[] = $vendorcontact->public_id; $first = false; } if (!$vendor->wasRecentlyCreated) { foreach ($vendor->vendor_contacts as $contact) { if (!in_array($contact->public_id, $vendorcontactIds)) { $contact->delete(); } } } return $vendor; }
public function save($data) { $publicId = isset($data['public_id']) ? $data['public_id'] : false; if (!$publicId || $publicId == '-1') { $vendor = Vendor::createNew(); } else { $vendor = Vendor::scope($publicId)->with('vendorcontacts')->firstOrFail(); } $vendor->fill($data); $vendor->save(); $first = true; $vendorcontacts = isset($data['vendorcontact']) ? [$data['vendorcontact']] : $data['vendorcontacts']; foreach ($vendorcontacts as $vendorcontact) { $vendorcontact = $vendor->addVendorContact($vendorcontact, $first); $first = false; } return $vendor; }
public function save($data, $vendor = null) { $publicId = isset($data['public_id']) ? $data['public_id'] : false; if ($vendor) { // do nothing } elseif (!$publicId || $publicId == '-1') { $vendor = Vendor::createNew(); } else { $vendor = Vendor::scope($publicId)->with('vendor_contacts')->firstOrFail(); \Log::warning('Entity not set in vendor repo save'); } $vendor->fill($data); $vendor->save(); $first = true; $vendorcontacts = isset($data['vendor_contact']) ? [$data['vendor_contact']] : $data['vendor_contacts']; foreach ($vendorcontacts as $vendorcontact) { $vendorcontact = $vendor->addVendorContact($vendorcontact, $first); $first = false; } return $vendor; }