<?php
include "ver_sessao.php";
include "conecta.php";

/*** CACTUX *****************************************************************************\

NFCe 

\****************************************************************************************/

set_time_limit(0);


if( $_SERVER[HTTP_HOST] == '192.168.0.100' )
	$AMBIENTE = 'LAMPIAO';
else
	$AMBIENTE = 'NATURALGÁS';

if( $AMBIENTE == 'LAMPIAO' ) {

	// LOG AGORA VAI SER UM ARQUIVO INTERNO DO SISTEMA DO CLIENTE.
	define(LOG,"/var/www/$CONFIGURA[PASTA_NFE]/LOG.TXT");
	define(LOCAL_REDE,"/var/www/$CONFIGURA[PASTA_NFE]/xml_nfce/");
	define(LOCAL,"/var/www/$CONFIGURA[PASTA_NFE]/xml_nfce/");

} else {

	// LOG AGORA VAI SER UM ARQUIVO INTERNO DO SISTEMA DO CLIENTE.
	define(LOG,"c:\\servidor\\www\\$CONFIGURA[PASTA_NFE]\\LOG.TXT");
	define(LOCAL_REDE,"c:\\servidor\\www\\$CONFIGURA[PASTA_NFE]\\xml_nfce\\");
	define(LOCAL,"c:\\servidor\\www\\$CONFIGURA[PASTA_NFE]\\xml_nfce\\");

}


// define(SERVIDOR_CACTUS,"http://".meu_ip().":8010/servidor_nfce/");
define(SERVIDOR_CACTUS,$CONFIGURA[SERVIDOR_CACTUS]);

define(NFE_CLIENTE,"$CONFIGURA[CLIENTE_NFE]");


// ----------------------------------------------------------------------------------------
//
// IF QUE FAZ O CONTROLE DA PARTE AUTOMATICA DA EMISSAO DO NFCE. FEITA A APRTIR DO PDV
//
// ----------------------------------------------------------------------------------------
if( $_GET[id_ordem_auto] ) {

	
	if( $_GET[acao_auto] == 'enviar' ) {
	
		$_POST[id] = $_GET[id_ordem_auto];
		$_POST[porcentagem_nota] = '100';
		$_POST[envio_automatico] = 1;
		enviar_nota();

	}
		
	if( $_GET[acao_auto] == 'retornar' ) {
		$_POST[id] = $_GET[id_ordem_auto];
		$_POST[envio_automatico] = 1;

		retorno();
	}

	if( $_GET[acao_auto] == 'imprimir' ) {

		$_POST[id] = $_GET[id_ordem_auto];

		$nNota = carregar('nota','','nota_nb_ordem',$_POST[id]);
		$_POST[numero_nota] = $nNota[nota_tx_chaveAcesso];

		$_POST[envio_automatico] = 1;
		imprime_danfe();
	}

	if( $_GET[acao_auto] == 'cancelar' ) {

		$_POST[id] = $_GET[id_ordem_auto];

		$nNota = carregar('nota','','nota_nb_ordem',$_POST[id]);
		$_POST[numero_nota] = $nNota[nota_tx_chaveAcesso];

		$_POST[envio_automatico] = 1;
		cancela_nota();
	}
	
	exit;	
}


function getCurlValue($filename, $contentType, $postname) {

    // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax
    // See: https://wiki.php.net/rfc/curl-file-upload
    if (function_exists('curl_file_create')) {
        return curl_file_create($filename, $contentType, $postname);
    }

//echo "asd";
//exit;

 
    // Use the old style if using an older version of PHP
    $value = "@{$filename};filename=" . $postname;
    if ($contentType) {
        $value .= ';type=' . $contentType;
    }
 
    return $value;
}


function nfe_recebe_log() {
	
		// ENDERECO DO SERVIDOR DE NFe CACTUS
		//$target_url = 'http://192.168.0.110/servidor_nfce/retorno.php';
		$target_url = SERVIDOR_CACTUS.'retorno.php';
		
		$data = array('cliente' => NFE_CLIENTE);
		$options = array(CURLOPT_URL => $target_url,CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true,CURLOPT_POSTFIELDS => $data);
 
		$ch = curl_init();
		curl_setopt_array($ch, $options);
		$ret_curl = curl_exec($ch);
		curl_close($ch);

//$ret_curl = 'OK |NFE.IMPRIMIRDANFEPDF("c:\www\servidor_nfce\hortvida\24170109255518000140550010000000021100655243-nfe.xml") OK: Arquivo criado em: C:\ACBrMonitorPLUS\PDF\24170109255518000140550010000000021100655243-nfe.pdf | Fim';
		
//echo "!$ret_curl!";
		if( $ret_curl == ''  ) {
			set_status("ERRO 16: Impossível se comunicar com servidor CACTUS");
			return;
		}


		if( substr($ret_curl,0,2) != 'OK'  ) {
			if( get_status() == '' )
				set_status($ret_curl);
			return;
		}

		if( substr($ret_curl,-5) != '| Fim'  ) {
			set_status("ERRO 11: Mensagem incompleta!");
			return;
		}

		
		// SALVA O LOG VINDO DO SERVIDOR CACTUS NO CLIENTE HORTVIDA
		if (!$fp = fopen(LOG, 'w')) {
			set_status("ERRO 17: Não foi possível abrir o arquivo (".LOG.")");
			return;
		}

		// SALVA O LOG NO ARQUIVO
		fputs($fp,$ret_curl);
		fclose($fp);

		return;
}

function nfe_envia_xml($arquivo_xml_rede) {

		// CRIA O ARQUIVO COM O COMANDO DE ASSINAR, ENVIAR E __NAO__ IMPRIMIR
		//$fp = fopen(ARQUIVO,"w");
		//fputs($fp,"NFE.ENVIARNFE(\"$arquivo_xml_rede\",1,1,0,1)");
		//fclose($fp);
		
		
		// ENDERECO DO SERVIDOR DE NFe CACTUS
		//$target_url = 'http://192.168.0.110/servidor_nfce/enviar.php';
		$target_url = SERVIDOR_CACTUS.'enviar.php';
		

		$arq_vez_caminho_completo = $arquivo_xml_rede;
		$arq_vez = basename($arq_vez_caminho_completo);
		$md5_antes = md5_file($arq_vez_caminho_completo);
//echo "=>$md5_antes";


		//$cfile = getCurlValue($arq_vez_caminho_completo,'application/xml',$arq_vez);
		$arq = file_get_contents($arq_vez_caminho_completo);

		//NOTE: The top level key in the array is important, as some apis will insist that it is 'file'.
		$data = array('file' => base64_encode($arq),'nome' => $arq_vez, 'md5' => $md5_antes,'cliente' => NFE_CLIENTE);
//print_r($data);
//exit;
		$options = array( CURLOPT_URL => $target_url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $data);
		$ch = curl_init();
		curl_setopt_array($ch, $options);
		$ret_curl = curl_exec($ch);
		curl_close($ch);

//echo "#$ret_curl#";
		$erro = 1;
		
		// SE O SERVIDOR RETORNOU DIZENDO QUE GRAVOU, VERIFICA SE O MD5 EH IQUAL
		if( substr($ret_curl,0,2) == "OK" ) {
			$md5_depois = trim(substr($ret_curl,3));

			if( $md5_antes != $md5_depois ) {
				$erro = 1;
				$ret_curl = "ERRO 12: arquivo corrompido no servidor!";
			} else {
				$erro = 0;
				$ret_curl = "NFe Enviada";
			}
		}

		if( substr($ret_curl,0,4) == "ERRO" ) {
			$erro=0;
		}		

		// VERIFICA SE HOUVE ERRO NO ENVIO
		if( $erro == 1 ) {
			$ret_curl = "ERRO 10: Erro ao enviar o xml";
		}
		

	return $ret_curl;	
}

function limpa_log_retorno() {

	// NAO A FUNCAO DE LIMPAR O ARQUIVO DE RETORNO AGORA É NO SERVIDOR CACTUS NFe E NAO MAS NO CLIENTE
	
}

function exclui_pedido(){
	
	//remover('ordem',$_POST[id]);
	//volta_estoquePedido();
	
}

function volta_estoquePedido(){
	
	$sql = selecionar('orpr,ordem','orde_nb_id,orpr_tx_status',"$_POST[id],ativo");
	
	while( $a = carrega_array($sql) ){
		
		$prod = carregar('produto',$a[orpr_nb_produto]);
		
		if( $a[orpr_tx_forma] == 'Unidade' ) {
			
			$qtde = ($prod[NOME_QTDE]+$a[orpr_tx_qtde]);
			$qtdecx = $prod[NOME_QTDE]+($a[orpr_tx_qtde]*$prod[prod_tx_embalagem]); 
			
		}else{
			
			$qtde = $prod[NOME_QTDE]+($a[orpr_tx_qtde]*$prod[prod_tx_embalagem]);
			$qtdecx = $prod[prod_tx_embalagem]+$a[orpr_tx_qtde];
			
		}
		
		$campos =array(NOME_QTDE);
		$valores=array($qtde);
		atualizar('produto',$campos,$valores,$prod[prod_nb_id]);
		
	}
	
	layout_pedido_cliente();
	exit;
	
}

function dv($key_nfe){


	$base = 9;
	$result = 0;
	$sum = 0;
	$factor = 2;

	for ($i = strlen($key_nfe); $i > 0; $i--) {
		$numbers[$i] = substr($key_nfe,$i-1,1);
		$partial[$i] = $numbers[$i] * $factor;
		
		$sum += $partial[$i];
		if ($factor == $base) {
			$factor = 1;
		}
		$factor++;
	}
	
	if ($result == 0){
		$sum *= 10;
		$digit = $sum % 11;
	if ($digit == 10){
		$digit = 0;
	}
	
	return $digit;
	
	} elseif ($result == 1){
		$rest = $sum % 11;
		return $rest;
	}
	
}

function gera_numeroNota(){
	
	$ordem = $_POST[id];
	$a = carregar('ordem',$ordem); 
	$loja = carregar('empresa',$a[orde_nb_empresa]);
	$nota = carregar('nota','','nota_nb_ordem',$ordem);
	$cidade = carregar('cidade',$loja[empr_nb_cidade]);
	
	//	SE A NOTA JÁ EXISTIR, ENTAO SÓ FAZ RETORNAR AS INFORMACOES
	// SENAO CRIA UMA NOVA
	if( $nota[nota_tx_chaveAcesso] > 0 && $nota[nota_tx_chaveAcesso] != '' ) {
		return $nota[nota_tx_chaveAcesso];
	}
	
	
	$uf = $cidade[cida_tx_codUf];//02
	$aamm = date('y').date('m');//04
	$cnpj = str_replace(array('.','/','-'),array('','',''),$loja[empr_tx_cnpj]);//14
	$modelo = $nota[nota_tx_modelo];//02
	$serie = zeros($nota[nota_tx_serie],3);//03
	$numeroNf = zeros($nota[nota_tx_numero],9);//09
	$formaEmissao = $nota[nota_tx_formaEmissao];//01
	$codNum = rand(10000000,99999999);//08
	
//24170409255518000140550010000000011260223671
//24170427097789000105550010000000011260223675
	
	$num = $uf.$aamm.$cnpj.$modelo.$serie.$numeroNf.$formaEmissao.$codNum;
	$dv = dv($num);//01
	$numero = $num.$dv;
	
	$campos=array(nota_tx_chaveAcesso,nota_tx_codigoNumerico,nota_tx_dv);
	$valores=array($numero,$codNum,$dv);
	atualizar('nota',$campos,$valores,$nota[nota_nb_id]);
	
	return $numero;
	
	exit;
	
}

// ESSA FUNCAO ANTIGA RECEBIA SERVIA PARA TIRAR, POR EXMEPLO 80% DO VALOR DA NOTA
function acha_desconto_antigo($orpr){
	
	$a_orpr = carregar('orde_tx_valor,orpr_tx_valor,orpr_tx_desconto|orpr,ordem,produto',$orpr);
	
//	$a_orpr[orpr_tx_valor] = $a_orpr[orpr_tx_valor]*($_POST[porcentagem_nota]/100);
	$a_orpr[orde_tx_valor] = $a_orpr[orde_tx_valor]*($_POST[porcentagem_nota]/100);

	$totalOrdem = $a_orpr[orde_tx_valor];
	$valorProduto = $a_orpr[orpr_tx_valor];
	
	$desconto = $a_orpr[orde_tx_valor] - $a_orpr[orde_tx_valor];

	
	$pProd = (100*$valorProduto) / $totalOrdem;
	$vDesc = ($pProd/100)*$desconto;

	return valor(mostra_valor($vDesc));
	
}

// A FUNCAO NOVA SERVE PARA DILUIR O DESCONTO DADO NOS PRODUTOS
function acha_desconto($orpr,$primeiro_produto){
	
	$a_orpr = carregar('orde_tx_valor,orpr_tx_valor,orpr_tx_desconto|orpr,ordem,produto',$orpr);
	
//	$a_orpr[orpr_tx_valor] = $a_orpr[orpr_tx_valor]*($_POST[porcentagem_nota]/100);
	//$a_orpr[orde_tx_valor] = $a_orpr[orde_tx_valor]*($_POST[porcentagem_nota]/100);

	$totalOrdem = $a_orpr[orde_tx_valor];
	$valorProduto = $a_orpr[orpr_tx_valor];
	
	$desconto = $a_orpr[orde_tx_valor] - $a_orpr[orde_tx_valor];

	
	$pProd = (100*$valorProduto) / $totalOrdem;
	$vDesc = ($pProd/100)*$desconto;

	return valor(mostra_valor($vDesc));
	
}

