<?php
session_start();
require('fpdf.php');


//print_r($_SESSION);
//exit;

$fp = fopen("log_gera_pdf.txt","a");
fputs($fp,date("[Y-m-d H:i:s]")." Iniciando impressao (CUPOM NAO FISCAL) (ORDEM: $_GET[ids_ordem])\r\n");
include($_SERVER[DOCUMENT_ROOT].'/kernel/conecta.php');

fputs($fp,date("[Y-m-d H:i:s]")." chamou conecta ($CONFIGURA[NOME_SISTEMA])\r\n");

$id_ordem = str_replace(';', ',', $_GET[ids_ordem]);

//VERIFICA SE TODOS OS CAMPOS FORAM PREENCHIDOS
if ($id_ordem == ''){
	echo 'Entre com o número da comanda!';
	exit;
}

$sql = selecionar('ordem','orde_tx_status','!inativo'," AND orde_nb_id IN ($id_ordem) GROUP BY orde_tx_comanda ORDER BY orde_nb_id DESC",0);
while( $a = carrega_array($sql) ){
	$a_comanda[] = $a[orde_nb_id];
	$a_comanda_mesa[] = $a[orde_tx_comanda];
}

fputs($fp,date("[Y-m-d H:i:s]")." passou 1 consulta\r\n");

$comandas = @implode(",",$a_comanda);
define(PASTA_LOCAL,$_SERVER[DOCUMENT_ROOT].$CACTUX_CONF['path']);
//$arquivo_pdf = PASTA_LOCAL.'/impressao/conteudo_imprimir.pdf';

// VERIFICA O ID DO USUARIO QUE IMPRIMIU PARA MANTER A FILA DE IMPRESSAO
// if( $_SESSION[user_nb_id] == '' )	$ID_USER = rand(1000,9999); else	$ID_USER = $_SESSION[user_nb_id];
$ID_USER = $_SESSION[user_nb_id];

fputs($fp,date("[Y-m-d H:i:s]")." chamou id_impressora()\r\n");
$id_impressora = id_impressora();


// $arquivo_pdf = PASTA_LOCAL.'/impressao/conteudo_imprimir_'.$_GET[impressora].'_'.$ID_USER.'.pdf';
//$arquivo_pdf = PASTA_LOCAL.'/impressao/conteudo_imprimir_'.$id_impressora.'_'.$ID_USER.'-'.rand(1000,9999).'-'.date('ymd').'.pdf';
$arquivo_pdf = PASTA_LOCAL.'/impressao/'.date('ymd').'_'.substr(basename($_SERVER[PHP_SELF]),0,-4).'_'.$id_impressora.'_'.$ID_USER.'-'.rand(1000,9999).'.pdf';



// INICIA A CRIAÇÃO DO PDF
$pdf = new FPDF("P","mm",array($CONFIGURA[LARGURA_IMPRESSAO],$CONFIGURA[ALTURA_IMPRESSAO]));
$pdf->SetMargins($CONFIGURA[MARGEM_ESQUERDA],$CONFIGURA[MARGEM_TOPO],$CONFIGURA[MARGEM_DIREITA]);
$pdf->AddPage();
 


$pdf->SetFont('arial','B',8);
$pdf->Cell(0,3,$CONFIGURA[NOME_IMPRESSAO],0,1,'C');
$pdf->SetFont('arial','',8);

$pdf->Cell(0,3,$CONFIGURA[CNPJ_IMPRESSAO],0,1,'C');
$pdf->Cell(0,3,$CONFIGURA[ENDERECO_IMPRESSAO],0,1,'C');
$pdf->Cell(0,3,$CONFIGURA[CEP_IMPRESSAO],0,1,'C');

if($CONFIGURA[MODO_PRESCRITOR]=='SIM'){
	$a_empr = carregar('empresa',1);
	if($a_empr[empr_tx_fone] != '' || $a_empr[empr_tx_cel] != ''){
		if($a_empr[empr_tx_fone] != '' && $a_empr[empr_tx_cel] != '')
			$pdf->Cell(0,3,"$a_empr[empr_tx_fone] / $a_empr[empr_tx_cel]",0,1,'C');
		else
			$pdf->Cell(0,3,"$a_empr[empr_tx_fone]$a_empr[empr_tx_cel]",0,1,'C');
	}
}


