private function importPractice(array $data) { if (!($practice = Practice::model()->findByAttributes(array('code' => $data['code'])))) { if ($data['status'] != 'A') { return; } $practice = new Practice(); $practice->code = $data['code']; } $practice->phone = $data['phone']; if (!$practice->save()) { throw new Exception("Failed to save practice: " . print_r($practice->errors, true)); } $contact = $practice->contact; $contact->primary_phone = $practice->phone; if (!$contact->save()) { throw new Exception("Failed to save contact: " . print_r($contact->errors, true)); } if (!($address = $contact->address)) { $address = new Address(); $address->contact_id = $contact->id; } $this->importAddress($address, array($data['name'], $data['addr1'], $data['addr2'], $data['addr3'], $data['addr4'], $data['addr5'])); $address->postcode = $data['postcode']; $address->country_id = $this->country_id; if (!$address->save()) { throw new Exception("Failed to save address: " . print_r($address->errors, true)); } }