<?php


error_reporting(E_ALL);
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;



require_once "header.php";
require_once "connect.php";
require_once 'inc/usuario.php';
require_once 'inc/messages.php';

include("api/PHPMailer/src/Exception.php");
include("api/PHPMailer/src/PHPMailer.php");
include("api/PHPMailer/src/SMTP.php");

checkLogin('login.php');

// capturando o usuário e unidade logado
$usuario_list = getLoggedUser();
$id_usuario=$usuario_list['id'];
$id_unidade=$usuario_list['unidade'];


date_default_timezone_set('America/Sao_Paulo');

/* Captura os parametros do Form */
if(isset($_POST['dt_inicio'])){
	$dt_inicio = $_POST['dt_inicio'];
}

if(isset($_POST['dt_final'])){
	$dt_final = $_POST['dt_final'];
}
if(isset($_POST['id_tipo_venda'])){
	$id_tipo_venda = $_POST['id_tipo_venda'];
}else{
	echo "Tipo de venda não selecionada";
}

/* Faz a geração do ZIP para Download ao usuário */

if($id_tipo_venda == 'cfe'){
	$zip_name = getGeraZip_cfe($dt_inicio, $dt_final);
}elseif($id_tipo_venda =='nfe'){
	$zip_name = getGeraZip_nfe($dt_inicio, $dt_final);
}
/* Força o Download do arquivo */


if(file_exists($zip_name) && !empty($_POST['ds_email'])){
	/*
	header('Content-Type: application/zip');
	header('Content-disposition: attachment; filename='.$zip_name);
	header('Content-Length: ' . filesize($zip_name));
	readfile($zip_name);
    */
    
    $sql_unidade = "select ds_razao_social, ds_email from erpc_unidades where id=$id_unidade";
  
    $result_unidade = mysqli_query($conexao, $sql_unidade) or die(myqli_error($conexao));
    if(mysqli_num_rows($result_unidade) > 0){
        while($row = mysqli_fetch_assoc($result_unidade)){
            $ds_unidade = $row['ds_razao_social'];
            $ds_email_unidade = $row['ds_email'];
        }
        if(is_null($ds_email_unidade)){
            $ds_email_unidade = "naoresponder@codetecnologia.com.br";
        }
    }
    
    $sql_contabilidade = "Select ds_email, ds_msg_email_xml from erpc_contabilidades where st_ativo = 1";
    $result_contab = mysqli_query($conexao, $sql_contabilidade) or die(mysqli_error($conexao));
    if(mysqli_num_rows($result_contab) >0 ){
        while($row = mysqli_fetch_assoc($result_contab)){
            $ds_email_contab = $row['ds_email'];
            $ds_texto_email  = $row['ds_msg_email_xml']; 
        }
    }
    
    if(isset($_POST['ds_email'])){
        $ds_email = $_POST['ds_email'];    
    }
    
    /*
    echo "email_unidade: " . $ds_email_unidade . "<br>";
    echo "unidade: " . $ds_unidade . "<br>";
    echo "titulo: " . "XML " . $ds_unidade . " de " . $dt_inicio . " à " . $dt_final . "<br>";
    echo "Corpo: " . $ds_texto_email . "<br>";
    echo "email: " . $ds_email . "<br>";
    exit;
    */
    // inicio
    
     $email = new PHPMailer(TRUE);
    
    $email->CharSet   = 'UTF-8';
    $email->From      = "$ds_email_unidade";
    $email->FromName  = $ds_unidade;
    //$email->Subject   = "NFe " . $ds_unidade;
    $email->Subject   = "XML " . $ds_unidade . " de " . $dt_inicio . " à " . $dt_final;
    $email->Body      = "$ds_texto_email";
    $email->AddAddress( $ds_email );
    

    $email->AddAttachment($zip_name);
    
    
    if($email->Send()){
        addMessage("E-mail enviado com Sucesso");    
    }else{
        addMessage("Falho no envio do E-mail.");
    }
    
    
    // fim
    
    /*
    $email = new PHPMailer(TRUE);
    
    $email->CharSet   = 'UTF-8';
    $email->From      = "$ds_email_unidade";
    $email->FromName  = $ds_unidade;
    $email->Subject   = "XML " . $ds_unidade . " de " . $dt_inicio . " à " . $dt_final;
    $email->Body      = $ds_texto_email;
    $email->AddAddress( $ds_email );
    //$email->AddAddress( $ds_email_contab) ; 
    
    $email->AddAttachment($zip_name);

    if($email->Send()){
        addMessage("E-mail enviado com Sucesso");    
    }else{
        addMessage("Falho no envio do E-mail.<br>");
        echo $mail->ErrorInfo;
    }
    */
	/* Remove o Arquivo do Diretório Atual : XML*/
	unlink($zip_name);
	
	
}elseif(file_exists($zip_name)){
	header('Content-Type: application/zip');
	header('Content-disposition: attachment; filename='.$zip_name);
	// header('Content-Length: ' . filesize($zip_name));
	readfile($zip_name);

	/* Remove o Arquivo do Diretório Atual : XML*/
	unlink($zip_name);
	
}