function gera_xml(){
	
	//echo "Gerado xml".date("H:i:s");
	
	$ordem = $_POST[id];
	$a = carregar('ordem',$ordem); 
	$numeroNota = gera_numeroNota();
	
	//DADOS NOTA FISCAL
	$a_nota = carregar('nota','','nota_nb_ordem',$ordem);
	
	$nota[CodNumerico] = $a_nota[nota_tx_codigoNumerico];
	$nota[naturezaOperacao] = $a_nota[nota_tx_naturezaOperacao];
	$nota[modelo] = $a_nota[nota_tx_modelo];
	$nota[serie] = $a_nota[nota_tx_serie];
	$nota[numero] = $a_nota[nota_tx_numero];
	
	
	$a_nota[nota_tx_emissao] ='2017-04-05 10:34:00';
	$a_nota[nota_tx_emissao] = date('Y-m-d H:i:s');
//	$a_nota[nota_tx_emissao] = date('Y-m-d ').(date("H")-3).":".date("i:s");
//echo 	$a_nota[nota_tx_emissao];
//exit;
	$nota[dataEmissao] = substr($a_nota[nota_tx_emissao],0,19);
//echo $nota[dataEmissao];
//exit;	
	$nota[data] = substr($a_nota[nota_tx_emissao],0,19);
	$nota[hora] = substr($a_nota[nota_tx_emissao],-8);
	$nota[tipoNota] = $a_nota[nota_tx_tipo];
	$nota[tipoImpressao] = $a_nota[nota_tx_tipoImpressao];//1-Retrato/ 2-Paisagem
	$nota[tipoEmissao] = $a_nota[nota_tx_formaEmissao];
	//$nota[vDesconto] = $a[orde_tx_valor]-$a[orde_tx_valorTotal];
	
	/*TIPOS DE EMISSAO
	1 – Normal – emissão normal;
	2 – Contingência FS – emissão	em contingência com impressão do DANFE em Formulário de Segurança;
	3 – Contingência SCAN – emissão em contingência no Sistema de Contingência do Ambiente Nacional – SCAN;
	4 – Contingência DPEC -	emissão em contingência com envio da Declaração Prévia de Emissão em Contingência – DPEC;
	5 – Contingência FS-DA - emissão em contingência com impressão do DANFE em Formulário de Segurança para Impressão de Documento Auxiliar de Documento Fiscal Eletrônico (FS-DA).
	*/
	
	$nota[dv] = $a_nota[nota_tx_dv];

	$nota[tipoAmbiente] = 1; //1-PRODUÇÃO/ 2-HOMOLOGAÇÃO
	
	switch( $a_nota[nota_tx_finalidadeEmissao] ){
		
		case 'NF-e normal': $nota[finalidade] = 1;	break;
		case 'NF-e complementar': $nota[finalidade] = 2;	break;
		case 'NF-e de ajuste': $nota[finalidade] = 3;	break;
		
	}

	// PARA A NFC-E
	$nota[indFinal] = 1;
	$nota[indPres] = 1;
	
	//0 - EMISSÃO DE NF-E COM APLICATIVO DO CONTRIBUINTE
	$nota[procEmissao] = 3;
	
	//VERSÃO DO APLICATIVO EMISSOR DE NFe
	$nota[verProcEmissao] = '2.0.9';
	
	switch($a[orde_tx_forma]){//FALTA DEFINAR COMO VERIFICAR A FORMA DE PAGAMENTO
		
		case 'pagamento à vista':	$nota[indPagamento] = 0; break;
		case 'pagamento à prazo':	$nota[indPagamento] = 1; break;
		case 'outros':				$nota[indPagamento] = 2; break;
		default: $nota[indPagamento] = 0;
	}
	

	//$VALOR_IMPOSTO_SIMPLES = 5.47;
	//$VALOR_IMPOSTO_SIMPLES = 2.22; // 2013-01-23
	
//	$VALOR_IMPOSTO_SIMPLES = 5.47;
	
	//DADOS EMITENTE
	$loja = carregar('empresa',$a[orde_nb_empresa]);
	$bairro = carregar('bairro',$loja[empr_nb_bairro]);
	$cidade = carregar('cidade',$loja[empr_nb_cidade]);

	$VALOR_IMPOSTO_SIMPLES = $loja[empr_tx_aliquota];
	
	
	if( trim($bairro[bair_tx_nome]) == '' )
		$bairro[bair_tx_nome] = 'Centro';
	
	//CÓDIGO DO MUNICÍPIO DE OCORRÊNCIA DO FATO GERADOR DO ISSQN	
	$nota[cMunFG] = $cidade[cida_tx_ibge];
	$nota[codUf] = $cidade[cida_tx_codUf];
	
	$emitente[cnpj] = str_replace(array('.','/','-'),array('','',''),$loja[empr_tx_cnpj]);
	$emitente[razao] = $loja[empr_tx_razao];
	$emitente[fantasia] = $loja[empr_tx_nome];
	$emitente[logradour] = $loja[empr_tx_endereco];
	$emitente[numero] = $loja[empr_tx_numero];
	$emitente[nomeBairro] = $bairro[bair_tx_nome];
	$emitente[codCidade] = $cidade[cida_tx_ibge];
	$emitente[nomeCidade] = $cidade[cida_tx_nome];
	$emitente[uf] = $cidade[cida_tx_uf];
	$emitente[cep] = str_replace('-','',$loja[empr_tx_cep]);
	$emitente[codPais] = '1058';
	$emitente[nomePais] = 'Brasil';
	$emitente[inscEstadual] = $loja[empr_tx_estadual];
	$emitente[inscMunicipal] = $loja[empr_tx_municipal];
	$emitente[cnae] = $loja[empr_tx_cnae];
	
	switch( $loja[empr_tx_regime] ){
		
		case 'Simples Nacional':	$emitente[crt] = '1';	break;
		case 'Simples Nacional - excesso de sublimite de receita bruta':	$emitente[crt] = '2';	break;
		case 'Regime Normal':		$emitente[crt] = '3';	break;
		default:	$emitente[crt] = '1';	break;
		
	}
	
	
	//DADOS DESTINATARIO
	$cliente = carregar('entidade',$a[orde_nb_entidade]);
	$bairro = carregar('bairro',$cliente[enti_nb_bairro]);
	$cidade = carregar('cidade',$cliente[enti_nb_cidade]);
	
	if( trim($bairro[bair_tx_nome]) == '' )
		$bairro[bair_tx_nome] = 'Centro';
	if( trim($cidade[cida_tx_ibge]) == '' ) {
		$cidade[cida_tx_ibge] = $cidade[cida_tx_ibge];
		$destinatario[nomeCidade] = $cidade[cida_tx_nome];
		$destinatario[uf] = $cidade[cida_tx_uf];
	}
	if( trim($cliente[enti_tx_endereco]) == '' )
		$cliente[enti_tx_endereco] = 'Rua não identificada';
	if( trim($cliente[enti_tx_numero]) == '' )
		$cliente[enti_tx_numero] = 'sem número';
		
	$destinatario[cnpj] = str_replace(array('.','/','-'),array('','',''),$cliente[enti_tx_cnpj]);
	$destinatario[razao] = $cliente[enti_tx_nome];//AQUI TEM QUE EXIBIR A RAZÃO SOCIAL DO CLIENTE MAS ESTA VAZIO NO BANCO DE DADOS
	$destinatario[logradouro] = $cliente[enti_tx_endereco];
	$destinatario[numero] = $cliente[enti_tx_numero];
	$destinatario[nomeBairro] = $bairro[bair_tx_nome];
	$destinatario[codCidade] = $cidade[cida_tx_ibge];
	$destinatario[nomeCidade] =  $cidade[cida_tx_nome];
	$destinatario[uf] = $cidade[cida_tx_uf];
	$destinatario[cep] = str_replace('-','',$cliente[enti_tx_cep]);
	$destinatario[codPais] = '1058';
	$destinatario[nomePais] = 'Brasil';
	if($cliente[enti_tx_isentoICMS] == 'sim')
		$destinatario[inscEstadual] = 'ISENTO';
	else
		$destinatario[inscEstadual] = $cliente[enti_tx_estadual];
	$destinatario[email] = $cliente[enti_tx_email];
	
	if( $nota[tipoAmbiente]==2 ){
		
		$destinatario[razao] = 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL';
		$destinatario[cnpj] = '99999999000191';
		$destinatario[logradouro] = 'Rua';
		$destinatario[numero] = '012';
		$destinatario[nomeBairro] = 'Bairro';
		$destinatario[codCidade] = '2408003';
		$destinatario[nomeCidade] =  'Mossoro';
		$destinatario[uf] = 'RN';
		$destinatario[cep] = '59607600';
		$destinatario[codPais] = '1058';
		$destinatario[nomePais] = 'Brasil';
		
		
	}
	
	$modFrete='9'; /* 9- sem frete*/
//echo LOCAL.$numeroNota.'-nfe.xml';
	$fp = fopen(LOCAL.$numeroNota.'-nfe.xml','w');
	//echo "chamou!";
	fputs($fp,'<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10">');
	fputs($fp,'<NFe xmlns="http://www.portalfiscal.inf.br/nfe">');
	
	fputs($fp,'<infNFe Id="NFe'.$numeroNota.'" versao="3.10">');
		
		fputs($fp,"<ide>");
			fputs($fp,"<cUF>".trata_xml($nota[codUf])."</cUF>");
			fputs($fp,"<cNF>".trata_xml($nota[CodNumerico])."</cNF>");
			fputs($fp,"<natOp>".trata_xml($nota[naturezaOperacao])."</natOp>");
			fputs($fp,"<indPag>".trata_xml($nota[indPagamento])."</indPag>");
			fputs($fp,"<mod>".trata_xml($nota[modelo])."</mod>");
			fputs($fp,"<serie>".trata_xml($nota[serie])."</serie>");
			fputs($fp,"<nNF>".trata_xml($nota[numero])."</nNF>");
			fputs($fp,"<dhEmi>".trata_xml($nota[dataEmissao])."</dhEmi>");
			fputs($fp,"<dSaiEnt>".trata_xml($nota[data])."</dSaiEnt>");
			fputs($fp,"<hSaiEnt>".trata_xml($nota[hora])."</hSaiEnt>");
			fputs($fp,"<tpNF>".trata_xml($nota[tipoNota])."</tpNF>");
			fputs($fp,"<cMunFG>".trata_xml($nota[cMunFG])."</cMunFG>");
			fputs($fp,"<tpImp>".trata_xml($nota[tipoImpressao])."</tpImp>");
			fputs($fp,"<tpEmis>".trata_xml($nota[tipoEmissao])."</tpEmis>");
			fputs($fp,"<cDV>".trata_xml($nota[dv])."</cDV>");
			fputs($fp,"<tpAmb>".trata_xml($nota[tipoAmbiente])."</tpAmb>");
			fputs($fp,"<finNFe>".trata_xml($nota[finalidade])."</finNFe>");
			fputs($fp,"<indFinal>".trata_xml($nota[indFinal])."</indFinal>");
			fputs($fp,"<indPres>".trata_xml($nota[indPres])."</indPres>");
			fputs($fp,"<procEmi>".trata_xml($nota[procEmissao])."</procEmi>");
			fputs($fp,"<verProc>".trata_xml($nota[verProcEmissao])."</verProc>");
		fputs($fp,"</ide>");
		
		fputs($fp,"<emit>");
			fputs($fp,"<CNPJ>".trata_xml($emitente[cnpj])."</CNPJ>");
			fputs($fp,"<xNome>".trata_xml($emitente[razao])."</xNome>");
			fputs($fp,"<xFant>".trata_xml($emitente[fantasia])."</xFant>");
			fputs($fp,"<enderEmit>");
				fputs($fp,"<xLgr>".trata_xml($emitente[logradour])."</xLgr>");
				fputs($fp,"<nro>".trata_xml($emitente[numero])."</nro>");
				fputs($fp,"<xBairro>".trata_xml($emitente[nomeBairro])."</xBairro>");
				fputs($fp,"<cMun>".trata_xml($emitente[codCidade])."</cMun>");
				fputs($fp,"<xMun>".trata_xml($emitente[nomeCidade])."</xMun>");
				fputs($fp,"<UF>".trata_xml($emitente[uf])."</UF>");
				fputs($fp,"<CEP>".trata_xml($emitente[cep])."</CEP>");
				fputs($fp,"<cPais>".trata_xml($emitente[codPais])."</cPais>");
				fputs($fp,"<xPais>".trata_xml($emitente[nomePais])."</xPais>");
			fputs($fp,"</enderEmit>");
			fputs($fp,"<IE>".trata_xml($emitente[inscEstadual])."</IE>");
			fputs($fp,"<IM>".trata_xml($emitente[inscMunicipal])."</IM>");
			fputs($fp,"<CNAE>".trata_xml($emitente[cnae])."</CNAE>");
			fputs($fp,"<CRT>".trata_xml($emitente[crt])."</CRT>");
		fputs($fp,"</emit>");

		// SE NAO FOR CLIENTE DE BALCAO		
		if( $cliente[enti_nb_id] > 1 ) {
		
			fputs($fp,"<dest>");
				fputs($fp,"<CNPJ>".trata_xml($destinatario[cnpj])."</CNPJ>");
				fputs($fp,"<xNome>".trata_xml($destinatario[razao])."</xNome>");
				fputs($fp,"<indIEDest>9</indIEDest>");
//				fputs($fp,"<email>".trata_xml($destinatario[email])."</email>");
			fputs($fp,"</dest>");
		}
		
/*		
		fputs($fp,"<dest>");
			fputs($fp,"<CNPJ>".trata_xml($destinatario[cnpj])."</CNPJ>");
			fputs($fp,"<xNome>".trata_xml($destinatario[razao])."</xNome>");
			fputs($fp,"<enderDest>");
				fputs($fp,"<xLgr>".trata_xml($destinatario[logradouro])."</xLgr>");
				fputs($fp,"<nro>".trata_xml($destinatario[numero])."</nro>");
				fputs($fp,"<xBairro>".trata_xml($destinatario[nomeBairro])."</xBairro>");
				fputs($fp,"<cMun>".trata_xml($destinatario[codCidade])."</cMun>");
				fputs($fp,"<xMun>".trata_xml($destinatario[nomeCidade])."</xMun>");
				fputs($fp,"<UF>".trata_xml($destinatario[uf])."</UF>");
				fputs($fp,"<CEP>".trata_xml($destinatario[cep])."</CEP>");
				fputs($fp,"<cPais>".trata_xml($destinatario[codPais])."</cPais>");
				fputs($fp,"<xPais>".trata_xml($destinatario[nomePais])."</xPais>");
			fputs($fp,"</enderDest>");
			fputs($fp,"<IE>".trata_xml($destinatario[inscEstadual])."</IE>");
			fputs($fp,"<email>".trata_xml($destinatario[email])."</email>");
		fputs($fp,"</dest>");
*/		
		$sql = selecionar('orpr,ordem,produto','orde_tx_status,orpr_tx_status',"!inativo,ativo"," AND orde_nb_id = '$ordem' ORDER BY orpr_tx_valor ASC");
		
		$i = 0;
		while( $a = carrega_array($sql) ){//INICIO PRODUTOS
			
			++$ITEM_PRODUTO;
			
			if( $a[prod_nb_cst] )
				$a_cst = carregar('cst',$a[prod_nb_cst]);
			else
				$a_cst = '90';
			
			
			if( trim($a[prod_tx_unidade]) == '' )
				$a[prod_tx_unidade] = 'Un';

//			if( trim($a[prod_tx_cfop]) == '' )
				$a[prod_tx_cfop] = '5102';
				$a[prod_tx_codbarras] = '';
			
			//DADOS PRODUTO
			$produto[cod] = 			$a[prod_nb_id];
			$produto[ean] = 			$a[prod_tx_codbarras];
			$produto[nome] = 			$a[prod_tx_nome];
			$produto[ncm] = 			$a[prod_tx_ncm];
			if( $produto[ncm] == '' )
				//$produto[ncm] = '85445900';
				$produto[ncm] = '00';
			$produto[qtdComercial] = 	$a[orpr_tx_qtde];

			// -------------------------------------------------
			// MODIFICA O VALOR DO PRODUTO DE ACORDO COM A PORCENTAGEM ESCOLHIDA
			// -------------------------------------------------
			$a[orpr_tx_valor] = $a[orpr_tx_valor]*($_POST[porcentagem_nota]/100);


			$produto[valorUnComercial] =$a[orpr_tx_valor];
			$produto[cfop] = 			$a[prod_tx_cfop];
			//$produto[cfop] = 			'5929'; 	// PRA NAO PAGAR O IMPOSTO 2X QUE JAH FOI PAGO NO ECF
			$produto[unidade] = 		$a[prod_tx_unidade];
			$produto[valor] = 			$a[orpr_tx_valor]*$a[orpr_tx_qtde];
			$produto[unTributaria] = 	$a[prod_tx_unidade];
			if( $produto[unTributaria] == '' )
				$produto[unTributaria]='0';
				
			$produto[qtdTributaria]=	$a[orpr_tx_qtde];
			$produto[valorUnTributaria]=$a[orpr_tx_valor];
//			if( substr($produto[cfop],0,2) == '54' )
//				$produto[indTot] = 0;
//			else
				$produto[indTot] = 1;
			
			switch( $a[prod_tx_origem] ){
				
				case 'Nacional': 									$produto[origem] = 0; break;
				case 'Estrangeira - Importação Direta':				$produto[origem] = 1; break;
				case 'Estrangeira - Adquirida no Mercado Interno':	$produto[origem] = 2; break;
				default:		 									$produto[origem] = 0; break;
				
			}
			
			$produto[cst] = $a_cst[cst_tx_codigo];
			
			switch($a[prod_tx_situacaoTributariaPIS]){
				
				case 'Operação Tributável (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo))': $produto[CSTPIS] = 01; $break;
				case 'Operação Tributável (base de cálculo = valor da operação (alíquota diferenciada))': $produto[CSTPIS] = 02; $break;
				
			}
			
			$produto[pAliquotaPIS] = 	$a[prod_tx_pis1];
			$produto[vBCPIS] = 			$a[orpr_tx_valor]*$a[orpr_tx_qtde];
			$produto[rAliquotaPIS] = 	valor(mostra_valor($produto[vBCPIS]*($a[prod_tx_pis1]/100)));
			$produto[pAliquotaCOFINS] = $a[prod_tx_cofins1];
			$produto[vBCCOFINS] = 		$a[orpr_tx_valor]*$a[orpr_tx_qtde];
			$produto[rAliquotaCOFINS] = valor(mostra_valor($produto[vBCCOFINS]*($a[prod_tx_cofins1]/100)));
			$produto[vBC] = 			$a[orpr_tx_valor]*$a[orpr_tx_qtde];
			$produto[pICMS] = 			$a[prod_tx_icms1]; //prod_tx_aliquotaICMS
			$produto[vICMS] = 			valor(mostra_valor($produto[vBC]*($a[prod_tx_icms1]/100)));
			//$produto[vDesc] = 			acha_desconto($a[orpr_nb_id],$ITEM_PRODUTO);

			// SE TIVER DESCONTO GERAL A SER DADO
			if( $a[orde_tx_desconto] > 0 ) {
				
				// SE NAO FOI DADO O DESCONTO AINDA
				if( $DESCONTO_NO_FINAL_REALIZADO != 1 ) {
				
					// SE O VALOR DO PRODUTO FOR MAIOR QUE O VALOR DO DESCONTO, ENTAO DA O DESCONTO
					if( $produto[valor] > $a[orde_tx_desconto] ) {
					
						$a[orpr_tx_desconto] += $a[orde_tx_desconto];
						$DESCONTO_NO_FINAL_REALIZADO = 1;
					}
				
				}
			
			}
			
			$produto[vDesc] = 			$a[orpr_tx_desconto];
			
			$DESCONTO_TOTAL += $a[orpr_tx_desconto];

//			$produto[vCredICMSSN]	= 	$produto[valor]*($VALOR_IMPOSTO_SIMPLES/100);
			//echo '<br>'.$produto[pICMS].'<br>';
			//echo $produto[vICMS].'<br>';
			
			fputs($fp,'<det nItem="'.$ITEM_PRODUTO.'">');
				fputs($fp,"<prod>");
					fputs($fp,"<cProd>".trata_xml($produto[cod])."</cProd>");
					fputs($fp,"<cEAN>".trata_xml($produto[ean])."</cEAN>");
					fputs($fp,"<xProd>".trata_xml($produto[nome])."</xProd>");
					fputs($fp,"<NCM>".trata_xml($produto[ncm])."</NCM>");
					fputs($fp,"<CFOP>".trata_xml($produto[cfop])."</CFOP>");
					fputs($fp,"<uCom>".trata_xml($produto[unidade])."</uCom>");
					fputs($fp,"<qCom>".trata_xml($produto[qtdComercial])."</qCom>");
					fputs($fp,"<vUnCom>".trata_xml($produto[valorUnComercial])."</vUnCom>");
					fputs($fp,"<vProd>".trata_xml($produto[valor])."</vProd>");

					fputs($fp,"<cEANTrib/>");
					fputs($fp,"<uTrib>".trata_xml($produto[unTributaria])."</uTrib>");
					fputs($fp,"<qTrib>".trata_xml($produto[qtdTributaria])."</qTrib>");
					fputs($fp,"<vUnTrib>".trata_xml($produto[valorUnTributaria])."</vUnTrib>");
					fputs($fp,"<indTot>".trata_xml($produto[indTot])."</indTot>");
					fputs($fp,"<vDesc>".trata_xml($produto[vDesc])."</vDesc>");
				fputs($fp,"</prod>");
				fputs($fp,"<imposto>");
				
				// ----------------------------------------------------------------------------------------------
				// 1 EH O SIMPLES NACIONAL O RESTO EH TRIBUTACAO NORMAL
				// ----------------------------------------------------------------------------------------------
				if( $emitente[crt] == 1 ) {

					
/*

<imposto>
	<ICMS
		<ICMSSN101>
			<orig>0</orig>  
			<CSOSN>101</CSOSN>  
			<pCredSN>1.85</pCredSN>   
			<vCredICMSSN>6.97</vCredICMSSN>  
		</ICMSSN101> 
	</ICMS>
</imposto>

	<PIS><PISNT> <CST>07</CST></PISNT>  </PIS><COFINS><COFINSNT> <CST>07</CST> </COFINSNT>  </COFINS> 

*/					

		//fputs($fp,"<ICMS><ICMSSN102><orig>0</orig> <CSOSN>102</CSOSN> </ICMSSN102></ICMS><PIS><PISNT> <CST>07</CST></PISNT>  </PIS><COFINS><COFINSNT> <CST>07</CST> </COFINSNT>  </COFINS> ");


					fputs($fp,"<ICMS>");
						fputs($fp,"<ICMSSN102>");
							fputs($fp,"<orig>".trata_xml($produto[origem])."</orig>");
							fputs($fp,"<CSOSN>102</CSOSN>");
							fputs($fp,"<pCredSN>0</pCredSN>");
							fputs($fp,"<vCredICMSSN>0</vCredICMSSN>");
//							fputs($fp,"<pCredSN>$VALOR_IMPOSTO_SIMPLES</pCredSN>");
//							fputs($fp,"<vCredICMSSN>".trata_xml($produto[vCredICMSSN])."</vCredICMSSN>");
						fputs($fp,"</ICMSSN102>");					
					fputs($fp,"</ICMS>");

					
					fputs($fp,"<PIS>");
						fputs($fp,"<PISOutr>");
							fputs($fp,"<CST>99</CST>");
							fputs($fp,"<qBCProd>0.0000</qBCProd>");
							fputs($fp,"<vAliqProd>0.0000</vAliqProd>");
							fputs($fp,"<vPIS>0.00</vPIS>");
						fputs($fp,"</PISOutr>");
					fputs($fp,"</PIS>");
				
					fputs($fp,"<COFINS>");
						fputs($fp,"<COFINSOutr>");

							fputs($fp,"<CST>99</CST>");
							fputs($fp,"<qBCProd>0.0000</qBCProd>");
							fputs($fp,"<vAliqProd>0.0000</vAliqProd>");
							fputs($fp,"<vCOFINS>0.00</vCOFINS>");
						fputs($fp,"</COFINSOutr>");
					fputs($fp,"</COFINS>");

				} else {

				
					fputs($fp,"<ICMS>");
						
						fputs($fp,"<ICMS00>");
							fputs($fp,"<orig>".trata_xml($produto[origem])."</orig>");
							fputs($fp,"<CST>".trata_xml($produto[cst])."</CST>");
							fputs($fp,"<modBC>3</modBC>");//VERIFICAR MODO BASE DE CALCULO
							fputs($fp,"<vBC>".trata_xml($produto[vBC])."</vBC>");
							fputs($fp,"<pICMS>".trata_xml($produto[pICMS])."</pICMS>");
							fputs($fp,"<vICMS>".trata_xml($produto[vICMS])."</vICMS>");
						fputs($fp,"</ICMS00>");
						
						//echo date("H:i:s").'aqui'.$produto[pICMS];
						
					fputs($fp,"</ICMS>");
					fputs($fp,"<PIS>");
						fputs($fp,"<PISAliq>");
							fputs($fp,"<CST>".trata_xml($produto[CSTPIS])."</CST>");
							fputs($fp,"<vBC>".trata_xml($produto[vBCPIS])."</vBC>");
							fputs($fp,"<pPIS>".trata_xml($produto[pAliquotaPIS])."</pPIS>");
							fputs($fp,"<vPIS>".trata_xml($produto[rAliquotaPIS])."</vPIS>");
						fputs($fp,"</PISAliq>");
					fputs($fp,"</PIS>");
					fputs($fp,"<COFINS>");
						fputs($fp,"<COFINSAliq>");

							fputs($fp,"<CST>".trata_xml($produto[CSTCOFINS])."</CST>");
							fputs($fp,"<vBC>".trata_xml($produto[vBCCOFINS])."</vBC>");
							fputs($fp,"<pCOFINS>".trata_xml($produto[pAliquotaCOFINS])."</pCOFINS>");
							fputs($fp,"<vCOFINS>".trata_xml($produto[rAliquotaCOFINS])."</vCOFINS>");
						fputs($fp,"</COFINSAliq>");
					fputs($fp,"</COFINS>");
					
				}	
				
				fputs($fp,"</imposto>");
			fputs($fp,"</det>");
			
			$produto[rAliquotaCONFIS] = $a[prod_tx_rAliquotaCONFIS];
			$produto[totalvBCICMS] += 	$produto[vBC];
			if( substr($produto[cfop],0,2) == '54' )
				$produto[total_substitui] += $produto[vBC];
			
			
			// 1 EH O SIMPLES NACIONAL O RESTO EH TRIBUTACAO NORMAL
			//if( $emitente[crt] == 1 ) 
			//	$produto[vBCST] += 			$produto[vCredICMSSN];
			//else
				$produto[vBCST] = '0.00';
			
			$produto[vST] += 			$a[prod_tx_pAliquotaICMSST];
			$produto[vProd] += 			$a[orpr_tx_valor]*$a[orpr_tx_qtde];
			$produto[vFrete] += 		$a[frete];//NÃO DEFINIDO
			
			$produto[vIPI] += 		$a[VPIS];//NÃO DEFINIDO

			$produto[vPIS] += 		$produto[rAliquotaPIS];
			$produto[vCOFINS] += 	$produto[rAliquotaCOFINS];
			//produto[vOutro] += 	$a[outro];//NÃO DEFINIDO
			$produto[vTotalICMS] += $produto[vICMS];
			$nota[vDesconto] += $produto[vDesc];
			
		}//FIM PRODUTOS
			
	/*	
		fputs($fp,"<total><ICMSTot><vBC>1.99</vBC><vICMS>0.34</vICMS><vBCST>0.00</vBCST><vST>0.00</vST><vProd>1.99</vProd><vFrete>0.00</vFrete>
<vSeg>0.00</vSeg><vDesc>0.50</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro>
<vNF>1.49</vNF></ICMSTot></total>");
*/
		$nota[totalNota] = $produto[vProd] - $nota[vDesconto];
		
		// -------------------------------------------------------------------------------------------------------------------
		// SE FOR CFOP DE SUBSTITUICAO, NAO INCIDE SOBRE BASE DE CALCULO DO ICMS
		// -------------------------------------------------------------------------------------------------------------------
		$produto[totalvBCICMS] = $produto[totalvBCICMS]-$produto[total_substitui];
		
		fputs($fp,"<total>");
			fputs($fp,"<ICMSTot>");
			
				if( $emitente[crt] == 1 ) 
					fputs($fp,"<vBC>0.00</vBC>");
				else
					fputs($fp,"<vBC>".trata_xml($produto[totalvBCICMS])."</vBC>");
				
				
				if( $emitente[crt] == 1 ) 
					fputs($fp,"<vICMS>0.00</vICMS>");
				else
					fputs($fp,"<vICMS>".trata_xml($produto[vTotalICMS])."</vICMS>");
				
				
				fputs($fp,"<vBCST>".trata_xml($produto[vBCST])."</vBCST>");
				fputs($fp,"<vST>".trata_xml($produto[vBCST])."</vST>");
				fputs($fp,"<vProd>".trata_xml($produto[vProd])."</vProd>");
				fputs($fp,"<vFrete>".trata_xml($produto[vFrete])."</vFrete>");//NÃO DEFINIDO
				fputs($fp,"<vSeg>".trata_xml($produto[vSeguro])."</vSeg>");//NÃO DEFINIDO
				fputs($fp,"<vDesc>".trata_xml($nota[vDesconto])."</vDesc>");//NÃO DEFINIDO
				//fputs($fp,"<vDesc>00</vDesc>");//NÃO DEFINIDO
				fputs($fp,"<vII>0.00</vII>");
				fputs($fp,"<vIPI>".trata_xml($produto[vIPI])."</vIPI>");
				fputs($fp,"<vPIS>".trata_xml($produto[vPIS])."</vPIS>");
				fputs($fp,"<vCOFINS>".trata_xml($produto[vCOFINS])."</vCOFINS>");
				fputs($fp,"<vOutro>0.00</vOutro>");
				fputs($fp,"<vNF>".trata_xml($nota[totalNota])."</vNF>");
			fputs($fp,"</ICMSTot>");
		fputs($fp,"</total>");
		
		fputs($fp,"<transp>");
			fputs($fp,"<modFrete>".trata_xml($modFrete)."</modFrete>");
		fputs($fp,"</transp>");


		fputs($fp,"<pag>");

		$sql_pag = selecionar('fobo_tx_valor,form_tx_sefaz|fobo,forma,boleto.movimento,ordem',
						'fobo_tx_status,bole_tx_status,bole_nb_movimento,movi_nb_ordem',
						"!inativo,!inativo,.movi_nb_id,.orde_nb_id"," AND orde_nb_id = '$ordem' ");

		while( $a_pag = carrega_array($sql_pag) ) {
		
			// ISSO AQUI É PRA SEMPRE SER OU CHEQUE OU DINHEIRO E NUNCA DIFERENTE DISSO
			if( intval($a_pag[form_tx_sefaz]) != 2 )
				$a_pag[form_tx_sefaz] = '01';
				
			fputs($fp,"<tPag>".trata_xml(zeros(intval($a_pag[form_tx_sefaz]),2))."</tPag>");
			fputs($fp,"<vPag>".trata_xml($a_pag[fobo_tx_valor])."</vPag>");

			// FALTA FAZER COM QUE O VALOR NUNCA SEJA DIFERENTE, NEM PRA MAIS NEM PRA MENOS
			
		}
//exit;
		fputs($fp,"</pag>");

//		fputs($fp,"<pag>");
//			fputs($fp,"<tPag>01</tPag>");
//			fputs($fp,"<vPag>".trata_xml($nota[totalNota])."</vPag>");
//		fputs($fp,"</pag>");

		$OBS_NOTA = "VALOR APROX DE IMPOSTOS: ";
		if( $OBS_NOTA != '' ) {
			fputs($fp,"<infAdic>");
			fputs($fp,"<infCpl>".trata_xml($OBS_NOTA)."</infCpl>"); 
			fputs($fp,"</infAdic>");
		}


	if( $emitente[crt] == 1 ) {
		
		$VALOR_CREDITO_ICMS = $nota[totalNota]*($VALOR_IMPOSTO_SIMPLES/100);
		
		//		//$OBS_NOTA  = "DOCUMENTO EMITIDO POR ME OPTANTE PELO SIMPLES NACIONAL.\r\n";
		//$OBS_NOTA .= "PERMITE O APROVEITAMENTO DE CRÉDITO DE ICMS DO VALOR R$ ".mostra_valor($VALOR_CREDITO_ICMS)." CORRESOONDENTE A ALIQUOTA DE ".$VALOR_IMPOSTO_SIMPLES."% NOS TERMOS DA LEI COMPLEMENTAR 126/2006.";
		// "I- DOCUMENTO EMITIDO POR ME OPTANTE PELO SIMPELS NACIONAL; II- ESTE DOCUMENTO NÃO GERA DIREITO A CREDITO FISCAL DE IPI, ICMS E ISS."
		
		if( $OBS_NOTA != '' ) {
			fputs($fp,"<infAdic>");
			fputs($fp,"<infCpl>".trata_xml($OBS_NOTA)."</infCpl>"); 
			fputs($fp,"</infAdic>");
		}
		
	} else {
		
		
		
		
	}
	
	
	
	fputs($fp,"</infNFe>");
	fputs($fp,"</NFe>");
	fputs($fp,"</nfeProc>");
	
	fclose($fp);
	
	return $numeroNota;
	
}

