private function importGp(array $data)
{
if (!($gp = Gp::model()->findbyAttributes(array('nat_id' => $data['code'])))) {
if ($data['status'] != 'A') {
return;
}
$gp = new Gp();
$gp->nat_id = $data['code'];
$gp->obj_prof = $data['code'];
}
if (!$gp->save()) {
throw new Exception("Failed to save GP: " . print_r($gp->errors, true));
}
$contact = $gp->contact;
$contact->primary_phone = $data['phone'];
if (preg_match("/^([\\S]+)\\s+([A-Z]{1,4})\$/i", trim($data['name']), $m)) {
$contact->title = 'Dr';
$contact->first_name = $m[2];
$contact->last_name = $this->tidy($m[1]);
} else {
$contact->last_name = $data['name'];
}
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['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));
}
}