/** * 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; }
/** * @param Contribuinte_Model_Contribuinte $oContribuinte * @param $iAno * @param $iMes * @param null $fAliquota * @return object */ public static function getTotalReceitasCompetencia(Contribuinte_Model_Contribuinte $oContribuinte, $iAno, $iMes, $fAliquota = NULL) { $aReceitasGuia = array(); $aParametros = array('contribuinte' => $oContribuinte->getContribuintes(), 'competencia_inicial' => "{$iAno}{$iMes}"); $aImportacaoDesif = Contribuinte_Model_ImportacaoDesif::getByAttributes($aParametros); /** * Verifica se retornou uma importacao desif */ if (isset($aImportacaoDesif[0])) { $oImportacaoDesif = $aImportacaoDesif[0]->getEntity(); $aReceitasGuia = Contribuinte_Model_ImportacaoDesif::getTotalReceitasGuia($oImportacaoDesif->getId(), TRUE, $fAliquota); } return (object) $aReceitasGuia; }