function trata_xml($string){
	
	$string = trim($string);
	$string = strtoupper($string);
	$string = str_replace(array(Á,É,Í,Ó,Ú,Â,Ê,Î,Ô,Û,Ã,Õ),ARRAY(A,E,I,O,U,A,E,I,O,U,A,O),$string);
	
	$string = str_replace(array("<",">","&","\"","'"),ARRAY("&lt;","&rt;","&amp;","&quot;","&#39;"),$string);

	return $string;
	
}

function ver_log(){
	
	$retorno = carregar('retornonota',$_POST[id]);
	echo $retorno[reto_tx_retorno];
	
}

function layout_log(){
	
	
	cabecalho('RELATÓRIO DE LOGS');
	cactux::abre_form();
	
	//CÓD  CLIENTE  EMPRESA  DATA  VALOR  Nº DE ITENS  SITUAÇÃO NOTA  
	
	$a = carregar('ordem,empresa,entidade',$_POST[id]);
	
	//TEXTOS
	$codVenda = cactux::texto('Cod. Venda',$a[orde_nb_id],2);
	$cliente = cactux::texto('Cliente',$a[orde_tx_nome],2);
	$empresa = cactux::texto('Empresa',$a[empr_tx_nome],2);
	
	//BOTOES
	$voltar = cactux::botao('Voltar',2,'voltar');
	
	cactux::abre_fieldset('FILTRO DE BUSCA');
	cactux::linha_fieldset($codVenda,$cliente,$empresa);
	cactux::fecha_fieldset();
	cactux::linha_fieldset($voltar,$buscar);
	cactux::fecha_form();
	
	cactux::acao_botao('voltar','index');
	
	if( $_POST[nota] == '' )	
		return;
	
	$nota = carregar('nota','','nota_nb_ordem',$_POST[id]);
	
	$sql = selecionar('retornonota','reto_tx_status,reto_nb_nota',"ativo,$_POST[nota]"," $extra ORDER BY reto_nb_id DESC ");
	
	$cabecalho[] = array('COD','NOTA','CHAVE DE ACESSO','SITUAÇÃO','DATA','');
	$cabecalho[] = 'c,c,e,e';
	$cabecalho[] = '5%,5%,30%,,8%,2%';
	
	while( $a = carrega_array($sql) ){
		
		$icone = ".icone_modificar($a[0],'ver_log','','','','target=_blank','Ver LOG','cactus/imagens/imprimir.png')";
		
		$array = explode("\r\n",$a[reto_tx_retorno]);
		$array[0] = end(explode(" - ",$array[0]));
		$array[1] = end(explode(" - ",$array[1]));
		
		$valores[] = array($a[reto_nb_id],$a[reto_nb_nota],$a[reto_tx_chaveAcesso],$array[1],data($a[reto_tx_data],3),$icone);
		
	}
	
	grid::gerar($cabecalho,$valores);
	
	rodape();
	
}

