public function init()
 {
     $oBaseUrlHelper = new Zend_View_Helper_BaseUrl();
     // pega codigo do IBGE do municipio no arquivo de configuracao
     $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge();
     $this->setAction($oBaseUrlHelper->baseUrl($this->sAction));
     $this->setMethod(Zend_Form::METHOD_POST);
     $this->setAttrib('id', 'formTomador');
     $oElm = $this->createElement('hidden', 'endereco_fora');
     $oElm->setValue('1');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_cgccpf');
     $oElm->setLabel('CNPJ: ');
     $oElm->addValidator(new DBSeller_Validator_Cnpj());
     $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 14, 'max' => 18)));
     $oElm->addFilter(new Zend_Filter_Digits());
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_nome');
     $oElm->setLabel('Razão Social: ');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $aEstados = Default_Model_Cadenderestado::getEstados('01058');
     $oElm = $this->createElement('select', 'z01_uf', array('multiOptions' => $aEstados));
     $oElm->setLabel('Estado: ');
     $oElm->setAttrib('class', 'select-estados');
     $oElm->setAttrib('select-munic', 'z01_munic');
     $oElm->setAttrib('ajax-url', '/endereco/get-municipios/');
     $oElm->setAttrib('key', FALSE);
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_Alpha());
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 'z01_munic');
     $oElm->setLabel('Cidade: ');
     $oElm->setAttrib('key', TRUE);
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_Digits());
     $oElm->addValidator(new Zend_Validate_GreaterThan(array('min' => 0)));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_cep');
     $oElm->setLabel('CEP: ');
     $oElm->setAttrib('maxlength', 8);
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_Digits());
     $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 8)));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $aBairros = Default_Model_Cadenderbairro::getBairros();
     $oElm = $this->createElement('select', 'z01_bairro_munic', array('multiOptions' => $aBairros));
     $oElm->setLabel('Bairro: ');
     $oElm->setAttrib('municipio', $iCodigoIbge);
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_Digits());
     $oElm->addValidator(new Zend_Validate_GreaterThan(array('min' => 0)));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $aMunicipios = Default_Model_Cadenderrua::getRuas();
     $oElm = $this->createElement('select', 'z01_ender_munic', array('multiOptions' => $aMunicipios));
     $oElm->setLabel('Endereço: ');
     $oElm->setAttrib('municipio', $iCodigoIbge);
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_Digits());
     $oElm->addValidator(new Zend_Validate_GreaterThan(array('min' => 0)));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_bairro_fora');
     $oElm->setLabel('Bairro: ');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_ender_fora');
     $oElm->setLabel('Endereço: ');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_numero');
     $oElm->setLabel('Número: ');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_compl');
     $oElm->setLabel('Complemento: ');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_telef');
     $oElm->setLabel('Telefone: ');
     $oElm->addFilter(new Zend_Filter_Digits());
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'z01_email');
     $oElm->setLabel('Email: ');
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_EmailAddress());
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     if ($this->bSubmit) {
         $this->addElement(new Zend_Form_Element_Submit('Cadastrar', 'Cadastrar', array('label' => 'Criar')));
     }
     return $this;
 }
 public function preenche($aDados = NULL)
 {
     // Preenche campo cidade pelo estado
     if (isset($aDados['estado'])) {
         $aCidades = Default_Model_Cadendermunicipio::getByEstado($aDados['estado']);
         $elmCidade = $this->getElement('cidade');
         if (is_array($aCidades)) {
             $elmCidade->setMultiOptions($aCidades);
         }
     }
     // Exibe/Oculta campos de bairro e endereco quando o codigo da cidade da prefeitura for igual ao escolhido
     $elmBairroTexto = $this->getElement('cod_bairro');
     $elmBairroTexto->setAttrib('class', 'campo-oculto');
     $elmEndTexto = $this->getElement('cod_endereco');
     $elmEndTexto->setAttrib('class', 'campo-oculto');
     // Classe "campo-oculto" no javascript
     // Codigo da cidade da prefeitura
     $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge();
     if (isset($aDados['cidade'])) {
         if ($iCodigoIbge == $aDados['cidade']) {
             $aDados['bairro'] = NULL;
             $elmBairroTexto = $this->getElement('bairro');
             $elmBairroTexto->setAttrib('class', 'campo-oculto');
             $elmBairroTexto->clearValidators();
             $elmBairroTexto->setRequired(FALSE);
             $elmBairroCombo = $this->getElement('cod_bairro');
             $elmBairroCombo->setAttrib('class', '');
             $aBairros = Default_Model_Cadenderbairro::getBairros();
             if (is_array($aBairros)) {
                 $elmBairroCombo->setMultiOptions($aBairros);
             }
             $aDados['endereco'] = NULL;
             $elmEndTexto = $this->getElement('endereco');
             $elmEndTexto->setAttrib('class', 'campo-oculto');
             $elmEndTexto->clearValidators();
             $elmEndTexto->setRequired(FALSE);
             $elmEndCombo = $this->getElement('cod_endereco');
             $elmEndCombo->setAttrib('class', '');
             $aEnderecos = Default_Model_Cadenderrua::getRuas();
             if (is_array($aEnderecos)) {
                 $elmEndCombo->setMultiOptions($aEnderecos);
             }
         }
     }
     $this->populate($aDados);
     return $this;
 }
 /**
  * Carrega a lista de endereços no elemento, seta o endereço do elemento se informado
  *
  * @param $iIdBairro
  * @param $iIdEndereco [opcional]
  */
 public function carregarEnderecos($iIdBairro, $iIdEndereco = NULL)
 {
     $aEnderecos = Default_Model_Cadenderrua::getRuas($iIdBairro);
     $this->cod_endereco->addMultiOptions($aEnderecos);
     $this->cod_endereco->setValue($iIdEndereco);
 }
 /**
  * Retorna lista de todos os enderecos
  *
  * @return JSON $aEnderecos[]
  */
 public function getEnderecosAction()
 {
     $aEnderecos = Default_Model_Cadenderrua::getRuas();
     echo $this->getHelper('json')->sendJson($aEnderecos);
 }