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 estados no elemento, seta o valor do elemento se informado
  *
  * @param integer $iIdEstado [Opcional]
  */
 public function carregarEstados($iIdEstado = NULL)
 {
     $aEstados = Default_Model_Cadenderestado::getEstados($this->pais->getValue());
     $this->estado->addMultiOptions($aEstados);
     $this->estado->setValue($iIdEstado);
 }
 /**
  * Método construtor
  *
  * @return $this|void
  */
 public function init()
 {
     // informações do sistema
     $oBaseUrlHelper = new Zend_View_Helper_BaseUrl();
     $oTradutor = $this->getTranslator();
     // Configurações do Formulário
     $this->setAction($oBaseUrlHelper->baseUrl($this->sAction));
     $this->setMethod(Zend_Form::METHOD_POST);
     $this->setAttrib('id', 'nota');
     // Vetor com os dias em que a nota pode ser emitida
     $aDiasEmissao = array();
     $oDia = new DateTime();
     do {
         $aDiasEmissao[$oDia->format('Y-m-d')] = $oDia->format('d/m/Y');
         $oDia = $oDia->sub(new DateInterval('P1D'));
     } while ($oDia->format('Ymd') >= $this->dMenorDiaEmissao->format('Ymd'));
     // Validador para campos de valores do documento
     $oValidacaoFloat = new Zend_Validate_Float(array('locale' => 'br'));
     // Reter Pessoa física é um parametro da prefeitura
     $oElm = $this->createElement('hidden', 'reter_pessoa_fisica');
     $oParametrosPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll();
     $oElm->setValue($oParametrosPrefeitura[0]->getReterPessoaFisica());
     $this->addElement($oElm);
     /**
      * Dados da Nota
      */
     $oElm = $this->createElement('select', 'dt_nota', array('divspan' => 4, 'multiOptions' => $aDiasEmissao));
     $oElm->setLabel('Data:');
     $oElm->setAttrib('class', 'span2');
     $oElm->setAttrib('data-url', $oBaseUrlHelper->baseUrl('/contribuinte/nota/verificar-contribuinte-optante-simples'));
     $oElm->setRequired(TRUE);
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 'natureza_operacao', array('divspan' => 5));
     $oElm->setLabel('Natureza da Operação:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     // Popula as naturezas de operacao
     self::setNaturezaOperacao();
     // Grupo da nota (o tipo padrão é o da NFSe)
     $oElm = $this->createElement('hidden', 'grupo_nota');
     $oElm->setValue(Contribuinte_Model_Nota::GRUPO_NOTA_NFSE);
     $this->addElement($oElm);
     $aGrupoElementosDadosNota = array('dt_nota', 'natureza_operacao');
     if (!$this->lRps) {
         $oElm = $this->createElement('checkbox', 'nota_substituta', array('divspan' => 4));
         $oElm->setLabel('Nota Substituta:');
         $oElm->setAttrib('class', 'span3');
         $oElm->removeDecorator('errors');
         $this->addElement($oElm);
         $oElm = $this->createElement('text', 'nota_substituida', array('divspan' => 5));
         $oElm->setLabel('Nº da Nota Substituida:');
         $oElm->setAttrib('class', 'span3 mask-numero');
         $oElm->setAttrib('maxlength', 10);
         $oElm->removeDecorator('errors');
         $this->addElement($oElm);
         $aGrupoElementosDadosNota[] = 'nota_substituta';
         $aGrupoElementosDadosNota[] = 'nota_substituida';
     }
     // Adiciona elementos ao grupo dos dados da nota
     $this->addDisplayGroup($aGrupoElementosDadosNota, 'dados_nota', array('legend' => 'Dados da Nota'));
     /**
      * RPS
      */
     if ($this->lRps) {
         // Seta o grupo de nota para o tipo RPS
         $this->getElement('grupo_nota')->setValue(Contribuinte_Model_Nota::GRUPO_NOTA_RPS);
         $oElm = $this->createElement('select', 'tipo_nota', array('divspan' => 10));
         $oElm->setLabel('Tipo de Documento:');
         $oElm->setAttrib('class', 'span6');
         $oElm->setRequired(TRUE);
         $oElm->removeDecorator('errors');
         $this->addElement($oElm);
         // Popula os tipos de documento
         self::setTiposDocumento();
         // Data de emissão do RPS
         $oElm = $this->createElement('text', 'data_rps', array('divspan' => 4));
         $oElm->setLabel('Data do RPS:');
         $oElm->setAttrib('class', 'span2');
         $oElm->addValidator(new Zend_Validate_Date(array('format' => 'dd/mm/yyyy')));
         $oElm->setRequired(TRUE);
         $oElm->removeDecorator('errors');
         $this->addElement($oElm);
         // Número do RPS
         $oElm = $this->createElement('text', 'n_rps', array('divspan' => 2));
         $oElm->setLabel('Número do RPS:');
         $oElm->setAttrib('class', 'span2 mask-numero');
         $oElm->setAttrib('maxlength', '5');
         $this->addElement($oElm);
         // Adiciona os elementos ao grupo de dados do RPS
         $this->addDisplayGroup(array('tipo_nota', 'data_rps', 'n_rps'), 'dados_rps', array('legend' => 'RPS'));
     }
     /**
      * Dados do Tomador
      */
     $oElm = $this->createElement('checkbox', 's_dados_iss_retido', array('divspan' => 10));
     $oElm->setLabel('Subst. Tributário (Retido):');
     $oElm->setAttrib('style', 'width:18px');
     $oElm->setAttrib('checked', FALSE);
     $this->addElement($oElm);
     $oElm = $this->createElement('button', 'buscador', array('label' => '', 'icon' => 'search', 'iconPosition' => Twitter_Bootstrap_Form_Element_Button::ICON_POSITION_LEFT));
     $oElm = $this->createElement('text', 't_cnpjcpf', array('divspan' => 10, 'append' => $oElm));
     $oElm->setLabel('CPF / CNPJ:');
     $oElm->setAttrib('class', 'span3 mask-cpf-cnpj');
     $oElm->setAttrib('campo-ref', 'cpf');
     $oElm->setAttrib('maxlength', 18);
     $oElm->setAttrib('url', $oBaseUrlHelper->baseUrl('/contribuinte/empresa/dados-cgm'));
     $oElm->addValidator(new DBSeller_Validator_CpfCnpj());
     $oElm->addFilter(new Zend_Filter_Digits());
     $oElm->setRequired(FALSE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_razao_social', array('divspan' => 10));
     $oElm->setLabel('Nome / Razão Social:');
     $oElm->setAttrib('class', 'span9');
     $oElm->setAttrib('campo-ref', 'nome');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_nome_fantasia', array('divspan' => 10));
     $oElm->setLabel('Nome Fantasia:');
     $oElm->setAttrib('class', 'span4 pessoa_juridica');
     $oElm->setAttrib('campo-ref', 'nome_fanta');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_im', array('divspan' => 5));
     $oElm->setLabel('Inscrição Municipal:');
     $oElm->setAttrib('class', 'span3 pessoa_juridica');
     $oElm->setAttrib('campo-ref', 'inscricao');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_ie', array('divspan' => 5));
     $oElm->setLabel('Inscrição Estadual:');
     $oElm->setAttrib('class', 'span4 pessoa_juridica');
     $oElm->setAttrib('campo-ref', 'inscr_est');
     $this->addElement($oElm);
     //$oElm = $this->createElement('hidden', 't_cod_pais');
     //$oElm->setValue('01058'); //codigo_bacen do Brasil
     //$this->addElement($oElm);
     $aPaises = Default_Model_Cadenderpais::getAll();
     $oElm = $this->createElement('select', 't_cod_pais', array('multiOptions' => $aPaises, 'divspan' => 5));
     $oElm->setLabel('País:');
     $oElm->setAttrib('class', 'select-estados span3 dados-tomador');
     $oElm->setValue('01058');
     $this->addElement($oElm);
     // Lista de estados
     $aEstado = Default_Model_Cadenderestado::getEstados('01058');
     $oElm = $this->createElement('select', 't_uf', array('multiOptions' => $aEstado, 'divspan' => 5));
     $oElm->setLabel('Estado:');
     $oElm->setAttrib('class', 'select-estados span3 dados-tomador');
     $oElm->setAttrib('select-munic', 't_cod_municipio');
     $oElm->setAttrib('ajax-url', $oBaseUrlHelper->baseUrl('/endereco/get-municipios/'));
     $oElm->setAttrib('campo-ref', 'uf');
     $oElm->setAttrib('key', FALSE);
     $oElm->setRequired(FALSE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 't_cod_municipio', array('divspan' => 3));
     $oElm->setLabel('Município:');
     $oElm->setAttrib('class', 'span4 dados-tomador');
     $oElm->setAttrib('campo-ref', 'cod_ibge');
     $oElm->setAttrib('key', TRUE);
     $oElm->removeDecorator('errors');
     $oElm->setRequired(FALSE);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_cep', array('divspan' => 10));
     $oElm->setLabel('CEP:');
     $oElm->setAttrib('class', 'span2 mask-cep dados-tomador');
     $oElm->setAttrib('campo-ref', 'cep');
     $oElm->setAttrib('maxlength', 8);
     $oElm->addFilter(new Zend_Filter_Digits());
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_endereco', array('divspan' => 7));
     $oElm->setLabel('Endereço:');
     $oElm->setAttrib('class', 'span6 dados-tomador');
     $oElm->setAttrib('campo-ref', 'logradouro');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_endereco_numero', array('divspan' => 4));
     $oElm->setLabel('Número:');
     $oElm->setAttrib('class', 'span2 numerico dados-tomador');
     $oElm->setAttrib('campo-ref', 'numero');
     $oElm->setAttrib('maxlength', 8);
     $oElm->setValidators(array('Int'));
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_endereco_comp', array('divspan' => 5));
     $oElm->setLabel('Complemento:');
     $oElm->setAttrib('class', 'span4 dados-tomador');
     $oElm->setAttrib('campo-ref', 'complemento');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_bairro', array('divspan' => 3));
     $oElm->setLabel('Bairro:');
     $oElm->setAttrib('class', 'span4 dados-tomador');
     $oElm->setAttrib('campo-ref', 'bairro');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_telefone', array('divspan' => 4));
     $oElm->setLabel('Telefone:');
     $oElm->setAttrib('class', 'span3 mask-fone');
     $oElm->setAttrib('campo-ref', 'telefone');
     $oElm->setAttrib('maxlength', 14);
     $oElm->addFilter(new Zend_Filter_Digits());
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 't_email', array('divspan' => 5));
     $oElm->setLabel('Email:');
     $oElm->setAttrib('class', 'span5');
     $oElm->setAttrib('campo-ref', 'email');
     $oElm->removeDecorator('errors');
     $oElm->addValidator('EmailAddress');
     $this->addElement($oElm);
     $this->addDisplayGroup(array('s_dados_iss_retido', 't_cnpjcpf', 't_cod_pais', 't_razao_social', 't_nome_fantasia', 't_im', 't_ie', 't_uf', 't_cod_municipio', 't_cep', 't_endereco', 't_endereco_numero', 't_endereco_comp', 't_bairro', 't_telefone', 't_email'), 'tomador', array('legend' => 'Tomador'));
     /**
      * Dados do servico
      */
     $oElm = $this->createElement('select', 's_dados_cod_tributacao', array('multiOptions' => array(), 'divspan' => 10));
     $oElm->setLabel('Serviço:');
     $oElm->setAttrib('class', 'span9');
     $oElm->setAttrib('url', $oBaseUrlHelper->baseUrl('/contribuinte/nota/get-servico/'));
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('hidden', 's_dados_cod_pais');
     $oElm->setValue('01058');
     //codigo_bacen do Brasil
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 'estado', array('multiOptions' => $aEstado, 'divspan' => 5));
     $oElm->setLabel('Estado:');
     $oElm->setAttrib('class', 'select-estados span3');
     $oElm->setAttrib('select-munic', 's_dados_municipio_incidencia');
     $oElm->setAttrib('ajax-url', $oBaseUrlHelper->baseUrl('/endereco/get-municipios/'));
     $oElm->setAttrib('key', FALSE);
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     // Lista de cidades
     $aCidade = array('0' => '');
     $oElm = $this->createElement('select', 's_dados_municipio_incidencia', array('multiOptions' => $aCidade, 'divspan' => 5));
     $oElm->setLabel('Município:');
     $oElm->setAttrib('class', 'span4');
     $oElm->setAttrib('key', TRUE);
     $oElm->removeDecorator('errors');
     $oElm->clearValidators();
     $oElm->setRequired(TRUE);
     $this->addElement($oElm);
     $oElm = $this->createElement('textarea', 'descricao', array('divspan' => 10));
     $oElm->setLabel('Descrição do Serviço:');
     $oElm->setAttrib('class', 'span9 exibir-contador-maxlength');
     $oElm->setAttrib('rows', '6');
     $oElm->setAttrib('maxlength', 2000);
     $oElm->removeDecorator('errors');
     $oElm->setRequired(TRUE);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_codigo_obra', array('divspan' => 5));
     $oElm->setLabel('Código da Obra:');
     $oElm->setAttrib('maxlength', 14);
     $oElm->setAttrib('class', 'span3');
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_art', array('divspan' => 5));
     $oElm->setLabel('ART:');
     $oElm->setAttrib('maxlength', 14);
     $oElm->setAttrib('class', 'span3');
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('textarea', 's_informacoes_complementares', array('divspan' => 10));
     $oElm->setLabel('Outras Informações:');
     $oElm->setAttrib('class', 'span9 exibir-contador-maxlength');
     $oElm->setAttrib('maxlength', 600);
     $oElm->setAttrib('rows', '6');
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $this->addDisplayGroup(array('s_dados_cod_tributacao', 's_dados_cod_cnae', 's_dados_item_lista_servico', 'descricao_item_lista_servico', 's_dados_cod_pais', 'estado', 's_dados_municipio_incidencia', 'descricao', 's_codigo_obra', 's_art', 's_informacoes_complementares'), 'grp_servico', array('legend' => 'Dados do Serviço'));
     /**
      * Valores do servico
      */
     $oElm = $this->createElement('text', 's_vl_servicos', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('Valor do Serviço:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $oElm->setRequired(TRUE);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_deducoes', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('Dedução:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->setAttrib('habilita_deducao', FALSE);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_bc', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('Base de Cálculo:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->setAttrib('readonly', TRUE);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_aliquota', array('append' => '%', 'divspan' => 3));
     $oElm->setLabel('Alíquota:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 5);
     $oElm->removeDecorator('errors');
     $oElm->addValidator(new Zend_Validate_Between(array('min' => 0, 'max' => 9999, 'inclusive' => TRUE)));
     $oElm->setValue(0);
     $oElm->setRequired(TRUE);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_iss', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('ISS:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->setAttrib('readonly', TRUE);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_pis', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('PIS:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_cofins', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('COFINS:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_inss', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('INSS:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_ir', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('IR:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_csll', array('prepend' => 'R$', 'divspan' => 6));
     $oElm->setLabel('CSLL:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_outras_retencoes', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('Outras Retenções:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_condicionado', array('prepend' => 'R$', 'divspan' => 6));
     $oElm->setLabel('Desconto Condicional:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_desc_incondicionado', array('prepend' => 'R$', 'divspan' => 3));
     $oElm->setLabel('Desconto Incondicional:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->removeDecorator('errors');
     $oElm->addValidator($oValidacaoFloat);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 's_vl_liquido', array('prepend' => 'R$', 'divspan' => 6));
     $oElm->setLabel('Valor Líquido:');
     $oElm->setAttrib('class', 'input-small mask-valores');
     $oElm->setAttrib('placeholder', '0,00');
     $oElm->setAttrib('maxlength', 11);
     $oElm->setAttrib('readonly', TRUE);
     $oElm->addValidator(new DBSeller_Validator_Between(array('min' => 0, 'max' => 99999999999, 'inclusive' => false)));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('hidden', 's_tributacao_municipio');
     $oElm->setValue('f');
     $this->addElement($oElm);
     $oElm = $this->createElement('hidden', 's_dados_cod_tributacao_copia');
     $oElm->setValue(NULL);
     $this->addElement($oElm);
     $this->addDisplayGroup(array('s_vl_servicos', 's_vl_deducoes', 's_vl_bc', 's_vl_aliquota', 's_vl_iss', 's_vl_pis', 's_vl_cofins', 's_vl_cofins', 's_vl_inss', 's_vl_ir', 's_vl_csll', 's_vl_outras_retencoes', 's_vl_condicionado', 's_vl_desc_incondicionado', 's_vl_liquido'), 'valores', array('legend' => 'Valores do Serviço'));
     if ($this->sCodigoVerificacao == NULL) {
         $this->addElement('button', 'emitir', array('label' => 'Emitir', 'type' => 'submit', 'buttonType' => Twitter_Bootstrap_Form_Element_Button::BUTTON_SUCCESS, 'data-loading-text' => $oTradutor->_('Aguarde...'), 'class' => 'span2'));
         $this->addDisplayGroup(array('emitir'), 'actions', array('disableLoadDefaultDecorators' => TRUE, 'decorators' => array('Actions')));
     } else {
         $this->addElement(new Twitter_Bootstrap_Form_Element_Button('nova', array('label' => 'Nova', 'type' => 'button', 'url' => $oBaseUrlHelper->baseUrl('/contribuinte/nota/index/'), 'buttonType' => Twitter_Bootstrap_Form_Element_Button::BUTTON_SUCCESS)));
         $this->addElement(new Twitter_Bootstrap_Form_Element_Button('imprimir', array('label' => 'Imprimir', 'type' => 'button', 'url' => $oBaseUrlHelper->baseUrl("/contribuinte/nota/nota-impressa/cod/{$this->sCodigoVerificacao}"), 'buttonType' => Twitter_Bootstrap_Form_Element_Button::BUTTON_SUCCESS)));
         $this->addDisplayGroup(array('imprimir', 'nova'), 'actions', array('disableLoadDefaultDecorators' => TRUE, 'decorators' => array('Actions')));
     }
     return $this;
 }
 public function init()
 {
     $this->setAction('/default/index/cadastro')->setMethod('post');
     $oElm = $this->createElement('hidden', 'id');
     $this->addElement($oElm);
     $aTipos = array(1 => 'Contador', 2 => 'Contribuinte Prestador', 3 => 'Contribuinte Tomador', 4 => 'Gráfica');
     $oElm = $this->createElement('select', 'tipo', array('multiOptions' => $aTipos));
     $oElm->setLabel('Tipo:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setOptions($aTipos);
     $oElm->setRequired(TRUE);
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'cpfcnpj');
     $oElm->setLabel('CPF / CNPJ:');
     $oElm->setAttrib('class', 'span3 mask-cpf-cnpj');
     $oElm->setAttrib('maxlength', '14');
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new E2Tecnologia_Validator_Cpf());
     $oElm->addValidator(new E2Tecnologia_Validator_Cnpj());
     $oElm->addFilter(new Zend_Filter_Digits());
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'nome');
     $oElm->setLabel('Nome / Razão Social:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'nome_fantasia');
     $oElm->setLabel('Nome Fantasia:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'login');
     $oElm->setLabel('Login:'******'class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('password', 'senha');
     $oElm->setLabel('Senha:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 6)));
     $oElm->addValidator(new Zend_Validate_Identical('senha_confirma'));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('password', 'senha_confirma');
     $oElm->setLabel('Confirme a Senha:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 6)));
     $oElm->addValidator(new Zend_Validate_Identical('senha'));
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'cep');
     $oElm->setLabel('CEP:');
     $oElm->setAttrib('class', 'span3 mask-cep');
     $oElm->setAttrib('campo-ref', 'cep');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = new Zend_Form_Element_Hidden('pais');
     $oElm->setValue('01058');
     $this->addElement($oElm);
     $aEstados = Default_Model_Cadenderestado::getEstados($this->pais->getValue());
     $oElm = $this->createElement('select', 'estado', array('multiOptions' => $aEstados));
     $oElm->setLabel('Estado:');
     $oElm->setAttrib('class', 'span3 select-estados');
     $oElm->setAttrib('ajax-url', '/endereco/get-municipios/');
     $oElm->setAttrib('campo-ref', 'uf');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 'cidade');
     $oElm->setAttrib('class', 'span3');
     $oElm->setAttrib('ajax-url', '/endereco/get-bairros/');
     $oElm->setAttrib('campo-ref', 'municipio');
     $oElm->setLabel('Cidade:');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 'cod_bairro');
     $oElm->setLabel('Bairro:');
     $oElm->setAttrib('class', 'span3 campo-oculto');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'bairro');
     $oElm->setLabel('Bairro:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('select', 'cod_endereco');
     $oElm->setLabel('Endereço:');
     $oElm->setAttrib('class', 'span3 campo-oculto');
     $oElm->setAttrib('campo-ref', 'logradouro');
     $oElm->setAttrib('ajax-url', '/endereco/get-enderecos/');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'endereco');
     $oElm->setLabel('Endereço:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'numero');
     $oElm->setLabel('Número:');
     $oElm->setAttrib('class', 'span3');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $e = $this->createElement('text', 'complemento');
     $e->setLabel('Complemento:');
     $e->setAttrib('class', 'span3');
     $this->addElement($e);
     $oElm = $this->createElement('text', 'telefone');
     $oElm->setLabel('Telefone:');
     $oElm->setAttrib('class', 'span3 mask-fone');
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $oElm = $this->createElement('text', 'email');
     $oElm->setLabel('Email:');
     $oElm->setAttrib('class', 'span3');
     $oElm->addValidator(new Zend_Validate_EmailAddress());
     $oElm->setRequired(TRUE);
     $oElm->removeDecorator('errors');
     $this->addElement($oElm);
     $this->addDisplayGroup(array('tipo', 'cpfcnpj', 'nome', 'nome_fantasia', 'login', 'senha', 'senha_confirma', 'cep', 'estado', 'cidade', 'cod_bairro', 'bairro', 'cod_endereco', 'endereco', 'numero', 'complemento', 'telefone', 'email'), 'dados_nota', array('legend' => 'Dados do Usuário'));
     if ($this->confirmacao) {
         // Carrega perfis tem que ver como vai ser controlado qual perfil pode vincular usuarios com quais perfis
         $aPerfis = array('' => '');
         $aListaPerfis = Administrativo_Model_Perfil::getAll();
         foreach ($aListaPerfis as $oPerfil) {
             $aPerfis[$oPerfil->getId()] = $oPerfil->getNome();
         }
         $oElm = $this->createElement('select', 'id_perfil', array('multiOptions' => $aPerfis));
         $oElm->setLabel('Perfil:');
         $oElm->setRequired(TRUE);
         $oElm->setOrder(1);
         $this->addElement($oElm);
         $this->addElement('submit', 'submit', array('label' => 'Confirmar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS));
         $this->addElement('submit', 'cancel', array('label' => 'Recusar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_DANGER));
         $this->addDisplayGroup(array('submit', 'cancel'), 'actions', array('disableLoadDefaultDecorators' => TRUE, 'decorators' => array('Actions')));
     } else {
         $this->addElement('submit', 'submit', array('label' => 'Salvar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS));
         $this->addDisplayGroup(array('submit'), 'actions', array('disableLoadDefaultDecorators' => TRUE, 'decorators' => array('Actions')));
     }
 }
 /**
  * Retorna lista dos estados
  *
  * @param string $cod
  * @return JSON
  */
 public function getEstadosAction()
 {
     $bacen = $this->getRequest()->getParam('cod');
     $estados = Default_Model_Cadenderestado::getEstados($bacen);
     echo $this->getHelper('json')->sendJson($estados);
 }