function salva_log(){
	
	//CARREGA O ARQUIVO DE LOG
	$linha = file(LOG);
	$t_linha = count($linha);
	
	//ACHA O NUMERO DA CHAVE DE ACESSO E O ID DA NOTA
	$a_xml = explode("\"",$linha[0]);
	$arq_xml = $a_xml[1];
	$numeroNota = str_replace('-nfe.xml','',$arq_xml);
	$numeroNota = substr($numeroNota,-44);
	
	$a_nota = carregar('nota','','nota_tx_chaveAcesso',$numeroNota);
	$idNota = $a_nota[0];
	
	//$idNota = substr($numeroNota,25,9);
	
	//GRAVA OS VALORES DO LOG NO BANCO DE DADOS
	for( $i=0; $i!=$t_linha; $i++ ){
		
		$retorno .= $linha[$i].'<br>';
		
	}
//	echo $numeroNota;
//	exit;
	$campos = array(reto_nb_nota,reto_tx_chaveAcesso,reto_tx_retorno,reto_tx_data,reto_tx_status);
	$valores= array($idNota,$numeroNota,str_replace(',',';',$retorno),date('y-m-d H:i:s'),ativo);
	inserir('retornonota',$campos,$valores);
	
}

function retorno($funcao_volta=0){
	
	unlink(LOG);
	// ------------------------------------------------------------------------------------------
	//
	// NOVA FUNCAO QUE SE COMUNICA COM O SERVIDOR CACTUS E NAO DIRETAMENTE COM A SEFAZ
	//
	// ------------------------------------------------------------------------------------------
	nfe_recebe_log();


	if(	$fp = @fopen(LOG,"r") ) {
		
		salva_log();
		
		$RETORNOU = 1;
		fclose($fp);
		$retorno_log = file(LOG);
		
		// NA ULTIMA VERSAO DO ACBR ELE JOGA A DATA E HORA NA FRENTE DOS COMANDOS DE LOG, ENTAO VOU LIMPAR		
		$a_ret0 = explode(" - ",$retorno_log[0]);
		$retorno_log[0] = $a_ret0[2];
		$a_ret1 = explode(" - ",$retorno_log[1]);
		$retorno_log[1] = $a_ret1[2];
//		exit;
		
//print_r($retorno_log);
		// ----------------------------------------------------------------
		// TESTE SE EH RETORNO DE ENVIO DE EMAIL
		// ----------------------------------------------------------------
		if( substr($retorno_log[0],0,15) == 'NFE.EnviarEmail' || substr($retorno_log[0],0,19) == 'OK |NFE.EnviarEmail' ) {

			
			if( substr($retorno_log[1],0,3) == 'OK:' ) {
				$MSG_STATUS = "Email Enviado com sucesso!";
			} else  {
				$MSG_STATUS = "Falha ao enviar email!";
			}
			
			$ENTROU_RETORNO = 1;
			set_status($MSG_STATUS);
		} 
		
		// ----------------------------------------------------------------
		// TESTE SE EH RETORNO DE CANCELAMENTO
		// ----------------------------------------------------------------
//echo substr($retorno_log[0],0,15)."<hr>";
		if( substr($retorno_log[0],0,15) == 'NFE.CANCELARNFE' ) {
			
//echo substr($retorno_log[1],0,3)."<hr>";			
			if( substr($retorno_log[1],0,3) == 'OK:' ) {
				$MSG_STATUS = "NFe Cancelada";
			} else  {
				$MSG_STATUS = "$retorno_log[1]";
			}

			$ENTROU_RETORNO = 1;
			
			
			$chave = substr($retorno_log[0],17,44);
//echo $chave."<hr>";			
			$nota = carregar('nota','','nota_tx_chaveAcesso',$chave,'','','','',1);
//print_r($nota);
//echo "passou!<hr>";			
			if( $nota ) {
				if( $MSG_STATUS == "NFe Cancelada" ) {
					atualizar('ordem',orde_tx_statusNota,$MSG_STATUS,$nota[nota_nb_ordem]);
					atualizar('nota',nota_tx_statusNota,$MSG_STATUS,$nota[nota_nb_id]);
				}
			}
			set_status("$MSG_STATUS");			
			
			
			
		} 
		
		// ----------------------------------------------------------------
		// TESTE SE EH RETORNO DE ENVIO NORMAL
		// ----------------------------------------------------------------
		
		if( $ENTROU_RETORNO != 1 ) {
			
			
			$a_xml = explode("\"",$retorno_log[0]);
			$arq_xml = $a_xml[1];
			
			$numeroNota = str_replace('-nfe.xml','',$arq_xml);
			$numeroNota = substr($numeroNota,-44);
			
			// TESTA SE DEU ALGUM ERRO NO ARQUIVO (CASO SEJA UM ERRO DE VALIDACAO)
			if( substr($retorno_log[1],0,4) == 'ERRO' ) {
				
				$MSG_STATUS = "".$retorno_log[1]."";
				
			} else {
				
				$t_log = count($retorno_log);
				for($j=$t_log; $j>0; $j--) {
					
					if( substr($retorno_log[$j],0,7) == 'XMotivo' ) {
						
						if( substr($retorno_log[$j],8,24) == 'Autorizado o uso da NF-e' ) {
							$MSG_STATUS = "NFe Autorizada";
							$NOTA_ACEITA=1;
						} else {
							$MSG_STATUS = "".substr($retorno_log[$j],8)."";
						}
						
						break;
					}
					
				} // PERCORRE O ARQUIVO DE BAIXO PARA CIMA E PROCURA UM CAMPO XMOTIVO 
				  // DE BAIXO PARA CIMA PORQUE DENTRO DO ARQUIVO DE LOG TEM OS VARIOS PASOS, ENVIAR, ASSINAR E ETC, E O QUE IMPORTA EH O ULTIMO (RETORNO)
				  // SE FOR UM ERRO EXIBE NA TELA, CASO CONTRARIO PASSA
			}
			
			
			
			
			/**************************************************************************\
			****************************************************************************
			***													     ****
			***          INICIO DA PARTE DE PROTOCOLO DE AUTORIZACAO DO XML             ****
			***    												     ****
			****************************************************************************
			\**************************************************************************/
			
			
			//---------------------------------------------------------------------------------------------------------------
			// SE A NOTA FOI ACEITA, TENTA PROTOCOLAR O XML
			//---------------------------------------------------------------------------------------------------------------
			if( $NOTA_ACEITA == 1 ) {
//echo "<hr>NOTA ACEITA";				
				
				//---------------------------------------------------------------------------------------------------------------
				// VERIFICA SE O ARQUIVO FOI DE ENVIO OU DE ATUALIZACAO, PARA CARREGAR
				// AS VARIAVES CORRETAMENTE
				//---------------------------------------------------------------------------------------------------------------
				if( substr($retorno_log[0],0,13) == 'NFE.ENVIARNFE' ) {
					
					$DigVal = trim(substr($retorno_log[31],7));
					$NProt =  trim(substr($retorno_log[30],6));
					$DhRecbto =  trim(substr($retorno_log[29],9));
					$ChNFe = trim(substr($retorno_log[28],6));
					$CStat =  trim(substr($retorno_log[25],6));
					
					$TIPO_RETORNO = 1;
					
//					echo "ENTROU ENVIO<br>";
					
				}
				if( substr($retorno_log[0],0,16) == 'NFE.CONSULTARNFE' ) {
					
					$DigVal = trim(substr($retorno_log[12],7));
					$NProt =  trim(substr($retorno_log[11],6));
					$DhRecbto =  trim(substr($retorno_log[10],9));
					$ChNFe = trim(substr($retorno_log[9],6));
					$CStat =  trim(substr($retorno_log[6],6));
					
					$TIPO_RETORNO = 1;
					
//					echo "ENTROU ATUALIZA<br>";
				}
				
				//---------------------------------------------------------------------------------------------------------------
				// RESOLVE A DATA VINDA DO RETORNO PARA O PADRAO DO XML
				//---------------------------------------------------------------------------------------------------------------
				$data = explode(" ",$DhRecbto);
				$data2 = explode("/",$data[0]);
				$nova_data = $data2[2]."-".zeros($data2[1],2)."-".zeros($data2[0],2)."T".$data[1];
				
				//---------------------------------------------------------------------------------------------------------------
				// CRIA AS NOVAS LINHAS A SEREM INSERIDAS NO XML
				//---------------------------------------------------------------------------------------------------------------
				$inicio_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><nfeProc versao=\"2.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">";
				$fim_xml .= "<protNFe versao=\"2.00\"><infProt><tpAmb>1</tpAmb><verAplic>SVAN_4.01</verAplic>";
				$fim_xml .= "<chNFe>$ChNFe</chNFe>";
				$fim_xml .= "<dhRecbto>$nova_data</dhRecbto>";
				$fim_xml .= "<nProt>$NProt</nProt>";
				$fim_xml .= "<digVal>$DigVal</digVal>";
				$fim_xml .= "<cStat>$CStat</cStat>";
				$fim_xml .= "<xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>";
//echo "Abrindo arquivo".LOCAL.$numeroNota."-nfe.xml";			
				// CARREGA O XML ANTIGO
				$xml_antigo = file_get_contents(LOCAL.$numeroNota."-nfe.xml");
//echo "<hr>$xml_antigo<hr>";				
				//---------------------------------------------------------------------------------------------------------------
				// TESTA SE RETORNOU ALGUM NUMERO DE PROTOCOLO OU SE DEU ERRADO
				//---------------------------------------------------------------------------------------------------------------
				if( $NProt == '' ) {
					$ERRO_PROTOCOLO=1;
//					echo "NAO RETORNOU NUMERO DE PROTOCOLO!";
				}
				
				//---------------------------------------------------------------------------------------------------------------
				// TESTA SE O RETORNO EH DE ENVIO OU ATUALIZACAO
				//---------------------------------------------------------------------------------------------------------------
				if( $TIPO_RETORNO != 1) {
					$ERRO_PROTOCOLO=1;
//					echo "NAO EH DO TIPO CORRETO DE RETORNO!";
				}
				
				// ----------------------------------------------------------------------------------------------------
				// VERIFICA SE JAH NAO FOI PROCOTOLADO
				// ----------------------------------------------------------------------------------------------------
				if( strpos($xml_antigo,"<xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>") !== true ) {
					if( strpos($xml_antigo,"<xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>") > 0 )
						$ERRO_PROTOCOLO=1;
//					echo "O MONITOR JAH PROTOCOLOU AUTOMATICO! -> ".strpos($xml_antigo,"<xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>");
				}
				
				
				// ----------------------------------------------------------------------------------------------------
				// AQUI SIM FAZ O PROTOCOLO DO XML
				// ----------------------------------------------------------------------------------------------------
				if( $ERRO_PROTOCOLO != 1 ) {
					$fp = fopen(LOCAL.$numeroNota."-nfe.xml","w");
					fputs($fp,$inicio_xml.$xml_antigo.$fim_xml);
					fclose($fp);
					
					//$MSG_STATUS = "<font color=blue>NFe AUTORIZADA</font><BR>";
					
//					echo "XML PROTOCOLADO COM SUCESSO!";
				}
//					echo "PASSOU!";

			}
			
			
			$nota = carregar('nota','','nota_tx_chaveAcesso',$numeroNota);
//print_r($nota);			
//echo $MSG_STATUS;
			if( $nota ) {
				
				// SE A MSG ESTIVER EM BRANCO ENTAO NAO ATUALIZA
				if( trim($MSG_STATUS) != '' ) {
				
					// SE A NOTA JÁ FOI AUTORIZADA, ENTÃO NÃO PERMITE ATUALIZAR NADA POR CIMA, NENHUM ERRO
					if( $nota[nota_tx_statusNota] != 'NFe Autorizada' ) {
				
						atualizar('ordem',orde_tx_statusNota,$MSG_STATUS,$nota[nota_nb_ordem]);
						atualizar('nota',nota_tx_statusNota,$MSG_STATUS,$nota[nota_nb_id]);
					}
					
				}
				
			}
			set_status("$MSG_STATUS");
			
			// -----------------------------------------------------------------------------
			// SE NAO FOI UMA CHAMADA AUTOMATICA VINDA DO PDV SEGUE O FLUXO NORMAL
			// -----------------------------------------------------------------------------
			if( $_POST[envio_automatico] != 1 ) {
			
					if( $funcao_volta != 1 ) {
						index();
						exit;
					} else
						return;
					
			} else {
			
//$MSG_STATUS = 'ERRO:!';
//echo $MSG_STATUS;

					// SE TIVER VINDO DO PDV ENTAO APENAS EXIBE NA TELA	
					//javascript("window.parent.document.getElementById('div_msg_autorizando').innerHTML = '$MSG_STATUS';");

					javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = '$MSG_STATUS';");
					

					if( $_GET[tipo_auto] == 'cancelar' ) {
						
						javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Sem retorno. Aguarde alguns instantes e tente novamente';");
						exit;
					}
					
					// SE NAO TIVER RETORNO, ESPERA 5 SEGUNDOS E TENTA NOVAMENTE
					if( $MSG_STATUS == '' ) {
					
						//javascript("window.parent.document.getElementById('div_msg_autorizando').innerHTML = 'Autorizando......';");
						javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'NFCe Enviada. Aguardando Autorização...<br><img src=../cactus/imagens/carregando.gif width=100px></div></center>';");
						javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar').submit()},5000)");	
						
					} else {

					javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = '$MSG_STATUS';");
						
						// SE TIVER
						if( $MSG_STATUS == 'NFe Autorizada' ) {
						
//							javascript("window.parent.document.getElementById('div_msg_imprimindo').innerHTML = 'Imprimindo...';");
							javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'NFCe Autorizada! Aguardando Impressão...';");
//							$link = "../emissao_nfce.php?acao_auto=imprimir&id_ordem_auto=$_POST[id]";
//							javascript("window.parent.document.getElementById('frame_nfce').src = '$link';");
							javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar_imprimir').submit()},1000)");	
	
						} else {

							if( trim($MSG_STATUS) == 'ERRO:' ) {
						
								javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Erro no retorno. Enviando NFCe novamente...';");
								javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar_enviar').submit()},2000)");	

//								$link = "../emissao_nfce.php?acao_auto=enviar&id_ordem_auto=$_POST[id]";
//								javascript("window.parent.document.getElementById('frame_nfce').src = '$link';");
						
							} else {
	//							javascript("window.parent.document.getElementById('div_msg_imprimindo').innerHTML = 'Imprimindo em CONTIGÊNCIA...';");
								javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Imprimindo em CONTIGÊNCIA...';");
//								$link = "../emissao_nfce.php?acao_auto=imprimir&id_ordem_auto=$_POST[id]";
//								javascript("window.parent.document.getElementById('frame_nfce').src = '$link';");
								javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar_imprimir').submit()},1000)");	

							}						
						}
						
					}

					exit;
			}
			
		}
		
	} else {
		
//		$MSG_STATUS = "<B><font color=red>SEM RETORNO</b></font>";
//		set_status("$MSG_STATUS");
		
	}

//$MSG_STATUS = 'ERRO:!';

			// -----------------------------------------------------------------------------
			// SE NAO FOI UMA CHAMADA AUTOMATICA VINDA DO PDV SEGUE O FLUXO NORMAL
			// -----------------------------------------------------------------------------
			if( $_POST[envio_automatico] != 1 ) {
			
					if( $funcao_volta != 1 ) {
						index();
						exit;
					} else
						return;
					
			} else {
			
//$MSG_STATUS = 'ERRO:!';


					// SE TIVER VINDO DO PDV ENTAO APENAS EXIBE NA TELA	
					//javascript("window.parent.document.getElementById('div_msg_autorizando').innerHTML = '$MSG_STATUS';");


					if( $_GET[tipo_auto] == 'cancelar' ) {

						
						if( $MSG_STATUS == '' ) {

							javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Sem retorno. Aguarde alguns instantes e tente novamente';");
							
						} else {

							javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = '".trim($MSG_STATUS)."';");
							
							if( trim($MSG_STATUS) == 'NFe Cancelada' ) {
								javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar').submit()},2000)");	
							}
						}
						exit;
					}

					
					// SE NAO TIVER RETORNO, ESPERA 5 SEGUNDOS E TENTA NOVAMENTE
					if( $MSG_STATUS == '' ) {
					
						//javascript("window.parent.document.getElementById('div_msg_autorizando').innerHTML = 'Autorizando......';");
						javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'NFCe Enviada. Aguardando Autorização...<br><img src=../cactus/imagens/carregando.gif width=100px></div></center>';");
						javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar').submit()},5000)");	
						
					} else {

					javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = '$MSG_STATUS';");
						
						// SE TIVER
						if( $MSG_STATUS == 'NFe Autorizada' ) {
						
//							javascript("window.parent.document.getElementById('div_msg_imprimindo').innerHTML = 'Imprimindo...';");
							javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'NFCe Autorizada! Aguardando Impressão...';");
//							$link = "../emissao_nfce.php?acao_auto=imprimir&id_ordem_auto=$_POST[id]";
//							javascript("window.parent.document.getElementById('frame_nfce').src = '$link';");
							javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar_imprimir').submit()},1000)");	
	
						} else {
						
							if( trim($MSG_STATUS) == 'ERRO:' ) {
						
								javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Enviando novamente';");
								javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar_enviar').submit()},2000)");	
						
							} else {
	//							javascript("window.parent.document.getElementById('div_msg_imprimindo').innerHTML = 'Imprimindo em CONTIGÊNCIA...';");
								javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Imprimindo em CONTIGÊNCIA...';");
//								$link = "../emissao_nfce.php?acao_auto=imprimir&id_ordem_auto=$_POST[id]";
//								javascript("window.parent.document.getElementById('frame_nfce').src = '$link';");
								javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar_imprimir').submit()},1000)");	

							}						
						
						}
						
					}

					exit;
			}

	
}