$pdf->Ln(4);
$pdf->SetFont('arial','B',12);
foreach ($a_comanda_mesa as $key => $n_comanda) {
	// IDENTIFICA SE É UM DELIVERY OU PEDIDO NORMAL
	if ( substr(trim($n_comanda),0,8)=='DELIVERY' )
		$titulo = $n_comanda;
	else
		$titulo = "COMANDA $n_comanda";
	$pdf->Cell(0,4,$titulo,0,1,'C');
}
$pdf->SetFont('arial','',8);
$pdf->Ln(1);
$pdf->Cell(0,2,date("d/m/Y ( H:i:s )"),0,1,'C');
$pdf->Ln(2);




$pdf->SetFont('arial','',7);
$pdf->Cell(0,2,"_________________________________________________________",0,1,"C");
$pdf->Ln(2);

$pdf->SetFont('arial','I',6);
$pdf->Cell(0,0,'DOCUMENTO AUXILIAR DE VENDA SEM VALOR FISCAL',0,1,"C");
$pdf->SetFont('arial','',7);

$pdf->Cell(0,0,"_________________________________________________________",0,1,"C");
$pdf->Ln(1);


 
// CRIA O CABEÇALHO DA TABELA DA LISTAGEM DOS PRODUTOS
$pdf->SetFont('arial','B',8);
$pdf->Cell(5,5,'-',0,0,"L");
$pdf->Cell(25,5,'DESCRIÇÃO',0,0,"L");
$pdf->Cell(10,5,'QT',0,0,"L");
$pdf->Cell(10,5,'UN',0,0,"L");
$pdf->Cell(15,5,'VALOR',0,0,"D");
$pdf->Cell(10,5,'TOTAL',0,0,"D");
$pdf->Ln(3);


// $pdf->SetFont('arial','B',8);
// $pdf->Cell(30,5,'ITEM',0,0,"L");
// $pdf->Cell(42,5,'PRODUTO',0,1,"L");

// $pdf->Cell(20,1,'QTDE',0,0,"R");
// $pdf->Cell(30,1,'VL.UNIT.',0,0,"C");
// $pdf->Cell(0,1,'VALOR',0,1,"R");


$pdf->SetFont('arial','',7);
$pdf->Cell(0,0,"_________________________________________________________",0,1,"C");

$pdf->Ln(2);
 
// ALTERA O TIPO E TAMANHO DA FONTE
$pdf->SetFont('arial','',8);


fputs($fp,date("[Y-m-d H:i:s]")." passou do pdf\r\n");
// LISTAGEM DOS PRODUTOS DA COMANDA
$sql = selecionar('prod_nb_id,prod_tx_codbarras,orpr_nb_id,prod_tx_nome,orpr_tx_porcentagem,orpr_tx_valor,orpr_tx_desconto,orpr_tx_descontoReal,SUM(orpr_tx_qtde) as qtde,orpr_tx_qtde*orpr_tx_valor as valor|orpr,produto,ordem','orpr_tx_status',"ativo"," AND orde_nb_id IN ($id_ordem) GROUP BY orpr_nb_id ORDER BY orpr_nb_id ASC");
$desconto_total = 0;
fputs($fp,date("[Y-m-d H:i:s]")." passou da 2 consulta\r\n");
while( $a = carrega_array($sql) ) {
// NAO EXIBE SE A QUANTIDADE FOR 0 ( NO CASO DE TER LANCADO UM PRODUTO E DEPOIS CANCELADO)
	if( $a[qtde] == 0 )	
		continue;


	$unitario = $a[orpr_tx_valor];
	$valor_prod = ($unitario*$a[qtde]);

	$total_qtde +=$a[qtde];

	// LINHA 1 DA LISTAGEM DE PRODUTOS
	$pdf->Cell(6,3,str_pad(++$j,3,'0',STR_PAD_LEFT),0,0,"L");
	$pdf->Cell(8,3,$a[prod_nb_id],0,0,"L");
	$pdf->Cell(1,3,$a[prod_tx_nome],0,1,"L");

	// LINHA 2 DA LISTAGEM DE PRODUTOS
	$pdf->Cell(24,3,mostra_valor($a[qtde])." UN",0,0,"R");
	$pdf->Cell(15,3," ",0,0,"C");
	$pdf->Cell(20,3,mostra_valor($unitario),0,0,"R");
	$pdf->Cell(20,3,mostra_valor($valor_prod),0,1,"R");

	if ( $a[orpr_tx_descontoReal]>0 ) {

		// $pdf->SetFont('arial','',6);
		$pdf->Cell(30,3,"  Desconto",0,0,"L");
		$pdf->Cell(42,3,mostra_valor(($a[orpr_tx_descontoReal]*(-1)),1)." ",0,1,"R");

		$pdf->Cell(30,3,"  Valor Líquido",0,0,"L");
		$pdf->Cell(42,3,mostra_valor(($valor_prod-$a[orpr_tx_descontoReal]),1)." ",0,1,"R");
	}
	
	// $string_imprime .= "<tr><td width='40px' >".str_pad(++$j,2,'0',STR_PAD_LEFT)."</td><td colspan=2>".$a[prod_tx_nome]."</td></tr>"."\r\n";
	// $string_imprime .= "<tr><td width='40px' align=right>".mostra_valor($a[qtde])."</td><td align=center width='100px'>R$ ".mostra_valor($unitario)."</td><td  align=right>R$ ".mostra_valor($valor_prod)."</td></tr>"."\r\n";
	
	$total += $valor_prod;
	$desconto_total += $a[orpr_tx_descontoReal];
	
	$pdf->Ln(1);
}


