/** * Reescrita do Metodo Header da Classe FPDF * * @see FPDF::Header() */ public function Header() { $sLogotipoPrefeitura = APPLICATION_PATH . '/../public/global/img/brasao.jpg'; $sTarjaSemValorFiscal = APPLICATION_PATH . '/../public/administrativo/img/nfse/tarja_sem_valor.png'; if (file_exists($sLogotipoPrefeitura)) { $this->Image($sLogotipoPrefeitura, 12, 10); } if (file_exists($sTarjaSemValorFiscal) && getenv("APPLICATION_ENV") != 'production') { $this->Image($sTarjaSemValorFiscal, 30, 50); } $oParametrosPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll(); $this->SetFont('Arial', '', 12); $this->Cell(0, 8, utf8_decode($oParametrosPrefeitura[0]->getNome()), 0, 1, 'C'); $this->Cell(0, 8, utf8_decode('RELATÓRIO DE CONTRIBUINTES COM PERMISSÃO AO WEBSERVICE'), 0, 1, 'C'); $this->SetFont('Arial', 'U', 12); $this->Cell(0, 8, utf8_decode($this->sAmbiente), 0, 1, 'C'); $this->Ln(20); }
/** * Comprovante de importação de RPS */ public function rpsReciboAction() { parent::noLayout(); $iIdImportacao = $this->_getParam('id'); $oDoctrine = Zend_Registry::get('em'); $oImportacao = $oDoctrine->find('\\Contribuinte\\ImportacaoArquivo', $iIdImportacao); $oDadosUsuario = Administrativo_Model_Usuario::getById($oImportacao->getIdUsuario()); $oPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll(); // Dados da View $this->view->oImportacao = $oImportacao; $this->view->oDadosUsuario = $oDadosUsuario; $this->view->oDadosPrefeitura = $oPrefeitura[0]; $this->view->sNomePrefeitura = $oPrefeitura[0]->getEntity()->getNome(); // Carrega a view do comprovante $sHtml = $this->view->render('importacao-arquivo/comprovante-importacao-rps.phtml'); // Renderiza a view do comprovante $this->renderPdf($sHtml, 'comprovante-importacao-rps', array('format' => 'A4')); }
/** * Gera o comprovante para a importacao de DMS */ public function comprovanteAction() { parent::noLayout(); $iIdImportacao = $this->getRequest()->getParam('id'); $oImportacao = Contribuinte_Model_ImportacaoDms::getByAttribute('id', $iIdImportacao)->getEntity(); $oDadosContador = Contribuinte_Model_Contribuinte::getByInscricaoMunicipal($oImportacao->getCodigoEscritorio()); $oDadosUsuario = Administrativo_Model_Usuario::getById($oImportacao->getIdUsuario()); $aPrefeitura = Administrativo_Model_ParametroPrefeitura::getListAll(); $oPrefeitura = reset($aPrefeitura); $this->view->oImportacao = $oImportacao; $this->view->oDadosContador = $oDadosContador; $this->view->oDadosUsuario = $oDadosUsuario; $this->view->oDadosPrefeitura = $oPrefeitura; $this->view->sNomePrefeitura = $oPrefeitura->getEntity()->getNome(); $this->_helper->layout->setLayout('pdf'); $this->renderPdf($this->view->render('dms/comprovante.phtml'), 'comprovante', array('format' => 'A4')); }
/** * Valida a importação de arquivo do tipo RPS modelo 1 (ABRASF 1.0) */ public function validaArquivoCarregado() { $oSessao = new Zend_Session_Namespace('nfse'); if (empty($this->oDadosPrefeitura)) { $aParametrosPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll(0, 1); if (count($aParametrosPrefeitura) == 0) { throw new Exception('Parâmetros da prefeitura não configurados. Processamento Abortado'); } $this->oDadosPrefeitura = $aParametrosPrefeitura[0]; } if (empty($this->oArquivoXmlRetorno->lote->numero)) { $this->setMensagemErro('E88'); } if (empty($this->oArquivoXmlRetorno->lote->cnpj)) { $this->setMensagemErro('E46'); } $oContribuinte = Contribuinte_Model_Contribuinte::getByCpfCnpj($this->oArquivoXmlRetorno->lote->cnpj); if (empty($oContribuinte)) { $this->setMensagemErro('E45', 'Contribuinte: ' . $this->oArquivoXmlRetorno->lote->cnpj); } else { if ($oContribuinte->getCgcCpf() != $oSessao->contribuinte->getCgcCpf()) { $this->setMensagemErro('E156', '', true); } } if ($this->oArquivoXmlRetorno->lote->quantidade_rps != count($this->oArquivoXmlRetorno->rps)) { $this->setMensagemErro('E69'); } if (strlen($this->oArquivoXmlRetorno->lote->quantidade_rps) > 4) { $this->setMensagemErro('E72'); } $aNumeracaoRPS = array(); foreach ($this->oArquivoXmlRetorno->rps as $oRps) { if ($this->oArquivoXmlRetorno->lote->inscricao_municipal != $oRps->prestador->inscricao_municipal) { $this->setMensagemErro('E70', 'RPS: ' . $oRps->numero); } if (empty($oRps->numero)) { $this->setMensagemErro('E11'); } else { if (is_int($oRps->numero) && strlen($oRps->numero) > 15) { $this->setMensagemErro('E96', 'RPS: ' . $oRps->numero); } if (in_array($oRps->numero, $aNumeracaoRPS)) { $this->setMensagemErro('E71', 'RPS: ' . $oRps->numero); } $aNumeracaoRPS[$oRps->numero] = NULL; } if (strlen($oRps->serie) > 5) { $this->setMensagemErro('E97', 'RPS: ' . $oRps->numero); } if (empty($oRps->tipo)) { $this->setMensagemErro('E12', 'RPS: ' . $oRps->numero); } if (empty($oRps->natureza_operacao)) { $this->setMensagemErro('E3', 'RPS: ' . $oRps->numero); } else { if (!in_array($oRps->natureza_operacao, array(1, 2, 3, 4, 5, 6))) { $this->setMensagemErro('E144', 'RPS: ' . $oRps->numero); } } if (empty($oRps->optante_simples_nacional)) { $this->setMensagemErro('E8', 'RPS: ' . $oRps->numero); } else { if (!in_array($oRps->optante_simples_nacional, array(1, 2))) { $this->setMensagemErro('E146', 'RPS: ' . $oRps->numero); } } if (empty($oRps->incentivador_cultural)) { $this->setMensagemErro('E9', 'RPS: ' . $oRps->numero); } else { if (!in_array($oRps->incentivador_cultural, array(1, 2))) { $this->setMensagemErro('E147', 'RPS: ' . $oRps->numero); } } if (empty($oRps->data_emissao)) { $this->setMensagemErro('E14', 'RPS: ' . $oRps->numero); } if (!in_array($oRps->status, array(1, 2))) { $this->setMensagemErro('E68', 'RPS: ' . $oRps->numero); } if ($oRps->data_emissao->format('Ymd') > date('Ymd')) { $this->setMensagemErro('E16', 'RPS: ' . $oRps->numero); } if ($oRps->prestador->cnpj == $oRps->tomador->cpf_cnpj) { $this->setMensagemErro('E52', 'RPS: ' . $oRps->numero); } // validação dos valores se float $oNumeroFloat = new Zend_Validate_Float(); if ($oRps->servico->valores->valor_servicos <= 0) { $this->setMensagemErro('E18', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_servicos)) { $this->setMensagemErro('E100', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_servicos <= 0) { $this->setMensagemErro('E18', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_deducoes > $oRps->servico->valores->valor_servicos) { $this->setMensagemErro('E19', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_deducoes < 0) { $this->setMensagemErro('E20', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_deducoes)) { $this->setMensagemErro('E101', 'RPS: ' . $oRps->numero); } $fTotalDesconto = $oRps->servico->valores->desconto_incondicionado + $oRps->servico->valores->desconto_condicionado; if ($fTotalDesconto > $oRps->servico->valores->valor_servicos) { $this->setMensagemErro('E21', 'RPS: ' . $oRps->numero); } if ($fTotalDesconto < 0) { $this->setMensagemErro('E22', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($fTotalDesconto)) { $this->setMensagemErro('E102', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_pis < 0) { $this->setMensagemErro('E23', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_pis)) { $this->setMensagemErro('E103', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_cofins < 0) { $this->setMensagemErro('E24', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_cofins)) { $this->setMensagemErro('E103', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_inss < 0) { $this->setMensagemErro('E25', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_inss)) { $this->setMensagemErro('E103', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_ir < 0) { $this->setMensagemErro('E26', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_ir)) { $this->setMensagemErro('E103', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->valor_csll < 0) { $this->setMensagemErro('E27', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_csll)) { $this->setMensagemErro('E103', 'RPS: ' . $oRps->numero); } if (!in_array($oRps->servico->valores->iss_retido, array(1, 2))) { $this->setMensagemErro('E36', 'RPS: ' . $oRps->numero); } if ($oRps->servico->valores->iss_retido == 1) { if ($oRps->servico->valores->valor_iss_retido <= 0) { $this->setMensagemErro('E40', 'RPS: ' . $oRps->numero); } if (!$oNumeroFloat->isValid($oRps->servico->valores->valor_iss_retido)) { $this->setMensagemErro('E153', 'RPS: ' . $oRps->numero); } if (strlen(DBSeller_Helper_Number_Format::unmaskCPF_CNPJ($oRps->tomador->cpf_cnpj)) != 14) { $this->setMensagemErro('E39', 'RPS: ' . $oRps->numero . ". Serviços tomados por pessoa Física não pode reter iss"); } } if ($oRps->servico->valores->iss_retido == 1 && $oRps->servico->valores->valor_iss_retido > $oRps->servico->valores->valor_servicos) { $this->setMensagemErro('E99', 'RPS: ' . $oRps->numero); } if (empty($oRps->servico->discriminacao)) { $this->setMensagemErro('E41', 'RPS: ' . $oRps->numero); } if (!empty($oContribuinte)) { $iInscricaoMunicipal = $oContribuinte->getInscricaoMunicipal(); $aServicos = Contribuinte_Model_Servico::getByIm($iInscricaoMunicipal); // Valida se o prestador de serviço pode atuar no município if (empty($aServicos)) { $this->setMensagemErro('E17', 'RPS: ' . $oRps->numero); } // Valida se o prestador do serviço é emissor de NFSE $iTipoEmissaoNfse = Contribuinte_Model_ContribuinteAbstract::TIPO_EMISSAO_NOTA; if ($oContribuinte->getTipoEmissao($iInscricaoMunicipal) != $iTipoEmissaoNfse) { $this->setMensagemErro('E138', 'RPS: ' . $oRps->numero); } // Valida a competência $oCompetencia = new Contribuinte_Model_Competencia($oRps->data_emissao->format('Y'), $oRps->data_emissao->format('m'), $oContribuinte); if (empty($oCompetencia) || $oCompetencia->existeGuiaEmitida()) { $this->setMensagemErro(null, "A competência da RPS \"{$oRps->numero}\" é inválida, já existe Guia Emitida."); } } // Valida se a data é maior que a atual if ($oRps->data_emissao->format('Y-m') > date('Y-m')) { $this->setMensagemErro('E2', 'RPS: ' . $oRps->numero); } // Valida se já existe na base de dados $oTipoRps = Administrativo_Model_ParametroPrefeituraRps::getByTipoNfse($oRps->tipo); $iTipoRps = 0; // Valida o tipo de RPS if (is_object($oTipoRps)) { $iTipoRps = $oTipoRps->getEntity()->getTipoEcidade($oRps->tipo); } if ($iTipoRps == 0) { $this->setMensagemErro('E13', 'RPS: ' . $oRps->numero); } // Verifica se a numeração do AIDOF é válida $oAidof = new Administrativo_Model_Aidof(); $lVerificaNumeracaoRps = $oAidof->verificarNumeracaoValidaParaEmissaoDocumento($oSessao->contribuinte->getInscricaoMunicipal(), $oRps->numero, $iTipoRps); if ($lVerificaNumeracaoRps === FALSE) { $this->setMensagemErro('E90', 'RPS: ' . $oRps->numero); } $lExisteRps = Contribuinte_Model_Nota::existeRps($oSessao->contribuinte, $oRps->numero, $oRps->tipo); if ($lExisteRps) { $this->setMensagemErro('E10', 'RPS: ' . $oRps->numero); } if (empty($oRps->servico->atividade)) { $this->setMensagemErro('E31', 'RPS: ' . $oRps->numero); } else { if (strlen($oRps->servico->atividade) > 5) { $this->setMensagemErro('E104', 'RPS: ' . $oRps->numero); } // Valida Grupo de Serviço/Atividade if (!empty($iInscricaoMunicipal)) { $oServico = Contribuinte_Model_Servico::getServicoPorAtividade($iInscricaoMunicipal, $oRps->servico->atividade); if (!$oServico) { $this->setMensagemErro('E30', 'RPS: ' . $oRps->numero); } } } if (empty($oRps->servico->codigo_cnae)) { $this->setMensagemErro('E33', 'RPS: ' . $oRps->numero); } else { if (strlen($oRps->servico->codigo_cnae) > 7) { $this->setMensagemErro('E105', 'RPS: ' . $oRps->numero); } } if (!empty($oRps->servico->ibge_municipio)) { if (strlen($oRps->servico->ibge_municipio) > 7) { $this->setMensagemErro('E108', 'RPS: ' . $oRps->numero); } // 2 = fora do municipio if ($oRps->natureza_operacao == 2 && $oRps->servico->ibge_municipio == $this->oDadosPrefeitura->getIbge()) { $this->setMensagemErro('E110', 'RPS: ' . $oRps->numero); } } // Validar IBGE Prefeitura if ($oRps->natureza_operacao == 1 && $this->oDadosPrefeitura->getIbge() !== $oRps->servico->ibge_municipio) { $this->setMensagemErro('E42', 'RPS: ' . $oRps->numero); } if (strlen($oRps->construcao_civil->art) > 15) { $this->setMensagemErro('E130', 'RPS: ' . $oRps->numero); } if (strlen($oRps->construcao_civil->codigo_obra) > 15) { $this->setMensagemErro('E129', 'Rps: ' . $oRps->numero); } if (count($this->aMensagensErroValidacao) >= 50) { $this->setMensagemErro('E49', '', TRUE); } } // Se existirem erros executa uma exceção com a lista de erros if (count($this->aMensagensErroValidacao) > 0) { return FALSE; } return TRUE; }
/** * Retorna os dados da prefeitura * * @return mixed * @throws Exception */ public static function getDadosPrefeituraBase() { $oDadosPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll(); if (count($oDadosPrefeitura) > 1) { throw new Exception('Cadastro de Prefeitura Inconsistente. Favor entre em contato com o Suporte'); } return $oDadosPrefeitura[0]; }
/** * Define os dados da prefeitura * * @param Administrativo_Model_ParametroPrefeitura $oDadosPrefeitura * @param bool $lLivroFiscal */ public function setDadosPrefeitura(Administrativo_Model_ParametroPrefeitura $oDadosPrefeitura, $lLivroFiscal = TRUE) { if ($lLivroFiscal) { $this->AddPage(); } $this->lImprimePaginas = TRUE; $sLogotipoPrefeitura = APPLICATION_PATH . '/../public/global/img/brasaomenor.jpg'; if (file_exists($sLogotipoPrefeitura)) { $this->Image($sLogotipoPrefeitura, 8, 7); } $sTitulo = 'Livro Fiscal Serviços Prestados Mensal'; if (!$lLivroFiscal) { $sTitulo = 'DECLARAÇÃO DE RECEITAS'; } $this->SetFont('Arial', 'B', 10); $this->Cell(0, 5, utf8_decode($oDadosPrefeitura->getNome()), 0, 0, 'C'); $this->Ln(); $this->Cell(0, 5, 'SECRETARIA MUNICIPAL DA FAZENDA', 0, 0, 'C'); $this->Ln(); $this->Ln(); $this->Cell(0, 5, utf8_decode($sTitulo), 0, 0, 'C'); $this->Ln(15); }
/** * Preenche dados do formulario * * @param Administrativo_Model_ParametroPrefeitura $oParametroPrefeitura * @return Administrativo_Form_ParametroPrefeitura */ public function preenche(Administrativo_Model_ParametroPrefeitura $oParametroPrefeitura) { if ($oParametroPrefeitura->getModeloImportacaoRps() && isset($this->modelo_importacao_rps)) { $this->modelo_importacao_rps->setValue($oParametroPrefeitura->getModeloImportacaoRps()); } if ($oParametroPrefeitura->getModeloImpressaoNfse() && isset($this->modelo_impressao_nfse)) { $this->modelo_impressao_nfse->setValue($oParametroPrefeitura->getModeloImpressaoNfse()); } if ($oParametroPrefeitura->getInformacoesComplementaresNfse() && isset($this->informacoes_complementares_nfse)) { $this->informacoes_complementares_nfse->setValue($oParametroPrefeitura->getInformacoesComplementaresNfse()); } if ($oParametroPrefeitura->getSetor() && isset($this->setor)) { $this->setor->setValue($oParametroPrefeitura->getSetor()); } if ($oParametroPrefeitura->getSecretaria() && isset($this->secretaria)) { $this->secretaria->setValue($oParametroPrefeitura->getSecretaria()); } return $this; }
/** * Verifica se esta na regra do parametro da prfeitura para reter tomador pessoa fisica na emissão de nota * @param array $aDados array de dados do formulário * @return boolean true|false */ private function podeReterPessoaFisica(array $aDados) { if ($aDados['s_dados_iss_retido'] == 0) { return TRUE; } if (strlen($aDados['t_cnpjcpf']) > 14) { return TRUE; } $oParametrosPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll(); if ($aDados['natureza_operacao'] == 1 && $oParametrosPrefeitura[0]->getReterPessoaFisica() == 1) { return TRUE; } return FALSE; }
/** * 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; }