function getSQL($consulta){
global $conexao;

	$ar_retorno = array();
	$resultado = mysqli_query($conexao, $consulta) or die ($erro = mysqli_error($conexao));
		if (mysqli_num_rows($resultado)>0) {
				while ($registro = mysqli_fetch_assoc($resultado)){
					array_push($ar_retorno, $registro);
				}
			}

	return $ar_retorno;
}

/* Formata a Data*/
function formatarData($value){
	// $value = date('d/m/Y', strtotime($value));
  $dia = substr($value, 0, 2);
  $mes = substr($value, 3, 2);
  $ano = substr($value, -4);

  $dt_format = "$ano-$mes-$dia";

  return $dt_format;
}

//Gera ZIP baseado nos CFE
function getGeraZip_cfe($p_data_inicio, $p_data_final){
	global $id_unidade;

	$consulta = "select
  date_format(dt_emissao, '%Y%m%d') as dt_emissao, ds_numnf, ds_xml
	from erpc_documentos_saida
  where id_unidade=$id_unidade and cd_status_nfe = '06000' and st_ativo = 1 ";

  $dt1 = formatarData($p_data_inicio); // date('Y-m-d', strtotime($dt_inicio));
  $dt2 = formatarData($p_data_final);  //date('Y-m-d', strtotime($dt_final));

	$consulta .= " and date_format(dt_emissao, '%Y-%m-%d') between '$dt1' and '$dt2' order by 1, 2";
	$result = getSQL($consulta);

	// Cria o Objecto ZIP para adicionar os conteúdos do xml_venda
	$zip = new ZipArchive();
	//$zip_name = "xml_CFe.zip"
	$zip_name = "xml/" . time().".zip"; // Zip name
	$zip_name = "xml_CFe.zip"; // Zip name

	$zip->open($zip_name, ZipArchive::CREATE);

	foreach ($result as $key => $value) {
		$xml_name = $value['dt_emissao'] . $value['ds_numnf'] . ".xml";
		$xml_value= $value['ds_xml'];

		$zip->addFromString( "$xml_name", "$xml_value");
		// $zip->addFromString('xml_venda00000.txt', 'x2');
	}
	$zip->close();
	return $zip_name;
	
}

//Gera ZIP baseado nas NFE
function getGeraZip_nfe($p_data_inicio, $p_data_final){
	global $id_unidade;

	$consulta = "select
  date_format(dt_emissao, '%Y%m%d') as dt_emissao, ds_numnf, ds_xml
	from erpc_documentos_saida
  where id_unidade=$id_unidade and cd_status_nfe = '100' and st_ativo = 1 ";

  $dt1 = formatarData($p_data_inicio); // date('Y-m-d', strtotime($dt_inicio));
  $dt2 = formatarData($p_data_final);  //date('Y-m-d', strtotime($dt_final));

	$consulta .= " and date_format(dt_emissao, '%Y-%m-%d') between '$dt1' and '$dt2' order by 1, 2";
	$result = getSQL($consulta);
	
	// Cria o Objecto ZIP para adicionar os conteúdos do xml_venda
	
	$zip = new ZipArchive();
	$zip_name = "xml_NFe.zip";

	if ($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE) {
		exit("Falha ao criar a pasta <$zip_name>\n");
	}

	foreach ($result as $key => $value) {
		$xml_name = $value['dt_emissao'] . $value['ds_numnf'] . ".xml";
		$xml_value= $value['ds_xml'];

		$zip->addFile("$xml_value", "$xml_name");
		//$zip->addFromString( "$xml_name", "$xml_value");
		// $zip->addFromString('xml_venda00000.txt', 'x2');
	}
	$zip->close();
	return $zip_name;
}

?>
    <br>
    <div class="block">
		<div class="content">
			<?php
			displayMessagesAndErrors(true); ?>
			
			<div class="footer">
    			<div class="side pull-right">
                    <div class=btn-group>
                        <button class="btn btn-default" type="button" onClick="window.history.go(-1)" value="Voltar">Voltar</button>
            		</div>
                </div>
            </div>
		</div>
	</div>

	
<?php

require_once "footer.php";
?>
