public static function updateStatus($idNotaFiscal, $id_empreendimento)
 {
     try {
         $NotaFiscalDao = new NotaFiscalDao();
         $ConfiguracaoDao = new ConfiguracaoDao();
         $conf = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
         $flg_ambiente_nfe = isset($conf['flg_ambiente_nfe']) && ((int) $conf['flg_ambiente_nfe'] == 1 || (int) $conf['flg_ambiente_nfe'] == 0) ? (int) $conf['flg_ambiente_nfe'] : 0;
         $tokens['token_focus_producao'] = isset($conf['token_focus_producao']) ? $conf['token_focus_producao'] : '';
         $tokens['token_focus_homologacao'] = isset($conf['token_focus_homologacao']) ? $conf['token_focus_homologacao'] : '';
         $NfeDao = new NfeDao($flg_ambiente_nfe, $tokens);
         $NfeDao->id_ref = $idNotaFiscal;
         $retornoParceiro = $NfeDao->buscaNfe();
         $nfTO = new stdClass();
         $nfTO->cod_nota_fiscal = $idNotaFiscal;
         $nfTO->status = $retornoParceiro->status;
         $nfTO->status_sefaz = $retornoParceiro->status_sefaz;
         $nfTO->mensagem_sefaz = $retornoParceiro->mensagem_sefaz;
         $nfTO->status_sefaz_cancelamento = isset($retornoParceiro->status_sefaz_cancelamento) ? $retornoParceiro->status_sefaz_cancelamento : NULL;
         $nfTO->mensagem_sefaz_cancelamento = isset($retornoParceiro->mensagem_sefaz_cancelamento) ? $retornoParceiro->mensagem_sefaz_cancelamento : NULL;
         $nfTO->caminho_xml_cancelamento = isset($retornoParceiro->caminho_xml_cancelamento) ? substr($NfeDao->server, 0, -1) . $retornoParceiro->caminho_xml_cancelamento : NULL;
         if ($nfTO->status == 'autorizado') {
             $nfTO->serie = $retornoParceiro->serie;
             $nfTO->numero = $retornoParceiro->numero;
             $nfTO->chave_nfe = $retornoParceiro->chave_nfe;
             $nfTO->caminho_xml_nota_fiscal = substr($NfeDao->server, 0, -1) . $retornoParceiro->caminho_xml_nota_fiscal;
             $nfTO->caminho_danfe = substr($NfeDao->server, 0, -1) . $retornoParceiro->caminho_danfe;
         }
         $NotaFiscalDao->updateNota($nfTO);
         $notaAtualizada = $NotaFiscalDao->getNota($idNotaFiscal);
         Flight::json($notaAtualizada);
     } catch (Exception $e) {
         jsonException($e);
     }
 }
 public static function cancelarNfe($id_ref, $justificativa, $id_empreendimento)
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     $id_empreendimento = $id_empreendimento;
     $conf = $ConfiguracaoDao->getConfiguracoes($id_empreendimento);
     $flg_ambiente_nfe = isset($conf['flg_ambiente_nfe']) && ((int) $conf['flg_ambiente_nfe'] == 1 || (int) $conf['flg_ambiente_nfe'] == 0) ? (int) $conf['flg_ambiente_nfe'] : 0;
     $tokens['token_focus_producao'] = isset($conf['token_focus_producao']) ? $conf['token_focus_producao'] : '';
     $tokens['token_focus_homologacao'] = isset($conf['token_focus_homologacao']) ? $conf['token_focus_homologacao'] : '';
     $NfeDao = new NfeDao($flg_ambiente_nfe, $tokens);
     $NfeDao->id_ref = $id_ref;
     $retorno = $NfeDao->cancelarNfe($justificativa);
     if ($retorno) {
         $NotaFiscalDao = new NotaFiscalDao();
         $nfTO = new stdClass();
         $nfTO->cod_nota_fiscal = $id_ref;
         $nfTO->status = 'processando_cancelamento';
         $NotaFiscalDao->updateNota($nfTO);
         Flight::halt(200);
     } else {
         Flight::halt(500);
     }
 }