// $pdf->Ln(5);



$pdf->SetFont('arial','',7);
$pdf->Cell(0,0,"_________________________________________________________",0,1,"C");
$pdf->SetFont('arial','',8);
$pdf->Ln(2);


$pdf->SetFont('arial','I',8);
$pdf->Cell(30,3,"Total de Itens",0,0,"L");
$pdf->Cell(49.5,3,$total_qtde." ",0,1,"R");

$pdf->SetFont('arial','I',8);
$pdf->Cell(30,3,"Total de Produtos",0,0,"L");
$pdf->Cell(49.5,3,"R$ ".mostra_valor(($total+$v_comissao),1)." ",0,1,"R");

$pdf->SetFont('arial','I',8);
$pdf->Cell(30,3,"Desconto",0,0,"L");
$pdf->Cell(49.5,3,"R$ ".mostra_valor(($desconto_total),1)." ",0,1,"R");



$pdf->SetFont('arial','',7);
$pdf->Cell(0,0,"_________________________________________________________",0,1,"C");
$pdf->SetFont('arial','',8);
$pdf->Ln(2);

$valor_final = ($total-$desconto_total+$v_comissao);

$pdf->SetFont('arial','B',8);
$pdf->Cell(30,3,"VALOR FINAL",0,0,"L");
$pdf->Cell(49.5,3,"R$ ".mostra_valor($valor_final,1)." ",0,1,"R");


$pdf->SetFont('arial','',7);
$pdf->Cell(0,0,"_________________________________________________________",0,1,"C");
$pdf->SetFont('arial','',8);
$pdf->Ln(3);


$pdf->SetFont('arial','',7);
$pdf->Cell(0,0,"Sugestão de divisão",0,1,"C");
$pdf->Cell(30,3,"Para 2: R$ ".mostra_valor($valor_final/2,1),0,0,"L");
$pdf->Cell(49.5,3,"Para 3: R$ ".mostra_valor($valor_final/3,1),0,1,"R");
$pdf->Ln(1);
$pdf->Cell(30,3,"Para 4: R$ ".mostra_valor($valor_final/4,1),0,0,"L");
$pdf->Cell(49.5,3,"Para 5: R$ ".mostra_valor($valor_final/5,1),0,1,"R");

$pdf->Cell(0,0,"_________________________________________________________",0,1,"C");
$pdf->SetFont('arial','',8);
$pdf->Ln(2);



$pdf->SetFont('arial','I',8);
$pdf->Cell(30,3,"FORMA DE PAGAMENTO",0,0,"L");
$pdf->Cell(49.5,3,"VALOR PAGO"." ",0,1,"R");





