/**
  * Fetch record by uid, 
  * @param string Unique identifier
  * @return LettingAgents_Object_AgentApplication
  */
 public function fetchByUid($uid)
 {
     //Zend_Debug::dump($uid);die();
     $data = new LettingAgents_Object_AgentApplication();
     $select = $this->select()->from($this->_name)->where('uid = ?', $uid);
     //     die($select->__toString());
     $row = $this->fetchRow($select);
     if ($row) {
         $data->set_id($row['id']);
         $data->set_uid($row['uid']);
         $data->set_is_previous_client($row['is_previous_client']);
         $data->set_campaign_code($row['campaign_code']);
         $data->set_legal_name($row['legal_name']);
         $data->set_trading_name($row['trading_name']);
         $data->set_organisation_type($row['organisation_type']);
         $data->set_date_established($row['date_established']);
         $data->set_is_associated($row['is_associated']);
         $data->set_associated_text($row['associated_text']);
         $data->set_company_registration_number($row['company_registration_number']);
         $data->set_contact_name($row['contact_name']);
         $data->set_contact_number($row['contact_number']);
         $data->set_contact_email($row['contact_email']);
         $data->set_current_referencing_supplier($row['current_referencing_supplier']);
         $data->set_number_of_branches($row['number_of_branches']);
         $data->set_number_of_employees($row['number_of_employees']);
         $data->set_number_of_landlords($row['number_of_landlords']);
         $data->set_number_of_lets($row['number_of_lets']);
         $data->set_fax_number($row['fax_number']);
         $data->set_company_website_address($row['company_website_address']);
         return $data;
     }
     return false;
 }
 /**
  * Initialise the step 1 form
  *
  * @return void
  */
 public function step1Action()
 {
     // Tell page to use AJAX validation as we go
     $this->view->headScript()->appendScript('var ajaxValidate = true; var ajaxValidatePage = 1;');
     $pageForm = new LettingAgents_Form_Step1();
     if ($this->getRequest()->isPost()) {
         // We need to validate and save the data
         // TODO: Need to re-factor this to make it quicker
         $valid = $this->_formStepCommonValidate($pageForm, 1);
         $pageSession = new Zend_Session_Namespace('letting_agents_application');
         if ($valid) {
             $postData = $pageForm->getValues();
             // According to the Zend manual these *should* be the clean values
             $application = new LettingAgents_Manager_AgentApplication();
             $agencyData = new LettingAgents_Object_AgentApplication();
             // populate the agentcy data with any data that may have been set in future steps
             // as we may have returned to this step from step 2 onwards
             $agencyData = $application->fetchByUid($pageSession->agentUniqueId);
             if ($agencyData == false) {
                 $agencyData = new LettingAgents_Object_AgentApplication();
             }
             //Zend_Debug::dump($agencyData);die("$pageSession->agentUniqueId");
             // now we can update any date that may have changes
             $agencyData->set_uid($pageSession->agentUniqueId);
             if (isset($postData['subform_campaign']['is_previous_client'])) {
                 $agencyData->set_is_previous_client($postData['subform_campaign']['is_previous_client']);
             }
             if (isset($postData['subform_campaign']['campaign_code'])) {
                 $agencyData->set_campaign_code($postData['subform_campaign']['campaign_code']);
             }
             if (isset($postData['subform_companyname']['legal_name'])) {
                 $agencyData->set_legal_name($postData['subform_companyname']['legal_name']);
             }
             if (isset($postData['subform_companyname']['trading_name'])) {
                 $agencyData->set_trading_name($postData['subform_companyname']['trading_name']);
             }
             if (isset($postData['subform_personaldetails']['organisation_type'])) {
                 $agencyData->set_organisation_type($postData['subform_personaldetails']['organisation_type']);
             }
             if (isset($postData['subform_personaldetails']['date_established'])) {
                 $agencyData->set_date_established($postData['subform_personaldetails']['date_established']);
             }
             if (isset($postData['subform_personaldetails']['is_associated'])) {
                 $agencyData->set_is_associated($postData['subform_personaldetails']['is_associated']);
             }
             if (isset($postData['subform_personaldetails']['associated_text'])) {
                 $agencyData->set_associated_text($postData['subform_personaldetails']['associated_text']);
             }
             if (isset($postData['subform_personaldetails']['contact_name'])) {
                 $agencyData->set_contact_name($postData['subform_personaldetails']['contact_name']);
             }
             if (isset($postData['subform_personaldetails']['contact_number'])) {
                 $agencyData->set_contact_number($postData['subform_personaldetails']['contact_number']);
             }
             if (isset($postData['subform_personaldetails']['general_email'])) {
                 $agencyData->set_contact_email($postData['subform_personaldetails']['general_email']);
             }
             $application->save($agencyData);
             $this->_formStepCommonNavigate(1);
             return;
         } elseif (isset($_POST['back'])) {
             $this->_formStepCommonNavigate(1);
             return;
         }
     }
     // Load the element data from the database if we can
     if ($this->_formStepCommonPopulate($pageForm, 1)) {
         // Render the page unless we have been redirected
         $this->view->form = $pageForm;
         $this->render('step');
     }
 }