public function actionEditCommissioningBody() { if (isset($_GET['commissioning_body_id'])) { if (!($cb = CommissioningBody::model()->findByPk(@$_GET['commissioning_body_id']))) { throw new Exception("CommissioningBody not found: " . @$_GET['commissioning_body_id']); } if (!($address = $cb->contact->address)) { $address = new Address(); $address->country_id = 1; } } else { $cb = new CommissioningBody(); $address = new Address(); $address->country_id = 1; } $errors = array(); if (!empty($_POST)) { $cb->attributes = $_POST['CommissioningBody']; if (!$cb->validate()) { $errors = $cb->getErrors(); } $address->attributes = $_POST['Address']; if (!$address->validate()) { $errors = array_merge($errors, $address->getErrors()); } if (empty($errors)) { if (!($contact = $cb->contact)) { $contact = new Contact(); if (!$contact->save()) { throw new Exception("Unable to save contact for commissioning body: " . print_r($contact->getErrors(), true)); } } $cb->contact_id = $contact->id; $method = $cb->id ? 'edit' : 'add'; $audit = $_POST; if ($method == 'edit') { $audit['id'] = $cb->id; } if (!$cb->save()) { throw new Exception("Unable to save CommissioningBody : " . print_r($cb->getErrors(), true)); } $address->contact_id = $contact->id; if (!$address->save()) { throw new Exception("Unable to save CommissioningBody address: " . print_r($address->getErrors(), true)); } Audit::add('admin-CommissioningBody', $method, $cb->id); $this->redirect('/admin/commissioning_bodies'); } } else { Audit::add('admin-CommissioningBody', 'view', @$_GET['commissioning_body_id']); } $this->render('/admin/editCommissioningBody', array('cb' => $cb, 'address' => $address, 'errors' => $errors)); }
private function importCcg(array $data) { if (!($ccg = CommissioningBody::model()->findByAttributes(array('code' => $data['code'], 'commissioning_body_type_id' => $this->cbt_id)))) { $ccg = new CommissioningBody(); $ccg->code = $data['code']; $ccg->commissioning_body_type_id = $this->cbt_id; } $ccg->name = $data['name']; if (!$ccg->save()) { throw new Exception("Failed to save CCG: " . print_r($ccg->errors, true)); } $contact = $ccg->contact; 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)); } }