/** * Método para salvar as Contas preparadas para emissão de Guia * @param array $aParametros * @return array $aRetorno * @return Exception */ public function salvarEmissaoContas(array $aParametro) { $oDoctrine = Zend_Registry::get('em'); try { $oDoctrine->getConnection()->beginTransaction(); // Prepara parametros a serem removidos da preparação da guia $aContasDelete['importacao_desif_conta'] = $aParametro['contasPagina']; $aContasDelete['importacao_desif'] = $aParametro['competencia']; $aContasDelete['guia'] = null; $oImportacaoDesif = Contribuinte_Model_ImportacaoDesif::getById($aParametro['competencia']); $oDesifContaGuiaDelete = Contribuinte_Model_DesifContaGuia::delete($aContasDelete); foreach ($aParametro['selecionados'] as $iConta) { // Salva contas preparadas para a emissão de guia $oImportacaoDesifConta = Contribuinte_Model_ImportacaoDesifConta::getById($iConta); $oDesifContaGuia = new Contribuinte_Model_DesifContaGuia(); $oDesifContaGuia->setImportacaoDesif($oImportacaoDesif->getEntity()); $oDesifContaGuia->setImportacaoDesifConta($oImportacaoDesifConta->getEntity()); $oDesifContaGuia->persist(); } $oDoctrine->getConnection()->commit(); $aRetorno['status'] = TRUE; $aRetorno['success'] = 'Emissão atualizada!'; } catch (Exception $oErro) { $oDoctrine->getConnection()->rollback(); $aRetorno['status'] = FALSE; $aRetorno['error'][] = 'Não foi possível atualizar a emissão!' . $oErro->getMessage(); } return $aRetorno; }