// // OBTEM O VALOR DA TAXA DE SERVIÇO
// $sql3 = selecionar('orpr_nb_id,orpr_tx_valor,orde_tx_comanda,orpr_nb_ordem|orpr,ordem','orpr_tx_status',"taxa"," AND orde_nb_id IN ($id_ordem) GROUP BY orpr_nb_id ORDER BY orpr_nb_id DESC LIMIT 1",0);
// while( $a3 = carrega_array($sql3) ) {
// 	// OBTEM O VALOR A SER PAGO PELA COMISSÃO
// 	$v_comissao = ($total-$desconto_total)*$a3[orpr_tx_valor]/100;

// }



// LISTA OS ORPR ITENS DE PAGAMENTO
$sql_pagamento = selecionar('prod_nb_id,orpr_tx_valor,SUM(orpr_tx_qtde) as qtde,SUM(orpr_tx_qtde*orpr_tx_valor) as valor,orpr_tx_retornoLojista,orpr_tx_retornoCliente,orpr_nb_id|orpr,produto,ordem','orpr_tx_status',"pagamento"," AND orde_nb_id IN ($id_ordem) GROUP BY orpr_nb_id ORDER BY orpr_nb_id DESC",0,1);

fputs($fp,date("[Y-m-d H:i:s]")." passou da 3 consulta\r\n");

$pag=0;
while( $a = carrega_array($sql_pagamento) ) {

	$a_forma = carregar('forma',$a[prod_nb_id]);

	$pdf->Cell(30,3,ucfirst(strtolower($a_forma[form_tx_nome])),0,0,"L");
	$pdf->Cell(49.5,3,"R$ ".mostra_valor($a[valor]*(-1))." ",0,1,"R");

	// $string_pagamento .= "<tr><td colspan=3 align=right>".trim($a_forma[form_tx_nome]).": R$ ".mostra_valor($a[valor]*(-1))."</td></tr>";

	// SOMA AS ORPR DE DINHEIRO PARA CALCULAR O TROCO
	if ( $a[prod_nb_id] == 1 ) {
		$total_orpr_dinheiro += $a[valor]*(-1);
	}
	$total_orpr += $a[valor]*(-1);

	/*
	// A IMPRESSÃO AGORA É FEITA EM UMA FUNÇÃO A PARTE NO PDV
	if($a[orpr_tx_retornoCliente]!=''){
		fputs($fp,date("[Y-m-d H:i:s]")." chamou: montar_impressao_cartaoCliente($a[orpr_nb_id],$id_impressora)\r\n");

		montar_impressao_cartaoCliente($a[orpr_nb_id],$id_impressora);
	}

	if($a[orpr_tx_retornoLojista]!=''){
		fputs($fp,date("[Y-m-d H:i:s]")." chamou: montar_impressao_cartaoLojista($a[orpr_nb_id],$id_impressora)\r\n");		
		montar_impressao_cartaoLojista($a[orpr_nb_id],$id_impressora);
	}
	*/

	$pag++;
}

// SE TIVER MAIS QUE UMA FORMA DE PAGAMENTO, EXIBE O SOMATORIO. SE SÓ TIVER 1 NAO PRECISA SOMAR NADA
if( $total_orpr > 0 && $pag > 1 ) {
	$pdf->SetFont('arial','B',8);
	$pdf->Cell(30,3,"Total Recebido",0,0,"L");
	$pdf->Cell(49.5,3,"R$ ".mostra_valor($total_orpr)." ",0,1,"R");
	$pdf->SetFont('arial','',8);

}

$valor_falta = ($valor_final-$total_orpr);

// SE AINDA FALTAR ALGUM PAGAMENTO
if( $valor_falta > 0 ) {
	$pdf->Cell(30,3,"Resta",0,0,"L");
	$pdf->Cell(49.5,3,"R$ ".mostra_valor($valor_falta)." ",0,1,"R");
}

// SE O TOTAL RECEBIDO FOR MAIOR QUE ZERO E EXISTIR ALGUM RECEBIMENTO EM DINHEIRO
if ( $total_orpr>$valor_final && $total_orpr_dinheiro>0 ) {
	$valor_troco = ($total_orpr-$valor_final);
	$pdf->Cell(30,3,"Troco",0,0,"L");
	$pdf->Cell(49.5,3,"R$ ".mostra_valor($valor_troco)." ",0,1,"R");
}



$pdf->SetFont('arial','',7);