function verifica_nota(){
	
	$sql = selecionar('nota','nota_tx_status,nota_nb_ordem',"ativo,$_POST[id]");
	if( num_linhas($sql) == 0 ){
		
		//$numNota = ultimo_reg('nota')+1;
		
		//$sql2 = selecionar('nota,ordem','nota_tx_status,orde_nb_loja',"ativo,1");
		//$numNota = num_linhas($sql2)+1;
		
//		$sql2 = selecionar('nota,ordem','nota_tx_status,orde_nb_empresa',"ativo,1","ORDER BY nota_tx_numero+1 DESC");
		$sql2 = selecionar('nota','nota_tx_modelo,nota_tx_status',"65,ativo","ORDER BY nota_tx_numero+1 DESC LIMIT 1");
		$a2 = carrega_array($sql2);
		$numNota = intval($a2[nota_tx_numero])+1;
		
		
		//$natureza = "Lançamento efetuado em decorrência de emissão de documento fiscal relativo a operação ou prestação também registrada em equipamento Emissor de Cupom Fiscal - ECF:  $_POST[cupom]";
		//$natureza = "Lançamento relativo a Cupom Fiscal:$_POST[cupom]";
		$natureza = "Venda de mercadoria adquirida ou recebida de terceiros";
		
		$campos = array(nota_nb_ordem,nota_tx_modelo,nota_tx_serie,nota_tx_numero,nota_tx_emissao,nota_tx_tipo,
		nota_tx_formaEmissao,nota_tx_finalidadeEmissao,nota_tx_tipoImpressao,nota_tx_naturezaOperacao,nota_tx_valor,
		nota_tx_icms,nota_tx_icmsst,nota_tx_status);
		
		// MODELO 55 É NFe
		// MODELO 65 É NFCe
		
		// TIPO IMPRESSAO 1 É RETRATO
		// TIPO IMPRESSAO 2 É PAISAGEM
		// TIPO IMPRESSAO 4 É QRCODE
		$valores= array($_POST[id],'65','1',$numNota,date('y-m-d h:i:s'),'1',
		'1','NF-e normal','4','Venda de mercadoria adquirida ou recebida de terceiros',$valor,$icms,$icmsst,'ativo');
		
		inserir('nota',$campos,$valores);
		
		$chave = gera_numeroNota();
		
	} else {
		
		//------------------------------------------------------------------------------------------
		// SE JAH OUVER UM ARQUIVO XML, ENTAO MOVE ELE PAR AUMA PASTA DE BACKUP
		//------------------------------------------------------------------------------------------
		$a = carrega_array($sql);
		$arquivo_xml = LOCAL.$a[nota_tx_chaveAcesso]."-nfe.xml";
		$destino = LOCAL."\\antigos\\".$a[nota_tx_chaveAcesso]."-nfe.xml";
		rename($arquivo_xml,$destino);
		
		
	}
	
}

function imprime_danfe(){
global $CACTUX_CONF;

		// ENDERECO DO SERVIDOR DE NFe CACTUS
		$target_url = SERVIDOR_CACTUS.'imprimir.php';
		$data = array('cliente' => NFE_CLIENTE,'numero_nota' => $_POST[numero_nota]);

		$options = array(CURLOPT_URL => $target_url,CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => $data);
 
		$ch = curl_init();
		curl_setopt_array($ch, $options);
		$ret_curl = curl_exec($ch);
		curl_close($ch);
		
//		echo "%$ret_curl%";

		if( substr($ret_curl,0,2) != 'OK'  ) {
			echo "$ret_curl";
			exit;
		}

		if( substr($ret_curl,0,2) == 'OK'  ) {
				//set_status("DANFE Impresso com sucesso!");
				$danfe = substr($ret_curl,4,-5);
				//echo "<hr>".SERVIDOR_CACTUS.NFE_CLIENTE."/".$danfe."<hr>";
				javascript("window.parent.document.getElementById('botao_finalizar1').style.display = 'none';");
				javascript("window.parent.document.getElementById('botao_finalizar2').style.display = 'block';");
//				chamar_pag(SERVIDOR_CACTUS.NFE_CLIENTE."/".$danfe,'','','');
				
				// FAZ O DOWNLOAD DO PDF PARA A PASTA IMPRESSAO
				$ch = curl_init();
				$source = SERVIDOR_CACTUS.NFE_CLIENTE."/".$danfe;
				curl_setopt($ch, CURLOPT_URL, $source);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
				$data = curl_exec ($ch);
				curl_close ($ch);
				
				// AQUI CHAMA A FUNCOA QUE TIRA O NOME DO ACBR
				
				$destination = "impressao/pdf.pdf";
				$file = fopen($destination, "w+");
				fputs($file, $data);
				fclose($file);
/*				
				$arquivo_bat = "c:\\servidor\\www\\soarescomercial\\impressao\\imprimir.bat";
				$arquivo_pdf = "c:\\servidor\\www\\soarescomercial\\impressao\\pdf.pdf";

				$arquivo_bat = $_SERVER[DOCUMENT_ROOT].$CACTUX_CONF['path']."impressao\\imprimir.bat";
				$arquivo_pdf = $_SERVER[DOCUMENT_ROOT].$CACTUX_CONF['path']."impressao\\pdf.pdf";
				
				$fp = fopen($arquivo_bat,"w");
				fputs($fp,"@echo off"."\r\n");
				fputs($fp,'start /min cmd /c "timeout 5 & taskkill /f /im acrobat.exe"'."\r\n");
				fputs($fp,'c:\"Arquivos de Programas"\adobe\"Acrobat 11.0"\Acrobat\acrobat.exe /h /t '.$arquivo_pdf.' "MP-2100 TH"'."\r\n");
				fputs($fp,"\r\n");
				fclose($fp);
			
				system("$arquivo_bat");
*/				
				$arquivo_pdf = $_SERVER[DOCUMENT_ROOT].$CACTUX_CONF['path']."impressao\\pdf.pdf";
//echo $arquivo_pdf;
				bat_imprime($arquivo_pdf);
//exit;			
				$link = "pdv/pdv_imprime_pdf.php?path=../impressao/pdf.pdf";	
				chamar_pag($link,'','','');



		}
	exit;

/*
	
	//nfe_imprime_danfe();
	
	//copy("C:\\ACBrNFeMonitor\\ACBrNFeMonitor_backup.ini","C:\\ACBrNFeMonitor\\ACBrNFeMonitor.ini");
	
	$numeroNota = $_POST[numero_nota];
	$arquivo_xml = LOCAL.$numeroNota."-nfe.xml";
	$arquivo_xml_rede = LOCAL_REDE.$numeroNota."-nfe.xml";
	
	// REMOVE O ARQUIVO DE LOG
	unlink(LOG);
	
	if(	$fp = fopen($arquivo_xml,"r") ) {	
		
		// CRIA O ARQUIVO COM O COMANDO DE IMPRIMIR
		$fp = fopen(ARQUIVO,"w");
		fputs($fp,"NFE.IMPRIMIRDANFE(\"$arquivo_xml_rede\")");
		fclose($fp);
		
	}
	
	index();
	exit;
*/	
}

function enviar_nota(){
	
	// --------------------------------------------------------------------------------
	// VERIFICA SE A NOTA JÁ NÃO FOI AUTORIZADA PARA NAO ALTERAR MAIS NADA NELA
	// --------------------------------------------------------------------------------
	$sql = selecionar('nota','nota_nb_ordem',"$_POST[id]");
	if( num_linhas($sql) > 0 ) {
		$a_nota = carrega_array($sql);

		if( $a_nota[nota_tx_statusNota] == "NFe Autorizada" ) {
			
			set_status("ERRO: NFe já autorizada!");
			index();
		}
	}
	
	verifica_nota();
	
	
	
	$numeroNota = gera_xml();
	$arquivo_xml = LOCAL.$numeroNota."-nfe.xml";
	$arquivo_xml_rede = LOCAL_REDE.$numeroNota."-nfe.xml";
//	echo md5_file($arquivo_xml)."<BR>";
	
	// RMOVE O ARQUIVO DE LOG
	//unlink(LOG);
	limpa_log_retorno();
	
	if(	$fp = fopen($arquivo_xml,"r") ) {	
		
		// CRIA O ARQUIVO COM O COMANDO DE ASSINAR, ENVIAR E __NAO__ IMPRIMIR
		//$fp = fopen(ARQUIVO,"w");
		//fputs($fp,"NFE.ENVIARNFE(\"$arquivo_xml_rede\",1,1,0,1)");
		//fclose($fp);
		//$MSG_STATUS = "NFe Enviada";


		// ------------------------------------------------------------------------------------------
		//
		// NOVA FUNCAO QUE SE COMUNICA COM O SERVIDOR CACTUS E NAO DIRETAMENTE COM A SEFAZ
		//
		// ------------------------------------------------------------------------------------------
		$MSG_STATUS = nfe_envia_xml($arquivo_xml_rede);		
		
		
	} else {
		
		$MSG_STATUS = "ERRO: XML NÃO LOCALIZADO";
		
	}
	//echo $MSG_STATUS;
	
	if( trim($MSG_STATUS) != '' ) {
		atualizar('nota',nota_tx_statusNota,$MSG_STATUS,'','nota_nb_ordem',$_POST[id]);
		atualizar('ordem',orde_tx_statusNota,$MSG_STATUS,$_POST[id]);
	}
	set_status("Enviando pedido $_POST[id]: $MSG_STATUS");
	

	
//	$MSG_STATUS = 'NFe Enviada';
	
	if( $_POST[envio_automatico] != 1 ) {
	
		index();
		exit;
		
	} else {
		
//echo "Enviando pedido $_POST[id]: $MSG_STATUS";
		javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = '$MSG_STATUS';");
//		javascript("window.parent.document.getElementById('div_msg_enviando').innerHTML = '$MSG_STATUS';");

		if( $MSG_STATUS == 'NFe Enviada' ) {
		
//			javascript("window.parent.document.getElementById('div_msg_autorizando').innerHTML = 'Autorizando...';");
			javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'NFCe Enviada. Aguardando Autorização...<br><img src=../cactus/imagens/carregando.gif width=100px></div></center>';");
			javascript("setInterval(function(){window.parent.document.getElementById('form_atualizar').submit()},5000)");	
			
		} else {


			javascript("window.parent.document.getElementById('botao_finalizar1').style.display = 'none';");
			javascript("window.parent.document.getElementById('botao_finalizar2').style.display = 'block';");

			javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Erro ao enviar. Imprimindo em CONTIGÊNCIA...<br><img src=../cactus/imagens/carregando.gif width=100px></div></center>';");
			$link = "../emissao_nfce.php?acao_auto=imprimir&id_ordem_auto=$_POST[id]";
			javascript("window.parent.document.getElementById('frame_nfce').src = '$link';");
		
		}
		exit;
		
	}
		
	
}

