/**
  * Retorna lista dos bairros
  *
  * Aviso:
  * - Se o codigo da prefeitura for igual retorna parametro para mostrar campo texto
  *
  * @param string $municipio
  * @return JSON $aBairros[]
  */
 public function getBairrosAction()
 {
     $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge();
     $iMunicipio = $this->_getParam('municipio', NULL);
     if ($iCodigoIbge == $iMunicipio) {
         $aBairros = Default_Model_Cadenderbairro::getBairros($iMunicipio);
         echo $this->getHelper('json')->sendJson($aBairros);
     } else {
         echo $this->getHelper('json')->sendJson(array('mostra_campo_texto' => TRUE));
     }
 }
 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;
 }
 /**
  * Carrega a lista de bairros no elemento, seta o bairro do elemento se informado
  *
  * @param integer $iIdMunicipio
  * @param integer $iIdBairro [opcional]
  */
 public function carregarBairros($iIdMunicipio, $iIdBairro = NULL)
 {
     $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge();
     if ($iCodigoIbge == $iIdMunicipio) {
         $aBairros = Default_Model_Cadenderbairro::getBairros($iIdMunicipio);
         $this->cod_bairro->addMultiOptions($aBairros);
     }
     $this->cod_bairro->setValue($iIdBairro);
 }
 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;
 }