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'); } } }
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); } } }