<?php

require 'conectar.php';

$chave = trim($_POST['chave']);
$texto = trim($_POST['texto']);

$rs_nfe = $conn->query("select * from notas where chave = ?", array($chave));
$row = $conn->fetch_assoc($rs_nfe);

$rs_licenca = $conn->query("select * from licencas where id_licencas = ?", array($row["id_licencas"]));
$licenca = $conn->fetch_assoc($rs_licenca);

if ($row["st_nota"] == 'F'):
	
	// ==================================================
	// API V2 - FocusNFe/Acras
	// ==================================================
	$login = $licenca["token"];
	$password = "";
	$server = "https://api.focusnfe.com.br"; // Produção
	// $server = "https://homologacao.focusnfe.com.br"; // Homologação
	
	// Usar a chave como referência
	$ref = $chave;
	
	if ($texto != ""):
	
		// ==================================================
		// ENVIAR CARTA DE CORREÇÃO
		// ==================================================
		$correcao = array("correcao" => $texto);
		
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $server . "/v2/nfe/" . $ref . "/carta_correcao");
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($correcao));
		curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
		curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
		
		$body = curl_exec($ch);
		$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		
		echo "STATUS: " . $http_code . "<br>";
		echo "BODY: " . $body . "<br><br>";
		
		curl_close($ch);
		
		// Registrar no banco
		$rs_nfe = $conn->query("SELECT * FROM notas WHERE chave = ?", array($chave));
		$row1 = $conn->fetch_assoc($rs_nfe);
		
		$log_correcao = $row1['tx_correcao'] . "<br>>>>> CARTA DE CORRECAO em " . date('d/m/Y H:i:s') . 
						' ' . $http_code . ' / ' . $body;
		
		$conn->update("notas", array("tx_correcao" => $log_correcao), "chave = ?", array($chave));
		
	endif;	
	
	// ==================================================
	// CONSULTAR STATUS DA NFE
	// ==================================================
	
	$tentativas = 0;
	$max_tentativas = 10;
	$status = "";
	
	while ($tentativas < $max_tentativas):
		
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $server . "/v2/nfe/" . $ref);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array());
		curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
		curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
		
		$body = curl_exec($ch);
		$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		
		echo "Body: " . $body . "<br>";
		echo "Result: " . $http_code . "<br>";
		
		curl_close($ch);
		
		if ($http_code == 200):
			$response = json_decode($body, true);
			
			if (isset($response['status'])):
				$status = $response['status'];
				echo "Status: " . $status . "<br>";
				
				if ($status == 'autorizado'):
					
					$conn->query("SELECT * FROM notas WHERE chave = ?", array($chave));
					$row = $conn->fetch_assoc();
					
					$obs = $row['tx_correcao'] . "<br>>>> " . date("d/m/Y H:i:s") . " - " . $status;
					
					// Links para arquivos (se disponíveis)
					if (isset($response['caminho_pdf_carta_correcao'])):
						$url_pdf = "https://producao.acrasnfe.acras.com.br" . $response['caminho_pdf_carta_correcao'];
						$obs .= "<br><a href='" . $url_pdf . "' target='_blank'>Arquivo danfe</a>";
					endif;
					
					if (isset($response['caminho_xml_carta_correcao'])):
						$url_xml = "https://producao.acrasnfe.acras.com.br" . $response['caminho_xml_carta_correcao'];
						$obs .= "<br><a href='" . $url_xml . "' target='_blank'>Arquivo XML</a>";
					endif;
					
					$conn->update("notas", array("tx_correcao" => $obs), "chave = ?", array($chave));
					
					break; // Sai do loop
					
				elseif ($status == 'erro_autorizacao' || $status == 'rejeitado'):
					echo "FALHA AO TRANSMITIR<br>";
					if (isset($response['mensagem'])):
						echo "Motivo: " . $response['mensagem'] . "<br>";
					endif;
					break; // Sai do loop
				endif;
			endif;
		endif;
		
		$tentativas++;
		sleep(2);
		
	endwhile;
	
	if ($tentativas >= $max_tentativas && $status != 'autorizado'):
		echo "FALHA AO TRANSMITIR <br><br>";
		echo "URL ENVIO: " . $server . "/v2/nfe/" . $ref . "/carta_correcao<br>";
		echo "URL CONSULTA: " . $server . "/v2/nfe/" . $ref . "<br><br>";
		
		if (isset($response)):
			var_dump($response);
		endif;
	endif;

	$prg = '../Notas_Finalizadas.php';
	echo '<input type="button" onClick="window.location.href = \'' . $prg . '\'" value="Voltar">';

else:

	echo "Esta nota não está Finalizada";
	
endif;

?>