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));
 }