function cancela_nota(){
	
	$a = carregar('ordem,entidade',$_POST[id]);
	$nota = carregar('nota','','nota_nb_ordem',$a[orde_nb_id]);
	
	$cnpj = str_replace(array(".","-","/"),array("","",""),$a[orde_tx_cnpj]);
	

	// REMOVE O ARQUIVO DE LOG
	unlink(LOG);

//24170409255518000140550010000000011260223675 ERRO: Chave  inv?lida.
//24170409255518000140550010000000011260223671
//24170409255518000140550010000000011260223671
//24170427097789000105550010000000011260223675

	// ENDERECO DO SERVIDOR DE NFe CACTUS
	$target_url = SERVIDOR_CACTUS.'cancelar.php';
	$data = array('cliente' => NFE_CLIENTE,'chave_acesso' => $nota[nota_tx_chaveAcesso], 'cnpj' => $cnpj);

	$options = array(CURLOPT_URL => $target_url,CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => $data);

	$ch = curl_init();
	curl_setopt_array($ch, $options);
	$ret_curl = curl_exec($ch);
	curl_close($ch);
	
//	echo "%%$ret_curl%%";


	if( get_status() == '' )
		set_status($ret_curl);

	if( trim($ret_curl) == 'Evento registrado e vinculado a NF-e' ) {
		retorno();
		exit;
	}

	if( $_POST[envio_automatico] != 1 ) {
	
		index();
		exit;
		
	} else {
		
		javascript("window.parent.document.getElementById('div_msg_nfe').innerHTML = 'Cancelamento enviado, atualize em alguns instantes';");

		
	}
	
	exit;
	
	if( substr($ret_curl,0,3) == 'OK:' ) {
		$MSG_STATUS = "NFe Cancelada";
	} else  {
		$MSG_STATUS = "$ret_curl";
	}
	
	$ENTROU_RETORNO = 1;
	
	
//	$chave = substr($retorno_log[0],17,44);
//	$nota = carregar('nota','','nota_tx_chaveAcesso',$chave);
	if( $nota ) {
		if( $MSG_STATUS == "NFe Cancelada" ) {
			atualizar('ordem',orde_tx_statusNota,$MSG_STATUS,$nota[nota_nb_ordem]);
			atualizar('nota',nota_tx_statusNota,$MSG_STATUS,$nota[nota_nb_id]);
		}
	}
	
	set_status("$MSG_STATUS");			


	index();
	exit;
	
	
	//NFE.CANCELARNFE("35XXXXXXXXXXXXXXXX550010000000050000000058","motivo")	
	
	$cnpj = str_replace(array(".","-","/"),array("","",""),$a[orde_tx_cnpj]);
	
	//echo "NFE.CANCELARNFE(\"".$nota[nota_tx_chaveAcesso]."\",\"Cliente retornou os produtos!\",\"$cnpj\")";
	//exit;
	
	// CRIA O ARQUIVO COM O COMANDO DE CONSULTAR
	$fp = fopen(ARQUIVO,"w");
	fputs($fp,"NFE.CANCELARNFE(\"".$nota[nota_tx_chaveAcesso]."\",\"Cliente retornou os produtos!,$cnpj\")");
	fclose($fp);

	//echo "NFE.EnviarEmail(\"$a[orde_tx_email]\",\"".LOCAL.$nota[nota_tx_chaveAcesso]."-nfe.xml\",\"1\")";
	
	set_status("Cancelamento de NFe enviado!");
	
	exclui_pedido();
	
	index();
	exit;
	
}


function consultar_nota(){

	$a = carregar('ordem,entidade',$_POST[id]);
	$nota = carregar('nota','','nota_nb_ordem',$a[orde_nb_id]);

	// REMOVE O ARQUIVO DE LOG
	unlink(LOG);


	// ENDERECO DO SERVIDOR DE NFe CACTUS
	$target_url = SERVIDOR_CACTUS.'consultar.php';
	$data = array('cliente' => NFE_CLIENTE,'chave_acesso' => $nota[nota_tx_chaveAcesso], 'email' => $a[orde_tx_email]);

	$options = array(CURLOPT_URL => $target_url,CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => $data);

	$ch = curl_init();
	curl_setopt_array($ch, $options);
	$ret_curl = curl_exec($ch);
	curl_close($ch);
	
//	echo "%%$ret_curl%%";

	if( get_status() == '' )
		set_status($ret_curl);

	index();
	exit;
	

/*
	//NFE.CONSULTARNFE("35XXXXXXXXXXXXXXXX550010000000050000000058")

	// CRIA O ARQUIVO COM O COMANDO DE CONSULTAR
	$fp = fopen(ARQUIVO,"w");
	fputs($fp,"NFE.CONSULTARNFE(\"".$nota[nota_tx_chaveAcesso]."\")");
	fclose($fp);

	//echo "NFE.EnviarEmail(\"$a[orde_tx_email]\",\"".LOCAL.$nota[nota_tx_chaveAcesso]."-nfe.xml\",\"1\")";
	
	set_status("Consulta de NFe enviado!");
	
	//exclui_pedido();
	
	index();
	exit;
*/	
}


function envia_email(){
	
	
	$a = carregar('ordem,entidade',$_POST[id]);
	$nota = carregar('nota','','nota_nb_ordem',$a[orde_nb_id]);
	
	
	if( $a[enti_tx_email] == '' ) {
		set_status("ERRO: E-mail não cadastrado!");
		index();
		exit;
	}


	// ENDERECO DO SERVIDOR DE NFe CACTUS
	$target_url = SERVIDOR_CACTUS.'email.php';
	$data = array('cliente' => NFE_CLIENTE,'chave_acesso' => $nota[nota_tx_chaveAcesso], 'email' => $a[enti_tx_email]);
	$options = array(CURLOPT_URL => $target_url,CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => $data);

	$ch = curl_init();
	curl_setopt_array($ch, $options);
	$ret_curl = curl_exec($ch);
	curl_close($ch);
	
//		echo "%$ret_curl%";

	if( get_status() == '' )
		set_status($ret_curl);

	index();
	exit;
	
/*
	//NFE.EnviarEmail("renatodnts@gmail.com","C:\Servidor\www\msc\xml\35110570309810000100550010000000031885137931-nfe.xml", "1" )
	
	// CRIA O ARQUIVO COM O COMANDO DE CONSULTAR
	$fp = fopen(ARQUIVO,"w");
	fputs($fp,"NFE.EnviarEmail(\"$a[orde_tx_email]\",\"".LOCAL_REDE.$nota[nota_tx_chaveAcesso]."-nfe.xml\",\"1\")");
	fclose($fp);

	//echo "NFE.EnviarEmail(\"$a[orde_tx_email]\",\"".LOCAL.$nota[nota_tx_chaveAcesso]."-nfe.xml\",\"1\")";

	set_status("Enviando E-mail...");
	
	index();
	exit;
*/	

}


function atualiza_status(){

	$nota = carregar('nota','','nota_nb_ordem',$_POST[id]);
	
	// REMOVE O ARQUIVO DE LOG
	unlink(LOG);


	// ENDERECO DO SERVIDOR DE NFe CACTUS
	$target_url = SERVIDOR_CACTUS.'consultar.php';
	$data = array('cliente' => NFE_CLIENTE,'chave_acesso' => $nota[nota_tx_chaveAcesso]);

	$options = array(CURLOPT_URL => $target_url,CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => $data);

	$ch = curl_init();
	curl_setopt_array($ch, $options);
	$ret_curl = curl_exec($ch);
	curl_close($ch);
	
//		echo "%$ret_curl%";

	if( get_status() == '' )
		set_status($ret_curl);

	index();
	exit;

/*	
	$nota = carregar('nota','','nota_nb_ordem',$_POST[id]);
	
	// REMOVE O ARQUIVO DE LOG
	unlink(LOG);
	
	// CRIA O ARQUIVO COM O COMANDO DE CONSULTAR
	$fp = fopen(ARQUIVO,"w");
	fputs($fp,"NFE.CONSULTARNFE(\"$nota[nota_tx_chaveAcesso]\")");
	fclose($fp);
	
	set_status("Enviando Atualização...");
	
	index();
	exit;
*/	
}

function imprime_cupom() {
global $CACTUX_CONF,$CONFIGURA;

	define(PASTA_LOCAL,$_SERVER[DOCUMENT_ROOT].$CACTUX_CONF['path']);
	
	$arquivo_pdf = PASTA_LOCAL.'impressao/conteudo_imprimir.htm';
	$arquivo_bat = PASTA_LOCAL.'impressao/imprimir.bat';

//	$id_ordem = $_POST[id_ordem_finalizar];
	montar_impressao_comanda();
	
		//$arquivo_pdf = $_SERVER[DOCUMENT_ROOT].$CACTUX_CONF['path']."impressao\\conteudo_imprimir.htm";
//		$arquivo_pdf = "c:\\servidor\\www\\soarescomercial\\impressao\\conteudo_imprimir.htm";
		bat_imprime($arquivo_pdf);
	//echo $arquivo_pdf;
		$link = "/$CONFIGURA[PASTA_NFE]/pdv/pdv_imprime_pdf.php?path=../impressao/conteudo_imprimir.htm?".time();	
		chamar_pag($link,'','','');
		
		//echo "<center><iframe id=frame_nfce src='$link' width=0px height=0px frameborder=no></iframe></center>";
	
	exit;
}

function executa_exportacao() {

	print_r($_POST);
	
	exit;
}

function nfe_gera_zip_xml($arq,$arquivo_baixar) {
		global $CONFIGURA;
		
		$target_url = SERVIDOR_CACTUS.'exportar2.php';

		$md5_antes = @md5_file($arq);

		$a=carregar('empresa',1);
		$cnpj=str_replace(array('/','-','.'),'',$a[empr_tx_cnpj]);
	
		$data = array('file' => base64_encode($arq),'arquivo_baixar' => base64_encode($arquivo_baixar),'cliente' => NFE_CLIENTE,'cnpj' => $cnpj,'pasta_acbr' => $CONFIGURA[PASTA_ACBR]);
		$options = array( CURLOPT_URL => $target_url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $data);
		$ch = curl_init();
		curl_setopt_array($ch, $options);
		$ret_curl = curl_exec($ch);
		curl_close($ch);

		// echo "#$ret_curl#"; exit;
		$erro = 1;
		
		// SE O SERVIDOR RETORNOU DIZENDO QUE GRAVOU, VERIFICA SE O MD5 EH IQUAL
		if( substr($ret_curl,0,2) == "OK" ) {

				$danfe = substr($ret_curl,4,-5);
//				echo "<hr>!!!".SERVIDOR_CACTUS.NFE_CLIENTE."/".$danfe."!!!<hr>";
				$ret_curl = "XML Exportados com sucesso!";
				// echo $ret_curl;
				// echo SERVIDOR_CACTUS.NFE_CLIENTE."/".$danfe;
				
				// chamar_pag(SERVIDOR_CACTUS.NFE_CLIENTE."/".$danfe,'','','');
				// exit;
				
		}

		if( substr($ret_curl,0,4) == "ERRO" ) {
			$erro=0;
		}		

		// VERIFICA SE HOUVE ERRO NO ENVIO
		if( $erro == 1 ) {
			$ret_curl = "ERRO 10: Erro ao enviar o xml";
		}
		

	
	return $ret_curl;	
}



