/** * Lista de DMS Saida */ public function emissaoDmsListaAction() { parent::noTemplate(); $iMes = $this->_getParam('mes_competencia', NULL); $iAno = $this->_getParam('ano_competencia', NULL); $sDmsTipo = $this->_getParam('tipo', NULL); $oContribuinte = $this->_session->contribuinte; $oDms = new Contribuinte_Model_Dms(); $aResultado = $oDms->getDMSSemGuiaNaCompetencia($oContribuinte, $iAno, $iMes, $sDmsTipo); // Filtra as notas isentas foreach ($aResultado as $oDms) { $bEmiteGuia = FALSE; $iQuantidadeNotas = 0; $fValorGuia = 0; // Notas de DMS foreach ($oDms->getDmsNotas() as $oNota) { // Ignora notas prestadas e retidas pelo tomador if ($oDms->getOperacao() == 's' && $oNota->getServicoImpostoRetido() == TRUE) { continue; } // Ignora notas tomadas e retidas pelo tomador if ($oDms->getOperacao() == 'e' && $oNota->getServicoImpostoRetido() == FALSE) { continue; } // nota: anulada, extraviada ou cancelada if ($oNota->getStatus() == 5 || in_array($oNota->getSituacaoDocumento(), array('E', 'C'))) { continue; } // verifica se o contribuinte emite guia if ($oNota->getEmiteGuia()) { $iQuantidadeNotas++; $fValorGuia += $oNota->getServicoValorImposto(); $bEmiteGuia = TRUE; } } // Adiciona a quantidade e o valor total das DMS agrupadas $oDms->iQuantidadeNotas = $iQuantidadeNotas; $oDms->fValorGuia = $fValorGuia; if ($bEmiteGuia) { $aListaDms[] = $oDms; } } $this->view->aDms = isset($aListaDms) ? $aListaDms : array(); $this->view->urlEdicaoDms = '/contribuinte/dms/emissao-manual-saida'; if ($sDmsTipo == Contribuinte_Model_Dms::ENTRADA) { $this->view->urlEdicaoDms = '/contribuinte/dms/emissao-manual-entrada'; } }