$a_orde = carregar('ordem',$a_comanda[0]);
fputs($fp,date("[Y-m-d H:i:s]")." passou da 4 consulta\r\n");


$pdf->ln(2);

if($a_orde[orde_nb_user]>1){
	$a_enti_ = carregar('entidade',$a_orde[orde_nb_user]);
	fputs($fp,date("[Y-m-d H:i:s]")." passou da 5 consulta\r\n");

	$pdf->Cell(0,3,strtoupper($CONFIGURA[LABEL_USUARIO]).": $a_enti_[enti_tx_nome]",0,1,"L");
}


if ( $CONFIGURA[MODO_PDV]=='ESTACIONAMENTO' ) {

	// CAPTURA A ÚLTIMA MENSALIDADE EM ABERTO DO CLIENTE
	$sql_data = selecionar("ordem","orde_nb_entidade,orde_tx_status","$a_orde[orde_nb_entidade],ativo"," ORDER BY orde_nb_id DESC LIMIT 1 ");
	fputs($fp,date("[Y-m-d H:i:s]")." passou da 6 consulta\r\n");
	if( num_linhas($sql_data) > 0 ) {

		$a_data = carrega_array($sql_data);
		$obs_data = "PERIODO DE ".data($a_orde[orde_tx_data],1)." A ".data($a_data[orde_tx_data],1);
		$pdf->Cell(0,3,$obs_data,0,1,"L");
	}
}

$pdf->ln(2);

$pdf->Cell(0,3,"Número ".str_pad($id_ordem,9,'0',STR_PAD_LEFT)." Emissão ".date('d/m/Y')." ".date('H:i:s'),0,1,"C");
$pdf->Cell(0,3,"Via Consumidor",0,1,"C");
$pdf->ln(2);




if($a_orde[orde_tx_cpf]!=''){

	$a_ent = carregar('entidade',$a_orde[orde_nb_entidade]);
	fputs($fp,date("[Y-m-d H:i:s]")." passou da 7 consulta\r\n");

	$pdf->SetFont('arial','B',7);
	$pdf->Cell(0,3,"CONSUMIDOR",0,1,"C");
	$pdf->SetFont('arial','',7);
	$pdf->Cell(0,3,"$a_orde[orde_tx_nome] $fone",0,1,"C");
	$pdf->Cell(0,3,"$a_orde[orde_tx_cpf]",0,1,"C");
}elseif($a_orde[orde_nb_entidade]>1){
	$a_ent = carregar('entidade',$a_orde[orde_nb_entidade]);
	fputs($fp,date("[Y-m-d H:i:s]")." passou da 8 consulta\r\n");

	$pdf->SetFont('arial','B',7);
	$pdf->Cell(0,3,"CONSUMIDOR",0,1,"C");
	$pdf->SetFont('arial','',7);
	$pdf->Cell(0,3,"$a_ent[enti_tx_nome] $fone",0,1,"C");
	$pdf->Cell(0,3,"$a_ent[enti_tx_cnpj]",0,1,"C");
}else{
	$pdf->SetFont('arial','B',7);
	$pdf->Cell(0,3,"CONSUMIDOR",0,1,"C");
	$pdf->SetFont('arial','',7);
	$pdf->Cell(0,3,"Consumidor não identificado",0,1,"C");
	$pdf->Cell(0,3,"$a_orde[orde_tx_cpf]",0,1,"C");
}


$pdf->Ln(6);
$pdf->SetFont('arial','B',7);
$pdf->Cell(0,3,"DOCUMENTO SEM VALOR FISCAL",0,1,"C");
$pdf->SetFont('arial','',7);


$pdf->Ln(6);
$pdf->Cell(0,0,'SISTEMAS CACTUS',0,1,"C");



// GERA O ARQUIVO PDF
$pdf->Output($arquivo_pdf,'F');

fputs($fp,date("[Y-m-d H:i:s]")." finalizou a geracao do pdf\r\n");


echo "OK!";




fputs($fp,date("[Y-m-d H:i:s]")." chamou bat_imprime($arquivo_pdf,$id_impressora)\r\n");
bat_imprime($arquivo_pdf,$id_impressora);


fputs($fp,date("[Y-m-d H:i:s]")." FIM\r\n");
fputs($fp,"\r\n");