function envia_email_novo($id_use='',$id_edi='') {
	require("PHPMailer_v5.1/class.phpmailer.php");
	global $CONFIGURA;

	$mes = mesNum($_POST[busca_mes],1);
	$extra = preenche_tabela_fiscal();

/*
	if($_POST[busca_cod]!=''){
		$extra .= " AND orde_nb_id = '$_POST[busca_cod]' ";
	}

	if($_POST[busca_inicio]!=''){
		//$extra .= " AND orde_tx_data >= '$d1' ";
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";
		// $extra2 .= " AND fisc_tx_data >= '".gera_data($_POST[busca_inicio],1)."' ";
	}
	
	if($_POST[busca_fim]!=''){
//		$extra .= " AND orde_tx_data <= '$d2' ";
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";
		// $extra2 .= " AND fisc_tx_data <= '".gera_data($_POST[busca_fim],1)."' ";
	}
	if($_POST[busca_ano]!='')
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";

	$extra .= " AND (nota_tx_statusNota='NFe Autorizada' OR nota_tx_statusNota='NFe Cancelada') ";

	$sql_fix = selecionar('tributacao','trib_tx_status',"ativo");
	while($a_fix = carrega_array($sql_fix)){
		if($a_fix[trib_tx_cfopInterno]=='')
			atualizar('tributacao','trib_tx_cfopInterno','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_cstPis]=='')
			atualizar('tributacao','trib_nb_cstPis','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_cstCofins]=='')
			atualizar('tributacao','trib_nb_cstCofins','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_ipiCst]=='')
			atualizar('tributacao','trib_nb_ipiCst','0',$a_fix[trib_nb_id]);
		
	}


	$sql_fix = selecionar('trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst,SUM(orpr_tx_qtde) as qtde,SUM(orpr_tx_valor*orpr_tx_qtde) as valor,orde_tx_data|orpr,ordem,produto.imposto.tributacao.nota',
		'orde_tx_status,orpr_tx_status,trib_tx_status',"!inativo,!inativo,!inativo",
		" AND prod_tx_ncm = impo_tx_codigo AND impo_nb_id = trib_nb_imposto AND prod_tx_ncm != ''
		AND nota_nb_ordem = orde_nb_id AND orpr_nb_ordem = orde_nb_id $extra GROUP BY trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst ORDER BY orde_tx_data,trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst");

	mysql_query("TRUNCATE TABLE fiscal");

	while($a_fix=carrega_array($sql_fix)){

		inserir('fiscal',
			array(fisc_tx_valor,fisc_tx_qtde,fisc_tx_data,fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi,fisc_tx_status),
			array($a_fix[valor],$a_fix[qtde],$a_fix[orde_tx_data],$a_fix[trib_tx_cfopInterno],$a_fix[trib_nb_cstPis],$a_fix[trib_nb_cstCofins],$a_fix[trib_nb_ipiCst],ativo),
			1
		);

		// echo ++$i." -> $a[0] -> $a[1]<br>";
	}

	//FIM CALCULO
*/



	@mkdir($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'zip/');

	// Get real path for our folder
	$rootPath = realpath($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'xml_nfce/'.$_POST[busca_ano].$mes.'/autorizada');
	$rootPath2 = realpath($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'xml_nfe/'.$_POST[busca_ano].$mes.'/autorizada');
	$rootPath3 = realpath($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'xml_nfce/'.$_POST[busca_ano].$mes.'/inutilizado');
	$rootPath4 = realpath($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'xml_nfe/'.$_POST[busca_ano].$mes.'/inutilizado');
	$rootPath5 = realpath($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'xml_nfce/'.$_POST[busca_ano].$mes.'/cancelado');
	$rootPath6 = realpath($_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'xml_nfe/'.$_POST[busca_ano].$mes.'/cancelado');

	
	$arquivo_zip = $_SERVER[DOCUMENT_ROOT].$CONFIGURA[PATH].'zip/'.$_POST[busca_ano].$mes.'.zip';
	$arquivo_download = $CONFIGURA[PATH].'zip/'.$_POST[busca_ano].$mes.'.zip';
	$url_download = $_SERVER['HTTP_HOST'].$arquivo_download;
	// Initialize archive object
	$zip = new ZipArchive();
	$zip->open($arquivo_zip, ZipArchive::CREATE | ZipArchive::OVERWRITE);

	// Create recursive directory iterator
	/** @var SplFileInfo[] $files */
	if($rootPath!=''){
		$files = new RecursiveIteratorIterator(
		    new RecursiveDirectoryIterator($rootPath),
		    RecursiveIteratorIterator::LEAVES_ONLY
		);

		foreach ($files as $name => $file)
		{
		    // Skip directories (they would be added automatically)
		    if (!$file->isDir())
		    {
		        // Get real and relative path for current file
		        $filePath = $file->getRealPath();
		        // $relativePath = substr($filePath, strlen($rootPath) + 1);
		        $a_path = explode("\\",$filePath);
		        $relativePath = $a_path[count($a_path)-2]."\\".$a_path[count($a_path)-1];
		        // Add current file to archive
		        // echo "$filePath - $relativePath<hr>";exit;
		        $zip->addFile($filePath, $relativePath);
		    }
		}
	}

	if($rootPath2!=''){
		$files2 = new RecursiveIteratorIterator(
		    new RecursiveDirectoryIterator($rootPath2),
		    RecursiveIteratorIterator::LEAVES_ONLY
		);

		foreach ($files2 as $name => $file)
		{
		    // Skip directories (they would be added automatically)
		    if (!$file->isDir())
		    {
		        // Get real and relative path for current file
		        $filePath = $file->getRealPath();
		        // $relativePath = substr($filePath, strlen($rootPath2) + 1);
		        $a_path = explode("\\",$filePath);
		        $relativePath = $a_path[count($a_path)-2]."\\".$a_path[count($a_path)-1];

		        // Add current file to archive
		        $zip->addFile($filePath, $relativePath);
		    }
		}		
	}

	if($rootPath3!=''){
		$files3 = new RecursiveIteratorIterator(
		    new RecursiveDirectoryIterator($rootPath3),
		    RecursiveIteratorIterator::LEAVES_ONLY
		);

		foreach ($files3 as $name => $file)
		{
		    // Skip directories (they would be added automatically)
		    if (!$file->isDir())
		    {
		        // Get real and relative path for current file
		        $filePath = $file->getRealPath();
		        // $relativePath = substr($filePath, strlen($rootPath3) + 1);
		        $a_path = explode("\\",$filePath);
		        $relativePath = $a_path[count($a_path)-2]."\\".$a_path[count($a_path)-1];

		        // Add current file to archive
		        $zip->addFile($filePath, $relativePath);
		    }
		}
	}

	if($rootPath4!=''){
		$files4 = new RecursiveIteratorIterator(
		    new RecursiveDirectoryIterator($rootPath4),
		    RecursiveIteratorIterator::LEAVES_ONLY
		);

		foreach ($files4 as $name => $file)
		{
		    // Skip directories (they would be added automatically)
		    if (!$file->isDir())
		    {
		        // Get real and relative path for current file
		        $filePath = $file->getRealPath();
		        // $relativePath = substr($filePath, strlen($rootPath4) + 1);
		        $a_path = explode("\\",$filePath);
		        $relativePath = $a_path[count($a_path)-2]."\\".$a_path[count($a_path)-1];

		        // Add current file to archive
		        $zip->addFile($filePath, $relativePath);
		    }
		}
	}

	if($rootPath5!=''){
		$files5 = new RecursiveIteratorIterator(
		    new RecursiveDirectoryIterator($rootPath5),
		    RecursiveIteratorIterator::LEAVES_ONLY
		);

		foreach ($files5 as $name => $file)
		{
		    // Skip directories (they would be added automatically)
		    if (!$file->isDir())
		    {
		        // Get real and relative path for current file
		        $filePath = $file->getRealPath();
		        // $relativePath = substr($filePath, strlen($rootPath5) + 1);
		        $a_path = explode("\\",$filePath);
		        $relativePath = $a_path[count($a_path)-2]."\\".$a_path[count($a_path)-1];

		        // Add current file to archive
		        $zip->addFile($filePath, $relativePath);
		    }
		}
	}

	if($rootPath6!=''){
		$files6 = new RecursiveIteratorIterator(
		    new RecursiveDirectoryIterator($rootPath6),
		    RecursiveIteratorIterator::LEAVES_ONLY
		);

		foreach ($files6 as $name => $file)
		{
		    // Skip directories (they would be added automatically)
		    if (!$file->isDir())
		    {
		        // Get real and relative path for current file
		        $filePath = $file->getRealPath();
		        // $relativePath = substr($filePath, strlen($rootPath6) + 1);
		        $a_path = explode("\\",$filePath);
		        $relativePath = $a_path[count($a_path)-2]."\\".$a_path[count($a_path)-1];

		        // Add current file to archive
		        $zip->addFile($filePath, $relativePath);
		    }
		}
	}



	// Zip archive will be created only after closing object
	$zip->close();



// 	// connect and login to FTP server
// $ftp_server = "ftp.cactustecnologia.com";
// $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
// $login = ftp_login($ftp_conn, "xml@cactustecnologia.com	", "cactus000");
// ftp_pasv($ftp_conn, true);
// ftp_mkdir($ftp_conn, "/public_html/exportar_xml".$CONFIGURA[PATH]);


// $file = '..'.$arquivo_download;


// // upload file
// if (ftp_put($ftp_conn, "/public_html/exportar_xml".$CONFIGURA[PATH].basename($file), $file, FTP_BINARY)){
// 	echo "";
// }else{
// 	$erro = error_get_last();
// 	echo "<br>ERRO AO ENVIAR O ARQUIVO AO FTP: $file."."<hr>".$erro["message"];
// 	exit;
// }

// // echo "Arquivo criado com sucesso. <a href='http://www.cactustecnologia.com/exportar_xml$CONFIGURA[PATH]/".basename($file)."' rel='nofollow'>Clique aqui para baixar</a>";

// // close connection
// ftp_close($ftp_conn);







	
	$a_empresa=carregar('empresa',1);
	
	//$a[alun_tx_email] = 'lianemaster@gmail.com';
//			$email = 'renatodnts@gmail.com';
	$hj = date("d/m/Y");
	$publicacoes='';

	
	$mail = new PHPMailer();
	

	$mail->SMTPDebug  = 1; // enables SMTP debug information (for testing)
						   // 1 = errors and messages
						   // 2 = messages only

	$mail->IsSMTP();  // telling the class to use SMTP
	$mail->IsHTML(true); //TIPO DO EMAIL HTML
	$mail->SMTPAuth   = true;  
	$mail->Host       = 'mail.sistemascactus.com.br'; // SMTP server
	$mail->Port       = 587; 
	$mail->Username   = 'financeiro@sistemascactus.com.br'; // Usuário do servidor SMTP (endereço de email)
	$mail->Password   = 'cactus000'; // Senha do servidor SMTP (senha do email usado)

	$mail->SetFrom('financeiro@sistemascactus.com.br', 'SISTEMAS CACTUS');
	$mail->FromName = "SISTEMAS CACTUS";
	$mail->AddReplyTo("financeiro@sistemascactus.com.br");
		
	$mail->Subject  = "Relatório Fiscal $CONFIGURA[NOME_SISTEMA] - $_POST[busca_mes]/$_POST[busca_ano]";
	
	
	$email=strtolower($a_empresa[empr_tx_emailContador]);
	$a_email = explode(",",$email);
	for($i=0;$i<count($a_email);$i++){
		if($a_email[$i]!='')
			$mail->AddAddress($a_email[$i]);
	}

	// if($email!='')
	// 	$mail->AddAddress($email);
	if($a_empresa[empr_tx_email]!='')
		$mail->AddAddress($a_empresa[empr_tx_email]);
	
	$mail->AddAddress('raphaelcactus@gmail.com');
	$mail->AddAddress('rn12.istefanes@gmail.com');



	$mes = mesNum($_POST[busca_mes],1);

	// $extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%'";
	// $extra2 .= " AND fisc_tx_data LIKE '$_POST[busca_ano]-$mes%' ";
	
	if($_POST[busca_cliente]!=''){
		$extra .= " AND orde_tx_nome LIKE '%$_POST[busca_cliente]%' ";
	}
	
	// $extra .= " AND orde_tx_status IN('encerrado','entregue') ";
	$extra .= " AND orde_tx_status != 'inativo'";

	$extra .= " AND orde_nb_empresa=1";
	
	$extra .= " AND (nota_tx_statusNota='NFe Autorizada' OR nota_tx_statusNota='NFe Cancelada' OR nota_tx_statusNota='NFe Inutilizada') ";

	$tabela = '<table border=1 style="border: 1px solid black; border-collapse: collapse;margin-right:10px;">
		<tr>
			<th>CFOP</th>
			<th>CST/PIS/PASEP</th>
			<th>CST/COFINS</th>
			<th>CST/IPI</th>
			<th>ITENS</th>
			<th>VALOR</th>
		</tr>';
	

	$sql2 = selecionar('fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi,SUM(fisc_tx_qtde) AS qtde,SUM(fisc_tx_valor) AS valor|fiscal',
		'fisc_tx_status','ativo',
		" $extra2 GROUP BY fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi");

	while($a2=carrega_array($sql2)){
		if($a2[fisc_nb_cstPis]>0){
			$a_pis=carregar('impo_tx_nome,impo_tx_codigo|imposto',$a2[fisc_nb_cstPis]);
			$a_pis = "$a_pis[1]-$a_pis[0]";
		}
		if($a2[fisc_nb_cstCofins]>0){
			$a_cofins=carregar('impo_tx_nome,impo_tx_codigo|imposto',$a2[fisc_nb_cstCofins]);
			$a_cofins = "$a_cofins[1]-$a_cofins[0]";
		}
		if($a2[fisc_nb_cstIpi]>0){
			$a_ipi=carregar('impo_tx_nome,impo_tx_codigo|imposto',$a2[fisc_nb_cstIpi]);
			$a_ipi = "$a_ipi[1]-$a_ipi[0]";
		}

		$tabela .= "<tr>
		<td>".$a2[fisc_tx_cfop]."</td>
		<td>".$a_pis."</td>
		<td>".$a_cofins."</td>
		<td>".$a_ipi."</td>
		<td>".mostra_valor($a2[qtde])."</td>
		<td>".mostra_valor($a2[valor])."</td></tr>";

		$total_cfop+=$a2[valor];
		$total_cfop_item+=$a2[qtde];
		
	}

		$tabela.= "<tr>
		<td></td>
		<td></td>
		<td></td>
		<td></td>
		<td><b>".mostra_valor($total_cfop_item)."</b></td>
		<td><b>".mostra_valor($total_cfop)."</b></td></tr></table>";

		
		

	$msg= "	<html>

				<head>
				<meta http-equiv='Content-Language' content='pt-br'>
				<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>
				<title>MOSSORÓ</title>
				</head>

				<body>

				<table border='0' style='background-color: #187045' width='760' cellpadding=0 cellspacing=0>
					<tr >
						<td colspan='3'>
							<img align = 'bottom' border='0' src='http://www.sistemascactus.com.br/cabecalho.jpg'>
						</td>
					</tr>
					
						
					<tr >
						<td width='2px'>
							
						</td>

						<td width='764' style='background-color:white; padding-left: 10px;  font-family:Verdana; font-size:15px' align='left' height='90' text-decoration:none>
						<span style='letter-spacing: normal;text-decoration:none; '>
						<font face='arial, sans-serif' style='font-size: 11px text-decoration:none' >
						
							<br>
							Caro(a) $a_empresa[empr_tx_nomeContador], segue o resumos fiscal do sistema $CONFIGURA[NOME_SISTEMA] referente a $_POST[busca_mes]/$_POST[busca_ano],<br>
							<br>
							Clique no link para acessar os arquivos XMLs. <a href='$url_download' target=blank> [ DOWNLOAD ]</a>
							<br>
							<br>
							
							$tabela
							<br>
							
							<br>

						</font></span></td>

						<td width='4px'>
							
						</td>
					</tr>

						
					<tr style=''>
						<td width='4px'>
							
						</td>

						<td  width='764' style='background-color:white; padding-left: 10px;  font-family:Verdana; font-size:15px' align='right' height='90' text-decoration:none>
						<span style='letter-spacing: normal;text-decoration:none; '>
						<font face='arial, sans-serif' style='font-size: 11px text-decoration:none' >
						
							<br>Mossoró, ". date("d")." de  ".mesExtenso()." de ". date("Y") ."&nbsp;&nbsp;

						</font></span></td>

						<td width='4px'>
							
						</td>

					</tr>
				</table>
			";					
	
	
	
		
	// Rodapé do email
	$msg.=  "
			<table border='0' width='760' cellpadding=0 cellspacing=0>
			
			<tr>
						<td width='764' style=' padding-left: 10px; background-color: #A9C62D; font-family:Verdana; color:#FFFFFF; font-size:18px' align='left' height='40'>
						<span style='color: rgb(0, 77, 125); font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: uppercase; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: rgb(169, 198, 45);'>
						CACTUSTE TECNOLOGIA DA INFORMAÇÃO</span></td>
					</tr>
					
					
					<tr>
						<td width='764' style='padding-left: 10px; background-color: #187045; font-family:Verdana; color:#FFFFFF; font-size:12px' align='left' height='90' text-decoration:none>
						<span style='letter-spacing: normal; background-color: #187045; text-decoration:none; '>
						<font face='arial, sans-serif' style='font-size: 11px text-decoration:none' >
						Rua Dr. João Marcelino, 142 - Santo Antônio, Mossoró - RN, 59611-200<br>
						Telefone: (84)3316-3335 / Email: contato@cactustecnologia.com.br</font></span></td>
					</tr>
										
					
					
					</table>

				</body>

				</html>";
		









			$mail->Body     =  $msg;
			
			$mail->Send();

			// $arquivo_baixar = $_POST[busca_ano].$mes;

			// nfe_gera_zip_xml(@implode(PHP_EOL,$zip),$arquivo_baixar);
		

			index();
			exit;

}

