/** * Retorna os totalizadores da importação para geraçao das guias * * @param integer $iCodigoImportacaoDesif * @param bool $lDetalhes * @param null $fAliquota * @return array */ public static function getTotalReceitasGuia($iCodigoImportacaoDesif, $lDetalhes = FALSE, $fAliquota = NULL) { $aReceitaAgrupadas = array(); $aParametros = array('importacao_desif' => $iCodigoImportacaoDesif, 'guia' => NULL); $aReceitaAgrupadas = NULL; $aContasImportacaoGuia = Contribuinte_Model_DesifContaGuia::getByAttributes($aParametros); /** * Percorre as contas selecionadas que irá gerar as guias */ foreach ($aContasImportacaoGuia as $oDesifContaGuia) { $aParametros = array('importacao_desif' => $iCodigoImportacaoDesif, 'importacao_desif_conta' => $oDesifContaGuia->getImportacaoDesifConta()->getId()); /** * Filtro por aliquota */ if (!empty($fAliquota)) { $aParametros['aliq_issqn'] = "{$fAliquota}"; } $aDesifReceita = Contribuinte_Model_ImportacaoDesifReceita::getByAttributes($aParametros); $fValorTotal = 0; $fValorIss = 0; /** * Percore as receitas de cada importação */ foreach ($aDesifReceita as $oDesifReceita) { $fValor = $oDesifReceita->getValrCredMens(); $fAliqIssqn = DBSeller_Helper_Number_Format::toFloat($oDesifReceita->getAliqIssqn()); /** * Soma os totais por aliquota com detalhamento */ if ($lDetalhes) { if (isset($aAliqIssqnAgrupadas[$fAliqIssqn])) { $aAliqIssqnAgrupadas[$fAliqIssqn]['total_receita'] = $aAliqIssqnAgrupadas[$fAliqIssqn]['total_receita'] + $fValor; } else { $aAliqIssqnAgrupadas[$fAliqIssqn]['total_receita'] = $fValor; } $fValorTotal = $aAliqIssqnAgrupadas[$fAliqIssqn]['total_receita']; $aAliqIssqnAgrupadas[$fAliqIssqn]['total_iss'] = $fValorTotal * ($fAliqIssqn / 100); $aReceitaAgrupadas['id_importacao_desif'] = $iCodigoImportacaoDesif; $aReceitaAgrupadas['id_importacao_desif_conta'][] = $oDesifReceita->getImportacaoDesifConta()->getId(); $aReceitaAgrupadas['data_importacao'] = $oDesifReceita->getImportacaoDesif()->getDataImportacao(); $aReceitaAgrupadas['aliquotas_issqn'] = $aAliqIssqnAgrupadas; } else { $fValorTotal = $fValorTotal + $fValor; $fValorIss = $fValorIss + $fValor * ($fAliqIssqn / 100); } } /** * Retorna os valores totais das receitas e iss totalizadas */ if (!$lDetalhes) { $aReceitaAgrupadas['total_receita'] = $aReceitaAgrupadas['total_receita'] + $fValorTotal; $aReceitaAgrupadas['total_iss'] = $aReceitaAgrupadas['total_iss'] + $fValorIss; } } return $aReceitaAgrupadas; }
/** * Método para retornar os dados das contas em formato json para a DBJqGrid * * @param array $aParametros * @param bool $bDetalhes * @return array */ protected function retornaContasGuiaDesif(array $aParametros, $bDetalhes = FALSE) { $aRecord = array(); $iLimit = $aParametros['rows']; $iPage = $aParametros['page']; $sSord = $aParametros['sord']; $oContribuinte = $this->_session->contribuinte; $sCodigosContribuintes = NULL; $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_ImportacaoDesif::getQuery(), 'Contribuinte_Model_ImportacaoDesif', 'Contribuinte\\ImportacaoDesif'); foreach ($oContribuinte->getContribuintes() as $iIdContribuinte) { if ($sCodigosContribuintes == NULL) { $sCodigosContribuintes .= $iIdContribuinte; } else { $sCodigosContribuintes .= ',' . $iIdContribuinte; } } $oPaginatorAdapter->where("e.contribuinte in ({$sCodigosContribuintes})"); if (isset($aParametros['id'])) { $oPaginatorAdapter->andWhere("e.id = {$aParametros['id']}"); } $oPaginatorAdapter->orderBy("e.competencia_inicial, e.competencia_final", $sSord); /** * Monta a paginação do GridPanel */ $oResultado = new Zend_Paginator($oPaginatorAdapter); $oResultado->setItemCountPerPage($iLimit); $oResultado->setCurrentPageNumber($iPage); foreach ($oResultado as $oDesif) { $aValores = Contribuinte_Model_ImportacaoDesif::getTotalReceitasGuia($oDesif->getId(), $bDetalhes); /** * Verifica se for para exibir as aliquotas detalhadas */ if ($bDetalhes) { foreach ($aValores['aliquotas_issqn'] as $iAliqIssqn => $aReceitas) { $aRecord[] = array('id_importacao_desif' => $oDesif->getId(), 'aliq_issqn' => DBSeller_Helper_Number_Format::toFloat($iAliqIssqn), 'total_receita' => DBSeller_Helper_Number_Format::toMoney($aReceitas['total_receita'], 2, 'R$ '), 'total_iss' => DBSeller_Helper_Number_Format::toMoney($aReceitas['total_iss'], 2, 'R$ ')); } } else { if ($aValores['total_receita'] > 0 && $aValores['total_iss'] > 0) { $aRecord[] = array('id' => $oDesif->getId(), 'competencia_inicial' => $oDesif->getCompetenciaInicial(), 'competencia_final' => $oDesif->getCompetenciaFinal(), 'total_receita' => DBSeller_Helper_Number_Format::toMoney($aValores['total_receita'], 2, 'R$ '), 'total_iss' => DBSeller_Helper_Number_Format::toMoney($aValores['total_iss'], 2, 'R$ '), 'aValores' => $aValores); } } } $iTotal = $oResultado->getTotalItemCount(); $iTotalPages = $iTotal > 0 && $iLimit > 0 ? ceil($iTotal / $iLimit) : 0; /** * Parametros de retorno do AJAX */ $aRetornoJson = array('total' => $iTotalPages, 'page' => $iPage, 'records' => $iTotal, 'rows' => $aRecord); return $aRetornoJson; }
/** * Grava os parâmetros da prefeitura na base de dados * * @param array $aDados */ public function persist(array $aDados) { $oEntity = $this->getEm(); if (isset($aDados['ibge'])) { $this->setIbge($aDados['ibge']); } if (isset($aDados['nome'])) { $this->setNome($aDados['nome']); } if (isset($aDados['controle_aidof'])) { $this->setControleAidof($aDados['controle_aidof']); } if (isset($aDados['avisofim_emissao_nota'])) { $this->setQuantidadeAvisoFimEmissao($aDados['avisofim_emissao_nota']); } if (isset($aDados['verifica_autocadastro'])) { $this->setVerificaAutocadastro($aDados['verifica_autocadastro']); } if (isset($aDados['nota_retroativa'])) { $this->setNotaRetroativa($aDados['nota_retroativa']); } if (isset($aDados['cnpj'])) { $this->setCnpj($aDados['cnpj']); } if (isset($aDados['nome_relatorio'])) { $this->setNomeRelatorio($aDados['nome_relatorio']); } if (isset($aDados['endereco'])) { $this->setEndereco($aDados['endereco']); } if (isset($aDados['numero'])) { $this->setNumero($aDados['numero']); } if (isset($aDados['complemento'])) { $this->setComplemento($aDados['complemento']); } if (isset($aDados['bairro'])) { $this->setBairro($aDados['bairro']); } if (isset($aDados['municipio'])) { $this->setMunicipio($aDados['municipio']); } if (isset($aDados['uf'])) { $this->setUf($aDados['uf']); } if (isset($aDados['cep'])) { $this->setCep($aDados['cep']); } if (isset($aDados['telefone'])) { $this->setTelefone($aDados['telefone']); } if (isset($aDados['fax'])) { $this->setFax($aDados['fax']); } if (isset($aDados['email'])) { $this->setEmail($aDados['email']); } if (isset($aDados['url'])) { $this->setUrl($aDados['url']); } if (isset($aDados['modelo_impressao_nfse'])) { $this->setModeloImpressaoNfse($aDados['modelo_impressao_nfse']); } if (isset($aDados['informacoes_complementares_nfse'])) { $this->setInformacoesComplementaresNfse($aDados['informacoes_complementares_nfse']); } if (isset($aDados['modelo_importacao_rps'])) { $this->setModeloImportacaoRps($aDados['modelo_importacao_rps']); } if (isset($aDados['setor'])) { $this->setSetor($aDados['setor']); } if (isset($aDados['secretaria'])) { $this->setSecretaria($aDados['secretaria']); } if (isset($aDados['valor_iss_fixo'])) { $this->setValorIssFixo(DBSeller_Helper_Number_Format::toFloat($aDados['valor_iss_fixo'])); } if (isset($aDados['solicita_cancelamento'])) { $this->setSolicitaCancelamento($aDados['solicita_cancelamento']); } if (isset($aDados['reter_pessoa_fisica'])) { $this->setReterPessoaFisica($aDados['reter_pessoa_fisica']); } // Registra na base de dados $oEntity->persist($this->entity); // Confirma a gravação na base de dados $oEntity->flush(); }
/** * Carrega dos Dados das Receitas * * @param array $aDadosApuracaoMensal * @return bool */ protected function carregarDadosReceitas(array $aDadosApuracaoMensal) { foreach ($aDadosApuracaoMensal as $iLinha => $sDados) { $aDados = explode('|', $sDados); if (is_array($aDados)) { $iCodigoRegistro = trim($aDados[1]); if ($iCodigoRegistro == '0430') { $oReceita = new StdClass(); $oReceita->iIm = (int) $aDados[2]; $oReceita->sConta = $aDados[3]; $oReceita->sCodTribDesif = $aDados[4]; $oReceita->fValrCredMens = DBSeller_Helper_Number_Format::toFloat($aDados[5]); $oReceita->fValrDebtMens = DBSeller_Helper_Number_Format::toFloat($aDados[6]); $oReceita->fReceDecl = DBSeller_Helper_Number_Format::toFloat($aDados[7]); $oReceita->fDeduReceDecl = DBSeller_Helper_Number_Format::toFloat($aDados[8]); $oReceita->fDescDedu = trim($aDados[9]); $oReceita->fBaseCalc = DBSeller_Helper_Number_Format::toFloat($aDados[10]); $oReceita->fAliqIssqn = DBSeller_Helper_Number_Format::toFloat($aDados[11]); $oReceita->fInctFisc = DBSeller_Helper_Number_Format::toFloat($aDados[12]); $this->aDadosDesifReceitas[$iLinha] = $oReceita; } } } return TRUE; }
/** * Retorna os valores da NFSE calculado * * @param stdClass $oParametros * $oParametros->perc_deducao; // Percentual Deducao * $oParametros->perc_inss; // Percentual INSS * $oParametros->perc_pis; // Percentual PIS * $oParametros->perc_cofins; // Percentual COFINS * $oParametros->perc_ir; // Percentual IR * $oParametros->perc_csll; // Percentual CSLL * $oParametros->perc_aliquota; // Percentual Aliquota * $oParametros->vlr_servico; // Valor Bruto do Serviço * $oParametros->vlr_outras_retencoes; // Valor Outras Retenções * $oParametros->vlr_desc_condicionado; // Valor Desconto Condicionado * $oParametros->vlr_desc_incondicionado; // Valor Desconto Incondicionado * $oParametros->imposto_retido_tomador; // Imposto retido pelo tomador * $oParametros->deducao_editavel; // Habilita edição da dedução * $oParametros->formatar_valores_ptbr; // Retorna os valores em formato PTBR * @throws Exception * @see DBSeller_Helper_Number_Format * @return object stdClass */ public static function calcularValores($oParametros) { if (!is_object($oParametros)) { throw new Exception('O parâmetro deve ser um objeto com os valores.'); } // Limpa máscaras $oParametros->vlr_servico = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_servico); $oParametros->s_vl_deducoes = DBSeller_Helper_Number_Format::toFloat($oParametros->s_vl_deducoes); $oParametros->perc_aliquota = DBSeller_Helper_Number_Format::toFloat($oParametros->perc_aliquota); $oParametros->vlr_inss = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_inss); $oParametros->vlr_pis = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_pis); $oParametros->vlr_cofins = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_cofins); $oParametros->vlr_ir = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_ir); $oParametros->vlr_csll = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_csll); $oParametros->vlr_outras_retencoes = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_outras_retencoes); $oParametros->vlr_desc_condicionado = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_desc_condicionado); $oParametros->vlr_desc_incondicionado = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_desc_incondicionado); /* * Calculo dos os valores */ $oParametros->vlr_base = $oParametros->vlr_servico - $oParametros->s_vl_deducoes; $oParametros->vlr_base -= $oParametros->vlr_desc_incondicionado; $oParametros->vlr_iss = DBSeller_Helper_Number_Format::toFloat($oParametros->vlr_base * ($oParametros->perc_aliquota / 100)); $oParametros->vlr_liquido = $oParametros->vlr_servico; $oParametros->vlr_liquido -= $oParametros->vlr_inss; $oParametros->vlr_liquido -= $oParametros->vlr_pis; $oParametros->vlr_liquido -= $oParametros->vlr_cofins; $oParametros->vlr_liquido -= $oParametros->vlr_ir; $oParametros->vlr_liquido -= $oParametros->vlr_csll; $oParametros->vlr_liquido -= $oParametros->vlr_outras_retencoes; $oParametros->vlr_liquido -= $oParametros->vlr_desc_condicionado; $oParametros->vlr_liquido -= $oParametros->vlr_desc_incondicionado; // Desconta o valor do imposto quando retido pelo tomador if (isset($oParametros->imposto_retido_tomador) && $oParametros->imposto_retido_tomador) { $oParametros->vlr_liquido -= $oParametros->vlr_iss; } // Configura para o formato de moeda PTBR if (isset($oParametros->formatar_valores_ptbr) || $oParametros->formatar_valores_ptbr) { $oParametros->vlr_servico = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_servico); $oParametros->vlr_liquido = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_liquido); $oParametros->s_vl_deducoes = DBSeller_Helper_Number_Format::toMoney($oParametros->s_vl_deducoes); $oParametros->vlr_base = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_base); $oParametros->vlr_iss = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_iss); $oParametros->vlr_pis = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_pis); $oParametros->vlr_cofins = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_cofins); $oParametros->vlr_inss = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_inss); $oParametros->vlr_ir = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_ir); $oParametros->vlr_csll = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_csll); $oParametros->vlr_outras_retencoes = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_outras_retencoes); $oParametros->vlr_desc_condicionado = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_desc_condicionado); $oParametros->vlr_desc_incondicionado = DBSeller_Helper_Number_Format::toMoney($oParametros->vlr_desc_incondicionado); } return $oParametros; }
/** * Acao Salvar DMS * * @return boolean */ public function emissaoManualSaidaSalvarAction() { // Perfil do usuario logado $iIdPerfil = $this->oUsuario->getPerfil()->getId(); // Dados Request $aDados = $this->getRequest()->getParams(); // Prestador eventual if ($iIdPerfil == 6) { $oForm = new Contribuinte_Form_DmsSaidaEventual(); } else { $oForm = new Contribuinte_Form_DmsSaida(); } // Popula o formulario $oForm->populate($aDados); // Valida o formulario if ($oForm->isValid($aDados)) { // Verifica se ja existe uma nota com o numero e se tem AIDOF self::emissaoManualSaidaVerificarDocumentoAction(); // Valida se a data da nota esta no mes corrente $oValidaDataNota = new DBSeller_Validator_DateCurrentMonth(); $oValidaDataNota->setMes($aDados['mes_comp']); $oValidaDataNota->setAno($aDados['ano_comp']); if (!$oValidaDataNota->isValid($aDados['s_nota_data'])) { $aErros = $oValidaDataNota->getMessages(); $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $aErros[$oValidaDataNota::COMPETENCIA_INVALIDA]; echo $this->getHelper('json')->sendJson($aRetornoJson); exit; } // Aplica filtro de mascaras $aDados['s_cpf_cnpj'] = $oForm->s_cpf_cnpj->getValue(); // SALVAR DADOS DA DMS (INI) if (isset($aDados['id_dms']) && !empty($aDados['id_dms'])) { $oDms = Contribuinte_Model_Dms::getById($aDados['id_dms']); } else { $oDms = new Contribuinte_Model_Dms(); $oDms->setAnoCompetencia($aDados['ano_comp']); $oDms->setMesCompetencia($aDados['mes_comp']); $oDms->setOperacao(Contribuinte_Model_Dms::SAIDA); } if (!is_object($oDms)) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_('Código DMS não encontrado.'); echo $this->getHelper('json')->sendJson($aRetornoJson); exit; } $oDms->setIdContribuinte($this->oContribuinte->getIdUsuarioContribuinte()); $oDms->setIdUsuario($this->usuarioLogado->getId()); $oDms->setDataOperacao(new DateTime()); $oDms->setStatus('aberto'); // SALVAR DADOS DA DMS (FIM) // SALVAR DADOS DA NOTA (INI) if (isset($aDados['id']) && !empty($aDados['id'])) { $oDmsNota = Contribuinte_Model_DmsNota::getById($aDados['id']); } else { $oDmsNota = new Contribuinte_Model_DmsNota(); } if (!is_object($oDmsNota)) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_('Código Dms Nota não encontrado.'); echo $this->getHelper('json')->sendJson($aRetornoJson); exit; } // Dados Nota $oDataNota = new DateTime(str_replace('/', '-', $aDados['s_nota_data'])); $oDataNota->format('Y-m-d'); $oDmsNota->setNotaNumero($aDados['s_nota']); $oDmsNota->setNotaSerie($aDados['s_nota_serie']); $oDmsNota->setNotaData($oDataNota); $oDmsNota->setSituacaoDocumento($aDados['situacao_documento']); $oDmsNota->setNaturezaOperacao($aDados['natureza_operacao']); $oDmsNota->setEmiteGuia(TRUE); $oDmsNota->setServicoImpostoRetido(FALSE); // Verifica o flag para substituição tributária if (isset($aDados['s_imposto_retido']) && $aDados['s_imposto_retido'] == 1) { $oDmsNota->setServicoImpostoRetido(TRUE); } // Prestador eventual if ($iIdPerfil != 6) { $oGrupoDocumento = Contribuinte_Model_Nota::getTipoNota($aDados['tipo_documento']); $oDmsNota->setGrupoDocumento($oGrupoDocumento->codigo_grupo); $oDmsNota->setTipoDocumento($aDados['tipo_documento']); /* * Verifica se emite guia: * Se a natureza da operacao for 2 (fora da prefeitura) não emite guia * Se for substituto tributário (retido pelo tomador) não emite guia */ if ($aDados['natureza_operacao'] == 2 || $aDados['s_imposto_retido']) { $oDmsNota->setEmiteGuia(FALSE); } else { // Configura o parametro para emitir a guia $oChecaEmissaoGuiaStdClass = new stdClass(); $oChecaEmissaoGuiaStdClass->data = $aDados['s_nota_data']; $oChecaEmissaoGuiaStdClass->inscricao_municipal = $this->oContribuinte->getInscricaoMunicipal(); $oDmsNota->setEmiteGuia(Contribuinte_Model_EmissorGuia::checarEmissaoGuia($oChecaEmissaoGuiaStdClass)); } } else { $oDmsNota->setTipoDocumentoDescricao($aDados['tipo_documento_descricao']); } // Dados Servico $oDataServico = new DateTime(str_replace('/', '-', $aDados['s_data'])); $oDataServico->format('Y-m-d'); // Formatando dados $sServicoValorPagar = DBSeller_Helper_Number_Format::toFloat($aDados['s_valor_bruto']); $sServicoValorDeducao = DBSeller_Helper_Number_Format::toFloat($aDados['s_valor_deducao']); $sServicoValorCondicionado = DBSeller_Helper_Number_Format::toFloat($aDados['s_vl_condicionado']); $sServicoDescontoIncondicionado = DBSeller_Helper_Number_Format::toFloat($aDados['s_vl_desc_incondicionado']); $sServicoAliquota = DBSeller_Helper_Number_Format::toFloat($aDados['s_aliquota']); $sServicoBaseCalculo = DBSeller_Helper_Number_Format::toFloat($aDados['s_base_calculo']); $sServicoValorImposto = DBSeller_Helper_Number_Format::toFloat($aDados['s_valor_imposto']); $sServicoValorLiquido = DBSeller_Helper_Number_Format::toFloat($aDados['s_valor_pagar']); // Populando o documento de dms $oDmsNota->setNumpre(0); $oDmsNota->setServicoData($oDataServico); $oDmsNota->setServicoImpostoRetido($aDados['s_imposto_retido']); $oDmsNota->setServicoValorPagar($sServicoValorPagar); $oDmsNota->setServicoValorDeducao($sServicoValorDeducao); $oDmsNota->setServicoValorCondicionado($sServicoValorCondicionado); $oDmsNota->setServicoDescontoIncondicionado($sServicoDescontoIncondicionado); $oDmsNota->setServicoAliquota($sServicoAliquota); $oDmsNota->setServicoBaseCalculo($sServicoBaseCalculo); $oDmsNota->setServicoValorImposto($sServicoValorImposto); $oDmsNota->setServicoValorLiquido($sServicoValorLiquido); $oDmsNota->setServicoCodigoCnae($aDados['s_dados_cod_cnae']); $oDmsNota->setServicoCodigoServico($aDados['s_servico_prestado']); $oDmsNota->setDescricaoServico($aDados['s_observacao']); $oDmsNota->setServicoCodigoObra($aDados['s_codigo_obra']); $oDmsNota->setServicoArt($aDados['s_art']); $oDmsNota->setServicoInformacoesComplementares($aDados['s_informacoes_complementares']); // Dados Prestador eventual if ($iIdPerfil == 6) { $oDadosPrestador = Contribuinte_Model_ContribuinteEventual::getById($this->oContribuinte->getIdUsuarioContribuinte()); // Salva o código CNAE do serviço quando for prestador eventual $aServicoPrestado = Contribuinte_Model_Servico::getByCodServico($aDados['s_servico_prestado'], FALSE); $oServicoPrestado = is_array($aServicoPrestado) ? reset($aServicoPrestado) : $aServicoPrestado; $oDmsNota->setServicoCodigoCnae($oServicoPrestado->attr('estrut_cnae')); } else { $oDadosPrestador = Contribuinte_Model_Contribuinte::getById($this->oContribuinte->getIdUsuarioContribuinte()); } $oDmsNota->setPrestadorCpfCnpj($oDadosPrestador->getCgcCpf()); $oDmsNota->setPrestadorInscricaoMunicipal($oDadosPrestador->getInscricaoMunicipal()); $oDmsNota->setPrestadorInscricaoEstadual($oDadosPrestador->getInscricaoEstadual()); $oDmsNota->setPrestadorRazaoSocial($oDadosPrestador->getNome()); $oDmsNota->setPrestadorNomeFantasia($oDadosPrestador->getNomeFantasia()); $oDmsNota->setPrestadorEnderecoRua($oDadosPrestador->getDescricaoLogradouro()); $oDmsNota->setPrestadorEnderecoNumero($oDadosPrestador->getLogradouroNumero()); $oDmsNota->setPrestadorEnderecoComplemento($oDadosPrestador->getLogradouroComplemento()); $oDmsNota->setPrestadorEnderecoBairro($oDadosPrestador->getLogradouroBairro()); $oDmsNota->setPrestadorEnderecoCodigoMunicipio($oDadosPrestador->getCodigoIbgeMunicipio()); $oDmsNota->setPrestadorEnderecoEstado($oDadosPrestador->getEstado()); $oDmsNota->setPrestadorEnderecoCodigoPais($oDadosPrestador->getCodigoPais()); $oDmsNota->setPrestadorEnderecoCEP($oDadosPrestador->getCep()); $oDmsNota->setPrestadorTelefone($oDadosPrestador->getTelefone()); $oDmsNota->setPrestadorEmail($oDadosPrestador->getEmail()); $oDmsNota->setIdUsuario($this->usuarioLogado->getId()); $oDmsNota->setIdContribuinte($this->oContribuinte->getIdUsuarioContribuinte()); // Dados Tomador if ($aDados['s_cpf_cnpj'] != NULL) { $oDadosTomador = Contribuinte_Model_Empresa::getByCgcCpf($aDados['s_cpf_cnpj']); } if ($aDados['s_imposto_retido'] && (!isset($oDadosTomador) || !isset($oDadosTomador->eCidade))) { $sMensagem = 'Tomador com CPF/CNPJ %s não cadastrado.'; $sMensagemParametro = '"<b>' . $this->getRequest()->getParam('s_cpf_cnpj') . '</b>"'; $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = sprintf($this->translate->_($sMensagem), $sMensagemParametro); echo $this->getHelper('json')->sendJson($aRetornoJson); exit; } if (isset($oDadosTomador) && is_object($oDadosTomador) && isset($oDadosTomador->eCidade)) { $oDadosTomadorEcidade = $oDadosTomador->eCidade[0]; $oDmsNota->setTomadorCpfCnpj($aDados['s_cpf_cnpj']); $oDmsNota->setTomadorNomeFantasia($oDadosTomadorEcidade->attr('nome_fanta')); $oDmsNota->setTomadorRazaoSocial($oDadosTomadorEcidade->attr('nome')); $oDmsNota->setTomadorInscricaoMunicipal($oDadosTomadorEcidade->attr('inscricao')); $oDmsNota->setTomadorInscricaoEstadual($oDadosTomadorEcidade->attr('inscr_est')); $oDmsNota->setTomadorEnderecoRua($oDadosTomadorEcidade->attr('endereco')); $oDmsNota->setTomadorEnderecoNumero($oDadosTomadorEcidade->attr('numero')); $oDmsNota->setTomadorEnderecoComplemento($oDadosTomadorEcidade->attr('complemento')); $oDmsNota->setTomadorEnderecoBairro($oDadosTomadorEcidade->attr('bairro')); $oDmsNota->setTomadorEnderecoCodigoMunicipio($oDadosTomadorEcidade->attr('cod_ibge')); $oDmsNota->setTomadorEnderecoEstado($oDadosTomadorEcidade->attr('uf')); $oDmsNota->setTomadorEnderecoCodigoPais($oDadosTomadorEcidade->attr('cod_pais')); $oDmsNota->setTomadorEnderecoCEP($oDadosTomadorEcidade->attr('cep')); $oDmsNota->setTomadorTelefone($oDadosTomadorEcidade->attr('telefone')); $oDmsNota->setTomadorEmail($oDadosTomadorEcidade->attr('email')); } else { if ($aDados['s_cpf_cnpj'] && (!isset($oDadosTomador) || !isset($oDadosTomador->eNota))) { $oDadosTomadorNFSE = new Contribuinte_Model_EmpresaBase(); $aDadosTomador['t_cnpjcpf'] = $aDados['s_cpf_cnpj']; $aDadosTomador['t_razao_social'] = $aDados['s_razao_social']; $oDadosTomadorNFSE->persist($aDadosTomador); } $oDmsNota->setTomadorInscricaoMunicipal($aDados['s_inscricao_municipal']); $oDmsNota->setTomadorCpfCnpj($aDados['s_cpf_cnpj']); $oDmsNota->setTomadorRazaoSocial($aDados['s_razao_social']); } // Vincula o DMS ao documento $oDmsNota->setDms($oDms->getEntity()); // Adiciona o documento ao DMS $oDms->addDmsNotas($oDmsNota->getEntity()); // Salva o DMS e o Documento $iCodigoDms = $oDms->persist(); // Configura a mensagem de sucesso $aRetornoJson['status'] = TRUE; $aRetornoJson['success'] = $this->translate->_('Documento lançado com sucesso!'); $aRetornoJson['id_dms'] = $iCodigoDms; // Configura a mensagem para edição if (isset($aDados['id']) && $aDados['id']) { $aRetornoJson['success'] = $this->translate->_('Documento alterado com sucesso!'); $aRetornoJson['url'] = $this->view->baseUrl("/contribuinte/dms/emissao-manual-saida/id_dms/{$iCodigoDms}"); } } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Reorganiza o array com os dados copiados de uma nota, para preencher o form da emissão de nota * * @param array $aDados * @return array */ public function organizaDadosCopia($aDados) { // Verifica se os dados são de uma nota copiada if (isset($aDados['id_copia_nota'])) { $this->getElement('s_dados_cod_tributacao_copia')->setValue($aDados['s_dados_cod_tributacao']); // Ajusta os dados do Tomador/Empresa $aDados['logradouro'] = $aDados['t_endereco']; $aDados['telefone'] = $aDados['t_telefone']; $aDados['complemento'] = $aDados['t_endereco_comp']; $aDados['numero'] = $aDados['t_endereco_comp']; $aDados['email'] = $aDados['t_email']; $aDados['nome'] = $aDados['t_cod_municipio']; $aDados['bairro'] = $aDados['t_bairro']; $aDados['cep'] = $aDados['t_cep']; $aDados['logradouro'] = $aDados['t_endereco']; $aDados['estado'] = $aDados['t_uf']; $aDados['pais'] = $aDados['p_cod_pais']; // Ajusta os dados do Serviço $aDados['estado'] = $aDados['p_uf']; $aDados['descricao'] = $aDados['s_dados_discriminacao']; $aDados['s_vl_servicos'] = DBSeller_Helper_Number_Format::toFloat($aDados['s_vl_servicos']); if ($aDados['s_dados_iss_retido'] == 1) { $aDados['s_dados_iss_retido'] = '0'; } else { if ($aDados['s_dados_iss_retido'] == 2) { $aDados['s_dados_iss_retido'] = '1'; } } } return $aDados; }