コード例 #1
0
 function atualizar_status_nota()
 {
     if (!is_admin()) {
         return false;
     }
     if ($_GET['atualizar_nfe'] && $_GET['post'] && $_GET['chave']) {
         $post_id = (int) sanitize_text_field($_GET['post']);
         $chave = sanitize_text_field($_GET['chave']);
         $webmaniabr = new NFe(WC_NFe()->settings);
         $response = $webmaniabr->consultaNotaFiscal($chave);
         if (isset($response->error)) {
             WC_NFe()->add_error(__('Erro: ' . $response->error, $domain));
             return false;
         } else {
             $new_status = $response->status;
             $nfe_data = get_post_meta($post_id, 'nfe', true);
             foreach ($nfe_data as &$order_nfe) {
                 if ($order_nfe['chave_acesso'] == $chave) {
                     $order_nfe['status'] = $new_status;
                 }
             }
             update_post_meta($post_id, 'nfe', $nfe_data);
             WC_NFe()->add_success('NF-e atualizada com sucesso');
         }
     }
 }
コード例 #2
0
 function emitirNFe($order_ids = array())
 {
     foreach ($order_ids as $order_id) {
         $data = self::order_data($order_id);
         $webmaniabr = new NFe(WC_NFe()->settings);
         $response = $webmaniabr->emissaoNotaFiscal($data);
         if (isset($response->error) || $response->status == 'reprovado') {
             $mensagem = 'Erro ao emitir a NF-e do Pedido #' . $order_id . ':';
             $mensagem .= '<ul style="padding-left:20px;">';
             $mensagem .= '<li>' . $response->error . '</li>';
             if (isset($response->log)) {
                 if ($response->log->xMotivo) {
                     $mensagem .= '<li>' . $response->log->xMotivo . '</li>';
                 } else {
                     foreach ($response->log as $erros) {
                         foreach ($erros as $erro) {
                             $mensagem .= '<li>' . $erro . '</li>';
                         }
                     }
                 }
             }
             $mensagem .= '</ul>';
             WC_NFe()->add_error($mensagem);
         } else {
             $nfe = get_post_meta($order_id, 'nfe', true);
             if (!$nfe) {
                 $nfe = array();
             }
             $nfe[] = array('status' => (string) $response->status, 'chave_acesso' => $response->chave, 'n_recibo' => (int) $response->recibo, 'n_nfe' => (int) $response->nfe, 'n_serie' => (int) $response->serie, 'url_xml' => (string) $response->xml, 'url_danfe' => (string) $response->danfe, 'data' => date_i18n('d/m/Y'));
             update_post_meta($order_id, 'nfe', $nfe);
             WC_NFe()->add_success('NF-e emitida com sucesso do Pedido #' . $order_id);
         }
     }
 }