function preenche_tabela_fiscal() {


	$sql = selecionar("produto.imposto,tributacao,orpr",'prod_tx_status','ativo',' AND trib_tx_uf = "RN" AND impo_nb_id=trib_nb_imposto AND prod_tx_ncm=impo_tx_codigo AND orpr_nb_produto = prod_nb_id GROUP BY prod_tx_ncm',0);
	while( $a = carrega_array($sql) ) {
		query("UPDATE produto SET prod_nb_imposto=$a[impo_nb_id], prod_nb_tributacao=$a[trib_nb_id] WHERE prod_tx_ncm='$a[prod_tx_ncm]' ");
	}

	if($_POST[busca_cod]!=''){
		$extra .= " AND orde_nb_id = '$_POST[busca_cod]' ";
	}
	$mes = mesNum($_POST[busca_mes],1);

	if($_POST[busca_inicio]!=''){
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";
	}
	
	if($_POST[busca_fim]!=''){
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";
	}
	if($_POST[busca_ano]!='')
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";

	$extra .= " AND (nota_tx_statusNota='NFe Autorizada' OR nota_tx_statusNota='NFe Cancelada') ";


	$sql_fix = selecionar('tributacao','trib_tx_status',"ativo");
	while($a_fix = carrega_array($sql_fix)){
		if($a_fix[trib_tx_cfopInterno]=='')
			atualizar('tributacao','trib_tx_cfopInterno','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_cstPis]=='')
			atualizar('tributacao','trib_nb_cstPis','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_cstCofins]=='')
			atualizar('tributacao','trib_nb_cstCofins','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_ipiCst]=='')
			atualizar('tributacao','trib_nb_ipiCst','0',$a_fix[trib_nb_id]);
		
	}

	
	
	// PEGA TODOS OS ORPR COM STATUS ATIVO. NAO PEGA PAGAMENTO E NAO PEGA TAXA
	$sql_fix = selecionar('trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst,SUM(orpr_tx_qtde) as qtde,SUM(ROUND(orpr_tx_valor*orpr_tx_qtde,2)) as valor,orde_tx_data,SUM(orpr_tx_desconto) as desconto|orpr,ordem,produto.tributacao,nota',
		'orde_tx_status,orpr_tx_status',"!inativo,ativo",
		" AND prod_nb_tributacao = trib_nb_id AND prod_tx_ncm != ''
		AND nota_nb_ordem = orde_nb_id AND orpr_nb_ordem = orde_nb_id $extra GROUP BY trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst ORDER BY orde_tx_data,trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst");

	mysql_query("TRUNCATE TABLE fiscal");

	while($a_fix=carrega_array($sql_fix)){

		inserir('fiscal',
			array(fisc_tx_valor,fisc_tx_qtde,fisc_tx_data,fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi,fisc_tx_status),
			array($a_fix[valor]-$a_fix[desconto],$a_fix[qtde],$a_fix[orde_tx_data],$a_fix[trib_tx_cfopInterno],$a_fix[trib_nb_cstPis],$a_fix[trib_nb_cstCofins],$a_fix[trib_nb_ipiCst],ativo),
			1
		);

	}


	return $extra;
}

function exporta_xml() {
	global $CONFIGURA;
	set_time_limit(0);
	
	
	
	cabecaRelatorio("Vendas Fiscais");




	$extra = preenche_tabela_fiscal();echo "|$extra|";

/*
	if($_POST[busca_cod]!=''){
		$extra .= " AND orde_nb_id = '$_POST[busca_cod]' ";
	}
	$mes = mesNum($_POST[busca_mes],1);

	if($_POST[busca_inicio]!=''){
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";
	}
	
	if($_POST[busca_fim]!=''){
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";
	}
	if($_POST[busca_ano]!='')
		$extra .= " AND nota_tx_emissao LIKE '$_POST[busca_ano]-$mes%' ";

	$extra .= " AND (nota_tx_statusNota='NFe Autorizada' OR nota_tx_statusNota='NFe Cancelada') ";

	


	$sql_fix = selecionar('tributacao','trib_tx_status',"ativo");
	while($a_fix = carrega_array($sql_fix)){
		if($a_fix[trib_tx_cfopInterno]=='')
			atualizar('tributacao','trib_tx_cfopInterno','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_cstPis]=='')
			atualizar('tributacao','trib_nb_cstPis','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_cstCofins]=='')
			atualizar('tributacao','trib_nb_cstCofins','0',$a_fix[trib_nb_id]);
		if($a_fix[trib_nb_ipiCst]=='')
			atualizar('tributacao','trib_nb_ipiCst','0',$a_fix[trib_nb_id]);
		
	}

	
	
	// PEGA TODOS OS ORPR COM STATUS ATIVO. NAO PEGA PAGAMENTO E NAO PEGA TAXA
	$sql_fix = selecionar('trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst,SUM(orpr_tx_qtde) as qtde,SUM(orpr_tx_valor*orpr_tx_qtde) as valor,orde_tx_data|orpr,ordem,produto.tributacao,nota',
		'orde_tx_status,orpr_tx_status,trib_tx_status',"!inativo,ativo,!inativo",
		" AND prod_nb_tributacao = trib_nb_id AND prod_tx_ncm != ''
		AND nota_nb_ordem = orde_nb_id AND orpr_nb_ordem = orde_nb_id $extra GROUP BY trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst ORDER BY orde_tx_data,trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst");

	mysql_query("TRUNCATE TABLE fiscal");

	while($a_fix=carrega_array($sql_fix)){

		inserir('fiscal',
			array(fisc_tx_valor,fisc_tx_qtde,fisc_tx_data,fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi,fisc_tx_status),
			array($a_fix[valor],$a_fix[qtde],$a_fix[orde_tx_data],$a_fix[trib_tx_cfopInterno],$a_fix[trib_nb_cstPis],$a_fix[trib_nb_cstCofins],$a_fix[trib_nb_ipiCst],ativo),
			1
		);

	}
*/


	$cab2[] = array('CFOP','CST/PIS/PASEP','CST/COFINS','CST/IPI','ITENS','VALOR');
	$cab2[] = 'c,e,e,e,e,c,c';
	$cab2[] = '10%,,,,,10%,10%';
	$cab2[] = '98%';

	$sql2 = selecionar('fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi,SUM(fisc_tx_qtde) AS qtde,SUM(fisc_tx_valor) AS valor|fiscal',
		'fisc_tx_status','ativo',
		" GROUP BY fisc_tx_cfop,fisc_nb_cstPis,fisc_nb_cstCofins,fisc_nb_cstIpi");

	while($a2=carrega_array($sql2)){
		if($a2[fisc_nb_cstPis]>0){
			$a_pis=carregar('impo_tx_nome,impo_tx_codigo|imposto',$a2[fisc_nb_cstPis]);
			$a_pis = "$a_pis[1]-$a_pis[0]";
		}
		if($a2[fisc_nb_cstCofins]>0){
			$a_cofins=carregar('impo_tx_nome,impo_tx_codigo|imposto',$a2[fisc_nb_cstCofins]);
			$a_cofins = "$a_cofins[1]-$a_cofins[0]";
		}
		if($a2[fisc_nb_cstIpi]>0){
			$a_ipi=carregar('impo_tx_nome,impo_tx_codigo|imposto',$a2[fisc_nb_cstIpi]);
			$a_ipi = "$a_ipi[1]-$a_ipi[0]";
		}

		$val2[] = array($a2[fisc_tx_cfop],$a_pis,$a_cofins,$a_ipi,mostra_valor($a2[qtde]),mostra_valor($a2[valor]));

		$total_cfop+=$a2[valor];
		$total_cfop_item+=$a2[qtde];
		
	}

	$val2[] = array('','','','',"<b>".mostra_valor($total_cfop_item),"<b>".mostra_valor($total_cfop));


	if($total_cfop_item>0) {

	echo "<div style='page-break-after: always;'>";

		grid::gerar($cab2,$val2);
	echo "</div>";
	}

	// FIM DO RESUMO, AGORA VOU LISTAR NOTA A NOTA

	cabecaRelatorio("Vendas Fiscais");


	$cabecalho[] = array('#','CHAVE NOTA','NOTA','DATA','VALOR','COD','CLIENTE','STATUS');
	$cabecalho[] = 'c,e,c,c,c,c,e,c';
	$cabecalho[] = '5%,,10%,10%,10%,10%,,10%';
	$cabecalho[] = '98%';
/*
	$sql_fix = selecionar('nota_tx_statusNota,enti_tx_nome,orde_nb_id,orde_tx_valorTotal,orde_tx_data,nota_tx_numero,nota_tx_chaveAcesso,trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst,SUM(orpr_tx_qtde) as qtde,SUM(orpr_tx_valor*orpr_tx_qtde) as valor,orde_tx_data|orpr,ordem,produto.tributacao,nota,entidade',
		'orde_tx_status,orpr_tx_status,trib_tx_status',"!inativo,!inativo,!inativo",
		" AND prod_nb_imposto = trib_nb_id AND prod_tx_ncm != ''
		AND orde_nb_entidade=enti_nb_id
		AND nota_nb_ordem = orde_nb_id AND orpr_nb_ordem = orde_nb_id $extra 
		GROUP BY nota_nb_id");
*/
	// $sql_fix = selecionar('nota_tx_statusNota,enti_tx_nome,orde_nb_id,orde_tx_valorTotal,orde_tx_data,nota_tx_numero,nota_tx_chaveAcesso,trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst,SUM(orpr_tx_qtde) as qtde,SUM(ROUND(orpr_tx_valor*orpr_tx_qtde,2)) as valor,orde_tx_data,SUM(orpr_tx_desconto) as desconto|orpr,ordem,produto.tributacao,nota,entidade',
	// 	'orde_tx_status,orpr_tx_status,trib_tx_status',"!inativo,ativo,!inativo",
	// 	" AND orde_nb_entidade=enti_nb_id AND prod_nb_tributacao = trib_nb_id AND prod_tx_ncm != ''
	// 	AND nota_nb_ordem = orde_nb_id AND orpr_nb_ordem = orde_nb_id $extra GROUP BY nota_nb_id");

		$sql_fix = selecionar('nota_tx_statusNota,enti_tx_nome,orde_nb_id,orde_tx_valorTotal,orde_tx_data,nota_tx_numero,nota_tx_chaveAcesso,trib_tx_cfopInterno,trib_nb_cstPis,trib_nb_cstCofins,trib_nb_ipiCst,SUM(orpr_tx_qtde) as qtde,SUM(ROUND(orpr_tx_valor*orpr_tx_qtde,2)) as valor,orde_tx_data,SUM(orpr_tx_desconto) as desconto|orpr,ordem,produto.tributacao,nota,entidade',
		'orde_tx_status,orpr_tx_status',"!inativo,ativo",
		" AND orde_nb_entidade=enti_nb_id AND prod_nb_tributacao = trib_nb_id AND prod_tx_ncm != ''
		AND nota_nb_ordem = orde_nb_id AND orpr_nb_ordem = orde_nb_id $extra GROUP BY nota_nb_id");

	while($a_fix=carrega_array($sql_fix)){


		switch( $a_fix[nota_tx_statusNota] ) {
			case '':				$statusNota = "";	break;
			case 'NFe Autorizada':	$statusNota = "<font color=blue>".$a_fix[nota_tx_statusNota];	break;
			case 'NFe Cancelada':	$statusNota = "<font color=green>".$a_fix[nota_tx_statusNota];	break;
			case 'NFe Enviada':		$statusNota = "<font color=black>".$a_fix[nota_tx_statusNota];	break;
			case 'NFe Inutilizada':	$statusNota = "<font color=purple>".$a_fix[nota_tx_statusNota];	break;
			default:				$statusNota = "<font color=red>NFe Não Aprovada";	break;
		}

		$valores[] = array( ++$j, $a_fix[nota_tx_chaveAcesso], $a_fix[nota_tx_numero], data($a_fix[orde_tx_data],3), mostra_valor($a_fix[valor]-$a_fix[desconto]), $a_fix[orde_nb_id], $a_fix[enti_tx_nome], $statusNota);
		$valor_total += $a_fix[valor]-$a_fix[desconto];

	}

	$valores[] = array( '', '', '', '','<b>'. mostra_valor($valor_total), '', '', '');

	grid::gerar($cabecalho,$valores);
	
	exit;

}



function index(){

	// ----------------------------------------------------------------------------------------
	// FAZ UM FIX NA TABELA PRODUTO PARA ATUALIZAR O CAMPO PROD_NB_IMPOSTO E PROD_NB_TRIBUTACAO
	// COM ISSO EVITA A LIGACAO DA TABELA PRODUTO COM IMPOSTO ATRAVES DO NCM
	// ----------------------------------------------------------------------------------------
	



	cabecalho('Vendas Fiscais',2);
	
	cactux::abre_form('');

	if(!$_POST[busca_ano])
		$_POST[busca_ano] = date("Y");

	if($_POST[msg])
		set_status($_POST[msg]);

	
	// $inicio = cactux::campo('Data Inicio','busca_inicio',$_POST[busca_inicio],2,MASCARA_DATA);
	// $fim = cactux::campo('Data Final','busca_fim',$_POST[busca_fim],2,MASCARA_DATA);

	$mes = cactux::combo('Mês','busca_mes',array('Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'),$_POST[busca_mes],3);
	$ano = cactux::campo('Ano','busca_ano',$_POST[busca_ano],2);

	campo_hidden('imprimir_apenas','nao');
	campo_hidden('msg','Email enviado com sucesso');

	
	//BOTOES
	// $buscar = cactux::botao_submit_busca('Exportar XML',2,'exporta_xml');
	$buscar = cactux::botao_submit_busca('Email',2,'envia_email_novo');
	$imprimir = cactux::botao('Imprimir',2,'onclick=imprime_relatorio()');
	$status = cactux::msg_status('',6);
	
	cactux::abre_fieldset('Filtro de Busca');
	cactux::linha_fieldset($mes,$ano);
	cactux::linha_fieldset($buscar,$imprimir,$status);
	cactux::fecha_fieldset();


	cactux::fecha_form();


	cactux::acao_botao('form_envia_nota','enviar_nota','id,porcentagem_nota',"0,0");
	cactux::acao_botao('form_cancela_nota','cancela_nota','id,numero_nota',"0,0");
	javascript("


		function imprime_relatorio() {

			window.document.cadastro.target = '_blank';
			window.document.cadastro.acao.value = 'exporta_xml';
			window.document.cadastro.imprimir_apenas.value = 'Sim';
			window.document.cadastro.msg.value = '';
			window.document.cadastro.submit();
			window.document.cadastro.target = '';
			window.document.cadastro.acao.value = 'envia_email_novo';
			window.document.cadastro.imprimir_apenas.value = '';
			window.document.cadastro.msg.value = 'Email enviado com sucesso';
		}

	
	function envia_nota(id) {
		/*
		var erro=0;
		
		var porcentagem = prompt('Entre com a porcentagem do valor:','100');
		if( porcentagem == null || porcentagem == '') {
			alert('ERRO: Preencha todos os dados!');
			erro = 1;
		}
		if( erro == 0 ) {
			//alert(porcentagem);
			
			window.document.form_envia_nota.id.value=id;
			window.document.form_envia_nota.porcentagem_nota.value=porcentagem;
			window.document.form_envia_nota.submit();
			
		}
		
		*/
		
			window.document.form_envia_nota.id.value=id;
			window.document.form_envia_nota.porcentagem_nota.value=100;
			window.document.form_envia_nota.submit();
	}
	
	function cancela_nota(id,num) {
			
			if( confirm('Deseja realmente cancelar a NFe?') ) {
				window.document.form_cancela_nota.id.value=id;
				window.document.form_cancela_nota.numero_nota.value=num;
				window.document.form_cancela_nota.submit();
			}
	}	
	");

	
	rodape();
	
}

controle();
?>